// =============================================================================
// Dashboard Styles for Comments Press Zone
// =============================================================================


// =============================================================================
// Stats Grid (4 cards)
// =============================================================================

.presszone-comments-dashboard__stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: $presszone-comments-spacing-md;
  margin-bottom: $presszone-comments-spacing-lg;
}

// =============================================================================
// Bottom 3-column Grid
// =============================================================================

.presszone-comments-dashboard__bottom-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: $presszone-comments-spacing-md;
  margin-top: $presszone-comments-spacing-lg;

  @include respond-to(xl) {
    grid-template-columns: repeat(2, 1fr);
  }

  @include respond-to(lg) {
    grid-template-columns: 1fr;
  }
}

// =============================================================================
// Activity Chart (SVG)
// =============================================================================

.presszone-comments-chart-container {
  position: relative;
  height: 280px;
  width: 100%;
  padding: 20px 0;
  overflow: visible;

  @include respond-to(md) {
    height: 200px;
  }
}

.presszone-comments-chart-svg {
  width: 100%;
  height: 100%;
  overflow: visible;
}

.presszone-comments-chart-gradient-start {
  stop-color: $presszone-comments-primary;
  stop-opacity: 0.2;
}

.presszone-comments-chart-gradient-end {
  stop-color: $presszone-comments-primary;
  stop-opacity: 0;
}

.presszone-comments-chart-line {
  stroke: $presszone-comments-primary;
  stroke-width: 3;
  stroke-linecap: round;
  vector-effect: non-scaling-stroke;
}

.presszone-comments-chart-point {
  fill: $presszone-comments-surface;
  stroke: $presszone-comments-primary;
  stroke-width: 2;
}

.presszone-comments-chart-tooltip {
  position: absolute;
  top: 0;
  left: 0;
  background: $presszone-comments-surface;
  border: 1px solid $presszone-comments-border;
  box-shadow: $presszone-comments-shadow-hover;
  border-radius: $presszone-comments-radius;
  padding: 12px;
  pointer-events: none;
  z-index: 10;
  transition: opacity 0.2s ease, transform 0.1s linear;
  min-width: 160px;

  .tooltip-date {
    font-size: 12px;
    color: $presszone-comments-text-muted;
    margin-bottom: 4px;
  }

  .tooltip-value {
    font-size: 16px;
    font-weight: 600;
    color: $presszone-comments-text;
  }

  .tooltip-meta {
    font-size: 12px;
    color: $presszone-comments-text-secondary;
    margin-top: 4px;
    display: flex;
    gap: 8px;
  }
}

// =============================================================================
// Leaderboard (Top Commenters)
// =============================================================================

.presszone-comments-leaderboard {
  display: flex;
  flex-direction: column;
  gap: $presszone-comments-spacing-xs;
}

.presszone-comments-leaderboard__item {
  display: flex;
  align-items: center;
  gap: $presszone-comments-spacing-sm;
  padding: $presszone-comments-spacing-sm;
  border-bottom: 1px solid $presszone-comments-border;
  transition: background $presszone-comments-duration-fast;

  &:hover {
    background: $presszone-comments-surface-2;
    border-radius: $presszone-comments-radius-sm;
  }

  &:last-child {
    border-bottom: none;
  }
}

.presszone-comments-leaderboard__rank {
  font-size: 24px;
  width: 40px;
  text-align: center;
  flex-shrink: 0;
}

.presszone-comments-leaderboard__avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  flex-shrink: 0;
}

.presszone-comments-leaderboard__name {
  flex: 1;
  font-weight: 500;
  color: $presszone-comments-text;
}

.presszone-comments-leaderboard__count {
  color: $presszone-comments-text-muted;
  font-size: 14px;
  flex-shrink: 0;
}

// =============================================================================
// Timeline (Mod Activity)
// =============================================================================

.presszone-comments-timeline {
  display: flex;
  flex-direction: column;
  gap: 10px; // 2px more than spacing-sm (8px) for better readability
}

.presszone-comments-timeline__item {
  display: flex;
  gap: $presszone-comments-spacing-sm;
  padding: $presszone-comments-spacing-sm;
  border-inline-start: 2px solid $presszone-comments-border;
  margin-inline-start: 12px;
  transition: border-color $presszone-comments-duration-fast;

  &:hover {
    border-inline-start-color: $presszone-comments-primary;
    background: $presszone-comments-surface-2;
    border-radius: 0 $presszone-comments-radius-sm $presszone-comments-radius-sm 0;
  }
}

.presszone-comments-timeline__icon {
  font-size: 20px;
  flex-shrink: 0;
  width: 24px;
  text-align: center;
}

.presszone-comments-timeline__content {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: $presszone-comments-spacing-xs;

  strong {
    color: $presszone-comments-text;
  }

  em {
    color: $presszone-comments-primary;
    font-style: normal;
  }
}

.presszone-comments-timeline__time {
  color: $presszone-comments-text-muted;
  font-size: 12px;
}

// =============================================================================
// Reports List
// =============================================================================

.presszone-comments-reports-list {
  display: flex;
  flex-direction: column;
  gap: $presszone-comments-spacing-sm;
}

.presszone-comments-list-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: $presszone-comments-spacing-sm;
  border-bottom: 1px solid $presszone-comments-border;
  gap: $presszone-comments-spacing-md;
  transition: background $presszone-comments-duration-fast;

  &:hover {
    background: $presszone-comments-surface-2;
    border-radius: $presszone-comments-radius-sm;
  }

  &:last-child {
    border-bottom: none;
  }
}

.presszone-comments-list-item__content {
  flex: 1;
  min-width: 0;

  strong {
    color: $presszone-comments-text;
    font-size: 14px;
    display: block;
    margin-bottom: 4px;
  }

  p {
    color: $presszone-comments-text-muted;
    font-size: 13px;
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}

// =============================================================================
// Empty States
// =============================================================================

.presszone-comments-empty {
  text-align: center;
  padding: $presszone-comments-spacing-lg;
  color: $presszone-comments-text-muted;
}

.presszone-comments-empty-state {
  text-align: center;
  padding: 60px 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 20px;

  h3 {
    margin: 0;
    color: $presszone-comments-text;
    font-size: 18px;
  }

  p {
    margin: 0;
    color: $presszone-comments-text-muted;
    font-size: 14px;
  }
}

.presszone-comments-empty-state__icon {
  font-size: 80px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 1;
  margin-bottom: 20px;
  pointer-events: none;
  animation: presszone-comments-float 3s ease-in-out infinite;
}

@keyframes presszone-comments-float {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-10px);
  }
}

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

@include reduced-motion {
  .presszone-comments-chart__bar {
    transition: none;
    transform: none;
  }

  .presszone-comments-leaderboard__item,
  .presszone-comments-timeline__item,
  .presszone-comments-list-item {
    transition: none;
  }

  .presszone-comments-empty-state__icon {
    animation: none !important;
  }
}

// =============================================================================
// Activity Feed Item (New)
// =============================================================================

.presszone-comments-activity-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid $presszone-comments-border;

  &:last-child {
    border-bottom: none;
  }
}

.presszone-comments-activity-item__icon {
  font-size: 20px;
  width: 24px;
  text-align: center;
  flex-shrink: 0;
  line-height: 1;
}

.presszone-comments-activity-item__content {
  flex: 1;
  min-width: 0;
}

.presszone-comments-activity-item__header {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  font-size: 14px;
  line-height: 1.4;
  margin-bottom: 4px;
}

.presszone-comments-activity-item__user {
  font-weight: 600;
  color: $presszone-comments-text;
}

.presszone-comments-activity-item__action {
  color: $presszone-comments-text-secondary;
}

.presszone-comments-activity-item__time {
  color: $presszone-comments-text-muted;
  font-size: 12px;
  margin-inline-start: auto;
}

.presszone-comments-activity-item__reason {
  margin-top: 4px;
  font-size: 13px;
  color: $presszone-comments-text-secondary;
  background: $presszone-comments-surface-2;
  padding: 4px 8px;
  border-radius: 4px;
  display: inline-block;
}

.presszone-comments-activity-item__meta {
  margin-top: 4px;
  font-size: 12px;
  color: $presszone-comments-text-muted;
}
