/* Shared action feedback. Existing handlers own requests, validation and disabled states. */
:is(
  .shared-account form[aria-busy="true"] :is([data-auth-submit], [data-settings-save], [data-address-save], [data-return-save]),
  [data-feedback-busy]
) { cursor: wait; }
:is(
  .shared-account form[aria-busy="true"] :is([data-auth-submit], [data-settings-save], [data-address-save], [data-return-save]),
  [data-feedback-busy], .wishlist-button[aria-busy="true"],
  [data-feedback-row] :is(.cartItem__quantityControl, .cart-page__quantity)
)::after {
  content: "";
  display: inline-block;
  vertical-align: middle;
  margin-inline-start: 10px;
  flex-shrink: 0;
  box-sizing: border-box;
  width: 14px;
  height: 14px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  pointer-events: none;
  animation: shared-feedback-spin .7s linear infinite;
}
.shared-account form[aria-busy="true"] [data-auth-submit] > svg { display: none; }
[data-feedback-busy="compact"] > span { visibility: hidden; }
.wishlist-button[aria-busy="true"] > svg { visibility: hidden; }
[data-feedback-busy="compact"]::after,
.wishlist-button[aria-busy="true"]::after,
[data-feedback-row] :is(.cartItem__quantityControl, .cart-page__quantity)::after {
  position: absolute;
  top: 50%;
  left: 50%;
  margin-left: -7px;
  --feedback-offset: -50%;
}
[data-feedback-row] :is(.cartItem__quantityControl, .cart-page__quantity) { position: relative; }
[data-feedback-row] :is(.cartItem__quantityControl, .cart-page__quantity) input { visibility: hidden; }
@keyframes shared-feedback-spin {
  from { transform: translateY(var(--feedback-offset, 0px)) rotate(0); }
  to { transform: translateY(var(--feedback-offset, 0px)) rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
  :is(
    .shared-account form[aria-busy="true"] :is([data-auth-submit], [data-settings-save], [data-address-save], [data-return-save]),
    [data-feedback-busy], .wishlist-button[aria-busy="true"],
    [data-feedback-row] :is(.cartItem__quantityControl, .cart-page__quantity)
  )::after { animation: none; transform: translateY(var(--feedback-offset, 0px)); }
}
