/* LOMOV GYM — палитра и характер сайта клуба (lomovgym.ru) поверх геометрии приложения:
   красный #ee3c33, чёрный и белый, Jost, заголовки капсом, чёрная шапка с рваным красным краем.
   Слои отличаются светлотой (#000 → #111 → #222), а не тенями и свечением; красный — на основной
   кнопке и на данных (прогресс, отметки дней, кольцо уровня), не на вкладках и навигации.
   Подключается последним и перекрывает index.html и hunter-sport.css; цвета задают темы (LOMOV_BG). */

/* Jost — свободный (OFL) геометрический гротеск, ближайший к Futura сайта. Вариативный: один файл на все начертания;
   диапазон до 700 — у сайта жирнее не бывает, и старые 800–950 из стилей приложения сводятся к нему. */
@font-face{ font-family:'Jost'; font-style:normal; font-weight:300 700; font-display:swap; src:url(/fonts/jost/jost-cyrillic.woff2) format('woff2');
  unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face{ font-family:'Jost'; font-style:normal; font-weight:300 700; font-display:swap; src:url(/fonts/jost/jost-latin-ext.woff2) format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face{ font-family:'Jost'; font-style:normal; font-weight:300 700; font-display:swap; src:url(/fonts/jost/jost-latin.woff2) format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root{ --lomov-red:#ee3c33; --lomov-red-deep:#9e1f19;
  --lomov-brush:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 60' preserveAspectRatio='none'%3E%3Cpath fill='%23ee3c33' d='M0 3.2 L8 9.1 L16 3.3 L24 6.2 L32 5.2 L40 9.4 L48 7.5 L56 5.6 L64 4.0 L72 10.4 L80 6.8 L88 4.5 L96 4.9 L104 6.3 L112 6.3 L120 5.6 L128 7.4 L136 2.4 L144 3.5 L152 9.1 L160 6.4 L168 7.5 L176 3.0 L184 2.2 L192 6.5 L200 5.2 L208 6.7 L216 3.2 L224 8.7 L232 2.1 L240 5.1 L248 5.5 L256 5.4 L264 5.0 L272 3.8 L280 9.9 L288 3.6 L296 2.9 L304 3.6 L312 6.3 L320 6.4 L328 4.6 L336 2.9 L344 6.0 L352 6.0 L360 4.1 L368 2.0 L376 4.2 L384 5.7 L392 3.4 L400 4.9 L393.0 6 L396.6 12 L395.2 18 L394.1 24 L399.4 30 L396.1 36 L393.4 42 L392.5 48 L398.6 54 L400 51.9 L392 48.4 L384 56.0 L376 57.6 L368 57.3 L360 57.5 L352 54.1 L344 52.8 L336 56.8 L328 56.8 L320 53.4 L312 54.0 L304 57.0 L296 51.2 L288 56.8 L280 55.4 L272 53.8 L264 54.2 L256 53.5 L248 47.1 L240 56.1 L232 50.8 L224 54.5 L216 57.9 L208 54.6 L200 55.4 L192 54.8 L184 53.9 L176 55.7 L168 50.6 L160 55.0 L152 56.3 L144 52.2 L136 54.5 L128 57.1 L120 57.0 L112 57.4 L104 56.0 L96 56.1 L88 54.1 L80 55.8 L72 52.8 L64 54.7 L56 56.3 L48 57.2 L40 56.5 L32 55.1 L24 55.8 L16 58.0 L8 52.1 L0 54.2 L9.0 54 L6.9 48 L9.2 42 L9.0 36 L9.0 30 L5.8 24 L0.1 18 L7.5 12 L1.7 6Z'/%3E%3C/svg%3E"); }
body{ -webkit-font-smoothing:antialiased; }
::selection{ background:var(--lomov-red); color:#fff; }
/* Цифры одной ширины — счётчики, веса и уровни не «прыгают», когда меняются. */
.mono, [class*="-num"], .wf-setno, .sport-rank-title, .wf-ring-time{ font-variant-numeric:tabular-nums; }

/* Без цветных пятен «живого» фона и градиентов: плоскость ровная, глубину дают ступени светлоты.
   .app не трогаем: он прозрачный, чтобы были видны обои из магазина (#app-wallpaper). */
body::before, body::after{ display:none !important; }
.workout-focus, .gen-screen{ background:var(--bg) !important; }

/* Маскот-тюлень принадлежит Hunter Log — в LOMOV GYM его нет (карточка дня, профиль, конец тренировки). */
.hunter-seal, .seal-stage, .seal-say, .profile-seal{ display:none !important; }

/* ---------- шапка: чёрная полоса и под ней рваный красный край, как на сайте ---------- */
.bar, .app.with-navbar.on-technique .bar{ background:#000 !important; backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
  border-bottom:0 !important; box-shadow:none !important; }
.bar::after{ content:""; position:absolute; left:0; right:0; top:100%; height:12px; pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 22' preserveAspectRatio='none'%3E%3Cpath fill='%23ee3c33' d='M0 0H400V2.6 L395.7 2.6 L391.2 2.3 L388.7 6.7 L385.8 7.8 L379.8 3.6 L375.8 16.9 L372.5 10.7 L366.7 16.2 L361.7 8.5 L357.6 12.4 L351.5 10.2 L347.5 17.5 L344.5 19.0 L338.4 13.0 L332.3 10.6 L323.7 3.1 L317.1 13.9 L312.4 17.8 L309.6 6.5 L305.9 2.3 L300.0 13.1 L296.1 9.3 L287.4 16.4 L282.0 2.3 L277.4 10.5 L271.8 3.7 L264.3 13.0 L259.6 1.2 L256.1 1.0 L253.0 3.6 L246.7 7.2 L242.2 7.0 L236.9 15.6 L233.1 15.1 L227.4 2.6 L218.5 12.9 L214.0 7.3 L206.5 8.6 L197.6 12.8 L190.4 7.8 L188.2 6.2 L181.4 13.7 L172.5 13.6 L168.9 7.6 L160.6 12.7 L153.0 6.7 L145.5 12.0 L138.0 8.7 L133.2 9.2 L130.0 20.4 L127.0 12.6 L122.5 15.1 L116.0 10.2 L107.9 12.6 L103.8 7.9 L98.9 7.0 L93.7 10.7 L85.3 10.0 L83.1 3.4 L79.9 9.8 L75.7 10.1 L72.9 10.5 L65.5 10.1 L57.1 9.5 L51.5 11.5 L46.2 13.5 L37.6 8.1 L29.7 1.7 L27.2 11.4 L24.1 11.7 L15.9 13.7 L11.1 9.9 L8.0 9.5 L4.6 2.7 L0 6.1Z M202.2 15.3h17.8l-1 1.6h-15.8z M308.5 19.9h5.5l-1 1.6h-3.5z M107.2 15.2h14.9l-1 1.6h-12.9z M109.1 15.6h9.9l-1 1.6h-7.9z M355.9 19.1h7.6l-1 1.6h-5.6z M62.5 19.6h12.0l-1 1.6h-10.0z M274.7 15.4h4.8l-1 1.6h-2.8z M270.0 17.1h5.0l-1 1.6h-3.0z M366.3 18.2h15.2l-1 1.6h-13.2z'/%3E%3C/svg%3E") 0 0 / 100% 100% no-repeat; }
.bar-id .glyph, .bar-title .bt-swoosh{ display:none; }
.bar-title{ font-family:var(--font-display); font-size:18px; font-weight:700; letter-spacing:.16em; padding-bottom:0; }
.bar-title .bt-hunter{ color:var(--text); margin-right:.32em; }
.bar .bar-title .bt-hunter{ color:#fff; }
/* Обложка профиля по умолчанию — тот же текстовый знак; щит из старого логотипа не нужен. */
.cover-brand-glyph{ display:none; }
.bar-title .bt-log{ color:var(--lomov-red); font-weight:700; font-style:normal; transform:none; }
.bar-section-title{ color:#fff !important; font-weight:700 !important; letter-spacing:.06em !important; text-transform:uppercase; }
.app.with-navbar:not(.on-home) .bar-section-title{ font-size:22px; }
.app.with-navbar.on-technique .bar-section-title{ font-size:15px; }
/* «Дежурный тренер» — длинное название: на 360px в 22px не помещается рядом с баллами. */
.app.with-navbar.on-duty .bar-section-title{ font-size:18px; }
/* «События и акции» — тоже длинное: в 22px на 360px обрезалось. */
.app.with-navbar.on-events .bar-section-title{ font-size:18px; }
.bar-back-btn{ color:#fff; }
.bar-mana{ height:34px; border:0; background:#1c1c1c; color:#fff; }
.bar-mana svg{ color:var(--lomov-red); }

/* ---------- нижняя навигация: чёрная плавающая капсула; активная вкладка — светлее, значок красный ---------- */
.navbar{ background:#000 !important; border:1px solid #1c1c1c !important; backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
  box-shadow:0 12px 32px -12px rgba(0,0,0,.6) !important; }
.navbtn, .nav-center-label{ color:#949494; font-size:11px !important; font-weight:500 !important; }
.navbtn svg{ width:20px; height:20px; }
.navbtn.active, .nav-center.active .nav-center-label{ color:#fff !important; }
.navbtn.active svg{ color:var(--lomov-red); filter:none !important; }
.navbar .seg-thumb, :root[data-bg-theme="light"] .navbar .seg-thumb{ background:#1c1c1c !important; box-shadow:none !important; }
.navbar:not(.has-thumb) .navbtn.active{ background:#1c1c1c !important; }
.nav-center{ background:var(--lomov-red) !important; color:#fff; box-shadow:0 4px 0 var(--lomov-red-deep), 0 0 0 5px #000 !important; }
/* Идёт тренировка — кнопка белая с красным значком, чтобы её было видно на фоне обычной. */
.nav-center.is-live{ background:#fff !important; color:var(--lomov-red); box-shadow:0 4px 0 #bdbdbd, 0 0 0 5px #000 !important; }
.nav-center.is-live::after{ border-color:var(--lomov-red); }
/* Подпись под центральной кнопкой — на одной линии с подписями вкладок; ради неё круг чуть меньше и выше. */
.nav-center{ width:46px; height:46px; top:-26px; }
.nav-center-label{ position:absolute; left:50%; top:calc(100% + 8px); transform:translateX(-50%); white-space:nowrap; line-height:1.15; pointer-events:none; }

/* ---------- заголовки капсом (характер сайта); подписи и метки — обычным регистром ---------- */
.sport-heading{ font-size:28px; font-weight:700; line-height:1.05; letter-spacing:.05em; text-transform:uppercase; }
/* !important — в index.html у .section-title стоит text-transform:none !important */
.section-title{ font-size:15px !important; font-weight:700; letter-spacing:.06em !important; text-transform:uppercase !important; }
.sheet-title{ font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.field-label{ font-size:13px; font-weight:500; color:var(--text-dim); }
.today-card-title, .pd-title, .sport-rank-title, .wf-name{ font-weight:700; letter-spacing:.04em; text-transform:uppercase; }

/* ---------- карточки: ступень светлоты; в светлой теме — белая карточка с тонкой рамкой ---------- */
/* !important — в index.html у .panel стоит border:none !important, без него рамка светлой темы не появлялась. */
.panel, .sport-rank{ box-shadow:none !important; border:1px solid transparent !important; }
:root[data-bg-theme="light"] :is(.panel, .sport-rank){ border-color:var(--border-soft) !important; }
/* Свечения и градиенты старого слоя — плоско, как на сайте клуба. */
.panel{ background:var(--panel) !important; }
.gen-body, .shop-gem svg{ filter:none !important; }
.gen-scan, .gen-orbit i, .xp-fill{ box-shadow:none !important; }
.xp-fill{ background:var(--accent) !important; }
.lvl-num{ text-shadow:none !important; }
.voice-fab{ box-shadow:0 10px 24px -8px rgba(0,0,0,.6) !important; }

/* Карточка дня — главный блок экрана: на ступень светлее остальных в тёмной теме и чёрная в светлой. */
.today-card{ background:#1c1c1c !important; color:#fff !important; border:0 !important; box-shadow:none !important; padding:24px !important; }
:root[data-bg-theme="light"] .today-card{ background:#111 !important; }
/* Подпись над названием — белым по красному мазку кисти, как плашки на сайте клуба. Единственная метка капсом на экране. */
.today-card-kicker{ align-self:flex-start; display:inline-block; padding:7px 18px 6px; margin-left:-6px; color:#fff !important;
  background:var(--lomov-brush) 0 0 / 100% 100% no-repeat; letter-spacing:.18em; font-weight:700; }
.today-card-title{ font-size:30px !important; line-height:1.04 !important; color:#fff;
  /* Капс в 30px: длинное слово фокуса дня переносим по слогам, а не рвём посередине. */
  overflow-wrap:break-word !important; hyphens:auto; }
/* Состояния дня видны и в стиле клуба: «сделано» — метка цветом успеха без красного мазка,
   «отдых» — приглушённая. Цвета фиксированные: карточка тёмная в обеих темах. */
.today-card.is-done .today-card-kicker{ background:none !important; color:#5fc489 !important; padding-left:0; margin-left:0; }
.today-card.is-rest .today-card-kicker{ background:none !important; color:#949494 !important; padding-left:0; margin-left:0; }
.today-card-sub{ color:#b4b4b4 !important; font-size:14px; }
.today-ex span{ color:#d9d9d9 !important; border-top-color:#2a2a2a !important; }
.today-ex span::before{ content:"/"; color:var(--lomov-red); font-weight:700; margin-right:10px; }

/* ---------- кнопки: тактильные, как были в приложении; основная — в красном клуба, без свечения ---------- */
.cta, .today-card-go{ font-weight:700 !important; letter-spacing:.08em; text-transform:uppercase; font-size:14px; }
.cta:not(.ghost):not(.danger):not(.workout-cancel-btn), .today-card-go{ background:var(--cta-fill) !important; color:#fff !important; }
.cta:not(.ghost):not(.danger):not(.workout-cancel-btn):not(:disabled), .today-card-go{ box-shadow:0 4px 0 var(--lomov-red-deep), inset 0 1px 0 #ffffff33 !important; }
/* Нажатие — «вдавливание»: кромка сжимается вместе со сдвигом кнопки из hunter-sport.css. */
.cta:not(.ghost):not(.danger):not(.workout-cancel-btn):not(:disabled):active, .today-card:active .today-card-go{
  box-shadow:0 1px 0 var(--lomov-red-deep), inset 0 1px 0 #ffffff33 !important; }
.cta.ghost{ color:var(--text) !important; background:var(--panel-2) !important; backdrop-filter:none; box-shadow:none !important; }
/* В светлой теме ghost-кнопка стоит на почти таком же фоне — тонкая рамка (рамка, не тень). */
:root[data-bg-theme="light"] .cta.ghost{ box-shadow:inset 0 0 0 1px var(--border) !important; }
/* «Отменить тренировку» — второстепенная текстовая кнопка, не вторая красная «основная». */
.cta.workout-cancel-btn{ background:none !important; color:var(--bad) !important; box-shadow:none !important; }
/* Кнопка в карточке «Ищу тренера» задумана ссылкой без подложки. */
.seek-card.is-on .cta.ghost{ background:none !important; box-shadow:none !important; color:var(--accent) !important; }
/* Узкие кнопки в ряд (карточка клиента) — без разрядки, иначе капс обрезается многоточием. */
.cli-actions .cta, .btn-row .cta{ letter-spacing:.02em; }
/* Две кнопки в ряд в «Мой тренер» («Предложить время») — переносом строки, а не многоточием. */
.coach-actions .cta{ letter-spacing:.02em; white-space:normal; line-height:1.2; }
/* Ошибка сохранения под кнопкой (профиль здоровья) — красным, а не серой подписью. */
.lock-note.is-err{ color:var(--bad); }
/* Опасное действие («Отменить тренировку») — красный текст на красноватой подложке, без объёма основной кнопки. */
.cta.danger{ background:rgba(238,60,51,.12) !important; color:var(--bad) !important; box-shadow:none !important; backdrop-filter:none; }

/* ---------- сегменты: нейтральный бегунок, обычный регистр — красный оставлен данным ---------- */
.scope-toggle{ background:var(--panel-2) !important; }
.scope-btn{ font-weight:600; }
.scope-btn.active{ color:var(--text) !important; }
.seg-host:not(.has-thumb) > .scope-btn.active{ background:#333 !important; }
.seg-thumb{ background:#333 !important; box-shadow:none !important; }
:root[data-bg-theme="light"] .seg-thumb{ background:#fff !important; box-shadow:0 1px 3px rgba(0,0,0,.08) !important; }
:root[data-bg-theme="light"] .seg-host:not(.has-thumb) > .scope-btn.active{ background:#fff !important; }

/* ---------- «Сегодня»: кольцо уровня и отмеченные дни — данные, они красные ---------- */
.today-name{ font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.xp-ring-fill{ filter:none; }
.wk-label{ font-weight:500; font-size:12px; }
.wk-dot{ border-radius:12px !important; }
.wk.is-done .wk-dot{ box-shadow:none !important; }

/* ---------- тренировка: прямой счётчик подходов, отдых — красным кольцом ---------- */
.wf-setno{ font-style:normal; font-weight:700; letter-spacing:0; text-shadow:none; }
.wf-setno small{ color:var(--lomov-red); }
.wf-ring-fill{ stroke:var(--lomov-red) !important; }
.wf-stop{ color:var(--lomov-red); }

/* Обложка по умолчанию («Пустота») подмешивала акцент — с красным выходила розовой: ровная чёрная плоскость. */
:is(.hero-cover, .fx-prev-cover).banner-void, :root[data-bg-theme="light"] :is(.hero-cover, .fx-prev-cover).banner-void{ background:#111 !important; }
:is(.hero-cover, .fx-prev-cover).banner-void .bt-hunter{ color:#fff; }

/* ---------- тренер и каталог: у каждого человека свой бледный тон (оттенок --h из id), инициалы — тем же тоном ---------- */
.tr-avatar{ background:hsl(var(--h, 220) 26% 20%) !important; color:hsl(var(--h, 220) 70% 84%); box-shadow:none; }
:root[data-bg-theme="light"] .tr-avatar{ background:hsl(var(--h, 220) 60% 92%) !important; color:hsl(var(--h, 220) 45% 28%); }
/* Вкладки карточки клиента — пять в ряд: без разрядки, иначе не помещаются. */
#cli-tabs .scope-btn{ font-size:12.5px; }

/* Значки карточек-ссылок — без цветной подложки: нейтральная ступень и значок цветом текста. */
.home-cta-icon{ background:var(--panel-2) !important; color:var(--text) !important; box-shadow:none !important; }
/* Обложка по умолчанию пустая — короче, чтобы в карточке профиля не было провала. */
.hero-cover.banner-void{ height:96px; }

/* ---------- «События и акции»: заголовок события капсом, оставшиеся места — данные, они красные ---------- */
.ev-title, .ev-status-title{ letter-spacing:.04em; text-transform:uppercase; }
.ev-left{ color:var(--lomov-red); }
/* Значок премиума — контурный, цветом текста: не кнопка и не данные, поэтому не красный. */
.premium-badge{ text-transform:uppercase; }

/* ---------- движение: шкала токенов transitions.dev; подбирается по назначению, а не по ближайшему числу ---------- */
:root{ --duration-quick:150ms; --duration-fast:250ms; --duration-medium:350ms; --duration-slow:400ms;
  --ease-smooth-out:cubic-bezier(0.22, 1, 0.36, 1); --distance-base:8px; --scale-large:0.96; }
/* Смена экрана — короткий сдвиг на 8px вместо 28px: читается как перелистывание, а не как полёт. */
@keyframes screenEnterFwd{ from{ opacity:0; transform:translate3d(var(--distance-base),0,0); } to{ opacity:1; transform:translate3d(0,0,0); } }
@keyframes screenEnterBack{ from{ opacity:0; transform:translate3d(calc(-1 * var(--distance-base)),0,0); } to{ opacity:1; transform:translate3d(0,0,0); } }
/* Переопределения времени — только для тех, кто не просил уменьшить движение: у них в index.html свои короткие правила. */
@media (prefers-reduced-motion: no-preference){
  .screen{ animation-duration:var(--duration-fast); animation-timing-function:var(--ease-smooth-out); }
  .screen.screen-dir-back{ animation-duration:var(--duration-fast); animation-timing-function:var(--ease-smooth-out); }
  /* Шторка — панель: открывается 400ms, закрывается быстрее (350ms) и тем же плавным торможением. */
  .sheet{ animation-duration:var(--duration-slow); animation-timing-function:var(--ease-smooth-out); }
  .sheet-backdrop{ animation-duration:var(--duration-slow); animation-timing-function:var(--ease-smooth-out); }
  .sheet-backdrop.backdrop-closing, .sheet-backdrop.backdrop-closing .sheet{ animation-duration:var(--duration-medium); animation-timing-function:var(--ease-smooth-out); }
  /* Экран тренировки — тоже панель: 400ms на открытие, 350ms на сворачивание. */
  .workout-focus{ animation-duration:var(--duration-slow); animation-timing-function:var(--ease-smooth-out); }
  .workout-focus.wf-collapsing{ animation-duration:var(--duration-medium); animation-timing-function:var(--ease-smooth-out); }
  /* Тост выезжает на 8px; прозрачность приходит быстрее, чем сдвиг, — текст читается сразу. */
  #toast{ transform:translateX(-50%) translateY(calc(-1 * var(--distance-base)));
    transition:opacity var(--duration-fast) var(--ease-smooth-out), transform var(--duration-slow) var(--ease-smooth-out); }
  /* Бегунок вкладок — одно обратимое движение: 250ms в обе стороны. */
  .seg-thumb{ transition:transform var(--duration-fast) var(--ease-smooth-out), width var(--duration-fast) var(--ease-smooth-out),
    height var(--duration-fast) var(--ease-smooth-out), opacity var(--duration-quick) ease; }
}

/* Профиль всегда доступен в правом верхнем углу, рядом с балансом. */
.bar-profile{background:#1c1c1c;color:#fff;border-color:#333}
.app.with-navbar:not(.on-home) .bar-section-title{max-width:calc(100vw - 180px);text-overflow:ellipsis;overflow:hidden}
.fd-social-action:focus-visible,.bar-profile:focus-visible{outline:2px solid var(--lomov-red);outline-offset:2px}

/* Более собранная геометрия: крупные блоки 16px, кнопки и поля 12px. */
:root{ --radius-lg:16px; --radius-md:12px; --radius-sm:10px; }
.panel, .today-card, .sport-rank{ border-radius:16px; }
.cta, .today-card-go{ border-radius:12px; letter-spacing:.035em; }
.sheet{ border-top-left-radius:20px; border-top-right-radius:20px; }

/* Красный ведёт к действию; постоянные декоративные плашки спокойнее. */
.bar::after{ height:1px; background:#303030; }
.bar-mana svg{ color:#d2d2d2; }
.today-card-kicker{ margin-left:0; padding:0; background:none; color:#c8c8c8 !important; letter-spacing:.12em; font-size:11px; }
.today-ex span::before{ color:#8c8c8c; }
.cta:not(.ghost):not(.danger):not(.workout-cancel-btn):not(:disabled), .today-card-go{ box-shadow:none !important; }
.cta:not(.ghost):not(.danger):not(.workout-cancel-btn):not(:disabled):active, .today-card:active .today-card-go{ box-shadow:none !important; }
.navbar{ border-radius:20px; }
.nav-center{ box-shadow:0 0 0 5px #000 !important; }

/* В сообществе читаемость важнее капса: имя → время → публикация. */
#screen-feed .section-title, #screen-partners .section-title{
  font-size:16px !important; line-height:1.35; letter-spacing:0 !important; text-transform:none !important;
}
.app.with-navbar:not(.on-home) .bar-section-title{ letter-spacing:.01em !important; text-transform:none; }
.fd-now{ padding:4px 0 8px; margin-bottom:16px; }
.fd-now-head{ margin-bottom:12px; }
.fd-now-name{ font-size:12px; line-height:1.4; }
.fd-now-dot{ width:10px; height:10px; background:var(--text-dim); }
.fd-new{ min-height:48px; margin-bottom:20px; font-size:13px; }
.fd-post{ padding:16px 0 4px; border-radius:16px; overflow:hidden; }
.fd-post + .fd-post{ margin-top:20px; }
.fd-head{ padding:0 16px 14px; gap:12px; }
.fd-head .sp-ava{ width:38px; height:38px; }
.fd-name{ font-size:15px; font-weight:600; line-height:1.4; letter-spacing:0; }
.fd-time{ margin-top:2px; font-size:12px; line-height:1.4; }
.fd-photo{ max-height:70vh; object-fit:contain; background:var(--panel-2); }
.fd-caption{ padding:14px 16px 0; font-family:system-ui,-apple-system,"Segoe UI",sans-serif; font-size:14px; line-height:1.6; }
.fd-caption.dim{ padding:0 16px 12px; font-size:12px; color:var(--text-dim); }
.fd-badge{ margin:0 16px 12px; border-radius:8px; }

/* Три одинаковые зоны нажатия без переносов даже на узком экране. */
.fd-foot{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:4px; margin:14px 12px 0; padding:6px 0;
  border-top:1px solid var(--border-soft); }
.fd-foot > button{ display:flex; align-items:center; justify-content:center; gap:8px; min-width:0; min-height:44px; padding:8px;
  border:0; border-radius:10px; background:transparent; color:var(--text-dim); font:inherit; font-size:13px; cursor:pointer;
  transition:background-color 150ms ease,color 150ms ease; }
.fd-foot svg{ flex-shrink:0; width:20px; height:20px; }
.fd-foot .mono{ min-width:1ch; font-weight:600; }
.fd-foot .fd-react.on{ color:var(--text); background:var(--panel-2); }
.fd-foot > button:disabled{ opacity:.4; cursor:default; }
@media (hover:hover){ .fd-foot > button:not(:disabled):hover{ background:var(--panel-2); color:var(--text); } }
.fd-foot > button:not(:disabled):active{ background:var(--panel-2); }
.fd-foot > button:focus-visible{ outline:2px solid var(--text); outline-offset:-2px; }

/* Оформление автора остаётся различимым, но не спорит с фотографией. */
.fd-head .fx-frame{ inset:-4px; opacity:.75; filter:saturate(.65); box-shadow:none !important; }
.fd-head .fx-frame::before, .fd-head .fx-frame::after{ box-shadow:none !important; }
.fd-head .cover-fx{ opacity:.16; z-index:0; }
.fd-name [class*="name-fx-"]{ text-shadow:none !important; filter:saturate(.65); }
.fd-head .fx-frame-pulse::before, .fd-head .fx-frame-pulse::after{ display:none; }

/* Комментарии отделены тонкой линией; ввод и отправка образуют один блок. */
.fd-comments{ padding:0 16px 16px; }
.fd-comment{ padding:14px 0; font-family:system-ui,-apple-system,"Segoe UI",sans-serif; font-size:13px; line-height:1.5; }
.fd-comment strong{ font-size:13px; font-weight:600; }
.fd-comment > div{ margin:4px 0 6px; }
.fd-comment small{ font-size:11px; }
.fd-comment-form{ display:grid; gap:10px; padding-top:14px; border-top:1px solid var(--border-soft); }
.fd-comment-form textarea{ min-height:88px; resize:vertical; background:var(--panel-2); border-color:var(--border-soft);
  border-radius:12px; font:inherit; font-size:16px; line-height:1.5; }
.fd-comment-form textarea:focus{ outline:2px solid var(--text-dim); outline-offset:1px; }
.fd-comment-form .cta{ min-height:44px; width:auto; justify-self:end; padding:10px 20px; font-size:12px; }
@media (prefers-reduced-motion:reduce){ .fd-foot > button{ transition:none; } }

/* Лента: режимы, компактное присутствие и обсуждение поверх сохранённой позиции. */
.fd-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.fd-toolbar .scope-toggle{flex:1;min-width:180px}.fd-toolbar .scope-btn{min-height:44px;font-size:13px}
#fd-unread{font-size:12px;background:var(--panel-2);border-radius:8px;padding:3px 6px}
.fd-now{margin-bottom:8px;padding-bottom:0}.fd-now-head{margin-bottom:6px}
.fd-now-list{gap:14px}.fd-now-item{flex-basis:48px;gap:4px}.fd-now-item .sp-ava{width:44px;height:44px}.fd-now-name{width:52px;font-size:11px}
.fd-people-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px 8px;padding:12px 0}.fd-people-grid .fd-now-item{width:100%}
.fd-social-sheet{max-height:calc(var(--vv-height,100dvh) - 24px);overflow:auto;overscroll-behavior:contain}
#fd-comments-backdrop .sheet{display:flex;flex-direction:column;min-height:50dvh}
#fd-discussion{min-height:0;overflow:auto;overscroll-behavior:contain;flex:1}
#fd-discussion .fd-comment-form{position:sticky;bottom:0;background:var(--panel);padding-bottom:8px}
#fd-discussion .fd-comment-list{padding-bottom:12px}
#fd-discussion .fd-comment-form textarea{min-height:64px;max-height:160px}
.fd-repost-intro{padding:0 16px 8px;font-size:12px;color:var(--text-dim)}
.fd-original-author{display:flex;align-items:center;gap:10px;margin:12px 16px;padding:10px;border-left:2px solid var(--border);background:var(--panel-2);border-radius:8px;font-size:13px}
.fd-original-author .sp-ava{width:30px;height:30px;font-size:12px}
#fd-draft-tools{margin:-8px 0 14px}#fd-crop-position{display:grid;gap:6px;margin:10px 0}#fd-crop-position[hidden]{display:none}
#fd-crop-position input{width:100%;min-height:32px;accent-color:var(--text)}
#fd-notices-list{padding:12px 0}.fd-notice{display:flex;flex-direction:column;gap:4px;text-align:left;width:100%;padding:14px;border:0;border-bottom:1px solid var(--border-soft);background:transparent;color:var(--text);font:inherit;cursor:pointer}
.fd-notice span{font-size:13px}.fd-notice small{font-size:11px;color:var(--text-dim)}.fd-notice.is-unread{background:var(--panel-2);border-radius:10px}

.fd-reply-context{margin:8px 0;padding:8px 10px;border-left:2px solid var(--border);background:var(--panel-2);color:var(--text-dim);font-size:12px;white-space:normal;overflow-wrap:anywhere}

/* Компактная шапка ленты: режимы и уведомления в один ряд. */
.fd-toolbar{flex-wrap:nowrap;margin-bottom:12px;gap:10px}
.fd-toolbar .scope-toggle{min-width:0;margin:0}.fd-toolbar .scope-btn{font-size:13px;white-space:nowrap}
.fd-icon-button{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;border:1px solid var(--border-soft);border-radius:12px;background:var(--panel);color:var(--text);padding:0;cursor:pointer}
.fd-icon-button svg{width:21px;height:21px}.fd-icon-button:focus-visible{outline:2px solid var(--text);outline-offset:2px}
#fd-unread{position:absolute;top:-4px;right:-4px;min-width:16px;padding:2px 4px;font-size:10px;line-height:14px;border:2px solid var(--bg);background:var(--text);color:var(--bg);border-radius:12px}
.fd-now{margin-bottom:12px}.fd-now.is-empty .fd-now-head{display:none}
.fd-now-empty{padding:8px 0;background:none;font-size:12px;line-height:1.4;border-radius:0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
#screen-feed .fd-new{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:auto;min-height:44px;margin:0 0 14px;padding:10px 16px;font-size:12px;letter-spacing:0;text-transform:none}
.fd-new svg{width:18px;height:18px;flex-shrink:0}

/* Аватар в шапке обновляется вместе с профилем и оформлением. */
.bar-profile{position:relative;border:0;overflow:visible}
.bar-profile .bar-avatar{display:flex;width:32px;height:32px;border-radius:50%;overflow:hidden;align-items:center;justify-content:center;background:var(--panel-2);color:var(--text)}
.bar-profile .bar-avatar img{width:100%;height:100%;object-fit:cover}.bar-profile .bar-avatar svg{width:22px;height:22px}
.bar-profile>.fx-frame{display:block;inset:1px;opacity:.8;pointer-events:none}
.bar-profile .fx-frame::before,.bar-profile .fx-frame::after{box-shadow:none !important}

/* Шторка обсуждения: скроллится список, поле ввода всегда у нижнего края. */
#fd-comments-backdrop .sheet{height:min(72dvh,calc(var(--vv-height,100dvh) - 16px));max-height:calc(var(--vv-height,100dvh) - 16px);min-height:0;overflow:hidden;padding:0 16px max(12px,env(safe-area-inset-bottom));gap:0}
#fd-comments-backdrop .sheet-drag-handle{margin:0 -16px;flex-shrink:0}
.fd-discussion-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0;padding:8px 0;border-bottom:1px solid var(--border-soft)}
.fd-discussion-head .sheet-title{margin:0;font-size:18px;letter-spacing:0;text-transform:none}
.fd-discussion-head .fd-icon-button{border:0;background:var(--panel-2);border-radius:50%}
#fd-discussion{display:flex;flex-direction:column;overflow:hidden;flex:1;min-height:0}
#fd-discussion .fd-comment-list{flex:1;overflow:auto;overscroll-behavior:contain;min-height:0;padding-bottom:8px}
#fd-discussion .fd-comment{position:relative;padding:14px 0 8px;border-top:0;border-bottom:1px solid var(--border-soft)}
#fd-discussion .fd-comment>strong{display:block;padding-right:44px}
#fd-discussion .fd-comment>small{margin-right:8px}
#fd-discussion .fd-comment-form{position:static;flex-shrink:0;display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:8px;align-items:end;margin:0;padding:10px 0 0;background:transparent}
#fd-replying,#fd-reply-cancel{grid-column:1/-1}#fd-replying:empty{display:none}
#fd-reply-cancel{justify-self:start;padding:0;min-height:32px}
#fd-discussion .fd-comment-form textarea{grid-column:1;min-height:44px;height:44px;max-height:120px;padding:10px 12px;resize:none;line-height:22px;overflow:auto;border-radius:18px;font-size:16px}
.fd-send{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:var(--lomov-red);color:#fff;cursor:pointer}
.fd-send svg{width:22px;height:22px}.fd-send:disabled{background:var(--panel-2);color:var(--text-dim);cursor:default}.fd-send:focus-visible{outline:2px solid var(--text);outline-offset:2px}
.fd-comment-menu summary{position:absolute;right:0;top:3px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;color:var(--text-dim);cursor:pointer;list-style:none;border-radius:10px}
.fd-comment-menu summary::-webkit-details-marker{display:none}.fd-comment-menu summary svg{width:20px;height:20px}
.fd-comment-menu summary:focus-visible{outline:2px solid var(--text);outline-offset:-2px}
.fd-comment-menu[open] summary{background:var(--panel-2)}
.fd-comment-options{display:flex;flex-direction:column;padding:4px 8px;margin:8px 0;background:var(--panel-2);border-radius:12px}
.fd-comment-options .fd-social-action{text-align:left;color:var(--text)}
