/* =====================================================================
   ОБЩИЕ СТИЛИ КАТАЛОГА
   >>> АКЦЕНТНЫЙ ЦВЕТ: меняйте только --accent / --accent-dark <<<
   ===================================================================== */
:root{
  /* Затемнён с #e8542a: белым по нему выходило 3.66 при норме 4.5.
     Сейчас 4.51 и белым по акценту, и акцентом по белому. */
  --accent:#ce4b25; --accent-dark:#b03f1f;
  --bg:#ffffff; --bg-soft:#f5f6f8; --text:#1c1f24; --text-soft:#5b6470;
  /* Публичная тема не объявляла --muted, хотя к нему обращались в 22 местах:
     свойство было недействительно, и цвет наследовался от родителя — где-то
     случайно совпадал с --text-soft, где-то выходил почти чёрным (.ls-qr__fail).
     Все обращения мельче 18.7px, то есть норма 4.5; на --bg-soft её держит
     самый светлый серый вплоть до #6b717b (4.54), по белому 4.91. Значение
     админки #6b7280 не подошло: на --bg-soft оно даёт 4.47. */
  --muted:#6b717b;
  --border:#e6e8ec; --white:#fff; --green:#1aa251; --amber:#b8860b;
  /* Зелёный и жёлтый — для заливок и значков. Текстом они давали 3.3 по
     белому и 2.6 по своей подложке при норме 4.5; для текста — свои тона,
     затемнённые Contrast::ink() до нормы на подложке поверх серого фона.
     Синий текст меток (в проекте было четыре разных синих) — тоже один. */
  --green-ink:#13753a; --amber-ink:#846008; --blue-ink:#325dc3;
  /* Золото оценок. Шкала объявлений уже ездила на этом тоне, а каталог,
     кабинет и карта — на прежнем светлом: тот давал по белому 2.03 при
     норме 3 для графики.
     Шкала объявлена role="img" с подписью «Оценка: 4,7 из 5», а в списке
     отзывов рядом с ней числа нет — послабление «дублируется текстом» там
     не действует. Здесь 3.5 по белому и 3.29 по --bg-soft. */
  --gold:#bf7a00;
  --radius:14px; --shadow:0 8px 24px rgba(20,25,35,.07); --maxw:1100px;
}
*{margin:0;padding:0;box-sizing:border-box}
/* Атрибут hidden должен скрывать всегда.
   Браузерное правило [hidden]{display:none} — самое слабое по
   специфичности, и любое .foo{display:flex} его перебивает. Скрипты
   по всему проекту прячут элементы через element.hidden = true, и там,
   где у элемента был свой display, это молча не работало: cookie-баннер
   не закрывался, фильтры категорий ничего не скрывали, стрелки галереи
   висели у объявления с одной фотографией. Правило то же, что в
   preflight Tailwind. */
[hidden]:where(:not([hidden="until-found"])){display:none!important}
html{scroll-behavior:smooth}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  color:var(--text);background:var(--bg-soft);line-height:1.55;-webkit-font-smoothing:antialiased}

/* Заголовки и название сайта — фирменным Onest: системный шрифт на Windows,
   iPhone и Android разный, и заголовки выглядели по-разному. В файле только
   латиница и кириллица и одно начертание, 800 (18 КБ); заголовки в 700
   берут его же. Лицензия OFL — рядом с файлом. Файл кэшируется на год
   (.htaccess): поменяли шрифт — меняйте и имя файла. На странице создателя
   заголовки — его шрифтом (creators.css, .cr-page). */
@font-face{font-family:Onest;font-style:normal;font-weight:800;font-display:swap;src:url(../fonts/onest-800.woff2) format("woff2")}
h1,h2,.nav__brand{font-family:Onest,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif}
a{color:inherit;text-decoration:none}

/* Кнопки и поля — шрифтом страницы. Браузер даёт им свой (Arial,
   13.33px): «Войти», «Хорошо» в плашке cookie и счётчик в донате были
   набраны не тем шрифтом, что всё вокруг. Только гарнитура и размер —
   не весь font: он сбросил бы и высоту строки, и поля стали бы выше. */
button,input,select,textarea{font-family:inherit;font-size:inherit}

/* Найденное в поиске по записям и по чату. */
mark{background:#fff3bf;color:inherit;padding:0 3px;border-radius:4px}

/* Общая обёртка: шапка, подвал и страницы. Не мёртвый стиль — class="container"
   стоит в шаблонах; без него подвал и шапка прижимались к краям экрана. */
.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 20px}

/* Шапка */
/* overflow-x:clip, а не hidden: hidden сделал бы шапку прокручиваемым
   блоком и обрезал бы выпадающие меню снизу. clip обрезает только вбок
   и вертикаль оставляет видимой. Это страховка: если ряд ссылок когда-
   нибудь снова перестанет помещаться, поедет он, а не вся страница. */
.nav{background:var(--white);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20;
  overflow-x:clip;transition:box-shadow .2s}
/* Страницу прокрутили — тень под шапкой: видно, что под ней что-то есть. */
.nav.is-scrolled{box-shadow:0 8px 24px -16px rgba(20,25,35,.35)}
/* Ширина — от .container, как у страниц и подвала: логотип стоит над
   краем текста. Прежние 1180 были под девять ссылок вошедшего и страницы
   форума; разделы сняты, и шапка торчала на 40 пикселей с каждой стороны. */
.nav__in{display:flex;align-items:center;gap:8px;height:62px}
.nav__brand{font-weight:800;font-size:19px;letter-spacing:-.02em;flex:none}
.nav__brand span{color:var(--accent)}
/* gap:3 и отступы по 12, а не по 13: с прежними ряд ссылок у вошедшего
   пользователя требовал 1109 пикселей при контейнере в 1100 — меню
   профиля вылезало за край на любой ширине экрана. */
.nav__links{margin-left:auto;display:flex;gap:3px;align-items:center;min-width:0}
.nav__links a{padding:8px 12px;border-radius:999px;font-size:14.5px;font-weight:600;color:var(--text-soft);white-space:nowrap;
  display:inline-flex;align-items:center;gap:6px;transition:background .15s,color .15s}
.nav__links a:hover{background:var(--bg-soft);color:var(--text)}
/* Всё в ряду шапки — 44 в высоту, как обычная кнопка (3.3, владелец 04.10:
   все таблеткой, главная 44); было 38, 40 и 42 вперемешку. Только сам ряд
   (>): в меню пользователя и в окне колокольчика ссылки свои. */
.nav__links>a{min-height:44px}
/* Где вы сейчас — светлой подложкой цвета сайта. Залита целиком только
   главная кнопка («Регистрация», «Создать страницу»): залитый активный
   пункт рядом с ней читался второй такой же кнопкой — на «Входе»
   «Войти» и «Регистрация» слипались в одну оранжевую полосу (3.3, п. 7). */
.nav__links a.is-active{background:color-mix(in srgb,var(--accent) 10%,#fff);color:var(--accent-dark)}
.nav__links a.nav__cta{background:var(--accent);color:var(--white);font-weight:700}
.nav__links a.nav__cta:hover{background:var(--accent-dark);color:var(--white)}
.nav__links a.nav__search{padding:8px 10px}
/* Справочные страницы для гостя — только в бургере (см. layouts/app). */
.nav__links a.nav__extra{display:none}
.nav__search svg{width:18px;height:18px}
.nav__links a .tkico{width:17px;height:17px;flex:none}
/* «Создатели» — главное место сайта: цветом сайта и жирнее даже вне
   раздела, в разделе — ещё и светлой подложкой, как любой активный пункт.
   Подложка вне раздела выдавала бы его за активный. */
.nav__links a.nav__main{color:var(--accent-dark);font-weight:700}
.nav__links a.nav__main:hover,.nav__links a.nav__main.is-active{background:color-mix(in srgb,var(--accent) 10%,#fff);color:var(--accent-dark)}
/* «Моя страница» — своя, поэтому обведена: её ищут глазами чаще других. */
.nav__links a.nav__mine{border:1px solid var(--border);padding:7px 13px 7px 11px;color:var(--text)}
.nav__links a.nav__mine:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));background:var(--white)}
/* На своей странице — светлой подложкой, как «Создатели» в разделе. Своё
   правило, а не общее .is-active: правила .nav__mine выше перебивают его
   (цвет текста, а под мышью — белый фон). */
.nav__links a.nav__mine.is-active{border-color:transparent;background:color-mix(in srgb,var(--accent) 10%,#fff);color:var(--accent-dark)}

/* Меню пользователя. Имя — до 260 пикселей: при прежних 180 «Аудит
   Проверка» обрезалось при пустой половине шапки. Сжимается кнопка, только
   когда ряду не хватает места, — тогда и обрежется имя, а шапка не
   вылезет за край; уже аватара со стрелкой (82 пикселя) — нет. */
.nav__user{position:relative;flex:0 1 auto;min-width:82px}
.nav__user>summary{list-style:none;display:inline-flex;align-items:center;gap:8px;cursor:pointer;
  padding:5px 12px 5px 5px;border-radius:999px;border:1px solid var(--border);background:var(--white);
  font-size:14px;font-weight:700;color:var(--text);max-width:min(260px,100%);transition:border-color .15s,background .15s}
.nav__user>summary::-webkit-details-marker{display:none}
.nav__user>summary:hover{border-color:var(--accent)}
.nav__user[open]>summary{border-color:var(--accent);background:#fff5f1}
/* Аватар 32 в рамке 44 с отступом 5 — круги концентрические. */
.nav__ava{position:relative;width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#ff7a3d,var(--accent));
  color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;flex:none}
.nav__uname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav__caret{width:15px;height:15px;color:var(--text-soft);flex:none;transition:transform .15s}
.nav__user[open] .nav__caret{transform:rotate(180deg)}
.nav__menu{position:absolute;right:0;top:calc(100% + 8px);min-width:210px;background:var(--white);
  border:1px solid var(--border);border-radius:14px;box-shadow:0 16px 40px rgba(20,25,35,.16);padding:6px;z-index:30}
.nav__menu a,.nav__menu button{display:flex;align-items:center;gap:9px;width:100%;padding:9px 12px;border-radius:9px;
  font-size:14px;font-weight:600;color:var(--text);border:none;background:none;cursor:pointer;font-family:inherit;text-align:left}
.nav__menu a:hover,.nav__menu button:hover{background:var(--bg-soft)}
.nav__menu hr{border:none;border-top:1px solid var(--border);margin:5px 8px}
/* Кто вошёл — над пунктами: имя на средних экранах из шапки спрятано. */
.nav__who{display:flex;flex-direction:column;gap:1px;margin:0 0 5px;padding:8px 12px 10px;border-bottom:1px solid var(--border)}
.nav__who b{font-size:14px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav__who span{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Баланс и Премиум — с числом справа. */
.nav__menu a.nav__num{justify-content:space-between}
.nav__num small{font-size:12.5px;font-weight:700;color:var(--text-soft);font-variant-numeric:tabular-nums}
.nav__num small.is-on{color:#8a6c1a}
.nav__menu .out{color:#d23f31}
.nav__menu .out:hover{background:rgba(210,63,49,.07)}

/* «Войти» гостя рядом с бургером — только на телефоне (см. layouts/app). */
.nav__enter{display:none}

/* Бургер (мобильные) */
.nav__burger{display:none;margin-left:auto;width:44px;height:44px;border:1px solid var(--border);border-radius:50%;
  background:var(--white);cursor:pointer;flex:none;align-items:center;justify-content:center;font-size:18px;color:var(--text)}
.nav__burger .tkico{width:20px;height:20px}
/* Два значка в кнопке вместо подмены текста: иначе бургер оставался
   символом ☰ и не мог быть иконкой. Видимый выбирается классом .open у nav. */
.nav__burger .i-close,.nav.open .nav__burger .i-open{display:none}
.nav.open .nav__burger .i-close{display:block}
@media (max-width:900px){
  .nav__burger{display:inline-flex}
  .nav__enter{display:inline-flex;align-items:center;min-height:44px;margin-left:auto;padding:9px 14px;border-radius:999px;
    font-size:15px;font-weight:600;color:var(--text-soft);white-space:nowrap}
  .nav__enter:hover{background:var(--bg-soft);color:var(--text)}
  .nav__enter.is-active{background:color-mix(in srgb,var(--accent) 10%,#fff);color:var(--accent-dark)}
  .nav__enter + .nav__burger{margin-left:6px}
  .nav__links a.nav__login{display:none}
  .nav__links{display:none;position:absolute;left:0;right:0;top:100%;margin:0;padding:10px 16px 14px;
    background:var(--white);border-bottom:1px solid var(--border);box-shadow:0 18px 34px rgba(20,25,35,.12);
    flex-direction:column;align-items:stretch;gap:2px}
  .nav.open .nav__links{display:flex}
  .nav__links a{padding:11px 14px;font-size:15px}
  .nav__links a.nav__extra{display:inline-flex}
  .nav__user{align-self:stretch}
  .nav__user>summary{width:100%;max-width:none;margin-top:4px}
  .nav__menu{position:static;box-shadow:none;border:none;padding:0 0 0 14px;min-width:0}
  .nav__links a.nav__mine{border-color:transparent}
}

/* Заголовок страницы */
.head{padding:38px 0 6px}
.head h1{font-size:clamp(24px,4vw,34px);font-weight:800;letter-spacing:-.02em}
.head p{color:var(--text-soft);margin-top:6px;font-size:16px}

/* Кнопки — одна форма на весь сайт, кроме страниц создателей (3.3,
   владелец 04.10: все таблеткой, обычная — 44 пикселя, норма места
   нажатия). Маленькая (--sm) — 34, для строк списков и мелких действий.
   Рамка — у всех, у залитых прозрачная: залитая и с обводкой одной высоты
   (были 45 и 47). Высота строки — своя: <button> не наследует её от
   страницы и выходил ниже ссылки (42 против 45). */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:9px 20px;
  border:1px solid transparent;border-radius:999px;font-size:15px;font-weight:700;line-height:1.2;text-align:center;
  cursor:pointer;transition:background .2s,transform .12s}
.btn:active{transform:translateY(1px)}
.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
/* SVG-иконки без явного размера: дефолт по размеру шрифта (иначе растягиваются на всю кнопку). */
.tkico{width:1.15em;height:1.15em;flex:none;vertical-align:-.15em}
.btn .tkico{width:18px;height:18px}
.btn--call{background:var(--accent);color:var(--white)}
.btn--call:hover{background:var(--accent-dark)}
/* Главная кнопка — тем же именем, что в админке: публичные страницы
   (плашка cookie, сертификаты, правила) звали его, а правила здесь не
   было, и кнопка выходила без фона — текст на пустом месте. */
.btn--primary{background:var(--accent);color:var(--white)}
.btn--primary:hover{background:var(--accent-dark);color:var(--white)}
.btn--ghost{background:var(--white);border:1px solid var(--border);color:var(--text)}
.btn--ghost:hover{border-color:var(--accent);color:var(--accent)}
.btn--sm{min-height:34px;padding:6px 14px;font-size:13px}
.btn--sm .tkico{width:16px;height:16px}
/* Кнопка-значок без подписи — круг той же высоты. */
.btn--icon{width:44px;padding:0}
.btn--sm.btn--icon{width:34px}
/* На телефоне место нажатия маленькой — 44: невидимая область, вид прежний. */
@media (max-width:900px),(pointer:coarse){
  .btn--sm{position:relative}
  .btn--sm::after{content:"";position:absolute;left:0;right:0;top:50%;height:44px;transform:translateY(-50%)}
}

/* Бейджи */
.badge{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;
  padding:4px 10px;border-radius:999px;white-space:nowrap}

/* Сетка карточек */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding:22px 0 60px}
.card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);
  padding:20px;display:flex;flex-direction:column;gap:10px;box-shadow:var(--shadow)}

/* Фильтры */
.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding-top:14px}
.filters select{padding:10px 14px;border:1px solid var(--border);border-radius:999px;
  background:var(--white);font-size:15px;color:var(--text);cursor:pointer}

/* Таблицы */
table{width:100%;border-collapse:collapse;min-width:760px}
th,td{text-align:left;padding:13px 16px;font-size:14px;border-bottom:1px solid var(--border)}
th{background:var(--bg-soft);font-weight:700;color:var(--text-soft);position:sticky;top:0}
tr:last-child td{border-bottom:none}
tr:hover td{background:#fafbfc}
.status{font-size:12px;font-weight:700;padding:3px 9px;border-radius:999px}

/* Сводка-плитки */
.stats{display:flex;gap:14px;flex-wrap:wrap;padding-top:16px}
.stat{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);
  padding:16px 22px;min-width:130px}

/* Подвал.
   Тёмный, как и был, но с порядком: слева кто мы, справа три колонки
   ссылок, внизу копирайт и «Наверх». Тёплый отсвет в углу — акцент
   сайта: подвал не выглядит чужой чёрной плашкой под светлой страницей.
   Цвета текста выбраны по контрасту на #14171d: заголовки колонок
   .55 (5.6:1), ссылки .74, нижняя строка .52 — все выше 4.5. */
.foot{margin-top:36px;padding:40px 0 0;font-size:14px;color:rgba(255,255,255,.66);
  background:radial-gradient(520px 220px at 0 0,color-mix(in srgb,var(--accent) 16%,transparent),transparent 70%),#14171d;
  border-top:1px solid rgba(255,255,255,.06)}
.foot__main{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,2fr);gap:32px 48px;padding-bottom:30px}

.foot__name{display:inline-flex;align-items:center;min-height:28px;font-size:20px;font-weight:800;letter-spacing:-.02em;color:#fff}
.foot__name img{display:block;height:28px;width:auto}
.foot__tag{margin-top:8px;max-width:340px;font-size:13.5px;line-height:1.55;color:rgba(255,255,255,.62)}
.foot__cnt{display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin-top:12px;font-size:13.5px}
.foot__cnt a,.foot__cnt span{display:inline-flex;align-items:center;min-height:24px}
.foot__cnt a{color:rgba(255,255,255,.82)}
.foot__cnt a:hover{color:#fff}

/* Сообщества — под рассказом о сайте, а не отдельной строкой под чертой. */
.foot__soc{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.foot__s{display:inline-flex;align-items:center;gap:8px;min-height:30px;padding:3px 13px 3px 3px;
  border-radius:999px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);
  font-size:13px;font-weight:600;color:rgba(255,255,255,.88);
  transition:border-color .15s,background .15s,color .15s}
.foot__s:hover{color:#fff;background:rgba(255,255,255,.1);border-color:var(--brand)}
/* Кружок сплошной, без осветления к краю: осветление роняет белый глиф.
   На плашке, светлеющей до 78% брендового с белым, глиф ВКонтакте даёт 3.04
   при норме 3 для графики, а Telegram — 2.08. */
.foot__s-ic{width:24px;height:24px;flex:none;border-radius:50%;color:#fff;
  display:flex;align-items:center;justify-content:center;background:var(--brand)}
.foot__s-ic svg{width:14px;height:14px;display:block}
/* Фирменные тона, приглушённые до нормы: белый глиф на сплошном кружке.
   ВКонтакте 4.13, YouTube 4.00, Instagram 5.11. Telegram и WhatsApp в родном
   виде дают 2.57 и 1.98 — затемнены с #2aabee и #25d366. */
.foot__s--vk{--brand:#0077ff}
.foot__s--telegram{--brand:#1c8fc9}
.foot__s--whatsapp{--brand:#12864a}
.foot__s--instagram{--brand:#c13584}
.foot__s--instagram .foot__s-ic{background:linear-gradient(45deg,#c13584,#bc1888)}
.foot__s--youtube{--brand:#e00000}

/* Третья колонка шире: «Политика конфиденциальности» в узкой
   переносилась, и две ссылки читались как четыре строки. */
/* Колонки — по ширине ссылок, свободное место поровну между ними: при
   долях .9/1/1.3 промежутки между текстами выходили 113 и 65 пикселей. */
.foot__nav{display:grid;grid-template-columns:repeat(3,auto);justify-content:space-between;gap:24px 28px}
.foot__h{margin-bottom:8px;font-size:11.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:rgba(255,255,255,.55)}
/* Цель не меньше 24 пикселей по высоте — норма WCAG 2.2 для указателя. */
.foot__col a{display:flex;align-items:center;width:fit-content;min-height:30px;padding:3px 0;line-height:1.35;color:rgba(255,255,255,.74);
  text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px;transition:color .15s,text-decoration-color .15s}
.foot__col a:hover{color:#fff;text-decoration-color:rgba(255,255,255,.45)}
.foot__col a.is-here{color:#fff;font-weight:600}
.foot__col a.is-here::before{content:"";width:5px;height:5px;margin-right:8px;border-radius:50%;background:var(--accent);flex:none}
.foot a:focus-visible{outline:2px solid #fff;outline-offset:2px;border-radius:4px}

.foot__bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;
  padding-top:16px;padding-bottom:18px;border-top:1px solid rgba(255,255,255,.08);font-size:13px;color:rgba(255,255,255,.52)}
.foot__up{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:0 12px;border-radius:999px;
  border:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.78);font-weight:600;transition:background .15s,color .15s}
.foot__up:hover{background:rgba(255,255,255,.08);color:#fff}
.foot__up svg{width:14px;height:14px}

@media(max-width:900px){.foot__main{grid-template-columns:1fr;gap:28px}}
@media(max-width:560px){
  .foot{padding-top:32px}
  .foot__nav{grid-template-columns:repeat(2,minmax(0,1fr))}
  .foot__col:last-child{grid-column:1/-1}
}
/* Места нажатия на телефоне и сенсорном экране — не меньше 44 пикселей:
   24 — норма WCAG 2.2 для указателя, пальцу мало (было 29–32). У видимых
   плашек растёт только невидимая область (::after по центру) — вид прежний;
   у логотипа inline-flex нельзя: съел бы пробел в «Forward One». Ссылки
   в колонках подвала — реже. */
@media (max-width:900px),(pointer:coarse){
  .nav__brand,.foot__name,.foot__s,.foot__up{position:relative}
  .nav__brand::after,.foot__name::after,.foot__s::after,.foot__up::after{
    content:"";position:absolute;left:0;right:0;top:50%;height:44px;transform:translateY(-50%)}
  .foot__soc{row-gap:12px}
  .foot__cnt a,.foot__col a{min-height:44px;min-width:44px}
}

@media (max-width:900px){.grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.grid{grid-template-columns:1fr}}

/* Имя автора: ссылка на профиль. Подчёркивание только под курсором —
   иначе список тем превращается в частокол синих ссылок, а имя автора
   там подпись, а не призыв кликнуть. */

/* Подсказка при запрете правой кнопки и горячих клавиш (protect.js).
   Молча не отвечающая страница читается как сломанная — человек уходит
   чинить свой браузер. Одна строка внизу объясняет, что это не поломка. */
.protect-toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,14px);z-index:9999;
  max-width:calc(100vw - 32px);padding:11px 18px;border-radius:12px;background:rgba(20,24,29,.94);
  color:#fff;font-size:13.5px;font-weight:600;line-height:1.4;text-align:center;
  box-shadow:0 10px 30px rgba(0,0,0,.25);opacity:0;pointer-events:none;
  transition:opacity .18s ease,transform .18s ease}
.protect-toast.is-on{opacity:1;transform:translate(-50%,0)}
@media (prefers-reduced-motion:reduce){.protect-toast{transition:none}}

/* Фото человека — слоем над буквой: не загрузился файл — видна буква
   цвета имени, а не пустой круг (как у лиц на главной). Родителю нужен
   position:relative — он задан у каждого такого круга в его стилях. */
.face-img{position:absolute;inset:0;border-radius:inherit;background:center/cover no-repeat;pointer-events:none}

/* Форма аватара страницы (Премиум) — у её маленьких аватаров: у записей,
   в окне «Поделиться», на товаре, в подарке, в её чате. Создатель выбирает
   форму в конструкторе; метка .dc-face--ФОРМА лежит внутри разметки
   аватара (Layout::меткаЛица) — по ней аватар и получает скругление;
   картинка берёт его у аватара сама (inherit). Аватары людей — круглые.
   !important — потому что кругом аватар делает правило его места, у
   каждого своё и со своим весом, а форма должна лечь на любое.
   Скругления «в точках» (скруглённый, квадрат, арка) пересчитаны в доли
   обычного аватара в 136 точек — как для карточки каталога и шапки чата
   (Layout). Формы — те же, что в Layout::МЕРЫ['лицо']: добавили там —
   допишите здесь (за этим следит DecorFaceTest). */
:has(>.dc-face--sharp){border-radius:0!important}
:has(>.dc-face--soft){border-radius:22%!important}
:has(>.dc-face--square){border-radius:9%!important}
:has(>.dc-face--leaf){border-radius:50% 14%!important}
:has(>.dc-face--petal){border-radius:0 50%!important}
:has(>.dc-face--drop){border-radius:50% 50% 50% 14%!important}
:has(>.dc-face--arch){border-radius:50% 50% 10% 10%!important}
:has(>.dc-face--shield){border-radius:10% 10% 50% 50%!important}
:has(>.dc-face--egg){border-radius:50% 50% 50% 50%/60% 60% 40% 40%!important}
:has(>.dc-face--pebble){border-radius:42% 58% 55% 45%/48% 42% 58% 52%!important}
/* Своё скругление ползунком — в процентах, от 0 до 49 (50 — это круг, метки нет). */
:has(>.dc-face--r0){border-radius:0!important}
:has(>.dc-face--r1){border-radius:1%!important}
:has(>.dc-face--r2){border-radius:2%!important}
:has(>.dc-face--r3){border-radius:3%!important}
:has(>.dc-face--r4){border-radius:4%!important}
:has(>.dc-face--r5){border-radius:5%!important}
:has(>.dc-face--r6){border-radius:6%!important}
:has(>.dc-face--r7){border-radius:7%!important}
:has(>.dc-face--r8){border-radius:8%!important}
:has(>.dc-face--r9){border-radius:9%!important}
:has(>.dc-face--r10){border-radius:10%!important}
:has(>.dc-face--r11){border-radius:11%!important}
:has(>.dc-face--r12){border-radius:12%!important}
:has(>.dc-face--r13){border-radius:13%!important}
:has(>.dc-face--r14){border-radius:14%!important}
:has(>.dc-face--r15){border-radius:15%!important}
:has(>.dc-face--r16){border-radius:16%!important}
:has(>.dc-face--r17){border-radius:17%!important}
:has(>.dc-face--r18){border-radius:18%!important}
:has(>.dc-face--r19){border-radius:19%!important}
:has(>.dc-face--r20){border-radius:20%!important}
:has(>.dc-face--r21){border-radius:21%!important}
:has(>.dc-face--r22){border-radius:22%!important}
:has(>.dc-face--r23){border-radius:23%!important}
:has(>.dc-face--r24){border-radius:24%!important}
:has(>.dc-face--r25){border-radius:25%!important}
:has(>.dc-face--r26){border-radius:26%!important}
:has(>.dc-face--r27){border-radius:27%!important}
:has(>.dc-face--r28){border-radius:28%!important}
:has(>.dc-face--r29){border-radius:29%!important}
:has(>.dc-face--r30){border-radius:30%!important}
:has(>.dc-face--r31){border-radius:31%!important}
:has(>.dc-face--r32){border-radius:32%!important}
:has(>.dc-face--r33){border-radius:33%!important}
:has(>.dc-face--r34){border-radius:34%!important}
:has(>.dc-face--r35){border-radius:35%!important}
:has(>.dc-face--r36){border-radius:36%!important}
:has(>.dc-face--r37){border-radius:37%!important}
:has(>.dc-face--r38){border-radius:38%!important}
:has(>.dc-face--r39){border-radius:39%!important}
:has(>.dc-face--r40){border-radius:40%!important}
:has(>.dc-face--r41){border-radius:41%!important}
:has(>.dc-face--r42){border-radius:42%!important}
:has(>.dc-face--r43){border-radius:43%!important}
:has(>.dc-face--r44){border-radius:44%!important}
:has(>.dc-face--r45){border-radius:45%!important}
:has(>.dc-face--r46){border-radius:46%!important}
:has(>.dc-face--r47){border-radius:47%!important}
:has(>.dc-face--r48){border-radius:48%!important}
:has(>.dc-face--r49){border-radius:49%!important}
/* Картинка, которая не загрузилась, — без значка битого файла поверх
   обложки или плитки: класс ставит скрипт в <head> (layouts/app). */
img.is-broken{visibility:hidden}

/* «← Мой профиль» над страницей кабинета — одной ссылкой со стрелкой, как в
   Премиуме, поддержке и кабинете создателя. Половина страниц рисовала её
   кнопкой-плашкой, половина — ссылкой. */
.page-back{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:700;color:var(--text-soft);text-decoration:none}
.page-back:hover{color:var(--text)}
.page-back .tkico{width:16px;height:16px}
/* На телефоне место нажатия — 44 пикселя (ссылка — 22): невидимая область, вид прежний. */
@media (max-width:900px),(pointer:coarse){
  .page-back{position:relative}
  .page-back::after{content:"";position:absolute;left:0;right:0;top:50%;height:44px;transform:translateY(-50%)}
}

/* ─────────── Значок «В эфире» и кнопка «Жду стрим» ───────────
   Блок 8 плана, этап 1 (App\Support\Live). Значок один на страницу
   создателя, плитку каталога, чат и кабинет стрима — поэтому здесь, а не
   в стилях одной из этих страниц. Точка мигает, пока вкладку видно;
   у тех, кто просил меньше движения, она просто горит. */
.cr-live{display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 9px;border-radius:999px;background:#d92d20;
  color:#fff;font-size:12px;font-weight:800;line-height:1.3;letter-spacing:.02em;text-decoration:none;white-space:nowrap}
a.cr-live:hover{background:#b42318;color:#fff}
a.cr-live:focus-visible{outline:2px solid #d92d20;outline-offset:2px}
.cr-live>i{width:7px;height:7px;flex:none;border-radius:50%;background:#fff;animation:cr-live-blink 1.4s ease-in-out infinite}
.cr-live--sm{gap:4px;padding:1px 7px 1px 6px;font-size:10.5px}
.cr-live--sm>i{width:5px;height:5px}
@keyframes cr-live-blink{50%{opacity:.25}}
@media (prefers-reduced-motion:reduce){.cr-live>i{animation:none}}
/* «Жду стрим»: нажатая — в цвете страницы; число — ровными цифрами. */
.cr-wait b{font-variant-numeric:tabular-nums}
.cr-wait.is-on{border-color:color-mix(in srgb,var(--cr-accent,var(--accent)) 40%,var(--border));
  background:color-mix(in srgb,var(--cr-accent,var(--accent)) 9%,#fff);color:color-mix(in srgb,var(--cr-accent,var(--accent)) 82%,#000)}

/* ─────────── Чат в рамке ───────────
   Страница эфира (creators/live) ставит чат создателя рамкой со своего же
   сайта. Шапка, подвал и плашка про cookie в рамке не нужны — они есть у
   самой страницы (класс ставит layouts/app, и только чату). */
.is-embed .nav,.is-embed .foot,.is-embed #cookie-banner{display:none!important}
