@media (prefers-reduced-motion: no-preference) {
  @keyframes affiliate-panel-enter {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
  }

  @keyframes affiliate-overlay-enter {
    from { opacity: 0; }
    to { opacity: 1; }
  }

  @keyframes affiliate-dialog-enter {
    from { opacity: 0; transform: translateY(10px) scale(.98); }
    to { opacity: 1; transform: translateY(0) scale(1); }
  }

  .affiliate-admin-panel {
    animation: affiliate-panel-enter 220ms cubic-bezier(.2,.7,.25,1) both;
  }

  .affiliate-admin-panel > section,
  .affiliate-admin-panel > div:not(.affiliate-admin-coupons-overlay) {
    animation: affiliate-panel-enter 260ms cubic-bezier(.2,.7,.25,1) both;
  }

  .affiliate-admin-panel > :nth-child(2) { animation-delay: 25ms; }
  .affiliate-admin-panel > :nth-child(3) { animation-delay: 50ms; }
  .affiliate-admin-panel > :nth-child(4) { animation-delay: 75ms; }

  .affiliate-admin-panel button:not(:disabled) {
    transition: transform 160ms ease, background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
  }

  .affiliate-admin-panel button:not(:disabled):hover {
    transform: translateY(-1px);
  }

  .affiliate-admin-panel button:not(:disabled):active {
    transform: scale(.985);
  }

  .affiliate-admin-panel .affiliate-account-card {
    transition: transform 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
  }

  .affiliate-admin-panel .affiliate-account-card:hover {
    transform: translateX(-3px);
    box-shadow: inset 0 0 0 1px rgb(96 165 250 / 22%);
  }

  .affiliate-admin-panel input,
  .affiliate-admin-panel select {
    transition: border-color 160ms ease, box-shadow 160ms ease;
  }

  .affiliate-admin-panel input:focus,
  .affiliate-admin-panel select:focus {
    box-shadow: 0 0 0 3px rgb(59 130 246 / 16%);
  }

  .affiliate-admin-coupons-overlay {
    animation: affiliate-overlay-enter 180ms ease-out both;
  }

  .affiliate-admin-coupons-dialog {
    animation: affiliate-dialog-enter 200ms cubic-bezier(.2,.7,.25,1) both;
  }

  .affiliate-admin-coupons-overlay.is-closing {
    animation: affiliate-overlay-enter 180ms ease-in reverse both;
    pointer-events: none;
  }

  .affiliate-admin-coupons-overlay.is-closing .affiliate-admin-coupons-dialog {
    animation: affiliate-dialog-enter 180ms ease-in reverse both;
  }
}

@media (prefers-reduced-motion: reduce) {
  .affiliate-admin-panel,
  .affiliate-admin-panel > section,
  .affiliate-admin-panel > div,
  .affiliate-admin-panel button,
  .affiliate-admin-panel input,
  .affiliate-admin-panel select,
  .affiliate-admin-coupons-overlay,
  .affiliate-admin-coupons-dialog {
    animation-duration: 1ms !important;
    transition-duration: 1ms !important;
  }
}
