/* a2-scrollbar.css — Scrollbar fine corporate purple (socle a2common).
 *
 * Pur CSS (méthode standard) : barre fine, pouce purple corporate semi-
 * transparent sur piste transparente, collée au bord droit du conteneur.
 *
 * Cible : .a2-panel__body et les conteneurs scrollables internes des panels
 * (a2oc-* Octavia, a2h-* Hypatia), via la classe utilitaire .a2-scrollbar
 * pour tout autre conteneur scrollable.
 *
 * Compatibilité :
 * - Firefox : scrollbar-width / scrollbar-color (isolé via
 *   @supports (-moz-appearance: none), car Chrome/Safari récents
 *   supportent aussi scrollbar-width et ignorent alors les
 *   pseudo-éléments ::-webkit-scrollbar — conflit évité).
 * - WebKit/Blink (Chrome, Safari, Edge) : ::-webkit-scrollbar (largeur 4px).
 *   Note macOS : si « Afficher les barres de défilement » = « Toujours »,
 *   le système dessine sa barre native et ignore la largeur CSS — régler sur
 *   « Automatiquement » pour le rendu fin.
 */

:root {
  --a2-scrollbar-size: 6px;
  --a2-scrollbar-thumb: rgba(102, 126, 234, 0.3); /* purple corporate #667eea */
  --a2-scrollbar-thumb-hover: rgba(102, 126, 234, 0.55);
  --a2-scrollbar-track: transparent;
  --a2-scrollbar-radius: 2px;
  /* Compensation du gap natif entre scrollbar et bord du panel (inset macOS).
   * Valeur négative = tire le body (et sa scrollbar) vers le bord droit.
   * 0 = défaut (pas de compensation). -2px = compense l'inset natif macOS. */
  --a2-scrollbar-margin-right: -2px;
}

/* ═══ Conteneurs scrollables des panels ═══
 * .a2-panel__body + les zones de contenu internes qui ont overflow-y:auto
 * (-content, __tree, __wysiwyg, __column-content). On ne cible PAS
 * [class*="a2oc-"]/[class*="a2h-"] au large : ça casserait le padding des
 * boutons/chips internes. padding-right: 0 pour coller la barre au bord.
 *
 * Attention conflit : scrollbar-width (propriété standard) est désormais
 * supportée par Chrome/Safari récents. Quand elle est définie, le navigateur
 * IGNORE les pseudo-éléments ::-webkit-scrollbar — la largeur 4px ci-dessous
 * ne s'applique donc pas. Solution : scrollbar-width/scrollbar-color sont
 * isolés dans un @supports (-moz-appearance: none) (Firefox uniquement,
 * ignoré par WebKit/Blink).
 * Sur WebKit/Blink, seul ::-webkit-scrollbar s'applique (largeur 4px). */
.a2-scrollbar,
.a2-panel__body,
.a2-panel [class*="-content"],
.a2-panel [class*="__tree"],
.a2-panel [class*="__wysiwyg"],
.a2-panel [class*="__column-content"] {
  padding-right: 0 !important;
}

/* Firefox uniquement — @supports (-moz-appearance: none) n'est vrai que
 * dans Firefox (remplace @-moz-document, non standard). Firefox ne
 * supporte pas ::-webkit-scrollbar ; scrollbar-width: thin est la seule
 * option (Firefox ne permet pas de fixer une largeur en px). */
@supports (-moz-appearance: none) {
  .a2-scrollbar,
  .a2-panel__body,
  .a2-panel [class*="-content"],
  .a2-panel [class*="__tree"],
  .a2-panel [class*="__wysiwyg"],
  .a2-panel [class*="__column-content"] {
    scrollbar-width: thin;
    scrollbar-color: var(--a2-scrollbar-thumb) var(--a2-scrollbar-track);
  }
}

/* Compensation du gap natif scrollbar ↔ bord du panel (inset macOS).
 * margin-right négatif sur le body uniquement : tire la scrollbar vers le
 * bord droit du panel. Les conteneurs internes (-content, __tree…,
 * .a2-notepad__accordions) ne sont pas concernés : ils ont leur propre
 * positionnement dans le body et le margin-right déplacerait tout le bloc,
 * pas juste la scrollbar. */
.a2-panel__body {
  margin-right: var(--a2-scrollbar-margin-right, 0);
}

/* ═══ WebKit / Blink ═══ */
.a2-scrollbar::-webkit-scrollbar,
.a2-panel__body::-webkit-scrollbar,
.a2-notepad__accordions::-webkit-scrollbar,
.a2-panel [class*="-content"]::-webkit-scrollbar,
.a2-panel [class*="__tree"]::-webkit-scrollbar,
.a2-panel [class*="__wysiwyg"]::-webkit-scrollbar,
.a2-panel [class*="__column-content"]::-webkit-scrollbar {
  width: var(--a2-scrollbar-size);
  height: var(--a2-scrollbar-size);
}

.a2-scrollbar::-webkit-scrollbar-track,
.a2-panel__body::-webkit-scrollbar-track,
.a2-notepad__accordions::-webkit-scrollbar-track,
.a2-panel [class*="-content"]::-webkit-scrollbar-track,
.a2-panel [class*="__tree"]::-webkit-scrollbar-track,
.a2-panel [class*="__wysiwyg"]::-webkit-scrollbar-track,
.a2-panel [class*="__column-content"]::-webkit-scrollbar-track {
  background: var(--a2-scrollbar-track);
}

.a2-scrollbar::-webkit-scrollbar-thumb,
.a2-panel__body::-webkit-scrollbar-thumb,
.a2-notepad__accordions::-webkit-scrollbar-thumb,
.a2-panel [class*="-content"]::-webkit-scrollbar-thumb,
.a2-panel [class*="__tree"]::-webkit-scrollbar-thumb,
.a2-panel [class*="__wysiwyg"]::-webkit-scrollbar-thumb,
.a2-panel [class*="__column-content"]::-webkit-scrollbar-thumb {
  background: var(--a2-scrollbar-thumb);
  border-radius: var(--a2-scrollbar-radius);
}

.a2-scrollbar::-webkit-scrollbar-thumb:hover,
.a2-panel__body::-webkit-scrollbar-thumb:hover,
.a2-notepad__accordions::-webkit-scrollbar-thumb:hover,
.a2-panel [class*="a2oc-"]::-webkit-scrollbar-thumb:hover,
.a2-panel [class*="a2h-"]::-webkit-scrollbar-thumb:hover {
  background: var(--a2-scrollbar-thumb-hover);
}

/* ═══ Couverture universelle (desktop) ═══
 * Le desktop (a2desktop) injecte cette feuille dans chaque iframe d'app :
 * la scrollbar corporate s'applique alors à 100% des cas — textareas,
 * modales, listes, conteneurs de modules sans classe .a2-*. Les règles
 * ciblées ci-dessus restent nécessaires : elles portent aussi les
 * ajustements de layout (padding-right:0, margin-right) qui ne peuvent
 * pas être généralisés à tous les éléments sans casser les layouts.
 * Règles AJOUTÉES — aucune propriété existante n'est modifiée ; les
 * surcharges de modules (sélecteurs classés) restent prioritaires. */
::-webkit-scrollbar {
  width: var(--a2-scrollbar-size);
  height: var(--a2-scrollbar-size);
}
::-webkit-scrollbar-track { background: var(--a2-scrollbar-track); }
::-webkit-scrollbar-thumb {
  background: var(--a2-scrollbar-thumb);
  border-radius: var(--a2-scrollbar-radius);
}
::-webkit-scrollbar-thumb:hover { background: var(--a2-scrollbar-thumb-hover); }

@supports (-moz-appearance: none) {
  * { scrollbar-width: thin;
      scrollbar-color: var(--a2-scrollbar-thumb) var(--a2-scrollbar-track); }
}
