/*
 * RU: Стили раздела «Отзывы везде» (БП4, подписка для бизнеса) нового кабинета /biz/app/. Правила — внутри body.bt-page и на
 *     токенах сайта (--k-*), без литералов цвета (храповик check:theme). Файл свой у каждой фазы — потоки не правят один файл.
 *     Правила аккуратности П1–П12 (docs/UI-RULES.md): кегль — только парой из шкалы (--k-t-sm = 13/18 и наследуемые
 *     14/20, 16/22, 20/26 кабинета), начертания 400/600, отступы кратны 4, радиусы 8 · 12 · круг, цель касания на телефоне
 *     не меньше 44 px.
 * EN: Styles of the "Отзывы везде" section (БП4, business subscription) of the new /biz/app/ cabinet. Rules sit inside
 *     body.bt-page and use site tokens (--k-*), no colour literals (the check:theme ratchet). One file per phase. The
 *     П1–П12 neatness rules (docs/UI-RULES.md): a font size only as a scale pair (--k-t-sm = 13/18 plus the cabinet's
 *     inherited 14/20, 16/22, 20/26), weights 400/600, spacing in multiples of 4, radii 8 · 12 · circle, a touch target of at
 *     least 44 px on a phone.
 */

/* RU: Список кнопок гостя — нумерованные строки в том порядке, в каком их увидит гость; номер в кружке читается как
       «место на странице». min-width: 0 у середины — длинная ссылка переносится, а не раздвигает экран на 320 px.
   EN: The guest button list — numbered rows in the order the guest sees them; the number in a circle reads as "place on the
       page". min-width: 0 on the middle — a long link wraps instead of widening the screen at 320 px. */
body.bt-page .rh-list {display: grid; gap: var(--k-s-2); margin: 0; padding: 0;}
body.bt-page .rh-item {display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; align-items: center; gap: var(--k-s-2) var(--k-s-3);
  padding: var(--k-s-2) 0; border-top: 1px solid var(--k-border);}
body.bt-page .rh-item:first-child {border-top: 0;}
body.bt-page .rh-n {flex: none; display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: var(--k-r-pill);
  background: var(--k-surface-2); color: var(--k-text-muted); font: var(--k-t-sm); font-weight: var(--k-fw-600);}
body.bt-page .rh-item.is-own .rh-n {background: var(--k-brand-soft); color: var(--k-brand-ink);}
body.bt-page .rh-main {min-width: 0; display: grid; gap: 4px;}
body.bt-page .rh-main b {font-weight: var(--k-fw-600);}
body.bt-page .rh-url {font: var(--k-t-sm); color: var(--k-text-muted); overflow-wrap: anywhere;}
/* RU: Пометка «скрыта на «Бесплатно»» длинная — переносится внутри карточки, а не уходит за край (П9).
   EN: The "hidden on Free" mark is long — it wraps inside the card instead of running past the edge (П9). */
body.bt-page .rh-main .pill {justify-self: start; max-width: 100%; white-space: normal;}
body.bt-page .rh-acts {display: flex; gap: 4px;}
body.bt-page .rh-acts .icon-btn[disabled] {color: var(--k-text-subtle); background: transparent; cursor: default;}
/* RU: Ссылка сверх лимита тарифа приглушена цветом (не opacity, П7): она сохранена, но гость её сейчас не видит.
   EN: A link over the plan limit is muted by colour (not opacity, П7): it is saved, but the guest does not see it now. */
body.bt-page .rh-item.is-off .rh-main b, body.bt-page .rh-item.is-off .rh-url {color: var(--k-text-subtle);}

/* RU: Ошибка ссылки под полем — цветом опасности, но без display: у атрибута hidden не должно быть соперника
       (урок «hidden проигрывает display: flex»).
   EN: The link error under the field — in the danger colour, but with no display rule: the hidden attribute must have no
       rival (the "hidden loses to display: flex" lesson). */
body.bt-page .rh-err {margin: 0; color: var(--k-danger); font: var(--k-t-sm);}
body.bt-page .rh-add select.inp, body.bt-page .rh-add input.inp {width: 100%;}

/* RU: Пояснение о честности — спокойная карточка с акцентом слева, как состояние тарифа: это правило, а не реклама.
   EN: The honesty note — a calm card with a left accent, like the plan state: it is a rule, not an advert. */
body.bt-page .rh-honest {border-left: 4px solid var(--k-brand);}
body.bt-page .rh-honest h3 {margin: 0 0 var(--k-s-2);}
body.bt-page .rh-honest p {margin: 0 0 var(--k-s-2);}

/* RU: Адрес страницы гостя — моноширинный и переносимый: его сверяют глазами с напечатанным.
   EN: The guest page address — monospace and wrapping: people compare it by eye with the printed one. */
body.bt-page .rh-link {margin: 0 0 var(--k-s-3);}
body.bt-page .rh-link code {display: block; padding: var(--k-s-2) var(--k-s-3); border-radius: var(--k-r-2); background: var(--k-surface-2);
  font: var(--k-t-sm); font-family: var(--k-font-mono); overflow-wrap: anywhere;}

/* RU: QR страницы гостя: картинка 320 px с белым полем внутри (screens/review-hub.js, after) ужимается до 176 — чётко на
       плотных экранах; радиус 8 — мелкий элемент (П5).
   EN: The guest page QR: the 320 px image with the white margin inside (screens/review-hub.js, after) shrinks to 176 — crisp
       on dense screens; radius 8 — a small element (П5). */
body.bt-page .rh-qr {width: 176px; margin: 0 0 var(--k-s-3); border-radius: var(--k-r-1); overflow: hidden;}
body.bt-page .rh-qr img, body.bt-page .rh-qr canvas {width: 100% !important; height: auto !important;}

/* RU: Форматы печати — строки «название и подсказка — кнопка»; на телефоне кнопка уходит под текст.
   EN: Print formats — "name and hint — button" rows; on a phone the button drops under the text. */
body.bt-page .rh-print {display: grid; gap: var(--k-s-2); margin: 0 0 var(--k-s-3); padding: 0;}
body.bt-page .rh-pf {display: flex; align-items: center; gap: var(--k-s-3); flex-wrap: wrap; padding: var(--k-s-2) 0; border-top: 1px solid var(--k-border);}
body.bt-page .rh-pf:first-child {border-top: 0;}

/* RU: Полоски долей площадок в статистике — как полоски лимитов тарифа (plan.css), один цвет: площадки не соревнуются.
   EN: Platform share bars in statistics — like the plan limit bars (plan.css), one colour: platforms are not competing. */
body.bt-page .rh-bars {display: grid; gap: var(--k-s-3); margin: 0 0 var(--k-s-3); padding: 0;}
body.bt-page .rh-bars b {font-weight: var(--k-fw-600);}
body.bt-page .rh-share {min-width: 48px; text-align: right;}
body.bt-page .rh-bar {height: 8px; margin-top: 8px; border-radius: var(--k-r-pill); background: var(--k-surface-3); overflow: hidden;}
body.bt-page .rh-bar i {display: block; height: 100%; border-radius: inherit; background: var(--k-brand);}

/* RU: Личное сообщение — текст гостя с сохранёнными переносами строк, длинные слова переносятся.
   EN: A private message — the guest's text with line breaks kept, long words wrap. */
body.bt-page .rh-msg {margin-top: var(--k-s-3);}
body.bt-page .rh-body {margin: var(--k-s-2) 0; white-space: pre-wrap; overflow-wrap: anywhere;}
body.bt-page .rh-contact {font-weight: var(--k-fw-600); overflow-wrap: anywhere;}
body.bt-page .rh-msg-acts {margin-top: var(--k-s-2);}
body.bt-page .rh-empty {margin: var(--k-s-3) 0;}

/* RU: Вставка тарифа (paywall.js, стили plan.css) на 320 px: заголовок с «.grow» сжимался до слова в строку под ценой
       «690 ₽ в месяц за точку», и цена наезжала на текст. Здесь заголовку дана основа 180 px — цена переносится под него.
       Правка только в этом разделе: общий plan.css — файл фазы БП0 (ведущей сессии передано).
   EN: The plan insert (paywall.js, plan.css styles) at 320 px: the ".grow" title shrank to a word per line under the
       "690 ₽ per month per location" price, and the price overlapped the text. Here the title gets a 180 px basis — the price
       wraps below it. Scoped to this section: the shared plan.css belongs to phase БП0 (reported to the lead session). */
body.bt-page .sc-review-hub .bp-paywall .row > h3 {flex: 1 1 180px; min-width: 0;}

/* RU: Телефон: действия строки и пометка «всегда» уходят под ссылку (второй столбец), кнопка печати — во всю ширину.
   EN: A phone: row actions and the "always" mark drop under the link (the second column), the print button goes full width. */
@media (max-width: 480px) {
  body.bt-page .rh-item {grid-template-columns: 28px minmax(0, 1fr);}
  body.bt-page .rh-item > .rh-acts, body.bt-page .rh-item > .pill {grid-column: 2; justify-self: start;}
  body.bt-page .rh-pf .btn {flex: 1 1 100%;}
}

/* RU: П4: под палец — 44 px у всех целей касания экрана: кнопки строки (в кабинете 38), малые кнопки и чипы (34).
   EN: П4: for a finger — 44 px on every touch target of the screen: row buttons (38 in the cabinet), small buttons and
       chips (34). */
@media (pointer: coarse) {
  body.bt-page .sc-review-hub .icon-btn {width: 44px; height: 44px;}
  body.bt-page .sc-review-hub .btn.is-sm, body.bt-page .sc-review-hub .chip {min-height: 44px;}
}
