/* Отзывы покупателей о моделях (29.09.2026): блок на карточке товара, форма /review/write,
   раздел кабинета «Мои отзывы». Подключается бандлом AppAssetReviews ПОСЛЕ chaster-2026.css,
   токены (--ink, --accent, --s*, --t-*) — оттуда. Префикс .rv-, на карточке — .mr-. */

.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ============================================================ карточка товара */
.mr{margin-top:var(--s16);scroll-margin-top:90px}
.mr-layout{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:var(--s3);align-items:start}
.mr-summary{border:1px solid var(--line);border-radius:var(--r2);background:var(--bg-alt);padding:var(--s6);display:flex;flex-direction:column;gap:var(--s3)}
.mr-score{font-size:var(--t-3xl);font-weight:700;line-height:1;letter-spacing:-.02em}
.mr-score small{font-size:var(--t-base);font-weight:500;color:var(--ink-3)}
.mr-stars{display:inline-flex;gap:1px}
.mr-stars svg{width:15px;height:15px;fill:#FFCC00}
.mr-stars .off{fill:var(--line-strong)}
.mr-count{font-family:var(--mono);font-size:var(--t-xs);letter-spacing:.08em;color:var(--ink-2);text-transform:uppercase}
.mr-dist{display:grid;gap:4px;margin:var(--s1) 0}
.mr-dist-row{display:grid;grid-template-columns:14px minmax(0,1fr) 24px;gap:var(--s2);align-items:center;font-family:var(--mono);font-size:var(--t-xs);color:var(--ink-2)}
.mr-bar{height:6px;background:var(--line);border-radius:3px;overflow:hidden}
.mr-bar i{display:block;height:100%;background:#FFCC00}
.mr-verified{font-size:var(--t-s);color:var(--ink-2);line-height:1.45}
.mr-verified b{color:var(--ink);font-weight:600}
.mr-summary .btn{align-self:flex-start}
.mr-empty{border:1px dashed var(--line-strong);border-radius:var(--r2);padding:var(--s6);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s4)}
.mr-empty p{font-size:var(--t-s);color:var(--ink-2);max-width:60ch}
.mr-empty b{color:var(--ink)}

.mr-list{display:grid;gap:var(--s3)}
.mr-card{border:1px solid var(--line);border-radius:var(--r2);background:var(--bg);padding:var(--s5) var(--s6);display:flex;flex-direction:column;gap:var(--s3)}
.mr-card[hidden]{display:none}
.mr-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s3)}
.mr-author{font-weight:600;font-size:var(--t-s)}
.mr-meta{font-family:var(--mono);font-size:var(--t-xs);color:var(--ink-3);letter-spacing:.04em}
.mr-badge{display:inline-flex;align-items:center;gap:4px;font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:#1E7F4F;text-transform:uppercase}
.mr-badge svg{width:13px;height:13px}
.mr-text{font-size:var(--t-base);color:var(--ink);line-height:1.6;white-space:pre-line;overflow-wrap:anywhere}
.mr-photos{display:flex;flex-wrap:wrap;gap:var(--s2)}
.mr-photo{display:block;width:96px;height:96px;padding:0;border:1px solid var(--line);border-radius:var(--r2);overflow:hidden;background:var(--bg-alt);cursor:zoom-in}
.mr-photo img{display:block;width:100%;height:100%;object-fit:cover}
.mr-photo:hover{border-color:var(--accent)}
.mr-more{justify-self:start}

/* строка под названием товара: оценка модели по отзывам */
.pdp-mrating{display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px;align-self:flex-start;font-size:var(--t-s);color:var(--ink-2);margin-top:6px}
.pdp-mrating b{font-size:var(--t-base);font-weight:700;color:var(--ink)}
.pdp-mrating .mr-stars svg{width:14px;height:14px}
.pdp-mrating span.t{border-bottom:1px dashed var(--line-strong)}
.pdp-mrating:hover span.t{color:var(--accent);border-color:var(--accent)}
/* 29.09.2026: наш знак из фавикона кружком — в пару к «Я» у рейтинга магазина строкой выше */
.pdp-mrating::before{content:"";flex-shrink:0;width:16px;height:16px;border-radius:50%;background:url(/images/logo-cc.jpg) center/cover no-repeat}
/* 29.09.2026, решение владельца: если у модели есть отзывы покупателей, строка рейтинга магазина в Яндексе
   скрыта и остаётся одна «оценка модели». Сначала (через claude-14) только на телефоне — две строки подряд
   не помещались; в тот же день владелец: «если есть отзыв о модели, отзывы с Яндекса не показывай» — на всех
   ширинах. Без :has (старые браузеры) видны обе, как раньше. Отступ сверху снимаем, чтобы строка встала
   на место Яндекса. */
@supports selector(:has(a)){
  .pdp-rating:has(+ .pdp-mrating){display:none}
  .pdp-rating + .pdp-mrating{margin-top:0}
}

/* просмотр фото отзыва */
.mr-lb{position:fixed;inset:0;z-index:400;background:rgba(10,12,16,.92);display:flex;align-items:center;justify-content:center;padding:56px 64px}
.mr-lb[hidden]{display:none}
.mr-lb img{max-width:100%;max-height:100%;object-fit:contain;border-radius:var(--r1);background:#fff}
.mr-lb button{position:absolute;border:0;background:rgba(255,255,255,.12);color:#fff;width:48px;height:48px;border-radius:50%;font-size:26px;line-height:48px;text-align:center;cursor:pointer}
.mr-lb button:hover{background:rgba(255,255,255,.24)}
.mr-lb-x{top:12px;right:12px}
.mr-lb-prev{left:10px;top:50%;margin-top:-24px}
.mr-lb-next{right:10px;top:50%;margin-top:-24px}
.mr-lb-n{position:absolute;bottom:14px;left:0;right:0;text-align:center;font-family:var(--mono);font-size:var(--t-xs);color:rgba(255,255,255,.7)}
html.mr-lb-open{overflow:hidden}

@media (max-width:900px){
  .mr-layout{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:640px){
  .mr-card{padding:var(--s4)}
  .mr-photo{width:80px;height:80px}
  .mr-lb{padding:48px 8px}
  .mr-lb-prev,.mr-lb-next{top:auto;bottom:8px;margin-top:0}
}

/* ============================================================ галерея карточки: фото покупателей
   Одна плитка «Фото покупателей · N» (как «Фото от гостей» на TripAdvisor, пожелание владельца 29.09.2026),
   остальные кадры покупателей — скрытые плитки, их листают стрелки галереи и увеличенный вид.
   🔴 Квадрат плитки — через aspect-ratio у картинки и height:auto, НЕ height:100%: иначе WebKit
   растягивает ячейку (память: chasterclub-plitki-safari). */
.pdp-thumb[hidden],.cc-lb-thumb[hidden]{display:none}
.pdp-thumb-buyer{position:relative;overflow:hidden;padding:0;background:#fff}
.pdp-thumb-buyer img{width:100%;aspect-ratio:1/1;height:auto;object-fit:cover;mix-blend-mode:normal}
.pdp-thumb-buyers{position:absolute;left:0;right:0;bottom:0;z-index:2;display:flex;align-items:flex-end;justify-content:space-between;gap:4px;padding:16px 7px 6px;background:linear-gradient(transparent,rgba(16,20,24,.86));color:#fff;font-size:11px;line-height:1.15;text-align:left;pointer-events:none}
.pdp-thumb-buyers b{font-weight:600}
.pdp-thumb-buyers .num{font-family:var(--mono);font-weight:700;white-space:nowrap}
.cc-lb-thumb-buyer{position:relative;overflow:hidden}
.pdp-stage-buyer{position:absolute;left:var(--s4);bottom:var(--s4);z-index:3;max-width:calc(100% - 96px);padding:6px 10px;border-radius:var(--r2);background:rgba(16,20,24,.72);color:#fff;font-size:var(--t-xs);line-height:1.3;pointer-events:none}
.pdp-stage-buyer[hidden]{display:none}
/* то же при увеличении: .cc-lb-main уже position:relative, счётчик N/M — внизу по центру */
.cc-lb-buyer{position:absolute;left:24px;bottom:20px;z-index:3;max-width:calc(50% - 70px);padding:6px 10px;border-radius:var(--r2);background:rgba(16,20,24,.72);color:#fff;font-size:var(--t-xs);line-height:1.3;pointer-events:none}
.cc-lb-buyer[hidden],.cc-lightbox.cc-lb-video-on .cc-lb-buyer{display:none}
@media (max-width:1024px){
  /* на телефоне и планшете внизу счётчик и ряд кнопок — подпись переезжает наверх */
  .cc-lb-buyer{top:12px;bottom:auto;left:12px;max-width:calc(100% - 24px)}
}
@media (max-width:640px){
  /* узкая плитка (~65 px): число над подписью, иначе «покупателей» выталкивает его за край */
  .pdp-thumb-buyers{flex-direction:column-reverse;align-items:flex-start;font-size:8.5px;line-height:1.1;padding:14px 4px 4px;gap:1px}
  .pdp-thumb-buyers .num{font-size:12px}
  .pdp-stage-buyer{left:8px;bottom:8px;max-width:calc(100% - 16px)}
}

/* ============================================================ форма /review/write */
.rv-page{padding:var(--s8) 0 var(--s16)}
.rv-wrap{max-width:820px}
.rv-flash,.rv-state{margin-bottom:var(--s5)}
.rv-lead{font-size:var(--t-m);color:var(--ink-2);margin-bottom:var(--s6);max-width:64ch}
.rv-lead a{color:var(--accent);font-weight:600}
.rv-h2{font-size:var(--t-l);font-weight:700;margin:var(--s8) 0 var(--s4)}

.rv-item{display:flex;align-items:center;gap:var(--s4);border:1px solid var(--line);border-radius:var(--r2);padding:var(--s4);margin-bottom:var(--s5)}
.rv-item-img{flex:0 0 72px;width:72px;height:72px;display:flex;align-items:center;justify-content:center;background:#fff}
.rv-item-img img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.rv-item-name{display:block;font-weight:600;font-size:var(--t-m);line-height:1.3}
.rv-item-name:hover{color:var(--accent)}
.rv-item-meta{display:block;font-family:var(--mono);font-size:var(--t-xs);color:var(--ink-3);margin-top:4px}
.rv-verified{color:#1E7F4F}

.rv-form{display:flex;flex-direction:column;gap:var(--s6)}
.rv-field{border:0;margin:0;padding:0;min-width:0}
.rv-label{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);margin-bottom:var(--s2);padding:0}
.rv-label b{color:var(--ink);font-weight:500}
.rv-opt{text-transform:none;letter-spacing:0;color:var(--ink-3)}
.rv-hint{display:block;font-size:var(--t-xs);color:var(--ink-3);margin-top:6px}
.rv-err{display:block;font-family:var(--mono);font-size:var(--t-xs);color:var(--red);margin-top:6px}
.rv-err[hidden]{display:none}
.rv-form textarea,.rv-form input[type=text],.rv-link input[type=email]{width:100%;border:1px solid var(--line-strong);border-radius:var(--r2);background:#fff;padding:var(--s3) var(--s4);font:inherit;font-size:var(--t-base);color:var(--ink)}
.rv-form input[type=text],.rv-link input[type=email]{height:48px;padding-top:0;padding-bottom:0}
.rv-form textarea{resize:vertical;min-height:160px;line-height:1.55}
.rv-form textarea:focus,.rv-form input[type=text]:focus,.rv-link input[type=email]:focus{outline:none;border-color:var(--accent)}
.rv-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s5)}

/* звёзды: радиокнопки 5…1 в разметке, визуально 1…5 (row-reverse) — подсветка «до этой» без JS */
.rv-stars{display:inline-flex;flex-direction:row-reverse;gap:2px}
.rv-stars input{position:absolute;opacity:0;width:1px;height:1px}
.rv-stars label{cursor:pointer;padding:2px;border-radius:var(--r1)}
.rv-stars svg{display:block;width:36px;height:36px;fill:var(--line-strong);transition:fill .12s}
.rv-stars label:hover svg,.rv-stars label:hover~label svg,.rv-stars input:checked~label svg{fill:#FFCC00}
.rv-stars input:focus-visible+label{outline:2px solid var(--accent);outline-offset:1px}

.rv-photos{display:flex;flex-wrap:wrap;gap:var(--s3)}
.rv-ph{position:relative;display:block;width:104px;height:104px;border:1px solid var(--line);border-radius:var(--r2);overflow:hidden;background:var(--bg-alt)}
.rv-ph img{display:block;width:100%;height:100%;object-fit:cover}
.rv-ph input{position:absolute;opacity:0;width:1px;height:1px}
.rv-ph-x{position:absolute;z-index:1;top:4px;right:4px;width:26px;height:26px;border-radius:50%;background:rgba(16,20,24,.72);color:#fff;font-size:18px;line-height:26px;text-align:center;cursor:pointer;border:0;padding:0}
.rv-ph-old input:not(:checked)~.rv-ph-x{background:var(--accent)}
.rv-ph-old input:not(:checked)~.rv-ph-x::after{content:"↺";position:absolute;inset:0;background:var(--accent);border-radius:50%}
.rv-ph-old:has(input:not(:checked)) img{opacity:.25}
.rv-ph.is-busy img{opacity:.5}
.rv-ph-noimg img{visibility:hidden}
.rv-ph-noimg::after{content:attr(data-name);position:absolute;inset:0;pointer-events:none;display:flex;align-items:center;justify-content:center;padding:6px;font-size:11px;color:var(--ink-2);text-align:center;word-break:break-all}
.rv-add{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:104px;height:104px;border:1px dashed var(--line-strong);border-radius:var(--r2);color:var(--ink-2);font-size:var(--t-xs);text-align:center;cursor:pointer;transition:border-color var(--tr),color var(--tr)}
.rv-add:hover,.rv-add:focus-within{border-color:var(--accent);color:var(--accent)}
.rv-add svg{width:26px;height:26px}
.rv-add input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.rv-add[hidden]{display:none}

.rv-submit{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s3)}
.rv-note{font-size:var(--t-xs);color:var(--ink-3);max-width:64ch}
.rv-progress{font-family:var(--mono);font-size:var(--t-s);color:var(--accent)}
.rv-progress[hidden]{display:none}

/* «Пришлите ссылку» */
.rv-link{display:flex;flex-direction:column;gap:var(--s3)}
.rv-link-lead{font-size:var(--t-s);color:var(--ink-2)}
.rv-link-row{display:flex;gap:var(--s3)}
.rv-link-row .btn{white-space:nowrap;min-height:48px}
.rv-link-msg{font-size:var(--t-s);color:var(--ink)}
.rv-link-msg[hidden]{display:none}
.rv-ways{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:var(--s4)}
.rv-way{border:1px solid var(--line);border-radius:var(--r2);padding:var(--s5);display:flex;flex-direction:column;gap:var(--s3);align-items:flex-start}
.rv-way p{font-size:var(--t-s);color:var(--ink-2)}
.rv-way-k{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.rv-way .rv-link{align-self:stretch}

/* список моделей (выбор / кабинет) */
.rv-list{display:grid;gap:var(--s3)}
.rv-row{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:var(--s4);align-items:center;border:1px solid var(--line);border-radius:var(--r2);padding:var(--s3) var(--s4)}
.rv-row-img{width:72px;height:72px;display:flex;align-items:center;justify-content:center;background:#fff}
.rv-row-img img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.rv-row-main{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.rv-row-name{font-weight:600;line-height:1.3}
.rv-row-name:hover{color:var(--accent)}
.rv-row-meta{font-family:var(--mono);font-size:var(--t-xs);color:var(--ink-3)}
.rv-row-reason{font-size:var(--t-xs);color:var(--ink-2)}
.rv-row-act .btn{min-height:44px;padding:0 var(--s5);white-space:nowrap}
.rv-chip{display:inline-block;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:2px 8px;border-radius:999px;border:1px solid currentColor}
.rv-chip-wait{color:var(--accent)}
.rv-chip-on{color:#1E7F4F}
.rv-chip-off{color:var(--red)}

@media (max-width:640px){
  .rv-page{padding:var(--s6) 0 var(--s12)}
  .rv-grid2,.rv-ways{grid-template-columns:minmax(0,1fr)}
  .rv-stars svg{width:40px;height:40px}
  /* 🔴 квадрат задаём размерами, а не aspect-ratio: WebKit с aspect-ratio + height:100% у картинки
     растягивает ячейку (память: chasterclub-plitki-safari) */
  .rv-ph,.rv-add{width:96px;height:96px}
  .rv-link-row{flex-direction:column}
  .rv-row{grid-template-columns:56px minmax(0,1fr)}
  .rv-row-img{width:56px;height:56px}
  .rv-row-act{grid-column:1 / -1}
  .rv-row-act .btn,.rv-submit .btn{width:100%}
}
