.jm-star-rating {
--jm-rating: 0;
position: relative;
display: inline-block;
width: fit-content;
max-width: 100%;
font-size: var(--fs-md);
line-height: 1;
letter-spacing: 0.08em;
}
.jm-star-rating__track {
color: var(--color-border-strong);
}
.jm-star-rating__fill {
position: absolute;
top: 0;
left: 0;
overflow: hidden;
white-space: nowrap;
color: var(--color-primary-hover);
width: calc(var(--jm-rating) / 5 * 100%);
}
.jm-review-card__inner {
display: flex;
flex-direction: column;
gap: var(--space-3);
padding: var(--space-5);
background: var(--color-surface);
border: 1px solid var(--color-border);
border-radius: var(--radius-md);
}
.jm-review-card__header {
padding-bottom: var(--space-3);
border-bottom: 1px solid var(--color-border);
}
.jm-review-card__author {
margin: 0;
font-size: var(--fs-base);
font-weight: var(--font-weight-bold);
line-height: var(--lh-snug);
color: var(--color-text);
}
.jm-review-card__verified {
display: flex;
align-items: center;
gap: var(--space-1);
margin: var(--space-1) 0 0;
font-size: var(--fs-sm);
font-weight: var(--font-weight-medium);
line-height: var(--lh-snug);
color: var(--color-success);
}
.jm-review-card__verified .jm-icon {
flex-shrink: 0;
width: 1.125rem;
height: 1.125rem;
}
.jm-review-card__rating {
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--space-3);
}
.jm-review-card__rating .jm-star-rating {
flex: 1 1 auto;
font-size: 1.125rem;
}
.jm-review-card__score {
flex: 0 0 auto;
font-size: var(--fs-sm);
font-weight: var(--font-weight-medium);
color: var(--color-text-muted);
white-space: nowrap;
}
.jm-review-card__content {
margin: 0;
font-size: var(--fs-base);
line-height: var(--lh-base);
color: var(--color-text);
}
.jm-review-card__content > :first-child {
margin-top: 0;
}
.jm-review-card__content > :last-child {
margin-bottom: 0;
}
.jm-review-card__date {
margin: 0;
font-size: var(--fs-xs);
line-height: var(--lh-snug);
color: var(--color-text-muted);
}