/* Shared interaction contract: solid hover, no movement, reversible on pointer leave. */
:root { --button-hover-background:#25102f; --button-hover-foreground:#fff; --button-hover-duration:200ms; }
:is(button, .button, [role="button"], input[type="submit"], input[type="reset"]) {
 transition:background-color var(--button-hover-duration) ease-in-out,color var(--button-hover-duration) ease-in-out,border-color var(--button-hover-duration) ease-in-out!important;
}
@media (hover:hover) {
 :is(button, .button, [role="button"], input[type="submit"], input[type="reset"]):not(:disabled):not([aria-disabled="true"]):hover {
  background:var(--button-hover-background)!important;
  color:var(--button-hover-foreground)!important;
  border-color:var(--button-hover-background)!important;
  transform:none!important;
 }
 :is(button,.button,[role="button"]):not(:disabled):not([aria-disabled="true"]):hover :is(span,svg) {color:inherit!important}
}
@media(prefers-reduced-motion:reduce) {
 :is(button, .button, [role="button"], input[type="submit"], input[type="reset"]) {transition:none!important}
}
/* Keep unavailable actions stable under the pointer, including legacy hover rules. */
:is(button,.button,[role="button"],input[type="submit"],input[type="reset"]):is(:disabled,[aria-disabled="true"]),
:is(button,.button,[role="button"],input[type="submit"],input[type="reset"]):is(:disabled,[aria-disabled="true"]):hover {
 background:#eee9f1!important;color:#65566e!important;border-color:#d8cedf!important;
 opacity:1!important;transform:none!important;cursor:not-allowed;
}
:is(button,.button)[aria-busy="true"] {cursor:wait!important}
