/* Reflet de lumière sur les boutons de l'application (Karima, 30/09/2026 : « J'adore l'effet du bouton, applique l'animation
   partout dans l'application sans changer la couleur des boutons »).
   Rien d'autre ne change : ni la couleur, ni la taille, ni la place des boutons. Le reflet prend la couleur du texte du bouton :
   blanc sur un bouton plein, bleu très pâle sur un bouton clair.
   Pas de reflet sur les réponses (« Oui » / « Non ») : une lumière sur une réponse ressemblerait à un indice.
   Pas de reflet sur un bouton éteint, ni si l'appareil demande moins d'animations. */
:where(.btn:not(.on), .essai-btn, .cn-btn, .rs-btn){position:relative;overflow:hidden;isolation:isolate}
:where(.btn:not(.on), .essai-btn, .cn-btn, .rs-btn)::after{
  content:"";position:absolute;top:0;bottom:0;left:0;width:26%;pointer-events:none;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.35) 50%,transparent);
  background:linear-gradient(100deg,transparent,color-mix(in srgb,currentColor 35%,transparent) 50%,transparent);
  transform:translateX(-260%) skewX(-18deg);opacity:0;
  animation:seuil-reflet 5s 1.5s ease-in-out infinite}
:where(.btn-vide, .btn.vide)::after{
  background:linear-gradient(100deg,transparent,rgba(27,42,122,.14) 50%,transparent);
  background:linear-gradient(100deg,transparent,color-mix(in srgb,currentColor 16%,transparent) 50%,transparent)}
:where(.btn:disabled, .btn[aria-disabled="true"], .btn.eteint)::after{animation:none;display:none}
/* Le reflet part de loin et s'efface au repos : rien ne dépasse, même sur un bouton haut de plusieurs lignes. */
@keyframes seuil-reflet{0%{transform:translateX(-260%) skewX(-18deg);opacity:0}3%{opacity:1}19%{opacity:1}22%,100%{transform:translateX(560%) skewX(-18deg);opacity:0}}
@media (prefers-reduced-motion:reduce){:where(.btn, .essai-btn, .cn-btn, .rs-btn)::after{animation:none;display:none}}
@media print{:where(.btn, .essai-btn, .cn-btn, .rs-btn)::after{display:none}}
