/* Окно «Написать отзыв» на любой странице (Pages/Shared/_ReviewModal.cshtml).
   Внешне — как форма в окне на /reviews (pages/reviews.css, .rv-modal), свои имена классов,
   чтобы не зависеть от стилей страницы отзывов. */

.rvm {
  position: fixed;
  inset: 0;
  z-index: 3000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 16px;
}
.rvm.is-open { display: flex; }
.rvm__order-items { margin: 12px 0 0; padding-left: 22px; }
.rvm__order-items li { margin: 6px 0; line-height: 1.5; }

.rvm__backdrop { position: absolute; inset: 0; background: rgba(15, 20, 18, .55); }

.rvm__dialog {
  position: relative;
  width: 100%;
  max-width: 640px;
  max-height: calc(100vh - 32px);
  overflow-y: auto;
  padding: 28px;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 30px 80px rgba(0, 0, 0, .25);
}
.rvm__dialog h2 {
  margin: 0 0 8px;
  padding-right: 40px;
  font-family: 'Lora', Georgia, serif;
  font-size: 26px;
  font-weight: 600;
  color: var(--ink);
}

.rvm__close {
  position: absolute;
  right: 14px;
  top: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 50%;
  background: var(--line-2, #ECEAE4);
  color: var(--ink-2);
  cursor: pointer;
}
.rvm__close svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }

.rvm__note { margin: 0 0 18px; font-size: 14px; line-height: 1.55; color: var(--ink-3); }

.rvm__form { display: grid; gap: 16px; }
.rvm__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; gap: 14px; }
.rvm__field { display: grid; gap: 6px; }
.rvm__field > span { font-size: 14px; font-weight: 700; color: var(--ink); }
.rvm__field :is(input[type="text"], input[type="tel"], input:not([type]), textarea) {
  width: 100%;
  min-height: 46px;
  padding: 11px 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  font-family: inherit;
  font-size: 15px;
  color: var(--ink);
  box-sizing: border-box;
}
.rvm__field textarea { min-height: 130px; max-height: 340px; resize: vertical; line-height: 1.55; }
.rvm__field :is(input, textarea):focus {
  outline: none;
  border-color: rgba(31, 107, 54, .45);
  box-shadow: 0 0 0 3px rgba(31, 107, 54, .12);
}

.rvm__rating { display: flex; flex-direction: row-reverse; justify-content: flex-end; flex-wrap: wrap; gap: 8px; }
.rvm__star {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  cursor: pointer;
  font-size: 14px;
  font-weight: 700;
  color: var(--ink);
}
.rvm__star input { position: absolute; opacity: 0; pointer-events: none; }
.rvm__star svg { width: 15px; height: 15px; fill: #d8dcda; }
.rvm__star:has(input:checked) { border-color: var(--green-700); background: rgba(31, 107, 54, .08); }
.rvm__star:has(input:checked) svg { fill: #f5a623; }

.rvm__trap { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }

.rvm__err {
  margin: 0;
  padding: 12px 16px;
  border-radius: 12px;
  background: rgba(179, 38, 30, .08);
  color: #b3261e;
  font-size: 14px;
  font-weight: 600;
}

.rvm__submit {
  justify-self: start;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 48px;
  padding: 0 24px;
  border: 0;
  border-radius: 10px;
  background: var(--green-700);
  color: #fff;
  font-family: inherit;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  transition: background-color .15s;
}
.rvm__submit:hover { background: var(--green-600); }
.rvm__submit[disabled] { opacity: .7; cursor: default; }
.rvm__submit :is(i, svg) { width: 17px; height: 17px; flex: none; }

.rvm__done { display: grid; justify-items: start; gap: 10px; }
.rvm__done p { margin: 0 0 8px; font-size: 15px; line-height: 1.55; color: var(--ink-3); }
.rvm__done-ico {
  display: grid; place-items: center;
  width: 52px; height: 52px;
  border-radius: 50%;
  background: rgba(31, 107, 54, .1);
  color: var(--green-700);
}
.rvm__done-ico svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }

/* Пояснение под названием поля: зачем нам телефон или почта (владелец, 2026-10-02). */
.rvm__hint { margin-top: -2px; font-size: 12.5px; line-height: 1.4; font-weight: 400; color: var(--muted); }
