@charset "UTF-8";
:root {
  --text: #181816;
  --text-disabled: #bbbbbb;
  --text-inverse: #ffffff;
  --title: #15302a;
  --link: var(--blue-selected);
  --surface-2: #fafafa;
  --surface-sunk: #f2f2f2;
  --surface-muted: #e9e9ec;
  --surface-inverse: #333333;
  --hover: rgba(0, 0, 0, .04);
  --overlay: rgba(0, 0, 0, .5);
  --line: #e0e0e0;
  --line-strong: #cccccc;
  --field-line: #aaaaaa;
  --line-alpha: rgba(0, 0, 0, .08);
  --shadow-soft: rgba(0, 0, 0, .06);
  --shadow: rgba(0, 0, 0, .12);
  --shadow-strong: rgba(0, 0, 0, .25);
  --brand-50: #E1F5EE;
  --brand-500: #1D9E75;
  --brand-700: #0F6E56;
  --brand-solid: var(--blue-selected);
  --brand-soft: var(--selected-opacity);
  --brand-tint: rgba(29, 158, 117, .1);
  --theme-tint: rgba(7, 120, 133, .1);
  --danger-fg: #c62828;
  --danger-solid: #eb4d11;
  /* --danger-bg: #FCEBEB (EXISTE) */
  --danger-line: #f5c2c2;
  --danger-tint: var(--red-danger-bg);
  --warn-fg: #854F0B;
  --warn-solid: #f0ad4e;
  /* --warn-bg: #FAEEDA (EXISTE) */
  --warn-line: #f5d78e;
  --ok-fg: #1a7f37;
  --ok-solid: #28a745;
  --ok-bg: #E1F5EE;
  --ok-line: #a3d9b1;
  --info-fg: #0C447C;
  --info-solid: #1976d2;
  /* --info-bg: #E6F1FB (EXISTE) */
  --info-line: #b3d4f5; }

html.ds2 {
  --text-disabled: var(--n-300);
  --text-inverse: var(--n-0);
  --link: var(--brand-text);
  --surface-2: var(--n-25);
  --surface-muted: var(--n-150);
  --surface-inverse: var(--n-800);
  --hover: rgba(28, 25, 23, .04);
  --line-alpha: rgba(28, 25, 23, .08);
  --shadow-soft: rgba(28, 25, 23, .05);
  --shadow: rgba(28, 25, 23, .08);
  --shadow-strong: rgba(28, 25, 23, .14);
  --brand-soft: var(--brand-50);
  --brand-tint: color-mix(in srgb, var(--brand-500) 10%, transparent);
  --theme-tint: color-mix(in srgb, var(--brand-solid) 10%, transparent);
  --danger-tint: color-mix(in srgb, var(--danger-solid) 8%, transparent);
  --purple-bg: #F4F3FF;
  --purple: #3C3489; }

html.ds2.ds2-dark {
  --hover: rgba(255, 255, 255, .06);
  --line-alpha: rgba(255, 255, 255, .10);
  --shadow-soft: rgba(0, 0, 0, .30);
  --shadow: rgba(0, 0, 0, .40);
  --shadow-strong: rgba(0, 0, 0, .55); }

/*
var(--blue-light): #eff2f5;
$border-style: 1px solid #e7edf3;
$blue-selected: #18ace2;
var(--blue-medium): #dbebf1;
$blue-dark: #8294a7;
$red-danger: #ea5e40;
$gray-custom: #798998;
$p-card-shadow: 0 0 0 1px rgba(63,63,68,0.05), 0 1px 3px 0 rgba(63,63,68,0.15);
$tradastra-dark-blue: #85a6bf;


$tradastra-white: #141820;
$tradastra-background: #070a10;
$tradastra-font-color: #e0e2e7;
$tradastra-default-shadow: 0 8px 16px rgba(213, 229, 255, 0.27);*/
/* latin-ext */
@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 300;
  src: local("Lato Light"), local("Lato-Light"), url(/Content/Font/Lato-Light.ttf) format("woff2");
  unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; }
/* latin */
@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 300;
  src: local("Lato Light"), local("Lato-Light"), url(/Content/Font/Lato-Light.ttf) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; }
/* latin-ext */
@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 400;
  src: local("Lato Regular"), local("Lato-Regular"), url(/Content/Font/Lato-Regular.ttf) format("woff2");
  unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; }
/* latin */
@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 400;
  src: local("Lato Regular"), local("Lato-Regular"), url(/Content/Font/Lato-Regular.ttf) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; }
/* latin-ext */
@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 700;
  src: local("Lato Bold"), local("Lato-Bold"), url(/Content/Font/Lato-Bold.ttf) format("woff2");
  unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; }
/* latin */
@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 700;
  src: local("Lato Bold"), local("Lato-Bold"), url(/Content/Font/Lato-Bold.ttf) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; }
footer {
  position: absolute;
  bottom: 35px; }
  @media (max-width: 767px) {
    footer {
      display: none; } }

html {
  font-size: 62.5%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  text-rendering: optimizeLegibility;
  background-color: var(--surface); }

body {
  text-align: center;
  padding: 0;
  background-color: var(--background-color);
  font-family: var(--text-font-family), sans-serif !important;
  font-weight: normal;
  position: relative;
  padding-top: 0px;
  margin-left: auto;
  font-size: 1.4em;
  color: var(--text-color);
  min-height: 100vh;
  min-height: 100lvh;
  /* idem : lvh, pas dvh — voir _menu.scss #main_view (30/08) */
  /* SAFE-AREA (30/08) : compagnon obligatoire de viewport-fit=cover posé sur le meta viewport —
     la page couvre alors l'écran ENTIER, encoche et indicateur d'accueil compris, et c'est à la
     page de réserver ces zones. Sans viewport-fit effectif, env() vaut 0 : la règle est un no-op,
     elle ne peut donc rien casser sur les navigateurs qui n'étendent pas la webview. */
  padding-bottom: env(safe-area-inset-bottom, 0px); }

/* Chantier design 07/10 (L0.3) — CONTOUR DE FOCUS CLAVIER, partout. :focus-visible ne s'allume
   que si le navigateur juge l'indice utile (Tab, flèches) : un clic souris sur un bouton ou un
   lien ne l'affiche pas, la « suppression au clic » est donc native. Spécificité minimale
   (0,1,0) EXPRÈS : les composants qui ont leur propre focus (liseré intérieur --blue-dim des
   onglets, fond des listes, soulignement des liens d'action) le gardent, et les CHAMPS de saisie
   qui signalent le focus par leur bordure (.form-control, .ct-search…, règle DS « Focus :
   border-color ») gardent leur outline:none — pour eux le clic EST un focus visible. Les seuls
   outline:none qui privaient le clavier de tout repère (.button-rond, switch .form-check-input,
   select.select_institution) sont corrigés à la source. */
:focus-visible {
  outline: 2px solid var(--blue-selected);
  outline-offset: 2px; }

hr {
  border-top: 1px solid var(--blue-dark);
  border-bottom: none;
  display: block;
  width: 100%;
  margin: 25px 0px; }

h1 {
  font-size: 2.1rem;
  font-weight: 300;
  padding-left: 0px;
  font-family: var(--title-font-family), sans-serif;
  color: var(--title-color); }

h2 {
  font-size: 1.8rem;
  font-weight: 300;
  padding-left: 0px;
  font-family: var(--title-font-family), sans-serif;
  color: var(--text-color);
  margin-top: 0px !important;
  margin-bottom: 10px !important; }

.row {
  margin: revert;
  text-align: left;
  padding-right: revert;
  padding-left: revert;
  --bs-gutter-x: revert;
  --bs-gutter-y: revert;
  display: inline-block;
  width: 100%;
  flex-wrap: revert;
  margin-top: revert;
  margin-right: revert;
  margin-left: revert; }

.row > * {
  display: revert;
  width: revert;
  flex-shrink: revert;
  max-width: revert;
  padding-right: revert;
  padding-left: revert;
  margin-top: revert; }

.hidden {
  display: none !important; }

a.isDisabled {
  cursor: default;
  color: var(--text-3) !important; }

.disabled {
  color: var(--text-3) !important; }

.elementDisabled {
  background-color: #999 !important;
  color: var(--text-inverse); }

input[type='time'], input[type='date'] {
  width: 100%;
  margin: 0px;
  padding-top: 18px;
  padding-left: 8px;
  line-height: normal !important; }

input[type=color] {
  -webkit-appearance: none;
  appearance: none;
  border: none;
  /* Supprime la bordure */
  padding: 0;
  /* Supprime le padding */
  width: 60px;
  /* Largeur fixe */
  height: 36px;
  /* Hauteur fixe */
  background: transparent;
  border-radius: 5px;
  overflow: hidden;
  margin: 10px;
  border: 1px solid var(--blue-dim); }

input[type="color"]::-webkit-color-swatch-wrapper {
  padding: 0; }

input[type="color"]::-webkit-color-swatch {
  border: none; }

.link {
  color: var(--blue-selected);
  cursor: pointer; }
  .link:hover {
    opacity: 0.7; }

input[type="date"]::-webkit-inner-spin-button {
  display: none; }

.col-md-6-custom, .col-sm-12-custom, .col-lg-4-custom, .col-lg-6-custom {
  position: relative;
  min-height: 1px;
  padding-left: 10px;
  padding-right: 10px; }

@media (min-width: 992px) {
  .col-md-6-custom {
    width: 50%;
    float: left; } }

@media (min-width: 768) {
  .col-sm-12-custom {
    width: 100%;
    float: left; } }

@media (min-width: 1450px) {
  .col-lg-4-custom {
    width: 33.33333333%;
    float: left; } }

@media (min-width: 1450px) {
  .col-lg-6-custom {
    width: 50%;
    float: left; } }

/*@media ( max-width: $screen-xs-max ) {
    .modal-dialog {
        position: absolute;
        left: 0;
        right: 0;
        bottom: 0;
        margin: 0;
        border-radius: 0;
    }

    .modal-content {
        -webkit-border-radius: 0;
        border-radius: 0;
        border: none;
        min-height: 150px;
        min-width: 460px;
    }

    .modal {
        &.fade .modal-dialog {
            transform: scale(0.9);
            opacity: 0;
            transition: all 0.2s ease;
        }

        &.in .modal-dialog {
            transform: scale(1);
            opacity: 1;
            transition: all 0.2s ease;
        }

        transition: all 0.2s ease;
    }
}*/
/*@media ( min-width: $screen-sm-min ) {*/
.modal-dialog {
  position: relative;
  bottom: 0;
  overflow: visible;
  width: auto;
  display: inline-block;
  margin: auto;
  vertical-align: middle;
  padding-bottom: 60px;
  max-width: calc(100vw - 20px); }

.modal-content {
  -webkit-border-radius: 15px;
  border-radius: var(--border-radius-medium);
  border: none;
  min-height: 170px;
  min-width: 460px; }

.modal {
  transition: all 0.2s ease; }
  .modal.fade .modal-dialog {
    transform: scale(0.9);
    opacity: 0;
    transition: all 0.2s ease;
    transform-origin: 50% 50%; }
  .modal.show .modal-dialog {
    transform: scale(1);
    opacity: 1;
    transition: all 0.2s ease;
    transform-origin: 50% 50%; }
  .modal.show {
    display: flex !important; }

.modal-title-text {
  flex: 1; }

/*}*/
input {
  text-align: left; }

input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0; }

input[type=number] {
  -moz-appearance: textfield;
  text-align: left; }

/* Set width on the form input elements since they're 100% wide by default */
input,
select,
textarea {
  width: 100%; }

/* 06/10 : un bouton radio garde sa taille naturelle. Étiré à 100 % par la règle ci-dessus, dans un libellé en flex il
   prenait toute la largeur (pastille centrée) et écrasait son texte à un mot par ligne (« Générer des adresses »).
   Les cases à cocher ont déjà leur taille (_table.scss) ; les choix stylés (.styled-checkbox input) restent maîtres. */
input[type=radio] {
  width: auto; }

a {
  text-decoration: none;
  color: var(--link-color);
  cursor: pointer; }

a:hover, a:active, a:focus {
  opacity: 0.7;
  color: var(--link-color);
  text-decoration: none; }

h4 {
  text-transform: uppercase;
  color: var(--text-2); }

.returnLink {
  padding-bottom: 3px;
  padding-top: 0px !important; }

.returnLink a {
  font-size: 1.4rem;
  color: var(--link-color);
  font-weight: normal; }

.returnLink-container {
  text-align: left;
  font-size: 2.5rem;
  padding-left: 20px;
  font-weight: bold; }

.notransition {
  -webkit-transition: none !important;
  -moz-transition: none !important;
  -o-transition: none !important;
  transition: none !important; }

.select-menu-hor-container, nav-tabs {
  cursor: default;
  position: sticky;
  top: 60px;
  z-index: 30;
  margin: 0px;
  width: 100%;
  display: flex;
  align-items: center;
  max-width: 1480px;
  white-space: nowrap;
  overflow: visible;
  justify-content: flex-start;
  /* Mobile : les onglets débordent → scroll horizontal au lieu d'être coupés */ }
  .select-menu-hor-container a, nav-tabs a {
    color: inherit; }
  .select-menu-hor-container.nav-tabs, nav-tabs.nav-tabs {
    border-bottom: none !important;
    padding: 10px 10px !important; }
  @media (max-width: 767px) {
    .select-menu-hor-container, nav-tabs {
      overflow-x: auto;
      overflow-y: hidden;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none; }
      .select-menu-hor-container::-webkit-scrollbar, nav-tabs::-webkit-scrollbar {
        display: none; } }

.nav-tabs .nav-link:focus, .nav-tabs .nav-link:hover {
  isolation: unset;
  border-color: transparent; }

body.capture .select-menu-hor-container {
  overflow: hidden; }

.infos_content .select-menu-hor-container {
  padding: 0px 25px;
  margin-top: -25px;
  margin-left: -25px;
  margin-right: -25px;
  margin-bottom: 25px;
  width: auto;
  background: var(--surface);
  border-bottom: 1px solid var(--blue-light);
  border-radius: var(--ct-r-lg) var(--ct-r-lg) 0px 0px; }
  @media (max-width: 767px) {
    .infos_content .select-menu-hor-container {
      top: 60px;
      border-radius: 10px 10px 0px 0px;
      padding: 0px 15px;
      margin-left: -15px;
      margin-right: -15px; } }

.navbar .select-menu-hor-container {
  color: var(--menu-text-color);
  font-family: var(--title-font-family), sans-serif;
  background-color: var(--menu-background-color); }

.grid-4 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px; }
  @media (max-width: 767px) {
    .grid-4 {
      grid-template-columns: repeat(2, 1fr); } }

.grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px; }
  @media (max-width: 767px) {
    .grid-3 {
      grid-template-columns: repeat(1, 1fr); } }

.grid-2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px; }
  @media (max-width: 767px) {
    .grid-2 {
      grid-template-columns: repeat(1, 1fr); } }

.padding-top-50 {
  padding-top: 50px; }

.padding-top-30 {
  padding-top: 30px; }

.padding-top-25 {
  padding-top: 25px; }

.desk #cover_container {
  /*margin-top: 0px !important;*/ }

.shop-section .select-menu-hor-container {
  margin-top: 0px; }
  @media (min-width: 768px) {
    .shop-section .select-menu-hor-container {
      justify-content: center; } }
  @media (max-width: 767px) {
    .shop-section .select-menu-hor-container {
      padding-left: 15px !important; } }

.arborescence {
  padding: 10px 30px;
  display: inline-block;
  width: 100%;
  max-width: 1510px; }
  .arborescence a {
    color: var(--link-color); }
  .arborescence i {
    color: var(--link-color);
    opacity: 0.6;
    margin: 0px 6px;
    font-size: 1rem; }
  @media (max-width: 991px) {
    .arborescence {
      padding: 10px 15px; } }

.select-menu-hor, .nav > li {
  display: inline-block !important;
  padding: 16px;
  border-radius: 5px;
  background-color: transparent;
  color: inherit;
  position: relative !important;
  float: unset;
  margin-bottom: 0px; }
  .select-menu-hor:hover, .nav > li:hover {
    color: var(--blue-selected);
    cursor: pointer; }
  .select-menu-hor.hidden, .nav > li.hidden {
    display: none !important; }

.nav-tabs li > a {
  margin-right: 0px;
  line-height: inherit;
  border: none;
  border-radius: unset; }
  .nav-tabs li > a:hover {
    background-color: none !important;
    background: none !important; }

.nav > li > a {
  position: inherit;
  display: inherit;
  padding: 0px; }
  .nav > li > a:hover {
    background-color: none !important;
    background: none !important; }

.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus {
  color: var(--blue-selected);
  cursor: default;
  background-color: inherit;
  border: inherit;
  border-bottom-color: inherit; }

.selected-menu-hor, .select-menu-hor-container .active {
  color: var(--blue-selected); }
  .selected-menu-hor:after, .select-menu-hor-container .active:after {
    content: ' ';
    bottom: 0px;
    height: 3px;
    background-color: var(--blue-selected);
    left: 0px;
    width: 100%;
    position: absolute; }
  .selected-menu-hor:hover, .select-menu-hor-container .active:hover {
    color: var(--blue-selected);
    cursor: default; }

.no-pad-left {
  padding-left: 0; }

.no-pad-right {
  padding-right: 0; }

.daterangepicker {
  margin-top: 10px;
  box-shadow: 0px 0px 10px var(--shadow-strong);
  border-radius: 7px;
  border: none; }
  .daterangepicker .ranges li.active {
    background-color: var(--blue-selected); }

.daterangepicker td.active, .daterangepicker td.active:hover {
  background-color: var(--blue-selected); }

.select-page {
  padding-bottom: 0px;
  margin-left: 0px;
  padding-top: 0px;
  background-color: white;
  cursor: pointer; }

.select-page:hover {
  background-color: var(--selected-opacity); }

.main_section {
  position: relative;
  height: 100%;
  padding: 0px;
  display: flex;
  width: 100%; }
  @media (max-width: 767px) {
    .main_section {
      padding-left: 0px;
      padding-right: 0px; } }
  @media (min-width: 1391px) {
    .main_section {
      padding-top: 0px;
      padding-right: 0px; } }
  .main_section.shop-section {
    padding-left: 0px;
    padding-top: 60px; }
    @media (max-width: 767px) {
      .main_section.shop-section .insCont.inshop {
        display: none; } }
  .main_section.social-section {
    padding-left: 0px;
    padding-top: 0px; }
  .main_section form {
    flex: 1; }

#maintenance_notification {
  position: fixed;
  width: 100%;
  color: #eb4d11;
  padding: 4px 2px;
  background-color: rgba(255, 251, 223, 0.8);
  z-index: 10; }

#main-container {
  position: relative;
  min-height: calc(100vh - 60px);
  min-height: calc(100lvh - 60px);
  /* iOS : 100vh = barre rétractée → conteneur plus haut que l'écran (zone vide, 30/08) */
  width: 100%; }

.menu_navbar_param {
  min-width: 250px;
  position: absolute;
  background-color: var(--brand-solid);
  padding: 0px;
  right: 30px;
  top: 33px;
  border-left: 1px solid var(--brand-solid);
  border-right: 1px solid var(--brand-solid);
  border-bottom: 1px solid var(--brand-solid); }
  .menu_navbar_param ul {
    padding: 0;
    list-style-type: none;
    margin: 0;
    padding: 0; }
  .menu_navbar_param .menu_navbar_param_icon {
    display: inline-block;
    float: left;
    height: 18px;
    line-height: 18px;
    vertical-align: middle;
    width: 14px;
    text-align: left; }
  .menu_navbar_param .menu_navbar_param_label {
    float: left;
    padding-left: 10px;
    font-size: 1.3rem; }
  .menu_navbar_param .menu_navbar_param_link {
    padding: 8px 15px;
    height: 34px;
    border-top: 1px solid var(--brand-solid);
    transition: all 0.3s ease; }
    .menu_navbar_param .menu_navbar_param_link:hover {
      color: var(--link);
      background-color: white; }

.sousbloc {
  text-align: left;
  height: 40px;
  color: var(--text-2);
  padding-left: 15px;
  padding-right: 15px;
  background-color: var(--surface-muted);
  line-height: 40px; }

.sousbloc_content {
  padding: 20px 15px; }

.main_container {
  display: flex;
  justify-self: center;
  flex-direction: column;
  width: 100%;
  position: relative;
  background-color: transparent;
  box-shadow: 0px 0px 0px var(--field-line);
  padding-top: 15px; }

.main_container.groupPurchases .pageTitle {
  color: #1e4563; }
.main_container.groupPurchases .noResults {
  color: #1e4563;
  border-radius: 10px;
  padding: 10px;
  text-align: left; }

@media (max-width: 1199px) {
  .main_container.no_left_col {
    margin: 0px;
    padding: 0px;
    min-height: 100%; } }
@media (min-width: 1200px) {
  .main_container.no_left_col {
    margin: 20px;
    margin-left: auto;
    margin-right: auto; } }

.menu {
  vertical-align: middle;
  padding: 6px 10px; }

.menu-icon {
  width: 32px;
  vertical-align: middle; }

.custom_scroll {
  overflow-y: auto;
  scrollbar-width: thin;
  scroll-margin-right: 5px;
  /* Optional: show position indicator in red */ }
  .custom_scroll::-webkit-scrollbar {
    width: 12px;
    /* Remove scrollbar space */
    overflow: visible;
    height: 10px;
    margin: 10px 0px;
    background-color: transparent;
    /* Optional: just make scrollbar invisible */
    margin-top: 20px;
    top: 10px; }
  .custom_scroll::-webkit-scrollbar-thumb {
    border: 4px solid rgba(0, 0, 0, 0);
    background-clip: padding-box;
    border-radius: 9999px;
    background-color: var(--blue-light);
    right: -14px; }
  .custom_scroll ::-webkit-scrollbar-track-piece {
    min-width: 20px; }
  .custom_scroll:hover::-webkit-scrollbar-thumb:hover {
    background-color: var(--blue-medium); }

.custom_scroll_horizontal {
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
  /* Firefox */
  -ms-overflow-style: none;
  /* IE / vieux Edge */ }
  .custom_scroll_horizontal::-webkit-scrollbar {
    display: none;
    /* Chrome / Safari / Edge moderne */
    width: 0;
    height: 0; }

.ico-trash {
  cursor: pointer;
  color: var(--text-3); }

.ico-trash:hover {
  color: var(--danger-fg); }

.fa.faselection, .fas.faselection {
  color: #9ca1a7; }

.selectbox {
  position: absolute;
  color: inherit;
  background-color: white;
  width: auto;
  min-width: 240px;
  max-width: none;
  padding: 0;
  margin-top: 7px;
  top: 50px;
  left: 0px !important;
  z-index: 3001;
  display: none;
  line-height: 1em;
  box-shadow: 0 4px 16px 0 var(--shadow);
  border-radius: 10px;
  color: var(--text);
  text-align: left; }
  .selectbox a {
    color: var(--text); }
  .selectbox hr {
    margin: 6px 0px !important; }

.selectbox:before {
  top: -7px;
  left: 9px;
  border-right: 7px solid transparent;
  border-left: 7px solid transparent;
  border-bottom: 7px solid var(--surface); }

.selectbox:after {
  top: -6px;
  left: 10px;
  border-right: 6px solid transparent;
  border-bottom: 6px solid var(--surface);
  border-left: 6px solid transparent; }

.selectbox:before, .selectbox:after {
  position: absolute;
  display: inline-block;
  content: ''; }

.selectbox .boxheader {
  padding-left: 15px;
  color: var(--text);
  cursor: default; }
  .selectbox .boxheader .boxheaderaction {
    font-size: 1.3rem;
    color: #9ca1a7;
    padding-bottom: 2px;
    cursor: pointer; }
    .selectbox .boxheader .boxheaderaction i {
      font-size: 0.8em;
      padding-right: 2px; }
  .selectbox .boxheader .boxheadertitle {
    font-size: 1.5rem;
    color: #9ca1a7;
    padding: 5px 0px;
    cursor: pointer !important; }
    .selectbox .boxheader .boxheadertitle:hover {
      background-color: blue-light !important; }

#seetingselect {
  right: 0px;
  left: initial;
  padding: 10px;
  padding-top: 0px;
  padding-bottom: 10px !important;
  text-align: left; }

#seetingselect {
  right: 0px;
  left: initial;
  padding: 0px 10px;
  padding-top: 0px;
  text-align: left; }

#seetingselect .select-comparer-item::before {
  top: 0px; }

#seetingselect:before {
  top: -7px;
  right: 9px;
  left: initial; }

#seetingselect:after {
  top: -6px;
  right: 10px;
  left: initial; }

#comparerselect {
  left: 0px;
  top: 40px;
  color: var(--text); }

#comparerselect:before {
  top: -7px;
  left: 9px; }

#comparerselect:after {
  top: -6px;
  left: 10px; }

.select-comparer-item {
  padding: 15px 30px;
  margin: 3px 8px;
  border-radius: 4px;
  cursor: pointer;
  background-color: var(--blue-medium);
  white-space: nowrap; }

.select-comparer-item:hover {
  background-color: var(--blue-light); }

.selected-comparer-item {
  background-color: var(--blue-selected) !important;
  color: var(--text-inverse); }

.select-comparer-item b {
  display: block;
  width: 100%;
  font-size: var(--ds-fs-secondary);
  position: relative;
  margin-top: -15px;
  margin-bottom: 3px; }

.select-comparer-item::before {
  content: "";
  left: -17px;
  top: 9px;
  width: 6px;
  height: 12px;
  border: solid var(--surface);
  border-width: 0 2px 2px 0;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
  background-color: transparent;
  position: relative;
  display: inline-block;
  transition: transform ease 0.4s;
  transform-origin: center;
  opacity: 0; }

.selected-comparer-item::before {
  opacity: 1; }

.tarif-type {
  color: var(--text-3);
  font-weight: normal;
  background-color: transparent;
  width: 100%;
  height: 100%;
  padding: 10px 15px;
  text-align: center;
  border-radius: 4px 0px 0px 4px;
  cursor: pointer;
  background: var(--page-bg); }

.tarif-type:hover {
  background: linear-gradient(0deg, var(--surface-sunk), var(--surface-sunk)); }

.tarif-type-selected:hover {
  background: linear-gradient(0deg, var(--surface-sunk), var(--surface)); }

.tarif-type-selected {
  color: var(--blue-selected);
  width: 100%;
  height: 100%;
  cursor: default;
  background: linear-gradient(0deg, var(--surface-sunk), var(--surface)); }

.border-radius-left {
  border-radius: 4px 0px 0px 4px; }

.border-radius-right {
  border-radius: 0px 4px 4px 0px; }

.navbar {
  margin-bottom: 0px;
  border: none; }

.navbar-toggle[type=button] {
  background-color: var(--brand-solid) !important;
  color: var(--text-inverse) !important;
  border: none !important;
  margin-top: 0px;
  margin-bottom: 0px;
  margin-right: 0px;
  height: 40px;
  width: 35px;
  padding: 0; }

.navbar-toggle:hover {
  background-color: var(--brand-solid) !important;
  color: #E4E4E4 !important; }

.validation_buttons {
  padding-top: 20px;
  padding-bottom: 20px; }

.annuler_cross {
  cursor: pointer;
  color: var(--danger-fg);
  vertical-align: middle; }
  .annuler_cross:hover {
    cursor: pointer;
    color: var(--danger-fg); }

.black-link {
  cursor: pointer;
  color: var(--text); }
  .black-link :hover {
    color: var(--blue-primary); }

.edit_icon {
  cursor: pointer;
  color: var(--link);
  vertical-align: middle; }
  .edit_icon:hover {
    cursor: pointer;
    color: var(--link); }

.btn {
  position: relative;
  z-index: 1;
  padding: 8px 16px;
  border-radius: var(--border-radius-little);
  width: auto;
  cursor: pointer;
  border: 0px solid;
  overflow: hidden;
  font-size: inherit;
  white-space: nowrap;
  border-radius: var(--border-radius-little);
  text-align: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px; }
  .btn > i,
  .btn > img,
  .btn > svg {
    margin-right: 0; }
  .btn:focus {
    opacity: 1; }
  .btn:hover:not(.btn-light):not(.btn-default), .btn :focus:not(.btn-light):not(.btn-default), .btn :active:not(.btn-light):not(.btn-default) {
    filter: brightness(1.1);
    opacity: 1; }
  .btn.btn-google:hover, .btn.btn-google :focus, .btn.btn-google :active, .btn.btn-apple:hover, .btn.btn-apple :focus, .btn.btn-apple :active {
    filter: brightness(0.97); }

input.btn-primary {
  background: var(--blue-selected); }

input.btn-primary:hover, input.btn-primary:focus, input.btn-primary:active {
  background: var(--blue-selected);
  opacity: 0.7; }

.st-Obl {
  color: var(--red-danger); }

.btn-medium {
  position: relative;
  z-index: 1;
  width: auto;
  padding: 14px 24px;
  color: var(--text);
  background: var(--blue-light); }

.btn-danger {
  position: relative;
  z-index: 1;
  color: var(--text-inverse);
  border-color: transparent;
  background: #eb4d11; }
  .btn-danger a {
    color: var(--danger-fg); }

.btn-primary {
  position: relative;
  z-index: 1;
  cursor: pointer;
  border-color: transparent;
  border: 0px solid;
  background: var(--blue-selected); }

.btn-primary:not(.shop-frontend *) {
  color: var(--text-inverse) !important; }

.shop-frontend .btn-primary {
  color: var(--text-inverse); }

.btn-inactive {
  position: relative;
  z-index: 1;
  color: var(--text);
  cursor: default;
  background: var(--blue-medium); }

.btn-new {
  position: relative;
  z-index: 1;
  color: var(--text-inverse);
  cursor: pointer;
  border-color: transparent;
  background: var(--info-solid); }

.btn-white {
  position: relative;
  z-index: 1;
  text-align: center;
  width: auto;
  margin: 3px;
  border-radius: var(--border-radius-little);
  height: auto;
  width: auto;
  padding: 10px 20px;
  background: white; }
  .btn-white:hover {
    color: var(--blue-selected); }

.btn-light, .btn-default {
  position: relative;
  z-index: 1;
  text-align: center;
  width: auto;
  height: auto;
  width: auto;
  padding: 8px 10px;
  color: var(--text);
  overflow: visible;
  background: var(--blue-light); }
  .btn-light:hover, .btn-default:hover {
    background: var(--blue-medium); }
  .btn-light.hightlight, .hightlight.btn-default {
    color: var(--text-inverse);
    background: var(--color-primary); }
    .btn-light.hightlight:hover, .hightlight.btn-default:hover {
      color: var(--text-inverse) !important;
      border-color: transparent; }

.btn-transparent {
  position: relative;
  z-index: 1;
  text-align: center;
  color: var(--text);
  background: transparent; }
  .btn-transparent:hover {
    color: var(--blue-selected); }

.btn-navbar-action {
  position: relative;
  z-index: 1;
  height: 55px;
  border-radius: 0px;
  position: relative;
  line-height: 32px;
  color: var(--text-inverse);
  margin-right: 0px; }
  .btn-navbar-action:after {
    background: rgba(255, 255, 255, 0.2); }
  .btn-navbar-action:hover {
    background: rgba(255, 255, 255, 0.1);
    color: var(--text-inverse); }
    .btn-navbar-action:hover:after {
      background: rgba(255, 255, 255, 0.1); }

.btn-ghost {
  border: 1px solid var(--blue-medium);
  background: transparent;
  color: var(--blue-dim); }
  .btn-ghost:not(.shop-frontend *):hover {
    border: 1px solid var(--blue-selected) !important;
    color: var(--blue-selected) !important; }

.btn-google {
  border-radius: 5px;
  width: 100%;
  margin: 0px;
  margin-bottom: 10px;
  margin-top: 10px; }

.btn-apple {
  border-radius: 5px;
  width: 100%;
  margin: 0px;
  margin-bottom: 10px; }

.d-inline-block {
  display: inline-block !important; }

.validation-summary-errors ul {
  list-style: none;
  padding-left: 0px; }

.form-actions {
  margin-top: 10px; }

#storeselect {
  padding-bottom: 3px; }

.inventaire_icon, .download_icon {
  padding-left: 0px;
  padding-right: 0px; }
  .inventaire_icon span, .download_icon span {
    padding-top: 1px;
    width: 30px;
    height: 30px;
    line-height: 30px;
    color: var(--text-2); }
  .inventaire_icon:hover, .download_icon:hover {
    cursor: pointer; }

.annuler_icon span {
  color: var(--danger-fg); }
.annuler_icon:hover span {
  color: var(--danger-fg); }

.valider_icon span {
  color: var(--ok-fg); }
.valider_icon:hover span {
  color: #00dd00; }

.creer_art_icon, .nouveau_icon {
  padding-left: 0px;
  padding-right: 0px; }
  .creer_art_icon span, .nouveau_icon span {
    width: 30px;
    height: 30px;
    line-height: 32px;
    color: var(--text-2); }

.creer_art_icon span {
  line-height: 32px; }

.srch_infos {
  background-color: white;
  margin-right: 0px;
  margin-left: 0px;
  border-top: 1px solid var(--line-strong);
  border-bottom: 1px solid var(--line-strong); }
  .srch_infos .form-control {
    padding-left: 10px;
    padding-right: 10px; }

.ligne_option {
  border-bottom: 1px solid var(--line); }

body.modal-open {
  text-align: center;
  font-weight: normal;
  height: 100%;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding: 0;
  overflow-y: hidden; }

.shadow-left {
  left: 20px;
  bottom: 15px;
  transform: rotate(-3deg); }

.shadow-right {
  right: 20px;
  bottom: 15px;
  transform: rotate(3deg); }

.modal-open .navbar-fixed-top, .modal-open .navbar-fixed-bottom {
  margin-right: 0;
  border-width: 0; }

/* Chantier design (07/10) : en-tête et croix de la fenêtre commune (showModal) portés par des placeholders,
   partagés avec ConfirmDialog (_ds-feedback.scss) — une seule famille de fenêtres, une seule source de style. */
.modal-header, .ds-confirm .ds-confirm-head {
  padding: 15px 20px;
  font-weight: bold;
  font-size: 1.8rem;
  text-align: left;
  border-bottom: 1px solid var(--blue-light);
  position: sticky;
  top: 0;
  background-color: var(--surface);
  border-radius: var(--border-radius-medium) var(--border-radius-medium) 0px 0px;
  z-index: 3; }

.modal-header i, .ds-confirm .ds-confirm-close {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  float: right;
  padding: 3px 6px;
  margin-top: 1px;
  background: var(--surface-sunk);
  border-radius: calc(var(--border-radius-medium) - 1px);
  margin-right: -5px;
  cursor: pointer; }

#modal-container, #modal_filter_family {
  /*border: 0 none;*/
  position: fixed;
  margin-left: auto;
  margin-right: auto;
  margin-top: 0;
  margin-bottom: 0;
  right: 0;
  top: 0;
  z-index: 20000;
  justify-content: center;
  align-items: center;
  width: 100%; }
  #modal-container .wrapper, #modal_filter_family .wrapper {
    height: 100%;
    padding: 20px 0px;
    width: calc(100vw - 3px);
    /* Centrage horizontal du .modal-dialog (display:inline-block) sans dépendre du text-align hérité
       du body : certaines pages (builder/customize) posent text-align:left sur des conteneurs ancêtres,
       ce qui décalait le modal à gauche. On force le centrage ici. */
    text-align: center; }
  #modal-container .wrapper:before, #modal_filter_family .wrapper:before {
    content: '';
    height: 100%;
    width: 0;
    vertical-align: middle;
    display: inline-block; }

.modal-body {
  padding: 10px 20px 20px;
  position: relative;
  border-radius: 7px; }
  .modal-body #corps {
    min-height: unset; }

.control-label, .happyh_label {
  font-size: 0.95em;
  font-weight: bold;
  color: var(--text-2); }

.control-label {
  padding-top: 6px;
  margin-bottom: 3px;
  overflow: hidden;
  text-overflow: ellipsis;
  padding-top: 12px !important;
  text-transform: uppercase;
  text-align: left !important; }

.custom-input {
  border: none;
  border-color: inherit;
  -webkit-box-shadow: none;
  background-color: transparent;
  outline: none;
  -webkit-touch-callout: none;
  /* iOS Safari */
  -webkit-user-select: none;
  /* Chrome/Safari/Opera */
  -moz-user-select: none;
  /* Firefox */
  -ms-user-select: none;
  /* Internet Explorer/Edge */
  user-select: none;
  cursor: default;
  text-align: left;
  display: block;
  width: 100%;
  height: 28px;
  padding: 3px 12px;
  font-size: 1.4rem;
  line-height: 1.428571429;
  vertical-align: middle; }

.custom-display {
  border: none;
  border-color: inherit;
  -webkit-box-shadow: none;
  background-color: transparent;
  outline: none;
  -webkit-touch-callout: none;
  /* iOS Safari */
  -webkit-user-select: none;
  /* Chrome/Safari/Opera */
  -moz-user-select: none;
  /* Firefox */
  -ms-user-select: none;
  /* Internet Explorer/Edge */
  user-select: none;
  cursor: default;
  width: 100%;
  vertical-align: middle; }

.custom-input input:focus {
  outline: 0; }

.btn-form {
  margin: 5px; }

.form-submit-row {
  padding-top: 30px;
  padding-bottom: 5px; }

.plus_option {
  padding-bottom: 5px;
  position: relative;
  width: 36px;
  left: calc(50% - 18px); }
  .plus_option a {
    color: var(--text-disabled); }
    .plus_option a:hover {
      color: var(--text-disabled); }

.vcenter {
  display: inline-block;
  vertical-align: middle;
  float: none;
  margin-right: -3px; }
  .vcenter p {
    margin: 0px; }

.body-content {
  padding-left: 15px;
  padding-right: 15px; }

.content {
  width: 100%;
  min-height: 100%;
  height: auto;
  margin-left: auto;
  margin-right: auto; }

.entete {
  /*height:80px;*/
  top: 0px;
  position: sticky;
  z-index: 100;
  transform: translate3d(0, 0, 0);
  height: 60px;
  margin-left: 0px;
  background: var(--surface);
  color: var(--text);
  transition: background-color 0.3s ease-out, color 0.3s ease-out;
  box-shadow: 0px 0px 2px var(--shadow);
  display: inline-block;
  width: 100%;
  padding: 0px; }
  .entete.fademenu:not(:hover) {
    color: var(--blue-medium);
    background: linear-gradient(-180deg, var(--overlay) 0%, var(--overlay) 51%, rgba(0, 0, 0, 0) 100%);
    box-shadow: none; }
  .entete.pro {
    background: #1e4563; }
    .entete.pro .searchbar {
      background: rgba(2, 10, 41, 0.26);
      color: var(--text-inverse); }
    .entete.pro .companyname {
      background: rgba(162, 206, 255, 0.13);
      color: var(--text-inverse); }

.entete-child {
  text-align: left; }

#logo {
  border-radius: 5px;
  height: 54px; }
  @media (max-width: 767px) {
    #logo {
      height: 40px; } }

.menuactif {
  color: var(--link);
  font-weight: normal;
  cursor: default;
  text-decoration: none; }

#right {
  background-color: white;
  border: 1px solid var(--line);
  padding: 10px;
  overflow: hidden;
  padding-bottom: 30px; }
  @media (max-width: 767px) {
    #right {
      padding-top: 0px;
      padding-left: 0px;
      padding-right: 0px; } }

@media (min-width: 1200px) {
  .pull-right-lg {
    float: right; } }

.titre {
  color: var(--link);
  font-size: 1.4rem;
  font-weight: bold;
  padding: 10px;
  padding-bottom: 20px;
  text-align: left;
  display: none; }

.titre_header {
  padding: 10px;
  padding-bottom: 20px;
  padding-top: 6px; }

.soustitre.premier_st, .soustitre.noleft_col.premier_st {
  border-top: none; }

.stat-result {
  color: var(--text);
  font-size: 2.1rem;
  font-weight: 500;
  display: inline-block;
  padding-top: 3px; }

#RateProfit_ByPeriod {
  margin-left: 6px; }

.ligne_facture, .ligne_client, .ligne_vendeur {
  padding-bottom: 8px;
  padding-top: 8px;
  border-bottom: solid 1px var(--line-strong); }

.primary_info {
  font-weight: bold;
  font-size: 1em; }

.secondary_info {
  font-weight: normal;
  font-size: 1em; }

.tertiary_info {
  font-weight: normal;
  font-size: 1em;
  color: var(--text-2); }

.soustitre {
  text-align: left;
  padding-bottom: 6px; }
  .soustitre .st-Opt {
    color: var(--text-disabled);
    display: inline-block;
    margin-left: 10px;
    text-transform: none; }
@media (min-width: 1180px) and (max-width: 1345px) {
  .soustitre .st-Opt {
    display: none; } }

  .soustitre .st-Obl {
    color: var(--red-danger);
    font-size: 2rem;
    margin-top: -3px;
    display: inline-block;
    max-height: 12px;
    vertical-align: top;
    overflow: hidden; }

.pad-bottom-0 {
  padding-bottom: 0px !important; }

.pad-bottom-5 {
  padding-bottom: 5px !important; }

.pad-bottom-10 {
  padding-bottom: 10px !important; }

.pad-top-10 {
  padding-top: 10px; }

.margin-right-6 {
  margin-right: 6px; }

.blue-light-border-top {
  border-top: 1px solid var(--blue-light); }

.blue-light-border-bottom {
  border-bottom: 1px solid var(--blue-light); }

.infos_content-add-btn-bottom {
  padding-top: 15px;
  margin-top: 0px;
  padding-bottom: 13px !important; }

.login_logout {
  font-size: var(--ds-fs-secondary);
  font-weight: normal;
  padding-right: 20px;
  color: var(--text-inverse);
  height: 26px; }
  .login_logout a {
    color: var(--text-inverse); }
    .login_logout a:hover {
      color: var(--text); }

.save_div {
  padding-top: 20px;
  padding-bottom: 20px; }
  @media (max-width: 1200px) {
    .save_div {
      padding-bottom: 30px; } }

.save_div_no_leftcol {
  padding-top: 20px;
  padding-bottom: 20px; }
  @media (max-width: 990px) {
    .save_div_no_leftcol {
      background-color: var(--surface-sunk);
      border-top: 1px solid var(--line-strong); } }

.icon {
  color: var(--text-2);
  height: 30px;
  width: 30px;
  line-height: 30px;
  padding: 0px;
  margin-left: auto;
  margin-right: auto;
  cursor: pointer; }

#login_logout_icon_btn {
  background-color: transparent;
  width: 100%;
  height: 100%;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: flex-start; }

.initial_button {
  position: relative; }

.initial_button.clicked {
  cursor: pointer; }

.initial_text {
  width: 40px;
  height: 40px;
  border-radius: 20px;
  background: url("");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  display: flex;
  justify-content: center;
  background-color: var(--blue-selected);
  color: var(--text-inverse); }

#search_bar_container {
  background-color: var(--surface);
  display: inline-block;
  width: 100%; }
  #search_bar_container input:focus, #search_bar_container input:active {
    border-color: var(--blue-selected) !important; }

.individual_navbar .initial_button {
  position: relative; }

.professional_navbbar .initial_button {
  position: relative; }
  .professional_navbbar .initial_button .initial_text {
    color: var(--title);
    background-color: var(--surface); }

.tri-box-selectedinstitution {
  text-align: left;
  right: 10px;
  left: unset; }

#selectedinstitution-loading {
  margin-left: 3px;
  margin-top: 0px;
  margin-bottom: 12px; }

.selectedInstitutionThumbnail {
  cursor: pointer;
  display: inline-block;
  width: 100%; }

.brand-opt {
  display: block;
  color: inherit;
  text-decoration: none; }
  .brand-opt:hover, .brand-opt:focus {
    color: inherit;
    text-decoration: none; }

.brand-opt-row {
  padding: 10px 0px;
  display: flex;
  align-items: center;
  border-top: 1px solid var(--line); }

.brand-logo {
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  margin-left: 15px;
  margin-right: 10px;
  border-radius: 10px;
  background-color: var(--surface);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain; }

.brand-logo-initials {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--surface-sunk);
  color: var(--text-2);
  font-weight: 600; }

.brand-text {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding-right: 50px;
  color: var(--text); }

.brand-detail {
  color: var(--text-3);
  font-size: var(--ds-fs-secondary); }

.brand-check {
  position: absolute;
  right: 25px;
  margin-right: 0px;
  color: var(--blue-selected);
  font-size: 1.8rem; }

.brand-loading {
  position: absolute;
  right: 31px; }

.brand-search {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 10px;
  padding: 0 10px;
  border: 1px solid var(--line);
  border-radius: 6px;
  font-weight: normal; }
  .brand-search[hidden] {
    display: none; }
  .brand-search input {
    flex: 1 1 auto;
    min-width: 0;
    height: 34px;
    border: 0;
    outline: none;
    background: transparent;
    color: var(--text); }

.brand-search-empty {
  padding: 10px 15px;
  color: var(--text-3); }

.selectedInstitutionThumbnail:hover {
  background-color: var(--surface-muted); }

.menu_navbar_div {
  height: auto;
  width: 380px;
  min-width: 0px;
  background: white;
  cursor: default;
  padding: 0px 20px 10px;
  padding-right: 8px;
  right: 90px;
  text-align: left;
  transition: all ease 0.5s;
  transform: scaleX(380px);
  display: none;
  box-shadow: -10px 0px 10px -10px var(--shadow-strong); }
  @media (max-width: 420px) {
    .menu_navbar_div {
      width: 100%; } }
  .menu_navbar_div i {
    margin-right: 2px;
    width: 26px; }

.first-nav #menu_navbar_param_div {
  position: fixed;
  left: 0px;
  top: 0px;
  margin-top: 0px;
  border-radius: 0px;
  height: 100vh;
  margin-top: 0px; }

#menu_navbar_param_div {
  position: fixed;
  left: unset;
  right: 0px;
  top: 0px;
  margin-top: 0px;
  border-radius: 0px;
  height: 100vh;
  margin-top: 0px; }

.modal-backdrop {
  opacity: 0;
  /* Doctrine « teinte de barre » Safari iOS ≥26 (voir .sidebar-backdrop, _menu.scss) : le fixed
     plein écran reste transparent, le fond va sur un ::before absolu ignoré par Safari. */
  background-color: transparent;
  transition: opacity .2s;
  z-index: 10000; }
  .modal-backdrop::before {
    content: '';
    position: absolute;
    inset: 0;
    background-color: var(--surface-sunk); }
  .modal-backdrop.in, body > .modal-backdrop.show {
    opacity: .9; }

/* Voile du panneau « Vos enseignes » (_UserPopup.cshtml) : le fond #00000066 est posé en INLINE
   sur ce fixed plein écran — même doctrine, !important pour battre le style inline. */
#menu_navbar_background_div {
  background: transparent !important; }

#menu_navbar_background_div::before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--overlay); }

.menu_navbar_div:before {
  top: -7px;
  right: 20px;
  left: initial; }

.menu_navbar_div:after {
  top: -6px;
  right: 21px;
  left: initial; }

.flag-selected {
  box-shadow: 0px 0px 5px var(--info-solid);
  border: 1px solid var(--info-solid); }

.language {
  display: inline-block;
  vertical-align: middle; }

.flag-language {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  display: inline-block;
  width: 30px;
  height: 20px;
  margin: 4px 0px;
  border-radius: 7px; }

.flag-Francais {
  background-image: url("/Content/Images/francais-flag.png"); }

.flag-English {
  background-image: url("/Content/Images/english-flag.png"); }

.navbar-menu {
  text-align: left;
  padding: 10px;
  padding-left: 68px;
  width: 100%;
  position: relative; }
  .navbar-menu i {
    width: 26px; }
  .navbar-menu a {
    color: var(--text-inverse); }
    .navbar-menu a:hover {
      color: var(--text-inverse);
      opacity: 0.8; }

.link-danger {
  color: #eb4d11; }

.link-danger:hover, .link-danger:active, .link-danger:focus {
  opacity: 0.8;
  color: #eb4d11; }

.link-danger-light {
  color: #ffcdc1; }

.link-danger-light:hover, .link-danger-light:active, .link-danger-light:focus {
  opacity: 0.7;
  color: #ffcdc1; }

#titre_mobile {
  font-size: 1em;
  font-weight: bold; }

.main-content {
  height: 100%; }

.loadingChart, .loadingChartVisits, .loadingChartVisitsDetails {
  position: absolute;
  width: 72px;
  left: 50%;
  margin-left: -36px;
  height: 72px;
  top: 50%;
  margin-top: -26px; }

#FormArticles .loadingChart {
  margin-left: -40px;
  margin-top: -54px; }
  @media (max-width: 767px) {
    #FormArticles .loadingChart {
      margin-left: -30px;
      top: 220px; } }

.infos_content {
  background-color: white;
  padding-top: 15px;
  padding-bottom: 20px;
  border: 0px solid var(--line);
  margin-top: 10px;
  padding-left: 5px;
  padding-right: 5px;
  /*box-shadow: $p-card-shadow;*/
  border-radius: var(--border-radius-medium);
  margin-bottom: 10px; }
  @media (min-width: 768px) {
    .infos_content {
      border: 1px solid var(--blue-light);
      /*box-shadow: $tradastra-default-shadow !important;*/ } }
  .infos_content .ct-kpi-label {
    display: inline-block;
    margin-bottom: 15px; }

.infos_content_btn {
  padding: 10px !important;
  width: auto;
  cursor: pointer;
  color: var(--text);
  border-radius: 10px;
  background: linear-gradient(0deg, var(--surface-sunk), var(--surface));
  margin-right: 10px;
  margin-top: 0px; }

.infos_content_btn i {
  padding-right: 3px;
  padding-left: 3px; }

.infos_content_btn:hover {
  background: linear-gradient(0deg, var(--surface-sunk), var(--surface-sunk)); }

@media (min-width: 991px) {
  .infos_content.noleft_col {
    height: 100%;
    border: 1px solid var(--line);
    margin: 8px;
    padding-left: 5px;
    padding-right: 5px; } }

#comparerange {
  float: left;
  margin-left: 6px; }

.doubleleft {
  padding-right: 0px; }

.doubleright {
  padding-left: 0px; }

.item_options_icon {
  cursor: pointer;
  color: var(--link);
  padding-top: 13px;
  vertical-align: middle; }
  .item_options_icon:hover {
    color: var(--link); }
  @media (max-width: 767px) {
    .item_options_icon {
      padding-top: 12px;
      vertical-align: middle; } }

.infos_content {
  padding: 40px; }
  @media (max-width: 767px) {
    .infos_content {
      padding: 25px 15px; } }
  .infos_content .noMargin {
    display: inline-block;
    margin: 0px -15px;
    width: calc(100% + 30px); }

#SelectedInstitutionForCurrentUserText {
  display: none;
  padding-right: 5px;
  flex-direction: column; }
  @media (min-width: 1391px) {
    #SelectedInstitutionForCurrentUserText {
      display: flex; } }
  @media (max-width: 767px) {
    #SelectedInstitutionForCurrentUserText {
      display: flex; } }

.noMargin {
  margin: 0px; }

.ajout_link {
  padding: 5px 10px;
  font-size: 1.3rem;
  background-color: var(--blue-medium);
  color: var(--text);
  border-radius: 5px;
  font-family: inherit;
  font-weight: normal;
  float: right;
  text-transform: normal;
  margin-right: 10px;
  margin-top: -6px;
  margin-bottom: -9px; }
  .ajout_link i {
    margin-right: 3px !important; }
  .ajout_link a {
    color: var(--text);
    font-size: 1.3rem;
    vertical-align: top; }
    .ajout_link a:hover {
      color: var(--text); }

@media (max-width: 1205px) {
  .home {
    padding-right: 10px; } }
@media (max-width: 1100px) {
  .home {
    padding: 0px 10px; } }
@media (max-width: 767px) {
  .home {
    padding: 0px 0px; } }

.ajout_variante {
  padding-top: 15px; }

#client_panel {
  padding-bottom: 10px; }

#article_panel, #client_panel {
  border-bottom: 1px solid var(--line);
  background-color: white;
  position: fixed;
  z-index: 10;
  width: calc(70% - 135px);
  display: none; }
  @media (max-width: 1057px) {
    #article_panel, #client_panel {
      width: calc(100% - 450px); } }
  @media (min-width: 1323px) {
    #article_panel, #client_panel {
      width: calc(100% - 530px); } }
  @media (min-width: 1200px) {
    #article_panel, #client_panel {
      padding-top: 10px; } }

#articles_wrapper, #col_wrapper {
  position: relative;
  height: auto;
  display: inline-block;
  width: 100%;
  min-height: calc(100vh - 60px);
  min-height: calc(100lvh - 60px);
  /* iOS : 100vh = barre rétractée → conteneur plus haut que l'écran (zone vide, 30/08) */ }
  @media (min-width: 1200px) {
    #articles_wrapper, #col_wrapper {
      padding: 0px; } }

#articles_main_container, #col_main_container, #clients_main_container {
  min-height: calc(100vh - 80px);
  min-height: calc(100lvh - 80px);
  /* iOS : idem — voir 30/08 */
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto; }

#img {
  display: block;
  overflow: hidden;
  height: 100px;
  margin-bottom: 15px;
  margin-left: auto; }
  #img img {
    display: block;
    margin-left: auto;
    margin-right: auto;
    height: 80px;
    width: 80px;
    border: 2px solid var(--line);
    border-radius: 40px; }
  @media (max-width: 340px) {
    #img {
      height: 70px; }
      #img img {
        height: 70px;
        width: 70px;
        border-radius: 35px; } }

.horizontal-submenu {
  font-size: 1.4rem;
  font-weight: normal;
  line-height: 1.2;
  color: var(--blue-dark);
  padding-top: 8px;
  position: relative;
  text-align: left; }

.horizontal-submenu span, .horizontal-submenu #actionLink {
  padding-right: 20px;
  display: inline-block;
  position: relative; }
  .horizontal-submenu span:hover, .horizontal-submenu #actionLink:hover {
    color: var(--info-fg);
    cursor: pointer; }
  @media (max-width: 350px) {
    .horizontal-submenu span, .horizontal-submenu #actionLink {
      padding-right: 0px; } }

.horizontal-submenu span i, .horizontal-submenu #actionLink i {
  margin-right: 6px; }

.horizontal-submenu span .fa-caret-down {
  margin-right: 0px;
  margin-left: 3px; }

.horizontal-submenu span .action-link {
  margin-left: 3px;
  margin-right: 3px; }

.field-validation-error {
  background: color-mix(in srgb, var(--red-danger), var(--surface) 90%);
  border-left: 3px solid var(--red-danger);
  border-radius: var(--border-radius-little);
  padding: 10px 14px;
  font-size: 1.3rem;
  text-align: left;
  color: var(--red-danger);
  min-height: 44px;
  display: flex;
  align-items: center;
  width: 100%; }
  .field-validation-error::before {
    content: '\f06a';
    /* fa-circle-exclamation */
    font-family: "Font Awesome 6 Pro";
    font-weight: 300;
    /* light */
    margin-right: 10px;
    flex-shrink: 0; }

.input-search-button {
  position: absolute;
  width: 35px;
  height: calc(100% - 2px);
  right: 1px;
  top: 1px;
  display: flex;
  border-left: 1px solid var(--line);
  border-radius: 0px 4px 4px 0px;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: var(--blue-dark);
  cursor: pointer;
  background-color: var(--blue-light); }
  .input-search-button:hover {
    color: var(--blue-selected); }

.title {
  font-size: 2.5rem;
  font-weight: 600;
  line-height: 1.2; }

@media (min-width: 768px) {
  .link_articles_infos .fa {
    float: none;
    text-align: center; }

  .container {
    /*max-width: 1200px;*/ }

  .separemenu {
    display: block !important; }

  .text-content {
    padding-left: 50px !important; }

  .padRecherche {
    padding-right: 5px !important; }

  .padTarif {
    padding-left: 5px !important; } }
@media (max-width: 767px) {
  .gen_codeb p, .print_codeb p, .tag_codeb p {
    max-width: 280px;
    margin-right: auto !important;
    margin-left: auto !important; }

  #cph_cod {
    /*margin-bottom:10px;*/ }

  .link_articles_infos {
    float: left;
    text-align: left; }

  .link_articles_infos .fa {
    width: 20px;
    height: 20px;
    line-height: 20px;
    display: block;
    float: left;
    position: absolute; }

  .link_articles_infos .visible-xs {
    display: block;
    float: left;
    text-align: left;
    font-size: var(--ds-fs-secondary);
    margin-left: 20px;
    line-height: 20px; }

  .body-content {
    padding-left: 0px !important;
    padding-right: 0px !important; }

  .publication_header {
    padding-left: 15px !important; }

  .menu {
    text-align: left; }

  .navbar-header {
    float: none; }

  .searchbar {
    width: 100% !important; }

  .notificationBox {
    width: calc(100vw - 40px) !important;
    right: 0px !important; }

  .navbar-toggle {
    display: block; }

  #home_timeline {
    padding: 20px 0px !important; }

  #profile_image_container {
    width: 100px !important;
    height: 100px !important; }

  .cover_img {
    width: 100%;
    height: 100%;
    object-fit: cover; }

  #profile_img_div {
    width: 90px !important;
    height: 90px !important; }

  .doubleright, .doubleleft {
    		/*padding-left: 10px;
            padding-right: 10px;*/ }

  .main_container {
    margin-left: 0px; }

  .navbar-nav {
    float: none !important;
    margin: 7.5px -15px; }

  .navbar-nav > li {
    float: none; }

  .navbar-nav > li > a {
    padding-top: 10px;
    padding-bottom: 10px; }

  .navbar-text {
    float: none;
    margin: 15px 0; }

  /* since 3.1.0 */
  .navbar-collapse.collapse.in {
    display: block !important; }

  .navbar-collapse.collapse {
    display: none !important; }

  .collapsing {
    overflow: hidden !important; }

  .separemenu {
    display: none; }

  .separemenuxs {
    width: 100%;
    height: 2px;
    float: left;
    font-family: Arial;
    background-color: var(--surface-muted);
    background-repeat: no-repeat;
    text-decoration: none;
    padding: 0px;
    margin: 5px 0px; }

  .text-content {
    padding-left: 15px; }

  .padRecherche {
    padding: 0px 10px 0px 0px; }

  .padTarif {
    padding: 0px 10px 0px 0px; }

  #listInstitutions {
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical; }

  .infos_content_title {
    padding: 0px 5px !important;
    padding-bottom: 15px !important; }

  .mentions_container.large_screen {
    display: none !important; }
  .mentions_container.little_screen {
    display: inline-block !important; }

  .container-fluid {
    padding-left: 0px;
    padding-right: 0px; }

  .modal-body .container-fluid {
    padding-left: 10px;
    padding-right: 10px; }

  #imgArticle .imgArticle_preview {
    width: 70px !important;
    height: 70px !important; }

  #FormArticles .imgArticle_preview {
    width: 100% !important;
    height: 100% !important; }

  .headerArticle .title {
    font-size: 1.8rem; }

  #unavailableLabel span {
    display: none; } }
#listInstitutions .select-page:last-child .row {
  border-bottom: 0px solid !important; }

.sticky-left {
  position: sticky;
  left: 0px; }

.mentions_container.large_screen {
  display: inline-block; }
.mentions_container.little_screen {
  display: none; }

.infos_content_title {
  padding: 0px 25px;
  padding-bottom: 15px;
  border-bottom: 1px solid var(--line);
  box-shadow: none;
  margin-top: 3px;
  text-align: left; }

.srch_titre {
  height: 40px;
  position: fixed;
  background-color: white;
  z-index: 2;
  border-bottom: 1px solid var(--line);
  width: 100%; }
  @media (max-width: 767px) {
    .srch_titre {
      height: 40px;
      margin: 0; } }
  @media (min-width: 768px) {
    .srch_titre {
      position: relative;
      padding-left: 10px;
      padding-right: 10px; } }

.little-canvas-stats {
  height: 280px; }

.medium-canvas-stats {
  height: 200px; }

.large-canvas-stats {
  width: 100%;
  min-height: 300px; }
  @media (max-width: 767px) {
    .large-canvas-stats {
      overflow-x: auto; } }

.pageTitle {
  text-align: left;
  font-weight: bold;
  margin: 10px;
  margin-top: 30px;
  margin-bottom: 10px; }
  .pageTitle span {
    font-size: 2.8rem; }

#notificationNumberBag {
  position: relative; }

.mentions_container {
  font-size: 1.5rem;
  color: var(--blue-light);
  text-align: center;
  padding: 20px var(--sp-4, 16px);
  box-sizing: border-box;
  display: inline-block;
  width: 100%; }
  .mentions_container a {
    color: var(--blue-light); }
    .mentions_container a:hover {
      text-decoration: underline; }

.principal_checkbox {
  vertical-align: middle;
  width: 28px;
  transition: opacity 0.2s ease; }

.onoff-checkbox {
  width: 30px;
  height: 18px; }
  .onoff-checkbox input {
    display: none; }
    .onoff-checkbox input + label {
      height: 100%;
      width: 100%; }
      .onoff-checkbox input + label > .status-switch {
        cursor: pointer;
        width: 100%;
        height: 100%;
        position: relative;
        background-color: var(--blue-medium);
        color: var(--text-inverse);
        transition: all 0.5s ease;
        padding: 2px;
        border-radius: 9px;
        display: block; }
        .onoff-checkbox input + label > .status-switch:before, .onoff-checkbox input + label > .status-switch:after {
          border-radius: 8px;
          height: calc(100% - 4px);
          width: 14px;
          display: flex;
          align-items: center;
          position: absolute;
          justify-content: center;
          transition: all 0.3s ease; }
        .onoff-checkbox input + label > .status-switch:before {
          background-color: var(--surface);
          color: var(--text);
          box-shadow: 0 0 4px 4px rgba(0, 0, 0, 0.02);
          left: 2px;
          z-index: 10;
          content: ' '; }
        .onoff-checkbox input + label > .status-switch:after {
          right: 0;
          content: ' '; }
    .onoff-checkbox input:checked + label > .status-switch {
      background-color: var(--blue-selected); }
      .onoff-checkbox input:checked + label > .status-switch:after {
        left: 0;
        content: ' '; }
      .onoff-checkbox input:checked + label > .status-switch:before {
        color: var(--blue-selected);
        left: calc(50% - 1px);
        content: ' '; }

.max-line-3 {
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical; }

.max-line-6 {
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 6;
  -webkit-box-orient: vertical; }

.max-line-10 {
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 10;
  -webkit-box-orient: vertical; }

.max-line-20 {
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 20;
  -webkit-box-orient: vertical; }

.max-line-2 {
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical; }

.max-line-1 {
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical; }

.logo-container {
  top: 0;
  left: 0px;
  vertical-align: top;
  margin: 0px;
  margin-left: 20px;
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  flex: unset;
  overflow: visible;
  justify-self: anchor-center;
  align-self: anchor-center;
  width: 80px; }
  @media (max-width: 767px) {
    .logo-container {
      flex: unset; } }
  .logo-container a {
    display: flex;
    justify-content: flex-end;
    flex-direction: column;
    align-items: flex-end; }

.logo-trademark {
  border-radius: 5px;
  padding: 0px 5px;
  color: var(--text-inverse);
  position: relative;
  float: right;
  width: auto;
  right: 0px;
  margin-right: -5px;
  margin-top: -14px; }
  @media (max-width: 767px) {
    .logo-trademark {
      font-size: 1.3rem;
      margin-top: -12px; } }

.darkHr {
  border-bottom: 1px solid var(--blue-medium) !important; }

@media (max-width: 1100px) {
  .login-page .logo-container {
    margin-left: 8px !important; } }

#search_nav_icon {
  margin-right: 5px; }
  @media (max-width: 768px) {
    #search_nav_icon {
      display: inline-block; } }

#menu-little-screen {
  display: inline-block;
  float: left; }
  @media (max-width: 1100px) {
    #menu-little-screen {
      display: inline-block; } }

.navbar-header-container {
  display: flex;
  align-items: center;
  width: 100%;
  max-width: 1530px;
  text-align: left;
  height: 100%;
  min-height: 60px;
  padding: 0px 10px; }
  @media (min-width: 768px) {
    .navbar-header-container {
      white-space: nowrap;
      padding: 0px 0px; } }
  @media (max-width: 767px) {
    .navbar-header-container {
      display: flex; }
      .navbar-header-container #SelectedInstitutionForCurrentUserText {
        display: none; } }

#nav_center_content {
  max-width: 85%; }
  @media (max-width: 1750px) {
    #nav_center_content {
      width: 100%; } }
  @media (max-width: 1300px) {
    #nav_center_content {
      min-width: 1000px;
      width: 100%; } }
  @media (max-width: 1095px) {
    #nav_center_content {
      min-width: 500px;
      width: 100%; } }
  @media (max-width: 767px) {
    #nav_center_content {
      display: inline;
      float: unset;
      text-align: center;
      padding: 0px 10px;
      width: 100%;
      background-color: var(--menu-background-color);
      z-index: 10;
      text-align: center;
      max-width: 300px !important;
      margin-left: 0px !important;
      position: fixed;
      top: 90px;
      left: 0px;
      position: fixed;
      height: calc(100vh - 90px);
      width: 90%;
      overflow: scroll;
      display: none; } }

.hide-search-bar {
  display: none !important; }

#menu-left {
  /*col-xs-12 col-sm-2 col-md-2 menuactif text-left pull-left collapse*/
  height: 100%;
  z-index: 4;
  border-right: 0px solid #d6e1ec;
  position: fixed;
  width: 250px;
  padding-left: 10px;
  padding-right: 10px;
  padding-top: 20px;
  display: flex;
  flex-direction: column;
  	/*@media(max-width:1100px) {
          padding: 10px;
          max-width: 0px;
          border-top: 1px solid transparent;
          overflow: hidden;
          position: fixed;
          display: none;
          z-index: 20;
          background: var(--blue-light);
          box-shadow: 0px 0px 20px rgba(0,0,0,0.3);
          transition: max-width ease 0.3s;
  
          & .hidden-lg {
              display: none !important;
          }
      }*/ }
  #menu-left #logo-in-menu {
    display: inline-block; }
  #menu-left #logo-in-menu-short {
    display: none;
    width: 40px; }
@media (min-width: 768px) and (max-width: 1390px) {
  #menu-left {
    width: 80px;
    padding-left: 10px;
    padding-right: 10px; }
    #menu-left #logo-in-menu {
      display: none; }
    #menu-left #logo-in-menu-short {
      display: inline-block; }
    #menu-left .menu_label {
      display: none;
      position: absolute;
      left: 56px;
      background-color: var(--color-primary);
      color: var(--text-inverse);
      top: -7px;
      padding: 15px;
      border-radius: 5px;
      font-weight: normal;
      z-index: 10;
      white-space: nowrap; }
    #menu-left div[name="parent-menu"] {
      display: block; }
    #menu-left .pastille {
      position: absolute;
      top: 4px;
      right: -11px; }
    #menu-left .fa-chevron-down, #menu-left .fa-chevron-right {
      display: none; }
    #menu-left .chat-button {
      width: 100%; }
      #menu-left .chat-button .fa-light {
        font-size: 2.8rem; }
    #menu-left .helptext {
      display: none; }
    #menu-left div[name="sub-menu"] {
      background-color: unset;
      position: relative; }
    #menu-left #publishStoreButtonMenu {
      display: none; }
    #menu-left .submenus {
      display: none;
      position: absolute;
      left: 50px;
      background-color: var(--color-primary);
      color: var(--text-inverse);
      top: -7px;
      padding: 15px 15px 15px;
      border-radius: 5px;
      font-weight: normal;
      z-index: 10;
      width: auto;
      max-height: unset; }
      #menu-left .submenus:before {
        left: -7px;
        top: 18px;
        border-bottom: 7px solid transparent;
        border-top: 7px solid transparent;
        border-right: 7px solid var(--color-primary);
        position: absolute;
        display: inline-block;
        content: ''; }
      #menu-left .submenus:after {
        left: -6px;
        top: 20px;
        border-top: 6px solid transparent;
        border-right: 6px solid var(--color-primary);
        border-bottom: 6px solid transparent;
        position: absolute;
        display: inline-block;
        content: ''; }
    #menu-left .menu:hover div[name="sub-menu"] {
      display: block !important;
      margin-left: 0px; }
    #menu-left .menu:hover .submenus {
      display: block; }
      #menu-left .menu:hover .submenus .first-sub-menu {
        margin-top: 0px !important; }
      #menu-left .menu:hover .submenus .menu_label {
        display: inline-block !important;
        position: relative;
        left: 0px !important;
        margin-left: 0px;
        background-color: var(--color-primary);
        color: var(--text-inverse);
        top: 0;
        padding: 0px 15px;
        padding-left: 5px;
        border-radius: 5px;
        font-weight: normal;
        z-index: 10; }
        #menu-left .menu:hover .submenus .menu_label:hover {
          color: var(--blue-medium); }
      #menu-left .menu:hover .submenus .selected .menu_label {
        color: #eb4d11; }
      #menu-left .menu:hover .submenus.hidden-lg {
        display: inline-block !important; }
    #menu-left .menu:hover .menu_label {
      display: block !important; } }

  @media (max-width: 767px) {
    #menu-left {
      width: 260px;
      max-width: 260px !important; } }

.touch_menu_label {
  display: inline-block !important;
  position: relative;
  left: 0 !important;
  margin-left: 0;
  background-color: var(--color-primary);
  color: var(--text-inverse);
  top: 0;
  padding: 0 15px 0 5px;
  border-radius: 5px;
  font-weight: normal;
  z-index: 10; }

.searchbar {
  width: calc(100% - 260px);
  max-width: 400px;
  margin: 10px 0px;
  display: inline-block;
  position: relative; }
  .searchbar input {
    background-color: var(--surface);
    border-radius: 4px;
    border: 1px solid var(--text-2);
    height: 40px;
    color: var(--text);
    padding: 0px 20px;
    padding-left: 33px; }
  @media (max-width: 1100px) {
    .searchbar {
      width: 100%; } }
  .searchbar:before {
    content: '\f002';
    font-family: 'Font Awesome 6 Pro';
    position: absolute;
    font-weight: 300;
    left: 10px;
    top: 9px;
    color: var(--text-2); }

.searchbar::placeholder {
  color: #9ca1a7; }

.searchbar:-ms-input-placeholder {
  color: #9ca1a7; }

.searchbar::-ms-input-placeholder {
  color: #9ca1a7; }

.no_gutter {
  padding-left: 0px;
  padding-right: 0px; }

@media (max-width: 767px) {
  .no_gutter_xs {
    padding-left: 0px;
    padding-right: 0px; } }

.pad10_5_xs {
  padding-top: 10px; }
  @media (max-width: 767px) {
    .pad10_5_xs {
      padding-top: 0px;
      padding-bottom: 0px; } }

.pad3 {
  padding-top: 3px; }

.pad5 {
  padding-top: 5px; }

.pad10 {
  padding-top: 10px; }

.padding-all-10 {
  padding: 10px; }

.pad15 {
  padding-top: 15px; }

.pad20 {
  padding-top: 20px; }

.pad30 {
  padding-top: 30px; }

.pad10r {
  padding-right: 10px; }

/* form-group fix */
.bot15 {
  margin-bottom: 15px;
  height: 35px; }

.h35 {
  height: 35px; }

.control-checkbox {
  vertical-align: top;
  width: auto; }

.control-checkbox[type=checkbox] {
  margin: 4px 5px; }

.ui-autocomplete {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 30000;
  float: left;
  display: none;
  min-width: 160px;
  _width: 160px;
  padding: 4px 0;
  margin: 2px 0 0 0;
  list-style: none;
  background-color: white;
  border-color: var(--line-strong);
  border-color: var(--line);
  border-style: solid;
  border-width: 1px;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 0px;
  -webkit-box-shadow: 0 5px 10px var(--shadow-strong);
  -moz-box-shadow: 0 5px 10px var(--shadow-strong);
  box-shadow: 0 5px 10px var(--shadow-strong);
  -webkit-background-clip: padding-box;
  -moz-background-clip: padding;
  background-clip: padding-box;
  *border-right-width: 2px;
  *border-bottom-width: 2px; }

.ui-menu-item > a.ui-corner-all {
  display: block;
  padding: 3px 15px;
  clear: both;
  font-weight: normal;
  line-height: 18px;
  color: var(--text);
  white-space: nowrap; }

.ui-menu-item i {
  padding-right: 5px; }

.ui-item-add {
  color: var(--info-fg) !important;
  padding: 10px 12px 8px;
  border-bottom: 1px solid var(--line) !important;
  cursor: pointer; }

.ui-item-add:hover {
  border: none !important; }

.ui-state-hover, .ui-state-active {
  color: var(--text-inverse);
  text-decoration: none;
  background-color: #0088cc;
  border-radius: 0px;
  -webkit-border-radius: 0px;
  -moz-border-radius: 0px;
  background-image: none; }

select.form-control {
  background: url(data:image/svg+xml;base64,PCEtLSBSZXBsYWNlIHRoZSBjb250ZW50cyBvZiB0aGlzIGVkaXRvciB3aXRoIHlvdXIgU1ZHIGNvZGUgLS0+CjxzdmcgaWQ9IkxheWVyXzEiIGRhdGEtbmFtZT0iTGF5ZXIgMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNC45NSAxMCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiNlZmYyZjU7ZmlsbC1vcGFjaXR5OjB9LmNscy0ye2ZpbGw6IzQ0NDt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPmFycm93czwvdGl0bGU+PHJlY3QgY2xhc3M9ImNscy0xIiB3aWR0aD0iNC45NSIgaGVpZ2h0PSIxMCIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtMiIgcG9pbnRzPSIxLjQxIDQuNjcgMi40OCAzLjE4IDMuNTQgNC42NyAxLjQxIDQuNjciLz48cG9seWdvbiBjbGFzcz0iY2xzLTIiIHBvaW50cz0iMy41NCA1LjMzIDIuNDggNi44MiAxLjQxIDUuMzMgMy41NCA1LjMzIi8+PC9zdmc+) no-repeat calc(100% - 5px) 50%;
  -moz-appearance: none;
  -webkit-appearance: none;
  appearance: none;
  background-color: var(--input-background-color);
  padding-right: 30px !important; }
  select.form-control.nocurcor {
    background: none; }

select.nocurcor {
  background: none; }

.listTag {
  height: auto; }

.transparent-input {
  padding: 3px !important;
  width: 100%;
  border-width: 0px;
  height: 46px;
  vertical-align: middle;
  background-color: transparent; }

.transparent-input::placeholder {
  color: var(--text-3); }

input.input-validation-error,
textarea.input-validation-error,
select.input-validation-error {
  background: var(--surface-2);
  border: 1px solid var(--danger-solid); }

.no-item {
  padding: 20px 10px;
  display: none; }

.grid-2 .dynInput, .grid-2 .dynDropDown, .grid-3 .dynInput, .grid-3 .dynDropDown, .grid-4 .dynInput, .grid-4 .dynDropDown, .grid-5 .dynInput, .grid-5 .dynDropDown {
  margin-bottom: 0px; }

/* 13/10/2026 (Romain) : CHAMP NUMÉRIQUE COURT (quantité, nombre d'unités…) — n'occupe pas toute sa colonne de grille ; son
   libellé au-dessus ne se coupe pas (il peut déborder sur l'espace libre à droite). À poser sur le .dynInput. */
.dynInput.ds-field-num {
  max-width: 16rem !important; }
  .dynInput.ds-field-num > label {
    white-space: nowrap !important; }

.form-control {
  padding: 13.5px 15px;
  min-height: 44px;
  height: auto;
  border-radius: Min(var(--border-radius-little), 10px);
  border: 1px solid var(--blue-medium);
  box-shadow: none;
  color: var(--text);
  background-color: var(--input-background-color);
  font-size: inherit; }
  .form-control:focus {
    outline: 0;
    box-shadow: none;
    color: var(--text);
    background-color: var(--input-background-color); }

.dynInput, .dynDropDown {
  overflow: hidden;
  white-space: nowrap;
  position: relative;
  display: flex;
  align-items: center; }
  .dynInput.white input, .dynDropDown.white input {
    background: var(--surface); }
  .dynInput .form-control, .dynDropDown .form-control {
    padding: 22px 8px 5px; }

.dynInput label {
  color: var(--text-3);
  transition: all 0.2s ease-out;
  float: left;
  margin-left: 10px;
  font-weight: normal;
  cursor: text;
  margin-bottom: 0px;
  white-space: nowrap;
  line-height: 1.9rem;
  position: absolute; }

.dynInput input {
  transition: border-color 0.2s ease;
  -moz-appearance: none;
  -webkit-appearance: none;
  appearance: none; }

.dynInput input:focus {
  outline: none;
  border-color: var(--blue-selected); }

.dynInput input:focus + label,
.dynInput input:not(:placeholder-shown) + label {
  color: var(--text-2);
  transform: translate(0px, -0.9rem);
  font-size: var(--ds-fs-secondary);
  user-select: none; }

.dynInput input:focus + label {
  color: var(--blue-selected) !important; }

.dynInput select:focus + label,
.dynInput select:not(:placeholder-shown) + label {
  color: var(--text-2);
  transform: translate(0px, -0.9rem);
  font-size: var(--ds-fs-secondary);
  user-select: none; }

@supports not (-ms-ime-align: auto) {
  .dynInput label {
    color: var(--text-3);
    transition: all 0.2s ease-out;
    font-weight: normal; }

  .dynInput input:focus + label,
  .dynInput input:not(:placeholder-shown) + label {
    color: var(--text-2);
    transform: translate(0px, -0.9rem);
    user-select: none; } }
/* date/number: placeholder-shown ne fonctionne pas — label toujours élevé */
.dynInput input[type="date"] + label,
.dynInput input[type="number"] + label {
  color: var(--text-color);
  transform: translate(0px, -0.9rem);
  font-size: var(--ds-fs-secondary);
  user-select: none; }

.dynDropDown label {
  color: var(--text-2);
  transform: translate(0px, -0.9rem);
  float: left;
  margin-left: 10px;
  font-size: 1.3rem;
  margin-bottom: 0px;
  font-weight: normal;
  position: absolute; }

.dynDropDown select {
  padding-top: 21px;
  padding-left: 10px;
  background: url(data:image/svg+xml;base64,PCEtLSBSZXBsYWNlIHRoZSBjb250ZW50cyBvZiB0aGlzIGVkaXRvciB3aXRoIHlvdXIgU1ZHIGNvZGUgLS0+CjxzdmcgaWQ9IkxheWVyXzEiIGRhdGEtbmFtZT0iTGF5ZXIgMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNC45NSAxMCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiNlZmYyZjU7ZmlsbC1vcGFjaXR5OjB9LmNscy0ye2ZpbGw6IzQ0NDt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPmFycm93czwvdGl0bGU+PHJlY3QgY2xhc3M9ImNscy0xIiB3aWR0aD0iNC45NSIgaGVpZ2h0PSIxMCIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtMiIgcG9pbnRzPSIxLjQxIDQuNjcgMi40OCAzLjE4IDMuNTQgNC42NyAxLjQxIDQuNjciLz48cG9seWdvbiBjbGFzcz0iY2xzLTIiIHBvaW50cz0iMy41NCA1LjMzIDIuNDggNi44MiAxLjQxIDUuMzMgMy41NCA1LjMzIi8+PC9zdmc+) no-repeat calc(100% - 5px) 50%;
  -moz-appearance: none;
  -webkit-appearance: none;
  appearance: none;
  background-color: var(--blue-light);
  color: var(--text); }
  .dynDropDown select.nocurcor {
    background: none; }

#phone_btn {
  position: relative; }
  #phone_btn p {
    position: absolute;
    right: 0px;
    max-width: 300px;
    max-height: 0px;
    overflow: hidden;
    width: auto;
    transition: all ease 0.4s;
    background-color: white;
    padding: 0px 15px 0px;
    border-radius: 15px;
    line-height: 2.4rem;
    box-shadow: 0px 10px 10px -3px var(--shadow-strong); }
  #phone_btn.open p {
    padding: 15px 15px 10px;
    max-width: 300px;
    max-height: 300px; }

#cart_btn, #phone_btn {
  margin-right: 5px;
  display: inline-block;
  width: auto; }
  #cart_btn span, #phone_btn span {
    font-size: 1.5rem;
    display: inline-flex; }

.form-control[readonly], .form-control[disabled] {
  color: var(--text-disabled);
  background-color: var(--surface-sunk); }
  .form-control[readonly]:focus, .form-control[disabled]:focus {
    background: white; }

#origine, #designation, #mesure, .input_border.no_top_border, .menulien.no_top_border {
  border-top: none; }

@media (max-width: 990px) {
  .input_border.no_top_border.border_top_xs {
    border-top: 1px solid var(--line-strong); } }

@media (min-width: 991px) {
  .input_border.no_top_border_md {
    border-top: none; } }

@media (min-width: 768px) {
  .input_border.no_top_border_sm {
    border-top: none; } }

@media (min-width: 991px) {
  .input_border.no_top_border_md {
    border-top: none; } }

@media (min-width: 1200px) {
  .input_border.no_top_border_lg {
    border-top: none; } }

.input_border.opt {
  background-color: white;
  border-top: 1px solid var(--line);
  margin: 0; }

.input_border.opt.border_bottom {
  border-bottom: 1px solid var(--line); }

@media (max-width: 767px) {
  #code_b, #cuisson {
    border-top: 1px solid var(--line-strong); } }

.profil-page-menu {
  display: inline-block;
  width: auto;
  margin: 0px 20px;
  font-weight: bold;
  height: 40px;
  line-height: 40px; }

.input_border {
  border-top: 1px solid var(--line-strong); }

.input_border_bottom {
  border-bottom: 1px solid var(--line-strong); }

.input_border.pad_bot {
  padding-bottom: 10px; }

.input_border {
  margin: 5px;
  border: none; }

.notification_bubble {
  background-color: var(--danger-solid);
  padding: 3px;
  font-size: 1.3rem;
  border-radius: 11px;
  color: var(--text-inverse);
  position: absolute;
  bottom: -5px;
  right: -5px;
  width: 20px;
  min-width: 22px;
  height: auto;
  line-height: 16px; }
  .notification_bubble:empty {
    display: none; }

#imgcod {
  height: 70px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100%; }

.keyword {
  background-color: var(--blue-light);
  width: auto;
  display: inline-block;
  padding: 7px 15px;
  border-radius: 4px;
  margin-bottom: 5px;
  margin-right: 5px;
  margin-top: 6px; }

.valueKeyword span {
  cursor: pointer;
  color: var(--text-2);
  vertical-align: middle;
  padding-left: 5px;
  margin-top: -2px; }
  .valueKeyword span:hover {
    color: var(--danger-fg); }

.select-button {
  padding: 6px 12px;
  background-color: var(--info-solid);
  border-radius: 4px;
  color: var(--text-inverse);
  margin-bottom: 6px;
  margin-top: 10px;
  display: inline-block;
  margin-left: 20px; }

.select-button i {
  padding-right: 3px; }

.code_barre {
  	/*border: 1px solid #E4E4E4;
      border-radius: 5px;*/
  margin-right: auto;
  margin-left: auto; }

.item_code_barre {
  padding-top: 10px; }

.modal-content {
  margin-left: auto;
  margin-right: auto;
  box-shadow: 0 8px 16px rgba(55, 63, 74, 0.1); }

#imgTd {
  float: left;
  margin-right: 0px;
  margin-left: 0px;
  width: 60px;
  height: 60px;
  border-radius: 30px;
  border: solid 1px var(--field-line);
  vertical-align: middle;
  -webkit-background-size: cover;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center; }

.tb {
  /*
text-align: center;
border: 0px solid;
border-radius: 2px;
font-size: 1.4rem;*/ }

#enteteArticle {
  background-color: var(--surface-muted);
  font-family: 'Lato', 'sans-serif';
  font-size: var(--ds-fs-caption);
  font-weight: bold;
  color: var(--text-2);
  padding-bottom: 5px;
  padding-top: 5px;
  border: solid 1px var(--line-strong); }

@media (max-width: 560px) {
  .analytics-filter-btn {
    margin: 5px 0px; } }

.article_tertiary_info, .article_tertiary_info_md {
  font-style: normal; }

.ligneArticle, .ligneClient {
  background-color: white;
  border-top: 1px solid var(--line);
  align-items: center;
  padding: 0px 10px; }
  .ligneArticle:hover, .ligneClient:hover {
    background-color: var(--surface-2);
    cursor: default;
    border-radius: 10px;
    cursor: pointer;
    border-top: 1px solid var(--surface); }
    .ligneArticle:hover + .ligneArticle, .ligneClient:hover + .ligneArticle {
      border-top: 1px solid var(--surface); }
  @media (min-width: 768px) {
    .ligneArticle .editorRow, .ligneClient .editorRow {
      display: none !important; } }
  .ligneArticle .main_article_infos, .ligneClient .main_article_infos {
    padding: 8px 0px; }
  .ligneArticle .cb_container, .ligneClient .cb_container {
    vertical-align: middle;
    width: 28px;
    padding-right: 5px; }
  .ligneArticle .img_container, .ligneClient .img_container {
    vertical-align: middle;
    width: 28px;
    padding-top: 9px; }
  .ligneArticle .img_preview, .ligneClient .img_preview {
    width: 40px;
    height: 40px;
    border-radius: 5px; }
    .ligneArticle .img_preview img, .ligneArticle .img_preview span, .ligneClient .img_preview img, .ligneClient .img_preview span {
      height: 40px;
      width: 40px;
      line-height: inherit;
      font-size: inherit;
      display: flex;
      align-items: center;
      justify-content: center; }

#listArticleHeader {
  font-weight: 600;
  display: flex;
  align-items: center;
  background-color: var(--blue-medium);
  padding: 10px;
  border-radius: 3px; }

.article_text {
  display: flex;
  align-items: center;
  flex: 1; }

.noTrackingLabel {
  display: none; }

#filterpanel {
  display: flex;
  align-items: center;
  margin-bottom: 25px;
  margin-top: 0px; }

#stateFilterPanel {
  position: relative;
  margin-bottom: 13px; }

.pos-channel-icon, .pos-channel-icon-2 {
  width: 30px;
  display: flex;
  flex-direction: column;
  column-gap: 17px;
  row-gap: 6px;
  align-items: center;
  padding-left: 10px; }

.pos-channel-icon-2 {
  display: none; }

.colListArticles {
  flex: unset !important;
  width: 390px;
  position: sticky !important;
  top: 0px;
  height: 100vh; }
  .colListArticles #listArticleHeader {
    display: none; }
  .colListArticles #col_1_header {
    display: none; }
  .colListArticles #liste_articles_container {
    padding-top: 0px !important; }
  .colListArticles .select-menu-hor-container {
    padding-left: 20px !important;
    padding-right: 20px !important; }
  .colListArticles #filterpanel {
    flex-direction: column;
    align-items: flex-start;
    padding-top: 15px;
    margin-bottom: 10px;
    top: 0; }
    .colListArticles #filterpanel #search-product-container {
      width: 100% !important;
      margin-bottom: 10px; }
  .colListArticles #loading-articles {
    text-align: center; }
  .colListArticles #no_article_available {
    text-align: center; }
  .colListArticles #listArticles {
    position: sticky;
    height: 100vh;
    overflow-y: auto; }
  .colListArticles .ligneArticle, .colListArticles .ligneClient {
    margin: 0px 8px;
    padding: 2px 0px; }
    .colListArticles .ligneArticle .cb_container, .colListArticles .ligneClient .cb_container {
      padding-right: 5px;
      padding-left: 10px;
      width: 34px !important; }
    .colListArticles .ligneArticle .img_container, .colListArticles .ligneClient .img_container {
      vertical-align: middle;
      width: 28px; }
    .colListArticles .ligneArticle .img_preview, .colListArticles .ligneClient .img_preview {
      width: 50px;
      height: 50px;
      border-radius: 5px; }
      .colListArticles .ligneArticle .img_preview img, .colListArticles .ligneArticle .img_preview span, .colListArticles .ligneClient .img_preview img, .colListArticles .ligneClient .img_preview span {
        height: 50px;
        width: 50px; }
    .colListArticles .ligneArticle .article_main_info, .colListArticles .ligneArticle .article_main_info_md, .colListArticles .ligneClient .article_main_info, .colListArticles .ligneClient .article_main_info_md {
      font-weight: 500; }
    .colListArticles .ligneArticle div[name=Declination].article_main_info, .colListArticles .ligneClient div[name=Declination].article_main_info {
      display: flex;
      flex-direction: row;
      align-items: center;
      width: 100%; }
      .colListArticles .ligneArticle div[name=Declination].article_main_info span, .colListArticles .ligneClient div[name=Declination].article_main_info span {
        flex: 1; }
      .colListArticles .ligneArticle div[name=Declination].article_main_info .pos-channel-icon-2, .colListArticles .ligneClient div[name=Declination].article_main_info .pos-channel-icon-2 {
        flex-direction: row;
        column-gap: 5px;
        justify-content: flex-end;
        padding-right: 10px; }
    .colListArticles .ligneArticle .article_secondary_info, .colListArticles .ligneArticle .article_secondary_info_md, .colListArticles .ligneClient .article_secondary_info, .colListArticles .ligneClient .article_secondary_info_md {
      font-weight: normal;
      color: var(--text-2);
      display: flex;
      flex-direction: row;
      align-items: center;
      width: 100%; }
      .colListArticles .ligneArticle .article_secondary_info span, .colListArticles .ligneArticle .article_secondary_info_md span, .colListArticles .ligneClient .article_secondary_info span, .colListArticles .ligneClient .article_secondary_info_md span {
        flex: 1; }
      .colListArticles .ligneArticle .article_secondary_info .pos-channel-icon-2, .colListArticles .ligneArticle .article_secondary_info_md .pos-channel-icon-2, .colListArticles .ligneClient .article_secondary_info .pos-channel-icon-2, .colListArticles .ligneClient .article_secondary_info_md .pos-channel-icon-2 {
        flex-direction: row;
        column-gap: 5px;
        justify-content: flex-end;
        padding-right: 10px; }
    .colListArticles .ligneArticle .article_tertiary_info, .colListArticles .ligneClient .article_tertiary_info {
      color: var(--blue-dark); }
    .colListArticles .ligneArticle .article_details, .colListArticles .ligneClient .article_details {
      font-size: 0.95em;
      color: var(--text-3); }
    .colListArticles .ligneArticle .list-article-price, .colListArticles .ligneClient .list-article-price {
      color: #9ca1a7;
      padding-left: 0px;
      padding-right: 10px; }
    .colListArticles .ligneArticle .article_text, .colListArticles .ligneClient .article_text {
      display: flex;
      align-items: flex-start;
      flex: 1;
      flex-direction: column; }
    .colListArticles .ligneArticle .profit_column, .colListArticles .ligneClient .profit_column {
      display: none !important; }
    .colListArticles .ligneArticle .hidden-xs, .colListArticles .ligneClient .hidden-xs {
      display: none !important; }
    .colListArticles .ligneArticle .noTrackingLabel, .colListArticles .ligneClient .noTrackingLabel {
      display: inline; }
    .colListArticles .ligneArticle .inReserveLabel, .colListArticles .ligneClient .inReserveLabel {
      display: none; }
    .colListArticles .ligneArticle .stockLabel, .colListArticles .ligneClient .stockLabel {
      display: inline-block;
      width: 100%;
      text-align: left; }
    .colListArticles .ligneArticle .pos-channel-icon, .colListArticles .ligneClient .pos-channel-icon {
      display: none; }
    .colListArticles .ligneArticle .pos-channel-icon-2, .colListArticles .ligneClient .pos-channel-icon-2 {
      display: flex; }

.ligneArticle.article_selected {
  background-color: var(--selected-opacity);
  border-radius: 5px;
  border-top: 1px solid transparent !important;
  cursor: default;
  opacity: 1; }
  .ligneArticle.article_selected + .ligneArticle {
    border-top: 1px solid var(--surface); }

.hover_ligneArticle {
  background-color: var(--surface-sunk) !important; }

.ligneArticle.a_commander .delete {
  position: absolute;
  right: 15px;
  width: 15px;
  height: 18px;
  top: calc(50% - 9px); }
.ligneArticle.a_commander .prixArticleDuplique {
  padding-right: 45px !important; }

.ligneArticle[data-duplicated="true"].a_commander .delete {
  position: absolute;
  right: 15px;
  width: 15px;
  height: 18px;
  top: calc(50% - 9px); }
.ligneArticle[data-duplicated="true"].a_commander .prixArticleDuplique {
  padding-right: 45px !important; }
.ligneArticle[data-duplicated="true"].a_commander .img_art_overlay {
  display: block;
  width: 60px;
  height: 20px;
  position: absolute;
  background-color: rgba(255, 255, 255, 0.8);
  border-radius: 10px;
  padding: 0px;
  line-height: 18px;
  text-align: center;
  font-size: 1em;
  letter-spacing: 1px;
  color: var(--text);
  font-weight: bold;
  border: none; }
.ligneArticle[data-duplicated="true"].a_commander .article_tertiary_info {
  margin-left: 60px; }

.duplicate-items {
  display: none;
  overflow: hidden;
  width: 100%; }

.variante-selected .duplicate-items {
  display: inline-block; }

.variante-selected {
  background-color: var(--surface-2); }

.variante-article {
  background-color: transparent;
  border-radius: 0px; }
  .variante-article.variante-selected + .variante-article {
    border-top: 1px solid var(--line); }
  .variante-article:hover {
    background-color: var(--surface-sunk);
    border-radius: 0px !important; }
    .variante-article:hover.ligneArticle.article_selected + .ligneArticle {
      border-top: 1px solid var(--line) !important; }
    .variante-article:hover.article_selected {
      /*background-color: #c3eaff;*/ }

.mobile {
  height: 5em; }

.mobile div {
  padding-top: 0em; }

.mobile .mobileImg {
  padding-top: 0.4em; }

#button_List {
  display: inline-block;
  vertical-align: top;
  position: absolute;
  top: 0;
  right: 100%; }

.top-cmd {
  display: flex;
  margin-top: 20px;
  align-items: center;
  justify-content: flex-end; }

@media (max-width: 767px) {
  .ligneEditArticle {
    border-bottom: 1px solid var(--line);
    background-color: var(--surface-sunk); }

  .ligneEditArticleStock {
    background-color: var(--surface-sunk); } }
.marginPaddingTableArticles {
  margin: 0px;
  padding: 5px 0px 5px 0px; }

.marginPaddingContentArticles {
  margin: 0px;
  padding: 5px 0px 5px 0px; }

.menulien {
  font-family: Arial;
  text-align: left; }

.menulien:hover {
  cursor: pointer; }

.menulien:hover a {
  cursor: pointer; }

.hidden {
  display: none; }

.delete {
  color: #eb4d11; }
  .delete:hover {
    cursor: pointer;
    color: var(--danger-fg); }
  .delete a {
    color: #eb4d11; }
    .delete a :hover {
      color: var(--danger-fg); }

.bt {
  background-color: var(--brand-solid);
  padding: 16px;
  color: var(--text-inverse); }

.modal {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1040;
  overflow-x: scroll;
  overflow-y: scroll;
  border: 0px; }

#noArticle {
  padding-top: 20px;
  color: var(--text-3); }

.loadModal {
  background-image: url("/Content/Images/load.gif");
  background-repeat: no-repeat;
  background-position: center; }

.editorRow_content {
  	/*padding-left: 10px;
      padding-right: 0px;*/ }

.navbar-header {
  width: 100%;
  text-align: center; }
  .navbar-header a {
    color: inherit; }

#recherche {
  height: 30px;
  background: var(--surface);
  padding: 3px 10px;
  width: 100%; }

.fournisseur_selected {
  background-color: var(--surface-muted); }

.float-left {
  float: left; }

.float-right {
  float: right; }

.no_padding {
  padding: 0px; }

.no_top_border {
  border-top: none !important; }

.no_bottom_border {
  border-bottom: none !important; }

.no_left_border {
  border-left: none !important; }

.no_right_border {
  border-right: none !important; }

.ps-scrollbar-y-rail {
  opacity: 0.6;
  z-index: 3; }

.loading-container {
  position: absolute;
  width: 72px;
  left: 50%;
  margin-left: -36px;
  height: 72px;
  margin-top: -36px;
  top: 50%; }

#visible-scroller {
  height: 16px;
  overflow-x: scroll;
  -webkit-overflow-scrolling: touch;
  right: 0;
  z-index: 6;
  position: sticky;
  bottom: 0;
  margin: 0px -10px;
  margin-top: 12px; }

#visible-scroller-scroll-area {
  position: absolute;
  overflow-x: scroll;
  -webkit-overflow-scrolling: touch; }

#visible-scroller-scroll-bar {
  height: 16px; }

.compare-at-stat {
  font-size: 1.3rem;
  font-weight: normal; }

.fp-first {
  margin-bottom: 20px;
  display: inline-flex !important;
  flex-direction: row; }
  @media (max-width: 767px) {
    .fp-first {
      flex-direction: row; } }
  .fp-first .fp-first-i {
    display: flex;
    align-items: center;
    line-height: 2.5rem;
    width: 100%; }
    @media (max-width: 767px) {
      .fp-first .fp-first-i {
        flex-direction: column;
        padding-left: 5px; }
        .fp-first .fp-first-i h1 {
          padding-left: 3px; } }
  .fp-first .fp-first-buttons {
    justify-self: end;
    width: inherit;
    text-align: right; }
    @media (max-width: 767px) {
      .fp-first .fp-first-buttons {
        justify-self: start;
        text-align: left;
        padding-top: 10px;
        padding-left: 0px; } }

@media (max-width: 767px) {
  .fp-first-buttons {
    white-space: nowrap;
    overflow-x: auto;
    max-width: calc(100vw - 30px);
    padding-bottom: 10px; } }

.filter-options {
  flex: 1;
  display: flex;
  align-items: center; }
  @media (max-width: 767px) {
    .filter-options {
      flex-direction: column; }
      .filter-options #comparerange, .filter-options #reportrange, .filter-options #ins-selection, .filter-options #ins-selection-modal, .filter-options #search-product-container {
        margin: 0px !important;
        margin-bottom: 10px !important; } }

/* ═══════════════════════════════════════════════
   RC-20260901 VOLET « FILTRES » MOBILE de la barre Analytics (demande Romain) :
   même patron que CoreTable — bouton .ct-filters-toggle + volet latéral droit,
   classes ct-* réutilisées (déclencheur, en-tête, « Voir les résultats », voile,
   animation ct-drawer-in : tout vient de _table.scss). En desktop le wrapper
   .af-drawer est display:contents — la barre reste EXACTEMENT celle d'avant.
   L'état d'ouverture vit sur <body> (.analytics-filters-open), posé par
   AnalyticsFiltersDrawer() dans _FilterBar.cshtml.
   ═══════════════════════════════════════════════ */
.af-drawer {
  display: contents; }

/* Le voile est TOUJOURS dans le DOM ici (CoreTable ne rend le sien qu'ouvert) :
   deux classes pour battre le display:block générique du média mobile. */
.ct-drawer-backdrop.af-backdrop {
  display: none; }

@media (max-width: 767px) {
  .filter-options .af-drawer {
    display: flex;
    position: fixed;
    top: 0;
    right: 0;
    bottom: 4px;
    /* fermé : décollé du bord bas (doctrine teinte de barre iOS ≥26, cf. _table.scss) */
    z-index: 1001;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    width: min(86vw, 320px);
    margin: 0;
    padding: 16px;
    background: var(--ct-surface);
    overflow-y: auto;
    transform: translateX(100%); }

  body.analytics-filters-open .filter-options .af-drawer {
    bottom: 0;
    transform: translateX(0);
    box-shadow: -6px 0 24px var(--shadow);
    animation: ct-drawer-in .22s ease; }

  body.analytics-filters-open .ct-drawer-backdrop.af-backdrop {
    display: block; }

  /* Dans le volet, chaque filtre prend toute la largeur (les margin-right inline sautent). */
  .filter-options .af-drawer .ct-fsel {
    width: 100%;
    margin: 0 !important; }

  .filter-options .af-drawer .bloc {
    width: 100%; }

  /* Disposition de la barre (retour Romain : le bouton seul et centré n'était « pas top ») :
     période PLEINE LARGEUR, puis « Comparer à … » et « Filtres » CÔTE À CÔTE sur la même
     ligne. Scopé .af-filterbar : les autres .filter-options gardent la colonne générique. */
  .filter-options.af-filterbar {
    flex-flow: row wrap;
    align-items: stretch;
    gap: 10px;
    /* ⚠️ _chart.scss impose width:100% en mobile sur #comparerange : sans width:auto ici,
       flex-basis lit cette largeur et le bouton « Filtres » passait à la ligne. */
    /* Le déclencheur garde la TAILLE CoreTable (12px — retour Romain : ne pas grossir),
       seule la hauteur s'aligne sur la rangée via align-items:stretch. */ }
    .filter-options.af-filterbar #reportrange {
      width: 100% !important;
      margin: 0 !important; }
    .filter-options.af-filterbar #comparerange {
      flex: 1 1 0;
      width: auto !important;
      min-width: 0;
      margin: 0 !important; }
    .filter-options.af-filterbar .ct-filters-toggle {
      margin: 0;
      justify-content: center; } }
@media (min-width: 768px) {
  #home-page-link {
    margin-top: 10px; } }

.initial {
  width: auto;
  padding: 5px 10px;
  padding-right: 5px;
  background-color: transparent;
  border-radius: 5px;
  align-items: center;
  color: inherit;
  font-size: 2rem;
  text-align: center;
  vertical-align: middle;
  cursor: pointer; }
  .initial a {
    display: flex;
    flex-direction: row;
    align-items: center;
    font-size: 1.4rem; }
    .initial a div {
      display: flex;
      flex-direction: column; }
    .initial a.selected {
      position: relative; }
      .initial a.selected:after {
        position: absolute;
        content: '';
        bottom: -10px;
        left: 0px;
        width: 100%;
        height: 3px;
        background: var(--blue-selected); }
  .initial:hover a {
    color: var(--blue-selected); }
  @media (max-width: 767px) {
    .initial.visible-xs {
      display: inline-block !important; } }
  .initial .initial_text {
    background-color: var(--blue-selected);
    text-align: center; }

.menu_navbar_div .initial {
  background-color: var(--blue-selected);
  font-size: 1.7rem;
  color: var(--text-inverse); }

.companyname {
  height: 50px;
  padding: 0px 5px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  max-width: 300px;
  font-size: 1.4rem;
  font-weight: bold;
  text-align: left;
  color: var(--text-inverse);
  justify-content: flex-end; }
  @media (max-width: 420px) {
    .companyname {
      max-width: 200px; } }
  .companyname:hover {
    background-color: #ffffff2d; }

#menu-left .companyname {
  width: 100%; }
  #menu-left .companyname #SelectedInstitutionForCurrentUserText span {
    display: none; }

.individual_navbar .companyname:hover {
  background-color: var(--blue-light); }

#username {
  float: right;
  width: auto;
  margin-left: 10px;
  font-size: 1.4rem;
  line-height: 36px;
  height: 36px; }

.history-bloc {
  color: var(--text);
  padding: 0px 10px;
  display: inline-block;
  width: 100%;
  margin-bottom: 20px; }

.history-container {
  display: inline-block;
  position: relative; }
  .history-container .item {
    width: auto;
    padding: 10px;
    padding-top: 9px;
    display: table;
    margin-bottom: 15px; }
    .history-container .item .item-initial-container {
      display: table-cell;
      vertical-align: middle;
      height: 100%; }
      .history-container .item .item-initial-container .item-initial {
        width: 44px;
        height: 44px;
        border-radius: 22px;
        line-height: 44px;
        vertical-align: middle;
        float: unset; }
    .history-container .item .item-text {
      display: table-cell;
      vertical-align: middle;
      float: unset;
      line-height: 1.3;
      height: auto;
      padding-left: 10px; }
      .history-container .item .item-text span {
        color: var(--text-3);
        font-size: var(--ds-fs-secondary); }
        .history-container .item .item-text span b {
          color: var(--text); }

@keyframes placeHolderShimmer {
  0% {
    background-position: -468px 0; }
  100% {
    background-position: 468px 0; } }
.animated-background {
  animation-duration: 2.25s;
  animation-fill-mode: forwards;
  animation-iteration-count: infinite;
  animation-name: placeHolderShimmer;
  animation-timing-function: linear;
  background: var(--surface-sunk);
  background: linear-gradient(to right, var(--blue-medium) 8%, var(--blue-dark) 18%, var(--blue-medium) 33%);
  background-size: 800px 104px;
  height: 96px;
  position: relative; }
  .animated-background.largegradient {
    background: linear-gradient(to right, var(--blue-medium) 0% 10%, var(--blue-dark) 40% 50%, var(--blue-medium) 90% 100%); }
  .animated-background.shopProductThumbnail:after {
    display: none !important; }
  .animated-background.newProductThumbnail:after {
    display: none !important; }

.history-line {
  position: absolute;
  border-right: 3px solid var(--line-strong);
  height: calc(100% - 60px);
  top: 30px;
  left: 30px;
  z-index: -1; }

.position-relative {
  position: relative; }

.text-loading {
  position: absolute;
  left: 0px;
  top: 0px;
  width: 100%;
  height: calc(100% - 40px); }
  .text-loading.relativeloading {
    position: relative;
    left: 0px;
    top: 20px;
    width: 100%;
    height: 100%; }
    .text-loading.relativeloading .wrapper-cell {
      display: flex;
      margin-bottom: 0px; }
  .text-loading .wrapper {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column; }
  .text-loading .wrapper-cell {
    display: flex;
    margin-bottom: 30px; }
  .text-loading .text {
    width: 100%; }
  .text-loading .text-line {
    height: 10px;
    width: 120px;
    margin: 4px 0; }
  .text-loading .text-centered {
    margin-top: 15px;
    margin-left: 0px;
    width: 100%; }
  .text-loading .text-line-bold {
    height: 25px;
    width: 100%;
    margin: 4px 0; }
  .text-loading .text-line-large {
    height: 16px;
    width: 85%;
    margin: 4px 0; }

.select-graph .text-loading {
  width: 100%; }

.owl-prev {
  width: 15px;
  height: 100px;
  position: absolute;
  top: 40%;
  margin-left: -20px;
  display: block !important;
  border: 0px solid var(--text); }

.owl-next {
  width: 15px;
  height: 100px;
  position: absolute;
  top: 40%;
  right: -25px;
  display: block !important;
  border: 0px solid var(--text); }

.owl-prev i, .owl-next i {
  transform: scale(1, 6);
  color: var(--text-disabled); }

.slick-dots {
  margin-bottom: 0px !important; }

.slick-dotted.slick-slider {
  margin-bottom: 0px !important; }

.btn-edit-mini {
  cursor: pointer;
  width: 28px;
  height: 28px;
  position: absolute;
  right: 5px;
  bottom: 5px;
  padding: 4px;
  background-color: var(--overlay);
  border-radius: 14px;
  color: var(--text-inverse);
  line-height: 20px !important;
  text-align: center !important;
  z-index: 0; }
  .btn-edit-mini:hover {
    color: var(--blue-medium); }

.btn-edit {
  cursor: pointer;
  width: 28px;
  height: 28px;
  padding: 4px;
  background-color: var(--overlay);
  border-radius: 14px;
  color: var(--text-inverse);
  line-height: 20px !important;
  text-align: center !important;
  z-index: 3; }
  .btn-edit span {
    font-size: 1.5rem;
    font-family: Open sans-serif, Arial, sans-serif; }
  .btn-edit:hover {
    color: var(--blue-medium); }

.btn-edit-mini:before {
  content: "\f304"; }

.action-button-container {
  z-index: 2;
  position: sticky;
  bottom: 0px;
  padding-top: 10px;
  display: table;
  width: 100%;
  white-space: nowrap;
  text-align: right;
  padding-bottom: 20px;
  padding-right: 25px; }
  @media (min-width: 768px) {
    .action-button-container .btn-action-button {
      min-width: 280px;
      min-height: 50px; } }
  .action-button-container.white {
    background: linear-gradient(0deg, var(--surface) 0%, var(--surface) 15%, var(--surface) 60%, rgba(255, 255, 255, 0) 100%); }
  @media (max-width: 767px) {
    .action-button-container {
      padding: 20px 0px;
      text-align: center;
      background: linear-gradient(0deg, var(--surface) 0%, var(--surface) 15%, var(--surface) 60%, rgba(234, 240, 247, 0) 100%); } }

.orderCount {
  position: absolute;
  right: 5px;
  top: 3px;
  height: auto;
  padding: 3px 10px;
  color: var(--text-inverse);
  margin-top: 2px;
  width: auto;
  border-radius: 4px;
  background-color: #9ca1a7; }
  .orderCount:empty {
    display: none; }

.opened-little-menu {
  display: flex !important; }

@media (max-width: 1199px) {
  .responsive_menu {
    white-space: nowrap;
    overflow-x: auto; } }

.vertical-menu {
  padding: 10px 20px;
  height: 44px;
  width: auto;
  background-color: white;
  border-radius: 5px;
  display: inline-block;
  margin-bottom: 6px; }
  .vertical-menu:hover {
    cursor: pointer;
    background-color: var(--blue-light); }
  .vertical-menu.selected {
    color: #eb4d11;
    background-color: #f3e7e4; }
  @media (max-width: 1199px) {
    .vertical-menu {
      width: auto;
      margin-right: 6px; } }

.box-information {
  display: inline-block;
  width: 100%;
  padding: 10px;
  margin-bottom: 10px;
  text-align: left;
  border-radius: 4px;
  background-color: var(--info-bg);
  border: 1px solid var(--info-line); }
  .box-information.box-alert {
    background-color: var(--danger-bg);
    border: 1px solid var(--danger-line); }
  .box-information:empty {
    display: none; }

.validation-summary-errors li {
  display: inline-block;
  width: 100%;
  padding: 10px;
  margin-bottom: 10px;
  text-align: left;
  border-radius: 4px;
  background-color: var(--danger-bg);
  border: 1px solid var(--danger-line); }
  .validation-summary-errors li:empty {
    display: none; }

.disabledElement {
  pointer-events: none;
  opacity: 0.4; }

#cookies_consent {
  width: auto;
  color: var(--text-inverse);
  display: none;
  position: fixed;
  bottom: 0;
  background-color: var(--blue-dim);
  z-index: 100;
  padding: 10px 50px;
  margin: 30px;
  border-radius: var(--border-radius-medium); }
  @media (max-width: 767px) {
    #cookies_consent {
      margin: 15px;
      padding: 10px 20px; } }
  #cookies_consent .btn {
    margin: 0px 0px; }
  #cookies_consent .main_container {
    padding-bottom: 15px;
    width: auto;
    max-width: 480px; }

.chat-button {
  margin-right: 5px;
  position: relative;
  width: auto; }
  @media (max-width: 360px) {
    .chat-button {
      display: none; } }
  .chat-button .openingBox {
    line-height: 2.5;
    right: 60px;
    left: auto;
    min-height: 60px;
    width: 350px;
    padding: 5px 0px;
    cursor: default;
    max-height: calc(100vh - 80px); }

@media (max-width: 767px) {
  .drp-selected {
    display: inline-block;
    width: 100%; }

  .applyBtn.btn.btn-sm.btn-primary {
    float: right;
    display: block;
    margin: 10px; }

  .cancelBtn.btn.btn-sm.btn-default {
    float: left;
    display: block;
    margin: 10px; } }
.emoji {
  width: 18px;
  height: 18px; }

.send-btns {
  position: absolute;
  right: 0;
  bottom: 0;
  padding: 15px 25px 17px;
  font-size: 2rem; }
  .send-btns .fa-smile {
    color: #9ca1a7;
    margin-right: 10px;
    cursor: pointer; }
    .send-btns .fa-smile:hover {
      opacity: 0.7; }
  .send-btns .fa-paper-plane {
    color: var(--blue-selected);
    cursor: pointer; }
    .send-btns .fa-paper-plane:hover {
      opacity: 0.7; }
    .send-btns .fa-paper-plane.send-disabled {
      color: var(--blue-medium);
      cursor: default;
      opacity: 1 !important; }

.functionnalityBlockContainer {
  display: flex;
  flex-direction: row;
  padding-top: 10px;
  padding-bottom: 10px; }
  .functionnalityBlockContainer .funcBlock {
    width: 50%; }
    .functionnalityBlockContainer .funcBlock .funcTitle {
      font-size: 1em;
      font-weight: bold;
      padding-bottom: 10px; }
    .functionnalityBlockContainer .funcBlock .funcIcon i.fas {
      font-size: 6em;
      color: #798998; }
    .functionnalityBlockContainer .funcBlock .funcContent {
      padding: 10px 5px;
      color: #798998;
      line-height: 1.2em; }

.form-content-description {
  line-height: 1.2em;
  text-align: left;
  padding: 10px;
  font-size: var(--ds-fs-secondary);
  color: #798998; }

.errorContainer {
  color: #eb4d11;
  display: block;
  padding-bottom: 5px; }

.alert_info {
  background-color: var(--warn-bg);
  text-align: left;
  padding: 15px 20px;
  margin: 0px 0px 10px;
  border-radius: 10px;
  width: 100%; }
  .alert_info button {
    vertical-align: middle;
    margin: 10px 0px; }
  .alert_info .spt-table {
    display: inline-grid; }
  @media (min-width: 768px) {
    .alert_info .spt-table {
      display: table; } }

@media (min-width: 1024px) {
  .productheader_loadingblock {
    margin: 0px 0px;
    height: 150px;
    display: flex; }
    .productheader_loadingblock .productheader_imageloading {
      width: 150px;
      height: 150px;
      border-radius: 10px;
      margin-left: 0px; }
    .productheader_loadingblock .productheader_contentloading {
      padding-left: 15px;
      overflow: hidden; }
      .productheader_loadingblock .productheader_contentloading .productheader_longlabelloading {
        height: 32px;
        width: 400px;
        margin: 5px;
        border-radius: 2px; }
      .productheader_loadingblock .productheader_contentloading .productheader_productstatusloading {
        height: 20px;
        width: 180px;
        margin: 5px;
        border-radius: 2px; }
      .productheader_loadingblock .productheader_contentloading .productheader_productoptionsloading {
        height: 30px;
        width: 270px;
        margin: 5px;
        border-radius: 2px; } }
@media (max-width: 1023px) {
  .productheader_loadingblock {
    margin: 10px 5px;
    height: 100px;
    display: flex; }
    .productheader_loadingblock .productheader_imageloading {
      width: 100px;
      height: 100px;
      border-radius: 10px;
      margin-left: 5px; }
    .productheader_loadingblock .productheader_contentloading {
      padding-left: 15px;
      width: calc(100% - 100px); }
      .productheader_loadingblock .productheader_contentloading .productheader_longlabelloading {
        height: 32px;
        width: 180px;
        margin: 5px;
        border-radius: 2px; }
      .productheader_loadingblock .productheader_contentloading .productheader_productstatusloading {
        height: 20px;
        width: 180px;
        margin: 5px;
        border-radius: 2px; }
      .productheader_loadingblock .productheader_contentloading .productheader_productoptionsloading {
        height: 30px;
        width: 180px;
        margin: 5px;
        border-radius: 2px; } }

.image-highlight {
  filter: brightness(0) invert(1); }

.lds-ring {
  display: inline-block;
  position: relative;
  width: 30px;
  height: 30px;
  padding: 4px; }
  .lds-ring.lds-ring-mini {
    width: 30px;
    height: 30px; }
  .lds-ring.lds-ring-large {
    width: 40px;
    height: 40px; }

.lds-ring div {
  box-sizing: border-box;
  display: block;
  position: absolute;
  width: 22px;
  height: 22px;
  border: 4px solid var(--color-primary);
  border-radius: 50%;
  animation: lds-ring 0.8s cubic-bezier(0.5, 0, 0.5, 1) infinite;
  border-color: var(--color-primary) transparent transparent transparent; }

.lds-ring-mini div {
  width: 22px;
  height: 22px; }

.lds-ring-large div {
  width: 32px;
  height: 32px; }

.lds-ring div:nth-child(1) {
  animation-delay: -0.30s; }

.lds-ring div:nth-child(2) {
  animation-delay: -0.2s; }

.lds-ring div:nth-child(3) {
  animation-delay: -0.10s; }

@keyframes lds-ring {
  0% {
    transform: rotate(0deg); }
  100% {
    transform: rotate(360deg); } }
/* lds-ring intégré à un bouton : réduit, aligné au texte, et reprend la
   couleur du texte du bouton (blanc sur .btn-primary) au lieu de la couleur
   primaire — sinon il serait invisible sur fond teal. */
.btn .lds-ring {
  width: 18px;
  height: 18px;
  padding: 2px;
  vertical-align: middle;
  margin-right: 4px; }

.btn .lds-ring div {
  width: 14px;
  height: 14px;
  border-width: 2px;
  border-color: currentColor transparent transparent transparent; }

/* Bouton en chargement (Topbar.setLoading) : on masque son icône d'origine —
   le lds-ring inséré en tête la remplace — et le libellé reste inchangé. */
.btn.is-loading > i {
  display: none; }

/* Contenu verrouillé pendant un enregistrement (POST plein page). On bloque
   l'interaction SANS poser 'disabled' sur les champs — ce qui les exclurait du
   POST. L'état est retiré automatiquement au rechargement de la page. */
.is-saving {
  pointer-events: none;
  opacity: 0.55;
  user-select: none;
  transition: opacity .15s ease; }

.color-red-danger {
  color: #eb4d11; }

.color-blue-light {
  color: var(--blue-light); }

.completeRequestErroMessage {
  margin-top: 10px;
  margin-bottom: 10px; }

#featuredProductList_loadingblock, #featuredProductList {
  padding-bottom: 20px;
  white-space: nowrap;
  overflow-x: auto;
  display: inline-block;
  width: 100%; }
  @media (max-width: 767px) {
    #featuredProductList_loadingblock, #featuredProductList {
      padding-bottom: 30px; } }

.pastille {
  background-color: rgba(255, 255, 255, 0.1);
  padding: 3px 8px;
  border-radius: 5px;
  display: inline-block;
  color: var(--text-inverse);
  margin-right: 6px; }

.login_individual {
  background-color: var(--surface);
  width: 40%;
  max-width: 320px;
  z-index: 2; }
  @media (max-width: 767px) {
    .login_individual {
      width: 100%;
      max-width: unset; } }

.login_individual_container {
  padding: 15px 30px 20px;
  text-align: left;
  position: sticky;
  top: 0px; }
  .login_individual_container h1 {
    font-weight: bold;
    line-height: 4.1rem;
    margin: 3px;
    margin-bottom: 30px; }
  .login_individual_container .btn-medium {
    margin-top: 3px;
    width: 100%; }
  @media (max-width: 767px) {
    .login_individual_container {
      padding: 20px 15px 10px; }
      .login_individual_container h1 {
        margin-bottom: 20px;
        font-size: 2.1rem;
        line-height: 2.8rem; }
      .login_individual_container h2 {
        margin-top: 0px; }
      .login_individual_container .btn-medium {
        margin-top: 3px;
        width: 100%;
        margin: 0px 0px 10px;
        padding: 12px 15px; }
      .login_individual_container .fPmention {
        display: none; } }

.lc-3 {
  padding-top: 20px; }
  @media (max-width: 767px) {
    .lc-3 {
      padding-top: 0px;
      padding-left: 5px; } }

.lc-3-2 {
  margin: 3px; }
  @media (max-width: 767px) {
    .lc-3-2 {
      display: none; } }

@media (max-width: 767px) {
  .lc-2 {
    padding-right: 5px; } }

#ins-selection, #ins-selection-modal,
.box-selection {
  position: relative; }
  @media (max-width: 767px) {
    #ins-selection, #ins-selection-modal,
    .box-selection {
      width: 100%; } }
  #ins-selection:before, #ins-selection-modal:before,
  .box-selection:before {
    content: '\f54e';
    font-family: 'Font Awesome 6 Pro';
    display: inline-block;
    font-weight: 300;
    margin-right: 4px;
    font-size: 1.33333em;
    line-height: .75em;
    vertical-align: -.0667em; }
  #ins-selection .selectbox, #ins-selection-modal .selectbox,
  .box-selection .selectbox {
    text-align: left;
    margin: -5px; }
    #ins-selection .selectbox .selectbox_container, #ins-selection-modal .selectbox .selectbox_container,
    .box-selection .selectbox .selectbox_container {
      display: flex;
      flex-direction: column; }
    #ins-selection .selectbox .action-item, #ins-selection-modal .selectbox .action-item,
    .box-selection .selectbox .action-item {
      padding: 10px 12px;
      display: inline-block;
      position: relative;
      line-height: initial; }

.desk .infos_content {
  background: var(--ct-surface);
  border: 0.5px solid var(--ct-border);
  border-radius: var(--ct-r-lg);
  padding: 25px;
  margin: 0px; }
  @media (max-width: 767px) {
    .desk .infos_content {
      padding: 25px 15px; } }

.search-input-container {
  padding: 10px;
  text-align: center; }
  .search-input-container .infos_content {
    width: 100%;
    max-width: 700px;
    display: inline-flex;
    flex-direction: column;
    padding: 30px 15px;
    align-items: center;
    border-radius: 30px;
    box-shadow: 0px 0px 2px rgba 0, 0, 0, 0.2; }
    .search-input-container .infos_content .search-input {
      display: flex;
      flex: 1;
      width: 100%;
      flex-direction: row;
      max-width: 540px;
      position: relative;
      align-items: center; }
      .search-input-container .infos_content .search-input .form-control {
        border-radius: 30px;
        padding-left: 45px; }
      .search-input-container .infos_content .search-input:before {
        content: '\f002';
        font-family: 'Font Awesome 6 Pro';
        position: absolute;
        font-weight: 300;
        left: 15px;
        font-size: 1.8rem;
        color: var(--text-2); }
  .search-input-container .register-button {
    height: auto;
    background-color: var(--brand-solid);
    color: var(--text-inverse);
    width: auto;
    border-radius: 7px;
    padding: 10px 20px;
    vertical-align: top;
    right: 5px;
    top: 5px;
    cursor: pointer;
    display: inline-flex;
    line-height: 28px;
    margin-left: 10px; }
  .search-input-container .register-button:hover {
    background-color: #47cdfe; }
  .search-input-container .register-button i {
    font-size: 1.4rem;
    line-height: 28px; }
  .search-input-container .register-button span {
    font-size: 1.4rem; }
  .search-input-container .fpLogo {
    width: 100%;
    max-width: 250px;
    margin-bottom: 15px;
    display: inline-block; }
    @media (max-width: 767px) {
      .search-input-container .fpLogo {
        max-width: 180px; } }

#search-product-container {
  display: flex;
  padding: 0px;
  border-radius: Min(var(--border-radius-little), 10px);
  background: var(--blue-light);
  padding: 5px 5px;
  align-items: center; }
  #search-product-container #search-product-input {
    flex: 1;
    width: 100%;
    flex-direction: row;
    max-width: 540px;
    position: relative;
    align-items: center;
    padding: 8px 10px;
    border: 0px solid;
    background: var(--blue-light); }
    #search-product-container #search-product-input:focus {
      outline: 0;
      box-shadow: none;
      background-color: var(--blue-light);
      color: var(--text); }
  #search-product-container:before {
    content: '\f002';
    font-family: 'Font Awesome 6 Pro';
    display: inline-block;
    font-weight: 300;
    margin-left: 10px;
    font-size: 1.8rem;
    color: var(--text-2); }
  #search-product-container #search-product-clear {
    padding: 0px 5px;
    cursor: pointer;
    color: var(--text-2);
    display: none; }
    #search-product-container #search-product-clear:hover {
      opacity: 0.7; }
    #search-product-container #search-product-clear:before {
      content: '\f057';
      font-family: 'Font Awesome 6 Pro';
      display: inline-block;
      font-weight: 300;
      margin-left: 10px;
      font-size: 1.8rem; }

.fp-first-i .btn-light, .fp-first-i .btn-default {
  padding: 10px 20px;
  margin: 0px;
  margin-bottom: 10px; }
  @media (max-width: 767px) {
    .fp-first-i .btn-light, .fp-first-i .btn-default {
      margin-bottom: 0px;
      padding: 8px 16px; } }
  .fp-first-i .btn-light i, .fp-first-i .btn-default i {
    margin-right: 12px; }

.fPContainer {
  height: 100%;
  min-height: 100vh;
  display: flex;
  flex-direction: row; }
  @media (max-width: 767px) {
    .fPContainer {
      flex-direction: column;
      min-height: unset; } }

.disconnected_wall_panel {
  width: 100%;
  text-align: center;
  padding: 30px 30px; }
  @media (max-width: 767px) {
    .disconnected_wall_panel {
      padding: 30px 0px; } }

.fPmention {
  display: inline-block;
  margin-top: 30px; }
  .fPmention .mentions_container {
    padding: 10px 0px !important; }
    .fPmention .mentions_container .text-center {
      text-align: left !important; }
      .fPmention .mentions_container .text-center span {
        padding: 0px !important; }

.d-flex-col {
  display: flex;
  flex-direction: column;
  width: 100%; }

.d-flex-row {
  display: flex;
  flex-direction: row;
  width: 100%; }

.d-inline-flex-row {
  display: inline-flex;
  width: 100%;
  flex-direction: row; }

.flex-1 {
  flex: 1; }

.max-1100 {
  max-width: 1100px; }

.gray-color {
  color: var(--text-2); }

.flex-h-align-center {
  align-items: center;
  justify-content: center; }

.flex-h-align-left {
  align-items: start; }

.codeInput {
  display: inline-block;
  width: auto; }
  .codeInput input {
    width: 45px;
    text-align: center;
    margin: 5px;
    display: inline-block;
    font-size: 1.8rem;
    padding: 20px 10px !important;
    border: 1px solid transparent; }
  .codeInput input:focus {
    border: 1px solid var(--blue-selected); }

#confirmSubscriptionForm .select-menu-hor {
  width: calc(50% - 5px);
  margin-bottom: 20px;
  display: inline-flex;
  align-items: center;
  background-color: var(--blue-light); }
  #confirmSubscriptionForm .select-menu-hor:before {
    display: inline-block;
    padding-right: 10px;
    font-weight: 800;
    font-family: 'Font Awesome 6 Pro';
    content: '\f111';
    color: var(--text-inverse); }
  #confirmSubscriptionForm .select-menu-hor.selected-menu-hor {
    background-color: var(--danger-bg); }
    #confirmSubscriptionForm .select-menu-hor.selected-menu-hor:before {
      content: '\f058';
      color: var(--red-danger); }
    #confirmSubscriptionForm .select-menu-hor.selected-menu-hor .gray-color {
      color: var(--warn-fg); }

.hr30 {
  margin: 30px 0px !important; }

.hr25 {
  margin: 25px 0px !important; }

.hr20 {
  margin: 20px 0px !important; }

.hr15 {
  margin: 15px 0px !important; }

.hr10 {
  margin: 10px 0px !important; }

#productGroupPurchaseForm {
  width: 100%; }

.marketbloc {
  background: var(--surface);
  margin: 30px 0px;
  display: inline-block;
  width: 100%;
  border-radius: 5px;
  box-shadow: 0px 0px 2px rgba(99, 112, 129, 0.15);
  padding: 20px; }
  @media (max-width: 767px) {
    .marketbloc {
      padding: 20px 15px; } }
  .marketbloc.large {
    max-width: 1500px; }

.groupPurchaseThumbnailsContainer {
  display: inline-grid;
  width: 100%;
  grid-template-columns: repeat(5, 1fr);
  row-gap: 30px;
  column-gap: 20px;
  width: 100%; }
  @media (max-width: 1199px) {
    .groupPurchaseThumbnailsContainer {
      grid-template-columns: repeat(4, 1fr); } }
  @media (max-width: 991px) {
    .groupPurchaseThumbnailsContainer {
      grid-template-columns: repeat(3, 1fr); } }
  @media (max-width: 767px) {
    .groupPurchaseThumbnailsContainer {
      grid-template-columns: repeat(2, 1fr);
      column-gap: 15px; } }

#shopProductDetailsContainerMP #shopProductDetailsForm .suggestion_container {
  padding: 0px 20px; }
@media (max-width: 767px) {
  #shopProductDetailsContainerMP #shopProductDetailsForm {
    padding: 0px !important; } }

.b2bnavbar {
  background: var(--surface);
  position: absolute;
  top: 0px;
  width: 300px;
  height: 100%;
  box-shadow: 0px 0px 2px var(--shadow);
  display: none;
  justify-content: center;
  left: -300px;
  overflow: hidden;
  z-index: 21; }
  .b2bnavbar .nav {
    display: flex;
    flex-direction: column;
    width: 100%;
    position: absolute;
    height: 100%; }
    .b2bnavbar .nav .nav-item {
      display: flex;
      align-items: center;
      height: 50px;
      padding: 0px 25px;
      color: var(--text);
      cursor: pointer; }
      .b2bnavbar .nav .nav-item a {
        color: var(--text);
        padding: 0px; }
      .b2bnavbar .nav .nav-item:hover {
        background: var(--blue-light); }
      .b2bnavbar .nav .nav-item.entete-menu {
        border-bottom: 1px solid var(--blue-light);
        font-weight: 600; }
        .b2bnavbar .nav .nav-item.entete-menu i {
          color: var(--text-2);
          font-size: 1.8rem; }
        .b2bnavbar .nav .nav-item.entete-menu:hover {
          background: var(--surface);
          opacity: 0.7; }
      .b2bnavbar .nav .nav-item.has-submenu:after {
        content: '\f054';
        font-family: 'Font Awesome 6 Pro';
        position: absolute;
        font-weight: 300;
        right: 15px;
        font-size: 1.5rem;
        color: var(--blue-dark); }
    .b2bnavbar .nav .categoriesMenu {
      display: flex;
      flex-direction: column;
      width: 300px;
      background: var(--surface);
      position: absolute;
      top: 0px;
      left: 300px;
      z-index: 10;
      box-shadow: 0px 0px 2px var(--shadow);
      display: none;
      height: 100%;
      background: var(--surface); }
      .b2bnavbar .nav .categoriesMenu .categoriesMenu-item {
        position: fixed;
        top: 60px;
        left: 0px;
        box-shadow: none;
        padding: 0px;
        width: 300px;
        height: 100%; }
        .b2bnavbar .nav .categoriesMenu .categoriesMenu-item .categoriesMenu-item-title {
          font-size: var(--ds-fs-secondary);
          font-weight: 600;
          margin-left: 10px; }

.submenuname {
  font-weight: 600;
  padding: 0px 5px !important;
  margin-top: 15px;
  display: flex;
  align-items: center;
  height: 30px; }

.dashboardSuggestion {
  display: block;
  width: 100%; }
  .dashboardSuggestion .groupPurchaseThumbnailsContainer {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    padding-bottom: 10px; }
    @media (max-width: 767px) {
      .dashboardSuggestion .groupPurchaseThumbnailsContainer {
        grid-template-columns: repeat(2, 1fr); } }

.social-menu-link {
  margin-left: 0px; }
  .social-menu-link.selected {
    color: var(--blue-selected) !important;
    border: 1px solid !important;
    cursor: default;
    background: var(--blue-light);
    opacity: 1; }
  .social-menu-link i {
    color: var(--blue-selected);
    width: 24px; }

.public-profile_container {
  display: flex;
  flex-direction: column; }
  @media (max-width: 767px) {
    .public-profile_container {
      flex-direction: row;
      align-items: center; } }
  @media (max-width: 767px) {
    .public-profile_container .public-profile_infos {
      padding-left: 15px; } }

.toogle-container .toggle {
  cursor: pointer;
  padding: 8px;
  margin-bottom: 0px;
  user-select: none;
  display: flex;
  align-items: center;
  font-weight: 500;
  background: var(--blue-medium); }
  .toogle-container .toggle span {
    flex: 1; }
.toogle-container .toggle label {
  cursor: pointer;
  display: flex; }
.toogle-container .toggle i {
  transition: transform 0.3s ease; }
.toogle-container .content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
  padding: 0 8px; }
.toogle-container input[type=checkbox] {
  display: none; }
.toogle-container input:checked + .toggle + .content {
  max-height: 1000px; }
.toogle-container input:checked + .toggle i {
  transform: rotate(90deg); }

.family-container .light-Container {
  background-color: var(--surface); }

.carousel-container {
  position: relative;
  overflow: hidden;
  border-radius: 15px;
  overflow: hidden; }
  .carousel-container:before {
    content: ' ';
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background-color: var(--blue-light);
    opacity: 1; }

.carousel-slide {
  display: flex;
  width: 100%;
  transition: transform 0.2s ease-in-out; }

.carousel-item {
  min-width: 100%;
  display: flex;
  align-items: center;
  justify-content: flex-start; }

.carousel-button {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background-color: var(--blue-medium);
  color: var(--text);
  border: none;
  cursor: pointer;
  width: 30px;
  height: 30px;
  z-index: 100;
  border-radius: 15px; }

.carousel-button.left {
  left: 10px; }

.carousel-button.right {
  right: 10px; }

.tox-tinymce {
  height: 100vh !important; }

.button-rond {
  border-radius: 50%;
  width: 50px;
  height: 50px;
  background: var(--blue-selected);
  border: none;
  font: 18px Tahoma bold;
  color: var(--text-inverse);
  text-shadow: 1px 1px 1px lighgrey;
  margin: 20px; }
  .button-rond:focus:not(:focus-visible) {
    outline: none; }

a:not([href]):not([class]), a:not([href]):not([class]):hover {
  color: var(--link-color);
  text-decoration: revert; }

@media (max-width: 575.98px) {
  .hidden-xs {
    display: none !important; } }
@media (min-width: 576px) and (max-width: 767.98px) {
  .hidden-sm {
    display: none !important; } }
@media (min-width: 768px) and (max-width: 991.98px) {
  .hidden-md {
    display: none !important; } }
@media (min-width: 992px) and (max-width: 1199.98px) {
  .hidden-lg {
    display: none !important; } }
@media (min-width: 1200px) {
  .hidden-xl {
    display: none !important; } }
.text-right {
  text-align: right; }

.text-center {
  text-align: center; }

.text-left {
  text-align: left; }

.context-menu {
  position: absolute;
  visibility: hidden;
  min-width: 200px;
  background: rgba(255, 255, 255, 0.75);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid var(--blue-medium);
  border-radius: 12px;
  box-shadow: 0 10px 25px -5px var(--shadow), 0 8px 10px -6px var(--shadow);
  padding: 6px;
  z-index: 1000;
  opacity: 0;
  transition: opacity 0.15s ease-out, transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
  pointer-events: none; }

.context-menu.pos-below {
  transition: opacity 0s ease-out, transform 0s cubic-bezier(0.34, 1.56, 0.64, 1);
  transform: translateY(-15px) translateX(-5px) scale(0.9); }

.context-menu.pos-above {
  transition: opacity 0s ease-out, transform 0s cubic-bezier(0.34, 1.56, 0.64, 1);
  transform: translateY(15px) translateX(-5px) scale(0.9); }

.context-menu.visible {
  transition: opacity 0.15s ease-out, transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
  visibility: visible;
  opacity: 1 !important;
  transform: translateY(0) translateX(0) scale(1) !important;
  pointer-events: auto; }

.context-menu ul {
  list-style: none;
  margin: 0;
  padding: 0; }

.context-menu li {
  padding: 8px 12px;
  font-size: 14px;
  font-weight: 500;
  border-radius: 8px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 10px;
  transition: background 0.05s, color 0.05s;
  border: 1px solid transparent; }
  .context-menu li i {
    width: 16px;
    font-size: 13px;
    text-align: center;
    color: var(--blue-selected);
    flex-shrink: 0; }

.context-menu li.danger {
  color: var(--danger-fg); }
  .context-menu li.danger i {
    color: var(--danger-fg); }

.context-menu li:hover {
  background-color: color-mix(in srgb, var(--blue-dark) 20%, transparent 0%);
  border: 1px solid color-mix(in srgb, var(--blue-dark) 5%, transparent 0%); }

.context-menu li.danger:hover {
  background: var(--danger-tint);
  color: var(--danger-fg);
  border: 1px solid color-mix(in srgb, var(--danger-solid) 5%, transparent 0%); }

.context-menu li.separator {
  padding: 0;
  height: 1px;
  margin: 4px 8px;
  background: var(--blue-medium);
  border: none;
  border-radius: 0;
  cursor: default;
  pointer-events: none; }

.item-collapse {
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  opacity: 0 !important;
  height: 0 !important;
  min-height: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  overflow: hidden;
  pointer-events: none; }

.label-primary {
  padding: 3px 12px;
  color: var(--text-inverse);
  background-color: var(--blue-selected);
  border-radius: 15px; }

/* ==========================================================================
   Skeleton Loader
   Usage : ajouter .sk-layout--[list|card|table|form] sur le conteneur parent
   ========================================================================== */
/* --------------------------------------------------------------------------
   Animation
   -------------------------------------------------------------------------- */
@keyframes sk-shimmer {
  0% {
    background-position: -800px 0; }
  100% {
    background-position: 800px 0; } }
/* --------------------------------------------------------------------------
   Bloc de base
   Toutes les variantes héritent de .sk-block
   -------------------------------------------------------------------------- */
.sk-block {
  display: block;
  height: var(--sk-height, 12px);
  width: var(--sk-width, 100%);
  border-radius: var(--sk-radius, 4px);
  margin: var(--sk-margin, 5px 0);
  animation-name: sk-shimmer;
  animation-duration: var(--sk-duration, 1.8s);
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
  background: linear-gradient(to right, var(--sk-color-base) 0%, var(--sk-color-highlight) 40%, var(--sk-color-base) 80%);
  background-size: 800px 100%; }

/* --------------------------------------------------------------------------
   Tokens de couleur — surchargeables par thème ou contexte
   -------------------------------------------------------------------------- */
:root {
  --sk-color-base: Color-mix(var(--background-color) 90%, black 10%);
  --sk-color-highlight: Color-mix(var(--blue-selected) 20%, var(--background-color) 80%);
  --sk-duration: 1.8s; }

/* Exemple de thème sombre — à activer si besoin */
/*
@media (prefers-color-scheme: dark) {
  :root {
    --sk-color-base:      #1e2a38;
    --sk-color-highlight: #2d4460;
  }
}
*/
/* --------------------------------------------------------------------------
   Éléments structurels
   -------------------------------------------------------------------------- */
/* Ligne de texte générique — hérite tout du contexte */
/* Titre — plus haut, largeur partielle */
.sk-line--title {
  --sk-height: 18px;
  --sk-width: 55%; }

/* Ligne courte (ex. date, tag, prix) */
.sk-line--short {
  --sk-width: 35%; }

/* Avatar / photo de profil */
.sk-avatar {
  --sk-height: var(--sk-avatar-size, 40px);
  --sk-width: var(--sk-avatar-size, 40px);
  --sk-radius: 50%;
  --sk-margin: 0;
  flex-shrink: 0; }

/* Vignette image (ex. thumbnail de carte) */
.sk-thumbnail {
  padding-bottom: 90%;
  --sk-radius: 6px;
  --sk-margin: 0 0 12px 0; }

/* Bouton factice */
.sk-btn {
  --sk-height: 34px;
  --sk-width: 120px;
  --sk-radius: 6px; }

/* Badge / tag */
.sk-badge {
  --sk-height: 22px;
  --sk-width: 64px;
  --sk-radius: 20px; }

/* Icône carrée */
.sk-icon {
  --sk-height: var(--sk-icon-size, 24px);
  --sk-width: var(--sk-icon-size, 24px);
  --sk-radius: 4px;
  --sk-margin: 0;
  flex-shrink: 0; }

/* --------------------------------------------------------------------------
   Helpers de mise en page
   -------------------------------------------------------------------------- */
/* Ligne horizontale (avatar + lignes de texte) */
.sk-row {
  display: flex;
  gap: 12px;
  align-items: flex-start; }

/* Colonne de lignes de texte */
.sk-lines {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
  /* évite le débordement flex */ }
  .sk-lines :first-child {
    width: 90%; }
  .sk-lines :nth-child(2) {
    width: 30%; }
  .sk-lines :nth-child(3) {
    width: 70%; }

/* --------------------------------------------------------------------------
   Contextes — sk-layout--[variant]
   Chaque variant surcharge uniquement les tokens nécessaires
   -------------------------------------------------------------------------- */
/* --- Liste (ex. fil d'actualité, résultats de recherche) --- */
.sk-layout--list {
  --sk-height: 11px;
  --sk-avatar-size: 40px; }

.sk-layout--list .sk-row {
  margin-bottom: 20px; }

.sk-layout--list .sk-row:last-child {
  margin-bottom: 0; }

/* --- Carte (ex. produit, article, profil) --- */
.sk-layout--card {
  --sk-height: 13px;
  --sk-thumbnail-height: 150px; }

/* --- Grille de cartes --- */
.sk-layout--grid {
  --sk-height: 13px;
  --sk-thumbnail-height: 120px;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 16px; }

/* --- Tableau (ex. liste de données, historique) --- */
.sk-layout--table {
  --sk-height: 14px;
  --sk-radius: 2px; }

.sk-layout--table .sk-row {
  gap: 8px;
  margin-bottom: 0;
  padding: 10px 0;
  border-bottom: 1px solid var(--line); }

.sk-layout--table .sk-row:last-child {
  border-bottom: none; }

/* Colonnes proportionnelles via custom property --sk-col-[n] */
.sk-layout--table .sk-col-1 {
  --sk-width: var(--sk-col-1, 20%); }

.sk-layout--table .sk-col-2 {
  --sk-width: var(--sk-col-2, 35%); }

.sk-layout--table .sk-col-3 {
  --sk-width: var(--sk-col-3, 20%); }

.sk-layout--table .sk-col-4 {
  --sk-width: var(--sk-col-4, 15%); }

/* --- Formulaire (ex. page d'édition, fiche) --- */
.sk-layout--form {
  --sk-height: 12px; }

.sk-layout--form .sk-field {
  margin-bottom: 20px; }

/* Label du champ */
.sk-layout--form .sk-label {
  --sk-height: 10px;
  --sk-width: 30%;
  --sk-margin: 0 0 8px 0; }

/* Input du champ */
.sk-layout--form .sk-input {
  --sk-height: 36px;
  --sk-radius: 4px;
  --sk-margin: 0; }

/* --------------------------------------------------------------------------
   Accessibilité
   -------------------------------------------------------------------------- */
/* Le skeleton est décoratif — caché aux lecteurs d'écran */
.sk-layout--list,
.sk-layout--card,
.sk-layout--grid,
.sk-layout--table,
.sk-layout--form {
  /* Appliquer aria-hidden="true" sur le conteneur côté HTML */ }

/* Réduction des animations si l'utilisateur le préfère */
@media (prefers-reduced-motion: reduce) {
  .sk-block {
    animation: none;
    background: var(--sk-color-base); } }
/* --------------------------------------------------------------------------
   Generic picker field
   -------------------------------------------------------------------------- */
.td-picker {
  position: relative; }

.td-picker-trigger {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 42px;
  padding: 10px 38px 10px 12px;
  border: 1px solid var(--blue-medium);
  border-radius: var(--border-radius-little);
  background: var(--input-background-color);
  color: var(--text-color);
  text-align: left; }

.td-picker-trigger::after {
  content: "\f078";
  font-family: "Font Awesome 6 Pro";
  font-weight: 300;
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--blue-dim);
  pointer-events: none; }

.td-picker-trigger.placeholder {
  color: var(--blue-dim); }

.td-picker-trigger.disabled,
.td-picker-trigger:disabled {
  opacity: 0.65;
  cursor: not-allowed; }

.td-picker-trigger.has-preview {
  min-height: 50px;
  padding-left: 8px; }

.td-picker-preview {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  overflow: hidden;
  border-radius: var(--border-radius-little);
  background: var(--blue-light);
  color: var(--text-color);
  font-size: var(--ds-fs-secondary);
  font-weight: 700; }

.td-picker-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover; }

.td-picker-text {
  display: flex;
  flex-direction: column;
  min-width: 0;
  line-height: 1.25; }

.td-picker-label,
.td-picker-meta {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap; }

.td-picker-label {
  font-weight: 600; }

.td-picker-meta {
  margin-top: 2px;
  color: var(--blue-dim);
  font-size: var(--ds-fs-secondary);
  font-weight: 400; }

.td-picker-popup {
  background: var(--input-background-color);
  border: 1px solid var(--blue-medium);
  border-radius: var(--border-radius-medium);
  box-shadow: 0 10px 30px color-mix(in srgb, var(--blue-dim) 12%, transparent);
  z-index: 9999;
  overflow: hidden; }

.td-picker-search {
  padding: 10px;
  border-bottom: 1px solid var(--blue-light);
  background: var(--background-color); }

.td-picker-search input {
  width: 100%;
  min-height: 38px;
  padding: 8px 10px;
  border: 1px solid var(--blue-medium);
  border-radius: var(--border-radius-little);
  background: var(--input-background-color);
  color: var(--text-color); }

.td-picker-list {
  max-height: 280px;
  overflow-y: auto; }

.td-picker-item {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  border: 0;
  background: transparent;
  color: var(--text-color);
  text-align: left;
  padding: 10px 12px; }

.td-picker-item:hover,
.td-picker-item:focus {
  background: var(--selected-opacity); }

.td-picker-empty {
  padding: 12px;
  color: var(--blue-dim); }

.ap-popup {
  position: fixed;
  background: rgba(255, 255, 255, 0.82);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid var(--blue-medium);
  border-radius: 12px;
  box-shadow: 0 10px 25px -5px var(--shadow), 0 8px 10px -6px var(--shadow-soft);
  padding: 6px;
  max-height: 320px;
  overflow-y: auto;
  z-index: 30000;
  opacity: 0;
  transform: translateY(-8px) scale(0.96);
  transition: opacity 0.14s ease-out, transform 0.18s cubic-bezier(0.34, 1.56, 0.64, 1);
  pointer-events: none;
  text-align: left; }

.ap-popup.ap-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto; }

.ap-popup ul {
  list-style: none;
  margin: 0;
  padding: 0; }

.ap-popup li {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
  padding: 6px 10px;
  border-radius: 8px;
  border: 1px solid transparent;
  cursor: pointer;
  transition: background 0.06s; }

.ap-popup li:hover {
  background: color-mix(in srgb, var(--blue-dark) 18%, transparent);
  border-color: color-mix(in srgb, var(--blue-dark) 6%, transparent); }

.ap-popup .ap-item-img {
  width: 30px;
  height: 30px;
  border-radius: 6px;
  object-fit: cover;
  flex-shrink: 0;
  background: var(--blue-medium); }

.ap-popup .ap-item-text {
  display: flex;
  flex-direction: column;
  gap: 0px;
  overflow: hidden;
  flex: 1; }

.ap-popup .ap-item-label {
  font-size: 1.4rem;
  font-weight: 500;
  color: var(--blue-dim);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; }

.ap-popup .ap-item-meta {
  font-size: var(--ds-fs-caption);
  color: var(--blue-dark);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; }

.ap-popup .ap-empty {
  padding: 10px 12px;
  font-size: 1.3rem;
  color: var(--blue-dark); }

.ap-popup .ap-loading {
  padding: 14px 16px; }

/* BUG-078 (13/10/2026) : en sombre, la liste des résultats de l'ArticlePicker (Transferts, bons de commande, réceptions,
   sorties, inventaires, production, devis…) restait BLANCHE (fond rgba(255,255,255,.82) en dur) avec des libellés clairs
   et des détails gris illisibles. Sous ds2, le popup lit les jetons : surface (même verre dépoli), filet, ombre flottante,
   texte courant / secondaire, survol = surface creuse. Hors ds2 (pas de jetons), les règles ci-dessus restent. */
html.ds2 .ap-popup {
  background: color-mix(in srgb, var(--surface) 92%, transparent);
  border-color: var(--line-strong);
  box-shadow: var(--sh-lg);
  color: var(--text); }
  html.ds2 .ap-popup li:hover {
    background: var(--surface-sunk);
    border-color: var(--line); }
  html.ds2 .ap-popup .ap-item-img {
    background: var(--surface-sunk); }
  html.ds2 .ap-popup .ap-item-label {
    color: var(--text); }
  html.ds2 .ap-popup .ap-item-meta {
    color: var(--text-2); }
  html.ds2 .ap-popup .ap-empty {
    color: var(--text-2); }

.article-picker {
  display: flex;
  align-items: center;
  max-width: 640px;
  position: relative; }

/* Fond blanc de l'input ArticlePicker UNIQUEMENT dans les vues inventaire
   (OrderReception / Delivery / Transfer / Production) — ID #inventory-article-picker
   n'existe que dans ces vues, donc la règle n'affecte pas les autres pages
   qui instancient un ArticlePicker (catalogue, services, etc.). */
#inventory-article-picker .form-control {
  background-color: var(--surface); }

/* Vignette d'article vide à gauche du champ de recherche */
/* 13/10/2026 (Romain) : vignette d'ATTENTE — simple carré arrondi neutre (fond de groupe, filet, sans icône), qui dit partout
   « ici on choisit un article » ; centrée verticalement sur le champ, comme le lien « Parcourir ». */
.ap-field-thumb {
  flex-shrink: 0;
  width: 34px;
  height: 34px;
  margin-right: 10px;
  border: 1px solid var(--line, var(--blue-medium));
  border-radius: var(--border-radius-little);
  background-color: var(--group-bg, var(--blue-light)); }

/* Champ à libellé au-dessus (ds2 cale le bloc sur le CHAMP, en bas) : la vignette se centre sur la hauteur du champ. */
html.ds2 .article-picker:has(> .dynInput > label) > .ap-field-thumb {
  margin-bottom: calc((var(--control-h, 40px) - 34px) / 2); }

/* Liste gérée des articles sélectionnés (ArticlePicker, cfg.listEl) */
.ap-list-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 0;
  border-top: 1px solid var(--blue-light); }

.ap-list-thumb {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  border-radius: var(--border-radius-little);
  object-fit: cover;
  background-color: var(--blue-medium); }

.ap-list-text {
  flex: 1;
  min-width: 0; }

.ap-list-label {
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; }

.ap-list-meta {
  font-size: var(--ds-fs-caption);
  color: var(--blue-dark);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; }

.ap-list-remove {
  flex-shrink: 0;
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px 10px;
  font-size: 1.4rem;
  color: var(--red-danger);
  opacity: 0.55; }

.ap-list-remove:hover {
  opacity: 1; }

/* ── ArticlePicker : « Parcourir » = catalogue intégré (FIX-REC, 28/09 ; main.js, openCatalog) ──
   Lien dans le champ (champ généré) ou juste après (browse:true sur un champ existant) ; le catalogue
   s'ouvre dans la fenêtre showModal. Documenté dans DESIGN_SYSTEM.md (§ ArticlePicker). */
.ap-browse-link {
  white-space: nowrap;
  flex-shrink: 0;
  font-size: 1.3rem;
  padding: 5px;
  cursor: pointer; }

.article-picker > .ap-browse-link {
  position: absolute;
  right: 10px; }

/* 13/10/2026 : champ à placeholder (sans libellé au-dessus) — « Parcourir » centré verticalement dans le champ. */
.article-picker:not(:has(> .dynInput > label)) > .ap-browse-link {
  top: 50%;
  transform: translateY(-50%); }

/* Le texte saisi ne passe pas sous le lien. */
.article-picker.ap-has-browse .form-control {
  padding-right: 96px; }

.ap-browse-after {
  margin-left: 8px; }

.ap-cat-filters {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  gap: 10px;
  margin-bottom: 12px; }

@media (max-width: 560px) {
  .ap-cat-filters {
    grid-template-columns: 1fr; } }
.ap-cat-list {
  max-height: min(52vh, 420px);
  overflow-y: auto;
  text-align: left; }

.ap-cat-item {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 8px 6px;
  border: 0;
  border-top: 1px solid var(--blue-light);
  border-radius: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer; }
  .ap-cat-item:first-child {
    border-top: 0; }
  .ap-cat-item:hover, .ap-cat-item:focus-visible {
    background: var(--blue-light);
    outline: none; }
  .ap-cat-item .ap-list-label,
  .ap-cat-item .ap-list-meta {
    display: block; }
  .ap-cat-item .ap-cat-add {
    flex-shrink: 0;
    color: var(--blue-selected);
    font-size: 1.4rem; }

#btcloture {
  color: var(--text-2); }
  #btcloture:hover {
    color: var(--link); }

.label_duau_etat {
  width: 35px;
  float: left;
  line-height: 44px; }

.duau_etat_input {
  float: right;
  width: calc(100% - 35px); }

.edit_etat_cb.control-checkbox {
  margin-top: 15px !important; }

#srch_cloture_container {
  box-shadow: 0px 3px 3px var(--line);
  border: 1px solid var(--line); }

.srch_input_cloture {
  padding-right: 0px; }

.srch_cloture {
  padding-left: 0px;
  padding-right: 0px;
  height: 44px;
  line-height: 40px; }

.acloturer_header {
  margin-bottom: 5px; }

.cloture_item_container {
  padding: 5px 15px 5px 15px;
  color: var(--text);
  font-family: "Lato","sans-serif";
  font-size: 1.4rem;
  font-weight: bold;
  border-bottom: solid;
  border-color: var(--line);
  border-width: 1px; }
  .cloture_item_container:hover {
    color: var(--link);
    cursor: pointer;
    box-shadow: 0px 2px 2px var(--line); }
    .cloture_item_container:hover .cloture_item_date {
      color: var(--text-2); }

.cloture_item_container.no_bottom_border {
  border-bottom: none; }

.cloture_item {
  padding-top: 5px;
  padding-bottom: 5px;
  margin: 0;
  text-align: left;
  border-radius: 5px; }
  .cloture_item:hover {
    background-color: var(--blue-light);
    cursor: pointer; }

.cloture_item_date {
  font-weight: normal;
  color: var(--text-3); }

.no_item {
  font-size: 1.4rem;
  font-weight: bold; }

p.no_item {
  margin-bottom: 0px; }

.cloture_header {
  color: var(--text-3);
  background-color: var(--surface-muted);
  text-align: left;
  padding: 6px 6px 8px 6px;
  padding-left: 15px;
  margin-bottom: 20px;
  height: 32px;
  clear: both; }
  .cloture_header span {
    font-weight: bold;
    color: var(--text-2); }

#especes_header {
  display: inline;
  float: left; }

.cloture_container {
  margin-left: 5px;
  margin-right: 5px;
  margin-bottom: 30px; }

.cloture_label {
  padding-left: 35px;
  text-align: left;
  font-weight: bolder; }

.cloture_cb_label {
  padding-top: 10px;
  text-align: left;
  padding-bottom: 10px; }

.cloture_cb_content {
  text-align: center; }

.cloture_input.form-control {
  color: var(--text);
  text-align: right;
  padding-left: 5px;
  padding-right: 5px; }

.cloture_label_top {
  text-align: left;
  display: block;
  color: var(--text-disabled);
  font-size: var(--ds-fs-secondary);
  line-height: 16px; }

.cloture_label_bot {
  text-align: left;
  display: block;
  color: var(--text-3);
  font-weight: bolder; }

.cloture_label_billet {
  padding: 5px 3px 0px 0px; }

.cloture_label_input {
  padding: 0; }

.cloture_value {
  text-align: right;
  vertical-align: middle; }

.cloture_valuelabel {
  text-align: left;
  vertical-align: middle;
  font-weight: bold; }

@media (min-width: 991px) {
  .bottom-align-text-md {
    position: absolute;
    bottom: 0;
    right: 0; } }

.cloture_img {
  line-height: 44px;
  text-align: left; }

.cheque_input {
  text-overflow: ellipsis;
  white-space: nowrap;
  padding: 2px 8px; }

#ajout_cheque {
  display: block;
  padding-bottom: 10px; }

.bouton_radio {
  display: inline-block;
  float: right;
  text-align: right;
  font-weight: normal;
  color: var(--text-2);
  margin: 0;
  padding: 0px 5px 0px 0px; }

.label_bouton_radio {
  float: left;
  margin-right: 10px;
  margin-top: 1px; }

#montant_total_especes {
  display: inline-block;
  white-space: nowrap;
  text-overflow: ellipsis; }

#montant_total_especes_input {
  display: none;
  width: 100px;
  white-space: nowrap;
  text-overflow: ellipsis; }
  #montant_total_especes_input input {
    width: 100px; }

#montant_total_cheques_input {
  display: none;
  width: 100px;
  white-space: nowrap;
  text-overflow: ellipsis; }
  #montant_total_cheques_input input.form-control {
    width: 100px; }

.cloture_header_value {
  display: inline-block;
  white-space: nowrap;
  text-overflow: ellipsis; }

.acommander_header {
  margin-top: 10px; }

.cheque_item {
  vertical-align: middle;
  line-height: 100%; }

.cheque_container hr {
  padding: 0;
  margin: 13px 0px 13px 0px; }

#noArticle {
  background-color: white;
  position: relative;
  overflow: hidden; }
  @media (min-width: 768px) {
    #noArticle {
      height: calc(100vh - 55px); } }
  @media (max-width: 767px) {
    #noArticle {
      padding-top: 50px;
      margin: 0;
      height: 100%; } }

@media (min-width: 768px) {
  .menu_article_mobile {
    display: none; } }
@media (max-width: 767px) {
  .menu_article_mobile {
    display: flex; } }

@media (min-width: 768px) {
  .menu_article {
    display: flex; } }
@media (max-width: 767px) {
  .menu_article {
    display: none; } }

@media (min-width: 451px) {
  .label_add_article {
    margin-left: 6px;
    display: inline-flex; } }
@media (max-width: 450px) {
  .label_add_article {
    display: none; } }

/*.article_selected .duplicate-items {
    display:none;
}*/
#list_artcomp .duplicate-items .ligneArticle {
  padding-right: 8px !important; }

.img_preview img {
  width: 100%;
  height: 100%;
  border-radius: 5px;
  background-position: center center;
  object-fit: cover; }

.img_preview {
  vertical-align: middle;
  position: relative;
  overflow: hidden;
  border-radius: 5px; }
  .img_preview:after {
    content: '';
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--surface-inverse);
    opacity: .03;
    pointer-events: none;
    padding-bottom: 100%;
    position: absolute; }

.is-family-preview {
  background-image: none !important;
  background-color: var(--surface-muted);
  text-align: center;
  font-size: 1.8rem;
  color: var(--text-inverse);
  font-weight: bold;
  line-height: 36px; }

#list_artcomp {
  min-height: calc(100vh - 250px);
  display: inline-block;
  width: 100%; }

#list_artcomp .img_preview div {
  width: 36px;
  height: 36px; }

.img_preview-mini div {
  width: 36px;
  height: 36px; }

#list_artcomp div[name=Famille] {
  display: none; }

#list_artcomp .ligneArticle {
  padding: 8px 15px;
  cursor: pointer; }

.modal-body .ligneArticle {
  margin: 0;
  border-radius: 0; }
  .modal-body .ligneArticle .cb_container {
    padding-left: 0px; }
  .modal-body .ligneArticle .list-article-price, .modal-body .ligneArticle .list-article-promo, .modal-body .ligneArticle .unavailable-label {
    padding-right: 5px; }

.stockLabel {
  padding-right: 0px; }

#list_artcomp .article_main_info {
  font-weight: normal !important;
  display: block; }

#list_artcomp .article-picker-meta {
  margin-top: 0px; }

.ligneFamille {
  padding: 3px 5px;
  border-bottom: 1px solid var(--blue-light);
  cursor: pointer; }

.ligneFamille:hover {
  background-color: var(--surface-2); }

.ligneFamille i {
  color: var(--text-disabled);
  position: absolute;
  right: 15px;
  height: 14px;
  top: 50%;
  margin-top: -7px; }

.ligneFamille div[name=Nom] {
  padding: 10px 0px; }

.addToList:empty {
  display: none; }

.removeAllToList:empty {
  display: none; }

.modal-title-text i {
  float: initial;
  padding: 0;
  background-color: transparent;
  padding-right: 10px;
  margin-top: -4px;
  font-size: 1.2rem; }

.editImage {
  padding-top: 100%;
  position: relative;
  border-radius: 4px;
  width: 100%;
  background: linear-gradient(var(--surface), var(--surface-sunk));
  display: inline-block;
  border: 1px solid #d4dde6;
  background-image: url("/Resources/no-image.jpg");
  background-position: center center;
  background-size: cover; }

#listArticles {
  position: relative;
  margin-left: 0px;
  background-color: white;
  width: 100%;
  display: flex;
  flex-direction: column; }

#listArticleHeader {
  position: sticky;
  top: 0px;
  z-index: 2; }
  @media (max-width: 767px) {
    #listArticleHeader {
      top: 60px;
      background-color: white; } }

.ligneFormule {
  background-color: var(--blue-light);
  padding: 6px;
  border-radius: 4px;
  display: inline-block;
  margin-top: 3px;
  margin-right: 3px; }
  .ligneFormule .formule-thumb {
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    border-radius: 5px; }

#col_1, #articles_col1 {
  flex: 1; }
  @media (min-width: 768px) {
    #col_1, #articles_col1 {
      z-index: 3;
      margin-left: 0px;
      margin-top: 0px;
      border-radius: 0px;
      border-right: 1px solid var(--blue-light); } }
  @media (max-width: 767px) {
    #col_1, #articles_col1 {
      padding-left: 0px;
      padding-right: 0px;
      overflow: visible;
      width: 100%; } }

.product_spec_preview {
  display: flex;
  padding: 5px; }

/* Customize the label (the container) */
.styled-checkbox {
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  width: 100%;
  align-items: center;
  display: block;
  margin-bottom: 0px;
  display: flex;
  align-items: center; }

/* Hide the browser's default checkbox */
.styled-checkbox input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
  height: 0;
  width: 0; }

.checkbox-text {
  font-size: 1.4rem;
  font-weight: normal;
  padding-left: 3px;
  width: calc(100% - 30px);
  margin-right: 6px;
  padding-top: 1px; }

/* Create a custom checkbox */
.checkmark {
  display: inline-block;
  height: 16px;
  width: 16px;
  min-width: 16px;
  background: var(--surface);
  border-radius: 4px;
  margin-left: 0px;
  margin-right: 6px;
  border: 1px solid var(--blue-dark); }
  .checkmark.disabled {
    background: white;
    border: 1px solid var(--line);
    cursor: default; }

/* On mouse-over, add a grey background color */
.styled-checkbox:hover input ~ .checkmark {
  border-color: var(--blue-dark); }
  .styled-checkbox:hover input ~ .checkmark.disabled {
    background-color: white; }

/* When the checkbox is checked, add a blue background */
.styled-checkbox input:checked ~ .checkmark {
  border-color: var(--blue-selected);
  background-color: var(--blue-selected); }

/* Create the checkmark/indicator (hidden when not checked) */
.checkmark:after {
  content: "";
  display: block;
  opacity: 0; }

/* Show the checkmark when checked */
.styled-checkbox input:checked ~ .checkmark:after {
  display: block;
  -webkit-transform: rotate(45deg) scale(1);
  -ms-transform: rotate(45deg) scale(1);
  transform: rotate(45deg) scale(1);
  opacity: 1; }

.styled-checkbox-partial input:checked ~ .checkmark:after {
  display: block;
  -webkit-transform: rotate(0deg) scale(1);
  -ms-transform: rotate(0deg) scale(1);
  transform: rotate(0deg) scale(1);
  opacity: 1; }

/* Style the checkmark/indicator */
.styled-checkbox .checkmark:after {
  left: 4px;
  top: 1px;
  width: 6px;
  height: 9px;
  border: solid var(--surface);
  border-width: 0 2px 2px 0;
  -webkit-transform: rotate(45deg) scale(0);
  -ms-transform: rotate(45deg) scale(0);
  transform: rotate(45deg) scale(0);
  background-color: transparent;
  position: relative;
  transform-origin: center;
  opacity: 1;
  -webkit-transition: all 0.20s;
  -moz-transition: all 0.20s;
  -o-transition: all 0.20s;
  transition: all 0.20s; }

.styled-checkbox-partial .checkmark:after {
  left: 15%;
  top: calc(50% - 1px);
  width: 70%;
  height: 2px;
  border-radius: 0px;
  border-width: 0px;
  background-color: var(--surface);
  -webkit-transform: rotate(0deg) scale(0);
  -ms-transform: rotate(0deg) scale(0);
  transform: rotate(0deg) scale(0);
  opacity: 1; }

.checkbox {
  width: 18px;
  height: 18px;
  background: linear-gradient(var(--surface), var(--surface-sunk));
  border-radius: 4px;
  margin-left: 6px;
  border: 1px solid #d6dbe2; }

.checkbox ::after {
  background-color: transparent; }

#actionBox {
  top: 38px;
  left: unset !important;
  right: 0px;
  padding: 10px 0px;
  min-width: 250px; }
  #actionBox:before {
    right: 19px;
    left: unset; }
  #actionBox:after {
    right: 20px;
    left: unset; }

#typeArticleBox {
  top: 20px;
  right: 25px;
  left: auto;
  padding: 10px 0px;
  width: 180px;
  min-width: 0px;
  color: var(--text);
  border: none;
  box-shadow: 0 0 0 1px rgba(63, 63, 68, 0.05), 0 1px 3px 0 rgba(63, 63, 68, 0.15); }

#typeArticleBox:after {
  top: -6px;
  right: 10px;
  left: initial;
  color: var(--text-inverse); }

#typeArticleBox:before {
  top: -7px;
  right: 9px;
  left: initial;
  border-bottom: 7px solid var(--line); }

.typeVenteBox, .typeCustomerGroupBox {
  top: 30px;
  right: 25px;
  left: 10px;
  padding: 10px 0px;
  width: 180px;
  min-width: 0px;
  color: var(--text);
  border: none; }

.typeVenteBox:before, .typeCustomerGroupBox:before {
  border-bottom: 7px solid var(--line); }

.action-item {
  padding: 10px 15px;
  display: block;
  width: 100%;
  cursor: pointer;
  white-space: nowrap; }
  .action-item.canwrap {
    white-space: normal; }

.action-item i {
  padding-right: 5px; }

.action-item:hover {
  background-color: var(--selected-opacity); }

.separate-action {
  border-top: 1px solid var(--blue-medium);
  width: 100%;
  margin: 10px 0px; }

#home_col_1 {
  position: relative; }
  @media (max-width: 767px) {
    #home_col_1 {
      height: 100%; } }

#tableArticles {
  display: inline-block;
  width: 100%; }

.tableArticlesContainer {
  padding-top: 0px; }
  @media (min-width: 768px) {
    .tableArticlesContainer {
      height: calc(100% - 60px); } }
  @media (max-width: 767px) {
    .tableArticlesContainer {
      overflow: visible;
      min-height: calc(100% - 60px); } }

@media (max-width: 767px) {
  #loading-articles {
    margin-top: -100px; } }

#col_2, #articles_col2 {
  display: block;
  min-height: 0;
  height: 0;
  padding: 0;
  padding: 20px 0px 15px;
  height: auto;
  flex: 1; }
  @media (min-width: 1200px) {
    #col_2, #articles_col2 {
      display: block; } }

#articles_col2 {
  padding: 20px 0px 15px; }
  @media (max-width: 767px) {
    #articles_col2 {
      display: none; } }
  @media (min-width: 768px) {
    #articles_col2 {
      display: block; } }

#home_col_2 {
  flex: 1;
  display: flex;
  justify-content: center; }

.no_article {
  display: none;
  color: var(--text-2);
  width: 100%;
  padding: 0;
  z-index: 2;
  padding: 10px 0px; }
  @media (max-width: 1199px) {
    .no_article {
      width: 100%; } }

#loadingArticleRevisions {
  display: inline-block;
  margin-top: 0px; }

div[name="infos_articles"] {
  padding-top: 25px; }

@media (min-width: 768px) {
  div[name="stock_articles"] {
    padding-top: 140px; } }

@media (min-width: 768px) {
  div[name="commmande_articles"], div[name="livraison_articles"], div[name="factures_client"] {
    padding-top: 42px; } }

@media (min-width: 768px) {
  div[name="promotion_articles"] {
    padding-top: 62px; } }

.select-image {
  background-color: var(--overlay);
  color: var(--text-inverse);
  cursor: pointer;
  left: 6px;
  bottom: 6px;
  position: absolute;
  height: 30px;
  line-height: 30px;
  border-radius: 15px;
  width: 30px;
  font-size: 1.3rem; }

#liste_articles_container {
  height: 100%;
  width: 100%; }

.tarif_wrap, .four_wrap, .formule_wrap, .artcomp_wrap {
  position: relative;
  padding-bottom: 0px;
  width: 100%;
  padding: 10px 0px; }

.tarif-wrap {
  width: 100%; }

.artcomp_wrap, .tarif_wrap, .spec_wrap {
  background-color: var(--blue-light);
  border-radius: Min(var(--border-radius-little), 10px);
  margin: 10px 0px 0px;
  display: flex;
  align-items: center;
  padding: 10px 15px; }
  .artcomp_wrap input[type="text"], .artcomp_wrap input[type="number"], .artcomp_wrap select, .artcomp_wrap .input-search-button, .tarif_wrap input[type="text"], .tarif_wrap input[type="number"], .tarif_wrap select, .tarif_wrap .input-search-button, .spec_wrap input[type="text"], .spec_wrap input[type="number"], .spec_wrap select, .spec_wrap .input-search-button {
    background-color: var(--surface); }
  .artcomp_wrap:first-child, .tarif_wrap:first-child, .spec_wrap:first-child {
    margin-top: 10px; }
  .artcomp_wrap:last-child, .tarif_wrap:last-child, .spec_wrap:last-child {
    margin-bottom: 20px; }

.tarif_wrap {
  padding: 20px 20px; }
  .tarif_wrap:first-child {
    margin-top: 0px; }

.tarif-horaire {
  margin-top: 14px; }
  .tarif-horaire input[type="time"] {
    background-color: var(--surface); }

.tarif-jours-box {
  z-index: 20; }

html .tarif-jours-dyn .tarif-jours-box label.tarif-jour-row {
  position: relative;
  top: auto;
  left: auto;
  display: flex;
  align-items: center;
  gap: 0;
  width: 100%;
  margin: 0;
  padding: 10px 12px;
  transform: none;
  font-size: inherit;
  font-weight: normal;
  line-height: initial;
  color: var(--text);
  pointer-events: auto;
  cursor: pointer;
  user-select: none; }
  html .tarif-jours-dyn .tarif-jours-box label.tarif-jour-row:hover {
    background-color: var(--hover, var(--blue-light)); }
  html .tarif-jours-dyn .tarif-jours-box label.tarif-jour-row .checkmark {
    margin-right: 8px; }

.spec_wrap:first-child {
  margin-top: 0px; }

.fa-circle-question {
  font-size: 1.6rem;
  color: #9ca1a7;
  cursor: pointer;
  margin-left: 6px; }
  .fa-circle-question:hover {
    color: #eb4d11; }

.help-text {
  margin-bottom: 20px;
  border-radius: 5px;
  border: 1px solid var(--red-danger);
  padding: 10px;
  align-items: center;
  display: none; }
  .help-text::before {
    content: '\f059';
    display: inline;
    font-family: "Font Awesome 6 Pro";
    font-weight: 300;
    font-size: 2rem;
    color: #eb4d11;
    margin-right: 10px; }

.no-min-height {
  min-height: 0px !important; }

.formule_wrap {
  padding-bottom: 5px; }
  .formule_wrap .noChoixFormule {
    color: var(--text-disabled);
    margin-top: -5px; }

/* ── Onglet « Composition de la formule » ─────────────────────────────────
   Une CATÉGORIE de choix (boisson, entrée, plat…) : titre, articles proposés,
   puis le champ d'ajout. Les catégories s'enchaînaient sans respiration, on
   ne voyait plus où l'une finissait et où la suivante commençait. */
.formule-section {
  padding: 0 0 26px;
  margin-bottom: 26px;
  border-bottom: 1px solid var(--blue-light); }
  .formule-section:last-child {
    padding-bottom: 0;
    margin-bottom: 0;
    border-bottom: none; }

.formule-section-title {
  font-weight: 600;
  color: var(--blue-dim);
  font-size: 1.5rem;
  margin-bottom: 10px; }

.formule-section-items {
  margin-bottom: 12px; }
  .formule-section-items .noChoixFormule {
    color: #b0bcc7;
    font-size: 1.3rem; }

.formule-section-picker {
  max-width: 520px; }

/* ── Lot F1 (chantier formules, 05/10/2026) : paramétrage d'une étape et ligne de choix ──
   En-tête (titre + flèches d'ordre), réglages (nom affiché, minimum, maximum), puis les
   choix en LISTE (une ligne chacun) : le supplément et la case « par défaut » ont besoin
   de place, les pastilles en ligne ne les auraient pas laissés lisibles. */
.formule-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px; }
  .formule-section-head .formule-section-title {
    margin-bottom: 0; }

.formule-section-move {
  display: flex;
  gap: 4px; }

.formule-move-btn {
  width: 32px;
  height: 32px;
  border: 1px solid var(--blue-light);
  border-radius: 6px;
  background: transparent;
  color: var(--blue-dim);
  font-size: 1.4rem;
  cursor: pointer; }
  .formule-move-btn:hover, .formule-move-btn:focus-visible {
    background: var(--blue-light); }

.formule-section-settings {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 12px; }
  .formule-section-settings label {
    display: block;
    font-size: 1.4rem;
    margin-bottom: 4px; }
  .formule-section-settings .formule-setting-label {
    flex: 1 1 240px;
    max-width: 360px; }
  .formule-section-settings .formule-setting-number {
    flex: 0 0 130px; }

.formule-section-items .ligneFormule {
  display: block;
  margin-right: 0;
  max-width: 640px; }

.formule-choice {
  display: flex;
  align-items: center;
  gap: 10px; }
  .formule-choice .formule-choice-thumb {
    flex: 0 0 auto;
    padding: 0; }
  .formule-choice .formule-choice-name {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 1.4rem; }
    .formule-choice .formule-choice-name .ds-hint {
      display: block; }
  .formule-choice .formule-choice-supplement {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 4px; }
    .formule-choice .formule-choice-supplement input {
      width: 96px; }
  .formule-choice .formule-choice-supplement-unit {
    font-size: 1.4rem; }
  .formule-choice .formule-choice-default {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    font-size: 1.4rem;
    font-weight: normal;
    white-space: nowrap;
    cursor: pointer; }
    .formule-choice .formule-choice-default.invisible {
      visibility: hidden; }
  .formule-choice .formule-choice-delete {
    flex: 0 0 auto;
    padding: 0 6px; }

.disp-table-comp {
  display: table;
  width: 100%; }
  .disp-table-comp .img_preview {
    padding: 0px 10px;
    padding-bottom: 10px;
    width: 50px; }
  .disp-table-comp .row {
    margin-left: 20px;
    width: auto; }

.table-cell {
  display: table-cell; }

.delete_tarif, .delete_fournisseur {
  position: absolute;
  left: calc(50% - 14px); }

.editFormule, .editArtComp {
  margin: 0px 5px 10px; }

.editTarif, .editFour {
  margin: 0px 5px 20px; }

.article-price {
  font-size: 2.2rem;
  font-weight: 600; }

.list-article-channel {
  color: var(--blue-medium);
  padding-left: 0px;
  padding-right: 10px; }

.list-article-promo {
  color: var(--warn-fg);
  max-height: 5px; }

.list-article-oldprice {
  font-size: var(--ds-fs-secondary);
  padding-top: 0px;
  display: block;
  margin-top: -5px;
  margin-bottom: -5px;
  width: 100%;
  color: #9ca1a7; }

.unavailable-label {
  color: var(--danger-fg);
  font-size: 1.3rem;
  padding-left: 0px;
  padding-right: 15px; }

.article-view-more {
  text-align: left;
  color: var(--text);
  font-size: 1.8rem;
  padding-bottom: 3px;
  display: inline-flex;
  width: 100%;
  align-items: center; }

.light-Container {
  background-color: var(--blue-light);
  border-radius: var(--border-radius-little);
  border: 0px solid var(--color-primary);
  padding: 25px; }
  .light-Container .article-view-more {
    padding-bottom: 10px;
    margin-bottom: 10px;
    border-bottom: 1px solid var(--line); }
    .light-Container .article-view-more i {
      margin-right: 6px;
      color: var(--red-danger);
      vertical-align: middle; }
  .light-Container.canSelect {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center; }
    .light-Container.canSelect:after {
      content: '\f054';
      font-family: 'Font Awesome 6 Pro';
      position: absolute;
      font-weight: 300;
      font-size: 1.9rem;
      right: 20px;
      color: var(--text-2); }
    .light-Container.canSelect:hover {
      background: var(--blue-medium);
      cursor: pointer; }
  .light-Container.canclick {
    cursor: pointer; }
    .light-Container.canclick:hover {
      background-color: var(--blue-medium); }

.article-price-detail {
  font-size: 1.4rem;
  color: var(--text-3); }

.article_text {
  position: relative;
  text-align: left;
  width: 100%;
  line-height: 1.95rem; }

.infos_img_container {
  margin-right: 0px;
  display: flex;
  align-items: start; }

.headerArticle {
  flex: 1;
  vertical-align: middle;
  padding-left: 20px; }

@media (max-width: 767px) {
  .advandecInputContainer {
    padding-top: 10px;
    padding-bottom: 0px !important; } }

@media (max-width: 767px) {
  .image_content {
    padding-right: 0px; } }

.infos_codeb_container select {
  width: 100%; }

.infos_img, .infos_code_barre {
  padding-bottom: 5px; }

.infos_articles_header hr {
  margin-top: 5px;
  margin-bottom: 15px;
  padding: 0; }

.link_articles_infos {
  padding-bottom: 4px;
  padding-left: 0px;
  padding-right: 0px; }
  .link_articles_infos p {
    padding: 0;
    margin: 0; }

.srch_img_art a, .upl_img_art a, .lib_img_art a, .gen_codeb a, .print_codeb a, .tag_codeb a {
  color: var(--link); }

.srch_img_art a:hover {
  color: var(--text-2); }

.lib_img_art a:hover {
  color: var(--ok-fg); }

.upl_img_art a:hover, .upl_img_art a:hover span {
  color: var(--warn-fg); }

.gen_codeb a:hover {
  color: var(--text-2); }

.print_codeb a:hover {
  color: var(--text); }

.tag_codeb a:hover {
  color: var(--danger-fg); }

.modal-container-manage-article .modal-dialog {
  height: auto;
  max-height: 100%; }

#modal_article_manage, #modal_client_manage, #modal_facture_manage {
  border-radius: 0px;
  font-size: 1em;
  font-weight: 100; }

#modal_article_manage_body, #modal_client_manage_body, #modal_facture_manage_body {
  padding: 10px 0px;
  text-align: left; }
  @media (max-width: 767px) {
    #modal_article_manage_body, #modal_client_manage_body, #modal_facture_manage_body {
      padding: 10px 0px; } }

.modal_article_manage_title, .modal_facture_manage_title {
  padding-bottom: 10px; }

.modal_article_manage_title {
  height: 35px; }

#no_image_available {
  display: none; }

#add_new_image {
  border: 0px solid var(--text-2);
  border-radius: Min(var(--border-radius-little), 10px);
  height: 140px;
  width: 140px;
  vertical-align: top;
  color: var(--text-2);
  text-align: center;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  background-color: var(--blue-light); }
  #add_new_image i {
    margin-bottom: 20px;
    margin-top: 15px; }
  #add_new_image span {
    vertical-align: middle;
    display: inline-block;
    padding: 10px;
    align-self: center; }
  #add_new_image:hover {
    color: var(--blue-selected);
    background-color: var(--blue-light);
    border: 1px solid var(--blue-selected);
    cursor: pointer; }

#imagesList {
  position: relative;
  display: inline-block;
  width: 100%;
  text-align: left;
  padding-bottom: 0px; }

#imagesList:empty ~ #no_image_available {
  display: block; }

#no_article_available {
  display: none; }

#tableArticles:empty ~ #no_article_available {
  display: block;
  margin-top: 15px; }

#no_selected_item {
  display: none;
  font-size: 1.4rem;
  color: var(--text-3);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateX(-50%); }

#infos_articles0:empty ~ #no_selected_item {
  display: block; }

.close_modal_icon {
  position: absolute;
  font-size: 2.8rem;
  width: 40px;
  height: 40px;
  line-height: 36px;
  top: -20px;
  right: 10px;
  color: var(--text-3);
  padding: 0; }
  .close_modal_icon:hover {
    color: var(--link); }

.label_nom_article_manage {
  font-size: 1.2em;
  font-weight: bold;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis; }

.article_manage_menu_item p {
  margin: 0; }

.promo_manage_menu_item {
  padding-bottom: 0px; }

.livraison_options {
  display: none; }

.options_livraison_div {
  padding: 10px 0px 0px;
  color: var(--text-disabled); }
  .options_livraison_div:hover {
    color: var(--text-3); }

.fournisseur_existant {
  margin-bottom: 0px; }

.options_row label {
  margin-bottom: 0; }
@media (max-width: 767px) {
  .options_row select {
    padding-right: 65px; } }

.edit_option {
  position: absolute;
  width: 55px;
  height: 50px;
  right: -10px;
  top: 0;
  z-index: 10; }
  @media (max-width: 767px) {
    .edit_option {
      right: 40px; } }

.article_create_content {
  position: relative;
  background-color: white;
  border: 1px solid var(--line);
  padding: 10px;
  overflow: hidden;
  padding-bottom: 30px;
  height: 100%;
  overflow: auto; }
  @media (max-width: 767px) {
    .article_create_content {
      padding: 0px;
      border: none; } }

.supprimer_promotion {
  font-size: 1.2em; }

#newAndInventaire {
  padding-left: 0px;
  padding-right: 0px; }
  @media (min-width: 768px) {
    #newAndInventaire {
      display: block !important; } }

.srch_articles {
  background-color: var(--surface-muted);
  padding-bottom: 5px;
  overflow: visible; }
  @media (max-width: 767px) {
    .srch_articles {
      margin: 0;
      width: 100%; } }

.select_stores {
  margin-left: -10px;
  margin-right: -10px;
  background-color: white; }

#filterOnPromotion {
  margin-left: 0px;
  margin-bottom: 15px; }

@media (max-width: 767px) {
  #listArticles.en_regularisation {
    padding-top: 74px; } }

@media (max-width: 767px) {
  #listArticles.en_commande {
    padding-top: 114px; } }

@media (max-width: 767px) {
  #listArticles.en_reception {
    padding-top: 114px; } }

@media (max-width: 767px) {
  #listArticles.en_promotion {
    padding-top: 146px; } }

.input_barcode {
  padding-right: 80px; }

.barcodeVariable {
  position: absolute;
  right: 55px;
  z-index: 2;
  bottom: calc(50% - 7px);
  cursor: pointer;
  color: var(--text-3);
  font-size: 16px !important; }
  .barcodeVariable:hover {
    cursor: pointer;
    color: var(--blue-selected); }

.barcode {
  position: absolute;
  right: 45px;
  z-index: 2;
  bottom: calc(50% - 7px);
  cursor: pointer;
  color: var(--text-3);
  font-size: 16px !important; }
  .barcode:hover {
    cursor: pointer;
    color: var(--blue-selected); }

.refreshBarcode {
  position: absolute;
  right: 25px;
  z-index: 2;
  bottom: calc(50% - 5px);
  cursor: pointer;
  color: var(--text-3);
  font-size: 16px !important; }
  .refreshBarcode:hover {
    cursor: pointer;
    color: var(--blue-selected); }

.printLabel {
  cursor: pointer;
  color: var(--text-3);
  padding-bottom: 20px; }
  .printLabel:hover {
    cursor: pointer;
    color: var(--blue-selected); }

.rowMessageError {
  color: var(--red-danger);
  position: sticky;
  left: 0;
  top: 70px;
  margin-bottom: 30px;
  bottom: 0;
  width: 100%;
  z-index: 3;
  font-size: 1.6rem;
  display: flex;
  align-items: center;
  z-index: 1000000000000000;
  padding: 0px 5px; }
  .rowMessageError .field-validation-error {
    text-align: left; }
  .rowMessageError #messageError {
    flex: 1;
    text-align: left; }

.closeErrorMessage {
  padding: 0px 6px;
  background-color: var(--surface);
  color: var(--red-danger);
  border-radius: 50%;
  cursor: pointer;
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 22px;
  width: 22px;
  font-size: 1.3rem;
  right: 15px; }

#noFournisseur {
  margin-top: 20px;
  margin-bottom: 20px; }

#noChoixArticle {
  margin-top: 20px;
  margin-bottom: 20px; }

#noChoixFormule {
  margin-top: 20px;
  margin-bottom: 20px; }

.init_famille {
  float: left;
  margin-right: 0px;
  margin-left: 0px;
  width: 60px;
  height: 60px;
  border-radius: 30px;
  border: solid 1px var(--field-line);
  vertical-align: middle;
  background-color: white;
  color: var(--text-3);
  line-height: 58px;
  letter-spacing: 2px;
  padding-left: 2px;
  text-align: center;
  font-size: 2.0rem;
  font-weight: 500; }

.searchImageArticle {
  position: absolute;
  width: 80px;
  height: 80px;
  line-height: 80px !important;
  top: 0;
  left: 0;
  color: var(--link);
  border-radius: 40px;
  border: 2px solid var(--brand-solid); }

.conatinerImage_Refresh {
  position: relative; }

#imgArticle {
  height: 150px;
  width: 150px;
  text-align: left;
  margin-right: 0px;
  vertical-align: middle;
  position: relative;
  overflow: hidden;
  border-radius: 10px; }
  #imgArticle .imgArticle_preview {
    display: inline-block;
    height: 100%;
    width: 100%;
    border-radius: 10px;
    object-fit: cover;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    background-color: white;
    position: relative; }
  #imgArticle:after {
    content: '';
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--surface-inverse);
    opacity: .03;
    pointer-events: none;
    padding-bottom: 100%;
    position: absolute; }

.montant_remise_div {
  width: 70px;
  float: right;
  white-space: nowrap; }
  .montant_remise_div input {
    float: left; }

.delete-image {
  position: absolute;
  right: -6px;
  top: -6px;
  background: var(--red-danger);
  width: 23px;
  height: 23px;
  border-radius: 12px;
  color: var(--text-inverse);
  padding: 0;
  text-align: center;
  line-height: 23px;
  cursor: pointer; }
  .delete-image span {
    padding: 0; }
  .delete-image:hover span {
    opacity: 0.8; }

.vignetteDanger {
  border: 1px solid var(--danger-solid) !important; }

.vignetteImage {
  padding-top: 0px;
  padding-bottom: 0px;
  width: 140px;
  height: 140px;
  margin: 10px 20px;
  margin-left: 0px;
  display: inline-block;
  position: relative; }
  .vignetteImage .vignetteImage_content {
    border: 1px solid var(--line);
    border-radius: Min(var(--border-radius-little), 10px);
    display: inline-block;
    height: 100%;
    width: 100%;
    object-fit: cover;
    background-repeat: no-repeat;
    background-position: center;
    cursor: move; }

.vignetteImages {
  padding: 0px 0px 15px; }

#imagesList {
  max-width: 436px; }

.link_bibliotheque_img {
  padding: 15px 0px 5px;
  border-top: 1px solid var(--line); }

.selectListMin {
  background: url("/Content/Images/down-arrow.svg") no-repeat calc(100% - 50px) 50% var(--surface) !important;
  background-size: 11px 7px !important;
  padding-right: 40px !important; }

.iconListRemove {
  color: var(--danger-fg);
  width: 25px; }

.iconListEdit {
  width: 25px; }

.prixArticleDuplique {
  color: var(--text-3); }

.mobile_comm_content {
  padding: 15px 0px 20px; }

.mobile_comm_title {
  font-weight: bold;
  font-size: 1.2em; }

.mobile_comm_label {
  font-weight: bold;
  text-transform: uppercase;
  color: var(--text-2);
  text-align: left; }
  .mobile_comm_label label {
    margin: 0; }

.mobile_comm_qte {
  max-width: 60px;
  float: left; }

.mobile_comm_unite {
  height: 44px;
  line-height: 44px;
  margin-left: 60px;
  text-align: left; }

.optionArticle {
  display: inline-block; }

.infoSuppArticle {
  font-size: 0.85em; }

.articleAndTaille {
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
  vertical-align: middle; }

.maxWidth50Percent {
  max-width: 50%; }

.modal-content-large {
  width: 768px; }
  @media (max-width: 768px) {
    .modal-content-large {
      width: 100%; } }

.widthAuto {
  width: auto; }

#ListStores_Livraison {
  margin-left: auto;
  margin-right: auto; }

.configMagasin {
  float: left;
  min-width: 200px; }

.configDate {
  float: left;
  min-width: 400px; }

.lienMiseEnVeille {
  text-transform: none;
  text-decoration: underline;
  padding-left: 10px; }

.chkBoxUpdateImport {
  width: 15px;
  margin-top: 8px !important; }

.chart-legend {
  display: inline-block;
  width: 100%;
  margin-top: 0px;
  text-align: left;
  display: none; }

.chart-legend ul {
  padding-left: 10px !important; }

.chart-legend li {
  list-style-type: none;
  margin-top: 10px; }

.chart-legend li span {
  display: inline-block;
  width: 20px;
  height: 20px;
  border-radius: 4px;
  margin-right: 6px;
  margin-left: 5px;
  margin-top: -4px;
  vertical-align: middle; }

.dynOnOff {
  display: inline-flex;
  width: auto;
  background-color: var(--color-primary);
  border-radius: 4px;
  padding: 3px;
  margin-bottom: 6px; }
  .dynOnOff label {
    width: auto;
    border-radius: 2px;
    padding: 6px 12px;
    margin-bottom: 0px;
    cursor: pointer;
    width: 120px;
    color: var(--text-inverse);
    font-weight: normal;
    display: flex;
    align-items: center;
    justify-content: center; }
  .dynOnOff .on-off-selected {
    background-color: white;
    color: var(--color-primary); }

.sale-editor {
  width: 180px;
  display: inline-block;
  margin-top: 6px;
  margin-bottom: 10px; }

.modal-body #FormArticles {
  max-width: 700px; }

.modal-body #FormArticles .infos_content {
  box-shadow: none; }

#infos_articles0 #FormArticles .infos_content {
  margin-bottom: 20px;
  display: inline-block;
  width: 100%; }

.modal-body .infos_content {
  margin: 0px 0px;
  margin-bottom: 0px;
  padding: 0px;
  border: none; }

#FormArticles .soustitre {
  text-transform: uppercase;
  color: var(--text);
  font-size: 1.5rem;
  padding-bottom: 15px !important; }

.soustitre {
  color: var(--text);
  font-size: 1.65rem;
  padding-bottom: 15px !important;
  font-weight: 500;
  display: inline-block;
  width: 100%; }

.st-Opt {
  color: var(--blue-dark);
  margin-left: 6px; }

#formFamily {
  padding: 10px; }

.subtitle {
  text-transform: uppercase;
  text-align: left;
  font-family: 'Lato', 'sans-serif';
  color: var(--text-3);
  font-size: 1.3rem;
  font-weight: normal; }

.col-lg-12 .dynInput, .col-lg-9 .dynInput, .col-lg-8 .dynInput, .col-lg-6 .dynInput, .col-lg-5 .dynInput, .col-lg-4 .dynInput .col-lg-3 .dynInput, .col-lg-2 .dynInput, .col-xs-12.dynInput, .col-xs-6.dynInput, .col-lg-12 .dynDropDown, .col-lg-9 .dynDropDown, .col-lg-8 .dynDropDown, .col-lg-6 .dynDropDown, .col-lg-5 .dynDropDown, .col-lg-4 .dynDropDown.col-lg-3 .dynDropDown, .col-lg-2 .dynDropDown, .col-xs-6 .dynDropDown, .col-xs-12 .dynDropDown {
  margin-bottom: 15px; }

.margin-bottom-15 {
  margin-bottom: 15px; }

.modal-body .infos_img_container {
  display: none; }

.modal-body .action-button-container {
  margin: 0px;
  width: 100%;
  padding-bottom: 10px; }

#FormArticles #imagesList {
  max-width: none;
  width: 100%; }

.success-message {
  padding: 20px; }
  .success-message i {
    font-size: 3.0rem;
    margin-bottom: 10px; }

#editLink {
  margin-left: 0px;
  margin-right: 6px;
  display: inline-block; }

#editLink + #actionLink .btn-light, #editLink + #actionLink .btn-default {
  margin-left: 0px; }

#unavailableLabel {
  color: #eb4d11;
  cursor: default;
  display: none; }

#previewchannel {
  color: var(--blue-dark);
  cursor: default; }
  #previewchannel i {
    color: inherit; }

.article-header-btn {
  border-radius: 4px;
  display: inline-flex;
  transition: width ease 0.2s;
  overflow: hidden;
  width: 42px; }
  .article-header-btn input {
    padding: 0px;
    background-color: transparent;
    border: 0px solid transparent;
    width: 100%;
    font-size: 1.5rem;
    opacity: 0; }
    .article-header-btn input:focus {
      border: 0px solid transparent !important;
      outline: none;
      border-color: inherit;
      -webkit-box-shadow: none;
      box-shadow: none; }
  .article-header-btn i {
    margin: 10px;
    font-size: 2.2rem;
    color: #9ca1a7; }
  .article-header-btn:hover {
    cursor: pointer;
    background-color: var(--blue-light); }

#qty_item_container {
  transition: opacity 0.2s ease; }

#label_item_header i {
  cursor: pointer;
  vertical-align: middle;
  padding-bottom: 1px; }
  #label_item_header i:hover {
    color: maroon; }

.ui-autocomplete li div i {
  display: inline !important;
  color: var(--blue-selected) !important;
  font-weight: bold !important; }

@media (max-width: 767px) {
  .rowDeclination {
    margin-bottom: 6px; } }
.select-contenance-unit {
  text-align: left;
  padding: 10px 0px;
  width: 100%;
  min-width: 100%;
  left: 0px; }
  .select-contenance-unit:before {
    display: none; }
  .select-contenance-unit:after {
    display: none; }

.extraProductContainer {
  display: flex;
  align-items: center;
  flex-direction: row;
  justify-content: flex-start; }
  .extraProductContainer .styled-checkbox {
    margin-bottom: 0px;
    width: auto; }

.productExtrasListHeader {
  text-align: left;
  margin-bottom: 6px; }
  .productExtrasListHeader .productExtraHeaderPrimary {
    font-size: 1em;
    font-weight: bold; }
  .productExtrasListHeader .productExtraHeaderSecondary {
    font-weight: normal;
    font-size: 0.85em;
    color: var(--text-inverse); }

.extraThumbnailContainer {
  display: flex;
  flex-direction: column;
  background-color: var(--blue-light);
  border-radius: 10px;
  margin: 5px 0px;
  padding: 10px; }

.extraThumbnailHeader {
  display: flex;
  flex-direction: row;
  align-items: center; }
  .extraThumbnailHeader i {
    margin: 0px 10px 3px 3px;
    cursor: move;
    color: #9ca1a7; }
  .extraThumbnailHeader .styled-checkbox {
    margin-bottom: 0px; }

.extraThumbnailBody {
  overflow: hidden;
  transition: all linear 0.3s;
  padding-top: 0px;
  max-height: 0px; }
  .extraThumbnailBody.open {
    padding-top: 10px;
    max-height: 200px; }

#FormExtraConfig {
  padding: 10px; }

.productExtrasSelectionContainer {
  display: flex;
  justify-content: flex-start;
  flex-direction: row;
  margin-bottom: 10px; }

.extraPriceContainer {
  font-size: 0.85em;
  color: #9ca1a7;
  white-space: nowrap; }

.extraSelectedAmount {
  color: var(--blue-selected); }

.productHeaderCondensedContainer {
  display: flex;
  flex-direction: row;
  align-items: center;
  padding: 10px; }
  .productHeaderCondensedContainer.expanded {
    padding-bottom: 0px;
    flex-direction: column;
    align-item: center; }
    .productHeaderCondensedContainer.expanded #miniatureImages {
      width: 500px;
      height: 500px;
      padding: 0px;
      margin: 0px; }
      .productHeaderCondensedContainer.expanded #miniatureImages .miniature_thumbnail {
        margin: 0px;
        width: 500px;
        height: 500px; }
    .productHeaderCondensedContainer.expanded .productHeaderInformations {
      line-height: 1.9rem;
      padding: 10px 0px 0px 0px; }
    .productHeaderCondensedContainer.expanded .productHeaderImageInformations {
      display: flex;
      flex-direction: column; }
  .productHeaderCondensedContainer .productHeaderImageInformations {
    display: flex;
    flex-direction: row; }
  .productHeaderCondensedContainer .productHeaderImgDisplay {
    padding: 0px; }
  .productHeaderCondensedContainer .mediumImageContainer {
    width: 80px;
    height: 80px; }
  .productHeaderCondensedContainer .productHeaderInformations {
    line-height: 1.9rem; }

.groupPurchaseThumbnailContainer {
  position: relative;
  background-color: white;
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  line-height: 2rem;
  flex: 1;
  border: 1px solid var(--line);
  overflow: hidden; }
  .groupPurchaseThumbnailContainer:hover {
    cursor: pointer; }
  .groupPurchaseThumbnailContainer .groupPurchaseThumbnailProductName, .groupPurchaseThumbnailContainer .groupPurchaseThumbnailPriceContainer, .groupPurchaseThumbnailContainer .groupPurchaseThumbnailInstitution, .groupPurchaseThumbnailContainer .groupPurchaseThumbnailQuantity {
    text-align: left; }
  .groupPurchaseThumbnailContainer .groupPurchaseThumbnailInstitution {
    display: flex;
    width: 100%;
    text-align: left;
    align-items: center;
    color: var(--blue-dark);
    font-size: 1.3rem;
    padding: 0px 0px 10px; }
  .groupPurchaseThumbnailContainer .groupPurchaseThumbnailPriceContainer {
    font-size: 1.6rem;
    font-weight: 500; }
  .groupPurchaseThumbnailContainer .price-locked {
    padding: 3px 8px;
    border-radius: 5px;
    font-size: 1.3rem;
    max-width: 200px;
    margin-bottom: 6px;
    color: var(--link); }
  .groupPurchaseThumbnailContainer .groupPurchaseThumbnailLabels {
    text-align: left;
    margin-top: 10px; }
    .groupPurchaseThumbnailContainer .groupPurchaseThumbnailLabels .moq_border, .groupPurchaseThumbnailContainer .groupPurchaseThumbnailLabels .participant_border {
      border-radius: 5px;
      padding: 3px 8px;
      color: var(--text);
      font-size: 1.3rem;
      display: inline-block;
      margin-bottom: 5px; }
    .groupPurchaseThumbnailContainer .groupPurchaseThumbnailLabels .moq_border {
      background-color: var(--blue-light);
      margin-right: 5px; }
    .groupPurchaseThumbnailContainer .groupPurchaseThumbnailLabels .participant_border {
      background-color: var(--blue-medium); }
  .groupPurchaseThumbnailContainer .groupPurchaseThumbnailQuantityContainer {
    display: inline-block;
    width: 100%;
    justify-content: space-between; }
    .groupPurchaseThumbnailContainer .groupPurchaseThumbnailQuantityContainer .col-xs-12 {
      padding: 0px;
      text-align: left;
      padding-top: 5px; }
      .groupPurchaseThumbnailContainer .groupPurchaseThumbnailQuantityContainer .col-xs-12 span {
        font-size: 1.3rem;
        display: inline-block;
        color: var(--blue-dark);
        margin-right: 10px; }
  .groupPurchaseThumbnailContainer .groupPurchaseThumbnailInformations {
    padding: 10px; }
  .groupPurchaseThumbnailContainer .groupPurchaseThumbnailRemainingTime {
    text-align: right;
    color: var(--text-3); }
  .groupPurchaseThumbnailContainer .groupPurchaseThumbnailProductName {
    font-weight: 400;
    font-size: 1.5rem;
    text-align: left;
    margin-top: 6px; }
  .groupPurchaseThumbnailContainer .productHeaderImgDisplay {
    position: relative; }
    .groupPurchaseThumbnailContainer .productHeaderImgDisplay img {
      width: 100%;
      display: inline-block;
      object-fit: cover;
      position: absolute;
      top: 0;
      left: 0; }
    .groupPurchaseThumbnailContainer .productHeaderImgDisplay:after {
      content: '';
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: var(--surface-inverse);
      opacity: .04;
      pointer-events: none;
      padding-bottom: 100%;
      display: inline-block; }
  .groupPurchaseThumbnailContainer .miniature_thumbnail {
    width: 100%;
    height: 100%;
    border-radius: 0px;
    margin: 0px; }
  .groupPurchaseThumbnailContainer .groupPurchaseThumbnailInitiator {
    width: 14px;
    height: 14px;
    background-color: steelblue;
    border-radius: 10px;
    margin-right: 5px;
    padding: 7px; }

.tablePreviewStock {
  width: 100%; }

.tablePreviewStock td, .tablePreviewStock th {
  padding: 5px 10px;
  padding-left: 0px;
  border-bottom: 1px solid var(--line); }

.ajout_link {
  padding: 5px 10px;
  font-size: 1.3rem;
  background-color: var(--blue-medium);
  color: var(--text);
  border-radius: 5px;
  font-family: inherit;
  font-weight: normal;
  float: right;
  text-transform: normal;
  margin-right: 10px;
  margin-top: -6px;
  margin-bottom: -9px; }
  .ajout_link i {
    margin-right: 3px !important; }
  .ajout_link a {
    color: var(--text);
    font-size: 1.3rem;
    vertical-align: top; }
    .ajout_link a:hover {
      color: var(--text); }

.ql-toolbar.ql-snow {
  text-align: left !important;
  border: none !important;
  border-bottom: 1px solid var(--blue-medium) !important;
  font-family: 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif !important;
  padding: 0px 0px 10px !important; }

.ql-container.ql-snow {
  border: none !important;
  min-height: 180px !important; }

.ql-editor {
  padding: 10px 0px 10px !important;
  font-size: 1.5rem !important;
  font-family: 'Open Sans' !important; }
  .ql-editor:before {
    color: var(--text-3) !important;
    font-style: normal !important;
    left: 3px !important;
    pointer-events: none !important;
    position: absolute !important;
    right: 3px !important; }

.opt-container {
  margin: 0px;
  width: 100%;
  max-width: 400px;
  padding: 20px 15px 10px;
  border-radius: 10px;
  margin-top: 20px;
  display: inline-block;
  background-color: var(--blue-light);
  display: inline-block; }
  .opt-container input[type="text"] {
    background-color: var(--surface); }
  .opt-container hr {
    border-top-color: var(--line);
    display: block; }
  .opt-container .rowDeclination {
    margin-bottom: 0px !important; }

.declination_opt .declinationName {
  display: inline-block;
  width: 100%;
  border-top: 1px solid var(--blue-light);
  margin-top: 20px;
  padding-top: 20px; }

.declination_opt listKeywordsDeclination:empty ~ .declination_opt {
  border-bottom: 1px solid var(--text); }

.b2boptions {
  padding-top: 10px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  row-gap: 0px;
  column-gap: 15px; }

.list-item {
  overflow-y: auto;
  height: auto;
  overflow-x: hidden;
  scrollbar-width: thin;
  margin-right: 5px;
  margin-top: 35px; }

.promo-page {
  display: grid;
  gap: 18px;
  margin-bottom: 24px; }

.promo-editor {
  padding: 6px 2px 10px; }

.promo-editor-grid {
  display: grid;
  grid-template-columns: minmax(420px, 1.35fr) minmax(280px, 0.9fr);
  gap: 18px; }

.promo-card {
  background: var(--input-background-color);
  border: 1px solid var(--blue-medium);
  border-radius: var(--border-radius-medium);
  padding: 18px; }

.promo-card-title {
  margin: 0 0 14px;
  font-size: 16px;
  font-weight: 700;
  color: var(--title-color); }

.promo-target-tabs,
.promo-kind-toggle {
  display: inline-grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  width: 100%;
  border: 1px solid var(--blue-medium);
  border-radius: var(--border-radius-medium);
  overflow: hidden;
  background: var(--input-background-color); }

.promo-kind-toggle {
  grid-template-columns: repeat(2, minmax(0, 1fr)); }

.promo-target-tab-count {
  background: var(--blue-light);
  height: 20px;
  width: 20px;
  margin-left: 3px;
  border-radius: 14px;
  font-size: var(--ds-fs-caption);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: normal;
  color: var(--blue-dim); }

.promo-target-tabs {
  margin-bottom: 16px; }

.promo-kind-toggle {
  margin-bottom: 14px; }

.promo-target-tab,
.promo-kind-btn {
  border: 0;
  background: transparent;
  padding: 12px 14px;
  font-weight: 600;
  color: var(--text-color); }

.promo-target-tab.active, .promo-kind-btn.active {
  background: var(--blue-selected);
  color: var(--background-color); }

.promo-section {
  padding-top: 10px; }

.promo-section-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px; }

.promo-section-label {
  font-weight: 700;
  color: var(--title-color); }

.promo-section-copy {
  color: var(--blue-dim);
  line-height: 1.4;
  margin-bottom: 12px; }

.promo-section-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px; }

.promo-target-list {
  display: grid;
  gap: 10px; }

.promo-target-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 34px;
  gap: 10px;
  align-items: center; }

.promo-target-row.single-field {
  grid-template-columns: minmax(0, 1fr) 34px; }

.promo-icon-btn {
  width: 34px;
  height: 34px;
  border: 1px solid var(--blue-medium);
  border-radius: var(--border-radius-little);
  background: var(--input-background-color);
  color: var(--blue-dim); }

.promo-icon-btn:hover,
.promo-icon-btn:focus {
  color: var(--red-danger);
  border-color: var(--red-danger); }

.promo-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px; }

.promo-summary {
  margin-top: 16px;
  padding: 14px;
  border-radius: var(--border-radius-medium);
  background: var(--blue-light);
  border: 1px solid var(--blue-medium);
  color: var(--text-color);
  line-height: 1.45; }

.promo-summary-line + .promo-summary-line {
  margin-top: 6px; }

.promo-error {
  display: none;
  margin-top: 12px;
  color: var(--red-danger);
  font-weight: 600; }

.promo-error-visible {
  display: block; }

.promo-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 18px; }

@media (max-width: 991px) {
  .promo-editor-grid {
    grid-template-columns: 1fr; } }
@media (max-width: 720px) {
  .promo-target-row,
  .promo-target-row.single-field,
  .promo-fields,
  .promo-kind-toggle {
    grid-template-columns: 1fr; }

  .promo-actions {
    justify-content: stretch; }

  .promo-actions .btn {
    flex: 1 1 auto; } }
#login_body {
  padding: 0;
  height: 100%;
  background-color: white; }

#corps {
  min-height: calc(100vh - 60px);
  display: inline-block;
  text-align: center; }

.login_content {
  display: table-cell;
  vertical-align: middle; }

#login_name_input, #login_pwd_input {
  text-align: center; }

#login_content {
  margin-left: auto;
  margin-right: auto;
  padding: 5px 30px; }

#modal-container .control-label {
  padding-top: 7px; }

#login_content .input_div {
  padding-left: 0px;
  padding-right: 0px; }

#login_container {
  display: inline-block;
  height: auto;
  background-color: white;
  border-radius: var(--border-radius-medium);
  overflow: hidden;
  width: 100%;
  max-width: 460px;
  margin-left: auto;
  margin-right: auto;
  vertical-align: middle;
  padding: 40px;
  text-align: left; }
  @media (max-width: 767px) {
    #login_container {
      margin: 0px;
      box-shadow: unset !important; } }
  #login_container h2 {
    margin: 0px;
    padding: 0px;
    padding-top: 5px;
    font-weight: 600;
    margin-bottom: 6px; }

#login_submit_div {
  padding-top: 30px; }

#logo_div {
  width: 100%; }

#login_inputs {
  padding-top: 25px; }

.login_h2 {
  margin-right: 30px;
  height: 40px;
  line-height: 40px;
  font-family: 'Times New Roman', 'serif';
  color: var(--text);
  font-size: 3.0rem;
  font-weight: normal; }
  .login_h2 #logo {
    margin-bottom: 7px;
    margin-top: 3px; }

.btn-login {
  background-color: white;
  color: var(--text);
  border: 1px solid var(--text); }
  .btn-login a {
    color: var(--text); }
  .btn-login:hover {
    background-color: black;
    color: var(--text-inverse);
    border: 1px solid var(--text); }

.separatorline {
  display: flex;
  align-items: center;
  text-align: center; }

.separatorline::before, .separator::after {
  content: '';
  flex: 1;
  border-bottom: 1px solid var(--blue-light); }

.separatorline::before {
  margin-right: .25em; }

.separatorline::after {
  margin-left: .25em; }

.modal-body #login_container.infos_content {
  box-shadow: none !important;
  padding: 20px 20px 0px; }

#login_container form {
  text-align: left; }
#login_container :is(.dynInput, .dynDropDown) {
  margin-bottom: 16px; }
#login_container .ds-hint {
  margin: 0 0 12px; }
#login_container .login-forgot {
  margin-top: -4px; }
#login_container .login-submit {
  width: 100%;
  margin: 20px 0 10px; }
#login_container .login-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
  margin: 20px 0 15px; }
#login_container .login-actions-split {
  justify-content: space-between; }
#login_container .consent-marketing-banner {
  margin: 16px 0;
  white-space: pre-wrap;
  text-align: left; }
#login_container .consent-marketing-check {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  width: auto;
  margin: 4px 0 8px;
  font-size: 1.4rem;
  font-weight: normal;
  text-align: left; }
#login_container .consent-marketing-note {
  margin: 0 0 8px;
  font-size: 1.3rem;
  text-align: left; }
#login_container .ds-modal-actions {
  margin-top: 16px;
  flex-wrap: wrap; }

#myCarousel {
  padding: 20px 10px 0px; }

#myCarousel .fleches {
  position: relative;
  top: 25%;
  left: 0;
  vertical-align: middle;
  color: #e4e4e4; }

#myCarousel .carousel-control.left {
  background-image: none; }

#myCarousel .carousel-control.right {
  background-image: none; }

.item_list_cloture_date {
  color: var(--text-3); }

#statsLoading {
  top: calc(50% - 32px);
  left: calc(50% - 50px);
  position: absolute; }

.excelIcon {
  color: var(--ok-fg); }
  .excelIcon:hover {
    cursor: pointer;
    color: #0ea684; }

.pdfIcon {
  color: var(--link); }
  .pdfIcon:hover {
    cursor: pointer;
    color: #147ea6; }

.operationStockUpgrade {
  max-height: 500px;
  overflow: auto; }

.stockUpgrade_menu {
  cursor: pointer;
  padding: 5px; }

.stockUpgrade_menuSelected {
  background-color: var(--brand-solid);
  color: var(--text-inverse); }

.stockUpgrade_noTransactions {
  padding: 20px; }

.stockUpgrade_colStore {
  width: 100px; }

.stockUpgrade_colArticle {
  width: 150px; }

.stockUpgrade_colOperation {
  width: 50px; }

.stockUpgrade_colQuantity {
  width: 50px; }

.stockUpgrade_colPrice {
  width: 100px; }

.stockUpgrade_colDate {
  width: 150px; }

.stockUpgrade_colMotif {
  width: 100px; }

.stockUpgrade_colComment {
  width: 150px; }

/* ═══ Tableau de bord d'accueil — refonte 2026 (brief + alertes « À traiter » + barre Gillia) ═══ */
.dash-brief {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: var(--ct-surface);
  border: 0.5px solid var(--ct-border);
  border-radius: var(--ct-r-lg);
  padding: 14px 16px;
  font-family: var(--ct-font); }
  .dash-brief .dash-brief-ico {
    color: var(--blue-selected);
    font-size: 15px;
    margin-top: 2px; }
  .dash-brief .dash-brief-text {
    flex: 1;
    font-size: 13px;
    line-height: 1.55;
    color: var(--ct-text-1); }

.dash-kpi-link {
  cursor: pointer;
  transition: border-color .12s; }
  .dash-kpi-link:hover {
    border-color: var(--ct-border-md); }

.dash-alerts-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 6px; }

.dash-alerts-count {
  display: inline-block;
  background: var(--red-danger, #eb4d11);
  color: var(--text-inverse);
  border-radius: 20px;
  padding: 1px 8px;
  font-size: var(--ds-fs-caption);
  margin-left: 6px;
  letter-spacing: 0;
  vertical-align: middle; }

.dash-alerts-more {
  font-size: var(--ds-fs-secondary); }

.dash-alerts-list {
  display: flex;
  flex-direction: column; }

.dash-alert {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 4px;
  border-top: 0.5px solid var(--ct-border); }
  .dash-alert:first-child {
    border-top: none; }
  .dash-alert.dash-alert-nav {
    cursor: pointer; }
    .dash-alert.dash-alert-nav:hover {
      background: var(--ct-page-bg); }

.dash-alert-ico {
  font-size: 15px;
  width: 20px;
  text-align: center;
  flex-shrink: 0; }
  .dash-alert-ico.dash-alert-ico-danger {
    color: var(--red-danger, #A32D2D); }
  .dash-alert-ico.dash-alert-ico-warn {
    color: var(--warn-fg); }
  .dash-alert-ico.dash-alert-ico-info {
    color: var(--blue-selected); }

.dash-alert-body {
  flex: 1;
  min-width: 0; }

.dash-alert-title {
  font-size: 13px;
  font-weight: 500;
  color: var(--ct-text-1); }

.dash-alert-sub {
  font-size: var(--ds-fs-caption);
  color: var(--ct-text-2);
  margin-top: 1px; }

.dash-alert-btn {
  flex-shrink: 0;
  white-space: nowrap; }

.dash-alerts-empty {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--ct-text-2);
  padding: 8px 0; }

.dash-ask {
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--ct-surface);
  border: 0.5px solid var(--ct-border-md);
  border-radius: 14px;
  padding: 10px 14px;
  font-family: var(--ct-font); }

.dash-ask-ico {
  color: var(--blue-selected);
  font-size: 15px; }

.dash-ask-input {
  flex: 1;
  border: none;
  outline: none;
  background: transparent;
  font-size: 13px;
  color: var(--ct-text-1);
  font-family: var(--ct-font); }
  .dash-ask-input::placeholder {
    color: var(--ct-text-3); }

.dash-ask-mic {
  color: var(--ct-text-3);
  font-size: 15px;
  cursor: pointer; }
  .dash-ask-mic:hover {
    color: var(--ct-text-1); }

.dash-ask-chips {
  display: flex;
  gap: 6px;
  margin-top: 8px;
  flex-wrap: wrap; }

.dash-ask-chip {
  font-size: var(--ds-fs-caption);
  padding: 4px 12px;
  border: 0.5px solid var(--ct-border);
  border-radius: 20px;
  color: var(--ct-text-2);
  background: var(--ct-surface);
  cursor: pointer;
  user-select: none; }
  .dash-ask-chip:hover {
    background: var(--ct-page-bg);
    color: var(--ct-text-1); }

.table_filter_profit {
  width: 25%;
  height: 500px;
  float: left; }

.table_filter_profit tbody {
  display: block;
  height: 470px;
  overflow-x: hidden;
  overflow-y: auto; }

.table_filter_profit thead tr {
  display: block;
  width: 100%;
  display: table; }

.table_filter_profit td, .table_marge_commerciale td {
  border-top: 1px solid var(--blue-dark) !important; }

.table_filter_profit tr {
  display: table;
  width: 100%; }

.table > tbody > tr > td {
  border-top: 1px solid var(--line) !important; }

.table_filter_profit th {
  cursor: pointer; }

.table_profit_col_center {
  background-color: var(--blue-light); }

#modal_filter_family .modal-dialog {
  height: 600px;
  width: 1200px; }

#modal_filter_family .modal-content {
  height: 100%;
  width: 100%;
  overflow: hidden; }

#modal_filter_family .modal-body {
  height: 100%;
  width: 100%; }

.selectedFilterProfit {
  background-color: var(--brand-solid); }

.table_marge_commerciale {
  table-layout: fixed;
  font-size: 0.9em; }

.table_marge_commerciale .firstCol {
  text-align: left;
  padding-left: 20px; }

.table_marge_commerciale .lastCol {
  padding-right: 20px; }

.marginYear {
  margin-bottom: 20px; }

.labelYear {
  min-width: 10px;
  margin-right: 15px;
  padding-top: 13px; }

.inputYear {
  width: 100px; }

.period {
  text-align: left;
  padding-left: 2px;
  padding-top: 12px; }

.labelPeriod {
  padding-bottom: 7px; }

.displayFilter {
  text-transform: none;
  padding-top: 12px; }

.validerProfit {
  margin-top: 10px; }

.table_marge_commerciale .backgroundGrey {
  background-color: var(--surface-muted); }

.table_marge_commerciale .backgroundDarkGrey {
  background-color: var(--surface-muted); }

.table_marge_commerciale .colEmpty:hover {
  background-color: white; }

.table_marge_commerciale .total {
  background-color: var(--info-bg); }

.table_marge_commerciale .totalDark {
  background-color: var(--info-bg); }

.table_marge_commerciale .margin {
  background-color: var(--surface); }
  .table_marge_commerciale .margin:hover {
    background-color: var(--danger-bg); }

.table_marge_commerciale .totalMarginDark {
  background-color: var(--danger-bg); }

.table_marge_commerciale .fontBold {
  font-weight: bold; }

.table_marge_commerciale .fontItalic {
  font-style: italic; }

.table_marge_commerciale .fontGrey {
  color: var(--text-disabled); }

.table_marge_commerciale .fontRed {
  color: var(--danger-fg); }

.table_marge_commerciale .purchase {
  padding-left: 40px; }

.lockMonth {
  color: gold; }

#articlesRevisionsPartialView {
  margin: 0px 5px; }

#articleRevisionArray {
  white-space: nowrap;
  overflow-y: hidden;
  overflow-x: auto;
  display: table;
  background-color: white;
  border: 1px solid #e7edf3;
  border-radius: var(--border-radius-medium); }

#articlesRevisionsPartialView {
  display: inline-block; }

#articleRevisionContainer {
  display: inline-block;
  white-space: nowrap; }

#listArticleRevisions {
  width: 100%;
  height: 100%;
  white-space: nowrap; }

.ArticleRevisionsContent {
  min-height: 200px;
  width: auto;
  display: grid;
  position: relative;
  margin-bottom: 0px;
  margin-top: 15px; }

.rowHeader {
  border-top: 1px solid #e7edf3;
  border-bottom: 1px solid #e7edf3;
  position: sticky;
  top: 0;
  z-index: 3; }

.firstCellRevision .cellRevision span.cellProductName {
  display: table-cell; }

.cellRevisionDeclination {
  font-weight: normal;
  display: inline-block;
  padding-top: 4px; }

.colRevision {
  display: inline-block;
  white-space: nowrap;
  font-size: 1.4rem;
  line-height: 1em; }

.colRevisionLarge {
  width: 200px; }

.colRevisionSupplier {
  width: 8%; }

.colRevisionMedium {
  width: 150px; }

.colRevisionSmall {
  width: 100px; }

.rowHeader .cellRevision {
  height: 35px;
  font-weight: bold;
  padding-top: 8px;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  background-color: var(--blue-medium) !important; }

.rowRevision .cellRevision {
  height: 54px;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  flex-direction: column; }

.cellRevision {
  padding: 10px;
  width: 100%;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  position: relative;
  border: 0;
  border-bottom: 1px solid #e7edf3;
  border-right: 1px solid #e7edf3; }

.firstCellRevision {
  border-left: 0px solid var(--line);
  background-color: transparent;
  position: sticky;
  left: 0;
  z-index: 2;
  width: 250px;
  font-weight: 600;
  background-color: white; }
  .firstCellRevision .cellRevision {
    padding-left: 20px; }

.rowRevision {
  height: 54px;
  font-size: 0px;
  background-color: white;
  display: flex; }
  .rowRevision:hover {
    background-color: var(--blue-light) !important; }
    .rowRevision:hover .firstCellRevision {
      background-color: var(--blue-light) !important; }

.secondCellRevision {
  margin-left: 0px; }

.cellRevisionMargin {
  float: left;
  width: 80%;
  border-right: none;
  text-align: right !important;
  cursor: default; }

.percentRevision {
  float: left;
  width: 20%;
  padding: 0px;
  padding-top: 10px;
  padding-right: 10px; }

.rowEdited {
  background-color: var(--blue-selected);
  height: 8px;
  width: 8px;
  border-radius: 50%;
  float: right;
  margin-right: 10px;
  display: none;
  position: absolute;
  left: 6px;
  top: 23px; }

.editValueInput {
  width: 100%;
  height: 100% !important;
  margin-top: 0px;
  border-radius: 0px;
  background-color: transparent;
  border: none;
  position: absolute;
  margin-left: -10px;
  padding: 0px 10px;
  left: 10px;
  display: flex;
  justify-content: center; }
  .editValueInput label {
    margin-bottom: 0px; }

.editValueInput:focus {
  border: 1px solid var(--blue-selected) !important; }

.submitRevision {
  padding-bottom: 20px; }

.cellRevisionIconSort {
  padding-top: 5px;
  padding-left: 8px; }

.cellRevisionIconSortDown {
  vertical-align: top;
  padding-top: 2px !important; }

.keywordRevision {
  float: left;
  background-color: var(--blue-light);
  padding: 10px;
  margin-right: 10px;
  margin-bottom: 10px;
  border-radius: var(--border-radius-little); }

.keywordRevision span {
  padding-left: 5px;
  cursor: pointer;
  color: var(--red-danger);
  vertical-align: middle; }
  .keywordRevision span:hover {
    cursor: pointer;
    color: var(--red-danger); }

.warnMargin {
  color: var(--red-danger); }

.marginTargetInput {
  max-width: 50px; }

.marginTargetLabel {
  max-width: 165px; }

.marginTarget label {
  margin-bottom: 6px; }

.marginTarget input {
  text-align: right; }

.refreshRevision {
  padding-top: 2px; }

.refreshRevision span {
  font-size: 1.5rem;
  color: var(--blue-selected);
  cursor: pointer; }

.percentMarginTargethRevision {
  padding-top: 2px;
  padding-left: 0px;
  max-width: 20px; }

#PrintLabelArticleRevision {
  margin-right: 20px; }

.rowRevisionUpdated {
  font-weight: bold; }

.displayInactiveArticles {
  padding-top: 10px; }

@media print {
  *,
  *:before,
  *:after {
    /*new E*/
    /*text-shadow: none !important;*/
    /*background: transparent !important;*/
    /*box-shadow: none !important;*/
    color: var(--text-2) !important;
    font-size: 11px !important;
    -webkit-print-color-adjust: exact !important; } }
.facture_prestataire {
  margin-top: 20px !important; }

.facture_no_entete {
  background-color: var(--surface-sunk) !important; }

.container-fluid {
  width: 100% !important;
  margin-top: 0% !important;
  border: 0px solid !important; }

#listeclient {
  border-radius: 3px;
  height: 25px;
  padding: 0;
  font-size: var(--ds-fs-secondary); }

#listeclient > option {
  font-size: 300px; }

.selectedInvoices {
  /*background-color: azure;*/ }

.selectedClient {
  background-color: azure; }

.ligne_facture:hover {
  background-color: var(--surface-sunk);
  cursor: default; }

.aucun_client {
  padding-top: 100px; }

.srch_clients {
  background-color: var(--surface-muted);
  padding-bottom: 5px; }

.n_client_icon {
  padding-left: 0px;
  padding-right: 0px; }
  .n_client_icon span {
    width: 30px;
    height: 30px;
    line-height: 30px;
    color: var(--text-2); }

.padding_srch {
  padding-top: 5px; }

.padding_srch_icon {
  padding-top: 5px;
  padding-left: 0px;
  padding-right: 0px; }

@media (max-width: 767px) {
  .padding_srch_bar {
    padding-right: 0px; } }

.facture_image {
  display: block;
  max-width: 150px;
  max-height: 150px;
  width: auto;
  height: auto; }

.facture_prestataire p, .facture_client p {
  text-align: left;
  margin-bottom: 2px; }

.facture_client {
  border: 1px solid var(--blue-medium);
  padding: 10px;
  margin-top: 20px; }

.facture_no_entete {
  padding: 10px 20px;
  background-color: var(--surface-sunk);
  border: 1px solid var(--blue-medium);
  margin-top: 20px; }

.facture_date_emission, .facture_no {
  font-weight: bold; }

.facture_content_table {
  min-height: 200px;
  margin: 10px 0px; }

.facture_table_facture {
  text-align: right;
  width: 25%;
  padding: 2px 10px 2px 5px; }

.facture_table_qte {
  text-align: right;
  width: 10%;
  padding: 2px 10px 2px 5px; }

.facture_table_designation {
  width: calc(40% - 20px);
  text-align: left; }

.facture_table_designation.facture_table_firstColumn {
  padding-left: 0px !important;
  width: calc(25% - 10px) !important; }

.facture_table_puht {
  text-align: right;
  width: calc(15% - 20px); }

.facture_table_totalht {
  text-align: right;
  width: calc(20% - 20px); }

.facture_table_tva {
  text-align: right;
  width: calc(10% - 20px); }

.facture_table_taux {
  width: 40%;
  text-align: right; }
  .facture_table_taux b {
    color: var(--blue-selected); }

.facture_table_tvaht {
  width: 60%;
  text-align: right; }
  .facture_table_tvaht b {
    color: var(--blue-selected); }

.facture_table_tvamt {
  width: 60%;
  text-align: right; }
  .facture_table_tvamt b {
    color: var(--blue-selected); }

.accountBalance_table_taux {
  width: calc(20% - 20px);
  text-align: right; }
  .accountBalance_table_taux b {
    color: var(--blue-selected); }

.accountBalance_table_tvaht {
  width: calc(30% - 20px);
  text-align: right; }
  .accountBalance_table_tvaht b {
    color: var(--blue-selected); }

.accountBalance_table_tvamt {
  width: calc(20% - 20px);
  text-align: right; }
  .accountBalance_table_tvamt b {
    color: var(--blue-selected); }

.facture_block {
  margin-top: 20px;
  border: 1px solid gray; }
  .facture_block .row {
    padding-top: 8px;
    padding-bottom: 8px; }

.facture_border_bottom {
  border-bottom: 1px solid var(--line); }

.facture_block_title {
  color: var(--blue-selected); }

.facture_conditions {
  padding: 10px;
  border: 1px solid var(--blue-medium); }

.info_facture {
  margin-top: 20px;
  border-top: 1px solid grey;
  border-bottom: 1px solid grey;
  border-left: 1px solid grey; }

.fontBold {
  font-weight: bold; }

.designationFactureTotal {
  text-align: right; }

.removeMarginTop {
  margin-top: 0px; }

.facture_entete_table {
  background-color: var(--surface-sunk);
  border-bottom: 1px solid var(--blue-medium);
  text-align: left;
  padding: 0px !important;
  height: 25px; }

.facture_entete_border_bottom {
  border-bottom: 1px solid var(--blue-medium); }

.facture_entete_border_top {
  border-top: 1px solid var(--blue-medium); }

.invoiceItemTicketNumber {
  display: flex;
  align-items: center; }

.infoPaymentInvoiceBubble {
  border-radius: 5px;
  padding: 2px 5px;
  color: var(--text-inverse);
  margin-right: 5px;
  white-space: nowrap;
  display: inline-block; }
  .infoPaymentInvoiceBubble.paidInvoice {
    background-color: mediumseagreen; }
  .infoPaymentInvoiceBubble.unpaidInvoice {
    background-color: #eb4d11; }

.btnCreateGroupedInvoice {
  margin-right: 10px; }

.separator {
  width: 100%;
  height: 1px;
  margin-top: 7px;
  background-color: var(--surface-muted);
  background-repeat: no-repeat;
  text-decoration: none; }

#ValiditeBA {
  text-align: right; }

.moisBA {
  text-align: right !important; }

.dashboard-bloc {
  text-align: left; }

#img.logo_param {
  margin: 0;
  height: 100px; }

.logo_param {
  max-width: 280px;
  float: none !important; }

.param_upload_link {
  float: right;
  line-height: 100px;
  padding-right: 10px; }

.image_logo_param {
  margin-top: 15px;
  -webkit-background-size: cover;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  margin-right: 100% !important; }
  @media (min-width: 341px) {
    .image_logo_param {
      margin-top: 10px; } }

.param_btn_radio {
  text-align: right;
  padding-top: 10px; }

.sousLabel {
  font-weight: normal; }

.moisBA {
  font-weight: normal; }

.margBottom0 {
  margin-bottom: 0px; }

.margBottom30 {
  margin-bottom: 30px; }

.width30 {
  width: 30px; }

.labelPoints {
  float: left; }

a.labelPoints {
  padding-top: 7px;
  padding-left: 15px;
  margin-top: 0;
  margin-bottom: 0; }

.itemFamille {
  background-color: darkgray;
  border: 1px solid var(--text); }

.itemArticle {
  background-color: antiquewhite;
  border: 1px solid var(--text); }

.editArticleFidelite {
  margin-right: 15px; }

.validArticleFidelite {
  color: var(--ok-fg);
  cursor: pointer; }

.displayArticleNameFidelite {
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden; }

.ui-autocomplete {
  max-height: 300px;
  overflow: auto;
  text-align: left;
  padding: 0px;
  font-size: 1.4rem;
  font-weight: 100;
  z-index: 30000 !important; }

.ui-menu-item {
  border: none !important;
  background-color: white;
  color: var(--text) !important;
  min-height: 30px;
  padding: 8px 12px;
  cursor: pointer;
  display: flex;
  align-items: center; }
  .ui-menu-item:hover {
    background-color: var(--surface-muted) !important; }
  .ui-menu-item .profile_img {
    margin-right: 10px; }
    .ui-menu-item .profile_img img {
      border-radius: 5px;
      width: 30px;
      height: 30px;
      object-fit: cover; }
  .ui-menu-item .ui-state-active {
    background-color: transparent !important;
    border: none !important;
    color: inherit !important; }
  .ui-menu-item .ui-widget-content {
    border: none !important;
    background: var(--surface);
    color: var(--text);
    border-radius: 10px;
    margin-top: 5px; }
  .ui-menu-item .ui-menu-item.autocompleteFamille {
    color: var(--text-inverse) !important;
    min-height: 40px;
    border-bottom: 1px solid var(--surface) !important;
    padding: 10px 5px; }
  .ui-menu-item .ui-state-focus {
    background: none !important;
    border: 0px solid var(--text) !important; }
    .ui-menu-item .ui-state-focus:hover {
      background-color: var(--surface-muted) !important; }
  .ui-menu-item .parentNewUser {
    background-color: transparent;
    z-index: 4; }
    .ui-menu-item .parentNewUser:hover {
      cursor: pointer; }
      .ui-menu-item .parentNewUser:hover .newUser {
        transition: all 0.5s;
        opacity: 0.9; }
  .ui-menu-item .newUser {
    display: block;
    width: calc(100% - 20px);
    height: calc(100% - 10px);
    z-index: 2;
    position: absolute;
    line-height: 178px;
    opacity: 0.6;
    background-color: white;
    cursor: pointer; }
  .ui-menu-item .addNewUser {
    opacity: 1;
    z-index: 3;
    position: absolute;
    line-height: 178px !important;
    left: calc(50% - 7px);
    color: var(--link);
    cursor: pointer; }
  .ui-menu-item .parameters_bloc {
    margin-top: 0px;
    margin-left: -15px;
    padding-top: 30px; }
    @media (max-width: 991px) {
      .ui-menu-item .parameters_bloc {
        margin-left: 5px;
        width: calc(100% - 10px);
        padding: 10px 5px; } }
  .ui-menu-item .ins-settings-bloc {
    margin: 10px 0px;
    padding: 20px;
    display: inline-block;
    width: 100%;
    background-color: var(--blue-light);
    border-radius: 15px; }
    .ui-menu-item .ins-settings-bloc .form-control {
      background-color: white; }

.ui-menu-divider {
  border: 0.5px solid var(--blue-light) !important; }

.ui-widget.ui-widget-content {
  border: none !important;
  border-radius: 10px; }

#activeFacturation {
  position: absolute;
  bottom: calc(50% - 12px);
  right: 0; }

.ligne_all_clients {
  height: 30px;
  line-height: 30px;
  white-space: nowrap; }

.ligneClient {
  padding: 8px 0px;
  border-top: 1px solid var(--blue-medium);
  display: flex;
  align-items: center; }
  @media (min-width: 768px) {
    .ligneClient {
      margin-right: 0px; } }
  .ligneClient:first-of-type {
    border-top: 1px solid var(--surface) !important; }
  .ligneClient:hover {
    background-color: var(--surface-sunk);
    cursor: pointer;
    border-radius: 5px;
    border-top: 1px solid #F6F6F6; }
    .ligneClient:hover + .ligneClient {
      border-top: 1px solid var(--surface); }

.clientEvent {
  color: var(--text); }

.lastEventNotSeen {
  color: var(--blue-selected) !important; }

.img_preview span {
  width: 50px;
  height: 50px;
  border-radius: 7px;
  display: block;
  background-position: center center;
  object-fit: cover;
  display: block;
  vertical-align: middle;
  line-height: 50px;
  text-align: center;
  color: var(--text-inverse);
  font-size: 2.2rem; }

.img_preview_customer {
  height: 80px;
  width: 80px;
  text-align: center;
  display: block;
  background-position: center center;
  object-fit: cover;
  display: block;
  vertical-align: middle;
  line-height: 80px;
  text-align: center;
  font-weight: normal;
  color: var(--text-inverse);
  font-size: 2.8rem; }
  .img_preview_customer .imgArticle_preview {
    display: inline-block;
    height: 80px;
    width: 80px;
    border-radius: 10px;
    object-fit: cover;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    background-color: #98c1e1;
    position: relative; }

.ligneClient.client_selected {
  background-color: var(--selected-opacity);
  border-radius: 5px;
  border-top: 1px solid transparent !important; }
  .ligneClient.client_selected + .ligneClient {
    border-top: 1px solid var(--surface); }

.solde_client {
  padding-left: 0px;
  padding-right: 10px;
  font-size: 0.90em; }

.init_client {
  width: 50px;
  height: 50px;
  background-color: #ccc;
  position: absolute;
  left: 10px;
  top: calc(50% - 25px);
  border-radius: 25px;
  color: var(--text-inverse);
  line-height: 48px;
  letter-spacing: 3px;
  padding-left: 3px;
  text-align: center;
  font-size: 1.8rem;
  font-weight: 100;
  border: 1px solid var(--field-line); }

div#listClients {
  height: calc(100vh - 80px); }

.ticketSansNom {
  min-height: 71px;
  padding-top: 25px; }

.msg-bubble-container-right {
  text-align: right; }

.msg-bubble-container-left {
  text-align: left; }

.msg-bubble-body {
  display: inline-block;
  max-width: 500px;
  color: var(--text-2);
  text-align: right;
  margin-bottom: 10px;
  font-size: var(--ds-fs-secondary); }

.msg-bubble-me {
  text-align: right; }
  .msg-bubble-me .msg-bubble-container {
    text-align: left; }

.msg-bubble-container-right .msg-bubble {
  background-color: var(--blue-selected);
  color: var(--text-inverse); }

@media (max-width: 767px) {
  #customerContainer {
    padding: 0px 10px; } }

.customer-header {
  border-bottom: 1px solid #e7edf3;
  position: sticky;
  top: 0px;
  margin-top: -25px;
  padding-top: 25px;
  margin-bottom: 0px;
  z-index: 10;
  background-color: white; }

.msg-bubble-container-left .msg-bubble {
  background-color: var(--blue-light);
  color: var(--text); }

.msg-bubble-new {
  padding: 15px 20px;
  color: var(--text-inverse);
  border-radius: 5px;
  background-color: #ddb2a9;
  text-align: left;
  margin-bottom: 3px;
  font-size: 1.5rem; }

.messageNotSent {
  font-style: italic;
  font-weight: bold;
  color: #5f3030; }

.msg-bubble {
  padding: 15px 20px;
  color: var(--text-inverse);
  border-radius: 5px;
  text-align: left;
  margin-bottom: 3px;
  font-size: 1.5rem; }
  .msg-bubble .msg-bubble-action {
    display: block;
    text-align: right;
    padding-top: 6px; }
    .msg-bubble .msg-bubble-action span {
      text-decoration: underline;
      cursor: pointer; }
      .msg-bubble .msg-bubble-action span:hover {
        opacity: 0.7; }

.modif_mdp_container .infos_content {
  max-width: 500px;
  margin-left: auto;
  margin-right: auto;
  top: 50%;
  padding: 20px; }

.list_content {
  border-top: 1px solid var(--text-2); }

#Nom_Liste {
  text-transform: uppercase; }

.supplement.control-checkbox {
  margin-left: 0px;
  margin-right: 10px; }

.supplement_row {
  padding-bottom: 10px; }

.overflowModalVisible {
  overflow: visible; }

@media (min-width: 1200px) {
  #FormFournisseur {
    padding-top: 25px; } }

.shop-family-select {
  cursor: pointer;
  transition: color 0.2s ease; }

.shop-family-select :hover {
  color: var(--blue-selected); }

.declinationKey {
  padding-top: 20px; }

.extraProductContainer {
  width: 100%; }

.declinationItemParentStyle {
  width: auto;
  display: inline-block;
  padding: 6px 15px;
  margin: 6px;
  margin-left: 0px;
  margin-top: 0px;
  color: black;
  border-radius: 4px;
  background-color: var(--blue-light); }

.declinationItem {
  padding: 6px 12px;
  border-radius: var(--border-radius-little);
  border: 1px solid var(--blue-medium); }

.declinationSelected {
  color: white !important;
  background-color: var(--blue-selected) !important;
  border: 1px solid var(--blue-selected); }

.declinationItemDisabled {
  opacity: 0.3; }

.declinationItem:hover {
  cursor: pointer; }

.listFamilies, .sub-family-container {
  /* Optional: show position indicator in red */ }
  @media (min-width: 768px) {
    .listFamilies.reduce-for-scroll, .sub-family-container.reduce-for-scroll {
      margin-bottom: -5px; } }
  @media (min-width: 768px) {
    .listFamilies::-webkit-scrollbar, .sub-family-container::-webkit-scrollbar {
      width: 0;
      /* Remove scrollbar space */
      height: 4px;
      margin: 0px 10px;
      background-color: transparent;
      /* Optional: just make scrollbar invisible */ } }
  @media (min-width: 768px) {
    .listFamilies::-webkit-scrollbar-thumb, .sub-family-container::-webkit-scrollbar-thumb {
      background: transparent;
      max-height: 3px;
      border-radius: 30px;
      padding: 0px 10px;
      min-height: 3px;
      margin-top: -10px;
      border-left: 10px solid white;
      border-right: 10px solid white;
      transition: background-color ease 0.8s; } }
  @media (min-width: 768px) {
    .listFamilies:hover::-webkit-scrollbar-thumb, .sub-family-container:hover::-webkit-scrollbar-thumb {
      background-color: var(--blue-light); }
      .listFamilies:hover::-webkit-scrollbar-thumb:hover, .sub-family-container:hover::-webkit-scrollbar-thumb:hover {
        background-color: var(--blue-medium); } }

#listGroupFamilies {
  padding: 0px 0px 0px;
  width: 100%;
  margin: 0px 0px 0px;
  z-index: 10;
  text-align: left; }

.product_thumbnail_container {
  padding: 10px 0px;
  margin-bottom: 20px;
  color: black; }
  @media (max-width: 767px) {
    .product_thumbnail_container {
      padding: 10px 0px; } }
  .product_thumbnail_container span[data-type="currency"] {
    font-size: 1.6rem;
    font-weight: 500;
    display: inline-block;
    margin-top: 3px; }

.searchResultText {
  padding-top: 15px;
  display: inline-block;
  font-size: 1.8rem;
  padding-left: 5px; }
  .searchResultText a {
    display: inline-block;
    margin-left: 10px;
    font-size: 1.5rem; }

.shopProductThumbnail, .newProductThumbnail {
  width: 100%;
  padding: 0px;
  background-size: cover;
  background-position: center;
  margin-left: 0px;
  margin-bottom: 10px;
  vertical-align: middle;
  margin: auto;
  display: flex !important;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  position: relative;
  cursor: pointer;
  border-radius: var(--border-radius-medium); }
  .shopProductThumbnail:after, .newProductThumbnail:after {
    content: '';
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--blue-dim);
    opacity: .05;
    pointer-events: none;
    padding-bottom: 100%;
    display: inline-block; }
  .shopProductThumbnail img, .newProductThumbnail img {
    align-self: center;
    display: inline-block;
    width: 100%;
    height: 100%;
    object-fit: cover; }
  .shopProductThumbnail .btn-edit-mini, .newProductThumbnail .btn-edit-mini {
    right: 10px;
    bottom: 10px; }

.shopProductThumbnail.longThumbnail:after {
  padding-bottom: 125%; }

.newProductThumbnail:after {
  padding-bottom: 90%;
  display: inline-block; }

.medium-image-preview {
  position: relative;
  display: inline-block;
  width: 100%;
  height: 100%;
  overflow: hidden; }

#shopProductDetails .img-preview-container {
  border-radius: 7px; }

.askforaccess-container {
  color: #9ca1a7;
  border-radius: 7px;
  display: inline-block;
  width: 100%;
  padding: 10px;
  white-space: normal; }

.askAccessBakgroundGrey .askforaccess-container {
  background-color: white;
  border: 1px solid var(--blue-dark);
  color: black;
  padding: 15px;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start; }

.askforaccess-container-link {
  color: #eb4d11; }
  .askforaccess-container-link:hover {
    color: #D90000; }

#shopProductDetails .action-button-container {
  text-align: left; }

.suggestion_container {
  margin: 0px;
  margin-top: 80px;
  display: inline-block;
  width: 100%;
  max-width: 1510px;
  padding: 0px 30px; }
  .suggestion_container .titlesuggestion {
    font-size: 1.8rem; }
  @media (max-width: 991px) {
    .suggestion_container {
      padding: 0px 15px; } }
  .suggestion_container .lds-ring {
    margin-left: 10px; }
  @media (max-width: 767px) {
    .suggestion_container {
      display: block; } }
  .suggestion_container #suggestion_items_container {
    display: inline-grid;
    grid-template-columns: repeat(5, 1fr);
    row-gap: 30px;
    column-gap: 30px;
    width: 100%; }
    @media (max-width: 1199px) {
      .suggestion_container #suggestion_items_container {
        grid-template-columns: repeat(4, 1fr); } }
    @media (max-width: 991px) {
      .suggestion_container #suggestion_items_container {
        grid-template-columns: repeat(3, 1fr);
        column-gap: 15px; } }
    @media (max-width: 767px) {
      .suggestion_container #suggestion_items_container {
        grid-template-columns: repeat(2, 1fr); } }

.modal-body .suggestion_container .product_thumbnail_container .shopProductThumbnail {
  margin: 0px; }

.modal-body .suggestion_container .product_thumbnail_container {
  margin: 0px;
  margin-bottom: 10px; }

#shopProductDetails .suggestion_container {
  padding: 0px 5px;
  margin-right: 0px; }
  #shopProductDetails .suggestion_container .product_thumbnail_container {
    padding-left: 10px; }
    #shopProductDetails .suggestion_container .product_thumbnail_container.shopProductThumbnail {
      margin-bottom: 0px;
      height: calc(100vw / 1.8); }

.product_thumbnail {
  text-decoration: none; }

.product_thumbnail:hover {
  cursor: pointer;
  text-decoration: underline; }

#miniatureImages {
  padding: 0px;
  text-align: left; }
  @media (max-width: 767px) {
    #miniatureImages {
      padding: 0px 0px 10px; } }

#shopProductDetails #miniatureImages {
  padding: 0px 0px; }

#filter_container {
  width: 100%;
  height: auto;
  overflow: hidden;
  max-width: 440px; }

#webshoplinkpreview {
  padding-top: 20px;
  max-width: 600px;
  display: flex;
  align-items: center; }
  @media (max-width: 767px) {
    #webshoplinkpreview {
      padding-bottom: 20px; } }

.description_container p {
  margin: 0px; }
.description_container label {
  font-weight: normal;
  color: black;
  margin: 0px;
  margin-top: 5px;
  text-decoration: underline;
  font-weight: 500; }
.description_container strong {
  font-weight: 600; }

.description_label {
  line-height: 2.5rem;
  white-space: pre-line; }

.description_container input {
  opacity: 0;
  position: absolute;
  pointer-events: none;
  width: auto; }
.description_container input:focus ~ label {
  outline: -webkit-focus-ring-color auto 5px; }
.description_container input:checked + div, .description_container input:checked + p {
  -webkit-line-clamp: unset; }
.description_container input:checked ~ label {
  display: none; }

.miniature_thumbnail {
  height: 60px;
  width: 60px;
  margin: 0 8px;
  background-position: center center;
  background-size: cover;
  display: inline-block;
  margin: 3px 6px;
  margin-left: 0px;
  opacity: 0.6;
  border-radius: 4px; }
  .miniature_thumbnail:hover {
    opacity: 1;
    cursor: pointer; }

.selected_miniature {
  opacity: 1; }

.fas.fa-star.rated {
  cursor: pointer;
  color: #eb4d11; }
  .fas.fa-star.rated.hovered {
    color: #eb4d11; }
  .fas.fa-star.rated.unhovered {
    color: var(--blue-medium); }

.fas.fa-star.unrated {
  cursor: pointer;
  color: var(--blue-medium); }
  .fas.fa-star.unrated.hovered {
    color: #eb4d11; }
  .fas.fa-star.unrated.unhovered {
    color: var(--blue-medium); }

.review_content {
  display: flex;
  flex-direction: column; }

.selectedTypePromotionalCode {
  background-color: green; }

.darkLink {
  color: var(--link-color); }

.darkLink:hover, .darkLink:active, .darkLink:focus {
  text-decoration: underline;
  color: var(--link-color) !important; }

.shop-header {
  padding-top: 20px;
  padding-bottom: 10px;
  font-size: 16px;
  display: inline-flex;
  width: 100%;
  align-items: center;
  justify-content: flex-end; }
  @media (max-width: 767px) {
    .shop-header {
      padding-bottom: 0px; } }
  .shop-header .shop-header-return {
    color: black; }
    .shop-header .shop-header-return:hover {
      text-decoration: underline; }
  .shop-header i {
    font-size: 1.5rem;
    margin: 0px 6px;
    color: var(--blue-dark); }
  @media (max-width: 767px) {
    .shop-header {
      display: inline-block; }
      .shop-header .row {
        width: 100%; }
      .shop-header .search-shop-container {
        max-width: unset;
        width: 100%; }
      .shop-header .d-inline-block {
        padding-left: 0px !important;
        margin-bottom: 10px !important; }
      .shop-header .margin-right-6.d-inline-block {
        padding-left: 0px !important;
        margin-bottom: 0px !important; }
      .shop-header .link-tri {
        margin-bottom: 10px; } }

.shop-title-text {
  max-width: 520px;
  display: inline-block;
  font-size: 1.6rem; }

.shop-family-select {
  padding: 6px;
  display: inline-block;
  margin: 0px 5px; }
  @media (max-width: 767px) {
    .shop-family-select {
      padding: 6px 10px; } }
  .shop-family-select .btn-edit-mini {
    display: none; }
  .shop-family-select:hover {
    background-color: var(--blue-light);
    cursor: pointer;
    color: var(--blue-selected); }
    .shop-family-select:hover .btn-edit-mini {
      display: block; }

.btn-edit-mini {
  font-size: var(--ds-fs-secondary); }

.familyImage .btn-edit-mini {
  top: 19px;
  right: 10px; }

#listProducts {
  vertical-align: top;
  padding: 0px 0px 30px; }
  @media (min-width: 992px) {
    #listProducts {
      width: 100%;
      padding: 0px 0px; } }

#shopProductThumbnailsLoading {
  bottom: 0px;
  padding-top: 20px; }
  #shopProductThumbnailsLoading .lds-ring {
    margin-bottom: -10px;
    margin-left: 10px; }
    @media (max-width: 767px) {
      #shopProductThumbnailsLoading .lds-ring {
        margin-bottom: 5px; } }

#no_product_thumbnails {
  display: none; }

#shopProductThumbnailsContainer:not([data-card-width]) {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  row-gap: 16px;
  column-gap: 16px; }
  #shopProductThumbnailsContainer:not([data-card-width]).grid-5 {
    grid-template-columns: repeat(5, 1fr); }
  @media (max-width: 1199px) {
    #shopProductThumbnailsContainer:not([data-card-width]) {
      grid-template-columns: repeat(3, 1fr); }
      #shopProductThumbnailsContainer:not([data-card-width]).grid-5 {
        grid-template-columns: repeat(4, 1fr); } }
  @media (max-width: 991px) {
    #shopProductThumbnailsContainer:not([data-card-width]) {
      grid-template-columns: repeat(2, 1fr);
      column-gap: 15px; }
      #shopProductThumbnailsContainer:not([data-card-width]).grid-5 {
        grid-template-columns: repeat(3, 1fr); } }
  @media (max-width: 767px) {
    #shopProductThumbnailsContainer:not([data-card-width]) {
      grid-template-columns: repeat(2, 1fr); } }

#basket_qty_btn:empty + .action-button-container {
  display: none !important; }

.productTotalQty:empty {
  display: none !important; }

.search-shop {
  padding: 0px 5px;
  padding-top: 15px;
  margin-top: 0px;
  padding-left: 10px; }
  @media (min-width: 992px) {
    .search-shop {
      float: right;
      text-align: right;
      max-width: 760px;
      margin-right: 10px; } }
  @media (max-width: 767px) {
    .search-shop {
      margin-top: 10px; } }

#loadingProducts {
  display: inline-block;
  width: 100%;
  padding: 50px;
  text-align: center; }

#shop_container {
  margin-top: 0px;
  padding: 0px 30px 30px;
  position: relative;
  border-radius: 0px;
  display: flex;
  flex-direction: column;
  align-items: center; }
  @media (max-width: 991px) {
    #shop_container {
      padding: 0px 15px 30px; } }
  #shop_container .hidden-header-infos {
    display: none; }
  #shop_container .sc2 {
    display: inline-block;
    max-width: 1420px;
    width: 100%;
    padding-top: 30px; }

.search-shop-container {
  width: 100%;
  display: inline-block;
  vertical-align: middle;
  color: #9ca1a7; }
  .search-shop-container input {
    min-height: 0px;
    padding: 10px 20px;
    height: auto;
    width: 100%; }

.search-shop-btn {
  display: inline-flex;
  align-items: center;
  vertical-align: middle;
  position: absolute;
  right: 0px;
  height: 100%;
  padding-right: 5px; }
  .search-shop-btn .btn-primary {
    padding: 5px;
    background-color: transparent !important;
    height: 100%;
    display: inline-flex;
    align-items: center;
    color: #9ca1a7; }

.mediumImageContainer {
  width: 100%;
  overflow: hidden; }

#mediumImages img {
  object-fit: contain; }

.modal-body #shopProductDetailsContainer {
  width: 100%;
  max-width: 1140px; }

.wi55 {
  width: 50%;
  float: left;
  margin: 0px; }
  @media (min-width: 768px) {
    .wi55 {
      position: sticky;
      top: 75px; } }
  @media (max-width: 767px) {
    .wi55 {
      width: 100%; } }

#shopProductDetailsContainer {
  width: 100%;
  display: flex;
  justify-content: center;
  flex-direction: column;
  align-content: center;
  align-items: center;
  padding-bottom: 30px; }
  @media (min-width: 768px) {
    #shopProductDetailsContainer {
      padding-top: 40px; } }

.returnToFamily .darkLink {
  font-size: 1.3rem;
  color: var(--link-color); }

.deliveryAndReturn {
  line-height: 1.9;
  width: 100%;
  display: inline-flex;
  align-content: center;
  align-items: start;
  flex-direction: column; }

.full_product_name {
  font-size: 2rem;
  font-weight: 500;
  line-height: 2.8rem; }

.modal-body #shopProductDetailsContainer {
  max-width: 1140px; }

#shopProductForm {
  width: 100%;
  max-width: 1500px; }

#shopProductForm .action-button-container {
  text-align: center; }
  @media (min-width: 768px) {
    #shopProductForm .action-button-container {
      text-align: left; } }

.wi45 {
  width: 50%;
  float: left;
  padding: 10px 0px 0px 40px;
  margin: 0px; }
  @media (max-width: 767px) {
    .wi45 {
      width: 100%;
      padding: 0px; }
      .wi45 .product_name {
        margin-top: 10px; } }

.modal-body .wi45 {
  padding: 5px 20px 10px; }
  @media (max-width: 767px) {
    .modal-body .wi45 {
      padding: 0px 5px; } }

#btn-minus, #btn-plus {
  padding: 0px;
  border-radius: calc(var(--border-radius-medium) - 1px);
  font-size: 1.3rem;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px; }

.share-product {
  padding-top: 6px;
  display: inline-block;
  width: 100%;
  font-size: 1.3rem;
  padding-left: 1px; }
  .share-product .fa-brands, .share-product .fa-light, .share-product .fak {
    margin-right: 15px; }
  .share-product .fa-tradastra-plein {
    color: #75bbd9; }
  .share-product .fa-facebook {
    color: #3b5998; }
    .share-product .fa-facebook:hover {
      color: #5c7bbc; }
  .share-product .fa-pinterest {
    color: #ca2128; }
    .share-product .fa-pinterest:hover {
      color: #f1575e; }
  .share-product .fa-x-twitter {
    color: #000; }
    .share-product .fa-x-twitter:hover {
      color: #333; }
  .share-product .fa-external-link {
    color: steelblue; }
    .share-product .fa-external-link:hover {
      color: #76a7d1; }

.no-shop-item {
  padding: 15px;
  position: absolute;
  background-color: white;
  width: calc(100% - 10px);
  height: calc(100% - 10px);
  top: 5px;
  left: 5px;
  z-index: 2; }

.link-tri {
  font-size: 1.5rem;
  color: steelblue; }

#filter_button_container {
  left: 0px;
  width: 100%;
  padding: 0px 0px;
  display: inline-block;
  background: linear-gradient(0deg, rgba(255, 255, 255, 0) 0%, white 15%, white 80%, rgba(255, 255, 255, 0) 100%); }

.shopSpecificationContainer {
  margin-bottom: 15px;
  box-shadow: none;
  margin-left: 0px;
  padding-left: 0px;
  border-radius: 5px;
  padding: 10px 15px;
  background-color: var(--blue-light); }

.sub-family-shop {
  cursor: pointer; }
  .sub-family-shop:hover {
    text-decoration: underline; }

#filtersContainer {
  padding-bottom: 15px;
  width: 100%;
  float: right;
  text-align: left; }
  #filtersContainer:empty {
    display: none; }

#listGroupSubFamilies {
  padding-top: 20px; }

.institution-thumbnail {
  border: 1px solid var(--blue-medium);
  border-radius: 7px;
  padding: 10px;
  text-align: left;
  position: relative;
  margin-bottom: 5px; }
  .institution-thumbnail i {
    color: var(--blue-selected);
    position: absolute;
    right: 7px;
    top: 8px;
    display: none; }
  .institution-thumbnail:hover {
    background-color: var(--blue-light);
    cursor: pointer; }
  .institution-thumbnail.selected {
    border-color: var(--blue-selected);
    background-color: var(--blue-light);
    color: var(--blue-selected); }
    .institution-thumbnail.selected i {
      display: block; }
  .institution-thumbnail img {
    width: 60px;
    height: 60px;
    border-radius: 7px;
    margin-right: 6px; }

#payment_container {
  margin-top: 0px;
  padding-top: 20px;
  padding-left: 0px;
  padding-right: 0px;
  padding-bottom: 30px; }
  @media (max-width: 767px) {
    #payment_container {
      padding-left: 0px;
      padding-right: 0px;
      margin-top: 0px;
      padding-top: 20px;
      padding-bottom: 20px; } }

.delivery-hr {
  display: none; }

.no-delivery-option {
  display: none; }

.delivery-option {
  display: block; }

@media (max-width: 767px) {
  .basket-panel-right {
    padding: 0px; } }
@media (min-width: 768px) {
  .basket-panel-right {
    border-right: 1px solid var(--blue-medium); } }

#add-to-basket {
  display: flex;
  align-items: center; }
  @media (max-width: 767px) {
    #add-to-basket {
      flex-direction: column; }
      #add-to-basket .btn-basket-add {
        height: 54px !important;
        margin-top: 20px; } }

.order-resume {
  padding-top: 10px;
  margin: 0px 0px; }
  @media (min-width: 768px) {
    .order-resume {
      padding: 0px 15px 15px; } }

#deliveryModeContainerValue:empty + .no-delivery-option {
  display: inline-block; }

.addressThumbnail {
  cursor: pointer;
  border-radius: 10px;
  padding: 15px;
  text-align: left;
  margin-bottom: 0px;
  width: 100%;
  display: inline-block;
  background-color: var(--blue-light); }
  .addressThumbnail:hover {
    background-color: var(--blue-medium); }
  .addressThumbnail.selected {
    background-color: var(--blue-light);
    cursor: default;
    color: var(--blue-selected); }

.delivery-mode-thumbnail {
  border: 0px solid var(--blue-medium);
  border-radius: 10px;
  padding: 10px 15px;
  position: relative;
  margin-bottom: 5px;
  background-color: var(--blue-light);
  display: flex;
  align-items: center;
  width: 100%;
  border-radius: 10px; }
  .delivery-mode-thumbnail i {
    margin-right: 15px; }
  .delivery-mode-thumbnail span.fas {
    color: var(--blue-light); }
  .delivery-mode-thumbnail:hover {
    background-color: var(--blue-medium);
    cursor: pointer; }
  .delivery-mode-thumbnail .styled-checkbox {
    pointer-events: none; }
  .delivery-mode-thumbnail.selected {
    background-color: var(--blue-light);
    border: 0px solid var(--blue-selected);
    color: var(--blue-selected); }
    .delivery-mode-thumbnail.selected i {
      color: var(--blue-selected); }
    .delivery-mode-thumbnail.selected span.fas {
      color: var(--blue-selected); }
    .delivery-mode-thumbnail.selected:hover {
      background-color: var(--blue-light);
      cursor: default; }
      .delivery-mode-thumbnail.selected:hover a {
        cursor: pointer; }

#promotionalCodeList:empty + .no-item {
  display: block; }

.promotionalCodeThumbnail {
  background-color: var(--blue-light);
  border-radius: 5px;
  padding: 0px 10px;
  cursor: pointer;
  margin-bottom: 5px; }
  .promotionalCodeThumbnail:hover {
    background-color: var(--blue-light); }

.promotionalCodeCreate {
  max-width: 450px; }

.order-sale-thumbnail {
  padding: 0px;
  cursor: pointer;
  display: table;
  width: 100%;
  text-align: left; }
  .order-sale-thumbnail div {
    display: table-cell;
    vertical-align: middle;
    float: unset !important; }

.orderDetailsContent {
  width: calc(100vw - 60px);
  max-width: 600px;
  padding-top: 15px; }

@media (min-width: 768px) {
  #productGroupPurchaseForm #reviews_container.productreviewcontainer {
    margin: 0px; }

  #reviews_container {
    padding: 0px 10px;
    max-width: 550px; }

  .wi45 #reviews_container {
    padding: 0px; }

  #shopProductDetailsForm .suggestion_container {
    margin-top: 0px; }
    #shopProductDetailsForm .suggestion_container .titlesuggestion {
      font-size: 1.8rem; } }
.no_payment_mode {
  color: #666;
  font-weight: normal;
  padding: 10px; }

#paymentMethodManagerFormMessage {
  width: 100%;
  padding: 10px;
  margin-bottom: 10px;
  margin-top: 0px;
  text-align: left;
  border-radius: 4px;
  background-color: #d7edff;
  border: 1px solid #aedaff;
  color: black; }
  #paymentMethodManagerFormMessage:empty {
    display: none !important; }

#shopProductValidationErrorMessage {
  color: var(--red-danger);
  display: block;
  padding-bottom: 15px;
  font-weight: normal;
  padding: 12px 16px;
  border-radius: var(--border-radius-little);
  background: color-mix(var(--red-danger) 7%, transparent 90%);
  border-left: 3px solid var(--red-danger);
  margin-top: 16px; }
  #shopProductValidationErrorMessage:empty {
    display: none !important; }

#shopProductDetailsForm hr {
  margin-top: 10px;
  margin-bottom: 10px; }

#shopProductDetailsForm {
  width: 100%;
  max-width: 1510px;
  padding: 0px 30px;
  padding-top: 12px; }
  @media (max-width: 991px) {
    #shopProductDetailsForm {
      padding: 0px 15px;
      padding-top: 30px; } }

@media (max-width: 767px) {
  .modal-body #shopProductDetailsForm {
    padding: 0px 0px; } }

.editFamily {
  position: absolute;
  bottom: 5px;
  right: 5px; }

#logo-login {
  height: 40px;
  margin-bottom: 30px; }

#shop_body {
  display: inline-flex;
  flex-direction: row;
  width: 100%; }
  @media (max-width: 767px) {
    #shop_body {
      flex-direction: column; } }
  #shop_body #shop_lateral {
    width: 100%;
    max-width: 260px;
    padding-right: 30px;
    padding-top: 42px;
    padding-left: 0px; }
    @media (max-width: 991px) {
      #shop_body #shop_lateral {
        padding-right: 15px; } }
    @media (max-width: 767px) {
      #shop_body #shop_lateral {
        max-width: unset;
        padding-right: 0px; } }
  #shop_body #shopProductThumbnailsContainer {
    width: 100%; }
  #shop_body .select-family {
    padding: 10px 20px;
    border: 1px solid #eb4d11;
    color: #eb4d11;
    font-weight: 600;
    border-radius: 5px;
    margin-bottom: 20px; }
    @media (max-width: 767px) {
      #shop_body .select-family {
        border: 1px solid var(--blue-selected);
        color: var(--blue-selected); } }
    #shop_body .select-family i {
      float: right;
      margin-top: 3px; }

#desktop-preview {
  pointer-events: none;
  padding: 20px 15px;
  display: inline-block;
  max-width: 585px;
  width: 100%;
  background-color: black;
  border-radius: 15px;
  overflow: hidden;
  position: relative; }
  #desktop-preview #captureResultD {
    position: absolute;
    overflow: hidden;
    border-radius: 4px;
    width: calc(200% - 60px);
    height: calc(200% - 80px);
    transform: scale(0.5);
    transform-origin: top left;
    background: var(--background-color); }
  #desktop-preview:after {
    display: inline-block;
    content: '';
    padding-bottom: 62%; }
  @media (max-width: 767px) {
    #desktop-preview .insCont {
      transform: scale(0.25);
      width: 400%;
      transform-origin: top left;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-content: center;
      align-items: center; }
    #desktop-preview #captureResultD {
      width: calc(300% - 80px);
      height: calc(300% - 110px);
      transform: scale(0.33); } }

#phone-preview {
  pointer-events: none;
  padding: 17px 8px;
  margin-left: -60px;
  z-index: 3;
  position: relative;
  display: inline-block;
  max-width: 127px;
  width: 23%;
  background-color: black;
  border-radius: 12px;
  overflow: hidden;
  align-self: flex-end; }
  @media (max-width: 767px) {
    #phone-preview {
      display: none; } }
  #phone-preview:after {
    display: inline-block;
    content: '';
    padding-bottom: 190%; }

.customize-style-line {
  align-items: center;
  padding: 20px 0px 10px; }

.customize-style-column {
  display: flex;
  align-items: center;
  background: var(--blue-light);
  border-radius: var(--border-radius-little);
  padding: 10px 15px; }
  .customize-style-column .csc-text {
    flex: 1; }

.shop-card {
  position: relative;
  display: flex;
  text-decoration: none !important;
  color: inherit;
  background: #fff;
  border-radius: var(--border-radius-medium, 15px);
  overflow: hidden;
  transition: transform .2s ease, box-shadow .2s ease;
  cursor: pointer; }

.shop-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1); }

.shop-card[data-img-pos="top"] {
  flex-direction: column; }

.shop-card[data-img-pos="left"] {
  flex-direction: row;
  align-items: stretch; }

.shop-card[data-img-pos="right"] {
  flex-direction: row-reverse;
  align-items: stretch; }

.shop-card[data-img-pos="none"] {
  flex-direction: column; }

.shop-card-img {
  overflow: hidden;
  flex-shrink: 0; }

.shop-card[data-img-pos="top"] .shop-card-img {
  width: 100%; }

.shop-card[data-img-pos="left"] .shop-card-img,
.shop-card[data-img-pos="right"] .shop-card-img {
  width: 40%;
  min-height: 100%; }

.shop-card[data-img-pos="none"] .shop-card-img {
  display: none; }

.shop-card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block; }

.shop-card-img .empty {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--blue-dark);
  min-height: 80px;
  background: var(--blue-light);
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit; }

.shop-card[data-img-ratio="1/1"] .shop-card-img {
  aspect-ratio: 1/1; }

.shop-card[data-img-ratio="4/3"] .shop-card-img {
  aspect-ratio: 4/3; }

.shop-card[data-img-ratio="16/9"] .shop-card-img {
  aspect-ratio: 16/9; }

.shop-card[data-img-ratio="3/4"] .shop-card-img {
  aspect-ratio: 3/4; }

.shop-card {
  --card-pad-y: 14px;
  --card-pad-x: 16px; }

.shop-card-body {
  padding: var(--card-pad-y) var(--card-pad-x) var(--card-pad-x) var(--card-pad-x);
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
  text-align: var(--card-text-align, left); }

.shop-card[data-img-pos="left"] .shop-card-body,
.shop-card[data-img-pos="right"] .shop-card-body {
  padding: var(--card-pad-y) calc(var(--card-pad-x) + 2px);
  justify-content: center; }

.shop-card-img {
  box-sizing: border-box;
  border-radius: var(--border-radius-medium, 15px); }

.shop-card-img img {
  border-radius: inherit; }

.shop-card[data-img-pos="top"] .shop-card-img {
  padding: var(--card-pad-y) var(--card-pad-x) 0 var(--card-pad-x); }

.shop-card[data-img-pos="left"] .shop-card-img {
  padding: var(--card-pad-y) 0 var(--card-pad-y) var(--card-pad-x); }

.shop-card[data-img-pos="right"] .shop-card-img {
  padding: var(--card-pad-y) var(--card-pad-x) var(--card-pad-y) 0; }

.shop-card-title > * {
  margin: 0;
  line-height: 1.3; }

.shop-card-desc {
  margin: 0;
  color: var(--text-color, #5a5a5a);
  line-height: 1.5; }

.shop-card-price {
  margin: 4px 0 0 0; }

.shop-card-price > * {
  margin: 0;
  color: var(--color-primary, #1a1a1a); }

.shop-card-price .strike {
  text-decoration: line-through;
  opacity: 0.55;
  font-weight: 400;
  font-size: 0.85em;
  margin-right: 6px;
  color: var(--text-color, #5a5a5a); }

.shop-card-badges {
  position: absolute;
  top: 10px;
  left: 10px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  z-index: 2;
  pointer-events: none; }

.shop-card-badge {
  display: inline-flex;
  padding: 3px 9px;
  border-radius: var(--border-radius-little, 5px);
  font-size: var(--ds-fs-caption);
  font-weight: 700;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  background: #1a1a1a;
  color: #fff; }

.shop-card-badge-out {
  background: rgba(0, 0, 0, 0.7);
  color: #fff; }

.shop-card.shop-card-out {
  opacity: 0.55;
  cursor: not-allowed; }

.shop-card.shop-card-out:hover {
  transform: none;
  box-shadow: none; }

.shop-card-cta-add {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 50%;
  background: #fff;
  color: var(--color-primary, #1a1a1a);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  opacity: 0;
  transition: opacity .2s ease, transform .2s ease, background .15s ease;
  z-index: 3; }

.shop-card:hover .shop-card-cta-add {
  opacity: 1;
  transform: scale(1.08); }

.shop-card-cta-add:hover {
  background: var(--color-primary, #1a1a1a);
  color: #fff; }

.shop-card-cta-add.is-loading {
  pointer-events: none;
  opacity: 0.6 !important; }

.shop-card-cta-add.is-done {
  background: #16a34a !important;
  color: #fff !important; }

@media (hover: none) {
  .shop-card-cta-add {
    opacity: 1; } }
.shop-toast {
  position: fixed;
  top: 90px;
  right: 24px;
  background: var(--blue-selected);
  color: #fff;
  padding: 12px 18px;
  border-radius: var(--border-radius-little);
  box-shadow: 0 4px 212px rgba(0, 0, 0, 0.18);
  z-index: 9999;
  opacity: 0;
  transform: translateX(40px);
  transition: opacity .25s ease, transform .25s ease;
  pointer-events: none; }

.shop-toast.is-visible {
  opacity: 1;
  transform: translateX(0); }

.shop-toast--added {
  pointer-events: auto;
  display: inline-flex;
  align-items: center;
  gap: 14px; }

.shop-toast-link {
  color: #fff;
  text-decoration: underline;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap; }

.shop-toast-msg {
  display: inline-flex;
  align-items: center;
  gap: 8px; }

.shop-toast .lds-ring {
  width: 20px;
  height: 20px;
  padding: 0; }

.shop-toast .lds-ring div {
  width: 16px;
  height: 16px;
  margin: 2px;
  border-width: 3px;
  border-color: #fff transparent transparent transparent; }

.shop-card-cta-full {
  margin-top: 10px;
  align-self: flex-start; }

.shop-card[data-preset="minimal"] {
  padding: 14px 18px;
  min-height: 60px; }

.shop-card[data-preset="minimal"] .shop-card-body {
  padding: 0; }

.shop-card[data-preset="premium"] {
  --card-pad-y: 20px;
  --card-pad-x: 22px; }

.shop-card[data-preset="premium"] .shop-card-body {
  gap: 8px; }

.shop-card-grid[data-card-width="narrow"], .shop-spp-grid[data-card-width="narrow"] {
  grid-template-columns: repeat(auto-fill, minmax(min(180px, 100%), 1fr)); }

.shop-card-grid[data-card-width="standard"], .shop-spp-grid[data-card-width="standard"] {
  grid-template-columns: repeat(auto-fill, minmax(min(260px, 100%), 1fr)); }

.shop-card-grid[data-card-width="wide"], .shop-spp-grid[data-card-width="wide"] {
  grid-template-columns: repeat(auto-fill, minmax(min(380px, 100%), 1fr)); }

.shop-card-grid[data-card-width="full"], .shop-spp-grid[data-card-width="full"] {
  grid-template-columns: 1fr; }

@media (max-width: 575px) {
  .shop-card-grid[data-card-width="narrow"], .shop-spp-grid[data-card-width="narrow"],
  .shop-card-grid[data-card-width="standard"], .shop-spp-grid[data-card-width="standard"] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px; }

  .shop-card-grid[data-card-width="wide"], .shop-spp-grid[data-card-width="wide"],
  .shop-card-grid[data-card-width]:has(> .shop-card[data-img-pos="left"]),
  .shop-card-grid[data-card-width]:has(> .shop-card[data-img-pos="right"]),
  .shop-spp-grid[data-card-width]:has(> .shop-card[data-img-pos="left"]),
  .shop-spp-grid[data-card-width]:has(> .shop-card[data-img-pos="right"]) {
    grid-template-columns: 1fr;
    gap: 12px; } }
.shop-card[data-padding="compact"] {
  --card-pad-y: 10px;
  --card-pad-x: 12px; }

.shop-card[data-padding="compact"] .shop-card-body {
  gap: 4px; }

.shop-card[data-padding="standard"] {
  --card-pad-y: 14px;
  --card-pad-x: 16px; }

.shop-card[data-padding="standard"] .shop-card-body {
  gap: 6px; }

.shop-card[data-padding="spacious"] {
  --card-pad-y: 22px;
  --card-pad-x: 24px; }

.shop-card[data-padding="spacious"] .shop-card-body {
  gap: 10px; }

#productExtrasContainer {
  margin-top: 6px; }

#productExtrasContainer > hr.hr30 {
  display: none; }

#productExtrasContainer > .productExtrasContainer {
  background: #fff;
  border: 1px solid var(--blue-medium, #e9e9ec);
  border-radius: var(--border-radius-medium, 15px);
  padding: 14px 16px;
  margin-bottom: 14px; }

.productExtrasListHeader {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 10px;
  margin-top: 20px; }

.productExtraHeaderPrimary, .productExtraHeaderPrimary b {
  font-size: 1.7rem;
  font-weight: 700;
  color: var(--title-color, #1a1a1a); }

.productExtraHeaderSecondary {
  font-size: var(--ds-fs-caption);
  font-weight: 600;
  letter-spacing: .02em;
  color: white;
  background: var(--blue-dark);
  border-radius: 20px;
  padding: 2px 11px;
  white-space: nowrap; }

#productExtrasContainer .extraProductContainer {
  display: block; }

.exw-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 6px;
  border-bottom: 1px solid var(--blue-medium, #e9e9ec);
  transition: background .12s ease;
  flex: 1; }

.exw-row:hover {
  background: var(--blue-light, #f8f8f9); }

.productExtrasSelectionContainer .extraProductContainer:last-child > .exw-row {
  border-bottom: none; }

.extraProductContainer:has(> .exw-row .styled-checkbox-input:checked) > .exw-row {
  background: rgba(7, 120, 133, 0.07); }

.exw-thumb {
  width: 46px;
  height: 46px;
  flex-shrink: 0;
  border-radius: 8px;
  background-size: cover;
  background-position: center;
  background-color: var(--blue-light, #f8f8f9); }

.exw-thumb--ph {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--blue-dark, #9ca1a7);
  font-size: 1.7rem; }

.exw-info {
  flex: 1;
  min-width: 0; }

.exw-name {
  font-size: 1.45rem;
  color: var(--title-color, #1a1a1a);
  line-height: 1.25; }

.exw-price {
  font-size: var(--ds-fs-secondary);
  font-weight: 600;
  color: var(--blue-dark, #9ca1a7);
  margin-top: 2px; }

.exw-out .exw-name {
  color: var(--blue-dark, #9ca1a7); }

.exw-control {
  flex-shrink: 0;
  margin-left: auto;
  display: flex;
  align-items: center;
  z-index: 0; }

.exw-stepper {
  display: flex;
  align-items: center;
  gap: 8px; }

.exw-step.btn {
  border-radius: 50% !important;
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.7rem;
  line-height: 1;
  padding: 0 !important;
  border: none !important; }

.exw-step.btn-primary {
  background: var(--blue-selected) !important;
  color: #fff; }

.extraSelectedAmount {
  min-width: 16px;
  text-align: center;
  font-weight: 700;
  color: var(--blue-selected); }

.styled-radio .checkmark {
  border-radius: 50% !important; }

.exw-row--clickable {
  cursor: pointer; }

.exw-dim {
  opacity: .4; }

.exw-row.exw-block {
  pointer-events: none; }

.exw-step.exw-dim {
  pointer-events: none; }

#productExtrasContainer > .productExtrasContainer {
  position: relative;
  overflow: hidden;
  transition: min-height .25s ease;
  isolation: isolate; }

#productExtrasContainer > .productExtrasContainer .productExtrasSelectionContainer,
#productExtrasContainer > .productExtrasContainer .productExtrasSelectionContainer .col-xs-12 {
  position: static; }

.extraChildrenContainer {
  display: none; }

.extraChildrenContainer.exw-slide-open {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  margin: 0;
  padding: 14px 16px;
  border: none;
  background: #fff;
  z-index: 50;
  animation: exwSlideIn .25s ease both; }

.extraChildrenContainer.exw-slide-open.exw-slide-closing {
  animation: exwSlideOut .25s ease both; }

@keyframes exwSlideIn {
  from {
    transform: translateX(100%); }
  to {
    transform: translateX(0); } }
@keyframes exwSlideOut {
  from {
    transform: translateX(0); }
  to {
    transform: translateX(100%); } }
.exw-sheet-head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 4px 2px 10px;
  border-bottom: 1px solid var(--blue-medium, #e9e9ec);
  margin-bottom: 8px; }

.exw-sheet-back {
  cursor: pointer;
  color: var(--blue-selected);
  font-weight: 700;
  font-size: 1.35rem;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  white-space: nowrap; }

.exw-sheet-title {
  font-size: 1.55rem;
  font-weight: 700;
  color: var(--title-color, #1a1a1a); }

.exw-sheet-error {
  color: var(--red-danger, #eb4d11);
  font-weight: 600;
  padding: 4px 2px 0; }

.exw-sheet-groups > .productExtrasContainer {
  margin-bottom: 6px; }

.exw-summary {
  font-size: var(--ds-fs-secondary);
  color: var(--blue-selected);
  margin-top: 3px; }

.exw-chevron {
  color: var(--blue-dark, #9ca1a7);
  margin-left: 6px;
  font-size: 1.4rem;
  flex-shrink: 0; }

.exw-sheet-foot {
  padding-top: 12px; }

.exw-sheet-done {
  width: 100%;
  padding: 10px;
  font-weight: 700; }

.shop-card-stepper {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 2px;
  background: var(--blue-selected);
  border-radius: var(--border-radius-medium);
  padding: 3px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.22); }

.shop-card-step {
  width: 28px;
  height: 28px;
  border: 0;
  padding: 0;
  background: transparent;
  color: #fff;
  border-radius: var(--border-radius-medium, 6px);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 13px; }

.shop-card-step:hover {
  background: rgba(255, 255, 255, 0.2); }

.shop-card-step-qty {
  color: #fff;
  font-weight: 700;
  min-width: 16px;
  text-align: center;
  font-size: 14px; }

.shop-card-cta-add .lds-ring {
  width: 18px;
  height: 18px;
  padding: 0; }

.shop-card-cta-add .lds-ring div {
  width: 13px;
  height: 13px;
  margin: 2px;
  border-width: 2px; }

@keyframes shopStepperPop {
  0% {
    transform: scale(0.2);
    opacity: 0; }
  60% {
    transform: scale(1.12);
    opacity: 1; }
  100% {
    transform: scale(1);
    opacity: 1; } }
.shop-card-stepper {
  transform-origin: top right; }

.shop-card-stepper.morph-in {
  animation: shopStepperPop 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) both; }

.shop-card-cta-add.has-qty {
  opacity: 1; }

.shop-card-cta-badge {
  position: absolute;
  top: -5px;
  right: -5px;
  background: var(--blue-selected);
  color: #fff;
  border-radius: 999px;
  min-width: 17px;
  height: 17px;
  font-size: var(--ds-fs-caption);
  font-weight: 700;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 4px; }

/* ── Lot F5 (chantier formules, 06/10/2026) : « Existe en menu » sur la fiche d'un article qu'un menu propose ── */
.shop-menu-suggestion {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  margin: 0 0 16px;
  padding: 12px 16px;
  border-radius: 10px;
  background: var(--blue-light); }
  .shop-menu-suggestion > i {
    font-size: 2.2rem;
    color: var(--blue-dim); }
  .shop-menu-suggestion .shop-menu-suggestion__text {
    flex: 1 1 200px;
    display: flex;
    flex-direction: column;
    font-size: 1.5rem; }
  .shop-menu-suggestion .shop-menu-suggestion__btn {
    white-space: nowrap; }

/* ── Lot F6 (chantier formules, 06/10/2026) : « Économisez X € » sur la fiche d'un menu ── */
.shop-formula-savings {
  margin-top: 6px;
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--green, #1e7b3c); }

#inventory_content {
  min-height: calc(100vh - 55px); }

.inventory_container {
  padding-top: 30px !important; }

.transfer_wrap .transfer_wrap_container {
  display: flex;
  align-items: center;
  width: 100%;
  padding: 10px 0px;
  text-align: left; }
  .transfer_wrap .transfer_wrap_container .cb_container {
    display: table-cell;
    padding-left: 0px; }
.transfer_wrap .img_preview {
  display: table-cell;
  vertical-align: middle;
  padding: 0;
  width: 50px; }
.transfer_wrap .qty_preview {
  display: table-cell;
  vertical-align: middle;
  padding-left: 15px;
  width: 90px; }
.transfer_wrap .amount_preview {
  display: table-cell;
  vertical-align: middle;
  padding-left: 15px;
  width: 160px; }
.transfer_wrap .label_preview {
  display: table-cell;
  vertical-align: middle;
  padding-left: 10px; }
  .transfer_wrap .label_preview span {
    color: var(--blue-dark);
    font-size: var(--ds-fs-secondary); }
.transfer_wrap .delete_view {
  display: table-cell;
  vertical-align: middle;
  width: 30px;
  padding-right: 4px; }
.transfer_wrap .form-control {
  min-height: 38px; }

.panelTransferItem {
  width: 100%; }

.panelTransferItem .blue-light-border-bottom:last-child {
  border-bottom: none !important; }
  .panelTransferItem .blue-light-border-bottom:last-child .transfer_wrap_container {
    border-radius: 0px 0px 7px 7px !important; }

.wait_transfer_wrap .transfer_wrap_container {
  display: table;
  width: 100%;
  padding: 12px 0px;
  cursor: pointer; }
  .wait_transfer_wrap .transfer_wrap_container .cb_container {
    display: table-cell;
    padding-left: 0px; }
  .wait_transfer_wrap .transfer_wrap_container.nohover {
    cursor: default; }
    .wait_transfer_wrap .transfer_wrap_container.nohover:hover {
      background-color: white; }
  .wait_transfer_wrap .transfer_wrap_container:hover {
    background-color: var(--surface-sunk); }
.wait_transfer_wrap .transfer_wrap_inventoryInfo_container {
  display: table;
  width: 100%; }
.wait_transfer_wrap .qty_preview {
  display: table-cell;
  vertical-align: middle;
  padding-right: 10px;
  width: 60px;
  text-align: right; }
.wait_transfer_wrap .label_preview {
  display: table-cell;
  vertical-align: middle;
  padding-left: 5px; }
.wait_transfer_wrap .delivery_preview {
  display: table-cell;
  vertical-align: middle;
  width: 120px;
  padding-right: 4px; }

.checkbox_unitaire_price {
  float: right;
  display: none; }

.label_unitaire_price {
  display: table-cell;
  padding-right: 8px;
  vertical-align: middle;
  line-height: 1.5; }

.panelTransferItem a .wait_transfer_wrap {
  padding: 0px 0px;
  border-bottom: 1px solid var(--blue-medium); }
.panelTransferItem a:last-of-type .wait_transfer_wrap {
  border-bottom: 0px solid; }

.inventoryDraftLine {
  border-top: 1px solid var(--blue-medium);
  padding: 10px 0; }
  .inventoryDraftLine .transfer_wrap_container {
    display: flex;
    align-items: center;
    width: 100%; }

.inventory-draft-picker {
  position: relative;
  flex: 3;
  padding-left: 10px; }

.inventory-draft-cell {
  flex: 1;
  padding: 0 10px;
  color: var(--blue-dark); }
  .inventory-draft-cell.text-right {
    text-align: right; }

.inventory-draft-delete {
  width: 30px;
  text-align: right; }

/* ── Tableau d'articles des vues mouvement ─────────────────────────────
   OrderReception / Delivery / Transfer / Production (Lot 0c : factorisé
   depuis les 4 blocs <style> identiques copiés dans ces vues).
   Habillage CoreTable-like : wrapper bordé blanc + header bleu pâle
   uppercase + hover sur lignes + état vide (calqué sur .ct-empty). */
.movement-table-wrap {
  background: var(--ct-surface);
  border: 0.5px solid var(--ct-border);
  border-radius: var(--ct-r-lg);
  overflow: hidden;
  /* État vide — calqué sur .ct-empty de CoreTable */
  /* Masquage auto dès qu'au moins une ligne (non supprimée) est présente */
  /* ── Grille de colonnes commune header ↔ lignes (Lot 2) ─────────────────
     Les 4 vues mouvement (OrderReception / Delivery / Transfer / Production)
     ET la ligne _Item.cshtml utilisent les MÊMES classes .mvt-col-* : toute
     modification de largeur reste alignée partout (fin des styles inline
     copiés-collés et du padding-left magique). Déclarée ICI (donc après le
     .transfer_wrap legacy) pour surcharger ses display:table-cell / widths. */
  /* LOT V (V10) — les inputs « nus » de ces colonnes (prix OUT readonly,
     EditorFor sans widget) s'alignent à droite comme les .qty/.price-unit-display
     des widgets : valeur ET en-tête sur le même bord. */
  /* Vignette article (ex-styles inline de _Item) */
  /* Pastille « Recommandé » (prévision de commande) dans la colonne info IN */ }
  .movement-table-wrap #headerAddArticles {
    padding: 9px 12px;
    background: var(--blue-medium);
    border-bottom: 0.5px solid var(--ct-border);
    font-size: var(--ds-fs-caption);
    font-weight: 500;
    /* Décision contrôleur UX Lot 0 (question ②) : PAS var(--text-color) — c'est
       la couleur du THÈME BOUTIQUE du marchand (défaut desk : #e9e9ec = le fond
       même de ce header → texte invisible). Texte du desk = token du desk. */
    color: var(--blue-dim);
    text-transform: uppercase;
    letter-spacing: .07em;
    user-select: none; }
  .movement-table-wrap #panelAddArticles {
    padding: 0;
    margin: 0; }
  .movement-table-wrap .inventoryItemLine {
    border-bottom: 0.5px solid var(--ct-border);
    transition: background .1s;
    padding: 4px 12px; }
    .movement-table-wrap .inventoryItemLine:last-child {
      border-bottom: none; }
    .movement-table-wrap .inventoryItemLine:hover {
      background: var(--ct-row-hover); }
  .movement-table-wrap .movement-empty {
    padding: 32px;
    text-align: center;
    color: var(--ct-text-3);
    font-style: italic;
    font-size: 13px;
    background: var(--ct-surface);
    /* CONTRÔLE VAGUE 2 (V2) : quand la vue y place le composant .ds-empty
       (Delivery), le padding du composant est neutralisé — sinon les deux
       paddings s'additionnaient (32px + 26px d'air vertical). Les 3 autres
       vues mouvement (texte nu) gardent le rendu historique. */ }
    .movement-table-wrap .movement-empty .ds-empty {
      padding: 0; }
  .movement-table-wrap:has(.inventoryItemLine:not([style*="display:none"])) .movement-empty {
    display: none; }
  .movement-table-wrap .mvt-cols {
    display: flex;
    align-items: center;
    width: 100%;
    text-align: left; }
  .movement-table-wrap .mvt-col-select {
    /* col 1 : checkbox « Imprimer étiquette » */
    width: 34px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center; }
  .movement-table-wrap .mvt-col-img {
    /* col 2 : vignette article */
    width: 30px;
    height: 30px;
    flex-shrink: 0;
    position: relative;
    padding: 0; }
  .movement-table-wrap .mvt-col-label {
    /* col 3 : désignation (+ pastille stock) */
    flex: 3;
    min-width: 0;
    padding-left: 10px; }
  .movement-table-wrap .mvt-col-qty {
    /* colonnes quantité / reliquat / reco */
    flex: 1;
    min-width: 0;
    width: auto;
    padding: 0 10px;
    position: relative;
    /* LOT V (V10) : en-têtes ET cellules alignés à DROITE, comme les valeurs
       (inputs .qty-unit-display et hints .qty-base-hint déjà à droite). */
    text-align: right; }
  .movement-table-wrap .mvt-col-price {
    /* coût unitaire */
    flex: 1;
    min-width: 0;
    width: auto;
    padding: 0 10px;
    /* LOT V (V10) : idem quantité — cohérent avec .price-unit-display et
       .mvt-cond-hint (déjà text-align:right). */
    text-align: right; }
  .movement-table-wrap .mvt-col-qty input.form-control,
  .movement-table-wrap .mvt-col-price input.form-control {
    text-align: right; }
  .movement-table-wrap .mvt-col-amount {
    /* montant HT (aligné à droite) */
    flex: 1;
    min-width: 0;
    width: auto;
    padding: 0;
    text-align: right; }
  .movement-table-wrap .mvt-col-delete {
    /* col finale : suppression de ligne */
    width: 30px;
    flex-shrink: 0;
    padding: 0;
    text-align: right; }
  .movement-table-wrap .mvt-img-thumb {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center; }
  .movement-table-wrap .mvt-forecast-pill {
    background-color: var(--blue-light);
    padding: 3px 5px;
    border-radius: var(--border-radius-little);
    cursor: pointer;
    white-space: nowrap; }

/* Vrai <button> de suppression de ligne (a11y : focusable + activable clavier).
   HORS du scope .movement-table-wrap (contrôle UX C2-D) : la classe sert aussi la
   liste « Conditions d'achat » de la fiche fournisseur (CreateFullPage.cshtml) —
   scopée au wrapper, elle laissait là-bas un bouton natif non stylé. */
.mvt-line-delete {
  background: none;
  border: none;
  padding: 4px 6px;
  cursor: pointer;
  color: var(--red-danger);
  font-size: inherit;
  line-height: 1; }
  .mvt-line-delete:focus-visible {
    outline: 2px solid var(--blue-selected);
    outline-offset: 1px;
    border-radius: var(--border-radius-little); }

/* ── Widget quantité unifié (input + unité à droite) — ex-constantes C# de _Item ──
   Même rendu bordé qu'il y ait un colis (dropdown sac/base) ou non (unité en
   libellé statique). La quantité RÉELLE vit dans un hidden ; .qty-unit-display
   est le champ de saisie visible (cf. QtyUnitSync dans inventory.js).
   LOT C2-G : mêmes règles pour le widget PRIX « € / colis ⇄ € / unité »
   (.price-unit-display / .price-unit-select — classes distinctes pour que les
   handlers JS quantité et prix ne se marchent pas dessus, cf. PriceUnitSync). */
.qty-unit-widget {
  display: flex;
  align-items: center;
  width: 100%;
  border: 1px solid var(--blue-medium);
  border-radius: var(--border-radius-little);
  overflow: hidden;
  padding: 0;
  /* Recette UI 28/09 (X-9) : le sélecteur d'unité prenait la MOITIÉ du widget (flex:1) → dans une
     colonne étroite la valeur saisie devenait invisible. Il prend sa largeur naturelle, bornée ; le
     champ garde le reste et au moins ~4 chiffres. */ }
  .qty-unit-widget .qty-unit-display,
  .qty-unit-widget .price-unit-display {
    flex: 1;
    min-width: 0;
    border: none;
    box-shadow: none;
    text-align: right; }
  .qty-unit-widget .qty-unit-display,
  .qty-unit-widget .price-unit-display {
    min-width: 3.6em; }
  .qty-unit-widget .qty-unit-select,
  .qty-unit-widget .price-unit-select {
    border: none;
    border-left: 1px solid var(--blue-medium);
    background: transparent;
    border-radius: 0;
    width: auto;
    padding: 0 4px;
    cursor: pointer;
    height: 100%;
    flex: 0 1 auto;
    min-width: 0;
    max-width: 60%; }
  .qty-unit-widget .qty-unit-static {
    border-left: 1px solid var(--blue-medium);
    background: transparent;
    padding: 0 8px;
    color: var(--blue-dim);
    white-space: nowrap;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    /* X-9 : largeur de l'unité, le reste au champ */
    align-self: stretch; }

/* Aperçu « = X <unité de base> » sous le champ quantité (saisie en colis) */
.qty-base-hint {
  font-size: var(--ds-fs-secondary);
  color: var(--blue-dim);
  text-align: right;
  margin-top: 3px;
  line-height: 1;
  position: absolute;
  right: 10px; }

/* ── LOT C2-D — conditions d'achat fournisseur (saisie du BC) ─────────────────
   .mvt-cond-hint : indication discrète sous le prix unitaire (« Prix palier
   appliqué (≥ Q) » / « +N pour atteindre le palier (P €) »), posée par
   inventory.js dans la cellule .mvt-col-price.
   .mvt-free-badge : badge « Offert » à côté du nom d'un article offert par une
   condition « N achetés → M offerts » (réutilise .ct-badge.ct-badge-success). */
.mvt-cond-hint {
  font-size: var(--ds-fs-caption);
  color: var(--blue-selected);
  text-align: right;
  margin-top: 3px;
  line-height: 1.1;
  width: 100%; }

.mvt-free-badge {
  margin-left: 8px;
  vertical-align: middle;
  flex-shrink: 0; }

/* ── LOT C2-E — retour client : décision « Remis en stock / Perte » par ligne ──
   Sélecteur compact injecté par OrderReception (mode retour) sous le nom de
   l'article (cellule .mvt-col-label), posté en Items[n].Item.ReturnDisposition.
   Compact : la ligne d'article reste à hauteur constante. */
.mvt-return-choice {
  display: block;
  margin-top: 4px;
  max-width: 190px; }
  .mvt-return-choice select.form-control {
    height: 28px;
    padding: 2px 8px;
    font-size: var(--ds-fs-secondary);
    color: var(--blue-dim); }

/* Recette UI 28/09 (X-30, et « Livrer à » du BL) — encart EN LECTURE (client du retour, destinataire du
   BL) posé dans un .dynDropDown : l'étiquette flottante était centrée verticalement puis remontée
   (translate) → sur un encart de 1-2 lignes elle recouvrait le nom. Étiquette ÉPINGLÉE en haut, le
   texte commence sous elle (padding haut du .dynDropDown .form-control, non surchargé en ligne). */
.dynDropDown > .mvt-readonly-field {
  padding-top: 22px;
  padding-bottom: 6px;
  white-space: normal; }
  .dynDropDown > .mvt-readonly-field + label {
    top: 4px;
    transform: none;
    font-size: var(--ds-fs-secondary);
    line-height: 1.6rem; }

/* ── Recette UI 28/09 (X-9) — tableau d'articles des vues mouvement à ~800 px ─────────────────────
   • En-têtes de colonne coupés proprement (« RECOMMANDÉ » chevauchait « QUANTITÉ »).
   • Sous 900 px : LIGNES EN CARTES — 1re rangée case / vignette / désignation / croix, puis les
     cellules chiffrées côte à côte (≥ 140 px chacune, retour à la ligne) avec leur titre au-dessus
     (data-label recopié de l'en-tête par MvtLabelCells, inventory.js). L'aperçu « = 18 u · … » sort
     de sa position absolue pour ne plus recouvrir la cellule voisine.
   • Picker d'article : le lien « Parcourir le catalogue » était posé EN ABSOLU sur le champ (par-dessus
     l'étiquette) → remis dans le flux, à côté du champ, sous lui quand la place manque. Boutons
     Suggérer / Importer : retour à la ligne, et plus de retrait fixe à gauche sous 900 px. */
.movement-table-wrap #headerAddArticles > div {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap; }

#inventory-article-picker {
  flex-wrap: wrap;
  gap: 4px 12px; }
  #inventory-article-picker > a.link {
    position: static !important;
    /* style en ligne posé par ArticlePicker (main.js) */
    padding: 5px 0 !important; }
  #inventory-article-picker .dynInput {
    min-width: 220px; }
    #inventory-article-picker .dynInput label {
      max-width: calc(100% - 20px);
      overflow: hidden;
      text-overflow: ellipsis; }

.mvt-add-actions {
  flex-wrap: wrap;
  column-gap: 10px; }

@media (max-width: 900px) {
  #inventory-article-picker,
  .mvt-add-actions {
    margin-left: 0 !important;
    /* retraits 45 / 89 px en ligne, alignés sur la grille desktop */ }

  .movement-table-wrap #headerAddArticles {
    display: none !important; }
  .movement-table-wrap .inventoryItemLine {
    padding: 8px 12px; }
  .movement-table-wrap .mvt-cols {
    flex-wrap: wrap;
    align-items: flex-start;
    row-gap: 8px; }
  .movement-table-wrap .mvt-col-select {
    order: 1; }
  .movement-table-wrap .mvt-col-img {
    order: 2; }
  .movement-table-wrap .mvt-col-label {
    order: 3;
    flex: 1 1 0;
    min-width: calc(100% - 94px);
    /* case 34 + vignette 30 + croix 30 */
    font-weight: 500; }
  .movement-table-wrap .mvt-col-delete {
    order: 4; }
  .movement-table-wrap .mvt-col-qty,
  .movement-table-wrap .mvt-col-price,
  .movement-table-wrap .mvt-col-amount {
    order: 5;
    flex: 1 1 140px;
    min-width: 120px;
    padding: 0 4px; }
  .movement-table-wrap .mvt-col-qty:empty {
    display: none; }
  .movement-table-wrap .mvt-col-qty[data-label]::before,
  .movement-table-wrap .mvt-col-price[data-label]::before,
  .movement-table-wrap .mvt-col-amount[data-label]::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 2px;
    font-size: var(--ds-fs-caption);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: var(--ct-text-2);
    text-align: left;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis; }
  .movement-table-wrap .qty-base-hint {
    position: static;
    margin-top: 4px;
    line-height: 1.3;
    white-space: normal; } }
/* ── Tiroir de traçabilité (lot / série / DLC / emplacement) — Lot 2 ─────────
   Bloc compact SOUS la ligne d'article (réception d'un article suivi, sortie
   avec sélection de lots/séries). Indentation = col select (34) + col img (30)
   + padding label (10) pour s'aligner sous la désignation. Composant documenté
   dans DESIGN_SYSTEM.md (« Tiroir de traçabilité »). */
/* Icône de la ligne de scan (.trace-row) : largeur fixe PARTOUT (tiroir de mouvement, fenêtres de saisie des n°, tiroir de
   préparation), pour que l'erreur et les puces s'alignent sous le champ. */
.trace-row .trace-icon {
  color: var(--blue-dim);
  width: 16px;
  text-align: center;
  flex-shrink: 0; }

.trace-drawer {
  padding: 2px 12px 8px 74px;
  font-size: var(--ds-fs-secondary);
  color: var(--blue-dim);
  /* champs compacts homogènes DANS le tiroir (une seule règle, plus de
     height:30px inline recopiées champ par champ) */ }
  .trace-drawer .form-control {
    min-height: 30px;
    height: 30px;
    padding: 2px 8px;
    font-size: var(--ds-fs-secondary); }
  .trace-drawer .trace-icon {
    color: var(--blue-dim);
    width: 16px;
    text-align: center;
    flex-shrink: 0; }
  .trace-drawer .trace-title {
    white-space: nowrap; }

.trace-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 5px; }
  .trace-row:last-child {
    margin-bottom: 0; }

/* Puce d'emplacement (picker StockLocationPicker) — factorisée des styles inline
   répétés dans _Item / Delivery / Transfer (passe contrôleur UX Lot 2).
   1.35rem dans les en-têtes « Depuis l'emplacement », 1.25rem dans le tiroir compact. */
.loc-field .loc-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 1.35rem;
  cursor: pointer; }

.trace-drawer .loc-chip {
  font-size: var(--ds-fs-secondary); }

/* Puce FUSIONNÉE emplacement + stock (retouche Romain, Lot 2) : une seule ligne
   « <Emplacement> : <qté> ▾ » sous le nom de l'article en phase de réception —
   remplace la pastille stock ET la ligne dédiée de la puce d'emplacement.
   La couleur de la quantité (.loc-stock-qty) est pilotée par le JS
   (RefreshArticleStocks : rouge <= 0, orange <= 5, bleu sinon). */
.loc-stock-line {
  margin-top: 2px; }
  .loc-stock-line .loc-chip {
    font-size: var(--ds-fs-caption);
    color: var(--blue-dark);
    /* focusable (role="button" tabindex="0") → focus clavier visible */ }
    .loc-stock-line .loc-chip:focus-visible {
      outline: 2px solid var(--blue-dim);
      outline-offset: 2px;
      border-radius: var(--border-radius-little); }

.loc-stock-icon {
  font-size: 1.1rem;
  opacity: .7; }

.loc-stock-caret {
  font-size: .95rem;
  opacity: .6; }

.loc-stock-qty {
  font-weight: 600;
  white-space: nowrap; }

/* Hint muté d'un sélecteur de sortie : explique que la présélection / les quantités
   pré-remplies sont une PROPOSITION (ordre d'expiration) librement ajustable.
   Affiché par le JS dès que des lots/séries existent. 24px = icône 16 + gap 8
   (aligné sous le titre de la .trace-row). */
.trace-hint {
  color: var(--blue-dark);
  font-size: var(--ds-fs-secondary);
  margin: 0 0 5px 24px; }

/* Compteur « n / attendu » (vert quand égal, rouge sinon — piloté par JS) */
.trace-counter {
  margin-left: auto;
  white-space: nowrap;
  font-weight: 600; }
  .trace-counter[data-state="ok"] {
    color: var(--green-success); }
  .trace-counter[data-state="ko"] {
    color: var(--red-danger); }
  .trace-counter[data-state="idle"] {
    color: var(--blue-dim);
    font-weight: normal; }

/* Chips (n° de série saisis / séries en stock à la sortie) */
.trace-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding-top: 2px; }

.trace-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  border: 1px solid var(--blue-medium);
  border-radius: var(--border-radius-little);
  padding: 2px 4px 2px 8px;
  background: var(--ct-surface);
  line-height: 1.4; }
  .trace-chip.trace-chip-shake {
    animation: trace-shake .3s;
    border-color: var(--red-danger); }

/* Croix de suppression d'un chip — vrai <button> (clavier inclus).
   Cible de clic ≥ 24×24 (a11y / doigt sur tablette de réception) sans grossir
   visuellement l'icône (passe contrôleur UX Lot 2). */
.trace-chip-del {
  background: none;
  border: none;
  padding: 0;
  min-width: 24px;
  min-height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--blue-dark);
  line-height: 1;
  font-size: var(--ds-fs-caption); }
  .trace-chip-del:hover {
    color: var(--red-danger); }
  .trace-chip-del:focus-visible {
    outline: 2px solid var(--blue-selected);
    outline-offset: 1px;
    border-radius: var(--border-radius-little); }

@keyframes trace-shake {
  0%, 100% {
    transform: translateX(0); }
  25% {
    transform: translateX(-3px); }
  75% {
    transform: translateX(3px); } }
/* Champ scan/saisie des n° de série (IN) */
.trace-serial-input {
  flex: 1;
  min-width: 140px; }

/* Mini-table des lots (IN) : n° lot / DLC / qté / retirer */
.trace-lot-grid {
  border-left: 2px solid var(--blue-light);
  padding-left: 10px;
  margin-left: 4px; }

.trace-lot-head,
.trace-lot-row {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 4px;
  /* n° de lot */
  /* DLC */
  /* qté */ }
  .trace-lot-head > :nth-child(1),
  .trace-lot-row > :nth-child(1) {
    flex: 1;
    min-width: 0; }
  .trace-lot-head > :nth-child(2),
  .trace-lot-row > :nth-child(2) {
    width: 130px;
    flex-shrink: 0; }
  .trace-lot-head > :nth-child(3),
  .trace-lot-row > :nth-child(3) {
    width: 80px;
    flex-shrink: 0; }
  .trace-lot-head > :nth-child(4),
  .trace-lot-row > :nth-child(4) {
    width: 24px;
    flex-shrink: 0;
    text-align: center; }

.trace-lot-head {
  font-size: var(--ds-fs-caption);
  color: var(--blue-dark);
  text-transform: uppercase;
  letter-spacing: .05em;
  margin-bottom: 2px;
  user-select: none; }

.trace-lot-foot {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 2px; }
  .trace-lot-foot .link {
    white-space: nowrap;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    font-size: inherit; }

/* ── Sortie : sélection des séries / lots à prélever ── */
.out-serial-search {
  flex: 1;
  min-width: 140px;
  max-width: 260px; }

.out-serial-stock {
  white-space: nowrap;
  color: var(--blue-dark); }

/* Chip-checkbox d'une série en stock (sortie) — min-height 24px : cible de
   clic confortable (le chip ENTIER coche/décoche). */
/* Lot L5c : n° réservé par la préparation d'un autre bon — grisé, non cochable (même rendu qu'une option verrouillée). */
.out-serial-chip.is-reserved {
  opacity: .55;
  cursor: not-allowed; }

.out-serial-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  border: 1px solid var(--blue-medium);
  border-radius: var(--border-radius-little);
  padding: 2px 8px;
  min-height: 24px;
  cursor: pointer;
  margin: 0;
  font-weight: normal; }
  .out-serial-chip input {
    margin: 0; }
  .out-serial-chip.trace-chip-shake {
    animation: trace-shake .3s;
    border-color: var(--red-danger); }

.out-serial-more {
  color: var(--blue-dark);
  font-style: italic; }

/* Ligne d'un lot prélevable (sortie par lots) */
.out-lot-list {
  border-left: 2px solid var(--blue-light);
  padding-left: 10px;
  margin-left: 4px; }

.out-lot-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 4px; }
  .out-lot-row .out-lot-label {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap; }
  .out-lot-row .out-lot-remaining {
    white-space: nowrap;
    color: var(--blue-dark); }
  .out-lot-row .out-lot-take {
    width: 80px;
    flex-shrink: 0; }

.out-lot-warn {
  color: var(--red-danger);
  margin-top: 4px; }

.out-serial-empty,
.out-lot-empty {
  color: var(--blue-dim);
  font-style: italic; }

.mvt-endpoint {
  width: 100%; }

/* LOT V (V3d + V10b) — label du picker d'extrémité (.mvt-endpoint) : classe
   PROPRE remplaçant le style inline absolu de Delivery.cshtml. Le pattern
   .dynInput (label flottant :placeholder-shown) ne convient PAS structurellement
   ici : le « champ » est un div role=button sans input — label permanent
   au-dessus, documenté au DS. Borné + ellipsis (V10b) : un libellé long ne
   chevauche plus le champ. */
.mvt-endpoint-toplabel {
  display: block;
  position: absolute;
  left: 10px;
  top: 6px;
  max-width: calc(100% - 20px);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--blue-dim);
  font-size: var(--ds-fs-caption);
  margin-bottom: 4px; }

.form-control:focus {
  border-color: var(--blue-selected); }

/* ── Cartes de choix de création (modale « Que voulez-vous créer ? ») ──────
   Lot 1 : ex-<style> inline d'AllOrders.cshtml. Pattern générique pour une
   modale proposant 2-3 variantes de création (ex. BC vs livraison directe) :
   .choice-card-row > .choice-card (icon / title / desc). */
.choice-card-row {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  padding: 10px 0;
  max-width: 800px; }

.choice-card {
  flex: 1;
  min-width: 260px;
  padding: 20px;
  border: 2px solid var(--blue-medium);
  border-radius: var(--border-radius-medium);
  cursor: pointer;
  text-decoration: none;
  color: inherit;
  transition: border-color .15s, background-color .15s;
  /* rendu <button> (a11y : la carte est focusable et activable clavier) */
  background: none;
  text-align: left;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit; }
  .choice-card:hover, .choice-card:focus-visible {
    border-color: var(--blue-selected);
    background: var(--blue-selected-bg); }
  .choice-card:focus-visible {
    outline: 2px solid var(--blue-selected);
    outline-offset: 2px; }

.choice-card-icon {
  font-size: 2.2rem;
  color: var(--blue-selected);
  margin-bottom: 8px; }

.choice-card-title {
  font-weight: 600;
  color: var(--blue-dim);
  font-size: 1.5rem;
  margin-bottom: 4px; }

.choice-card-desc {
  color: var(--blue-dark);
  font-size: 1.3rem; }

/* ── Modale « Mes modèles » de mouvement de stock (_StockTemplateModal) ────
   Lot 1 : ex-<style> inline du partial (reliquat 0c). */
.stpl-list {
  max-height: 55vh;
  overflow: auto; }

.stpl-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border-bottom: 0.5px solid var(--ct-border); }
  .stpl-row:last-child {
    border-bottom: none; }
  .stpl-row:hover {
    background: var(--blue-light); }
  .stpl-row .delete {
    padding: 4px 8px; }

.stpl-name {
  flex: 1;
  cursor: pointer;
  color: var(--blue-dark);
  font-weight: 500; }

.stpl-empty {
  padding: 30px;
  text-align: center;
  color: var(--ct-text-3);
  font-style: italic;
  font-size: 13px; }

.stpl-foot {
  padding: 16px;
  text-align: right;
  border-top: 0.5px solid var(--ct-border); }

.bl-logistics-bar {
  margin: 0 0 8px; }

.bl-logistics-toggle {
  background: none;
  border: 0;
  padding: 4px 0;
  font-size: 1.3rem; }
  .bl-logistics-toggle .fa-chevron-right {
    font-size: .95rem;
    margin-right: 6px;
    transition: transform .15s ease; }
  .bl-logistics-toggle[aria-expanded="true"] .fa-chevron-right {
    transform: rotate(90deg); }
  .bl-logistics-toggle:focus-visible {
    outline: 2px solid var(--blue-selected);
    outline-offset: 2px; }

.movement-table-wrap.bl-logistics-collapsed .trace-drawer {
  display: none; }

.ds-drawer--prep {
  width: 760px;
  max-width: 100vw; }

.prep-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 18px;
  margin: 0 0 12px;
  font-size: var(--ds-fs-secondary);
  color: var(--blue-dark); }
  .prep-summary strong {
    color: var(--blue-dim); }

.prep-line {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr) 96px 118px;
  gap: 8px 10px;
  align-items: start;
  padding: 10px 0 10px 8px;
  border-bottom: 1px solid var(--blue-light);
  border-left: 3px solid transparent; }
  .prep-line.is-short {
    border-left-color: var(--yellow-warning); }
  .prep-line.is-closed {
    border-left-color: var(--red-danger); }
  .prep-line.is-done .prep-line-check {
    color: var(--green-success); }

.prep-line-check {
  padding-top: 6px;
  color: var(--blue-medium, #9aa6b2);
  font-size: 1.4rem; }

.prep-line-name {
  min-width: 0;
  font-weight: 600;
  color: var(--blue-dim);
  overflow-wrap: anywhere; }

.prep-line-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 2px 10px;
  margin-top: 2px;
  font-size: var(--ds-fs-secondary);
  font-weight: 400;
  color: var(--blue-dark); }
  .prep-line-meta .prep-loc {
    font-family: Consolas, "Courier New", monospace;
    font-weight: 700;
    color: var(--blue-dim); }

.prep-line-requested {
  padding-top: 6px;
  text-align: right;
  font-size: var(--ds-fs-secondary);
  color: var(--blue-dark); }
  .prep-line-requested strong {
    display: block;
    font-size: 1.4rem;
    color: var(--blue-dim); }

.prep-line-qty input {
  text-align: right; }
.prep-line-qty .prep-shortage-btn {
  margin-top: 4px;
  width: 100%;
  font-size: var(--ds-fs-secondary);
  padding: 3px 6px; }

.prep-shortage {
  grid-column: 2 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  align-items: center;
  padding: 8px 10px;
  background: var(--blue-light);
  border-radius: var(--border-radius-little);
  font-size: var(--ds-fs-caption); }
  .prep-shortage select {
    max-width: 200px; }
  .prep-shortage .styled-checkbox {
    margin: 0;
    font-weight: normal; }

.prep-route {
  margin: 0 0 8px;
  font-family: Consolas, "Courier New", monospace;
  font-size: var(--ds-fs-caption);
  font-weight: 700;
  color: var(--blue-dim);
  overflow-wrap: anywhere; }
  .prep-route i {
    margin-right: 4px;
    font-family: inherit; }

.prep-scan {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 10px;
  padding: 8px 10px;
  background: var(--blue-light);
  border-radius: var(--border-radius-little); }
  .prep-scan > i {
    font-size: 1.6rem;
    color: var(--blue-dim); }
  .prep-scan .prep-scan-input {
    flex: 0 1 280px; }
  .prep-scan .prep-scan-state, .prep-scan .w5-scan-state {
    flex: 1 1 auto;
    min-width: 0; }

/* Lot L5c (09/10) : scan des n° de série des appareils pris, sous la ligne (même grille que les prélèvements). */
.prep-serials {
  grid-column: 2 / -1;
  display: flex;
  flex-direction: column;
  gap: 4px;
  /* erreur et suggestion alignées sur le champ (icône 16 + écart 8) */ }
  .prep-serials .prep-serial-error, .prep-serials .prep-serial-props {
    margin-left: 24px; }

.prep-picks {
  grid-column: 2 / -1;
  display: flex;
  flex-direction: column;
  gap: 4px; }

.prep-picks-head {
  font-size: var(--ds-fs-secondary);
  color: var(--blue-dark); }

.prep-pick {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 12px;
  padding: 5px 8px;
  border: 1px solid var(--blue-light);
  border-left: 3px solid var(--blue-medium, #9aa6b2);
  border-radius: var(--border-radius-little);
  font-size: var(--ds-fs-secondary); }
  .prep-pick.is-confirmed {
    border-left-color: var(--green-success); }
  .prep-pick.is-deviation {
    border-left-color: var(--yellow-warning); }
  .prep-pick.is-missing {
    border-left-color: var(--red-danger); }
  .prep-pick.is-scanning {
    background: var(--blue-light);
    box-shadow: 0 0 0 2px var(--blue-dim) inset; }
  .prep-pick .prep-pick-loc {
    font-family: Consolas, "Courier New", monospace;
    font-weight: 700;
    color: var(--blue-dim); }
  .prep-pick .prep-pick-loc--none {
    font-family: inherit;
    font-weight: 600;
    color: var(--red-danger); }
  .prep-pick .prep-pick-qty {
    font-weight: 600; }
  .prep-pick .prep-pick-lot {
    color: var(--blue-dark); }
  .prep-pick .prep-pick-size {
    font-weight: 600;
    color: var(--blue-dim); }
  .prep-pick .prep-pick-actions {
    margin-left: auto;
    display: flex;
    gap: 6px; }
  .prep-pick .btn-xs {
    padding: 2px 8px;
    font-size: var(--ds-fs-caption); }

.prep-pick-else-form {
  flex-basis: 100%;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding-top: 4px; }
  .prep-pick-else-form .prep-pick-else-loc {
    flex: 1 1 200px; }
  .prep-pick-else-form .prep-pick-else-qty {
    flex: 0 0 100px;
    text-align: right; }

@media (max-width: 640px) {
  .prep-pick .prep-pick-actions {
    margin-left: 0; }

  .prep-scan {
    flex-wrap: wrap; }
    .prep-scan .prep-scan-input {
      flex-basis: 100%; } }
.putaway-code {
  font-family: Consolas, "Courier New", monospace;
  font-weight: 700;
  color: var(--blue-dim); }

.putaway-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 120px;
  gap: 10px 12px;
  align-items: end; }
  .putaway-form .putaway-field-wide {
    grid-column: 1 / -1; }
  .putaway-form label {
    display: block;
    margin-bottom: 4px;
    font-weight: 600;
    color: var(--blue-dim); }

.putaway-recent {
  margin-top: 18px;
  font-size: var(--ds-fs-secondary);
  color: var(--blue-dark); }
  .putaway-recent li {
    padding: 2px 0; }

.hu-head {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0 0 12px; }

.hu-code {
  font-family: Consolas, "Courier New", monospace;
  font-size: 1.9rem;
  font-weight: 700;
  letter-spacing: .02em;
  color: var(--blue-dark);
  overflow-wrap: anywhere; }

.hu-head-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px; }

.hu-section-title {
  margin: 14px 0 6px;
  font-size: var(--ds-fs-caption);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--blue-dim); }

.hu-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--ds-fs-secondary); }
  .hu-table th {
    text-align: left;
    font-weight: 600;
    color: var(--blue-dim);
    padding: 4px 6px;
    border-bottom: 1px solid var(--ct-border); }
  .hu-table td {
    padding: 5px 6px;
    border-bottom: 1px solid var(--ct-border);
    vertical-align: middle;
    text-align: left;
    color: var(--blue-dark);
    overflow-wrap: anywhere; }
  .hu-table .hu-num {
    text-align: right;
    white-space: nowrap; }
  .hu-table input.form-control {
    height: 30px;
    padding: 2px 6px; }
  .hu-table input.hu-qty {
    width: 90px;
    display: inline-block;
    text-align: right; }

.hu-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 10px 12px;
  align-items: end; }
  .hu-form .hu-field-wide {
    grid-column: 1 / -1; }
  .hu-form label {
    display: block;
    margin-bottom: 4px;
    font-weight: 600;
    color: var(--blue-dim); }

.hu-scan {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 8px 0;
  padding: 8px 10px;
  background: var(--blue-light);
  border-radius: var(--border-radius-little); }
  .hu-scan > i {
    font-size: 1.6rem;
    color: var(--blue-dim); }
  .hu-scan input {
    flex: 1 1 260px;
    min-width: 0; }
  .hu-scan .ds-hint {
    flex: 1 1 auto;
    min-width: 0; }

.hu-search-results {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0 0 6px; }

.hu-kids {
  list-style: none;
  margin: 0;
  padding: 0; }
  .hu-kids li {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    padding: 4px 0;
    border-bottom: 1px solid var(--ct-border);
    color: var(--blue-dark); }
  .hu-kids .btn-link {
    padding: 0;
    font-family: Consolas, "Courier New", monospace;
    font-weight: 700; }
  .hu-kids .btn-xs {
    padding: 2px 8px;
    font-size: var(--ds-fs-caption);
    margin-left: auto; }

.hu-history {
  list-style: none;
  margin: 0;
  padding: 0 0 0 12px;
  border-left: 2px solid var(--blue-light);
  font-size: var(--ds-fs-secondary);
  color: var(--blue-dark); }
  .hu-history li {
    position: relative;
    padding: 3px 0 3px 8px; }
  .hu-history li::before {
    content: "";
    position: absolute;
    left: -17px;
    top: 9px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--blue-medium); }
  .hu-history .hu-when {
    color: var(--blue-dim);
    font-variant-numeric: tabular-nums;
    margin-right: 4px; }

.hu-parcels {
  text-align: left;
  margin-top: 16px;
  padding: 10px 12px;
  border: 1px solid var(--ct-border);
  border-radius: var(--border-radius-little);
  background: var(--ct-surface); }

.hu-parcels-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
  color: var(--blue-dark); }

.hu-parcels-actions {
  margin-left: auto;
  display: flex;
  flex-wrap: wrap;
  gap: 6px; }
  .hu-parcels-actions .btn-xs {
    padding: 2px 8px;
    font-size: var(--ds-fs-caption); }

.hu-parcel {
  padding: 6px 8px;
  margin-bottom: 6px;
  border: 1px solid var(--ct-border);
  border-radius: var(--border-radius-little); }
  .hu-parcel.is-active {
    border-color: var(--blue-selected);
    background: var(--blue-selected-bg); }
  .hu-parcel .hu-parcel-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px; }
  .hu-parcel .btn-link {
    padding: 0; }
  .hu-parcel .hu-parcel-lines {
    margin: 4px 0 0;
    padding-left: 18px;
    font-size: var(--ds-fs-secondary);
    text-align: left;
    color: var(--blue-dark); }
  .hu-parcel .hu-parcel-lines .btn-xs {
    padding: 0 6px;
    font-size: var(--ds-fs-caption); }

.hu-dock {
  margin: 0 0 16px;
  padding: 10px 12px;
  border: 1px solid var(--ct-border);
  border-radius: var(--border-radius-little);
  background: var(--ct-surface); }
  .hu-dock .hu-section-title {
    margin-top: 0; }

.hu-dock-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  padding: 6px 0;
  border-bottom: 1px solid var(--ct-border); }
  .hu-dock-row:last-child {
    border-bottom: 0; }
  .hu-dock-row .hu-dock-summary {
    color: var(--blue-dark); }
  .hu-dock-row .btn-xs {
    padding: 2px 8px;
    font-size: var(--ds-fs-caption); }

.ipublication_edit_container select.select_institution {
  text-align: center;
  border: none;
  padding: 7px 10px 6px 10px;
  width: 100%;
  border-radius: 0px 7px 0px 0px; }
  .ipublication_edit_container select.select_institution:focus:not(:focus-visible) {
    outline: 0; }

.ipublication_visibility_container {
  border-bottom: 1px solid var(--line); }

.ipublication_textarea {
  padding: 10px 0px;
  resize: none;
  max-height: 400px;
  border: none;
  outline: 0;
  width: calc(100% - 40px);
  border-radius: 7px;
  font-size: 1.5rem;
  color: var(--text); }

.ipublication_visibility_container .disabled_selection {
  background-color: var(--surface-muted);
  color: var(--text-3);
  cursor: not-allowed; }

.liked i {
  color: #ef5858; }

.publications_view_container {
  position: relative;
  z-index: 0;
  margin-top: 0px;
  padding: 0px;
  border-radius: 15px 15px 0px 0px;
  overflow: hidden;
  text-align: center; }
  @media (max-width: 767px) {
    .publications_view_container {
      border-radius: 0px; } }

.public_img_profile {
  width: 50px;
  height: 50px;
  box-shadow: 0px 8px 8px -4px rgba(12, 65, 154, 0.1);
  border-radius: 10px;
  background-color: white;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  float: left;
  margin-right: 10px;
  cursor: pointer; }
  @media (max-width: 767px) {
    .public_img_profile {
      width: 44px;
      height: 44px; } }

.public_name_profile {
  float: left;
  line-height: 1.2;
  padding-top: 5px; }
  @media (max-width: 767px) {
    .public_name_profile {
      padding-top: 3px; } }
  .public_name_profile a {
    color: var(--text);
    font-weight: 600; }

.from-price {
  display: inline-block;
  width: auto;
  float: right;
  color: var(--text-2); }
  @media (max-width: 395px) {
    .from-price {
      padding-top: 10px;
      float: left; } }

.public_name_profile a:hover {
  cursor: pointer;
  text-decoration: underline; }

.public_name_profile span {
  font-size: var(--ds-fs-secondary);
  color: var(--text-2);
  padding-left: 6px;
  text-decoration: none; }

.ipublication_edit_container {
  padding: 0px;
  box-shadow: none;
  margin-top: 0px;
  margin-bottom: 12px;
  border-radius: 7px !important; }

#create_publication_container {
  height: auto;
  transition: max-height 2s ease;
  overflow: hidden;
  max-height: 0px;
  position: relative;
  overflow: hidden; }

#home_timeline li:not(:last-child) {
  margin-bottom: 20px; }

.ipublication_media_display_container {
  border-radius: 7px;
  overflow: hidden; }

.img-post {
  width: auto;
  max-width: 100%;
  height: auto;
  margin: 0px 0px;
  cursor: pointer;
  vertical-align: middle;
  display: inline-block !important;
  align-self: center;
  object-fit: cover; }

.img-preview-container {
  overflow: hidden;
  position: relative;
  vertical-align: middle;
  margin: auto;
  display: flex !important;
  align-items: center;
  justify-content: center; }
  @media (max-width: 767px) {
    .img-preview-container {
      max-height: 420px; } }

.modal-body .img-preview-container {
  border-radius: 7px; }

.preview-link-container {
  height: auto;
  margin: 10px;
  margin-bottom: 0px;
  padding-top: 10px;
  display: inline-block;
  width: calc(100% - 40px);
  border-top: 1px solid var(--blue-medium); }
  .preview-link-container:empty {
    display: none; }

.preview-link-image {
  height: 215px;
  width: 100%;
  border-radius: 7px;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  margin-right: 0px;
  float: left; }

.preview-link-text {
  padding: 0px 20px 15px;
  width: 100%;
  float: left;
  text-align: left;
  line-height: 1.4;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  padding-top: 10px;
  border-top: 1px solid var(--blue-medium); }

.pm-container {
  position: relative;
  display: inline-block;
  width: 100%; }

.publication_product_text {
  padding: 5px 15px;
  display: inline-flex;
  cursor: pointer;
  background-color: var(--overlay);
  border-radius: 10px;
  color: var(--text-inverse);
  position: absolute;
  bottom: 20px;
  left: 20px;
  align-items: center; }
  .publication_product_text .pm-c-2 {
    display: flex;
    flex-direction: column;
    line-height: 1.8rem; }
  .publication_product_text .link-title {
    color: var(--text-inverse);
    font-weight: normal;
    font-size: 1.3rem; }
  .publication_product_text .link-domain {
    color: var(--blue-light);
    font-weight: 600;
    font-size: 1.5rem; }

.video-preview {
  height: 280px;
  width: 100%;
  background-color: black; }

.publication_body .video-preview {
  height: 290px;
  margin-top: -28px;
  border-radius: 7px 7px 0px 0px; }
  @media (max-width: 767px) {
    .publication_body .video-preview {
      margin-top: -24px; } }

.link_view_container {
  margin: 0px;
  margin-top: -20px;
  border-bottom: 1px solid var(--blue-light);
  border-radius: 7px 7px 0px 0px;
  width: 100%;
  cursor: pointer; }

.link-title {
  font-weight: bold;
  color: var(--text); }

.link-domain {
  color: var(--blue-dark);
  font-size: 1.4rem; }

.img-link-container {
  height: 290px;
  overflow: hidden;
  display: flex !important;
  align-items: center;
  justify-content: center; }

.slick-dots {
  display: none !important; }

#home_timeline {
  list-style: none;
  list-style-type: none;
  margin: 0 auto;
  padding: 20px;
  padding-bottom: 10px; }

.adminview #timeline .infos_content {
  border: 1px solid var(--blue-light); }

#timeline, #home_timeline {
  margin: 0px 0px 0px;
  padding: 0px 0px;
  width: 100%;
  max-width: 1200px;
  text-align: center; }
  #timeline .btn-default, #home_timeline .btn-default {
    margin-bottom: 15px; }
  #timeline .wall .publicationView:nth-child(2), #home_timeline .wall .publicationView:nth-child(2) {
    margin-top: 30px; }
  @media (min-width: 768px) {
    #timeline .wall .publicationView:nth-child(3), #home_timeline .wall .publicationView:nth-child(3) {
      margin-top: 30px; } }
  #timeline .infos_content, #home_timeline .infos_content {
    margin-bottom: 30px;
    box-shadow: none !important;
    border: 1px solid var(--blue-light); }
    @media (max-width: 767px) {
      #timeline .infos_content, #home_timeline .infos_content {
        border: 0px solid;
        border-radius: 0px; } }
  #timeline .publications_view_container, #home_timeline .publications_view_container {
    margin-top: 0px; }
  #timeline .publication_body, #home_timeline .publication_body {
    margin-top: -28px; }
    @media (max-width: 767px) {
      #timeline .publication_body, #home_timeline .publication_body {
        margin-top: -24px;
        padding-bottom: 10px;
        border-bottom: 1px solid var(--blue-light);
        margin-bottom: 30px; } }
  #timeline .description_container, #home_timeline .description_container {
    padding: 10px 15px 3px; }
  #timeline.publications_show_header .infos_content, #home_timeline.publications_show_header .infos_content {
    margin-bottom: 20px; }
  #timeline.publications_show_header .publication_header, #home_timeline.publications_show_header .publication_header {
    display: inline-block;
    width: 100%; }
  #timeline.publications_show_header .publications_view_container, #home_timeline.publications_show_header .publications_view_container {
    margin-top: 0px; }
  #timeline.publications_show_header .publication_body, #home_timeline.publications_show_header .publication_body {
    margin-top: -28px; }
    @media (max-width: 767px) {
      #timeline.publications_show_header .publication_body, #home_timeline.publications_show_header .publication_body {
        margin-top: -24px; } }
  #timeline.publications_show_header .description_container, #home_timeline.publications_show_header .description_container {
    padding-top: 10px !important;
    padding-bottom: 5px !important; }

.publish-action-buttons {
  padding: 10px 15px;
  padding-bottom: 15px;
  margin-bottom: 15px;
  margin-bottom: 0px;
  display: inline-block;
  width: 100%; }

#publicationsContainer, #specialOffersContainer {
  list-style: none;
  list-style-type: none;
  margin: 0px; }

#publicationsContainer, #specialOffersContainer:after {
  content: '';
  display: block;
  clear: both; }

#publicationsContainer li, #specialOffersContainer li {
  float: left;
  width: 50%;
  padding: 10px 20px; }
  @media (max-width: 991px) {
    #publicationsContainer li, #specialOffersContainer li {
      padding: 10px 15px; } }
  @media (max-width: 767px) {
    #publicationsContainer li, #specialOffersContainer li {
      width: 100%;
      overflow: hidden;
      padding: 0px; } }

.publicationTopView {
  position: relative !important; }

.publish_reaction {
  display: inline-block;
  width: auto; }

a.publish_reaction {
  color: var(--text); }

.publish_reaction i {
  font-size: 1.6rem;
  margin-right: 3px;
  cursor: pointer; }
  .publish_reaction i:hover {
    color: var(--blue-selected); }

.reaction_comment {
  margin: 0 30px; }

.reaction_like i:hover {
  color: #ef5858; }

.noPublication {
  display: inline-block;
  width: 100% !important;
  padding: 0px 0px;
  margin-top: 0px !important;
  color: var(--text); }
  .noPublication i {
    font-size: 40px;
    color: #eb4d11;
    margin: 0px 10px; }

#publication-media-preview {
  height: 280px;
  border-radius: 10px;
  overflow: hidden;
  background-color: var(--blue-light);
  margin-bottom: 10px;
  position: relative; }

.stats-options {
  float: right;
  margin-right: 5px;
  margin-top: 10px;
  position: relative;
  margin-top: 3px; }
  .stats-options .fas {
    padding: 6px; }
  .stats-options .edit-publication-box {
    padding: 10px 0px;
    text-align: left;
    margin-top: -20px;
    font-weight: normal; }
  .stats-options .action-item {
    padding: 10px 20px;
    padding-right: 20px;
    white-space: nowrap;
    font-size: 1.5rem; }
    .stats-options .action-item i {
      width: 25px; }

.publication-options {
  float: right;
  margin-left: 10px;
  position: relative;
  margin-top: 0px; }
  .publication-options .fas {
    padding: 0px;
    font-size: 1.6rem; }
  .publication-options .edit-publication-box {
    padding: 10px 0px;
    text-align: left;
    font-weight: normal;
    top: unset;
    bottom: 30px; }
  .publication-options b {
    font-weight: normal;
    font-size: 1.5rem; }
  .publication-options .action-item {
    padding: 10px 15px;
    padding-right: 20px;
    white-space: nowrap;
    font-size: 1.5rem; }
    .publication-options .action-item i {
      width: 25px; }

.edit-publication-box:before {
  right: 9px;
  left: unset;
  top: unset;
  bottom: -7px;
  border-bottom: none;
  border-top: 7px solid var(--surface); }

.edit-publication-box:after {
  right: 10px;
  left: unset;
  top: unset;
  bottom: -6px;
  border-bottom: none;
  border-top: 6px solid var(--surface); }

.edit-publication-box.top:before {
  bottom: unset;
  top: -7px;
  border-top: none;
  border-bottom: 7px solid var(--surface); }

.edit-publication-box.top:after {
  bottom: unset;
  top: -6px;
  border-top: none;
  border-bottom: 6px solid var(--surface); }

.like_text {
  padding: 10px 25px 40px 25px; }

.publication_header {
  padding-left: 25px;
  position: relative;
  z-index: 1;
  display: inline-block;
  width: 100%; }

.publication_body {
  margin-top: -28px;
  padding: 0px;
  text-align: left;
  position: relative;
  z-index: 0; }
  .publication_body .timeElapsed {
    font-size: 1.35rem;
    color: #9ca1a7;
    float: right; }

.edit-publication-box, .edit-review-box {
  left: unset;
  right: -8px; }
  .edit-publication-box b, .edit-review-box b {
    padding: 10px 15px;
    display: inline-block; }

.edit-comment-box {
  left: unset;
  right: 6px;
  top: 65px;
  font-size: 1.5rem; }
  .edit-comment-box b {
    padding: 10px 15px;
    display: inline-block; }

.tri-box {
  left: 0px;
  top: 65px;
  font-size: 1.5rem; }
  .tri-box b {
    padding: 10px 15px;
    display: inline-block; }
  .tri-box:before {
    left: 9px;
    right: unset; }
  .tri-box:after {
    left: 10px;
    right: unset; }

.edit-publication-box:before, .edit-review-box:before, .edit-comment-box:before {
  right: 9px;
  left: unset; }

.edit-publication-box:after, .edit-review-box:after, .edit-comment-box:after {
  right: 10px;
  left: unset; }

#ipublication_product_btn, #ipublication_media_div {
  border-radius: 4px;
  float: left; }
  #ipublication_product_btn i, #ipublication_media_div i {
    margin-right: 6px; }

.auto_grow_input {
  resize: none;
  border: none;
  outline: 0;
  border: 1px solid var(--blue-medium);
  background-color: white;
  padding: 10px;
  height: auto;
  border-radius: 4px; }

.commentAuthorName span {
  font-size: var(--ds-fs-secondary);
  color: var(--text-2);
  padding-left: 6px;
  text-decoration: none; }

.comment-author-container {
  background-color: var(--blue-light);
  border-radius: 4px;
  padding: 5px 10px;
  margin-top: 6px;
  position: relative; }

.show_more_comments {
  padding-left: 20px;
  padding-top: 10px;
  display: inline-block;
  width: 100%; }

.pcomment {
  padding-right: 70px; }
  @media (max-width: 767px) {
    .pcomment {
      padding-right: 40px; } }

.tooltip:not(.shown) {
  display: none; }

.publication-filtre-toggle {
  background-color: var(--blue-selected);
  padding: 0px 5px;
  border-radius: 5px;
  display: inline-block; }

.publication-filtre-toggle [name="publication"] {
  display: none; }

.publication-filtre-toggle input[type="radio"] + label {
  background-color: var(--blue-selected);
  margin: 5px 0px;
  color: var(--text-inverse);
  padding: 5px 10px;
  border-radius: 5px;
  cursor: pointer;
  user-select: none; }

.publication-filtre-toggle input[type="radio"]:checked + label {
  background-color: var(--surface);
  color: var(--blue-selected); }

.newNotification {
  display: inline-flex;
  align-content: center;
  justify-content: center;
  align-items: center; }

.newNotification:before {
  display: inline-block;
  content: '';
  position: relative;
  width: 10px;
  height: 10px;
  background-color: var(--blue-selected);
  border-radius: 6px;
  border-left: 3px solid var(--blue-selected);
  margin: 0px 3px;
  vertical-align: -1px;
  margin-left: 0px;
  vertical-align: middle; }

.notification {
  padding: 10px;
  display: inline-block;
  width: 100%;
  text-align: left;
  padding-left: 0px;
  line-height: 1.3;
  cursor: pointer; }
  .notification .seenotification {
    padding-left: 15px; }
  .notification:not(:last-child) {
    border-bottom: 1px solid var(--line); }

.notification:hover {
  background-color: var(--blue-light); }

.notification span {
  color: #9ca1a7; }

.notificationBox {
  line-height: 2.5;
  right: -5px;
  top: 40px;
  left: auto;
  min-height: 60px;
  width: 350px;
  cursor: default;
  max-height: calc(100vh - 80px); }

.no-notification {
  padding-top: 10px;
  padding-bottom: 8px;
  color: #9ca1a7; }

#notification-loading {
  margin-top: 15px; }

#notification_icon {
  color: var(--title);
  margin-right: 5px;
  background-color: transparent;
  font-size: 2rem;
  position: relative; }
  #notification_icon:hover {
    background-color: var(--blue-light); }

.notificationBox:before {
  top: -7px;
  right: 15px;
  left: initial; }

.notificationBox:after {
  top: -6px;
  right: 16px;
  left: initial; }

#notification-container {
  white-space: initial; }

.cityCountry {
  font-size: 1.3rem;
  color: #666;
  cursor: pointer; }
  .cityCountry:hover {
    text-decoration: underline; }

.titleShopAdmin {
  display: inline-block;
  width: 100%;
  text-align: left;
  align-self: flex-end;
  margin-top: 20px; }
  @media (max-width: 767px) {
    .titleShopAdmin {
      padding: 10px 15px 20px; } }
  .titleShopAdmin h1 {
    margin-bottom: 3px;
    font-size: 2.5rem;
    font-weight: 500; }
  .titleShopAdmin .grid-2 {
    align-items: flex-end; }

@media (max-width: 767px) {
  .conseil {
    margin-bottom: 20px; } }

@media (max-width: 767px) {
  #topProductsSeen {
    margin-bottom: 15px; } }

.btn-black {
  background-color: transparent;
  color: #eb4d11;
  padding: 7px 15px;
  border-radius: 8px;
  cursor: pointer;
  display: inline-block;
  font-size: 1.5rem;
  margin-left: 5px; }
  @media (max-width: 767px) {
    .btn-black {
      margin-left: 0px;
      margin-top: 0px;
      padding-left: 5px; } }
  @media (min-width: 768px) {
    .btn-black:hover {
      background-color: var(--blue-light);
      color: var(--red-danger); } }
  .btn-black.light {
    color: black; }

.bricksize {
  padding: 0px !important; }

.wall {
  margin: 0px 0px !important; }

.fPcenter {
  padding: 10px 10px 50px;
  max-width: 1140px;
  display: inline-block;
  width: 100%; }
  @media (max-width: 767px) {
    .fPcenter {
      padding: 20px 0px 30px; } }

.cityCountry {
  font-size: 1.3rem;
  color: #666;
  cursor: pointer; }
  .cityCountry:hover {
    text-decoration: underline; }

.selectboxreturn {
  position: absolute;
  color: inherit;
  background-color: white;
  border: 1px solid #ddd;
  width: 310px;
  max-width: none;
  padding: 0;
  margin-top: 7px;
  top: 50px;
  left: 10px;
  z-index: 3001;
  display: none;
  font-family: arial;
  font-size: 1.4rem;
  line-height: 1em;
  box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);
  border-radius: 10px;
  padding: 10px; }

.selectboxreturn:before {
  top: -7px;
  left: 9px;
  border-right: 7px solid transparent;
  border-left: 7px solid transparent;
  border-bottom: 7px solid #ccc; }

.selectboxreturn:after {
  top: -6px;
  left: 10px;
  border-right: 6px solid transparent;
  border-bottom: 6px solid #fff;
  border-left: 6px solid transparent; }

.selectboxreturn:before, .selectboxreturn:after {
  position: absolute;
  display: inline-block;
  content: ''; }

.initialreturn {
  display: inline-block;
  background-color: var(--blue-selected);
  border-radius: 10px;
  display: inline-block;
  color: white;
  text-align: center;
  width: 56px;
  position: relative; }
  .initialreturn .fa-lg {
    font-size: 1.8rem;
    padding: 17px;
    display: inline-block; }
  .initialreturn:hover {
    cursor: pointer;
    color: var(--blue-light); }

.ins-profile-menu-container {
  font-weight: normal;
  display: inline-block; }
  .ins-profile-menu-container label {
    padding: 10px 20px;
    color: #333;
    margin: 0px 5px;
    font-weight: normal;
    opacity: 0.8;
    border-radius: 4px;
    cursor: pointer;
    font-size: 1.6rem;
    font-weight: bold; }
    .ins-profile-menu-container label:hover {
      opacity: 1; }
    .ins-profile-menu-container label.selected {
      opacity: 1;
      color: #333;
      background-color: white;
      cursor: default;
      box-shadow: 0px 10px 10px -3px rgba(0, 0, 0, 0.2); }

.iconList {
  color: var(--blue-selected);
  padding: 17px;
  background-color: var(--blue-light);
  border-radius: 7px;
  margin: 6px;
  width: 56px; }
  .iconList:hover {
    cursor: pointer;
    background-color: var(--blue-medium); }

#profile_image_container {
  width: 120px;
  height: 120px;
  position: relative;
  z-index: 14;
  display: flex;
  margin-top: 0px;
  margin-bottom: 10px; }
  @media (max-width: 767px) {
    #profile_image_container {
      margin-top: 0px; } }

blockquote {
  position: relative;
  margin: 0em;
  padding: 0px;
  border: none;
  font-size: 18px;
  /* px (≡ 1.8rem @ root 62.5%) → indépendant de la base rem : le builder mail (hébergé
     dans _LayoutDesk, root 16px) ne gonfle plus la citation vs l'email/la boutique réelle. */
  white-space: pre-line;
  padding: 0.5em 2em 0.5em 3em;
  font-family: Georgia, serif;
  font-style: oblique; }

/* Thanks: http://callmenick.com/post/styling-blockquotes-with-css-pseudo-classes */
blockquote:before {
  font-family: Georgia, serif;
  position: absolute;
  font-size: 3.5em;
  line-height: 1;
  top: 0;
  left: 0;
  content: "\201C"; }

blockquote:after {
  font-family: Georgia, serif;
  position: absolute;
  /* display: block; don't use this, it raised the quote too high from the bottom - defeated line-height? */
  float: right;
  font-size: 3.5em;
  line-height: 1;
  right: 0;
  bottom: -0.5em;
  content: "\201D"; }

blockquote footer {
  padding: 0 2em 0 0;
  text-align: right; }

blockquote cite:before {
  content: "\2013"; }

.square-img {
  border-radius: 20px;
  background-size: contain;
  background-repeat: no-repeat;
  background-color: white;
  background-position: center center;
  height: 120px;
  width: 120px;
  box-shadow: 0 8px 16px rgba(12, 65, 154, 0.1);
  position: relative;
  z-index: 2;
  cursor: pointer;
  overflow: hidden;
  display: inline-block; }
  .square-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center; }

#short_description_edit {
  height: 100px;
  width: 100%;
  padding: 10px;
  margin-bottom: 10px; }

.loadingProfileImage, .loadingCoverImage {
  position: absolute;
  display: inline-flex;
  text-align: center;
  align-items: center;
  justify-items: center;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(255, 255, 255, 0.6);
  z-index: 3; }
  .loadingProfileImage .lds-ring, .loadingCoverImage .lds-ring {
    left: 0%;
    margin-top: 0px; }

.institution_profile_container {
  display: block;
  margin-bottom: -60px;
  width: 100%;
  text-align: left; }
  @media (max-width: 767px) {
    .institution_profile_container {
      margin-bottom: -45px; } }

.institution_infos_container {
  text-align: left;
  padding-top: 40px;
  width: calc(100% - 150px);
  padding-left: 10px;
  display: inline-block;
  vertical-align: top; }
  @media (max-width: 767px) {
    .institution_infos_container {
      padding-top: 30px;
      padding-left: 0px; } }

#institution_short_infos {
  font-size: 1.4rem;
  font-weight: normal;
  line-height: 1.2;
  color: #9ca1a7;
  padding-top: 3px;
  display: inline-block;
  position: relative; }
  #institution_short_infos:hover {
    cursor: pointer;
    text-decoration: underline; }

.institution_actions_btn {
  left: 0px;
  width: 100%;
  text-align: right;
  padding-left: 27px;
  height: 40px;
  margin-top: -50px;
  padding-right: 0px; }

.btn-white {
  color: black; }
  .btn-white:hover {
    color: var(--blue-selected); }

.btn-white span {
  line-height: 1.5;
  display: inline-block;
  vertical-align: middle; }

.btn-basket i {
  margin-right: 6px; }
.btn-basket span {
  position: absolute;
  width: 26px;
  height: 26px;
  right: -8px;
  top: -8px;
  color: white;
  background-color: var(--blue-selected);
  text-align: center;
  line-height: 26px;
  border-radius: 13px;
  font-size: var(--ds-fs-secondary); }

.btn-basket-add {
  padding-top: 8px !important;
  padding-bottom: 8px !important;
  max-width: 420px;
  min-height: 55px;
  display: flex;
  align-items: center;
  justify-content: center; }
  .btn-basket-add .label-basket {
    font-size: 1.4rem !important; }

.row-wrapper {
  display: flex;
  flex-direction: row; }

#institution_name_span {
  font-size: 2.3rem;
  font-weight: bold;
  line-height: 1.2;
  color: black;
  cursor: pointer; }
  #institution_name_span:hover {
    text-decoration: underline; }
  @media (max-width: 767px) {
    #institution_name_span {
      font-size: 1.75rem; } }

#institution_header {
  line-height: 1.6;
  vertical-align: middle;
  display: inline-block;
  width: 100%;
  padding-bottom: 17px;
  font-size: 1.5rem;
  font-weight: normal; }

.institution_review span {
  color: steelblue;
  padding-left: 0px; }

#institution_shortdescription {
  display: none;
  resize: none;
  border: none;
  outline: 0;
  background-color: transparent;
  padding: 12px 10px 10px 10px;
  height: auto; }

#short_description_label {
  white-space: pre-line;
  line-height: 2.5rem; }

.edit_description {
  cursor: pointer;
  width: 28px;
  height: 28px;
  font-size: 1.4rem;
  text-align: center;
  left: 10px;
  padding: 4px;
  border-radius: 14px;
  color: #333;
  display: inline-block;
  cursor: pointer; }
  .edit_description:hover {
    color: var(--blue-selected); }

@media (max-width: 767px) {
  #ireview_container {
    margin: 0px; } }

#cover_container {
  z-index: 1;
  position: relative;
  display: flex;
  width: 100%;
  overflow: hidden; }
  @media (max-width: 767px) {
    #cover_container {
      padding: 0px;
      margin-top: 0px; } }

.cover_div {
  width: 100%;
  overflow: hidden;
  z-index: 2;
  margin-top: 0px;
  position: relative; }
  .cover_div .btn-edit-mini {
    display: block; }

.cover_div:after {
  padding-bottom: 30%;
  display: inline-block;
  content: ""; }
  @media (max-width: 767px) {
    .cover_div:after {
      padding-bottom: 40%; } }

.pic-header {
  flex-direction: row;
  display: flex;
  align-items: start;
  justify-content: start;
  width: 100%;
  max-width: 940px;
  padding: 0px 30px; }
  @media (max-width: 767px) {
    .pic-header {
      width: calc(100% - 30px);
      align-items: start;
      padding: 0px; } }

.shop-section-header {
  max-width: 1510px;
  padding: 0px 30px;
  margin-bottom: -30px; }
  @media (max-width: 991px) {
    .shop-section-header {
      padding: 0px 15px; } }

.headerandcover {
  display: flex;
  flex-direction: column;
  width: 100%;
  align-items: center; }

.insheader {
  display: flex;
  justify-content: center;
  flex: 1;
  width: 100%; }
  @media (max-width: 767px) {
    .insheader {
      background: white;
      margin-top: -30px;
      border-bottom: 1px solid var(--blue-light); } }

.top_infos_container {
  display: flex;
  width: 100%;
  align-items: start;
  padding-top: 20px;
  overflow: hidden; }
  @media (max-width: 767px) {
    .top_infos_container {
      padding-bottom: 6px; } }
  @media (min-width: 768px) {
    .top_infos_container.mini-header {
      padding-top: 10px; } }

.show_more_reviews {
  display: inline-block;
  margin-top: 10px; }

.white-background {
  background-color: white;
  text-align: center; }

.root-path {
  padding-bottom: 20px;
  font-size: 1.4rem;
  display: inline-block;
  width: 100%; }
  @media (max-width: 767px) {
    .root-path {
      padding-bottom: 0px; } }
  .root-path i {
    vertical-align: middle;
    color: #d6dbdf;
    font-size: 1rem;
    margin: 0px 6px; }

.cover-light {
  height: 200px !important; }
  .cover-light img {
    filter: blur(5px); }

.cover_img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  display: block; }

.institutionBody {
  width: 100%; }

.institutionBody > div:first-child {
  display: flex;
  flex-direction: column;
  width: 100%;
  justify-items: center;
  align-items: center; }

.main_container_ins {
  max-width: unset;
  padding: 0px; }

#institutionValidated {
  margin: 0px;
  border: none !important;
  text-align: center;
  background-color: #fff1ee;
  border-radius: 0px; }

.profile_header_container {
  margin-top: 0px;
  z-index: 0;
  margin-bottom: 0px;
  padding: 70px 30px 0px;
  position: revert; }
  @media (max-width: 991px) {
    .profile_header_container {
      padding: 20px 15px; } }
  @media (max-width: 767px) {
    .profile_header_container .col-lg-12 {
      padding: 0px; } }

.profile_header {
  max-width: 1480px;
  display: inline-block;
  width: 100%; }
  @media (max-width: 767px) {
    .profile_header {
      display: block;
      padding-top: 0px; } }

#navigation-container {
  margin-bottom: 0px;
  border-bottom: none;
  margin-left: 0px;
  padding: 5px 15px;
  display: inline-flex;
  justify-content: left;
  text-align: left;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
  /* Firefox */
  -ms-overflow-style: none;
  /* IE / vieux Edge */
  width: 100%;
  min-width: 0; }
  #navigation-container::-webkit-scrollbar {
    display: none;
    /* Chrome / Safari / Edge moderne */
    width: 0;
    height: 0; }

@media (max-width: 767px) {
  #institutionFamiliesList {
    display: flex;
    flex-direction: column;
    padding-top: 20px; }
    #institutionFamiliesList .select-menu-hor {
      margin-right: 0px !important; }
      #institutionFamiliesList .select-menu-hor:after {
        bottom: 5px !important; } }

#background-mask {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 1;
  display: none; }

.deliveryanddescription {
  text-align: center; }
  @media (max-width: 767px) {
    .deliveryanddescription {
      text-align: left;
      padding-left: 15px; } }

.delivery-infos {
  font-weight: normal;
  padding: 3px 0px 0px;
  display: inline-grid;
  position: relative;
  width: 100%;
  max-width: 1420px;
  grid-template-columns: repeat(4, 1fr);
  justify-items: left; }
  .delivery-infos i {
    font-size: 3.5rem;
    color: var(--blue-selected);
    margin-right: 10px;
    margin-bottom: 15px; }
  @media (max-width: 767px) {
    .delivery-infos {
      grid-template-columns: repeat(1, 1fr);
      row-gap: 30px;
      justify-items: left; } }

.delivery-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left; }

.timeline {
  margin-top: 30px; }

.institution-infos-center {
  background-color: white;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
  margin-top: 0px;
  margin-bottom: 0px;
  text-align: left;
  z-index: 11;
  box-shadow: 0 -8px 16px rgba(185, 185, 185, 0.1);
  border-bottom: 1px solid #eff2f5;
  position: sticky;
  top: 60px; }
  .institution-infos-center hr {
    display: inline-block;
    width: 100%; }

.institutionFamiliesList {
  display: flex; }

.listFamilies {
  overflow: auto;
  display: flex;
  width: 100%;
  max-width: 240px;
  text-align: left;
  padding: 0px;
  vertical-align: bottom;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start; }
  .listFamilies .show-all {
    margin-top: 10px;
    display: none !important;
    position: sticky;
    left: 0px;
    font-size: 1.4rem;
    padding-left: 10px;
    padding-bottom: 10px;
    text-align: center; }
    .listFamilies .show-all i {
      margin-left: 6px; }

.home_family {
  display: inline-flex;
  text-align: left;
  width: 100%;
  vertical-align: top;
  white-space: normal;
  cursor: pointer;
  border-radius: 15px;
  padding: 10px 0px;
  margin: 0px 0px 0px;
  align-items: center; }
  .home_family .family_thumbnail {
    width: 40px;
    height: 40px;
    border-radius: 20px;
    vertical-align: middle;
    display: inline-block !important;
    align-items: center;
    justify-content: center;
    position: relative;
    border: 1.5px solid transparent;
    position: relative; }
    @media (max-width: 767px) {
      .home_family .family_thumbnail {
        display: none !important; } }
    .home_family .family_thumbnail .btn-edit-mini {
      display: none;
      right: 20px;
      bottom: 20px; }
    .home_family .family_thumbnail:after {
      content: '';
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: #011d5c;
      opacity: .03;
      pointer-events: none;
      padding-bottom: 100%;
      display: inline-block;
      border-radius: 20px; }
  .home_family img {
    align-self: center;
    display: inline-block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 20px;
    position: absolute; }
  .home_family .familyName {
    text-align: center;
    padding: 0px 10px;
    display: -webkit-inline-box !important; }
  .home_family.selected {
    color: #eb4d11 !important;
    font-weight: 600;
    border-radius: 0px;
    cursor: default; }
    @media (max-width: 767px) {
      .home_family.selected {
        color: var(--blue-selected) !important; } }
    .home_family.selected div {
      border-color: #eb4d11; }
    .home_family.selected .family_thumbnail {
      border-color: var(--red-danger); }
  .home_family:hover {
    color: #666; }

.institutionFamiliesList_C .listFamilies {
  padding: 10px 20px;
  text-align: center;
  display: block;
  flex-direction: row;
  max-width: 1490px;
  justify-content: center;
  white-space: nowrap; }
  @media (max-width: 767px) {
    .institutionFamiliesList_C .listFamilies {
      padding: 10px 5px; } }
.institutionFamiliesList_C .shopFamilyGroup {
  display: flex;
  justify-items: center; }
.institutionFamiliesList_C .family_thumbnail {
  display: inline-flex !important;
  padding: 10px; }
.institutionFamiliesList_C .home_family {
  padding: 0px 0px 15px;
  margin: 0px;
  width: 180px; }
  .institutionFamiliesList_C .home_family .family_thumbnail {
    position: relative;
    border-radius: 100px; }
    .institutionFamiliesList_C .home_family .family_thumbnail:after {
      position: absolute;
      content: '';
      top: 10px;
      left: 10px;
      width: calc(100% - 20px);
      height: calc(100% - 20px);
      background: #011d5c;
      opacity: .03;
      pointer-events: none;
      border-radius: 100px; }
  .institutionFamiliesList_C .home_family .familyName {
    text-align: center;
    padding: 0px 5px;
    display: -webkit-inline-box !important; }
  .institutionFamiliesList_C .home_family img {
    border-radius: 100px; }
  @media (max-width: 767px) {
    .institutionFamiliesList_C .home_family {
      width: 140px; } }
.institutionFamiliesList_C .home_family_C {
  display: none; }

.publication_view_header {
  padding: 20px 20px; }
  @media (max-width: 767px) {
    .publication_view_header {
      padding: 20px 10px; } }

@media (max-width: 767px) {
  .top-products .col-sm-6:first-child {
    margin-bottom: 30px; } }

.preview-container {
  display: flex;
  flex: 1; }
  @media (max-width: 767px) {
    .preview-container {
      width: 100%; } }

.shop-sub-family {
  display: inline-block;
  background-color: white;
  padding: 10px 10px;
  border-radius: 5px;
  cursor: pointer;
  white-space: normal;
  width: 100%;
  margin-bottom: 5px; }
  @media (min-width: 767px) {
    .shop-sub-family:hover {
      background-color: var(--blue-light); } }
  .shop-sub-family.selected {
    border-right: 3px solid var(--blue-selected);
    color: var(--blue-selected);
    cursor: default;
    border-radius: 0;
    font-weight: 600; }

.sub-family-container {
  width: 100%;
  display: inline-block;
  overflow: auto;
  margin-bottom: 15px; }
  .sub-family-container.empty {
    border-top: none;
    margin-top: 0px; }
  .sub-family-container .show-all {
    margin-top: 10px;
    display: none;
    position: sticky;
    left: 0px;
    font-size: 1.4rem; }
    .sub-family-container .show-all i {
      margin-left: 6px; }

#institutionProfilePopularProducts .btn-edit-mini {
  display: none !important; }

.previous-families, .next-families {
  display: inline-flex;
  align-items: center;
  padding: 10px;
  position: absolute;
  vertical-align: middle;
  height: calc(100% - 1px);
  line-height: 110px;
  color: #9ca1a7;
  cursor: pointer;
  display: none; }
  .previous-families i, .next-families i {
    margin-bottom: 110px; }

.sub-family-container .previous-families, .sub-family-container .next-families {
  height: 66px;
  line-height: 64px; }

.previous-families {
  left: 0px;
  background: linear-gradient(to left, rgba(255, 255, 255, 0), #fff 45%);
  z-index: 10;
  padding-right: 30px; }

.next-families {
  right: 0px;
  background: linear-gradient(to right, rgba(255, 255, 255, 0), #fff 45%);
  padding-left: 30px; }

@media (max-width: 767px) {
  #shop_families {
    position: absolute;
    background-color: white;
    width: 100%;
    top: calc(100% - 65px);
    padding: 0px 10px 10px;
    border: 1px solid var(--blue-selected);
    border-top: none;
    border-radius: 0px 0px 5px 5px; } }
#shop_families .previous-families {
  background: linear-gradient(to left, rgba(255, 255, 255, 0), #f5f8fb 45%); }
  #shop_families .previous-families i {
    margin-bottom: 55px; }
#shop_families .next-families {
  background: linear-gradient(to right, rgba(255, 255, 255, 0), #f5f8fb 45%); }
  #shop_families .next-families i {
    margin-bottom: 55px; }

#shop_conditions {
  display: inline-block;
  width: 100%;
  max-width: 600px;
  margin-top: 40px;
  border-top: 1px solid #9ca1a7;
  border-bottom: 1px solid #9ca1a7;
  padding: 20px 0px 15px;
  color: #9ca1a7;
  margin-bottom: 10px;
  position: relative;
  line-height: 1.4; }
  @media (max-width: 767px) {
    #shop_conditions {
      padding: 15px 0px;
      text-align: left; } }
  #shop_conditions i {
    margin-bottom: 10px;
    font-size: 24px;
    width: 100%; }
    @media (max-width: 767px) {
      #shop_conditions i {
        margin: 10px 0px;
        margin-right: 10px;
        width: 30px; } }

.profile_action_container {
  left: 0px;
  text-align: center;
  display: inline-block;
  vertical-align: middle;
  margin-top: 12px;
  margin-bottom: 5px; }
  @media (max-width: 767px) {
    .profile_action_container {
      margin-bottom: 12px;
      line-height: 65px; } }

.catalog_access {
  display: inline-block;
  cursor: pointer;
  width: auto;
  cursor: pointer !important;
  padding: 15px 30px;
  border-radius: var(--border-radius-little);
  box-shadow: 0px 10px 10px -3px rgba(0, 0, 0, 0.2);
  position: relative; }

#profile_img_div .btn-edit-mini {
  display: block; }

.shop_preview_container {
  display: inline-flex;
  width: 100%;
  align-items: center; }
  @media (max-width: 767px) {
    .shop_preview_container {
      flex-direction: column; } }

.pub-cont-2 {
  display: flex;
  align-content: center;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
  padding: 0px 10px; }
  @media (max-width: 991px) {
    .pub-cont-2 {
      padding: 0px; } }

.insHeaderCenterContainer {
  width: 100%;
  display: flex;
  flex-direction: row;
  align-items: start;
  padding: 0px;
  position: relative;
  text-align: left; }
  .insHeaderCenterContainer .follower_counter {
    text-align: right;
    display: inline-block;
    padding: 3px 0px;
    font-size: 1.3rem;
    color: #666; }
  @media (max-width: 767px) {
    .insHeaderCenterContainer {
      flex-direction: column;
      align-items: center;
      text-align: center; }
      .insHeaderCenterContainer .follower_counter {
        text-align: center;
        width: 100%;
        padding-bottom: 10px; } }

.newProductListContainer {
  display: inline-block;
  width: 100%; }

.shopNewProductThumbnail {
  text-align: left;
  display: flex;
  flex-direction: column;
  padding: 10px 0px;
  color: black;
  white-space: normal; }
  .shopNewProductThumbnail span {
    text-align: left;
    bottom: 0;
    left: 0;
    width: 100%;
    height: auto;
    padding: 0px 0px;
    padding-right: 10px;
    margin-top: 15px;
    vertical-align: bottom; }
    .shopNewProductThumbnail span.productPrice {
      text-decoration: none !important;
      text-align: left;
      display: inline-block;
      margin-top: 3px;
      font-weight: 500;
      font-size: 1.6rem; }
    .shopNewProductThumbnail span:hover {
      cursor: pointer;
      text-decoration: underline; }
  .shopNewProductThumbnail .btn-edit-mini {
    width: auto;
    padding-left: 10px;
    display: block; }
    .shopNewProductThumbnail .btn-edit-mini span {
      font-size: 1.3rem;
      font-family: Open Sans,Arial,sans-serif;
      font-weight: normal;
      margin-left: 6px;
      color: #fff; }
    .shopNewProductThumbnail .btn-edit-mini:hover {
      color: var(--blue-dark); }
      .shopNewProductThumbnail .btn-edit-mini:hover span {
        color: var(--blue-dark);
        text-decoration: none; }
  @media (max-width: 991px) {
    .shopNewProductThumbnail {
      padding: 10px 0px; } }

.shoph2 {
  padding: 10px 0px 25px;
  font-size: 2.6rem; }
  @media (max-width: 991px) {
    .shoph2 {
      padding: 10px 0px 15px; } }

#institution_infos {
  top: 20px;
  left: 0px;
  padding: 20px;
  width: 300px;
  white-space: pre-line;
  line-height: 1.7;
  cursor: default; }

#institution_phoneèaction {
  position: relative; }

#institution_phone {
  top: 50px;
  right: 0px;
  padding: 20px;
  width: 150px;
  white-space: pre-line;
  line-height: 1.7;
  cursor: default;
  text-align: left;
  color: black; }

.institutionInformationsNotSent {
  background-color: red; }

.institutionUnderValidation {
  background-color: blue; }

#createInstitutionForm {
  display: inline-block;
  max-width: 440px; }

.bloc_legal {
  text-align: left; }
  .bloc_legal .legal_titre {
    font-size: 2.0rem;
    display: inline-block; }

#InstitutionParametersContainer {
  padding-top: 10px;
  text-align: left;
  max-width: 800px;
  padding-top: 30px;
  width: 100%; }
  #InstitutionParametersContainer:empty {
    display: none !important; }

.condition-line .dynInput {
  width: calc(100% - 66px);
  display: inline-block;
  vertical-align: top;
  margin-left: 6px; }

.institutionDeliveryItem {
  background-color: var(--blue-light);
  border-radius: 5px;
  padding: 15px;
  display: inline-block;
  width: 100%;
  margin: 0px 0px 10px;
  position: relative;
  max-width: 600px; }

.bankAccountContainer {
  background-color: var(--blue-light);
  border-radius: 4px;
  padding: 15px;
  display: flex;
  align-items: center;
  width: auto;
  position: relative; }

.topbar-control {
  display: flex;
  align-items: center; }

.catalog_demand_container {
  padding: 10px 0px; }

.catalog_demand_container:last-child {
  border-bottom: 1px solid var(--blue-medium); }

.config-step-container {
  width: 100%;
  display: inline-block;
  white-space: nowrap;
  overflow: hidden; }

.config-step {
  width: calc(100% - 10px);
  display: inline-block;
  padding: 20px 10px;
  vertical-align: middle;
  transition: transform ease 0.3s;
  white-space: normal; }
  .config-step .config-step-text {
    padding-top: 5px; }

.previous-step {
  color: var(--blue-dark);
  font-size: 2.2rem;
  height: 100%;
  margin-right: 10px !important;
  display: flex !important;
  align-items: center;
  cursor: pointer; }
  .previous-step:hover {
    color: var(--blue-selected); }
  .previous-step::before {
    vertical-align: middle;
    display: flex; }

.next-step {
  color: var(--blue-dark);
  font-size: 2.2rem;
  height: 100%;
  margin-left: 10px !important;
  display: flex !important;
  align-items: center;
  cursor: pointer; }
  .next-step:hover {
    color: var(--blue-selected); }
  .next-step::before {
    vertical-align: middle;
    display: flex; }

.step-arrow-left {
  display: flex; }

.step-arrow-right {
  display: flex; }

.step-arrow-disabled {
  cursor: default !important;
  color: var(--blue-light) !important; }

.step-resume {
  text-align: left;
  color: #9ca1a7;
  font-size: 1.5rem;
  padding-left: 5px;
  display: inline-block; }
  .step-resume div {
    margin: 0px 5px;
    cursor: pointer;
    display: inline-block;
    border-radius: 20px;
    width: 40px;
    height: 40px;
    text-align: center;
    line-height: 40px;
    background-color: var(--blue-medium); }
    .step-resume div span:hover {
      opacity: 0.7; }
    .step-resume div.selected {
      cursor: default;
      color: var(--blue-selected); }
      .step-resume div.selected i {
        color: var(--blue-medium); }
    .step-resume div.completed {
      color: white;
      background-color: var(--blue-selected); }
      .step-resume div.completed span {
        display: none; }

.circle {
  display: inline-block;
  background: black;
  border-radius: 50%;
  height: 15px;
  width: 15px;
  background: radial-gradient(circle at 100px 100px, #5b93ae, #1e4d9c); }

.circleClose {
  display: inline-block;
  background: black;
  border-radius: 50%;
  height: 15px;
  width: 15px;
  background: radial-gradient(circle at 100px 100px, #ffffff, #97999c); }

.tri-box {
  right: 18px; }

.follow-institution-thumbnail {
  border: 1px solid var(--blue-medium);
  border-radius: 7px;
  padding: 10px;
  text-align: left;
  position: initial;
  margin-bottom: 5px;
  width: 230px; }
  .follow-institution-thumbnail i {
    color: var(--blue-selected);
    position: initial;
    right: 7px;
    top: 8px; }
  .follow-institution-thumbnail:hover {
    background-color: var(--blue-light);
    cursor: pointer; }
  .follow-institution-thumbnail.selected {
    border-color: var(--blue-selected);
    background-color: var(--blue-light);
    color: var(--blue-selected);
    margin-left: 10px;
    margin-bottom: 20px; }
    .follow-institution-thumbnail.selected i {
      display: initial; }
      .follow-institution-thumbnail.selected i.sized {
        font-size: 22px !important;
        padding-right: 10px; }
  .follow-institution-thumbnail img {
    width: 60px;
    height: 60px;
    border-radius: 7px;
    margin-right: 6px; }

.tradastraChatContainer {
  display: flex;
  justify-content: end; }

.tradastraChatHeader {
  padding: 15px 10px;
  background: var(--blue-selected); }

.tradastraChatContent {
  width: 380px;
  height: 100%;
  max-height: 600px;
  background-color: white;
  padding: 0;
  z-index: 3001;
  font-family: arial;
  font-size: 1.5rem;
  box-shadow: 0 5px 40px rgba(0, 0, 0, 0.16);
  border-radius: 20px;
  overflow: hidden;
  color: #8294a7;
  line-height: 2.5;
  position: fixed;
  bottom: 20px;
  right: 10px; }
  @media (min-width: 768px) {
    .tradastraChatContent {
      margin-right: 10px; } }
  @media (max-width: 767px) {
    .tradastraChatContent {
      margin-right: 0px;
      width: 100%;
      height: 100%;
      right: 0px; } }
  .tradastraChatContent.close {
    border-radius: 40px;
    width: 80px;
    height: 80px; }

.profile_image_chat_container {
  width: 40px;
  height: 40px;
  position: relative;
  z-index: 4;
  display: inline-block;
  top: 5px;
  float: left;
  margin-left: 10px; }

.square-img-chat {
  width: 40px;
  height: 40px;
  border-radius: 5px;
  box-shadow: none; }

.tradastraChatMessageHeader {
  display: flex;
  align-items: center;
  justify-content: space-between;
  z-index: 1;
  position: relative; }

.tradastraChatInstitutionName {
  font-weight: bold;
  float: left;
  margin-left: 10px;
  color: rgba(255, 255, 255, 0.95);
  line-height: 1.3em;
  text-align: left;
  padding: 5px 0px; }
  .tradastraChatInstitutionName span {
    font-size: 1.4rem;
    color: rgba(255, 255, 255, 0.7);
    font-weight: normal; }

.tradastraChatClose {
  padding: 6px 8px;
  background: rgba(255, 255, 255, 0.2);
  border-radius: 6px;
  cursor: pointer;
  margin-right: 10px;
  color: white; }

.tradastraChatMessageListContainer {
  padding: 10px;
  position: absolute;
  width: 100%;
  height: 100%; }

#tradastraChatMessageList {
  position: relative;
  padding: 0px 10px;
  padding-right: 0px;
  height: calc(100% - 135px); }

input.form-control.tradastraChatInputMessage {
  background-color: white; }

.tradastraChatMessageThumbnail {
  line-height: 1.2em;
  text-align: left; }

.msg-bubble-container-chat {
  margin-bottom: 10px; }

.msg-bubble-container-right-chat .msg-bubble-chat-date {
  text-align: left; }

.msg-bubble-container-left-chat {
  display: flex;
  justify-content: flex-start; }
  .msg-bubble-container-left-chat .msg-bubble-chat-date {
    text-align: right; }

.msg-bubble-container-right {
  display: flex;
  justify-content: flex-end; }
  .msg-bubble-container-right .msg-bubble-body-chat {
    display: flex;
    flex-direction: column;
    align-items: flex-end; }
  .msg-bubble-container-right .msg-bubble-chat-date {
    align-self: flex-start; }
  .msg-bubble-container-right .msg-bubble-chat {
    background-color: var(--blue-light);
    color: #202124; }

.msg-bubble-container-left .mesg-bubble-body-chat {
  display: flex;
  flex-direction: column;
  align-items: flex-start; }
.msg-bubble-container-left .msg-bubble-chat {
  background-color: #eb4d11;
  color: white; }

.msg-bubble-body-chat {
  max-width: 70%;
  margin-bottom: 0px; }

.msg-bubble-chat {
  padding: 8px;
  border-radius: 15px; }

.msg-bubble-chat-date {
  font-size: var(--ds-fs-caption); }

.tradastraChatInputMessageContainer {
  display: flex;
  align-items: center;
  border-top: 1px solid #e7edf3;
  position: relative;
  margin-bottom: -15px; }
  .tradastraChatInputMessageContainer i:hover {
    color: var(--blue-selected); }
  .tradastraChatInputMessageContainer.chatpopup {
    padding: 5px 0px; }

.tradastraChatInputMessage {
  width: 100%;
  border-radius: 15px; }

.tradastraChatInputMessageContainer i {
  position: absolute;
  right: 15px;
  cursor: pointer;
  font-size: 1.3em; }

.dark-selected-blue {
  position: relative;
  background: linear-gradient(rgba(0, 0, 0, 0.88), rgba(0, 0, 0, 0.88)), var(--blue-selected) no-repeat center center; }
  .dark-selected-blue.revert {
    background: linear-gradient(rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7)), var(--blue-selected) no-repeat center center; }

.tradastraChatImageOverlay {
  margin-right: 30px;
  width: auto;
  height: auto;
  z-index: 50000;
  box-shadow: 0px 3px 10px -3px rgba(0, 0, 0, 0.2);
  border-radius: 30px;
  position: fixed;
  bottom: 20px;
  padding: 30px;
  height: 30px;
  width: 30px;
  text-align: center;
  cursor: pointer;
  transition: 0.2s linear;
  color: white;
  right: 0px;
  display: flex;
  align-items: center;
  justify-content: center; }
  .tradastraChatImageOverlay i {
    vertical-align: middle;
    margin-right: 0px;
    opacity: 0.95; }
  .tradastraChatImageOverlay span {
    vertical-align: middle; }
  .tradastraChatImageOverlay:hover {
    background-color: #9ca1a7; }
    .tradastraChatImageOverlay:hover.dark-selected-blue:after {
      opacity: 0.6; }
  .tradastraChatImageOverlay .notification_bubble {
    background-color: #ef5858;
    padding: 4px;
    min-width: 30px;
    font-size: 1.4rem;
    border-radius: 12px;
    color: white;
    position: absolute;
    top: 0px;
    right: 0px;
    width: 20px;
    min-width: 24px;
    line-height: 16px;
    height: 25px; }

#store_publish_tuto {
  text-align: left;
  margin: 0px;
  border-radius: 5px;
  width: 100%;
  display: none; }
  #store_publish_tuto button {
    vertical-align: middle;
    margin: 10px 0px; }
  #store_publish_tuto .spt-table {
    display: inline-grid;
    padding: 0px 10px; }
  @media (min-width: 768px) {
    #store_publish_tuto .spt-table {
      display: table; } }

#dashboardInstitution-Image {
  text-align: left;
  padding: 15px 10px 5px;
  display: flex;
  justify-content: start;
  align-items: center;
  flex-direction: row; }
  #dashboardInstitution-Image .square-img {
    width: 100px;
    height: 100px; }
  #dashboardInstitution-Image .dashboardIns-Info {
    font-size: 2.3rem;
    font-weight: 600;
    padding: 10px 20px;
    padding-right: 0px;
    display: flex;
    flex: 1;
    align-items: center; }
    #dashboardInstitution-Image .dashboardIns-Info a {
      font-weight: normal;
      font-size: 1.5rem;
      color: var(--blue-dark);
      padding: 5px 10px;
      border: 1px solid var(--blue-dark);
      border-radius: 8px;
      margin-top: 10px;
      display: inline-block;
      line-height: 1.8rem; }
      #dashboardInstitution-Image .dashboardIns-Info a b {
        font-weight: 600;
        font-size: 1.8rem; }
  #dashboardInstitution-Image .follower_counter {
    font-size: 1.3rem;
    font-weight: normal;
    color: #666;
    padding-top: 5px; }

.dash-resume {
  background-color: white;
  padding-bottom: 30px; }

.dash-Counter {
  font-size: 2.1rem;
  font-weight: 500;
  padding-top: 3px;
  display: inline-block; }

.insNameContainer {
  padding: 0px 20px 0px;
  width: 100%;
  text-align: left;
  display: flex;
  flex-direction: column; }
  .insNameContainer a, .insNameContainer span {
    width: fit-content; }
  @media (max-width: 767px) {
    .insNameContainer {
      padding: 22px 15px 5px; } }

.insCont {
  background-color: #f3f6f7;
  display: flex;
  flex-direction: column;
  align-items: center; }

.contact_container {
  padding-top: 5px; }
  @media (max-width: 767px) {
    .contact_container {
      padding-top: 0px;
      width: 100%;
      padding-bottom: 5px;
      background: white;
      border-bottom: 1px solid var(--blue-light); } }

#edit_crop_container {
  position: relative;
  display: none;
  bottom: 0px;
  vertical-align: bottom;
  margin: auto;
  z-index: 2;
  top: calc(100% - 100px);
  background-color: var(--color-primary);
  color: white;
  padding: 10px 20px; }
  #edit_crop_container .btn-primary {
    background: var(--blue-selected); }

.preview_opt {
  padding-top: 0px;
  padding-left: 30px; }
  @media (max-width: 767px) {
    .preview_opt {
      padding-left: 0px;
      width: 100%; } }

.newProductList {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  row-gap: 30px;
  column-gap: 50px;
  align-items: start; }
  @media (max-width: 991px) {
    .newProductList {
      column-gap: 15px; } }
  @media (max-width: 767px) {
    .newProductList {
      grid-template-columns: repeat(2, 1fr); } }

.conseil .img-c {
  width: 100%;
  margin-bottom: 15px;
  position: relative; }
  .conseil .img-c img {
    position: absolute;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 8px; }
  .conseil .img-c:after {
    display: inline-block;
    content: '';
    padding-bottom: 65%; }

#customize_bloc {
  text-align: left; }
  #customize_bloc .institutionProfileNewProducts {
    max-width: 700px;
    display: inline-block;
    width: 100%; }
    #customize_bloc .institutionProfileNewProducts .col-xs-5, #customize_bloc .institutionProfileNewProducts .col-xs-7 {
      display: none; }

.loyalty-card {
  position: relative;
  color: black;
  padding: 25px 60px; }
  .loyalty-card .icon_preview {
    width: 120px;
    height: 120px;
    background: white;
    border-radius: 5px;
    margin-right: 20px;
    display: flex;
    align-items: center;
    justify-content: center; }
  .loyalty-card div {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start; }
    .loyalty-card div .reward-label {
      font-family: 'Archivo Black', sans serif;
      color: var(--blue-selected);
      font-weight: 600;
      margin-top: 10px; }
    .loyalty-card div i {
      font-size: 4rem;
      color: var(--blue-selected); }

.carousel-container {
  position: relative;
  overflow: hidden;
  /* Cache les slides non visibles */
  margin: auto;
  border-radius: 0px; }

#slides-wrapper {
  /* La largeur doit être X00% où X est le nombre de slides (ex: 3 slides = 300%) */
  width: 300%;
  display: flex;
  /* Définit la durée de l'animation pour le JS */
  transition: transform 0.5s ease-in-out; }

.slide {
  flex-shrink: 0;
  width: 100%;
  /* Chaque slide prend 100% de la largeur du viewport */ }

.carousel-indicators-container {
  display: inline-flex;
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translate(-50%);
  gap: 8px;
  /* Espacement entre les points */
  margin: 20px 0px;
  z-index: 10;
  mix-blend-mode: difference;
  filter: brightness(1.2) contrast(1.1); }

.carousel-indicator {
  display: block;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background-color: #5a5a5a;
  /* Point inactif */
  cursor: pointer;
  /* Transition pour l'effet d'élargissement/rétrécissement */
  transition: width 0.3s ease-in-out, background-color 0.3s; }

/* Style et effet pour le point actif */
.carousel-indicator.active {
  width: 45px;
  /* Le point actif est plus large */
  background-color: #FFFFFF;
  /* Couleur pleine pour le point actif */
  border-radius: 7.5px; }

#search_results_container {
  left: 50%;
  position: absolute;
  width: 100%;
  max-width: 580px;
  margin-top: 5px;
  top: 60px;
  margin-left: 0px;
  z-index: 2;
  transform: translateX(-50%); }
  #search_results_container.embedded {
    top: 0px;
    margin-top: 0px;
    margin-left: 0px;
    width: 100%;
    max-width: 100%;
    transform: translateX(0%);
    position: relative;
    left: 0px;
    margin-top: 15px; }

.srch_result_container_row {
  border-radius: 7px;
  overflow: hidden;
  border: 0px solid var(--line);
  box-shadow: 0px 0px 3px var(--shadow);
  padding: 10px;
  background-color: white;
  white-space: initial; }
  .srch_result_container_row.none {
    display: none; }

.first_page .resultSearch {
  padding-top: 15px; }

.search_result {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-items: center;
  width: 100%;
  padding: 10px;
  color: var(--text);
  margin: 0;
  overflow: hidden;
  border: none;
  box-shadow: none;
  border-bottom: 1px solid var(--blue-light); }
  .search_result .srch_result_infos {
    display: flex;
    flex-direction: column;
    align-items: start;
    margin-left: 10px;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.5;
    max-width: 100%; }
  .search_result .srchres_store_product {
    font-size: 1.3rem; }
  .search_result .srchres_store_address {
    font-size: 1.3rem;
    font-weight: bold;
    color: #9ca1a7;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    max-width: 100%; }
  .search_result .srchres_store_desc {
    font-size: 1.3rem;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    max-width: 100%;
    color: #9ca1a7; }
  .search_result:hover {
    background-color: var(--blue-light);
    border-radius: 7px;
    color: var(--blue-selected); }

.srchres_store_name {
  font-size: var(--ds-fs-secondary);
  white-space: nowrap; }
  .srchres_store_name b {
    font-size: 1.4rem;
    margin-right: 6px; }

#search_term_infos_container .search_result:last-child {
  border-bottom: none; }

.searchIcon {
  position: relative;
  display: flex;
  align-items: center; }
  .searchIcon input {
    padding-left: 32px; }
  .searchIcon:before {
    content: '\f002';
    font-family: 'Font Awesome 6 Pro';
    position: absolute;
    font-weight: 300;
    left: 10px;
    color: var(--text-2); }

#paymentMethodManagerFormMessage.error {
  color: lightcoral !important; }

.saveCard {
  margin-left: 55px;
  margin-bottom: 10px; }

.cardThumbnail {
  border: 1px solid #d4dde6;
  border-radius: 4px;
  padding: 15px;
  text-align: left;
  margin: 5px 0px;
  width: 100%;
  display: inline-block;
  max-width: 500px; }
  .cardThumbnail:hover {
    background-color: var(--surface-muted); }

.cardTypeUnchecked {
  opacity: 0.5;
  color: #996; }

.paymentMethodManagerModalWindow {
  max-width: 650px; }

.cardType-selection-thumbnail {
  border: 1px solid var(--blue-medium);
  border-radius: 7px;
  padding: 12px;
  text-align: left;
  position: initial;
  margin-bottom: 5px;
  width: 230px; }
  .cardType-selection-thumbnail i {
    color: var(--blue-selected);
    position: initial;
    right: 7px;
    top: 8px; }
  .cardType-selection-thumbnail:hover {
    background-color: var(--blue-light);
    cursor: pointer; }
  .cardType-selection-thumbnail.selected {
    border-color: var(--blue-selected);
    background-color: var(--blue-light);
    color: var(--blue-selected);
    margin-left: 10px;
    margin-bottom: 20px; }
    .cardType-selection-thumbnail.selected i {
      display: initial; }
      .cardType-selection-thumbnail.selected i.sized {
        font-size: 22px !important;
        padding-right: 10px; }
  .cardType-selection-thumbnail img {
    width: auto;
    height: 2.5em;
    border-radius: 7px;
    margin-right: 6px; }

#panelBasketList {
  margin-top: 0px;
  padding: 0px 0px 10px; }
  @media (max-width: 767px) {
    #panelBasketList {
      padding-top: 0px;
      padding-bottom: 0px; } }

.basketThumbnail {
  display: flex;
  flex-direction: row;
  cursor: pointer;
  padding: 10px 0px;
  display: inline-flex;
  width: 100%;
  align-items: center;
  margin-left: -10px;
  margin-top: 10px; }
  .basketThumbnail:hover {
    border-radius: 5px;
    background-color: var(--blue-medium); }

.basketThumbnailInstitutionLogo {
  width: 44px;
  height: 44px;
  margin-left: 10px;
  margin-right: 0px;
  border-radius: 10px;
  background-color: white;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain; }

.basketThumbnailInstitutionInfos {
  display: flex;
  flex-direction: column; }

.basketThumbnailInstitutionName {
  padding: 0px 10px; }

.basketThumbnailInstitutionPrice {
  text-align: left;
  padding: 0px 10px;
  color: #9ca1a7;
  font-size: 1.3rem; }

.btn-loading {
  position: relative;
  color: transparent !important;
  pointer-events: none; }
  .btn-loading::after {
    content: '';
    position: absolute;
    width: 16px;
    height: 16px;
    top: calc(50% - 8px);
    left: calc(50% - 8px);
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, 0.4);
    border-top-color: #fff;
    animation: btn-spin 0.65s linear infinite; }

@keyframes btn-spin {
  to {
    transform: rotate(360deg); } }
.insInfo {
  padding: 12px 20px 0px;
  width: 100%; }

.basketView {
  display: flex;
  justify-content: center; }

#basketContact {
  row-gap: 10px;
  display: flex;
  flex-direction: column; }

@media (max-width: 767px) {
  .basketView .insHeaderCenterContainer {
    flex-direction: row;
    padding: 0px 20px !important; }
  .basketView #profile_image_container {
    width: 60px !important;
    height: 60px !important;
    margin-top: 0px !important; }
  .basketView #profile_img_div {
    width: 60px !important;
    height: 60px !important; }
  .basketView .insInfo {
    padding: 12px 20px 20px; }

  #basketStep {
    display: inline-flex;
    flex-direction: column-reverse; }

  #basketLeftPanel, #FinalBasketPaymentActions {
    padding: 0px !important; } }
.basket-panel-right .box-message {
  padding: 0px 25px; }
  @media (max-width: 767px) {
    .basket-panel-right .box-message {
      padding: 0px; } }

#BasketEditAddressForm {
  max-width: 460px; }

@media (max-width: 767px) {
  #BasketProduct div {
    display: none; } }

.checkout-layout {
  display: flex;
  gap: 20px;
  align-items: flex-start; }

.checkout-summary-col {
  position: sticky;
  top: 80px;
  align-self: flex-start;
  margin-bottom: 20px; }
  @media (max-width: 991px) {
    .checkout-summary-col {
      position: static; } }

.checkout-summary-sticky {
  background: #fff;
  border: 1px solid var(--blue-light);
  border-radius: 10px;
  padding: 16px; }

@media (max-width: 767px) {
  .checkout-layout {
    flex-direction: column-reverse; }

  .checkout-main-col,
  .checkout-summary-col {
    width: 100%;
    padding: 0 var(--sp-4, 16px); } }
.checkout-block {
  margin-bottom: 30px; }
  .checkout-block input {
    background: white; }

.checkout-block__title {
  font-size: 1.6rem;
  font-weight: 600;
  margin: 0 0 12px;
  color: var(--blue-dark); }

.checkout-block__subtitle {
  font-size: 1.3rem;
  color: #666;
  margin: -4px 0 12px; }

.checkout-user-card {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid var(--blue-light);
  border-radius: var(--border-radius-little);
  background: #fafafa;
  font-size: 1.3rem; }
  .checkout-user-card .checkout-user-card__email {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap; }
  .checkout-user-card .checkout-user-card__action {
    font-size: var(--ds-fs-secondary);
    color: var(--blue-dark);
    cursor: pointer; }

.checkout-error {
  margin-top: 8px;
  padding: 8px 10px;
  background: #fdecea;
  border: 1px solid #f5c2c0;
  border-radius: 6px;
  color: #b71c1c;
  font-size: var(--ds-fs-secondary); }
  .checkout-error:empty {
    display: none; }

.fulfillment-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  border: 1px solid var(--blue-light);
  border-radius: var(--border-radius-little);
  overflow: hidden;
  margin-bottom: 16px; }

.fulfillment-tab {
  appearance: none;
  background: #fff;
  border: none;
  border-right: 1px solid var(--blue-light);
  padding: 12px 14px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 1.35rem;
  color: #333;
  transition: background 0.2s ease, color 0.2s ease; }
  .fulfillment-tab__radio {
    width: 18px;
    height: 18px;
    min-width: 18px;
    border-radius: 999px;
    border: 2px solid var(--blue-dark);
    background: #fff;
    position: relative;
    transition: border-color 0.2s ease, background 0.2s ease; }
    .fulfillment-tab__radio::after {
      content: "";
      position: absolute;
      inset: 2px;
      border-radius: 999px;
      background: transparent;
      transition: background 0.2s ease;
      width: 10px;
      height: 10px; }
  .fulfillment-tab:last-child {
    border-right: none; }
  .fulfillment-tab:hover {
    background: var(--blue-medium); }
  .fulfillment-tab i,
  .fulfillment-tab .fulfillment-tab__icon {
    font-size: 1.6rem;
    color: #888;
    transition: color 0.2s ease; }
  .fulfillment-tab--active {
    background: var(--blue-selected) !important;
    color: #fff; }
    .fulfillment-tab--active .fulfillment-tab__radio {
      border-color: #fff;
      background: rgba(255, 255, 255, 0); }
      .fulfillment-tab--active .fulfillment-tab__radio::after {
        background: #fff; }
    .fulfillment-tab--active i,
    .fulfillment-tab--active .fulfillment-tab__icon {
      color: #fff; }
  .fulfillment-tab--disabled {
    opacity: .65; }
    .fulfillment-tab--disabled .fulfillment-tab__radio {
      border-color: #c7d1dc;
      background: #f5f7fa; }

.fulfillment-panel {
  display: none; }
  .fulfillment-panel--active {
    display: block; }

.address-picker {
  display: flex;
  flex-direction: column;
  gap: 8px; }

.address-card {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px;
  border: 1px solid var(--blue-light);
  border-radius: var(--border-radius-little);
  cursor: pointer;
  background: #fff;
  transition: border-color 0.2s ease, box-shadow 0.2s ease; }
  .address-card:hover {
    border-color: var(--blue-selected); }
  .address-card__radio {
    position: relative;
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 2px solid var(--blue-dark);
    margin-top: 2px; }
    .address-card__radio::after {
      content: "";
      position: absolute;
      top: 50%;
      left: 50%;
      width: 10px;
      height: 10px;
      border-radius: 50%;
      background: var(--blue-selected);
      transform: translate(-50%, -50%) scale(0);
      opacity: 0;
      transition: transform 0.15s ease, opacity 0.15s ease; }
  .address-card--selected {
    border-color: var(--blue-selected);
    box-shadow: inset 0 0 0 1px var(--blue-selected); }
    .address-card--selected .address-card__radio {
      border-color: var(--blue-selected); }
    .address-card--selected .address-card__radio::after {
      opacity: 1;
      transform: translate(-50%, -50%) scale(1); }
  .address-card__body {
    flex: 1;
    font-size: 1.3rem;
    color: #333; }
  .address-card__name {
    font-weight: 600;
    margin-bottom: 2px; }
  .address-card__lines {
    color: #555;
    line-height: 1.4; }
  .address-card__actions {
    margin-top: 4px;
    font-size: var(--ds-fs-secondary); }
    .address-card__actions a {
      color: var(--blue-dark);
      cursor: pointer;
      margin-right: 8px; }
      .address-card__actions a:hover {
        text-decoration: underline; }

.address-add-btn {
  appearance: none;
  background: #fff;
  border: 1px dashed var(--blue-light);
  border-radius: var(--border-radius-little);
  padding: 12px;
  cursor: pointer;
  color: var(--blue-selected);
  font-size: 1.3rem;
  text-align: left;
  display: flex;
  align-items: center;
  gap: 8px;
  transition: border-color 0.2s ease, background 0.2s ease; }
  .address-add-btn:hover {
    border-color: var(--blue-selected);
    background: var(--blue-medium); }
  .address-add-btn i {
    font-size: 1.2rem; }

.checkout-address-form {
  display: flex;
  flex-direction: column; }
  .checkout-address-form__fields {
    display: flex;
    flex-direction: column; }
  .checkout-address-form__actions {
    display: flex;
    justify-content: flex-end; }

.delivery-modes-title {
  font-size: 1.4rem;
  font-weight: 600;
  margin: 0 0 8px;
  color: var(--blue-dark); }

.delivery-modes-hint {
  padding: 12px;
  border: 1px dashed var(--blue-light);
  border-radius: 8px;
  background: white;
  color: #666;
  font-size: 1.3rem;
  text-align: center; }

.delivery-mode-list {
  display: flex;
  flex-direction: column;
  gap: 8px; }

.delivery-mode-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px;
  border: 1px solid var(--blue-light);
  border-radius: var(--border-radius-little);
  background: #fff;
  cursor: pointer;
  transition: border-color 0.2s ease, box-shadow 0.2s ease; }
  .delivery-mode-card:hover {
    border-color: var(--blue-selected); }
  .delivery-mode-card__radio {
    position: relative;
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 2px solid var(--blue-dark); }
    .delivery-mode-card__radio::after {
      content: "";
      position: absolute;
      top: 50%;
      left: 50%;
      width: 10px;
      height: 10px;
      border-radius: 50%;
      background: var(--blue-selected);
      transform: translate(-50%, -50%) scale(0);
      opacity: 0;
      transition: transform 0.15s ease, opacity 0.15s ease; }
  .delivery-mode-card--selected {
    border-color: var(--blue-selected);
    box-shadow: inset 0 0 0 1px var(--blue-selected); }
    .delivery-mode-card--selected .delivery-mode-card__radio {
      border-color: var(--blue-selected); }
    .delivery-mode-card--selected .delivery-mode-card__radio::after {
      opacity: 1;
      transform: translate(-50%, -50%) scale(1); }
  .delivery-mode-card__main {
    flex: 1; }
  .delivery-mode-card__name {
    font-weight: 600;
    font-size: 1.35rem;
    color: #333; }
  .delivery-mode-card__sub {
    margin-top: 2px;
    font-size: var(--ds-fs-secondary);
    color: #666; }
  .delivery-mode-card__price {
    font-weight: 600;
    font-size: 1.35rem;
    color: var(--blue-dark); }

.payment-methods-block,
.billing-address-block,
.remember-me-block {
  margin-bottom: 16px; }
  .payment-methods-block .checkout-block__subtitle,
  .billing-address-block .checkout-block__subtitle,
  .remember-me-block .checkout-block__subtitle {
    font-size: 1.4rem;
    font-weight: 600;
    color: var(--blue-dark);
    margin: 0 0 8px; }

.billing-same-label {
  display: inline-flex;
  align-items: center;
  margin-bottom: 10px; }

.billing-optional-hint {
  font-size: var(--ds-fs-secondary);
  color: #888;
  font-style: italic; }

.billing-address-header {
  margin-bottom: 6px; }

.payment-picker {
  display: flex;
  flex-direction: column;
  gap: 8px; }

.payment-card {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px;
  border: 1px solid var(--blue-light);
  border-radius: var(--border-radius-little);
  cursor: pointer;
  background: #fff;
  transition: border-color 0.2s ease, box-shadow 0.2s ease; }
  .payment-card:hover {
    border-color: var(--blue-selected); }
  .payment-card__radio {
    position: relative;
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 2px solid var(--blue-dark);
    margin-top: 2px; }
    .payment-card__radio::after {
      content: "";
      position: absolute;
      top: 50%;
      left: 50%;
      width: 10px;
      height: 10px;
      border-radius: 50%;
      background: var(--blue-selected);
      transform: translate(-50%, -50%) scale(0);
      opacity: 0;
      transition: transform 0.15s ease, opacity 0.15s ease; }
  .payment-card--selected {
    border-color: var(--blue-selected);
    box-shadow: inset 0 0 0 1px var(--blue-selected);
    cursor: unset; }
    .payment-card--selected .payment-card__radio {
      border-color: var(--blue-selected); }
    .payment-card--selected .payment-card__radio::after {
      opacity: 1;
      transform: translate(-50%, -50%) scale(1); }
  .payment-card__icon {
    flex-shrink: 0;
    width: 28px;
    text-align: center;
    font-size: 1.7rem;
    color: var(--blue-dark);
    margin-top: 1px; }
  .payment-card__body {
    flex: 1;
    font-size: 1.3rem;
    color: #333;
    text-align: left; }
  .payment-card__title {
    font-weight: 600;
    margin-bottom: 2px; }
  .payment-card__details {
    color: #555;
    line-height: 1.4; }
  .payment-card__badge {
    display: inline-block;
    background-color: var(--blue-selected);
    border-radius: 4px;
    padding: 0 6px;
    color: #fff;
    font-size: var(--ds-fs-caption);
    margin-left: 6px; }
  .payment-card__actions {
    margin-top: 4px;
    font-size: var(--ds-fs-secondary); }
    .payment-card__actions a {
      color: var(--blue-dark);
      cursor: pointer;
      margin-right: 8px; }
      .payment-card__actions a:hover {
        text-decoration: underline; }

.inline-card-form .card-form-actions {
  display: none !important; }

.pickup-info {
  border: 1px solid var(--blue-light);
  border-radius: var(--border-radius-little);
  padding: 12px;
  background: white; }
  .pickup-info__name {
    font-weight: 600;
    font-size: 1.35rem;
    color: var(--blue-dark); }
  .pickup-info__address {
    margin-top: 2px;
    font-size: 1.3rem;
    color: #555;
    line-height: 1.4; }
  .pickup-info__time {
    margin-top: 4px;
    font-size: var(--ds-fs-secondary);
    color: #666; }

.checkout-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1050; }
  .checkout-modal[aria-hidden="false"] {
    display: block; }
  .checkout-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.45); }
  .checkout-modal__dialog {
    position: relative;
    max-width: 500px;
    margin: 60px auto;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 6px 30px rgba(0, 0, 0, 0.25);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    max-height: calc(100vh - 120px); }
    @media (max-width: 575px) {
      .checkout-modal__dialog {
        margin: 20px 12px;
        max-height: calc(100vh - 40px); } }
  .checkout-modal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px;
    border-bottom: 1px solid var(--blue-light); }
  .checkout-modal__title {
    font-size: 1.5rem;
    font-weight: 600;
    margin: 0;
    color: var(--blue-dark); }
  .checkout-modal__close {
    appearance: none;
    background: none;
    border: none;
    cursor: pointer;
    font-size: 1.8rem;
    color: #666;
    padding: 0 4px; }
    .checkout-modal__close:hover {
      color: var(--blue-dark); }
  .checkout-modal__body {
    padding: 16px;
    overflow-y: auto; }

body.checkout-modal-open {
  overflow: hidden; }

.checkout-loader {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 14px;
  color: #666;
  font-size: 1.3rem; }
  .checkout-loader .lds-ring {
    width: 22px;
    height: 22px; }
    .checkout-loader .lds-ring div {
      width: 18px;
      height: 18px;
      border-width: 2px; }
  .checkout-loader__text {
    font-style: italic; }

.d-flex {
  display: flex; }

.flex-column {
  flex-direction: column; }

#deliveryModeContainerValue.is-loading,
#paymentModeContainer.is-loading {
  position: relative; }
  #deliveryModeContainerValue.is-loading > *:not(.checkout-loader),
  #paymentModeContainer.is-loading > *:not(.checkout-loader) {
    opacity: 0.45;
    pointer-events: none; }
  #deliveryModeContainerValue.is-loading .checkout-loader,
  #paymentModeContainer.is-loading .checkout-loader {
    inset: 0;
    background: rgba(255, 255, 255, 0.6); }

.productTotalIncludingTaxes.price-loading .price-loading__text {
  display: inline-block;
  font-style: italic;
  color: #888;
  font-size: 0.85em;
  font-weight: normal;
  animation: price-loading-pulse 1.2s ease-in-out infinite; }

.basket-drawer__panel .wi45 {
  padding-left: 0px; }
.basket-drawer__panel .wi55 {
  position: relative;
  top: unset; }
.basket-drawer__panel #shopProductDetailsContainer {
  padding-top: 30px; }
.basket-drawer__panel .add-to-basket-btn {
  position: fixed;
  right: 0;
  bottom: 0;
  background: white;
  width: 100%;
  padding: 12px 30px;
  border-top: 1px solid var(--blue-medium);
  z-index: 10; }
.basket-drawer__panel #shopProductDetailsForm {
  padding-bottom: 80px; }

@keyframes price-loading-pulse {
  0%, 100% {
    opacity: 0.45; }
  50% {
    opacity: 1; } }
.checkout-summary-sticky {
  position: relative; }
  .checkout-summary-sticky .summary-loader-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: rgba(255, 255, 255, 0.7);
    color: #444;
    font-size: 1.3rem;
    font-style: italic;
    z-index: 5;
    border-radius: inherit;
    pointer-events: none; }
    .checkout-summary-sticky .summary-loader-overlay .lds-ring {
      width: 22px;
      height: 22px; }
      .checkout-summary-sticky .summary-loader-overlay .lds-ring div {
        width: 18px;
        height: 18px;
        border-width: 2px; }
    .checkout-summary-sticky .summary-loader-overlay__text {
      animation: price-loading-pulse 1.2s ease-in-out infinite; }

.ui-autocomplete {
  z-index: 30000 !important; }

.basket-promo-code {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  width: 100%; }
  .basket-promo-code > .dynInput {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0; }
  .basket-promo-code > .btn {
    flex: 0 0 auto;
    height: var(--control-h, 4.4rem); }

#inputPromotionnalCode {
  padding: 0 15px; }

.basket-tax-note {
  font-size: 1.3rem;
  font-weight: normal;
  color: var(--text-2, rgba(0, 0, 0, 0.72)); }

#billingAddressContainer {
  width: 100%; }

#payment_container.order-confirm {
  display: block;
  max-width: 640px;
  width: 100%;
  margin: 0 auto;
  padding: 48px 24px 64px;
  font-size: 1.4rem;
  line-height: 1.5;
  color: var(--text-color);
  text-align: left; }
  @media (max-width: 599px) {
    #payment_container.order-confirm {
      padding: 32px 16px 48px; } }
  #payment_container.order-confirm p {
    margin: 0 0 4px;
    font: inherit;
    letter-spacing: normal; }

.order-confirm__hero {
  text-align: center; }

.order-confirm__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--field-accent, var(--color-primary)) 12%, #fff);
  color: var(--field-accent, var(--color-primary));
  font-size: 2.4rem; }

.order-confirm__title {
  margin: 16px 0 8px;
  font-family: var(--title-font-family), sans-serif;
  font-size: 2.4rem;
  line-height: 3.2rem;
  font-weight: 600;
  color: var(--title-color); }
  @media (max-width: 599px) {
    .order-confirm__title {
      font-size: 2rem;
      line-height: 2.8rem; } }

.order-confirm__meta {
  font-size: 1.4rem;
  opacity: .8; }

#payment_container .order-confirm__banner {
  margin: 24px 0 16px;
  font-size: 1.4rem;
  color: var(--text-color); }
  #payment_container .order-confirm__banner:not(.ds-banner-warning) {
    background: color-mix(in srgb, var(--field-accent, var(--color-primary)) 8%, #fff);
    border-left-color: var(--field-accent, var(--color-primary)); }

.order-confirm__wire {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 4px 16px;
  margin: 8px 0 0; }
  .order-confirm__wire dt {
    font-weight: 600; }
  .order-confirm__wire dd {
    margin: 0;
    overflow-wrap: anywhere; }

.order-confirm__card {
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: min(var(--border-radius-medium, 12px), 16px);
  padding: 24px;
  margin-bottom: 16px; }
  @media (max-width: 599px) {
    .order-confirm__card {
      padding: 16px; } }

#payment_container .order-confirm__card-title {
  margin: 0 0 12px;
  font-family: var(--text-font-family), sans-serif;
  letter-spacing: normal;
  font-size: 1.5rem;
  line-height: 2rem;
  font-weight: 600;
  color: var(--text-color); }

.order-confirm__items {
  list-style: none;
  margin: 0 0 8px;
  padding: 0; }

.order-confirm__item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06); }
  .order-confirm__item:first-child {
    padding-top: 0; }

.order-confirm__thumb {
  flex: none;
  width: 48px;
  height: 48px;
  border-radius: var(--border-radius-little, 6px);
  object-fit: cover; }

.order-confirm__item-body {
  flex: 1 1 auto;
  min-width: 0; }

.order-confirm__name {
  font-weight: 500;
  overflow-wrap: anywhere; }

.order-confirm__opts,
.order-confirm__note {
  font-size: 1.3rem;
  opacity: .72; }

.order-confirm__qty {
  flex: none;
  font-size: 1.3rem;
  opacity: .72;
  white-space: nowrap; }

.order-confirm__price {
  flex: none;
  min-width: 64px;
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap; }

.order-confirm__totals {
  margin: 0; }
  .order-confirm__totals > div {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: 4px 0; }
  .order-confirm__totals dt {
    font-weight: normal; }
  .order-confirm__totals dd {
    margin: 0;
    font-variant-numeric: tabular-nums; }

.order-confirm__totals > .order-confirm__total {
  margin-top: 8px;
  padding-top: 12px;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  font-size: 1.6rem; }
  .order-confirm__totals > .order-confirm__total dt,
  .order-confirm__totals > .order-confirm__total dd {
    font-weight: 600; }

.order-confirm__cols {
  display: grid;
  gap: 16px; }
  @media (min-width: 600px) {
    .order-confirm__cols {
      grid-template-columns: 1fr 1fr; } }

.order-confirm__address {
  margin: 0;
  font-style: normal;
  line-height: 1.6; }

.order-confirm__gift {
  font-style: italic; }

.order-confirm__link {
  padding: 0;
  border: 0;
  background: none;
  color: var(--link-color, var(--color-primary));
  font: inherit;
  text-decoration: underline;
  cursor: pointer; }

.order-confirm__actions {
  margin-top: 32px;
  text-align: center; }
  @media (max-width: 599px) {
    .order-confirm__actions .btn {
      width: 100%; } }

.row-wrapper, #page-render-container {
  width: 100%;
  display: flex;
  flex-direction: column; }
  .row-wrapper .container-fluid, #page-render-container .container-fluid {
    display: flex;
    justify-content: center;
    max-width: 100vw; }
  .row-wrapper .btn, #page-render-container .btn {
    display: block; }
  .row-wrapper p, #page-render-container p {
    margin-bottom: 0px; }

.row-wrapper {
  justify-content: center;
  position: relative;
  width: auto;
  align-self: stretch; }

.builder-newsletter-form {
  gap: 10px;
  display: flex;
  flex-wrap: wrap;
  /* LOT SEC5 (RGPD) : case de consentement explicite, sur sa propre ligne sous le champ et le bouton. */ }
  .builder-newsletter-form input {
    flex: 1; }
  .builder-newsletter-form .builder-newsletter-consent {
    flex-basis: 100%; }
    .builder-newsletter-form .builder-newsletter-consent input {
      flex: none; }
  .builder-newsletter-form .shop-form-feedback {
    flex-basis: 100%; }

.constructor .entete {
  top: 60px; }

/* --- Base des éléments --- */
.builder-element {
  position: relative;
  min-height: 50px;
  /* Important : donne du corps aux éléments vides */
  transition: all 0.1s ease;
  /* On utilise outline au lieu de border pour ne pas décaler les pixels */
  outline: 2px dashed transparent;
  outline-offset: -2px;
  /* L'outline est À L'INTÉRIEUR de la boite */
  cursor: pointer;
  display: flex; }

/* --- L'astuce "Hit Box" (Zone de clic) --- */
/* Cela crée une couche invisible par-dessus l'élément pour capter la souris partout */
.builder-element::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
  /* Laisse passer les clics vers le texte/image */
  z-index: 1; }

/* --- Styles au survol (Classes ajoutées par JS) --- */
/* LIGNE : Bleu */
.builder-element.hover-row {
  outline: 2px solid #007bff60;
  z-index: 3; }
  .builder-element.hover-row .spacing-overlay {
    display: block !important;
    border-color: rgba(0, 123, 255, 0.2); }

.type-widget.edit-selection {
  outline: 4px solid var(--warn-solid) !important;
  z-index: 2; }

.type-widget {
  display: inline-block;
  box-sizing: border-box;
  position: relative; }

*, *::before, *::after {
  box-sizing: border-box; }

/* Pour que la toolbar passe au-dessus */
.builder-element.hover-row > .builder-toolbar {
  display: flex;
  background-color: var(--info-solid);
  z-index: 3; }

.type-row.edit-selection {
  outline: 4px solid var(--info-solid) !important;
  z-index: 2; }

.type-row {
  overflow-x: clip;
  overflow-y: visible; }
  .type-row:hover .add-col-btn-container {
    display: block; }

.clr-picker {
  z-index: 2000; }

.clr-field {
  border-radius: Min(var(--border-radius-little), 10px);
  overflow: hidden;
  max-width: 200px; }
  .clr-field button {
    border-radius: Min(var(--border-radius-little), 10px);
    margin: 0px 2px;
    height: calc(100% - 4px);
    width: 50px; }
  .clr-field input {
    padding: 5px; }

/* COLONNE : Vert */
.builder-element.hover-col {
  outline: 2px solid var(--ok-solid);
  z-index: 3;
  /* Passe au-dessus de la ligne */ }
  .builder-element.hover-col .spacing-overlay {
    display: block !important;
    border-color: rgba(40, 167, 69, 0.2);
    /* Fond vert un peu plus visible */ }

div[data-wtype="newsletter"] {
  width: 100%;
  max-width: 600px; }

div[data-wtype="contact"] {
  width: 100%;
  max-width: 600px; }

.builder-contact-form {
  display: flex;
  gap: 10px;
  justify-content: center;
  flex-direction: column; }

.type-col {
  width: 100%;
  position: relative;
  display: flex;
  flex-direction: column; }

.type-col.edit-selection {
  outline: 4px solid var(--ok-solid) !important;
  z-index: 2; }

.builder-element.hover-col > .builder-toolbar {
  display: flex;
  background-color: var(--ok-solid); }

/* WIDGET : Orange */
.builder-element.hover-widget {
  outline: 2px solid var(--warn-solid);
  z-index: 3;
  /* Passe au-dessus de la colonne */ }
  .builder-element.hover-widget .spacing-overlay {
    display: block !important;
    border-color: rgba(255, 193, 7, 0.2);
    /* Fond orange */ }

.builder-element.hover-widget > .builder-toolbar {
  display: flex;
  background-color: var(--warn-solid);
  color: var(--text); }

/* --- La Toolbar (inchangée mais z-index augmenté) --- */
.builder-toolbar {
  display: none;
  position: absolute;
  top: 0px;
  /* Un peu plus compact */
  left: 50%;
  height: 30px;
  transform: translateX(-50%);
  z-index: 100;
  /* Toujours tout au-dessus */
  color: var(--text-inverse);
  padding: 5px 10px;
  border-radius: 4px;
  box-shadow: 0 -2px 5px var(--shadow);
  align-items: center; }

.type-widget .builder-toolbar {
  top: -22px; }

.builder-add-section {
  bottom: 0px;
  top: unset;
  right: unset;
  left: 50%;
  transform: translateX(-50%);
  align-items: center;
  height: 30px;
  border-radius: 3px;
  width: auto;
  align-content: center;
  justify-content: center;
  justify-self: center;
  cursor: pointer; }
  .builder-add-section span {
    margin: 0px 5px; }

.type-widget .builder-toolbar.builder-add-section {
  bottom: -22px;
  top: unset; }

.builder-add-column {
  right: 0px;
  bottom: unset;
  left: unset;
  top: 50%;
  transform: translateY(-50%);
  align-items: center;
  height: auto;
  width: 30px;
  align-content: center;
  justify-content: center;
  justify-self: center;
  cursor: pointer;
  flex-direction: column; }
  .builder-add-column span {
    margin: 3px 0px; }

.toolbar-col {
  left: 0px;
  bottom: unset;
  right: unset;
  top: 50%;
  transform: translateY(-50%);
  align-items: center;
  height: auto;
  width: 30px;
  align-content: center;
  justify-content: center;
  justify-self: center;
  cursor: pointer;
  flex-direction: column; }
  .toolbar-col span {
    margin: 3px 0px; }

.builder-toolbar-text {
  font-size: var(--ds-fs-secondary); }

.btn-add-first-widget {
  margin: 5px; }

.builder-btn {
  margin-left: 8px;
  cursor: pointer;
  opacity: 0.8; }

.builder-btn:hover {
  opacity: 1;
  transform: scale(1.1); }

.builder-principal-btn {
  cursor: pointer;
  height: 60px;
  padding: 0px 20px;
  background: rgba(255, 255, 255, 0.15); }
  .builder-principal-btn:hover {
    background: rgba(255, 255, 255, 0.2); }

.builder-secondary-btn {
  cursor: pointer;
  padding: 6px 15px;
  background: rgba(255, 255, 255, 0.15);
  border-radius: Min(5px, var(--border-radius-little));
  color: var(--text-inverse); }
  .builder-secondary-btn:hover {
    background: rgba(255, 255, 255, 0.2);
    color: var(--text-inverse) !important;
    opacity: 1 !important; }

.container-link {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  inset: 0;
  z-index: 1; }

.constructor .container-link {
  pointer-events: none; }

.row-section {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  height: 100%;
  justify-content: flex-start;
  width: 100%; }
  .row-section .col-12 {
    display: inline-flex; }

.nav-tabs {
  --bs-nav-tabs-border-color: transparent;
  --bs-nav-tabs-link-hover-border-color: transparent;
  --bs-nav-tabs-link-active-color: var(--blue-selected);
  --bs-nav-tabs-link-active-bg: transparent;
  --bs-nav-tabs-link-active-border-color: transparent;
  border-bottom: transparent; }

.nav {
  --bs-nav-link-color: transparent;
  --bs-nav-link-hover-color: transparent;
  --bs-nav-link-disabled-color: transparent; }

#lbl-upload-file {
  text-align: right; }

.ui-sortable-placeholder {
  border: 2px dashed var(--line-strong);
  background: var(--surface-2);
  visibility: visible !important;
  min-height: 50px;
  margin-bottom: 15px; }

.container-fluid {
  padding: 0px;
  border: 0px solid transparent; }

#configModal {
  z-index: 1;
  position: sticky;
  left: 0;
  top: 60px;
  width: 350px;
  height: calc(100vh - 60px);
  color: var(--text-inverse);
  padding: 15px;
  overflow-y: auto;
  overflow-x: hidden;
  text-align: left;
  background-color: var(--blue-dim); }
  #configModal input, #configModal textarea, #configModal select {
    padding: 5px 5px;
    min-height: 36px; }

.config-tab {
  margin-bottom: 16px;
  padding-top: 20px;
  border-top: 1px solid #ffffff30; }

.config-tab-title {
  font-weight: bold;
  font-size: 1.7rem;
  margin-bottom: 0px;
  display: inline-block; }
  .config-tab-title.with-margin {
    margin-bottom: 20px; }

.config-label {
  opacity: 0.8;
  font-size: 1.3rem;
  margin-bottom: 5px;
  margin-top: 20px;
  display: inline-block; }

.config-value {
  margin-top: 20px; }

.config-range .config-label, .config-range .config-value {
  margin-top: 0px; }

.anim {
  opacity: 0;
  will-change: transform, opacity; }

.anim.is-visible {
  /* L'animation reprend la main sur l'opacité */
  animation-duration: 0.6s;
  animation-fill-mode: both;
  /* Reste visible à la fin */
  animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94); }

/* 1. Depuis le bas (Fade Up) */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translate3d(0, 40px, 0); }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0); } }
.anim.is-visible.anim-bottom {
  animation-name: fadeInUp; }

/* 2. Depuis la gauche (Slide Right) */
@keyframes fadeInLeft {
  from {
    opacity: 0;
    transform: translate3d(-150px, 0, 0); }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0); } }
.anim.is-visible.anim-left {
  animation-name: fadeInLeft; }

/* 3. Depuis la droite (Slide Left) */
@keyframes fadeInRight {
  from {
    opacity: 0;
    transform: translate3d(150px, 0, 0); }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0); } }
.anim.is-visible.anim-right {
  animation-name: fadeInRight; }

.marquee-rtl, .marquee-ltr {
  overflow-x: clip;
  position: relative; }
  .marquee-rtl:hover .type-col, .marquee-ltr:hover .type-col {
    animation-play-state: paused; }
  .marquee-rtl > .type-col, .marquee-rtl.type-widget > span, .marquee-rtl.type-widget > h2, .marquee-rtl.type-widget > button, .marquee-rtl.type-widget > h2, .marquee-ltr > .type-col, .marquee-ltr.type-widget > span, .marquee-ltr.type-widget > h2, .marquee-ltr.type-widget > button, .marquee-ltr.type-widget > h2 {
    flex-direction: row !important;
    width: auto !important;
    padding-left: 100% !important;
    /* un peu d'espace pour la transition */
    padding-right: 2em !important;
    /* placement à droite du conteneur */
    white-space: nowrap;
    /* pas de passage à la ligne */
    animation: defilement-rtl 0s infinite linear;
    animation-duration: inherit;
    animation-timing-function: linear !important;
    justify-content: flex-end !important; }
    .marquee-rtl > .type-col .type-widget, .marquee-rtl.type-widget > span .type-widget, .marquee-rtl.type-widget > h2 .type-widget, .marquee-rtl.type-widget > button .type-widget, .marquee-rtl.type-widget > h2 .type-widget, .marquee-ltr > .type-col .type-widget, .marquee-ltr.type-widget > span .type-widget, .marquee-ltr.type-widget > h2 .type-widget, .marquee-ltr.type-widget > button .type-widget, .marquee-ltr.type-widget > h2 .type-widget {
      width: auto !important; }

.marquee-ltr > .type-col, .marquee-ltr.type-widget > span, .marquee-ltr.type-widget > h2, .marquee-ltr.type-widget > button, .marquee-ltr.type-widget > h2 {
  animation: defilement-ltr 0s infinite linear;
  padding-left: 100% !important;
  /* un peu d'espace pour la transition */
  padding-right: 2em !important;
  /* placement à droite du conteneur */
  justify-content: flex-start !important; }

/* 4. Depuis le centre (Zoom In) */
@keyframes zoomIn {
  from {
    opacity: 0;
    transform: scale(0.8); }
  to {
    opacity: 1;
    transform: scale(1); } }
@keyframes fadeIn {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }
@keyframes defilement-rtl {
  from {
    transform: translate3d(0, 0, 0); }
  to {
    transform: translate3d(-100%, 0, 0); } }
@keyframes defilement-ltr {
  from {
    transform: translate3d(-100%, 0, 0); }
  to {
    transform: translate3d(0, 0, 0); } }
.anim.is-visible.anim-center {
  animation-name: zoomIn; }

.anim.is-visible.anim-opacity {
  animation-name: fadeIn; }

.section-parallax {
  position: relative;
  overflow: hidden;
  /* Important : cache ce qui dépasse */
  height: auto;
  background-attachment: fixed; }

.section-parallax .row-section {
  will-change: transform;
  /* Optimisation GPU */ }

.config-label.flex-1 {
  margin-bottom: 0px; }

#page-render-preview {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center; }

.img-preview-container {
  position: relative; }

.img-preview {
  max-height: 100px;
  max-width: 100%;
  object-fit: contain;
  margin: 5px;
  border-radius: 5px; }
  .img-preview button {
    position: absolute;
    top: 5px;
    left: 5px;
    width: 25px;
    height: 25px;
    padding: 0px; }

.btn-group {
  column-gap: 0px;
  background: var(--blue-light);
  border-radius: Min(var(--border-radius-little), 10px);
  padding: 3px; }
  .btn-group .btn {
    padding: 7px;
    background-color: transparent;
    color: var(--blue-dim) !important;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: Min(var(--border-radius-little), 10px); }
    .btn-group .btn:hover {
      background-color: transparent !important;
      color: var(--blue-selected) !important; }

.btn-check:checked + .btn {
  background-color: transparent;
  color: var(--blue-selected) !important;
  background: color-mix(in srgb, var(--blue-selected) 25%, transparent 0%) !important;
  border: 1px solid color-mix(in srgb, var(--blue-selected) 5%, transparent 0%); }

.importBtn {
  position: absolute;
  width: 50px;
  height: 50px;
  bottom: 5px;
  right: 5px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: Min(var(--border-radius-little), 10px) !important;
  cursor: pointer; }
  .importBtn:after {
    border-radius: 0px Min(var(--border-radius-little), 10px) Min(var(--border-radius-little), 10px) 0px !important; }
  .importBtn:before {
    background: var(--blue-light);
    opacity: 1;
    border-radius: 0; }

.preview-image-container {
  position: relative;
  background: var(--blue-light);
  border-radius: Min(var(--border-radius-little), 10px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 5px;
  height: 110px; }

.form-switch .form-check-input:focus {
  border-color: rgba(0, 0, 0, 0.25);
  outline: 0;
  box-shadow: 0 0 0 0 rgba(0, 0, 0, 0);
  background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba(0,0,0,0.25)'/></svg>"); }

.form-switch .form-check-input:focus-visible {
  outline: 2px solid var(--blue-selected);
  outline-offset: 2px; }

.form-switch .form-check-input:checked {
  background-color: var(--blue-selected);
  border-color: var(--blue-selected);
  border: none;
  background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba(255,255,255,1.0)'/></svg>"); }

@media (max-width: 767px) {
  .revert-order {
    flex-direction: column-reverse; } }

.caroussel-arrow-left, .caroussel-arrow-right {
  display: inline-flex;
  position: absolute;
  top: 50%;
  left: 0px;
  transform: translateY(-50%);
  z-index: 10;
  width: 40px;
  height: 40px;
  background: var(--blue-light);
  border-radius: var(--border-radius-medium);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer; }
  .caroussel-arrow-left:before, .caroussel-arrow-right:before {
    content: '\f060';
    font-family: 'Font Awesome 6 Pro';
    color: var(--text-color); }

.caroussel-arrow-right {
  left: unset;
  right: 0px; }
  .caroussel-arrow-right:before {
    content: '\f061'; }

input[type="range"] {
  accent-color: var(--blue-selected); }

@media (min-width: 768px) {
  .visible-xs {
    display: none !important; } }

.add-widget-btn-container .btn-add-widget, .add-col-btn-container .btn-add-widget {
  background-color: var(--warn-solid);
  padding: 5px 10px;
  border-radius: 5px; }

.add-col-btn-container .btn-add-widget {
  background-color: var(--ok-solid);
  color: var(--text-inverse); }

.hover.hover-background:hover {
  background: var(--hover-background) !important;
  transition: background var(--hover-duration) cubic-bezier(0.25, 0.46, 0.45, 0.94) !important; }

.hover.hover-color:hover {
  color: var(--hover-color) !important;
  border-color: var(--hover-color) !important;
  transition: color var(--hover-duration) cubic-bezier(0.25, 0.46, 0.45, 0.94), border var(--hover-duration) cubic-bezier(0.25, 0.46, 0.45, 0.94) !important; }

.hover.hover-zoom-in:hover {
  transform: scale(1.05);
  transition: transform var(--hover-duration) cubic-bezier(0.25, 0.46, 0.45, 0.94) !important; }

.hover.hover-zoom-out:hover {
  transform: scale(1.05);
  transition: transform var(--hover-duration) cubic-bezier(0.25, 0.46, 0.45, 0.94) !important; }

.editor-container .editor-toolbar {
  display: flex;
  flex-direction: row;
  padding: 6px 10px 10px;
  border-bottom: 1px solid var(--blue-medium);
  margin: 0px -10px; }
.editor-container .editor {
  margin: 10px 0px;
  min-height: 150px; }
  .editor-container .editor:focus {
    outline: none; }
.editor-container #output {
  display: none; }

.btn-tool {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 4px;
  transition: all 0.2s;
  color: #374151;
  border: 0px;
  margin-right: 6px;
  background: transparent; }

.btn-tool:hover {
  background-color: var(--surface-sunk); }

.btn-tool.active {
  color: var(--blue-selected) !important; }

::-webkit-scrollbar {
  width: 8px; }

::-webkit-scrollbar-track {
  background: var(--surface-sunk); }

::-webkit-scrollbar-thumb {
  background: #ccc;
  border-radius: 4px; }

.tool-select {
  height: 40px;
  background-color: var(--surface);
  border: 1px solid var(--line-strong);
  border-radius: 4px;
  padding: 0 8px;
  font-size: 14px;
  color: #374151;
  cursor: pointer;
  outline: none; }

.tool-select:focus {
  border-color: var(--info-solid); }

.color-picker-wrapper {
  position: relative;
  width: 40px;
  height: 40px;
  overflow: hidden;
  border-radius: 4px;
  border: 1px solid var(--line-strong); }

.color-picker-wrapper input[type="color"] {
  position: absolute;
  top: -5px;
  left: -5px;
  width: 50px;
  height: 50px;
  cursor: pointer;
  border: none;
  background: none; }

.pdt-0 {
  padding-top: 0; }

.pdt-5 {
  padding-top: 5px; }

.pdt-10 {
  padding-top: 10px; }

.pdt-15 {
  padding-top: 15px; }

.pdt-20 {
  padding-top: 20px; }

.pdt-25 {
  padding-top: 25px; }

.pdt-30 {
  padding-top: 30px; }

.pdt-35 {
  padding-top: 35px; }

.pdt-40 {
  padding-top: 40px; }

.pdt-45 {
  padding-top: 45px; }

.pdt-50 {
  padding-top: 50px; }

.pdt-55 {
  padding-top: 55px; }

.pdt-60 {
  padding-top: 60px; }

.pdt-65 {
  padding-top: 65px; }

.pdt-70 {
  padding-top: 70px; }

.pdt-75 {
  padding-top: 75px; }

.pdt-80 {
  padding-top: 80px; }

.pdt-85 {
  padding-top: 85px; }

.pdt-90 {
  padding-top: 90px; }

.pdt-95 {
  padding-top: 95px; }

.pdt-100 {
  padding-top: 100px; }

.pdr-0 {
  padding-right: 0; }

.pdr-5 {
  padding-right: 5px; }

.pdr-10 {
  padding-right: 10px; }

.pdr-15 {
  padding-right: 15px; }

.pdr-20 {
  padding-right: 20px; }

.pdr-25 {
  padding-right: 25px; }

.pdr-30 {
  padding-right: 30px; }

.pdr-35 {
  padding-right: 35px; }

.pdr-40 {
  padding-right: 40px; }

.pdr-45 {
  padding-right: 45px; }

.pdr-50 {
  padding-right: 50px; }

.pdr-55 {
  padding-right: 55px; }

.pdr-60 {
  padding-right: 60px; }

.pdr-65 {
  padding-right: 65px; }

.pdr-70 {
  padding-right: 70px; }

.pdr-75 {
  padding-right: 75px; }

.pdr-80 {
  padding-right: 80px; }

.pdr-85 {
  padding-right: 85px; }

.pdr-90 {
  padding-right: 90px; }

.pdr-95 {
  padding-right: 95px; }

.pdr-100 {
  padding-right: 100px; }

.pdb-0 {
  padding-bottom: 0; }

.pdb-5 {
  padding-bottom: 5px; }

.pdb-10 {
  padding-bottom: 10px; }

.pdb-15 {
  padding-bottom: 15px; }

.pdb-20 {
  padding-bottom: 20px; }

.pdb-25 {
  padding-bottom: 25px; }

.pdb-30 {
  padding-bottom: 30px; }

.pdb-35 {
  padding-bottom: 35px; }

.pdb-40 {
  padding-bottom: 40px; }

.pdb-45 {
  padding-bottom: 45px; }

.pdb-50 {
  padding-bottom: 50px; }

.pdb-55 {
  padding-bottom: 55px; }

.pdb-60 {
  padding-bottom: 60px; }

.pdb-65 {
  padding-bottom: 65px; }

.pdb-70 {
  padding-bottom: 70px; }

.pdb-75 {
  padding-bottom: 75px; }

.pdb-80 {
  padding-bottom: 80px; }

.pdb-85 {
  padding-bottom: 85px; }

.pdb-90 {
  padding-bottom: 90px; }

.pdb-95 {
  padding-bottom: 95px; }

.pdb-100 {
  padding-bottom: 100px; }

.pdl-0 {
  padding-left: 0; }

.pdl-5 {
  padding-left: 5px; }

.pdl-10 {
  padding-left: 10px; }

.pdl-15 {
  padding-left: 15px; }

.pdl-20 {
  padding-left: 20px; }

.pdl-25 {
  padding-left: 25px; }

.pdl-30 {
  padding-left: 30px; }

.pdl-35 {
  padding-left: 35px; }

.pdl-40 {
  padding-left: 40px; }

.pdl-45 {
  padding-left: 45px; }

.pdl-50 {
  padding-left: 50px; }

.pdl-55 {
  padding-left: 55px; }

.pdl-60 {
  padding-left: 60px; }

.pdl-65 {
  padding-left: 65px; }

.pdl-70 {
  padding-left: 70px; }

.pdl-75 {
  padding-left: 75px; }

.pdl-80 {
  padding-left: 80px; }

.pdl-85 {
  padding-left: 85px; }

.pdl-90 {
  padding-left: 90px; }

.pdl-95 {
  padding-left: 95px; }

.pdl-100 {
  padding-left: 100px; }

@media (max-width: 767px) {
  /* TOP */
  .pdt-20 {
    padding-top: 15px; }

  .pdt-25 {
    padding-top: 16px; }

  .pdt-30 {
    padding-top: 18px; }

  .pdt-35 {
    padding-top: 20px; }

  .pdt-40 {
    padding-top: 22px; }

  .pdt-45 {
    padding-top: 24px; }

  .pdt-50 {
    padding-top: 26px; }

  .pdt-55 {
    padding-top: 28px; }

  .pdt-60 {
    padding-top: 30px; }

  .pdt-65 {
    padding-top: 32px; }

  .pdt-70 {
    padding-top: 34px; }

  .pdt-75 {
    padding-top: 35px; }

  .pdt-80 {
    padding-top: 36px; }

  .pdt-85 {
    padding-top: 37px; }

  .pdt-90 {
    padding-top: 38px; }

  .pdt-95 {
    padding-top: 39px; }

  .pdt-100 {
    padding-top: 40px; }

  /* RIGHT */
  .pdr-20 {
    padding-right: 15px; }

  .pdr-25 {
    padding-right: 16px; }

  .pdr-30 {
    padding-right: 18px; }

  .pdr-35 {
    padding-right: 20px; }

  .pdr-40 {
    padding-right: 22px; }

  .pdr-45 {
    padding-right: 24px; }

  .pdr-50 {
    padding-right: 26px; }

  .pdr-55 {
    padding-right: 28px; }

  .pdr-60 {
    padding-right: 30px; }

  .pdr-65 {
    padding-right: 32px; }

  .pdr-70 {
    padding-right: 34px; }

  .pdr-75 {
    padding-right: 35px; }

  .pdr-80 {
    padding-right: 36px; }

  .pdr-85 {
    padding-right: 37px; }

  .pdr-90 {
    padding-right: 38px; }

  .pdr-95 {
    padding-right: 39px; }

  .pdr-100 {
    padding-right: 40px; }

  /* BOTTOM */
  .pdb-20 {
    padding-bottom: 15px; }

  .pdb-25 {
    padding-bottom: 16px; }

  .pdb-30 {
    padding-bottom: 18px; }

  .pdb-35 {
    padding-bottom: 20px; }

  .pdb-40 {
    padding-bottom: 22px; }

  .pdb-45 {
    padding-bottom: 24px; }

  .pdb-50 {
    padding-bottom: 26px; }

  .pdb-55 {
    padding-bottom: 28px; }

  .pdb-60 {
    padding-bottom: 30px; }

  .pdb-65 {
    padding-bottom: 32px; }

  .pdb-70 {
    padding-bottom: 34px; }

  .pdb-75 {
    padding-bottom: 35px; }

  .pdb-80 {
    padding-bottom: 36px; }

  .pdb-85 {
    padding-bottom: 37px; }

  .pdb-90 {
    padding-bottom: 38px; }

  .pdb-95 {
    padding-bottom: 39px; }

  .pdb-100 {
    padding-bottom: 40px; }

  /* LEFT */
  .pdl-20 {
    padding-left: 15px; }

  .pdl-25 {
    padding-left: 16px; }

  .pdl-30 {
    padding-left: 18px; }

  .pdl-35 {
    padding-left: 20px; }

  .pdl-40 {
    padding-left: 22px; }

  .pdl-45 {
    padding-left: 24px; }

  .pdl-50 {
    padding-left: 26px; }

  .pdl-55 {
    padding-left: 28px; }

  .pdl-60 {
    padding-left: 30px; }

  .pdl-65 {
    padding-left: 32px; }

  .pdl-70 {
    padding-left: 34px; }

  .pdl-75 {
    padding-left: 35px; }

  .pdl-80 {
    padding-left: 36px; }

  .pdl-85 {
    padding-left: 37px; }

  .pdl-90 {
    padding-left: 38px; }

  .pdl-95 {
    padding-left: 39px; }

  .pdl-100 {
    padding-left: 40px; } }
/* TOP */
.mgt-0 {
  margin-top: 0; }

.mgt-5 {
  margin-top: 5px; }

.mgt-10 {
  margin-top: 10px; }

.mgt-15 {
  margin-top: 15px; }

.mgt-20 {
  margin-top: 20px; }

.mgt-25 {
  margin-top: 25px; }

.mgt-30 {
  margin-top: 30px; }

.mgt-35 {
  margin-top: 35px; }

.mgt-40 {
  margin-top: 40px; }

.mgt-45 {
  margin-top: 45px; }

.mgt-50 {
  margin-top: 50px; }

.mgt-55 {
  margin-top: 55px; }

.mgt-60 {
  margin-top: 60px; }

.mgt-65 {
  margin-top: 65px; }

.mgt-70 {
  margin-top: 70px; }

.mgt-75 {
  margin-top: 75px; }

.mgt-80 {
  margin-top: 80px; }

.mgt-85 {
  margin-top: 85px; }

.mgt-90 {
  margin-top: 90px; }

.mgt-95 {
  margin-top: 95px; }

.mgt-100 {
  margin-top: 100px; }

/* BOTTOM */
.mgb-0 {
  margin-bottom: 0; }

.mgb-5 {
  margin-bottom: 5px; }

.mgb-10 {
  margin-bottom: 10px; }

.mgb-15 {
  margin-bottom: 15px; }

.mgb-20 {
  margin-bottom: 20px; }

.mgb-25 {
  margin-bottom: 25px; }

.mgb-30 {
  margin-bottom: 30px; }

.mgb-35 {
  margin-bottom: 35px; }

.mgb-40 {
  margin-bottom: 40px; }

.mgb-45 {
  margin-bottom: 45px; }

.mgb-50 {
  margin-bottom: 50px; }

.mgb-55 {
  margin-bottom: 55px; }

.mgb-60 {
  margin-bottom: 60px; }

.mgb-65 {
  margin-bottom: 65px; }

.mgb-70 {
  margin-bottom: 70px; }

.mgb-75 {
  margin-bottom: 75px; }

.mgb-80 {
  margin-bottom: 80px; }

.mgb-85 {
  margin-bottom: 85px; }

.mgb-90 {
  margin-bottom: 90px; }

.mgb-95 {
  margin-bottom: 95px; }

.mgb-100 {
  margin-bottom: 100px; }

/* LEFT */
.mgl-0 {
  margin-left: 0; }

.mgl-5 {
  margin-left: 5px; }

.mgl-10 {
  margin-left: 10px; }

.mgl-15 {
  margin-left: 15px; }

.mgl-20 {
  margin-left: 20px; }

.mgl-25 {
  margin-left: 25px; }

.mgl-30 {
  margin-left: 30px; }

.mgl-35 {
  margin-left: 35px; }

.mgl-40 {
  margin-left: 40px; }

.mgl-45 {
  margin-left: 45px; }

.mgl-50 {
  margin-left: 50px; }

.mgl-55 {
  margin-left: 55px; }

.mgl-60 {
  margin-left: 60px; }

.mgl-65 {
  margin-left: 65px; }

.mgl-70 {
  margin-left: 70px; }

.mgl-75 {
  margin-left: 75px; }

.mgl-80 {
  margin-left: 80px; }

.mgl-85 {
  margin-left: 85px; }

.mgl-90 {
  margin-left: 90px; }

.mgl-95 {
  margin-left: 95px; }

.mgl-100 {
  margin-left: 100px; }

/* RIGHT */
.mgr-0 {
  margin-right: 0; }

.mgr-5 {
  margin-right: 5px; }

.mgr-10 {
  margin-right: 10px; }

.mgr-15 {
  margin-right: 15px; }

.mgr-20 {
  margin-right: 20px; }

.mgr-25 {
  margin-right: 25px; }

.mgr-30 {
  margin-right: 30px; }

.mgr-35 {
  margin-right: 35px; }

.mgr-40 {
  margin-right: 40px; }

.mgr-45 {
  margin-right: 45px; }

.mgr-50 {
  margin-right: 50px; }

.mgr-55 {
  margin-right: 55px; }

.mgr-60 {
  margin-right: 60px; }

.mgr-65 {
  margin-right: 65px; }

.mgr-70 {
  margin-right: 70px; }

.mgr-75 {
  margin-right: 75px; }

.mgr-80 {
  margin-right: 80px; }

.mgr-85 {
  margin-right: 85px; }

.mgr-90 {
  margin-right: 90px; }

.mgr-95 {
  margin-right: 95px; }

.mgr-100 {
  margin-right: 100px; }

/* ===========================
   MOBILE ADAPTATION
   =========================== */
@media (max-width: 767px) {
  /* Margin TOP — réduction douce */
  .mgt-20 {
    margin-top: 18px; }

  .mgt-30 {
    margin-top: 24px; }

  .mgt-40 {
    margin-top: 30px; }

  .mgt-50 {
    margin-top: 36px; }

  .mgt-60 {
    margin-top: 42px; }

  .mgt-70 {
    margin-top: 48px; }

  .mgt-80 {
    margin-top: 52px; }

  .mgt-90 {
    margin-top: 56px; }

  .mgt-100 {
    margin-top: 60px; }

  /* Margin BOTTOM — séparé */
  .mgb-20 {
    margin-bottom: 18px; }

  .mgb-30 {
    margin-bottom: 24px; }

  .mgb-40 {
    margin-bottom: 30px; }

  .mgb-50 {
    margin-bottom: 36px; }

  .mgb-60 {
    margin-bottom: 42px; }

  .mgb-70 {
    margin-bottom: 48px; }

  .mgb-80 {
    margin-bottom: 52px; }

  .mgb-90 {
    margin-bottom: 56px; }

  .mgb-100 {
    margin-bottom: 60px; }

  /* Margin LEFT / RIGHT — réduction plus forte */
  .mgl-20 {
    margin-left: 15px; }

  .mgl-30 {
    margin-left: 18px; }

  .mgl-40 {
    margin-left: 22px; }

  .mgl-50 {
    margin-left: 26px; }

  .mgl-60 {
    margin-left: 30px; }

  .mgl-70 {
    margin-left: 34px; }

  .mgl-80 {
    margin-left: 36px; }

  .mgl-90 {
    margin-left: 38px; }

  .mgl-100 {
    margin-left: 40px; }

  .mgr-20 {
    margin-right: 15px; }

  .mgr-30 {
    margin-right: 18px; }

  .mgr-40 {
    margin-right: 22px; }

  .mgr-50 {
    margin-right: 26px; }

  .mgr-60 {
    margin-right: 30px; }

  .mgr-70 {
    margin-right: 34px; }

  .mgr-80 {
    margin-right: 36px; }

  .mgr-90 {
    margin-right: 38px; }

  .mgr-100 {
    margin-right: 40px; } }
/* ═══════════════════════════════════════════════
   core-table.css — Styles partagés CoreTable
   ═══════════════════════════════════════════════ */
:root {
  /* Chantier design 07/10 (L0.3) — « DM Sans » et « DM Mono » n'ont JAMAIS été chargées :
     les listes tombaient en Segoe UI et les montants en Courier, alors que les fiches sont
     en Nunito (on changeait de police en passant d'une liste à une fiche). Les deux jetons
     pointent désormais sur la police du desk (--text-font-family, posée par setThemeStyle).
     --ct-mono garde son NOM (≈ 25 usages) mais n'est plus une police monospace : chaque
     usage pose font-variant-numeric: tabular-nums (chiffres de même largeur, colonnes de
     montants alignées) — c'est ce que le monospace apportait, sans changer de police. */
  --ct-font: var(--text-font-family, 'Nunito'), sans-serif;
  --ct-mono: var(--text-font-family, 'Nunito'), sans-serif;
  --ct-surface: #ffffff;
  --ct-page-bg: #f3f4f1;
  --ct-border: rgba(0, 0, 0, 0.07);
  --ct-border-md: rgba(0, 0, 0, 0.12);
  --ct-text-1: #181816;
  --ct-text-2: #5c5c58;
  --ct-text-3: #9a9a94;
  --ct-accent: #1D9E75;
  --ct-accent-hover: #0F6E56;
  --ct-r-sm: 6px;
  --ct-r-md: 8px;
  --ct-r-lg: 12px;
  --ct-row-hover: #f9fdf9;
  /* fond de ligne au survol (tables CoreTable + .movement-table-wrap) */
  /* LOT V (V4) — palette des chips d'état .ct-badge-* TOKENISÉE (valeurs
     historiques INCHANGÉES — zéro changement visuel). Les tokens vivent ici,
     avec la famille --ct-* (variables.css = tokens de thème boutique, pas
     CoreTable). UNE seule source de chips d'état dans le desk : .ct-badge-*. */
  --ct-badge-success-bg: #E1F5EE;
  --ct-badge-success-fg: #085041;
  --ct-badge-neutral-bg: #f1efe8;
  --ct-badge-neutral-fg: #5f5e5a;
  --ct-badge-danger-bg: #FCEBEB;
  --ct-badge-danger-fg: #A32D2D;
  --ct-badge-warn-bg: #FAEEDA;
  --ct-badge-warn-fg: #854F0B;
  --ct-badge-info-bg: #E6F1FB;
  --ct-badge-info-fg: #0C447C;
  --ct-badge-purple-bg: #EEEDFE;
  --ct-badge-purple-fg: #3C3489; }

.ct-root {
  display: flex;
  flex-direction: column;
  gap: 14px;
  font-family: var(--ct-font);
  font-size: 13px;
  color: var(--ct-text-1);
  /* Si .ct-root est lui-même un flex item d'un shell (sidebar + contenu), on
     l'autorise à rétrécir pour que le scroll horizontal reste confiné au
     tableau et ne déborde pas la page. */
  min-width: 0; }

/* ── KPIs ── */
.ct-kpis {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 10px; }

.ct-kpi {
  background: var(--ct-surface);
  border: 0.5px solid var(--ct-border);
  border-radius: var(--ct-r-lg);
  padding: 13px 15px;
  position: relative; }

.ct-kpi-label {
  font-size: var(--ds-fs-caption);
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--ct-text-3);
  margin-bottom: 5px; }

.ct-kpi-val {
  display: inline-block;
  font-size: 22px;
  font-weight: 500;
  font-family: var(--ct-mono);
  font-variant-numeric: tabular-nums;
  color: var(--ct-text-1); }

.ct-kpi-sub {
  display: inline-block;
  font-size: var(--ds-fs-caption);
  color: var(--ct-text-3);
  margin-top: 2px;
  width: 100%; }

.ct-kpi-val.is-skeleton,
.ct-kpi-sub.is-skeleton {
  position: relative;
  color: transparent !important;
  user-select: none; }
  .ct-kpi-val.is-skeleton *,
  .ct-kpi-sub.is-skeleton * {
    color: transparent !important; }
  .ct-kpi-val.is-skeleton::after,
  .ct-kpi-sub.is-skeleton::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    height: 70%;
    border-radius: 4px;
    background: linear-gradient(to right, var(--sk-color-base) 0%, var(--sk-color-highlight) 40%, var(--sk-color-base) 80%);
    background-size: 800px 100%;
    animation: sk-shimmer 1.8s ease-in-out infinite;
    pointer-events: none; }

.ct-kpi-danger .ct-kpi-val {
  color: var(--danger-fg); }

.ct-kpi-warn .ct-kpi-val {
  color: var(--warn-fg); }

.ct-kpi-good .ct-kpi-val {
  color: var(--brand-700); }

.ct-kpi-info .ct-kpi-val {
  color: var(--info-fg); }

/* ── TOOLBAR ── */
.ct-toolbar {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap; }

.ct-toolbar-actions {
  margin-left: auto;
  display: flex;
  gap: 6px; }

/* Conteneur des filtres : inline (flux toolbar) en desktop ; devient un volet
   latéral en mobile (cf. @media). Les éléments propres au volet (déclencheurs,
   en-tête, bouton « Voir les résultats », voile) sont masqués en desktop. */
.ct-filters {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap; }

.ct-filters-toggle,
.ct-bulk-toggle,
.ct-filters-apply,
.ct-drawer-header,
.ct-drawer-backdrop {
  display: none; }

.ct-toolbar-action {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 7px 13px;
  border-radius: var(--ct-r-md);
  font-size: var(--ds-fs-caption);
  font-weight: 500;
  border: none;
  cursor: pointer;
  background: var(--ct-surface);
  color: var(--ct-text-2);
  border: 0.5px solid var(--ct-border); }
  .ct-toolbar-action:hover {
    background: var(--ct-surface-hover, #ebebeb); }
  .ct-toolbar-action.ct-toolbar-action-primary {
    background: var(--blue-selected, #4ea7e8);
    color: var(--text-inverse);
    border-color: transparent; }
    .ct-toolbar-action.ct-toolbar-action-primary:hover {
      filter: brightness(0.92); }
  .ct-toolbar-action.ct-toolbar-action-warn {
    background: var(--ct-warn, #e67e22);
    color: var(--text-inverse);
    border-color: transparent; }

.ct-tabs {
  display: flex;
  background: var(--ct-surface);
  border: 0.5px solid var(--ct-border);
  border-radius: var(--ct-r-md);
  overflow: hidden;
  flex-shrink: 0; }

.ct-tab {
  padding: 8px 13px;
  font-size: var(--ds-fs-secondary);
  color: var(--ct-text-2);
  cursor: pointer;
  border-right: 0.5px solid var(--ct-border);
  transition: background .12s, color .12s;
  white-space: nowrap;
  user-select: none; }

.ct-tab:last-child {
  border-right: none; }

.ct-tab.active {
  background: var(--blue-selected);
  color: var(--text-inverse);
  font-weight: 500; }

.ct-tab:not(.active):hover {
  background: var(--ct-page-bg); }

/* ── Onglets de page (.ds-page-tabs) ─────────────────────────────────────
   Onglets de PREMIER NIVEAU d'un écran (ex. Inventaire | Historique | Entrepôt
   du dashboard Stocks) : réutilisent le style d'onglets CoreTable (.ct-tab) —
   UN SEUL style d'onglets dans le desk (fin des select-menu-hor locaux).
   Markup (boutons sémantiques, a11y) :
     <div class="ct-tabs ds-page-tabs" role="tablist">
       <button type="button" class="ct-tab active" role="tab" aria-selected="true">…</button>
     </div>
   Documenté dans Docs/DESIGN_SYSTEM.md (section « Onglets de page »). */
.ds-page-tabs {
  display: inline-flex;
  /* ne s'étire pas sur toute la largeur de la page */ }
  .ds-page-tabs .ct-tab {
    /* reset du <button> → mêmes styles que les .ct-tab de toolbar */
    background: none;
    border-top: none;
    border-bottom: none;
    border-left: none;
    font-family: inherit;
    line-height: inherit;
    /* onglets de page : un cran plus grands que ceux de la toolbar tableau */
    font-size: 1.3rem;
    padding: 9px 16px;
    /* focus clavier visible — offset négatif car .ct-tabs est en
       overflow:hidden (un outline extérieur serait rogné) ; --blue-dim
       reste lisible sur fond blanc COMME sur l'onglet actif teal */ }
    .ds-page-tabs .ct-tab.active {
      background: var(--blue-selected);
      color: var(--text-inverse); }
    .ds-page-tabs .ct-tab:focus-visible {
      outline: 2px solid var(--blue-dim);
      outline-offset: -2px; }

.ct-search-wrap {
  position: relative;
  flex: 1;
  min-width: 160px;
  max-width: 280px; }

.ct-search-icon {
  position: absolute;
  left: 9px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--ct-text-3);
  pointer-events: none;
  font-size: 14px; }

.ct-search {
  width: 100%;
  padding: 8px 10px 8px 28px;
  font-size: var(--ds-fs-caption);
  border: 0.5px solid var(--ct-border-md);
  border-radius: var(--ct-r-md);
  background: var(--ct-surface);
  color: var(--ct-text-1);
  font-family: var(--ct-font);
  outline: none;
  transition: border-color .15s; }

.ct-search:focus {
  border-color: var(--blue-selected); }

.ct-fsel {
  padding: 8px 26px 8px 10px;
  font-size: var(--ds-fs-caption);
  border: 0.5px solid var(--ct-border-md);
  border-radius: var(--ct-r-md);
  background: var(--ct-surface);
  color: var(--ct-text-2);
  font-family: var(--ct-font);
  cursor: pointer;
  outline: none;
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%239a9a94' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 8px center;
  transition: border-color .15s;
  width: auto; }

.ct-fsel:focus {
  border-color: var(--blue-selected); }

.ct-filter-daterange {
  position: relative;
  display: inline-flex; }

.ct-drp {
  cursor: pointer;
  min-width: 200px; }

/* Filtre « plage numérique » (colonne numérique rendue filtrable) : un déclencheur
   façon select (hérite de .ct-fsel) ouvre un popover double-pouce (cf. .ct-range-pop). */
.ct-range-trigger {
  text-align: left;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 240px; }

.ct-range-trigger.ct-range-active {
  border-color: var(--blue-selected);
  color: var(--ct-text-1); }

/* Popover du filtre numérique (porté dans <body>) : une seule barre, deux pouces. */
.ct-range-pop {
  z-index: 500;
  background: var(--ct-surface);
  border: 0.5px solid var(--ct-border-md);
  border-radius: var(--ct-r-md);
  box-shadow: 0 10px 30px var(--shadow);
  padding: 14px 14px 12px;
  font-family: var(--ct-font); }

.ct-range-head {
  display: flex;
  justify-content: space-between;
  font-size: var(--ds-fs-secondary);
  color: var(--ct-text-1);
  font-variant-numeric: tabular-nums;
  margin-bottom: 12px; }

.ct-range-track {
  position: relative;
  height: 18px; }

.ct-range-rail {
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  height: 4px;
  background: var(--ct-border-md);
  border-radius: 2px; }

.ct-range-fill {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  height: 4px;
  background: var(--ct-accent, #1D9E75);
  border-radius: 2px; }

.ct-range-input {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 18px;
  margin: 0;
  background: none;
  pointer-events: none;
  -webkit-appearance: none;
  appearance: none; }

.ct-range-input::-webkit-slider-runnable-track {
  height: 18px;
  background: none;
  border: none; }

.ct-range-input::-moz-range-track {
  height: 18px;
  background: none;
  border: none; }

.ct-range-input::-webkit-slider-thumb {
  -webkit-appearance: none;
  pointer-events: auto;
  width: 15px;
  height: 15px;
  margin-top: 1.5px;
  border-radius: 50%;
  background: var(--ct-surface);
  border: 2px solid var(--ct-accent, #1D9E75);
  box-shadow: 0 1px 3px var(--shadow);
  cursor: pointer; }

.ct-range-input::-moz-range-thumb {
  pointer-events: auto;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: var(--ct-surface);
  border: 2px solid var(--ct-accent, #1D9E75);
  box-shadow: 0 1px 3px var(--shadow);
  cursor: pointer; }

.daterangepicker {
  border: 0.5px solid var(--ct-border-md);
  border-radius: var(--ct-r-lg);
  box-shadow: 0 10px 30px var(--shadow-soft);
  font-family: var(--ct-font);
  color: var(--ct-text-1); }

.daterangepicker .ranges li {
  border-radius: var(--ct-r-sm);
  font-size: var(--ds-fs-secondary);
  color: var(--ct-text-2); }

.daterangepicker .ranges li.active,
.daterangepicker .ranges li:hover {
  background: var(--ct-page-bg);
  color: var(--ct-text-1); }

.daterangepicker td.active,
.daterangepicker td.active:hover,
.daterangepicker .calendar-table td.in-range {
  background: color-mix(in srgb, var(--blue-selected) 14%, var(--surface));
  color: var(--ct-text-1); }

.daterangepicker td.start-date,
.daterangepicker td.end-date,
.daterangepicker td.start-date:hover,
.daterangepicker td.end-date:hover {
  background: var(--blue-selected);
  color: var(--text-inverse); }

.daterangepicker .drp-buttons .btn {
  border-radius: var(--ct-r-sm);
  font-size: var(--ds-fs-secondary); }

/* ── BULK BAR ── */
.ct-bulk-bar {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 14px;
  background: var(--ct-surface);
  border: 0.5px solid var(--ct-border);
  border-radius: var(--ct-r-md);
  animation: ct-slide-in .15s ease; }

@keyframes ct-slide-in {
  from {
    opacity: 0;
    transform: translateY(-4px); }
  to {
    opacity: 1;
    transform: translateY(0); } }
/* Volet latéral mobile : glissé depuis le bord droit */
@keyframes ct-drawer-in {
  from {
    transform: translateX(100%); }
  to {
    transform: translateX(0); } }
/* Voile du volet : fondu d'apparition */
@keyframes ct-fade-in {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }
.ct-bulk-count {
  font-size: var(--ds-fs-caption);
  font-weight: 500;
  color: var(--blue-selected); }

.ct-bulk-actions {
  display: flex;
  gap: 6px;
  margin-left: 4px; }

.ct-bulk-btn {
  padding: 4px 10px;
  font-size: var(--ds-fs-caption);
  border: 0.5px solid var(--ct-border-md);
  border-radius: var(--ct-r-sm);
  background: var(--ct-surface);
  color: var(--ct-text-1);
  cursor: pointer;
  font-family: var(--ct-font);
  transition: background .12s; }

.ct-bulk-btn:hover {
  background: var(--ct-page-bg); }

.ct-bulk-clear {
  margin-left: auto;
  font-size: var(--ds-fs-caption);
  color: var(--ct-text-3);
  cursor: pointer;
  border: none;
  background: none;
  font-family: var(--ct-font);
  padding: 4px 6px;
  border-radius: var(--ct-r-sm);
  transition: color .12s; }

.ct-bulk-clear:hover {
  color: var(--ct-text-2); }

/* ── TABLE ── */
.ct-table-wrap {
  background: var(--ct-surface);
  border: 0.5px solid var(--ct-border);
  border-radius: var(--ct-r-lg);
  /* Débordement horizontal : si trop de colonnes pour la largeur dispo, le
     tableau dépasse son min-width et le conteneur défile latéralement plutôt
     que d'écraser les colonnes. */
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  /* .ct-root est un conteneur flex (colonne) ; sans ceci, ce flex item garderait
     min-width:auto (= largeur de son contenu) et refuserait de rétrécir, faisant
     déborder la page entière → double barre de défilement. min-width:0 le laisse
     rétrécir à la largeur dispo, son overflow-x gérant seul le scroll interne. */
  min-width: 0; }

.ct-table {
  /* width:100% pour remplir quand ça tient ; min-width (calculé en JS depuis la
     somme des largeurs de colonnes, exposé via --ct-table-min-w) comme plancher :
     dès que la largeur dispo passe sous ce plancher, le tableau garde sa largeur
     naturelle et .ct-table-wrap défile. */
  width: 100%;
  min-width: var(--ct-table-min-w, 0);
  border-collapse: collapse;
  table-layout: fixed; }

.ct-th {
  padding: 9px 12px;
  text-align: left;
  font-size: var(--ds-fs-caption);
  font-weight: 500;
  /* LOT V (V3c) : PAS var(--text-color) — c'est la couleur du THÈME BOUTIQUE du
     marchand (défaut desk : #e9e9ec = le fond même de ce header → texte
     invisible). Même piège corrigé sur #headerAddArticles (_inventory.scss). */
  color: var(--blue-dim);
  background: var(--blue-medium);
  border-bottom: 0.5px solid var(--ct-border);
  text-transform: uppercase;
  letter-spacing: .05em;
  white-space: nowrap;
  /* LOT TYPO (28/09) : en-tête passé de 10 à 12px (plancher) — un libellé trop long pour sa
     colonne (largeurs fixes, table-layout:fixed) s'ellipse au lieu de chevaucher la voisine. */
  overflow: hidden;
  text-overflow: ellipsis;
  user-select: none; }

.ct-th-r {
  text-align: right; }

.ct-th-cb {
  width: 34px;
  padding: 9px 0px;
  background: var(--blue-medium);
  border-bottom: 0.5px solid var(--ct-border);
  text-align: right; }

/* Sans colonne de gauche (ni checkbox ni chevron — classe .ct-no-lead posée par le JS
   quand il n'y a pas d'action de masse ni de groupes) : on redonne 16px de marge à
   gauche sur la 1re colonne (en-tête + corps), sinon le contenu colle au bord du
   tableau. Desktop uniquement (en mobile, le tableau devient des cartes). */
@media (min-width: 768px) {
  .ct-table.ct-no-lead > thead > tr > th:first-child,
  .ct-table.ct-no-lead > tbody > tr > td:first-child {
    padding-left: 16px; } }
.ct-th-act {
  background: var(--blue-medium);
  border-bottom: 0.5px solid var(--ct-border); }

.ct-sortable {
  cursor: pointer; }

.ct-sortable:hover {
  color: var(--ct-text-1); }

.ct-sort-icon {
  margin-left: 4px;
  opacity: .4;
  font-size: 10px; }

.ct-sortable:hover .ct-sort-icon {
  opacity: .7; }

tbody tr {
  border-bottom: 0.5px solid var(--ct-border);
  transition: background .1s;
  cursor: pointer; }

tbody tr:last-child {
  border-bottom: none; }

tbody tr:hover {
  background: var(--ct-row-hover); }

tbody tr:hover .ct-row-actions {
  opacity: 1; }

/* Règle GLOBALE historique (toutes les tables du desk) : on n'y laisse que le
   neutre. LOT V (V9a) : les déclarations « text-overflow:unset » et
   « white-space:wrap » (valeur INVALIDE, ignorée par le navigateur) sont
   retirées — comportement calculé strictement identique (clip + normal). */
td {
  padding: 9px 12px;
  overflow: hidden;
  vertical-align: middle; }

/* LOT V (V9a) — troncature RÉELLE des cellules CoreTable (desktop) : les
   colonnes ont des largeurs calculées (table-layout:fixed), une valeur trop
   longue s'ellipse au lieu de wrapper/clipper sauvagement. Scopé à .ct-table :
   les autres tables (doc-lines, papier .doc-inline-paper, rapports) gardent
   leur wrapping. Le mode cartes mobile (max-width:767px) ré-ouvre déjà
   white-space:normal / overflow:visible plus bas. */
.ct-table > tbody > tr > td {
  white-space: nowrap;
  text-overflow: ellipsis; }

/* Colonne qui doit WRAPPER volontairement : poser .ct-td-wrap sur la cellule
   (classe de colonne CoreTable) — opt-out documenté du nowrap ci-dessus. */
.ct-table > tbody > tr > td.ct-td-wrap {
  white-space: normal; }

/* Le message « aucun résultat » (colspan) n'est jamais tronqué. */
.ct-table > tbody > tr > td.ct-empty {
  white-space: normal; }

.ct-td-r {
  text-align: right;
  justify-content: flex-end; }
  .ct-td-r * {
    justify-content: flex-end; }

/* LOT V (V2) — état vide GLOBAL des listes CoreTable : icône légère au-dessus
   du texte (compatible avec tout texte passé par les vues — l'icône est un
   ::before, le contenu reste le texte de la cellule). Même famille visuelle
   que le composant .ds-empty (_ds-components.scss). */
.ct-empty {
  text-align: center;
  padding: 32px;
  color: var(--ct-text-3);
  font-style: italic;
  font-size: 13px; }
  .ct-empty::before {
    content: '\f01c';
    /* fa-inbox */
    display: block;
    font-family: 'Font Awesome 6 Pro';
    font-weight: 300;
    font-style: normal;
    font-size: 2.2rem;
    color: var(--ct-text-3);
    opacity: .75;
    margin-bottom: 8px; }

/* ── FOOTER ── */
.ct-foot {
  padding: 9px 16px;
  background: var(--blue-medium);
  border-top: 0.5px solid var(--ct-border);
  font-size: var(--ds-fs-caption);
  color: var(--text-color);
  display: flex;
  align-items: center;
  justify-content: space-between; }

/* Quand le tableau déborde et que .ct-table-wrap défile horizontalement, la
   barre de pied reste épinglée à gauche (toujours visible) au lieu de défiler
   avec les colonnes. */
.ct-table-wrap > .ct-foot {
  position: sticky;
  left: 0; }

tfoot.ct-foot {
  padding: 9px 12px;
  display: table-footer-group;
  height: 42px;
  font-size: inherit; }

.ct-pagination {
  display: flex;
  gap: 4px; }

.ct-page-btn {
  padding: 3px 8px;
  font-size: var(--ds-fs-caption);
  border: 0.5px solid var(--ct-border-md);
  border-radius: var(--ct-r-sm);
  background: var(--ct-surface);
  color: var(--ct-text-2);
  cursor: pointer;
  font-family: var(--ct-font);
  transition: background .12s; }

.ct-page-btn.active {
  background: var(--blue-selected);
  color: var(--text-inverse);
  border-color: var(--blue-selected); }

.ct-page-btn:hover:not(.active) {
  background: var(--ct-page-bg); }

.ct-page-btn:disabled {
  opacity: .4;
  cursor: default; }

.ct-page-btn.ct-page-nav {
  font-size: 14px;
  line-height: 1;
  padding: 2px 8px; }

.ct-page-ellipsis {
  padding: 3px 2px;
  font-size: var(--ds-fs-caption);
  color: var(--ct-text-3);
  user-select: none; }

.ct-page-jump {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-left: 6px; }

.ct-page-input {
  width: 46px;
  padding: 3px 6px;
  font-size: var(--ds-fs-caption);
  text-align: center;
  border: 0.5px solid var(--ct-border-md);
  border-radius: var(--ct-r-sm);
  background: var(--ct-surface);
  color: var(--ct-text-2); }

.ct-page-total {
  font-size: var(--ds-fs-caption);
  color: var(--ct-text-3); }

/* ── ROW ACTIONS ── */
.ct-row-actions {
  opacity: 0;
  display: flex;
  gap: 4px;
  justify-content: flex-end;
  transition: opacity .12s; }

.ct-act-btn {
  padding: 3px 7px;
  font-size: var(--ds-fs-caption);
  border: 0.5px solid var(--ct-border-md);
  border-radius: var(--ct-r-sm);
  background: var(--ct-surface);
  color: var(--ct-text-2);
  cursor: pointer;
  font-family: var(--ct-font);
  transition: background .1s;
  white-space: nowrap; }

.ct-act-btn:hover {
  background: var(--ct-page-bg); }

/* ── ROW ACTIONS MENU (3-points) ── */
.ct-row-menu-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border: none;
  border-radius: var(--ct-r-sm);
  background: transparent;
  cursor: pointer;
  color: var(--ct-text-2);
  font-size: 13px;
  padding: 0;
  transition: background .1s, color .1s; }
  .ct-row-menu-toggle:hover {
    background: var(--ct-page-bg);
    color: var(--ct-text-1); }

/* ── RENDERERS ── */
.ct-text {
  color: var(--ct-text-1); }

.ct-mono {
  font-family: var(--ct-mono);
  font-variant-numeric: tabular-nums;
  font-size: var(--ds-fs-secondary);
  color: var(--ct-text-1); }

.ct-na {
  color: var(--ct-text-3);
  font-style: italic; }

.ct-name {
  font-weight: 500; }

/* Badges */
.ct-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 7px;
  border-radius: 20px;
  font-size: var(--ds-fs-caption);
  font-weight: 500;
  white-space: nowrap; }

/* Pastille d'un élément du fil d'Ariane de la Topbar (item.badge, ex. « Bêta » de l'Assistant — 06/10/2026). */
.tb-badge {
  margin: 0 6px 0 8px;
  vertical-align: middle;
  font-weight: 600;
  letter-spacing: 0.02em; }

.ct-amount-neg {
  color: var(--danger-fg);
  font-weight: 600; }

.ct-amount-pos {
  color: var(--brand-700); }

/* LOT V (V4) — palette branchée sur les tokens --ct-badge-* du :root ci-dessus
   (valeurs inchangées, tokenisation pure). */
.ct-badge-success {
  background: var(--ct-badge-success-bg);
  color: var(--ct-badge-success-fg); }

.ct-badge-neutral {
  background: var(--ct-badge-neutral-bg);
  color: var(--ct-badge-neutral-fg); }

.ct-badge-danger {
  background: var(--ct-badge-danger-bg);
  color: var(--ct-badge-danger-fg); }

.ct-badge-warn,
.ct-badge-warning {
  background: var(--ct-badge-warn-bg);
  color: var(--ct-badge-warn-fg); }

.ct-badge-info {
  background: var(--ct-badge-info-bg);
  color: var(--ct-badge-info-fg); }

.ct-badge-purple {
  background: var(--ct-badge-purple-bg);
  color: var(--ct-badge-purple-fg); }

.ct-badge-sm {
  font-size: var(--ds-fs-caption);
  padding: 1px 5px; }

/* Margin bar */
.ct-bar-wrap {
  display: flex;
  align-items: center;
  gap: 6px; }

.ct-bar-bg {
  flex: 1;
  height: 3px;
  border-radius: 2px;
  background: var(--ct-border-md);
  overflow: hidden; }

.ct-bar-fill {
  height: 100%;
  border-radius: 2px; }

.ct-bar-high .ct-bar-fill {
  background: var(--brand-500); }

.ct-bar-mid .ct-bar-fill {
  background: var(--warn-solid); }

.ct-bar-low .ct-bar-fill {
  background: var(--danger-solid); }

.ct-bar-val {
  font-family: var(--ct-mono);
  font-variant-numeric: tabular-nums;
  font-size: var(--ds-fs-secondary);
  min-width: 34px;
  text-align: right; }

.ct-bar-high .ct-bar-val {
  color: var(--brand-700); }

.ct-bar-mid .ct-bar-val {
  color: var(--warn-fg); }

.ct-bar-low .ct-bar-val {
  color: var(--danger-fg); }

/* Stock */
.ct-stock-ok {
  font-family: var(--ct-mono);
  font-variant-numeric: tabular-nums;
  font-size: var(--ds-fs-secondary);
  color: var(--ct-text-1); }

.ct-stock-low {
  font-family: var(--ct-mono);
  font-variant-numeric: tabular-nums;
  font-size: var(--ds-fs-secondary);
  color: var(--warn-fg);
  font-weight: 500; }

.ct-stock-zero {
  font-family: var(--ct-mono);
  font-variant-numeric: tabular-nums;
  font-size: var(--ds-fs-secondary);
  color: var(--danger-fg);
  font-weight: 500; }

/* Dates */
.ct-date-today {
  color: var(--brand-700);
  font-weight: 500; }

.ct-date-recent {
  color: var(--warn-fg); }

/* Amounts */
.ct-amount-pos {
  font-family: var(--ct-mono);
  font-variant-numeric: tabular-nums;
  font-size: var(--ds-fs-secondary);
  color: var(--brand-700);
  font-weight: 500; }

.ct-amount-neg {
  font-family: var(--ct-mono);
  font-variant-numeric: tabular-nums;
  font-size: var(--ds-fs-secondary);
  color: var(--danger-fg);
  font-weight: 500; }

/* Avatar */
.ct-avatar {
  width: 30px;
  height: 30px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--ds-fs-caption);
  font-weight: 500;
  flex-shrink: 0; }

.ct-avatar-sm {
  width: 24px;
  height: 24px;
  border-radius: 6px;
  font-size: var(--ds-fs-caption); }

.ct-av-name-wrap {
  display: flex;
  align-items: center;
  gap: 8px; }

.ct-av-teal {
  background: var(--brand-50);
  color: var(--brand-700); }

.ct-av-blue {
  background: var(--info-bg);
  color: var(--info-fg); }

.ct-av-purple {
  background: var(--purple-bg);
  color: var(--purple); }

.ct-av-coral {
  background: var(--danger-bg);
  color: var(--warn-fg); }

.ct-av-amber {
  background: var(--warn-bg);
  color: #633806; }

/* Progress */
.ct-progress-wrap {
  display: flex;
  align-items: center;
  gap: 6px; }

.ct-progress-bg {
  flex: 1;
  height: 4px;
  border-radius: 2px;
  background: var(--ct-border-md);
  overflow: hidden; }

.ct-progress-fill {
  height: 100%;
  border-radius: 2px;
  background: var(--ct-accent); }

.ct-progress-val {
  font-size: var(--ds-fs-secondary);
  color: var(--ct-text-2);
  white-space: nowrap; }

/* Checkbox */
input[type=checkbox] {
  width: 13px;
  height: 13px;
  cursor: pointer;
  accent-color: var(--ct-accent); }

.ct-td-cb {
  padding: 9px 0px;
  text-align: right; }

.ct-td-cb::before {
  content: none !important; }

/* Cellule checkbox avec bouton expand intégré */
.ct-td-cb-group {
  display: flex;
  align-items: center;
  gap: 2px;
  padding: 0px !important;
  white-space: nowrap;
  justify-content: flex-end; }

.ct-td-cb-group .ct-expand-btn {
  position: static;
  transform: none;
  width: 15px;
  height: 20px;
  flex-shrink: 0;
  font-size: 14px; }

.ct-td-cb-group .ct-expand-icon {
  font-size: 14px; }

.ct-td-cb-group input[type=checkbox] {
  flex-shrink: 0; }

/* Cases à cocher du tableau = composant design-system .styled-checkbox. Celui-ci est
   flex / width:100% par défaut → on le recadre pour qu'il tienne (centré) dans la
   colonne de sélection (en-tête, lignes, parent de groupe). */
.ct-th-cb .styled-checkbox,
.ct-td-cb .styled-checkbox {
  display: inline-flex;
  width: auto;
  margin: 0;
  flex-shrink: 0;
  vertical-align: middle; }

.ct-th-cb .styled-checkbox .checkmark,
.ct-td-cb .styled-checkbox .checkmark {
  margin-right: 0; }

/* Images */
.ct-img-wrap {
  display: inline-flex;
  align-items: center; }

.ct-img-thumb {
  width: 30px;
  height: 30px;
  border-radius: 7px;
  object-fit: cover;
  display: block;
  border: 0.5px solid var(--ct-border); }

.ct-img-placeholder {
  width: 30px;
  height: 30px;
  border-radius: 7px;
  background: var(--ct-page-bg);
  border: 0.5px solid var(--ct-border);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--ds-fs-secondary);
  font-weight: 500;
  color: var(--ct-text-3); }

/* ═══════════════════════════════════════════════
   GROUPES & VARIANTES
   ═══════════════════════════════════════════════ */
/* Colonne expand */
.ct-th-expand {
  background: var(--blue-medium);
  border-bottom: 0.5px solid var(--ct-border);
  width: 32px;
  padding: 0; }

.ct-expand-cell {
  padding: 0 4px;
  text-align: center; }

.ct-expand-btn {
  width: 22px;
  height: 22px;
  border: none;
  background: none;
  cursor: pointer;
  border-radius: 4px;
  color: var(--ct-text-3);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background .12s, color .12s; }

.ct-expand-btn:hover {
  background: var(--ct-page-bg);
  color: var(--ct-text-1); }

.ct-expand-icon {
  font-size: 10px; }

/* Chevron « détail » des lignes normales : seulement utile en mobile (sur desktop toutes les colonnes sont visibles) */
.ct-row-expand {
  display: none; }

/* Ligne parente */
.ct-group-parent {
  background: var(--ct-surface); }

.ct-group-parent.ct-group-open {
  background: var(--page-bg); }

/* ═══════════════════════════════════════════════
   COLONNES GELÉES (sticky) — défilement horizontal
   La case à cocher + les colonnes verrouillées (locked) restent collées à
   gauche, la colonne d'actions reste collée à droite quand le tableau déborde.
   Chaque type de ligne expose sa couleur via --ct-row-bg ; les cellules gelées
   la reprennent pour rester opaques au-dessus des colonnes qui défilent dessous.
   Neutralisé en mobile (cartes) — cf. @media.
   ═══════════════════════════════════════════════ */
tbody tr {
  --ct-row-bg: var(--ct-surface); }

.ct-group-parent {
  --ct-row-bg: var(--ct-surface); }

.ct-group-parent.ct-group-open {
  --ct-row-bg: #f4fbf7; }

.ct-variant-row {
  --ct-row-bg: #f4fbf7; }

tbody tr:hover {
  --ct-row-bg: var(--ct-row-hover); }

.ct-variant-row:hover {
  --ct-row-bg: #ecf8f2; }

.ct-table-wrap .ct-sticky {
  position: sticky;
  z-index: 1;
  background: var(--ct-row-bg, var(--ct-surface)); }

.ct-sticky-left {
  left: var(--ct-sl, 0px); }

.ct-sticky-right {
  right: 0; }

/* En-têtes gelés : fond du thead, au-dessus des cellules gelées du corps */
.ct-table-wrap th.ct-sticky {
  background: var(--blue-medium);
  z-index: 3; }

/* Ombre de bord — uniquement sur le bord droit du bloc gelé à GAUCHE (1re colonne),
   et seulement quand on a réellement défilé horizontalement (.ct-scrolled-x posée par
   le JS quand scrollLeft > 0). Pas d'ombre sur la colonne gelée à droite (actions). */
.ct-table-wrap.ct-scrolled-x .ct-sticky-edge {
  box-shadow: 6px 0 8px -6px var(--shadow-strong); }

/* Ligne variante */
.ct-variant-row {
  background: var(--page-bg); }

.ct-variant-row:hover {
  background: var(--brand-50); }

/* Séparateur après la dernière variante du groupe */
.ct-variant-last {
  border-bottom: 1.5px solid rgba(29, 158, 117, 0.2) !important; }

/* Cellule connecteur — trait vertical vert, pas d'image sur les variantes */
.ct-variant-connector {
  padding: 0 !important;
  width: 38px;
  position: relative;
  text-align: center; }

.ct-variant-connector::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 0;
  bottom: 0;
  width: 1.5px;
  background: var(--brand-tint);
  transform: translateX(-50%);
  pointer-events: none; }

/* Sur la dernière variante, le trait s'arrête à mi-hauteur */
.ct-variant-last .ct-variant-connector::before {
  bottom: 50%; }

/* Retrait + tiret sur la première colonne texte des variantes */
.ct-variant-name-wrap {
  display: flex;
  align-items: center;
  gap: 6px;
  padding-left: 18px;
  position: relative; }

.ct-variant-name-wrap::before {
  content: '';
  position: absolute;
  left: 2px;
  top: 50%;
  width: 10px;
  height: 1px;
  background: rgba(29, 158, 117, 0.45);
  transform: translateY(-50%); }

/* Tag déclinaison */
.ct-decl-tag {
  display: inline-flex;
  align-items: center;
  padding: 1px 7px;
  border-radius: 4px;
  font-size: var(--ds-fs-caption);
  background: var(--ct-page-bg);
  color: var(--ct-text-2);
  border: 0.5px solid var(--ct-border-md);
  white-space: nowrap; }

/* Label de variante (concaténation des déclinaisons) */
.ct-variant-label {
  color: var(--ct-text-1);
  font-weight: 400; }

/* Colonnes spécifiques variante — masquées (intégrées dans le label) */
.ct-variant-specific {
  color: var(--ct-text-3);
  font-size: var(--ds-fs-secondary); }

/* Prix range */
.ct-price-range {
  font-size: var(--ds-fs-secondary);
  color: var(--ct-text-2); }

/* REMISES (renderer `currency-promo`, 01/09) — le prix pratiqué MAINTENANT prend l'accent, l'ancien
   passe derrière, barré et effacé. Pas de rouge : dans la liste d'articles il veut déjà dire
   « article en veille », et deux sens pour une même couleur sur le même écran, c'est illisible. */
.ct-price-promo {
  color: var(--ct-accent, #1D9E75);
  font-weight: 600; }

/* Les deux prix sont EMPILÉS, l'ancien au-dessus (retour Romain 01/09) : côte à côte, ils élargissaient
   la colonne et on lisait le prix remisé avant de comprendre qu'il y avait remise.
   `text-align: inherit` : la pile suit l'alignement de la colonne (celle des prix est à droite) sans
   qu'on ait à le savoir ici. */
.ct-price-stack {
  display: inline-block;
  text-align: inherit;
  line-height: 1.2; }

.ct-price-stack > span {
  display: block; }

.ct-price-old {
  color: var(--ct-text-2);
  text-decoration: line-through;
  font-size: var(--ds-fs-secondary); }

/* Remise RÉELLE mais pas en vigueur à cette seconde (programmée, ou créneau horaire) : le prix
   affiché reste celui qu'encaisse la caisse, la pastille dit seulement la remise et QUAND. */
.ct-badge-promo {
  margin-left: 6px;
  background: var(--ct-accent-bg, #E1F5EE);
  color: var(--ct-accent-hover, #0F6E56); }

/* ═══════════════════════════════════════════════
   ÉDITION INLINE
   ═══════════════════════════════════════════════ */
.ct-td-editable {
  cursor: pointer; }

.ct-td-editable:hover .ct-editable-display {
  text-decoration: underline;
  text-decoration-style: dashed;
  text-underline-offset: 2px; }

.ct-editable-wrap {
  display: flex;
  align-items: center;
  gap: 6px;
  position: relative; }

.ct-editable-display {
  cursor: pointer; }

.ct-editable-input {
  width: 64px;
  padding: 3px 6px;
  font-size: var(--ds-fs-caption);
  font-family: var(--ct-mono);
  font-variant-numeric: tabular-nums;
  border: 1px solid var(--ct-accent);
  border-radius: var(--ct-r-sm);
  background: var(--ct-surface);
  color: var(--ct-text-1);
  outline: none; }

.ct-save-spinner {
  font-size: 13px;
  color: var(--ct-accent);
  animation: ct-spin .8s linear infinite;
  display: inline-block; }

@keyframes ct-spin {
  to {
    transform: rotate(360deg); } }
.ct-saving {
  opacity: .6; }

/* ── Export dropdown ── */
#ct-export-menu {
  background: var(--ct-surface, #fff);
  border: 0.5px solid var(--ct-border-md, rgba(0, 0, 0, 0.12));
  border-radius: var(--ct-r-lg, 12px);
  box-shadow: 0 4px 16px var(--shadow-soft);
  overflow: hidden;
  min-width: 200px;
  font-family: var(--ct-font, sans-serif); }

.ct-export-item {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 10px 14px;
  font-size: 13px;
  color: var(--ct-text-1, #181816);
  cursor: pointer;
  transition: background .1s;
  border-bottom: 0.5px solid var(--ct-border, rgba(0, 0, 0, 0.07)); }

.ct-export-item:last-child {
  border-bottom: none; }

.ct-export-item:hover {
  background: var(--ct-page-bg, #f3f4f1); }

.ct-export-item svg {
  flex-shrink: 0;
  color: var(--ct-text-2, #5c5c58); }

.ct-export-hint {
  margin-left: auto;
  font-size: var(--ds-fs-secondary);
  color: var(--ct-text-3, #9a9a94); }

/* ═══════════════════════════════════════════════
   CoreColumnPicker.css
   ═══════════════════════════════════════════════ */
.ccp-panel {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 200;
  width: 300px;
  height: 100vh;
  background: var(--ct-surface, #fff);
  border: 0.5px solid var(--ct-border-md, rgba(0, 0, 0, 0.12));
  box-shadow: 0 4px 24px var(--shadow-soft);
  display: flex;
  flex-direction: column;
  font-family: var(--ct-font, sans-serif);
  font-size: 13px;
  text-align: left;
  font-weight: normal; }

/* ── Header ── */
.ccp-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 14px 10px;
  border-bottom: 0.5px solid var(--ct-border, rgba(0, 0, 0, 0.07));
  flex-shrink: 0; }

.ccp-title {
  font-weight: 500;
  font-size: 13px; }

.ccp-header-actions {
  display: flex;
  align-items: center;
  gap: 8px; }

.ccp-btn-reset {
  font-size: var(--ds-fs-caption);
  color: var(--ct-accent, #1D9E75);
  background: none;
  border: none;
  cursor: pointer;
  font-family: var(--ct-font, sans-serif);
  padding: 2px 4px;
  border-radius: 4px;
  transition: background .12s; }

.ccp-btn-reset:hover {
  background: var(--ct-accent-bg, #E1F5EE); }

.ccp-btn-close {
  font-size: var(--ds-fs-secondary);
  color: var(--ct-text-3, #9a9a94);
  background: none;
  border: none;
  cursor: pointer;
  font-family: var(--ct-font, sans-serif);
  width: 22px;
  height: 22px;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .12s, color .12s; }

.ccp-btn-close:hover {
  background: var(--ct-page-bg, #f3f4f1);
  color: var(--ct-text-1, #181816); }

/* ── Body ── */
.ccp-body {
  overflow-y: auto;
  flex: 1;
  padding: 8px 0;
  scrollbar-width: thin; }

.ccp-body::-webkit-scrollbar {
  width: 4px; }

.ccp-body::-webkit-scrollbar-thumb {
  background: var(--ct-border-md, rgba(0, 0, 0, 0.12));
  border-radius: 4px; }

/* ── Groupes ── */
.ccp-group {
  margin-bottom: 2px; }

.ccp-group-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 6px 14px 4px; }

.ccp-group-name {
  font-size: var(--ds-fs-caption);
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--ct-text-3, #9a9a94);
  font-weight: 500; }

.ccp-group-toggle {
  font-size: var(--ds-fs-caption);
  color: var(--ct-accent, #1D9E75);
  background: none;
  border: none;
  cursor: pointer;
  font-family: var(--ct-font, sans-serif);
  padding: 1px 4px;
  border-radius: 3px;
  transition: background .12s; }

.ccp-group-toggle:hover {
  background: var(--ct-accent-bg, #E1F5EE); }

.ccp-group-items {
  padding: 0 6px; }

/* ── Items ── */
.ccp-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 5px 8px;
  border-radius: var(--ct-r-sm, 6px);
  cursor: pointer;
  user-select: none;
  transition: background .1s; }

.ccp-item:hover {
  background: var(--ct-page-bg, #f3f4f1); }

.ccp-item.ccp-locked {
  opacity: .6;
  cursor: default; }

.ccp-item.ccp-locked:hover {
  background: none; }

.ccp-item input[type=checkbox] {
  width: 13px;
  height: 13px;
  cursor: pointer;
  accent-color: var(--ct-accent, #1D9E75);
  flex-shrink: 0; }

.ccp-item.ccp-locked input {
  cursor: default; }

.ccp-item-label {
  flex: 1;
  font-size: var(--ds-fs-caption);
  color: var(--ct-text-1, #181816);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; }

.ccp-locked-badge {
  font-size: var(--ds-fs-caption);
  color: var(--ct-text-3, #9a9a94);
  background: var(--ct-page-bg, #f3f4f1);
  border: 0.5px solid var(--ct-border-md, rgba(0, 0, 0, 0.12));
  padding: 1px 5px;
  border-radius: 20px;
  flex-shrink: 0; }

/* ── Ligne d'item : colonne affichée + bascule « filtrable » ── */
.ccp-item-wrap {
  display: flex;
  align-items: center;
  gap: 6px; }

.ccp-item-wrap .ccp-item {
  flex: 1;
  min-width: 0; }

.ccp-filterable {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
  padding: 0 6px 0 2px;
  font-size: var(--ds-fs-secondary);
  color: var(--ct-text-3, #9a9a94);
  cursor: pointer;
  user-select: none; }

.ccp-filterable input[type=checkbox] {
  width: 12px;
  height: 12px;
  cursor: pointer;
  accent-color: var(--ct-accent, #1D9E75);
  flex-shrink: 0; }

.ccp-filterable input:disabled {
  cursor: default; }

/* ── Footer ── */
.ccp-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 14px;
  border-top: 0.5px solid var(--ct-border, rgba(0, 0, 0, 0.07));
  flex-shrink: 0; }

.ccp-count {
  font-size: var(--ds-fs-caption);
  color: var(--ct-text-3, #9a9a94); }

.ccp-btn-apply {
  padding: 6px 14px;
  font-size: var(--ds-fs-caption);
  font-weight: 500;
  font-family: var(--ct-font, sans-serif);
  background: var(--ct-accent, #1D9E75);
  color: var(--text-inverse);
  border: none;
  border-radius: var(--ct-r-md, 8px);
  cursor: pointer;
  transition: background .12s; }

.ccp-btn-apply:hover {
  background: var(--ct-accent-hover, #0F6E56); }

/* ── Bouton auto-créé par CoreColumnPicker.init({ el }) ── */
.ccp-trigger-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  padding: 0;
  background: transparent;
  border: 0.5px solid var(--ct-border-md, rgba(0, 0, 0, 0.12));
  border-radius: var(--ct-r-md, 8px);
  color: var(--ct-text-2, #5c5c58);
  cursor: pointer;
  transition: background .12s, color .12s, transform .2s;
  flex-shrink: 0;
  margin: 0 5px; }

.ccp-trigger-btn:hover {
  background: var(--ct-page-bg, #f3f4f1); }

.ccp-trigger-btn.active {
  background: var(--ct-accent-bg, #E1F5EE);
  color: var(--ct-accent, #1D9E75);
  border-color: var(--ct-accent, #1D9E75); }

/* ── Onglets de mode (Sélection / Ordre) ── */
.ccp-mode-tabs {
  display: flex;
  border-bottom: 0.5px solid var(--ct-border, rgba(0, 0, 0, 0.07));
  flex-shrink: 0; }

.ccp-mode-tab {
  flex: 1;
  padding: 7px 10px;
  font-size: var(--ds-fs-secondary);
  font-family: var(--ct-font, sans-serif);
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  color: var(--ct-text-3, #9a9a94);
  cursor: pointer;
  transition: color .12s, border-color .12s;
  margin-bottom: -0.5px; }

.ccp-mode-tab:hover {
  color: var(--ct-text-1, #181816); }

.ccp-mode-tab.active {
  color: var(--ct-accent, #1D9E75);
  border-bottom-color: var(--ct-accent, #1D9E75);
  font-weight: 500; }

/* ── Mode "Ordre" ── */
.ccp-order-hint {
  font-size: var(--ds-fs-secondary);
  color: var(--ct-text-3, #9a9a94);
  padding: 8px 14px 4px;
  font-style: italic; }

.ccp-order-list {
  padding: 4px 6px; }

.ccp-order-separator {
  font-size: var(--ds-fs-caption);
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--ct-text-3, #9a9a94);
  padding: 10px 14px 4px;
  font-weight: 500; }

.ccp-order-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 8px;
  border-radius: var(--ct-r-sm, 6px);
  cursor: grab;
  user-select: none;
  transition: background .1s;
  border: 1px solid transparent; }

.ccp-order-item:hover {
  background: var(--ct-page-bg, #f3f4f1); }

.ccp-order-item.ccp-dragging {
  opacity: .4;
  cursor: grabbing; }

.ccp-order-item.ccp-drag-over {
  background: var(--ct-accent-bg, #E1F5EE);
  border-color: var(--ct-accent, #1D9E75); }

.ccp-order-item.ccp-order-locked {
  cursor: default; }

.ccp-order-item.ccp-order-locked:hover {
  background: none; }

.ccp-order-item.ccp-order-hidden {
  opacity: .4;
  cursor: default; }

.ccp-order-item.ccp-order-hidden:hover {
  background: none; }

.ccp-drag-handle {
  font-size: 14px;
  color: var(--ct-text-3, #9a9a94);
  flex-shrink: 0;
  line-height: 1; }

.ccp-order-label {
  flex: 1;
  font-size: var(--ds-fs-caption);
  color: var(--ct-text-1, #181816);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; }

/* ── POS Order Modal (pom-*) — design CoreTable ─────────────── */
.modal-body {
  text-align: left; }

.pom-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-top: 8px;
  padding-bottom: 16px;
  margin-bottom: 16px;
  border-bottom: 1px solid var(--ct-border-md); }

.pom-hero-left {
  display: flex;
  flex-direction: column;
  gap: 3px; }

.pom-hero-amount {
  font-family: var(--ct-mono);
  font-variant-numeric: tabular-nums;
  font-size: 26px;
  font-weight: 600;
  color: var(--ct-text-1);
  letter-spacing: -.5px;
  line-height: 1; }

.pom-hero-sub {
  font-size: var(--ds-fs-caption);
  color: var(--ct-text-3); }

.pom-meta {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px 8px;
  background: var(--blue-light);
  border-radius: var(--ct-r-lg);
  padding: 14px 16px;
  margin-bottom: 20px; }
  @media (max-width: 480px) {
    .pom-meta {
      grid-template-columns: 1fr 1fr; } }

.pom-mi {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0; }

.pom-mi-label {
  font-size: var(--ds-fs-caption);
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--ct-text-3);
  white-space: nowrap; }

.pom-mi-val {
  font-size: 13px;
  font-weight: 500;
  color: var(--ct-text-1);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; }

.pom-section-label {
  font-size: var(--ds-fs-caption);
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--ct-text-3);
  margin: 0 0 8px; }

.pom-lines {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
  margin-bottom: 2px; }
  .pom-lines thead th {
    padding: 0 10px 8px;
    font-size: var(--ds-fs-caption);
    font-weight: 500;
    color: var(--ct-text-3);
    text-align: left;
    border-bottom: 1px solid var(--ct-border-md); }
    .pom-lines thead th:first-child {
      padding-left: 0; }
    .pom-lines thead th:last-child {
      padding-right: 0;
      text-align: right; }
  .pom-lines tbody td {
    padding: 9px 10px;
    border-bottom: 1px solid var(--ct-border);
    vertical-align: middle;
    color: var(--ct-text-1); }
    .pom-lines tbody td:first-child {
      padding-left: 0; }
    .pom-lines tbody td:last-child {
      padding-right: 0;
      text-align: right;
      font-family: var(--ct-mono);
      font-variant-numeric: tabular-nums; }
  .pom-lines tbody tr:last-child td {
    border-bottom: none; }

.pom-thumb {
  width: 36px !important;
  height: 36px !important;
  border-radius: var(--ct-r-sm) !important;
  flex-shrink: 0;
  font-size: 13px !important; }

.pom-article-cell {
  display: flex;
  align-items: center;
  gap: 10px; }

.pom-article-info {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0; }

.pom-line-name {
  display: block;
  font-weight: 500; }

.pom-line-sub {
  display: block;
  font-size: var(--ds-fs-caption);
  color: var(--ct-text-3);
  margin-top: 1px; }

.pom-line-disc {
  display: block;
  font-size: var(--ds-fs-secondary);
  color: var(--danger-fg);
  margin-top: 1px; }

.pom-summary {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 5px;
  border-top: 1px solid var(--ct-border-md);
  padding-top: 12px;
  margin-top: 4px; }

.pom-sum-row {
  display: flex;
  gap: 24px;
  font-size: var(--ds-fs-secondary);
  color: var(--ct-text-2); }
  .pom-sum-row span:last-child {
    min-width: 72px;
    text-align: right;
    font-family: var(--ct-mono);
    font-variant-numeric: tabular-nums; }

.pom-sum-reste {
  color: var(--danger-fg); }

.pom-sum-total {
  display: flex;
  gap: 24px;
  align-items: baseline;
  font-size: 13px;
  font-weight: 600;
  color: var(--ct-text-1);
  margin-top: 3px; }
  .pom-sum-total span:last-child {
    min-width: 72px;
    text-align: right;
    font-family: var(--ct-mono);
    font-variant-numeric: tabular-nums;
    font-size: 17px;
    font-weight: 700;
    color: var(--blue-selected); }

/* ── Ticket Detail Modal (ticket-detail-*) ───────────────────────── */
.ticket-detail {
  color: var(--ct-text-1);
  font-family: var(--ct-font); }
  .ticket-detail .ct-kpis {
    margin-bottom: 16px; }
  .ticket-detail .ct-table-wrap {
    margin: 0;
    border-radius: var(--ct-r-lg);
    box-shadow: none;
    overflow-x: auto; }
  .ticket-detail .ct-table td,
  .ticket-detail .ct-table th {
    vertical-align: middle;
    white-space: nowrap; }
  .ticket-detail .ct-table td.ticket-detail-product {
    min-width: 200px;
    white-space: normal; }
  .ticket-detail .ct-badge-color {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 72px;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: var(--ds-fs-caption);
    font-weight: 600; }

.ticket-detail-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 18px;
  margin-bottom: 20px;
  padding: 14px 16px;
  border-radius: var(--ct-r-lg);
  background: var(--ct-page-bg); }

.ticket-detail-meta-item {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: baseline;
  font-size: 13px; }
  .ticket-detail-meta-item strong {
    font-family: var(--ct-mono);
    font-variant-numeric: tabular-nums;
    font-weight: 500; }

.ticket-detail-meta-label {
  font-size: var(--ds-fs-caption);
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--ct-text-3);
  white-space: nowrap; }

.ticket-detail-section {
  margin-top: 18px; }

.ticket-detail-section-title {
  margin: 0 0 8px;
  font-size: var(--ds-fs-caption);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--ct-text-3); }

@media (max-width: 767px) {
  .ticket-detail-meta {
    grid-template-columns: 1fr; } }
/* ── Supplier Invoice Create Form (si-*) ─────────────────────────── */
.si-form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px 16px;
  margin-bottom: 16px; }
  .si-form-grid .dynInput, .si-form-grid .dynDropDown {
    margin-bottom: 0; }
  .si-form-grid .si-full {
    grid-column: 1 / -1; }

.si-notes-group {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-top: 6px; }

.si-label-static {
  font-size: var(--ds-fs-caption);
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--ct-text-3);
  font-weight: 500;
  margin: 0; }

.si-textarea {
  resize: vertical;
  min-height: 70px;
  font-family: var(--ct-font);
  font-size: 13px; }

.si-payment-section {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--ct-border-md); }

.si-payment-title {
  font-size: var(--ds-fs-caption);
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--ct-text-3);
  font-weight: 500;
  margin-bottom: 10px; }

.si-payment-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px 16px; }
  .si-payment-grid .dynInput, .si-payment-grid .dynDropDown {
    margin-bottom: 0; }
  .si-payment-grid .si-payment-full {
    grid-column: 1 / -1; }

.si-file-zone {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  background: var(--ct-page-bg);
  border-radius: var(--ct-r-md);
  border: 1px dashed var(--ct-border-md);
  margin-bottom: 14px; }

.si-file-label {
  font-size: var(--ds-fs-caption);
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--ct-text-3);
  font-weight: 500;
  white-space: nowrap; }

.si-file-btn {
  font-family: var(--ct-font);
  font-size: var(--ds-fs-caption);
  padding: 4px 10px;
  border-radius: var(--ct-r-md);
  border: 1px solid var(--ct-border-md);
  background: var(--ct-surface);
  color: var(--ct-text-2);
  cursor: pointer;
  white-space: nowrap;
  transition: border-color .15s, color .15s; }
  .si-file-btn:hover {
    border-color: var(--blue-selected);
    color: var(--blue-selected); }
  .si-file-btn i {
    margin-right: 4px; }

.si-file-name {
  font-size: var(--ds-fs-caption);
  color: var(--ct-text-2);
  font-family: var(--ct-font);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap; }

.si-file-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 7px 10px;
  background: var(--ct-page-bg);
  border-radius: var(--ct-r-md);
  border: 1px solid var(--ct-border-md);
  margin-bottom: 6px; }
  .si-file-row a.si-file-name {
    flex: 1;
    text-decoration: none; }
    .si-file-row a.si-file-name:hover {
      color: var(--blue-selected); }
    .si-file-row a.si-file-name i {
      margin-right: 6px;
      color: var(--ct-text-3); }

.si-file-dl {
  color: var(--ct-text-3);
  text-decoration: none;
  padding: 2px 6px; }
  .si-file-dl:hover {
    color: var(--blue-selected); }

.si-amt-cell {
  white-space: nowrap; }

.si-inline-amount {
  font-family: var(--ct-font);
  font-size: inherit;
  color: inherit;
  text-align: right;
  width: 92px;
  border: none;
  border-bottom: 1px dashed var(--ct-border-md);
  background: transparent;
  padding: 0 2px;
  -moz-appearance: textfield; }
  .si-inline-amount::-webkit-outer-spin-button, .si-inline-amount::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0; }
  .si-inline-amount:hover {
    border-bottom-color: var(--blue-selected); }
  .si-inline-amount:focus {
    outline: none;
    border-bottom-color: var(--blue-selected); }
  .si-inline-amount:disabled {
    opacity: .6; }

.si-inline-amount-total {
  font-weight: 700; }

.si-error {
  background: var(--danger-bg);
  border: 1px solid var(--danger-line);
  color: var(--danger-fg);
  border-radius: var(--ct-r-md);
  padding: 8px 12px;
  font-size: var(--ds-fs-caption);
  margin-bottom: 12px; }

.si-form-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--ct-border-md); }

@media (max-width: 600px) {
  .si-form-grid {
    grid-template-columns: 1fr; } }
/* ── Orders Sales Modal (.orderDetailsContent) ───────────────────── */
.modal-body .orderDetailsContent {
  font-family: var(--ct-font);
  font-size: 13px;
  color: var(--ct-text-1); }
  .modal-body .orderDetailsContent hr {
    border-color: var(--ct-border-md);
    margin: 12px 0; }
  .modal-body .orderDetailsContent .light-Container {
    background: var(--ct-page-bg);
    border-radius: var(--ct-r-lg);
    border: none; }
  .modal-body .orderDetailsContent .excludindLabelStyle {
    font-family: var(--ct-mono);
    font-variant-numeric: tabular-nums; }
  .modal-body .orderDetailsContent b {
    font-size: var(--ds-fs-caption);
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--ct-text-3);
    font-weight: 500; }

/* ═══════════════════════════════════════════════
   CORETABLE — MOBILE (cartes label : valeur)
   Chaque ligne devient une carte. Lignes normales (.ct-row) :
   titre en bandeau + badge de statut + ligne résumé visibles
   repliés ; le chevron révèle les colonnes de détail.
   Groupes/variantes : disposition « bande » conservée.

   FIX-REC (28/09, recette à l'écran X-9, décision Romain) : cartes aussi de 768 à 900 px.
   Le bloc est un MIXIN inclus deux fois (voir sous sa fin) :
     • ≤ 767 px : inclus tel quel — mêmes règles que l'ancien @media (régime téléphone, y compris
       les .ct-table écrites à la main, annulées plus bas par .ct-plain-table), plus la barre de tri
       des cartes et le bouton « Ouvrir » ;
     • 768-900 px : inclus SOUS « .ct-root.ct-cards » — classe posée par coretable.js sur SA racine
       seulement (jamais sur les .ct-root écrites à la main des rapports), et retirée par
       l'échappatoire `cards: false` / `.ct-no-cards` sur le conteneur de la table.
   ⚠️ Les règles qui visent la racine elle-même (.ct-root.ct-drawer-*) passent par $r : imbriquées,
   elles doivent devenir « &.ct-drawer-* » (sinon « .ct-root.ct-cards .ct-root… » ne vise rien).
   ═══════════════════════════════════════════════ */
/* Hors cartes (tableau) : barre de tri des cartes et bouton « Ouvrir » de carte absents.
   ⚠️ Doit précéder les @include ci-dessous (même spécificité : l'ordre décide). */
.ct-cardbar,
.ct-table .ct-td-cardopen {
  display: none; }

.ct-cardbar .ct-card-sort {
  width: auto;
  min-width: 0;
  flex: 1 1 160px;
  max-width: 260px; }

.ct-cardbar .ct-card-sortdir {
  min-width: 34px; }

.ct-cardbar .styled-checkbox {
  margin: 0;
  font-size: var(--ds-fs-secondary);
  font-weight: 500;
  color: var(--ct-text-2); }

@media (max-width: 767px) {
  /* Barre « Trier par / Tout sélectionner » des cartes (l'en-tête du tableau est masqué). */
  .ct-cardbar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 12px;
    margin: 0 0 10px; }

  /* « Ouvrir » d'une carte dépliée (table sans menu d'actions : le clic sur la carte déplie). */
  .ct-table .ct-td-cardopen {
    display: none; }

  .ct-row.ct-row-open > .ct-td-cardopen {
    display: flex;
    order: 5;
    flex: 0 0 100%;
    justify-content: flex-end;
    padding-top: 6px; }

  /* Le wrap devient un simple conteneur transparent : chaque ligne porte sa propre bordure.
     RC-20260901 min-width/width REMIS À ZÉRO : hérités du mode défilement horizontal desktop,
     ils gonflaient le conteneur au-delà de l'écran — en cartes, les VALEURS (alignées à droite
     par space-between) partaient hors champ et seuls les libellés restaient visibles. */
  .ct-table-wrap {
    background: none;
    border: none;
    border-radius: 0;
    overflow: visible;
    min-width: 0;
    width: auto; }

  /* Colonnes gelées : neutralisées en vue cartes (le positionnement des cartes
     reprend la main). Placé tôt pour que les règles de carte (case/vignette/
     action en position absolue, posées plus bas) restent prioritaires. */
  .ct-table-wrap .ct-sticky {
    position: static;
    left: auto;
    right: auto;
    z-index: auto;
    background: none;
    box-shadow: none; }

  .ct-table {
    display: block;
    width: 100%;
    /* En cartes, on annule le plancher desktop (--ct-table-min-w) pour éviter
       un débordement horizontal parasite. */
    min-width: 0;
    table-layout: auto; }

  .ct-table colgroup,
  .ct-table thead {
    display: none; }

  .ct-table tbody {
    display: block; }

  /* Ligne → carte (générique : groupes & variantes) */
  .ct-table tbody tr {
    display: block;
    position: relative;
    background: var(--ct-surface);
    border: 0.5px solid var(--ct-border);
    border-radius: var(--ct-r-md);
    margin-bottom: 10px;
    padding: 34px 12px 8px; }

  .ct-table tbody tr:last-child {
    border-bottom: 0.5px solid var(--ct-border); }

  .ct-table tbody tr:hover {
    background: var(--ct-surface); }

  /* Cellule de données → ligne « label : valeur » */
  .ct-table td {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    padding: 5px 0;
    border: none;
    white-space: normal;
    overflow: visible;
    text-align: left; }

  /* CONTRÔLE VAGUE 2 (V9a) : la règle desktop de troncature
     « .ct-table > tbody > tr > td » (nowrap + ellipsis) est PLUS spécifique
     que « .ct-table td » ci-dessus — sans cette ré-ouverture à spécificité
     égale, les valeurs des cartes mobiles restaient sur une seule ligne et
     débordaient de la carte. */
  .ct-table > tbody > tr > td {
    white-space: normal;
    text-overflow: clip; }

  .ct-table td::before {
    content: attr(data-label);
    flex-shrink: 0;
    font-size: var(--ds-fs-caption);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--ct-text-3); }

  /* Cellules sans libellé (images de variante, ligne vide…) : pas de préfixe */
  .ct-table td[data-label=""]::before,
  .ct-table td:not([data-label])::before {
    content: none; }

  /* Colonnes détail masquées tant que la ligne n'est pas dépliée */
  .ct-table .ct-td-secondary {
    display: none; }

  /* Lignes normales ET cartes variantes révèlent leurs détails au dépliage.
     Un parent de groupe déplie ses sous-cartes variantes (rendues à part),
     pas ses propres colonnes — qui restent masquées sur mobile. */
  .ct-table .ct-row.ct-row-open .ct-td-secondary,
  .ct-table .ct-variant-row.ct-variant-open .ct-td-secondary {
    display: flex; }

  /* Conserver libellé à gauche / valeur à droite même sur les colonnes alignées à droite */
  .ct-table .ct-td-r {
    justify-content: space-between; }

  /* Bande supérieure : checkbox + chevron à gauche */
  .ct-table .ct-td-cb {
    position: absolute;
    top: 8px;
    left: 10px;
    width: auto;
    padding: 0; }

  /* Chevron : MASQUÉ pour les lignes normales (le clic sur la carte révèle
     ses détails) ; CONSERVÉ pour les parents de groupe afin de signaler
     qu'il y a des variantes à dérouler (+ son état ouvert/fermé).
     Les actions restent accessibles via les boutons d'action. */
  .ct-table .ct-row-expand {
    display: none; }

  .ct-table .ct-group-parent .ct-expand-btn {
    display: inline-flex; }

  /* Actions toujours visibles (pas de hover en mobile), en haut à droite */
  .ct-table .ct-td-act {
    position: absolute;
    top: 8px;
    right: 8px;
    width: auto;
    padding: 0; }

  .ct-table .ct-td-act::before {
    content: none; }

  .ct-table .ct-row-actions {
    opacity: 1; }

  /* ── Carte « complète » : lignes normales ET parents de groupe ──
     Gabarit unique (harmonisation article simple / à variantes).
     Colonnes latérales ancrées à une position FIXE (centre de l'en-tête
     à 2 lignes, ~33px) — et NON 50% de la hauteur — pour qu'elles ne
     bougent pas quand la carte se déplie :
       • gauche : [checkbox] (+ chevron pour les groupes) puis [vignette]
       • droite : [action]
     Le clic sur la carte l'ouvre / la ferme ; le chevron (groupes) reste
     comme repère visuel des variantes.
     Zone centrale = 2 lignes empilées :
       ligne 1 → désignation (+ badge « N variantes »)
       ligne 2 → statut + métas (valeurs seules, même ligne)
     puis, sur les lignes normales dépliées, les détails (libellé : valeur). */
  .ct-table tbody tr.ct-row,
  .ct-table tbody tr.ct-group-parent {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    position: relative;
    column-gap: 16px;
    row-gap: 3px;
    min-height: 64px;
    cursor: pointer;
    /* gouttière gauche = checkbox seul (plus de chevron) ; élargie si vignette */
    padding: 12px 48px 12px 40px; }

  /* Ligne normale avec vignette */
  .ct-table tbody tr.ct-row:has(> .ct-td-image) {
    padding-left: 88px; }

  /* Parent de groupe : le chevron (variantes) occupe de la place à gauche,
     on décale donc la zone de contenu un peu plus. */
  .ct-table tbody tr.ct-group-parent {
    padding-left: 56px; }

  .ct-table tbody tr.ct-group-parent:has(> .ct-td-image) {
    padding-left: 90px; }

  /* Table groupee : les lignes normales adoptent la meme gouttiere gauche que
     les parents de groupe (place du chevron incluse), pour que vignettes, cases
     a cocher et contenus restent alignes d'une carte a l'autre. La vignette est
     aussi decalee a 42px comme les parents. */
  .ct-table.ct-has-groups tbody tr.ct-row {
    padding-left: 56px; }

  .ct-table.ct-has-groups tbody tr.ct-row:has(> .ct-td-image) {
    padding-left: 90px; }

  .ct-table.ct-has-groups .ct-row > .ct-td-image {
    left: 42px; }

  /* Idem pour l'identité portée par un avatar-name (clients, prospects, fournisseurs) :
     l'avatar est ancré en absolu à left:38px (gouttière de la case à cocher) et le nom
     décalé à 88px. Sans case à cocher, ces 38px à gauche de l'avatar sont vides → on
     recale l'avatar à 10px et on réduit le décalage du nom. Spécificité > règle 88px. */
  .ct-table.ct-no-lead tbody tr.ct-row:has(> .ct-td-title .ct-av-name-wrap) {
    padding-left: 60px; }

  .ct-table.ct-no-lead .ct-row > .ct-td-title .ct-av-name-wrap .ct-avatar {
    left: 10px; }

  /* Checkbox : ancré à gauche, centré sur l'en-tête (position fixe) */
  .ct-row > .ct-td-cb,
  .ct-group-parent > .ct-td-cb {
    position: absolute;
    left: 10px;
    top: 33px;
    transform: translateY(-50%);
    width: auto;
    padding: 0; }

  .ct-row > .ct-td-cb::before,
  .ct-group-parent > .ct-td-cb::before {
    content: none; }

  /* Tables groupées : pour aligner TOUTES les cases à cocher (cartes avec
     ou sans chevron), on réserve la largeur du chevron (15px + 2px de
     gouttière) sur chaque carte, puis on sort le chevron du flux pour le
     replacer dans cette gouttière, à gauche de la case. La case ne bouge
     donc plus : elle est toujours à la même position.
     (classe .ct-has-groups posée par CoreTable dès qu'un groupBy est actif). */
  .ct-table.ct-has-groups .ct-row > .ct-td-cb,
  .ct-table.ct-has-groups .ct-group-parent > .ct-td-cb {
    padding-left: 7px; }

  .ct-table.ct-has-groups .ct-td-cb-group .ct-expand-btn {
    position: absolute;
    left: -10px;
    top: 50%;
    transform: translateY(-50%); }

  /* Vignette : à droite du checkbox, centrée sur l'en-tête (position fixe) */
  .ct-row > .ct-td-image,
  .ct-group-parent > .ct-td-image {
    position: absolute;
    left: 38px;
    top: 33px;
    transform: translateY(-50%);
    width: auto;
    padding: 0; }

  /* Parent de groupe : vignette décalée pour laisser la place au chevron */
  .ct-group-parent > .ct-td-image {
    left: 42px; }

  .ct-row > .ct-td-image::before,
  .ct-group-parent > .ct-td-image::before {
    content: none; }

  .ct-row > .ct-td-image .ct-img-thumb,
  .ct-row > .ct-td-image .ct-img-placeholder,
  .ct-group-parent > .ct-td-image .ct-img-thumb,
  .ct-group-parent > .ct-td-image .ct-img-placeholder {
    width: 40px;
    height: 40px; }

  /* Avatar-name servant de visuel (identité secondaire, ex. client d'un
     ticket) : on n'affiche que la pastille avatar, le nom est masqué — il
     déborderait de la position absolue et chevaucherait le titre. Un
     avatar-name porteur du titre (rôle title, ex. liste clients) conserve
     son nom : il n'est pas concerné par ces règles « > .ct-td-image ». */
  .ct-row > .ct-td-image .ct-av-name-wrap,
  .ct-group-parent > .ct-td-image .ct-av-name-wrap {
    gap: 0; }

  .ct-row > .ct-td-image .ct-name,
  .ct-group-parent > .ct-td-image .ct-name {
    display: none; }

  .ct-row > .ct-td-image .ct-avatar,
  .ct-group-parent > .ct-td-image .ct-avatar {
    width: 38px;
    height: 38px;
    border-radius: var(--ct-r-md);
    font-size: 13px; }

  /* Action : ancrée à droite, centrée sur l'en-tête (position fixe) */
  .ct-row > .ct-td-act,
  .ct-group-parent > .ct-td-act {
    position: absolute;
    right: 8px;
    top: 33px;
    transform: translateY(-50%);
    width: auto;
    padding: 0; }

  /* Désignation = ligne 1, pleine largeur, police réduite, sans libellé,
     identique avec ou sans variante (critiques « réduire la police » +
     « pas de Designation » + « aligner le style »). */
  .ct-row > .ct-td-title,
  .ct-group-parent > .ct-td-title {
    order: 1;
    flex: 0 0 100%;
    align-items: center;
    justify-content: flex-start;
    gap: 6px;
    min-width: 0;
    padding: 0;
    color: var(--ct-text-1); }

  .ct-row > .ct-td-title::before,
  .ct-group-parent > .ct-td-title::before {
    content: none; }

  .ct-row > .ct-td-title .ct-text,
  .ct-group-parent > .ct-td-title .ct-text {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap; }

  /* ── Identité principale portée par un avatar-name (clients, prospects,
     fournisseurs) ── Rendu aligné sur Tickets/Factures : l'avatar est ancré
     dans la gouttière gauche (centré verticalement, comme une vignette) et le
     NOM devient le titre. On décale le contenu de la carte pour dégager
     l'avatar ; le nom tronque proprement s'il est trop long. */
  .ct-table tbody tr.ct-row:has(> .ct-td-title .ct-av-name-wrap) {
    padding-left: 88px; }

  .ct-table tbody tr.ct-group-parent:has(> .ct-td-title .ct-av-name-wrap) {
    padding-left: 100px; }

  .ct-row > .ct-td-title .ct-av-name-wrap,
  .ct-group-parent > .ct-td-title .ct-av-name-wrap {
    min-width: 0; }

  /* L'avatar sort du flux et se place dans la gouttière gauche, comme la
     vignette d'un ticket. */
  .ct-row > .ct-td-title .ct-av-name-wrap .ct-avatar,
  .ct-group-parent > .ct-td-title .ct-av-name-wrap .ct-avatar {
    position: absolute;
    left: 38px;
    top: 33px;
    transform: translateY(-50%);
    width: 38px;
    height: 38px;
    border-radius: var(--ct-r-md);
    font-size: 13px; }

  /* Parent de groupe : avatar décalé pour laisser la place au chevron. */
  .ct-group-parent > .ct-td-title .ct-av-name-wrap .ct-avatar {
    left: 42px; }

  .ct-row > .ct-td-title .ct-name,
  .ct-group-parent > .ct-td-title .ct-name {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap; }

  /* Ligne 2 : statut puis métas (valeurs seules) sur la même ligne.
     Le badge passe en 1er (order) bien qu'il soit en dernier dans le DOM ;
     les libellés sont retirés (critique « seulement les valeurs »). */
  .ct-row > .ct-td-badge,
  .ct-group-parent > .ct-td-badge {
    order: 2; }

  .ct-row > .ct-td-summary,
  .ct-group-parent > .ct-td-summary {
    order: 3; }

  .ct-row > .ct-td-badge,
  .ct-row > .ct-td-summary,
  .ct-group-parent > .ct-td-badge,
  .ct-group-parent > .ct-td-summary {
    flex: 0 0 auto;
    align-items: center;
    justify-content: flex-start;
    width: auto;
    padding: 0; }

  .ct-row > .ct-td-badge::before,
  .ct-row > .ct-td-summary::before,
  .ct-group-parent > .ct-td-badge::before,
  .ct-group-parent > .ct-td-summary::before {
    content: none; }

  /* Détails (lignes normales ET variantes dépliées) : empilés, pleine
     largeur, libellé : valeur conservé. */
  .ct-row.ct-row-open > .ct-td-secondary,
  .ct-variant-row.ct-variant-open > .ct-td-secondary {
    order: 4;
    flex: 0 0 100%;
    border-top: 0.5px solid var(--ct-border); }

  /* Espace au-dessus du premier détail révélé (« Famille ») pour le
     détacher de l'en-tête (statut/prix/stock). Les détails suivants
     gardent leur seul séparateur (border-top), sans marge additionnelle. */
  .ct-row.ct-row-open > .ct-td-secondary,
  .ct-variant-row.ct-variant-open > .ct-td-secondary {
    margin-top: 8px; }

  .ct-row.ct-row-open > .ct-td-secondary ~ .ct-td-secondary,
  .ct-variant-row.ct-variant-open > .ct-td-secondary ~ .ct-td-secondary {
    margin-top: 0; }

  /* ── Cartes de variantes ──────────────────────────────────────────────
     Reprend le rendu d'une carte normale : fond blanc, bordure et rayon
     hérités de la règle générique « .ct-table tbody tr » (pas de fond teinté
     ni de rayon custom — on reste dans le Design System). Seule petite
     variation pour signaler la déclinaison : léger retrait + filet d'accent
     à gauche.
     Les cellules ont reçu leurs rôles (titre/badge/résumé/détail) comme les
     lignes normales ; les colonnes de détail (.ct-td-secondary, dont les
     options de déclinaison déjà résumées dans le libellé) restent masquées
     par la règle générique : seuls les champs clés apparaissent. */
  .ct-table tbody tr.ct-variant-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    position: relative;
    column-gap: 16px;
    row-gap: 3px;
    min-height: 0;
    margin: 0 0 8px 14px;
    padding: 10px 40px 10px 12px;
    border-left: 3px solid var(--ct-accent);
    cursor: pointer; }

  /* Filet vert « dernière variante » (desktop) neutralisé : carte uniforme */
  .ct-table tbody tr.ct-variant-last {
    border-bottom: 0.5px solid var(--ct-border) !important; }

  /* Connecteur (trait vertical desktop) + case à cocher vide : inutiles ici */
  .ct-table tr.ct-variant-row > .ct-variant-connector,
  .ct-table tr.ct-variant-row > .ct-td-cb {
    display: none; }

  /* Ligne 1 : libellé de la variante (déclinaisons concaténées) en titre */
  .ct-variant-row > .ct-td-title {
    order: 1;
    flex: 0 0 100%;
    align-items: center;
    gap: 6px;
    min-width: 0;
    padding: 0;
    color: var(--ct-text-1);
    font-weight: 500; }

  .ct-variant-row > .ct-td-title::before {
    content: none; }

  .ct-variant-row > .ct-td-title .ct-variant-name-wrap {
    padding-left: 0;
    min-width: 0; }

  .ct-variant-row > .ct-td-title .ct-variant-name-wrap::before {
    content: none; }

  .ct-variant-row > .ct-td-title .ct-variant-label {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap; }

  /* Ligne 2 : statut puis métas (valeurs seules, même ligne) */
  .ct-variant-row > .ct-td-badge {
    order: 2; }

  .ct-variant-row > .ct-td-summary {
    order: 3; }

  .ct-variant-row > .ct-td-badge,
  .ct-variant-row > .ct-td-summary {
    flex: 0 0 auto;
    align-items: center;
    justify-content: flex-start;
    width: auto;
    padding: 0; }

  .ct-variant-row > .ct-td-badge::before,
  .ct-variant-row > .ct-td-summary::before {
    content: none; }

  /* Action de variante : ancrée à droite, centrée verticalement */
  .ct-variant-row > .ct-td-act {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    width: auto;
    padding: 0; }

  /* Message « aucun résultat » : pas de mise en page flex */
  .ct-table td.ct-empty {
    display: block;
    text-align: center; }

  /* Recherche pleine largeur */
  .ct-search-wrap {
    max-width: none;
    width: 100%; }

  /* ═══════════════════════════════════════════════
     VOLETS LATÉRAUX MOBILES (filtres & actions groupées)
     Les filtres inline et les boutons d'actions groupées sont déportés dans
     un volet latéral droit, ouvert par un déclencheur dédié. L'état d'ouverture
     vit dans state.drawer (classe .ct-drawer-* sur .ct-root) pour survivre aux
     re-rendus de CoreTable.
     ═══════════════════════════════════════════════ */
  /* Déclencheurs (cachés en desktop, visibles ici) */
  .ct-filters-toggle,
  .ct-bulk-toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 13px;
    font-size: var(--ds-fs-caption);
    font-weight: 500;
    font-family: var(--ct-font);
    color: var(--ct-text-2);
    background: var(--ct-surface);
    border: 0.5px solid var(--ct-border-md);
    border-radius: var(--ct-r-md);
    cursor: pointer;
    white-space: nowrap; }

  /* Pastille « nombre de filtres actifs » */
  .ct-filters-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    border-radius: 8px;
    background: var(--blue-selected);
    color: var(--text-inverse);
    font-size: var(--ds-fs-caption);
    font-weight: 600; }

  /* Panneaux : volet latéral droit, hors-écran par défaut.
     Pas d'ombre ici : à l'état fermé (translateX(100%)) son flou déborderait
     sur le bord droit de l'écran. L'ombre est ajoutée à l'état ouvert. */
  .ct-filters,
  .ct-bulk-actions {
    position: fixed;
    top: 0;
    right: 0;
    /* bottom: 4px À L'ÉTAT FERMÉ (30/08, enquête « bande basse » iOS ≥26) : un fixed dont
       l'encre touche le bord bas reste candidat à l'échantillonnage du chrome Safari MÊME hors
       écran par translateX — décollé de 4px, il ne l'est plus ; bottom:0 revient à l'ouverture.
       Porté ici depuis le patch manuel de styles.css (la compilation auto est de retour). */
    bottom: 4px;
    z-index: 1001;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    width: min(86vw, 320px);
    margin: 0;
    padding: 16px;
    background: var(--ct-surface);
    overflow-y: auto;
    transform: translateX(100%); }

  /* Ouverture pilotée par l'état (.ct-drawer-* posée sur .ct-root) */
  .ct-root.ct-drawer-filters .ct-filters,
  .ct-root.ct-drawer-bulk .ct-bulk-actions {
    bottom: 0;
    /* ouvert : pleine hauteur (cf. bottom:4px fermé ci-dessus) */
    transform: translateX(0);
    box-shadow: -6px 0 24px var(--shadow); }

  /* Animation d'apparition — jouée seulement à l'ouverture (classe
     .ct-drawer-anim posée le temps d'un rendu), pas sur les re-rendus
     provoqués par un changement de filtre. */
  .ct-root.ct-drawer-anim.ct-drawer-filters .ct-filters,
  .ct-root.ct-drawer-anim.ct-drawer-bulk .ct-bulk-actions {
    animation: ct-drawer-in .22s ease; }

  .ct-root.ct-drawer-anim .ct-drawer-backdrop {
    animation: ct-fade-in .18s ease; }

  /* En-tête du volet : titre + bouton fermer */
  .ct-drawer-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 8px;
    border-bottom: 0.5px solid var(--ct-border); }

  .ct-drawer-title {
    font-size: 14px;
    font-weight: 600;
    color: var(--ct-text-1); }

  .ct-drawer-close {
    border: none;
    background: none;
    padding: 4px 6px;
    font-size: 16px;
    line-height: 1;
    color: var(--ct-text-3);
    cursor: pointer;
    border-radius: var(--ct-r-sm); }

  /* Contrôles de filtre : pleine largeur, empilés */
  .ct-filters .ct-fsel,
  .ct-filters .ct-drp,
  .ct-filters .ct-filter-daterange {
    width: 100%;
    min-width: 0; }

  .ct-filters .ct-filter-daterange {
    display: flex; }

  /* Bouton « Voir les résultats » collé en bas du volet filtres */
  .ct-filters-apply {
    display: block;
    margin-top: auto;
    padding: 12px;
    border: none;
    border-radius: var(--ct-r-md);
    background: var(--blue-selected);
    color: var(--text-inverse);
    font-size: 13px;
    font-weight: 600;
    font-family: var(--ct-font);
    cursor: pointer; }

  /* Actions groupées : boutons pleine largeur, empilés */
  .ct-bulk-actions .ct-bulk-btn {
    width: 100%;
    padding: 12px;
    text-align: left;
    font-size: 13px; }

  /* Barre d'actions groupées : pas d'animation (évite que le volet enfant,
     en position fixed, se réancre sur la barre pendant son transform). */
  .ct-bulk-bar {
    animation: none;
    flex-wrap: wrap; }

  /* Voile derrière le volet.
     Doctrine « teinte de barre » Safari iOS ≥26 (voir .sidebar-backdrop, _menu.scss) : le fixed
     plein écran reste transparent, le voile est peint par un ::before absolu que l'heuristique
     d'échantillonnage de Safari ignore. */
  .ct-drawer-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: transparent; }

  .ct-drawer-backdrop::before {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--overlay); } }
@media (min-width: 768px) and (max-width: 900px) {
  .ct-root.ct-cards {
    /* Barre « Trier par / Tout sélectionner » des cartes (l'en-tête du tableau est masqué). */
    /* « Ouvrir » d'une carte dépliée (table sans menu d'actions : le clic sur la carte déplie). */
    /* Le wrap devient un simple conteneur transparent : chaque ligne porte sa propre bordure.
       RC-20260901 min-width/width REMIS À ZÉRO : hérités du mode défilement horizontal desktop,
       ils gonflaient le conteneur au-delà de l'écran — en cartes, les VALEURS (alignées à droite
       par space-between) partaient hors champ et seuls les libellés restaient visibles. */
    /* Colonnes gelées : neutralisées en vue cartes (le positionnement des cartes
       reprend la main). Placé tôt pour que les règles de carte (case/vignette/
       action en position absolue, posées plus bas) restent prioritaires. */
    /* Ligne → carte (générique : groupes & variantes) */
    /* Cellule de données → ligne « label : valeur » */
    /* CONTRÔLE VAGUE 2 (V9a) : la règle desktop de troncature
       « .ct-table > tbody > tr > td » (nowrap + ellipsis) est PLUS spécifique
       que « .ct-table td » ci-dessus — sans cette ré-ouverture à spécificité
       égale, les valeurs des cartes mobiles restaient sur une seule ligne et
       débordaient de la carte. */
    /* Cellules sans libellé (images de variante, ligne vide…) : pas de préfixe */
    /* Colonnes détail masquées tant que la ligne n'est pas dépliée */
    /* Lignes normales ET cartes variantes révèlent leurs détails au dépliage.
       Un parent de groupe déplie ses sous-cartes variantes (rendues à part),
       pas ses propres colonnes — qui restent masquées sur mobile. */
    /* Conserver libellé à gauche / valeur à droite même sur les colonnes alignées à droite */
    /* Bande supérieure : checkbox + chevron à gauche */
    /* Chevron : MASQUÉ pour les lignes normales (le clic sur la carte révèle
       ses détails) ; CONSERVÉ pour les parents de groupe afin de signaler
       qu'il y a des variantes à dérouler (+ son état ouvert/fermé).
       Les actions restent accessibles via les boutons d'action. */
    /* Actions toujours visibles (pas de hover en mobile), en haut à droite */
    /* ── Carte « complète » : lignes normales ET parents de groupe ──
       Gabarit unique (harmonisation article simple / à variantes).
       Colonnes latérales ancrées à une position FIXE (centre de l'en-tête
       à 2 lignes, ~33px) — et NON 50% de la hauteur — pour qu'elles ne
       bougent pas quand la carte se déplie :
         • gauche : [checkbox] (+ chevron pour les groupes) puis [vignette]
         • droite : [action]
       Le clic sur la carte l'ouvre / la ferme ; le chevron (groupes) reste
       comme repère visuel des variantes.
       Zone centrale = 2 lignes empilées :
         ligne 1 → désignation (+ badge « N variantes »)
         ligne 2 → statut + métas (valeurs seules, même ligne)
       puis, sur les lignes normales dépliées, les détails (libellé : valeur). */
    /* Ligne normale avec vignette */
    /* Parent de groupe : le chevron (variantes) occupe de la place à gauche,
       on décale donc la zone de contenu un peu plus. */
    /* Table groupee : les lignes normales adoptent la meme gouttiere gauche que
       les parents de groupe (place du chevron incluse), pour que vignettes, cases
       a cocher et contenus restent alignes d'une carte a l'autre. La vignette est
       aussi decalee a 42px comme les parents. */
    /* Idem pour l'identité portée par un avatar-name (clients, prospects, fournisseurs) :
       l'avatar est ancré en absolu à left:38px (gouttière de la case à cocher) et le nom
       décalé à 88px. Sans case à cocher, ces 38px à gauche de l'avatar sont vides → on
       recale l'avatar à 10px et on réduit le décalage du nom. Spécificité > règle 88px. */
    /* Checkbox : ancré à gauche, centré sur l'en-tête (position fixe) */
    /* Tables groupées : pour aligner TOUTES les cases à cocher (cartes avec
       ou sans chevron), on réserve la largeur du chevron (15px + 2px de
       gouttière) sur chaque carte, puis on sort le chevron du flux pour le
       replacer dans cette gouttière, à gauche de la case. La case ne bouge
       donc plus : elle est toujours à la même position.
       (classe .ct-has-groups posée par CoreTable dès qu'un groupBy est actif). */
    /* Vignette : à droite du checkbox, centrée sur l'en-tête (position fixe) */
    /* Parent de groupe : vignette décalée pour laisser la place au chevron */
    /* Avatar-name servant de visuel (identité secondaire, ex. client d'un
       ticket) : on n'affiche que la pastille avatar, le nom est masqué — il
       déborderait de la position absolue et chevaucherait le titre. Un
       avatar-name porteur du titre (rôle title, ex. liste clients) conserve
       son nom : il n'est pas concerné par ces règles « > .ct-td-image ». */
    /* Action : ancrée à droite, centrée sur l'en-tête (position fixe) */
    /* Désignation = ligne 1, pleine largeur, police réduite, sans libellé,
       identique avec ou sans variante (critiques « réduire la police » +
       « pas de Designation » + « aligner le style »). */
    /* ── Identité principale portée par un avatar-name (clients, prospects,
       fournisseurs) ── Rendu aligné sur Tickets/Factures : l'avatar est ancré
       dans la gouttière gauche (centré verticalement, comme une vignette) et le
       NOM devient le titre. On décale le contenu de la carte pour dégager
       l'avatar ; le nom tronque proprement s'il est trop long. */
    /* L'avatar sort du flux et se place dans la gouttière gauche, comme la
       vignette d'un ticket. */
    /* Parent de groupe : avatar décalé pour laisser la place au chevron. */
    /* Ligne 2 : statut puis métas (valeurs seules) sur la même ligne.
       Le badge passe en 1er (order) bien qu'il soit en dernier dans le DOM ;
       les libellés sont retirés (critique « seulement les valeurs »). */
    /* Détails (lignes normales ET variantes dépliées) : empilés, pleine
       largeur, libellé : valeur conservé. */
    /* Espace au-dessus du premier détail révélé (« Famille ») pour le
       détacher de l'en-tête (statut/prix/stock). Les détails suivants
       gardent leur seul séparateur (border-top), sans marge additionnelle. */
    /* ── Cartes de variantes ──────────────────────────────────────────────
       Reprend le rendu d'une carte normale : fond blanc, bordure et rayon
       hérités de la règle générique « .ct-table tbody tr » (pas de fond teinté
       ni de rayon custom — on reste dans le Design System). Seule petite
       variation pour signaler la déclinaison : léger retrait + filet d'accent
       à gauche.
       Les cellules ont reçu leurs rôles (titre/badge/résumé/détail) comme les
       lignes normales ; les colonnes de détail (.ct-td-secondary, dont les
       options de déclinaison déjà résumées dans le libellé) restent masquées
       par la règle générique : seuls les champs clés apparaissent. */
    /* Filet vert « dernière variante » (desktop) neutralisé : carte uniforme */
    /* Connecteur (trait vertical desktop) + case à cocher vide : inutiles ici */
    /* Ligne 1 : libellé de la variante (déclinaisons concaténées) en titre */
    /* Ligne 2 : statut puis métas (valeurs seules, même ligne) */
    /* Action de variante : ancrée à droite, centrée verticalement */
    /* Message « aucun résultat » : pas de mise en page flex */
    /* Recherche pleine largeur */
    /* ═══════════════════════════════════════════════
       VOLETS LATÉRAUX MOBILES (filtres & actions groupées)
       Les filtres inline et les boutons d'actions groupées sont déportés dans
       un volet latéral droit, ouvert par un déclencheur dédié. L'état d'ouverture
       vit dans state.drawer (classe .ct-drawer-* sur .ct-root) pour survivre aux
       re-rendus de CoreTable.
       ═══════════════════════════════════════════════ */
    /* Déclencheurs (cachés en desktop, visibles ici) */
    /* Pastille « nombre de filtres actifs » */
    /* Panneaux : volet latéral droit, hors-écran par défaut.
       Pas d'ombre ici : à l'état fermé (translateX(100%)) son flou déborderait
       sur le bord droit de l'écran. L'ombre est ajoutée à l'état ouvert. */
    /* Ouverture pilotée par l'état (.ct-drawer-* posée sur .ct-root) */
    /* Animation d'apparition — jouée seulement à l'ouverture (classe
       .ct-drawer-anim posée le temps d'un rendu), pas sur les re-rendus
       provoqués par un changement de filtre. */
    /* En-tête du volet : titre + bouton fermer */
    /* Contrôles de filtre : pleine largeur, empilés */
    /* Bouton « Voir les résultats » collé en bas du volet filtres */
    /* Actions groupées : boutons pleine largeur, empilés */
    /* Barre d'actions groupées : pas d'animation (évite que le volet enfant,
       en position fixed, se réancre sur la barre pendant son transform). */
    /* Voile derrière le volet.
       Doctrine « teinte de barre » Safari iOS ≥26 (voir .sidebar-backdrop, _menu.scss) : le fixed
       plein écran reste transparent, le voile est peint par un ::before absolu que l'heuristique
       d'échantillonnage de Safari ignore. */ }
    .ct-root.ct-cards .ct-cardbar {
      display: flex;
      align-items: center;
      flex-wrap: wrap;
      gap: 8px 12px;
      margin: 0 0 10px; }
    .ct-root.ct-cards .ct-table .ct-td-cardopen {
      display: none; }
    .ct-root.ct-cards .ct-row.ct-row-open > .ct-td-cardopen {
      display: flex;
      order: 5;
      flex: 0 0 100%;
      justify-content: flex-end;
      padding-top: 6px; }
    .ct-root.ct-cards .ct-table-wrap {
      background: none;
      border: none;
      border-radius: 0;
      overflow: visible;
      min-width: 0;
      width: auto; }
    .ct-root.ct-cards .ct-table-wrap .ct-sticky {
      position: static;
      left: auto;
      right: auto;
      z-index: auto;
      background: none;
      box-shadow: none; }
    .ct-root.ct-cards .ct-table {
      display: block;
      width: 100%;
      /* En cartes, on annule le plancher desktop (--ct-table-min-w) pour éviter
         un débordement horizontal parasite. */
      min-width: 0;
      table-layout: auto; }
    .ct-root.ct-cards .ct-table colgroup,
    .ct-root.ct-cards .ct-table thead {
      display: none; }
    .ct-root.ct-cards .ct-table tbody {
      display: block; }
    .ct-root.ct-cards .ct-table tbody tr {
      display: block;
      position: relative;
      background: var(--ct-surface);
      border: 0.5px solid var(--ct-border);
      border-radius: var(--ct-r-md);
      margin-bottom: 10px;
      padding: 34px 12px 8px; }
    .ct-root.ct-cards .ct-table tbody tr:last-child {
      border-bottom: 0.5px solid var(--ct-border); }
    .ct-root.ct-cards .ct-table tbody tr:hover {
      background: var(--ct-surface); }
    .ct-root.ct-cards .ct-table td {
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      gap: 12px;
      padding: 5px 0;
      border: none;
      white-space: normal;
      overflow: visible;
      text-align: left; }
    .ct-root.ct-cards .ct-table > tbody > tr > td {
      white-space: normal;
      text-overflow: clip; }
    .ct-root.ct-cards .ct-table td::before {
      content: attr(data-label);
      flex-shrink: 0;
      font-size: var(--ds-fs-caption);
      font-weight: 500;
      text-transform: uppercase;
      letter-spacing: .06em;
      color: var(--ct-text-3); }
    .ct-root.ct-cards .ct-table td[data-label=""]::before,
    .ct-root.ct-cards .ct-table td:not([data-label])::before {
      content: none; }
    .ct-root.ct-cards .ct-table .ct-td-secondary {
      display: none; }
    .ct-root.ct-cards .ct-table .ct-row.ct-row-open .ct-td-secondary,
    .ct-root.ct-cards .ct-table .ct-variant-row.ct-variant-open .ct-td-secondary {
      display: flex; }
    .ct-root.ct-cards .ct-table .ct-td-r {
      justify-content: space-between; }
    .ct-root.ct-cards .ct-table .ct-td-cb {
      position: absolute;
      top: 8px;
      left: 10px;
      width: auto;
      padding: 0; }
    .ct-root.ct-cards .ct-table .ct-row-expand {
      display: none; }
    .ct-root.ct-cards .ct-table .ct-group-parent .ct-expand-btn {
      display: inline-flex; }
    .ct-root.ct-cards .ct-table .ct-td-act {
      position: absolute;
      top: 8px;
      right: 8px;
      width: auto;
      padding: 0; }
    .ct-root.ct-cards .ct-table .ct-td-act::before {
      content: none; }
    .ct-root.ct-cards .ct-table .ct-row-actions {
      opacity: 1; }
    .ct-root.ct-cards .ct-table tbody tr.ct-row,
    .ct-root.ct-cards .ct-table tbody tr.ct-group-parent {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      position: relative;
      column-gap: 16px;
      row-gap: 3px;
      min-height: 64px;
      cursor: pointer;
      /* gouttière gauche = checkbox seul (plus de chevron) ; élargie si vignette */
      padding: 12px 48px 12px 40px; }
    .ct-root.ct-cards .ct-table tbody tr.ct-row:has(> .ct-td-image) {
      padding-left: 88px; }
    .ct-root.ct-cards .ct-table tbody tr.ct-group-parent {
      padding-left: 56px; }
    .ct-root.ct-cards .ct-table tbody tr.ct-group-parent:has(> .ct-td-image) {
      padding-left: 90px; }
    .ct-root.ct-cards .ct-table.ct-has-groups tbody tr.ct-row {
      padding-left: 56px; }
    .ct-root.ct-cards .ct-table.ct-has-groups tbody tr.ct-row:has(> .ct-td-image) {
      padding-left: 90px; }
    .ct-root.ct-cards .ct-table.ct-has-groups .ct-row > .ct-td-image {
      left: 42px; }
    .ct-root.ct-cards .ct-table.ct-no-lead tbody tr.ct-row:has(> .ct-td-title .ct-av-name-wrap) {
      padding-left: 60px; }
    .ct-root.ct-cards .ct-table.ct-no-lead .ct-row > .ct-td-title .ct-av-name-wrap .ct-avatar {
      left: 10px; }
    .ct-root.ct-cards .ct-row > .ct-td-cb,
    .ct-root.ct-cards .ct-group-parent > .ct-td-cb {
      position: absolute;
      left: 10px;
      top: 33px;
      transform: translateY(-50%);
      width: auto;
      padding: 0; }
    .ct-root.ct-cards .ct-row > .ct-td-cb::before,
    .ct-root.ct-cards .ct-group-parent > .ct-td-cb::before {
      content: none; }
    .ct-root.ct-cards .ct-table.ct-has-groups .ct-row > .ct-td-cb,
    .ct-root.ct-cards .ct-table.ct-has-groups .ct-group-parent > .ct-td-cb {
      padding-left: 7px; }
    .ct-root.ct-cards .ct-table.ct-has-groups .ct-td-cb-group .ct-expand-btn {
      position: absolute;
      left: -10px;
      top: 50%;
      transform: translateY(-50%); }
    .ct-root.ct-cards .ct-row > .ct-td-image,
    .ct-root.ct-cards .ct-group-parent > .ct-td-image {
      position: absolute;
      left: 38px;
      top: 33px;
      transform: translateY(-50%);
      width: auto;
      padding: 0; }
    .ct-root.ct-cards .ct-group-parent > .ct-td-image {
      left: 42px; }
    .ct-root.ct-cards .ct-row > .ct-td-image::before,
    .ct-root.ct-cards .ct-group-parent > .ct-td-image::before {
      content: none; }
    .ct-root.ct-cards .ct-row > .ct-td-image .ct-img-thumb,
    .ct-root.ct-cards .ct-row > .ct-td-image .ct-img-placeholder,
    .ct-root.ct-cards .ct-group-parent > .ct-td-image .ct-img-thumb,
    .ct-root.ct-cards .ct-group-parent > .ct-td-image .ct-img-placeholder {
      width: 40px;
      height: 40px; }
    .ct-root.ct-cards .ct-row > .ct-td-image .ct-av-name-wrap,
    .ct-root.ct-cards .ct-group-parent > .ct-td-image .ct-av-name-wrap {
      gap: 0; }
    .ct-root.ct-cards .ct-row > .ct-td-image .ct-name,
    .ct-root.ct-cards .ct-group-parent > .ct-td-image .ct-name {
      display: none; }
    .ct-root.ct-cards .ct-row > .ct-td-image .ct-avatar,
    .ct-root.ct-cards .ct-group-parent > .ct-td-image .ct-avatar {
      width: 38px;
      height: 38px;
      border-radius: var(--ct-r-md);
      font-size: 13px; }
    .ct-root.ct-cards .ct-row > .ct-td-act,
    .ct-root.ct-cards .ct-group-parent > .ct-td-act {
      position: absolute;
      right: 8px;
      top: 33px;
      transform: translateY(-50%);
      width: auto;
      padding: 0; }
    .ct-root.ct-cards .ct-row > .ct-td-title,
    .ct-root.ct-cards .ct-group-parent > .ct-td-title {
      order: 1;
      flex: 0 0 100%;
      align-items: center;
      justify-content: flex-start;
      gap: 6px;
      min-width: 0;
      padding: 0;
      color: var(--ct-text-1); }
    .ct-root.ct-cards .ct-row > .ct-td-title::before,
    .ct-root.ct-cards .ct-group-parent > .ct-td-title::before {
      content: none; }
    .ct-root.ct-cards .ct-row > .ct-td-title .ct-text,
    .ct-root.ct-cards .ct-group-parent > .ct-td-title .ct-text {
      min-width: 0;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap; }
    .ct-root.ct-cards .ct-table tbody tr.ct-row:has(> .ct-td-title .ct-av-name-wrap) {
      padding-left: 88px; }
    .ct-root.ct-cards .ct-table tbody tr.ct-group-parent:has(> .ct-td-title .ct-av-name-wrap) {
      padding-left: 100px; }
    .ct-root.ct-cards .ct-row > .ct-td-title .ct-av-name-wrap,
    .ct-root.ct-cards .ct-group-parent > .ct-td-title .ct-av-name-wrap {
      min-width: 0; }
    .ct-root.ct-cards .ct-row > .ct-td-title .ct-av-name-wrap .ct-avatar,
    .ct-root.ct-cards .ct-group-parent > .ct-td-title .ct-av-name-wrap .ct-avatar {
      position: absolute;
      left: 38px;
      top: 33px;
      transform: translateY(-50%);
      width: 38px;
      height: 38px;
      border-radius: var(--ct-r-md);
      font-size: 13px; }
    .ct-root.ct-cards .ct-group-parent > .ct-td-title .ct-av-name-wrap .ct-avatar {
      left: 42px; }
    .ct-root.ct-cards .ct-row > .ct-td-title .ct-name,
    .ct-root.ct-cards .ct-group-parent > .ct-td-title .ct-name {
      min-width: 0;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap; }
    .ct-root.ct-cards .ct-row > .ct-td-badge,
    .ct-root.ct-cards .ct-group-parent > .ct-td-badge {
      order: 2; }
    .ct-root.ct-cards .ct-row > .ct-td-summary,
    .ct-root.ct-cards .ct-group-parent > .ct-td-summary {
      order: 3; }
    .ct-root.ct-cards .ct-row > .ct-td-badge,
    .ct-root.ct-cards .ct-row > .ct-td-summary,
    .ct-root.ct-cards .ct-group-parent > .ct-td-badge,
    .ct-root.ct-cards .ct-group-parent > .ct-td-summary {
      flex: 0 0 auto;
      align-items: center;
      justify-content: flex-start;
      width: auto;
      padding: 0; }
    .ct-root.ct-cards .ct-row > .ct-td-badge::before,
    .ct-root.ct-cards .ct-row > .ct-td-summary::before,
    .ct-root.ct-cards .ct-group-parent > .ct-td-badge::before,
    .ct-root.ct-cards .ct-group-parent > .ct-td-summary::before {
      content: none; }
    .ct-root.ct-cards .ct-row.ct-row-open > .ct-td-secondary,
    .ct-root.ct-cards .ct-variant-row.ct-variant-open > .ct-td-secondary {
      order: 4;
      flex: 0 0 100%;
      border-top: 0.5px solid var(--ct-border); }
    .ct-root.ct-cards .ct-row.ct-row-open > .ct-td-secondary,
    .ct-root.ct-cards .ct-variant-row.ct-variant-open > .ct-td-secondary {
      margin-top: 8px; }
    .ct-root.ct-cards .ct-row.ct-row-open > .ct-td-secondary ~ .ct-td-secondary,
    .ct-root.ct-cards .ct-variant-row.ct-variant-open > .ct-td-secondary ~ .ct-td-secondary {
      margin-top: 0; }
    .ct-root.ct-cards .ct-table tbody tr.ct-variant-row {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      position: relative;
      column-gap: 16px;
      row-gap: 3px;
      min-height: 0;
      margin: 0 0 8px 14px;
      padding: 10px 40px 10px 12px;
      border-left: 3px solid var(--ct-accent);
      cursor: pointer; }
    .ct-root.ct-cards .ct-table tbody tr.ct-variant-last {
      border-bottom: 0.5px solid var(--ct-border) !important; }
    .ct-root.ct-cards .ct-table tr.ct-variant-row > .ct-variant-connector,
    .ct-root.ct-cards .ct-table tr.ct-variant-row > .ct-td-cb {
      display: none; }
    .ct-root.ct-cards .ct-variant-row > .ct-td-title {
      order: 1;
      flex: 0 0 100%;
      align-items: center;
      gap: 6px;
      min-width: 0;
      padding: 0;
      color: var(--ct-text-1);
      font-weight: 500; }
    .ct-root.ct-cards .ct-variant-row > .ct-td-title::before {
      content: none; }
    .ct-root.ct-cards .ct-variant-row > .ct-td-title .ct-variant-name-wrap {
      padding-left: 0;
      min-width: 0; }
    .ct-root.ct-cards .ct-variant-row > .ct-td-title .ct-variant-name-wrap::before {
      content: none; }
    .ct-root.ct-cards .ct-variant-row > .ct-td-title .ct-variant-label {
      min-width: 0;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap; }
    .ct-root.ct-cards .ct-variant-row > .ct-td-badge {
      order: 2; }
    .ct-root.ct-cards .ct-variant-row > .ct-td-summary {
      order: 3; }
    .ct-root.ct-cards .ct-variant-row > .ct-td-badge,
    .ct-root.ct-cards .ct-variant-row > .ct-td-summary {
      flex: 0 0 auto;
      align-items: center;
      justify-content: flex-start;
      width: auto;
      padding: 0; }
    .ct-root.ct-cards .ct-variant-row > .ct-td-badge::before,
    .ct-root.ct-cards .ct-variant-row > .ct-td-summary::before {
      content: none; }
    .ct-root.ct-cards .ct-variant-row > .ct-td-act {
      position: absolute;
      right: 8px;
      top: 50%;
      transform: translateY(-50%);
      width: auto;
      padding: 0; }
    .ct-root.ct-cards .ct-table td.ct-empty {
      display: block;
      text-align: center; }
    .ct-root.ct-cards .ct-search-wrap {
      max-width: none;
      width: 100%; }
    .ct-root.ct-cards .ct-filters-toggle,
    .ct-root.ct-cards .ct-bulk-toggle {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 8px 13px;
      font-size: var(--ds-fs-caption);
      font-weight: 500;
      font-family: var(--ct-font);
      color: var(--ct-text-2);
      background: var(--ct-surface);
      border: 0.5px solid var(--ct-border-md);
      border-radius: var(--ct-r-md);
      cursor: pointer;
      white-space: nowrap; }
    .ct-root.ct-cards .ct-filters-badge {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 16px;
      height: 16px;
      padding: 0 4px;
      border-radius: 8px;
      background: var(--blue-selected);
      color: var(--text-inverse);
      font-size: var(--ds-fs-caption);
      font-weight: 600; }
    .ct-root.ct-cards .ct-filters,
    .ct-root.ct-cards .ct-bulk-actions {
      position: fixed;
      top: 0;
      right: 0;
      /* bottom: 4px À L'ÉTAT FERMÉ (30/08, enquête « bande basse » iOS ≥26) : un fixed dont
         l'encre touche le bord bas reste candidat à l'échantillonnage du chrome Safari MÊME hors
         écran par translateX — décollé de 4px, il ne l'est plus ; bottom:0 revient à l'ouverture.
         Porté ici depuis le patch manuel de styles.css (la compilation auto est de retour). */
      bottom: 4px;
      z-index: 1001;
      display: flex;
      flex-direction: column;
      align-items: stretch;
      gap: 10px;
      width: min(86vw, 320px);
      margin: 0;
      padding: 16px;
      background: var(--ct-surface);
      overflow-y: auto;
      transform: translateX(100%); }
    .ct-root.ct-cards.ct-drawer-filters .ct-filters, .ct-root.ct-cards.ct-drawer-bulk .ct-bulk-actions {
      bottom: 0;
      /* ouvert : pleine hauteur (cf. bottom:4px fermé ci-dessus) */
      transform: translateX(0);
      box-shadow: -6px 0 24px var(--shadow); }
    .ct-root.ct-cards.ct-drawer-anim.ct-drawer-filters .ct-filters, .ct-root.ct-cards.ct-drawer-anim.ct-drawer-bulk .ct-bulk-actions {
      animation: ct-drawer-in .22s ease; }
    .ct-root.ct-cards.ct-drawer-anim .ct-drawer-backdrop {
      animation: ct-fade-in .18s ease; }
    .ct-root.ct-cards .ct-drawer-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding-bottom: 8px;
      border-bottom: 0.5px solid var(--ct-border); }
    .ct-root.ct-cards .ct-drawer-title {
      font-size: 14px;
      font-weight: 600;
      color: var(--ct-text-1); }
    .ct-root.ct-cards .ct-drawer-close {
      border: none;
      background: none;
      padding: 4px 6px;
      font-size: 16px;
      line-height: 1;
      color: var(--ct-text-3);
      cursor: pointer;
      border-radius: var(--ct-r-sm); }
    .ct-root.ct-cards .ct-filters .ct-fsel,
    .ct-root.ct-cards .ct-filters .ct-drp,
    .ct-root.ct-cards .ct-filters .ct-filter-daterange {
      width: 100%;
      min-width: 0; }
    .ct-root.ct-cards .ct-filters .ct-filter-daterange {
      display: flex; }
    .ct-root.ct-cards .ct-filters-apply {
      display: block;
      margin-top: auto;
      padding: 12px;
      border: none;
      border-radius: var(--ct-r-md);
      background: var(--blue-selected);
      color: var(--text-inverse);
      font-size: 13px;
      font-weight: 600;
      font-family: var(--ct-font);
      cursor: pointer; }
    .ct-root.ct-cards .ct-bulk-actions .ct-bulk-btn {
      width: 100%;
      padding: 12px;
      text-align: left;
      font-size: 13px; }
    .ct-root.ct-cards .ct-bulk-bar {
      animation: none;
      flex-wrap: wrap; }
    .ct-root.ct-cards .ct-drawer-backdrop {
      display: block;
      position: fixed;
      inset: 0;
      z-index: 1000;
      background: transparent; }
    .ct-root.ct-cards .ct-drawer-backdrop::before {
      content: '';
      position: absolute;
      inset: 0;
      background: var(--overlay); } }
.flex-8-4 {
  display: flex;
  gap: 25px; }
  .flex-8-4 > *:first-child {
    flex: 8; }
  .flex-8-4 > *:last-child {
    flex: 4; }

/* ═══════════════════════════════════════════════
   RC-20260901 MOBILE des .ct-table écrites à la main (rapports Analytics — taguées
   .ct-plain-table par coretable.js). Décision Romain : TOUTES les infos visibles —
   on ANNULE la transformation en cartes pour ces tables et on restaure le TABLEAU,
   qui défile horizontalement dans son wrap. Les cartes restent le régime des tables
   rendues par CoreTable.
   ═══════════════════════════════════════════════ */
@media (max-width: 767px) {
  /* Le wrap redevient le conteneur défilable du mode desktop. */
  .ct-table-wrap.ct-plain-wrap {
    background: var(--ct-surface);
    border: 0.5px solid var(--ct-border);
    border-radius: var(--ct-r-lg);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch; }

  /* Table en AUTO : les colonnes se dimensionnent au contenu (nowrap) et la table
     déborde du wrap → défilement, au lieu d'écraser les colonnes du layout fixed. */
  .ct-table.ct-plain-table {
    display: table;
    table-layout: auto;
    width: auto;
    min-width: 100%; }

  .ct-table.ct-plain-table colgroup {
    display: table-column-group; }

  .ct-table.ct-plain-table thead {
    display: table-header-group; }

  .ct-table.ct-plain-table tbody {
    display: table-row-group; }

  .ct-table.ct-plain-table tfoot {
    display: table-footer-group; }

  .ct-table.ct-plain-table tbody tr,
  .ct-table.ct-plain-table tfoot tr {
    display: table-row;
    position: static;
    background: transparent;
    border: none;
    border-radius: 0;
    margin: 0;
    padding: 0; }

  .ct-table.ct-plain-table td {
    display: table-cell;
    white-space: nowrap;
    padding: 9px 12px; }

  .ct-table.ct-plain-table td::before {
    content: none; }

  .ct-table.ct-plain-table td.text-right,
  .ct-table.ct-plain-table td.ct-th-r {
    text-align: right; }

  .ct-table.ct-plain-table .ct-td-cb {
    position: static;
    top: auto;
    left: auto;
    padding: 9px 0 9px 10px; } }
.oui {
  background-color: var(--brand-solid);
  box-shadow: 2px 0px 3px 0.5px var(--brand-solid) inset;
  border: 1px solid var(--brand-solid); }
  .oui div {
    left: 14px; }

.non {
  background-color: #a4a4a4;
  transition: all 0.3s ease 0s;
  box-shadow: -2px 0px 3px 0.5px var(--field-line) inset;
  border: 1px solid var(--field-line); }
  .non div {
    left: 0px; }

#client_radio_buttons a {
  border-radius: 0px; }
  @media (max-width: 767px) {
    #client_radio_buttons a {
      padding-top: 5px;
      padding-bottom: 5px;
      font-size: 1.2em; } }
@media (max-width: 767px) {
  #client_radio_buttons label {
    font-size: var(--ds-fs-caption); } }

.menu {
  vertical-align: middle;
  padding: 0px 5px; }
  .menu .fa-lg {
    font-size: 1.2em !important;
    text-align: center;
    padding-right: 10px; }

.submenus {
  transition: max-height ease-in-out 0.3s;
  max-height: 0px;
  overflow: hidden; }

.current-menu .submenus {
  max-height: 120px; }

div[name="sub-menu"].selected {
  padding: 5px 3px 4px !important;
  background-color: var(--surface);
  color: var(--color-primary);
  border-radius: 5px; }
  div[name="sub-menu"].selected a {
    color: var(--color-primary) !important; }

.parent-selected {
  background-color: transparent !important; }
  .parent-selected a {
    color: var(--text-inverse) !important; }

div[name="parent-menu"] {
  padding: 8px 10px;
  display: flex;
  align-items: center; }
  div[name="parent-menu"] .menu_label {
    flex: 1; }
  div[name="parent-menu"] i {
    float: right;
    transform-origin: center center;
    color: rgba(255, 255, 255, 0.3);
    transition: transform ease-in-out 0.3s; }

div[name="sub-menu"] {
  padding: 3px;
  margin-left: 38px; }

div[name="sub-menu"] .menu_label {
  padding-left: 5px;
  border-left: 3px solid transparent;
  font-weight: 400; }

div[name="sub-menu"] .selected {
  color: var(--color-primary);
  border-color: #eb4d11; }

.menu-icon {
  width: 38px;
  vertical-align: middle; }

.separemenu {
  width: 100%;
  height: 1px;
  float: left;
  font-family: Arial;
  background-color: var(--surface-muted);
  background-repeat: no-repeat;
  text-decoration: none;
  padding: 0px;
  margin-top: 15px; }

#menu-left {
  color: var(--text-inverse);
  padding-top: 20px;
  font-weight: normal;
  z-index: 50;
  position: fixed;
  overflow: visible; }
  @media (max-width: 767px) {
    #menu-left {
      padding-top: 80px;
      padding-right: 30px; } }
  #menu-left a {
    color: var(--text-inverse); }
    #menu-left a:hover {
      color: var(--text-inverse); }
  #menu-left a.nav-link.selected {
    color: var(--color-primary) !important; }
  #menu-left .current-menu [name="parent-menu"] {
    background-color: var(--surface);
    padding: 8px 10px;
    border-radius: 5px; }
    #menu-left .current-menu [name="parent-menu"] a {
      color: var(--color-primary); }
    #menu-left .current-menu [name="parent-menu"] i {
      transform: rotate(-180deg); }
  #menu-left .current-menu [name="sub-menu"] {
    font-weight: normal;
    padding: 3px;
    margin-bottom: 3px; }

#menu-little-screen {
  width: 25px;
  height: 30px;
  position: relative;
  margin-left: 5px;
  margin-right: 10px;
  margin-top: 3px;
  -webkit-transform: rotate(0deg);
  -moz-transform: rotate(0deg);
  -o-transform: rotate(0deg);
  transform: rotate(0deg);
  -webkit-transition: .5s ease-in-out;
  -moz-transition: .5s ease-in-out;
  -o-transition: .5s ease-in-out;
  transition: .5s ease-in-out;
  cursor: pointer;
  color: var(--menu-text-color); }
  #menu-little-screen:hover {
    color: var(--blue-selected); }

#menu-little-screen span {
  display: block;
  position: absolute;
  height: 2px;
  width: 50%;
  background: var(--surface);
  opacity: 1;
  -webkit-transform: rotate(0deg);
  -moz-transform: rotate(0deg);
  -o-transform: rotate(0deg);
  transform: rotate(0deg);
  -webkit-transition: .25s ease-in-out;
  -moz-transition: .25s ease-in-out;
  -o-transition: .25s ease-in-out;
  transition: .25s ease-in-out; }

#menu-little-screen.black span {
  background: var(--surface-inverse); }

#menu-little-screen span:nth-child(even) {
  left: 50%;
  border-radius: 0 2px 2px 0; }

#menu-little-screen span:nth-child(odd) {
  left: 0px;
  border-radius: 2px 0 0 2px; }

#menu-little-screen span:nth-child(1), #menu-little-screen span:nth-child(2) {
  top: 0px; }

#menu-little-screen span:nth-child(3), #menu-little-screen span:nth-child(4) {
  top: 11px; }

#menu-little-screen span:nth-child(5), #menu-little-screen span:nth-child(6) {
  top: 22px; }

#menu-little-screen.open span:nth-child(1), #menu-little-screen.open span:nth-child(6) {
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -o-transform: rotate(45deg);
  transform: rotate(45deg); }

#menu-little-screen.open span:nth-child(2), #menu-little-screen.open span:nth-child(5) {
  -webkit-transform: rotate(-45deg);
  -moz-transform: rotate(-45deg);
  -o-transform: rotate(-45deg);
  transform: rotate(-45deg); }

#menu-little-screen.open span:nth-child(1) {
  left: 2px;
  top: 6px; }

#menu-little-screen.open span:nth-child(2) {
  left: calc(50% - 2px);
  top: 6px; }

#menu-little-screen.open span:nth-child(3) {
  left: -50%;
  opacity: 0; }

#menu-little-screen.open span:nth-child(4) {
  left: 100%;
  opacity: 0; }

#menu-little-screen.open span:nth-child(5) {
  left: 2px;
  top: 14px; }

#menu-little-screen.open span:nth-child(6) {
  left: calc(50% - 2px);
  top: 14px; }

.menu_market_background_div {
  position: fixed;
  width: 100%;
  height: 100%;
  top: 60px;
  left: 0;
  background: var(--overlay);
  z-index: 20;
  display: none; }

.submenuname {
  font-weight: 600;
  padding: 0px 5px !important;
  margin-top: 15px;
  display: flex;
  align-items: center;
  height: 30px; }

.submenu {
  padding: 0px 0px; }
  .submenu li {
    height: 30px; }
    .submenu li a {
      padding: 0px 5px; }

.sidebar {
  width: var(--sidebar-width);
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  height: 100vh;
  height: 100dvh;
  /* iOS : 100vh = barre rétractée → la sidebar dépassait de 40px sous le viewport (mesuré 30/08) */
  overflow: hidden;
  position: sticky;
  top: 0px; }

/* Hamburger (topbar) — visible uniquement en mobile pour ouvrir le drawer */
.sidebar-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 34px;
  flex-shrink: 0;
  border: none;
  background: transparent;
  color: var(--text-2);
  font-size: 22px;
  cursor: pointer;
  border-radius: var(--r-sm);
  padding: 0;
  transition: background .12s, color .12s; }

.sidebar-toggle:hover {
  background: var(--page-bg);
  color: var(--text-1); }

/* Backdrop du drawer — masqué hors mobile / drawer fermé.
   ⚠️ DOCTRINE « teinte de barre » Safari iOS ≥26 (enquête 31/08, 2e passe — sources :
   andesco/safari-color-tinting, 1ar.io, jahir.dev, WebKit bug 301756) : Safari IGNORE theme-color
   et teinte sa barre avec la BACKGROUND-COLOR CALCULÉE de tout élément fixed/sticky « qualifiant »
   (boîte à ≤3-4px d'un bord du viewport, largeur ≥80%, hauteur ≥3px, fond non transparent OU
   backdrop-filter). Il lit le STYLE et la BOÎTE, pas les pixels peints : clip-path, dégradés,
   ombres, liseré de 4px… invisibles pour lui ; opacity:0 et visibility:hidden sont quand même
   échantillonnés (seul display:none est fiable) ; et la teinte prise ne se réévalue pas de façon
   fiable après une mutation DOM (SPA sans rechargement → elle RESTE).
   → LE FIXED PLEIN ÉCRAN RESTE TRANSPARENT ; le voile est peint par un ::before absolu, que
   l'heuristique ignore. Safari retombe alors sur le fond du body (#f7faf8), ouvert OU fermé. */
.sidebar-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  width: 100%;
  background: transparent;
  z-index: 998;
  opacity: 0;
  transition: opacity .2s ease; }

.sidebar-backdrop::before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--overlay); }

/* ── DESK SHELL — MOBILE : sidebar en drawer off-canvas ── */
@media (max-width: 767px) {
  .sidebar {
    position: fixed;
    inset: 0;
    height: 100vh;
    height: 100dvh;
    z-index: 999;
    transform: translateX(-100%);
    transition: transform .25s ease, box-shadow .25s ease;
    /* Doctrine « teinte de barre » (voir .sidebar-backdrop) : le fond quasi noir hérité de
       .dark-selected-blue ne doit PAS être porté par l'élément fixed lui-même — sur un petit
       écran, sa boîte peut atteindre 80% de largeur et Safari fige alors sa couleur sur la
       barre. On le déporte sur un ::before absolu (ignoré par l'heuristique), visuellement
       identique. Les ombres/clip-path n'ont jamais compté : Safari lit le style, pas l'encre. */
    background: transparent; }

  .sidebar::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(rgba(0, 0, 0, 0.88), rgba(0, 0, 0, 0.88)), var(--blue-selected) no-repeat center center; }

  body.sidebar-open .sidebar {
    transform: translateX(0);
    box-shadow: 2px 0 16px var(--shadow-strong); }

  body.sidebar-open .sidebar-backdrop {
    display: block;
    opacity: 1; }

  .sidebar-toggle {
    display: inline-flex;
    padding-left: 6px;
    width: auto; }

  /* « clip » (et non « hidden ») masque le débordement horizontal SANS créer
     de conteneur de défilement parasite : « overflow-x: hidden » force
     « overflow-y » à « auto », ce qui casserait le sticky de la topbar. */
  #main-container {
    overflow-x: clip; }

  /* Topbar sur UNE ligne (retour Romain 30/08 — la pile « fil d'ariane puis actions » coûtait
     ~50px de hauteur et laissait la rangée d'actions orpheline) : fil d'ariane à gauche, TRONQUÉ
     à l'ellipse quand la place manque ; actions à droite, qui DÉFILENT horizontalement si elles
     sont trop nombreuses plutôt que de replier la barre. Gouttières 2,5% = celles du contenu
     (95% centré). Reste fixée en haut au défilement (sticky hérité du desktop). */
  .topbar {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    /* + safe-area-top : viewport-fit=cover (30/08) fait passer la page DERRIÈRE la barre de
       statut — sans cette compensation, le fil d'ariane se glisserait sous l'heure/batterie.
       env() vaut 0 partout ailleurs (desktop, Android sans encoche) : no-op. */
    padding: calc(10px + env(safe-area-inset-top, 0px)) 2.5% 10px !important;
    position: sticky;
    top: 0;
    z-index: 6; }

  .topbar-left {
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
    max-width: none;
    justify-content: flex-start; }

  /* L'ellipse ne marche que si CHAQUE niveau accepte de rétrécir (min-width:0 en cascade) ;
     seul le libellé courant se tronque — les ancêtres cliquables restent entiers. */
  .topbar-left .breadcrumb {
    min-width: 0;
    overflow: hidden;
    flex-wrap: nowrap; }

  .topbar-left .breadcrumb .tb-current {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap; }

  .topbar-left .breadcrumb .tb-link,
  .topbar-left .breadcrumb .tb-sep {
    white-space: nowrap;
    flex-shrink: 0; }

  /* 08/10 : les actions sont dans .topbar-right (avec la cloche et l'avatar) — c'est lui qui porte le garde-fou des
     70 % de la barre ; les actions remplissent leur conteneur. */
  .topbar-right {
    flex: 0 0 auto;
    max-width: 70%;
    min-width: 0; }

  .topbar-right > #topbar-actions {
    max-width: 100%;
    min-width: 0; }

  #topbar-actions {
    /* shrink 0 (retour Romain 30/08 « petit scroll dans les actions ») : en shrink 1, le manque
       de place se répartissait entre fil d'ariane ET actions (min-width implicite 0 sur un item
       scrollable) → les actions perdaient quelques px sur leur propre contenu et un mini-scroll
       apparaissait. C'est le fil d'ariane SEUL qui absorbe (ellipse) ; max-width en garde-fou :
       au-delà de 70% de l'écran, les actions défilent réellement. */
    flex: 0 0 auto;
    width: auto;
    max-width: 70%;
    justify-content: flex-end;
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    padding-right: 0;
    /* ICÔNE SEULE en mobile, sur TOUTES les pages (retour Romain 30/08) — mais SEULEMENT
       pour les boutons qui ONT une icône : font-size:0 éteint le nœud-texte, l'icône
       reprend sa taille. Un bouton texte-seul (:not(:has(i))) garde son libellé, sans
       quoi il deviendrait invisible. */ }
    #topbar-actions::-webkit-scrollbar {
      display: none; }
    #topbar-actions .btn {
      white-space: nowrap;
      flex-shrink: 0; }
    #topbar-actions .btn:has(i) {
      font-size: 0;
      gap: 0; }
    #topbar-actions .btn i {
      font-size: 1.6rem; } }
.sidebar-header {
  padding: 14px 8px 12px;
  border-bottom: 0.5px solid rgba(255, 255, 255, 0.06);
  flex-shrink: 0; }

.inst-btn {
  display: flex;
  align-items: center;
  gap: 9px;
  cursor: pointer;
  padding: 6px 8px;
  border-radius: var(--r-md);
  transition: background .15s; }

.inst-btn:hover {
  background: rgba(255, 255, 255, 0.06); }

.inst-avatar {
  width: 30px;
  height: 30px;
  border-radius: 8px;
  background: var(--accent);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--ds-fs-caption);
  font-weight: 500;
  color: var(--text-inverse);
  flex-shrink: 0; }

.inst-info {
  flex: 1;
  min-width: 0; }

.inst-name {
  font-weight: 500;
  color: var(--text-inverse);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; }

.inst-role {
  font-size: 1.35rem;
  color: rgba(255, 255, 255, 0.35);
  margin-top: 1px; }

.inst-chevron {
  color: rgba(255, 255, 255, 0.25);
  font-size: 10px;
  flex-shrink: 0; }

.role-switcher {
  padding: 8px 14px;
  border-bottom: 0.5px solid rgba(255, 255, 255, 0.06);
  flex-shrink: 0; }

.sidebar-nav {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 4px 8px 8px;
  scrollbar-width: none; }

.sidebar-nav::-webkit-scrollbar {
  display: none; }

.nav-section {
  font-size: var(--ds-fs-caption);
  font-weight: 500;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.35);
  padding: 11px 8px 3px; }

.nav-item {
  display: flex;
  align-items: center;
  gap: 8px;
  /* Retrait gauche 11px (au lieu de 8) : avec une icône de 18px, le centre tombe alors à 28px —
     exactement le milieu du rail replié (56px). Les deux états restent donc alignés au pixel. */
  padding: 7px 8px 7px 11px;
  border-radius: var(--r-md);
  cursor: pointer;
  color: rgba(255, 255, 255, 0.62);
  font-size: 1.4rem;
  transition: background .12s, color .12s;
  user-select: none; }

.nav-item:hover {
  background: rgba(255, 255, 255, 0.05);
  color: rgba(255, 255, 255, 0.8); }

/* UNE seule couleur d'actif dans la barre : l'ACCENT vert du shell (le teal --blue-selected est la
   couleur des surfaces claires). ⚠️ color-mix EXIGE « in <colorspace> » — sans lui, la déclaration
   entière est REJETÉE par le navigateur (c'était le cas : l'item actif n'avait aucun style). */
.nav-item.active {
  background: color-mix(in srgb, var(--accent) 16%, transparent);
  color: color-mix(in srgb, var(--accent) 55%, var(--text-inverse)); }

.nav-item.open {
  color: rgba(255, 255, 255, 0.8); }

.nav-icon {
  /* 18px (et non 15) : à cette taille l'icône porte encore le sens toute seule, ce qu'on lui demande
     dans le rail replié. Les SVG du menu déclarent width/height="15" en ATTRIBUTS — le CSS les
     surcharge (priorité plus forte) et le viewBox fait le reste : rien à retoucher dans le markup. */
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: .7; }

.nav-icon svg {
  width: 100%;
  height: 100%; }

.nav-item.active .nav-icon, .nav-item.open .nav-icon {
  opacity: 1; }

.nav-chevron {
  margin-left: auto;
  font-size: 1.2rem;
  opacity: .35;
  transition: transform .18s;
  flex-shrink: 0; }

.nav-item.open .nav-chevron {
  transform: rotate(90deg);
  opacity: .55; }

.nav-badge {
  background: var(--danger-solid);
  color: var(--text-inverse);
  font-size: var(--ds-fs-caption);
  font-weight: 500;
  padding: 0px 4px;
  border-radius: 20px;
  min-width: 16px;
  text-align: center;
  flex-shrink: 0; }

.nav-read {
  margin-left: auto;
  font-size: var(--ds-fs-secondary);
  opacity: .35;
  flex-shrink: 0;
  font-style: italic; }

.subnav {
  overflow: hidden;
  max-height: 0;
  transition: max-height .18s ease; }

.subnav.open {
  max-height: 400px; }

.subnav-item {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 5px 8px 5px 33px;
  border-radius: var(--r-md);
  cursor: pointer;
  color: rgba(255, 255, 255, 0.55);
  font-size: 1.35rem;
  transition: background .12s, color .12s;
  position: relative; }

.subnav-item:hover {
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.65); }

.subnav-item.active {
  color: color-mix(in srgb, var(--accent) 55%, var(--text-inverse));
  background: var(--brand-tint); }

.subnav-item::before {
  content: '';
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: currentColor;
  opacity: .6;
  flex-shrink: 0; }

.subnav-item.primary-item {
  color: rgba(255, 255, 255, 0.55); }

.subnav-item.primary-item::before {
  opacity: 1; }

.subnav-badge {
  background: var(--danger-tint);
  color: #f09595;
  font-size: var(--ds-fs-caption);
  padding: 0px 4px;
  border-radius: 10px;
  flex-shrink: 0; }

.subnav-tag {
  margin-left: auto;
  font-size: var(--ds-fs-caption);
  opacity: .35;
  font-style: italic; }

.nav-divider {
  height: 0.5px;
  background: rgba(255, 255, 255, 0.06);
  margin: 5px 8px; }

.nav-hidden {
  display: none !important; }

.sidebar-footer {
  padding: 10px 14px;
  border-top: 0.5px solid rgba(255, 255, 255, 0.06);
  flex-shrink: 0; }

.help-btn {
  display: flex;
  align-items: center;
  gap: 7px;
  color: rgba(255, 255, 255, 0.8);
  font-size: 1.8rem;
  padding: 6px 3px;
  border-radius: var(--r-sm);
  transition: background .12s, color .12s; }

:root {
  --sidebar-bg: #0e1a17;
  --sidebar-width: 240px;
  /* Largeur du RAIL (menu en retrait, Lot E) — 56px, calé sur DEUX contraintes à la fois :
     ① le LOGO d'enseigne fait 40px et doit rester CARRÉ, avec la même marge des deux côtés
        (8 + 40 + 8 = 56) — à 48px il était comprimé à 27×40 par le flex ;
     ② l'ICÔNE de menu (18px) doit tomber pile au milieu : 8px de .sidebar-nav + 11px de .nav-item
        + 9px de demi-icône = 28px = 56/2.
     Les deux états restent donc alignés au pixel : replier ne DÉPLACE rien, ça efface les libellés. */
  --sidebar-rail: 56px;
  --accent: #1D9E75;
  --accent-hover: #0F6E56;
  --accent-light: #E1F5EE;
  --page-bg: #f7faf8;
  /* blanc-vert de l'accueil assistant (décision Romain 18-19/08 : même fond partout) — essais : #f4f8f6 → #f7faf8 → #f5f9f7 → #f1f6f3 → retour #f7faf8 (choix final Romain 19/08) ; ex #f3f4f1 */
  --surface: #ffffff;
  --border: rgba(0,0,0,0.07);
  --border-md: rgba(0,0,0,0.12);
  --text-1: #181816;
  --text-2: #5c5c58;
  --text-3: #9a9a94;
  --danger: #A32D2D;
  --danger-bg: #FCEBEB;
  --warn: #854F0B;
  --warn-bg: #FAEEDA;
  --success: #085041;
  --success-bg: #E1F5EE;
  --info: #0C447C;
  --info-bg: #E6F1FB;
  --purple: #3C3489;
  --purple-bg: #EEEDFE;
  /* Chantier design 07/10 (L0.3) — « DM Sans » / « DM Mono » n'étaient jamais chargées :
     même police que le reste du desk (cf. --ct-font / --ct-mono de _table.scss). Pour un
     chiffre, poser font-variant-numeric: tabular-nums plutôt qu'une police monospace. */
  --font: var(--text-font-family, 'Nunito'), sans-serif;
  --mono: var(--text-font-family, 'Nunito'), sans-serif;
  --r-sm: 6px;
  --r-md: 8px;
  --r-lg: 12px; }

#main_loading {
  display: none;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%); }

#main_content:empty + #main_loading {
  display: block; }

/* Fond de page du DESK (décision Romain 18/08) : le blanc-vert de l'accueil assistant, partout.
   Scopé au shell desk (:has(.desk)) : --background-color reste la variable de THÈME des boutiques
   en ligne, on n'y touche pas. */
/* 🔴 LE FOND DU CANVAS VIENT DE <html>, PAS DE <body> (audit 30/08). Règle CSS : le fond du body
   n'est propagé à la surface qui couvre TOUT l'écran (y compris derrière le chrome translucide du
   navigateur) que si <html> est TRANSPARENT. Or _shared.scss pose `html { background-color: #fff }` :
   c'est donc html qui peint le canvas en BLANC, pendant que le body ne peint que SA boîte, bornée par
   son min-height. D'où la bande claire sous le contenu, qui n'est ni le fond du desk ni du contenu.
   On aligne donc html sur la teinte du desk — ciblé par :has, les boutiques gardent leur fond blanc. */
html:has(#main_view.desk) {
  background-color: var(--page-bg); }

body:has(#main_view.desk) {
  background-color: var(--page-bg); }

#main_view {
  width: 100%;
  /* 🔴 100vh sur iOS = hauteur BARRE RÉTRACTÉE (« large viewport »), pas la hauteur visible :
     avec la barre déployée (775pt sur 932 mesurés le 30/08), ce conteneur faisait ~874pt — soit
     ~100pt de plus que l'écran, sur TOUTES les pages du desk. D'où la zone vide en bas signalée
     par Romain, et un défilement parasite même sur une page courte. 100dvh suit la hauteur
     RÉELLEMENT visible et se recale quand la barre du navigateur se rétracte. La ligne 100vh
     reste en repli pour les navigateurs sans dvh (ignorée par ceux qui le supportent). */
  min-height: 100vh;
  min-height: 100lvh;
  /* lvh = hauteur MAXIMALE (barre rétractée) : le contenu doit pouvoir s'étendre SOUS la pilule flottante — dvh le bornait à la hauteur réduite (30/08) */
  display: flex;
  flex-direction: column;
  align-items: center;
  /* Colonne de contenu = flex item de la rangée (sidebar + contenu). Sans ceci,
     son min-width:auto (= largeur min de son contenu) l'empêche de rétrécir : un
     contenu large (tableau au min-width élevé) déborderait alors la page entière,
     en plus de son propre défilement → double barre de scroll. min-width:0 lui
     permet de rétrécir pour que le scroll horizontal reste confiné au tableau. */
  min-width: 0; }

/* Canevas du nouveau look (ds2, V2 08/10 — _ds2-shell.scss § 4) : enveloppe #main_content et #main_loading dans
   _LayoutDesk.cshtml. HORS ds2, il ne doit pas exister pour la mise en page : display: contents (ses enfants restent
   des éléments flex de #main_view, exactement comme avant). */
#main_canvas {
  display: contents; }

#main_content {
  width: 100%;
  max-width: 90%;
  margin-top: 30px;
  margin-bottom: 50px;
  text-align: left; }

@media (max-width: 767px) {
  #main_content {
    max-width: 95%;
    /* MARGES DESKTOP RABOTÉES SUR TÉLÉPHONE (retour Romain 30/08 : « toutes les pages du desk
       sont concernées »). Les 30px du haut n'ont pas de sens sous une topbar qui porte déjà son
       propre padding. */
    margin-top: 14px;
    margin-bottom: 0;
    /* 🔴 « BLEED » SOUS LA BARRE DU NAVIGATEUR (recherche 30/08) — LE point qui manquait.
       Safari iOS ≥ 26 rend sa barre translucide et compose DERRIÈRE elle les VRAIS PIXELS de la
       page. S'il n'y a rien à composer, il peint la bande avec une couleur de repli : c'est la
       « zone vide » constatée. Or nos conteneurs sont bornés à la hauteur du viewport, donc la
       page s'arrête PILE au bas de celui-ci et n'a aucun pixel à offrir. On lui en donne : ce
       padding prolonge le contenu sous la barre (~157pt mesurés ici). Il n'ajoute PAS de vide
       visible — il occupe une zone déjà perdue. env() s'y ajoute pour l'indicateur d'accueil. */
    padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 165px); }

  /* 100vh sur iOS = viewport BARRE RÉTRACTÉE : la page se retrouvait plus haute que l'écran
     affiché, d'où un défilement parasite de quelques dizaines de pixels. 100dvh suit la hauteur
     réellement visible ; repli automatique sur la règle 100vh pour les navigateurs sans dvh. */
  #main-container {
    min-height: calc(100vh - 60px);
    min-height: calc(100lvh - 60px); } }
.topbar {
  /* 🔴 FOND PORTÉ PAR ::before, PAS par l'élément (30/08) : Safari iOS ≥26 échantillonne le
     background-color des fixed/sticky collés à un bord du viewport (la topbar : sticky, top:0,
     100% de large) et peint alors son chrome en APLAT au lieu d'y composer la page — suspect de
     la « bande » du bas (le login, sans topbar, n'a pas la bande). Les PSEUDO-ÉLÉMENTS ne sont
     pas échantillonnés : rendu identique, échantillonneur aveugle. */
  background: transparent;
  border-bottom: 0.5px solid var(--border);
  padding: 15px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-shrink: 0;
  gap: 12px;
  width: 100%;
  position: sticky;
  top: 0px;
  z-index: 5; }
  .topbar::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: var(--surface); }

.topbar-left {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0; }

.breadcrumb {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 0px; }

#topbar-actions {
  gap: 6px;
  display: flex;
  min-height: 39px; }

.tb-link {
  color: var(--text-3);
  text-decoration: none;
  cursor: pointer;
  transition: color .12s; }

/* Chantier design 07/10 (L0.3) — --t1 / --t3 n'existent pas et « ---text-1 » (trois
   tirets) non plus : survol, séparateur et page courante de la barre du haut perdaient
   leur couleur (héritée au hasard). On pointe sur les jetons de texte de :root ci-dessus. */
.tb-link:hover {
  color: var(--text-1); }

.tb-sep {
  color: var(--text-3);
  font-size: var(--ds-fs-caption); }

.tb-current {
  color: var(--text-1);
  font-weight: 600; }

.bc-parent {
  color: var(--text-3);
  cursor: pointer;
  transition: color .12s; }

.bc-parent:hover {
  color: var(--text-2); }

.bc-sep {
  color: var(--text-3);
  font-size: var(--ds-fs-caption); }

.bc-current {
  font-weight: 600;
  color: var(--text-1); }

.topbar-right {
  display: flex;
  gap: 8px;
  align-items: center; }

#nprogress {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 2.5px;
  z-index: 9999;
  pointer-events: none;
  background: var(--blue-selected);
  transform-origin: left center;
  transform: scaleX(0);
  transition: transform .2s ease, opacity .3s ease;
  opacity: 0; }

#nprogress.active {
  opacity: 1; }

.page-error {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  background: var(--danger-bg);
  border: 0.5px solid rgba(163, 45, 45, 0.2);
  border-radius: 10px;
  margin: 20px; }

.page-error-icon {
  flex-shrink: 0; }

.page-error-body {
  flex: 1;
  min-width: 0; }

.page-error-title {
  font-size: 13px;
  font-weight: 500;
  color: var(--danger-fg);
  margin-bottom: 2px; }

.page-error-msg {
  font-size: var(--ds-fs-secondary);
  color: var(--warn-fg); }

.page-error-retry {
  flex-shrink: 0;
  padding: 5px 12px;
  font-size: var(--ds-fs-caption);
  font-weight: 500;
  font-family: var(--font, sans-serif);
  background: transparent;
  border: 0.5px solid rgba(163, 45, 45, 0.35);
  border-radius: 7px;
  color: var(--danger-fg);
  cursor: pointer;
  transition: background .12s; }

.page-error-retry:hover {
  background: var(--danger-tint); }

.ct-th-act-slot {
  text-align: right; }

/* ═══════════════════════════════════════════════════════════════════════════════════════════════
   MENU EN RETRAIT + MISE EN AVANT PAR OBJECTIF × SECTEUR — chantier conversation-first, Lot E.

   Le menu n'est plus la porte d'entrée du logiciel (c'est la conversation) : il se met EN RETRAIT
   (rail d'icônes), il MET EN AVANT ce qui sert l'objectif déclaré à l'inscription croisé avec le
   secteur, et il MASQUE ce qui n'est pas dans la formule — sans jamais rien rendre introuvable
   (filet « Tous les modules »).

   Le calcul est SERVEUR (Models/Helper/DeskNavigation.cs) et DATA-DRIVEN (routes data-controller /
   data-action, jamais les libellés) : ici on ne fait que DESSINER les deux états.
   ═══════════════════════════════════════════════════════════════════════════════════════════════ */
/* La mise en avant est un ORDRE (propriété `order` posée par le serveur sur chaque groupe), pas un
   déplacement de DOM ni une opacité : le conteneur devient donc une colonne flex. */
.sidebar-nav {
  display: flex;
  flex-direction: column; }

/* Le logo d'enseigne s'aligne sur la MÊME gouttière que le menu (8px) dans LES DEUX états : le
   retrait gauche de 5px de `.initial` le décalait de 2,5px, et il glissait donc au déploiement.
   Portée limitée à l'en-tête de la barre — `.initial` sert ailleurs dans l'app. */
.sidebar-header .initial {
  padding-left: 0; }

/* Libellé d'un item : enveloppé pour pouvoir s'effacer proprement en mode replié (un nœud texte
   nu ne peut ni se masquer ni s'animer — c'est ce qui obligeait au hack `font-size: 0`). */
.nav-label {
  transition: opacity .12s ease; }

/* ── LA PORTE UNIQUE — tout ce que le menu ne montre pas d'emblée vit derrière « Tout le logiciel » :
   les blocs non prioritaires (`.nav-folded`) ET les modules hors formule (`.nav-locked`). UNE seule
   bascule (`body.nav-all`) pour les deux — deux filets, c'en était un de trop. ── */
body:not(.nav-all) .nav-folded {
  display: none !important; }

/* La porte est le FILET qui justifie « rien n'est jamais introuvable » : elle ne peut pas être
   l'élément le plus effacé de la barre (l'ancien 0.34 tombait sous ~2,5:1 de contraste). */
.nav-door {
  margin-top: 6px;
  border-top: 0.5px solid rgba(255, 255, 255, 0.06);
  padding-top: 11px;
  color: rgba(255, 255, 255, 0.62); }

.nav-door .nav-chevron {
  transition: transform .18s; }

.nav-door.open .nav-chevron {
  transform: rotate(90deg); }

/* Combien de blocs dorment derrière la porte : on le DIT, sinon la porte a l'air vide. */
.nav-door-count {
  margin-left: auto;
  font-size: var(--ds-fs-caption);
  color: rgba(255, 255, 255, 0.5);
  flex-shrink: 0; }

.nav-door.open .nav-door-count {
  opacity: 0; }

/* ── BLOC « MISE EN ROUTE » (régime découverte) — ce qui rassure vraiment un débutant n'est pas un
   classement, c'est une FIN VISIBLE et une seule chose à faire maintenant. Données = plan de
   lancement (missions dérivées des données réelles du compte, jamais de drapeaux). ── */
.nav-launch {
  display: block;
  margin: 2px 0 10px;
  padding: 10px;
  border-radius: var(--r-md);
  background: var(--brand-tint);
  border: 0.5px solid rgba(29, 158, 117, 0.22);
  text-decoration: none;
  cursor: pointer;
  transition: background .12s; }

.nav-launch:hover {
  background: var(--brand-tint);
  text-decoration: none; }

.nav-launch-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px; }

.nav-launch-title {
  font-size: 1.3rem;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.88); }

.nav-launch-count {
  font-size: var(--ds-fs-caption);
  color: var(--accent);
  flex-shrink: 0; }

.nav-launch-bar {
  display: block;
  height: 3px;
  margin: 7px 0 6px;
  border-radius: 3px;
  background: rgba(255, 255, 255, 0.12);
  overflow: hidden; }

.nav-launch-bar i {
  display: block;
  height: 3px;
  border-radius: 3px;
  background: var(--accent);
  transition: width .3s ease; }

.nav-launch-next {
  display: block;
  font-size: var(--ds-fs-secondary);
  line-height: 1.35;
  color: rgba(255, 255, 255, 0.62); }

/* Mise en avant : les groupes de la zone « Essentiel » sont NETS. On n'estompe rien — le reste
   garde le gris nominal du design system ; c'est la hiérarchie qui parle, pas un voile. */
.nav-group.is-promoted > .nav-item {
  color: rgba(255, 255, 255, 0.78); }

.nav-group.is-promoted > .nav-item .nav-icon {
  opacity: 1; }

/* ── TOUT-INCLUS (Lot E5-b) — plus AUCUN masquage par formule dans la barre. L'étiquette .nav-lock
   ne survit que dans le PANNEAU, pour le seul cas légitime restant : « géré par votre caisse »
   (compte piloté par une caisse Core2 externe). Visible, explicative, jamais un mur silencieux. */
.nav-lock {
  margin-left: auto;
  font-size: var(--ds-fs-secondary);
  color: rgba(255, 255, 255, 0.35);
  border: 0.5px solid rgba(255, 255, 255, 0.14);
  border-radius: 20px;
  padding: 0 6px;
  flex-shrink: 0;
  white-space: nowrap; }

/* Items navigables = de VRAIS liens (Lot E5-f) : molette, Ctrl+clic et clavier gratuits. Les
   couleurs restent portées par les classes (les styles auteur priment sur le violet :visited de
   l'agent — aucune règle dédiée nécessaire, et une règle :visited écraserait l'état actif). */
.sidebar-nav a.nav-item, .sidebar-nav a.subnav-item, a.nav-launch {
  text-decoration: none; }

/* ── VARIANTE REPLIÉE (rail d'icônes) ──────────────────────────────────────────────────────────
   Principe de dessin : RIEN NE BOUGE entre les deux états. Le rail fait exactement la largeur qui
   centre l'icône avec les paddings nominaux (cf. --sidebar-rail) : replier ne fait que CLIPPER les
   libellés — mêmes tailles de police, mêmes espacements, mêmes positions d'icônes qu'en déployé.
   Seule la largeur est animée. Desktop uniquement : en mobile, le tiroir off-canvas garde la main. */
@media (min-width: 768px) {
  body.nav-rail .sidebar {
    position: fixed;
    left: 0;
    top: var(--nav-top, 0px);
    height: calc(100vh - var(--nav-top, 0px));
    width: var(--sidebar-rail);
    z-index: 1200;
    transition: width .18s ease; }

  /* DÉLAI D'INTENTION (fix du survol, Lot E5-a) : l'OUVERTURE attend 150 ms — frôler le bord gauche
     de l'écran ne déploie plus la barre par accident. La FERMETURE reste immédiate (la transition
     sans délai de l'état de base reprend la main dès que le survol cesse). */
  body.nav-rail .sidebar:hover, body.nav-rail .sidebar:focus-within {
    width: var(--sidebar-width);
    box-shadow: 10px 0 34px var(--shadow-strong);
    transition: width .18s ease .15s, box-shadow .18s ease .15s; }

  body.nav-rail #main_view {
    margin-left: var(--sidebar-rail); }

  /* Libellés : ils gardent EXACTEMENT leur place (aucune taille ni marge ne change), ils
     s'effacent — un simple clip laisserait dépasser des demi-lettres au bord du rail. */
  body.nav-rail:not(.nav-panel-open) .sidebar:not(:hover) .nav-label,
  body.nav-rail:not(.nav-panel-open) .sidebar:not(:hover) .nav-chevron,
  body.nav-rail:not(.nav-panel-open) .sidebar:not(:hover) .nav-lock {
    opacity: 0; }

  /* Nowrap dans TOUS les états du rail — pas seulement replié : le nowrap conditionné à
     `:not(:hover)` sautait dès l'entrée du curseur, et PENDANT l'animation de largeur les
     libellés longs passaient à la ligne (recette Romain). Une ligne, toujours ; le clip
     horizontal de la barre fait le reste pendant la transition. */
  body.nav-rail .nav-item,
  body.nav-rail .subnav-item {
    white-space: nowrap; }

  body.nav-rail .sidebar-nav {
    overflow-x: hidden; }

  /* Position relative : nécessaire à la pastille absolue posée sur l'icône en replié. */
  body.nav-rail:not(.nav-panel-open) .sidebar:not(:hover) .nav-item,
  body.nav-rail:not(.nav-panel-open) .sidebar:not(:hover) .subnav-item {
    position: relative; }

  /* Un intitulé de section sans texte n'est qu'un trou : invisible, mais SANS changer la hauteur
     (sinon la liste sauterait au déploiement). */
  body.nav-rail:not(.nav-panel-open) .sidebar:not(:hover) .nav-section {
    visibility: hidden; }

  /* Sous-menus refermés en replié : leurs puces seules ne veulent rien dire. */
  body.nav-rail:not(.nav-panel-open) .sidebar:not(:hover) .subnav {
    max-height: 0; }

  /* Les compteurs (commandes à traiter, demandes de réassort) restent LISIBLES : pastille posée
     sur l'icône, en absolu — donc sans décaler quoi que ce soit. */
  body.nav-rail:not(.nav-panel-open) .sidebar:not(:hover) .nav-badge {
    position: absolute;
    top: 0;
    left: 21px;
    font-size: var(--ds-fs-caption);
    padding: 0 3px;
    min-width: 13px; }

  /* En-tête : le LOGO SEUL, carré et centré. Sans `flex-shrink: 0` le flex l'écrasait (27×40 dans
     un rail de 48) : un logo d'enseigne déformé, c'est la première chose que le marchand voit. */
  body.nav-rail:not(.nav-panel-open) .sidebar:not(:hover) .sidebar-header .initial {
    padding-right: 0 !important;
    justify-content: center !important; }

  body.nav-rail:not(.nav-panel-open) .sidebar:not(:hover) .inst-logo {
    flex-shrink: 0; }

  /* Le nom, le rôle, le chevron et la pastille de notification appartiennent à l'état déployé. */
  body.nav-rail:not(.nav-panel-open) .sidebar:not(:hover) #SelectedInstitutionForCurrentUserText,
  body.nav-rail:not(.nav-panel-open) .sidebar:not(:hover) #notificationNumberBag,
  body.nav-rail:not(.nav-panel-open) .sidebar:not(:hover) .sidebar-header .initial > span:last-child {
    display: none; }

  /* Le bouton de la topbar devient le déplieur du menu sur desktop (il n'ouvrait que le tiroir
     mobile) : le retrait doit toujours être réversible d'un clic. */
  .sidebar-toggle {
    display: inline-flex; }

  /* Régime découverte (AllowRail = faux, classe posée par le JS du layout) : pas de rail, donc pas
     de déplieur — un bouton visible et inerte est pire qu'aucun bouton. Mobile non concerné (le
     tiroir garde la main, règle hors de ce media query). */
  body.nav-norail .sidebar-toggle {
    display: none; } }
/* ═══ PANNEAU « TOUS LES MODULES » (Lot E) ═══════════════════════════════════════════════════════
   Le catalogue complet ne se déplie PAS dans la barre (allonger la barre pousse les items sous le
   curseur : on perd sa place au moment où on cherchait). Il s'ouvre à côté, comme une surface de
   l'app — fond clair, à la manière du rail de l'accueil conversationnel — et il est rangé PAR
   MODULE D'ABONNEMENT, parce que c'est là qu'apparaît « non inclus dans votre formule ».
   Chaque ligne s'ÉPINGLE : le menu finit par ressembler à celui qui s'en sert. */
.nav-modules {
  display: none;
  position: fixed;
  top: var(--nav-top, 0px);
  left: var(--sidebar-width);
  bottom: 0;
  width: 320px;
  max-width: calc(100vw - var(--sidebar-width));
  z-index: 1210;
  /* Doctrine « teinte de barre » Safari iOS ≥26 (voir .sidebar-backdrop, _menu.scss) : fixed
     plein écran en mobile (bottom:0, largeur 100%) → le fond va sur un ::before absolu, jamais
     sur l'élément fixed lui-même. */
  background: transparent;
  border-right: 1px solid var(--border);
  box-shadow: 14px 0 38px var(--shadow);
  flex-direction: column;
  min-height: 0; }

.nav-modules::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background: var(--surface); }

body.nav-panel-open .nav-modules {
  display: flex; }

/* Panneau ouvert : la barre reste DÉPLOYÉE (sinon le panneau flotterait à côté d'un rail d'icônes
   et l'on ne saurait plus d'où il sort). */
body.nav-panel-open.nav-rail .sidebar {
  width: var(--sidebar-width); }

.nav-modules-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 14px 14px 10px;
  flex-shrink: 0; }

.nav-modules-title {
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--text-1); }

.nav-modules-close {
  border: none;
  background: transparent;
  color: var(--text-3);
  font-size: 2.2rem;
  line-height: 1;
  cursor: pointer;
  padding: 0 4px;
  border-radius: var(--r-sm); }

.nav-modules-close:hover {
  color: var(--text-1);
  background: var(--page-bg); }

/* ── COMPTEUR DE LA FORMULE (Lot E5-c) — l'en-tête du panneau. Le panneau ne vend plus des manques :
   il montre ce que la formule donne et où on en est (jauge IA, sièges, appareils, crédits). C'est
   le seul upsell « poussé » du menu, et il est factuel. ── */
.nav-meter {
  /* Dans la zone scrollable (recette Romain) : le corps a déjà 8px de gouttière — 6px de marge
     conservent l'alignement visuel à 14px du bord du panneau. */
  margin: 2px 6px 12px;
  padding: 11px 12px;
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  background: var(--page-bg); }

.nav-meter-plan {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 7px; }

.nav-meter-plan-name {
  font-size: 1.4rem;
  font-weight: 600;
  color: var(--text-1); }

.nav-meter-plan-sub {
  font-size: var(--ds-fs-caption);
  color: var(--text-3);
  flex-shrink: 0; }

.nav-meter-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  font-size: var(--ds-fs-secondary);
  color: var(--text-2);
  padding: 2px 0; }

.nav-meter-label {
  min-width: 0; }

.nav-meter-value {
  flex-shrink: 0;
  font-weight: 500;
  color: var(--text-1);
  font-variant-numeric: tabular-nums; }

/* Jauge IA : neutre < 60 %, ambre ≥ 60 %, rouge ≥ 90 % — on prévient, on ne coupe jamais. */
.nav-meter-bar {
  height: 4px;
  margin: 3px 0 6px;
  border-radius: 4px;
  background: var(--hover);
  overflow: hidden; }

.nav-meter-bar i {
  display: block;
  height: 100%;
  border-radius: 4px;
  background: var(--accent);
  transition: width .3s ease; }

.nav-meter-bar.is-warn i {
  background: var(--warn); }

.nav-meter-bar.is-danger i {
  background: var(--danger); }

.nav-meter-cta {
  display: block;
  margin-top: 8px;
  padding: 6px 10px;
  border-radius: var(--r-sm);
  background: var(--accent);
  color: var(--text-inverse);
  font-size: var(--ds-fs-secondary);
  font-weight: 500;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: background .12s; }

.nav-meter-cta:hover {
  background: var(--accent-hover);
  color: var(--text-inverse);
  text-decoration: none; }

/* La recherche AVANT la liste : douze blocs et une quarantaine d'écrans, on tape plutôt qu'on ne
   parcourt — c'est la même logique que la barre de commande de l'accueil. */
.nav-modules-search {
  flex-shrink: 0;
  display: block;
  /* Largeur EXPLICITE + border-box : un input ne s'étire pas proprement tout seul — il débordait
     du panneau (recette Romain). 28px = les deux marges latérales de 14px. */
  width: calc(100% - 28px);
  box-sizing: border-box;
  margin: 0 14px 10px;
  padding: 8px 11px;
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  font-size: 1.3rem;
  font-family: inherit;
  color: var(--text-1);
  background: var(--page-bg);
  outline: none; }

.nav-modules-search:focus {
  border-color: var(--accent);
  background: var(--surface); }

.nav-modules-body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 0 8px 8px; }

.nav-modules-section {
  margin-bottom: 10px; }

/* Le titre de section porte l'ÉPINGLE (une section = un bloc de la barre, une seule épingle) :
   titre à gauche, épingle à droite. */
.nav-modules-section-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  font-size: var(--ds-fs-caption);
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--text-3);
  padding: 8px 6px 4px; }

.nav-modules-section.is-pinned .nav-modules-section-title {
  color: var(--accent); }

.nav-modules-section.is-pinned .nav-modules-pin {
  color: var(--accent);
  opacity: 1; }

.nav-modules-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 8px 8px 10px;
  border-radius: var(--r-md);
  cursor: pointer;
  font-size: 1.35rem;
  color: var(--text-1); }

/* Une ligne peut être une VRAIE ancre (« Ouvrir la caisse » → nouvel onglet) : mêmes habits. */
a.nav-modules-row, a.nav-modules-row:hover {
  text-decoration: none;
  color: var(--text-1); }

.nav-modules-row:hover {
  background: var(--page-bg); }

/* Géré par la caisse externe : lisible, mais visiblement en retrait — et l'étiquette dit pourquoi. */
.nav-modules-row.is-locked {
  color: var(--text-3); }

.nav-modules-row.is-locked .nav-lock {
  color: var(--text-3);
  border-color: var(--border-md); }

.nav-modules-row-label {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap; }

/* L'épingle est TOUJOURS visible (fix d'audit E5) : une affordance qui n'apparaît qu'au survol est
   introuvable au premier contact et inaccessible au tactile. Discrète au repos, pleine au survol. */
.nav-modules-pin {
  flex-shrink: 0;
  border: none;
  background: transparent;
  color: var(--text-3);
  font-size: 1.3rem;
  cursor: pointer;
  padding: 3px 5px;
  border-radius: var(--r-sm);
  opacity: .4;
  transition: opacity .12s, color .12s; }

.nav-modules-section-title:hover .nav-modules-pin,
.nav-modules-pin:focus-visible {
  opacity: 1; }

.nav-modules-pin:hover {
  color: var(--accent);
  background: var(--accent-light);
  opacity: 1; }

.nav-modules-empty {
  padding: 14px 10px;
  font-size: 1.3rem;
  color: var(--text-3); }

.nav-modules-foot {
  flex-shrink: 0;
  padding: 10px 14px 12px;
  border-top: 1px solid var(--border);
  font-size: var(--ds-fs-caption);
  line-height: 1.4;
  color: var(--text-3); }

/* Un bloc atteint DEPUIS le panneau reste visible le temps de la visite, même s'il n'est ni épinglé
   ni mis en avant : on ne renvoie pas l'utilisateur vers un écran dont l'entrée disparaît. */
body:not(.nav-all) .nav-folded.nav-revealed {
  display: block !important; }

/* Mobile : le panneau prend la place du tiroir (la barre y est déjà en overlay). */
@media (max-width: 767px) {
  .nav-modules {
    left: 0;
    width: 100%;
    max-width: 100%;
    z-index: 1000; } }
.comm_img {
  position: absolute;
  vertical-align: middle;
  width: 60px;
  top: calc(50% - 30px);
  left: 10px; }

.vignette {
  padding: 5px;
  z-index: 2; }
  .vignette .shadow-left, .vignette .shadow-right {
    bottom: 20px; }

.current_panel {
  background-color: var(--surface-muted);
  font-weight: bold; }
  .current_panel:hover {
    background-color: var(--surface-muted);
    font-weight: bold; }

@media (max-width: 1199px) {
  .panel_option.full {
    width: auto;
    line-height: 24px;
    height: 24px;
    padding: 0px 13px;
    margin: 10px 10px 0px; } }

@media (max-width: 1199px) {
  .panel_option {
    width: 40px;
    height: 40px;
    line-height: 40px;
    padding: 0;
    margin: 10px 10px 0px; } }

.panel_option_label {
  padding-left: 5px; }

.comm_content_inner {
  width: 100%; }
  .comm_content_inner label {
    height: 44px;
    padding-top: 11px; }

.comm_four {
  float: left; }

.comm_qte input {
  width: calc(100% - 60px); }

.comm_unite {
  height: 44px;
  line-height: 44px;
  text-align: right;
  padding-right: 10px;
  text-transform: capitalize;
  width: 60px; }

.comm_content {
  position: relative;
  padding-left: 60px;
  vertical-align: middle;
  display: flex;
  align-items: center;
  min-height: 32px; }

.comm_bl.input_border, .comm_ttc.input_border, .comm_ajout {
  float: left; }

.comm_container .comm_ajout div {
  padding-left: 0px;
  padding-right: 0px; }
.comm_container .comm_ajout .form-control {
  padding-left: 0px;
  padding-right: 0px; }

.comm_container {
  background-color: white;
  border: 1px solid var(--line);
  padding: 52px 10px 8px;
  min-height: 32px; }
  .comm_container .form-control {
    padding-left: 0px;
    padding-right: 10px; }
  .comm_container .input_border {
    margin: 0;
    width: 100%; }
  .comm_container select {
    margin-left: -4px; }

.comm_prix {
  position: absolute;
  bottom: 0;
  left: 0;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  height: 25px;
  line-height: 25px; }

.comm_delete {
  position: absolute;
  width: 25px;
  height: 25px;
  right: 0;
  top: 0;
  z-index: 2; }

.comm_designation {
  display: block;
  position: absolute;
  padding-right: 25px;
  top: 0;
  left: 0;
  height: 44px;
  line-height: 44px;
  text-align: left;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  padding-left: 80px;
  padding-top: 8px; }

.panel_info {
  display: none;
  height: 200px;
  vertical-align: middle; }

.panel_info_text {
  position: relative;
  top: 50%;
  vertical-align: middle;
  color: var(--text-3);
  font-style: italic; }

.panel_content_inner {
  padding: 15px 5px; }

#pcontenth_label_livraison {
  max-width: 80px; }

#pcontenth_label_commande {
  max-width: 230px; }

#pcontenth_label_promotion {
  max-width: 200px; }

.panel_buttons {
  padding-bottom: 10px; }

.panel_content_header {
  min-height: 41px;
  padding-top: 3px;
  padding-bottom: 3px;
  background-color: white;
  border-top: 1px solid var(--line-strong); }
  .panel_content_header .form-control {
    height: 34px;
    color: var(--text-3); }
  .panel_content_header .control-label {
    padding-top: 8px !important;
    padding-bottom: 8px;
    margin: 0; }
    .panel_content_header .control-label label {
      margin: 0; }
  .panel_content_header .comm_link {
    font-weight: bold;
    display: block; }
    @media (max-width: 990px) {
      .panel_content_header .comm_link {
        padding-right: 10px; } }
    .panel_content_header .comm_link span {
      padding-left: 6px; }
    @media (max-width: 990px) {
      .panel_content_header .comm_link .comm_link_icon {
        font-size: 2em; } }

.validStock {
  padding-top: 10px; }

@media (min-width: 768px) {
  div[name="optionStock"] .control-label {
    max-width: 130px; } }

.comm_stock_de, .comm_stock_a {
  padding-top: 11px;
  font-weight: normal;
  text-align: left; }

@media (min-width: 768px) {
  #article_panel_content {
    padding-top: 0px; } }
@media (min-width: 1200px) {
  #article_panel_content {
    padding-top: 0px; } }

@media (min-width: 768px) {
  #client_panel_content {
    padding-top: 44px; } }

@media (min-width: 1200px) {
  #article_panel_content .container-fluid {
    padding-left: 15px;
    padding-right: 15px; } }

#modal_fournisseur {
  max-width: 450px;
  margin-top: 40px;
  margin-bottom: 40px; }

#modal_stockUpgrade {
  width: 1100px; }

.ligneList {
  padding: 10px 20px;
  border-bottom: solid 1px var(--line); }
  .ligneList:hover {
    background-color: var(--surface-sunk);
    cursor: default; }

.modal-open .modal {
  overflow-y: scroll; }

.nom_fournisseur {
  font-weight: bold;
  height: 100%; }

.infos_fournisseur {
  color: var(--text-3); }

.table_fournisseurs {
  padding-bottom: 40px; }
  @media (max-width: 767px) {
    .table_fournisseurs {
      padding-top: 39px; } }

.list_artfam {
  max-height: calc(100vh - 165px); }

#radios_art_fam {
  height: 31px;
  margin-top: 7px;
  margin-bottom: 2px; }

.radio_art, .radio_fam {
  height: 31px;
  line-height: 100%; }
  .radio_art a, .radio_fam a {
    border: 1px solid var(--field-line);
    background-color: white;
    width: 100%;
    height: 100%; }
    .radio_art a label, .radio_fam a label {
      line-height: 31px; }

.radio_art {
  padding-left: 0px;
  padding-right: 0px; }
  .radio_art a {
    border-radius: 15px 0px 0px 15px; }

.radio_fam {
  padding-right: 0px;
  padding-left: 0px; }
  .radio_fam a {
    border-radius: 0px 15px 15px 0px; }

.list-choice-product {
  max-width: 640px; }

.modal-content.list_modal {
  border-radius: 4px;
  max-width: 450px;
  overflow: hidden;
  margin-top: 40px;
  margin-bottom: 40px; }

.modal-body.list_modal_inner {
  padding: 0px;
  margin: -10px;
  width: calc(100% + 20px); }

.modal_srch.art_fam_srch {
  height: 80px; }

.modal_srch {
  z-index: 2;
  padding: 10px 5px;
  position: sticky;
  top: 55px;
  background-color: var(--surface); }
  @media (min-width: 768px) {
    .modal_srch {
      width: 100%; } }

.save_div_modal {
  padding-top: 20px; }

#recherche_art_fam {
  border-radius: 15px; }

.modal_srch .form-control {
  min-height: 40px;
  padding-left: 10px;
  padding-right: 10px; }

.icon {
  color: var(--text-2);
  height: 30px;
  width: 30px;
  line-height: 30px;
  padding: 0px;
  margin-left: auto;
  margin-right: auto; }

#creation_fournisseur {
  border: 1px solid var(--line);
  padding: 10px; }

.modal-content.bibliotheque_images {
  max-width: 640px;
  overflow: visible;
  margin-top: 0px;
  margin-bottom: 0px; }

.commentaire_input {
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line); }

@media (max-width: 560px) {
  .modal-content {
    min-width: calc(100vw - 20px) !important;
    max-width: calc(100vw - 20px) !important; } }

.validationMainContainer {
  padding: 15px; }
  .validationMainContainer div.validationIcon {
    display: inline-block; }
    .validationMainContainer div.validationIcon i.fas.valid {
      color: var(--blue-selected); }
    .validationMainContainer div.validationIcon i.fas.error {
      color: var(--blue-light); }
  .validationMainContainer .validationTextBold {
    font-weight: bold;
    margin-top: 15px; }
  .validationMainContainer .validationText {
    padding: 0 15px 15px; }

.modalMessageInformation {
  padding-top: 30px; }

/* ─── Feedback design system : Toast + ConfirmDialog ──────────────────────────
   Composants JS : Scripts/js/ds-feedback.js (chargé globalement, _Header.cshtml).
   Documentation : Docs/DESIGN_SYSTEM.md, section « Feedback : Toast & ConfirmDialog ».
   Empilement (contrôleur UX Lot 0) : le desk a DEUX systèmes de modales —
   Bootstrap (.modal ~1050, .modal-backdrop 10000) ET showModal/#modal-container
   (z-index 20000, _shared.scss). ConfirmDialog (21000) doit passer AU-DESSUS des
   deux (cas _StockTemplateModal : ConfirmDialog ouverte depuis showModal) ;
   les toasts (22000) au-dessus de tout. */
/* ── Toasts ── */
#ds-toast-container {
  position: fixed;
  /* Lot UX2 (recette 28/09, X-36) : SOUS la barre du haut (≈ 60 px + encoche), plus par-dessus. Posé à
     15 px, le toast « Devis enregistré » recouvrait les boutons de la Topbar et apparaissait SOUS le
     pointeur resté sur « Enregistrer » : le survol mettait son minuteur en pause, il ne partait plus. */
  top: calc(env(safe-area-inset-top, 0px) + 72px);
  right: 15px;
  z-index: 22000;
  /* au-dessus de #modal-container (20000) et de la ConfirmDialog (21000) */
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
  pointer-events: none;
  /* la zone ne bloque pas la page ; chaque toast ré-active */ }

.ds-toast {
  pointer-events: auto;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  width: 360px;
  max-width: calc(100vw - 30px);
  background: var(--surface);
  border: 1px solid var(--blue-medium);
  border-left: 3px solid var(--blue-selected);
  border-radius: var(--border-radius-little);
  box-shadow: 0 4px 20px var(--shadow);
  padding: 12px 14px;
  font-size: 1.3rem;
  color: var(--blue-dim);
  text-align: left;
  /* certains conteneurs du desk centrent le texte globalement */
  animation: ds-toast-in 0.22s ease-out; }
  .ds-toast .ds-toast-icon {
    font-size: 1.6rem;
    margin-top: 1px;
    color: var(--blue-selected); }
  .ds-toast .ds-toast-text {
    flex: 1;
    line-height: 1.4;
    white-space: pre-line;
    /* les \n des messages multi-lignes sont respectés */
    word-break: break-word; }
  .ds-toast .ds-toast-action {
    background: none;
    border: none;
    padding: 0 4px;
    cursor: pointer;
    color: var(--blue-selected);
    font-size: inherit;
    font-weight: 600;
    line-height: 1.4;
    white-space: nowrap; }
    .ds-toast .ds-toast-action:hover, .ds-toast .ds-toast-action:focus-visible {
      text-decoration: underline; }
  .ds-toast .ds-toast-close {
    background: none;
    border: none;
    padding: 0 2px;
    cursor: pointer;
    color: var(--blue-dark);
    font-size: 1.4rem;
    line-height: 1; }
    .ds-toast .ds-toast-close:hover {
      color: var(--blue-dim); }
  .ds-toast.ds-toast-success {
    border-left-color: var(--green-success); }
    .ds-toast.ds-toast-success .ds-toast-icon {
      color: var(--green-success); }
  .ds-toast.ds-toast-error {
    border-left-color: var(--red-danger); }
    .ds-toast.ds-toast-error .ds-toast-icon {
      color: var(--red-danger); }
  .ds-toast.ds-toast-warning {
    border-left-color: var(--yellow-warning); }
    .ds-toast.ds-toast-warning .ds-toast-icon {
      color: var(--yellow-warning); }
  .ds-toast.ds-toast-out {
    opacity: 0;
    transform: translateX(12px);
    transition: opacity 0.22s ease, transform 0.22s ease; }

@keyframes ds-toast-in {
  from {
    opacity: 0;
    transform: translateX(14px); }
  to {
    opacity: 1;
    transform: translateX(0); } }
/* ── ConfirmDialog ── */
.ds-confirm-overlay {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 21000;
  /* au-dessus de showModal/#modal-container (20000) ET des modales Bootstrap */
  /* Doctrine « teinte de barre » Safari iOS ≥26 (voir .sidebar-backdrop, _menu.scss) : le fixed
     plein écran reste transparent, le voile est peint par un ::before absolu ignoré par Safari. */
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  animation: ds-confirm-fade 0.16s ease-out; }
  .ds-confirm-overlay::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    /* Chantier design (07/10) : MÊME voile que showModal (.modal-backdrop, _shared.scss) — une seule famille de fenêtres. */
    background: rgba(239, 242, 244, 0.9); }
  .ds-confirm-overlay.ds-confirm-closing {
    opacity: 0;
    transition: opacity 0.16s ease;
    pointer-events: none;
    /* l'overlay en cours de fondu ne doit plus intercepter les clics */ }

/* Chantier design (07/10, décision Romain : « aligne ConfirmDialog sur showModal ») : même boîte que la fenêtre
   commune — en-tête titré avec la croix (placeholders %ds-window-head / %ds-window-close de _shared.scss), corps,
   ombre, rayon et apparition. ConfirmDialog garde son DOM propre : elle s'empile AU-DESSUS d'une showModal ouverte
   (#modal-container est unique, l'ouvrir détruirait la fenêtre en cours). */
.ds-confirm {
  background: var(--surface);
  border-radius: var(--border-radius-medium);
  box-shadow: 0 8px 16px rgba(55, 63, 74, 0.1);
  width: 100%;
  max-width: 460px;
  padding: 0;
  color: var(--bs-body-color, #212529);
  /* même couleur de texte que .modal-content (Bootstrap) : titre presque noir, pas vert */
  text-align: left;
  /* certains conteneurs du desk centrent le texte globalement */
  animation: ds-confirm-pop 0.2s ease;
  /* Pendant un onConfirm asynchrone : l'annulation est gelée (le bouton confirmer
     porte déjà le lds-ring via .is-loading, cf. pattern bouton du DS) */ }
  .ds-confirm .ds-confirm-body {
    padding: 14px 20px 20px;
    /* .modal-body : 10px 20px 20px, + 4px sous un en-tête sans contenu dessous */ }
  .ds-confirm .ds-confirm-message {
    font-size: 1.35rem;
    /* Recette UI 28/09 (X-21) : --blue-dark est GÉNÉRÉ depuis l'accent du desk (#80B3A2, vert pâle, ~2,4:1)
       → corps des confirmations en vert, peu lisible. Texte courant = gris neutre AA (comme .ds-hint). */
    color: var(--ct-text-2);
    line-height: 1.45;
    white-space: pre-line;
    /* les \n des textes de confirmation sont respectés */
    margin-bottom: 18px; }
  .ds-confirm .ds-confirm-input {
    margin-bottom: 18px; }
  .ds-confirm .ds-confirm-input-error .form-control {
    border-color: var(--red-danger); }
  .ds-confirm .ds-confirm-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    /* LOT V (V12a) : gap inter-boutons UNIFIÉ à 8px (conteneurs d'actions) */ }
  .ds-confirm[data-pending="1"] .ds-confirm-actions .btn-light, .ds-confirm[data-pending="1"] .ds-confirm-actions .btn-default {
    pointer-events: none;
    opacity: 0.5; }

@keyframes ds-confirm-fade {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }
@keyframes ds-confirm-pop {
  from {
    opacity: 0;
    transform: scale(0.9);
    /* même apparition que la fenêtre commune showModal */ }
  to {
    opacity: 1;
    transform: translateY(0) scale(1); } }
/* ── Bandeau contextuel (.ds-banner) ──────────────────────────────────────────
   Décision contrôleur UX Lot 0 (question ①) : UN seul style de bandeau
   d'information en tête de contenu — fond teinté à 6 % + filet gauche 3 px.
   Remplace les fonds hétérogènes (#eaf5f6, rgba en dur) des vues stock.
   Bloc simple volontairement : la mise en page INTERNE (flex, bouton à droite,
   blockquote…) reste à la charge de la vue. Variantes : warning (attention non
   bloquante), danger (refus / erreur d'état). Doc : DESIGN_SYSTEM.md. */
.ds-banner {
  background: var(--blue-selected-bg);
  border-left: 3px solid var(--blue-selected);
  border-radius: var(--border-radius-little);
  padding: 12px 16px;
  margin-bottom: 15px;
  font-size: 1.3rem;
  color: var(--blue-dim); }
  .ds-banner.ds-banner-warning {
    background: var(--yellow-warning-bg);
    border-left-color: var(--yellow-warning); }
  .ds-banner.ds-banner-danger {
    background: var(--red-danger-bg);
    border-left-color: var(--red-danger); }

:root {
  --ds-fs-caption: 1.2rem;
  --ds-fs-secondary: 1.3rem;
  --ds-fs-body: 1.4rem;
  --ds-fs-lead: 1.5rem;
  --ds-fs-title-sm: 1.7rem;
  --ds-fs-title: 1.8rem;
  --ds-fs-title-lg: 2.1rem; }

.ds-caption {
  font-size: var(--ds-fs-caption);
  line-height: 1.4;
  color: var(--ct-text-2, #5c5c58); }

.ds-stepper {
  display: flex;
  align-items: flex-start;
  gap: 0;
  user-select: none; }

.ds-step {
  position: relative;
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 0 4px; }
  .ds-step:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 11px;
    left: calc(50% + 16px);
    width: calc(100% - 32px);
    height: 2px;
    background: var(--blue-medium); }
  .ds-step.is-done:not(:last-child)::after {
    background: var(--blue-selected); }

.ds-step-dot {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--blue-medium);
  color: var(--blue-dim);
  font-size: var(--ds-fs-secondary);
  flex-shrink: 0;
  box-sizing: border-box; }

.ds-step.is-done .ds-step-dot {
  background: var(--blue-selected);
  color: var(--text-inverse); }

.ds-step.is-current .ds-step-dot {
  background: var(--surface);
  border: 2px solid var(--blue-selected);
  color: var(--blue-selected);
  box-shadow: 0 0 0 3px var(--blue-selected-bg); }

.ds-step-label {
  font-size: var(--ds-fs-caption);
  color: var(--blue-dark);
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%; }

.ds-step.is-current .ds-step-label {
  color: var(--blue-dim);
  font-weight: 700; }

.ds-step.is-done .ds-step-label {
  color: var(--blue-dim); }

.ds-drawer-overlay {
  position: fixed;
  inset: 0;
  z-index: 15000;
  /* Doctrine « teinte de barre » Safari iOS ≥26 (voir .sidebar-backdrop, _menu.scss) : le fixed
     plein écran reste transparent, le voile est peint par un ::before absolu ignoré par Safari. */
  background: transparent;
  display: flex;
  justify-content: flex-end;
  animation: ds-drawer-fade .18s ease-out; }
  .ds-drawer-overlay::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    background: var(--overlay); }

@keyframes ds-drawer-fade {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }
.ds-drawer {
  width: 480px;
  max-width: 94vw;
  height: 100%;
  background: var(--surface);
  box-shadow: -8px 0 30px var(--shadow-strong);
  display: flex;
  flex-direction: column;
  animation: ds-drawer-slide .22s ease-out; }

@keyframes ds-drawer-slide {
  from {
    transform: translateX(40px);
    opacity: .4; }
  to {
    transform: translateX(0);
    opacity: 1; } }
.ds-drawer-overlay.ds-drawer-closing {
  opacity: 0;
  transition: opacity .16s ease-in; }
  .ds-drawer-overlay.ds-drawer-closing .ds-drawer {
    transform: translateX(40px);
    transition: transform .16s ease-in; }

.ds-drawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 18px 20px 14px;
  border-bottom: 1px solid var(--blue-light);
  flex-shrink: 0; }

.ds-drawer-title {
  font-size: 1.7rem;
  font-weight: 700;
  color: var(--blue-dim);
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap; }

.ds-drawer-close {
  border: 0;
  background: transparent;
  color: var(--blue-dark);
  font-size: 1.8rem;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: var(--border-radius-little);
  flex-shrink: 0; }
  .ds-drawer-close:hover {
    background: var(--blue-light);
    color: var(--blue-dim); }
  .ds-drawer-close:focus-visible {
    outline: 2px solid var(--blue-selected); }

.ds-drawer-body {
  flex: 1;
  overflow-y: auto;
  padding: 16px 20px;
  font-size: 1.3rem; }

.ds-drawer-foot {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  padding: 14px 20px;
  border-top: 1px solid var(--blue-light);
  flex-shrink: 0;
  background: var(--blue-light); }

.ds-drawer-line {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 0;
  border-bottom: 1px solid var(--blue-light); }
  .ds-drawer-line:last-child {
    border-bottom: 0; }

.ds-drawer-line-name {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap; }
  .ds-drawer-line-name > * {
    white-space: normal; }

.ds-drawer-line-sub {
  font-size: var(--ds-fs-caption);
  color: var(--blue-dark); }

.ds-drawer-line-qty {
  width: 92px;
  flex-shrink: 0; }
  .ds-drawer-line-qty input {
    text-align: right; }

.ds-drawer--catalog {
  width: 720px; }
  .ds-drawer--catalog .list-choice-product {
    max-width: none; }
  .ds-drawer--catalog .list-choice-product .action-button-container {
    display: none; }
  .ds-drawer--catalog .modal_srch {
    top: 0; }

.ds-drawer-foot .addToList:empty {
  display: none; }

.ds-drawer-suboption {
  margin: 0 0 10px 26px; }

.styled-checkbox input[type="radio"] ~ .checkmark {
  border-radius: 50%; }

.styled-checkbox input[type="radio"]:checked ~ .checkmark {
  background-color: var(--surface);
  border-color: var(--blue-selected); }

.styled-checkbox input[type="radio"] ~ .checkmark:after {
  left: 3px;
  top: 3px;
  width: 8px;
  height: 8px;
  border: none;
  border-radius: 50%;
  background-color: var(--blue-selected);
  transform: scale(0); }

.styled-checkbox input[type="radio"]:checked ~ .checkmark:after {
  transform: scale(1); }

.ds-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 15000;
  /* Doctrine « teinte de barre » Safari iOS ≥26 (voir .sidebar-backdrop, _menu.scss). */
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center; }
  .ds-modal-overlay::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    background: var(--overlay); }

.ds-modal {
  background: var(--surface);
  border-radius: var(--border-radius-medium);
  max-width: 440px;
  width: calc(100% - 32px);
  padding: 22px;
  box-shadow: 0 10px 40px var(--shadow-strong);
  max-height: 90vh;
  overflow-y: auto; }

.ds-modal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 6px; }

.ds-modal-title {
  font-size: 1.7rem;
  font-weight: 700;
  color: var(--blue-dim);
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap; }

.ds-modal-close {
  border: 0;
  background: transparent;
  color: var(--blue-dark);
  font-size: 1.8rem;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: var(--border-radius-little);
  flex-shrink: 0; }
  .ds-modal-close:hover {
    background: var(--blue-light);
    color: var(--blue-dim); }
  .ds-modal-close:focus-visible {
    outline: 2px solid var(--blue-selected); }

.ds-modal-sub {
  font-size: var(--ds-fs-secondary);
  color: var(--blue-dark);
  margin-bottom: 16px; }

.ds-modal-actions {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  margin-top: 6px; }

.ds-popmenu, .doc-tok-addr-menu {
  position: fixed;
  z-index: 3000;
  min-width: 240px;
  max-width: 360px;
  max-height: 240px;
  overflow-y: auto;
  background: var(--ct-surface, #fff);
  border: 1px solid var(--ct-border, #e6e8ea);
  border-radius: 6px;
  box-shadow: 0 6px 20px var(--shadow);
  text-align: left; }

.ds-popmenu-opt, .doc-tok-addr-opt {
  padding: 7px 10px;
  font-size: 13px;
  line-height: 1.3;
  color: var(--text);
  cursor: pointer;
  white-space: normal; }
  .ds-popmenu-opt:hover, .doc-tok-addr-opt:hover, .is-active.ds-popmenu-opt, .is-active.doc-tok-addr-opt {
    background: var(--blue-light, #eef6fd); }

.ds-popmenu-header {
  padding: 8px 10px 3px;
  font-size: var(--ds-fs-caption);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--ct-text-3, #999); }

.ds-popmenu-opt {
  display: flex;
  align-items: center;
  gap: 8px; }
  .ds-popmenu-opt .ds-popmenu-check {
    flex: 0 0 auto;
    width: 14px;
    text-align: center;
    color: var(--blue-selected, #4ea7e8); }
  .ds-popmenu-opt .ds-popmenu-label {
    flex: 1 1 auto; }
  .ds-popmenu-opt.is-checked {
    font-weight: 500;
    background: var(--blue-light, #eef6fd); }

button.ds-popmenu-opt {
  width: 100%;
  border: 0;
  background: transparent;
  font-family: inherit;
  text-align: left; }
  button.ds-popmenu-opt:focus-visible {
    outline: 2px solid var(--blue-selected);
    outline-offset: -2px;
    background: var(--blue-light, #eef6fd); }
  button.ds-popmenu-opt[disabled] {
    opacity: .5;
    cursor: default; }

.ds-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 26px 16px;
  text-align: center;
  font-style: normal; }

.ds-empty-icon {
  font-size: 2.2rem;
  color: var(--blue-dark);
  opacity: .8;
  line-height: 1; }

.ds-empty-text {
  font-size: 1.3rem;
  color: var(--blue-dark); }

.ds-empty-hint {
  font-size: var(--ds-fs-secondary);
  color: var(--blue-dark);
  opacity: .8; }

.ds-empty-action {
  margin-top: 4px; }

.ds-hint {
  font-size: 1.3rem;
  line-height: 1.45;
  font-weight: 400;
  color: var(--ct-text-2, #5c5c58); }
  .ds-hint strong, .ds-hint b {
    color: var(--ct-text-1, #181816);
    font-weight: 700; }
  .ds-hint a:not(.btn) {
    color: var(--blue-selected); }
  .ds-hint > i.fa-light, .ds-hint > i.fa-regular, .ds-hint > i.fa-solid {
    color: var(--blue-dim); }

.doc-fiche {
  max-width: 1240px;
  margin: var(--ds-space-6) auto var(--ds-space-10); }

.doc-block {
  margin-bottom: var(--ds-space-6); }

.desk .infos_content.doc-block {
  margin-bottom: var(--ds-space-6); }

.doc-block--tight {
  margin-bottom: var(--ds-space-4); }

.desk .infos_content.doc-block--tight {
  margin-bottom: var(--ds-space-4); }

.doc-inline-rail > :last-child,
.doc-fiche-rail > :last-child,
.doc-fiche > :last-child,
.desk .doc-inline-rail > .infos_content:last-child,
.desk .quote-layout > aside > .infos_content:last-child,
.desk .doc-fiche > .infos_content:last-child {
  margin-bottom: 0; }

.ds-card-title {
  font-size: var(--ds-fs-caption);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--ct-text-2);
  margin-bottom: var(--ds-space-3);
  display: block; }

.doc-fiche-body {
  display: flex;
  align-items: flex-start;
  gap: var(--ds-space-6); }

.doc-fiche-main {
  flex: 1 1 auto;
  min-width: 0; }

.doc-fiche-rail {
  flex: 0 0 320px;
  width: 320px;
  position: sticky;
  top: 15px; }

.doc-action-rail-card {
  padding: 16px 20px; }

.doc-action-rail {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 10px; }

.doc-action-rail-empty {
  color: var(--blue-dark);
  font-style: italic;
  font-size: var(--ds-fs-secondary);
  margin-top: 8px; }

.doc-action-rail-btn {
  width: 100%;
  display: inline-flex;
  justify-content: flex-start;
  text-align: left;
  gap: 8px; }

.doc-action-rail-delete-link {
  align-self: flex-start;
  margin-top: var(--ds-space-4);
  padding: 2px 0;
  border: none;
  background: none;
  color: var(--red-danger);
  font-size: var(--ds-fs-secondary);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px; }
  .doc-action-rail-delete-link:hover, .doc-action-rail-delete-link:focus-visible {
    text-decoration: underline;
    outline: none; }

.doc-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap; }

.doc-head-id {
  min-width: 0; }

.doc-head-number {
  font-size: 2rem;
  font-weight: 700;
  color: var(--blue-dim);
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap; }

.doc-head-number-text {
  flex: 0 1 auto;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap; }

.doc-head-meta {
  display: flex;
  gap: 22px;
  flex-wrap: wrap;
  margin-top: 10px; }

.doc-head-meta-item .k {
  font-size: var(--ds-fs-caption);
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--blue-dark); }

.doc-head-meta-item .v {
  font-weight: 700;
  color: var(--blue-dim);
  margin-top: 2px;
  font-variant-numeric: tabular-nums;
  max-width: 320px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap; }

.doc-head-stepper {
  flex: 1;
  min-width: 320px;
  max-width: 560px; }

.doc-progress-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ds-space-4); }

#doc-rail-progress .doc-progress-grid {
  grid-template-columns: 1fr;
  gap: var(--ds-space-3); }
#doc-rail-progress .row.infos_content {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  margin: 0; }

.doc-progress-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  font-weight: 700;
  color: var(--blue-dim);
  margin-bottom: 8px; }

.doc-progress-bar {
  height: 8px;
  border-radius: 999px;
  background: var(--blue-medium);
  overflow: hidden; }
  .doc-progress-bar > span {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: var(--blue-selected);
    transition: width .3s ease; }

.doc-progress-sub {
  font-size: var(--ds-fs-caption);
  color: var(--blue-dark);
  margin-top: 6px; }

.doc-progress-grid.doc-progress-disabled {
  opacity: .55;
  pointer-events: none;
  user-select: none; }

table.doc-lines {
  width: 100%;
  border-collapse: collapse;
  font-variant-numeric: tabular-nums; }
  table.doc-lines th, table.doc-lines td {
    padding: 8px 10px;
    text-align: right;
    border-bottom: 1px solid var(--blue-light); }
  table.doc-lines th {
    font-size: var(--ds-fs-caption);
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--blue-dark);
    font-weight: 600; }
  table.doc-lines th:first-child, table.doc-lines td:first-child {
    text-align: left; }
  table.doc-lines td:first-child {
    overflow-wrap: anywhere; }

.doc-rest-warn {
  color: var(--yellow-warning);
  font-weight: 700; }

.doc-rest-ok {
  color: var(--green-success);
  font-weight: 700; }

.doc-piece {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 6px;
  border-bottom: 1px solid var(--blue-light); }
  .doc-piece:last-child {
    border-bottom: 0; }
  .doc-piece .ic {
    width: 30px;
    height: 30px;
    border-radius: var(--border-radius-little);
    display: grid;
    place-items: center;
    font-size: var(--ds-fs-secondary);
    font-weight: 700;
    flex: none;
    background: var(--blue-medium);
    color: var(--blue-dim); }
  .doc-piece .ic.doc-ic-bl {
    background: var(--blue-selected-bg);
    color: var(--blue-selected); }
  .doc-piece .ic.doc-ic-fac {
    background: var(--blue-selected);
    color: var(--text-inverse); }
  .doc-piece .m {
    flex: 1;
    min-width: 0; }
  .doc-piece .no {
    font-weight: 600;
    color: var(--blue-dim); }
  .doc-piece .sub {
    font-size: var(--ds-fs-caption);
    color: var(--blue-dark); }

.doc-preview-frame {
  width: 100%;
  height: calc(100vh - 130px);
  min-height: 520px;
  border: 1px solid var(--blue-medium);
  border-radius: var(--border-radius-medium);
  background: var(--blue-light);
  display: block; }

.doc-activity-item {
  display: flex;
  gap: 12px;
  padding: 10px 4px;
  border-bottom: 1px solid var(--blue-light); }
  .doc-activity-item:last-child {
    border-bottom: 0; }
  .doc-activity-item .ic {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: var(--blue-medium);
    color: var(--blue-dim);
    flex: none;
    font-size: var(--ds-fs-secondary); }
  .doc-activity-item .m {
    flex: 1;
    min-width: 0; }
  .doc-activity-item .t {
    font-weight: 600;
    color: var(--blue-dim); }
  .doc-activity-item .d {
    font-size: var(--ds-fs-secondary);
    color: var(--blue-dark);
    margin-top: 1px;
    overflow-wrap: anywhere; }

@media (max-width: 900px) {
  .doc-head {
    flex-direction: column; }

  .doc-head-stepper {
    max-width: none;
    width: 100%; }

  .doc-progress-grid {
    grid-template-columns: 1fr; } }
@media (max-width: 1100px) {
  .doc-fiche-body {
    flex-direction: column; }

  .doc-fiche-rail {
    flex-basis: auto;
    width: 100%;
    position: static; } }
.ds-info {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: 5px;
  color: var(--blue-dark);
  font-size: 1.3rem;
  line-height: 1;
  vertical-align: middle;
  cursor: help;
  border-radius: 50%;
  white-space: nowrap; }
  .ds-info:hover {
    color: var(--blue-selected); }
  .ds-info:focus {
    outline: none; }
  .ds-info:focus-visible {
    outline: 2px solid var(--blue-selected);
    outline-offset: 2px;
    color: var(--blue-selected); }

.ds-info-tip {
  position: fixed;
  z-index: 22000;
  max-width: 280px;
  padding: 8px 10px;
  background: var(--blue-dim);
  color: var(--blue-light);
  font-size: var(--ds-fs-secondary);
  font-weight: normal;
  line-height: 1.45;
  text-align: left;
  white-space: normal;
  border-radius: var(--border-radius-little);
  box-shadow: 0 4px 14px var(--shadow-strong);
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.12s ease; }
  .ds-info-tip.is-visible {
    opacity: 1;
    visibility: visible; }
  .ds-info-tip.is-multiline {
    white-space: pre-line; }
  .ds-info-tip.is-visible.has-link {
    pointer-events: auto; }
  .ds-info-tip .ds-info-tip-link {
    display: inline-block;
    margin-top: 6px;
    color: var(--text-inverse);
    font-weight: 600;
    text-decoration: underline; }
  .ds-info-tip .ds-info-tip-link:hover, .ds-info-tip .ds-info-tip-link:focus {
    color: var(--text-inverse);
    opacity: 0.85; }
  .ds-info-tip .ds-info-tip-ext {
    margin-left: 6px;
    font-size: 0.9em;
    text-decoration: none;
    display: inline-block; }

.modal-form {
  max-width: 100%;
  text-align: left; }

.modal-form-actions {
  margin-top: 18px;
  flex-wrap: wrap; }

.btn:disabled,
.btn.disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: auto; }

.doc-inline-paper {
  background: var(--ct-surface, #fff);
  border: none;
  border-radius: var(--border-radius-little);
  box-shadow: 0 1px 2px var(--shadow-soft), 0 6px 16px var(--shadow-soft), 0 20px 48px var(--shadow-soft);
  padding: var(--ds-space-10) 48px;
  max-width: 860px;
  margin: 0 auto;
  font-family: 'Inter', 'Lato', Arial, sans-serif;
  font-size: 10pt;
  line-height: 1.45;
  color: var(--text); }
  .doc-inline-paper img {
    max-width: 100%; }
  .doc-inline-paper table {
    max-width: 100%; }
  .doc-inline-paper .page-break {
    display: none; }

.doc-workbench {
  background: var(--doc-workbench-bg);
  border: 0.5px solid var(--ct-border);
  border-radius: var(--ct-r-lg);
  padding: var(--ds-space-8) var(--ds-space-6); }
  @media (max-width: 767px) {
    .doc-workbench {
      padding: var(--ds-space-4) var(--ds-space-3); } }
  .doc-workbench .doc-inline-paper,
  .doc-workbench .doc-preview-frame {
    margin-top: 0;
    margin-bottom: 0; }
  .doc-workbench .doc-preview-frame {
    border-color: var(--blue-medium); }

.doc-tok {
  border-radius: 3px;
  transition: background .12s ease, border-color .12s ease; }

.doc-tok[role="button"],
.doc-tok[role="switch"] {
  cursor: pointer;
  border: 1px dashed var(--blue-dark);
  padding: 0 3px; }
  .doc-tok[role="button"]:hover,
  .doc-tok[role="switch"]:hover {
    background: var(--blue-selected-bg);
    border-color: var(--blue-selected); }
  .doc-tok[role="button"]:focus-visible,
  .doc-tok[role="switch"]:focus-visible {
    background: var(--blue-selected-bg);
    border: 1px solid var(--blue-selected);
    outline: none; }

.doc-tok-empty {
  color: var(--blue-dark);
  font-style: italic; }

.doc-tok.doc-tok--num {
  display: inline-block;
  min-width: 4ch;
  padding: 1px 6px;
  text-align: right;
  font-variant-numeric: tabular-nums; }

.doc-tok-money,
.doc-tok-clientfield,
.doc-tok-formula {
  border: none;
  padding: 0; }

.doc-tok-comment {
  display: block;
  white-space: pre-wrap;
  margin-top: 12px;
  min-height: 1.6em; }

.doc-tok[data-doc-editing="1"] {
  background: var(--blue-selected-bg);
  border: 1px solid var(--blue-selected); }

.doc-tok input.doc-tok-input,
.doc-tok select.doc-tok-input,
.doc-tok textarea.doc-tok-input {
  font: inherit;
  color: inherit;
  letter-spacing: inherit;
  background: transparent;
  border: none;
  border-radius: 2px;
  outline: none;
  padding: 0 2px;
  margin: 0;
  max-width: 100%;
  vertical-align: baseline; }

.doc-tok textarea.doc-tok-input {
  display: block;
  width: 100%;
  min-width: 260px;
  resize: vertical; }

.doc-tok[data-doc-editing="1"] {
  position: relative; }

.doc-tok input.doc-tok-addr-input {
  min-width: 220px;
  border-bottom: 1px solid var(--blue-selected, #4ea7e8);
  border-radius: 0; }

.doc-inline-sig {
  display: inline-block;
  padding: 10px 18px;
  border: 1px dashed var(--blue-medium);
  border-radius: var(--border-radius-little);
  color: var(--blue-dark);
  font-size: var(--ds-fs-secondary); }

.doc-inline-frozen .doc-tok {
  border: none !important;
  background: none !important;
  padding: 0 !important;
  cursor: default; }

.doc-inline-frozen .doc-line-adder,
.doc-inline-frozen .doc-line-add-link {
  display: none !important; }

.doc-inline-paper tr[data-doc-line] .doc-line-action {
  transition: color .12s ease; }
.doc-inline-paper tr[data-doc-line] .doc-line-grip,
.doc-inline-paper tr[data-doc-line] .doc-line-action-danger,
.doc-inline-paper tr[data-doc-line] .doc-line-action[data-doc-line-action="more"] {
  opacity: 1;
  color: #b4b8bd; }
.doc-inline-paper tr[data-doc-line]:hover .doc-line-action, .doc-inline-paper tr[data-doc-line]:focus-within .doc-line-action, .doc-inline-paper tr[data-doc-line]:hover .doc-line-grip, .doc-inline-paper tr[data-doc-line]:focus-within .doc-line-grip {
  color: var(--blue-dark); }
.doc-inline-paper tr[data-doc-line] .doc-line-action:hover,
.doc-inline-paper tr[data-doc-line] .doc-line-action:focus-visible {
  color: var(--blue-selected); }
.doc-inline-paper tr[data-doc-line] .doc-line-action-danger:hover,
.doc-inline-paper tr[data-doc-line] .doc-line-action-danger:focus-visible {
  color: var(--red-danger); }
.doc-inline-paper tr[data-doc-line].doc-line-dragging {
  opacity: .5; }
.doc-inline-paper tr[data-doc-line].doc-line-drop-before {
  box-shadow: inset 0 2px 0 0 var(--blue-selected); }
.doc-inline-paper tr[data-doc-line].doc-line-drop-after {
  box-shadow: inset 0 -2px 0 0 var(--blue-selected); }

.doc-line-stock {
  display: inline-block;
  margin-left: 6px;
  padding: 0 5px;
  border-radius: 8px;
  font-size: var(--ds-fs-caption);
  font-style: normal;
  white-space: nowrap;
  background: var(--blue-light);
  color: var(--blue-dark);
  vertical-align: baseline; }
  .doc-line-stock.doc-line-stock--warn, .doc-line-stock.doc-line-stock--out {
    color: var(--red-danger); }

.doc-line-img {
  max-width: 34px;
  max-height: 34px;
  border-radius: var(--border-radius-little);
  vertical-align: middle; }

.doc-line-grip {
  cursor: grab;
  margin-right: 5px; }

.doc-line-actions {
  display: inline-flex;
  align-items: center;
  gap: var(--ds-space-1);
  margin-left: 6px;
  white-space: nowrap;
  vertical-align: middle; }

.doc-line-action {
  background: none;
  border: none;
  padding: 5px 6px;
  min-width: 24px;
  min-height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--blue-dark);
  font-size: 11px;
  line-height: 1; }
  .doc-line-action:hover, .doc-line-action:focus-visible {
    color: var(--blue-selected);
    outline: none; }

.doc-line-action-danger:hover,
.doc-line-action-danger:focus-visible {
  color: var(--red-danger); }

.doc-line-grip {
  cursor: grab; }
  .doc-line-grip:active {
    cursor: grabbing; }

.doc-line-adder td {
  padding: var(--ds-space-4) var(--ds-space-2) var(--ds-space-2); }

.doc-line-adder-box {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 3px 10px;
  border: 1px dashed var(--blue-dark);
  border-radius: var(--border-radius-little);
  color: var(--blue-dark);
  transition: background .12s ease, border-color .12s ease; }
  .doc-line-adder-box:hover, .doc-line-adder-box:focus-within {
    background: var(--blue-selected-bg);
    border-color: var(--blue-selected); }
  .doc-line-adder-box .doc-line-adder-icon {
    flex-shrink: 0;
    font-size: 1.15em;
    color: var(--blue-dark); }
  .doc-line-adder-box .doc-line-adder-picker {
    flex: 1;
    max-width: none; }
  .doc-line-adder-box .dynInput {
    flex: 1;
    margin-bottom: 0; }
  .doc-line-adder-box .form-control {
    font: inherit;
    color: inherit;
    height: auto;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
    padding: 4px 2px; }
    .doc-line-adder-box .form-control:focus {
      background: transparent; }
    .doc-line-adder-box .form-control::placeholder {
      color: var(--blue-dark);
      font-style: italic;
      opacity: 1; }
  .doc-line-adder-box .doc-line-adder-fallback {
    font-style: italic;
    padding: 4px 2px; }

.doc-line-add-link {
  display: block;
  margin-left: auto;
  margin-top: 3px;
  background: none;
  border: none;
  padding: 2px 4px;
  cursor: pointer;
  font: inherit;
  font-size: .92em;
  color: var(--blue-selected); }
  .doc-line-add-link:hover, .doc-line-add-link:focus-visible {
    text-decoration: underline;
    outline: none; }

.doc-lines-orphans {
  margin: 4px 0 10px;
  font-size: var(--ds-fs-secondary);
  font-style: italic;
  color: var(--blue-dark);
  cursor: help; }
  .doc-lines-orphans::before {
    content: "\24D8  "; }

.doc-inline-frozen .doc-lines-orphans {
  display: none !important; }

.doc-line-discount {
  cursor: pointer;
  border-radius: 3px;
  padding: 0 2px; }
  .doc-line-discount.doc-line-discount-set {
    text-decoration: line-through;
    color: var(--blue-dark); }
  .doc-line-discount:not(.doc-line-discount-set) {
    display: inline-block;
    text-decoration: none;
    color: var(--blue-selected);
    font-size: .92em; }
    .doc-line-discount:not(.doc-line-discount-set) i {
      font-size: .95em; }
  .doc-line-discount:hover, .doc-line-discount:focus-visible {
    outline: none;
    text-decoration-line: underline; }
  .doc-line-discount.doc-line-discount-set:hover, .doc-line-discount.doc-line-discount-set:focus-visible {
    text-decoration-line: line-through underline; }

.doc-line-vat-chip {
  display: block;
  margin-top: 5px;
  text-align: right;
  font-size: var(--ds-fs-caption);
  white-space: nowrap;
  color: var(--blue-dark); }

.doc-global-discount {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 2px 6px;
  cursor: pointer;
  font: inherit;
  font-size: .92em;
  color: var(--blue-selected);
  border-radius: 3px; }
  .doc-global-discount i {
    font-size: .95em; }
  .doc-global-discount:hover, .doc-global-discount:focus-visible {
    text-decoration: underline;
    outline: none; }
  .doc-global-discount.doc-global-discount-set {
    color: var(--blue-dark);
    text-decoration: none; }
  .doc-global-discount .doc-global-discount-edit {
    color: var(--blue-selected); }

.doc-global-discount-block {
  text-align: right;
  margin: 2px 0; }

.doc-inline-frozen .doc-global-discount,
.doc-inline-frozen .doc-global-discount-row,
.doc-inline-frozen .doc-global-discount-block {
  display: none !important; }

.doc-line-popover {
  position: fixed;
  z-index: 30000;
  width: 260px;
  padding: 12px 14px;
  background: var(--ct-surface, #fff);
  border: 1px solid var(--blue-medium);
  border-radius: var(--border-radius-little);
  box-shadow: 0 10px 25px -5px var(--shadow), 0 8px 10px -6px var(--shadow-soft); }

.doc-line-popover-field + .doc-line-popover-field {
  margin-top: 10px; }

.doc-line-popover-label {
  font-size: var(--ds-fs-caption);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--blue-dark);
  margin-bottom: 5px; }

.doc-line-popover-combo {
  display: flex;
  align-items: stretch;
  gap: 6px; }
  .doc-line-popover-combo input {
    flex: 1;
    min-width: 0; }
  .doc-line-popover-combo select {
    width: 58px;
    flex-shrink: 0;
    padding: 0 4px; }

.quote-layout.surface-inline-layout {
  grid-template-columns: minmax(0, 1fr) 340px; }

@media (max-width: 1100px) {
  .quote-layout.surface-inline-layout {
    grid-template-columns: minmax(0, 1fr); } }
.doc-inline-rail {
  min-width: 0; }

.doc-inline-hidden {
  display: none !important; }

.doc-inline-paper tr.doc-line-group > td {
  padding-top: var(--ds-space-3, 12px);
  padding-bottom: var(--ds-space-1, 4px);
  border-bottom: 1px solid #cfd4da;
  font-weight: 700; }

.doc-line-group-inner {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--ds-space-1, 4px); }
  .doc-line-group-inner .doc-line-actions {
    margin-left: auto; }

.doc-line-group-title {
  font-weight: 700;
  white-space: normal; }
  .doc-line-group-title.doc-tok-empty {
    font-weight: 400; }

.doc-inline-paper tr.doc-line-group .doc-line-grip,
.doc-inline-paper tr.doc-line-group .doc-line-action-danger {
  color: #b4b8bd;
  transition: color .12s ease; }
.doc-inline-paper tr.doc-line-group:hover .doc-line-grip, .doc-inline-paper tr.doc-line-group:focus-within .doc-line-grip, .doc-inline-paper tr.doc-line-group:hover .doc-line-action-danger, .doc-inline-paper tr.doc-line-group:focus-within .doc-line-action-danger {
  color: var(--blue-dark); }
.doc-inline-paper tr.doc-line-group .doc-line-action-danger:hover,
.doc-inline-paper tr.doc-line-group .doc-line-action-danger:focus-visible {
  color: var(--red-danger); }
.doc-inline-paper tr.doc-line-group.doc-line-dragging {
  opacity: .5; }
.doc-inline-paper tr.doc-line-group.doc-line-drop-before {
  box-shadow: inset 0 2px 0 0 var(--blue-selected); }
.doc-inline-paper tr.doc-line-group.doc-line-drop-after {
  box-shadow: inset 0 -2px 0 0 var(--blue-selected); }

.doc-inline-paper tr.doc-line-group-empty > td {
  padding: var(--ds-space-2, 8px);
  border: 1px dashed var(--blue-dark);
  border-radius: var(--border-radius-little);
  color: var(--blue-dark);
  font-size: var(--ds-fs-caption);
  font-weight: 400;
  font-style: italic;
  text-align: center; }

.doc-inline-paper tr.doc-line-drop-into > td {
  box-shadow: inset 0 0 0 2px var(--blue-selected); }

.doc-inline-paper tr.doc-line-group-subtotal > td {
  padding-top: var(--ds-space-1, 4px);
  padding-bottom: 10px; }

.doc-line-group-subtotal-label {
  text-align: right;
  padding-right: var(--ds-space-2, 8px); }

.doc-line-group-subtotal-amount {
  border-top: .5px solid #333;
  font-weight: 600; }

.doc-line-note {
  display: block;
  margin-top: 2px;
  font-size: .92em;
  font-style: normal;
  font-weight: 400;
  color: #555;
  white-space: pre-wrap;
  text-align: left; }

.doc-line-note-add {
  display: inline-block;
  margin-top: 2px;
  padding: 0 2px;
  border-radius: 3px;
  cursor: pointer;
  font-size: .92em;
  font-style: normal;
  color: var(--blue-selected);
  opacity: 0;
  transition: opacity .12s ease; }
  .doc-line-note-add i {
    font-size: .95em; }
  .doc-line-note-add:hover, .doc-line-note-add:focus-visible {
    outline: none;
    text-decoration: underline; }

.doc-inline-paper tr[data-doc-line]:hover .doc-line-note-add,
.doc-inline-paper tr[data-doc-line]:focus-within .doc-line-note-add,
.doc-line-note-add:focus,
.doc-line-note-add[data-doc-editing="1"] {
  opacity: 1; }

@media (hover: none) {
  .doc-line-note-add {
    opacity: 1; } }
.doc-line-note-editing[data-doc-editing="1"] {
  display: block;
  width: max-content;
  max-width: none;
  margin-top: 4px;
  padding: 4px 6px;
  opacity: 1;
  color: inherit;
  font-size: inherit; }
  .doc-line-note-editing[data-doc-editing="1"] textarea.doc-tok-input {
    min-width: 0;
    max-width: none;
    min-height: 4.6em; }

.doc-line-option-word {
  font-style: italic; }

.doc-line-option-chip {
  display: table;
  margin: 5px 0 0 auto;
  text-align: right;
  font-size: var(--ds-fs-caption);
  font-style: normal;
  font-weight: 400;
  white-space: nowrap;
  color: var(--blue-dark); }
  .doc-line-option-chip.doc-line-option-chip--off {
    color: var(--blue-dim); }
  .doc-line-option-chip.doc-line-option-chip--static {
    cursor: help; }
  .doc-line-option-chip.doc-line-option-chip--inline {
    display: inline-block;
    margin: 0 0 0 6px; }

.doc-line-option-switch {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 6px 0 0 auto;
  padding: 2px 4px;
  border-radius: var(--border-radius-little);
  cursor: pointer;
  user-select: none;
  color: var(--blue-dark); }
  .doc-line-option-switch .doc-switch-track {
    position: relative;
    flex-shrink: 0;
    width: 28px;
    height: 16px;
    border-radius: 8px;
    background: var(--blue-medium);
    transition: background .2s ease; }
  .doc-line-option-switch .doc-switch-knob {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--surface, #fff);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
    transition: left .2s ease; }
  .doc-line-option-switch.is-on {
    color: var(--blue-dim); }
    .doc-line-option-switch.is-on .doc-switch-track {
      background: var(--blue-selected); }
    .doc-line-option-switch.is-on .doc-switch-knob {
      left: 14px; }
  .doc-line-option-switch:hover, .doc-line-option-switch:focus-visible {
    outline: none;
    background: var(--blue-selected-bg); }
  .doc-line-option-switch:focus-visible {
    box-shadow: 0 0 0 1px var(--blue-selected); }

td .doc-line-option-switch {
  display: flex;
  width: max-content; }

.doc-inline-paper tr.doc-line--hidden > td {
  color: var(--blue-dark); }

.doc-inline-paper tr.doc-line--flash > td {
  background: var(--blue-selected-bg);
  transition: background .6s ease; }

.doc-line-product[data-doc-editing="1"] {
  display: block;
  border: none;
  background: none;
  padding: 0; }

.doc-line-replace.doc-line-adder-box {
  display: flex;
  min-width: 0;
  width: 100%;
  font-weight: 400; }

.doc-line-add-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0 var(--ds-space-3, 12px); }
  .doc-line-add-links .doc-line-add-link {
    display: inline-block;
    margin-left: 0; }

.doc-tok-comment[data-doc-flush] {
  margin-top: 0; }

.doc-inline-live {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0; }

.doc-inline-frozen .doc-line-note-add,
.doc-inline-frozen .doc-line-group .doc-line-actions,
.doc-inline-frozen .doc-line-group .doc-line-grip,
.doc-inline-frozen .doc-line-group-empty,
.doc-inline-frozen .doc-line-option-chip {
  display: none !important; }

.quote-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: var(--ds-space-6);
  align-items: start; }

.quote-layout > div {
  min-width: 0; }

@media (max-width: 1100px) {
  .quote-layout {
    grid-template-columns: minmax(0, 1fr); } }
.doc-rail-fields {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--ds-space-4); }
  .doc-rail-fields .dynInput {
    margin-bottom: 0; }
  .doc-rail-fields select.form-control {
    width: 100%;
    text-overflow: ellipsis;
    padding-right: 28px; }

.doc-rail-creator {
  font-size: var(--ds-fs-secondary);
  color: var(--blue-dark);
  margin-top: var(--ds-space-3); }

.quote-customer-picker {
  position: relative;
  overflow: visible; }

.quote-customer-results {
  position: absolute;
  left: 0;
  right: 0;
  top: 48px;
  z-index: 20;
  background: var(--ct-surface);
  border: 1px solid var(--blue-medium);
  border-radius: var(--border-radius-little);
  box-shadow: 0 4px 16px var(--shadow);
  max-height: 300px;
  overflow: auto;
  display: none; }

.quote-customer-result {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  cursor: pointer;
  border-bottom: 1px solid var(--blue-light); }

.quote-customer-result:hover {
  background: var(--blue-selected-bg); }

.quote-customer-result-body {
  min-width: 0; }

.quote-customer-result-name {
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; }

.quote-customer-result-detail {
  font-size: var(--ds-fs-caption);
  color: var(--ct-text-2);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; }

.quote-customer-empty {
  padding: 14px 12px;
  color: var(--ct-text-2); }

.quote-customer-create-action {
  position: sticky;
  bottom: -6px;
  margin: 0px -6px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 11px 12px;
  background: var(--ct-surface);
  border-top: 1px solid var(--blue-medium);
  color: var(--blue-selected);
  cursor: pointer;
  font-weight: 600; }

.quote-customer-create-action:hover,
.quote-customer-create-action:focus {
  background: var(--blue-selected);
  color: var(--text-inverse); }

.quote-client-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--blue-medium);
  color: var(--blue-dim);
  font-weight: 700;
  text-transform: uppercase;
  flex-shrink: 0; }

.quote-customer-result .quote-client-avatar {
  width: 32px;
  height: 32px;
  font-size: var(--ds-fs-caption); }

.quote-client-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid var(--blue-medium);
  border-radius: var(--border-radius-medium);
  background: var(--ct-surface); }

.quote-client-card-body {
  flex: 1;
  min-width: 0; }

.quote-client-card-name {
  font-weight: 700; }

.quote-client-card-detail {
  font-size: var(--ds-fs-secondary);
  color: var(--ct-text-2); }

.ds-modal-overlay.cp-overlay {
  align-items: flex-start;
  padding: 6vh 16px; }

.ds-modal.cp-modal {
  max-width: 620px;
  max-height: 86vh;
  padding: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden; }

.cp-modal .ds-modal-head {
  padding: 16px 20px;
  border-bottom: 1px solid var(--blue-light);
  margin-bottom: 0;
  flex-shrink: 0; }

.cp-search {
  padding: 14px 20px 8px;
  flex-shrink: 0; }

.cp-search-wrap {
  position: relative; }

.cp-search input {
  width: 100%;
  padding-left: 36px; }

.cp-search-ico {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--blue-dark); }

.cp-body {
  overflow-y: auto;
  padding: 6px 12px 12px;
  flex: 1; }

.cp-group-label {
  font-size: var(--ds-fs-caption);
  color: var(--blue-dark);
  text-transform: uppercase;
  letter-spacing: .06em;
  margin: 12px 8px 6px;
  display: flex;
  align-items: center;
  gap: 6px; }

.cp-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  border-radius: 8px;
  cursor: pointer; }
  .cp-row:hover {
    background: var(--blue-selected-bg); }

.cp-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(78, 167, 232, 0.14);
  color: var(--blue-selected, #4ea7e8);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.3rem;
  font-weight: 500;
  flex-shrink: 0; }
  .cp-avatar.cp-insee {
    background: var(--brand-tint);
    color: var(--ok-fg); }

.cp-row-main {
  flex: 1;
  min-width: 0; }

.cp-row-name {
  font-size: 1.4rem;
  color: var(--ct-text-1, #111); }

.cp-row-detail {
  font-size: var(--ds-fs-secondary);
  color: var(--ct-text-2, #999);
  margin-top: 1px; }

.cp-row-cta {
  font-size: var(--ds-fs-secondary);
  color: var(--blue-selected, #4ea7e8);
  flex-shrink: 0; }

.cp-empty {
  padding: 14px;
  text-align: center;
  color: var(--ct-text-3, #aaa);
  font-size: 1.3rem; }

.cp-hint {
  padding: 10px 14px;
  color: var(--warn-fg);
  background: var(--warn-bg);
  border-radius: 8px;
  font-size: var(--ds-fs-caption);
  margin: 8px; }

.cp-foot {
  border-top: 1px solid var(--blue-light);
  padding: 12px 20px;
  display: flex;
  justify-content: flex-end;
  flex-shrink: 0; }

.cp-manual {
  padding: 16px 20px;
  border-top: 1px solid var(--blue-light);
  flex-shrink: 0;
  overflow-y: auto; }
  .cp-manual .cp-grid2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px; }
  .cp-manual input,
  .cp-manual select {
    width: 100%;
    margin-bottom: 10px; }

.cp-manual-error {
  color: var(--red-danger, #c0392b);
  font-size: var(--ds-fs-secondary);
  margin-bottom: 8px; }

.cp-manual-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 4px; }

.cp-spin {
  padding: 14px;
  text-align: center;
  color: var(--ct-text-3, #bbb);
  font-size: 1.3rem; }

@media (max-width: 640px) {
  .cp-manual .cp-grid2 {
    grid-template-columns: 1fr; } }
.fact_thumb_rows {
  padding: 10px 0px; }

.fact_thumb_row {
  padding-top: 3px;
  padding-bottom: 3px; }

.fact_thumb_container {
  background-color: white;
  border: 1px solid var(--line);
  padding: 5px 10px;
  min-height: 32px; }
  .fact_thumb_container:hover {
    cursor: pointer;
    background-color: var(--surface-2); }

.fact_thumb_id {
  font-weight: bold; }

.fact_thumb_date {
  font-weight: normal;
  color: var(--text-3); }

.fact_thumb_ttc {
  font-weight: bold;
  color: var(--text-2);
  font-size: 1.15em; }

.user_thumb_container {
  background-color: white;
  border: 1px solid var(--line);
  padding: 5px 10px;
  min-height: 32px; }

.vignette_icons .printLabel {
  top: -25px;
  left: -3px;
  font-size: 1.6rem;
  margin-right: 8px; }
.vignette_icons .deleteVente {
  bottom: -25px;
  left: -3px;
  font-size: 1.6rem; }
.vignette_icons .delete {
  left: -2px;
  font-size: 1.6rem; }

#reglementsClient, #caFamille {
  width: 100%; }

#canvasStats, #canvasPurchasesStats {
  padding-top: 0px;
  width: 100%;
  display: inherit;
  max-height: 300px; }

#reglementsClient_legend, #caFamille_legend {
  display: flex;
  align-items: center;
  width: 50%;
  height: 100%;
  position: absolute;
  padding-left: 20px;
  background-color: transparent;
  vertical-align: middle;
  right: 0;
  top: 0; }
  #reglementsClient_legend li, #caFamille_legend li {
    vertical-align: middle;
    padding: 5px 20px 10px 25px; }
  @media (min-width: 768px) {
    #reglementsClient_legend, #caFamille_legend {
      font-size: 1.3rem;
      padding-left: 20px; }
      #reglementsClient_legend li, #caFamille_legend li {
        padding: 2px 20px; } }
  @media (min-width: 1200px) {
    #reglementsClient_legend, #caFamille_legend {
      padding-left: 20px; } }

.select-graph-col2 .position {
  display: flex;
  flex-direction: column; }
  .select-graph-col2 .position .ct-kpi-sub:empty, .select-graph-col2 .position .ct-kpi-sub:has(.invisible) {
    display: none; }

.chart_config_btn_grp {
  color: grey;
  font-size: var(--ds-fs-caption);
  border: 1px solid #E3E3E3;
  float: left;
  padding: 5px 10px;
  width: 100%; }
  .chart_config_btn_grp .chart_config_btn {
    height: 39px;
    line-height: 39px;
    white-space: nowrap; }
  .chart_config_btn_grp input[type="radio"] {
    width: auto; }

.chart_config_links {
  font-size: 0.9em; }
  .chart_config_links span.fa {
    padding-right: 5px; }

.chart_infos_container {
  padding-top: 5px;
  padding-bottom: 20px; }

.chart_infos_container .chart_infos_left {
  padding-right: 10px; }

.chart_infos_container .chart_infos_right {
  padding-left: 10px; }

.chart_infos_container .chart_infos_header_left {
  width: 95px; }

.chart_infos_container .chart_infos_header_right {
  width: 120px; }

.chart_infos_container .chart_infos_label {
  width: 60%;
  color: #666;
  line-height: 12px;
  font-size: 1.3rem;
  font-weight: bold; }

.chart_infos_container .chart_infos_value {
  color: grey;
  white-space: nowrap;
  font-size: 1.3rem;
  padding: 0px 10px;
  width: 40%;
  max-width: 100px; }

.chart_infos_container .chart_infos_content {
  text-align: right;
  border: 1px solid #e3e3e3;
  padding: 20px;
  width: calc(100% - 20px);
  margin: 0px 10px;
  float: left; }

.chart_legend_container {
  width: 100%;
  display: block;
  vertical-align: middle;
  display: none; }

.chart_legend_list {
  text-align: left;
  list-style-type: none;
  padding: 0px;
  margin: 0px;
  display: none; }

.chart_legend_circle {
  width: 20px;
  height: 20px;
  border-radius: 10px;
  float: left;
  margin-right: 10px; }
  @media (min-width: 768px) {
    .chart_legend_circle {
      width: 16px;
      height: 16px;
      margin-top: 2px;
      border-radius: 8px; } }

.chart_legend_label {
  height: 20px;
  line-height: 20px;
  padding-left: 0px;
  color: #666;
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap; }

.topproduct_wrapper {
  display: grid !important;
  grid-template-columns: 1fr;
  grid-template-rows: auto;
  height: 100%; }

.topproduct_wrapper, .cloture_wrapper {
  display: flex;
  flex-direction: column; }
  .topproduct_wrapper .topproduct_image, .cloture_wrapper .topproduct_image {
    background-size: cover;
    background-position: center center;
    width: 30px;
    height: 30px;
    display: table;
    border-radius: 7px;
    margin: 0px 10px;
    margin-left: 0px;
    padding-right: 15px; }
  .topproduct_wrapper .topproduct_infoscontainer, .topproduct_wrapper .cloture_infoscontainer, .cloture_wrapper .topproduct_infoscontainer, .cloture_wrapper .cloture_infoscontainer {
    display: flex;
    flex-direction: row;
    text-align: left;
    width: 100%;
    justify-content: space-between;
    align-items: center; }
  .topproduct_wrapper .topproduct_item, .topproduct_wrapper .cloture_item, .cloture_wrapper .topproduct_item, .cloture_wrapper .cloture_item {
    width: 100%;
    margin: 10px 0px;
    overflow: hidden; }
  .topproduct_wrapper .topproduct_itemwrap, .topproduct_wrapper .cloture_itemwrap, .cloture_wrapper .topproduct_itemwrap, .cloture_wrapper .cloture_itemwrap {
    border-bottom: 1px solid var(--blue-light);
    display: flex;
    align-items: center; }
    .topproduct_wrapper .topproduct_itemwrap:last-child, .topproduct_wrapper .cloture_itemwrap:last-child, .cloture_wrapper .topproduct_itemwrap:last-child, .cloture_wrapper .cloture_itemwrap:last-child {
      border: none; }
  .topproduct_wrapper .topproduct_iteminfos, .topproduct_wrapper .cloture_iteminfos, .cloture_wrapper .topproduct_iteminfos, .cloture_wrapper .cloture_iteminfos {
    display: flex;
    flex-direction: column;
    padding-left: 10px; }
  .topproduct_wrapper .topproduct_container, .topproduct_wrapper .cloture_itemcontainer, .cloture_wrapper .topproduct_container, .cloture_wrapper .cloture_itemcontainer {
    display: flex;
    flex-direction: row;
    align-items: center; }
  .topproduct_wrapper .topproduct_price, .topproduct_wrapper .cloture_itemdeclared, .topproduct_wrapper .cloture_itemtheo, .cloture_wrapper .topproduct_price, .cloture_wrapper .cloture_itemdeclared, .cloture_wrapper .cloture_itemtheo {
    padding: 0px 10px; }

@media (max-width: 767px) {
  #sales_bloc, #purchase_bloc, #commercial_bloc {
    max-width: calc(100vw - 30px); } }

@media (max-width: 767px) {
  .evolution_marge {
    overflow: auto;
    table-layout: unset !important; } }

.visits-summary {
  padding-top: 10px;
  visibility: hidden; }
  .visits-summary span {
    margin-bottom: 10px;
    display: inline-block; }
    .visits-summary span b {
      font-size: 1.7rem; }

.visits-flag {
  vertical-align: top;
  margin-top: 3px; }

.no_countries {
  display: none; }

#visits_countries {
  text-align: left;
  display: inline-block;
  width: 100%; }
  #visits_countries div {
    margin-bottom: 10px; }

#visits_countries:empty {
  display: none; }

#visits_countries:empty + .no_countries {
  display: block; }

@media (max-width: 767px) {
  #reportrange, #comparerange {
    margin: 0px;
    width: 100%;
    margin-bottom: 10px; } }

.select-graph {
  border-left: 0px solid var(--blue-light);
  text-align: left;
  padding-left: 10px;
  margin-bottom: 0px;
  display: flex;
  align-items: center; }
  .select-graph:hover {
    cursor: pointer;
    background-color: var(--blue-light); }
  .select-graph .stat-title {
    color: #666; }
  .select-graph .select-graph-col2 {
    display: flex;
    flex-direction: column;
    flex: 1; }
  .select-graph i {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 20px;
    font-size: 2.1rem;
    display: none; }
  .select-graph .styled-checkbox {
    width: auto;
    margin: 0px 5px;
    display: block;
    pointer-events: none; }
  .select-graph[data-datatype=profit].selected {
    border-left: 4px solid #0db90d; }
    .select-graph[data-datatype=profit].selected .styled-checkbox input:checked ~ .checkmark {
      background: #0db90d !important;
      border-color: #0db90d !important; }
    .select-graph[data-datatype=profit].selected .stat-title {
      color: #0db90d; }
  .select-graph[data-datatype=orderqty].selected, .select-graph[data-datatype=salesqty].selected, .select-graph[data-datatype=shippingfees].selected {
    border-left: 4px solid #ff9f00; }
    .select-graph[data-datatype=orderqty].selected .styled-checkbox input:checked ~ .checkmark, .select-graph[data-datatype=salesqty].selected .styled-checkbox input:checked ~ .checkmark, .select-graph[data-datatype=shippingfees].selected .styled-checkbox input:checked ~ .checkmark {
      background: #ff9f00 !important;
      border-color: #ff9f00 !important; }
    .select-graph[data-datatype=orderqty].selected .stat-title, .select-graph[data-datatype=salesqty].selected .stat-title, .select-graph[data-datatype=shippingfees].selected .stat-title {
      color: #ff9f00; }
  .select-graph[data-datatype=ticket].selected, .select-graph[data-datatype=salesDF].selected, .select-graph[data-datatype=purchaseqty].selected {
    border-left: 4px solid #af00ff; }
    .select-graph[data-datatype=ticket].selected .styled-checkbox input:checked ~ .checkmark, .select-graph[data-datatype=salesDF].selected .styled-checkbox input:checked ~ .checkmark, .select-graph[data-datatype=purchaseqty].selected .styled-checkbox input:checked ~ .checkmark {
      background: #af00ff !important;
      border-color: #af00ff !important; }
    .select-graph[data-datatype=ticket].selected .stat-title, .select-graph[data-datatype=salesDF].selected .stat-title, .select-graph[data-datatype=purchaseqty].selected .stat-title {
      color: #af00ff; }
  .select-graph[data-datatype=sales].selected, .select-graph[data-datatype=purchase].selected {
    border-left: 4px solid var(--blue-selected); }
    .select-graph[data-datatype=sales].selected .styled-checkbox input:checked ~ .checkmark, .select-graph[data-datatype=purchase].selected .styled-checkbox input:checked ~ .checkmark {
      background: var(--blue-selected) !important;
      border-color: var(--blue-selected) !important; }
    .select-graph[data-datatype=sales].selected .stat-title, .select-graph[data-datatype=purchase].selected .stat-title {
      color: var(--blue-selected); }
  .select-graph[data-datatype=loyaltyRetention].selected {
    border-left: 4px solid var(--blue-selected); }
    .select-graph[data-datatype=loyaltyRetention].selected .styled-checkbox input:checked ~ .checkmark {
      background: var(--blue-selected) !important;
      border-color: var(--blue-selected) !important; }
    .select-graph[data-datatype=loyaltyRetention].selected .stat-title {
      color: var(--blue-selected); }
  .select-graph[data-datatype=loyaltyFrequency].selected {
    border-left: 4px solid #ff9f00; }
    .select-graph[data-datatype=loyaltyFrequency].selected .styled-checkbox input:checked ~ .checkmark {
      background: #ff9f00 !important;
      border-color: #ff9f00 !important; }
    .select-graph[data-datatype=loyaltyFrequency].selected .stat-title {
      color: #ff9f00; }
  .select-graph[data-datatype=loyaltyBasket].selected {
    border-left: 4px solid #af00ff; }
    .select-graph[data-datatype=loyaltyBasket].selected .styled-checkbox input:checked ~ .checkmark {
      background: #af00ff !important;
      border-color: #af00ff !important; }
    .select-graph[data-datatype=loyaltyBasket].selected .stat-title {
      color: #af00ff; }
  .select-graph[data-datatype=loyaltyIdentified].selected {
    border-left: 4px solid #0db90d; }
    .select-graph[data-datatype=loyaltyIdentified].selected .styled-checkbox input:checked ~ .checkmark {
      background: #0db90d !important;
      border-color: #0db90d !important; }
    .select-graph[data-datatype=loyaltyIdentified].selected .stat-title {
      color: #0db90d; }
  .select-graph[data-datatype=margeCa].selected {
    border-left: 4px solid var(--blue-selected); }
    .select-graph[data-datatype=margeCa].selected .styled-checkbox input:checked ~ .checkmark {
      background: var(--blue-selected) !important;
      border-color: var(--blue-selected) !important; }
    .select-graph[data-datatype=margeCa].selected .stat-title {
      color: var(--blue-selected); }
  .select-graph[data-datatype=margeNette].selected {
    border-left: 4px solid #0db90d; }
    .select-graph[data-datatype=margeNette].selected .styled-checkbox input:checked ~ .checkmark {
      background: #0db90d !important;
      border-color: #0db90d !important; }
    .select-graph[data-datatype=margeNette].selected .stat-title {
      color: #0db90d; }
  .select-graph[data-datatype=margeTauxMarge].selected {
    border-left: 4px solid #af00ff; }
    .select-graph[data-datatype=margeTauxMarge].selected .styled-checkbox input:checked ~ .checkmark {
      background: #af00ff !important;
      border-color: #af00ff !important; }
    .select-graph[data-datatype=margeTauxMarge].selected .stat-title {
      color: #af00ff; }
  .select-graph[data-datatype=margeTauxCasse].selected {
    border-left: 4px solid #ff9f00; }
    .select-graph[data-datatype=margeTauxCasse].selected .styled-checkbox input:checked ~ .checkmark {
      background: #ff9f00 !important;
      border-color: #ff9f00 !important; }
    .select-graph[data-datatype=margeTauxCasse].selected .stat-title {
      color: #ff9f00; }
  .select-graph[data-datatype=collectionQtyReceived].selected {
    border-left: 4px solid var(--blue-selected); }
    .select-graph[data-datatype=collectionQtyReceived].selected .styled-checkbox input:checked ~ .checkmark {
      background: var(--blue-selected) !important;
      border-color: var(--blue-selected) !important; }
    .select-graph[data-datatype=collectionQtyReceived].selected .stat-title {
      color: var(--blue-selected); }
  .select-graph[data-datatype=collectionQtySold].selected {
    border-left: 4px solid #ff9f00; }
    .select-graph[data-datatype=collectionQtySold].selected .styled-checkbox input:checked ~ .checkmark {
      background: #ff9f00 !important;
      border-color: #ff9f00 !important; }
    .select-graph[data-datatype=collectionQtySold].selected .stat-title {
      color: #ff9f00; }
  .select-graph[data-datatype=collectionLosses].selected {
    border-left: 4px solid #af00ff; }
    .select-graph[data-datatype=collectionLosses].selected .styled-checkbox input:checked ~ .checkmark {
      background: #af00ff !important;
      border-color: #af00ff !important; }
    .select-graph[data-datatype=collectionLosses].selected .stat-title {
      color: #af00ff; }
  .select-graph[data-datatype=collectionEcoulement].selected {
    border-left: 4px solid #0db90d; }
    .select-graph[data-datatype=collectionEcoulement].selected .styled-checkbox input:checked ~ .checkmark {
      background: #0db90d !important;
      border-color: #0db90d !important; }
    .select-graph[data-datatype=collectionEcoulement].selected .stat-title {
      color: #0db90d; }

.titleReport {
  font-weight: bold; }

@page {
  @top-left {
    content: "TOP SECRET";
    color: var(--danger-fg); }
  @bottom-right {
    content: counter(page);
    font-style: italic; } }
.page-break {
  margin-top: 50px; }

#report_body {
  background-color: white;
  color: var(--text-2);
  font-family: 'Calibri', 'sans-serif'; }
  #report_body table {
    page-break-after: auto; }
  #report_body tr {
    page-break-inside: avoid;
    page-break-after: auto; }
  #report_body td {
    page-break-inside: avoid;
    page-break-after: auto; }
  #report_body th {
    page-break-inside: avoid;
    page-break-after: auto; }
  #report_body thead {
    display: table-header-group; }
  #report_body tfoot {
    display: table-footer-group; }

#report_body_debt {
  background-color: white;
  color: var(--text-2);
  font-family: 'Lato', 'sans-serif'; }
  #report_body_debt table {
    page-break-inside: avoid;
    page-break-after: auto; }
  #report_body_debt tr {
    page-break-inside: avoid;
    page-break-after: auto; }
  #report_body_debt td {
    page-break-inside: avoid;
    page-break-after: auto; }
  #report_body_debt th {
    page-break-inside: avoid;
    page-break-after: auto; }
  #report_body_debt thead {
    display: table-header-group; }
  #report_body_debt tfoot {
    display: table-footer-group; }

#salesThumbnailPeriod {
  /* RC-20260901 min-width réservé au DESKTOP : en mobile (cartes), ce plancher à 991px
     (sélecteur ID, plus fort que la neutralisation .ct-table-wrap) poussait les valeurs
     hors de l'écran — les cartes ne montraient plus que les libellés. */ }
  @media (min-width: 768px) {
    #salesThumbnailPeriod {
      min-width: 991px; } }
  @media (max-width: 1150px) {
    #salesThumbnailPeriod .fa-chevron-right {
      display: none !important; } }

.sales-summary, .purchase-summary {
  overflow: auto; }
  @media (max-width: 1150px) {
    .sales-summary, .purchase-summary {
      margin-right: -25px;
      padding-right: 25px; } }
  @media (max-width: 767px) {
    .sales-summary, .purchase-summary {
      margin-right: -15px;
      padding-right: 15px; } }

.breakafter {
  page-break-after: always;
  padding: 20px; }

.breakbefore {
  page-break-before: always;
  padding: 20px; }

.test {
  color: blue; }

.report_logo {
  width: 100%; }

.report_title {
  font-size: large;
  font-weight: bold;
  padding: 10px; }

.report_header {
  padding-bottom: 30px; }

.report_table_container {
  padding-left: 15px;
  padding-right: 15px; }

.report_table_title {
  font-size: 1.3em;
  font-weight: bold;
  color: var(--text-2);
  padding: 20px 10px 10px;
  text-align: center; }

.report_table_title_sub {
  font-size: 1.1em;
  padding: 0px 10px 5px; }

.report_table {
  width: 100%;
  /*entree sortie de stock*/ }
  .report_table th, .report_table td {
    border: 1px solid gray;
    padding: 5px 10px; }
  .report_table th {
    background-color: var(--brand-solid) !important;
    color: var(--text-inverse); }
  .report_table tr.main_clot td.report_clot_label {
    padding-left: 20px; }
  .report_table .report_clot_enr, .report_table .report_clot_recu {
    text-align: right;
    width: 30%; }
  .report_table .report_clot_label {
    width: 40%;
    text-align: left; }
  .report_table .report_vente_designation {
    width: 40%;
    text-align: left; }
  .report_table .report_vente_qte, .report_table .report_vente_ttc {
    width: 15%;
    text-align: right; }
  .report_table .report_vente_ht,
  .report_table .report_vente_tva,
  .report_table .report_vente_mtva {
    width: 10%;
    text-align: right; }
  .report_table .report_ref {
    width: 20%; }
  .report_table .report_art {
    text-align: left;
    width: 50%; }
  .report_table .report_qte {
    text-align: center;
    width: 15%; }
  .report_table .report_unite {
    text-align: center;
    width: 15%; }
  .report_table .report_footer_span {
    padding-top: 10px;
    padding-bottom: 10px; }
  .report_table .report_main_content {
    padding-bottom: 30px; }
  .report_table .report_es_march {
    width: 22%; }
  .report_table .report_es_stk {
    width: 9%; }
  .report_table .report_es_ope {
    width: 7%; }
  .report_table .report_es_avope {
    text-align: right;
    width: 10%; }
  .report_table .report_es_qtar {
    text-align: center;
    width: 4%; }
  .report_table .report_es_apope {
    text-align: right;
    width: 10%; }
  .report_table .report_es_date {
    width: 9%; }
  .report_table .report_es_user {
    width: 8%; }
  .report_table .report_es_motif {
    width: 9%; }
  .report_table .report_es_comm {
    width: 12%; }
  .report_table .rpt_palm_des {
    width: 16%; }
  .report_table .rpt_palm_qtev, .report_table .rpt_palm_pumttc, .report_table .rpt_palm_tva, .report_table .rpt_palm_ecop, .report_table .rpt_palm_reme, .report_table .rpt_palm_promo, .report_table .rpt_palm_caht, .report_table .rpt_palm_mtva, .report_table .rpt_palm_mecop, .report_table .rpt_palm_cattc, .report_table .rpt_palm_cattceco, .report_table .rpt_palm_marght,
  .report_table .rpt_palm_margpc, .report_table .rpt_palm_marchpc {
    width: 6%; }

.report_table.palm_tva {
  border: 1px solid var(--line-strong);
  margin: 30px 0px; }

.report_etiquette_container {
  overflow: hidden;
  color: var(--text);
  float: left;
  page-break-inside: avoid;
  page-break-after: auto; }

.report_item_container {
  position: absolute;
  display: block;
  text-align: left;
  font-weight: bold;
  text-overflow: ellipsis;
  overflow: hidden;
  page-break-inside: avoid;
  page-break-after: auto; }

.report_barcodeEan13 {
  float: left; }

div[data-sales="paymentmode"] .loading-details[style="display: none;"] ~ .sales-summary:empty ~ #noPayment, div[data-sales="paymentmode"] .loading-details[style="display:none;"] ~ .sales-summary:empty ~ #noPayment {
  display: block !important; }

#senderId {
  padding: 15px 10px; }

.mbx-list {
  display: flex;
  flex-direction: column;
  gap: var(--sp-2, 8px); }

.mbx-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--sp-3, 12px);
  padding: var(--sp-3, 12px);
  border: 1px solid var(--line, var(--blue-medium));
  border-radius: var(--r-md, 8px);
  background: var(--surface, transparent); }
  .mbx-row.is-selected {
    border-color: var(--brand-500, var(--blue-selected)); }
  .mbx-row > .styled-checkbox {
    flex: 1 1 320px;
    min-width: 0;
    margin: 0; }

.mbx-main {
  display: flex;
  flex-direction: column;
  gap: var(--sp-1, 4px);
  min-width: 0; }

.mbx-title {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--sp-2, 8px);
  font-weight: 600;
  color: var(--title, inherit);
  overflow-wrap: anywhere; }

.mbx-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--sp-2, 8px);
  color: var(--text-2, inherit);
  font-size: var(--fs-sm, var(--ds-fs-secondary)); }

.mbx-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-2, 8px);
  margin-left: auto; }

.mbx-ai-classes {
  margin: var(--sp-2, 8px) 0 0 var(--sp-6, 24px); }

.mbx-indent {
  margin-left: var(--sp-6, 24px); }

.prm-section .ds-banner + .ds-banner,
.mbx-banner-stack > .ds-banner + .ds-banner {
  margin-top: var(--sp-2, 8px); }

.mbx-banner-stack {
  margin: 0 0 var(--sp-4, 16px); }

.mbx-banner-icon {
  margin-right: var(--sp-2, 8px); }

.choice-card[disabled] {
  opacity: .55;
  cursor: not-allowed; }

.mbx-choices {
  padding: 0; }

.mbx-form {
  display: flex;
  flex-direction: column;
  gap: var(--sp-4, 16px); }
  .mbx-form > p,
  .mbx-form > .ds-banner,
  .mbx-form > .dynInput,
  .mbx-form > .dynDropDown,
  .mbx-form > .grid-2,
  .mbx-form > .choice-card-row {
    margin: 0; }
  .mbx-form > [hidden],
  .mbx-form > .dom-buy-results:empty {
    display: none; }
  .mbx-form > .dom-buy-results {
    margin-top: 0; }

.dom-card {
  padding: var(--sp-4, 16px);
  border: 1px solid var(--line, var(--blue-medium));
  border-radius: var(--r-md, 8px);
  background: var(--surface, transparent); }
  .dom-card + .dom-card {
    margin-top: var(--sp-3, 12px); }

.dom-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: var(--sp-3, 12px); }

.dom-name {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--sp-2, 8px);
  font-weight: 600;
  font-size: var(--fs-lg, var(--ds-fs-title-sm));
  color: var(--title, inherit);
  overflow-wrap: anywhere; }

.dom-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-2, 8px); }

.dom-sub {
  margin-top: var(--sp-4, 16px); }

.dom-sub-title {
  display: flex;
  align-items: center;
  gap: var(--sp-2, 8px);
  margin: 0 0 var(--sp-1, 4px);
  font-weight: 600;
  color: var(--title, inherit); }

.dom-records {
  margin-top: var(--sp-2, 8px); }

.dom-value {
  overflow-wrap: anywhere;
  white-space: normal; }

.dom-note {
  display: block;
  margin-top: var(--sp-1, 4px);
  color: var(--text-2, inherit);
  font-size: var(--fs-sm, var(--ds-fs-secondary)); }

.dom-form {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: var(--sp-3, 12px); }
  .dom-form > .dynInput {
    flex: 1 1 260px;
    margin-bottom: 0; }

.dom-buy-results {
  margin-top: var(--sp-3, 12px); }

.dom-buy-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--sp-2, 8px);
  padding: var(--sp-2, 8px) 0;
  border-bottom: 1px solid var(--line, var(--blue-medium)); }
  .dom-buy-row .dom-buy-price {
    margin-left: auto;
    color: var(--text-2, inherit); }

.dom-more {
  position: relative;
  margin-left: auto; }
  .dom-more > summary {
    list-style: none; }
    .dom-more > summary::-webkit-details-marker {
      display: none; }

.dom-more-list {
  position: absolute;
  right: 0;
  top: calc(100% + var(--sp-1, 4px));
  z-index: 20;
  min-width: 200px;
  padding: var(--sp-1, 4px) 0;
  border: 1px solid var(--line, var(--blue-medium));
  border-radius: var(--r-md, 8px);
  background: var(--surface, var(--white));
  box-shadow: 0 8px 24px var(--shadow-strong, rgba(0, 0, 0, 0.12)); }
  .dom-more-list > button {
    display: block;
    width: 100%;
    padding: var(--sp-2, 8px) var(--sp-3, 12px);
    border: 0;
    background: none;
    color: var(--title, inherit);
    font: inherit;
    text-align: left;
    cursor: pointer; }
    .dom-more-list > button:hover, .dom-more-list > button:focus-visible {
      background: var(--blue-selected-bg, var(--blue-light)); }
    .dom-more-list > button.is-danger {
      color: var(--red-danger); }

.dom-uses {
  list-style: none;
  margin: var(--sp-4, 16px) 0 0;
  padding: 0;
  border-top: 1px solid var(--line, var(--blue-medium)); }

.dom-use {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--sp-2, 8px) var(--sp-3, 12px);
  padding: var(--sp-3, 12px) 0;
  border-bottom: 1px solid var(--line, var(--blue-medium)); }

.dom-use-label {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2, 8px);
  flex: 0 0 136px;
  font-weight: 600;
  color: var(--title, inherit); }

.dom-use-what {
  flex: 1 1 220px;
  min-width: 0;
  overflow-wrap: anywhere; }

.dom-use-action {
  margin-left: auto; }

.dom-use-note {
  flex-basis: 100%;
  margin: 0 0 0 calc(136px + var(--sp-3, 12px)); }

.dom-steps {
  margin: var(--sp-2, 8px) 0 0;
  padding-left: var(--sp-5, 20px); }
  .dom-steps > li + li {
    margin-top: var(--sp-1, 4px); }

.dom-progress {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-2, 8px);
  margin-top: var(--sp-3, 12px); }

.dom-tech > summary {
  cursor: pointer;
  color: var(--text-2, inherit);
  font-size: var(--fs-sm, var(--ds-fs-secondary)); }

.dom-nowrap {
  white-space: nowrap; }

.dom-boxes {
  flex-basis: 100%;
  list-style: none;
  margin: var(--sp-1, 4px) 0 0 calc(136px + var(--sp-3, 12px));
  padding: 0;
  border-top: 1px solid var(--line, var(--blue-medium)); }

.dom-box {
  padding: var(--sp-3, 12px) 0;
  border-bottom: 1px solid var(--line, var(--blue-medium)); }
  .dom-box:last-child {
    border-bottom: 0;
    padding-bottom: 0; }
  .dom-box > .ds-hint,
  .dom-box > .ds-banner {
    margin-top: var(--sp-2, 8px); }

.dom-box-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--sp-2, 8px) var(--sp-3, 12px); }

.dom-box-email {
  font-weight: 600;
  overflow-wrap: anywhere; }

.dom-box-toggle {
  margin-left: auto; }

.dom-box-chevron {
  transition: transform .15s ease; }

.dom-box-toggle[aria-expanded="true"] .dom-box-chevron {
  transform: rotate(180deg); }

.dom-box-settings {
  margin-top: var(--sp-3, 12px);
  padding: var(--sp-3, 12px) var(--sp-4, 16px);
  background: var(--surface-sunk, #f2f2f2);
  border: 1px solid var(--line, var(--blue-medium));
  border-radius: var(--border-radius-little); }
  .dom-box-settings > .dom-sub-title {
    margin-top: var(--sp-4, 16px); }
  .dom-box-settings > .ds-hint {
    margin-top: var(--sp-2, 8px); }

.dom-box-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-2, 8px); }

.dom-icon-btn {
  padding-left: var(--sp-2, 8px);
  padding-right: var(--sp-2, 8px); }

.dom-box-grid {
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: var(--sp-2, 8px) var(--sp-4, 16px);
  align-items: center;
  margin: var(--sp-3, 12px) 0 0; }
  .dom-box-grid > dt {
    font-weight: 600;
    color: var(--title, inherit); }
  .dom-box-grid > dd {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--sp-2, 8px);
    margin: 0;
    min-width: 0;
    overflow-wrap: anywhere; }

.dom-zone-form {
  margin: var(--sp-4, 16px) 0; }

.dom-zone-grid {
  display: grid;
  grid-template-columns: 110px minmax(160px, 1.2fr) minmax(200px, 2fr) 130px auto auto;
  gap: var(--sp-3, 12px);
  align-items: start; }

.dom-zone-label {
  display: block;
  margin-bottom: var(--sp-1, 4px);
  font-size: var(--ds-fs-secondary);
  color: var(--blue-dark); }

.dom-zone-preview {
  margin-top: var(--sp-1, 4px);
  min-height: 1.5em;
  overflow-wrap: anywhere; }

.dom-zone-buttons {
  display: flex;
  gap: var(--sp-2, 8px);
  align-self: start;
  margin-top: calc(var(--ds-fs-secondary, 1.3rem) * 1.5 + var(--sp-1, 4px)); }

.dom-zone-purpose {
  white-space: normal; }

.mbx-address {
  display: flex;
  align-items: center;
  gap: var(--sp-2, 8px); }
  .mbx-address > .dynInput {
    flex: 0 1 240px;
    min-width: 0; }

.mbx-address-domain {
  overflow-wrap: anywhere;
  color: var(--text-2, inherit); }

@media (max-width: 600px) {
  .dom-head {
    flex-wrap: nowrap; }

  .dom-name {
    flex: 1 1 0;
    min-width: 0; }

  .dom-more {
    flex: none; }

  .dom-use-label {
    flex-basis: 100%; }

  .dom-use-note {
    margin-left: 0; }

  .dom-boxes {
    margin-left: 0; }

  .dom-box-toggle {
    margin-left: 0; }

  .dom-use-action,
  .dom-box .btn,
  .dom-box-settings .btn {
    min-height: 44px; }

  .dom-zone-grid {
    grid-template-columns: 1fr; }

  .dom-zone-buttons {
    margin-top: 0; }

  .dom-box-grid {
    grid-template-columns: 1fr; }
    .dom-box-grid > dt {
      margin-top: var(--sp-2, 8px); } }
.mth {
  display: flex;
  flex-direction: column; }

.mth-item {
  display: flex;
  gap: var(--sp-3, 12px);
  padding: var(--sp-3, 12px) var(--sp-1, 4px);
  border-bottom: 1px solid var(--line, var(--blue-light)); }
  .mth-item:last-of-type {
    border-bottom: 0; }
  .mth-item.mth-unread .mth-title::before {
    content: "";
    display: inline-block;
    width: 8px;
    height: 8px;
    margin-right: var(--sp-2, 8px);
    border-radius: 50%;
    background: var(--brand-500, var(--blue-selected));
    vertical-align: middle; }

.mth-icon {
  flex: none;
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--surface-sunk, var(--blue-medium));
  color: var(--text-2, inherit);
  font-size: var(--fs-sm, var(--ds-fs-secondary)); }

.mth-body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--sp-1, 4px); }

.mth-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--sp-2, 8px); }

.mth-title {
  font-weight: 600;
  color: var(--title, inherit);
  overflow-wrap: anywhere; }

.mth-date {
  margin-left: auto;
  color: var(--text-2, inherit);
  font-size: var(--fs-sm, var(--ds-fs-secondary)); }

.mth-meta {
  color: var(--text-2, inherit);
  font-size: var(--fs-sm, var(--ds-fs-secondary)); }

.mth-subject {
  font-weight: 500; }

.mth-text {
  white-space: pre-wrap;
  overflow-wrap: anywhere; }

.mth-ai {
  margin: var(--sp-1, 4px) 0; }

.mth-files {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-3, 12px); }

.mth-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-2, 8px);
  margin-top: var(--sp-1, 4px); }

.mth-frame {
  width: 100%;
  min-height: 420px;
  border: 1px solid var(--line, var(--blue-medium));
  border-radius: var(--r-md, 8px);
  background: var(--n-0, white); }

.mth-loading,
.mth-error {
  padding: var(--sp-4, 16px) 0;
  color: var(--text-2, inherit); }

.mth-skeleton {
  display: block;
  height: 12px;
  margin: var(--sp-2, 8px) 0;
  border-radius: var(--r-sm, 4px);
  background: var(--surface-sunk, var(--blue-light)); }
  .mth-skeleton:nth-child(2) {
    width: 70%; }
  .mth-skeleton:nth-child(3) {
    width: 45%; }

.mth-draft {
  margin: var(--sp-1, 4px) 0;
  padding: var(--sp-2, 8px) var(--sp-3, 12px);
  border: 1px dashed var(--line-strong, var(--blue-medium));
  border-radius: var(--r-md, 8px); }
  .mth-draft > summary {
    cursor: pointer;
    font-weight: 600;
    color: var(--title, inherit); }
  .mth-draft > .mth-text {
    margin-top: var(--sp-2, 8px); }

html.ds2 {
  --n-0: #FFFFFF;
  --n-25: #FCFBFA;
  --n-50: #F7F6F4;
  --n-100: #EFEDEA;
  --n-150: #E6E3DF;
  --n-200: #D9D5D0;
  --n-300: #BDB8B1;
  --n-400: #8F8A84;
  --n-500: #6F6A64;
  --n-600: #57534E;
  --n-800: #292524;
  --n-900: #1C1917;
  --text: var(--n-800);
  --text-2: var(--n-600);
  --text-3: var(--n-500);
  --title: var(--n-900);
  --ink: #0B3B2C;
  --page-bg: var(--n-50);
  --surface: var(--n-0);
  --surface-sunk: var(--n-100);
  --line: var(--n-150);
  --line-strong: var(--n-200);
  --field-line: var(--n-400);
  --control-line: var(--n-200);
  --shell-bg: #EEEFE9;
  --shell-hover: rgba(28, 25, 23, .06);
  --shell-active: var(--n-0);
  --canvas-gap: var(--sp-2);
  --r-canvas: 12px;
  --sh-canvas: 0 0 0 1px rgba(28, 25, 23, .06), 0 1px 2px rgba(28, 25, 23, .04);
  --sh-shell-active: 0 0 0 1px rgba(28, 25, 23, .06), 0 1px 2px rgba(28, 25, 23, .05);
  --canvas-edge: color-mix(in srgb, var(--n-900) 6%, var(--shell-bg));
  --brand-50: #ECF8F3;
  --brand-100: #D3EFE3;
  --brand-200: #A9DFC9;
  --brand-300: #6FC7A5;
  --brand-400: #3BAF86;
  --brand-500: #1D9E75;
  --brand-600: #13805E;
  --brand-700: #0F6A4F;
  --brand-800: #0C5440;
  --brand-900: #0A3D2F;
  --brand-solid: var(--brand-600);
  --brand-solid-hover: var(--brand-700);
  --brand-text: var(--brand-700);
  --on-brand: #FFFFFF;
  --focus-ring: 0 0 0 3px rgba(29, 158, 117, .35);
  --ai-edge: linear-gradient(135deg, var(--brand-400), var(--brand-600));
  --danger-fg: #B42318;
  --danger-bg: #FEF3F2;
  --danger-solid: #D92D20;
  --danger-line: #FECDCA;
  --warn-fg: #93370D;
  --warn-bg: #FFFAEB;
  --warn-solid: #F79009;
  --warn-line: #FEDF89;
  --ok-fg: #067647;
  --ok-bg: #ECFDF3;
  --ok-solid: #079455;
  --ok-line: #ABEFC6;
  --info-fg: #1849A9;
  --info-bg: #EFF8FF;
  --info-solid: #1570EF;
  --info-line: #B2DDFF;
  --warn-bg-strong: #FEF0C7;
  --warn-fg-strong: #7A2E0E;
  --danger-bg-strong: #FEE4E2;
  --danger-fg-strong: #912018;
  --info-bg-strong: #D1E9FF;
  --info-fg-strong: #194185;
  --dot: 6px;
  --viz-1: var(--brand-500);
  --viz-2: #4570A8;
  --viz-3: #B8873A;
  --viz-4: #8E5689;
  --viz-5: #CF6B55;
  --viz-6: var(--n-500);
  --font-ui: "Nunito Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --fw-regular: 400;
  --fw-semibold: 600;
  --fw-bold: 700;
  --fs-xs: 1.2rem;
  --lh-xs: 1.6rem;
  --fs-sm: 1.3rem;
  --lh-sm: 2rem;
  --fs-md: 1.4rem;
  --lh-md: 2.2rem;
  --fs-lg: 1.6rem;
  --lh-lg: 2.4rem;
  --fs-xl: 1.8rem;
  --lh-xl: 2.6rem;
  --fs-2xl: 2.2rem;
  --lh-2xl: 3rem;
  --fs-3xl: 2.8rem;
  --lh-3xl: 3.6rem;
  --fw-extrabold: 800;
  --fs-page-title: 3rem;
  --lh-page-title: 3.6rem;
  --fs-kpi: 2.8rem;
  --lh-kpi: 3.4rem;
  --fw-kpi: 750;
  --ls-tight: -0.02em;
  --fs-label: var(--fs-sm);
  --lh-label: var(--lh-sm);
  --sp-1: .4rem;
  --sp-2: .8rem;
  --sp-3: 1.2rem;
  --sp-4: 1.6rem;
  --sp-5: 2rem;
  --sp-6: 2.4rem;
  --sp-8: 3.2rem;
  --sp-12: 4.8rem;
  --r-sm: 6px;
  --r-md: 10px;
  --r-lg: 14px;
  --r-full: 999px;
  --sh-xs: 0 1px 2px rgba(28, 25, 23, .05);
  --sh-sm: 0 1px 3px rgba(28, 25, 23, .08), 0 1px 2px rgba(28, 25, 23, .04);
  --sh-md: 0 4px 12px rgba(28, 25, 23, .08), 0 2px 4px rgba(28, 25, 23, .04);
  --sh-lg: 0 16px 40px rgba(28, 25, 23, .14), 0 4px 12px rgba(28, 25, 23, .06);
  --overlay: rgba(28, 25, 23, .35);
  --icon-xl: 4rem;
  --content-max: 1280px;
  --content-fluid: 100000px;
  --canvas-max: 1760px;
  --form-max: 960px;
  --page-pad-x: var(--sp-8);
  --page-pad-y: var(--sp-6);
  --control-h: 4rem;
  --field-h: 4.8rem;
  --topbar-h: 5.6rem;
  --z-topbar: 40;
  --z-canvas-corner: 39;
  --row-h: 4.4rem;
  --nav-item-h: 3.6rem;
  --rhythm-title: var(--sp-6);
  --rhythm-block: var(--sp-5);
  --toolbar-h: var(--sp-8);
  --ct-bar-h: var(--toolbar-h);
  --fab-size: 4.8rem;
  --ask-w: 34rem;
  --ease: cubic-bezier(.2, .8, .2, 1);
  --dur-fast: 120ms;
  --dur: 180ms;
  --dur-sig: 360ms; }

html.ds2.ds2-compact {
  --row-h: 3.6rem;
  --control-h: 3.2rem;
  --toolbar-h: 2.8rem;
  --ct-bar-h: var(--toolbar-h);
  --nav-item-h: 3.2rem;
  --page-pad-x: var(--sp-6);
  --page-pad-y: var(--sp-4);
  --rhythm-title: var(--sp-5);
  --rhythm-block: var(--sp-4); }

html.ds2 {
  --kpi-act-warn-bg: color-mix(in oklab, var(--warn-solid) 4.5%, var(--surface));
  --kpi-act-danger-bg: color-mix(in oklab, var(--danger-solid) 4.5%, var(--surface));
  --kpi-act-edge: 2px;
  --fs-kpi-count: var(--fs-2xl);
  --lh-kpi-count: var(--lh-2xl);
  --fs-kpi-measure: var(--fs-kpi);
  --lh-kpi-measure: var(--lh-kpi);
  --kpi-pad-y: var(--sp-4);
  --kpi-pad-x: var(--sp-5);
  --kpi-min-w: 9rem;
  --kpi-edge-w: var(--sp-5);
  --kpi-edge-shade: color-mix(in srgb, var(--title) 10%, transparent);
  --kpi-pop-w: 22rem;
  --sig-line: 2px;
  --sig-dot: var(--dot);
  --sig-h: var(--sig-dot);
  --sig-gap: calc(var(--sig-dot) + var(--sp-1));
  --fs-cents: max(.8em, var(--fs-xs));
  --row-act-hover-bg: var(--hover, var(--n-100));
  --row-act-size: var(--sp-8);
  --empty-art: 6.4rem;
  --empty-art-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M10 36l8-18h28l8 18v14a4 4 0 0 1-4 4H14a4 4 0 0 1-4-4z'/><path d='M10 36h14l3 5h10l3-5h14'/><circle cx='32' cy='9' r='3' fill='black' stroke='none'/></svg>"); }

html.ds2.ds2-compact {
  --fs-kpi-count: var(--fs-xl);
  --lh-kpi-count: var(--lh-xl);
  --fs-kpi-measure: var(--fs-2xl);
  --lh-kpi-measure: var(--lh-2xl);
  --kpi-pad-y: var(--sp-2);
  --kpi-pad-x: var(--sp-4); }

html.ds2 {
  --input-bg: var(--surface);
  --input-bg-disabled: var(--surface-sunk);
  --input-line: var(--n-200);
  --input-line-hover: var(--n-400);
  --input-line-focus: var(--brand-500);
  --input-placeholder: var(--text-3);
  --field-label-color: var(--text-2);
  --field-label-gap: var(--sp-1);
  --img-action-bg: color-mix(in oklab, var(--surface) 90%, transparent);
  --group-bg: var(--surface-sunk); }

html.ds2-fields:not(.ds2) {
  --field-accent: var(--color-primary, #1D9E75);
  --input-bg: #FFFFFF;
  --input-bg-disabled: #F4F4F2;
  --input-line: rgba(0, 0, 0, .16);
  --input-line-hover: rgba(0, 0, 0, .32);
  --input-line-focus: var(--field-accent);
  --focus-ring: 0 0 0 3px color-mix(in srgb, var(--field-accent) 28%, transparent);
  --control-line: var(--input-line);
  --input-placeholder: rgba(0, 0, 0, .55);
  --field-label-color: var(--text-color, rgba(0, 0, 0, .72));
  --field-label-gap: .6rem;
  --text: #1D1D1B;
  --text-2: rgba(0, 0, 0, .72);
  --text-3: rgba(0, 0, 0, .55);
  --n-500: #6F6A64;
  --brand-text: var(--field-accent);
  --danger-solid: #C0392B;
  --danger-fg: #B42318;
  --sp-1: .4rem;
  --sp-2: .8rem;
  --sp-3: 1.2rem;
  --sp-5: 2rem;
  --sp-6: 2.4rem;
  --fs-sm: 1.3rem;
  --lh-sm: 1.8rem;
  --fs-md: 1.6rem;
  --lh-md: 2.4rem;
  --fw-regular: 400;
  --fw-semibold: 500;
  --r-sm: min(var(--border-radius-little, 6px), 10px);
  --control-h: 4.4rem;
  --field-h: 4.8rem;
  --dur-fast: 120ms;
  --ease: cubic-bezier(.2, .8, .2, 1); }

html.ds2 {
  --ct-font: var(--font-ui);
  --ct-mono: var(--font-ui);
  --ct-surface: var(--surface);
  --ct-page-bg: var(--page-bg);
  --ct-border: var(--line);
  --ct-border-md: var(--line-strong);
  --ct-text-1: var(--text);
  --ct-text-2: var(--text-2);
  --ct-text-3: var(--text-3);
  --ct-accent: var(--brand-solid);
  --ct-accent-hover: var(--brand-solid-hover);
  --ct-r-sm: var(--r-sm);
  --ct-r-md: var(--r-md);
  --ct-r-lg: var(--r-lg);
  --ct-row-hover: var(--n-25);
  --accent: var(--brand-solid);
  --accent-hover: var(--brand-solid-hover);
  --accent-light: var(--brand-50);
  --border: var(--line);
  --border-md: var(--line-strong);
  --text-1: var(--text);
  --danger: var(--danger-fg);
  --warn: var(--warn-fg);
  --success: var(--ok-fg);
  --success-bg: var(--ok-bg);
  --info: var(--info-fg);
  --font: var(--font-ui);
  --mono: var(--font-ui);
  --red-danger: var(--danger-fg);
  --red-danger-bg: var(--danger-bg);
  --green-success: var(--ok-fg);
  --yellow-warning: var(--warn-fg);
  --yellow-warning-bg: var(--warn-bg);
  --border-radius-little: var(--r-sm);
  --border-radius-medium: var(--r-md);
  --bs-body-font-family: var(--font-ui);
  --bs-body-color: var(--text);
  --bs-body-bg: var(--page-bg);
  --bs-secondary-color: var(--text-2);
  --bs-border-color: var(--line);
  --bs-border-radius: var(--r-sm); }

html.ds2 body {
  font-family: var(--font-ui) !important;
  font-size: var(--fs-md);
  line-height: var(--lh-md);
  font-weight: var(--fw-regular);
  color: var(--text);
  background-color: var(--page-bg); }

:where(html.ds2) :is(h1, h2, h3, h4, h5, h6) {
  font-family: var(--font-ui);
  color: var(--title);
  text-transform: none;
  letter-spacing: normal;
  text-wrap: balance; }

:where(html.ds2) h1 {
  color: var(--ink);
  font-size: var(--fs-page-title);
  line-height: var(--lh-page-title);
  font-weight: var(--fw-extrabold);
  letter-spacing: var(--ls-tight); }

:where(html.ds2) h2 {
  font-size: var(--fs-2xl);
  line-height: var(--lh-2xl);
  font-weight: var(--fw-semibold); }

:where(html.ds2) h3 {
  font-size: var(--fs-xl);
  line-height: var(--lh-xl);
  font-weight: var(--fw-semibold); }

:where(html.ds2) h4 {
  font-size: var(--fs-lg);
  line-height: var(--lh-lg);
  font-weight: var(--fw-semibold); }

:where(html.ds2) :is(h5, h6) {
  font-size: var(--fs-md);
  line-height: var(--lh-md);
  font-weight: var(--fw-semibold); }

:where(html.ds2) :is(strong, b) {
  font-weight: var(--fw-bold); }

html.ds2 :is(.ds-hint, .ds-caption) {
  color: var(--text-2); }

:where(html.ds2) hr {
  border-top-color: var(--line);
  opacity: 1; }

html.ds2 :is(.ct-kpi-val, .ct-bar-val, .ct-progress-val, .ct-amount-pos, .ct-amount-neg, .ct-price-stack, .ct-price-range,
.ct-price-promo, .ct-price-old, .ct-page-total, .ct-td-summary, .doc-tok-money, .doc-tok--num, .doc-head-number,
.ds-drawer-line-qty, input[type="number"]) {
  font-variant-numeric: tabular-nums; }

html.ds2 :is(.infos_content, .ds-card):not(.search-input-container > *) {
  background-color: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  box-shadow: none;
  padding: var(--sp-6); }
  @media (max-width: 767px) {
    html.ds2 :is(.infos_content, .ds-card):not(.search-input-container > *) {
      padding: var(--sp-5) var(--sp-4); } }

html.ds2 .infos_content:is([style*="padding:20px 25px"], [style*="padding: 20px 25px"], [style*="padding:22px 25px"], [style*="padding: 22px 25px"]) {
  padding: var(--sp-6) !important; }
  @media (max-width: 767px) {
    html.ds2 .infos_content:is([style*="padding:20px 25px"], [style*="padding: 20px 25px"], [style*="padding:22px 25px"], [style*="padding: 22px 25px"]) {
      padding: var(--sp-5) var(--sp-4) !important; } }

html.ds2 .infos_content[style*="margin-bottom:15px"] {
  margin-bottom: var(--rhythm-block) !important; }

html.ds2 .infos_content[style*="margin-top:15px"] {
  margin-top: var(--rhythm-block) !important; }

html.ds2 .infos_content[style*="box-shadow"] {
  box-shadow: none !important; }

html.ds2 :not(.row, [class*="grid-"], .d-flex, .d-grid, [style*="flex"], [style*="grid"]) > :is(.infos_content, .ds-card) + :is(.infos_content, .ds-card) {
  margin-top: var(--rhythm-block); }

html.ds2 :is(.ds-card-title, .ct-kpi-label:not([class*="kpi"] .ct-kpi-label)) {
  font-size: var(--fs-lg);
  line-height: var(--lh-lg);
  font-weight: var(--fw-semibold);
  color: var(--title);
  text-transform: none;
  letter-spacing: normal;
  text-wrap: balance;
  margin-bottom: var(--sp-4); }

:is(html.ds2, html.ds2-fields) :is(.form-control, .dynDropDown select) {
  background-color: var(--input-bg);
  border: 1px solid var(--input-line);
  border-radius: var(--r-sm);
  color: var(--text);
  font-family: inherit;
  box-shadow: none;
  min-height: var(--control-h);
  transition: border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease); }

:is(html.ds2, html.ds2-fields) input.form-control:not([type="file"], [type="color"], [type="checkbox"], [type="radio"], [type="range"]),
:is(html.ds2, html.ds2-fields) select.form-control:not([multiple], [size]) {
  height: var(--control-h);
  padding: 0 var(--sp-3); }

:is(html.ds2, html.ds2-fields) textarea.form-control {
  height: auto;
  padding: var(--sp-2) var(--sp-3);
  line-height: var(--lh-md); }

:where(:is(html.ds2, html.ds2-fields) select:not(.form-control), :is(html.ds2, html.ds2-fields) textarea:not(.form-control)) {
  background-color: var(--input-bg);
  border: 1px solid var(--input-line);
  border-radius: var(--r-sm);
  color: var(--text); }

:is(html.ds2, html.ds2-fields) :is(.form-control, textarea, input)::placeholder {
  color: var(--input-placeholder);
  opacity: 1; }

:is(html.ds2, html.ds2-fields) :is(.form-control, .dynDropDown select):hover:not(:disabled, [readonly], :focus) {
  border-color: var(--input-line-hover); }

:is(html.ds2, html.ds2-fields) :is(.form-control, .dynDropDown select, .dynInput input):focus {
  outline: none;
  border-color: var(--input-line-focus);
  box-shadow: var(--focus-ring);
  background-color: var(--input-bg);
  color: var(--text); }

:is(html.ds2, html.ds2-fields) :is(.form-control, .dynDropDown select, select, textarea):is(:disabled, [disabled]) {
  background-color: var(--input-bg-disabled);
  border-color: var(--input-line);
  color: var(--text-3);
  -webkit-text-fill-color: var(--text-3);
  cursor: not-allowed; }

:is(html.ds2, html.ds2-fields) .form-control[readonly]:not(:disabled) {
  background-color: var(--input-bg);
  border-color: var(--input-line);
  color: var(--text-2); }
  :is(html.ds2, html.ds2-fields) .form-control[readonly]:not(:disabled):focus {
    background-color: var(--input-bg); }

:is(html.ds2, html.ds2-fields) :is(.form-control, select, textarea, input):is(.input-validation-error, [aria-invalid="true"]) {
  background-color: var(--input-bg);
  border-color: var(--danger-solid); }

:is(html.ds2, html.ds2-fields) :is(.field-validation-error, .validation-summary-errors) {
  color: var(--danger-fg); }

:is(html.ds2, html.ds2-fields) :is(select.form-control, .dynDropDown select, .dynInput select):not([multiple], [size], .nocurcor) {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5 6 8l3.5-3.5' fill='none' stroke='%236F6A64' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-position: calc(100% - var(--sp-3)) 50%;
  background-size: var(--sp-3) var(--sp-3);
  background-repeat: no-repeat; }

:is(html.ds2, html.ds2-fields) .input-search-button {
  background-color: transparent;
  border-left: 0;
  color: var(--n-500);
  font-size: var(--fs-sm); }
  :is(html.ds2, html.ds2-fields) .input-search-button:hover {
    color: var(--brand-text); }

:is(html.ds2, html.ds2-fields) :is(.dynInput, .dynDropDown) {
  overflow: visible; }

:is(html.ds2, html.ds2-fields) :is(.dynInput, .dynDropDown) :is(input.form-control, select.form-control, select) {
  height: var(--field-h);
  padding: var(--sp-5) var(--sp-3) var(--sp-1); }

:is(html.ds2, html.ds2-fields) :is(.ct-toolbar, .ct-filters, #topbar-actions) :is(.dynInput, .dynDropDown) :is(input.form-control, select.form-control, select) {
  height: var(--control-h);
  min-height: var(--control-h);
  padding: 0 var(--sp-3);
  border-color: var(--control-line); }
:is(html.ds2, html.ds2-fields) :is(.ct-toolbar, .ct-filters, #topbar-actions) :is(.dynInput, .dynDropDown) label {
  transform: none;
  font-size: var(--fs-md); }

:is(html.ds2, html.ds2-fields) :is(.ct-toolbar, .ct-filters, #topbar-actions) .dynInput :is(input, select):not(:placeholder-shown) + label,
:is(html.ds2, html.ds2-fields) :is(.ct-toolbar, .ct-filters, #topbar-actions) .dynInput input:is([type="date"], [type="number"]) + label,
:is(html.ds2, html.ds2-fields) :is(.ct-toolbar, .ct-filters, #topbar-actions) .dynDropDown label {
  clip-path: inset(50%);
  width: 1px;
  height: 1px;
  overflow: hidden;
  white-space: nowrap; }

:is(html.ds2, html.ds2-fields) :is(.dynInput, .dynDropDown) label {
  margin-left: var(--sp-3);
  max-width: calc(100% - var(--sp-6));
  overflow: hidden;
  text-overflow: ellipsis;
  color: var(--text-3);
  pointer-events: none; }

:is(html.ds2, html.ds2-fields) .dynInput :is(input, select, textarea):is(:focus, :not(:placeholder-shown)) + label,
:is(html.ds2, html.ds2-fields) .dynInput input:is([type="date"], [type="number"]) + label,
:is(html.ds2, html.ds2-fields) .dynDropDown label {
  color: var(--text-2); }

:is(html.ds2, html.ds2-fields) :is(.dynInput, .dynDropDown):where(:not(:is(.ct-toolbar, .ct-filters, #topbar-actions) *)):has(> label:not(.styled-checkbox)):has(> :is(input, select, textarea, div.form-control)) {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas: "label" "field";
  align-content: end;
  align-items: start;
  overflow: visible;
  white-space: normal; }
  :is(html.ds2, html.ds2-fields) :is(.dynInput, .dynDropDown):where(:not(:is(.ct-toolbar, .ct-filters, #topbar-actions) *)):has(> label:not(.styled-checkbox)):has(> :is(input, select, textarea, div.form-control)) > label:not(.styled-checkbox) {
    grid-area: label;
    display: block;
    position: static;
    float: none;
    transform: none;
    transition: none;
    margin: 0 0 var(--field-label-gap);
    padding: 0;
    max-width: none;
    font-size: var(--fs-sm);
    line-height: var(--lh-sm);
    font-weight: var(--fw-semibold);
    color: var(--field-label-color) !important;
    text-align: left;
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    overflow-wrap: anywhere;
    cursor: default;
    pointer-events: auto;
    user-select: auto; }
    :is(html.ds2, html.ds2-fields) :is(.dynInput, .dynDropDown):where(:not(:is(.ct-toolbar, .ct-filters, #topbar-actions) *)):has(> label:not(.styled-checkbox)):has(> :is(input, select, textarea, div.form-control)) > label:not(.styled-checkbox) .st-Opt {
      margin-left: var(--sp-1);
      font-weight: var(--fw-regular);
      color: var(--text-3); }
    :is(html.ds2, html.ds2-fields) :is(.dynInput, .dynDropDown):where(:not(:is(.ct-toolbar, .ct-filters, #topbar-actions) *)):has(> label:not(.styled-checkbox)):has(> :is(input, select, textarea, div.form-control)) > label:not(.styled-checkbox) .ds-info {
      margin-left: var(--sp-1);
      vertical-align: baseline; }
  :is(html.ds2, html.ds2-fields) :is(.dynInput, .dynDropDown):where(:not(:is(.ct-toolbar, .ct-filters, #topbar-actions) *)):has(> label:not(.styled-checkbox)):has(> :is(input, select, textarea, div.form-control)) > :is(input, select, textarea, div.form-control) {
    grid-area: field; }
  :is(html.ds2, html.ds2-fields) :is(.dynInput, .dynDropDown):where(:not(:is(.ct-toolbar, .ct-filters, #topbar-actions) *)):has(> label:not(.styled-checkbox)):has(> :is(input, select, textarea, div.form-control)) > :is(input.form-control, select.form-control, select):not([multiple], [size]) {
    height: var(--control-h);
    min-height: var(--control-h);
    padding-top: 0;
    padding-bottom: 0;
    padding-left: var(--sp-3); }
  :is(html.ds2, html.ds2-fields) :is(.dynInput, .dynDropDown):where(:not(:is(.ct-toolbar, .ct-filters, #topbar-actions) *)):has(> label:not(.styled-checkbox)):has(> :is(input, select, textarea, div.form-control)) > textarea.form-control {
    padding: var(--sp-2) var(--sp-3); }
  :is(html.ds2, html.ds2-fields) :is(.dynInput, .dynDropDown):where(:not(:is(.ct-toolbar, .ct-filters, #topbar-actions) *)):has(> label:not(.styled-checkbox)):has(> :is(input, select, textarea, div.form-control)) > textarea.form-control[style*="padding-top"] {
    padding-top: var(--sp-2) !important; }
  :is(html.ds2, html.ds2-fields) :is(.dynInput, .dynDropDown):where(:not(:is(.ct-toolbar, .ct-filters, #topbar-actions) *)):has(> label:not(.styled-checkbox)):has(> :is(input, select, textarea, div.form-control)) > :is(.input-search-button, .selectbox, .barcode, .barcodeVariable, .refreshBarcode, [style*="position:absolute"], [style*="position: absolute"]) {
    grid-area: field; }
  :is(html.ds2, html.ds2-fields) :is(.dynInput, .dynDropDown):where(:not(:is(.ct-toolbar, .ct-filters, #topbar-actions) *)):has(> label:not(.styled-checkbox)):has(> :is(input, select, textarea, div.form-control)) > .selectbox {
    top: 100%; }

:is(html.ds2, html.ds2-fields) :is(.dynInput, .dynDropDown):where(:not(:is(.ct-toolbar, .ct-filters, #topbar-actions) *)):has(> label:not(.styled-checkbox)):has(> :is(input, select, textarea, div.form-control)).row::before,
:is(html.ds2, html.ds2-fields) :is(.dynInput, .dynDropDown):where(:not(:is(.ct-toolbar, .ct-filters, #topbar-actions) *)):has(> label:not(.styled-checkbox)):has(> :is(input, select, textarea, div.form-control)).row::after {
  display: none; }

:is(html.ds2, html.ds2-fields) :is(.dynInput, .dynDropDown):where(:not(:is(.ct-toolbar, .ct-filters, #topbar-actions) *)):has(> label:not(.styled-checkbox)):has(> :is(input, select, textarea, div.form-control)):has(> .input-search-button) > input.form-control {
  padding-right: var(--control-h); }

:is(html.ds2, html.ds2-fields) :is(div, fieldset):is(.row, [class*="grid-"], .d-flex, .d-grid, [style*="flex"], [style*="grid"], [class*="-line"], [class*="-row"]):not(.flex-column, [style*="column"], .ct-toolbar, .ct-filters, :is(.ct-toolbar, .ct-filters, #topbar-actions) *):has(> :is(.dynInput, .dynDropDown) > label:not(.styled-checkbox)) {
  align-items: end; }

:is(html.ds2, html.ds2-fields) :is(div, fieldset):is(.row, [class*="grid-"], .d-flex, .d-grid, [style*="flex"], [style*="grid"], [class*="-line"], [class*="-row"]):not(.flex-column, [style*="column"], .ct-toolbar, .ct-filters, :is(.ct-toolbar, .ct-filters, #topbar-actions) *):has(> :is(.dynInput, .dynDropDown) > label:not(.styled-checkbox)) > label.styled-checkbox {
  align-self: end;
  min-height: var(--control-h); }

:is(html.ds2, html.ds2-fields) :is(div, fieldset):is(.row, [class*="grid-"], .d-flex, .d-grid, [style*="flex"], [style*="grid"], [class*="-line"], [class*="-row"]):not(.flex-column, [style*="column"], .ct-toolbar, .ct-filters, :is(.ct-toolbar, .ct-filters, #topbar-actions) *):has(> :is(.dynInput, .dynDropDown) > label:not(.styled-checkbox)) > div:not(.dynInput, .dynDropDown, :empty):not(:has(div, p, ul, ol, table, label, .btn, input:not([type="hidden"]), select, textarea)) {
  align-self: end;
  margin-bottom: calc((var(--control-h) - var(--lh-md)) / 2); }

html.ds2 .article-picker:has(> .dynInput > label) {
  align-items: flex-end; }
  html.ds2 .article-picker:has(> .dynInput > label) > .ap-browse-link {
    bottom: 0;
    height: var(--control-h);
    display: inline-flex;
    align-items: center;
    padding-top: 0;
    padding-bottom: 0; }

html.ds2 :is(.infos_content:not(.search-input-container > *, :has(table)), .ds-card:not(:has(table)), .article_bloc) :is(div, fieldset):not(.infos_content, .ds-card, .article_bloc, .ct-toolbar, .ct-filters):has(> :is(.dynInput, .dynDropDown)):not(:has(table)),
html.ds2 :is(.infos_content:not(.search-input-container > *, :has(table)), .ds-card:not(:has(table)), .article_bloc) :is(.dynInput, .dynDropDown) {
  max-width: var(--form-max); }

html.ds2 :is(input[type="checkbox"], input[type="radio"]) {
  accent-color: var(--brand-solid); }

html.ds2 .styled-checkbox .checkmark {
  background-color: var(--surface);
  border-color: var(--field-line);
  transition: background-color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease); }

html.ds2 .styled-checkbox:hover input:not(:disabled) ~ .checkmark {
  border-color: var(--n-500); }

html.ds2 .styled-checkbox input:checked ~ .checkmark {
  background-color: var(--brand-solid);
  border-color: var(--brand-solid); }

html.ds2 .styled-checkbox .checkmark:after {
  border-color: var(--on-brand); }

html.ds2 .styled-checkbox-partial .checkmark:after {
  background-color: var(--on-brand); }

html.ds2 .styled-checkbox input[type="radio"]:checked ~ .checkmark {
  background-color: var(--surface);
  border-color: var(--brand-solid); }

html.ds2 .styled-checkbox input[type="radio"] ~ .checkmark:after {
  background-color: var(--brand-solid); }

html.ds2 .styled-checkbox input:focus-visible ~ .checkmark {
  box-shadow: var(--focus-ring); }

html.ds2 :is(.styled-checkbox input:disabled ~ .checkmark, .checkmark.disabled) {
  background-color: var(--surface-sunk);
  border-color: var(--line-strong); }

html.ds2 .styled-checkbox input:disabled ~ .checkbox-text {
  color: var(--text-3); }

html.ds2 .btn {
  min-height: var(--control-h);
  padding: 0 var(--sp-4);
  border: 1px solid transparent;
  border-radius: var(--r-sm);
  font-weight: var(--fw-semibold);
  line-height: var(--lh-md);
  gap: var(--sp-2);
  transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease), box-shadow var(--dur) var(--ease); }

html.ds2 .btn:is(:hover, :focus, :active) {
  filter: none;
  opacity: 1; }

html.ds2 .btn-primary,
html.ds2 .btn-light.hightlight,
html.ds2 .hightlight.btn-default {
  background: var(--brand-solid);
  border-color: var(--brand-solid); }

html.ds2 :is(.btn-primary, .btn-light.hightlight):not(.shop-frontend *) {
  color: var(--on-brand) !important; }

html.ds2 :is(.btn-primary, .btn-light.hightlight):hover:not(:disabled, .disabled) {
  background: var(--brand-solid-hover);
  border-color: var(--brand-solid-hover); }

html.ds2 :is(.btn-light, .btn-default):not(.hightlight) {
  background: var(--surface);
  border-color: var(--line-strong);
  color: var(--text);
  box-shadow: var(--sh-xs); }

html.ds2 :is(.btn-light, .btn-default):not(.hightlight):hover:not(:disabled, .disabled) {
  background: var(--page-bg);
  border-color: var(--n-300); }

html.ds2 .btn-ghost {
  background: transparent;
  border-color: transparent;
  color: var(--text-2); }

html.ds2 .btn-ghost:hover:not(:disabled, .disabled):not(.shop-frontend *) {
  background: var(--surface-sunk);
  border-color: transparent !important;
  color: var(--text) !important; }

html.ds2 .btn-danger {
  background: var(--danger-solid);
  border-color: var(--danger-solid);
  color: var(--n-0); }

html.ds2 .btn-danger:hover:not(:disabled, .disabled) {
  background: var(--danger-fg);
  border-color: var(--danger-fg); }

html.ds2 .btn:is(:disabled, .disabled) {
  background: var(--surface-sunk);
  border-color: var(--line);
  color: var(--text-3) !important;
  box-shadow: none;
  opacity: 1;
  cursor: not-allowed; }

html.ds2 .btn.is-loading {
  cursor: progress; }

html.ds2 .btn .lds-ring {
  margin-right: 0; }

html.ds2 .btn:is(.btn-sm, .btn-xs) {
  min-height: calc(var(--control-h) - var(--sp-2));
  padding: 0 var(--sp-3);
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
  gap: var(--sp-1); }

html.ds2 :is(.delete, .delete a, .link-danger) {
  color: var(--danger-fg); }

html.ds2 :is(.delete, .delete a, .link-danger):hover {
  color: var(--danger-fg);
  text-decoration: underline; }

html.ds2 .link {
  color: var(--brand-text); }
  html.ds2 .link:hover {
    opacity: 1;
    text-decoration: underline; }

html.ds2 .vignetteImage .vignetteImage_content {
  background-color: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--r-md); }

html.ds2 #add_new_image.vignetteImage {
  background-color: var(--surface);
  border: 1px dashed var(--line-strong);
  border-radius: var(--r-md);
  color: var(--text-2);
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
  font-weight: var(--fw-semibold);
  cursor: pointer;
  transition: border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease); }
  html.ds2 #add_new_image.vignetteImage i {
    margin-bottom: var(--sp-2);
    color: var(--text-3); }
  html.ds2 #add_new_image.vignetteImage:hover {
    border-color: var(--brand-500);
    color: var(--brand-text); }
    html.ds2 #add_new_image.vignetteImage:hover i {
      color: var(--brand-500); }

html.ds2 .vignetteImage .delete-image {
  top: var(--sp-2);
  right: var(--sp-2);
  width: var(--sp-6);
  height: var(--sp-6);
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--img-action-bg);
  color: var(--text-2);
  border-radius: var(--r-full);
  box-shadow: var(--sh-xs);
  font-size: var(--fs-md);
  line-height: 1;
  opacity: 0;
  transition: opacity var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease); }
  html.ds2 .vignetteImage .delete-image span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    opacity: 1; }
  html.ds2 .vignetteImage .delete-image:hover {
    color: var(--danger-fg); }
    html.ds2 .vignetteImage .delete-image:hover span {
      opacity: 1; }

html.ds2 .vignetteImage:is(:hover, :focus-within) .delete-image {
  opacity: 1; }

@media (hover: none) {
  html.ds2 .vignetteImage .delete-image {
    opacity: 1; } }
html.ds2 .infos_content:has(> .article_create_menu) {
  border: 0;
  border-radius: 0;
  background-color: transparent;
  padding: 0; }

html.ds2 .infos_content:has(> .article_create_menu) > .select-menu-hor-container {
  margin: 0 0 var(--sp-6) !important;
  padding: 0;
  width: auto;
  border-radius: 0;
  box-shadow: inset 0 -1px 0 var(--line), calc(-1 * var(--page-pad-x)) 0 0 var(--surface), var(--page-pad-x) 0 0 var(--surface); }

html.ds2 .infos_content:has(> .article_create_menu) .article_bloc > hr,
html.ds2 .infos_content:has(> .article_create_menu) .article_bloc > * > hr {
  margin: var(--sp-6) 0;
  border-top-color: var(--line); }

html.ds2 .infos_content:has(> .article_create_menu) .article_bloc :is(.infos_content, .ds-card) {
  border: 0;
  border-top: 1px solid var(--line);
  border-radius: 0;
  background-color: transparent;
  box-shadow: none;
  padding: var(--sp-6) 0 0 !important;
  margin-top: var(--sp-6) !important; }

html.ds2 :is(.tarif_wrap, .artcomp_wrap, .spec_wrap) {
  background-color: var(--group-bg);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: var(--sp-4) !important;
  margin: 0 0 var(--sp-3) !important; }

html.ds2 :is(.tarif_wrap, .artcomp_wrap, .spec_wrap):last-child {
  margin-bottom: 0 !important; }

html.ds2 :has(> :is(.tarif_wrap, .artcomp_wrap, .spec_wrap):last-child) + * {
  margin-top: var(--sp-3); }

html.ds2 :is(.tarif_wrap, .artcomp_wrap, .spec_wrap, .four_wrap, .formule_wrap) :is(div, span, a, button):has(> :is(.fa-trash, .fa-trash-can, .fa-trash-alt)) {
  display: inline-flex !important;
  flex: none;
  align-items: center;
  justify-content: center;
  align-self: flex-end;
  width: var(--sp-8) !important;
  height: var(--sp-8) !important;
  min-width: 0;
  margin: 0 0 calc((var(--control-h) - var(--sp-8)) / 2) var(--sp-2);
  padding: 0 !important;
  border-radius: var(--r-sm);
  color: var(--text-3) !important;
  text-decoration: none;
  cursor: pointer;
  transition: background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease); }
  html.ds2 :is(.tarif_wrap, .artcomp_wrap, .spec_wrap, .four_wrap, .formule_wrap) :is(div, span, a, button):has(> :is(.fa-trash, .fa-trash-can, .fa-trash-alt)):hover, html.ds2 :is(.tarif_wrap, .artcomp_wrap, .spec_wrap, .four_wrap, .formule_wrap) :is(div, span, a, button):has(> :is(.fa-trash, .fa-trash-can, .fa-trash-alt)):focus-visible {
    background-color: var(--danger-bg);
    color: var(--danger-fg) !important; }
  html.ds2 :is(.tarif_wrap, .artcomp_wrap, .spec_wrap, .four_wrap, .formule_wrap) :is(div, span, a, button):has(> :is(.fa-trash, .fa-trash-can, .fa-trash-alt)) > :is(.fa-trash, .fa-trash-can, .fa-trash-alt) {
    color: inherit !important;
    font-size: var(--fs-lg) !important; }

html.ds2 .extras-item div:has(> :is(a, span, button) > :is(.fa-trash, .fa-trash-can, .fa-trash-alt)) {
  align-self: flex-end;
  display: flex; }

html.ds2 .mvt-line-delete {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--sp-8);
  height: var(--sp-8);
  padding: 0;
  border-radius: var(--r-sm);
  color: var(--text-3);
  font-size: var(--fs-lg);
  transition: background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease); }
  html.ds2 .mvt-line-delete:hover, html.ds2 .mvt-line-delete:focus-visible {
    background-color: var(--danger-bg);
    color: var(--danger-fg); }
  html.ds2 .mvt-line-delete:focus-visible {
    outline: none;
    box-shadow: var(--focus-ring); }

html.ds2 .extras-item .fa-ellipsis-v {
  align-self: flex-end;
  display: inline-flex;
  align-items: center;
  height: var(--control-h); }

html.ds2 .dynInput > div:has(> input.tarifTypeText) {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas: "label" "field";
  position: relative; }
  html.ds2 .dynInput > div:has(> input.tarifTypeText) > input.form-control {
    grid-area: field;
    height: var(--control-h);
    min-height: var(--control-h);
    padding: 0 var(--control-h) 0 var(--sp-3); }
  html.ds2 .dynInput > div:has(> input.tarifTypeText) > label {
    grid-area: label;
    position: static;
    float: none;
    max-width: none;
    margin: 0 0 var(--field-label-gap);
    transform: none !important;
    font-size: var(--fs-sm) !important;
    line-height: var(--lh-sm);
    font-weight: var(--fw-semibold);
    color: var(--field-label-color) !important; }
  html.ds2 .dynInput > div:has(> input.tarifTypeText) > .input-search-button {
    grid-area: field; }

html.ds2 .dynInput > .typeCustomerGroupBox {
  top: 100% !important; }

html.ds2 .position-relative > div:has(> #changeVatTypeTarif-container) {
  --pill-h: calc(var(--control-h) - 3 * var(--sp-1));
  top: auto !important;
  right: calc((var(--control-h) - var(--pill-h)) / 2) !important;
  bottom: calc((var(--control-h) - var(--pill-h)) / 2);
  display: inline-flex;
  align-items: center;
  height: var(--pill-h);
  padding: 0 var(--sp-2) !important;
  border-radius: var(--r-sm) !important; }

html.ds2 :is(.ds-card-title, .ct-kpi-label:not([class*="kpi"] .ct-kpi-label)) > .st-Obl {
  display: none; }

html.ds2 #topbar-actions .btn .fa-trash {
  color: var(--text-2) !important; }

html.ds2 #topbar-actions .btn:is(:hover, :focus-visible) .fa-trash {
  color: var(--danger-fg) !important; }

html.ds2 :is(.prm-nav-group, .prm-cards-group, .ch-rail-h) {
  font-size: var(--fs-label);
  line-height: var(--lh-label);
  font-weight: var(--fw-semibold);
  letter-spacing: normal;
  text-transform: none;
  color: var(--text-3); }

html.ds2 .ch-app {
  background: var(--surface); }

html.ds2 .ch-cmd {
  border: 2px solid transparent;
  background: linear-gradient(var(--surface), var(--surface)) padding-box, var(--ai-edge) border-box;
  box-shadow: none; }
  html.ds2 .ch-cmd:focus-within {
    box-shadow: var(--focus-ring); }

html.ds2 :focus-visible {
  outline: none;
  box-shadow: var(--focus-ring); }

html.ds2 :is(#kba-q, #ch-q, #tb-ask-input, .cmdk-input):focus-visible {
  box-shadow: none; }

@media (forced-colors: active) {
  html.ds2 :focus-visible {
    outline-style: auto; } }
@media (max-width: 1279px) {
  html.ds2 {
    --page-pad-x: var(--sp-6); } }
@media (max-width: 639px) {
  html.ds2 {
    --page-pad-x: var(--sp-4);
    --page-pad-y: var(--sp-4); } }
@media (max-width: 1279px) {
  html.ds2.ds2-compact {
    --page-pad-x: var(--sp-5); } }
@media (max-width: 639px) {
  html.ds2.ds2-compact {
    --page-pad-x: var(--sp-3);
    --page-pad-y: var(--sp-3); } }
html.ds2.layout-panel {
  --page-pad-x: var(--sp-4);
  --page-pad-y: var(--sp-4); }

html.ds2.ds2-compact .ct-root .ct-toolbar:not(:has(.dynInput, .dynDropDown)) {
  --ct-bar-h: var(--toolbar-h); }

html.ds2 .sidebar.dark-selected-blue {
  background: var(--shell-bg);
  border-right: 0;
  color: var(--text-2);
  font-family: var(--font-ui); }
html.ds2 .sidebar-header {
  position: relative;
  padding: var(--sp-3) var(--sp-2);
  border-bottom: 0; }
  html.ds2 .sidebar-header::after {
    content: '';
    position: absolute;
    left: calc(var(--sp-2) + var(--sp-3));
    right: calc(var(--sp-2) + var(--sp-3));
    bottom: 0;
    height: 1px;
    background: var(--line); }
html.ds2 .sidebar-header .companyname {
  height: auto;
  min-height: var(--sp-12);
  max-width: none;
  padding-top: var(--sp-1);
  padding-bottom: var(--sp-1);
  border-radius: var(--r-md);
  color: var(--title);
  font-size: var(--fs-md);
  line-height: var(--lh-sm);
  font-weight: var(--fw-semibold);
  transition: background var(--dur-fast) var(--ease); }
  html.ds2 .sidebar-header .companyname:hover {
    background: var(--shell-hover); }
  html.ds2 .sidebar-header .companyname > span:last-child {
    color: var(--text-3); }
html.ds2 .sidebar-header .inst-logo {
  box-shadow: inset 0 0 0 1px var(--line); }
html.ds2 #SelectedInstitutionForCurrentUserText {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap; }
html.ds2 .sidebar-nav {
  padding: var(--sp-2) var(--sp-2) var(--sp-3); }
html.ds2 .nav-section {
  padding: var(--sp-4) var(--sp-3) var(--sp-1);
  font-size: var(--fs-label);
  line-height: var(--lh-label);
  font-weight: var(--fw-semibold);
  letter-spacing: normal;
  text-transform: none;
  color: var(--text-3); }
html.ds2 .nav-divider {
  height: 1px;
  margin: var(--sp-2) var(--sp-3);
  background: var(--line); }
html.ds2 .nav-item {
  min-height: var(--nav-item-h);
  gap: var(--sp-3);
  padding: var(--sp-1) var(--sp-3);
  border-radius: var(--r-sm);
  color: var(--text-2);
  font-size: var(--fs-md);
  line-height: var(--lh-md);
  font-weight: var(--fw-semibold);
  transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease); }
  html.ds2 .nav-item:hover {
    background: var(--shell-hover);
    color: var(--text); }
  html.ds2 .nav-item:focus-visible {
    outline: none;
    box-shadow: var(--focus-ring); }
  html.ds2 .nav-item.open {
    color: var(--text); }
  html.ds2 .nav-item.open .nav-icon {
    color: var(--text-2); }
  html.ds2 .nav-item.active {
    background: var(--shell-active);
    box-shadow: var(--sh-shell-active);
    color: var(--brand-text); }
  html.ds2 .nav-item.active .nav-icon {
    color: var(--brand-500); }
  html.ds2 .nav-item[data-subnav].active.open {
    background: transparent;
    box-shadow: none;
    color: var(--title); }
  html.ds2 .nav-item[data-subnav].active.open .nav-icon {
    color: var(--text-2); }
html.ds2 .nav-label {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis; }
html.ds2 .nav-icon {
  width: var(--sp-4);
  height: var(--sp-4);
  color: var(--n-500);
  opacity: 1;
  transition: color var(--dur-fast) var(--ease); }
html.ds2 .nav-item:hover .nav-icon {
  color: var(--text-2); }
html.ds2 .nav-item.active:hover .nav-icon {
  color: var(--brand-500); }
html.ds2 .nav-chevron {
  color: var(--text-3);
  opacity: 1;
  font-size: var(--fs-lg);
  line-height: var(--lh-xs);
  transition: transform var(--dur) var(--ease); }
html.ds2 .nav-item.open .nav-chevron {
  opacity: 1; }
html.ds2 .nav-group.is-promoted > .nav-item {
  color: var(--text); }
html.ds2 .nav-group.is-promoted > .nav-item.active {
  color: var(--brand-text); }
html.ds2 .subnav {
  position: relative; }
html.ds2 .subnav.open {
  max-height: calc(var(--nav-item-h) * 14); }
html.ds2 .subnav::before {
  content: '';
  position: absolute;
  top: var(--sp-1);
  bottom: var(--sp-1);
  left: calc(var(--sp-3) + var(--sp-2));
  width: 1px;
  background: var(--line); }
html.ds2 .subnav-item {
  min-height: var(--nav-item-h);
  gap: var(--sp-2);
  padding: var(--sp-1) var(--sp-3) var(--sp-1) calc(var(--sp-3) + var(--sp-4) + var(--sp-3));
  border-radius: var(--r-sm);
  color: var(--text-2);
  font-size: var(--fs-md);
  line-height: var(--lh-md);
  font-weight: var(--fw-regular);
  transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease); }
  html.ds2 .subnav-item::before {
    display: none; }
  html.ds2 .subnav-item:hover {
    background: var(--shell-hover);
    color: var(--text); }
  html.ds2 .subnav-item:focus-visible {
    outline: none;
    box-shadow: var(--focus-ring); }
  html.ds2 .subnav-item.active {
    background: var(--shell-active);
    box-shadow: var(--sh-shell-active);
    color: var(--brand-text);
    font-weight: var(--fw-semibold); }
  html.ds2 .subnav-item.primary-item {
    color: var(--text); }
html.ds2 .nav-badge {
  margin-left: auto;
  min-width: var(--sp-5);
  padding: 0 var(--sp-1);
  border-radius: var(--r-full);
  background: var(--text);
  color: var(--n-0);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  font-weight: var(--fw-semibold);
  font-variant-numeric: tabular-nums; }
html.ds2 .subnav-badge {
  margin-left: auto;
  min-width: var(--sp-5);
  padding: 0 var(--sp-1);
  border-radius: var(--r-full);
  background: var(--n-150);
  color: var(--text);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  font-weight: var(--fw-semibold);
  text-align: center;
  font-variant-numeric: tabular-nums; }
html.ds2 .nav-badge.is-urgent,
html.ds2 .subnav-badge.is-urgent {
  background: var(--danger-solid);
  color: var(--n-0); }
html.ds2 .subnav-tag,
html.ds2 .nav-read {
  color: var(--text-3);
  opacity: 1;
  font-size: var(--fs-xs); }
html.ds2 .nav-door {
  position: relative;
  margin-top: var(--sp-4);
  padding-top: var(--sp-1);
  border-top: 0;
  color: var(--text-2); }
  html.ds2 .nav-door::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: calc(-1 * var(--sp-2));
    height: 1px;
    background: var(--line); }
  html.ds2 .nav-door.open {
    background: var(--shell-hover);
    color: var(--text); }
html.ds2 .nav-door-count {
  min-width: var(--sp-5);
  padding: 0 var(--sp-1);
  border-radius: var(--r-full);
  background: var(--shell-hover);
  color: var(--text-2);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  font-weight: var(--fw-semibold);
  text-align: center; }
html.ds2 .nav-launch {
  margin: var(--sp-1) 0 var(--sp-3);
  padding: var(--sp-3);
  border-radius: var(--r-md);
  background: transparent;
  border: 1px solid var(--line);
  transition: background var(--dur-fast) var(--ease); }
  html.ds2 .nav-launch:hover {
    background: var(--shell-hover); }
  html.ds2 .nav-launch:focus-visible {
    outline: none;
    box-shadow: var(--focus-ring); }
html.ds2 .nav-launch-title {
  color: var(--title);
  font-size: var(--fs-md);
  line-height: var(--lh-md);
  font-weight: var(--fw-semibold); }
html.ds2 .nav-launch-count {
  color: var(--text-2);
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  font-variant-numeric: tabular-nums; }
html.ds2 .nav-launch-bar {
  height: var(--sp-1);
  margin: var(--sp-2) 0;
  border-radius: var(--r-full);
  background: var(--n-150); }
html.ds2 .nav-launch-bar i {
  height: var(--sp-1);
  border-radius: var(--r-full);
  background: var(--brand-500); }
html.ds2 .nav-launch-next {
  color: var(--text);
  font-size: var(--fs-sm);
  line-height: var(--lh-sm); }
html.ds2 .nav-lock {
  color: var(--text-3);
  border: 1px solid var(--line-strong);
  border-radius: var(--r-full);
  padding: 0 var(--sp-2);
  font-size: var(--fs-xs); }
html.ds2 .sidebar-footer {
  padding: var(--sp-2) var(--sp-3);
  border-top: 1px solid var(--line); }
html.ds2 .help-btn {
  gap: var(--sp-2);
  padding: var(--sp-1);
  color: var(--text-2);
  font-size: var(--fs-md);
  font-weight: var(--fw-semibold); }

html.ds2 .sidebar .nav-section {
  position: relative;
  height: var(--sp-3);
  min-height: 0;
  padding: 0;
  margin: 0;
  overflow: hidden;
  color: transparent;
  font-size: 0;
  visibility: visible; }
  html.ds2 .sidebar .nav-section::before {
    content: '';
    position: absolute;
    left: var(--sp-3);
    right: var(--sp-3);
    top: calc(50% - 0.5px);
    height: 1px;
    background: var(--line); }

html.ds2 .sidebar .nav-divider + .nav-section {
  height: 0; }

html.ds2 .sidebar .nav-divider {
  margin: calc((var(--sp-3) - 1px) / 2) var(--sp-3); }

@media (min-width: 768px) {
  html.ds2 body.nav-rail .sidebar:hover,
  html.ds2 body.nav-rail .sidebar:focus-within {
    box-shadow: 1px 0 0 var(--line); }

  html.ds2 body.nav-rail:not(.nav-panel-open) .sidebar:not(:hover) .nav-badge {
    top: calc((var(--nav-item-h) - var(--sp-8)) / 2 - 2px);
    left: auto;
    right: calc(100% - (var(--sp-3) + var(--sp-2) + var(--sp-8) / 2 + 2px));
    min-width: var(--sp-4);
    padding: 0 var(--sp-1);
    font-size: var(--fs-xs);
    line-height: var(--lh-xs);
    white-space: nowrap;
    box-shadow: 0 0 0 2px var(--shell-bg); }

  html.ds2 body.nav-rail:not(.nav-panel-open) .sidebar:not(:hover) .subnav::before {
    display: none; }

  html.ds2 body.nav-rail:not(.nav-panel-open) .sidebar:not(:hover) .nav-icon {
    color: var(--text-2); }

  html.ds2 body.nav-rail:not(.nav-panel-open) .sidebar:not(:hover) .nav-item[data-subnav].active {
    background: var(--shell-active);
    box-shadow: var(--sh-shell-active); }
    html.ds2 body.nav-rail:not(.nav-panel-open) .sidebar:not(:hover) .nav-item[data-subnav].active .nav-icon {
      color: var(--brand-500); }

  html.ds2 body.nav-rail:not(.nav-panel-open) .sidebar:not(:hover) .nav-section {
    position: relative;
    height: var(--sp-3);
    min-height: 0;
    padding: 0;
    margin: 0;
    overflow: hidden; }
    html.ds2 body.nav-rail:not(.nav-panel-open) .sidebar:not(:hover) .nav-section::before {
      content: '';
      visibility: visible;
      position: absolute;
      left: var(--sp-3);
      right: var(--sp-3);
      top: calc(50% - 0.5px);
      height: 1px;
      background: var(--line); }

  html.ds2 body.nav-rail:not(.nav-panel-open) .sidebar:not(:hover) .nav-divider + .nav-section {
    height: 0; }

  html.ds2 body.nav-rail:not(.nav-panel-open) .sidebar:not(:hover) .nav-divider {
    margin: calc((var(--sp-3) - 1px) / 2) var(--sp-3); } }
@media (max-width: 767px) {
  html.ds2 .sidebar.dark-selected-blue {
    background: transparent;
    border-right: 0; }

  html.ds2 .sidebar::before {
    background: var(--shell-bg); }

  html.ds2 body.sidebar-open .sidebar {
    box-shadow: var(--sh-lg); } }
@media (min-width: 768px) {
  html.ds2:not(.layout-panel) body.nav-pinned .sidebar {
    position: fixed;
    left: 0;
    top: var(--nav-top, 0px);
    height: calc(100vh - var(--nav-top, 0px));
    z-index: 1200; }

  html.ds2:not(.layout-panel) body.nav-pinned #main_view {
    margin-left: var(--sidebar-width); }

  html.ds2 body.nav-pinned .nav-item,
  html.ds2 body.nav-pinned .subnav-item {
    white-space: nowrap; }

  html.ds2 body.nav-pinned .sidebar-nav {
    overflow-x: hidden; }

  html.ds2:not(.layout-panel) body.nav-pinned #sidebar-toggle .fa-bars::before {
    content: "\f33e"; }

  html.ds2 body.nav-anim .sidebar {
    transition: width var(--dur) var(--ease); }

  html.ds2 body.nav-anim #main_view {
    transition: margin-left var(--dur) var(--ease); } }
@media (prefers-reduced-motion: reduce) {
  html.ds2 body.nav-anim .sidebar,
  html.ds2 body.nav-anim #main_view {
    transition: none; } }
html.ds2 .nav-modules {
  border-right: 1px solid var(--line);
  box-shadow: var(--sh-lg);
  font-family: var(--font-ui); }
html.ds2 .nav-modules-head {
  gap: var(--sp-2);
  padding: var(--sp-4) var(--sp-4) var(--sp-3); }
html.ds2 .nav-modules-title {
  color: var(--title);
  font-size: var(--fs-lg);
  line-height: var(--lh-lg);
  font-weight: var(--fw-bold); }
html.ds2 .nav-modules-close {
  width: var(--control-h);
  height: var(--control-h);
  padding: 0;
  border-radius: var(--r-sm);
  color: var(--text-3);
  font-size: var(--fs-2xl); }
  html.ds2 .nav-modules-close:hover {
    background: var(--n-100);
    color: var(--title); }
  html.ds2 .nav-modules-close:focus-visible {
    outline: none;
    box-shadow: var(--focus-ring); }
html.ds2 .nav-modules-search {
  width: calc(100% - 2 * var(--sp-4));
  height: var(--control-h);
  margin: 0 var(--sp-4) var(--sp-3);
  padding: 0 var(--sp-3);
  border: 1px solid var(--field-line);
  border-radius: var(--r-sm);
  background: var(--surface);
  color: var(--text);
  font-size: var(--fs-md); }
  html.ds2 .nav-modules-search::placeholder {
    color: var(--text-3); }
  html.ds2 .nav-modules-search:focus {
    border-color: var(--brand-500);
    box-shadow: var(--focus-ring);
    background: var(--surface); }
html.ds2 .nav-modules-body {
  padding: 0 var(--sp-2) var(--sp-3); }
html.ds2 .nav-modules-section {
  margin-bottom: var(--sp-3); }
html.ds2 .nav-modules-section-title {
  gap: var(--sp-2);
  padding: var(--sp-3) var(--sp-2) var(--sp-1);
  color: var(--text-3);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  font-weight: var(--fw-semibold);
  letter-spacing: normal;
  text-transform: none; }
html.ds2 .nav-modules-section.is-pinned .nav-modules-section-title {
  color: var(--text-2); }
html.ds2 .nav-modules-section.is-pinned .nav-modules-pin {
  color: var(--brand-text); }
html.ds2 .nav-modules-row,
html.ds2 a.nav-modules-row,
html.ds2 a.nav-modules-row:hover {
  color: var(--text); }
html.ds2 .nav-modules-row {
  min-height: var(--nav-item-h);
  gap: var(--sp-2);
  padding: var(--sp-1) var(--sp-2);
  border-radius: var(--r-sm);
  font-size: var(--fs-md);
  line-height: var(--lh-md);
  transition: background var(--dur-fast) var(--ease); }
  html.ds2 .nav-modules-row:hover {
    background: var(--n-100); }
  html.ds2 .nav-modules-row:focus-visible {
    outline: none;
    box-shadow: var(--focus-ring); }
  html.ds2 .nav-modules-row.is-locked {
    color: var(--text-3); }
  html.ds2 .nav-modules-row.is-locked .nav-lock {
    color: var(--text-3);
    border-color: var(--line-strong); }
html.ds2 .nav-modules-pin {
  padding: var(--sp-1);
  border-radius: var(--r-sm);
  color: var(--text-3);
  font-size: var(--fs-sm); }
  html.ds2 .nav-modules-pin:hover {
    background: var(--brand-50);
    color: var(--brand-text); }
html.ds2 .nav-modules-empty {
  padding: var(--sp-4) var(--sp-3);
  color: var(--text-3);
  font-size: var(--fs-md); }
html.ds2 .nav-modules-foot {
  padding: var(--sp-3) var(--sp-4);
  border-top: 1px solid var(--line);
  color: var(--text-3);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs); }
html.ds2 .nav-meter {
  margin: var(--sp-1) var(--sp-2) var(--sp-4);
  padding: var(--sp-3);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  background: var(--n-25); }
html.ds2 .nav-meter-plan {
  gap: var(--sp-2);
  margin-bottom: var(--sp-2); }
html.ds2 .nav-meter-plan-name {
  color: var(--title);
  font-size: var(--fs-md);
  font-weight: var(--fw-semibold); }
html.ds2 .nav-meter-plan-sub {
  color: var(--text-3);
  font-size: var(--fs-xs); }
html.ds2 .nav-meter-row {
  gap: var(--sp-2);
  color: var(--text-2);
  font-size: var(--fs-sm); }
html.ds2 .nav-meter-value {
  color: var(--title);
  font-weight: var(--fw-semibold); }
html.ds2 .nav-meter-bar {
  height: var(--sp-1);
  margin: var(--sp-1) 0 var(--sp-2);
  border-radius: var(--r-full);
  background: var(--n-150); }
html.ds2 .nav-meter-bar i {
  border-radius: var(--r-full);
  background: var(--brand-500); }
html.ds2 .nav-meter-bar.is-warn i {
  background: var(--warn-solid); }
html.ds2 .nav-meter-bar.is-danger i {
  background: var(--danger-solid); }
html.ds2 .nav-meter-cta {
  margin-top: var(--sp-2);
  padding: var(--sp-2) var(--sp-3);
  border-radius: var(--r-sm);
  background: var(--brand-solid);
  color: var(--on-brand);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold); }
  html.ds2 .nav-meter-cta:hover {
    background: var(--brand-solid-hover);
    color: var(--on-brand); }

html.ds2 .topbar {
  min-height: var(--topbar-h);
  padding-top: 0;
  padding-bottom: 0;
  padding-left: var(--page-pad-x);
  padding-right: calc(var(--canvas-gap) + var(--page-pad-x));
  gap: var(--sp-4);
  border-bottom: 0;
  font-family: var(--font-ui);
  z-index: var(--z-topbar); }
  html.ds2 .topbar::before {
    background: var(--shell-bg); }
html.ds2 .topbar-left {
  gap: var(--sp-2);
  min-width: 0; }
html.ds2 .topbar-logo:empty {
  display: none; }
html.ds2 .sidebar-toggle {
  width: var(--control-h);
  height: var(--control-h);
  margin-left: calc(-1 * var(--sp-2));
  padding: 0;
  border-radius: var(--r-sm);
  color: var(--text-2);
  font-size: var(--fs-xl); }
  html.ds2 .sidebar-toggle:hover {
    background: var(--shell-hover);
    color: var(--text); }
  html.ds2 .sidebar-toggle:focus-visible {
    outline: none;
    box-shadow: var(--focus-ring); }
html.ds2 .topbar .breadcrumb {
  gap: var(--sp-2);
  padding: 0;
  margin: 0;
  background: transparent;
  border-radius: 0;
  font-size: var(--fs-md);
  line-height: var(--lh-md);
  flex-wrap: nowrap;
  white-space: nowrap;
  min-width: 0;
  overflow: hidden; }
  html.ds2 .topbar .breadcrumb > .tb-link,
  html.ds2 .topbar .breadcrumb > .tb-rubric,
  html.ds2 .topbar .breadcrumb > .tb-current {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis; }
  html.ds2 .topbar .breadcrumb > .tb-link,
  html.ds2 .topbar .breadcrumb > .tb-rubric {
    flex-shrink: 100; }
  html.ds2 .topbar .breadcrumb > .tb-current {
    flex-shrink: 1; }
  html.ds2 .topbar .breadcrumb > .tb-sep,
  html.ds2 .topbar .breadcrumb > .tb-badge {
    flex-shrink: 0; }
html.ds2 .tb-link {
  color: var(--text-2);
  border-radius: var(--r-sm);
  transition: color var(--dur-fast) var(--ease); }
  html.ds2 .tb-link:hover {
    color: var(--title);
    text-decoration: none; }
  html.ds2 .tb-link:focus-visible {
    outline: none;
    box-shadow: var(--focus-ring); }
html.ds2 .tb-sep {
  color: var(--text-3);
  font-size: var(--fs-md); }
html.ds2 .tb-current {
  color: var(--text);
  font-weight: var(--fw-semibold); }
html.ds2 .tb-rubric {
  color: var(--text-2); }
html.ds2:has([data-ds2-page-head]) #topbar-breadcrumb:has(.tb-link, .tb-rubric) .tb-current,
html.ds2:has([data-ds2-page-head]) #topbar-breadcrumb:has(.tb-link, .tb-rubric) .tb-current + .tb-badge,
html.ds2:has([data-ds2-page-head]) #topbar-breadcrumb:has(.tb-link, .tb-rubric) .tb-sep:has(+ .tb-current) {
  display: none; }
html.ds2 #topbar-actions {
  gap: var(--sp-2);
  min-height: var(--control-h);
  align-items: center;
  margin-left: auto; }
html.ds2 #topbar-actions > .btn:is(.tb-icon-only, .tb-more) {
  width: var(--control-h);
  min-width: var(--control-h);
  padding: 0;
  justify-content: center;
  background: transparent;
  border-color: transparent;
  box-shadow: none;
  color: var(--text-2); }
  html.ds2 #topbar-actions > .btn:is(.tb-icon-only, .tb-more):hover:not(:disabled, .disabled) {
    background: var(--shell-hover);
    border-color: transparent !important;
    color: var(--text) !important; }
html.ds2 #tb-ask[hidden] {
  display: flex; }
html.ds2 #tb-ask {
  flex: 0 1 var(--ask-w);
  min-width: calc(var(--ask-w) * .6);
  align-items: center; }
html.ds2 .tb-ask-field {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  width: 100%;
  height: var(--control-h);
  padding: 0 var(--sp-2) 0 var(--sp-3);
  border: 1px solid var(--control-line);
  border-radius: var(--r-sm);
  background: var(--surface);
  cursor: text;
  transition: box-shadow var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease); }
  html.ds2 .tb-ask-field:hover, html.ds2 .tb-ask-field:focus-within {
    border-color: transparent;
    background: linear-gradient(var(--surface), var(--surface)) padding-box, var(--ai-edge) border-box; }
  html.ds2 .tb-ask-field:focus-within {
    box-shadow: var(--focus-ring); }
html.ds2 .tb-ask-logo {
  flex: 0 0 auto;
  display: inline-block;
  width: var(--sp-4);
  height: var(--sp-4);
  background: var(--brand-500);
  -webkit-mask: url("/Content/Images/gillia-logo-short.svg") center/contain no-repeat;
  mask: url("/Content/Images/gillia-logo-short.svg") center/contain no-repeat; }
html.ds2 .tb-ask-input {
  flex: 1 1 auto;
  min-width: 0;
  height: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--text);
  font-family: inherit;
  font-size: var(--fs-md);
  line-height: var(--lh-md);
  box-shadow: none;
  cursor: pointer; }
  html.ds2 .tb-ask-input::placeholder {
    color: var(--text-3);
    opacity: 1; }
  html.ds2 .tb-ask-input:focus {
    outline: none;
    box-shadow: none;
    cursor: text; }
html.ds2 .tb-ask-kbd {
  flex: 0 0 auto;
  padding: 0 var(--sp-1);
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  background: transparent;
  color: var(--text-3);
  font-family: inherit;
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  font-weight: var(--fw-semibold);
  white-space: nowrap;
  box-shadow: none; }
html.ds2 .tb-ask-icon {
  display: none;
  align-items: center;
  justify-content: center;
  width: var(--control-h);
  height: var(--control-h);
  padding: 0;
  border: 1px solid var(--control-line);
  border-radius: var(--r-sm);
  background: var(--surface);
  cursor: pointer; }
  html.ds2 .tb-ask-icon:hover, html.ds2 .tb-ask-icon:focus-visible {
    border-color: transparent;
    background: linear-gradient(var(--surface), var(--surface)) padding-box, var(--ai-edge) border-box; }
  html.ds2 .tb-ask-icon:focus-visible {
    outline: none;
    box-shadow: var(--focus-ring); }
html.ds2 #topbar-actions .tb-label {
  white-space: nowrap; }
html.ds2 #topbar-actions > .btn {
  min-width: 0;
  max-width: 22em; }
  html.ds2 #topbar-actions > .btn .tb-label {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis; }
html.ds2 .topbar-right {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  min-width: 0;
  margin-left: auto; }

html:not(.ds2) #tb-user {
  display: none; }

html.ds2 #tb-user {
  display: flex;
  align-items: center;
  gap: var(--sp-1);
  flex: 0 0 auto; }
html.ds2 .tb-pop-anchor {
  position: relative; }
html.ds2 .tb-icon-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--control-h);
  height: var(--control-h);
  padding: 0;
  border: 0;
  border-radius: var(--r-sm);
  background: transparent;
  color: var(--text-2);
  font-size: var(--fs-lg);
  cursor: pointer;
  transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease); }
  html.ds2 .tb-icon-btn:hover {
    background: var(--shell-hover);
    color: var(--text); }
  html.ds2 .tb-icon-btn:focus-visible {
    outline: none;
    box-shadow: var(--focus-ring); }
  html.ds2 .tb-icon-btn[aria-expanded="true"] {
    background: var(--shell-active);
    box-shadow: var(--sh-shell-active);
    color: var(--text); }
html.ds2 .tb-bell-count {
  position: absolute;
  top: 4px;
  right: 3px;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: var(--r-full);
  background: var(--danger-solid);
  box-shadow: 0 0 0 2px var(--shell-bg);
  color: var(--on-brand);
  font-size: 1rem;
  line-height: 16px;
  font-weight: var(--fw-bold);
  text-align: center;
  pointer-events: none; }
html.ds2 .tb-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: var(--r-full);
  background: var(--n-150);
  color: var(--title);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  letter-spacing: .02em;
  flex: 0 0 auto; }
html.ds2 .tb-avatar-lg {
  width: 40px;
  height: 40px;
  font-size: var(--fs-sm); }
html.ds2 .tb-pop {
  position: absolute;
  top: calc(100% + var(--sp-2));
  right: 0;
  z-index: 3000;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  box-shadow: var(--sh-md);
  color: var(--text);
  font-family: var(--font-ui);
  text-align: left; }
html.ds2 .tb-pop[hidden] {
  display: none; }
html.ds2 .tb-account-menu {
  width: 30rem;
  padding: var(--sp-1); }
html.ds2 .tb-acc-id {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  padding: var(--sp-3); }
html.ds2 .tb-acc-id-text {
  min-width: 0; }
html.ds2 .tb-acc-name {
  color: var(--title);
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  line-height: var(--lh-md);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap; }
html.ds2 .tb-acc-mail,
html.ds2 .tb-acc-role {
  font-size: var(--fs-sm);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap; }
html.ds2 .tb-acc-mail {
  color: var(--text-3); }
html.ds2 .tb-acc-role {
  color: var(--text-2); }
html.ds2 .tb-acc-sep {
  height: 1px;
  margin: var(--sp-1) 0;
  background: var(--line); }
html.ds2 .tb-acc-label {
  padding: var(--sp-2) var(--sp-3) var(--sp-1);
  color: var(--text-3);
  font-size: var(--fs-label);
  font-weight: var(--fw-semibold); }
html.ds2 .tb-acc-form {
  margin: 0; }
html.ds2 .tb-acc-item {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  width: 100%;
  height: var(--nav-item-h);
  padding: 0 var(--sp-3);
  border: 0;
  border-radius: var(--r-sm);
  background: transparent;
  color: var(--text);
  font-family: inherit;
  font-size: var(--fs-md);
  text-align: left;
  cursor: pointer; }
  html.ds2 .tb-acc-item i {
    width: 20px;
    color: var(--text-2);
    font-size: 1.6rem;
    text-align: center; }
  html.ds2 .tb-acc-item:hover {
    background: var(--n-100); }
  html.ds2 .tb-acc-item:focus-visible {
    outline: none;
    box-shadow: inset var(--focus-ring); }
html.ds2 .tb-acc-pref {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-3);
  min-height: var(--nav-item-h);
  padding: var(--sp-1) var(--sp-3); }
html.ds2 .tb-acc-pref-label {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-1);
  margin: 0;
  color: var(--text);
  font-size: var(--fs-md);
  font-weight: normal; }
  html.ds2 .tb-acc-pref-label .ds-info {
    color: var(--text-3); }
html.ds2 .tb-seg {
  display: inline-flex;
  padding: 2px;
  border-radius: var(--r-sm);
  background: var(--surface-sunk); }
html.ds2 .tb-seg-opt {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  height: 28px;
  padding: 0 var(--sp-2);
  border: 0;
  border-radius: calc(var(--r-sm) - 2px);
  background: transparent;
  color: var(--text-2);
  font-family: inherit;
  font-size: var(--fs-sm);
  cursor: pointer; }
  html.ds2 .tb-seg-opt i {
    font-size: 1.4rem; }
  html.ds2 .tb-seg-opt:hover {
    color: var(--text); }
  html.ds2 .tb-seg-opt:focus-visible {
    outline: none;
    box-shadow: var(--focus-ring); }
  html.ds2 .tb-seg-opt.is-current {
    background: var(--surface);
    box-shadow: var(--sh-xs);
    color: var(--title);
    font-weight: var(--fw-semibold); }
html.ds2 .tb-lang {
  height: 28px;
  padding: 0 var(--sp-6) 0 var(--sp-2);
  border: 1px solid var(--control-line);
  border-radius: var(--r-sm);
  background-color: var(--surface);
  color: var(--text);
  font-family: inherit;
  font-size: var(--fs-sm);
  cursor: pointer; }
  html.ds2 .tb-lang:focus-visible {
    outline: none;
    box-shadow: var(--focus-ring); }
html.ds2 .tb-notif-panel {
  width: 36rem;
  display: flex;
  flex-direction: column;
  max-height: min(48rem, calc(100dvh - var(--topbar-h) - var(--sp-6))); }
html.ds2 .tb-pop-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 48px;
  padding: 0 var(--sp-4);
  border-bottom: 1px solid var(--line); }
html.ds2 .tb-pop-title {
  color: var(--title);
  font-size: var(--fs-lg);
  font-weight: var(--fw-bold); }
html.ds2 .tb-notif-list {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  outline: none; }
  html.ds2 .tb-notif-list .notification {
    position: relative;
    padding: var(--sp-3) var(--sp-4) var(--sp-3) var(--sp-6);
    border-bottom: 1px solid var(--line);
    color: var(--text);
    font-size: var(--fs-md);
    line-height: var(--lh-md);
    cursor: pointer; }
    html.ds2 .tb-notif-list .notification:last-child {
      border-bottom: 0; }
    html.ds2 .tb-notif-list .notification:hover {
      background: var(--n-25); }
  html.ds2 .tb-notif-list .seenotification,
  html.ds2 .tb-notif-list .seenotification > div {
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    color: inherit;
    font-size: inherit; }
  html.ds2 .tb-notif-list .seenotification span {
    display: block;
    margin-top: 2px;
    color: var(--text-3);
    font-size: var(--fs-sm); }
  html.ds2 .tb-notif-list .newNotification {
    position: absolute;
    top: calc(var(--sp-3) + 8px);
    left: var(--sp-3);
    width: var(--dot);
    height: var(--dot);
    margin: 0;
    border-radius: var(--r-full);
    background: var(--brand-500); }
  html.ds2 .tb-notif-list .notification:has(.newNotification) .seenotification > div {
    font-weight: var(--fw-semibold); }
  html.ds2 .tb-notif-list .no-notification {
    padding: var(--sp-12) var(--sp-4);
    color: var(--text-2);
    font-size: var(--fs-md);
    text-align: center; }
    html.ds2 .tb-notif-list .no-notification::before {
      content: "\f0f3";
      display: block;
      margin-bottom: var(--sp-3);
      color: var(--n-300);
      font-family: "Font Awesome 6 Pro";
      font-weight: 300;
      font-size: var(--icon-xl); }
html.ds2 .tb-notif-loading {
  display: flex;
  justify-content: center;
  padding: var(--sp-3); }
html.ds2 .tb-notif-loading[hidden] {
  display: none; }
html.ds2 .sidebar #notificationNumberBag {
  display: none; }
html.ds2 #menu_navbar_param_div.upop-desk > :not(.upop-inst) {
  display: none !important; }
html.ds2 .sidebar-header .companyname:focus-visible {
  outline: none;
  box-shadow: var(--focus-ring); }
html.ds2 .sidebar-header .companyname[aria-expanded="true"] {
  background: var(--shell-active);
  box-shadow: var(--sh-shell-active); }
html.ds2 .sidebar-header .inst-logo {
  width: 32px !important;
  height: 32px !important;
  border-radius: var(--r-sm) !important;
  flex: 0 0 auto; }
html.ds2 .sidebar-header .inst-logo-initials {
  font-size: var(--fs-xs); }
html.ds2 #SelectedInstitutionForCurrentUserText {
  font-weight: var(--fw-bold);
  line-height: var(--lh-sm); }
html.ds2 .brand-chevron-old {
  display: none; }
html.ds2 .brand-chevron-ds2 {
  width: auto !important;
  margin: 0 !important;
  font-size: 1.2rem; }
html.ds2 #menu_navbar_param_div.upop-desk {
  position: fixed;
  top: calc(var(--sp-3) + var(--sp-12) + var(--sp-2));
  left: var(--sp-2);
  right: auto;
  z-index: 3000;
  width: 30rem;
  max-width: calc(100vw - 2 * var(--sp-2));
  height: auto;
  max-height: 70vh;
  margin: 0 !important;
  padding: var(--sp-1);
  overflow-y: auto;
  transform: none;
  transition: none;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  background: var(--surface);
  box-shadow: var(--sh-md);
  font-family: var(--font-ui); }
  html.ds2 #menu_navbar_param_div.upop-desk::before, html.ds2 #menu_navbar_param_div.upop-desk::after {
    display: none; }
  html.ds2 #menu_navbar_param_div.upop-desk > .upop-inst:first-child {
    padding: var(--sp-2) var(--sp-3) var(--sp-1) !important; }
    html.ds2 #menu_navbar_param_div.upop-desk > .upop-inst:first-child b {
      margin: 0 !important;
      color: var(--text-3);
      font-size: var(--fs-label);
      font-weight: var(--fw-semibold); }
    html.ds2 #menu_navbar_param_div.upop-desk > .upop-inst:first-child .fa-times {
      display: none; }
  html.ds2 #menu_navbar_param_div.upop-desk .tri-box-selectedinstitution {
    margin: 0 !important; }
html.ds2 .brand-search {
  gap: var(--sp-2);
  height: 32px;
  margin: var(--sp-2) var(--sp-1);
  padding: 0 var(--sp-2);
  border: 1px solid var(--control-line);
  border-radius: var(--r-sm);
  background: transparent;
  color: var(--text-3); }
  html.ds2 .brand-search:focus-within {
    border-color: var(--brand-500);
    background: transparent; }
  html.ds2 .brand-search input,
  html.ds2 .brand-search input:focus,
  html.ds2 .brand-search input:hover {
    height: 30px;
    padding: 0;
    border: 0;
    outline: none;
    background: transparent !important;
    box-shadow: none !important;
    -webkit-appearance: none;
    appearance: none;
    font-family: inherit;
    font-size: var(--fs-md); }
    html.ds2 .brand-search input::placeholder,
    html.ds2 .brand-search input:focus::placeholder,
    html.ds2 .brand-search input:hover::placeholder {
      color: var(--text-3);
      opacity: 1; }
html.ds2 .brand-search-empty {
  padding: var(--sp-3);
  color: var(--text-2);
  font-size: var(--fs-md); }
html.ds2 .brand-opt[hidden] {
  display: none; }
html.ds2 .brand-opt {
  border-radius: var(--r-sm);
  outline: none; }
  html.ds2 .brand-opt:hover .brand-opt-row {
    background: var(--n-100); }
  html.ds2 .brand-opt:focus-visible .brand-opt-row {
    box-shadow: inset var(--focus-ring); }
html.ds2 .selectedInstitutionThumbnail {
  position: relative;
  margin: 0;
  background: transparent !important; }
html.ds2 .brand-opt-row {
  gap: var(--sp-3);
  min-height: 40px;
  margin: 0;
  padding: var(--sp-1) var(--sp-8) var(--sp-1) var(--sp-2);
  border-top: 0;
  border-radius: var(--r-sm); }
html.ds2 .brand-logo {
  width: 24px;
  height: 24px;
  margin: 0;
  border-radius: var(--r-sm);
  box-shadow: inset 0 0 0 1px var(--line); }
html.ds2 .brand-logo-initials {
  background: var(--n-150);
  box-shadow: none;
  color: var(--text-2);
  font-size: 1rem;
  font-weight: var(--fw-bold); }
html.ds2 .brand-text {
  padding-right: 0;
  line-height: var(--lh-sm); }
html.ds2 .brand-name {
  overflow: hidden;
  color: var(--text);
  font-size: var(--fs-md);
  text-overflow: ellipsis;
  white-space: nowrap; }
html.ds2 .brand-detail {
  overflow: hidden;
  color: var(--text-3);
  font-size: var(--fs-sm);
  text-overflow: ellipsis;
  white-space: nowrap; }
html.ds2 .currentSelectedInstitution .brand-name {
  font-weight: var(--fw-semibold);
  color: var(--title); }
html.ds2 .brand-check {
  top: 50%;
  right: var(--sp-3);
  width: auto !important;
  transform: translateY(-50%);
  color: var(--brand-text);
  font-size: 1.4rem; }
html.ds2 .brand-loading {
  top: 50%;
  right: var(--sp-3);
  transform: translateY(-50%); }

html:not(.ds2) .brand-chevron-ds2 {
  display: none; }

html.ds2.layout-panel .tb-bell-wrap {
  display: none; }

@media (max-width: 767px) {
  html.ds2 .tb-pop {
    position: fixed;
    top: auto;
    right: 0;
    bottom: 0;
    left: 0;
    width: auto;
    max-height: 85dvh;
    overflow-y: auto;
    border-radius: var(--r-md) var(--r-md) 0 0;
    padding-bottom: env(safe-area-inset-bottom, 0px);
    box-shadow: 0 0 0 100vmax var(--overlay); }

  html.ds2.tb-pop-open #kba-launcher {
    display: none; } }
html.ds2:has(#ch-app) #tb-ask,
html.ds2.layout-panel #tb-ask {
  display: none; }

@media (min-width: 1024px) {
  html.ds2:not(.layout-panel):not(:has(#ch-app)) .topbar:has(> #tb-ask:not([hidden])) {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(calc(var(--ask-w) * .6), var(--ask-w)) minmax(max-content, 1fr);
    grid-template-areas: "left ask actions";
    align-items: center; }
    html.ds2:not(.layout-panel):not(:has(#ch-app)) .topbar:has(> #tb-ask:not([hidden])) > .topbar-left {
      grid-area: left;
      min-width: 0; }
    html.ds2:not(.layout-panel):not(:has(#ch-app)) .topbar:has(> #tb-ask:not([hidden])) > #tb-ask {
      grid-area: ask;
      width: 100%;
      min-width: 0; }
    html.ds2:not(.layout-panel):not(:has(#ch-app)) .topbar:has(> #tb-ask:not([hidden])) > .topbar-right {
      grid-area: actions;
      justify-self: end; } }
@media (min-width: 1024px) {
  html.ds2:not(.layout-panel):not(:has(#ch-app)):has(#tb-ask:not([hidden])) #kba-launcher {
    display: none; }

  html.ds2:not(.layout-panel):not(:has(#ch-app)):has(#kba-insight-dot) .tb-ask-field {
    position: relative; }
    html.ds2:not(.layout-panel):not(:has(#ch-app)):has(#kba-insight-dot) .tb-ask-field::after {
      content: '';
      position: absolute;
      top: calc(-1 * var(--dot) / 2);
      right: calc(-1 * var(--dot) / 2);
      width: calc(var(--dot) + var(--sp-1));
      height: calc(var(--dot) + var(--sp-1));
      border-radius: var(--r-full);
      background: var(--danger-solid);
      box-shadow: 0 0 0 2px var(--shell-bg); } }
@media (max-width: 1023px) {
  html.ds2 #tb-ask {
    flex: 0 0 auto;
    min-width: 0; }

  html.ds2 .tb-ask-field {
    display: none; }

  html.ds2 .tb-ask-icon {
    display: inline-flex; } }
@media (max-width: 767px) {
  html.ds2 #topbar-actions > .btn:not(.btn-primary):has(i) {
    width: var(--control-h);
    min-width: var(--control-h);
    padding: 0;
    justify-content: center;
    background: transparent;
    border-color: transparent;
    box-shadow: none;
    color: var(--text-2); }

  html.ds2 #topbar-actions > .btn-primary:has(i) {
    font-size: var(--fs-md);
    gap: var(--sp-2); } }
@media (max-width: 639px) {
  html.ds2 #topbar-actions > .btn-primary:has(i) {
    width: var(--control-h);
    min-width: var(--control-h);
    padding: 0;
    justify-content: center;
    font-size: 0;
    gap: 0; } }
@media (max-width: 767px) {
  html.ds2 .topbar {
    min-height: calc(var(--topbar-h) + env(safe-area-inset-top, 0px));
    padding: env(safe-area-inset-top, 0px) var(--page-pad-x) 0 !important;
    gap: var(--sp-2); }

  html.ds2 .sidebar-toggle {
    margin-left: calc(-1 * var(--sp-2));
    padding: 0;
    width: var(--control-h); } }
html.ds2.layout-panel .topbar {
  min-height: 0;
  padding: var(--sp-2) var(--page-pad-x);
  border-bottom: 1px solid var(--line); }
  html.ds2.layout-panel .topbar::before {
    background: var(--surface); }

html.ds2 .ds2-page-head {
  display: flex;
  flex-direction: column;
  gap: var(--sp-1);
  margin: 0 0 var(--rhythm-title);
  min-width: 0; }
html.ds2 .ds2-page-title {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-ui);
  font-size: var(--fs-page-title);
  line-height: var(--lh-page-title);
  font-weight: var(--fw-extrabold);
  letter-spacing: var(--ls-tight);
  overflow-wrap: anywhere; }
html.ds2 .ds2-page-subtitle {
  margin: 0;
  max-width: var(--form-max);
  color: var(--text-2);
  font-size: var(--fs-md);
  line-height: var(--lh-md); }

@media (max-width: 639px) {
  html.ds2 .ds2-page-head {
    margin-bottom: var(--sp-4); }

  html.ds2 .ds2-page-title {
    font-size: var(--fs-2xl);
    line-height: var(--lh-2xl); } }
html.ds2.layout-panel .ds2-page-head {
  margin-bottom: var(--sp-4); }

html.ds2.layout-panel .ds2-page-title {
  font-size: var(--fs-xl);
  line-height: var(--lh-xl); }

html.ds2:has(#main_view.desk),
html.ds2 body:has(#main_view.desk) {
  background-color: var(--shell-bg); }

html.ds2 #main_canvas {
  display: flex;
  flex-direction: column;
  align-items: center;
  align-self: stretch;
  flex: 1 0 auto;
  min-height: calc(100dvh - var(--topbar-h) - var(--canvas-gap));
  position: relative;
  min-width: 0;
  margin: 0 var(--canvas-gap) var(--canvas-gap);
  background: var(--surface);
  border-radius: var(--r-canvas);
  box-shadow: var(--sh-canvas); }
  html.ds2 #main_canvas.is-full-bleed {
    overflow: clip; }

html.ds2 #main_canvas::before {
  content: '';
  position: sticky;
  top: calc(var(--topbar-h) + env(safe-area-inset-top, 0px));
  z-index: var(--z-canvas-corner);
  align-self: stretch;
  flex: none;
  height: var(--r-canvas);
  margin-bottom: calc(-1 * var(--r-canvas));
  pointer-events: none;
  background: radial-gradient(circle var(--r-canvas) at 100% 100%, transparent calc(100% - 1px), var(--canvas-edge) 100%, var(--canvas-edge) calc(100% + 1px), var(--shell-bg) calc(100% + 2px)) left top/var(--r-canvas) var(--r-canvas) no-repeat, radial-gradient(circle var(--r-canvas) at 0 100%, transparent calc(100% - 1px), var(--canvas-edge) 100%, var(--canvas-edge) calc(100% + 1px), var(--shell-bg) calc(100% + 2px)) right top/var(--r-canvas) var(--r-canvas) no-repeat; }

html.ds2.layout-panel #main_canvas::before {
  content: none; }

html.ds2 #main_canvas > #nprogress {
  position: sticky;
  top: calc(var(--topbar-h) + env(safe-area-inset-top, 0px));
  z-index: calc(var(--z-canvas-corner) + 1);
  align-self: stretch;
  flex: none;
  width: auto;
  height: var(--r-canvas);
  margin: 0 0 calc(-1 * var(--r-canvas));
  overflow: hidden;
  border-radius: var(--r-canvas) var(--r-canvas) 0 0;
  background: transparent !important;
  transform: none !important;
  transition: opacity .3s ease !important; }
  html.ds2 #main_canvas > #nprogress::before {
    content: '';
    display: block;
    height: 3px;
    background: var(--np-color, var(--brand-500));
    transform-origin: left center;
    transform: scaleX(var(--np, 0));
    transition: transform .2s ease-out; }

html.ds2.layout-panel #main_canvas > #nprogress {
  border-radius: 0; }

@media (min-width: 768px) {
  html.ds2 .content:has(> .sidebar) #main_canvas {
    margin-left: 0; } }
@media (max-width: 767px) {
  html.ds2 #main_canvas {
    margin: 0;
    border-radius: var(--r-canvas) var(--r-canvas) 0 0; } }
html.ds2 #main_canvas:has(#ch-app) {
  margin-bottom: 0;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0; }

html.ds2.layout-panel #main_canvas {
  margin: 0;
  border-radius: 0;
  box-shadow: none; }

html.ds2.layout-panel:has(#main_view.desk),
html.ds2.layout-panel body:has(#main_view.desk) {
  background-color: var(--surface); }

:where(html.ds2) #main_content {
  max-width: var(--content-fluid);
  width: 100%;
  margin-top: var(--page-pad-y);
  margin-bottom: var(--sp-12);
  padding-left: var(--page-pad-x);
  padding-right: var(--page-pad-x); }

@media (max-width: 767px) {
  :where(html.ds2) #main_content {
    margin-bottom: 0; } }
@keyframes ds2-page-in {
  from {
    opacity: 0;
    transform: translateY(var(--sp-1)); }
  to {
    opacity: 1;
    transform: none; } }
:where(html.ds2 #main_content) > * {
  animation: ds2-page-in var(--dur) var(--ease) backwards; }

@media (prefers-reduced-motion: reduce) {
  :where(html.ds2 #main_content) > * {
    animation: none; } }
@media (min-width: 1920px) {
  html.ds2 #main_canvas,
  html.ds2 .content:has(> .sidebar) #main_canvas {
    width: 100%;
    max-width: var(--canvas-max);
    margin-right: auto; }

  html.ds2 .topbar {
    padding-right: calc(max(var(--canvas-gap), 100% - var(--canvas-max)) + var(--page-pad-x)); } }
@media (min-width: 768px) and (max-width: 1023px) {
  :where(html.ds2 #main_canvas:not(.is-full-bleed)) > #main_content {
    padding-bottom: calc(var(--control-h) + var(--sp-6)); } }
@media (min-width: 1024px) {
  :where(html.ds2.layout-panel #main_canvas:not(.is-full-bleed)) > #main_content {
    padding-bottom: calc(var(--control-h) + var(--sp-6)); } }
@keyframes ds2-dot-pulse {
  0%, 80%, 100% {
    opacity: .3;
    transform: scale(0.8); }
  40% {
    opacity: 1;
    transform: none; } }
html.ds2 .lds-ring:not(.btn .lds-ring) {
  width: auto;
  height: auto;
  padding: var(--sp-1);
  line-height: 0;
  text-align: center; }
  html.ds2 .lds-ring:not(.btn .lds-ring) div {
    position: static;
    display: inline-block;
    width: var(--sp-2);
    height: var(--sp-2);
    margin: 0 calc(var(--sp-1) / 2);
    border: 0;
    border-radius: var(--r-full);
    background: var(--brand-500);
    animation: ds2-dot-pulse calc(var(--dur) * 7) var(--ease) infinite both; }
  html.ds2 .lds-ring:not(.btn .lds-ring) div:nth-child(1) {
    animation-delay: calc(var(--dur) * -2); }
  html.ds2 .lds-ring:not(.btn .lds-ring) div:nth-child(2) {
    animation-delay: calc(var(--dur) * -1); }
  html.ds2 .lds-ring:not(.btn .lds-ring) div:nth-child(n + 4) {
    display: none; }

@media (prefers-reduced-motion: reduce) {
  html.ds2 .lds-ring:not(.btn .lds-ring) div {
    animation: none;
    opacity: 1;
    transform: none; } }
@keyframes ds2-sig-draw {
  from {
    background-position: left center, left center;
    background-size: var(--sig-dot) var(--sig-dot), 0 var(--sig-line); }
  to {
    background-position: right center, left center;
    background-size: var(--sig-dot) var(--sig-dot), calc(100% - var(--sig-gap)) var(--sig-line); } }
@media (min-width: 901px) {
  html.ds2 .ct-table > tbody > tr > td {
    height: var(--row-h);
    padding: var(--sp-2) var(--sp-3);
    font-size: var(--fs-md);
    line-height: var(--lh-md);
    vertical-align: middle; }
  html.ds2 .ct-table > tbody > tr > td.ct-td-act {
    padding-top: 0;
    padding-bottom: 0; }
    html.ds2 .ct-table > tbody > tr > td.ct-td-act .ct-row-actions :is(button, .btn, a) {
      max-height: calc(var(--row-h) - var(--sp-2)); }
  html.ds2 .ct-table > tbody > tr > td.ct-td-cb,
  html.ds2 .ct-table > tbody > tr > td.ct-td-cb-group,
  html.ds2 .ct-table > thead > tr > th.ct-th-cb {
    padding: 0 var(--sp-1);
    text-align: center; }
  html.ds2 .ct-table > tbody > tr > :is(td.ct-td-cb, td.ct-td-image, td.ct-td-badge) {
    line-height: 0; }
    html.ds2 .ct-table > tbody > tr > :is(td.ct-td-cb, td.ct-td-image, td.ct-td-badge) > * {
      vertical-align: middle;
      line-height: var(--lh-sm); }
  html.ds2 .ct-table.ct-has-groups {
    --tree-w: 1px;
    --tree-c: var(--brand-200);
    --tree-x: calc(var(--sp-3) + var(--sp-4) - 1px); }
  html.ds2 .ct-table > tbody > tr.ct-group-parent.ct-group-open > td.ct-td-image {
    position: sticky; }
    html.ds2 .ct-table > tbody > tr.ct-group-parent.ct-group-open > td.ct-td-image::after {
      content: '';
      position: absolute;
      left: var(--tree-x);
      top: calc(50% + var(--sp-4));
      bottom: 0;
      width: var(--tree-w);
      background: var(--tree-c);
      pointer-events: none; }
  html.ds2 .ct-table > tbody > tr.ct-variant-row > td.ct-variant-connector::before {
    left: var(--tree-x);
    width: var(--tree-w);
    background: var(--tree-c);
    transform: none; }
  html.ds2 .ct-table > tbody > tr.ct-variant-row > td.ct-variant-connector::after {
    content: '';
    position: absolute;
    left: var(--tree-x);
    right: 0;
    top: 50%;
    height: var(--tree-w);
    background: var(--tree-c);
    pointer-events: none; }
  html.ds2 .ct-table > tbody > tr.ct-variant-row.ct-variant-last > td.ct-variant-connector::before {
    bottom: 50%; }
  html.ds2 .ct-table > tbody > tr.ct-variant-row .ct-variant-name-wrap {
    padding-left: var(--sp-4); }
    html.ds2 .ct-table > tbody > tr.ct-variant-row .ct-variant-name-wrap::before {
      left: calc(-1 * var(--sp-3));
      width: calc(var(--sp-3) + var(--sp-4) - var(--sp-2));
      height: var(--tree-w);
      background: var(--tree-c);
      transform: none; }
  html.ds2 .ct-table.ct-has-groups > tbody > tr > td.ct-td-cb,
  html.ds2 .ct-table.ct-has-groups > thead > tr > th.ct-th-cb {
    padding-left: var(--sp-3); }
  html.ds2 .ct-table > tbody > tr > td.ct-td-cb .ct-td-cb-group {
    position: relative;
    justify-content: center; }
    html.ds2 .ct-table > tbody > tr > td.ct-td-cb .ct-td-cb-group .ct-expand-btn {
      position: absolute;
      left: calc(-1 * var(--sp-3));
      top: 50%;
      width: var(--sp-3);
      min-width: 0;
      padding: 0;
      height: var(--sp-6);
      transform: translateY(-50%);
      border-radius: var(--r-sm); }
    html.ds2 .ct-table > tbody > tr > td.ct-td-cb .ct-td-cb-group .ct-expand-icon {
      font-size: var(--fs-xs); }
  html.ds2 .ct-table > tbody > tr > td.ct-td-num,
  html.ds2 .ct-table > thead > tr > th.ct-th-num {
    text-align: right; }
  html.ds2 .ct-table > tbody > tr > td.ct-empty {
    height: auto;
    padding: var(--sp-12) var(--sp-6);
    color: var(--text-2); }
  html.ds2 .ct-th {
    padding: var(--sp-3); }
  html.ds2 .ct-table.ct-no-lead > thead > tr > th:first-child,
  html.ds2 .ct-table.ct-no-lead > tbody > tr > td:first-child {
    padding-left: var(--sp-4); } }
@media (min-width: 768px) and (max-width: 900px) {
  html.ds2 .ct-root:not(.ct-cards) .ct-table > tbody > tr > td {
    height: var(--row-h);
    padding: var(--sp-2) var(--sp-3);
    font-size: var(--fs-md);
    line-height: var(--lh-md);
    vertical-align: middle; }
  html.ds2 .ct-root:not(.ct-cards) .ct-table > tbody > tr > td.ct-td-act {
    padding-top: 0;
    padding-bottom: 0; }
    html.ds2 .ct-root:not(.ct-cards) .ct-table > tbody > tr > td.ct-td-act .ct-row-actions :is(button, .btn, a) {
      max-height: calc(var(--row-h) - var(--sp-2)); }
  html.ds2 .ct-root:not(.ct-cards) .ct-table > tbody > tr > td.ct-td-cb,
  html.ds2 .ct-root:not(.ct-cards) .ct-table > tbody > tr > td.ct-td-cb-group,
  html.ds2 .ct-root:not(.ct-cards) .ct-table > thead > tr > th.ct-th-cb {
    padding: 0 var(--sp-1);
    text-align: center; }
  html.ds2 .ct-root:not(.ct-cards) .ct-table > tbody > tr > :is(td.ct-td-cb, td.ct-td-image, td.ct-td-badge) {
    line-height: 0; }
    html.ds2 .ct-root:not(.ct-cards) .ct-table > tbody > tr > :is(td.ct-td-cb, td.ct-td-image, td.ct-td-badge) > * {
      vertical-align: middle;
      line-height: var(--lh-sm); }
  html.ds2 .ct-root:not(.ct-cards) .ct-table.ct-has-groups {
    --tree-w: 1px;
    --tree-c: var(--brand-200);
    --tree-x: calc(var(--sp-3) + var(--sp-4) - 1px); }
  html.ds2 .ct-root:not(.ct-cards) .ct-table > tbody > tr.ct-group-parent.ct-group-open > td.ct-td-image {
    position: sticky; }
    html.ds2 .ct-root:not(.ct-cards) .ct-table > tbody > tr.ct-group-parent.ct-group-open > td.ct-td-image::after {
      content: '';
      position: absolute;
      left: var(--tree-x);
      top: calc(50% + var(--sp-4));
      bottom: 0;
      width: var(--tree-w);
      background: var(--tree-c);
      pointer-events: none; }
  html.ds2 .ct-root:not(.ct-cards) .ct-table > tbody > tr.ct-variant-row > td.ct-variant-connector::before {
    left: var(--tree-x);
    width: var(--tree-w);
    background: var(--tree-c);
    transform: none; }
  html.ds2 .ct-root:not(.ct-cards) .ct-table > tbody > tr.ct-variant-row > td.ct-variant-connector::after {
    content: '';
    position: absolute;
    left: var(--tree-x);
    right: 0;
    top: 50%;
    height: var(--tree-w);
    background: var(--tree-c);
    pointer-events: none; }
  html.ds2 .ct-root:not(.ct-cards) .ct-table > tbody > tr.ct-variant-row.ct-variant-last > td.ct-variant-connector::before {
    bottom: 50%; }
  html.ds2 .ct-root:not(.ct-cards) .ct-table > tbody > tr.ct-variant-row .ct-variant-name-wrap {
    padding-left: var(--sp-4); }
    html.ds2 .ct-root:not(.ct-cards) .ct-table > tbody > tr.ct-variant-row .ct-variant-name-wrap::before {
      left: calc(-1 * var(--sp-3));
      width: calc(var(--sp-3) + var(--sp-4) - var(--sp-2));
      height: var(--tree-w);
      background: var(--tree-c);
      transform: none; }
  html.ds2 .ct-root:not(.ct-cards) .ct-table.ct-has-groups > tbody > tr > td.ct-td-cb,
  html.ds2 .ct-root:not(.ct-cards) .ct-table.ct-has-groups > thead > tr > th.ct-th-cb {
    padding-left: var(--sp-3); }
  html.ds2 .ct-root:not(.ct-cards) .ct-table > tbody > tr > td.ct-td-cb .ct-td-cb-group {
    position: relative;
    justify-content: center; }
    html.ds2 .ct-root:not(.ct-cards) .ct-table > tbody > tr > td.ct-td-cb .ct-td-cb-group .ct-expand-btn {
      position: absolute;
      left: calc(-1 * var(--sp-3));
      top: 50%;
      width: var(--sp-3);
      min-width: 0;
      padding: 0;
      height: var(--sp-6);
      transform: translateY(-50%);
      border-radius: var(--r-sm); }
    html.ds2 .ct-root:not(.ct-cards) .ct-table > tbody > tr > td.ct-td-cb .ct-td-cb-group .ct-expand-icon {
      font-size: var(--fs-xs); }
  html.ds2 .ct-root:not(.ct-cards) .ct-table > tbody > tr > td.ct-td-num,
  html.ds2 .ct-root:not(.ct-cards) .ct-table > thead > tr > th.ct-th-num {
    text-align: right; }
  html.ds2 .ct-root:not(.ct-cards) .ct-table > tbody > tr > td.ct-empty {
    height: auto;
    padding: var(--sp-12) var(--sp-6);
    color: var(--text-2); }
  html.ds2 .ct-root:not(.ct-cards) .ct-th {
    padding: var(--sp-3); }
  html.ds2 .ct-root:not(.ct-cards) .ct-table.ct-no-lead > thead > tr > th:first-child,
  html.ds2 .ct-root:not(.ct-cards) .ct-table.ct-no-lead > tbody > tr > td:first-child {
    padding-left: var(--sp-4); } }
html.ds2 {
  --sk-color-base: var(--surface-sunk);
  --sk-color-highlight: var(--n-50);
  --doc-workbench-bg: var(--page-bg); }
  html.ds2 .ct-root {
    gap: var(--rhythm-block);
    color: var(--text); }
  html.ds2 .ct-table-wrap {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    box-shadow: none; }
  html.ds2 .ct-th,
  html.ds2 .ct-th-cb,
  html.ds2 .ct-th-act,
  html.ds2 .ct-th-expand,
  html.ds2 .ct-table-wrap th.ct-sticky {
    background: var(--surface);
    border-bottom: 1px solid var(--line);
    font-size: var(--fs-xs);
    line-height: var(--lh-xs);
    font-weight: var(--fw-semibold);
    color: var(--text-3);
    text-transform: none;
    letter-spacing: normal; }
  html.ds2 .ct-th-sorted {
    color: var(--text-3); }
  html.ds2 .ct-sortable:hover {
    color: var(--text-2); }
  html.ds2 .ct-sort-icon {
    font-size: var(--fs-xs);
    line-height: var(--lh-xs);
    color: var(--text-3);
    opacity: 0;
    margin: 0 var(--sp-1);
    transition: opacity var(--dur-fast) var(--ease); }
  html.ds2 .ct-sortable:hover .ct-sort-icon,
  html.ds2 .ct-sortable:focus-visible .ct-sort-icon,
  html.ds2 .ct-th-sorted .ct-sort-icon {
    opacity: 1; }
  html.ds2 .ct-th-sorted .ct-sort-icon {
    color: var(--brand-500); }
  html.ds2 .ccp-trigger-btn {
    width: var(--sp-8);
    height: var(--sp-8);
    margin: 0;
    border: 0;
    border-radius: var(--r-sm);
    background: transparent;
    color: var(--text-3); }
    html.ds2 .ccp-trigger-btn:hover {
      background: var(--n-100);
      color: var(--title); }
    html.ds2 .ccp-trigger-btn.active {
      background: var(--n-100);
      color: var(--title);
      border: 0; }
    html.ds2 .ccp-trigger-btn:focus-visible {
      outline: none;
      box-shadow: var(--focus-ring); }
  html.ds2 .ct-table > tbody > tr {
    border-bottom: 1px solid var(--line);
    background: var(--surface);
    --ct-row-bg: var(--surface); }
  html.ds2 .ct-table > tbody > tr:last-child {
    border-bottom: 0; }
  html.ds2 .ct-table > tbody > tr:hover {
    background: var(--n-25);
    --ct-row-bg: var(--n-25); }
  html.ds2 .ct-table > tbody > tr.ct-group-parent.ct-group-open,
  html.ds2 .ct-table > tbody > tr.ct-variant-row {
    background: var(--n-25);
    --ct-row-bg: var(--n-25); }
  html.ds2 .ct-table > tbody > tr.ct-variant-row:hover {
    background: var(--n-50);
    --ct-row-bg: var(--n-50); }
  html.ds2 .ct-table > tbody > tr:has(.ct-chk-row:checked),
  html.ds2 .ct-table > tbody > tr:has(.ct-chk-row:checked):hover {
    background: var(--brand-50);
    --ct-row-bg: var(--brand-50); }
  html.ds2 .ct-table > tbody > tr:has(> td.ct-empty),
  html.ds2 .ct-table > tbody > tr:has(> td.ct-empty):hover {
    background: var(--surface);
    cursor: default; }
  html.ds2 .ct-td-r,
  html.ds2 .ct-th-r {
    text-align: right;
    font-variant-numeric: tabular-nums; }
  html.ds2 .ct-mono,
  html.ds2 .ct-stock-ok,
  html.ds2 .ct-stock-low,
  html.ds2 .ct-stock-zero {
    font-family: inherit;
    font-variant-numeric: tabular-nums; }
  html.ds2 .ct-text,
  html.ds2 .ct-mono {
    color: var(--text-2); }
  html.ds2 .ct-table td {
    color: var(--text-2); }
  html.ds2 .ct-table td.ct-td-primary,
  html.ds2 .ct-table td.ct-td-primary .ct-text,
  html.ds2 .ct-table td.ct-td-primary .ct-mono,
  html.ds2 .ct-table td.ct-td-primary .ct-name {
    color: var(--title);
    font-weight: var(--fw-semibold); }
  html.ds2 .ct-table td.ct-td-num .ct-mono,
  html.ds2 .ct-table td.ct-td-num .ct-amount-pos,
  html.ds2 .ct-table td.ct-td-num .ct-amount-neg,
  html.ds2 .ct-table td.ct-td-num .ct-stock-ok,
  html.ds2 .ct-table td.ct-td-num .ct-stock-low,
  html.ds2 .ct-table td.ct-td-num .ct-stock-zero {
    font-weight: var(--fw-semibold);
    font-variant-numeric: tabular-nums; }
  html.ds2 .ct-name {
    font-weight: var(--fw-semibold);
    color: var(--title); }
  html.ds2 .ct-na,
  html.ds2 .ct-zero,
  html.ds2 .ct-table td .ct-zero,
  html.ds2 .ct-table td.ct-td-num .ct-mono.ct-zero,
  html.ds2 .ct-table td.ct-td-primary .ct-zero {
    color: var(--text-3);
    font-style: normal;
    font-weight: var(--fw-regular); }
  html.ds2 .ct-amount-neg {
    color: var(--danger-fg); }
  html.ds2 .ct-amount-pos {
    color: var(--ok-fg); }
  html.ds2 .ct-mono.ct-stock-neg,
  html.ds2 .ct-table td .ct-stock-neg {
    color: var(--danger-fg); }
  html.ds2 .ct-cents {
    color: var(--text-3);
    font-size: var(--fs-cents);
    font-weight: inherit;
    letter-spacing: normal; }
  html.ds2 .ct-table .ct-cents {
    color: var(--text-2);
    font-size: inherit; }
  html.ds2 .ct-amount-neg .ct-cents,
  html.ds2 .ct-table .ct-amount-neg .ct-cents {
    color: inherit; }
  html.ds2 .ct-table td.ct-td-num :is(.ct-mono, .ct-price-range, .ct-price-stack, .ct-price-promo, .ct-price-old) {
    background: transparent;
    border: 0;
    border-radius: 0;
    padding: 0;
    font-size: inherit; }
  html.ds2 .ct-img-thumb,
  html.ds2 .ct-img-placeholder {
    border: 1px solid var(--line);
    border-radius: var(--r-sm); }
  html.ds2 .ct-img-thumb {
    box-sizing: border-box;
    padding: calc(var(--sp-1) / 2);
    background: var(--n-25);
    object-fit: contain; }
  html.ds2 .ct-img-placeholder {
    background: var(--surface-sunk);
    color: var(--text-3); }
  html.ds2 .ct-expand-btn {
    border-radius: var(--r-sm);
    color: var(--text-3); }
    html.ds2 .ct-expand-btn:hover {
      background: var(--n-100);
      color: var(--title); }
  html.ds2 .ct-foot {
    background: var(--surface);
    border-top: 1px solid var(--line);
    color: var(--text-2);
    font-size: var(--fs-sm);
    line-height: var(--lh-sm);
    padding: var(--sp-2) var(--sp-4); }
  html.ds2 tfoot.ct-foot > tr > td,
  html.ds2 tfoot.ct-foot > tr > th {
    background: var(--surface);
    border-top: 1px solid var(--line-strong);
    color: var(--title);
    font-weight: var(--fw-semibold);
    font-variant-numeric: tabular-nums; }
  html.ds2 .ct-pagination {
    gap: var(--sp-1); }
  html.ds2 .ct-page-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: var(--sp-8);
    height: var(--sp-8);
    padding: 0 var(--sp-2);
    border: 1px solid var(--line-strong);
    border-radius: var(--r-sm);
    background: var(--surface);
    color: var(--text-2);
    font-family: inherit;
    font-size: var(--fs-sm);
    line-height: var(--lh-sm);
    font-variant-numeric: tabular-nums;
    transition: background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease); }
    html.ds2 .ct-page-btn:hover:not(.active):not(:disabled) {
      background: var(--n-100);
      color: var(--title); }
    html.ds2 .ct-page-btn.active {
      background: var(--brand-50);
      border-color: var(--brand-300);
      color: var(--brand-text);
      font-weight: var(--fw-semibold); }
    html.ds2 .ct-page-btn.ct-page-nav {
      font-size: var(--fs-md);
      line-height: var(--lh-md);
      padding: 0 var(--sp-2); }
    html.ds2 .ct-page-btn:focus-visible {
      outline: none;
      box-shadow: var(--focus-ring); }
  html.ds2 .ct-page-input {
    height: var(--sp-8);
    border: 1px solid var(--field-line);
    border-radius: var(--r-sm);
    background: var(--surface);
    color: var(--text);
    font-size: var(--fs-sm);
    line-height: var(--lh-sm); }
  html.ds2 .ct-page-total,
  html.ds2 .ct-page-ellipsis {
    font-size: var(--fs-sm);
    line-height: var(--lh-sm);
    color: var(--text-3); }
  html.ds2 .ct-toolbar,
  html.ds2 .ct-filters {
    gap: var(--sp-2); }
  html.ds2 .ct-toolbar-actions {
    gap: var(--sp-2); }
  html.ds2 .ct-search,
  html.ds2 .ct-fsel,
  html.ds2 .ct-toolbar-action,
  html.ds2 .ct-filters-toggle,
  html.ds2 .ct-bulk-toggle {
    height: var(--control-h);
    border-radius: var(--r-sm);
    font-family: inherit;
    font-size: var(--fs-md);
    line-height: var(--lh-md); }
  html.ds2 .ct-search,
  html.ds2 .ct-fsel {
    border: 1px solid var(--field-line);
    background-color: var(--surface);
    color: var(--text);
    transition: border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease); }
    html.ds2 .ct-search:focus,
    html.ds2 .ct-fsel:focus {
      border-color: var(--brand-500);
      box-shadow: var(--focus-ring); }
  html.ds2 .ct-search {
    padding: 0 var(--sp-3) 0 var(--sp-8); }
    html.ds2 .ct-search::placeholder {
      color: var(--text-3); }
  html.ds2 .ct-search-icon {
    left: var(--sp-3);
    color: var(--text-3); }
  html.ds2 .ct-search-kbd {
    position: absolute;
    top: 50%;
    right: var(--sp-2);
    transform: translateY(-50%);
    padding: 0 var(--sp-1);
    border: 1px solid var(--line);
    border-radius: var(--r-sm);
    background: transparent;
    color: var(--text-3);
    font-family: inherit;
    font-size: var(--fs-xs);
    line-height: var(--lh-xs);
    font-weight: var(--fw-semibold);
    white-space: nowrap;
    box-shadow: none;
    pointer-events: none; }
  html.ds2 .ct-search-wrap .ct-search:has(+ .ct-search-kbd),
  html.ds2 .ct-root .ct-toolbar .ct-search-wrap .ct-search:has(+ .ct-search-kbd) {
    padding-right: var(--sp-8); }
  html.ds2 .ct-search:focus + .ct-search-kbd,
  html.ds2 .ct-search:not(:placeholder-shown) + .ct-search-kbd {
    display: none; }
  html.ds2 .ct-fsel {
    padding: 0 var(--sp-8) 0 var(--sp-3);
    background-position: right var(--sp-3) center; }
  html.ds2 div.ct-fsel {
    display: flex;
    align-items: center;
    gap: var(--sp-2);
    white-space: nowrap; }
    html.ds2 div.ct-fsel > i {
      margin-right: 0;
      font-size: var(--fs-md);
      color: var(--text-3); }
  html.ds2 .ct-range-trigger {
    display: inline-flex;
    align-items: center; }
  html.ds2 .ct-range-trigger.ct-range-active {
    border-color: var(--brand-500);
    background-color: var(--brand-50);
    color: var(--brand-text); }
  html.ds2 .ct-toolbar-action,
  html.ds2 .ct-filters-toggle,
  html.ds2 .ct-bulk-toggle {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-2);
    padding: 0 var(--sp-4);
    border: 1px solid var(--line-strong);
    background: var(--surface);
    color: var(--text);
    font-weight: var(--fw-semibold);
    transition: background-color var(--dur-fast) var(--ease); }
    html.ds2 .ct-toolbar-action:hover,
    html.ds2 .ct-filters-toggle:hover,
    html.ds2 .ct-bulk-toggle:hover {
      background: var(--n-100); }
  html.ds2 .ct-root .ct-toolbar:has(.dynInput, .dynDropDown) {
    --ct-bar-h: var(--control-h); }
  html.ds2 .ct-root .ct-toolbar .ct-search,
  html.ds2 .ct-root .ct-toolbar .ct-fsel,
  html.ds2 .ct-root .ct-toolbar .ct-toolbar-action,
  html.ds2 .ct-root .ct-toolbar .ct-filters-toggle,
  html.ds2 .ct-root .ct-toolbar .ct-bulk-toggle {
    height: var(--ct-bar-h);
    border: 1px solid var(--control-line);
    font-size: var(--fs-sm);
    line-height: var(--lh-sm); }
  html.ds2 .ct-root .ct-toolbar .ct-search {
    border-radius: var(--r-sm);
    padding: 0 var(--sp-3) 0 var(--sp-8); }
  html.ds2 .ct-root .ct-toolbar .ct-search-icon {
    display: inline-flex;
    align-items: center;
    font-size: var(--fs-sm);
    line-height: var(--lh-sm); }
  html.ds2 .ct-root .ct-toolbar .ct-fsel {
    width: auto;
    min-width: 0;
    border-radius: var(--r-sm);
    background-color: var(--surface);
    color: var(--text-2);
    padding: 0 var(--sp-8) 0 var(--sp-3);
    font-weight: var(--fw-semibold);
    cursor: pointer; }
    html.ds2 .ct-root .ct-toolbar .ct-fsel:hover {
      border-color: var(--line-strong);
      color: var(--title); }
  html.ds2 .ct-root .ct-toolbar .ct-drp {
    padding-right: var(--sp-3);
    field-sizing: content;
    background-image: none;
    color: var(--text-2);
    font-weight: var(--fw-semibold);
    opacity: 1;
    cursor: pointer; }
    html.ds2 .ct-root .ct-toolbar .ct-drp::placeholder {
      color: var(--text-2);
      opacity: 1; }
  html.ds2 .ct-root .ct-toolbar .ct-filter-daterange {
    position: relative;
    display: inline-flex;
    align-items: center; }
  html.ds2 .ct-root .ct-toolbar .ct-filter-daterange > .ct-drp-icon {
    position: absolute;
    left: var(--sp-3);
    color: var(--text-3);
    pointer-events: none;
    font-size: var(--fs-sm);
    line-height: var(--lh-sm); }
  html.ds2 .ct-root .ct-toolbar .ct-filter-daterange > .ct-drp-icon + .ct-drp {
    padding-left: var(--sp-8); }
  html.ds2 .ct-root .ct-toolbar .ct-tabs:not(.ds-page-tabs) {
    height: var(--ct-bar-h);
    padding: calc(var(--sp-1) / 2);
    border-radius: var(--r-sm);
    flex: 0 0 auto; }
  html.ds2 .ct-root .ct-toolbar .ct-tabs:not(.ds-page-tabs) > .ct-tab {
    height: 100%;
    min-height: 0;
    border-radius: calc(var(--r-sm) - var(--sp-1) / 2); }
  html.ds2 .ct-root .ct-toolbar .ct-range-trigger {
    padding-right: var(--sp-3);
    background-image: none; }
  html.ds2 .ct-root .ct-toolbar .ct-toolbar-action,
  html.ds2 .ct-root .ct-toolbar .ct-filters-toggle,
  html.ds2 .ct-root .ct-toolbar .ct-bulk-toggle {
    border-radius: var(--r-sm);
    padding: 0 var(--sp-3); }
  html.ds2 .ct-fchip {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-1);
    height: var(--ct-bar-h, var(--sp-8));
    padding: 0 var(--sp-1) 0 var(--sp-3);
    border: 1px solid var(--brand-200);
    border-radius: var(--r-full);
    background: var(--brand-50);
    color: var(--brand-text);
    white-space: nowrap;
    font-size: var(--fs-sm);
    line-height: var(--lh-sm);
    font-weight: var(--fw-semibold); }
    html.ds2 .ct-fchip:focus-within {
      box-shadow: var(--focus-ring); }
    html.ds2 .ct-fchip .ct-fchip-label {
      color: var(--brand-text);
      font-weight: var(--fw-regular); }
  html.ds2 .ct-root .ct-toolbar .ct-fchip .ct-fsel,
  html.ds2 .ct-fchip .ct-fsel {
    height: auto;
    min-width: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: var(--brand-text);
    font-weight: var(--fw-semibold);
    field-sizing: content;
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer; }
    html.ds2 .ct-root .ct-toolbar .ct-fchip .ct-fsel:focus,
    html.ds2 .ct-fchip .ct-fsel:focus {
      box-shadow: none;
      outline: none; }
  html.ds2 .ct-fchip select.ct-fsel {
    background-image: none; }
  html.ds2 .ct-fchip .ct-range-trigger.ct-range-active {
    background: transparent;
    color: var(--brand-text); }
  html.ds2 .ct-fchip-x {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: var(--sp-6);
    height: var(--sp-6);
    padding: 0;
    border: 0;
    border-radius: var(--r-full);
    background: transparent;
    color: var(--brand-text);
    cursor: pointer;
    font-size: var(--fs-sm);
    line-height: var(--lh-sm); }
    html.ds2 .ct-fchip-x:hover {
      background: var(--brand-100); }
    html.ds2 .ct-fchip-x:focus-visible {
      outline: none;
      box-shadow: var(--focus-ring); }
  @media (min-width: 901px) {
    html.ds2 .ct-root .ct-toolbar {
      position: relative;
      flex-wrap: nowrap;
      align-items: center;
      gap: var(--sp-2); }
    html.ds2 .ct-root .ct-toolbar > .ct-filters {
      display: contents; }
    html.ds2 .ct-root .ct-toolbar > *,
    html.ds2 .ct-root .ct-toolbar > .ct-filters > * {
      flex-shrink: 0; }
    html.ds2 .ct-root .ct-toolbar > .ct-search-wrap {
      flex: 1 1 auto; }
    html.ds2 .ct-root .ct-toolbar .ct-f-hidden {
      display: none; }
    html.ds2 .ct-root .ct-toolbar > .ct-filters-toggle,
    html.ds2 .ct-root .ct-bulk-bar > .ct-bulk-toggle {
      display: none; }
    html.ds2 .ct-root .ct-toolbar.ct-f-more > .ct-filters-toggle {
      display: inline-flex;
      order: 1; }
    html.ds2 .ct-root .ct-toolbar > .ct-toolbar-actions {
      order: 2; }
    html.ds2 .ct-filters-badge[hidden] {
      display: none; }
    html.ds2 .ct-root .ct-toolbar > .ct-fpanel {
      position: absolute;
      top: calc(100% + var(--sp-1));
      z-index: 30;
      display: flex;
      flex-direction: column;
      align-items: stretch;
      gap: var(--sp-2);
      min-width: calc(var(--sp-12) * 5);
      padding: var(--sp-3);
      background: var(--surface);
      border: 1px solid var(--line);
      border-radius: var(--r-md);
      box-shadow: var(--sh-md); }
      html.ds2 .ct-root .ct-toolbar > .ct-fpanel > :is(.ct-fsel, .ct-filter-daterange, .ct-fchip) {
        width: 100%; }
    html.ds2 .ct-root.ct-drawer-filters .ct-toolbar > .ct-filters-toggle {
      position: relative;
      z-index: 30; }
    html.ds2 .ct-root.ct-drawer-filters > .ct-drawer-backdrop {
      display: block;
      position: fixed;
      inset: 0;
      z-index: 29;
      background: transparent; }
    html.ds2 .ct-root.ct-drawer-filters > .ct-drawer-backdrop::before {
      content: none; } }
  html.ds2 .filter-options.af-filterbar .ct-fsel[style*="display: block"] {
    display: flex !important; }
  html.ds2 .filter-options.af-filterbar #ins-selection::before,
  html.ds2 .filter-options.af-filterbar #user-selection::before {
    display: inline-block;
    margin: 0;
    vertical-align: baseline;
    color: var(--text-3);
    font-size: var(--fs-lg);
    line-height: 1; }
  html.ds2 .filter-options.af-filterbar #user-selection::before {
    content: '\f007'; }
  html.ds2 .filter-options.af-filterbar #analyticsFilterBtn::after {
    content: attr(data-label); }
  @media (min-width: 768px) {
    html.ds2 .ct-root .ct-toolbar > .row:has(.af-filterbar) {
      flex: 1 1 0;
      min-width: 0; }
    html.ds2 .filter-options.af-filterbar {
      --ct-bar-h: var(--toolbar-h);
      position: relative;
      flex-wrap: nowrap;
      align-items: center;
      gap: var(--sp-2);
      min-width: 0; }
      html.ds2 .filter-options.af-filterbar > *,
      html.ds2 .filter-options.af-filterbar > .af-drawer > *,
      html.ds2 .filter-options.af-filterbar > .af-fpanel > * {
        flex-shrink: 0;
        min-width: 0 !important;
        margin: 0 !important; }
      html.ds2 .filter-options.af-filterbar > .af-drawer > .ct-drawer-header,
      html.ds2 .filter-options.af-filterbar > .af-drawer > .ct-filters-apply {
        display: none; }
      html.ds2 .filter-options.af-filterbar > .af-drawer > .af-hidden {
        display: none !important; }
      html.ds2 .filter-options.af-filterbar .ct-fsel {
        display: inline-flex;
        align-items: center;
        gap: var(--sp-2);
        width: auto;
        min-width: 0;
        height: var(--ct-bar-h);
        padding: 0 var(--sp-8) 0 var(--sp-3);
        border: 1px solid var(--control-line);
        border-radius: var(--r-sm);
        background-color: var(--surface);
        background-position: right var(--sp-3) center;
        color: var(--text-2);
        white-space: nowrap;
        cursor: pointer;
        font-size: var(--fs-sm);
        line-height: var(--lh-sm);
        font-weight: var(--fw-semibold); }
        html.ds2 .filter-options.af-filterbar .ct-fsel:hover {
          border-color: var(--line-strong);
          color: var(--title); }
        html.ds2 .filter-options.af-filterbar .ct-fsel:focus-visible {
          outline: none;
          box-shadow: var(--focus-ring); }
        html.ds2 .filter-options.af-filterbar .ct-fsel > i {
          margin: 0;
          color: var(--text-3);
          font-size: var(--fs-lg);
          line-height: 1; }
      html.ds2 .filter-options.af-filterbar .ct-fsel.af-active {
        border-color: var(--brand-200);
        border-radius: var(--r-full);
        background-color: var(--brand-50);
        color: var(--brand-text); }
      html.ds2 .filter-options.af-filterbar > .ct-filters-toggle {
        display: none;
        order: 1;
        height: var(--ct-bar-h);
        padding: 0 var(--sp-3);
        border: 1px solid var(--control-line);
        border-radius: var(--r-sm);
        font-size: var(--fs-sm);
        line-height: var(--lh-sm);
        font-weight: var(--fw-semibold); }
      html.ds2 .filter-options.af-filterbar.af-more > .ct-filters-toggle {
        display: inline-flex; }
      html.ds2 .filter-options.af-filterbar .ct-filters-badge[hidden] {
        display: none; }
    html.ds2 .filter-options.af-filterbar > .af-fpanel {
      position: absolute;
      top: calc(100% + var(--sp-1));
      z-index: 32;
      display: flex;
      flex-direction: column;
      align-items: stretch;
      gap: var(--sp-2);
      min-width: calc(var(--sp-12) * 5);
      padding: var(--sp-3);
      background: var(--surface);
      border: 1px solid var(--line);
      border-radius: var(--r-md);
      box-shadow: var(--sh-md); }
      html.ds2 .filter-options.af-filterbar > .af-fpanel .ct-fsel,
      html.ds2 .filter-options.af-filterbar > .af-fpanel > .bloc {
        width: 100%; }
    html.ds2 body.analytics-filters-open .filter-options.af-filterbar > .ct-filters-toggle {
      position: relative;
      z-index: 32; }
    html.ds2 body.analytics-filters-open .filter-options.af-filterbar > .ct-drawer-backdrop.af-backdrop {
      display: block;
      position: fixed;
      inset: 0;
      z-index: 31;
      background: transparent;
      animation: none; }
      html.ds2 body.analytics-filters-open .filter-options.af-filterbar > .ct-drawer-backdrop.af-backdrop::before {
        content: none; } }
  html.ds2 .ct-cardbar {
    flex-wrap: nowrap;
    gap: var(--sp-3); }
    html.ds2 .ct-cardbar .styled-checkbox {
      flex: 0 0 auto;
      width: auto;
      white-space: nowrap; }
    html.ds2 .ct-cardbar .ct-card-sort {
      flex: 1 1 auto;
      min-width: 0;
      height: var(--ct-bar-h);
      border: 1px solid var(--control-line);
      border-radius: var(--r-sm);
      font-size: var(--fs-sm);
      line-height: var(--lh-sm); }
    html.ds2 .ct-cardbar .ct-card-sortdir {
      flex: 0 0 auto;
      height: var(--ct-bar-h);
      min-width: var(--ct-bar-h);
      padding: 0;
      border: 1px solid var(--control-line);
      border-radius: var(--r-sm);
      background-image: none; }
  html.ds2 .ct-toolbar-action.ct-toolbar-action-primary {
    background: var(--brand-solid);
    border-color: transparent;
    color: var(--on-brand); }
    html.ds2 .ct-toolbar-action.ct-toolbar-action-primary:hover {
      background: var(--brand-700);
      filter: none; }
  html.ds2 .ct-toolbar-action.ct-toolbar-action-warn {
    background: var(--warn-bg);
    border-color: var(--warn-line);
    color: var(--warn-fg); }
  html.ds2 .ct-bulk-bar {
    gap: var(--sp-3);
    padding: var(--sp-2) var(--sp-4);
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    box-shadow: var(--sh-sm); }
  html.ds2 .ct-bulk-count {
    font-size: var(--fs-sm);
    line-height: var(--lh-sm);
    font-weight: var(--fw-semibold);
    color: var(--brand-text); }
  html.ds2 .ct-bulk-actions {
    gap: var(--sp-2); }
  html.ds2 .ct-bulk-btn,
  html.ds2 .ct-act-btn {
    display: inline-flex;
    align-items: center;
    height: var(--sp-8);
    padding: 0 var(--sp-3);
    border: 1px solid var(--line-strong);
    border-radius: var(--r-sm);
    background: var(--surface);
    color: var(--text);
    font-family: inherit;
    font-size: var(--fs-sm);
    line-height: var(--lh-sm);
    font-weight: var(--fw-semibold); }
    html.ds2 .ct-bulk-btn:hover,
    html.ds2 .ct-act-btn:hover {
      background: var(--n-100); }
  html.ds2 .ct-bulk-clear {
    font-size: var(--fs-sm);
    line-height: var(--lh-sm);
    color: var(--text-2); }
    html.ds2 .ct-bulk-clear:hover {
      color: var(--title); }
  html.ds2 .ct-row-actions {
    gap: var(--sp-1); }
  html.ds2 .ct-table > tbody > tr .ct-row-actions {
    opacity: 1; }
  html.ds2 .ct-row-actions > * {
    flex-shrink: 0; }
  html.ds2 .ct-act-btn.ct-act-icon,
  html.ds2 .ct-row-menu-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--row-act-size);
    height: var(--row-act-size);
    padding: 0;
    border: 0;
    border-radius: var(--r-sm);
    background: transparent;
    color: var(--text-3);
    font-size: var(--fs-md);
    line-height: var(--lh-md);
    transition: background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease); }
    html.ds2 .ct-act-btn.ct-act-icon:focus-visible,
    html.ds2 .ct-row-menu-toggle:focus-visible {
      outline: none;
      box-shadow: var(--focus-ring); }
  html.ds2 .ct-table > tbody > tr:hover :is(.ct-act-btn.ct-act-icon, .ct-row-menu-toggle),
  html.ds2 .ct-table > tbody > tr:focus-within :is(.ct-act-btn.ct-act-icon, .ct-row-menu-toggle),
  html.ds2 .ct-row-menu-toggle[aria-expanded="true"],
  html.ds2 .ct-row-menu-toggle.active {
    color: var(--text-2);
    background: var(--row-act-hover-bg); }
  html.ds2 .ct-table > tbody > tr :is(.ct-act-btn.ct-act-icon, .ct-row-menu-toggle):hover {
    color: var(--title);
    background: var(--row-act-hover-bg); }
  @media (prefers-reduced-motion: reduce) {
    html.ds2 .ct-root *,
    html.ds2 .ct-root *::after {
      transition: none; } }
  html.ds2 .ct-drawer-backdrop::before,
  html.ds2 .ct-root.ct-cards .ct-drawer-backdrop::before {
    background: var(--overlay); }
  html.ds2 .table {
    --bs-table-bg: var(--surface);
    --bs-table-color: var(--text);
    --bs-table-border-color: var(--line);
    --bs-table-hover-bg: var(--n-25);
    --bs-table-hover-color: var(--text);
    --bs-table-striped-bg: var(--n-25);
    --bs-table-active-bg: var(--brand-50);
    border-color: var(--line);
    color: var(--text); }
  html.ds2 .table > thead > tr > th,
  html.ds2 table.doc-lines th,
  html.ds2 .adp-table th {
    background: var(--surface-sunk);
    color: var(--text-2);
    font-size: var(--fs-xs);
    line-height: var(--lh-xs);
    font-weight: var(--fw-semibold);
    text-transform: none;
    letter-spacing: normal;
    padding: var(--sp-3);
    border-bottom: 1px solid var(--line);
    vertical-align: middle; }
  html.ds2 .table > tbody > tr > td,
  html.ds2 .table > tbody > tr > th,
  html.ds2 table.doc-lines td,
  html.ds2 .adp-table td {
    padding: var(--sp-2) var(--sp-3);
    border-color: var(--line);
    border-bottom: 1px solid var(--line);
    color: var(--text);
    vertical-align: middle; }
  html.ds2 .table td.text-right,
  html.ds2 .table th.text-right,
  html.ds2 .table td.num,
  html.ds2 .adp-table td.num,
  html.ds2 table.doc-lines td {
    font-variant-numeric: tabular-nums; }
  html.ds2 .context-menu,
  html.ds2 #ct-export-menu,
  html.ds2 .ds-popmenu,
  html.ds2 .doc-tok-addr-menu {
    background: var(--surface);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    box-shadow: var(--sh-md);
    padding: var(--sp-1);
    font-family: inherit; }
  html.ds2 .context-menu li,
  html.ds2 .ct-export-item,
  html.ds2 .ds-popmenu-opt,
  html.ds2 .doc-tok-addr-opt {
    display: flex;
    align-items: center;
    gap: var(--sp-2);
    min-height: var(--control-h);
    padding: 0 var(--sp-3);
    border: 0;
    border-radius: var(--r-sm);
    font-size: var(--fs-md);
    line-height: var(--lh-md);
    font-weight: var(--fw-regular);
    color: var(--text);
    cursor: pointer;
    transition: background-color var(--dur-fast) var(--ease); }
  html.ds2 .context-menu li i,
  html.ds2 .ct-export-item svg {
    color: var(--text-3); }
  html.ds2 .context-menu li:hover,
  html.ds2 .ct-export-item:hover,
  html.ds2 .ds-popmenu-opt:hover,
  html.ds2 .ds-popmenu-opt.is-active,
  html.ds2 .doc-tok-addr-opt:hover,
  html.ds2 .doc-tok-addr-opt.is-active {
    background: var(--n-100);
    border: 0; }
  html.ds2 .context-menu li.danger,
  html.ds2 .context-menu li.danger i {
    color: var(--danger-fg); }
  html.ds2 .context-menu li.danger:hover {
    background: var(--danger-bg);
    color: var(--danger-fg);
    border: 0; }
  html.ds2 .context-menu li.separator {
    min-height: 0;
    height: 1px;
    padding: 0;
    margin: var(--sp-1) 0;
    background: var(--line); }
  html.ds2 .ct-export-item {
    border-bottom: 0; }
  html.ds2 .ct-export-hint {
    font-size: var(--fs-sm);
    line-height: var(--lh-sm);
    color: var(--text-3); }
  html.ds2 .ds-popmenu-header {
    font-size: var(--fs-xs);
    line-height: var(--lh-xs);
    font-weight: var(--fw-semibold);
    text-transform: none;
    letter-spacing: normal;
    color: var(--text-3);
    padding: var(--sp-2) var(--sp-3) var(--sp-1); }
  html.ds2 .ds-popmenu-opt.is-checked {
    background: var(--brand-50);
    font-weight: var(--fw-semibold); }
  html.ds2 .ds-popmenu-opt .ds-popmenu-check {
    color: var(--brand-500); }
  html.ds2 button.ds-popmenu-opt:focus-visible {
    outline: none;
    box-shadow: var(--focus-ring);
    background: var(--n-100); }
  html.ds2 .ct-kpis,
  html.ds2 .adp-kpis {
    gap: var(--sp-3); }
  html.ds2 .ct-kpi,
  html.ds2 .adp-kpi,
  html.ds2 .kba-kpi-card {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    box-shadow: none;
    padding: var(--sp-4) var(--sp-5); }
  html.ds2 .ct-kpi-label,
  html.ds2 .adp-kpi-label {
    font-size: var(--fs-sm);
    line-height: var(--lh-sm);
    font-weight: var(--fw-regular);
    color: var(--text-2);
    text-transform: none;
    letter-spacing: normal;
    margin-bottom: var(--sp-1); }
  html.ds2 .ct-kpi-val,
  html.ds2 .adp-kpi-val,
  html.ds2 .kba-kpi-card .kba-kpi-value {
    font-size: var(--fs-2xl);
    line-height: var(--lh-2xl);
    font-weight: var(--fw-bold);
    font-family: inherit;
    font-variant-numeric: tabular-nums;
    letter-spacing: normal;
    color: var(--title); }
  html.ds2 .ct-kpi-sub,
  html.ds2 .adp-kpi-sub {
    font-size: var(--fs-sm);
    line-height: var(--lh-sm);
    color: var(--text-2);
    margin-top: var(--sp-1); }
  html.ds2 .ct-kpi-danger .ct-kpi-val {
    color: var(--danger-fg); }
  html.ds2 .ct-kpi-warn .ct-kpi-val {
    color: var(--warn-fg); }
  html.ds2 .ct-kpi-good .ct-kpi-val {
    color: var(--ok-fg); }
  html.ds2 .ct-kpi-info .ct-kpi-val {
    color: var(--info-fg); }
  html.ds2 .ct-kpis.ct-kpis-strip {
    display: flex;
    gap: 0;
    overflow: visible;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    box-shadow: none;
    scrollbar-width: thin; }
  html.ds2 .ct-kpis.ct-kpis-strip:is(.ct-kpis-ovf-l, .ct-kpis-ovf-r) {
    overflow-x: auto; }
  html.ds2 .ct-kpis-strip .ct-kpi-edge-l {
    border-top-left-radius: calc(var(--r-md) - 1px);
    border-bottom-left-radius: calc(var(--r-md) - 1px); }
  html.ds2 .ct-kpis-strip .ct-kpi-edge-r {
    border-top-right-radius: calc(var(--r-md) - 1px);
    border-bottom-right-radius: calc(var(--r-md) - 1px); }
  html.ds2 .ct-kpis.ct-kpis-strip.ct-kpis-ovf-l::before,
  html.ds2 .ct-kpis.ct-kpis-strip.ct-kpis-ovf-r::after {
    content: '';
    position: sticky;
    z-index: 1;
    flex: 0 0 var(--kpi-edge-w);
    align-self: stretch;
    pointer-events: none; }
  html.ds2 .ct-kpis.ct-kpis-strip.ct-kpis-ovf-l::before {
    left: 0;
    order: -1;
    margin-right: calc(-1 * var(--kpi-edge-w));
    background: linear-gradient(to right, var(--kpi-edge-shade), transparent); }
  html.ds2 .ct-kpis.ct-kpis-strip.ct-kpis-ovf-r::after {
    right: 0;
    order: 99;
    margin-left: calc(-1 * var(--kpi-edge-w));
    background: linear-gradient(to left, var(--kpi-edge-shade), transparent); }
  html.ds2 .ct-kpis-tablist,
  html.ds2 .ct-kpis-info {
    display: flex;
    gap: 0;
    min-width: 0; }
  html.ds2 .ct-kpis-tablist {
    flex: 1 1 auto; }
  html.ds2 .ct-kpis-strip .ct-kpis-tablist > .ct-kpi {
    flex: 1 1 0;
    min-width: var(--kpi-min-w); }
  html.ds2 .ct-kpis-info {
    flex: 0 0 auto;
    margin-left: auto;
    border-left: 1px solid var(--line-strong); }
  html.ds2 .ct-kpis-strip .ct-kpi {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--sp-1);
    flex: 1 0 auto;
    min-width: 0;
    margin: 0;
    padding: var(--kpi-pad-y) var(--kpi-pad-x);
    border: 0;
    border-left: 1px solid var(--line);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    font-family: inherit;
    text-align: left; }
    html.ds2 .ct-kpis-strip .ct-kpi:first-child {
      border-left: 0; }
    html.ds2 .ct-kpis-strip .ct-kpi .ct-kpi-label {
      display: inline-flex;
      align-items: center;
      gap: var(--sp-2);
      margin: 0;
      font-size: var(--fs-sm);
      line-height: var(--lh-sm);
      font-weight: var(--fw-semibold);
      color: var(--text-3);
      white-space: nowrap; }
    html.ds2 .ct-kpis-strip .ct-kpi .ct-kpi-val {
      display: block;
      font-size: var(--fs-kpi-measure);
      line-height: var(--lh-kpi-measure);
      font-weight: var(--fw-kpi);
      letter-spacing: var(--ls-tight);
      font-variant-numeric: tabular-nums;
      color: var(--title);
      white-space: nowrap; }
    html.ds2 .ct-kpis-strip .ct-kpi .ct-kpi-val.ct-zero {
      color: var(--text-3); }
    html.ds2 .ct-kpis-strip .ct-kpi .ct-kpi-sub {
      display: block;
      width: auto;
      margin: 0;
      font-size: var(--fs-xs);
      line-height: var(--lh-xs);
      color: var(--text-3); }
  html.ds2 .ct-kpis-strip .ct-kpis-tablist > .ct-kpi .ct-kpi-val {
    font-size: var(--fs-kpi-count);
    line-height: var(--lh-kpi-count); }
  html.ds2 .ct-kpis-info > .ct-kpi {
    flex: 0 0 auto;
    cursor: default; }
  html.ds2 .ct-kpis-strip .ct-kpi-act-warn {
    background: var(--kpi-act-warn-bg);
    box-shadow: inset 0 var(--kpi-act-edge) 0 var(--warn-solid); }
  html.ds2 .ct-kpis-strip .ct-kpi-act-danger {
    background: var(--kpi-act-danger-bg);
    box-shadow: inset 0 var(--kpi-act-edge) 0 var(--danger-solid); }
  html.ds2 .ct-kpis-strip .ct-kpi.ct-kpi-act-warn .ct-kpi-val,
  html.ds2 .ct-kpis-pop .ct-kpi.ct-kpi-act-warn .ct-kpi-val {
    color: var(--warn-fg); }
  html.ds2 .ct-kpis-strip .ct-kpi.ct-kpi-act-danger .ct-kpi-val,
  html.ds2 .ct-kpis-pop .ct-kpi.ct-kpi-act-danger .ct-kpi-val {
    color: var(--danger-fg); }
  html.ds2 .ct-kpis-strip .ct-kpis-info > .ct-kpi-act,
  html.ds2 .ct-kpis-pop .ct-kpi-act {
    background: transparent;
    box-shadow: none; }
  html.ds2 .ct-kpis-strip .ct-kpis-info > .ct-kpi.ct-kpi-act .ct-kpi-val,
  html.ds2 .ct-kpis-pop .ct-kpi.ct-kpi-act .ct-kpi-val {
    color: var(--title);
    font-weight: var(--fw-bold); }
  html.ds2 .ct-kpis-more {
    display: none;
    flex: 0 0 auto;
    align-self: center;
    align-items: center;
    justify-content: center;
    width: var(--row-act-size);
    height: var(--row-act-size);
    margin: 0 var(--sp-3) 0 auto;
    padding: 0;
    border: 1px solid var(--line-strong);
    border-radius: var(--r-sm);
    background: var(--surface);
    color: var(--text-2);
    cursor: pointer;
    font-size: var(--fs-md);
    line-height: var(--lh-md); }
    html.ds2 .ct-kpis-more:hover, html.ds2 .ct-kpis-more[aria-expanded="true"] {
      background: var(--row-act-hover-bg);
      color: var(--title); }
    html.ds2 .ct-kpis-more:focus-visible {
      outline: none;
      box-shadow: var(--focus-ring); }
  html.ds2 .ct-kpis-strip.ct-kpis-folded > .ct-kpis-info {
    display: none; }
  html.ds2 .ct-kpis-strip.ct-kpis-folded > .ct-kpis-more {
    display: inline-flex; }
  html.ds2 .ct-kpis-strip.ct-kpis-folded > .ct-kpis-more {
    position: sticky;
    right: var(--sp-3);
    z-index: 2; }
  @media (max-width: 600px) {
    html.ds2 .ct-kpis.ct-kpis-strip,
    html.ds2 .ct-kpis.ct-kpis-strip:is(.ct-kpis-ovf-l, .ct-kpis-ovf-r) {
      position: relative;
      flex-direction: column;
      overflow: visible; }
    html.ds2 .ct-kpis.ct-kpis-strip.ct-kpis-ovf-l::before,
    html.ds2 .ct-kpis.ct-kpis-strip.ct-kpis-ovf-r::after {
      display: none; }
    html.ds2 .ct-kpis-strip > .ct-kpis-tablist {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr)); }
    html.ds2 .ct-kpis-strip .ct-kpis-tablist > .ct-kpi {
      min-width: 0;
      padding: var(--sp-3) var(--sp-4);
      border-left: 0;
      border-bottom: 1px solid var(--line);
      border-radius: 0; }
      html.ds2 .ct-kpis-strip .ct-kpis-tablist > .ct-kpi:nth-child(2n) {
        border-left: 1px solid var(--line); }
      html.ds2 .ct-kpis-strip .ct-kpis-tablist > .ct-kpi:last-child, html.ds2 .ct-kpis-strip .ct-kpis-tablist > .ct-kpi:nth-last-child(2):nth-child(2n + 1) {
        border-bottom: 0; }
      html.ds2 .ct-kpis-strip .ct-kpis-tablist > .ct-kpi:last-child:nth-child(2n + 1) {
        grid-column: 1 / -1; }
      html.ds2 .ct-kpis-strip .ct-kpis-tablist > .ct-kpi::after, html.ds2 .ct-kpis-strip .ct-kpis-tablist > .ct-kpi.ct-kpi-edge-l::after, html.ds2 .ct-kpis-strip .ct-kpis-tablist > .ct-kpi.ct-kpi-edge-r::after {
        left: 0;
        right: 0;
        z-index: 1; }
      html.ds2 .ct-kpis-strip .ct-kpis-tablist > .ct-kpi:last-child::after {
        right: var(--r-md); }
      html.ds2 .ct-kpis-strip .ct-kpis-tablist > .ct-kpi:last-child:nth-child(2n + 1)::after, html.ds2 .ct-kpis-strip .ct-kpis-tablist > .ct-kpi:nth-last-child(2):nth-child(2n + 1)::after {
        left: var(--r-md); }
      html.ds2 .ct-kpis-strip .ct-kpis-tablist > .ct-kpi .ct-kpi-label {
        white-space: normal; }
    html.ds2 .ct-kpis-strip.ct-kpis-folded > .ct-kpis-more {
      position: absolute;
      right: var(--sp-3);
      bottom: var(--sp-3); } }
  @media (min-width: 601px) {
    html.ds2 .ct-kpis.ct-kpis-strip.ct-kpis-grid {
      position: relative;
      flex-direction: column;
      overflow: visible; }
      html.ds2 .ct-kpis.ct-kpis-strip.ct-kpis-grid::before, html.ds2 .ct-kpis.ct-kpis-strip.ct-kpis-grid::after {
        display: none; }
      html.ds2 .ct-kpis.ct-kpis-strip.ct-kpis-grid > .ct-kpis-tablist {
        display: flex;
        flex-wrap: wrap; }
      html.ds2 .ct-kpis.ct-kpis-strip.ct-kpis-grid .ct-kpis-tablist > .ct-kpi {
        flex: 1 1 calc(100% / 3);
        box-sizing: border-box;
        min-width: 0;
        padding: var(--sp-3) var(--sp-4);
        border-left: 0;
        border-bottom: 1px solid var(--line);
        border-radius: 0; }
        html.ds2 .ct-kpis.ct-kpis-strip.ct-kpis-grid .ct-kpis-tablist > .ct-kpi:not(:nth-child(3n + 1)) {
          border-left: 1px solid var(--line); }
        html.ds2 .ct-kpis.ct-kpis-strip.ct-kpis-grid .ct-kpis-tablist > .ct-kpi:nth-child(3n + 1):nth-last-child(-n + 3), html.ds2 .ct-kpis.ct-kpis-strip.ct-kpis-grid .ct-kpis-tablist > .ct-kpi:nth-child(3n + 1):nth-last-child(-n + 3) ~ .ct-kpi {
          border-bottom: 0; }
        html.ds2 .ct-kpis.ct-kpis-strip.ct-kpis-grid .ct-kpis-tablist > .ct-kpi::after, html.ds2 .ct-kpis.ct-kpis-strip.ct-kpis-grid .ct-kpis-tablist > .ct-kpi.ct-kpi-edge-l::after, html.ds2 .ct-kpis.ct-kpis-strip.ct-kpis-grid .ct-kpis-tablist > .ct-kpi.ct-kpi-edge-r::after {
          left: 0;
          right: 0;
          z-index: 1; }
        html.ds2 .ct-kpis.ct-kpis-strip.ct-kpis-grid .ct-kpis-tablist > .ct-kpi .ct-kpi-label {
          white-space: normal; }
      html.ds2 .ct-kpis.ct-kpis-strip.ct-kpis-grid.ct-kpis-folded > .ct-kpis-more {
        position: absolute;
        right: var(--sp-3);
        bottom: var(--sp-3); } }
  html.ds2 .ct-root.ct-cards .ct-table-wrap {
    background: none;
    border: 0;
    border-radius: 0; }
  html.ds2 .ct-kpis-pop {
    display: none;
    position: fixed;
    inset: auto;
    margin: 0;
    flex-direction: column;
    min-width: var(--kpi-pop-w);
    max-width: calc(100vw - var(--sp-8));
    padding: var(--sp-1) 0;
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    background: var(--surface);
    color: var(--text);
    box-shadow: var(--sh-md);
    overflow: visible; }
    html.ds2 .ct-kpis-pop.is-open {
      display: flex; }
    html.ds2 .ct-kpis-pop:focus-visible {
      outline: none;
      box-shadow: var(--sh-md), var(--focus-ring); }
    html.ds2 .ct-kpis-pop .ct-kpi {
      display: flex;
      flex-direction: column;
      gap: 0;
      margin: 0;
      padding: var(--sp-2) var(--sp-4);
      border: 0;
      border-top: 1px solid var(--line);
      border-radius: 0;
      background: transparent;
      box-shadow: none; }
      html.ds2 .ct-kpis-pop .ct-kpi:first-child {
        border-top: 0; }
    html.ds2 .ct-kpis-pop .ct-kpi .ct-kpi-label {
      margin: 0;
      font-size: var(--fs-sm);
      line-height: var(--lh-sm);
      font-weight: var(--fw-semibold);
      color: var(--text-3); }
    html.ds2 .ct-kpis-pop .ct-kpi .ct-kpi-val {
      font-size: var(--fs-xl);
      line-height: var(--lh-xl);
      font-weight: var(--fw-bold);
      font-variant-numeric: tabular-nums;
      color: var(--title); }
    html.ds2 .ct-kpis-pop .ct-kpi .ct-kpi-sub {
      margin: 0;
      font-size: var(--fs-xs);
      line-height: var(--lh-xs);
      color: var(--text-3); }
  html.ds2 .ct-kpis-pop:popover-open {
    display: flex; }
  html.ds2 .ct-kpi-dot {
    display: inline-block;
    flex: 0 0 auto;
    width: var(--dot);
    height: var(--dot);
    border-radius: var(--r-full);
    background: var(--n-400); }
  html.ds2 .ct-kpi-act-warn .ct-kpi-dot {
    background: var(--warn-solid); }
  html.ds2 .ct-kpi-act-danger .ct-kpi-dot {
    background: var(--danger-solid); }
  html.ds2 .ct-kpis-tablist > .ct-kpi-tab {
    cursor: pointer;
    transition: background-color var(--dur-fast) var(--ease); }
    html.ds2 .ct-kpis-tablist > .ct-kpi-tab::after {
      content: '';
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      height: var(--sig-h);
      background: transparent; }
    html.ds2 .ct-kpis-tablist > .ct-kpi-tab:hover:not(.active) {
      background: var(--n-25); }
    html.ds2 .ct-kpis-tablist > .ct-kpi-tab:hover:not(.active) .ct-kpi-label {
      color: var(--text-2); }
    html.ds2 .ct-kpis-tablist > .ct-kpi-tab.active::after {
      background: radial-gradient(circle closest-side, var(--brand-500) 98%, transparent) right center/var(--sig-dot) var(--sig-dot) no-repeat, linear-gradient(var(--brand-500), var(--brand-500)) left center/calc(100% - var(--sig-gap)) var(--sig-line) no-repeat;
      transform: translateY(calc((var(--sig-h) - var(--sig-line)) / 2));
      animation: ds2-sig-draw var(--dur-sig) var(--ease) both;
      transform: translateY(calc(var(--sig-h) / 2 + .5px)); }
      @media (prefers-reduced-motion: reduce) {
        html.ds2 .ct-kpis-tablist > .ct-kpi-tab.active::after {
          animation: none; } }
    html.ds2 .ct-kpis-tablist > .ct-kpi-tab.ct-kpi-edge-l::after {
      left: var(--r-md); }
    html.ds2 .ct-kpis-tablist > .ct-kpi-tab.ct-kpi-edge-r::after {
      right: var(--r-md); }
    :is(.ct-kpis-ovf-l, .ct-kpis-ovf-r) html.ds2 .ct-kpis-tablist > .ct-kpi-tab.active::after {
      transform: none; }
    html.ds2 .ct-kpis-tablist > .ct-kpi-tab .ct-kpi-label, html.ds2 .ct-kpis-tablist > .ct-kpi-tab.active .ct-kpi-label {
      color: var(--text-2); }
    html.ds2 .ct-kpis-tablist > .ct-kpi-tab:focus-visible {
      outline: 2px solid var(--brand-500);
      outline-offset: -2px; }
  html.ds2 .ct-kpis-tablist > .ct-kpi-tab.ct-kpi-act-warn:hover:not(.active) {
    background: var(--kpi-act-warn-bg); }
  html.ds2 .ct-kpis-tablist > .ct-kpi-tab.ct-kpi-act-danger:hover:not(.active) {
    background: var(--kpi-act-danger-bg); }
  html.ds2 .ct-kpi-sub.compare-at-stat,
  html.ds2 .adp-delta {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: var(--sp-1);
    width: auto;
    padding: calc(var(--sp-1) / 2) var(--sp-2);
    border-radius: var(--r-full);
    background: color-mix(in srgb, currentColor 12%, transparent);
    font-size: var(--fs-xs);
    line-height: var(--lh-xs);
    font-weight: var(--fw-semibold); }
  html.ds2 .ct-kpi-sub.compare-at-stat.is-skeleton {
    background: transparent; }
  html.ds2 .dash-kpi-link {
    transition: border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease); }
    html.ds2 .dash-kpi-link:hover {
      border-color: var(--line-strong);
      box-shadow: var(--sh-sm); }
  html.ds2 .ct-kpi.select-graph {
    cursor: pointer;
    padding: var(--sp-4) var(--sp-5);
    transition: border-color var(--dur-fast) var(--ease), background-color var(--dur-fast) var(--ease); }
    html.ds2 .ct-kpi.select-graph .styled-checkbox {
      display: none; }
    html.ds2 .ct-kpi.select-graph:hover {
      background: var(--n-25);
      border-color: var(--line-strong); }
  html.ds2 .ct-kpi.select-graph {
    --tile-c: var(--viz-1); }
    html.ds2 .ct-kpi.select-graph:is([data-color="28,158,117"], [data-color="29,158,117"], [data-color="7,120,133"]) {
      --tile-c: var(--viz-1); }
    html.ds2 .ct-kpi.select-graph[data-color="255,159,0"] {
      --tile-c: var(--viz-2); }
    html.ds2 .ct-kpi.select-graph[data-color="175,0,255"] {
      --tile-c: var(--viz-3); }
    html.ds2 .ct-kpi.select-graph[data-color="13,185,13"] {
      --tile-c: var(--viz-4); }
    html.ds2 .ct-kpi.select-graph .ct-kpi-label {
      display: inline-flex;
      align-items: center;
      gap: var(--sp-2); }
      html.ds2 .ct-kpi.select-graph .ct-kpi-label::before {
        content: '';
        flex: 0 0 auto;
        width: var(--sp-3);
        height: var(--sp-1);
        border-radius: var(--r-full);
        background: var(--line-strong);
        transition: background-color var(--dur-fast) var(--ease); }
    html.ds2 .ct-kpi.select-graph:focus-visible {
      outline: none;
      box-shadow: var(--focus-ring); }
  html.ds2 .ct-kpi.select-graph.selected,
  html.ds2 .ct-kpi.select-graph.selected:hover {
    border: 1px solid var(--tile-c);
    box-shadow: 0 0 0 1px var(--tile-c);
    background: color-mix(in oklab, var(--tile-c) 7%, var(--surface)); }
    html.ds2 .ct-kpi.select-graph.selected .ct-kpi-label::before,
    html.ds2 .ct-kpi.select-graph.selected:hover .ct-kpi-label::before {
      background: var(--tile-c); }
  html.ds2 .ct-kpi.select-graph.selected:focus-visible {
    box-shadow: 0 0 0 1px var(--tile-c), var(--focus-ring); }
  html.ds2 .ct-tabs:not(.ds-page-tabs),
  html.ds2 .promo-target-tabs,
  html.ds2 .promo-kind-toggle,
  html.ds2 .ec-config-tabs {
    gap: var(--sp-1);
    padding: var(--sp-1);
    background: var(--surface-sunk);
    border: 0;
    border-radius: var(--r-md);
    box-shadow: none; }
  html.ds2 .ct-tabs:not(.ds-page-tabs) {
    display: inline-flex;
    align-items: center;
    overflow: visible; }
  html.ds2 .ec-config-tabs {
    width: fit-content;
    max-width: 100%;
    flex-wrap: wrap; }
  html.ds2 .ct-tabs:not(.ds-page-tabs) > .ct-tab,
  html.ds2 .promo-target-tab,
  html.ds2 .promo-kind-btn,
  html.ds2 .ec-cfg-tab,
  html.ds2 .msg-tab {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--sp-1);
    min-height: calc(var(--control-h) - 2 * var(--sp-1));
    padding: 0 var(--sp-3);
    border: 0;
    border-radius: var(--r-sm);
    background: transparent;
    box-shadow: none;
    color: var(--text-2);
    font-family: inherit;
    font-size: var(--fs-sm);
    line-height: var(--lh-sm);
    font-weight: var(--fw-semibold);
    white-space: nowrap;
    cursor: pointer;
    transition: background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease); }
    html.ds2 .ct-tabs:not(.ds-page-tabs) > .ct-tab:hover:not(.active),
    html.ds2 .promo-target-tab:hover:not(.active),
    html.ds2 .promo-kind-btn:hover:not(.active),
    html.ds2 .ec-cfg-tab:hover:not(.active),
    html.ds2 .msg-tab:hover:not(.active) {
      background: transparent;
      color: var(--title); }
    html.ds2 .ct-tabs:not(.ds-page-tabs) > .ct-tab.active,
    html.ds2 .promo-target-tab.active,
    html.ds2 .promo-kind-btn.active,
    html.ds2 .ec-cfg-tab.active,
    html.ds2 .msg-tab.active {
      background: var(--surface);
      color: var(--title);
      box-shadow: var(--sh-xs); }
    html.ds2 .ct-tabs:not(.ds-page-tabs) > .ct-tab:focus-visible,
    html.ds2 .promo-target-tab:focus-visible,
    html.ds2 .promo-kind-btn:focus-visible,
    html.ds2 .ec-cfg-tab:focus-visible,
    html.ds2 .msg-tab:focus-visible {
      outline: none;
      box-shadow: var(--focus-ring); }
  html.ds2 .ct-tabs.ds-page-tabs,
  html.ds2 .select-menu-hor-container,
  html.ds2 .nav-tabs,
  html.ds2 .ec-tabs,
  html.ds2 .cd-tabs-wrapper,
  html.ds2 .sd-tabs-wrapper,
  html.ds2 .adp-tabs,
  html.ds2 .prd-tabs,
  html.ds2 .ml2-tabs,
  html.ds2 .ccp-mode-tabs {
    display: flex;
    gap: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: inset 0 -1px 0 var(--line); }
  html.ds2 .ec-tabs {
    border-bottom: 0 !important; }
  html.ds2 .ct-tabs.ds-page-tabs {
    overflow: visible; }
  html.ds2 .infos_content .select-menu-hor-container {
    border-bottom: 0;
    background: var(--surface); }
  html.ds2 .select-menu-hor-container {
    top: calc(var(--topbar-h) + env(safe-area-inset-top, 0px));
    background: var(--surface); }
  html.ds2 .infos_content > .select-menu-hor-container {
    margin: calc(-1 * var(--sp-6)) calc(-1 * var(--sp-6)) var(--sp-6);
    padding: 0 var(--sp-6);
    width: auto;
    border-radius: var(--r-md) var(--r-md) 0 0; }
    @media (max-width: 767px) {
      html.ds2 .infos_content > .select-menu-hor-container {
        margin: calc(-1 * var(--sp-5)) calc(-1 * var(--sp-4)) var(--sp-5);
        padding: 0 var(--sp-4); } }
  html.ds2 .ct-tabs.ds-page-tabs > .ct-tab,
  html.ds2 .select-menu-hor-container .select-menu-hor,
  html.ds2 .nav-tabs .nav-link,
  html.ds2 .nav-tabs > li > a,
  html.ds2 .ec-tab,
  html.ds2 .cd-tab,
  html.ds2 .sd-tab,
  html.ds2 .adp-tabbtn,
  html.ds2 .prd-tab,
  html.ds2 .ml2-tab,
  html.ds2 .ccp-mode-tab {
    position: relative;
    margin: 0;
    padding: var(--sp-3) var(--sp-4);
    background: transparent;
    border: 0;
    border-bottom: var(--sig-line) solid transparent;
    border-radius: 0;
    box-shadow: none;
    color: var(--text-2);
    font-family: inherit;
    font-size: var(--fs-md);
    line-height: var(--lh-md);
    font-weight: var(--fw-semibold);
    white-space: nowrap;
    cursor: pointer;
    transition: color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease); }
    html.ds2 .ct-tabs.ds-page-tabs > .ct-tab:hover,
    html.ds2 .select-menu-hor-container .select-menu-hor:hover,
    html.ds2 .nav-tabs .nav-link:hover,
    html.ds2 .nav-tabs > li > a:hover,
    html.ds2 .ec-tab:hover,
    html.ds2 .cd-tab:hover,
    html.ds2 .sd-tab:hover,
    html.ds2 .adp-tabbtn:hover,
    html.ds2 .prd-tab:hover,
    html.ds2 .ml2-tab:hover,
    html.ds2 .ccp-mode-tab:hover {
      background: transparent;
      color: var(--title);
      border-bottom-color: var(--line-strong); }
    html.ds2 .ct-tabs.ds-page-tabs > .ct-tab:focus-visible,
    html.ds2 .select-menu-hor-container .select-menu-hor:focus-visible,
    html.ds2 .nav-tabs .nav-link:focus-visible,
    html.ds2 .nav-tabs > li > a:focus-visible,
    html.ds2 .ec-tab:focus-visible,
    html.ds2 .cd-tab:focus-visible,
    html.ds2 .sd-tab:focus-visible,
    html.ds2 .adp-tabbtn:focus-visible,
    html.ds2 .prd-tab:focus-visible,
    html.ds2 .ml2-tab:focus-visible,
    html.ds2 .ccp-mode-tab:focus-visible {
      outline: 2px solid var(--brand-500);
      outline-offset: -2px; }
  html.ds2 .ct-tabs.ds-page-tabs > .ct-tab.active,
  html.ds2 .select-menu-hor-container .select-menu-hor.selected-menu-hor,
  html.ds2 .select-menu-hor-container .active,
  html.ds2 .nav-tabs .nav-link.active,
  html.ds2 .nav-tabs > li.active > a,
  html.ds2 .nav-tabs > li.active > a:hover,
  html.ds2 .ec-tab.active,
  html.ds2 .cd-tab.active,
  html.ds2 .sd-tab.active,
  html.ds2 .adp-tabbtn.active,
  html.ds2 .prd-tab.active,
  html.ds2 .ml2-tab.ml2-tab--active,
  html.ds2 .ccp-mode-tab.active {
    background: transparent;
    color: var(--title);
    border-bottom-color: var(--brand-500);
    cursor: default; }
  html.ds2 .select-menu-hor-container .select-menu-hor::after,
  html.ds2 .select-menu-hor-container .active::after {
    content: none; }
  html.ds2 .ct-tabs.ds-page-tabs > .ct-tab.active,
  html.ds2 .select-menu-hor-container .select-menu-hor.selected-menu-hor,
  html.ds2 .select-menu-hor-container .active,
  html.ds2 .nav-tabs .nav-link.active,
  html.ds2 .nav-tabs > li.active > a,
  html.ds2 .nav-tabs > li.active > a:hover,
  html.ds2 .ec-tab.active,
  html.ds2 .cd-tab.active,
  html.ds2 .sd-tab.active,
  html.ds2 .adp-tabbtn.active,
  html.ds2 .prd-tab.active,
  html.ds2 .ml2-tab.ml2-tab--active,
  html.ds2 .ccp-mode-tab.active,
  html.ds2 #prm-rubrique [data-prm-onglets] .ct-tab.active {
    position: relative;
    border-bottom-color: transparent; }
    html.ds2 .ct-tabs.ds-page-tabs > .ct-tab.active::after,
    html.ds2 .select-menu-hor-container .select-menu-hor.selected-menu-hor::after,
    html.ds2 .select-menu-hor-container .active::after,
    html.ds2 .nav-tabs .nav-link.active::after,
    html.ds2 .nav-tabs > li.active > a::after,
    html.ds2 .nav-tabs > li.active > a:hover::after,
    html.ds2 .ec-tab.active::after,
    html.ds2 .cd-tab.active::after,
    html.ds2 .sd-tab.active::after,
    html.ds2 .adp-tabbtn.active::after,
    html.ds2 .prd-tab.active::after,
    html.ds2 .ml2-tab.ml2-tab--active::after,
    html.ds2 .ccp-mode-tab.active::after,
    html.ds2 #prm-rubrique [data-prm-onglets] .ct-tab.active::after {
      content: '';
      display: block;
      position: absolute;
      left: 0;
      right: 0;
      bottom: calc(-1 * var(--sig-line));
      top: auto;
      width: auto;
      height: var(--sig-h);
      border: 0;
      border-radius: 0;
      background: radial-gradient(circle closest-side, var(--brand-500) 98%, transparent) right center/var(--sig-dot) var(--sig-dot) no-repeat, linear-gradient(var(--brand-500), var(--brand-500)) left center/calc(100% - var(--sig-gap)) var(--sig-line) no-repeat;
      transform: translateY(calc((var(--sig-h) - var(--sig-line)) / 2));
      animation: ds2-sig-draw var(--dur-sig) var(--ease) both; }
      @media (prefers-reduced-motion: reduce) {
        html.ds2 .ct-tabs.ds-page-tabs > .ct-tab.active::after,
        html.ds2 .select-menu-hor-container .select-menu-hor.selected-menu-hor::after,
        html.ds2 .select-menu-hor-container .active::after,
        html.ds2 .nav-tabs .nav-link.active::after,
        html.ds2 .nav-tabs > li.active > a::after,
        html.ds2 .nav-tabs > li.active > a:hover::after,
        html.ds2 .ec-tab.active::after,
        html.ds2 .cd-tab.active::after,
        html.ds2 .sd-tab.active::after,
        html.ds2 .adp-tabbtn.active::after,
        html.ds2 .prd-tab.active::after,
        html.ds2 .ml2-tab.ml2-tab--active::after,
        html.ds2 .ccp-mode-tab.active::after,
        html.ds2 #prm-rubrique [data-prm-onglets] .ct-tab.active::after {
          animation: none; } }
  html.ds2 #prm-rubrique [data-prm-onglets] {
    border-bottom: 0;
    padding-bottom: 3px;
    background: linear-gradient(var(--line), var(--line)) left bottom 3px/100% 1px no-repeat;
    box-shadow: none; }
  html.ds2 #prm-rubrique [data-prm-onglets] .ct-tab {
    margin-bottom: 0; }
  html.ds2 #prm-rubrique [data-prm-onglets] .ct-tab {
    color: var(--text-2);
    font-weight: var(--fw-semibold);
    box-shadow: none; }
  html.ds2 #prm-rubrique [data-prm-onglets] .ct-tab:not(.active):hover {
    color: var(--title);
    border-bottom-color: var(--line-strong); }
  html.ds2 #prm-rubrique [data-prm-onglets] .ct-tab.active {
    color: var(--title);
    border-bottom-color: transparent; }
  html.ds2 .ct-badge,
  html.ds2 .badge,
  html.ds2 .pill,
  html.ds2 .adp-badge,
  html.ds2 .mch-badge,
  html.ds2 .sif-state-pill,
  html.ds2 .resa-status,
  html.ds2 .wiz-alias-pill,
  html.ds2 .kba-badge,
  html.ds2 .article-picker-badge,
  html.ds2 .pm-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-1);
    min-height: 0;
    padding: calc(var(--sp-1) / 2) var(--sp-2);
    border: 0;
    border-radius: var(--r-full);
    font-size: var(--fs-xs);
    line-height: var(--lh-xs);
    font-weight: var(--fw-semibold);
    letter-spacing: normal;
    text-transform: none;
    white-space: nowrap;
    vertical-align: middle; }
  html.ds2 .ct-badge:not([class*="ct-badge-"]),
  html.ds2 .pill,
  html.ds2 .adp-badge,
  html.ds2 .mch-badge,
  html.ds2 .sif-state-pill,
  html.ds2 .resa-status,
  html.ds2 .wiz-alias-pill,
  html.ds2 .kba-badge,
  html.ds2 .article-picker-badge,
  html.ds2 .pm-badge,
  html.ds2 .ct-badge-neutral,
  html.ds2 .adp-badge.off,
  html.ds2 .mch-badge.off,
  html.ds2 .kba-badge-neutral,
  html.ds2 .article-picker-badge-muted {
    background: var(--n-100);
    color: var(--text-2); }
  html.ds2 .ct-badge,
  html.ds2 .badge,
  html.ds2 .pill,
  html.ds2 .adp-badge,
  html.ds2 .mch-badge,
  html.ds2 .sif-state-pill,
  html.ds2 .resa-status,
  html.ds2 .wiz-alias-pill,
  html.ds2 .kba-badge,
  html.ds2 .article-picker-badge,
  html.ds2 .pm-badge {
    min-height: var(--sp-5); }
  html.ds2 .ct-badge-success,
  html.ds2 .adp-badge.ok,
  html.ds2 .mch-badge.ok,
  html.ds2 .sif-state-pill.is-accepted,
  html.ds2 .resa-status.validated,
  html.ds2 .wiz-alias-pill.ok,
  html.ds2 .kba-badge-ok,
  html.ds2 .badge.is-ok,
  html.ds2 .pill.is-ok {
    background: var(--n-100);
    color: var(--text-2); }
  html.ds2 .ct-badge-warn,
  html.ds2 .ct-badge-warning,
  html.ds2 .adp-badge.warn,
  html.ds2 .mch-badge.warn,
  html.ds2 .sif-state-pill.is-topro,
  html.ds2 .resa-status.pending,
  html.ds2 .kba-badge-warn,
  html.ds2 .badge.is-warn,
  html.ds2 .pill.is-warn,
  html.ds2 .ct-badge-danger,
  html.ds2 .sif-state-pill.is-refused,
  html.ds2 .resa-status.rejected,
  html.ds2 .resa-status.cancelled,
  html.ds2 .wiz-alias-pill.ko,
  html.ds2 .kba-badge-bad,
  html.ds2 .badge.is-ko,
  html.ds2 .pill.is-ko,
  html.ds2 .article-picker-badge-danger {
    background: var(--n-100);
    color: var(--text-2); }
  html.ds2 .ct-badge-info,
  html.ds2 .ct-badge-purple {
    background: var(--n-100);
    color: var(--text-2); }
  html.ds2 .ct-badge-info.ct-badge-act,
  html.ds2 .badge.is-accent {
    background: var(--n-100);
    color: var(--text-2); }
  html.ds2 .ct-badge-purple::before {
    content: '';
    display: inline-block;
    flex: 0 0 auto;
    width: var(--dot);
    height: var(--dot);
    border-radius: var(--r-full);
    background: var(--n-400); }
  html.ds2 .ct-badge-info.ct-mono,
  html.ds2 .ct-badge-info:has(> i:only-child) {
    background: var(--info-bg);
    color: var(--info-fg); }
  html.ds2 .ct-badge-info.ct-badge-sm {
    background: var(--n-100);
    color: var(--text-2); }
  html.ds2 .ct-badge-success::before,
  html.ds2 .ct-badge-neutral::before,
  html.ds2 .ct-badge-warn::before,
  html.ds2 .ct-badge-warning::before,
  html.ds2 .ct-badge-danger::before,
  html.ds2 .ct-badge-info:not(.ct-badge-sm):not(.ct-mono)::before,
  html.ds2 .adp-badge.ok::before,
  html.ds2 .adp-badge.off::before,
  html.ds2 .adp-badge.warn::before,
  html.ds2 .mch-badge.ok::before,
  html.ds2 .mch-badge.off::before,
  html.ds2 .mch-badge.warn::before,
  html.ds2 .sif-state-pill.is-accepted::before,
  html.ds2 .sif-state-pill.is-topro::before,
  html.ds2 .sif-state-pill.is-refused::before,
  html.ds2 .resa-status.validated::before,
  html.ds2 .resa-status.pending::before,
  html.ds2 .resa-status.rejected::before,
  html.ds2 .resa-status.cancelled::before,
  html.ds2 .wiz-alias-pill.ok::before,
  html.ds2 .wiz-alias-pill.ko::before,
  html.ds2 .kba-badge-ok::before,
  html.ds2 .kba-badge-neutral::before,
  html.ds2 .kba-badge-warn::before,
  html.ds2 .kba-badge-bad::before,
  html.ds2 .badge.is-ok::before,
  html.ds2 .badge.is-warn::before,
  html.ds2 .badge.is-ko::before,
  html.ds2 .pill.is-ok::before,
  html.ds2 .pill.is-warn::before,
  html.ds2 .pill.is-ko::before {
    content: '';
    display: inline-block;
    flex: 0 0 auto;
    width: var(--dot);
    height: var(--dot);
    border-radius: var(--r-full);
    background: var(--n-400); }
  html.ds2 .ct-badge-success::before,
  html.ds2 .adp-badge.ok::before,
  html.ds2 .mch-badge.ok::before,
  html.ds2 .sif-state-pill.is-accepted::before,
  html.ds2 .resa-status.validated::before,
  html.ds2 .wiz-alias-pill.ok::before,
  html.ds2 .kba-badge-ok::before,
  html.ds2 .badge.is-ok::before,
  html.ds2 .pill.is-ok::before {
    background: var(--ok-solid); }
  html.ds2 .ct-badge-warn::before,
  html.ds2 .ct-badge-warning::before,
  html.ds2 .adp-badge.warn::before,
  html.ds2 .mch-badge.warn::before,
  html.ds2 .sif-state-pill.is-topro::before,
  html.ds2 .resa-status.pending::before,
  html.ds2 .kba-badge-warn::before,
  html.ds2 .badge.is-warn::before,
  html.ds2 .pill.is-warn::before {
    background: var(--warn-solid); }
  html.ds2 .ct-badge-danger::before,
  html.ds2 .sif-state-pill.is-refused::before,
  html.ds2 .resa-status.rejected::before,
  html.ds2 .resa-status.cancelled::before,
  html.ds2 .wiz-alias-pill.ko::before,
  html.ds2 .kba-badge-bad::before,
  html.ds2 .badge.is-ko::before,
  html.ds2 .pill.is-ko::before {
    background: var(--danger-solid); }
  html.ds2 .ct-badge-info::before {
    background: var(--info-solid); }
  html.ds2 .article-picker-badge-danger::before,
  html.ds2 .badge.is-accent::before {
    content: '';
    display: inline-block;
    flex: 0 0 auto;
    width: var(--dot);
    height: var(--dot);
    border-radius: var(--r-full);
    background: var(--danger-solid); }
  html.ds2 .badge.is-accent::before {
    background: var(--info-solid); }
  html.ds2 .article-picker-badge-muted {
    border: 0; }
  html.ds2 .ct-badge-sm {
    font-size: var(--fs-xs);
    line-height: var(--lh-xs);
    font-weight: var(--fw-semibold);
    padding: 0 var(--sp-2); }
  html.ds2 .ct-decl-tag {
    border-radius: var(--r-full);
    background: var(--n-100);
    color: var(--text-2); }
  html.ds2 .pastille {
    border-radius: var(--r-full); }
  html.ds2 .ct-filters-badge,
  html.ds2 .promo-target-tab-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: var(--sp-5);
    height: var(--sp-5);
    padding: 0 var(--sp-1);
    border-radius: var(--r-full);
    font-size: var(--fs-xs);
    line-height: var(--lh-xs);
    font-weight: var(--fw-semibold);
    font-variant-numeric: tabular-nums; }
  html.ds2 .ct-filters-badge {
    background: var(--brand-solid);
    color: var(--on-brand); }
  html.ds2 .promo-target-tab-count {
    width: auto;
    background: var(--brand-50);
    color: var(--brand-text); }
  html.ds2 .ds-empty,
  html.ds2 .cd-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--sp-2);
    padding: var(--sp-12) var(--sp-6);
    text-align: center;
    font-style: normal;
    color: var(--text-2);
    font-size: var(--fs-md);
    line-height: var(--lh-md); }
  html.ds2 .ds-empty-icon {
    font-size: var(--icon-xl);
    line-height: 1;
    color: var(--n-300);
    opacity: 1;
    margin-bottom: var(--sp-2); }
  html.ds2 .ds-empty-text {
    font-size: var(--fs-lg);
    line-height: var(--lh-lg);
    font-weight: var(--fw-semibold);
    color: var(--title); }
  html.ds2 .ds-empty-hint {
    font-size: var(--fs-md);
    line-height: var(--lh-md);
    color: var(--text-2);
    opacity: 1;
    max-width: 48ch; }
  html.ds2 .ds-empty-action {
    margin-top: var(--sp-3); }
  html.ds2 .ct-empty,
  html.ds2 .movement-empty {
    color: var(--text-2);
    font-style: normal;
    font-size: var(--fs-md);
    line-height: var(--lh-md); }
  html.ds2 .ct-empty::before,
  html.ds2 .ds-empty-icon::before {
    content: '';
    display: block;
    width: var(--empty-art);
    height: var(--empty-art);
    margin: 0 auto var(--sp-3);
    opacity: 1;
    background: radial-gradient(circle at 50% 14%, var(--brand-500) 0 var(--sp-2), transparent var(--sp-2)), var(--title);
    -webkit-mask: var(--empty-art-mask) center/contain no-repeat;
    mask: var(--empty-art-mask) center/contain no-repeat; }
  html.ds2 .ds-empty-icon {
    margin-bottom: 0; }
  html.ds2 .ds-empty-icon > * {
    display: none; }
  html.ds2 .ct-empty:has(> .ct-empty-box)::before {
    content: none; }
  html.ds2 .ct-empty-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--sp-2);
    text-align: center; }
  html.ds2 .ct-empty-art {
    width: var(--empty-art);
    height: var(--empty-art);
    margin-bottom: var(--sp-2);
    color: var(--title); }
  html.ds2 .ct-empty-dot {
    color: var(--brand-500); }
  html.ds2 .ct-empty-title {
    font-size: var(--fs-lg);
    line-height: var(--lh-lg);
    font-weight: var(--fw-semibold);
    color: var(--title); }
  html.ds2 .ct-empty-text {
    font-size: var(--fs-md);
    line-height: var(--lh-md);
    color: var(--text-2);
    max-width: 48ch; }
  html.ds2 .ct-empty-action {
    margin-top: var(--sp-3); }
  html.ds2 .movement-empty {
    padding: var(--sp-12) var(--sp-6);
    background: var(--surface); }
  html.ds2 .adp-empty,
  html.ds2 .mch-empty,
  html.ds2 .pa-empty,
  html.ds2 .cp-empty,
  html.ds2 .doc-action-rail-empty,
  html.ds2 .dash-alerts-empty {
    color: var(--text-2);
    font-style: normal;
    font-size: var(--fs-sm);
    line-height: var(--lh-sm); }
  html.ds2 .modal-backdrop::before,
  html.ds2 .ds-drawer-overlay::before,
  html.ds2 .ds-modal-overlay::before,
  html.ds2 .ds-confirm-overlay::before {
    background: var(--overlay); }
  html.ds2 .modal-backdrop.in,
  html.ds2 body > .modal-backdrop.show {
    opacity: 1; }
  html.ds2 .modal-content,
  html.ds2 .ds-confirm,
  html.ds2 .ds-modal {
    background: var(--surface);
    border: 0;
    border-radius: var(--r-lg);
    box-shadow: var(--sh-lg);
    color: var(--text); }
  html.ds2 .modal-header,
  html.ds2 .ds-confirm .ds-confirm-head {
    display: flex;
    align-items: center;
    gap: var(--sp-3);
    padding: var(--sp-5) var(--sp-6);
    background: var(--surface);
    border-bottom: 1px solid var(--line);
    border-radius: var(--r-lg) var(--r-lg) 0 0;
    font-size: var(--fs-xl);
    line-height: var(--lh-xl);
    font-weight: var(--fw-semibold);
    color: var(--title);
    text-align: left; }
  html.ds2 .modal-header .modal-title-text,
  html.ds2 .modal-header .modal-title,
  html.ds2 .ds-confirm .ds-confirm-title {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    font-size: var(--fs-xl);
    line-height: var(--lh-xl);
    font-weight: var(--fw-semibold);
    color: var(--title); }
  html.ds2 .ds-modal-head {
    margin: calc(-1 * var(--sp-6)) calc(-1 * var(--sp-6)) var(--sp-5);
    padding: var(--sp-5) var(--sp-6);
    border-bottom: 1px solid var(--line);
    gap: var(--sp-3); }
  html.ds2 .ds-drawer-head {
    gap: var(--sp-3);
    padding: var(--sp-5) var(--sp-6);
    border-bottom: 1px solid var(--line); }
  html.ds2 .ds-modal-title,
  html.ds2 .ds-drawer-title {
    font-size: var(--fs-xl);
    line-height: var(--lh-xl);
    font-weight: var(--fw-semibold);
    color: var(--title); }
  html.ds2 .modal-header > i,
  html.ds2 .modal-header > .close,
  html.ds2 .modal-header > .btn-close,
  html.ds2 .ds-confirm .ds-confirm-close,
  html.ds2 .ds-modal-close,
  html.ds2 .ds-drawer-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: var(--sp-8);
    height: var(--sp-8);
    margin: 0 calc(-1 * var(--sp-2)) 0 auto;
    padding: 0;
    float: none;
    border: 0;
    border-radius: var(--r-sm);
    background-color: transparent;
    color: var(--text-2);
    opacity: 1;
    font-size: var(--fs-lg);
    line-height: var(--lh-lg);
    cursor: pointer;
    transition: background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease); }
    html.ds2 .modal-header > i:hover,
    html.ds2 .modal-header > .close:hover,
    html.ds2 .modal-header > .btn-close:hover,
    html.ds2 .ds-confirm .ds-confirm-close:hover,
    html.ds2 .ds-modal-close:hover,
    html.ds2 .ds-drawer-close:hover {
      background-color: var(--n-100);
      color: var(--title); }
    html.ds2 .modal-header > i:focus-visible,
    html.ds2 .modal-header > .close:focus-visible,
    html.ds2 .modal-header > .btn-close:focus-visible,
    html.ds2 .ds-confirm .ds-confirm-close:focus-visible,
    html.ds2 .ds-modal-close:focus-visible,
    html.ds2 .ds-drawer-close:focus-visible {
      outline: none;
      box-shadow: var(--focus-ring); }
  html.ds2 .modal-body {
    padding: var(--sp-6);
    color: var(--text); }
  html.ds2 .ds-confirm .ds-confirm-body {
    padding: var(--sp-5) var(--sp-6) var(--sp-6); }
  html.ds2 .ds-confirm .ds-confirm-message {
    font-size: var(--fs-md);
    line-height: var(--lh-md);
    color: var(--text-2);
    margin-bottom: var(--sp-5); }
  html.ds2 .ds-confirm .ds-confirm-input {
    margin-bottom: var(--sp-5); }
  html.ds2 .ds-modal {
    padding: var(--sp-6); }
  html.ds2 .ds-modal-sub {
    font-size: var(--fs-sm);
    line-height: var(--lh-sm);
    color: var(--text-2);
    margin-bottom: var(--sp-4); }
  html.ds2 .modal-footer,
  html.ds2 .ds-modal-actions,
  html.ds2 .modal-form-actions,
  html.ds2 .ds-confirm .ds-confirm-actions {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: var(--sp-2); }
  html.ds2 .ds-confirm .ds-confirm-head:has(+ .ds-confirm-body > .ds-confirm-actions:first-child) {
    border-bottom: 0;
    padding-bottom: 0; }
  html.ds2 :is(.ds-confirm, .modal-content, .ds-modal, .ds-drawer) .btn-danger {
    background: var(--danger-solid);
    border-color: var(--danger-solid);
    color: var(--n-0); }
    html.ds2 :is(.ds-confirm, .modal-content, .ds-modal, .ds-drawer) .btn-danger:hover:not(:disabled, .disabled) {
      background: var(--danger-fg);
      border-color: var(--danger-fg); }
  html.ds2 :is(.ds-confirm, .modal-content, .ds-modal, .ds-drawer) :is(.btn-light, .btn-default):not(.hightlight) {
    background: var(--surface);
    border-color: var(--line-strong);
    color: var(--text); }
    html.ds2 :is(.ds-confirm, .modal-content, .ds-modal, .ds-drawer) :is(.btn-light, .btn-default):not(.hightlight):hover:not(:disabled, .disabled) {
      background: var(--page-bg);
      border-color: var(--n-300); }
  html.ds2 .modal-footer {
    padding: var(--sp-4) var(--sp-6);
    border-top: 1px solid var(--line); }
  html.ds2 .ds-modal-actions,
  html.ds2 .modal-form-actions {
    margin-top: var(--sp-6); }
  html.ds2 .ds-drawer {
    background: var(--surface);
    box-shadow: var(--sh-lg);
    color: var(--text); }
  html.ds2 .ds-drawer-body {
    padding: var(--sp-6);
    font-size: var(--fs-md);
    line-height: var(--lh-md); }
  html.ds2 .ds-drawer-foot {
    gap: var(--sp-2);
    padding: var(--sp-4) var(--sp-6);
    background: var(--surface);
    border-top: 1px solid var(--line); }
  html.ds2 .ds-drawer-line {
    gap: var(--sp-3);
    border-bottom: 1px solid var(--line); }
  html.ds2 .ds-drawer-line-sub {
    color: var(--text-2); }
  html.ds2 .ds-toast {
    gap: var(--sp-3);
    padding: var(--sp-3) var(--sp-4);
    background: var(--surface);
    border: 1px solid var(--line);
    border-left: 3px solid var(--info-solid);
    border-radius: var(--r-md);
    box-shadow: var(--sh-md);
    color: var(--text);
    font-size: var(--fs-md);
    line-height: var(--lh-md); }
    html.ds2 .ds-toast .ds-toast-icon {
      color: var(--info-solid); }
    html.ds2 .ds-toast .ds-toast-close {
      color: var(--text-3); }
      html.ds2 .ds-toast .ds-toast-close:hover {
        color: var(--title); }
    html.ds2 .ds-toast .ds-toast-action {
      color: var(--info-solid); }
  html.ds2 .ds-toast.ds-toast-success {
    border-left-color: var(--ok-solid); }
    html.ds2 .ds-toast.ds-toast-success .ds-toast-icon {
      color: var(--ok-solid); }
  html.ds2 .ds-toast.ds-toast-error {
    border-left-color: var(--danger-solid); }
    html.ds2 .ds-toast.ds-toast-error .ds-toast-icon {
      color: var(--danger-solid); }
  html.ds2 .ds-toast.ds-toast-warning {
    border-left-color: var(--warn-solid); }
    html.ds2 .ds-toast.ds-toast-warning .ds-toast-icon {
      color: var(--warn-solid); }
  html.ds2 .ds-banner,
  html.ds2 .ds-banner.ds-banner-info {
    padding: var(--sp-3) var(--sp-4);
    background: var(--info-bg);
    border: 1px solid var(--info-line);
    border-radius: var(--r-md);
    color: var(--info-fg);
    font-size: var(--fs-md);
    line-height: var(--lh-md); }
  html.ds2 .ds-banner.ds-banner-warning {
    background: var(--warn-bg);
    border-color: var(--warn-line);
    color: var(--warn-fg); }
  html.ds2 .ds-banner.ds-banner-danger {
    background: var(--danger-bg);
    border-color: var(--danger-line);
    color: var(--danger-fg); }
  html.ds2 .ds-banner.ds-banner-success {
    background: var(--ok-bg);
    border-color: var(--ok-line);
    color: var(--ok-fg); }
  html.ds2 .ds-step:not(:last-child)::after {
    background: var(--line-strong); }
  html.ds2 .ds-step.is-done:not(:last-child)::after {
    background: var(--brand-500); }
  html.ds2 .ds-step-dot {
    background: var(--surface-sunk);
    color: var(--text-2);
    font-size: var(--fs-xs);
    line-height: var(--lh-xs);
    font-weight: var(--fw-semibold); }
  html.ds2 .ds-step.is-done .ds-step-dot {
    background: var(--brand-solid);
    color: var(--on-brand); }
  html.ds2 .ds-step.is-current .ds-step-dot {
    background: var(--surface);
    border: 2px solid var(--brand-500);
    color: var(--brand-text);
    box-shadow: 0 0 0 var(--sp-1) var(--brand-100); }
  html.ds2 .ds-step-label {
    font-size: var(--fs-xs);
    line-height: var(--lh-xs);
    color: var(--text-3); }
  html.ds2 .ds-step.is-done .ds-step-label {
    color: var(--text-2); }
  html.ds2 .ds-step.is-current .ds-step-label {
    color: var(--title);
    font-weight: var(--fw-semibold); }
  html.ds2 .doc-inline-paper {
    background: var(--surface);
    border-radius: var(--r-sm);
    box-shadow: var(--sh-sm); }
  html.ds2 .doc-head-number {
    color: var(--title); }
  html.ds2 .doc-head-meta-item .k {
    font-size: var(--fs-xs);
    line-height: var(--lh-xs);
    text-transform: none;
    letter-spacing: normal;
    color: var(--text-3); }
  html.ds2 .doc-head-meta-item .v {
    color: var(--title); }
  html.ds2 .doc-progress-title,
  html.ds2 .doc-piece .no,
  html.ds2 .doc-activity-item .t {
    color: var(--title); }
  html.ds2 .doc-progress-bar {
    background: var(--surface-sunk); }
    html.ds2 .doc-progress-bar > span {
      background: var(--brand-500); }
  html.ds2 .doc-progress-sub,
  html.ds2 .doc-piece .sub,
  html.ds2 .doc-activity-item .d {
    color: var(--text-2); }
  html.ds2 .doc-piece,
  html.ds2 .doc-activity-item {
    border-bottom-color: var(--line); }
  html.ds2 .doc-piece .ic,
  html.ds2 .doc-activity-item .ic {
    background: var(--surface-sunk);
    color: var(--text-2); }
  html.ds2 .doc-piece .ic.doc-ic-bl {
    background: var(--brand-50);
    color: var(--brand-text); }
  html.ds2 .doc-piece .ic.doc-ic-fac {
    background: var(--brand-solid);
    color: var(--on-brand); }
  html.ds2 .doc-preview-frame {
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    background: var(--page-bg); }
  html.ds2 .doc-rest-warn {
    color: var(--warn-fg); }
  html.ds2 .doc-rest-ok {
    color: var(--ok-fg); }
  html.ds2 #gillia-tour-pop,
  html.ds2 #gillia-tour-offer {
    background: var(--surface) !important;
    border: 1px solid var(--line) !important;
    border-radius: var(--r-md) !important;
    box-shadow: var(--sh-md) !important;
    color: var(--text) !important; }
  html.ds2 .ds-info {
    color: var(--text-3); }
    html.ds2 .ds-info:hover {
      color: var(--brand-text); }
    html.ds2 .ds-info:focus-visible {
      outline: 2px solid var(--brand-500);
      color: var(--brand-text); }
  html.ds2 .ds-info-tip {
    padding: var(--sp-2) var(--sp-3);
    background: var(--n-900);
    color: var(--n-0);
    border-radius: var(--r-sm);
    box-shadow: var(--sh-md);
    font-size: var(--fs-sm);
    line-height: var(--lh-sm); }
    html.ds2 .ds-info-tip .ds-info-tip-link,
    html.ds2 .ds-info-tip .ds-info-tip-link:hover,
    html.ds2 .ds-info-tip .ds-info-tip-link:focus {
      color: var(--n-0); }

html.ds2.ds2-dark .ct-tabs:not(.ds-page-tabs),
html.ds2.ds2-dark .promo-target-tabs,
html.ds2.ds2-dark .promo-kind-toggle,
html.ds2.ds2-dark .ec-config-tabs {
  background: var(--shell-bg); }
html.ds2.ds2-dark .ct-tabs:not(.ds-page-tabs) > .ct-tab.active,
html.ds2.ds2-dark .promo-target-tab.active,
html.ds2.ds2-dark .promo-kind-btn.active,
html.ds2.ds2-dark .ec-cfg-tab.active,
html.ds2.ds2-dark .msg-tab.active {
  background: var(--n-150);
  color: var(--title);
  box-shadow: none; }
html.ds2.ds2-dark .ct-badge:not([class*="ct-badge-"]),
html.ds2.ds2-dark .ct-badge-neutral,
html.ds2.ds2-dark .ct-badge-success,
html.ds2.ds2-dark .ct-badge-purple,
html.ds2.ds2-dark .ct-badge-info:not(.ct-badge-sm):not(.ct-mono),
html.ds2.ds2-dark .ct-badge-info.ct-badge-sm,
html.ds2.ds2-dark .ct-badge-warn,
html.ds2.ds2-dark .ct-badge-warning,
html.ds2.ds2-dark .ct-badge-danger,
html.ds2.ds2-dark .adp-badge.warn,
html.ds2.ds2-dark .mch-badge.warn,
html.ds2.ds2-dark .sif-state-pill.is-topro,
html.ds2.ds2-dark .sif-state-pill.is-refused,
html.ds2.ds2-dark .resa-status.pending,
html.ds2.ds2-dark .resa-status.rejected,
html.ds2.ds2-dark .resa-status.cancelled,
html.ds2.ds2-dark .wiz-alias-pill.ko,
html.ds2.ds2-dark .kba-badge-warn,
html.ds2.ds2-dark .kba-badge-bad,
html.ds2.ds2-dark .badge.is-warn,
html.ds2.ds2-dark .badge.is-ko,
html.ds2.ds2-dark .badge.is-accent,
html.ds2.ds2-dark .pill.is-warn,
html.ds2.ds2-dark .pill.is-ko,
html.ds2.ds2-dark .article-picker-badge-danger,
html.ds2.ds2-dark .adp-badge.ok,
html.ds2.ds2-dark .adp-badge.off,
html.ds2.ds2-dark .mch-badge.ok,
html.ds2.ds2-dark .mch-badge.off,
html.ds2.ds2-dark .sif-state-pill.is-accepted,
html.ds2.ds2-dark .resa-status.validated,
html.ds2.ds2-dark .wiz-alias-pill.ok,
html.ds2.ds2-dark .kba-badge-ok,
html.ds2.ds2-dark .kba-badge-neutral,
html.ds2.ds2-dark .badge.is-ok,
html.ds2.ds2-dark .pill.is-ok,
html.ds2.ds2-dark .article-picker-badge-muted,
html.ds2.ds2-dark .ct-decl-tag {
  background: var(--n-150); }

.tarif-store-caret {
  display: none; }

html.ds2 #panelNewtarif #shopName {
  align-items: center;
  color: var(--brand-text); }
html.ds2 #panelNewtarif select.tarif-store-select.form-control:not([multiple], [size]) {
  width: auto;
  field-sizing: content;
  height: auto;
  min-height: 0 !important;
  margin-left: var(--sp-1) !important;
  padding: 0 !important;
  border: 0;
  border-radius: var(--r-sm);
  background: transparent !important;
  color: inherit;
  font-weight: 600;
  cursor: pointer; }
  html.ds2 #panelNewtarif select.tarif-store-select.form-control:not([multiple], [size]):hover {
    text-decoration: underline;
    text-underline-offset: 3px; }
  html.ds2 #panelNewtarif select.tarif-store-select.form-control:not([multiple], [size]):focus-visible {
    outline: 0;
    box-shadow: var(--focus-ring); }
html.ds2 #panelNewtarif .tarif-store-caret {
  display: inline-block;
  margin-left: var(--sp-1);
  font-size: var(--fs-sm);
  pointer-events: none; }

html.ds2 #vente_content .pad-bottom-10:has(#addNewTarif) {
  margin-top: var(--sp-4); }

html.ds2 #panelNewtarif .tarif-wrap .d-flex.flex-1 > div:has(> span > .styled-checkbox),
html.ds2 #panelNewtarif .tarif-wrap > .row > .ds-info {
  align-self: flex-end;
  display: flex;
  align-items: center;
  height: var(--control-h) !important; }

html.ds2 {
  --cmdk-veil: rgba(20, 18, 16, .28);
  --cmdk-shadow: 0 0 0 1px rgba(20, 18, 16, .06), 0 16px 48px -8px rgba(20, 18, 16, .28), 0 4px 12px rgba(20, 18, 16, .08);
  --cmdk-edge: var(--line);
  --cmdk-bg: var(--surface);
  --cmdk-active: var(--n-100); }
  html.ds2.ds2-dark {
    --cmdk-veil: rgba(0, 0, 0, .55);
    --cmdk-shadow: 0 16px 48px -8px rgba(0, 0, 0, .6);
    --cmdk-edge: rgba(255, 255, 255, .08);
    --cmdk-bg: color-mix(in srgb, var(--surface) 94%, #fff);
    --cmdk-active: rgba(255, 255, 255, .06); }
  html.ds2 #main_content[tabindex="-1"]:focus {
    outline: none; }
  html.ds2 dialog.cmdk {
    position: fixed;
    inset: 12vh 0 auto;
    width: min(640px, calc(100vw - 2 * var(--sp-4)));
    max-width: none;
    max-height: none;
    margin: 0 auto;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--text);
    text-align: left;
    overflow: visible; }
    html.ds2 dialog.cmdk::backdrop {
      background: var(--cmdk-veil); }
    html.ds2 dialog.cmdk[open] .cmdk-box {
      animation: cmdk-in 120ms var(--ease) both; }
      @media (prefers-reduced-motion: reduce) {
        html.ds2 dialog.cmdk[open] .cmdk-box {
          animation: none; } }
  html.ds2:not(.ds2-dark) dialog.cmdk::backdrop {
    backdrop-filter: blur(2px); }
  html.ds2 .cmdk-box {
    display: flex;
    flex-direction: column;
    max-height: min(60vh, 460px);
    background: var(--cmdk-bg);
    border: 1px solid var(--cmdk-edge);
    border-radius: var(--sp-3);
    box-shadow: var(--cmdk-shadow);
    overflow: hidden; }
  html.ds2 .cmdk-field {
    display: flex;
    flex: none;
    align-items: center;
    gap: var(--sp-3);
    padding: 0 var(--sp-3) 0 var(--sp-4);
    border-bottom: 1px solid var(--cmdk-edge); }
  html.ds2 .cmdk-field-icon {
    color: var(--text-3);
    font-size: var(--fs-lg);
    line-height: 1; }
  html.ds2 input.cmdk-input {
    flex: 1 1 auto;
    min-width: 0;
    height: calc(var(--control-h) + var(--sp-3));
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    color: var(--title);
    font-size: var(--fs-lg);
    line-height: var(--lh-lg); }
    html.ds2 input.cmdk-input::placeholder {
      color: var(--input-placeholder);
      opacity: 1; }
    html.ds2 input.cmdk-input:focus {
      outline: none;
      box-shadow: none; }
  html.ds2 .cmdk-chat {
    display: inline-flex;
    flex: none;
    align-items: center;
    gap: var(--sp-2);
    height: var(--control-h);
    padding: 0 var(--sp-2) 0 var(--sp-3);
    border: 1px solid var(--cmdk-edge);
    border-radius: var(--r-sm);
    background: transparent;
    color: var(--text-2);
    white-space: nowrap;
    cursor: pointer;
    font-size: var(--fs-sm);
    line-height: var(--lh-sm);
    font-weight: var(--fw-semibold);
    transition: border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease); }
    html.ds2 .cmdk-chat:hover {
      border-color: transparent;
      background: linear-gradient(var(--cmdk-bg), var(--cmdk-bg)) padding-box, var(--ai-edge) border-box;
      color: var(--title); }
    html.ds2 .cmdk-chat kbd {
      padding: 0 var(--sp-1);
      border: 0;
      border-radius: 4px;
      background: var(--n-50);
      color: var(--text-3);
      font-family: inherit;
      font-size: var(--fs-xs);
      font-weight: var(--fw-semibold);
      box-shadow: none; }
  @media (max-width: 599px) {
    html.ds2 .cmdk-chat-label,
    html.ds2 .cmdk-chat kbd {
      display: none; }
    html.ds2 .cmdk-chat {
      min-width: 44px;
      min-height: 44px;
      justify-content: center;
      padding: 0; } }
  html.ds2 .cmdk-close {
    display: none;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    padding: 0;
    border: 0;
    border-radius: var(--r-sm);
    background: transparent;
    color: var(--text-3);
    cursor: pointer; }
  html.ds2 .cmdk-list {
    flex: 1 1 auto;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: var(--sp-1) var(--sp-2) var(--sp-2);
    scrollbar-width: thin;
    scrollbar-color: var(--line) transparent; }
  html.ds2 .cmdk-group + .cmdk-group {
    margin-top: var(--sp-1); }
  html.ds2 .cmdk-group-title {
    padding: var(--sp-3) var(--sp-3) var(--sp-1);
    color: var(--text-3);
    font-size: var(--fs-xs);
    line-height: var(--lh-xs);
    font-weight: var(--fw-semibold); }
  html.ds2 .cmdk-opt {
    display: flex;
    align-items: center;
    gap: var(--sp-3);
    min-height: calc(var(--sp-8) + var(--sp-2));
    padding: 0 var(--sp-3);
    border-radius: var(--r-sm);
    color: var(--text);
    cursor: pointer;
    font-size: var(--fs-md);
    line-height: var(--lh-md); }
    html.ds2 .cmdk-opt.is-active {
      background: var(--cmdk-active); }
      html.ds2 .cmdk-opt.is-active .cmdk-opt-icon {
        color: var(--text-2); }
  html.ds2.ds2-compact .cmdk-opt {
    min-height: var(--sp-8); }
  html.ds2 .cmdk-opt-icon {
    display: inline-flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: var(--sp-5);
    color: var(--text-3);
    font-size: var(--fs-lg);
    line-height: 1; }
    html.ds2 .cmdk-opt-icon svg {
      width: var(--sp-4);
      height: var(--sp-4); }
  html.ds2 .cmdk-opt-label {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap; }
    html.ds2 .cmdk-opt-label mark {
      padding: 0;
      background: transparent;
      color: var(--title);
      font-weight: var(--fw-semibold); }
  html.ds2 .cmdk-opt-meta {
    flex: none;
    color: var(--text-3);
    font-size: var(--fs-xs);
    line-height: var(--lh-xs); }
    html.ds2 .cmdk-opt-meta kbd {
      display: inline-grid;
      place-items: center;
      min-width: 18px;
      height: 18px;
      padding: 0 var(--sp-1);
      border: 0;
      border-radius: 4px;
      background: var(--n-50);
      color: var(--text-3);
      font-family: inherit;
      font-size: var(--fs-xs);
      box-shadow: none; }
  html.ds2 .cmdk-group-ask {
    margin-top: var(--sp-1);
    padding-top: var(--sp-1);
    border-top: 1px solid var(--cmdk-edge); }
  html.ds2 .cmdk-opt-ask q {
    color: var(--title);
    quotes: '« ' ' »'; }
  html.ds2 .cmdk-ai-logo {
    display: inline-block;
    width: var(--sp-4);
    height: var(--sp-4);
    background: var(--brand-500);
    -webkit-mask: url("/Content/Images/gillia-logo-short.svg") center/contain no-repeat;
    mask: url("/Content/Images/gillia-logo-short.svg") center/contain no-repeat; }
  html.ds2 .cmdk-hint {
    padding: var(--sp-3) var(--sp-3) var(--sp-2);
    color: var(--text-3);
    font-size: var(--fs-xs);
    line-height: var(--lh-xs); }
  html.ds2 .cmdk-hint-status {
    padding-top: var(--sp-2);
    font-style: italic; }
  html.ds2 .cmdk-serial {
    padding: var(--sp-1) var(--sp-2) var(--sp-2); }
  html.ds2 .cmdk-back {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-2);
    margin: 0 0 var(--sp-3);
    padding: var(--sp-1) var(--sp-2);
    border: 0;
    border-radius: var(--r-sm);
    background: transparent;
    color: var(--text-2);
    cursor: pointer;
    font-size: var(--fs-sm);
    line-height: var(--lh-sm);
    font-weight: var(--fw-semibold); }
    html.ds2 .cmdk-back:hover {
      background: var(--cmdk-active);
      color: var(--title); }
  html.ds2 .cmdk-serial-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--sp-2) var(--sp-3);
    padding: 0 var(--sp-2); }
  html.ds2 .cmdk-serial-title {
    color: var(--title);
    font-size: var(--fs-lg);
    line-height: var(--lh-lg);
    font-weight: var(--fw-semibold); }
  html.ds2 .cmdk-serial-meta {
    margin-top: var(--sp-1);
    padding: 0 var(--sp-2);
    color: var(--text-2);
    font-size: var(--fs-sm);
    line-height: var(--lh-sm); }
  html.ds2 .cmdk-link {
    color: var(--brand-text);
    text-decoration: none; }
    html.ds2 .cmdk-link:hover {
      text-decoration: underline;
      text-underline-offset: 3px; }
  html.ds2 .cmdk-timeline {
    margin: var(--sp-3) 0 0;
    padding: 0;
    list-style: none; }
  html.ds2 .cmdk-ev {
    display: grid;
    grid-template-columns: 7.5em minmax(0, 1fr) auto auto;
    align-items: baseline;
    gap: var(--sp-3);
    padding: var(--sp-2);
    border-top: 1px solid var(--cmdk-edge);
    font-size: var(--fs-sm);
    line-height: var(--lh-sm); }
    html.ds2 .cmdk-ev .cmdk-ev-date {
      color: var(--text-3);
      font-variant-numeric: tabular-nums; }
    html.ds2 .cmdk-ev .cmdk-ev-kind {
      color: var(--title);
      font-weight: var(--fw-semibold); }
    html.ds2 .cmdk-ev .cmdk-ev-ref,
    html.ds2 .cmdk-ev .cmdk-ev-who {
      color: var(--text-2);
      white-space: nowrap; }
  html.ds2 .cmdk-foot {
    display: flex;
    flex: none;
    justify-content: flex-end;
    gap: var(--sp-4);
    padding: var(--sp-2) var(--sp-3);
    border-top: 1px solid var(--cmdk-edge);
    background: var(--surface-sunk);
    color: var(--text-3);
    font-size: var(--fs-xs);
    line-height: var(--lh-xs); }
    html.ds2 .cmdk-foot kbd {
      display: inline-grid;
      place-items: center;
      min-width: 18px;
      height: 18px;
      margin-right: 2px;
      padding: 0 var(--sp-1);
      border: 0;
      border-radius: 4px;
      background: var(--n-100);
      color: var(--text-2);
      font-family: inherit;
      font-size: var(--fs-xs);
      box-shadow: none; }
  html.ds2.ds2-dark .cmdk-foot {
    background: rgba(255, 255, 255, 0.03); }
  html.ds2 .cmdk-live {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap; }
  @media (max-width: 599px) {
    html.ds2 dialog.cmdk {
      inset: 0;
      width: 100vw;
      height: var(--cmdk-vvh, 100dvh); }
    html.ds2 .cmdk-box {
      height: 100%;
      max-height: none;
      border: 0;
      border-radius: 0; }
    html.ds2 input.cmdk-input {
      font-size: max(16px, var(--fs-lg)); }
    html.ds2 .cmdk-close {
      display: inline-flex; }
    html.ds2 .cmdk-opt {
      min-height: 44px; }
    html.ds2 .cmdk-foot {
      display: none; } }

@keyframes cmdk-in {
  from {
    opacity: 0;
    transform: scale(0.98); }
  to {
    opacity: 1;
    transform: none; } }
html.ds2.ds2-dark {
  color-scheme: dark;
  --n-0: #181B19;
  --n-25: #1E2220;
  --n-50: #141715;
  --n-100: #222624;
  --n-150: #2C312E;
  --n-200: #3A403C;
  --n-300: #545B57;
  --n-400: #737B76;
  --n-500: #979F9A;
  --n-600: #BCC4BF;
  --n-800: #E6EBE8;
  --n-900: #F4F7F5;
  --title: var(--n-900);
  --ink: #CFE6DA;
  --viz-1: var(--brand-500);
  --viz-2: #5E8BC7;
  --viz-3: #B98939;
  --viz-4: #A5649E;
  --viz-5: #DB7059;
  --viz-6: #646C67;
  --shell-bg: #0F1110;
  --shell-hover: rgba(255, 255, 255, .06);
  --sh-canvas: 0 0 0 1px rgba(255, 255, 255, .06), 0 1px 2px rgba(0, 0, 0, .4);
  --sh-shell-active: 0 0 0 1px rgba(255, 255, 255, .07), 0 1px 2px rgba(0, 0, 0, .4);
  --brand-50: #192D26;
  --brand-100: #193A2F;
  --brand-200: #1A4F3E;
  --brand-300: #1B6A50;
  --brand-400: #1C8463;
  --brand-500: #1D9E75;
  --brand-600: #4AB191;
  --brand-700: #73C3A9;
  --brand-800: #97D2C0;
  --brand-900: #BBE2D6;
  --brand-solid: #17775A;
  --brand-solid-hover: #188562;
  --brand-text: var(--brand-600);
  --on-brand: #FFFFFF;
  --focus-ring: 0 0 0 3px rgba(74, 177, 145, .7);
  --danger-fg: #FDA29B;
  --danger-bg: rgba(249, 112, 102, .14);
  --danger-solid: #F97066;
  --danger-line: rgba(249, 112, 102, .4);
  --warn-fg: #FEC84B;
  --warn-bg: rgba(253, 176, 34, .14);
  --warn-solid: #FDB022;
  --warn-line: rgba(253, 176, 34, .4);
  --ok-fg: #75E0A7;
  --ok-bg: rgba(71, 205, 137, .14);
  --ok-solid: #47CD89;
  --ok-line: rgba(71, 205, 137, .4);
  --info-fg: #84CAFF;
  --info-bg: rgba(83, 177, 253, .14);
  --info-solid: #53B1FD;
  --info-line: rgba(83, 177, 253, .4);
  --warn-bg-strong: rgba(253, 176, 34, .24);
  --warn-fg-strong: #FEDF89;
  --danger-bg-strong: rgba(249, 112, 102, .24);
  --danger-fg-strong: #FECDCA;
  --info-bg-strong: rgba(83, 177, 253, .24);
  --info-fg-strong: #B2DDFF;
  --sh-xs: inset 0 0 0 1px rgba(255, 255, 255, .04), 0 1px 2px rgba(0, 0, 0, .4);
  --sh-sm: inset 0 0 0 1px rgba(255, 255, 255, .05), 0 1px 3px rgba(0, 0, 0, .5), 0 1px 2px rgba(0, 0, 0, .3);
  --sh-md: inset 0 0 0 1px rgba(255, 255, 255, .06), 0 4px 12px rgba(0, 0, 0, .5), 0 2px 4px rgba(0, 0, 0, .3);
  --sh-lg: inset 0 0 0 1px rgba(255, 255, 255, .07), 0 16px 40px rgba(0, 0, 0, .6), 0 4px 12px rgba(0, 0, 0, .4);
  --overlay: rgba(0, 0, 0, .6);
  --ct-badge-success-bg: var(--ok-bg);
  --ct-badge-success-fg: var(--ok-fg);
  --ct-badge-neutral-bg: var(--surface-sunk);
  --ct-badge-neutral-fg: var(--text-2);
  --ct-badge-danger-bg: var(--danger-bg);
  --ct-badge-danger-fg: var(--danger-fg);
  --ct-badge-warn-bg: var(--warn-bg);
  --ct-badge-warn-fg: var(--warn-fg);
  --ct-badge-info-bg: var(--info-bg);
  --ct-badge-info-fg: var(--info-fg);
  --purple: #BDB4FE;
  --purple-bg: #27224A;
  --ct-badge-purple-bg: var(--purple-bg);
  --ct-badge-purple-fg: var(--purple); }

html.ds2.ds2-dark :is(select.form-control, .dynDropDown select, .dynInput select):not([multiple], [size], .nocurcor) {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5 6 8l3.5-3.5' fill='none' stroke='%23A69F97' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }

html.ds2.ds2-dark .trial-banner:not(.readonly-banner) {
  color: var(--on-brand) !important; }

html.ds2.ds2-dark .readonly-banner {
  color: var(--n-0) !important; }

html.ds2.ds2-dark .sidebar-header .inst-logo {
  background-color: var(--n-100) !important;
  border-radius: var(--r-sm) !important; }

html.ds2.ds2-dark :is(.selectbox, .menu_navbar_div, .notificationBox) {
  background-color: var(--surface);
  color: var(--text); }

html.ds2.ds2-dark :is(.selectbox, .menu_navbar_div, .notificationBox)::before,
html.ds2.ds2-dark :is(.selectbox, .menu_navbar_div, .notificationBox)::after {
  border-bottom-color: var(--surface); }

html.ds2.ds2-dark .selectbox .boxheader {
  color: var(--text); }

html.ds2.ds2-dark :is(.doc-inline-paper, .doc-preview-frame, .constructor, .shop_preview_container, .theme-preview-box, .mail-preview-pane, .mail-preview-frame) {
  --n-0: #FFFFFF;
  --n-25: #FCFBFA;
  --n-50: #F7F6F4;
  --n-100: #EFEDEA;
  --n-150: #E6E3DF;
  --n-200: #D9D5D0;
  --n-300: #BDB8B1;
  --n-400: #8F8A84;
  --n-500: #6F6A64;
  --n-600: #57534E;
  --n-800: #292524;
  --n-900: #1C1917;
  --text: var(--n-800);
  --text-2: var(--n-600);
  --text-3: var(--n-500);
  --title: var(--n-900);
  --ink: #0B3B2C;
  --page-bg: var(--n-50);
  --surface: var(--n-0);
  --surface-sunk: var(--n-100);
  --line: var(--n-150);
  --line-strong: var(--n-200);
  --field-line: var(--n-400);
  --control-line: var(--n-200);
  --shell-bg: #EEEFE9;
  --shell-hover: rgba(28, 25, 23, .06);
  --shell-active: var(--n-0);
  --canvas-gap: var(--sp-2);
  --r-canvas: 12px;
  --sh-canvas: 0 0 0 1px rgba(28, 25, 23, .06), 0 1px 2px rgba(28, 25, 23, .04);
  --sh-shell-active: 0 0 0 1px rgba(28, 25, 23, .06), 0 1px 2px rgba(28, 25, 23, .05);
  --canvas-edge: color-mix(in srgb, var(--n-900) 6%, var(--shell-bg));
  --brand-50: #ECF8F3;
  --brand-100: #D3EFE3;
  --brand-200: #A9DFC9;
  --brand-300: #6FC7A5;
  --brand-400: #3BAF86;
  --brand-500: #1D9E75;
  --brand-600: #13805E;
  --brand-700: #0F6A4F;
  --brand-800: #0C5440;
  --brand-900: #0A3D2F;
  --brand-solid: var(--brand-600);
  --brand-solid-hover: var(--brand-700);
  --brand-text: var(--brand-700);
  --on-brand: #FFFFFF;
  --focus-ring: 0 0 0 3px rgba(29, 158, 117, .35);
  --ai-edge: linear-gradient(135deg, var(--brand-400), var(--brand-600));
  --danger-fg: #B42318;
  --danger-bg: #FEF3F2;
  --danger-solid: #D92D20;
  --danger-line: #FECDCA;
  --warn-fg: #93370D;
  --warn-bg: #FFFAEB;
  --warn-solid: #F79009;
  --warn-line: #FEDF89;
  --ok-fg: #067647;
  --ok-bg: #ECFDF3;
  --ok-solid: #079455;
  --ok-line: #ABEFC6;
  --info-fg: #1849A9;
  --info-bg: #EFF8FF;
  --info-solid: #1570EF;
  --info-line: #B2DDFF;
  --warn-bg-strong: #FEF0C7;
  --warn-fg-strong: #7A2E0E;
  --danger-bg-strong: #FEE4E2;
  --danger-fg-strong: #912018;
  --info-bg-strong: #D1E9FF;
  --info-fg-strong: #194185;
  --dot: 6px;
  --viz-1: var(--brand-500);
  --viz-2: #4570A8;
  --viz-3: #B8873A;
  --viz-4: #8E5689;
  --viz-5: #CF6B55;
  --viz-6: var(--n-500);
  --ct-font: var(--font-ui);
  --ct-mono: var(--font-ui);
  --ct-surface: var(--surface);
  --ct-page-bg: var(--page-bg);
  --ct-border: var(--line);
  --ct-border-md: var(--line-strong);
  --ct-text-1: var(--text);
  --ct-text-2: var(--text-2);
  --ct-text-3: var(--text-3);
  --ct-accent: var(--brand-solid);
  --ct-accent-hover: var(--brand-solid-hover);
  --ct-r-sm: var(--r-sm);
  --ct-r-md: var(--r-md);
  --ct-r-lg: var(--r-lg);
  --ct-row-hover: var(--n-25);
  --accent: var(--brand-solid);
  --accent-hover: var(--brand-solid-hover);
  --accent-light: var(--brand-50);
  --border: var(--line);
  --border-md: var(--line-strong);
  --text-1: var(--text);
  --danger: var(--danger-fg);
  --warn: var(--warn-fg);
  --success: var(--ok-fg);
  --success-bg: var(--ok-bg);
  --info: var(--info-fg);
  --font: var(--font-ui);
  --mono: var(--font-ui);
  --red-danger: var(--danger-fg);
  --red-danger-bg: var(--danger-bg);
  --green-success: var(--ok-fg);
  --yellow-warning: var(--warn-fg);
  --yellow-warning-bg: var(--warn-bg);
  --border-radius-little: var(--r-sm);
  --border-radius-medium: var(--r-md);
  --bs-body-font-family: var(--font-ui);
  --bs-body-color: var(--text);
  --bs-body-bg: var(--page-bg);
  --bs-secondary-color: var(--text-2);
  --bs-border-color: var(--line);
  --bs-border-radius: var(--r-sm);
  --blue-selected: var(--brand-solid);
  --blue-dark: var(--n-500);
  --blue-dim: var(--n-900);
  --blue-light: var(--n-100);
  --blue-medium: var(--n-150);
  --background-color: var(--n-50);
  --text-color: var(--n-800);
  --title-color: var(--title);
  --link-color: var(--brand-text);
  --menu-background-color: var(--page-bg);
  --menu-text-color: var(--text);
  --input-background-color: var(--surface);
  --selected-opacity: var(--brand-50);
  --color-primary: var(--brand-solid);
  --color-primary-hover: var(--brand-solid-hover);
  --brand-solid: var(--ds2-light-brand-solid, var(--brand-600));
  --brand-solid-hover: var(--ds2-light-brand-solid-hover, var(--brand-700));
  --brand-text: var(--ds2-light-brand-text, var(--brand-700));
  --on-brand: var(--ds2-light-on-brand, var(--n-0));
  color-scheme: light;
  color: var(--text); }

html.ds2.ds2-dark :is([style*="background:#fff;" i], [style*="background:#fff " i], [style$="background:#fff" i], [style*="background:#ffffff;" i], [style*="background:#ffffff " i], [style$="background:#ffffff" i], [style*="background:white;" i], [style*="background:white " i], [style$="background:white" i], [style*="background:rgb(255, 255, 255);" i], [style*="background:rgb(255, 255, 255) " i], [style$="background:rgb(255, 255, 255)" i], [style*="background: #fff;" i], [style*="background: #fff " i], [style$="background: #fff" i], [style*="background: #ffffff;" i], [style*="background: #ffffff " i], [style$="background: #ffffff" i], [style*="background: white;" i], [style*="background: white " i], [style$="background: white" i], [style*="background: rgb(255, 255, 255);" i], [style*="background: rgb(255, 255, 255) " i], [style$="background: rgb(255, 255, 255)" i], [style*="background-color:#fff;" i], [style*="background-color:#fff " i], [style$="background-color:#fff" i], [style*="background-color:#ffffff;" i], [style*="background-color:#ffffff " i], [style$="background-color:#ffffff" i], [style*="background-color:white;" i], [style*="background-color:white " i], [style$="background-color:white" i], [style*="background-color:rgb(255, 255, 255);" i], [style*="background-color:rgb(255, 255, 255) " i], [style$="background-color:rgb(255, 255, 255)" i], [style*="background-color: #fff;" i], [style*="background-color: #fff " i], [style$="background-color: #fff" i], [style*="background-color: #ffffff;" i], [style*="background-color: #ffffff " i], [style$="background-color: #ffffff" i], [style*="background-color: white;" i], [style*="background-color: white " i], [style$="background-color: white" i], [style*="background-color: rgb(255, 255, 255);" i], [style*="background-color: rgb(255, 255, 255) " i], [style$="background-color: rgb(255, 255, 255)" i]) {
  background-color: var(--surface) !important; }

html.ds2.ds2-dark :is([style*="background:#eee;" i], [style*="background:#eee " i], [style$="background:#eee" i], [style*="background:#eeeeee;" i], [style*="background:#eeeeee " i], [style$="background:#eeeeee" i], [style*="background:#f0f0f0;" i], [style*="background:#f0f0f0 " i], [style$="background:#f0f0f0" i], [style*="background:#f5f5f5;" i], [style*="background:#f5f5f5 " i], [style$="background:#f5f5f5" i], [style*="background:#fafafa;" i], [style*="background:#fafafa " i], [style$="background:#fafafa" i], [style*="background:#f8f9fa;" i], [style*="background:#f8f9fa " i], [style$="background:#f8f9fa" i], [style*="background:rgb(245, 245, 245);" i], [style*="background:rgb(245, 245, 245) " i], [style$="background:rgb(245, 245, 245)" i], [style*="background: #eee;" i], [style*="background: #eee " i], [style$="background: #eee" i], [style*="background: #eeeeee;" i], [style*="background: #eeeeee " i], [style$="background: #eeeeee" i], [style*="background: #f0f0f0;" i], [style*="background: #f0f0f0 " i], [style$="background: #f0f0f0" i], [style*="background: #f5f5f5;" i], [style*="background: #f5f5f5 " i], [style$="background: #f5f5f5" i], [style*="background: #fafafa;" i], [style*="background: #fafafa " i], [style$="background: #fafafa" i], [style*="background: #f8f9fa;" i], [style*="background: #f8f9fa " i], [style$="background: #f8f9fa" i], [style*="background: rgb(245, 245, 245);" i], [style*="background: rgb(245, 245, 245) " i], [style$="background: rgb(245, 245, 245)" i], [style*="background-color:#eee;" i], [style*="background-color:#eee " i], [style$="background-color:#eee" i], [style*="background-color:#eeeeee;" i], [style*="background-color:#eeeeee " i], [style$="background-color:#eeeeee" i], [style*="background-color:#f0f0f0;" i], [style*="background-color:#f0f0f0 " i], [style$="background-color:#f0f0f0" i], [style*="background-color:#f5f5f5;" i], [style*="background-color:#f5f5f5 " i], [style$="background-color:#f5f5f5" i], [style*="background-color:#fafafa;" i], [style*="background-color:#fafafa " i], [style$="background-color:#fafafa" i], [style*="background-color:#f8f9fa;" i], [style*="background-color:#f8f9fa " i], [style$="background-color:#f8f9fa" i], [style*="background-color:rgb(245, 245, 245);" i], [style*="background-color:rgb(245, 245, 245) " i], [style$="background-color:rgb(245, 245, 245)" i], [style*="background-color: #eee;" i], [style*="background-color: #eee " i], [style$="background-color: #eee" i], [style*="background-color: #eeeeee;" i], [style*="background-color: #eeeeee " i], [style$="background-color: #eeeeee" i], [style*="background-color: #f0f0f0;" i], [style*="background-color: #f0f0f0 " i], [style$="background-color: #f0f0f0" i], [style*="background-color: #f5f5f5;" i], [style*="background-color: #f5f5f5 " i], [style$="background-color: #f5f5f5" i], [style*="background-color: #fafafa;" i], [style*="background-color: #fafafa " i], [style$="background-color: #fafafa" i], [style*="background-color: #f8f9fa;" i], [style*="background-color: #f8f9fa " i], [style$="background-color: #f8f9fa" i], [style*="background-color: rgb(245, 245, 245);" i], [style*="background-color: rgb(245, 245, 245) " i], [style$="background-color: rgb(245, 245, 245)" i]) {
  background-color: var(--surface-sunk) !important; }

html.ds2.ds2-dark :is([style*="color:#000;" i], [style*="color:#000 " i], [style$="color:#000" i], [style*="color:#000000;" i], [style*="color:#000000 " i], [style$="color:#000000" i], [style*="color:#111;" i], [style*="color:#111 " i], [style$="color:#111" i], [style*="color:#1a1a1a;" i], [style*="color:#1a1a1a " i], [style$="color:#1a1a1a" i], [style*="color:#222;" i], [style*="color:#222 " i], [style$="color:#222" i], [style*="color:#333;" i], [style*="color:#333 " i], [style$="color:#333" i], [style*="color:#333333;" i], [style*="color:#333333 " i], [style$="color:#333333" i], [style*="color:#444;" i], [style*="color:#444 " i], [style$="color:#444" i], [style*="color:black;" i], [style*="color:black " i], [style$="color:black" i], [style*="color:rgb(0, 0, 0);" i], [style*="color:rgb(0, 0, 0) " i], [style$="color:rgb(0, 0, 0)" i], [style*="color:rgb(51, 51, 51);" i], [style*="color:rgb(51, 51, 51) " i], [style$="color:rgb(51, 51, 51)" i], [style*="color: #000;" i], [style*="color: #000 " i], [style$="color: #000" i], [style*="color: #000000;" i], [style*="color: #000000 " i], [style$="color: #000000" i], [style*="color: #111;" i], [style*="color: #111 " i], [style$="color: #111" i], [style*="color: #1a1a1a;" i], [style*="color: #1a1a1a " i], [style$="color: #1a1a1a" i], [style*="color: #222;" i], [style*="color: #222 " i], [style$="color: #222" i], [style*="color: #333;" i], [style*="color: #333 " i], [style$="color: #333" i], [style*="color: #333333;" i], [style*="color: #333333 " i], [style$="color: #333333" i], [style*="color: #444;" i], [style*="color: #444 " i], [style$="color: #444" i], [style*="color: black;" i], [style*="color: black " i], [style$="color: black" i], [style*="color: rgb(0, 0, 0);" i], [style*="color: rgb(0, 0, 0) " i], [style$="color: rgb(0, 0, 0)" i], [style*="color: rgb(51, 51, 51);" i], [style*="color: rgb(51, 51, 51) " i], [style$="color: rgb(51, 51, 51)" i]):is(:not([style*="background" i]), [style*="background:#fff;" i], [style*="background:#fff " i], [style$="background:#fff" i], [style*="background:#ffffff;" i], [style*="background:#ffffff " i], [style$="background:#ffffff" i], [style*="background:white;" i], [style*="background:white " i], [style$="background:white" i], [style*="background:rgb(255, 255, 255);" i], [style*="background:rgb(255, 255, 255) " i], [style$="background:rgb(255, 255, 255)" i], [style*="background: #fff;" i], [style*="background: #fff " i], [style$="background: #fff" i], [style*="background: #ffffff;" i], [style*="background: #ffffff " i], [style$="background: #ffffff" i], [style*="background: white;" i], [style*="background: white " i], [style$="background: white" i], [style*="background: rgb(255, 255, 255);" i], [style*="background: rgb(255, 255, 255) " i], [style$="background: rgb(255, 255, 255)" i], [style*="background-color:#fff;" i], [style*="background-color:#fff " i], [style$="background-color:#fff" i], [style*="background-color:#ffffff;" i], [style*="background-color:#ffffff " i], [style$="background-color:#ffffff" i], [style*="background-color:white;" i], [style*="background-color:white " i], [style$="background-color:white" i], [style*="background-color:rgb(255, 255, 255);" i], [style*="background-color:rgb(255, 255, 255) " i], [style$="background-color:rgb(255, 255, 255)" i], [style*="background-color: #fff;" i], [style*="background-color: #fff " i], [style$="background-color: #fff" i], [style*="background-color: #ffffff;" i], [style*="background-color: #ffffff " i], [style$="background-color: #ffffff" i], [style*="background-color: white;" i], [style*="background-color: white " i], [style$="background-color: white" i], [style*="background-color: rgb(255, 255, 255);" i], [style*="background-color: rgb(255, 255, 255) " i], [style$="background-color: rgb(255, 255, 255)" i], [style*="background:#eee;" i], [style*="background:#eee " i], [style$="background:#eee" i], [style*="background:#eeeeee;" i], [style*="background:#eeeeee " i], [style$="background:#eeeeee" i], [style*="background:#f0f0f0;" i], [style*="background:#f0f0f0 " i], [style$="background:#f0f0f0" i], [style*="background:#f5f5f5;" i], [style*="background:#f5f5f5 " i], [style$="background:#f5f5f5" i], [style*="background:#fafafa;" i], [style*="background:#fafafa " i], [style$="background:#fafafa" i], [style*="background:#f8f9fa;" i], [style*="background:#f8f9fa " i], [style$="background:#f8f9fa" i], [style*="background:rgb(245, 245, 245);" i], [style*="background:rgb(245, 245, 245) " i], [style$="background:rgb(245, 245, 245)" i], [style*="background: #eee;" i], [style*="background: #eee " i], [style$="background: #eee" i], [style*="background: #eeeeee;" i], [style*="background: #eeeeee " i], [style$="background: #eeeeee" i], [style*="background: #f0f0f0;" i], [style*="background: #f0f0f0 " i], [style$="background: #f0f0f0" i], [style*="background: #f5f5f5;" i], [style*="background: #f5f5f5 " i], [style$="background: #f5f5f5" i], [style*="background: #fafafa;" i], [style*="background: #fafafa " i], [style$="background: #fafafa" i], [style*="background: #f8f9fa;" i], [style*="background: #f8f9fa " i], [style$="background: #f8f9fa" i], [style*="background: rgb(245, 245, 245);" i], [style*="background: rgb(245, 245, 245) " i], [style$="background: rgb(245, 245, 245)" i], [style*="background-color:#eee;" i], [style*="background-color:#eee " i], [style$="background-color:#eee" i], [style*="background-color:#eeeeee;" i], [style*="background-color:#eeeeee " i], [style$="background-color:#eeeeee" i], [style*="background-color:#f0f0f0;" i], [style*="background-color:#f0f0f0 " i], [style$="background-color:#f0f0f0" i], [style*="background-color:#f5f5f5;" i], [style*="background-color:#f5f5f5 " i], [style$="background-color:#f5f5f5" i], [style*="background-color:#fafafa;" i], [style*="background-color:#fafafa " i], [style$="background-color:#fafafa" i], [style*="background-color:#f8f9fa;" i], [style*="background-color:#f8f9fa " i], [style$="background-color:#f8f9fa" i], [style*="background-color:rgb(245, 245, 245);" i], [style*="background-color:rgb(245, 245, 245) " i], [style$="background-color:rgb(245, 245, 245)" i], [style*="background-color: #eee;" i], [style*="background-color: #eee " i], [style$="background-color: #eee" i], [style*="background-color: #eeeeee;" i], [style*="background-color: #eeeeee " i], [style$="background-color: #eeeeee" i], [style*="background-color: #f0f0f0;" i], [style*="background-color: #f0f0f0 " i], [style$="background-color: #f0f0f0" i], [style*="background-color: #f5f5f5;" i], [style*="background-color: #f5f5f5 " i], [style$="background-color: #f5f5f5" i], [style*="background-color: #fafafa;" i], [style*="background-color: #fafafa " i], [style$="background-color: #fafafa" i], [style*="background-color: #f8f9fa;" i], [style*="background-color: #f8f9fa " i], [style$="background-color: #f8f9fa" i], [style*="background-color: rgb(245, 245, 245);" i], [style*="background-color: rgb(245, 245, 245) " i], [style$="background-color: rgb(245, 245, 245)" i], [style*="background:transparent;" i], [style*="background:transparent " i], [style$="background:transparent" i], [style*="background:none;" i], [style*="background:none " i], [style$="background:none" i], [style*="background: transparent;" i], [style*="background: transparent " i], [style$="background: transparent" i], [style*="background: none;" i], [style*="background: none " i], [style$="background: none" i], [style*="background-color:transparent;" i], [style*="background-color:transparent " i], [style$="background-color:transparent" i], [style*="background-color:none;" i], [style*="background-color:none " i], [style$="background-color:none" i], [style*="background-color: transparent;" i], [style*="background-color: transparent " i], [style$="background-color: transparent" i], [style*="background-color: none;" i], [style*="background-color: none " i], [style$="background-color: none" i]) {
  color: var(--text) !important; }

html.ds2.ds2-dark :is([style*="color:#555;" i], [style*="color:#555 " i], [style$="color:#555" i], [style*="color:#555555;" i], [style*="color:#555555 " i], [style$="color:#555555" i], [style*="color:#666;" i], [style*="color:#666 " i], [style$="color:#666" i], [style*="color:#666666;" i], [style*="color:#666666 " i], [style$="color:#666666" i], [style*="color:rgb(85, 85, 85);" i], [style*="color:rgb(85, 85, 85) " i], [style$="color:rgb(85, 85, 85)" i], [style*="color:rgb(102, 102, 102);" i], [style*="color:rgb(102, 102, 102) " i], [style$="color:rgb(102, 102, 102)" i], [style*="color: #555;" i], [style*="color: #555 " i], [style$="color: #555" i], [style*="color: #555555;" i], [style*="color: #555555 " i], [style$="color: #555555" i], [style*="color: #666;" i], [style*="color: #666 " i], [style$="color: #666" i], [style*="color: #666666;" i], [style*="color: #666666 " i], [style$="color: #666666" i], [style*="color: rgb(85, 85, 85);" i], [style*="color: rgb(85, 85, 85) " i], [style$="color: rgb(85, 85, 85)" i], [style*="color: rgb(102, 102, 102);" i], [style*="color: rgb(102, 102, 102) " i], [style$="color: rgb(102, 102, 102)" i]):is(:not([style*="background" i]), [style*="background:#fff;" i], [style*="background:#fff " i], [style$="background:#fff" i], [style*="background:#ffffff;" i], [style*="background:#ffffff " i], [style$="background:#ffffff" i], [style*="background:white;" i], [style*="background:white " i], [style$="background:white" i], [style*="background:rgb(255, 255, 255);" i], [style*="background:rgb(255, 255, 255) " i], [style$="background:rgb(255, 255, 255)" i], [style*="background: #fff;" i], [style*="background: #fff " i], [style$="background: #fff" i], [style*="background: #ffffff;" i], [style*="background: #ffffff " i], [style$="background: #ffffff" i], [style*="background: white;" i], [style*="background: white " i], [style$="background: white" i], [style*="background: rgb(255, 255, 255);" i], [style*="background: rgb(255, 255, 255) " i], [style$="background: rgb(255, 255, 255)" i], [style*="background-color:#fff;" i], [style*="background-color:#fff " i], [style$="background-color:#fff" i], [style*="background-color:#ffffff;" i], [style*="background-color:#ffffff " i], [style$="background-color:#ffffff" i], [style*="background-color:white;" i], [style*="background-color:white " i], [style$="background-color:white" i], [style*="background-color:rgb(255, 255, 255);" i], [style*="background-color:rgb(255, 255, 255) " i], [style$="background-color:rgb(255, 255, 255)" i], [style*="background-color: #fff;" i], [style*="background-color: #fff " i], [style$="background-color: #fff" i], [style*="background-color: #ffffff;" i], [style*="background-color: #ffffff " i], [style$="background-color: #ffffff" i], [style*="background-color: white;" i], [style*="background-color: white " i], [style$="background-color: white" i], [style*="background-color: rgb(255, 255, 255);" i], [style*="background-color: rgb(255, 255, 255) " i], [style$="background-color: rgb(255, 255, 255)" i], [style*="background:#eee;" i], [style*="background:#eee " i], [style$="background:#eee" i], [style*="background:#eeeeee;" i], [style*="background:#eeeeee " i], [style$="background:#eeeeee" i], [style*="background:#f0f0f0;" i], [style*="background:#f0f0f0 " i], [style$="background:#f0f0f0" i], [style*="background:#f5f5f5;" i], [style*="background:#f5f5f5 " i], [style$="background:#f5f5f5" i], [style*="background:#fafafa;" i], [style*="background:#fafafa " i], [style$="background:#fafafa" i], [style*="background:#f8f9fa;" i], [style*="background:#f8f9fa " i], [style$="background:#f8f9fa" i], [style*="background:rgb(245, 245, 245);" i], [style*="background:rgb(245, 245, 245) " i], [style$="background:rgb(245, 245, 245)" i], [style*="background: #eee;" i], [style*="background: #eee " i], [style$="background: #eee" i], [style*="background: #eeeeee;" i], [style*="background: #eeeeee " i], [style$="background: #eeeeee" i], [style*="background: #f0f0f0;" i], [style*="background: #f0f0f0 " i], [style$="background: #f0f0f0" i], [style*="background: #f5f5f5;" i], [style*="background: #f5f5f5 " i], [style$="background: #f5f5f5" i], [style*="background: #fafafa;" i], [style*="background: #fafafa " i], [style$="background: #fafafa" i], [style*="background: #f8f9fa;" i], [style*="background: #f8f9fa " i], [style$="background: #f8f9fa" i], [style*="background: rgb(245, 245, 245);" i], [style*="background: rgb(245, 245, 245) " i], [style$="background: rgb(245, 245, 245)" i], [style*="background-color:#eee;" i], [style*="background-color:#eee " i], [style$="background-color:#eee" i], [style*="background-color:#eeeeee;" i], [style*="background-color:#eeeeee " i], [style$="background-color:#eeeeee" i], [style*="background-color:#f0f0f0;" i], [style*="background-color:#f0f0f0 " i], [style$="background-color:#f0f0f0" i], [style*="background-color:#f5f5f5;" i], [style*="background-color:#f5f5f5 " i], [style$="background-color:#f5f5f5" i], [style*="background-color:#fafafa;" i], [style*="background-color:#fafafa " i], [style$="background-color:#fafafa" i], [style*="background-color:#f8f9fa;" i], [style*="background-color:#f8f9fa " i], [style$="background-color:#f8f9fa" i], [style*="background-color:rgb(245, 245, 245);" i], [style*="background-color:rgb(245, 245, 245) " i], [style$="background-color:rgb(245, 245, 245)" i], [style*="background-color: #eee;" i], [style*="background-color: #eee " i], [style$="background-color: #eee" i], [style*="background-color: #eeeeee;" i], [style*="background-color: #eeeeee " i], [style$="background-color: #eeeeee" i], [style*="background-color: #f0f0f0;" i], [style*="background-color: #f0f0f0 " i], [style$="background-color: #f0f0f0" i], [style*="background-color: #f5f5f5;" i], [style*="background-color: #f5f5f5 " i], [style$="background-color: #f5f5f5" i], [style*="background-color: #fafafa;" i], [style*="background-color: #fafafa " i], [style$="background-color: #fafafa" i], [style*="background-color: #f8f9fa;" i], [style*="background-color: #f8f9fa " i], [style$="background-color: #f8f9fa" i], [style*="background-color: rgb(245, 245, 245);" i], [style*="background-color: rgb(245, 245, 245) " i], [style$="background-color: rgb(245, 245, 245)" i], [style*="background:transparent;" i], [style*="background:transparent " i], [style$="background:transparent" i], [style*="background:none;" i], [style*="background:none " i], [style$="background:none" i], [style*="background: transparent;" i], [style*="background: transparent " i], [style$="background: transparent" i], [style*="background: none;" i], [style*="background: none " i], [style$="background: none" i], [style*="background-color:transparent;" i], [style*="background-color:transparent " i], [style$="background-color:transparent" i], [style*="background-color:none;" i], [style*="background-color:none " i], [style$="background-color:none" i], [style*="background-color: transparent;" i], [style*="background-color: transparent " i], [style$="background-color: transparent" i], [style*="background-color: none;" i], [style*="background-color: none " i], [style$="background-color: none" i]) {
  color: var(--text-2) !important; }

html.ds2.ds2-dark :is([style*="color:#888;" i], [style*="color:#888 " i], [style$="color:#888" i], [style*="color:#999;" i], [style*="color:#999 " i], [style$="color:#999" i], [style*="color:#999999;" i], [style*="color:#999999 " i], [style$="color:#999999" i], [style*="color:#9ca1a7;" i], [style*="color:#9ca1a7 " i], [style$="color:#9ca1a7" i], [style*="color:#aaa;" i], [style*="color:#aaa " i], [style$="color:#aaa" i], [style*="color:rgb(153, 153, 153);" i], [style*="color:rgb(153, 153, 153) " i], [style$="color:rgb(153, 153, 153)" i], [style*="color: #888;" i], [style*="color: #888 " i], [style$="color: #888" i], [style*="color: #999;" i], [style*="color: #999 " i], [style$="color: #999" i], [style*="color: #999999;" i], [style*="color: #999999 " i], [style$="color: #999999" i], [style*="color: #9ca1a7;" i], [style*="color: #9ca1a7 " i], [style$="color: #9ca1a7" i], [style*="color: #aaa;" i], [style*="color: #aaa " i], [style$="color: #aaa" i], [style*="color: rgb(153, 153, 153);" i], [style*="color: rgb(153, 153, 153) " i], [style$="color: rgb(153, 153, 153)" i]):is(:not([style*="background" i]), [style*="background:#fff;" i], [style*="background:#fff " i], [style$="background:#fff" i], [style*="background:#ffffff;" i], [style*="background:#ffffff " i], [style$="background:#ffffff" i], [style*="background:white;" i], [style*="background:white " i], [style$="background:white" i], [style*="background:rgb(255, 255, 255);" i], [style*="background:rgb(255, 255, 255) " i], [style$="background:rgb(255, 255, 255)" i], [style*="background: #fff;" i], [style*="background: #fff " i], [style$="background: #fff" i], [style*="background: #ffffff;" i], [style*="background: #ffffff " i], [style$="background: #ffffff" i], [style*="background: white;" i], [style*="background: white " i], [style$="background: white" i], [style*="background: rgb(255, 255, 255);" i], [style*="background: rgb(255, 255, 255) " i], [style$="background: rgb(255, 255, 255)" i], [style*="background-color:#fff;" i], [style*="background-color:#fff " i], [style$="background-color:#fff" i], [style*="background-color:#ffffff;" i], [style*="background-color:#ffffff " i], [style$="background-color:#ffffff" i], [style*="background-color:white;" i], [style*="background-color:white " i], [style$="background-color:white" i], [style*="background-color:rgb(255, 255, 255);" i], [style*="background-color:rgb(255, 255, 255) " i], [style$="background-color:rgb(255, 255, 255)" i], [style*="background-color: #fff;" i], [style*="background-color: #fff " i], [style$="background-color: #fff" i], [style*="background-color: #ffffff;" i], [style*="background-color: #ffffff " i], [style$="background-color: #ffffff" i], [style*="background-color: white;" i], [style*="background-color: white " i], [style$="background-color: white" i], [style*="background-color: rgb(255, 255, 255);" i], [style*="background-color: rgb(255, 255, 255) " i], [style$="background-color: rgb(255, 255, 255)" i], [style*="background:#eee;" i], [style*="background:#eee " i], [style$="background:#eee" i], [style*="background:#eeeeee;" i], [style*="background:#eeeeee " i], [style$="background:#eeeeee" i], [style*="background:#f0f0f0;" i], [style*="background:#f0f0f0 " i], [style$="background:#f0f0f0" i], [style*="background:#f5f5f5;" i], [style*="background:#f5f5f5 " i], [style$="background:#f5f5f5" i], [style*="background:#fafafa;" i], [style*="background:#fafafa " i], [style$="background:#fafafa" i], [style*="background:#f8f9fa;" i], [style*="background:#f8f9fa " i], [style$="background:#f8f9fa" i], [style*="background:rgb(245, 245, 245);" i], [style*="background:rgb(245, 245, 245) " i], [style$="background:rgb(245, 245, 245)" i], [style*="background: #eee;" i], [style*="background: #eee " i], [style$="background: #eee" i], [style*="background: #eeeeee;" i], [style*="background: #eeeeee " i], [style$="background: #eeeeee" i], [style*="background: #f0f0f0;" i], [style*="background: #f0f0f0 " i], [style$="background: #f0f0f0" i], [style*="background: #f5f5f5;" i], [style*="background: #f5f5f5 " i], [style$="background: #f5f5f5" i], [style*="background: #fafafa;" i], [style*="background: #fafafa " i], [style$="background: #fafafa" i], [style*="background: #f8f9fa;" i], [style*="background: #f8f9fa " i], [style$="background: #f8f9fa" i], [style*="background: rgb(245, 245, 245);" i], [style*="background: rgb(245, 245, 245) " i], [style$="background: rgb(245, 245, 245)" i], [style*="background-color:#eee;" i], [style*="background-color:#eee " i], [style$="background-color:#eee" i], [style*="background-color:#eeeeee;" i], [style*="background-color:#eeeeee " i], [style$="background-color:#eeeeee" i], [style*="background-color:#f0f0f0;" i], [style*="background-color:#f0f0f0 " i], [style$="background-color:#f0f0f0" i], [style*="background-color:#f5f5f5;" i], [style*="background-color:#f5f5f5 " i], [style$="background-color:#f5f5f5" i], [style*="background-color:#fafafa;" i], [style*="background-color:#fafafa " i], [style$="background-color:#fafafa" i], [style*="background-color:#f8f9fa;" i], [style*="background-color:#f8f9fa " i], [style$="background-color:#f8f9fa" i], [style*="background-color:rgb(245, 245, 245);" i], [style*="background-color:rgb(245, 245, 245) " i], [style$="background-color:rgb(245, 245, 245)" i], [style*="background-color: #eee;" i], [style*="background-color: #eee " i], [style$="background-color: #eee" i], [style*="background-color: #eeeeee;" i], [style*="background-color: #eeeeee " i], [style$="background-color: #eeeeee" i], [style*="background-color: #f0f0f0;" i], [style*="background-color: #f0f0f0 " i], [style$="background-color: #f0f0f0" i], [style*="background-color: #f5f5f5;" i], [style*="background-color: #f5f5f5 " i], [style$="background-color: #f5f5f5" i], [style*="background-color: #fafafa;" i], [style*="background-color: #fafafa " i], [style$="background-color: #fafafa" i], [style*="background-color: #f8f9fa;" i], [style*="background-color: #f8f9fa " i], [style$="background-color: #f8f9fa" i], [style*="background-color: rgb(245, 245, 245);" i], [style*="background-color: rgb(245, 245, 245) " i], [style$="background-color: rgb(245, 245, 245)" i], [style*="background:transparent;" i], [style*="background:transparent " i], [style$="background:transparent" i], [style*="background:none;" i], [style*="background:none " i], [style$="background:none" i], [style*="background: transparent;" i], [style*="background: transparent " i], [style$="background: transparent" i], [style*="background: none;" i], [style*="background: none " i], [style$="background: none" i], [style*="background-color:transparent;" i], [style*="background-color:transparent " i], [style$="background-color:transparent" i], [style*="background-color:none;" i], [style*="background-color:none " i], [style$="background-color:none" i], [style*="background-color: transparent;" i], [style*="background-color: transparent " i], [style$="background-color: transparent" i], [style*="background-color: none;" i], [style*="background-color: none " i], [style$="background-color: none" i]) {
  color: var(--text-3) !important; }

html.ds2.ds2-dark [style*="border" i]:is([style*=" #ccc;" i], [style*=" #ccc " i], [style$=" #ccc" i], [style*=" #ddd;" i], [style*=" #ddd " i], [style$=" #ddd" i], [style*=" #dddddd;" i], [style*=" #dddddd " i], [style$=" #dddddd" i], [style*=" #e0e0e0;" i], [style*=" #e0e0e0 " i], [style$=" #e0e0e0" i], [style*=" #e5e7eb;" i], [style*=" #e5e7eb " i], [style$=" #e5e7eb" i], [style*=" #eee;" i], [style*=" #eee " i], [style$=" #eee" i], [style*=" #eeeeee;" i], [style*=" #eeeeee " i], [style$=" #eeeeee" i]) {
  border-color: var(--line) !important; }
/*# sourceMappingURL=styles.css.map */