/* =====================================================================
   v123 — 12 octobre 2026
   1. Formules : pourcentage de réduction
   2. Type de billet sous le tarif (fiche offre + éditeur)
   3. Contrôle Riviera-solutions : section « Infos pratiques »
   4. Administration → Gestion : tableau des formules plus compact
   ===================================================================== */

/* ---------- 1. Pourcentage de réduction sur les formules ---------- */
.offer-options > button em {
  display: inline-flex !important;
  flex-direction: column;
  align-items: flex-end;
  gap: 3px;
}
.offer-options .fs-option-discount {
  display: inline-block;
  padding: 1px 6px;
  border-radius: 999px;
  background: #e8f5ee;
  color: #1f6b47;
  font-size: 10.5px;
  font-style: normal;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .01em;
  white-space: nowrap;
}

/* ---------- 2. Type de billet ---------- */
.fs-ticket-terms {
  flex: 1 1 100%;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin-top: 4px;
}
.fs-ticket-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 9px;
  border: 1px solid #d6e2ea;
  border-radius: 999px;
  background: #fff;
  color: #31495c;
  font-size: 11.5px;
  font-weight: 600;
  line-height: 1.4;
}
.fs-ticket-chip svg { flex: none; color: #6b8293; }
.fs-ticket-chip.is-warn { border-color: #f0d9bd; background: #fff8ef; color: #8a5517; }
.fs-ticket-chip.is-warn svg { color: #b0742a; }
.fs-ticket-chip.is-ok { border-color: #cfe6d8; background: #f1f9f4; color: #24603f; }
.fs-ticket-chip.is-ok svg { color: #3a8a5f; }
.fs-ticket-note {
  flex: 1 1 100%;
  color: #687785;
  font-size: 11.5px;
  line-height: 1.45;
}

/* Éditeur */
.fs-ticket-editor { display: grid; gap: 10px; }
.fs-ticket-editor-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.fs-ticket-editor-head h4 { margin: 0; }
.fs-ticket-guess {
  padding: 5px 10px;
  border: 1px solid #c9dbe6;
  border-radius: 8px;
  background: #f4f8fb;
  color: #0f3a5c;
  font: inherit;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}
.fs-ticket-guess:hover { background: #e7f1f7; }
.fs-ticket-hint { margin: 0; padding: 7px 10px; border-radius: 8px; background: #eef6fb; color: #1d4a66; font-size: 12px; }
.fs-ticket-group { display: grid; gap: 6px; }
.fs-ticket-group-title { font-size: 12px; font-weight: 650; color: #4b5f6e; }
.fs-ticket-options { display: flex; flex-wrap: wrap; gap: 6px; }
.fs-ticket-option {
  padding: 5px 10px;
  border: 1px solid #d6e2ea;
  border-radius: 999px;
  background: #fff;
  color: #31495c;
  font: inherit;
  font-size: 12px;
  line-height: 1.35;
  cursor: pointer;
}
.fs-ticket-option:hover { border-color: #9fbfd2; }
.fs-ticket-option.is-selected { border-color: #1980ae; background: #eaf5fa; color: #075a7c; font-weight: 650; box-shadow: 0 0 0 2px #1980ae1a; }
.fs-ticket-other, .fs-ticket-date input, .fs-ticket-note-field input { width: 100%; }
.fs-ticket-date, .fs-ticket-note-field { display: grid; gap: 4px; font-size: 12px; color: #4b5f6e; }
.fs-ticket-date input { max-width: 220px; }
.fs-ticket-editor .fs-price-presentation-preview .fs-ticket-terms { margin-top: 2px; }

/* ---------- 3. Contrôle Riviera : infos pratiques ---------- */
.fs-riv-pill.violet.has-items b, .fs-riv-pill.violet.has-items .fs-riv-pill-icon { background: #f1edfa; color: #5b3f9e; }
.fs-riv-section.violet .fs-riv-section-count.has-items { background: #f1edfa; color: #5b3f9e; }
.fs-riv-section.violet .fs-riv-section-icon { background: #f1edfa; color: #5b3f9e; border-color: #ddd3f1; }

.fs-riv-info-list {
  list-style: none;
  margin: 10px 0 0;
  padding: 0;
  display: grid;
  gap: 6px;
}
.fs-riv-info-list > li {
  display: grid;
  grid-template-columns: 118px minmax(0, 1fr);
  align-items: start;
  gap: 10px;
  padding: 8px 10px;
  border: 1px solid #e3eaef;
  border-radius: 9px;
  background: #fbfcfd;
  font-size: 13px;
  line-height: 1.5;
  color: #22384a;
}
.fs-riv-info-list p { margin: 0; }
.fs-riv-info-tag {
  justify-self: start;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.5;
  white-space: nowrap;
}
.fs-riv-info-list > li.is-change .fs-riv-info-tag { background: #f1edfa; color: #5b3f9e; }
.fs-riv-info-list > li.is-add .fs-riv-info-tag { background: #e9f5ef; color: #287155; }
.fs-riv-info-list > li.is-remove .fs-riv-info-tag { background: #fff3f1; color: #a6443d; }
.fs-riv-info-list > li.is-remove p { color: #6c7b86; }
.fs-riv-info-change { display: grid; gap: 4px; }
.fs-riv-info-change p { display: grid; grid-template-columns: 70px minmax(0, 1fr); gap: 8px; }
.fs-riv-info-change small { font-size: 11px; font-weight: 650; color: #7a8a96; padding-top: 2px; }
.fs-riv-info-before span { color: #5d6f7c; }
.fs-riv-info-change del { background: #fde8e6; color: #a6443d; text-decoration: line-through; border-radius: 3px; padding: 0 2px; }
.fs-riv-info-change ins { background: #e3f4e9; color: #1f6b47; text-decoration: none; font-weight: 650; border-radius: 3px; padding: 0 2px; }
.fs-riv-info-full { margin: 8px 0 0; padding-left: 18px; font-size: 12.5px; line-height: 1.55; color: #3c5263; }
.fs-riv-card.is-info .fs-riv-partner-fold { margin-top: 10px; }

@media (max-width: 640px) {
  .fs-riv-info-list > li { grid-template-columns: 1fr; gap: 6px; }
  .fs-riv-info-change p { grid-template-columns: 1fr; gap: 2px; }
}

/* ---------- 4. Administration → Gestion : tableau des formules plus compact ----------
   Même design, tailles et espaces verticaux réduits. Portée limitée à cette page. */
#root .fs-admin-content:has(> .fs-formula-panel) > .fs-admin-task-grid { gap: 10px !important; }
#root .fs-admin-content:has(> .fs-formula-panel) > .fs-admin-task-grid > * {
  min-height: 0 !important;
  padding-top: 11px !important;
  padding-bottom: 11px !important;
}
#root .fs-admin-content:has(> .fs-formula-panel) > .fs-admin-task-grid small { margin-top: 1px !important; }
#root .fs-admin-v15 .fs-formula-panel { margin-top: 14px !important; }

/* En-tête du tableau */
#root .fs-admin-v15 .fs-formula-panel > header { padding: 13px 18px !important; gap: 14px !important; align-items: center !important; }
#root .fs-admin-v15 .fs-formula-panel > header .eyebrow { margin-bottom: 2px !important; font-size: 11px !important; }
#root .fs-admin-v15 .fs-formula-panel > header h2 { margin: 0 !important; font-size: 21px !important; line-height: 1.2 !important; }
#root .fs-admin-v15 .fs-formula-panel > header p:not(.eyebrow) { margin: 3px 0 0 !important; font-size: 12.5px !important; line-height: 1.4 !important; }
#root .fs-admin-v15 .fs-formula-panel .fs-formula-heading-actions { gap: 8px !important; }
#root .fs-admin-v15 .fs-formula-panel .fs-formula-heading-actions .fs-formula-count { padding: 5px 11px !important; font-size: 12.5px !important; }
#root .fs-admin-v15 .fs-formula-panel .fs-formula-heading-actions .fs-bulk-primary:not(#fs-v123) { min-height: 34px !important; padding: 6px 13px !important; font-size: 13px !important; }

/* Bandeau Excel */
#root .fs-admin-v15 .fs-formula-panel .fs-excel-toolbar { padding: 9px 18px !important; gap: 12px !important; }
#root .fs-admin-v15 .fs-formula-panel .fs-excel-toolbar :is(h3, strong) { font-size: 14.5px !important; line-height: 1.3 !important; margin: 0 !important; }
#root .fs-admin-v15 .fs-formula-panel .fs-excel-toolbar p { margin: 1px 0 0 !important; font-size: 12px !important; line-height: 1.4 !important; }
#root .fs-admin-v15 .fs-formula-panel .fs-excel-toolbar button:not(#fs-v123) { min-height: 32px !important; padding: 5px 11px !important; font-size: 12.5px !important; }

/* Recherche et filtres */
#root .fs-admin-v15 .fs-formula-panel .fs-formula-tools { padding: 10px 18px !important; gap: 8px 12px !important; }
#root .fs-admin-v15 .fs-formula-panel .fs-formula-tools label { gap: 3px !important; font-size: 11.5px !important; line-height: 1.4 !important; }
#root .fs-admin-v15 .fs-formula-panel .fs-formula-tools :is(input, select):not(#fs-v123) { height: 34px !important; min-height: 34px !important; padding-top: 5px !important; padding-bottom: 5px !important; font-size: 13px !important; }
#root .fs-admin-v15 .fs-formula-panel .fs-formula-tools :is(.fs-formula-reset, .fs-formula-toggle):not(#fs-v123) { min-height: 34px !important; height: 34px !important; padding-top: 5px !important; padding-bottom: 5px !important; font-size: 13px !important; align-self: end; }

/* Lignes du tableau */
#root .fs-admin-v15 .fs-formula-panel .fs-formula-table-scroll th {
  padding: 8px 9px !important;
  font-size: 11px !important;
  line-height: 1.3 !important;
}
#root .fs-admin-v15 .fs-formula-panel .fs-formula-table-scroll td {
  padding: 6px 9px !important;
  font-size: 13px !important;
  line-height: 1.35 !important;
  vertical-align: middle !important;
}
#root .fs-admin-v15 .fs-formula-panel .fs-formula-table-scroll td strong { font-size: 13px !important; line-height: 1.3 !important; }
#root .fs-admin-v15 .fs-formula-panel .fs-formula-table-scroll td small { margin-top: 1px !important; font-size: 11px !important; line-height: 1.3 !important; }
#root .fs-admin-v15 .fs-formula-panel .fs-formula-table-scroll td:first-child { min-width: 130px; }
#root .fs-admin-v15 .fs-formula-panel .fs-formula-table-scroll td:nth-child(2) { min-width: 150px; }
#root .fs-admin-v15 .fs-formula-panel .fs-formula-table-scroll td.fs-formula-description { min-width: 118px; font-size: 12px !important; color: #5b6b78; }
#root .fs-admin-v15 .fs-formula-panel .fs-formula-table-scroll td:nth-child(5) { font-size: 12px !important; }
#root .fs-admin-v15 .fs-formula-panel .fs-formula-table-scroll :is(td.fs-formula-money, #root td:nth-child(7), #root td:nth-child(8)) { white-space: nowrap; }
#root .fs-admin-v15 .fs-formula-panel .fs-formula-status { padding: 2px 8px !important; font-size: 10.5px !important; line-height: 1.5 !important; }
#root .fs-admin-v15 .fs-formula-panel td.fs-formula-action { padding-top: 4px !important; padding-bottom: 4px !important; white-space: nowrap; }
#root .fs-admin-v15 .fs-formula-panel :is(.fs-formula-edit, .fs-formula-delete) {
  width: 30px !important;
  height: 30px !important;
  min-width: 30px !important;
  min-height: 30px !important;
  border-radius: 8px !important;
}
#root .fs-admin-v15 .fs-formula-panel :is(.fs-formula-edit, .fs-formula-delete) svg { width: 15px !important; height: 15px !important; }

/* Pied de tableau */
#root .fs-admin-v15 .fs-formula-panel .fs-formula-pagination { padding: 8px 18px !important; gap: 14px !important; font-size: 12.5px !important; }
#root .fs-admin-v15 .fs-formula-panel .fs-formula-pagination select:not(#fs-v123) { height: 32px !important; min-height: 32px !important; padding-top: 4px !important; padding-bottom: 4px !important; font-size: 13px !important; }
#root .fs-admin-v15 .fs-formula-panel .fs-formula-pagination nav button:not(#fs-v123) { width: 32px !important; height: 32px !important; min-height: 32px !important; }

#root .fs-admin-v15 .fs-formula-panel .fs-formula-table-scroll th { white-space: normal !important; }
#root .fs-admin-v15 .fs-formula-panel .fs-formula-table-scroll td:nth-child(4) { min-width: 138px; }
#root .fs-admin-v15 .fs-formula-panel .fs-formula-table-scroll td:nth-child(5) { white-space: nowrap; }
#root .fs-admin-v15 .fs-formula-panel .fs-formula-table-scroll td.fs-formula-money { min-width: 96px; }

/* ---------- 5. Fiche offre : case « Type de billet » ---------- */
.fs-offer-dialog .modal-content > dl > .fs-ticket-fact dd { color: #0f3a5c !important; }

/* ---------- 6. Confirmation de demande (voucher / pré-demande) ---------- */
#root .fs-confirm-modal > h2 { margin-bottom: 14px !important; }
#root .fs-confirm-modal .fs-confirm-summary {
  margin: 0 0 12px;
  border: 1px solid #dfe8ee;
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
}
#root .fs-confirm-modal .fs-confirm-meta {
  margin: 0 !important;
  padding: 9px 16px;
  border-bottom: 1px solid #e8eef2;
  background: #f6f9fb;
  color: #5d7181;
  font-size: 12px !important;
  font-weight: 600;
  line-height: 1.4 !important;
}
#root .fs-confirm-modal .fs-confirm-line {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 16px;
  padding: 13px 16px;
}
#root .fs-confirm-modal .fs-confirm-line small {
  display: block;
  margin-bottom: 2px;
  color: #6a7f8e;
  font-size: 10.5px !important;
  font-weight: 650;
  letter-spacing: .05em;
  text-transform: uppercase;
}
#root .fs-confirm-modal .fs-confirm-line strong { display: block; color: #0b2742; font-size: 15px !important; font-weight: 700; line-height: 1.35; }
#root .fs-confirm-modal .fs-confirm-formula span { display: block; margin-top: 2px; color: #687785; font-size: 12px !important; }
#root .fs-confirm-modal .fs-confirm-qty { display: grid; justify-items: end; text-align: right; gap: 0; }
#root .fs-confirm-modal .fs-confirm-qty strong { white-space: nowrap; }
#root .fs-confirm-modal .fs-confirm-qty .fs-option-discount {
  margin-top: 4px;
  padding: 1px 7px;
  border-radius: 999px;
  background: #e8f5ee;
  color: #1f6b47;
  font-size: 10.5px;
  font-style: normal;
  font-weight: 700;
}
#root .fs-confirm-modal .fs-confirm-sum {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 16px;
  background: #0b2742;
  color: #fff;
}
#root .fs-confirm-modal .fs-confirm-sum span { font-size: 12px; font-weight: 650; letter-spacing: .06em; text-transform: uppercase; color: #c9d8e4; }
#root .fs-confirm-modal .fs-confirm-sum strong { color: #fff; font-size: 22px !important; font-weight: 800; line-height: 1.1; white-space: nowrap; }

/* Votre billet */
#root .fs-confirm-modal .fs-confirm-ticket {
  margin: 0 0 12px;
  padding: 11px 14px 12px;
  border: 1px solid #d6e2ea;
  border-radius: 12px;
  background: #f7fafc;
}
#root .fs-confirm-modal .fs-confirm-ticket.is-warn { border-color: #f0d9bd; background: #fffaf3; }
#root .fs-confirm-modal .fs-confirm-ticket-head { display: flex; align-items: center; gap: 6px; margin-bottom: 7px; color: #0b2742; }
#root .fs-confirm-modal .fs-confirm-ticket-head svg { width: 15px; height: 15px; color: #47677e; }
#root .fs-confirm-modal .fs-confirm-ticket-head strong { font-size: 13px !important; font-weight: 700; }
#root .fs-confirm-modal .fs-confirm-ticket .fs-ticket-terms { margin-top: 0; }
#root .fs-confirm-modal .fs-confirm-ticket-warn { margin: 8px 0 0 !important; color: #8a5517; font-size: 12.5px !important; font-weight: 600; line-height: 1.45 !important; }

/* Avertissement partenaires : plus discret */
#root .fs-confirm-modal .fs-confirm-notice {
  display: grid !important;
  grid-template-columns: 20px minmax(0, 1fr);
  align-items: start;
  gap: 10px !important;
  margin: 0 0 4px !important;
  padding: 10px 12px !important;
  border-radius: 10px !important;
}
#root .fs-confirm-modal .fs-confirm-notice > span {
  width: 20px !important;
  height: 20px !important;
  min-width: 20px !important;
  font-size: 11px !important;
  line-height: 20px !important;
}
#root .fs-confirm-modal .fs-confirm-notice p { font-size: 12px !important; line-height: 1.5 !important; }

/* Commentaire */
#root .fs-confirm-modal .fs-confirm-note { margin: 14px 0 12px !important; }
#root .fs-confirm-modal .fs-confirm-note > span { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; margin-bottom: 6px; }
#root .fs-confirm-modal .fs-confirm-note small { font-size: 12px !important; font-weight: 500 !important; text-transform: none; letter-spacing: 0; color: #7a8a96; }
#root .fs-confirm-modal .fs-confirm-note textarea { min-height: 70px; }

/* Paiement + actions */
#root .fs-confirm-modal .fs-voucher-payment-note {
  margin: 0 0 14px !important;
  padding: 10px 14px !important;
  border-left: 3px solid #1980ae !important;
  border-radius: 0 10px 10px 0 !important;
  font-size: 12.5px !important;
  line-height: 1.5 !important;
}
#root .fs-confirm-modal .fs-confirm-actions {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
}
#root .fs-confirm-modal .fs-confirm-back {
  flex: none;
  padding: 8px 4px !important;
  border: 0 !important;
  background: none !important;
  color: #3d5568 !important;
  font-size: 13.5px !important;
  font-weight: 600 !important;
  white-space: nowrap;
  cursor: pointer;
}
#root .fs-confirm-modal .fs-confirm-back:hover { color: #0b2742 !important; text-decoration: underline; }
#root .fs-confirm-modal .fs-confirm-actions .primary-button {
  flex: none !important;
  width: auto !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 13px 20px !important;
  white-space: nowrap !important;
  font-size: 13.5px !important;
}
@media (max-width: 640px) {
  #root .fs-confirm-modal .fs-confirm-actions { flex-direction: column-reverse !important; align-items: stretch !important; }
  #root .fs-confirm-modal .fs-confirm-actions .primary-button { width: 100% !important; white-space: normal !important; }
  #root .fs-confirm-modal .fs-confirm-back { align-self: center; }
  #root .fs-confirm-modal .fs-confirm-line { grid-template-columns: 1fr; gap: 8px; }
  #root .fs-confirm-modal .fs-confirm-qty { justify-items: start; text-align: left; }
}

/* ---------- 7. Réglages → Notifications par email (classement par thème) ---------- */
#root .fs-mail-v123 { display: grid; gap: 14px; }
#root .fs-mail-v123 .fs-mail-intro { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin: 0; }
#root .fs-mail-v123 .fs-mail-intro h2 { margin: 0 0 4px; }
#root .fs-mail-v123 .fs-mail-intro p { margin: 0; max-width: 760px; color: #5d6f7c; font-size: 13.5px; line-height: 1.5; }
#root .fs-mail-v123 .fs-mail-kpi { display: flex; align-items: center; gap: 10px; padding: 8px 14px; border: 1px solid #dfe8ee; border-radius: 12px; background: #fff; white-space: nowrap; }
#root .fs-mail-v123 .fs-mail-kpi strong { color: #0b2742; font-size: 26px; line-height: 1; font-weight: 800; }
#root .fs-mail-v123 .fs-mail-kpi span { color: #5d6f7c; font-size: 11.5px; line-height: 1.3; }

#root .fs-mail-v123 .fs-mail-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
#root .fs-mail-v123 .fs-mail-search { position: relative; flex: 1 1 320px; max-width: 460px; display: block; margin: 0; }
#root .fs-mail-v123 .fs-mail-search svg { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: #7a8a96; pointer-events: none; }
#root .fs-mail-v123 .fs-mail-search input:not(#fs-v123) { width: 100%; height: 38px; min-height: 38px; margin: 0; padding: 6px 12px 6px 36px; border: 1px solid #d6e2ea; border-radius: 10px; background: #fff; font-size: 13.5px; }
#root .fs-mail-v123 .fs-mail-filters { display: flex; flex-wrap: wrap; gap: 6px; }
#root .fs-mail-v123 .fs-mail-filter { display: inline-flex; align-items: center; gap: 7px; padding: 6px 12px; border: 1px solid #d6e2ea; border-radius: 999px; background: #fff; color: #31495c; font: inherit; font-size: 12.5px; font-weight: 600; cursor: pointer; }
#root .fs-mail-v123 .fs-mail-filter b { min-width: 20px; padding: 0 6px; border-radius: 999px; background: #eef3f6; color: #47677e; font-size: 11px; line-height: 18px; text-align: center; }
#root .fs-mail-v123 .fs-mail-filter:hover { border-color: #9fbfd2; }
#root .fs-mail-v123 .fs-mail-filter.is-active { border-color: #0b2742; background: #0b2742; color: #fff; }
#root .fs-mail-v123 .fs-mail-filter.is-active b { background: rgba(255,255,255,.18); color: #fff; }

#root .fs-mail-v123 .fs-mail-sections { display: grid; gap: 12px; min-width: 0; margin: 0; padding: 0; border: 0; }
#root .fs-mail-v123 .fs-mail-section > summary h3 { color: #0b2742; }
#root .fs-mail-v123 .fs-mail-section-body { padding: 0 20px 14px; }
#root .fs-mail-v123 .fs-mail-count.is-full { background: #e9f5ef !important; color: #287155 !important; }
#root .fs-mail-v123 .fs-mail-count.is-none { background: #eef2f5 !important; color: #6a7f8e !important; }
#root .fs-mail-v123 .fs-mail-count:not(.is-full):not(.is-none) { background: #fff3e7 !important; color: #9e641d !important; }

/* Lignes */
#root .fs-mail-v123 .fs-mail-rows { display: grid; }
#root .fs-mail-v123 .fs-mail-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 18px; padding: 12px 0; border-top: 1px solid #edf2f5; }
#root .fs-mail-v123 .fs-mail-section-body > .fs-mail-row:first-child, #root .fs-mail-v123 .fs-mail-rows > .fs-mail-row:first-child { border-top: 0; }
#root .fs-mail-v123 .fs-mail-row-title { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 9px; }
#root .fs-mail-v123 .fs-mail-row h4, #root .fs-mail-v123 .fs-mail-matrix-label h4 { margin: 0; color: #0b2742; font-size: 14px; font-weight: 700; line-height: 1.35; }
#root .fs-mail-v123 .fs-mail-row p, #root .fs-mail-v123 .fs-mail-matrix-label p { margin: 3px 0 0; color: #66788a; font-size: 12.5px; line-height: 1.45; }
#root .fs-mail-v123 .fs-mail-row.is-off h4, #root .fs-mail-v123 .fs-mail-matrix-cell.is-off .fs-mail-cell-caption { color: #6a7f8e; }
#root .fs-mail-v123 .fs-mail-to { padding: 1px 8px; border-radius: 999px; font-size: 10.5px; font-weight: 700; line-height: 1.6; white-space: nowrap; }
#root .fs-mail-v123 .fs-mail-to.is-admin { background: #e7f0f7; color: #1d4a66; }
#root .fs-mail-v123 .fs-mail-to.is-personal { background: #e9f5ef; color: #287155; }
#root .fs-mail-v123 .fs-mail-to.is-audience { background: #fff3e7; color: #9e641d; }
#root .fs-mail-v123 .fs-mail-row-side { display: flex; align-items: center; gap: 10px; }

/* Interrupteur Oui / Non */
#root .fs-mail-v123 .fs-mail-switch { display: inline-flex; align-items: center; gap: 7px; min-width: 76px; padding: 4px 6px; border: 0; background: none; color: #47677e; font: inherit; cursor: pointer; }
#root .fs-mail-v123 .fs-mail-switch-track { position: relative; flex: none; width: 34px; height: 20px; border-radius: 999px; background: #cdd7de; transition: background .15s; }
#root .fs-mail-v123 .fs-mail-switch-track span { position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(11,39,66,.25); transition: transform .15s; }
#root .fs-mail-v123 .fs-mail-switch.is-on .fs-mail-switch-track { background: #1f7a55; }
#root .fs-mail-v123 .fs-mail-switch.is-on .fs-mail-switch-track span { transform: translateX(14px); }
#root .fs-mail-v123 .fs-mail-switch b { font-size: 12.5px; font-weight: 700; color: #31495c; }
#root .fs-mail-v123 .fs-mail-switch.is-on b { color: #1f6b47; }
#root .fs-mail-v123 .fs-mail-switch:disabled { cursor: default; opacity: .75; }
#root .fs-mail-v123 .fs-mail-switch:focus-visible { outline: 2px solid #1980ae; outline-offset: 2px; border-radius: 8px; }

#root .fs-mail-v123 .fs-mail-preview { display: inline-flex; align-items: center; gap: 5px; padding: 5px 10px; border: 1px solid #d6e2ea; border-radius: 8px; background: #fff; color: #0f3a5c; font: inherit; font-size: 12px; font-weight: 600; cursor: pointer; white-space: nowrap; }
#root .fs-mail-v123 .fs-mail-preview:hover { background: #f2f7fa; border-color: #b9cfdc; }

#root .fs-mail-v123 .fs-mail-recipient { display: flex; align-items: center; gap: 8px; margin: 8px 0 0; font-size: 12px !important; font-weight: 600; color: #6a7f8e; }
#root .fs-mail-v123 .fs-mail-recipient span { white-space: nowrap; }
#root .fs-mail-v123 .fs-mail-recipient input:not(#fs-v123) { width: 100%; max-width: 320px; height: 32px; min-height: 32px; margin: 0; padding: 4px 10px; border: 1px solid #d6e2ea; border-radius: 8px; background: #fff; font-size: 13px; font-weight: 500; }

/* Demandes : alerte administration + accusé collaborateur */
#root .fs-mail-v123 .fs-mail-matrix { display: grid; }
#root .fs-mail-v123 .fs-mail-matrix-head, #root .fs-mail-v123 .fs-mail-matrix-row { display: grid; grid-template-columns: minmax(170px, 1fr) minmax(260px, 1.35fr) minmax(220px, 1fr); gap: 18px; }
#root .fs-mail-v123 .fs-mail-matrix-head { padding: 0 0 8px; border-bottom: 1px solid #e3eaef; color: #6a7f8e; font-size: 10.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
#root .fs-mail-v123 .fs-mail-matrix-row { align-items: start; padding: 12px 0; border-top: 1px solid #edf2f5; }
#root .fs-mail-v123 .fs-mail-matrix-head + .fs-mail-matrix-row { border-top: 0; }
#root .fs-mail-v123 .fs-mail-matrix-cell { display: grid; gap: 6px; }
#root .fs-mail-v123 .fs-mail-matrix-cell .fs-mail-recipient { margin: 0; }
#root .fs-mail-v123 .fs-mail-cell-caption { display: none; color: #47677e; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
#root .fs-mail-v123 .fs-mail-cell-controls { display: flex; align-items: center; gap: 10px; }
#root .fs-mail-v123 .fs-mail-cell-note { color: #7a8a96; font-size: 11.5px; }

#root .fs-mail-v123 .fs-mail-row.is-always { background: none; }
#root .fs-mail-v123 .fs-mail-always { padding: 3px 10px; border-radius: 999px; background: #eef2f5; color: #47677e; font-size: 11.5px; font-weight: 700; white-space: nowrap; }
#root .fs-mail-v123 .fs-mail-link { display: inline-block; margin-top: 8px; color: #075a7c; font-size: 13px; font-weight: 600; }
#root .fs-mail-v123 .fs-mail-empty { margin: 0; padding: 16px; border: 1px dashed #d6e2ea; border-radius: 12px; color: #6a7f8e; text-align: center; }
#root .fs-mail-v123 .fs-mail-footnote { margin: 10px 2px 0; color: #6a7f8e; font-size: 12px; }

#root .fs-mail-v123 .fs-mail-actions { margin-top: 12px; }
#root .fs-mail-v123 .fs-mail-actions-buttons { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
#root .fs-mail-v123 .fs-mail-actions .fs-mail-reset { padding: 9px 14px !important; border: 1px solid #c9d8e3 !important; border-radius: 10px !important; background: #fff !important; color: #0f3a5c !important; font-size: 13px !important; font-weight: 600 !important; box-shadow: none !important; }
#root .fs-mail-v123 .fs-mail-actions .fs-mail-reset:hover { background: #f2f7fa !important; }

@media (max-width: 900px) {
  #root .fs-mail-v123 .fs-mail-matrix-head { display: none; }
  #root .fs-mail-v123 .fs-mail-matrix-row { grid-template-columns: 1fr; gap: 10px; }
  #root .fs-mail-v123 .fs-mail-matrix-cell { padding: 10px 12px; border: 1px solid #e3eaef; border-radius: 10px; background: #fbfcfd; }
  #root .fs-mail-v123 .fs-mail-cell-caption { display: block; }
}
@media (max-width: 640px) {
  #root .fs-mail-v123 .fs-mail-intro { flex-direction: column; }
  #root .fs-mail-v123 .fs-mail-row { grid-template-columns: 1fr; gap: 8px; }
  #root .fs-mail-v123 .fs-mail-section-body { padding: 0 14px 12px; }
  #root .fs-mail-v123 .fs-mail-recipient { flex-wrap: wrap; }
  #root .fs-mail-v123 .fs-mail-recipient input:not(#fs-v123) { max-width: none; }
}
#root .fs-mail-v123 .fs-mail-preview:not(#fs-v123) { min-height: 0; height: 30px; padding: 0 10px; line-height: 1; }
#root .fs-mail-v123 .fs-mail-switch:not(#fs-v123) { min-height: 0; height: 30px; }
#root .fs-mail-v123 .fs-mail-filter:not(#fs-v123) { min-height: 0; height: 32px; }
#root .fs-mail-v123 .fs-mail-row { padding: 10px 0; }

/* ---------- 8. Statistiques annuelles ---------- */
#root .annual-comparison > div { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)) !important; gap: 10px !important; }
#root .fs-annual-empty { margin: 10px 0 0; padding: 10px 12px; border: 1px dashed #d6e2ea; border-radius: 10px; color: #6a7f8e; font-size: 12.5px; }

/* ---------- 9. Offres partenaires à lien direct (locations de ski) ---------- */
.fs-offer-dialog .modal-content > .fs-offer-unit-price.is-direct .fs-price-amount { color: #1f6b47 !important; }
.fs-direct-steps { margin: 4px 0 14px; padding: 14px 16px; border: 1px solid #d6e2ea; border-radius: 12px; background: #f7fafc; }
.fs-direct-steps-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 12px; margin-bottom: 10px; }
.fs-direct-steps-head strong { color: #0b2742; font-size: 14px; }
.fs-direct-steps-head span { padding: 2px 9px; border-radius: 999px; background: #e9f5ef; color: #287155; font-size: 11px; font-weight: 700; }
.fs-direct-steps ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.fs-direct-steps li { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 10px; align-items: start; color: #22384a; font-size: 13.5px; line-height: 1.5; }
.fs-direct-steps li b { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: #0b2742; color: #fff; font-size: 12px; }
.fs-direct-steps p { margin: 0; font-size: 13px; color: #31495c; }
.fs-direct-steps .fs-direct-note { margin-top: 10px; color: #687785; font-size: 12px; }
.fs-offer-dialog a.primary-button.fs-direct-cta { display: flex; align-items: center; justify-content: space-between; text-decoration: none; }

/* ---------- 10. Retouches : type de billet sans couleur, « Total à payer » espacé ---------- */
.fs-ticket-chip.is-warn, .fs-ticket-chip.is-ok { border-color: #d6e2ea; background: #fff; color: #31495c; }
.fs-ticket-chip.is-warn svg, .fs-ticket-chip.is-ok svg { color: #6b8293; }
#root .fs-confirm-modal .fs-confirm-ticket.is-warn { border-color: #d6e2ea; background: #f7fafc; }
#root .fs-confirm-modal .fs-confirm-ticket-warn { color: #31495c; }
.fs-offer-dialog .offer-quantity-selector .total-to-pay {
  display: flex !important;
  align-items: baseline !important;
  justify-content: space-between !important;
  gap: 14px !important;
  white-space: nowrap;
}

/* ---------- 11. Éditeur : offre à lien direct ---------- */
.fs-direct-editor { display: grid; gap: 10px; }
.fs-direct-editor h3 { margin: 0; }
.fs-direct-toggle { display: flex !important; align-items: flex-start; gap: 10px; padding: 10px 12px; border: 1px solid #d6e2ea; border-radius: 10px; background: #f7fafc; cursor: pointer; }
.fs-direct-toggle input { margin-top: 3px; }
.fs-direct-toggle span { display: grid; gap: 2px; }
.fs-direct-toggle small { color: #687785; font-weight: 400; }
.fs-direct-editor-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 14px; }
.fs-direct-field { display: grid; gap: 4px; }
.fs-direct-field input, .fs-direct-field textarea { width: 100%; }
.fs-direct-steps-field, .fs-direct-editor-preview { grid-column: 1 / -1; }
@media (max-width: 640px) { .fs-direct-editor-fields { grid-template-columns: 1fr; } }
#root .fs-direct-editor label.fs-direct-toggle:not(#fs-v123) { display: flex !important; flex-direction: row !important; grid-template-columns: none !important; align-items: flex-start !important; gap: 10px !important; text-align: left; }
#root .fs-direct-editor label.fs-direct-toggle input[type="checkbox"]:not(#fs-v123) { flex: none !important; width: 18px !important; height: 18px !important; min-width: 18px !important; min-height: 18px !important; margin: 2px 0 0 !important; padding: 0 !important; }
#root .fs-direct-editor label.fs-direct-toggle span { flex: 1 1 auto; }

/* ---------- 12. Statistiques annuelles (bilan sur deux lignes + mois par mois) ---------- */
#root .fs-annual { display: grid; gap: 10px; }
#root .fs-annual-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
#root .fs-annual-head > div { display: grid; gap: 2px; }
#root .fs-annual-head strong { color: #0b2742; font-size: 16px; }
#root .fs-annual-head span { color: #6a7f8e; font-size: 12.5px; }
#root .fs-annual-head select:not(#fs-v123) { height: 34px; min-height: 34px; padding: 4px 28px 4px 10px; border-radius: 9px; font-size: 13.5px; }
#root .fs-annual-group { margin: 6px 0 0 !important; color: #47677e; font-size: 11px !important; font-weight: 700 !important; letter-spacing: .06em; text-transform: uppercase; }
#root .fs-annual-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
#root .fs-annual-tile { display: grid; align-content: start; gap: 3px; min-width: 0; padding: 12px 14px; border: 1px solid #e3eaf0; border-radius: 12px; background: #f8fafc; }
#root .fs-annual-tile small { color: #5d7181; font-size: 12px; font-weight: 600; line-height: 1.3; }
#root .fs-annual-tile strong { color: #0b2742; font-size: 26px; font-weight: 800; line-height: 1.1; font-variant-numeric: tabular-nums; }
#root .fs-annual-sub { color: #687785; font-size: 12px; line-height: 1.35; }
#root .fs-annual-delta { justify-self: start; margin-top: 2px; padding: 1px 7px; border-radius: 999px; background: #eef2f5; color: #47677e; font-size: 11px; font-style: normal; font-weight: 700; }
#root .fs-annual-delta.is-up { background: #e9f5ef; color: #1f6b47; }
#root .fs-annual-delta.is-down { background: #fdf0ee; color: #a6443d; }

#root .fs-annual-chart { margin-top: 4px; padding: 12px 14px 10px; border: 1px solid #e3eaf0; border-radius: 12px; background: #fff; }
#root .fs-annual-chart-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 12px; margin-bottom: 10px; }
#root .fs-annual-chart-head strong { color: #0b2742; font-size: 13.5px; }
#root .fs-annual-chart-head span { color: #6a7f8e; font-size: 12px; }
#root .fs-annual-bars { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 6px; align-items: end; }
#root .fs-annual-bar { position: relative; display: grid; gap: 4px; justify-items: center; outline: none; }
#root .fs-annual-bar-track { display: flex; align-items: flex-end; width: 100%; height: 86px; border-bottom: 1px solid #e3eaf0; }
#root .fs-annual-bar-track i { display: block; width: 100%; min-height: 0; border-radius: 4px 4px 0 0; background: #9fc3d8; transition: background .15s; }
#root .fs-annual-bar.is-best .fs-annual-bar-track i { background: #1980ae; }
#root .fs-annual-bar:hover .fs-annual-bar-track i, #root .fs-annual-bar:focus-visible .fs-annual-bar-track i { background: #0f5f86; }
#root .fs-annual-bar small { color: #6a7f8e; font-size: 10.5px; }
#root .fs-annual-tip { position: absolute; bottom: calc(100% + 4px); left: 50%; z-index: 3; display: none; min-width: 150px; padding: 8px 10px; border-radius: 8px; background: #0b2742; color: #fff; font-size: 11.5px; line-height: 1.45; text-align: left; transform: translateX(-50%); box-shadow: 0 6px 18px rgba(11,39,66,.2); pointer-events: none; }
#root .fs-annual-tip b { display: block; margin-bottom: 2px; font-size: 12px; }
#root .fs-annual-bar:hover .fs-annual-tip, #root .fs-annual-bar:focus-visible .fs-annual-tip { display: block; }
#root .fs-annual-bar:first-child .fs-annual-tip { left: 0; transform: none; }
#root .fs-annual-bar:last-child .fs-annual-tip { left: auto; right: 0; transform: none; }
@media (max-width: 900px) { #root .fs-annual-row { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { #root .fs-annual-bars { gap: 3px; } #root .fs-annual-bar small { font-size: 9px; } }
#root .fs-annual-bar-track { justify-content: center; }
#root .fs-annual-bar-track i { width: 62%; max-width: 34px; }
#root .fs-annual-bar:focus-visible { outline: 2px solid #1980ae; outline-offset: 2px; border-radius: 6px; }

/* ---------- 13. Bons plans en liste : contenu aligné à gauche, colonnes nettes ---------- */
@media (min-width: 901px) {
  #root .offer-grid.fs-offer-list .offer-card:not(#fs-v123) { display: grid !important; grid-template-columns: 210px minmax(0, 1fr) !important; min-height: 136px; align-items: stretch !important; }
  #root .offer-grid.fs-offer-list .offer-card .offer-body:not(#fs-v123) {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 200px 176px !important;
    grid-template-areas: "copy price action" "meta price action" "tag price action" !important;
    grid-template-rows: auto auto 1fr !important;
    column-gap: 22px !important;
    row-gap: 4px !important;
    align-items: start !important;
    padding: 16px 20px !important;
    text-align: left !important;
  }
  #root .offer-grid.fs-offer-list .offer-card .fs-offer-copy:not(#fs-v123) {
    grid-area: copy !important;
    display: flex !important; flex-direction: column !important; align-items: flex-start !important; gap: 4px !important;
    margin: 0 !important; padding: 0 !important; border: 0 !important; text-align: left !important;
  }
  #root .offer-grid.fs-offer-list .offer-card .fs-offer-heading:not(#fs-v123) { justify-content: flex-start !important; text-align: left !important; gap: 10px !important; margin: 0 !important; }
  #root .offer-grid.fs-offer-list .offer-card .fs-offer-heading h3:not(#fs-v123) { margin: 0 !important; font-size: 18px !important; line-height: 1.25 !important; text-align: left !important; }
  #root .offer-grid.fs-offer-list .offer-card .fs-offer-summary:not(#fs-v123) {
    margin: 0 !important; text-align: left !important; font-size: 13.5px !important; line-height: 1.45 !important; color: #4b5f6e !important;
    display: -webkit-box !important; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  }
  #root .offer-grid.fs-offer-list .offer-card .option-count:not(#fs-v123) { grid-area: meta !important; display: block !important; margin: 4px 0 0 !important; padding: 0 !important; color: #1980ae !important; font-size: 12.5px !important; font-weight: 700 !important; text-align: left !important; }
  #root .offer-grid.fs-offer-list .offer-card .registration-tag:not(#fs-v123) { grid-area: tag !important; display: inline-block !important; justify-self: start !important; align-self: start !important; margin: 2px 0 0 !important; padding: 3px 9px !important; border-radius: 999px !important; font-size: 11px !important; line-height: 1.4 !important; text-align: left !important; white-space: normal; }
  #root .offer-grid.fs-offer-list .offer-card .offer-commercial:not(#fs-v123) {
    grid-area: price !important; align-self: center !important;
    display: grid !important; gap: 6px !important; justify-items: start !important;
    margin: 0 !important; padding: 2px 0 2px 20px !important; border: 0 !important; border-left: 1px solid #e6edf2 !important; text-align: left !important;
  }
  #root .offer-grid.fs-offer-list .offer-card .offer-commercial > div:not(#fs-v123) { text-align: left !important; }
  #root .offer-grid.fs-offer-list .offer-card .offer-footer:not(#fs-v123) {
    grid-area: action !important; align-self: center !important;
    display: grid !important; gap: 6px !important; justify-items: stretch !important;
    margin: 0 !important; padding: 0 !important; border: 0 !important;
  }
  #root .offer-grid.fs-offer-list .offer-card .offer-footer button:not(#fs-v123) { width: 100% !important; justify-content: space-between !important; }
  #root .offer-grid.fs-offer-list .offer-card .fs-offer-validity:not(#fs-v123) { text-align: left !important; font-size: 11.5px !important; line-height: 1.4 !important; color: #687785 !important; }
  #root .offer-grid.fs-offer-list .offer-card .offer-partner:not(#fs-v123) { display: none !important; }
}

/* ---------- 14. Notifications par email : mode d'emploi, « Quand / Envoyé à » ---------- */
#root .fs-mail-v123 .fs-mail-guide { list-style: none; margin: 0; padding: 12px 14px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 18px; border: 1px solid #dfe8ee; border-radius: 12px; background: #fff; }
#root .fs-mail-v123 .fs-mail-guide li { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 10px; align-items: start; color: #31495c; font-size: 13px; line-height: 1.45; }
#root .fs-mail-v123 .fs-mail-guide li b { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: #0b2742; color: #fff; font-size: 11.5px; }
#root .fs-mail-v123 .fs-mail-guide strong { color: #0b2742; }
#root .fs-mail-v123 .fs-mail-guide em { font-style: normal; font-weight: 600; }
#root .fs-mail-v123 .fs-mail-facts { display: grid; gap: 2px; margin: 4px 0 0; }
#root .fs-mail-v123 .fs-mail-facts > div { display: grid; grid-template-columns: 74px minmax(0, 1fr); gap: 8px; }
#root .fs-mail-v123 .fs-mail-facts dt { color: #6a7f8e; font-size: 11.5px; font-weight: 700; letter-spacing: .02em; padding-top: 1px; }
#root .fs-mail-v123 .fs-mail-facts dd { margin: 0; color: #31495c; font-size: 12.5px; line-height: 1.45; }
#root .fs-mail-v123 .fs-mail-row .fs-mail-recipient { margin-top: 4px; padding-left: 0; }
#root .fs-mail-v123 .fs-mail-row .fs-mail-recipient span { width: 74px; color: #6a7f8e; font-size: 11.5px; font-weight: 700; }
@media (max-width: 760px) { #root .fs-mail-v123 .fs-mail-guide { grid-template-columns: 1fr; } }

/* ---------- 15. Suivi des emails : liste compacte en lignes ---------- */
#root .fs-reliability-panel:not(#fs-v123) { display: grid !important; gap: 10px !important; padding: 16px 18px !important; margin-top: 14px !important; }
#root .fs-reliability-panel:not(#fs-v123) > header { align-items: center !important; }
#root .fs-reliability-panel:not(#fs-v123) > header h2 { font-size: 18px !important; margin: 0 !important; line-height: 1.25 !important; }
#root .fs-reliability-panel:not(#fs-v123) > header p { font-size: 12.5px !important; margin: 2px 0 0 !important; }
#root .fs-reliability-panel:not(#fs-v123) > header button { min-height: 32px !important; padding: 4px 14px !important; font-size: 13px !important; }
#root .fs-reliability-panel:not(#fs-v123) .fs-history-filter { margin: 0 !important; gap: 8px !important; font-size: 12.5px !important; }
#root .fs-reliability-panel:not(#fs-v123) .fs-history-filter select { min-height: 30px !important; height: 30px !important; padding: 2px 8px !important; font-size: 12.5px !important; }
#root .fs-reliability-panel:not(#fs-v123) .fs-history-summary { gap: 6px !important; margin: 0 !important; }
#root .fs-reliability-panel:not(#fs-v123) .fs-history-summary > span { padding: 3px 10px !important; font-size: 12px !important; border-radius: 999px !important; }
#root .fs-reliability-panel:not(#fs-v123) .fs-history-summary strong { font-size: 13px !important; }
#root .fs-reliability-panel:not(#fs-v123) .fs-history-list { gap: 0 !important; border: 1px solid #dde6ee; border-radius: 12px; overflow: hidden; }
#root .fs-reliability-panel:not(#fs-v123) .fs-history-list > article {
  display: grid !important; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1.2fr) auto; grid-template-areas: "subj meta badge" "why meta badge";
  align-items: center; gap: 1px 16px !important; padding: 7px 14px !important; border: 0 !important; border-bottom: 1px solid #e6edf2 !important; border-radius: 0 !important; background: #fff;
}
#root .fs-reliability-panel:not(#fs-v123) .fs-history-list > article:nth-child(even) { background: #f8fafc !important; }
#root .fs-reliability-panel:not(#fs-v123) .fs-history-list > article:last-child { border-bottom: 0 !important; }
#root .fs-reliability-panel:not(#fs-v123) .fs-history-heading { display: contents !important; }
#root .fs-reliability-panel:not(#fs-v123) .fs-history-heading > strong { grid-area: subj; font-size: 13.5px !important; line-height: 1.3; color: #0b2742; min-width: 0; }
#root .fs-reliability-panel:not(#fs-v123) .fs-history-heading > .fs-reason-badge { grid-area: badge; justify-self: end; padding: 2px 8px !important; font-size: 11px !important; line-height: 1.4 !important; white-space: nowrap; }
#root .fs-reliability-panel:not(#fs-v123) .fs-history-list > article > p { grid-area: why; margin: 0 !important; font-size: 12px !important; line-height: 1.35 !important; color: #5b6b7a !important; }
#root .fs-reliability-panel:not(#fs-v123) .fs-history-list > article > small { grid-area: meta; font-size: 12px !important; line-height: 1.35 !important; color: #4a5b6b !important; }
#root .fs-reliability-panel:not(#fs-v123) .fs-reliability-pager { margin: 0 !important; display: flex; align-items: center; justify-content: center; gap: 10px; font-size: 12.5px; }
#root .fs-reliability-panel:not(#fs-v123) .fs-reliability-pager button { min-height: 30px !important; padding: 3px 12px !important; font-size: 12.5px !important; }
#root .fs-reliability-panel:not(#fs-v123) .fs-reliability-note { font-size: 11.5px !important; margin: 0 !important; color: #6a7f8e; }
@media (max-width: 760px) {
  #root .fs-reliability-panel:not(#fs-v123) .fs-history-list > article { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "subj badge" "why why" "meta meta"; }
}

/* ---------- 16. Menu mobile : catégories sous « Bons plans partenaires » ---------- */
#root .mobile-drawer .fs-mobile-subnav { display: flex; flex-wrap: wrap; gap: 6px; margin: -2px 0 2px; padding: 0 0 0 10px; border-left: 2px solid #d5e2eb; margin-left: 14px; }
#root .mobile-drawer .fs-mobile-subnav-item:not(#fs-v123) {
  display: grid !important; grid-template-columns: 28px minmax(0, 1fr) auto; align-items: center; gap: 8px;
  flex: 1 1 calc(50% - 3px); min-width: max-content; max-width: 100%; width: auto; min-height: 44px; margin: 0 !important; padding: 7px 9px 7px 7px !important;
  background: #fff !important; border: 1px solid #e3ebf1 !important; border-radius: 12px !important; box-shadow: none !important;
  color: #0b2742; font: inherit; text-align: left; cursor: pointer;
}
#root .mobile-drawer .fs-mobile-subnav-item i { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 8px; background: #eef4f8; font-style: normal; font-size: 15px; line-height: 1; }
#root .mobile-drawer .fs-mobile-subnav-item span { min-width: 0; font-size: 13px; font-weight: 600; line-height: 1.2; white-space: nowrap; }
#root .mobile-drawer .fs-mobile-subnav-item b { min-width: 22px; padding: 1px 6px; border-radius: 999px; background: #f1f5f8; color: #5b6b7a; font-size: 11px; font-weight: 700; text-align: center; }
#root .mobile-drawer .fs-mobile-subnav-item.active:not(#fs-v123) { border-color: #9fc3dc !important; background: #f2f8fc !important; }
#root .mobile-drawer .fs-mobile-subnav-item.active b { background: #0b2742; color: #fff; }
#root .mobile-drawer .fs-mobile-subnav-item.is-off { opacity: .55; }
#root .mobile-drawer .fs-mobile-subnav-item:focus-visible { outline: 3px solid #268dba; outline-offset: 2px; }
@media (max-width: 380px) {
  #root .mobile-drawer .fs-mobile-subnav { margin-left: 6px; padding-left: 6px; gap: 5px; }
  #root .mobile-drawer .fs-mobile-subnav-item:not(#fs-v123) { gap: 6px; padding: 6px 7px 6px 6px !important; grid-template-columns: 26px minmax(0, 1fr) auto; }
  #root .mobile-drawer .fs-mobile-subnav-item i { width: 26px; height: 26px; font-size: 14px; }
}

/* ---------- 17. Bandeaux : bouton aligné à gauche quand il passe à la ligne ---------- */
#root .fs-admin-page-heading .fs-admin-banner-refresh:not(#fs-v123) { margin: 0 !important; }
#root .fs-page-banner:not(#fs-v123) .fs-page-banner-action { margin-left: 0 !important; justify-content: flex-start; text-align: left; }

/* ---------- 18. Polices harmonisées des filtres (offres, demandes) ---------- */
#root .fs-offers-toolbar .fs-category-select:not(#fs-v123),
#root .fs-offers-tools .fs-place-filter:not(#fs-v123) { font-family: inherit !important; font-size: 16px !important; font-weight: 600 !important; color: #173e58 !important; letter-spacing: 0 !important; }
#root .fs-offers-tools .fs-view-switch button:not(#fs-v123) { font-family: inherit !important; font-size: 14px !important; font-weight: 600 !important; color: #5c6875 !important; letter-spacing: 0 !important; }
#root .fs-offers-tools .fs-view-switch button.active:not(#fs-v123) { color: #173e58 !important; }
#root .fs-offers-tools .fs-view-switch button i { font-weight: 400 !important; }
#root .fs-offers-tools .fs-result-count:not(#fs-v123) { font-size: 14px !important; font-weight: 500 !important; color: #6a7f8e !important; }
#root .fs-offers-tools .fs-result-count b { font-weight: 700 !important; color: #173e58 !important; }
#root .request-filter-controls .archive-view:not(#fs-v123),
#root .request-filter-controls .fs-request-more-filters > summary:not(#fs-v123) { font-family: inherit !important; font-size: 14px !important; font-weight: 600 !important; color: #173e58 !important; letter-spacing: 0 !important; }
#root .request-filter-controls .archive-view:not(#fs-v123) { justify-content: flex-start !important; text-align: left !important; }
#root .request-filter-controls .fs-request-more-filters > summary:not(#fs-v123) { display: flex !important; align-items: center !important; justify-content: space-between; min-height: 42px !important; padding-top: 0 !important; padding-bottom: 0 !important; }
#root .request-filter-controls .archive-view:not(#fs-v123) { display: flex !important; align-items: center !important; gap: 6px; min-height: 44px !important; }

/* ---------- 19. Filtres des offres : tailles et design harmonisés ---------- */
#root .fs-offers-toolbar .fs-category-select:not(#fs-v123),
#root .fs-offers-tools .fs-place-filter:not(#fs-v123) {
  -webkit-appearance: none !important; appearance: none !important;
  height: 44px !important; min-height: 44px !important; padding: 0 40px 0 14px !important; margin: 0 !important;
  border: 1px solid #d6e2ea !important; border-radius: 12px !important; box-shadow: 0 1px 2px #0b27420a !important;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23173e58' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 15px center / 12px 8px !important;
  font-family: inherit !important; font-size: 15px !important; font-weight: 600 !important; line-height: 42px !important; color: #173e58 !important; letter-spacing: 0 !important; cursor: pointer;
}
#root .fs-offers-toolbar .fs-category-select:not(#fs-v123):focus-visible,
#root .fs-offers-tools .fs-place-filter:not(#fs-v123):focus-visible { outline: 3px solid #268dba55 !important; outline-offset: 1px; border-color: #268dba !important; }
#root .fs-offers-tools .fs-view-switch:not(#fs-v123) { height: 44px !important; min-height: 44px !important; padding: 3px !important; gap: 2px !important; border-radius: 12px !important; background: #eef2f5 !important; border: 1px solid #e1e8ee !important; box-sizing: border-box; align-items: stretch !important; }
#root .fs-offers-tools .fs-view-switch button:not(#fs-v123) { height: auto !important; min-height: 0 !important; padding: 0 14px !important; border-radius: 9px !important; font-size: 15px !important; display: inline-flex !important; align-items: center; gap: 7px; }
#root .fs-offers-tools .fs-view-switch button i { font-size: 14px !important; }
#root .fs-offers-tools .fs-result-count:not(#fs-v123) { font-size: 14px !important; line-height: 1.3 !important; }
#root .fs-offers-tools .fs-result-count b { font-size: 14px !important; }
@media (hover: none) and (pointer: coarse) {
  #root .fs-offers-toolbar .fs-category-select:not(#fs-v123),
  #root .fs-offers-tools .fs-place-filter:not(#fs-v123) { font-size: 16px !important; }
}

/* ---------- 20. Filtres harmonisés partout (même hauteur, police, rayon, flèche) ---------- */
/* Espace collaborateur : 44 px, 15 px, comme les filtres des bons plans */
#root .request-filter-controls .archive-view:not(#fs-v123) { height: 44px !important; min-height: 44px !important; padding: 0 14px !important; border-radius: 12px !important; font-size: 15px !important; }
#root .request-filter-controls .archive-view.active:not(#fs-v123) { color: #8a5c19 !important; }
#root .request-filter-controls .fs-request-more-filters:not(#fs-v123) { border-radius: 12px !important; border: 1px solid #d6e2ea !important; background: #f7fafc !important; }
#root .request-filter-controls .fs-request-more-filters > summary:not(#fs-v123) { min-height: 42px !important; padding: 0 14px !important; font-size: 15px !important; }
#root .request-filter-controls .fs-request-more-filters > summary::after { content: "" !important; width: 12px; height: 8px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23173e58' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / 12px 8px; }
#root .fs-request-more-filters-body:not(#fs-v123) { display: flex !important; flex-wrap: wrap !important; gap: 8px !important; padding: 2px 10px 10px !important; }
#root .fs-request-more-filters-body select:not(#fs-v123) { flex: 1 1 auto !important; width: auto !important; min-width: 0 !important; max-width: 100% !important; }

/* Selects et champs de recherche : un seul style */
#root :is(.fs-request-more-filters-body, .enrollment-filter-grid, .advanced-filter-fields, .fs-account-filters, .fs-archive-toolbar, .fs-formula-tools, .fs-formula-pagination) select:not(#fs-v123) {
  -webkit-appearance: none !important; appearance: none !important;
  padding: 0 34px 0 12px !important; border: 1px solid #d6e2ea !important; border-radius: 12px !important; box-shadow: none !important;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23173e58' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 12px center / 11px 7px !important;
  font-family: inherit !important; font-weight: 600 !important; color: #173e58 !important; letter-spacing: 0 !important; text-overflow: ellipsis; cursor: pointer;
}
#root :is(.enrollment-filter-grid, .fs-account-filters, .fs-archive-toolbar, .fs-formula-tools, .fs-admin-journal-search) input:not([type=checkbox]):not([type=radio]):not(#fs-v123) {
  padding: 0 12px !important; border: 1px solid #d6e2ea !important; border-radius: 12px !important; box-shadow: none !important; background: #fff !important;
  font-family: inherit !important; font-weight: 500 !important; color: #173e58 !important; letter-spacing: 0 !important;
}
#root .fs-request-more-filters-body select:not(#fs-v123) { height: 44px !important; min-height: 44px !important; font-size: 15px !important; }
/* Administration : 40 px, 14 px */
#root :is(.enrollment-filter-grid, .advanced-filter-fields, .fs-account-filters, .fs-archive-toolbar, .fs-formula-tools) select:not(#fs-v123),
#root :is(.enrollment-filter-grid, .fs-account-filters, .fs-archive-toolbar, .fs-formula-tools, .fs-admin-journal-search) input:not([type=checkbox]):not([type=radio]):not(#fs-v123) { height: 40px !important; min-height: 40px !important; font-size: 14px !important; line-height: normal !important; padding-top: 0 !important; padding-bottom: 0 !important; }
#root .fs-formula-pagination select:not(#fs-v123) { height: 34px !important; min-height: 34px !important; font-size: 13px !important; border-radius: 10px !important; }
#root .advanced-enrollment-filters > summary:not(#fs-v123) { min-height: 40px !important; font-size: 14px !important; font-weight: 600 !important; color: #173e58 !important; border-radius: 12px !important; }
#root :is(.enrollment-filter-grid, .fs-account-filters, .fs-archive-toolbar, .fs-formula-tools) :is(select, input):focus-visible { outline: 3px solid #268dba55 !important; outline-offset: 1px; border-color: #268dba !important; }
@media (hover: none) and (pointer: coarse) {
  #root :is(.fs-request-more-filters-body, .enrollment-filter-grid, .advanced-filter-fields, .fs-account-filters, .fs-archive-toolbar, .fs-formula-tools, .fs-formula-pagination) select:not(#fs-v123),
  #root :is(.enrollment-filter-grid, .fs-account-filters, .fs-archive-toolbar, .fs-formula-tools, .fs-admin-journal-search) input:not([type=checkbox]):not([type=radio]):not(#fs-v123) { font-size: 16px !important; }
}
#root .fs-admin-v15 .fs-formula-panel .fs-formula-tools :is(input:not([type=checkbox]):not([type=radio]), select):not(#fs-v123):not(#fs-v123b) { height: 34px !important; min-height: 34px !important; font-size: 13px !important; padding-top: 0 !important; padding-bottom: 0 !important; border-radius: 10px !important; }

/* ---------- 21. Agenda : point sous les jours avec activité, fond léger pour les mois remplis ---------- */
#root .fs-agenda-month-v37 .calendar-grid > button.has-event:not(#fs-v123) { position: relative; background: #eef6fb !important; border-color: #c5dceb !important; color: #0b2742 !important; font-weight: 700; }
#root .fs-agenda-month-v37 .calendar-grid > button.has-event:not(#fs-v123)::after { content: ""; position: absolute; top: 6px; right: 6px; width: 7px; height: 7px; border-radius: 50%; background: #c8102e; }
#root .fs-agenda-month-v37 .calendar-grid > button.has-event.selected:not(#fs-v123)::after { background: #fff; }
#root .fs-agenda-year-v37 .year-grid > button.has-events:not(#fs-v123) { background: #eef6fb !important; border-color: #b9d6e8 !important; }
#root .fs-agenda-year-v37 .year-grid > button.has-events:not(#fs-v123) span { color: #0b5c94 !important; font-weight: 700 !important; }
#root .fs-agenda-year-v37 .year-grid > button.has-events:not(#fs-v123) strong::after { content: ""; display: inline-block; width: 7px; height: 7px; margin-left: 7px; border-radius: 50%; background: #c8102e; vertical-align: middle; }
#root .fs-agenda-year-v37 .year-grid > button:not(.has-events):not(#fs-v123) span { color: #8796a3 !important; }
#root .fs-agenda-month-v37 .calendar-grid > button:not(#fs-v123) small { display: none !important; }

/* ---------- 22. Mot de passe : badge et bouton harmonisés, alignés à gauche ---------- */
#root .password-card .password-title-actions:not(#fs-v123) { display: flex !important; flex-wrap: wrap !important; align-items: center !important; justify-content: flex-start !important; gap: 8px !important; width: 100% !important; margin: 10px 0 0 !important; }
#root .password-card .security-badge:not(#fs-v123),
#root .password-card .password-visibility-toggle:not(#fs-v123) {
  display: inline-flex !important; align-items: center !important; gap: 6px; width: auto !important; flex: 0 0 auto !important;
  height: 34px !important; min-height: 34px !important; padding: 0 13px !important; margin: 0 !important; border-radius: 999px !important;
  font-family: inherit !important; font-size: 13px !important; font-weight: 600 !important; line-height: 1 !important; letter-spacing: 0 !important; text-align: left !important; white-space: nowrap; box-shadow: none !important;
}
#root .password-card .security-badge:not(#fs-v123) { background: #e8f5ee !important; border: 1px solid #c7e6d4 !important; color: #1d634d !important; }
#root .password-card .security-badge:not(#fs-v123)::before { content: ""; width: 12px; height: 12px; flex: 0 0 12px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231d634d' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='11' width='16' height='10' rx='2'/%3E%3Cpath d='M8 11V7a4 4 0 0 1 8 0v4'/%3E%3C/svg%3E") no-repeat center / contain; }
#root .password-card .password-visibility-toggle:not(#fs-v123) { background: #fff !important; border: 1px solid #d6e2ea !important; color: #173e58 !important; cursor: pointer; }
#root .password-card .password-visibility-toggle:not(#fs-v123):hover { background: #f2f8fc !important; }
#root .password-card .panel-title:not(#fs-v123) { flex-wrap: wrap !important; }

/* ---------- 23. Équipe : onglets Tous / Personnel / Employeur sur une ligne, chiffre à côté ---------- */
#root .representative-filters:not(#fs-v123) { display: flex !important; flex-wrap: nowrap !important; gap: 3px !important; padding: 3px !important; height: 44px !important; min-height: 44px !important; border-radius: 12px !important; background: #eef2f5 !important; border: 1px solid #e1e8ee !important; box-sizing: border-box; max-width: 100%; }
#root .representative-filters > button:not(#fs-v123) {
  flex: 1 1 0 !important; min-width: 0 !important; height: auto !important; min-height: 0 !important; padding: 0 10px !important; margin: 0 !important;
  display: inline-flex !important; flex-direction: row !important; align-items: center !important; justify-content: center !important; gap: 7px !important;
  border: 0 !important; border-radius: 9px !important; background: transparent !important; box-shadow: none !important;
  font-family: inherit !important; font-size: 15px !important; font-weight: 600 !important; line-height: 1 !important; color: #5c6875 !important; white-space: nowrap !important;
}
#root .representative-filters > button.active:not(#fs-v123) { background: #fff !important; color: #173e58 !important; box-shadow: 0 1px 3px #0b274214 !important; }
#root .representative-filters > button b:not(#fs-v123) { display: inline-grid !important; place-items: center; min-width: 22px; height: 20px; padding: 0 6px !important; margin: 0 !important; border-radius: 999px !important; background: #dfe8ef !important; color: #173e58 !important; font-size: 11.5px !important; font-weight: 700 !important; line-height: 1 !important; }
#root .representative-filters > button.active b:not(#fs-v123) { background: #173e58 !important; color: #fff !important; }
@media (max-width: 380px) { #root .representative-filters > button:not(#fs-v123) { padding: 0 6px !important; font-size: 14px !important; gap: 5px !important; } }
#root .request-filter-controls .archive-view:not(#fs-v123) { white-space: nowrap !important; flex: 0 0 auto !important; }

/* ---------- 24. Mes demandes : cartes plus contrastées, vraie frise de suivi ---------- */
#root article.fs-stage-row:not(#fs-v123) { border-top: 1px solid #cfdce6 !important; border-right: 1px solid #cfdce6 !important; border-bottom: 1px solid #cfdce6 !important; border-left: 5px solid var(--stage, #cfdce6) !important; border-radius: 16px !important; box-shadow: 0 2px 10px #0b27420f !important; background: #fff !important; padding: 16px 20px 16px 22px !important; }
#root article.fs-stage-row.is-closed:not(#fs-v123) { border-left-color: #b7c2cb !important; }
#root article.fs-stage-row .request-main > p:not(#fs-v123) { background: #0b2742 !important; color: #fff !important; font-size: 10.5px !important; font-weight: 700 !important; letter-spacing: .08em !important; padding: 4px 9px !important; border-radius: 7px !important; }
#root article.fs-stage-row .request-main > strong:not(#fs-v123) { font-size: 17px !important; font-weight: 700 !important; color: #0b2742 !important; }
#root article.fs-stage-row .request-main > small:not(#fs-v123) { font-size: 13px !important; color: #4a5b6b !important; }
#root article.fs-stage-row .request-main > time:not(#fs-v123) { font-size: 12.5px !important; color: #173e58 !important; background: #eef4f8 !important; border: 1px solid #d6e2ea !important; font-weight: 600 !important; }
#root article.fs-stage-row .status-chip:not(#fs-v123) { font-size: 12.5px !important; font-weight: 700 !important; padding: 5px 11px !important; border-radius: 999px !important; }

/* Frise compacte (v124) : résumé lisible + étapes en ligne reliées */
#root article.fs-stage-row .fs-progress-wrap { display: grid; gap: 8px; margin-top: 12px; padding: 10px 14px; border-radius: 12px; background: #f3f7fa; border: 1px solid #e0e9f0; }
#root article.fs-stage-row .fs-progress-summary { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin: 0; font-size: 13.5px; color: #4a5b6b; }
#root article.fs-stage-row .fs-progress-summary strong { font-size: 15px; font-weight: 800; color: var(--stage-ink, #0b2742); }
#root article.fs-stage-row .fs-progress-count { font-size: 11.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #6b7b88; }
#root article.fs-stage-row .fs-progress-next { color: #4a5b6b; }
#root article.fs-stage-row .fs-progress-summary.is-terminal strong { color: #9b2c2c; }
#root article.fs-stage-row .enrollment-progress.fs-progress:not(#fs-v123) { display: flex !important; flex-wrap: nowrap !important; align-items: center !important; gap: 0 !important; margin: 0 !important; padding: 0 !important; background: none !important; border: 0 !important; border-radius: 0 !important; grid-template-columns: none !important; min-height: 0 !important; }
#root article.fs-stage-row .enrollment-progress.fs-progress:not(#fs-v123)::before { display: none !important; }
#root article.fs-stage-row .enrollment-progress.fs-progress > div:not(#fs-v123) { position: static; display: flex !important; flex-direction: row !important; align-items: center !important; gap: 6px !important; flex: 1 1 0 !important; min-width: 0; padding: 0 !important; margin: 0 !important; text-align: left; background: none !important; border: 0 !important; box-shadow: none !important; }
#root article.fs-stage-row .enrollment-progress.fs-progress > div:last-child:not(#fs-v123) { flex: 0 0 auto !important; }
#root article.fs-stage-row .enrollment-progress.fs-progress > div:not(:last-child)::after { content: ""; flex: 1 1 12px; min-width: 8px; height: 2px; margin: 0 6px 0 2px; border-radius: 1px; background: #d3dee7; }
#root article.fs-stage-row .enrollment-progress.fs-progress > div.done:not(.current):not(:last-child)::after { background: #8aa5ba; }
#root article.fs-stage-row .enrollment-progress.fs-progress > div::before { display: none !important; }
#root article.fs-stage-row .enrollment-progress.fs-progress > div > i:not(#fs-v123) { position: static; flex: 0 0 22px; width: 22px !important; height: 22px !important; min-width: 22px; border-radius: 50% !important; display: grid !important; place-items: center !important; font-size: 10px !important; box-shadow: none !important; margin: 0 !important; }
#root article.fs-stage-row .enrollment-progress.fs-progress > div > i svg { width: 11px !important; height: 11px !important; }
#root article.fs-stage-row .enrollment-progress.fs-progress > div:not(.done):not(.current) > i:not(#fs-v123) { background: #fff !important; color: #9aa7b2 !important; border: 1.5px solid #cfdae3 !important; }
#root article.fs-stage-row .enrollment-progress.fs-progress > div.current > i:not(#fs-v123) { box-shadow: 0 0 0 3px #ffffff, 0 0 0 5px var(--stage, #0b2742) !important; }
#root article.fs-stage-row .enrollment-progress.fs-progress > div > span:not(#fs-v123) { position: static !important; width: auto !important; height: auto !important; clip: auto !important; margin: 0 !important; flex: 0 1 auto; min-width: 0; font-size: 12px !important; line-height: 1.2 !important; font-weight: 600 !important; color: #8896a2 !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#root article.fs-stage-row .enrollment-progress.fs-progress > div.done > span:not(#fs-v123) { color: #31495c !important; }
#root article.fs-stage-row .enrollment-progress.fs-progress > div.current > span:not(#fs-v123) { font-weight: 800 !important; color: var(--stage-ink, #0b2742) !important; }

/* Bloc paiement et boutons */
#root article.fs-stage-row .request-card-footer:not(#fs-v123) { gap: 10px !important; margin-top: 12px !important; align-items: stretch !important; }
#root article.fs-stage-row .fs-payment-progress:not(#fs-v123) { background: #fff !important; border: 1px solid #d6e2ea !important; border-radius: 12px !important; padding: 10px 14px !important; gap: 12px !important; align-items: center !important; }
#root article.fs-stage-row .fs-payment-progress > span:not(#fs-v123) { font-size: 15px !important; font-weight: 800 !important; color: #0b2742 !important; }
#root article.fs-stage-row .fs-payment-progress > small:not(#fs-v123) { font-size: 13px !important; color: #4a5b6b !important; }
#root article.fs-stage-row .fs-payment-progress .fs-payment-bar:not(#fs-v123) { height: 7px !important; min-width: 90px; border-radius: 4px !important; background: #e3e9ee !important; }
#root article.fs-stage-row .fs-payment-progress > em:not(#fs-v123) { font-style: normal !important; font-size: 13px !important; font-weight: 700 !important; color: #8a5c19 !important; background: #fff3dc; padding: 3px 10px; border-radius: 999px; flex: 0 0 auto !important; margin-right: auto; }
#root article.fs-stage-row .fs-payment-progress.is-paid > em:not(#fs-v123), #root article.fs-stage-row .fs-payment-progress.is-complete > em:not(#fs-v123) { color: #1d634d !important; background: #e3f4ec; }
#root article.fs-stage-row .request-card-actions button:not(#fs-v123) { min-height: 40px !important; padding: 0 16px !important; border-radius: 11px !important; font-size: 13.5px !important; font-weight: 700 !important; }
#root article.fs-stage-row .request-card-actions .change-date-button:not(#fs-v123) { background: #0b2742 !important; color: #fff !important; border: 1px solid #0b2742 !important; }
#root article.fs-stage-row .request-card-actions .archive-request-button:not(#fs-v123) { background: #fff !important; color: #173e58 !important; border: 1px solid #c9d7e1 !important; }

@media (max-width: 760px) {
  #root article.fs-stage-row:not(#fs-v123) { padding: 14px !important; }
}

/* ---------- 25. Barre « N demandes » : tailles alignées sur les boutons ---------- */
#root .request-management-bar:not(#fs-v123) { align-items: center !important; padding: 12px 16px !important; }
#root .request-management-bar > div:first-child:not(#fs-v123) { display: flex !important; align-items: center !important; gap: 12px !important; }
#root .request-management-bar > div:first-child > span:not(#fs-v123) { width: 44px !important; height: 44px !important; min-width: 44px; display: grid !important; place-items: center !important; border-radius: 12px !important; font-size: 18px !important; }
#root .request-management-bar > div:first-child strong:not(#fs-v123) { display: block; font-size: 16px !important; font-weight: 700 !important; color: #0b2742 !important; line-height: 1.2 !important; }
#root .request-management-bar > div:first-child small:not(#fs-v123) { display: block; font-size: 13.5px !important; color: #4a5b6b !important; line-height: 1.3 !important; margin-top: 2px; }
#root .request-filter-controls :is(.archive-view, .fs-request-more-filters > summary):not(#fs-v123) { font-size: 15px !important; font-weight: 600 !important; }
#root .my-enrollments .request-select-all:not(#fs-v123), #root .my-enrollments label.request-select:not(#fs-v123) span { font-size: 13px !important; font-weight: 600 !important; color: #31495c !important; }
#root article.fs-stage-row .fs-payment-progress > em:not(#fs-v123) { width: max-content !important; max-width: max-content !important; flex: 0 0 auto !important; }
#root .fs-offers-tools .fs-result-count:not(#fs-v123) { color: #4a5b6b !important; }
#root .fs-offers-tools .fs-view-switch button:not(.active):not(#fs-v123) { color: #4a5b6b !important; }
#root .request-selection-bar > label:not(#fs-v123) { display: inline-flex !important; align-items: center !important; gap: 8px !important; font-size: 13.5px !important; font-weight: 600 !important; color: #31495c !important; }
#root .request-selection-bar > label input:not(#fs-v123) { width: 16px !important; height: 16px !important; }

/* ---------- 26. Envoi de fichier : progression ---------- */
#root .fs-upload-progress { display: grid; gap: 8px; padding: 12px 14px; border-radius: 12px; border: 1px solid #c5dceb; background: #eef6fb; }
#root .fs-upload-progress-text { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; font-size: 13.5px; color: #173e58; }
#root .fs-upload-progress-text strong { font-weight: 700; min-width: 0; overflow-wrap: anywhere; }
#root .fs-upload-progress > i { display: block; height: 8px; border-radius: 4px; background: #d6e4ee; overflow: hidden; }
#root .fs-upload-progress > i > b { display: block; height: 100%; background: #0b5c94; border-radius: 4px; transition: width .25s ease; }

/* Mes demandes : carte plus compacte */
#root article.fs-stage-row:not(#fs-v123) { padding: 12px 16px 12px 18px !important; }
#root article.fs-stage-row .request-card-footer:not(#fs-v123) { margin-top: 10px !important; }
#root article.fs-stage-row .fs-payment-progress:not(#fs-v123) { padding: 7px 12px !important; }
#root article.fs-stage-row .request-card-actions button:not(#fs-v123) { min-height: 36px !important; padding: 0 14px !important; font-size: 13px !important; }
#root article.fs-stage-row .fs-progress-wrap:not(#fs-v123) { display: grid !important; grid-template-columns: minmax(0, 1fr) !important; grid-column: 1 / -1 !important; width: 100% !important; }
#root article.fs-stage-row .fs-progress-wrap .enrollment-progress.fs-progress > div > span:not(#fs-v123) { white-space: nowrap !important; display: block; }
#root article.fs-stage-row .fs-progress-wrap > *:not(#fs-v123) { grid-column: 1 / 2 !important; grid-row: auto !important; width: 100% !important; }
#root article.fs-stage-row .enrollment-progress.fs-progress > div:not(:last-child):not(#fs-v123)::after { content: "" !important; display: block !important; position: static !important; flex: 1 1 12px !important; min-width: 10px !important; width: auto !important; height: 2px !important; margin: 0 8px 0 4px !important; border-radius: 1px !important; background: #d3dee7 !important; transform: none !important; }
#root article.fs-stage-row .enrollment-progress.fs-progress > div.done:not(.current):not(:last-child):not(#fs-v123)::after { background: #8aa5ba !important; }
#root article.fs-stage-row .enrollment-progress.fs-progress > div.current:not(#fs-v123) { gap: 9px !important; }
#root article.fs-stage-row .fs-progress-wrap .enrollment-progress.fs-progress > div > span:not(#fs-v123) { flex: 0 0 auto !important; overflow: visible !important; text-overflow: clip !important; }
#root article.fs-stage-row .enrollment-progress.fs-progress > div:not(#fs-v123) { flex: 1 1 auto !important; }

/* Frise : même rendu à toutes les largeurs (pas d'étirement, retour à la ligne si besoin) */
#root article.fs-stage-row .fs-progress-wrap .enrollment-progress.fs-progress:not(#fs-v123) { flex-wrap: wrap !important; row-gap: 8px !important; justify-content: flex-start !important; }
#root article.fs-stage-row .fs-progress-wrap .enrollment-progress.fs-progress > div:not(#fs-v123) { flex: 0 0 auto !important; }
#root article.fs-stage-row .fs-progress-wrap .enrollment-progress.fs-progress > div:not(:last-child):not(#fs-v123)::after { flex: 0 0 22px !important; width: 22px !important; min-width: 22px !important; }
#root article.fs-stage-row label.request-select > span:not(#fs-v123) { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; white-space: nowrap !important; }

/* ---------- 27. Mes demandes : mise en page identique pour toutes les cartes ---------- */
@media (min-width: 1281px) {
  #root article.fs-stage-row .fs-request-body:not(#fs-v123) { display: grid !important; grid-template-columns: minmax(0, 1fr) 210px !important; column-gap: 14px !important; row-gap: 8px !important; align-items: start !important; margin-top: 12px !important; }
  #root article.fs-stage-row .fs-request-body > *:not(#fs-v123) { grid-column: 1 !important; min-width: 0; }
  #root article.fs-stage-row .fs-request-body > .fs-progress-wrap:not(#fs-v123) { grid-row: 1 !important; margin: 0 !important; }
  #root article.fs-stage-row .fs-request-body > footer.request-card-footer:not(#fs-v123) { display: contents !important; }
  #root article.fs-stage-row .fs-request-body .fs-payment-progress:not(#fs-v123) { grid-column: 1 !important; grid-row: 2 !important; margin: 0 !important; width: 100% !important; box-sizing: border-box; background: #f3f7fa !important; border-color: #e0e9f0 !important; }
  #root article.fs-stage-row .fs-request-body .request-card-actions:not(#fs-v123) { grid-column: 2 !important; grid-row: 1 / span 2 !important; display: flex !important; flex-direction: column !important; align-items: stretch !important; justify-content: flex-start !important; gap: 8px !important; margin: 0 !important; width: 100% !important; }
  #root article.fs-stage-row .fs-request-body .request-card-actions > button:not(#fs-v123) { width: 100% !important; justify-content: center !important; min-height: 38px !important; }
  #root article.fs-stage-row .fs-request-body .request-card-actions .fs-request-locked:not(#fs-v123) { display: block; padding: 8px 10px !important; border-radius: 10px !important; font-size: 12px !important; line-height: 1.35 !important; color: #4a5b6b !important; background: #f3f7fa !important; border: 1px solid #e0e9f0; text-align: left; }
}
#root article.fs-stage-row .request-card-actions .cancel-request-button:not(#fs-v123) { background: #fff !important; color: #9b2c2c !important; border: 1px solid #efc7c7 !important; }

/* ---------- 28. Frise finale : colonnes égales, icône + libellé dessous, jamais de retour à la ligne ---------- */
#root article.fs-stage-row .fs-progress-wrap .enrollment-progress.fs-progress:not(#fs-v123):not(#fs-v124) { display: grid !important; grid-auto-flow: column !important; grid-auto-columns: minmax(0, 1fr) !important; grid-template-columns: none !important; flex-wrap: nowrap !important; gap: 0 !important; align-items: start !important; }
#root article.fs-stage-row .fs-progress-wrap .enrollment-progress.fs-progress > div:not(#fs-v123):not(#fs-v124) { position: relative !important; display: flex !important; flex-direction: column !important; align-items: center !important; gap: 5px !important; padding: 0 3px !important; text-align: center !important; }
#root article.fs-stage-row .fs-progress-wrap .enrollment-progress.fs-progress > div:not(#fs-v123):not(#fs-v124)::after { display: none !important; }
#root article.fs-stage-row .fs-progress-wrap .enrollment-progress.fs-progress > div:not(:first-child):not(#fs-v124)::before { content: "" !important; display: block !important; position: absolute !important; top: 11px !important; left: calc(-50% + 16px) !important; right: calc(50% + 16px) !important; height: 2px !important; border-radius: 1px; background: #d3dee7 !important; }
#root article.fs-stage-row .fs-progress-wrap .enrollment-progress.fs-progress > div.done:not(:first-child):not(#fs-v124)::before { background: #8aa5ba !important; }
#root article.fs-stage-row .fs-progress-wrap .enrollment-progress.fs-progress > div > i:not(#fs-v123):not(#fs-v124) { position: relative !important; z-index: 1; }
#root article.fs-stage-row .fs-progress-wrap .enrollment-progress.fs-progress > div > span:not(#fs-v123):not(#fs-v124) { display: block !important; white-space: normal !important; overflow: visible !important; text-overflow: clip !important; font-size: 11.5px !important; line-height: 1.2 !important; max-width: 100%; }
#root article.fs-stage-row .fs-progress-wrap .enrollment-progress.fs-progress > div > span:not(#fs-v123):not(#fs-v124) { overflow-wrap: normal !important; word-break: normal !important; hyphens: manual !important; }
@media (min-width: 761px) and (max-width: 1280px) {
  #root article.fs-stage-row .request-card-footer:not(#fs-v123) { display: flex !important; flex-wrap: wrap !important; align-items: center !important; gap: 8px !important; }
  #root article.fs-stage-row .request-card-footer .fs-payment-progress:not(#fs-v123) { flex: 1 1 320px !important; }
  #root article.fs-stage-row .request-card-footer .request-card-actions:not(#fs-v123) { display: flex !important; flex-wrap: wrap !important; gap: 8px !important; margin-left: auto !important; }
}
@media (max-width: 760px) {
  #root .request-management-bar:not(#fs-v123) { justify-content: flex-start !important; text-align: left !important; }
  #root .request-management-bar > div:first-child:not(#fs-v123) { justify-content: flex-start !important; width: 100% !important; margin: 0 !important; text-align: left !important; }
}
/* Frise : largeur d'étape fixe, alignée à gauche (même espacement quel que soit le nombre d'étapes) */
#root article.fs-stage-row .fs-progress-wrap .enrollment-progress.fs-progress:not(#fs-v123):not(#fs-v124):not(#fs-v125) { grid-auto-columns: minmax(0, 132px) !important; justify-content: start !important; }

/* ---------- 29. Mes demandes : version finale compacte et régulière ---------- */
@media (min-width: 1281px) {
  /* Le montant payé se place en haut à droite du bloc de suivi : même hauteur pour toutes les cartes */
  #root article.fs-stage-row .fs-request-body .fs-payment-progress:not(#fs-v123):not(#fs-v124) { grid-row: 1 !important; grid-column: 1 !important; justify-self: end !important; align-self: start !important; width: auto !important; margin: 9px 14px 0 0 !important; padding: 0 !important; background: none !important; border: 0 !important; gap: 8px !important; z-index: 1; }
  #root article.fs-stage-row .fs-request-body .fs-payment-progress > em:not(#fs-v123) { display: none !important; }
  #root article.fs-stage-row .fs-request-body .fs-payment-progress > span:not(#fs-v123) { font-size: 14px !important; }
  #root article.fs-stage-row .fs-request-body .fs-payment-progress .fs-payment-bar:not(#fs-v123) { min-width: 80px !important; width: 80px !important; }
  #root article.fs-stage-row .fs-request-body .fs-progress-wrap .fs-progress-summary:not(#fs-v123) { padding-right: 300px; }
  #root article.fs-stage-row .fs-request-body .request-card-actions:not(#fs-v123) { grid-row: 1 !important; }
}
#root article.fs-stage-row .fs-progress-wrap:not(#fs-v123) { padding: 12px 16px 12px !important; gap: 12px !important; }
#root article.fs-stage-row .fs-progress-wrap .enrollment-progress.fs-progress:not(#fs-v123):not(#fs-v124):not(#fs-v125):not(#fs-v126) { grid-auto-columns: minmax(0, 132px) !important; }
#root article.fs-stage-row .fs-progress-wrap .enrollment-progress.fs-progress > div:not(#fs-v123):not(#fs-v124):not(#fs-v126) { padding: 0 10px !important; gap: 6px !important; }
#root article.fs-stage-row .fs-progress-wrap .enrollment-progress.fs-progress > div > span:not(#fs-v123):not(#fs-v124):not(#fs-v126) { max-width: 112px !important; font-size: 12px !important; line-height: 1.25 !important; }
#root article.fs-stage-row .fs-progress-wrap .enrollment-progress.fs-progress > div:not(:first-child):not(#fs-v124):not(#fs-v126)::before { left: calc(-50% + 18px) !important; right: calc(50% + 18px) !important; }
#root article.fs-stage-row .fs-request-body .request-card-actions > button:not(#fs-v123):not(#fs-v126) { min-height: 36px !important; }

/* ---------- 30. Suivi des demandes lisible (v125) ---------- */
#root article.fs-stage-row .fs-request-body .fs-payment-progress:not(#fs-v123):not(#fs-v124):not(#fs-v125) { display: none !important; }
#root article.fs-stage-row .fs-track-v125:not(#fs-v123) { display: grid !important; gap: 10px !important; padding: 14px 16px !important; border-radius: 12px !important; background: var(--stage-soft, #f3f7fa) !important; border: 1px solid color-mix(in srgb, var(--stage, #cfdce6) 28%, #ffffff) !important; }
#root article.fs-stage-row .fs-track-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
#root article.fs-stage-row .fs-track-badge { display: inline-flex; align-items: center; gap: 7px; padding: 5px 12px; border-radius: 999px; background: var(--stage, #0b2742); color: #fff; font-size: 13.5px; font-weight: 700; white-space: nowrap; }
#root article.fs-stage-row .fs-track-badge::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #fff; opacity: .9; }
#root article.fs-stage-row .fs-track-say { margin: 0; flex: 1 1 260px; min-width: 0; font-size: 14.5px; line-height: 1.4; font-weight: 500; color: #0b2742; }
#root article.fs-stage-row .fs-track-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; }
#root article.fs-stage-row .fs-track-bar { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 4px; flex: 0 1 360px; min-width: 160px; }
#root article.fs-stage-row .fs-track-bar i { display: block; height: 6px; border-radius: 3px; background: #ffffff; border: 1px solid #d3dee7; }
#root article.fs-stage-row .fs-track-bar i.done { background: color-mix(in srgb, var(--stage, #0b2742) 55%, #ffffff); border-color: transparent; }
#root article.fs-stage-row .fs-track-bar i.current { background: var(--stage, #0b2742); border-color: transparent; }
#root article.fs-stage-row .fs-track-foot small { font-size: 13px; color: #4a5b6b; }
#root article.fs-stage-row .fs-track-foot small b { color: #0b2742; font-weight: 700; }
#root article.fs-stage-row .fs-track-v125.is-terminal .fs-track-badge { background: #9b2c2c; }
/* Trait de couleur à gauche : droit, sans arrondi */
#root article.fs-stage-row:not(#fs-v123):not(#fs-v127) { border-top-left-radius: 0 !important; border-bottom-left-radius: 0 !important; }
#root .enrollment-kpis > div::before { border-radius: 0 !important; }
/* Barre des bons plans : même taille de police partout */
#root .fs-offers-tools .fs-result-count:not(#fs-v123):not(#fs-v127), #root .fs-offers-tools .fs-result-count b:not(#fs-v127) { font-size: 15px !important; }
#root .fs-offers-tools .fs-result-count:not(#fs-v123):not(#fs-v127) { font-weight: 500 !important; }
#root .fs-offers-tools .fs-view-switch button:not(#fs-v123):not(#fs-v127) { font-size: 15px !important; font-weight: 600 !important; }
#root .fs-offers-toolbar .fs-category-select:not(#fs-v123):not(#fs-v127), #root .fs-offers-tools .fs-place-filter:not(#fs-v123):not(#fs-v127) { font-size: 15px !important; font-weight: 600 !important; }
/* Questionnaires : confirmation de suppression */
#root .fs-part-confirm { flex: 1 1 100%; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 10px 12px; border-radius: 12px; background: #fdf1f1; border: 1px solid #efc7c7; }
#root .fs-part-confirm p { flex: 1 1 100%; margin: 0; font-size: 13.5px; color: #7f1d1d; font-weight: 600; }
#root .fs-part-actions button.danger, #root .fs-part-confirm button.danger { color: #9b2c2c !important; border-color: #efc7c7 !important; background: #fff !important; }
#root .fs-part-confirm button.danger:first-of-type { background: #9b2c2c !important; color: #fff !important; border-color: #9b2c2c !important; }
#root .toast.is-error > span:first-child, .toast.is-error > span:first-child { background: #9b2c2c !important; color: #fff !important; }

/* 31. Guide d'installation (iPhone, Android, ordinateur) — v179 */
.fs-ig-backdrop { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: flex-end; justify-content: center; padding: 16px 16px calc(16px + env(safe-area-inset-bottom)); background: rgba(7, 27, 54, .55); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); animation: fsIgFade .18s ease-out; font-family: inherit; }
@media (min-width: 640px) { .fs-ig-backdrop { align-items: center; } }
.fs-ig-card { position: relative; width: 100%; max-width: 440px; max-height: calc(100dvh - 32px); overflow: auto; background: #fff; color: #10233a; border-radius: 20px; padding: 20px 20px 16px; box-shadow: 0 24px 60px rgba(0,0,0,.28); animation: fsIgUp .22s ease-out; }
.fs-ig-close { position: absolute; top: 10px; right: 10px; width: 36px; height: 36px; border: 0; border-radius: 50%; background: #eef2f6; color: #10233a; font-size: 22px; line-height: 1; cursor: pointer; }
.fs-ig-head { display: flex; align-items: center; gap: 12px; padding-right: 40px; margin-bottom: 14px; }
.fs-ig-head img { width: 48px; height: 48px; border-radius: 12px; flex: 0 0 48px; box-shadow: 0 2px 8px rgba(7,27,54,.18); }
.fs-ig-head small { display: block; font-size: 12px; font-weight: 600; color: #5b6f82; text-transform: uppercase; letter-spacing: .04em; }
.fs-ig-head h2 { margin: 2px 0 0; font-size: 19px; line-height: 1.25; font-weight: 700; color: #071b36; }
.fs-ig-steps { list-style: none; counter-reset: fsig; margin: 0; padding: 0; display: grid; gap: 10px; }
.fs-ig-steps li { counter-increment: fsig; position: relative; padding: 12px 12px 12px 48px; background: #f4f7fa; border-radius: 14px; font-size: 15px; line-height: 1.5; }
.fs-ig-steps li::before { content: counter(fsig); position: absolute; left: 12px; top: 12px; width: 26px; height: 26px; border-radius: 50%; background: #071b36; color: #fff; font-size: 14px; font-weight: 700; display: grid; place-items: center; }
.fs-ig-key { display: inline-flex; align-items: center; gap: 5px; padding: 1px 8px; margin: 0 1px; border-radius: 8px; background: #fff; border: 1px solid #cfdbe6; color: #0b5c94; font-weight: 700; white-space: nowrap; vertical-align: baseline; }
.fs-ig-key svg { width: 17px; height: 17px; flex: 0 0 17px; }
.fs-ig-note { margin: 12px 0 0; font-size: 13px; line-height: 1.45; color: #5b6f82; }
.fs-ig-actions { display: flex; gap: 8px; margin-top: 16px; }
.fs-ig-actions button { flex: 1; min-height: 46px; border-radius: 12px; font: inherit; font-size: 15px; font-weight: 700; cursor: pointer; }
.fs-ig-ok { border: 0; background: #071b36; color: #fff; }
.fs-ig-copy { border: 1px solid #cfdbe6; background: #fff; color: #0b5c94; }
@keyframes fsIgFade { from { opacity: 0 } to { opacity: 1 } }
@keyframes fsIgUp { from { transform: translateY(16px); opacity: 0 } to { transform: none; opacity: 1 } }
@media (prefers-reduced-motion: reduce) { .fs-ig-backdrop, .fs-ig-card { animation: none; } }
#root .side-install { display: flex; align-items: center; gap: 10px; width: 100%; margin-top: 10px; padding: 10px 12px; border: 1px solid rgba(255,255,255,.18); border-radius: 12px; background: rgba(255,255,255,.06); color: inherit; font: inherit; font-size: 14px; font-weight: 600; text-align: left; cursor: pointer; }
#root .side-install:hover { background: rgba(255,255,255,.12); }
#root .side-install img { width: 26px; height: 26px; border-radius: 7px; flex: 0 0 26px; }

/* v127 : notifications — place pour l'icône « Voir le message en entier » (3 boutons) */
.fs-notifications-page .notification-list>article{grid-template-columns:44px minmax(0,1fr) 125px 148px!important}
.fs-notifications-page .notification-item-actions{width:148px!important;min-width:148px!important}
.fs-notifications-page .notification-item-actions>.fs-notification-view{background:#eef7f2!important;border-color:#cfe6da!important;color:#1f7a4d!important}
@media(max-width:760px){
 .fs-notifications-page .notification-list>article{grid-template-columns:40px minmax(0,1fr) auto!important}
 .fs-notifications-page .notification-item-actions{grid-column:3!important;grid-row:2!important;width:auto!important;min-width:0!important}
}
