/* =====================================================================
 * SSGL Ops — composants du design system « sui » (03-design-system §4).
 * Couche sui.components : AU-DESSUS de l'ancien CSS (legacy), sous la coque.
 * Ne vise que des classes .sui-* (jamais un élément nu ni l'ancien balisage).
 * Couleurs : uniquement var(--sui-*) (tokens.css). Thème sombre : par les jetons.
 * Points de rupture en em : 48em = 768 px. Mouvements : --sui-dur-* (0 ms si
 * prefers-reduced-motion). Contraste forcé : bloc en fin de fichier.
 * HTML de référence : includes/ui/class-components.php ; doc : docs/refonte/09-socle-ui.md.
 * ===================================================================== */
@layer sui.components {

/* ── Fondations des composants ─────────────────────────────────────── */
.sui-icon {
  width: 1.25rem; height: 1.25rem; flex: none; display: inline-block; vertical-align: middle;
  fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round;
}
.sui-icon-16 { width: 1rem; height: 1rem; }
.sui-icon-24 { width: 1.5rem; height: 1.5rem; }
.sui-icon-32 { width: 2rem; height: 2rem; }
.sui-visually-hidden {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0;
}
.sui-num { font-family: var(--sui-font-num); font-variant-numeric: tabular-nums; white-space: nowrap; }
.sui-card {
  background: var(--sui-surface); color: var(--sui-text); border: var(--sui-border-w) solid var(--sui-border);
  border-radius: var(--sui-radius-lg); box-shadow: var(--sui-shadow-1); padding: var(--sui-sp-4) var(--sui-sp-5);
}
.sui-stack { display: flex; flex-direction: column; gap: var(--sui-sp-4); }
.sui-cluster { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sui-sp-2); }
.sui-row-host { position: relative; }

/* Tons partagés (badge, alerte, toast) : --sui-t-fg / -tint / -mark */
.sui-tone-neutral { --sui-t-fg: var(--sui-neutral-fg); --sui-t-tint: var(--sui-neutral-tint); --sui-t-mark: var(--sui-neutral-mark); }
.sui-tone-info    { --sui-t-fg: var(--sui-info-fg);    --sui-t-tint: var(--sui-info-tint);    --sui-t-mark: var(--sui-info-mark); }
.sui-tone-success { --sui-t-fg: var(--sui-success-fg); --sui-t-tint: var(--sui-success-tint); --sui-t-mark: var(--sui-success-mark); }
.sui-tone-warning { --sui-t-fg: var(--sui-warning-fg); --sui-t-tint: var(--sui-warning-tint); --sui-t-mark: var(--sui-warning-mark); }
.sui-tone-danger  { --sui-t-fg: var(--sui-danger-fg);  --sui-t-tint: var(--sui-danger-tint);  --sui-t-mark: var(--sui-danger-mark); }
.sui-tone-accent  { --sui-t-fg: var(--sui-accent-fg);  --sui-t-tint: var(--sui-accent-tint);  --sui-t-mark: var(--sui-accent-mark); }

/* ── Bouton : 5 variantes × 3 tailles ; états repos, survol, actif, focus, inactif, occupé ── */
.sui-btn {
  --sui-b-fg: var(--sui-text); --sui-b-bg: var(--sui-surface); --sui-b-bd: var(--sui-border-strong);
  --sui-b-bg-hover: var(--sui-surface-2); --sui-b-bg-active: var(--sui-border);
  position: relative; display: inline-flex; align-items: center; justify-content: center; gap: var(--sui-sp-2);
  min-height: var(--sui-h-md); min-width: var(--sui-h-md); padding: 0 var(--sui-sp-4); margin: 0;
  border: var(--sui-border-w) solid var(--sui-b-bd); border-radius: var(--sui-radius-md);
  background: var(--sui-b-bg); color: var(--sui-b-fg);
  font-family: var(--sui-font); font-size: var(--sui-fs-14); line-height: var(--sui-lh-14); font-weight: var(--sui-fw-medium);
  text-decoration: none; white-space: nowrap; cursor: pointer; user-select: none; vertical-align: middle;
  transition: background-color var(--sui-dur-1) var(--sui-ease), border-color var(--sui-dur-1) var(--sui-ease), color var(--sui-dur-1) var(--sui-ease);
}
.sui-btn:hover { background: var(--sui-b-bg-hover); color: var(--sui-b-fg); }
.sui-btn:active { background: var(--sui-b-bg-active); }
.sui-btn:focus-visible { outline: 2px solid var(--sui-focus); outline-offset: 2px; }
.sui-btn--primary {
  --sui-b-fg: var(--sui-primary-on); --sui-b-bg: var(--sui-primary-solid); --sui-b-bd: transparent;
  --sui-b-bg-hover: var(--sui-primary-solid-hover); --sui-b-bg-active: var(--sui-primary-solid-active);
  font-weight: var(--sui-fw-semibold);
}
.sui-btn--tertiary {
  --sui-b-fg: var(--sui-primary-fg); --sui-b-bg: transparent; --sui-b-bd: transparent;
  --sui-b-bg-hover: var(--sui-primary-tint); --sui-b-bg-active: var(--sui-primary-tint);
}
.sui-btn--danger {
  --sui-b-fg: var(--sui-danger-on); --sui-b-bg: var(--sui-danger-solid); --sui-b-bd: transparent;
  --sui-b-bg-hover: var(--sui-danger-solid-hover); --sui-b-bg-active: var(--sui-danger-solid-hover);
  font-weight: var(--sui-fw-semibold);
}
.sui-btn--danger-tertiary {
  --sui-b-fg: var(--sui-danger-fg); --sui-b-bg: transparent; --sui-b-bd: transparent;
  --sui-b-bg-hover: var(--sui-danger-tint); --sui-b-bg-active: var(--sui-danger-tint);
}
.sui-btn--sm { min-height: var(--sui-h-sm); min-width: var(--sui-h-sm); padding: 0 var(--sui-sp-3); gap: var(--sui-sp-1); }
.sui-btn--lg { min-height: var(--sui-h-lg); min-width: var(--sui-h-lg); padding: 0 var(--sui-sp-5); font-size: var(--sui-fs-16); line-height: var(--sui-lh-16); }
.sui-btn--icon { padding: 0; }
/* Inactif : aria-disabled (préféré, avec sa raison écrite) ou disabled. */
.sui-btn[aria-disabled="true"], .sui-btn:disabled {
  --sui-b-fg: var(--sui-text-disabled); --sui-b-bg: var(--sui-surface-2); --sui-b-bd: var(--sui-border);
  --sui-b-bg-hover: var(--sui-surface-2); --sui-b-bg-active: var(--sui-surface-2);
  cursor: not-allowed;
}
.sui-btn--tertiary[aria-disabled="true"], .sui-btn--danger-tertiary[aria-disabled="true"] { --sui-b-bg: transparent; --sui-b-bd: transparent; --sui-b-bg-hover: transparent; }
.sui-btn-reason { font-size: var(--sui-fs-12); line-height: var(--sui-lh-12); color: var(--sui-text-2); }
/* Occupé : largeur stable (libellé transparent), anneau qui tourne, aucun second envoi (ui.js). */
.sui-btn[aria-busy="true"] {
  --sui-b-bg: var(--sui-surface-2); --sui-b-bg-hover: var(--sui-surface-2); --sui-b-bd: var(--sui-border);
  color: transparent; cursor: progress;
}
.sui-btn--primary[aria-busy="true"] { --sui-b-bg: var(--sui-primary-solid); --sui-b-bg-hover: var(--sui-primary-solid); --sui-b-bd: transparent; }
.sui-btn--danger[aria-busy="true"] { --sui-b-bg: var(--sui-danger-solid); --sui-b-bg-hover: var(--sui-danger-solid); --sui-b-bd: transparent; }
.sui-btn[aria-busy="true"] > * { visibility: hidden; }
.sui-btn[aria-busy="true"]::after {
  content: ""; position: absolute; top: 50%; left: 50%; width: 1.125rem; height: 1.125rem; margin: -0.5625rem 0 0 -0.5625rem;
  border: 2px solid var(--sui-b-fg); border-right-color: transparent; border-radius: var(--sui-radius-full);
  animation: sui-spin 800ms linear infinite;
}
.sui-btn--primary[aria-busy="true"]::after { border-color: var(--sui-primary-on); border-right-color: transparent; }
.sui-btn--danger[aria-busy="true"]::after { border-color: var(--sui-danger-on); border-right-color: transparent; }
.sui-btn[aria-busy="true"]:not(.sui-btn--primary):not(.sui-btn--danger)::after { border-color: var(--sui-text-2); border-right-color: transparent; }
@keyframes sui-spin { to { transform: rotate(360deg); } }

/* ── Lien : toujours souligné (1.4.1 en sombre) ── */
.sui-link {
  color: var(--sui-primary-fg); text-decoration: underline; text-decoration-thickness: from-font; text-underline-offset: .18em;
  border-radius: 2px; display: inline; gap: var(--sui-sp-1);
}
.sui-link:hover { color: var(--sui-primary-solid-hover); text-decoration-thickness: 2px; }
.sui-link:focus-visible { outline: 2px solid var(--sui-focus); outline-offset: 2px; }
.sui-link .sui-icon { width: 1em; height: 1em; margin: 0 .15em; vertical-align: -0.125em; }
.sui-link--quiet { color: inherit; }
.sui-link--quiet:hover { color: inherit; }
.sui-link--row { color: var(--sui-text); font-weight: var(--sui-fw-semibold); text-decoration: none; }
.sui-link--row:hover { text-decoration: underline; color: var(--sui-text); }
.sui-link--row::after { content: ""; position: absolute; inset: 0; }
.sui-link--row:focus-visible { outline: none; }
.sui-link--row:focus-visible::after { outline: 2px solid var(--sui-focus); outline-offset: -2px; border-radius: var(--sui-radius-sm); }

/* ── Champ : libellé, aide, erreur, contrôle ── */
.sui-field { display: flex; flex-direction: column; gap: var(--sui-sp-1); max-width: var(--sui-form-max); min-width: 0; margin: 0 0 var(--sui-sp-4); }
.sui-field--sm { max-width: 12rem; }
.sui-field--md { max-width: 22rem; }
.sui-field--full { max-width: none; }
.sui-label { font-size: var(--sui-fs-14); line-height: var(--sui-lh-14); font-weight: var(--sui-fw-medium); color: var(--sui-text); }
.sui-label-mark { font-weight: var(--sui-fw-regular); color: var(--sui-text-2); }
.sui-help { margin: 0; font-size: var(--sui-fs-12); line-height: var(--sui-lh-12); color: var(--sui-text-2); }
.sui-error {
  margin: 0; display: flex; align-items: flex-start; gap: var(--sui-sp-1);
  font-size: var(--sui-fs-14); line-height: var(--sui-lh-14); font-weight: var(--sui-fw-medium); color: var(--sui-danger-fg);
}
.sui-error .sui-icon { margin-top: .125rem; }
.sui-input, .sui-select, .sui-textarea {
  box-sizing: border-box; width: 100%; min-height: var(--sui-h-md); margin: 0; padding: 0 var(--sui-sp-3);
  border: var(--sui-border-w) solid var(--sui-border-strong); border-radius: var(--sui-radius-md);
  background: var(--sui-surface); color: var(--sui-text);
  font-family: var(--sui-font); font-size: var(--sui-fs-14); line-height: var(--sui-lh-14);
  transition: border-color var(--sui-dur-1) var(--sui-ease);
}
.sui-textarea { padding: var(--sui-sp-2) var(--sui-sp-3); min-height: 5.5rem; resize: vertical; field-sizing: content; max-height: 24rem; }
.sui-input::placeholder, .sui-textarea::placeholder { color: var(--sui-text-placeholder); opacity: 1; }
.sui-input:hover, .sui-select:hover, .sui-textarea:hover { border-color: var(--sui-text-2); }
.sui-input:focus, .sui-select:focus, .sui-textarea:focus { outline: 2px solid var(--sui-focus); outline-offset: 0; border-color: var(--sui-focus); }
.sui-input[aria-invalid="true"], .sui-select[aria-invalid="true"], .sui-textarea[aria-invalid="true"] { border-color: var(--sui-danger-mark); border-width: 2px; }
.sui-input:disabled, .sui-select:disabled, .sui-textarea:disabled { background: var(--sui-surface-2); color: var(--sui-text-disabled); border-color: var(--sui-border); cursor: not-allowed; }
.sui-input[readonly], .sui-textarea[readonly] { background: var(--sui-surface-2); }
.sui-input.sui-num { text-align: right; }
.sui-input[type="date"], .sui-input[type="time"] { max-width: 12rem; }
/* Préfixe d'icône (recherche) et suffixe d'unité (montant) */
.sui-input-icon { position: relative; display: block; }
.sui-input-icon > .sui-icon { position: absolute; left: var(--sui-sp-3); top: 50%; transform: translateY(-50%); color: var(--sui-text-2); pointer-events: none; }
.sui-input-icon > .sui-input { padding-left: 2.5rem; }
.sui-input-affix { display: flex; align-items: stretch; min-width: 0; }
.sui-input-affix > .sui-input { border-top-right-radius: 0; border-bottom-right-radius: 0; min-width: 0; }
.sui-affix {
  display: inline-flex; align-items: center; padding: 0 var(--sui-sp-3); white-space: nowrap;
  border: var(--sui-border-w) solid var(--sui-border-strong); border-left: 0; border-radius: 0 var(--sui-radius-md) var(--sui-radius-md) 0;
  background: var(--sui-surface-2); color: var(--sui-text-2);
}
/* Sélecteur natif + chevron du sprite (pas d'image de fond) */
.sui-select-wrap { position: relative; display: block; min-width: 0; }
.sui-select { appearance: none; -webkit-appearance: none; padding-right: 2.5rem; cursor: pointer; }
.sui-select-chevron { position: absolute; right: var(--sui-sp-3); top: 50%; transform: translateY(-50%); pointer-events: none; color: var(--sui-text-2); }
.sui-select:disabled + .sui-select-chevron { color: var(--sui-text-disabled); }

/* ── Case et radio natives : 20 px, zone de clic de 40 px ── */
.sui-check { display: inline-flex; align-items: center; gap: var(--sui-sp-2); min-height: var(--sui-h-md); cursor: pointer; color: var(--sui-text); font-size: var(--sui-fs-14); }
.sui-check--bare { min-width: var(--sui-h-md); justify-content: center; }
.sui-check-input { width: 1.25rem; height: 1.25rem; margin: 0; flex: none; accent-color: var(--sui-primary-solid); cursor: pointer; }
.sui-check-input:focus-visible { outline: 2px solid var(--sui-focus); outline-offset: 2px; }
.sui-check-input:disabled, .sui-check-input:disabled + .sui-check-label { cursor: not-allowed; color: var(--sui-text-disabled); }

/* ── Interrupteur : bouton role=switch, piste ≥ 3:1, état écrit, pouce à coche ── */
.sui-switch-row { display: flex; align-items: center; justify-content: space-between; gap: var(--sui-sp-4); min-height: var(--sui-h-md); max-width: var(--sui-form-max); }
.sui-switch-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.sui-switch-label { font-weight: var(--sui-fw-medium); color: var(--sui-text); }
.sui-switch {
  display: inline-flex; align-items: center; gap: var(--sui-sp-2); flex: none;
  min-height: var(--sui-h-md); padding: var(--sui-sp-1); margin: 0;
  border: 0; border-radius: var(--sui-radius-md); background: transparent; color: var(--sui-text);
  font-family: var(--sui-font); font-size: var(--sui-fs-14); cursor: pointer;
}
.sui-switch:focus-visible { outline: 2px solid var(--sui-focus); outline-offset: 2px; }
.sui-switch-track {
  position: relative; width: 2.75rem; height: 1.5rem; flex: none; border-radius: var(--sui-radius-full);
  background: var(--sui-border-strong); transition: background-color var(--sui-dur-2) var(--sui-ease);
}
.sui-switch-thumb {
  position: absolute; top: .1875rem; left: .1875rem; width: 1.125rem; height: 1.125rem;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: var(--sui-radius-full); background: var(--sui-surface); color: transparent;
  transition: transform var(--sui-dur-2) var(--sui-ease);
}
.sui-switch-thumb .sui-icon { width: .75rem; height: .75rem; stroke-width: 3; }
.sui-switch[aria-checked="true"] .sui-switch-track { background: var(--sui-primary-solid); }
.sui-switch[aria-checked="true"] .sui-switch-thumb { transform: translateX(1.25rem); color: var(--sui-primary-solid); }
.sui-switch-state { min-width: 5.5em; text-align: left; color: var(--sui-text-2); }
.sui-switch[aria-checked="true"] .sui-switch-state { color: var(--sui-text); font-weight: var(--sui-fw-medium); }
.sui-switch[aria-disabled="true"] { cursor: not-allowed; }
.sui-switch[aria-disabled="true"] .sui-switch-track { background: var(--sui-border); }
.sui-switch[aria-disabled="true"] .sui-switch-state { color: var(--sui-text-disabled); }
.sui-switch[aria-busy="true"] { cursor: progress; }

/* ── Badge de statut : 24 px, icône + libellé, teinte du ton ; étiquette ── */
.sui-badge {
  display: inline-flex; align-items: center; gap: .25rem; min-height: 1.5rem; padding: 0 .5rem; max-width: 100%;
  border: var(--sui-border-w) solid transparent; border-radius: var(--sui-radius-sm);
  background: var(--sui-t-tint, var(--sui-neutral-tint)); color: var(--sui-t-fg, var(--sui-neutral-fg));
  font-family: var(--sui-font); font-size: var(--sui-fs-12); line-height: var(--sui-lh-12); font-weight: var(--sui-fw-medium);
  white-space: nowrap; vertical-align: middle;
}
.sui-badge .sui-icon { width: 1rem; height: 1rem; }
.sui-tag {
  display: inline-flex; align-items: center; min-height: 1.5rem; padding: 0 .5rem;
  border: var(--sui-border-w) solid var(--sui-border-strong); border-radius: var(--sui-radius-full);
  color: var(--sui-text-2); font-size: var(--sui-fs-12); line-height: var(--sui-lh-12); font-weight: var(--sui-fw-medium); white-space: nowrap;
}
.sui-count {
  display: inline-flex; align-items: center; justify-content: center; min-width: 1.5rem; height: 1.25rem; padding: 0 .375rem;
  border-radius: var(--sui-radius-full); background: var(--sui-surface-2); color: var(--sui-text-2);
  font-family: var(--sui-font-num); font-size: var(--sui-fs-12); line-height: 1; font-weight: var(--sui-fw-semibold);
}

/* ── Onglets et vues : liens dans <nav>, aria-current, trait de 2 px + graisse 600 ── */
.sui-tabs ul {
  position: relative; list-style: none; margin: 0; padding: 0; display: flex; gap: var(--sui-sp-1);
  border-bottom: var(--sui-border-w) solid var(--sui-border); overflow-x: auto; scrollbar-width: thin;
}
.sui-tabs li { flex: none; }
.sui-tabs a {
  display: inline-flex; align-items: center; gap: var(--sui-sp-2); min-height: var(--sui-h-md); padding: 0 var(--sui-sp-3);
  border-bottom: 2px solid transparent; color: var(--sui-text-2); text-decoration: none; white-space: nowrap;
  font-size: var(--sui-fs-14); font-weight: var(--sui-fw-medium);
}
.sui-tabs a:hover { color: var(--sui-text); border-bottom-color: var(--sui-border-strong); }
.sui-tabs a:focus-visible { outline: 2px solid var(--sui-focus); outline-offset: -2px; border-radius: var(--sui-radius-sm) var(--sui-radius-sm) 0 0; }
.sui-tabs a[aria-current="page"] { color: var(--sui-text); font-weight: var(--sui-fw-semibold); border-bottom-color: var(--sui-text); }
.sui-tabs a[aria-current="page"] .sui-count { background: var(--sui-nav-active-bg); color: var(--sui-nav-active-fg); }
.sui-views ul { border-bottom: 0; gap: var(--sui-sp-2); padding: 2px; }
.sui-views a {
  min-height: var(--sui-h-sm); padding: 0 var(--sui-sp-3); border: var(--sui-border-w) solid var(--sui-border-strong);
  border-radius: var(--sui-radius-full); color: var(--sui-text);
}
.sui-views a:hover { background: var(--sui-surface-2); border-color: var(--sui-border-strong); }
.sui-views a:focus-visible { outline-offset: 2px; border-radius: var(--sui-radius-full); }
.sui-views a[aria-current="page"] { background: var(--sui-nav-active-bg); color: var(--sui-nav-active-fg); border-color: var(--sui-nav-active-bg); }

/* ── Tableau : zone défilante focalisable, en-têtes, nombres à droite, tri, pied ── */
.sui-table-wrap {
  position: relative; /* contient les éléments masqués (absolus) : sinon ils débordent de la page */
  overflow-x: auto; max-width: 100%; background: var(--sui-surface);
  border: var(--sui-border-w) solid var(--sui-border); border-radius: var(--sui-radius-lg);
}
.sui-table-wrap:focus-visible { outline: 2px solid var(--sui-focus); outline-offset: 2px; }
.sui-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: var(--sui-fs-14); line-height: var(--sui-lh-14); color: var(--sui-text); }
.sui-table caption { caption-side: top; text-align: left; padding: var(--sui-sp-3) var(--sui-sp-4); font-weight: var(--sui-fw-semibold); font-size: var(--sui-fs-16); }
.sui-table th, .sui-table td { padding: var(--sui-sp-2) var(--sui-sp-3); text-align: left; vertical-align: middle; border-bottom: var(--sui-border-w) solid var(--sui-border); }
.sui-table thead th {
  background: var(--sui-surface-2); color: var(--sui-text-2); font-weight: var(--sui-fw-semibold); white-space: nowrap; height: var(--sui-h-md);
}
.sui-table tbody th[scope="row"] { font-weight: var(--sui-fw-medium); }
.sui-table tbody tr:hover > * { background: var(--sui-surface-2); }
.sui-table tbody tr:last-child > * { border-bottom: 0; }
.sui-table .is-num { text-align: right; font-family: var(--sui-font-num); font-variant-numeric: tabular-nums; white-space: nowrap; }
.sui-table tfoot td, .sui-table tfoot th { font-weight: var(--sui-fw-semibold); background: var(--sui-surface-2); border-top: 2px solid var(--sui-border-strong); border-bottom: 0; }
.sui-table--dense th, .sui-table--dense td { padding-top: var(--sui-sp-1); padding-bottom: var(--sui-sp-1); }
.sui-table--sticky-head thead th { position: sticky; top: 0; z-index: 1; }
.sui-table--sticky-first :is(th, td):first-child { position: sticky; left: 0; z-index: 1; background: var(--sui-surface); }
.sui-table--sticky-first thead th:first-child, .sui-table--sticky-first tfoot :is(th, td):first-child { background: var(--sui-surface-2); z-index: 2; }
.sui-table-empty { text-align: center; color: var(--sui-text-2); padding: var(--sui-sp-6) var(--sui-sp-4); }
.sui-sort { display: inline-flex; align-items: center; gap: var(--sui-sp-1); color: inherit; text-decoration: none; border-radius: var(--sui-radius-sm); }
.sui-sort:hover { color: var(--sui-text); text-decoration: underline; }
.sui-sort:focus-visible { outline: 2px solid var(--sui-focus); outline-offset: 2px; }
.sui-table th[aria-sort] .sui-sort { color: var(--sui-text); }
.sui-table .is-num .sui-sort { flex-direction: row-reverse; }

/* ── Pagination : « 1–50 sur 79 », liens ── */
.sui-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sui-sp-3); margin: var(--sui-sp-4) 0 0; }
.sui-pagination-summary { margin: 0; color: var(--sui-text-2); font-family: var(--sui-font-num); }
.sui-pagination ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: var(--sui-sp-1); }
.sui-pagination a {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--sui-sp-1);
  min-width: var(--sui-h-md); min-height: var(--sui-h-md); padding: 0 var(--sui-sp-2);
  border: var(--sui-border-w) solid transparent; border-radius: var(--sui-radius-md);
  color: var(--sui-text); text-decoration: none; font-family: var(--sui-font-num);
}
.sui-pagination a:hover { background: var(--sui-surface-2); text-decoration: underline; }
.sui-pagination a:focus-visible { outline: 2px solid var(--sui-focus); outline-offset: 2px; }
.sui-pagination a[aria-current="page"] { background: var(--sui-nav-active-bg); color: var(--sui-nav-active-fg); font-weight: var(--sui-fw-semibold); }
.sui-pagination .sui-page-step { font-family: var(--sui-font); padding: 0 var(--sui-sp-3); border-color: var(--sui-border-strong); }
.sui-page-gap { min-width: 1.5rem; text-align: center; color: var(--sui-text-2); }

/* ── Filtres et recherche ── */
.sui-filters { display: flex; flex-direction: column; gap: var(--sui-sp-3); margin: 0 0 var(--sui-sp-3); }
.sui-filters-row { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--sui-sp-3); }
.sui-filters-row > .sui-field { flex: 1 1 12rem; margin: 0; max-width: 22rem; }
.sui-filters-row > .sui-filters-search { flex: 2 1 16rem; max-width: 28rem; }
.sui-filters-submit { flex: none; }
.sui-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: var(--sui-sp-2); }
.sui-chip {
  display: inline-flex; align-items: center; gap: var(--sui-sp-1); min-height: var(--sui-h-sm); padding: 0 var(--sui-sp-2) 0 var(--sui-sp-3);
  border: var(--sui-border-w) solid transparent; border-radius: var(--sui-radius-full);
  background: var(--sui-primary-tint); color: var(--sui-text); text-decoration: none; font-size: var(--sui-fs-14);
}
.sui-chip:hover { border-color: var(--sui-primary-fg); }
.sui-chip:focus-visible { outline: 2px solid var(--sui-focus); outline-offset: 2px; }
.sui-filters-summary { margin: 0 0 var(--sui-sp-3); color: var(--sui-text-2); }
[data-sui-fragment-target][aria-busy="true"] { opacity: .6; transition: opacity var(--sui-dur-2) var(--sui-ease); }

/* ── Alerte, bannière, fraîcheur ── */
.sui-alert {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: start; gap: var(--sui-sp-2) var(--sui-sp-3);
  margin: 0 0 var(--sui-sp-4); padding: var(--sui-sp-3) var(--sui-sp-4);
  border: var(--sui-border-w) solid transparent; border-left: 4px solid var(--sui-t-mark, var(--sui-info-mark)); border-radius: var(--sui-radius-md);
  background: var(--sui-t-tint, var(--sui-info-tint)); color: var(--sui-text);
}
.sui-alert-icon { color: var(--sui-t-fg, var(--sui-info-fg)); margin-top: .0625rem; }
.sui-alert-body { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.sui-alert-body > p { margin: 0; }
.sui-alert-title { font-weight: var(--sui-fw-semibold); }
.sui-alert-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sui-sp-2); }
.sui-alert-close { margin: -.25rem -.5rem -.25rem 0; }
.sui-freshness { display: inline-flex; flex-wrap: wrap; align-items: center; gap: var(--sui-sp-1) var(--sui-sp-2); margin: 0; color: var(--sui-text-2); }

/* ── Toasts : zones polite / assertive, au-dessus des barres collantes ── */
.sui-toasts {
  position: fixed; z-index: var(--sui-z-toast); right: var(--sui-sp-4); bottom: var(--sui-sp-4);
  width: min(26rem, calc(100vw - 2rem)); display: flex; flex-direction: column; gap: var(--sui-sp-2); pointer-events: none;
  font-family: var(--sui-font); font-size: var(--sui-fs-14); line-height: var(--sui-lh-14); text-align: left;
}
.sui-toast-region { display: flex; flex-direction: column; gap: var(--sui-sp-2); }
.sui-toast {
  pointer-events: auto; display: flex; align-items: center; gap: var(--sui-sp-3); min-height: var(--sui-h-lg);
  padding: var(--sui-sp-2) var(--sui-sp-2) var(--sui-sp-2) var(--sui-sp-4); border-radius: var(--sui-radius-md);
  background: var(--sui-nav-active-bg); color: var(--sui-nav-active-fg); box-shadow: var(--sui-shadow-3);
  border: var(--sui-border-w) solid transparent;
  animation: sui-toast-in var(--sui-dur-2) var(--sui-ease);
}
.sui-toast--error { background: var(--sui-danger-solid); color: var(--sui-danger-on); }
.sui-toast-text { flex: 1 1 auto; min-width: 0; margin: 0; }
.sui-toast-action, .sui-toast-close {
  flex: none; display: inline-flex; align-items: center; justify-content: center; gap: var(--sui-sp-1);
  min-height: var(--sui-h-sm); min-width: var(--sui-h-sm); padding: 0 var(--sui-sp-2); margin: 0;
  border: var(--sui-border-w) solid currentColor; border-radius: var(--sui-radius-sm);
  background: transparent; color: inherit; font-family: var(--sui-font); font-size: var(--sui-fs-14); font-weight: var(--sui-fw-semibold); cursor: pointer;
}
.sui-toast-close { border-color: transparent; padding: 0; }
.sui-toast-action:hover, .sui-toast-close:hover { text-decoration: underline; border-color: currentColor; }
.sui-toast-action:focus-visible, .sui-toast-close:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
@keyframes sui-toast-in { from { opacity: 0; transform: translateY(.5rem); } to { opacity: 1; transform: none; } }

/* ── Dialogue (<dialog> modal) ── */
.sui-dialog {
  box-sizing: border-box; width: min(calc(100% - 2rem), 37.5rem); max-width: none; max-height: min(calc(100dvh - 4rem), 48rem);
  margin: auto; padding: 0; border: var(--sui-border-w) solid var(--sui-border); border-radius: var(--sui-radius-lg);
  background: var(--sui-surface-3); color: var(--sui-text); box-shadow: var(--sui-shadow-3); overflow: hidden;
  font-family: var(--sui-font); font-size: var(--sui-fs-14); line-height: var(--sui-lh-14);
}
.sui-dialog[open] { display: flex; flex-direction: column; animation: sui-dialog-in var(--sui-dur-2) var(--sui-ease); }
.sui-dialog::backdrop { background: var(--sui-overlay); }
.sui-dialog--sm { width: min(calc(100% - 2rem), 27.5rem); }
.sui-dialog--lg { width: min(calc(100% - 2rem), 50rem); }
.sui-dialog-form { display: flex; flex-direction: column; min-height: 0; max-height: inherit; margin: 0; }
.sui-dialog-head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--sui-sp-3); padding: var(--sui-sp-4) var(--sui-sp-4) var(--sui-sp-2) var(--sui-sp-5); }
.sui-dialog-title { margin: 0; padding-top: .25rem; font-size: var(--sui-fs-20); line-height: var(--sui-lh-20); font-weight: var(--sui-fw-semibold); color: var(--sui-text); }
.sui-dialog-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: var(--sui-sp-2) var(--sui-sp-5) var(--sui-sp-4); }
.sui-dialog-body > p { margin: 0 0 var(--sui-sp-3); }
.sui-dialog-foot { display: flex; flex-wrap: wrap-reverse; justify-content: flex-end; gap: var(--sui-sp-2); padding: var(--sui-sp-3) var(--sui-sp-5) var(--sui-sp-4); border-top: var(--sui-border-w) solid var(--sui-border); }
:root:has(.sui-dialog[open]) { overflow: hidden; }
@keyframes sui-dialog-in { from { opacity: 0; transform: translateY(.5rem) scale(.98); } to { opacity: 1; transform: none; } }

/* ── Palette de recherche Ctrl K / ⌘ K (E21, 2.52.0, assets/ui/palette.js) ── */
.sui-search-dialog { max-height: min(calc(100dvh - 4rem), 34rem); }
.sui-search-head { padding: var(--sui-sp-3) var(--sui-sp-3) var(--sui-sp-2) var(--sui-sp-4); align-items: center; }
.sui-search-input-wrap { flex: 1 1 auto; display: flex; align-items: center; gap: var(--sui-sp-2); min-width: 0; }
.sui-search-input-wrap .sui-icon { flex: none; color: var(--sui-text-2); }
.sui-search-input {
  flex: 1 1 auto; min-width: 0; border: 0; background: transparent; color: var(--sui-text);
  font-family: var(--sui-font); font-size: var(--sui-fs-20); line-height: var(--sui-lh-20); padding: var(--sui-sp-2) 0;
}
.sui-search-input::placeholder { color: var(--sui-text-placeholder); }
.sui-search-input:focus { outline: none; }
.sui-search-body { padding: 0; }
.sui-search-status { margin: 0; padding: var(--sui-sp-2) var(--sui-sp-5); font-size: var(--sui-fs-14); color: var(--sui-text-2); }
.sui-search-listbox { list-style: none; margin: 0; padding: 0 var(--sui-sp-2) var(--sui-sp-2); }
.sui-search-group-label {
  display: flex; align-items: center; gap: var(--sui-sp-2); margin-top: var(--sui-sp-2); padding: var(--sui-sp-1) var(--sui-sp-3);
  font-size: var(--sui-fs-12); line-height: var(--sui-lh-12); font-weight: var(--sui-fw-semibold); text-transform: uppercase;
  letter-spacing: var(--sui-tracking-caps); color: var(--sui-text-2);
}
.sui-search-group-label .sui-icon { color: var(--sui-text-2); }
.sui-search-option {
  display: flex; flex-direction: column; gap: .125rem; padding: var(--sui-sp-2) var(--sui-sp-3); border-radius: var(--sui-radius-md); cursor: pointer;
}
.sui-search-option:hover, .sui-search-option.is-active { background: var(--sui-surface-2); }
.sui-search-option-title { font-weight: var(--sui-fw-medium); color: var(--sui-text); }
.sui-search-option-context { font-size: var(--sui-fs-12); line-height: var(--sui-lh-12); color: var(--sui-text-2); }
.sui-search-foot { justify-content: flex-start; padding: var(--sui-sp-2) var(--sui-sp-5) var(--sui-sp-3); }
.sui-search-foot .sui-search-see-all[hidden] { display: none; }

/* ── Résultats de recherche (page ssgl-ops&q=, templates/screens/search) ── */
.sui-search-group-title { display: flex; align-items: center; gap: var(--sui-sp-2); margin: 0 0 var(--sui-sp-2); font-size: var(--sui-fs-16); }
.sui-search-group-title .sui-icon { color: var(--sui-text-2); }
.sui-search-results { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.sui-search-result { display: flex; flex-direction: column; gap: .125rem; padding: var(--sui-sp-2) 0; border-top: var(--sui-border-w) solid var(--sui-border); }
.sui-search-result:first-child { border-top: 0; }
.sui-search-context { font-size: var(--sui-fs-12); line-height: var(--sui-lh-12); color: var(--sui-text-2); }

/* ── Menu « … » : bouton de divulgation + liste de liens et de boutons ── */
.sui-menu { position: relative; display: inline-flex; }
.sui-menu-panel {
  position: absolute; top: calc(100% + var(--sui-sp-1)); right: 0; z-index: var(--sui-z-dropdown);
  min-width: 14rem; max-width: min(22rem, calc(100vw - 2rem)); padding: var(--sui-sp-1);
  background: var(--sui-surface-3); color: var(--sui-text);
  border: var(--sui-border-w) solid var(--sui-border); border-radius: var(--sui-radius-md); box-shadow: var(--sui-shadow-2);
}
.sui-menu-panel[hidden] { display: none; }
/* Menu ouvert dans une zone défilante (tableau) : panneau flottant, placé par ui.js (propriétés --sui-*) */
.sui-menu-panel.is-floating { position: fixed; top: var(--sui-menu-top, auto); bottom: var(--sui-menu-bottom, auto); left: var(--sui-menu-left, auto); right: auto; }
.sui-menu--start .sui-menu-panel { right: auto; left: 0; }
.sui-menu-panel ul { list-style: none; margin: 0; padding: 0; }
.sui-menu-panel ul + ul { margin-top: var(--sui-sp-1); padding-top: var(--sui-sp-1); border-top: var(--sui-border-w) solid var(--sui-border); }
.sui-menu-item {
  display: flex; align-items: center; gap: var(--sui-sp-2); width: 100%; min-height: var(--sui-h-md); padding: var(--sui-sp-1) var(--sui-sp-3); margin: 0;
  border: 0; border-radius: var(--sui-radius-sm); background: transparent; color: var(--sui-text);
  font-family: var(--sui-font); font-size: var(--sui-fs-14); line-height: var(--sui-lh-14); text-align: left; text-decoration: none; cursor: pointer;
}
.sui-menu-item:hover, .sui-menu-item:focus-visible { background: var(--sui-surface-2); color: var(--sui-text); }
.sui-menu-item:focus-visible { outline: 2px solid var(--sui-focus); outline-offset: -2px; }
.sui-menu-item.is-danger { color: var(--sui-danger-fg); }
.sui-menu-item.is-danger:hover { background: var(--sui-danger-tint); color: var(--sui-danger-fg); }
.sui-menu-item[aria-disabled="true"] { color: var(--sui-text-disabled); cursor: not-allowed; }
.sui-menu-item[aria-disabled="true"]:hover { background: transparent; }
.sui-menu-text { display: flex; flex-direction: column; flex: 1 1 auto; min-width: 0; }
.sui-menu-reason { font-size: var(--sui-fs-12); line-height: var(--sui-lh-12); color: var(--sui-text-2); }

/* ── États : vide, aucun résultat, erreur, chargement ── */
.sui-state {
  display: flex; flex-direction: column; align-items: center; gap: var(--sui-sp-2); text-align: center;
  padding: var(--sui-sp-6) var(--sui-sp-4); color: var(--sui-text-2);
  background: var(--sui-surface); border: var(--sui-border-w) dashed var(--sui-border-strong); border-radius: var(--sui-radius-lg);
}
.sui-state > .sui-icon { color: var(--sui-text-2); }
.sui-state--error { border-style: solid; border-color: var(--sui-danger-mark); }
.sui-state--error > .sui-icon { color: var(--sui-danger-fg); }
.sui-state-title { margin: 0; font-size: var(--sui-fs-16); line-height: var(--sui-lh-16); font-weight: var(--sui-fw-semibold); color: var(--sui-text); }
.sui-state-text { margin: 0; max-width: 40rem; }
.sui-state-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--sui-sp-2); margin-top: var(--sui-sp-2); max-width: 100%; }
.sui-state-actions .sui-btn { white-space: normal; text-align: center; }
.sui-state--loading { align-items: stretch; text-align: left; border-style: solid; border-color: var(--sui-border); }
.sui-state--loading .sui-state-text { animation: sui-appear 1ms linear 1s both; }
.sui-skeleton {
  display: block; height: .75rem; border-radius: var(--sui-radius-sm);
  background: linear-gradient(90deg, var(--sui-surface-2) 0%, var(--sui-border) 50%, var(--sui-surface-2) 100%) 0 0 / 200% 100%;
  animation: sui-shimmer 1.4s ease-in-out infinite;
}
.sui-skeleton:nth-child(3n+2) { width: 80%; }
.sui-skeleton:nth-child(3n) { width: 60%; }
.sui-spinner {
  display: inline-block; width: 1.25rem; height: 1.25rem; flex: none; border: 2px solid currentColor; border-right-color: transparent;
  border-radius: var(--sui-radius-full); animation: sui-spin 800ms linear infinite; vertical-align: middle;
}
@keyframes sui-appear { from { visibility: hidden; } to { visibility: visible; } }
@keyframes sui-shimmer { from { background-position: 100% 0; } to { background-position: -100% 0; } }

/* ── En-tête de page : fil d'Ariane, h1 unique, badges, actions, faits, sous-navigation ── */
.sui-page-header { display: flex; flex-direction: column; gap: var(--sui-sp-2); margin: 0 0 var(--sui-sp-5); }
.sui-crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: var(--sui-sp-1); font-size: var(--sui-fs-14); color: var(--sui-text-2); }
.sui-crumbs li { display: inline-flex; align-items: center; gap: var(--sui-sp-1); min-width: 0; }
.sui-crumbs li + li::before { content: "›" / ""; color: var(--sui-text-2); }
.sui-crumbs a { color: var(--sui-text-2); text-decoration: underline; text-underline-offset: .18em; border-radius: 2px; }
.sui-crumbs a:hover { color: var(--sui-text); }
.sui-crumbs a:focus-visible { outline: 2px solid var(--sui-focus); outline-offset: 2px; }
.sui-crumbs [aria-current="page"] { color: var(--sui-text); }
.sui-page-header-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sui-sp-3) var(--sui-sp-4); }
.sui-page-header-main { flex: 1 1 16rem; min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: var(--sui-sp-2) var(--sui-sp-3); }
.sui-page-title { margin: 0; min-width: 0; font-size: var(--sui-fs-24); line-height: var(--sui-lh-24); font-weight: var(--sui-fw-semibold); color: var(--sui-text); overflow-wrap: anywhere; }
.sui-page-title:focus { outline: none; }
.sui-page-title:focus-visible { outline: 2px solid var(--sui-focus); outline-offset: 4px; border-radius: 2px; }
.sui-page-badges { display: flex; flex-wrap: wrap; gap: var(--sui-sp-2); }
.sui-page-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sui-sp-2); }
.sui-page-meta { margin: 0; color: var(--sui-text-2); }
.sui-page-header > .sui-tabs { margin-top: var(--sui-sp-2); }
.sui-facts { display: flex; flex-wrap: wrap; gap: var(--sui-sp-3) var(--sui-sp-6); margin: var(--sui-sp-1) 0 0; }
.sui-facts > div { min-width: 0; }
.sui-facts dt { font-size: var(--sui-fs-12); line-height: var(--sui-lh-12); color: var(--sui-text-2); font-weight: var(--sui-fw-medium); }
.sui-facts dd { margin: 2px 0 0; font-weight: var(--sui-fw-medium); color: var(--sui-text); }

/* ── Écrans < 768 px : cibles tactiles de 44 px, champs en 16 px, cartes, feuilles ── */
@media (max-width: 47.99em) {
  .sui-btn, .sui-btn--sm { min-height: var(--sui-target-touch); min-width: var(--sui-target-touch); }
  .sui-tabs a, .sui-views a, .sui-chip, .sui-switch, .sui-pagination a, .sui-toast-action, .sui-toast-close { min-height: var(--sui-target-touch); min-width: var(--sui-target-touch); }
  .sui-input, .sui-select, .sui-textarea { font-size: var(--sui-fs-16); min-height: var(--sui-h-lg); }
  .sui-page-title { font-size: var(--sui-fs-20); line-height: var(--sui-lh-20); }
  .sui-page-actions { width: 100%; }
  .sui-alert { grid-template-columns: auto minmax(0, 1fr) auto; }
  .sui-alert-actions { grid-column: 2 / -1; }
  /* Au-dessus de la barre du bas (coque) ; une feuille ouverte (menu) passe devant les toasts. */
  .sui-toasts { left: var(--sui-sp-3); right: var(--sui-sp-3); width: auto; bottom: calc(var(--sui-bottombar-h) + env(safe-area-inset-bottom) + var(--sui-sp-3)); }
  /* Toasts déplacés dans un dialogue ouvert (ui.js) : en haut, la feuille occupe le bas de l'écran. */
  dialog[open] > .sui-toasts { top: calc(env(safe-area-inset-top) + var(--sui-sp-3)); bottom: auto; }
  .sui-filters-row > .sui-field, .sui-filters-row > .sui-filters-search { flex-basis: 100%; max-width: none; }
  /* Dialogue en feuille, ancrée en bas */
  .sui-dialog, .sui-dialog--sm, .sui-dialog--lg { width: 100%; max-height: 92dvh; margin: auto 0 0; border-radius: var(--sui-radius-lg) var(--sui-radius-lg) 0 0; padding-bottom: env(safe-area-inset-bottom); }
  .sui-dialog-foot > .sui-btn { flex: 1 1 auto; }
  /* Menu « … » en feuille en bas d'écran */
  .sui-menu-panel {
    position: fixed; top: auto; left: 0; right: 0; bottom: 0; max-width: none; z-index: calc(var(--sui-z-toast) + 1);
    padding: var(--sui-sp-2) var(--sui-sp-2) calc(var(--sui-sp-2) + env(safe-area-inset-bottom));
    border-radius: var(--sui-radius-lg) var(--sui-radius-lg) 0 0; box-shadow: var(--sui-shadow-3);
  }
  .sui-menu-item { min-height: var(--sui-h-lg); }
  /* Tableau en cartes (mode « cards ») : en-têtes masqués visuellement, libellés par cellule */
  .sui-table-wrap--cards { border: 0; background: transparent; overflow: visible; }
  .sui-table--cards, .sui-table--cards tbody, .sui-table--cards tfoot, .sui-table--cards tr, .sui-table--cards th, .sui-table--cards td { display: block; }
  .sui-table--cards caption { display: block; padding: 0 0 var(--sui-sp-3); }
  .sui-table--cards thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
  .sui-table--cards tr {
    margin: 0 0 var(--sui-sp-3); padding: var(--sui-sp-3) var(--sui-sp-4); background: var(--sui-surface);
    border: var(--sui-border-w) solid var(--sui-border); border-radius: var(--sui-radius-lg);
  }
  .sui-table--cards tbody tr:hover > * { background: transparent; }
  .sui-table--cards th, .sui-table--cards td { padding: var(--sui-sp-1) 0; border: 0; text-align: left; min-width: 0; overflow-wrap: anywhere; }
  .sui-table--cards th[scope="row"] { font-size: var(--sui-fs-16); font-weight: var(--sui-fw-semibold); padding-bottom: var(--sui-sp-2); }
  .sui-table--cards td[data-label] { display: flex; justify-content: space-between; align-items: baseline; gap: var(--sui-sp-3); }
  .sui-table--cards td[data-label]::before { content: attr(data-label); color: var(--sui-text-2); font-weight: var(--sui-fw-medium); text-align: left; white-space: normal; flex: 0 0 auto; }
  .sui-table--cards td[data-label] > * { min-width: 0; }
  .sui-table--cards tfoot tr { background: var(--sui-surface-2); }
  .sui-table--cards tfoot td, .sui-table--cards tfoot th { border-top: 0; background: transparent; }
  .sui-pagination, .sui-pagination ul { justify-content: center; }
  .sui-pagination-summary { width: 100%; text-align: center; }
}

/* ── Animations réduites : aucune rotation ni balayage (l'état reste écrit) ── */
@media (prefers-reduced-motion: reduce) {
  .sui-btn[aria-busy="true"]::after, .sui-spinner { animation: none; border-right-color: currentColor; border-style: dotted; }
  .sui-skeleton { animation: none; }
  .sui-state--loading .sui-state-text { animation: none; }
  .sui-dialog[open], .sui-toast { animation: none; }
}

/* ── Contraste forcé (Windows) : contours rendus visibles, focus en Highlight ── */
@media (forced-colors: active) {
  .sui-btn, .sui-badge, .sui-tag, .sui-chip, .sui-toast, .sui-alert, .sui-menu-panel, .sui-dialog, .sui-state { border-color: CanvasText; }
  .sui-count { border: 1px solid CanvasText; }
  .sui-btn[aria-disabled="true"], .sui-btn:disabled { color: GrayText; border-color: GrayText; }
  :is(.sui-btn, .sui-link, .sui-input, .sui-select, .sui-textarea, .sui-check-input, .sui-switch, .sui-tabs a, .sui-pagination a, .sui-chip, .sui-menu-item, .sui-sort, .sui-toast-action, .sui-toast-close, .sui-table-wrap, .sui-crumbs a):focus-visible { outline: 2px solid Highlight; }
  .sui-switch-track, .sui-switch-thumb { forced-color-adjust: none; }
  .sui-switch-track { background: Canvas; border: 1px solid CanvasText; }
  .sui-switch-thumb { background: CanvasText; top: calc(.1875rem - 1px); left: calc(.1875rem - 1px); }
  .sui-switch[aria-checked="true"] .sui-switch-track { background: Highlight; border-color: Highlight; }
  .sui-switch[aria-checked="true"] .sui-switch-thumb { background: HighlightText; color: Highlight; }
  .sui-tabs a[aria-current="page"], .sui-views a[aria-current="page"], .sui-pagination a[aria-current="page"] { outline: 2px solid CanvasText; outline-offset: -2px; }
  .sui-skeleton { background: GrayText; }
  .sui-btn[aria-busy="true"]::after, .sui-spinner { border-color: CanvasText; border-right-color: transparent; }
}

/* ── Réglages › Design system (2.50.1) : nuanciers, grille d'icônes, échelle de texte.
   Utilisé UNIQUEMENT par includes/screens/class-design-system.php (page de référence,
   manage_options). Couleurs : uniquement var(--sui-*), jamais de style= en ligne. ── */
.sui-ds-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(8.5rem, 1fr)); gap: var(--sui-sp-3); margin: 0 0 var(--sui-sp-5); }
.sui-ds-swatch { display: flex; flex-direction: column; gap: var(--sui-sp-1); min-width: 0; }
.sui-ds-swatch-box { height: 3rem; border-radius: var(--sui-radius-md); border: var(--sui-border-w) solid var(--sui-border); }
.sui-ds-swatch-name { font-size: var(--sui-fs-12); color: var(--sui-text-2); overflow-wrap: anywhere; }
.sui-ds-swatch-box--bg { background: var(--sui-bg); }
.sui-ds-swatch-box--surface { background: var(--sui-surface); }
.sui-ds-swatch-box--surface-2 { background: var(--sui-surface-2); }
.sui-ds-swatch-box--surface-3 { background: var(--sui-surface-3); }
.sui-ds-swatch-box--text { background: var(--sui-text); }
.sui-ds-swatch-box--text-2 { background: var(--sui-text-2); }
.sui-ds-swatch-box--text-placeholder { background: var(--sui-text-placeholder); }
.sui-ds-swatch-box--text-disabled { background: var(--sui-text-disabled); }
.sui-ds-swatch-box--text-inverse { background: var(--sui-text-inverse); }
.sui-ds-swatch-box--border { background: var(--sui-border); }
.sui-ds-swatch-box--border-strong { background: var(--sui-border-strong); }
.sui-ds-swatch-box--focus { background: var(--sui-focus); }
.sui-ds-swatch-box--brand { background: var(--sui-brand); }
.sui-ds-swatch-box--primary-solid { background: var(--sui-primary-solid); }
.sui-ds-swatch-box--primary-fg { background: var(--sui-primary-fg); }
.sui-ds-swatch-box--primary-tint { background: var(--sui-primary-tint); }
/* Tons : à poser sur un élément qui porte déjà .sui-tone-{ton} (--sui-t-fg/tint/mark). */
.sui-ds-swatch-box--tone-tint { background: var(--sui-t-tint); }
.sui-ds-swatch-box--tone-fg { background: var(--sui-t-fg); }
.sui-ds-swatch-box--tone-mark { background: var(--sui-t-mark); }
/* Identification (missions, consultants, 1.5) : moitié pleine, moitié teinte. */
.sui-ds-swatch-box--ident-0 { background: linear-gradient(to bottom, var(--sui-ident-0) 50%, var(--sui-ident-0-tint) 50%); }
.sui-ds-swatch-box--ident-1 { background: linear-gradient(to bottom, var(--sui-ident-1) 50%, var(--sui-ident-1-tint) 50%); }
.sui-ds-swatch-box--ident-2 { background: linear-gradient(to bottom, var(--sui-ident-2) 50%, var(--sui-ident-2-tint) 50%); }
.sui-ds-swatch-box--ident-3 { background: linear-gradient(to bottom, var(--sui-ident-3) 50%, var(--sui-ident-3-tint) 50%); }
.sui-ds-swatch-box--ident-4 { background: linear-gradient(to bottom, var(--sui-ident-4) 50%, var(--sui-ident-4-tint) 50%); }
.sui-ds-swatch-box--ident-5 { background: linear-gradient(to bottom, var(--sui-ident-5) 50%, var(--sui-ident-5-tint) 50%); }
.sui-ds-swatch-box--ident-6 { background: linear-gradient(to bottom, var(--sui-ident-6) 50%, var(--sui-ident-6-tint) 50%); }
.sui-ds-swatch-box--ident-7 { background: linear-gradient(to bottom, var(--sui-ident-7) 50%, var(--sui-ident-7-tint) 50%); }
.sui-ds-swatch-box--ident-8 { background: linear-gradient(to bottom, var(--sui-ident-8) 50%, var(--sui-ident-8-tint) 50%); }
.sui-ds-swatch-box--ident-9 { background: linear-gradient(to bottom, var(--sui-ident-9) 50%, var(--sui-ident-9-tint) 50%); }
.sui-ds-swatch-box--ident-10 { background: linear-gradient(to bottom, var(--sui-ident-10) 50%, var(--sui-ident-10-tint) 50%); }
/* Grille d'icônes du sprite : icône + nom (font-num pour le "i-" invariable). */
.sui-ds-icon-tile {
  display: flex; flex-direction: column; align-items: center; gap: var(--sui-sp-2); text-align: center;
  padding: var(--sui-sp-3); border: var(--sui-border-w) solid var(--sui-border); border-radius: var(--sui-radius-md); background: var(--sui-surface);
}
.sui-ds-icon-tile .sui-ds-swatch-name { word-break: break-word; }
/* Échelle typographique (03-design-system §1.6) : taille, interligne et graisse de chaque jeton. */
.sui-ds-type { margin: 0 0 var(--sui-sp-3); color: var(--sui-text); }
.sui-ds-type--12 { font-size: var(--sui-fs-12); line-height: var(--sui-lh-12); font-weight: var(--sui-fw-regular); }
.sui-ds-type--14 { font-size: var(--sui-fs-14); line-height: var(--sui-lh-14); font-weight: var(--sui-fw-regular); }
.sui-ds-type--16 { font-size: var(--sui-fs-16); line-height: var(--sui-lh-16); font-weight: var(--sui-fw-regular); }
.sui-ds-type--20 { font-size: var(--sui-fs-20); line-height: var(--sui-lh-20); font-weight: var(--sui-fw-semibold); }
.sui-ds-type--24 { font-size: var(--sui-fs-24); line-height: var(--sui-lh-24); font-weight: var(--sui-fw-semibold); }
.sui-ds-type--32 { font-size: var(--sui-fs-32); line-height: var(--sui-lh-32); font-weight: var(--sui-fw-semibold); }

/* ── Sélecteur avec recherche et création rapide (2.53.0, Components::autocomplete + autocomplete.js) ── */
.sui-ac { max-width: var(--sui-form-max); min-width: 0; }
.sui-ac-box { position: relative; display: block; }
.sui-ac .sui-select-wrap[hidden] { display: none; } /* select d'origine remplacé (aussi hors coque, sans reset [hidden]) */
.sui-ac-input { padding-right: 2.75rem; }
.sui-ac-clear {
  position: absolute; right: var(--sui-sp-1); top: 50%; transform: translateY(-50%);
  display: inline-flex; align-items: center; justify-content: center; width: 2rem; height: 2rem; margin: 0; padding: 0;
  border: 0; border-radius: var(--sui-radius-sm); background: transparent; color: var(--sui-text-2); cursor: pointer;
  font-family: var(--sui-font); font-size: var(--sui-fs-20); line-height: 1;
}
.sui-ac-clear:hover { background: var(--sui-surface-2); color: var(--sui-text); }
.sui-ac-clear:focus-visible { outline: 2px solid var(--sui-focus); outline-offset: 0; }
.sui-ac-clear[hidden] { display: none; }
.sui-ac-list {
  position: absolute; top: calc(100% + var(--sui-sp-1)); left: 0; right: 0; z-index: var(--sui-z-dropdown);
  max-height: 18rem; overflow-y: auto; margin: 0; padding: var(--sui-sp-1); list-style: none;
  background: var(--sui-surface-3); color: var(--sui-text);
  border: var(--sui-border-w) solid var(--sui-border); border-radius: var(--sui-radius-md); box-shadow: var(--sui-shadow-2);
}
.sui-ac-list[hidden] { display: none; }
.sui-ac-option {
  display: flex; align-items: center; justify-content: space-between; gap: var(--sui-sp-2);
  min-height: var(--sui-h-md); margin: 0; padding: var(--sui-sp-1) var(--sui-sp-3); border-radius: var(--sui-radius-sm);
  font-size: var(--sui-fs-14); line-height: var(--sui-lh-14); cursor: pointer;
}
.sui-ac-option:hover, .sui-ac-option[aria-selected="true"] { background: var(--sui-surface-2); }
.sui-ac-option[aria-selected="true"] { outline: 2px solid var(--sui-focus); outline-offset: -2px; }
.sui-ac-option.is-create { color: var(--sui-primary-fg); font-weight: var(--sui-fw-medium); }
.sui-ac-option.is-create:not(:first-child) { margin-top: var(--sui-sp-1); border-top: var(--sui-border-w) solid var(--sui-border); border-radius: 0 0 var(--sui-radius-sm) var(--sui-radius-sm); }
.sui-ac-name { min-width: 0; overflow-wrap: anywhere; }
.sui-ac-meta { flex: none; font-size: var(--sui-fs-12); line-height: var(--sui-lh-12); color: var(--sui-text-2); }
.sui-ac-empty { padding: var(--sui-sp-2) var(--sui-sp-3); font-size: var(--sui-fs-14); color: var(--sui-text-2); }
.sui-ac-status { margin: var(--sui-sp-1) 0 0; font-size: var(--sui-fs-14); line-height: var(--sui-lh-14); color: var(--sui-text-2); }
.sui-ac-status[hidden] { display: none; }
.sui-ac-status.is-success { color: var(--sui-success-fg); }
.sui-ac-status.is-warning { color: var(--sui-warning-fg); }
.sui-ac-status.is-danger { color: var(--sui-danger-fg); font-weight: var(--sui-fw-medium); }
.sui-ac-actions { display: flex; flex-wrap: wrap; gap: var(--sui-sp-2); margin-top: var(--sui-sp-2); }
.sui-ac[aria-busy="true"] .sui-ac-input { cursor: progress; }

/* ── Indicateurs (KPI), file « À faire », parcours par étapes (2.51.0 : E02, E03) ── */
.sui-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(13.5rem, 1fr)); gap: var(--sui-sp-3); margin: 0 0 var(--sui-sp-5); }
.sui-kpi {
  position: relative; min-width: 0; display: flex; flex-direction: column; gap: var(--sui-sp-1);
  padding: var(--sui-sp-4); background: var(--sui-surface); color: var(--sui-text);
  border: var(--sui-border-w) solid var(--sui-border); border-radius: var(--sui-radius-lg); box-shadow: var(--sui-shadow-1);
}
.sui-kpi > p { margin: 0; }
.sui-kpi-label { font-size: var(--sui-fs-14); line-height: var(--sui-lh-14); font-weight: var(--sui-fw-medium); color: var(--sui-text-2); }
.sui-kpi-value { font-size: var(--sui-fs-24); line-height: var(--sui-lh-24); font-weight: var(--sui-fw-semibold); color: var(--sui-text); overflow-wrap: anywhere; }
.sui-kpi-value .sui-num { white-space: normal; }
.sui-kpi-context { font-size: var(--sui-fs-14); line-height: var(--sui-lh-14); color: var(--sui-text-2); }
.sui-kpi-badges { display: flex; flex-wrap: wrap; gap: var(--sui-sp-1); }
.sui-kpi-progress { width: 100%; height: .375rem; accent-color: var(--sui-primary-solid); }
.sui-kpi-link {
  align-self: flex-start; display: inline-flex; align-items: center; gap: 2px; margin-top: auto; padding-top: var(--sui-sp-2);
  color: var(--sui-primary-fg); font-size: var(--sui-fs-14); font-weight: var(--sui-fw-medium); text-decoration: underline; text-underline-offset: .18em;
}
.sui-kpi-link::after { content: ""; position: absolute; inset: 0; border-radius: var(--sui-radius-lg); }
.sui-kpi--link:hover { border-color: var(--sui-border-strong); }
.sui-kpi-link:focus-visible { outline: none; }
.sui-kpi-link:focus-visible::after { outline: 2px solid var(--sui-focus); outline-offset: 2px; }
.sui-kpis-toggle { display: none; }

.sui-inbox { margin: 0 0 var(--sui-sp-5); }
.sui-inbox-title {
  display: flex; align-items: center; gap: var(--sui-sp-2); margin: 0 0 var(--sui-sp-2);
  font-size: var(--sui-fs-14); line-height: var(--sui-lh-14); font-weight: var(--sui-fw-semibold);
  text-transform: uppercase; letter-spacing: var(--sui-tracking-caps); color: var(--sui-text-2);
}
.sui-inbox-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--sui-sp-2); }
.sui-inbox-item {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: var(--sui-sp-2) var(--sui-sp-4);
  padding: var(--sui-sp-3) var(--sui-sp-4); background: var(--sui-surface);
  border: var(--sui-border-w) solid var(--sui-border); border-radius: var(--sui-radius-lg);
}
.sui-inbox-item[hidden] { display: none; }
.sui-inbox-mark { width: .625rem; height: .625rem; border-radius: var(--sui-radius-full); background: var(--sui-t-mark, var(--sui-neutral-mark)); }
.sui-inbox-body { min-width: 0; }
.sui-inbox-body > p { margin: 0; }
.sui-inbox-name { font-weight: var(--sui-fw-semibold); color: var(--sui-text); overflow-wrap: anywhere; }
.sui-inbox-detail { font-size: var(--sui-fs-14); line-height: var(--sui-lh-14); color: var(--sui-text-2); overflow-wrap: anywhere; }
.sui-inbox-amount { margin: 0; font-weight: var(--sui-fw-semibold); text-align: right; }
.sui-inbox-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: var(--sui-sp-2); }
.sui-inbox-more { margin: var(--sui-sp-2) 0 0; }
.sui-inbox-later { margin: 0 0 var(--sui-sp-5); }
.sui-inbox-later > summary {
  display: inline-flex; align-items: center; gap: var(--sui-sp-2); min-height: 2.5rem; cursor: pointer;
  font-weight: var(--sui-fw-semibold); color: var(--sui-text-2); border-radius: var(--sui-radius-sm);
}
.sui-inbox-later > summary:focus-visible { outline: 2px solid var(--sui-focus); outline-offset: 2px; }
.sui-inbox-later .sui-inbox-list { margin-top: var(--sui-sp-2); }
.sui-inbox-later .sui-inbox-item { background: var(--sui-surface-2); }

.sui-stepper { margin: 0 0 var(--sui-sp-5); }
.sui-stepper ol { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); gap: var(--sui-sp-2); }
.sui-step > a {
  display: flex; align-items: flex-start; gap: var(--sui-sp-3); height: 100%; padding: var(--sui-sp-3) var(--sui-sp-4);
  background: var(--sui-surface); color: var(--sui-text); text-decoration: none;
  border: var(--sui-border-w) solid var(--sui-border); border-radius: var(--sui-radius-lg);
}
.sui-step > a:hover { border-color: var(--sui-border-strong); }
.sui-step > a:focus-visible { outline: 2px solid var(--sui-focus); outline-offset: 2px; }
.sui-step.is-current > a { border: 2px solid var(--sui-primary-solid); padding: calc(var(--sui-sp-3) - 1px) calc(var(--sui-sp-4) - 1px); }
.sui-step-mark { display: inline-flex; flex: none; color: var(--sui-t-fg); }
.sui-step-text { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.sui-step-label { font-weight: var(--sui-fw-semibold); }
.sui-step-state { font-size: var(--sui-fs-12); line-height: var(--sui-lh-12); font-weight: var(--sui-fw-medium); color: var(--sui-text-2); }
.sui-step-summary { font-size: var(--sui-fs-14); line-height: var(--sui-lh-14); color: var(--sui-text-2); overflow-wrap: anywhere; }
.sui-stepper-mobile { display: none; }

/* Écrans À faire (E02) et Clôture du mois (E03) */
.sui-todo-head, .sui-cloture-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sui-sp-2) var(--sui-sp-4); margin: 0 0 var(--sui-sp-4); }
.sui-todo-greeting { margin: 0; color: var(--sui-text-2); }
.sui-todo-head > .sui-alert { flex-basis: 100%; margin: 0; }
.sui-todo-banner { margin-bottom: var(--sui-sp-5); }
.sui-todo-back { margin: 0 0 var(--sui-sp-4); }
.sui-todo-empty-line { margin: 0 0 var(--sui-sp-5); color: var(--sui-text-2); }
.sui-cloture-status { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sui-sp-2); }
.sui-cloture-months { display: flex; flex-wrap: wrap; gap: var(--sui-sp-4); }
.sui-cloture-next::after { content: " ›" / ""; }
.sui-cloture-step > h2 { margin-top: 0; }
.sui-cloture-step > .sui-help { margin: 0 0 var(--sui-sp-4); font-size: var(--sui-fs-14); line-height: var(--sui-lh-14); }
.sui-cloture-cell { display: inline-flex; align-items: center; gap: var(--sui-sp-1); color: var(--sui-t-fg, var(--sui-text)); }
.sui-cloture-actions { margin: var(--sui-sp-4) 0 0; }
.sui-cloture-step .sui-table-wrap + .sui-help, .sui-cloture-step .sui-kpis + .sui-help { margin: var(--sui-sp-2) 0 var(--sui-sp-4); }
.sui-cloture-controls { list-style: none; margin: 0 0 var(--sui-sp-4); padding: 0; display: flex; flex-direction: column; gap: var(--sui-sp-2); }
.sui-cloture-control { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: var(--sui-sp-3); padding: var(--sui-sp-2) 0; border-bottom: var(--sui-border-w) solid var(--sui-border); }
.sui-cloture-control > .sui-icon { color: var(--sui-t-fg); }
.sui-cloture-control-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.sui-cloture-control-text strong { font-weight: var(--sui-fw-medium); }
.sui-cloture-next-action { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sui-sp-3); margin: var(--sui-sp-5) 0 0; padding-top: var(--sui-sp-4); border-top: var(--sui-border-w) solid var(--sui-border); }

/* Utilitaires génériques */
.sui-form-max { max-width: var(--sui-form-max); }
.sui-inline-field { display: inline-flex; align-items: center; gap: var(--sui-sp-2); }
.sui-list-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sui-sp-2) var(--sui-sp-4); margin: 0 0 var(--sui-sp-3); color: var(--sui-text-2); }
.sui-list-toolbar p { margin: 0; }
/* Identification par palette (missions du calendrier, P2) : classe déterministe, jamais de style= en ligne. */
.sui-ident-0 { background: var(--sui-ident-0-tint); color: var(--sui-ident-0); }
.sui-ident-1 { background: var(--sui-ident-1-tint); color: var(--sui-ident-1); }
.sui-ident-2 { background: var(--sui-ident-2-tint); color: var(--sui-ident-2); }
.sui-ident-3 { background: var(--sui-ident-3-tint); color: var(--sui-ident-3); }
.sui-ident-4 { background: var(--sui-ident-4-tint); color: var(--sui-ident-4); }
.sui-ident-5 { background: var(--sui-ident-5-tint); color: var(--sui-ident-5); }
.sui-ident-6 { background: var(--sui-ident-6-tint); color: var(--sui-ident-6); }
.sui-ident-7 { background: var(--sui-ident-7-tint); color: var(--sui-ident-7); }
.sui-ident-8 { background: var(--sui-ident-8-tint); color: var(--sui-ident-8); }
.sui-ident-9 { background: var(--sui-ident-9-tint); color: var(--sui-ident-9); }
.sui-ident-10 { background: var(--sui-ident-10-tint); color: var(--sui-ident-10); }

/* Historique (§1.12, Components::timeline) */
.sui-timeline { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--sui-sp-3); }
.sui-timeline-item { padding: 0 0 var(--sui-sp-3); border-bottom: var(--sui-border-w) solid var(--sui-border); }
.sui-timeline-item:last-child { border-bottom: none; padding-bottom: 0; }
.sui-timeline-head { margin: 0; }
.sui-timeline-who { font-weight: var(--sui-fw-semibold); }
.sui-timeline-meta { margin: 2px 0 0; font-size: var(--sui-fs-12); line-height: var(--sui-lh-12); color: var(--sui-text-2); }
.sui-timeline-detail { margin: var(--sui-sp-1) 0 0; color: var(--sui-text-2); }

/* File de validation des CRI (E04, maître-détail) */
.sui-queue-page { display: flex; flex-direction: column; gap: var(--sui-sp-4); }
.sui-queue-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--sui-sp-3) var(--sui-sp-4); }
.sui-queue-summary { margin: 0; font-weight: var(--sui-fw-medium); }
.sui-queue { display: grid; grid-template-columns: minmax(16rem, 2fr) minmax(0, 3fr); gap: var(--sui-sp-5); align-items: start; }
.sui-queue-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--sui-sp-4); max-height: calc(100vh - 14rem); overflow-y: auto; }
.sui-queue-group-title { display: flex; justify-content: space-between; gap: var(--sui-sp-2); margin: 0 0 var(--sui-sp-1); font-weight: var(--sui-fw-semibold); }
.sui-queue-group > ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.sui-queue-item { position: relative; display: flex; flex-direction: column; gap: 2px; padding: var(--sui-sp-2) var(--sui-sp-3); border-radius: var(--sui-radius-md); border: var(--sui-border-w) solid transparent; }
.sui-queue-item:hover { background: var(--sui-surface-2); }
.sui-queue-item[aria-current="true"] { background: var(--sui-primary-tint); border-color: var(--sui-primary-solid); }
.sui-queue-item .sui-check { position: absolute; top: var(--sui-sp-2); right: var(--sui-sp-2); z-index: 1; }
.sui-queue-item .sui-link--row { padding-right: var(--sui-sp-6); display: block; }
.sui-queue-item-note { margin: 0; font-size: var(--sui-fs-12); line-height: var(--sui-lh-12); color: var(--sui-text-2); position: relative; }
.sui-queue-detail-wrap { min-width: 0; }
.sui-queue-detail-head { margin: 0 0 var(--sui-sp-3); }
.sui-queue-detail-who { margin: 0 0 var(--sui-sp-1); color: var(--sui-text-2); }
.sui-queue-detail-title { margin: 0; font-size: var(--sui-fs-20); line-height: var(--sui-lh-20); }
.sui-queue-detail-meta { margin: var(--sui-sp-1) 0 0; color: var(--sui-text-2); }
.sui-queue-note { margin: var(--sui-sp-4) 0; padding: var(--sui-sp-3); background: var(--sui-surface-2); border-radius: var(--sui-radius-md); }
.sui-queue-note p:last-child { margin: 0; }
.sui-queue-signal { margin: var(--sui-sp-3) 0; }
.sui-queue-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sui-sp-2); margin: var(--sui-sp-4) 0; }
.sui-queue-next { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sui-sp-3); margin: var(--sui-sp-4) 0 0; padding-top: var(--sui-sp-3); border-top: var(--sui-border-w) solid var(--sui-border); }
.sui-queue-hint { flex-basis: 100%; margin: 0; }
.sui-queue-shortcuts { margin: var(--sui-sp-4) 0 0; color: var(--sui-text-2); }
.sui-queue-shortcuts summary { cursor: pointer; }
.sui-queue-shortcuts ul { margin: var(--sui-sp-2) 0 0; padding-left: var(--sui-sp-5); }
.sui-queue-shortcuts kbd { display: inline-block; min-width: 1.4em; padding: 1px 6px; text-align: center; font-family: inherit; border: var(--sui-border-w) solid var(--sui-border-strong); border-radius: var(--sui-radius-sm); background: var(--sui-surface); }

/* Calendrier des CRI (E05, lecture seule) */
.sui-cal-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sui-sp-3) var(--sui-sp-4); }
.sui-cal-nav { display: flex; align-items: center; gap: var(--sui-sp-3); }
.sui-cal-nav strong { min-width: 11rem; text-align: center; }
.sui-cal-legend { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--sui-sp-2) var(--sui-sp-4); font-size: var(--sui-fs-12); line-height: var(--sui-lh-12); color: var(--sui-text-2); }
.sui-cal-legend li { display: inline-flex; align-items: center; gap: var(--sui-sp-1); }
.sui-cal-swatch { width: .75rem; height: .75rem; border-radius: var(--sui-radius-sm); }
.sui-cal-month-head, .sui-cal-month-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 1px; background: var(--sui-border); }
.sui-cal-month-head { margin-bottom: 1px; }
.sui-cal-month-head span { padding: var(--sui-sp-2); background: var(--sui-surface-2); text-align: center; font-size: var(--sui-fs-12); font-weight: var(--sui-fw-semibold); }
.sui-cal-day { min-height: 6.5rem; padding: var(--sui-sp-1); background: var(--sui-surface); display: flex; flex-direction: column; gap: 2px; }
.sui-cal-day--out { background: var(--sui-surface-2); }
.sui-cal-day--today { box-shadow: inset 0 0 0 2px var(--sui-focus); }
.sui-cal-day-num { margin: 0 0 2px; font-size: var(--sui-fs-12); font-weight: var(--sui-fw-medium); }
.sui-cal-day ul, .sui-cal-week-day ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.sui-cal-chip { display: block; padding: 2px var(--sui-sp-1); border-radius: var(--sui-radius-sm); font-size: var(--sui-fs-12); line-height: var(--sui-lh-14); text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sui-cal-chip:hover, .sui-cal-chip:focus-visible { outline: 2px solid var(--sui-focus); outline-offset: 1px; }
.sui-cal-week { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: var(--sui-sp-2); align-items: start; }
.sui-cal-week-day { padding: var(--sui-sp-2); border: var(--sui-border-w) solid var(--sui-border); border-radius: var(--sui-radius-md); min-height: 8rem; }
.sui-cal-week-day-title { margin: 0 0 var(--sui-sp-2); font-size: var(--sui-fs-12); font-weight: var(--sui-fw-semibold); color: var(--sui-text-2); }
.sui-cal-week-day .sui-cal-chip { white-space: normal; }

@media (max-width: 63.99em) {
  .sui-queue { grid-template-columns: 1fr; }
  .sui-queue-list { max-height: none; }
  .sui-cal-week { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 47.99em) {
  .sui-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sui-sp-2); }
  .sui-kpi { padding: var(--sui-sp-3); }
  .sui-kpi-value { font-size: var(--sui-fs-20); line-height: var(--sui-lh-20); }
  .sui-kpis[data-collapsed] .sui-kpi--extra { display: none; }
  .sui-kpis-toggle:not([hidden]) { display: inline-flex; margin: calc(-1 * var(--sui-sp-3)) 0 var(--sui-sp-4); }
  .sui-inbox-later > summary { min-height: var(--sui-target-touch); }
  .sui-inbox-item { grid-template-columns: auto minmax(0, 1fr); padding: var(--sui-sp-3); }
  .sui-inbox-amount { grid-column: 2; text-align: left; }
  .sui-inbox-actions { grid-column: 1 / -1; justify-content: stretch; }
  .sui-inbox-actions > .sui-btn { flex: 1 1 auto; }
  .sui-stepper ol { display: block; }
  .sui-step:not(.is-current) { display: none; }
  .sui-stepper-mobile { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sui-sp-2); margin: var(--sui-sp-2) 0 0; }
  .sui-stepper-mobile a { min-height: var(--sui-target-touch); display: inline-flex; align-items: center; }
  .sui-stepper-next::after { content: " ›" / ""; }
  .sui-cloture-control { grid-template-columns: auto minmax(0, 1fr); }
  .sui-cloture-control > .sui-btn { grid-column: 1 / -1; }
  /* File de validation (E04) : « Précédent · Suivant » et « Valider » restent proches du pouce. */
  .sui-queue-actions > .sui-btn, .sui-queue-actions form > .sui-btn { min-height: var(--sui-target-touch); }
  /* Case à cocher : zone de clic à 44 px (le label .sui-check--bare), la case elle-même reste 1.25rem (jamais agrandir l'input natif : rendu natif disgracieux, corrigé en revue). */
  .sui-queue-item .sui-check--bare { min-width: var(--sui-target-touch); min-height: var(--sui-target-touch); }
  .sui-cal-week { grid-template-columns: 1fr; }
}

/* ── Clients (2.58.0, C2) : liste E14, fiche E15, fenêtre D10 « Nouveau client » ── */
.sui-d10 { display: flex; flex-direction: column; gap: var(--sui-sp-3); }
.sui-d10-results { display: flex; flex-direction: column; gap: var(--sui-sp-4); }
.sui-d10-results:empty { display: none; }
.sui-d10[aria-busy="true"] .sui-d10-results { opacity: .6; }
.sui-d10-group { display: flex; flex-direction: column; gap: var(--sui-sp-2); }
.sui-d10-group-title { margin: 0; font-size: var(--sui-fs-12); line-height: var(--sui-lh-12); font-weight: var(--sui-fw-semibold); letter-spacing: var(--sui-tracking-caps); text-transform: uppercase; color: var(--sui-text-2); }
.sui-d10-list, .sui-client-list, .sui-d10-dups { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--sui-sp-2); }
.sui-d10-item { border: var(--sui-border-w) solid var(--sui-border); border-radius: var(--sui-radius-md); background: var(--sui-surface); }
.sui-d10-link { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: var(--sui-sp-3); row-gap: var(--sui-sp-1); padding: var(--sui-sp-3); color: var(--sui-text); text-decoration: none; border-radius: var(--sui-radius-md); min-height: var(--sui-target-touch); }
.sui-d10-link:hover { background: var(--sui-surface-2); }
.sui-d10-link:focus-visible { outline: 2px solid var(--sui-focus); outline-offset: 2px; }
.sui-d10-name { grid-column: 1; font-weight: var(--sui-fw-semibold); display: flex; flex-wrap: wrap; align-items: center; gap: var(--sui-sp-2); margin: 0; overflow-wrap: anywhere; }
.sui-d10-meta { grid-column: 1; color: var(--sui-text-2); font-size: var(--sui-fs-14); line-height: var(--sui-lh-14); overflow-wrap: anywhere; }
.sui-d10-go { grid-column: 2; grid-row: 1 / span 3; align-self: center; color: var(--sui-primary-fg); font-weight: var(--sui-fw-medium); text-decoration: underline; white-space: nowrap; }
.sui-d10-none { margin: 0; color: var(--sui-text-2); }
.sui-d10-other { display: flex; flex-wrap: wrap; gap: var(--sui-sp-2); }
.sui-d10-row { display: flex; flex-wrap: wrap; gap: var(--sui-sp-3); }
.sui-d10-item--form { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sui-sp-3); padding: var(--sui-sp-3); }
.sui-d10-item--form p { margin: 0; }
.sui-client-head { display: flex; flex-direction: column; gap: var(--sui-sp-1); }
.sui-client-head p { margin: 0; }
.sui-client-grid { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: var(--sui-sp-4); align-items: start; }
.sui-client-grid .sui-facts { overflow-wrap: anywhere; }
.sui-client-sub { margin: var(--sui-sp-2) 0 0; font-size: var(--sui-fs-14); line-height: var(--sui-lh-14); font-weight: var(--sui-fw-semibold); color: var(--sui-text-2); }
.sui-client-list > li { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sui-sp-2); }
.sui-client-list-title { font-weight: var(--sui-fw-medium); overflow-wrap: anywhere; }
.sui-client-fieldset { border: 0; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--sui-sp-3); min-width: 0; }
.sui-client-fieldset > legend { padding: 0; margin: 0 0 var(--sui-sp-2); font-weight: var(--sui-fw-semibold); }
@media (max-width: 63.99em) {
  .sui-client-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 47.99em) {
  /* « + Nouveau client » fixé en bas, au-dessus de la barre du bas (E14 mobile). */
  .sui-page-actions .sui-clients-new {
    position: fixed; z-index: var(--sui-z-sticky); left: var(--sui-gutter); right: var(--sui-gutter);
    bottom: calc(var(--sui-bottombar-h) + env(safe-area-inset-bottom) + var(--sui-sp-3)); box-shadow: var(--sui-shadow-2);
  }
  .sui-clients-list { padding-bottom: calc(var(--sui-h-lg) + var(--sui-sp-5)); }
  .sui-d10-link { grid-template-columns: minmax(0, 1fr); }
  .sui-d10-go { grid-column: 1; grid-row: auto; }
  .sui-client-tabs a { padding-inline: var(--sui-sp-3); }
  .sui-client-call { min-height: var(--sui-target-touch); display: inline-flex; align-items: center; gap: var(--sui-sp-1); }
}

/* ── Clients › Argent (lot C2, admin) : onglet Argent, encadré de la synthèse, « En retard » de l'en-tête ── */
.sui-client-money-sub { display: block; font-size: var(--sui-fs-12); line-height: var(--sui-lh-12); color: var(--sui-text-2); overflow-wrap: anywhere; }
.sui-client-money-note { margin: 0; color: var(--sui-text-2); font-size: var(--sui-fs-14); line-height: var(--sui-lh-14); overflow-wrap: anywhere; }
.sui-client-money-pdf { white-space: nowrap; }
.sui-client-money .sui-client-money-nowrap { white-space: nowrap; }
.sui-client-late { color: var(--sui-danger-fg); font-weight: var(--sui-fw-medium); }
@media (max-width: 47.99em) {
  .sui-client-money-pdf, .sui-client-money-num, .sui-client-money-go, .sui-client-late { display: inline-flex; align-items: center; gap: var(--sui-sp-1); min-height: var(--sui-target-touch); }
}

/* ── Doublons, fusion, qualification (2.59.0, C3) : E14 Doublons / À qualifier, D15, bandeau E15 ── */
.sui-client-list-tabs { margin-bottom: var(--sui-sp-4); }
.sui-dup-head { gap: var(--sui-sp-2); }
.sui-dup-head p { margin: 0; }
.sui-dup-title { margin: 0; font-size: var(--sui-fs-16); line-height: var(--sui-lh-16); overflow-wrap: anywhere; }
.sui-dup-summary { display: flex; align-items: center; min-height: var(--sui-h-md); cursor: pointer; font-weight: var(--sui-fw-semibold); }
.sui-dup-summary:focus-visible { outline: 2px solid var(--sui-focus); outline-offset: 2px; }
.sui-dup-ignored[open] > .sui-dup-ignored-list, .sui-fusion details[open] > .sui-fusion-picker { margin-top: var(--sui-sp-3); }
.sui-dup-banner-list > li { gap: var(--sui-sp-1) var(--sui-sp-2); }
.sui-merge-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); gap: var(--sui-sp-4); align-items: start; }
.sui-merge-card .sui-facts { overflow-wrap: anywhere; }
.sui-merge-card.is-kept { border-color: var(--sui-success-mark); box-shadow: inset 4px 0 0 var(--sui-success-mark); }
.sui-merge-card.is-absorbed { border-color: var(--sui-warning-mark); box-shadow: inset 4px 0 0 var(--sui-warning-mark); }
.sui-merge-choice h2, .sui-merge-preview h2, .sui-fusion h2 { margin: 0; overflow-wrap: anywhere; }
.sui-merge-choice-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: var(--sui-sp-4); }
.sui-merge-lines { margin: 0; padding-left: var(--sui-sp-5); display: flex; flex-direction: column; gap: var(--sui-sp-2); overflow-wrap: anywhere; }
@media (max-width: 47.99em) {
  .sui-merge-card .sui-check, .sui-merge-choice .sui-check { min-height: var(--sui-target-touch); }
  .sui-dup-group .sui-cluster > .sui-btn, .sui-dup-group .sui-inline-form, .sui-dup-group .sui-inline-form .sui-btn { width: 100%; }
}

/* Opportunités (E17, E18, 2.58.0 C5) : « Par étape », frise des étapes, formulaires */
.sui-opp-title-link { font-weight: var(--sui-fw-semibold); }
.sui-opp-prob { color: var(--sui-text-2); font-size: var(--sui-fs-14); white-space: nowrap; }
.sui-opp-f-check { align-self: flex-end; }
.sui-opp-board { display: grid; grid-template-columns: repeat(5, minmax(11rem, 1fr)); gap: var(--sui-sp-3); align-items: start; overflow-x: auto; padding-bottom: var(--sui-sp-2); }
.sui-opp-stage { min-width: 0; background: var(--sui-surface-2); border: var(--sui-border-w) solid var(--sui-border); border-radius: var(--sui-radius-lg); padding: var(--sui-sp-2); }
.sui-opp-stage-head { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sui-sp-1) var(--sui-sp-2); min-height: var(--sui-h-md); padding: 0 var(--sui-sp-1); cursor: pointer; font-weight: var(--sui-fw-semibold); border-radius: var(--sui-radius-sm); }
.sui-opp-stage-head:focus-visible { outline: 2px solid var(--sui-focus); outline-offset: 2px; }
.sui-opp-stage-sum { flex-basis: 100%; font-size: var(--sui-fs-12); line-height: var(--sui-lh-12); font-weight: var(--sui-fw-regular); color: var(--sui-text-2); }
.sui-opp-stage-sum:empty { display: none; }
.sui-opp-stage-empty { margin: var(--sui-sp-2) var(--sui-sp-1); }
.sui-opp-cards { list-style: none; margin: var(--sui-sp-2) 0 0; padding: 0; display: flex; flex-direction: column; gap: var(--sui-sp-2); }
.sui-opp-card { position: relative; display: flex; flex-direction: column; gap: 2px; padding: var(--sui-sp-3); padding-right: calc(var(--sui-h-md) + var(--sui-sp-2)); background: var(--sui-surface); border: var(--sui-border-w) solid var(--sui-border); border-radius: var(--sui-radius-md); min-width: 0; }
.sui-opp-card > p { margin: 0; overflow-wrap: anywhere; }
.sui-opp-card-title { font-weight: var(--sui-fw-semibold); }
.sui-opp-card-meta { font-size: var(--sui-fs-14); line-height: var(--sui-lh-14); color: var(--sui-text-2); }
.sui-opp-card-actions { position: absolute; top: var(--sui-sp-1); right: var(--sui-sp-1); }
.sui-opp-closed-links { display: flex; flex-wrap: wrap; gap: var(--sui-sp-2) var(--sui-sp-5); margin: 0; }
/* Frise : même motif que les onglets (liste défilante, éléments de taille fixe, position: relative pour que les textes masqués restent DANS la zone défilante, sinon la page déborde sur mobile). */
.sui-opp-steps ol { position: relative; list-style: none; margin: 0; padding: 2px; display: flex; gap: var(--sui-sp-1); overflow-x: auto; scrollbar-width: thin; }
.sui-opp-step { display: flex; flex: none; }
.sui-opp-step.is-closed { border-left: var(--sui-border-w) solid var(--sui-border-strong); padding-left: var(--sui-sp-1); }
.sui-opp-step.is-closed + .sui-opp-step.is-closed { border-left: none; padding-left: 0; }
.sui-opp-step form { display: flex; margin: 0; }
.sui-opp-step-btn, .sui-opp-step-label {
  display: inline-flex; align-items: center; min-height: var(--sui-h-md); padding: 0 var(--sui-sp-3);
  border: var(--sui-border-w) solid var(--sui-border); border-radius: var(--sui-radius-full);
  background: var(--sui-surface); color: var(--sui-text); font: inherit; font-size: var(--sui-fs-14); white-space: nowrap; text-decoration: none;
}
.sui-opp-step-btn { cursor: pointer; }
.sui-opp-step-btn:hover { border-color: var(--sui-border-strong); background: var(--sui-surface-2); }
.sui-opp-step-btn:focus-visible { outline: 2px solid var(--sui-focus); outline-offset: 2px; }
.sui-opp-step-label { color: var(--sui-text-2); }
.sui-opp-step.is-current .sui-opp-step-label { background: var(--sui-nav-active-bg); border-color: var(--sui-nav-active-bg); color: var(--sui-nav-active-fg); font-weight: var(--sui-fw-semibold); }
.sui-opp-etape { border-left: 3px solid var(--sui-primary-solid); }
.sui-opp-etape > h2 { margin-top: 0; }
.sui-opp-etape-actions, .sui-opp-form-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sui-sp-2); margin: var(--sui-sp-3) 0 0; }
.sui-opp-link-form, .sui-opp-staff-add, .sui-crm-list-add { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--sui-sp-3); }
.sui-opp-followers { border: 0; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--sui-sp-1); }
.sui-opp-consequences { margin: 0; padding-left: var(--sui-sp-5); }
.sui-crm-list-rename { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sui-sp-2); }
.sui-crm-list-rename .sui-field { margin: 0; flex: 1 1 14rem; min-width: 0; }
.sui-crm-list-rename .sui-input { width: 100%; min-width: 12rem; }

@media (max-width: 63.99em) {
  .sui-opp-board { grid-template-columns: repeat(5, minmax(15rem, 1fr)); }
}
/* Échanges et actions (2.58.0, C6) : D08 / D09, pastilles de choix, prochaine action, derniers échanges,
   « + Échange » (barre fixe sur les fiches, bouton flottant du commercial), « Noter cet appel ». */
.sui-pills-field { border: 0; margin: 0; padding: 0; min-width: 0; display: flex; flex-direction: column; gap: var(--sui-sp-2); }
.sui-pills-field > legend { padding: 0; margin: 0 0 var(--sui-sp-1); }
.sui-pills { display: flex; flex-wrap: wrap; gap: var(--sui-sp-2); }
.sui-pill { position: relative; min-height: var(--sui-h-md); gap: 0; }
.sui-pill .sui-check-input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; margin: 0; }
.sui-pill .sui-check-label {
  display: inline-flex; align-items: center; min-height: var(--sui-h-md); padding: 0 var(--sui-sp-3);
  border: var(--sui-border-w) solid var(--sui-border-strong); border-radius: var(--sui-radius-full);
  background: var(--sui-surface); color: var(--sui-text); white-space: nowrap;
}
.sui-pill:hover .sui-check-label { background: var(--sui-surface-2); }
.sui-pill .sui-check-input:checked + .sui-check-label { background: var(--sui-nav-active-bg); border-color: var(--sui-nav-active-bg); color: var(--sui-nav-active-fg); font-weight: var(--sui-fw-semibold); }
.sui-pill .sui-check-input:focus-visible + .sui-check-label { outline: 2px solid var(--sui-focus); outline-offset: 2px; }
.sui-pills-field.is-invalid .sui-check-label { border-color: var(--sui-danger-mark); }
.sui-d08-when { display: grid; grid-template-columns: repeat(2, minmax(0, 12rem)); gap: var(--sui-sp-3); }
.sui-d08-fixed { display: flex; flex-direction: column; gap: 2px; padding: var(--sui-sp-3); background: var(--sui-surface-2); border-radius: var(--sui-radius-md); }
.sui-d08-fixed[hidden] { display: none; }
.sui-d08-fixed-line { margin: 0; font-weight: var(--sui-fw-medium); overflow-wrap: anywhere; }
.sui-d08-fixed-label { display: inline-block; min-width: 6.5rem; font-size: var(--sui-fs-12); line-height: var(--sui-lh-12); font-weight: var(--sui-fw-semibold); letter-spacing: var(--sui-tracking-caps); text-transform: uppercase; color: var(--sui-text-2); }
.sui-d08-status { margin: 0; padding: var(--sui-sp-2) var(--sui-sp-3); border-radius: var(--sui-radius-md); background: var(--sui-info-tint); color: var(--sui-info-fg); }
.sui-d08-status.is-error { background: var(--sui-danger-tint); color: var(--sui-danger-fg); }
.sui-d08-status[hidden], .sui-d08-done[hidden], .sui-d08-next[hidden] { display: none; }
.sui-d08-next-box { display: flex; flex-direction: column; gap: var(--sui-sp-3); padding-top: var(--sui-sp-3); border-top: var(--sui-border-w) solid var(--sui-border); }
.sui-d08-next { border: 0; margin: 0; padding: 0; min-width: 0; }
.sui-d08-next-toggle .sui-check-label { font-weight: var(--sui-fw-semibold); font-size: var(--sui-fs-16); }
.sui-d08-page { border-left: 3px solid var(--sui-primary-solid); }
.sui-d08-page > h2 { margin-top: 0; }
.sui-next-action { border-left: 3px solid var(--sui-primary-solid); display: flex; flex-direction: column; gap: var(--sui-sp-2); }
.sui-next-action.is-late { border-left-color: var(--sui-danger-mark); }
.sui-next-action > * { margin: 0; }
.sui-next-action-title { font-size: var(--sui-fs-12); line-height: var(--sui-lh-12); font-weight: var(--sui-fw-semibold); letter-spacing: var(--sui-tracking-caps); text-transform: uppercase; color: var(--sui-text-2); }
.sui-next-action-name { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sui-sp-2); font-weight: var(--sui-fw-semibold); overflow-wrap: anywhere; }
.sui-next-action-meta, .sui-next-action-desc { color: var(--sui-text-2); font-size: var(--sui-fs-14); line-height: var(--sui-lh-14); overflow-wrap: anywhere; }
.sui-next-action-desc { white-space: pre-line; }
.sui-next-action-acts { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sui-sp-2); }
.sui-inline-form { display: inline-flex; margin: 0; }
.sui-next-action-more { margin: 0; padding-left: var(--sui-sp-5); color: var(--sui-text-2); font-size: var(--sui-fs-14); }
.sui-exchanges { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--sui-sp-3); }
.sui-exchange { display: flex; flex-direction: column; gap: 2px; padding-bottom: var(--sui-sp-3); border-bottom: var(--sui-border-w) solid var(--sui-border); min-width: 0; }
.sui-exchange:last-child { border-bottom: 0; padding-bottom: 0; }
.sui-exchange > p { margin: 0; overflow-wrap: anywhere; }
.sui-exchange-meta { display: flex; align-items: center; gap: var(--sui-sp-1); font-size: var(--sui-fs-12); line-height: var(--sui-lh-12); color: var(--sui-text-2); }
.sui-exchange-obj { font-weight: var(--sui-fw-medium); }
.sui-exchange-body { white-space: pre-line; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.sui-exchanges-more { margin: 0; }
.sui-exchanges-title { margin: 0; }
.sui-exchanges-summary { display: flex; align-items: center; gap: var(--sui-sp-2); min-height: var(--sui-h-md); cursor: pointer; }
.sui-exchanges-summary > .sui-exchanges-title { display: inline; font-size: inherit; }
details.sui-exchanges-card[open] > .sui-exchanges { margin-top: var(--sui-sp-3); }
.sui-timeline-detail { white-space: pre-line; overflow-wrap: anywhere; }
.sui-timeline-icon { margin-right: var(--sui-sp-1); vertical-align: -3px; color: var(--sui-text-2); }
.sui-crm-relancer .sui-crm-relancer-empty { margin: var(--sui-sp-1) 0 0; }
.sui-crm-relancer:has(.sui-inbox-item:not([hidden])) .sui-crm-relancer-empty { display: none; }
.sui-crm-signatures > li { flex-direction: column; align-items: flex-start; gap: 2px; }
.sui-todo--crm { display: flex; flex-direction: column; gap: var(--sui-sp-5); }
.sui-todo--crm .sui-inbox { margin-bottom: 0; }
.sui-crm-heading { display: flex; align-items: center; gap: var(--sui-sp-2); margin: 0; font-size: var(--sui-fs-14); line-height: var(--sui-lh-14); font-weight: var(--sui-fw-semibold); letter-spacing: var(--sui-tracking-caps); text-transform: uppercase; color: var(--sui-text-2); }
.sui-fab { display: none; }
.sui-call-sheet {
  position: fixed; z-index: var(--sui-z-toast); left: var(--sui-gutter); right: var(--sui-gutter);
  bottom: calc(var(--sui-sp-4) + env(safe-area-inset-bottom)); max-width: 30rem; margin: 0 auto;
  display: flex; flex-direction: column; gap: var(--sui-sp-3); padding: var(--sui-sp-4);
  background: var(--sui-surface); border: var(--sui-border-w) solid var(--sui-border-strong); border-radius: var(--sui-radius-lg); box-shadow: var(--sui-shadow-3);
}
.sui-call-sheet[hidden] { display: none; }
.sui-call-sheet-title { margin: 0; font-weight: var(--sui-fw-semibold); }

@media (max-width: 47.99em) {
  .sui-d08-when { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sui-pill, .sui-pill .sui-check-label { min-height: var(--sui-target-touch); }
  .sui-d08 .sui-check, .sui-d09 .sui-check { min-height: var(--sui-target-touch); }
  .sui-next-action-plan a, .sui-exchanges-more a { display: inline-flex; align-items: center; min-height: var(--sui-target-touch); }
  /* « + Échange » : barre fixe au-dessus de la barre du bas sur les fiches (G3) ; bouton flottant du commercial (G11). */
  .sui-page-actions .sui-exchange-cta {
    position: fixed; z-index: var(--sui-z-sticky); left: var(--sui-gutter); right: var(--sui-gutter);
    bottom: calc(var(--sui-bottombar-h) + env(safe-area-inset-bottom) + var(--sui-sp-3)); min-height: 3rem; box-shadow: var(--sui-shadow-2);
  }
  .sui-page-actions .sui-exchange-head { display: none; }
  .sui-fab {
    display: inline-flex; position: fixed; z-index: var(--sui-z-sticky); right: var(--sui-gutter);
    bottom: calc(var(--sui-bottombar-h) + env(safe-area-inset-bottom) + var(--sui-sp-3));
    min-height: 3.5rem; min-width: 3.5rem; border-radius: var(--sui-radius-full); box-shadow: var(--sui-shadow-2);
  }
  body:has(dialog[open]) .sui-fab, body:has(dialog[open]) .sui-page-actions .sui-exchange-cta, body:has(.sui-call-sheet:not([hidden])) .sui-fab { display: none; }
  .sui-call-sheet { bottom: calc(var(--sui-bottombar-h) + env(safe-area-inset-bottom) + var(--sui-sp-3)); }
  #contenu:has(.sui-exchange-cta), #contenu:has(.sui-fab) { padding-bottom: calc(3.5rem + var(--sui-sp-5)); }
}

@media (max-width: 47.99em) {
  /* « Par étape » devient une liste groupée par étape, en accordéon (04-ecrans E17). */
  .sui-opp-board { display: flex; flex-direction: column; overflow: visible; }
  .sui-opp-stage-head { min-height: var(--sui-target-touch); }
  .sui-opp-step-btn, .sui-opp-step-label { min-height: var(--sui-target-touch); }
  .sui-opp-card { padding-right: calc(var(--sui-target-touch) + var(--sui-sp-2)); }
}

/* ── Banque (2.54.0) : E13 onglets et listes, D04 panneau Rapprocher, D20, Réglages › Pennylane ── */
.sui-bank-h2 { margin: 0; font-size: var(--sui-fs-16); line-height: var(--sui-lh-16); font-weight: var(--sui-fw-semibold); color: var(--sui-text); }
.sui-bank-sub { display: block; font-size: var(--sui-fs-12); line-height: var(--sui-lh-12); color: var(--sui-text-2); overflow-wrap: anywhere; }
.sui-bank-strong { margin: 0; font-weight: var(--sui-fw-semibold); }
.sui-bank-sugg { font-weight: var(--sui-fw-medium); overflow-wrap: anywhere; }
.sui-bank-acts { display: inline-flex; flex-wrap: wrap; gap: var(--sui-sp-1); }
.sui-bank-sync, .sui-bank-accept, .sui-bank-inline { display: inline-flex; margin: 0; }
.sui-bank-bulk { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sui-sp-2); margin: 0 0 var(--sui-sp-3); padding: var(--sui-sp-2) var(--sui-sp-3); background: var(--sui-surface-2); border: var(--sui-border-w) solid var(--sui-border); border-radius: var(--sui-radius-md); }
.sui-bank-bulk-count { margin: 0; flex: 1 1 12rem; font-size: var(--sui-fs-14); line-height: var(--sui-lh-14); color: var(--sui-text-2); }
.sui-bank-bulk .sui-bank-bulk-field { margin: 0; min-width: 0; }
.sui-bank-table .sui-bank-col-sel { width: 3rem; }
.sui-bank-cell { display: block; min-width: 0; }
@media (min-width: 48em) {
  .sui-bank-table .sui-bank-col-sugg { min-width: 17rem; }
  .sui-bank-table .sui-bank-col-label { min-width: 12rem; max-width: 24rem; overflow-wrap: anywhere; }
  .sui-bank-table .sui-bank-col-num { min-width: 8rem; max-width: 12rem; }
}
.sui-bank-back { margin: 0; }
.sui-bank-current, .sui-bank-history, .sui-bank-sync-list, .sui-bank-log, .sui-bank-sample, .sui-bank-twins { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--sui-sp-2); }
.sui-bank-current > li, .sui-bank-sync-list > li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sui-sp-2); padding-bottom: var(--sui-sp-2); border-bottom: var(--sui-border-w) solid var(--sui-border); }
.sui-bank-current > li > span, .sui-bank-sync-list > li > div { min-width: 0; flex: 1 1 14rem; overflow-wrap: anywhere; }
.sui-bank-sync-list p { margin: 0; }
.sui-bank-history > li, .sui-bank-sample > li { font-size: var(--sui-fs-14); line-height: var(--sui-lh-14); color: var(--sui-text-2); overflow-wrap: anywhere; }
.sui-bank-choices { border: 0; margin: 0; padding: 0; min-width: 0; display: flex; flex-direction: column; gap: var(--sui-sp-2); }
.sui-bank-choice { border: var(--sui-border-w) solid var(--sui-border); border-radius: var(--sui-radius-md); padding: var(--sui-sp-2) var(--sui-sp-3); min-width: 0; }
.sui-bank-choice.is-active { border-color: var(--sui-primary-solid); background: var(--sui-primary-tint); }
.sui-bank-choice-fields { display: flex; flex-direction: column; gap: var(--sui-sp-3); padding: var(--sui-sp-2) 0 var(--sui-sp-1) var(--sui-sp-6); min-width: 0; }
.sui-bank-split-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(8rem, 12rem); gap: var(--sui-sp-2); align-items: end; }
.sui-bank-split-row .sui-field { margin: 0; min-width: 0; }
.sui-bank-split-rest { margin: 0; font-weight: var(--sui-fw-medium); }
.sui-bank-form-actions, .sui-bank-head { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sui-sp-2); }
.sui-bank-head { justify-content: space-between; }
.sui-bank-modify > summary { cursor: pointer; min-height: var(--sui-h-md); display: flex; align-items: center; }
.sui-bank-modify[open] > summary { margin-bottom: var(--sui-sp-3); }
.sui-bank-fieldset { border: 0; margin: 0; padding: 0; min-width: 0; display: flex; flex-direction: column; gap: var(--sui-sp-3); }
.sui-bank-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: var(--sui-sp-3); align-items: start; }
.sui-bank-grid .sui-field { margin: 0; min-width: 0; }
.sui-bank-row-form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--sui-sp-2); }
.sui-bank-row-form .sui-field { margin: 0; flex: 1 1 16rem; min-width: 0; }
.sui-bank-preview { padding: var(--sui-sp-3); background: var(--sui-surface-2); border-radius: var(--sui-radius-md); }
.sui-bank-preview p { margin: 0 0 var(--sui-sp-1); }
.sui-bank-order { display: inline-block; min-width: 1.5rem; font-weight: var(--sui-fw-semibold); }
.sui-bank-toggle .sui-switch-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.sui-bank-log > li { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--sui-sp-1) var(--sui-sp-3); font-size: var(--sui-fs-14); line-height: var(--sui-lh-14); overflow-wrap: anywhere; }
.sui-bank-log-at { color: var(--sui-text-2); white-space: nowrap; }
.sui-bank-raw { flex-basis: 100%; }
.sui-bank-raw > summary { cursor: pointer; color: var(--sui-text-2); }
.sui-bank-raw code { display: block; white-space: pre-wrap; overflow-wrap: anywhere; font-size: var(--sui-fs-12); }
@media (max-width: 47.99em) {
  .sui-bank-choice-fields { padding-left: 0; }
  .sui-bank-split-row { grid-template-columns: minmax(0, 1fr); }
  .sui-bank-bulk .sui-btn, .sui-bank-form-actions .sui-btn, .sui-bank-acts .sui-btn { min-height: var(--sui-target-touch); }
  .sui-bank-table .sui-check--bare { min-width: var(--sui-target-touch); min-height: var(--sui-target-touch); }
  /* Cartes : le libellé en tête, la case de sélection en bas de la carte. */
  .sui-bank-table .sui-table--cards tbody tr { display: flex; flex-direction: column; }
  .sui-bank-table .sui-table--cards th[scope="row"] { order: -1; }
  .sui-bank-table .sui-table--cards td.sui-bank-col-sel { order: 10; }
  .sui-bank-table .sui-table--cards .sui-bank-cell { text-align: right; }
  .sui-page-actions .sui-bank-sync .sui-btn { min-height: var(--sui-target-touch); }
}

/* ── Contacts (2.60.0, C4) : E14 onglet Contacts, E15 onglet et encadré « Contact principal »,
   E16 fiche, D11 « Nouveau contact » (doublons pendant la saisie, choix dans le carnet Android). ── */
.sui-contact-ctas { display: flex; flex-wrap: wrap; gap: var(--sui-sp-2); margin: 0; }
.sui-contact-primary { display: flex; flex-direction: column; gap: var(--sui-sp-2); }
.sui-contact-primary > * { margin: 0; }
.sui-contact-picker[hidden], .sui-d11-live:empty { display: none; }
.sui-d11-picker-row { margin: 0; }
.sui-d11-names { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sui-sp-3); }
.sui-d11-names > .sui-field { min-width: 0; }
.sui-d11[aria-busy="true"] .sui-d11-live { opacity: .7; }
.sui-d11-dup-list > li { gap: var(--sui-sp-1) var(--sui-sp-2); }
.sui-contact-more > summary { display: flex; align-items: center; min-height: var(--sui-h-md); cursor: pointer; font-weight: var(--sui-fw-medium); }
.sui-contact-more > summary:focus-visible { outline: 2px solid var(--sui-focus); outline-offset: 2px; }
.sui-contact-more[open] > summary { margin-bottom: var(--sui-sp-3); }
.sui-contact-more > summary { gap: var(--sui-sp-2); list-style: none; }
.sui-contact-more > summary::-webkit-details-marker { display: none; }
.sui-contact-more-chevron { flex: none; transition: transform var(--sui-dur-1); }
.sui-contact-more[open] .sui-contact-more-chevron { transform: rotate(180deg); }
.sui-contact-row--past { color: var(--sui-text-2); }
.sui-contact-unlink { display: flex; flex-direction: column; align-items: flex-start; gap: var(--sui-sp-2); margin: 0; padding-top: var(--sui-sp-3); border-top: var(--sui-border-w) solid var(--sui-border); }
.sui-contact-unlink > p { margin: 0; }
.sui-d08-contact-new { margin: 0; }
.sui-contact-links > li { row-gap: var(--sui-sp-1); }
@media (max-width: 47.99em) {
  /* « Appeler » et « Email » : cibles de 48 px (05-mobile §2.4). */
  .sui-contact-cta { min-height: 3rem; flex: 1 1 8rem; justify-content: center; }
  .sui-contact-tel, .sui-contact-links .sui-link, .sui-d08-contact-new .sui-link { display: inline-flex; align-items: center; min-height: var(--sui-target-touch); }
  .sui-contact-more > summary { min-height: var(--sui-target-touch); }
  .sui-d11-names { grid-template-columns: minmax(0, 1fr); }
  /* Cases à cocher de D11 et des formulaires dans la page : zone de clic (le label) à 44 px. */
  .sui-d11 .sui-check, .sui-d08-page .sui-check { min-height: var(--sui-target-touch); }
}

/* ── Consultants, argent et clôture (2.55.0) : E09, E10, E11, E12, D02, D03, D05, E03 (Bilan, D18, D19), E22 ── */
.sui-cons [hidden], .sui-cloture [hidden], .sui-report [hidden] { display: none; }
.sui-cons-sub { display: block; font-size: var(--sui-fs-12); line-height: var(--sui-lh-12); color: var(--sui-text-2); overflow-wrap: anywhere; }
.sui-cons-h2 { margin: 0; font-size: var(--sui-fs-16); line-height: var(--sui-lh-16); font-weight: var(--sui-fw-semibold); display: flex; flex-wrap: wrap; align-items: center; gap: var(--sui-sp-2); }
.sui-cons-h3, .sui-cloture-h3 { margin: var(--sui-sp-4) 0 var(--sui-sp-2); font-size: var(--sui-fs-14); line-height: var(--sui-lh-14); font-weight: var(--sui-fw-semibold); }
.sui-cons-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sui-sp-2); margin: 0 0 var(--sui-sp-3); }
.sui-cons-inline { display: inline-flex; margin: 0; }
.sui-cons-acts { display: inline-flex; flex-wrap: wrap; align-items: center; gap: var(--sui-sp-2); }
.sui-cons-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sui-sp-3); margin: 0; }
.sui-cons-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: var(--sui-sp-3); align-items: start; }
.sui-cons-grid .sui-field { margin: 0; min-width: 0; }
.sui-cons-fieldset { border: 0; margin: 0; padding: 0; min-width: 0; display: flex; flex-direction: column; gap: var(--sui-sp-2); }
.sui-cons-legend { padding: 0; margin: 0 0 var(--sui-sp-1); font-weight: var(--sui-fw-semibold); }
.sui-cons-checks { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: var(--sui-sp-1) var(--sui-sp-3); }
.sui-cons-months { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sui-sp-2) var(--sui-sp-4); }
.sui-cons-month-current { font-weight: var(--sui-fw-semibold); }
.sui-cons-badges { display: flex; flex-wrap: wrap; gap: var(--sui-sp-2); }
.sui-cons-summary { margin: 0; color: var(--sui-text-2); overflow-wrap: anywhere; }
.sui-cons-notes { margin: 0; overflow-wrap: anywhere; }
.sui-cons-back { margin: 0; }
.sui-cons-board { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: var(--sui-sp-3); align-items: start; }
.sui-cons-cards, .sui-cons-asklist, .sui-ir-cands, .sui-d03-lines, .sui-cloture-d19-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--sui-sp-2); }
.sui-cons-cards > li { padding-bottom: var(--sui-sp-2); border-bottom: var(--sui-border-w) solid var(--sui-border); }
.sui-cons-asklist > li, .sui-ir-cands > li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sui-sp-2); padding-bottom: var(--sui-sp-2); border-bottom: var(--sui-border-w) solid var(--sui-border); }
.sui-cons-asklist > li > span, .sui-ir-cands > li > span { min-width: 0; flex: 1 1 14rem; }
.sui-cons-money { display: flex; flex-direction: column; gap: var(--sui-sp-3); }
.sui-cons-money > .sui-cons-h2 { font-size: var(--sui-fs-20); line-height: var(--sui-lh-20); }
.sui-cons-calc { margin: 0; display: flex; flex-direction: column; }
.sui-cons-calc > div { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--sui-sp-1) var(--sui-sp-4); padding: var(--sui-sp-2) 0; border-bottom: var(--sui-border-w) dashed var(--sui-border); }
.sui-cons-calc > div.is-total { border-bottom: 0; border-top: 2px solid var(--sui-border-strong); font-weight: var(--sui-fw-semibold); }
.sui-cons-calc dt { min-width: 0; flex: 1 1 14rem; }
.sui-cons-calc dd { margin: 0; display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: var(--sui-sp-2); }
.sui-cons-apart { padding: var(--sui-sp-3); background: var(--sui-surface-2); border-radius: var(--sui-radius-md); }
.sui-cons-apart > p { margin: 0 0 var(--sui-sp-1); }
.sui-cons-details > summary, .sui-ir-others > summary { cursor: pointer; min-height: var(--sui-h-md); display: flex; align-items: center; font-weight: var(--sui-fw-semibold); }
.sui-cons-details[open] > summary, .sui-ir-others[open] > summary { margin-bottom: var(--sui-sp-3); }
.sui-cons-details > summary:focus-visible, .sui-ir-others > summary:focus-visible { outline: 2px solid var(--sui-focus); outline-offset: 2px; }
.sui-cons-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(8rem, 12rem); gap: var(--sui-sp-2); align-items: end; }
.sui-cons-split .sui-field { margin: 0; min-width: 0; }
@media (min-width: 48em) { .sui-cons .sui-cons-col-name { min-width: 11rem; } }
.sui-cons-picker { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--sui-sp-2); margin: 0; }
.sui-cons-picker .sui-field { margin: 0; }
.sui-ir-status { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sui-sp-2) var(--sui-sp-3); }
.sui-ir-status > .sui-cons-sub { flex-basis: 100%; font-size: var(--sui-fs-14); line-height: var(--sui-lh-14); }
.sui-ir-amount { font-size: var(--sui-fs-20); line-height: var(--sui-lh-20); font-weight: var(--sui-fw-semibold); }
.sui-ir-pay { display: flex; flex-direction: column; gap: var(--sui-sp-3); border: 2px solid var(--sui-primary-solid); }
.sui-ir-pay > p { margin: 0; }
.sui-ir-txn-main { font-weight: var(--sui-fw-semibold); }
.sui-ir-payform { margin: 0; }
.sui-ir-acts { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sui-sp-2); }
.sui-ir-quote { margin: 0; padding: var(--sui-sp-2) var(--sui-sp-3); border-left: 3px solid var(--sui-border-strong); color: var(--sui-text); }
.sui-ir-mail { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; font-family: inherit; font-size: var(--sui-fs-14); line-height: var(--sui-lh-14); }
.sui-d03-lines > li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sui-sp-1) var(--sui-sp-3); }
.sui-d03-lines .sui-check { min-width: 0; flex: 1 1 16rem; }
.sui-d03-total .sui-facts { margin-bottom: var(--sui-sp-2); }
.sui-cloture-close { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sui-sp-3); margin: var(--sui-sp-4) 0 0; }
.sui-cloture-d19, .sui-cloture-d18, .sui-cloture-snapshot { margin: var(--sui-sp-4) 0; }
.sui-cloture-d18 { border: 2px solid var(--sui-primary-solid); display: flex; flex-direction: column; gap: var(--sui-sp-3); }
.sui-cloture-d18 textarea { font-size: var(--sui-fs-14); }
@media (max-width: 47.99em) {
  /* E11 (mobile d'abord) : bouton de paiement pleine largeur, cibles de 44 px. */
  .sui-ir-paybtn { width: 100%; justify-content: center; min-height: 3rem; }
  .sui-ir-acts .sui-btn, .sui-ir-acts .sui-cons-inline, .sui-ir-acts .sui-cons-inline .sui-btn { width: 100%; justify-content: center; min-height: var(--sui-target-touch); }
  .sui-cons-actions .sui-btn, .sui-cons-acts .sui-btn, .sui-cons-asklist .sui-btn, .sui-ir-cands .sui-btn { min-height: var(--sui-target-touch); }
  .sui-cons-acts .sui-link, .sui-cons-details .sui-link, .sui-cons-calc .sui-link, .sui-d03-cri,
  .sui-cons .sui-table .sui-link, .sui-cons-months .sui-link, .sui-cons-apart .sui-link, .sui-ir-cands .sui-link, .sui-cons-back .sui-link,
  .sui-cloture .sui-table .sui-link, .sui-cloture-actions .sui-link, .sui-cloture-close .sui-link,
  .sui-cons-actions .sui-link, .sui-cons-head .sui-link, .sui-cons-asklist .sui-link, .sui-cloture-months .sui-link { display: inline-flex; align-items: center; min-height: var(--sui-target-touch); }
  .sui-cons-fieldset .sui-check { min-height: var(--sui-target-touch); }
  .sui-cons-details > summary, .sui-ir-others > summary { min-height: var(--sui-target-touch); }
  .sui-cons-split { grid-template-columns: minmax(0, 1fr); }
  .sui-d03-lines .sui-check { min-height: var(--sui-target-touch); }
}
/* E22 · Rapport mensuel client (document A4 autonome) */
.sui-report-body { background: var(--sui-surface); color: var(--sui-text); margin: 0; font-family: var(--sui-font); -webkit-font-smoothing: antialiased; }
.sui-report { max-width: 50rem; margin: 0 auto; padding: var(--sui-sp-6) var(--sui-sp-4); font-size: var(--sui-fs-14); line-height: var(--sui-lh-14); }
.sui-report-print { display: flex; justify-content: flex-end; margin: 0 0 var(--sui-sp-4); }
.sui-report-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--sui-sp-3); padding-bottom: var(--sui-sp-3); margin-bottom: var(--sui-sp-4); border-bottom: 2px solid var(--sui-primary-solid); }
.sui-report-brand { margin: 0; color: var(--sui-text-2); font-size: var(--sui-fs-12); text-transform: uppercase; letter-spacing: var(--sui-tracking-caps); }
.sui-report-title { margin: var(--sui-sp-1) 0 0; font-size: var(--sui-fs-24); line-height: var(--sui-lh-24); }
.sui-report-meta, .sui-report-sum { margin: 0; display: flex; flex-wrap: wrap; gap: var(--sui-sp-3) var(--sui-sp-5); }
.sui-report-meta dt, .sui-report-sum dt { color: var(--sui-text-2); font-size: var(--sui-fs-12); }
.sui-report-meta dd, .sui-report-sum dd { margin: 0; font-weight: var(--sui-fw-semibold); }
.sui-report-sum { margin-bottom: var(--sui-sp-5); padding: var(--sui-sp-3); background: var(--sui-surface-2); border-radius: var(--sui-radius-md); }
.sui-report-mission { margin: 0 0 var(--sui-sp-5); }
.sui-report-mission > h2 { margin: 0 0 var(--sui-sp-2); font-size: var(--sui-fs-16); line-height: var(--sui-lh-16); padding-bottom: var(--sui-sp-1); border-bottom: var(--sui-border-w) solid var(--sui-border); }
.sui-report-mission > h3 { margin: var(--sui-sp-3) 0 var(--sui-sp-1); font-size: var(--sui-fs-12); text-transform: uppercase; letter-spacing: var(--sui-tracking-caps); color: var(--sui-text-2); }
.sui-report-table { width: 100%; border-collapse: collapse; }
.sui-report-table th, .sui-report-table td { text-align: left; vertical-align: top; padding: var(--sui-sp-1) var(--sui-sp-2); border-bottom: var(--sui-border-w) solid var(--sui-border); }
.sui-report-table th { font-size: var(--sui-fs-12); color: var(--sui-text-2); font-weight: var(--sui-fw-semibold); }
.sui-report-table .is-num { text-align: right; white-space: nowrap; }
.sui-report-line, .sui-report-note { display: block; overflow-wrap: anywhere; }
.sui-report-note { color: var(--sui-text-2); font-style: italic; }
.sui-report-foot { margin: var(--sui-sp-5) 0 0; color: var(--sui-text-2); font-size: var(--sui-fs-12); }
@media (max-width: 47.99em) { .sui-report { padding: var(--sui-sp-4); } .sui-report-print .sui-btn { width: 100%; justify-content: center; min-height: var(--sui-target-touch); } }
@media print {
  @page { size: A4; }
  .sui-report { max-width: none; padding: 0; }
  .sui-report-table tr, .sui-report-mission > h2 { break-inside: avoid; page-break-inside: avoid; }
}


  /* Missions › À facturer : total (= carte « À facturer (HT) » d’À faire), 2.63.6 */
  .sui-a-facturer-total { margin: var(--sui-sp-3) 0; color: var(--sui-text-2); }
} /* fin @layer sui.components */

/* Ancienne interface (Shell::classic_screen, 2.51.0) : la feuille de WordPress (common.css,
   hors couche) l'emporte sur toute couche : `a { color }` rendait illisible un lien-bouton
   principal, `ol` ajoutait sa numérotation. Corrections HORS COUCHE, limitées à .sui-classic-v3. */
.sui-classic-v3 a.sui-btn, .sui-classic-v3 a.sui-btn:hover, .sui-classic-v3 a.sui-btn:focus { color: var(--sui-b-fg); }
.sui-classic-v3 .sui-stepper ol, .sui-classic-v3 .sui-inbox-list, .sui-classic-v3 .sui-cloture-controls { list-style: none; margin-left: 0; }
.sui-classic-v3 .sui-stepper li, .sui-classic-v3 .sui-inbox-list li, .sui-classic-v3 .sui-cloture-controls li { margin-bottom: 0; }
.sui-classic-v3 .sui-step > a, .sui-classic-v3 .sui-step > a:hover { color: var(--sui-text); }
