/* ============ Breaking news ticker ============ */
.ticker-wrap { position: relative; }
.ticker-track {
  animation: ticker 25s linear infinite;
}
.ticker-wrap:hover .ticker-track { animation-play-state: paused; }
.ticker-track.ticker-paused { animation-play-state: paused; }
@keyframes ticker {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* ============ Line clamp ============ */
.line-clamp-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.line-clamp-3 {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ============ Card hover ============ */
.post-card img { transition: transform .4s ease; }
.post-card:hover img { transform: scale(1.06); }

/* ============ Review score badge ============ */
.score-badge {
  width: 46px; height: 46px; border-radius: 9999px;
  display: flex; align-items: center; justify-content: center;
  font-weight: 800; font-size: 12px; color: #fff;
  background: conic-gradient(#22c55e var(--score, 80%), rgba(255,255,255,.15) 0);
  box-shadow: 0 0 0 3px #14171c;
}

/* ============ Rich content typography (dark theme) ============ */
.post-content { line-height: 1.85; }
.post-content p { margin-bottom: 1.1rem; }
.post-content h2, .post-content h3 { font-weight: 700; margin: 1.5rem 0 .75rem; color: #f3f4f6; }
.post-content img { border-radius: .5rem; margin: 1rem 0; }
.post-content a { color: #ff4438; text-decoration: underline; }
.post-content blockquote {
  border-left: 3px solid #e1251b;
  padding: .25rem 0 .25rem 1rem;
  color: #9ca3af;
  font-style: italic;
  margin: 1.25rem 0;
}
.post-content strong { color: #f3f4f6; }

/* Scrollbar for admin tables on small screens */
.admin-scroll::-webkit-scrollbar { height: 8px; }
.admin-scroll::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 4px; }
