/**
 * Stop Arrival Component Styles
 * 
 * Squarespace Theme-Aware Styling
 * Uses Squarespace CSS variables for automatic theme integration.
 * Component inherits colors from nearest [data-section-theme] ancestor.
 */

/* =============================================================================
   Container
   ============================================================================= */

.ewp-stop-arrival {
  /* Status colors - semantic and consistent */
  --ewp-stop-primary: var(--green);
  --ewp-stop-arriving: var(--red);
  --ewp-stop-delayed: var(--yellow);

  font-family: inherit;
  color: var(--paragraphMediumColor);
  line-height: 1.5;
}

.ewp-stop-arrival__stops {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

/* =============================================================================
   Stop Card
   ============================================================================= */

.ewp-stop-arrival__card {
  background: var(--backgroundOverlayColor);
  border: none;
  border-radius: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.ewp-stop-arrival__stop-name {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--headingSmallColor);
  margin-bottom: 0.25rem;
}

.ewp-stop-arrival__title {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--paragraphSmallColor);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* =============================================================================
   Arrival Time
   ============================================================================= */

.ewp-stop-arrival__arrival {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.ewp-stop-arrival__time {
  font-weight: 700;
  color: var(--ewp-stop-primary);
  line-height: 1;
  margin: 0;
}

.ewp-stop-arrival__time--arriving {
  color: var(--ewp-stop-arriving);
  animation: ewp-stop-pulse 2s ease-in-out infinite;
}

.ewp-stop-arrival__time--delayed {
  color: var(--ewp-stop-delayed);
}

.ewp-stop-arrival__unit {
  font-size: 0.875rem;
  font-weight: 500;
  margin-left: 0.125rem;
  opacity: 0.7;
}

.ewp-stop-arrival__delayed-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.125rem 0.5rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--ewp-stop-delayed);
  background: rgba(243, 199, 62, 0.12);
  border-radius: 0;
}

.ewp-stop-arrival__no-service {
  font-size: 1rem;
  color: var(--paragraphSmallColor);
  font-style: italic;
}

/* =============================================================================
   Following Arrivals
   ============================================================================= */

.ewp-stop-arrival__following {
  font-size: 0.8125rem;
  color: var(--paragraphSmallColor);
}

.ewp-stop-arrival__following-label {
  font-weight: 500;
}

.ewp-stop-arrival__following-times {
  color: var(--paragraphMediumColor);
}

/* =============================================================================
   States
   ============================================================================= */

/* Loading */
.ewp-stop-arrival--loading .ewp-stop-arrival__skeleton {
  height: 5rem;
  background: linear-gradient(
    90deg,
    var(--shape-block-background-color, var(--siteBackgroundColor)) 25%,
    var(--backgroundOverlayColor) 50%,
    var(--shape-block-background-color, var(--siteBackgroundColor)) 75%
  );
  background-size: 200% 100%;
  animation: ewp-stop-shimmer 1.5s infinite;
  border-radius: 0;
}

/* Error */
.ewp-stop-arrival__error {
  padding: 1rem;
  text-align: center;
  color: var(--paragraphSmallColor);
  font-size: 0.875rem;
  background: var(--backgroundOverlayColor);
  border: 1px solid var(--section-divider-stroke-color);
  border-radius: 0;
}

/* Empty */
.ewp-stop-arrival__empty {
  padding: 1rem;
  text-align: center;
  color: var(--paragraphSmallColor);
  font-size: 0.875rem;
  background: var(--backgroundOverlayColor);
  border: 1px solid var(--section-divider-stroke-color);
  border-radius: 0;
}

/* =============================================================================
   Animations
   ============================================================================= */

@keyframes ewp-stop-pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.6;
  }
}

@keyframes ewp-stop-shimmer {
  0% {
    background-position: -200% 0;
  }
  100% {
    background-position: 200% 0;
  }
}

/* =============================================================================
   Reduced Motion
   ============================================================================= */

@media (prefers-reduced-motion: reduce) {
  .ewp-stop-arrival__time--arriving,
  .ewp-stop-arrival--loading .ewp-stop-arrival__skeleton {
    animation: none;
  }
}

/* =============================================================================
   Grid Layout (for multiple stops)
   ============================================================================= */

@media (min-width: 640px) {
  .ewp-stop-arrival__stops {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1rem;
  }
}

/* =============================================================================
   Grid Layout (for multiple stops)
   ============================================================================= */

.sqs-edit-mode-active [data-ewp-component="stop-arrival"] {
  background: var(--backgroundOverlayColor);
  border: 1px dashed var(--paragraphSmallColor);;
  border-radius: 0;
  box-sizing: border-box;
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 1.5rem;
  &:after {
    content: "ARRIVAL: " attr(data-stop-id);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    color: var(--paragraphSmallColor);
    font-size: 0.875rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    text-align: center;
  }
}