/* Rating Widget (UI-only / localStorage)
   - Uses Reader CSS variables when available
   - Safe to include without modifying reader.css
*/

.ssbRating {
  margin-top: 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.ssbRatingRow {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

/* 「人気度（平均/件数）」と「未評価（自分の状態）」を同一行に */
.ssbRatingRowMeta {
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
}

.ssbRatingRowMeta .ssbRatingAgg {
  flex: 1 1 auto;
  min-width: 12em;
}

.ssbRatingRowMeta .ssbRatingStat {
  flex: 0 0 auto;
  margin-left: auto;
  text-align: right;
  white-space: nowrap;
}

/* 幅が狭い場合は自然に2行へ（読みやすさ優先） */
@media (max-width: 420px) {
  .ssbRatingRowMeta .ssbRatingAgg {
    min-width: 100%;
  }
  .ssbRatingRowMeta .ssbRatingStat {
    margin-left: 0;
  }
}


.ssbRatingLabel {
  font-size: calc(13px * var(--fontScale, 1));
  color: var(--muted2, rgba(255, 255, 255, 0.72));
}

.ssbStars {
  display: flex;
  gap: 6px;
}

.ssbStarBtn {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  padding: 0;
  border-radius: 999px;
  border: 1px solid var(--line2, rgba(255, 255, 255, 0.16));
  background: rgba(244, 241, 231, 0.06);
  color: var(--muted2, rgba(255, 255, 255, 0.72));
  cursor: pointer;
  line-height: 1;
  font-size: calc(18px * var(--fontScale, 1));
  transition: transform 0.08s ease, background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.ssbStarBtn:hover {
  transform: translateY(-1px);
  border-color: rgba(201, 162, 78, 0.35);
}

.ssbStarBtn:active {
  transform: translateY(0px) scale(0.98);
}

.ssbStarBtn:focus-visible {
  outline: none;
  box-shadow: var(--focus, 0 0 0 3px rgba(201, 162, 78, 0.25));
}

.ssbStarBtn.is-on {
  color: var(--gold, rgb(201, 162, 78));
  border-color: rgba(201, 162, 78, 0.40);
  background: rgba(201, 162, 78, 0.12);
}

.ssbRatingStat {
  font-size: calc(12px * var(--fontScale, 1));
  color: var(--muted2, rgba(255, 255, 255, 0.72));
}

.ssbRatingHint {
  font-size: calc(11px * var(--fontScale, 1));
  color: var(--muted, rgba(255, 255, 255, 0.55));
}

.ssbRatingClear {
  height: 34px;
  display: inline-flex;
  align-items: center;
  gap: 6px;

  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid var(--line2, rgba(255, 255, 255, 0.16));
  background: rgba(244, 241, 231, 0.06);
  color: var(--muted2, rgba(255, 255, 255, 0.72));
  cursor: pointer;

  line-height: 1;
  font-size: calc(12px * var(--fontScale, 1));
  font-weight: 650;

  transition: transform 0.08s ease, background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.ssbRatingClear:hover {
  transform: translateY(-1px);
  border-color: rgba(106, 166, 168, 0.35);
}

.ssbRatingClear:active {
  transform: translateY(0px) scale(0.98);
}

.ssbRatingClear:focus-visible {
  outline: none;
  box-shadow: var(--focus, 0 0 0 3px rgba(201, 162, 78, 0.25));
}

.ssbRatingClear:disabled {
  opacity: 0.45;
  cursor: not-allowed;
  transform: none;
}
