/**
 * SunMoon Theme - Rating Stars Enhancement
   Big, beautiful, clickable star ratings
 */

/* ================================================
   SVG ICON HANDLING
   ================================================ */
.material-symbol {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.2em;
  height: 1.2em;
  vertical-align: middle;
}

.material-symbol svg {
  width: 100%;
  height: 100%;
  fill: currentColor;
}

/* ================================================
   STAR RATING ENHANCED
   ================================================ */
.star-rating {
  display: inline-flex;
  align-items: center;
  gap: var(--spacing-xs);
  padding: var(--spacing-xs);
}

.star-rating ul {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 0;
  margin: 0;
  list-style: none;
}

.star-rating li {
  display: inline-flex;
  margin: 0;
  padding: 0;
}

/* Star buttons */
.star-rating li a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: var(--border-radius-sm);
  background: transparent;
  transition: all var(--transition-fast);
  cursor: pointer;
  text-decoration: none;
}

.star-rating li a:hover {
  background: var(--primary-light);
  transform: scale(1.15);
}

/* Star icon colors */
.star-rating .material-symbol {
  width: 22px;
  height: 22px;
  font-size: 22px;
  color: var(--text-muted);
  opacity: 0.4;
  transition: all var(--transition-fast);
}

.star-rating li a:hover .material-symbol {
  color: var(--accent);
  opacity: 1;
}

/* Filled stars */
.star-rating .material-symbol-star-fill,
.star-rating li a[href*="rating=5"] .material-symbol,
.star-rating li a[href*="rating=4"] .material-symbol,
.star-rating li a[href*="rating=3"] .material-symbol,
.star-rating li a[href*="rating=2"] .material-symbol,
.star-rating li a[href*="rating=1"] .material-symbol {
  color: var(--accent);
  opacity: 1;
}

/* Remove/hide rating button */
.star-rating li:first-child a {
  opacity: 0.3;
}

.star-rating li:first-child a:hover {
  opacity: 1;
}

/* Global rating display */
.star-rating .global-rating {
  display: inline-flex;
  align-items: center;
  margin-left: var(--spacing-sm);
  padding: var(--spacing-xs) var(--spacing-sm);
  background: var(--bg-tertiary);
  border-radius: var(--border-radius-sm);
  font-size: var(--font-size-xs);
  color: var(--text-muted);
}

.star-rating .global-rating::before {
  content: '★';
  margin-right: var(--spacing-xs);
  color: var(--accent);
}

/* In-table rating display */
table.tabledata .cel_ratings {
  min-width: 180px;
}

table.tabledata .rating {
  display: flex;
  align-items: center;
  gap: var(--spacing-xs);
}

table.tabledata .star-rating li a {
  width: 28px;
  height: 28px;
}

table.tabledata .star-rating .material-symbol {
  width: 18px;
  height: 18px;
}

/* User flag (favorite) */
.cel_userflag {
  display: inline-flex;
  margin-left: var(--spacing-xs);
}

.cel_userflag a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: var(--border-radius-sm);
  background: transparent;
  transition: all var(--transition-fast);
}

.cel_userflag a:hover {
  background: var(--primary-light);
}

.cel_userflag .material-symbol {
  width: 20px;
  height: 20px;
  color: var(--text-muted);
  opacity: 0.5;
}

.cel_userflag a:hover .material-symbol {
  color: var(--accent);
  opacity: 1;
}

.cel_userflag a.flagged .material-symbol,
.cel_userflag .material-symbol-heart-fill,
.cel_userflag .material-symbol-heart {
  color: #ef4444;
  opacity: 1;
}

/* ================================================
   DYNAMIC RATING - Ajax loaded ratings
   ================================================ */
.dynamic-star-rating {
  display: inline-flex;
}

.dynamic-star-rating li {
  transition: transform var(--transition-fast);
}

.dynamic-star-rating li:hover {
  transform: scale(1.2);
}

/* Rating in info box */
.info-box .star-rating {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-sm);
  margin: var(--spacing-md) 0;
}

.info-box .star-rating ul {
  order: 1;
}

.info-box .star-rating .global-rating {
  order: 2;
}

.info-box .cel_userflag {
  order: 3;
}

/* ================================================
   RATING AJAX FEEDBACK
   ================================================ */
.rating-loading {
  opacity: 0.5;
  pointer-events: none;
}

.rating-saved {
  animation: rating-saved 0.5s ease;
}

@keyframes rating-saved {
  0% { transform: scale(1); }
  50% { transform: scale(1.2); }
  100% { transform: scale(1); }
}

/* ================================================
   RESPONSIVE STARS
   ================================================ */
@media (max-width: 768px) {
  .star-rating li a {
    width: 36px;
    height: 36px;
  }
  
  .star-rating .material-symbol {
    width: 24px;
    height: 24px;
  }
  
  table.tabledata .star-rating li a {
    width: 32px;
    height: 32px;
  }
  
  table.tabledata .star-rating .material-symbol {
    width: 20px;
    height: 20px;
  }
}

@media (max-width: 480px) {
  .star-rating li a {
    width: 32px;
    height: 32px;
  }
  
  .star-rating .material-symbol {
    width: 20px;
    height: 20px;
  }
  
  table.tabledata .cel_ratings {
    min-width: 140px;
  }
}