@layer components {
  /* Shared per-category background-download control (checker category review and
     admin check-team review). While the ZIP job runs, the button shows a
     spinner; a Turbo Stream swaps it for the download link when ready. */
  .zip-download__working {
    display: inline-flex;
    align-items: center;
    gap: var(--s2);
    cursor: default;
  }

  .zip-download__spinner {
    width: 14px;
    height: 14px;
    border: 2px solid var(--ink-200);
    border-top-color: var(--forest-600, var(--forest-700));
    border-radius: 50%;
    /* Reuses the `spin` keyframes defined in image_cards.css. */
    animation: spin 0.7s linear infinite;
  }
}
