/* Отзывы гостей на витрине кафе и отеля (блок R1): блок «Отзывы», свой отзыв
   в «Моих заказах» и «Моих бронях», форма оценки. Цвета - только общие
   токены showcase.html (меняются темой), своих значений тут нет. */

.rv-stars { display: inline-flex; gap: 0.1rem; line-height: 1; white-space: nowrap; }
.rv-star { color: rgb(var(--color-text-muted-rgb) / 0.35); font-size: 1rem; }
.rv-star.is-on { color: #f59e0b; }

/* ------------------------------------- строка рейтинга в шапке (R4) -- */
.rv-head-rating {
  display: inline-flex; align-items: baseline; gap: 0.3rem; margin-top: 0.35rem;
  font-size: 0.85rem; color: rgb(var(--color-text-muted-rgb)); text-decoration: none;
}
.rv-head-rating-star { color: #f59e0b; line-height: 1; }
.rv-head-rating-value { font-weight: 700; color: rgb(var(--color-text-rgb)); }
.rv-head-rating-count { text-decoration: underline; text-underline-offset: 3px; }

/* ------------------------------------------------ блок на витрине -- */
.rv-block { margin: 1.5rem 0 2rem; }
.rv-block-title { font-size: 1.125rem; font-weight: 600; margin: 0 0 0.75rem; color: rgb(var(--color-text-rgb)); }
.rv-summary { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem; margin-bottom: 0.9rem; }
.rv-avg { font-size: 1.6rem; font-weight: 800; color: rgb(var(--color-text-rgb)); }
.rv-summary .rv-star { font-size: 1.2rem; }
.rv-count { font-size: 0.85rem; color: rgb(var(--color-text-muted-rgb)); }
.rv-item {
  background: rgb(var(--color-surface-2-rgb)); border-radius: 0.9rem; padding: 0.8rem 0.9rem;
  margin-bottom: 0.7rem; font-size: 0.88rem; color: rgb(var(--color-text-rgb));
}
.rv-item-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.4rem; margin-bottom: 0.3rem; }
.rv-author { font-weight: 700; overflow-wrap: anywhere; }
.rv-date { font-size: 0.75rem; font-weight: 400; color: rgb(var(--color-text-muted-rgb)); }
.rv-text { margin: 0.4rem 0 0; white-space: pre-line; overflow-wrap: anywhere; }
/* Отзыв о туре (блок T10): о какой экскурсии или туре он. */
.rv-offer { font-size: 0.78rem; color: rgb(var(--color-text-muted-rgb)); margin-bottom: 0.3rem; overflow-wrap: anywhere; }
/* Фото в отзыве (блок R2): миниатюры в ленте и в своём отзыве. */
.rv-photos { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.55rem; }
.rv-photo {
  width: 4.5rem; height: 4.5rem; padding: 0; border: none; border-radius: 0.6rem; overflow: hidden;
  cursor: zoom-in; background: rgb(var(--color-text-muted-rgb) / 0.15); flex: 0 0 auto;
}
.rv-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.rv-photo:focus-visible { outline: 2px solid var(--accent-color, #FF7A00); outline-offset: 2px; }
.rv-reply {
  margin-top: 0.6rem; padding: 0.55rem 0.7rem; border-radius: 0.7rem;
  background: rgb(var(--color-surface-rgb)); border-left: 3px solid var(--accent-color, #FF7A00);
}
.rv-reply-head { font-size: 0.78rem; font-weight: 700; color: rgb(var(--color-text-muted-rgb)); }
.rv-more-btn, .rv-rate-btn {
  width: 100%; padding: 0.65rem 1rem; margin-top: 0.6rem; border-radius: 0.9rem;
  border: 1.5px solid var(--accent-color, #FF7A00); background: rgb(var(--color-surface-rgb));
  color: rgb(var(--accent-text-rgb, 194 82 0)); font-weight: 700; font-size: 0.85rem; cursor: pointer;
}
.rv-more-btn:disabled, .rv-rate-btn:disabled { opacity: 0.6; cursor: default; }

/* ------------------------------- свой отзыв в карточке заказа или брони -- */
.rv-own {
  margin-top: 0.7rem; padding: 0.6rem 0.7rem; border-radius: 0.7rem; text-align: left;
  background: rgb(var(--color-surface-rgb)); color: rgb(var(--color-text-rgb)); font-size: 0.85rem;
}
.rv-own-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0.4rem; font-weight: 700; }
.rv-own-note { margin: 0.4rem 0 0; font-size: 0.78rem; color: rgb(var(--color-danger-rgb)); }
/* Монеты за отзыв с фото (блок R6): строка состояния в своём отзыве и подсказка в форме. */
.rv-coins { margin: 0.4rem 0 0; font-size: 0.78rem; color: rgb(var(--color-text-muted-rgb)); }
.rv-coins.is-awarded { font-weight: 600; color: rgb(var(--color-text-rgb)); }
.rv-coins-hint { margin: 0; font-size: 0.8rem; color: rgb(var(--color-text-muted-rgb)); }
.rv-own-actions { display: flex; flex-wrap: wrap; gap: 0.9rem; margin-top: 0.5rem; }
.rv-link-btn {
  border: none; background: none; padding: 0.2rem 0; font-size: 0.8rem; cursor: pointer;
  color: rgb(var(--color-text-muted-rgb)); text-decoration: underline; text-underline-offset: 3px;
}

/* ------------------------------------------------------ форма оценки -- */
.rv-backdrop { position: fixed; inset: 0; z-index: 1100; background: rgb(var(--color-ink-fixed-rgb, 15 23 42) / 0.6); }
.rv-dialog {
  position: fixed; left: 1rem; right: 1rem; top: 50%; transform: translateY(-50%); z-index: 1101;
  max-width: 28rem; margin: 0 auto; max-height: calc(100vh - 2rem); overflow-y: auto;
  background: rgb(var(--color-surface-rgb)); color: rgb(var(--color-text-rgb));
  border-radius: 1rem; padding: 1.1rem; box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25);
  display: flex; flex-direction: column; gap: 0.7rem; text-align: left;
}
.rv-dialog-title { font-size: 1.05rem; font-weight: 800; margin: 0; }
.rv-dialog-hint { font-size: 0.8rem; margin: 0; color: rgb(var(--color-text-muted-rgb)); }
.rv-pick { display: flex; justify-content: center; gap: 0.25rem; }
.rv-pick-btn {
  border: none; background: none; padding: 0.15rem 0.3rem; font-size: 2.1rem; line-height: 1; cursor: pointer;
  color: rgb(var(--color-text-muted-rgb) / 0.35);
}
.rv-pick-btn.is-on { color: #f59e0b; }
.rv-pick-btn:focus-visible { outline: 2px solid var(--accent-color, #FF7A00); outline-offset: 2px; border-radius: 0.4rem; }
.rv-textarea {
  width: 100%; box-sizing: border-box; min-height: 6rem; padding: 0.65rem 0.75rem; border-radius: 0.8rem;
  border: 1px solid rgb(var(--color-text-muted-rgb) / 0.4); background: rgb(var(--color-surface-2-rgb));
  color: rgb(var(--color-text-rgb)); font: inherit; font-size: 0.9rem; resize: vertical;
}
.rv-counter { font-size: 0.72rem; text-align: right; color: rgb(var(--color-text-muted-rgb)); margin-top: -0.4rem; }
.rv-error { margin: 0; font-size: 0.82rem; color: rgb(var(--color-danger-rgb)); }
.rv-submit-btn {
  width: 100%; padding: 0.8rem 1rem; border-radius: 0.9rem; border: none; cursor: pointer;
  background: var(--accent-color, #FF7A00); color: rgb(var(--accent-ink-rgb, 30 41 59)); font-weight: 700; font-size: 0.9rem;
}
.rv-submit-btn:disabled { opacity: 0.6; cursor: default; }
.rv-cancel-btn {
  width: 100%; padding: 0.6rem 1rem; border: none; background: none; cursor: pointer;
  color: rgb(var(--color-text-muted-rgb)); font-size: 0.86rem;
}
.rv-thanks { font-size: 0.95rem; font-weight: 700; margin: 0; }
.rv-dialog .rv-own { background: rgb(var(--color-surface-2-rgb)); margin-top: 0; }

/* ------------------------------------------- фото в форме (блок R2) -- */
.rv-form-photos { display: flex; flex-wrap: wrap; gap: 0.45rem; padding-top: 0.35rem; }
.rv-form-photos[hidden] { display: none; }
.rv-form-photo { position: relative; width: 4.5rem; height: 4.5rem; flex: 0 0 auto; }
.rv-form-photo img {
  display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 0.6rem;
  background: rgb(var(--color-text-muted-rgb) / 0.15);
}
.rv-form-photo-remove {
  position: absolute; top: -0.35rem; right: -0.35rem; width: 1.5rem; height: 1.5rem; padding: 0;
  border: none; border-radius: 50%; cursor: pointer; font-size: 1rem; line-height: 1.5rem; text-align: center;
  background: rgb(var(--color-ink-fixed-rgb, 15 23 42)); color: #fff;
}
.rv-photo-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem; }
.rv-photo-add {
  padding: 0.5rem 0.9rem; border-radius: 0.8rem; cursor: pointer; font-weight: 700; font-size: 0.82rem;
  border: 1.5px solid var(--accent-color, #FF7A00); background: rgb(var(--color-surface-rgb));
  color: rgb(var(--accent-text-rgb, 194 82 0));
}
.rv-photo-add:disabled { opacity: 0.5; cursor: default; }
.rv-photo-count { font-size: 0.78rem; color: rgb(var(--color-text-muted-rgb)); }
.rv-progress { margin: 0; font-size: 0.82rem; color: rgb(var(--color-text-muted-rgb)); }

/* ------------------------------------ просмотр фото крупно (блок R2) -- */
.rv-viewer {
  position: fixed; inset: 0; z-index: 1200; display: flex; align-items: center; justify-content: center;
  padding: 3rem 0.75rem; box-sizing: border-box; background: rgba(0, 0, 0, 0.88);
}
.rv-viewer-img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 0.4rem; }
.rv-viewer-btn {
  position: absolute; width: 2.6rem; height: 2.6rem; padding: 0; border: none; border-radius: 50%; cursor: pointer;
  font-size: 1.5rem; line-height: 2.6rem; text-align: center; background: rgba(255, 255, 255, 0.16); color: #fff;
}
.rv-viewer-btn:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.rv-viewer-close { top: 0.6rem; right: 0.6rem; }
.rv-viewer-prev { left: 0.6rem; top: 50%; transform: translateY(-50%); }
.rv-viewer-next { right: 0.6rem; top: 50%; transform: translateY(-50%); }
.rv-viewer-count { position: absolute; bottom: 0.9rem; left: 0; right: 0; text-align: center; color: #fff; font-size: 0.85rem; }
