/* Principe « le bouton s'enfonce » (Benoit, 2026-10-15) : tout bouton s'enfonce au clic, puis reste enfoncé tant que
   l'action attend la réponse du serveur (aria-busy, posé par busy.js). Une seule règle pour tous les écrans. Thème clair. */
:where(button, [role="button"], input[type="button"], input[type="submit"]) {
  transition: translate .07s ease-out, scale .07s ease-out, filter .07s ease-out, box-shadow .07s ease-out;
}
:is(button, [role="button"], input[type="button"], input[type="submit"]):is(:active:not(:disabled), .is-pressed, [aria-busy="true"]):not(.location-token):not(.vdl-tick):not(.vtl-handle):not(.wiki-handle) {
  translate: 0 2px;
  scale: .97;
  filter: brightness(.86) saturate(1.05);
  box-shadow: inset 0 3px 7px #00000052, inset 0 0 0 1px #0000001f !important;
  text-shadow: none;
}
[aria-busy="true"] { cursor: progress; }
button[aria-busy="true"]:disabled, button[aria-busy="true"][aria-disabled="true"] { opacity: 1; }
:is(button, [role="button"])[data-busy-failed] { outline: 2px solid #b3261e; outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
  :where(button, [role="button"], input[type="button"], input[type="submit"]) { transition: none; }
}
