/*
 * This is a manifest file that'll be compiled into application.css.
 *
 * With Propshaft, assets are served efficiently without preprocessing steps. You can still include
 * application-wide styles in this file, but keep in mind that CSS precedence will follow the standard
 * cascading order, meaning styles declared later in the document or manifest will override earlier ones,
 * depending on specificity.
 *
 * Consider organizing styles into separate files for maintainability.
 */

/* Citation link styles - icon-based badges */
.citation-link {
  cursor: pointer;
  text-decoration: none !important;
  transition: all 0.15s ease;
  vertical-align: baseline;
}

.citation-link:hover {
  text-decoration: none !important;
  transform: translateY(-1px);
}

.citation-link svg {
  flex-shrink: 0;
}

/* Source highlight animation */
.source-card {
  transition: all 0.3s ease;
}

.source-highlight {
  border-color: #6366f1 !important;
  background-color: #eef2ff !important;
  box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.2);
  animation: highlight-pulse 0.5s ease-in-out 2;
}

.dark .source-highlight {
  background-color: rgba(99, 102, 241, 0.15) !important;
  box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.3);
}

@keyframes highlight-pulse {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.02);
  }
}

/* Pagy pagination styles */
.pagy-nav-wrapper nav.series-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
}

.pagy-nav-wrapper nav.series-nav a,
.pagy-nav-wrapper nav.series-nav a[role="link"] {
  padding: 0.375rem 0.75rem;
  font-size: 0.875rem;
  color: #4b5563;
  border-radius: 0.5rem;
  transition: background-color 0.15s ease;
  text-decoration: none;
}

.pagy-nav-wrapper nav.series-nav a:hover {
  background-color: #f3f4f6;
}

/* Current page */
.pagy-nav-wrapper nav.series-nav a[aria-current="page"] {
  font-weight: 500;
  color: white;
  background-color: var(--color-primary-600);
  pointer-events: none;
}

/* Disabled/gap elements */
.pagy-nav-wrapper nav.series-nav a[aria-disabled="true"] {
  color: #9ca3af;
  pointer-events: none;
}

.pagy-nav-wrapper nav.series-nav a[role="separator"] {
  padding: 0.375rem 0.5rem;
}

/* Dark mode */
.dark .pagy-nav-wrapper nav.series-nav a,
.dark .pagy-nav-wrapper nav.series-nav a[role="link"] {
  color: #9ca3af;
}

.dark .pagy-nav-wrapper nav.series-nav a:hover {
  background-color: #1f2937;
}

.dark .pagy-nav-wrapper nav.series-nav a[aria-current="page"] {
  color: white;
  background-color: var(--color-primary-600);
}

.dark .pagy-nav-wrapper nav.series-nav a[aria-disabled="true"] {
  color: #4b5563;
}
