/*
 * This is a manifest file that'll be compiled into application.css.
 *
 * With Propshaft, assets are served efficiently without preprocessing steps. You can still include
 * application-wide styles in this file, but keep in mind that CSS precedence will follow the standard
 * cascading order, meaning styles declared later in the document or manifest will override earlier ones,
 * depending on specificity.
 *
 * Consider organizing styles into separate files for maintainability.
 */

/* Le menu ··· d'une ligne de chat ne se montre qu'au survol de la ligne
   (`sm:opacity-0` + `sm:group-hover:opacity-100`). Ouvert AU CLAVIER — par la
   flèche haut du composer, ou par tabulation — il restait invisible : le curseur
   se posait dans un champ qu'on ne voyait pas.

   La règle vit ici, hors de toute `@layer`, et pas en variante Tailwind
   `sm:open:` : celle-ci est bien émise, l'élément matche bien `[open]`, et elle
   perd quand même — mesuré, `opacity` reste à 0. Une couche qui perd est un
   piège déjà rencontré sur ce projet ; on écrit la règle d'état là où elle
   gagne. */
[data-testid="campfire-line-menu"][open],
[data-testid="campfire-line-menu"]:focus-within {
  opacity: 1;
}

/* La barre d'outils de Trix SE REPLIE — elle ne défile plus. #604.

   Trix pose sa rangée de boutons en `flex-wrap: nowrap` + `overflow-x: auto`
   (`actiontext.css`, règle `.trix-button-row`). Dès que la colonne est plus
   étroite que la barre, les derniers boutons sortent de la boîte et sont
   tranchés net par son bord. Relevé AVANT correction, dans la colonne valeur
   d'une rangée libellé/valeur (`todos/_field_row`) :

     page tâche,        1440 px, commentaire : 622 px pour 655 px — `redo` coupé
     page tâche,         390 px, notes       : 316 px pour 378 px — 3 boutons coupés
     page tâche,         390 px, commentaire : 268 px pour 378 px — 4 boutons coupés
     ajout d'une tâche,  390 px, notes       : 296 px pour 378 px — 3 boutons coupés

   Le débordement est INTERNE à la colonne : il ne pousse pas le document, donc
   les trois oracles de `script/visual_capture.rb` restent verts. C'est ce qui
   lui a permis de survivre si longtemps.

   On REPLIE plutôt que de défiler. `overflow-x: auto` donne bien un
   défilement — mais macOS masque ses barres jusqu'au geste : à l'écran il ne
   reste qu'un bouton tranché, sans le moindre signe qu'il y a une suite. Rendre
   ce défilement lisible demanderait une affordance de plus à dessiner et à
   maintenir (dégradé de bord, ombre) ; le repli n'en demande aucune — chaque
   bouton reste entier et atteignable, à tous les viewports.

   Le `.trix-button-group-spacer` RESTE en place. Le navigateur découpe les
   lignes sur la taille hypothétique des éléments, pas sur leur taille après
   croissance : ce `span` vide y pèse zéro, et n'absorbe l'espace libre qu'une
   fois les lignes formées. Une barre qui tient sur une ligne garde donc son
   groupe d'historique poussé à droite, exactement comme avant.

   `overflow-x: visible` n'est pas décoratif. Garder `auto` en filet de secours
   rétablirait, le jour où il se déclencherait, le défaut même qu'on ferme ici :
   un défilement que rien n'annonce. Cette barre se replie, elle ne défile pas.

   L'écart entre groupes reste le `margin-left: 1.5vw` de Trix, et ne passe PAS
   en `column-gap` — essayé, mesuré, écarté : un `column-gap` s'applique aussi
   de part et d'autre du spacer, soit quatre écarts au lieu de trois. Les 21 px
   gagnés suffisaient à faire basculer la barre des notes (670 px) sur deux
   rangées à 1440 px, là où elle tenait sur une. Le prix payé à la place est
   qu'un groupe qui OUVRE une rangée repliée garde sa marche de 1,5 vw ; c'est
   moins cher qu'une rangée de plus sur le cas le plus courant.

   Épinglé par `test/integration/trix_toolbar_repli_lint_test.rb`. */
trix-toolbar .trix-button-row {
  flex-wrap: wrap;
  justify-content: flex-start;
  overflow-x: visible;
}

/* … sauf dans le panneau de l'éditeur Conception, où la marche de 1,5 vw coûte
   plus qu'elle ne rend.
   Le commentaire ci-dessus assume ce prix : « un groupe qui OUVRE une rangée
   repliée garde sa marche de 1,5 vw ». L'arbitrage a été mesuré sur des éditeurs
   à la largeur d'une page (barre de 670 px à 1440 px de viewport) — pas sur le
   fil d'un commentaire ancré, large de 319 px. Là, 1,5 vw ≈ 20 px poussent le
   groupe 10 px au-delà du bord et le dernier bouton se lit tranché.
   La règle du repli n'est pas touchée (`flex-wrap` reste `wrap`, cf.
   `test/integration/trix_toolbar_repli_lint_test.rb`) : seul l'écart change, et
   seulement ici. */
turbo-frame#cn-selection trix-toolbar .trix-button-group:not(:first-child) {
  margin-left: 0;
}

turbo-frame#cn-selection trix-toolbar .trix-button-row {
  gap: 0.375rem;
}
