/* Reusable video-results pagination (see public/js/pagination.js,
   docs/admin.md "Pagination") — the results-per-page selector, result
   count, and Previous/page-numbers/Next nav shared by every paginated video
   list: main search, category/creator browsing, Manual/Automatic
   Discovery, and My Library. */

.pagination {
  margin-top: var(--space-6);
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.pagination:empty {
  margin-top: 0;
}

/* ---- Result count + results-per-page selector ---- */

.pagination__bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
}

.pagination__count {
  margin: 0;
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
}

.pagination__per-page {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-shrink: 0;
}

.pagination__per-page-label {
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
  white-space: nowrap;
}

.pagination__per-page-select {
  font-family: inherit;
  font-size: var(--font-size-sm);
  color: var(--color-text);
  background: var(--color-surface-muted);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: var(--space-1) var(--space-3);
  cursor: pointer;
}

.pagination__per-page-select:hover {
  border-color: var(--color-accent);
}

/* ---- Previous / page numbers / Next ---- */

.pagination__nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
}

.pagination__step,
.pagination__page {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.25rem;
  height: 2.25rem;
  padding-inline: var(--space-3);
  border-radius: var(--radius-md);
  border: 1px solid var(--color-border);
  background: var(--color-surface-muted);
  color: var(--color-text);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.pagination__page {
  min-width: 2.25rem;
  padding-inline: var(--space-2);
}

.pagination__step:hover,
.pagination__page:hover {
  border-color: var(--color-accent);
  color: var(--color-accent);
}

.pagination__page--current {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-text-on-primary);
  cursor: default;
}

.pagination__page--current:hover {
  border-color: var(--color-primary);
  color: var(--color-text-on-primary);
}

/* Disabled Previous/Next: a plain <span>, never a dead "#" link, but still
   visually consistent with the enabled state (just muted). */
.pagination__step--disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.pagination__step--disabled:hover {
  border-color: var(--color-border);
  color: var(--color-text);
}

.pagination__ellipsis {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.5rem;
  height: 2.25rem;
  color: var(--color-text-muted);
  font-size: var(--font-size-sm);
}

/* ---- Mobile: controls fit cleanly, count stacks above ---- */

@media (max-width: 479px) {
  .pagination__bar {
    flex-direction: column;
    align-items: stretch;
    text-align: center;
  }

  .pagination__per-page {
    justify-content: center;
  }

  .pagination__nav {
    gap: var(--space-1);
  }

  .pagination__step,
  .pagination__page {
    min-width: 2rem;
    height: 2rem;
    padding-inline: var(--space-2);
    font-size: var(--font-size-xs);
  }
}

/* ---- Discovery (external/YouTube) results subsection ---- */

.home-results__discovery {
  margin-top: var(--space-7);
  padding-top: var(--space-6);
  border-top: 1px solid var(--color-border);
}

.home-section__heading--small {
  font-size: var(--font-size-lg);
  margin: 0 0 var(--space-4);
}
