/*!
 * Themeasy — Star Rating
 *
 * A row of rating icons with a precise per-star fractional fill. Each star is a
 * 1em box holding the identical icon twice: an empty base and a width-clipped
 * fill overlay. Because both layers draw the same glyph at the same size and
 * position, clipping the overlay to a percentage reveals an exact fraction of
 * the star at any rating granularity — pixel-accurate for whole, half, or
 * arbitrary decimal values.
 *
 * Works with font icons and inline SVGs alike (solid icons fill via `fill`,
 * outline icons via `stroke` on `[fill="none"]`). Pure CSS — no JavaScript.
 *
 * Tokens consumed: --tms-border-color, --tms-heading-color, --tms-body-color,
 * --tms-muted-color, --tms-bold-font-weight, --tms-rating-color (public --tms-*
 * design API). Fill follows the suite-wide rating token, with a warm amber as
 * the fallback when no theme defines it.
 *
 * @author Themeasy
 * @link https://themeasy.co
 * @since 1.0.0
 */
.tms-star-rating{--tms-star-rating-fill:var(--tms-rating-color,#f5a623);--tms-star-rating-empty:var(--tms-border-color,#d9dce1);flex-direction:column;align-items:flex-start;gap:.5rem;display:flex}.tms-star-rating__title{font-weight:var(--tms-bold-font-weight,700);color:var(--tms-heading-color,#1a1a1a);margin:0;line-height:1.3}.tms-star-rating__row{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:.6rem;display:flex}.tms-star-rating__stars{align-items:center;gap:.15em;font-size:24px;line-height:1;display:inline-flex}.tms-star-rating__star{width:1em;height:1em;display:inline-block;position:relative}.tms-star-rating__star-bg{width:1em;height:1em;color:var(--tms-star-rating-empty);display:block}.tms-star-rating__star-fill{white-space:nowrap;height:100%;color:var(--tms-star-rating-fill);position:absolute;top:0;left:0;overflow:hidden}.tms-star-rating__icon{justify-content:center;align-items:center;width:1em;height:1em;font-size:1em;line-height:1;display:flex}.tms-star-rating__icon svg,svg.tms-star-rating__icon{fill:currentColor;width:1em;height:1em}.tms-star-rating__icon svg[fill=none],svg.tms-star-rating__icon[fill=none]{fill:none;stroke:currentColor}.tms-star-rating__value{color:var(--tms-heading-color,#1a1a1a);font-weight:var(--tms-bold-font-weight,700);line-height:1}.tms-star-rating__count{color:var(--tms-muted-color,var(--tms-body-color,#6b7280));line-height:1.3}