/* Reviews plugin — structural styles. Colours come from the active theme's tokens. */
.rv-reviews, .rv-account {
    --rv-primary: var(--color-theme-primary, var(--theme-primary, #4f46e5));
    --rv-on-primary: var(--color-theme-on-primary, var(--theme-on-primary, #fff));
    --rv-text: var(--color-theme-text, var(--theme-text, #18181b));
    --rv-muted: var(--color-theme-muted, var(--theme-text-muted, #71717a));
    --rv-border: var(--color-theme-border, var(--theme-border, #e4e4e7));
    --rv-surface: var(--color-theme-surface, var(--theme-surface, #fff));
    --rv-soft: var(--color-theme-primary-soft, rgba(79, 70, 229, .08));
    --rv-star: #f59e0b;
    --rv-title-font: var(--font-title, inherit);
    color: var(--rv-text);
    font-size: .9375rem;
}
.rv-reviews *, .rv-account * { box-sizing: border-box; }
.rv-muted { color: var(--rv-muted); margin: 0; }
.rv-small { font-size: .75rem; }
.rv-summary { display: grid; gap: 1.5rem; align-items: center; padding: 1.5rem; border: 1px solid var(--rv-border); border-radius: 1rem; background: var(--rv-surface); }
@media (min-width: 768px) { .rv-summary { grid-template-columns: auto 1fr auto; } }
.rv-score { display: flex; flex-direction: column; align-items: flex-start; gap: .25rem; }
.rv-average { font-family: var(--rv-title-font); font-size: 3rem; font-weight: 700; line-height: 1; }
.rv-stars { letter-spacing: 2px; white-space: nowrap; }
.rv-star { color: var(--rv-border); }
.rv-star-on { color: var(--rv-star); }
.rv-bars { display: flex; flex-direction: column; gap: .35rem; }
.rv-bar-row { display: grid; grid-template-columns: 2.5rem 1fr 2rem; align-items: center; gap: .75rem; padding: .15rem .25rem; border: 0; border-radius: .375rem; background: none; color: inherit; font-size: .8125rem; cursor: pointer; text-align: left; }
.rv-bar-row:disabled { cursor: default; opacity: .6; }
.rv-bar-row:not(:disabled):hover, .rv-bar-row.rv-active { background: var(--rv-soft); }
.rv-bar { height: .5rem; border-radius: 999px; background: var(--rv-border); overflow: hidden; }
.rv-bar > span { display: block; height: 100%; background: var(--rv-star); }
.rv-button { display: inline-flex; align-items: center; justify-content: center; padding: .75rem 1.5rem; border: 0; border-radius: 999px; background: var(--rv-primary); color: var(--rv-on-primary); font-weight: 600; font-size: .875rem; text-decoration: none; cursor: pointer; }
.rv-button:disabled { opacity: .6; }
.rv-link { border: 0; background: none; color: var(--rv-muted); cursor: pointer; font-size: .875rem; }
.rv-notice { margin: 0; color: var(--rv-primary); font-weight: 600; }
.rv-form { display: flex; flex-direction: column; gap: .75rem; margin-top: 1rem; padding: 1.5rem; border: 1px solid var(--rv-border); border-radius: 1rem; background: var(--rv-surface); }
.rv-field { display: flex; flex-direction: column; gap: .35rem; font-size: .875rem; font-weight: 600; }
.rv-field input[type=text], .rv-field textarea { width: 100%; padding: .65rem .85rem; border: 1px solid var(--rv-border); border-radius: .6rem; background: transparent; color: var(--rv-text); font: inherit; font-weight: 400; }
.rv-field input[type=file] { font-weight: 400; }
.rv-rating-input { display: inline-flex; flex-direction: row-reverse; justify-content: flex-end; gap: .15rem; margin: 0; padding: 0; border: 0; }
.rv-rating-input legend { width: 100%; margin-bottom: .25rem; font-size: .875rem; font-weight: 600; }
.rv-rating-input input { position: absolute; opacity: 0; pointer-events: none; }
.rv-rating-input label { font-size: 1.75rem; line-height: 1; color: var(--rv-border); cursor: pointer; }
.rv-rating-input input:checked ~ label, .rv-rating-input label:hover, .rv-rating-input label:hover ~ label { color: var(--rv-star); }
.rv-rating-input input:focus-visible + label { outline: 2px solid var(--rv-primary); outline-offset: 2px; }
.rv-error { margin: 0; color: #dc2626; font-size: .8125rem; }
.rv-actions { display: flex; justify-content: flex-end; gap: 1rem; }
.rv-filters { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin: 1.25rem 0 0; }
.rv-chip { padding: .3rem .8rem; border: 1px solid var(--rv-border); border-radius: 999px; background: none; color: inherit; font-size: .8125rem; cursor: pointer; }
.rv-chip.rv-active { border-color: var(--rv-primary); color: var(--rv-primary); }
.rv-check { display: inline-flex; align-items: center; gap: .4rem; font-size: .875rem; cursor: pointer; }
.rv-list { display: flex; flex-direction: column; gap: 1rem; margin-top: 1.25rem; }
.rv-item { padding: 1.25rem; border: 1px solid var(--rv-border); border-radius: 1rem; background: var(--rv-surface); }
.rv-item-head { display: flex; align-items: center; gap: .75rem; }
.rv-item-head > div { flex: 1; min-width: 0; }
.rv-avatar { display: flex; flex: none; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; border-radius: 999px; background: var(--rv-soft); color: var(--rv-primary); font-weight: 700; }
.rv-author { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: 0; font-weight: 600; }
.rv-verified { padding: .1rem .5rem; border-radius: 999px; background: rgba(16, 185, 129, .12); color: #059669; font-size: .6875rem; font-weight: 600; }
.rv-title { margin: .85rem 0 0; font-size: 1rem; font-weight: 600; }
.rv-comment { margin: .5rem 0 0; color: var(--rv-muted); line-height: 1.6; white-space: pre-line; }
.rv-photos { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .75rem; }
.rv-photos img { width: 5rem; height: 5rem; border-radius: .6rem; object-fit: cover; border: 1px solid var(--rv-border); }
.rv-reply { margin-top: .85rem; padding: .85rem 1rem; border-left: 3px solid var(--rv-primary); border-radius: .5rem; background: var(--rv-soft); }
.rv-reply p { margin: 0; line-height: 1.55; }
.rv-reply-label { font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--rv-primary); margin-bottom: .25rem !important; }
.rv-item-foot { margin-top: .75rem; }
.rv-item-foot:empty { display: none; }
.rv-helpful { padding: .3rem .75rem; border: 1px solid var(--rv-border); border-radius: 999px; background: none; color: var(--rv-muted); font-size: .8125rem; cursor: pointer; }
.rv-helpful.rv-active, .rv-helpful:hover { border-color: var(--rv-primary); color: var(--rv-primary); }
.rv-empty { padding: 2rem 0; text-align: center; color: var(--rv-muted); }
.rv-pagination { margin-top: 1.25rem; }
.rv-account .rv-item { display: flex; gap: 1rem; }
.rv-account .rv-item > img { width: 4rem; height: 4rem; flex: none; border-radius: .75rem; object-fit: cover; }
.rv-account .rv-item > div { flex: 1; min-width: 0; }
.rv-status { display: inline-block; padding: .1rem .55rem; border-radius: 999px; font-size: .6875rem; font-weight: 600; background: rgba(245, 158, 11, .14); color: #b45309; }
.rv-status.rv-approved { background: rgba(16, 185, 129, .12); color: #059669; }
.rv-danger { border: 0; background: none; color: #dc2626; font-size: .8125rem; cursor: pointer; }
