/* ============================================================
   FitAI — кабинет: ТРЕНИРОВКИ · КУРСЫ · УПРАЖНЕНИЯ · ПРОГРЕСС · РАННЕР
   Подключается ПОСЛЕ styles.css и cabinet-base.css.
   Токены --c-* объявлены в cabinet-base.css, здесь только их
   применение. Эталон стиля — landing.css (.nl-cell, .nl-goal,
   .nl-phase, .nl .btn).

   ------------------------------------------------------------
   ПАМЯТКА ПО СПЕЦИФИЧНОСТИ (почему селекторы такие длинные)
   ------------------------------------------------------------
   1. styles.css красит кабинет в тёмно-зелёное:
        html[data-theme="dark"] p{...!important}        → (0,1,2)
        .btn,button:not(a):not(b):not(c){...!important} → (0,3,1)
        #courses .fai131-course-row{...!important}      → (1,1,0)
        #fai105ReadyOverlay .fai203-ready-card{...}     → (1,1,0)
   2. app.js рантаймом инжектит <style> (см. app.js:9215+). Такие
      правила стоят в документе ПОСЛЕ нашего файла, поэтому при
      равной специфичности выигрывают они. Значит нашу нужно
      поднимать строго выше, а не просто добавлять !important.
   3. Правило: у всего, что живёт внутри экрана, берём префикс
      от контейнера с id (#courses, #fpMyWorkoutsOverlay,
      #fai105ReadyOverlay) — id даёт (1,x,y) и бьёт всё классовое.
      Там, где id нет (.ready-workout-card на экране «Программа»),
      набираем вес удвоением класса: .x.x = (0,2,0).
   4. Оверлеи (#fpMyWorkoutsOverlay, #fai105ReadyOverlay,
      #fpWorkoutRunnerV47) вешаются на document.body и НЕ лежат
      внутри .fai83-shell — префикс .fai83-shell для них не годится.

   ------------------------------------------------------------
   ЧЕГО CSS НЕ МОЖЕТ (нужна правка app.js, см. отчёт)
   ------------------------------------------------------------
   app.js:3408+ после вставки оверлея «Мои тренировки» проставляет
   элементам ИНЛАЙНОВЫЕ стили с !important:
     .fp-workout-card       → background/border-color/box-shadow
     .fp-workout-card-top и ВСЕ его потомки → background
     .fp-create-workout-top → background/border-color/color
   Инлайн с !important стоит выше любого авторского правила, так
   что перекрасить эти свойства напрямую нельзя. Ниже обходим:
     · фон карточки  — псевдоэлементом ::before (на него инлайн
       родителя не распространяется);
     · зелёную шапку — фильтром grayscale(), т.к. filter инлайном
       не задан и применяется поверх уже посчитанных цветов.
   ============================================================ */


/* ============================================================
   0. ОБЩЕЕ ДЛЯ ВСЕХ МОИХ ЭКРАНОВ
   ============================================================ */

/* Кнопки-пилюли в духе `.nl .btn`. Вес (0,3,1) — вровень с
   `.btn,button:not(…)` из styles.css:8482, плюс мы ниже по файлу,
   поэтому рамку и фон забираем себе. */
.fai83-shell .ready-workout-card .btn,
#fpMyWorkoutsOverlay .btn,
#fai105ReadyOverlay .btn,
#courses .btn{
  border-radius:999px!important;
  border:1px solid var(--c-line-2)!important;
  border-color:var(--c-line-2)!important;
  background:var(--c-white)!important;
  background-image:none!important;
  color:var(--c-ink)!important;
  font-family:var(--c-sans)!important;
  font-weight:600!important;
  font-size:14.5px!important;
  letter-spacing:0!important;
  text-transform:none!important;
  padding:13px 20px!important;
  box-shadow:none!important;
  transition:background .18s ease,border-color .18s ease,color .18s ease!important;
}
.fai83-shell .ready-workout-card .btn:hover,
#fpMyWorkoutsOverlay .btn:hover,
#fai105ReadyOverlay .btn:hover,
#courses .btn:hover{
  border-color:var(--c-ink)!important;
  background:var(--c-white)!important;
}

/* Главное действие — чернильная пилюля (аналог `.nl .btn.primary`) */
.fai83-shell .ready-workout-card .btn.accent,
.fai83-shell .ready-workout-card .ready-start-btn-v49,
#fpMyWorkoutsOverlay .btn.accent,
#fai105ReadyOverlay .btn.accent{
  background:var(--c-ink)!important;
  background-image:none!important;
  border-color:transparent!important;
  color:var(--c-white)!important;
  box-shadow:none!important;
}
.fai83-shell .ready-workout-card .btn.accent:hover,
.fai83-shell .ready-workout-card .ready-start-btn-v49:hover,
#fpMyWorkoutsOverlay .btn.accent:hover,
#fai105ReadyOverlay .btn.accent:hover{
  background:var(--c-blue-2)!important;
  border-color:transparent!important;
}

/* Фокус — синим, как на лендинге */
.fai83-shell .ready-workout-card :focus-visible,
#fpMyWorkoutsOverlay :focus-visible,
#fai105ReadyOverlay :focus-visible,
#courses :focus-visible{
  outline:2px solid var(--c-blue-3)!important;
  outline-offset:2px!important;
}


/* ============================================================
   1. ЭКРАН «ТРЕНИРОВКИ» — карточка готовой программы
      .ready-workout-card (screen `program`, id у секции нет)
      Против app.js:9220, где .ready-workout-card красится
      в #0d2516 с зелёным градиентом — бьём весом (0,3,0).
   ============================================================ */

.fai83-shell .ready-workout-card.ready-workout-card{
  background:var(--c-white)!important;
  background-image:none!important;
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:var(--c-r-lg)!important;
  box-shadow:var(--c-shadow)!important;
  padding:24px!important;
  color:var(--c-ink)!important;
}
.fai83-shell .ready-workout-card.ready-workout-card.collapsed{
  padding-bottom:20px!important;
}
/* app.js:9221 гасит псевдоэлементы карточки — нам они и не нужны,
   но страхуемся от «призрачных» зелёных подложек. */
.fai83-shell .ready-workout-card.ready-workout-card::before,
.fai83-shell .ready-workout-card.ready-workout-card::after{
  background:none!important;
  background-image:none!important;
}

/* — заголовок карточки — */
.fai83-shell .ready-workout-card .ready-workout-title,
.fai83-shell .ready-workout-card .ready-workout-details-v46{
  background:transparent!important;
  background-image:none!important;
  color:var(--c-ink)!important;
}
/* подпись-надзаголовок: капслок-подпись как `.nl .k` */
.fai83-shell .ready-workout-card .ready-workout-title small{
  display:block!important;
  color:var(--c-ink-3)!important;
  font-family:var(--c-sans)!important;
  font-size:11px!important;
  font-weight:600!important;
  letter-spacing:.1em!important;
  text-transform:uppercase!important;
}
.fai83-shell .ready-workout-card .ready-workout-title h3{
  margin:10px 0 8px!important;
  color:var(--c-ink)!important;
  font-family:var(--c-display)!important;
  font-size:22px!important;
  font-weight:600!important;
  line-height:1.16!important;
  letter-spacing:-.02em!important;
}
.fai83-shell .ready-workout-card .ready-workout-title p{
  margin:0!important;
  color:var(--c-ink-2)!important;
  font-size:14.5px!important;
  line-height:1.5!important;
}

/* — «сердечко» в углу: белый круг, активное — синее — */
.fai83-shell .ready-workout-card .ready-workout-heart{
  top:18px!important;right:18px!important;
  width:40px!important;height:40px!important;
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:50%!important;
  background:var(--c-white)!important;
  background-image:none!important;
  color:var(--c-ink-3)!important;
  font-size:19px!important;
  box-shadow:none!important;
  transition:background .18s ease,color .18s ease,border-color .18s ease!important;
}
.fai83-shell .ready-workout-card .ready-workout-heart:hover{
  border-color:var(--c-line-2)!important;
  color:var(--c-ink)!important;
}
.fai83-shell .ready-workout-card .ready-workout-heart.active{
  background:var(--c-blue)!important;
  border-color:transparent!important;
  color:var(--c-white)!important;
}

/* — список упражнений: строки на бумажном фоне — */
.fai83-shell .ready-workout-card .ready-workout-exercises{
  gap:8px!important;margin-top:18px!important;
}
.fai83-shell .ready-workout-card .ready-workout-exercises>div{
  padding:13px 14px!important;
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:12px!important;
  background:var(--c-paper)!important;
  background-image:none!important;
}
/* номер упражнения — пастельная плитка, как акценты на лендинге */
.fai83-shell .ready-workout-card .ready-workout-exercises>div>span{
  width:28px!important;height:28px!important;
  border-radius:9px!important;
  background:var(--c-sky)!important;
  color:var(--c-blue)!important;
  font-family:var(--c-sans)!important;
  font-size:12px!important;font-weight:700!important;
}
.fai83-shell .ready-workout-card .ready-workout-exercises b{
  color:var(--c-ink)!important;
  font-size:14px!important;font-weight:600!important;line-height:1.3!important;
}
.fai83-shell .ready-workout-card .ready-workout-exercises small{
  margin-top:4px!important;
  color:var(--c-ink-3)!important;
  font-size:12px!important;
}

/* — действия — */
.fai83-shell .ready-workout-card .ready-workout-collapsed-actions{
  gap:10px!important;margin-top:18px!important;
}
.fai83-shell .ready-workout-card .ready-workout-footer{
  margin-top:18px!important;
}


/* ============================================================
   2. ОВЕРЛЕЙ «МОИ ТРЕНИРОВКИ» — #fpMyWorkoutsOverlay
      Противники:
        app.js:9217-9218  .fp-my-workouts-overlay/-shell → #071308
        app.js:9282+      то же в @media(max-width:700px)
        app.js:3408+      инлайн !important на карточках
      Везде добавляем префикс #fpMyWorkoutsOverlay → (1,1,0).
   ============================================================ */

/* Вуаль вокруг шелла — чернильная полупрозрачная, не зелёная */
#fpMyWorkoutsOverlay.fp-my-workouts-overlay{
  background:rgba(18,20,24,.46)!important;
  background-image:none!important;
  backdrop-filter:saturate(120%) blur(6px)!important;
}
#fpMyWorkoutsOverlay .fp-my-workouts-shell{
  background:var(--c-paper)!important;
  background-image:none!important;
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:var(--c-r-lg)!important;
  color:var(--c-ink)!important;
  box-shadow:0 40px 90px -40px rgba(18,20,24,.45)!important;
}

/* — шапка оверлея — */
#fpMyWorkoutsOverlay .fp-my-workouts-head{
  padding:20px 24px!important;
  background:var(--c-white)!important;
  background-image:none!important;
  border-bottom:1px solid var(--c-line)!important;
  border-bottom-color:var(--c-line)!important;
}
#fpMyWorkoutsOverlay .fp-my-workouts-head small{
  color:var(--c-ink-3)!important;
  font-size:11px!important;font-weight:600!important;
  letter-spacing:.1em!important;text-transform:uppercase!important;
}
#fpMyWorkoutsOverlay .fp-my-workouts-head h2{
  margin:8px 0 0!important;
  color:var(--c-ink)!important;
  font-family:var(--c-display)!important;
  font-size:26px!important;font-weight:600!important;letter-spacing:-.02em!important;
}

/* кнопки шапки: «Добавить готовую» — призрачная, «Создать» — чернильная.
   `.fp-create-workout-top` получает инлайновый зелёный градиент
   (app.js:3423), поэтому фон гасим фильтром, а не background. */
#fpMyWorkoutsOverlay .fp-my-workouts-head .fai105-add-ready{
  height:auto!important;
  padding:12px 18px!important;
  border:1px solid var(--c-line-2)!important;
  border-color:var(--c-line-2)!important;
  border-radius:999px!important;
  background:var(--c-white)!important;
  background-image:none!important;
  color:var(--c-ink)!important;
  font-family:var(--c-sans)!important;
  font-size:14px!important;font-weight:600!important;
}
#fpMyWorkoutsOverlay .fp-my-workouts-head .fai105-add-ready:hover{
  border-color:var(--c-ink)!important;
  color:var(--c-ink)!important;
  background:var(--c-white)!important;
}
#fpMyWorkoutsOverlay .fp-my-workouts-head .fp-create-workout-top{
  height:auto!important;
  padding:12px 18px!important;
  border-radius:999px!important;
  font-family:var(--c-sans)!important;
  font-size:14px!important;font-weight:600!important;
  box-shadow:none!important;
  /* Фон (#5ebc35 + зелёный градиент), рамка (#a7ed78) и цвет
     текста (#071004) заданы ИНЛАЙНОМ с !important — обычными
     свойствами их не взять. Берём фильтром, он инлайном не задан.
     Считаем по шагам (яркость по Rec.709):
       grayscale    #86df55→#C2C2C2, #4f9f2e→#868686, текст→#0D0D0D
       brightness   ×1.55: #C2→клип #FFF, #86→#D0, текст→#141414
       invert       #FFF→#000, #D0→#2F2F2F, текст→#EBEBEB
     Итог: почти чёрная пилюля со светлым текстом ≈ `.nl .btn.primary`,
     контраст ~12:1. */
  filter:grayscale(1) brightness(1.55) invert(1)!important;
}
#fpMyWorkoutsOverlay .fp-my-workouts-head .fp-create-workout-top:hover{
  filter:grayscale(1) brightness(1.3) invert(1)!important;
}

/* крестик закрытия — белая круглая кнопка */
#fpMyWorkoutsOverlay .fp-my-workouts-head .fp-my-workouts-close,
#fpMyWorkoutsOverlay .fp-my-workouts-head .fai244-desktop-close{
  width:42px!important;height:42px!important;
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:50%!important;
  background:var(--c-white)!important;
  background-image:none!important;
  color:var(--c-ink-2)!important;
  font-size:24px!important;
  box-shadow:none!important;
}
#fpMyWorkoutsOverlay .fp-my-workouts-head .fai244-desktop-close:hover{
  border-color:var(--c-line-2)!important;color:var(--c-ink)!important;
}

/* — тело оверлея — */
#fpMyWorkoutsOverlay .fp-my-workouts-body{
  padding:22px!important;
  gap:16px!important;
  background:var(--c-paper)!important;
  background-image:none!important;
}

/* --- Карточка тренировки ---------------------------------
   Фон/рамка/тень стоят ИНЛАЙНОМ с !important (app.js:3409-3413),
   поэтому белую подложку рисуем псевдоэлементом: инлайн родителя
   на ::before не распространяется. inset:-1px — чтобы перекрыть
   и зелёную рамку, которая лежит снаружи padding-box.
   app.js:9300 гасит эти псевдоэлементы правилом (0,1,1) —
   наш префикс с id даёт (1,1,1) и возвращает их.        */
#fpMyWorkoutsOverlay .fp-workout-card,
#fpMyWorkoutsOverlay .fp-no-workouts{
  position:relative!important;
  border-radius:var(--c-r-lg)!important;
  padding:20px!important;
  color:var(--c-ink)!important;
  /* overflow:hidden здесь НЕЛЬЗЯ: он обрежет ::before по
     padding-box, и зелёная инлайновая рамка снова вылезет.
     Скругление шапки карточки обеспечивает она сама. */
}
#fpMyWorkoutsOverlay .fp-workout-card::before,
#fpMyWorkoutsOverlay .fp-no-workouts::before{
  content:""!important;
  position:absolute!important;
  inset:-1px!important;
  z-index:0!important;
  background:var(--c-white)!important;
  background-image:none!important;
  border:1px solid var(--c-line)!important;
  border-radius:var(--c-r-lg)!important;
  opacity:1!important;
  pointer-events:none!important;
}
/* содержимое — над подложкой */
#fpMyWorkoutsOverlay .fp-workout-card>*,
#fpMyWorkoutsOverlay .fp-no-workouts>*{
  position:relative!important;
  z-index:1!important;
}

/* «пусто» */
#fpMyWorkoutsOverlay .fp-no-workouts{padding:64px 22px!important}
#fpMyWorkoutsOverlay .fp-no-workouts b{
  color:var(--c-ink)!important;
  font-family:var(--c-display)!important;
  font-size:19px!important;font-weight:600!important;letter-spacing:-.02em!important;
}
#fpMyWorkoutsOverlay .fp-no-workouts p{
  margin-top:8px!important;color:var(--c-ink-2)!important;font-size:14.5px!important;
}

/* --- Шапка карточки --------------------------------------
   app.js вешает инлайновый #0f2b19 на саму шапку И на каждый её
   потомок — background перекрыть нельзя. Обесцвечиваем фильтром:
   тёмно-зелёный → нейтральный тёмный (#242424), светлый текст
   (#eff8ee) остаётся светлым. Получается «чернильная» плашка
   в духе `.nl .card.dark`. Уводим её в край карточки
   отрицательными полями, чтобы читалась как шапка, а не как
   случайный прямоугольник.                                  */
#fpMyWorkoutsOverlay .fp-workout-card .fp-workout-card-top{
  margin:-20px -20px 0!important;
  padding:18px 20px!important;
  border-radius:var(--c-r-lg) var(--c-r-lg) 0 0!important;
  filter:grayscale(1)!important;
}
#fpMyWorkoutsOverlay .fp-workout-card .fp-workout-card-top small{
  font-size:11px!important;font-weight:600!important;
  letter-spacing:.1em!important;text-transform:uppercase!important;
  opacity:.8!important;
}
#fpMyWorkoutsOverlay .fp-workout-card .fp-workout-card-top h3{
  margin:8px 0 0!important;
  font-family:var(--c-display)!important;
  font-size:19px!important;font-weight:600!important;
  line-height:1.18!important;letter-spacing:-.02em!important;
}
/* Плашка «≈ N мин». Её фон тоже инлайновый и после grayscale
   совпадает с фоном шапки, поэтому отделяем её рамкой:
   border инлайном не задан, а белая полупрозрачная рамка
   переживает grayscale без изменений. */
#fpMyWorkoutsOverlay .fp-workout-card .fp-workout-card-top>span{
  padding:7px 12px!important;
  border:1px solid rgba(255,255,255,.22)!important;
  border-color:rgba(255,255,255,.22)!important;
  border-radius:999px!important;
  font-size:12px!important;font-weight:600!important;
  white-space:nowrap!important;
}

/* --- Статистика под шапкой --- */
#fpMyWorkoutsOverlay .fp-workout-card .fp-workout-stats{
  padding:16px 0 14px!important;
  border-bottom:1px solid var(--c-line)!important;
  border-bottom-color:var(--c-line)!important;
  font-size:14px!important;
}
#fpMyWorkoutsOverlay .fp-workout-card .fp-workout-stats b{
  color:var(--c-ink)!important;font-weight:600!important;
}
#fpMyWorkoutsOverlay .fp-workout-card .fp-workout-stats span{
  color:var(--c-ink-3)!important;
}

/* --- Раскрытый список упражнений --- */
#fpMyWorkoutsOverlay .fp-workout-card .fp-workout-ex-list{
  gap:6px!important;padding:14px 0!important;
}
#fpMyWorkoutsOverlay .fp-workout-card .fp-workout-ex-list>div{
  padding:9px 12px!important;
  border-radius:12px!important;
  background:var(--c-paper)!important;
  background-image:none!important;
}
#fpMyWorkoutsOverlay .fp-workout-card .fp-workout-ex-list>div>span{
  width:24px!important;height:24px!important;
  border-radius:8px!important;
  background:var(--c-sky)!important;
  color:var(--c-blue)!important;
  font-size:11px!important;font-weight:700!important;
}
#fpMyWorkoutsOverlay .fp-workout-card .fp-workout-ex-list b{
  color:var(--c-ink)!important;font-size:14px!important;font-weight:600!important;
}
#fpMyWorkoutsOverlay .fp-workout-card .fp-workout-ex-list small{
  color:var(--c-ink-3)!important;font-size:12px!important;
}

/* --- Кнопки карточки --- */
#fpMyWorkoutsOverlay .fp-workout-card .fp-workout-collapsed-actions-v50,
#fpMyWorkoutsOverlay .fp-workout-card .fp-workout-card-actions-v52{
  gap:9px!important;margin-top:16px!important;
}
#fpMyWorkoutsOverlay .fp-workout-card .fp-workout-details-btn-v50{
  background:var(--c-white)!important;
  border-color:var(--c-line-2)!important;
  color:var(--c-ink)!important;
}
/* «Удалить» — тихая кнопка, на ховере уводим в приглушённый красный */
#fpMyWorkoutsOverlay .fp-workout-card .fp-delete-workout,
#fpMyWorkoutsOverlay .fp-workout-card .fp-delete-workout-v52{
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:999px!important;
  background:transparent!important;
  background-image:none!important;
  color:var(--c-ink-3)!important;
  font-family:var(--c-sans)!important;
  font-size:14px!important;font-weight:600!important;
  padding:12px 18px!important;
  box-shadow:none!important;
}
#fpMyWorkoutsOverlay .fp-workout-card .fp-delete-workout:hover,
#fpMyWorkoutsOverlay .fp-workout-card .fp-delete-workout-v52:hover{
  border-color:var(--c-bad)!important;color:var(--c-bad)!important;
}


/* ============================================================
   3. КАТАЛОГ ГОТОВЫХ ТРЕНИРОВОК — #fai105ReadyOverlay
      Карточка .fai203-ready-card строится как `.nl-goal`:
      фото на всю ширину + градиент к низу + текст поверх.
      styles.css:8964+ держит раскладку правилами (1,1,0) —
      раскладку не трогаем, перекрашиваем только оформление.
   ============================================================ */

#fai105ReadyOverlay.fai105-overlay{
  background:rgba(18,20,24,.5)!important;
  backdrop-filter:saturate(120%) blur(7px)!important;
}
#fai105ReadyOverlay .fai105-modal{
  background:var(--c-paper)!important;
  background-image:none!important;
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:var(--c-r-lg)!important;
  color:var(--c-ink)!important;
  box-shadow:0 40px 90px -40px rgba(18,20,24,.45)!important;
}
#fai105ReadyOverlay .fai105-head{
  padding:22px 24px!important;
  background:var(--c-white)!important;
  border-bottom:1px solid var(--c-line)!important;
  border-bottom-color:var(--c-line)!important;
}
#fai105ReadyOverlay .fai105-head small{
  color:var(--c-ink-3)!important;
  font-size:11px!important;font-weight:600!important;
  letter-spacing:.1em!important;text-transform:uppercase!important;
}
#fai105ReadyOverlay .fai105-head h2{
  margin:8px 0 6px!important;
  color:var(--c-ink)!important;
  font-family:var(--c-display)!important;
  font-size:26px!important;font-weight:600!important;letter-spacing:-.02em!important;
}
#fai105ReadyOverlay .fai105-head p{
  margin:0!important;color:var(--c-ink-2)!important;font-size:14.5px!important;
}
#fai105ReadyOverlay .fai105-head>button{
  width:42px!important;height:42px!important;
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:50%!important;
  background:var(--c-white)!important;
  color:var(--c-ink-2)!important;
  font-size:24px!important;
}
#fai105ReadyOverlay .fai105-head>button:hover{
  border-color:var(--c-line-2)!important;color:var(--c-ink)!important;
}
#fai105ReadyOverlay .fai105-grid{
  background:var(--c-paper)!important;
}

/* --- карточка готовой тренировки (фото + текст) --- */
#fai105ReadyOverlay .fai203-ready-card,
.fai83-shell .fai105-ready-card.fai203-ready-card{
  background:var(--c-white)!important;
  background-image:none!important;
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:var(--c-r-lg)!important;
  box-shadow:var(--c-shadow)!important;
  overflow:hidden!important;
  padding:0!important;
  color:var(--c-ink)!important;
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease!important;
}
#fai105ReadyOverlay .fai203-ready-card:hover,
#fai105ReadyOverlay .fai203-ready-card:focus-visible,
.fai83-shell .fai105-ready-card.fai203-ready-card:hover{
  transform:translateY(-3px)!important;
  border-color:var(--c-line-2)!important;
  box-shadow:0 30px 60px -40px rgba(18,20,24,.35)!important;
}

/* фото + градиент к низу — один в один приём `.nl-goal::after`,
   только градиент уходит в белую карточку, а не в бумагу */
#fai105ReadyOverlay .fai203-ready-photo,
.fai83-shell .fai203-ready-photo{
  background:var(--c-stone)!important;
  border-radius:0!important;
}
#fai105ReadyOverlay .fai203-ready-photo img,
.fai83-shell .fai203-ready-photo img{
  filter:saturate(.96) contrast(1.02)!important;
}
#fai105ReadyOverlay .fai203-ready-photo::after,
.fai83-shell .fai203-ready-photo::after{
  background:linear-gradient(180deg,
    rgba(18,20,24,0) 30%,
    rgba(18,20,24,.34) 58%,
    rgba(18,20,24,.78) 100%)!important;
}
/* надпись поверх фото */
#fai105ReadyOverlay .fai204-photo-copy small,
.fai83-shell .fai204-photo-copy small{
  color:rgba(255,255,255,.82)!important;
  font-family:var(--c-sans)!important;
  font-size:11px!important;font-weight:600!important;letter-spacing:.1em!important;
}
#fai105ReadyOverlay .fai204-photo-copy b,
.fai83-shell .fai204-photo-copy b{
  color:var(--c-white)!important;
  font-family:var(--c-display)!important;
  font-size:20px!important;font-weight:600!important;
  line-height:1.14!important;letter-spacing:-.02em!important;
  text-shadow:0 2px 12px rgba(18,20,24,.6)!important;
}

/* тело карточки */
#fai105ReadyOverlay .fai203-ready-body,
.fai83-shell .fai203-ready-body{
  padding:18px 20px 20px!important;
  background:var(--c-white)!important;
  background-image:none!important;
}
#fai105ReadyOverlay .fai203-ready-body>small,
.fai83-shell .fai203-ready-body>small{
  color:var(--c-ink-3)!important;
  font-size:11px!important;font-weight:600!important;
  letter-spacing:.1em!important;text-transform:uppercase!important;
}
#fai105ReadyOverlay .fai203-ready-body h3,
.fai83-shell .fai203-ready-body h3{
  margin:8px 46px 8px 0!important;
  color:var(--c-ink)!important;
  font-family:var(--c-display)!important;
  font-size:19px!important;font-weight:600!important;
  line-height:1.18!important;letter-spacing:-.02em!important;
}
#fai105ReadyOverlay .fai105-meta,
.fai83-shell .fai105-ready-card .fai105-meta{
  margin-bottom:14px!important;
  color:var(--c-ink-3)!important;
  font-size:12.5px!important;
}

/* список упражнений в карточке */
#fai105ReadyOverlay .fai105-list>div,
.fai83-shell .fai105-ready-card .fai105-list>div{
  padding:9px 0!important;
  border-top:1px solid var(--c-line)!important;
  border-top-color:var(--c-line)!important;
}
#fai105ReadyOverlay .fai105-list b,
.fai83-shell .fai105-ready-card .fai105-list b{
  color:var(--c-blue)!important;font-size:12px!important;font-weight:700!important;
}
#fai105ReadyOverlay .fai105-list span,
.fai83-shell .fai105-ready-card .fai105-list span{
  color:var(--c-ink)!important;font-size:13.5px!important;font-weight:500!important;
}
#fai105ReadyOverlay .fai105-list small,
.fai83-shell .fai105-ready-card .fai105-list small{
  color:var(--c-ink-3)!important;font-size:12px!important;
}

/* кнопка «Открыть план» — чернильная пилюля */
#fai105ReadyOverlay .fai105-details,
.fai83-shell .fai105-ready-card .fai105-details{
  margin-top:16px!important;
  padding:13px 18px!important;
  border:1px solid transparent!important;
  border-color:transparent!important;
  border-radius:999px!important;
  background:var(--c-ink)!important;
  background-image:none!important;
  color:var(--c-white)!important;
  font-family:var(--c-sans)!important;
  font-size:14px!important;font-weight:600!important;
}
#fai105ReadyOverlay .fai105-details:hover,
.fai83-shell .fai105-ready-card .fai105-details:hover{
  background:var(--c-blue-2)!important;
}

/* сердечко поверх фото */
#fai105ReadyOverlay .fai203-ready-card>.fai105-heart,
.fai83-shell .fai203-ready-card>.fai105-heart{
  width:38px!important;height:38px!important;
  border:1px solid rgba(255,255,255,.34)!important;
  border-color:rgba(255,255,255,.34)!important;
  border-radius:50%!important;
  background:rgba(18,20,24,.42)!important;
  background-image:none!important;
  backdrop-filter:blur(8px)!important;
  color:var(--c-white)!important;
  font-size:18px!important;
  box-shadow:none!important;
}
#fai105ReadyOverlay .fai203-ready-card>.fai105-heart.active,
.fai83-shell .fai203-ready-card>.fai105-heart.active{
  background:var(--c-blue)!important;
  border-color:transparent!important;
  color:var(--c-white)!important;
}

/* модалка плана готовой тренировки */
#fai105ReadyOverlay .fai203-plan-photo,
.fai83-shell .fai203-plan-photo{background:var(--c-stone)!important}
.fai83-shell .fai203-plan-photo::after,
#fai105ReadyOverlay .fai203-plan-photo::after{
  background:linear-gradient(180deg,rgba(18,20,24,.05),rgba(18,20,24,.74))!important;
}
.fai83-shell .fai203-plan-photo span,
#fai105ReadyOverlay .fai203-plan-photo span{
  color:var(--c-white)!important;
  font-family:var(--c-sans)!important;
  font-size:11px!important;font-weight:600!important;letter-spacing:.1em!important;
}
#fai105ReadyOverlay .fai105-full-list>div{
  padding:11px 0!important;
  border-top:1px solid var(--c-line)!important;
  border-top-color:var(--c-line)!important;
}
#fai105ReadyOverlay .fai105-full-list span{color:var(--c-ink)!important;font-size:14px!important}
#fai105ReadyOverlay .fai105-full-list small{color:var(--c-ink-3)!important;font-size:12px!important}


/* ============================================================
   4. ЭКРАН «КУРСЫ» — #courses
      В styles.css:6479+ всё прибито селекторами (1,1,0)/(1,2,0)
      с !important. Дублируем класс строки, чтобы выйти на
      (1,2,0)/(1,3,0) и забрать оформление, не трогая раскладку
      (grid-template-columns оставляем как есть).
   ============================================================ */

#courses .fai114-head span{
  color:var(--c-ink-3)!important;
  font-family:var(--c-sans)!important;
  font-size:11px!important;font-weight:600!important;letter-spacing:.1em!important;
}
#courses .fai114-head h2{
  margin:10px 0 8px!important;
  color:var(--c-ink)!important;
  font-family:var(--c-display)!important;
  font-size:clamp(26px,3.4vw,36px)!important;font-weight:600!important;
  letter-spacing:-.02em!important;line-height:1.08!important;
}
#courses .fai114-head p{
  margin:0!important;color:var(--c-ink-2)!important;
  font-size:15.5px!important;line-height:1.5!important;
}

/* — строка курса: белая карточка с фото — */
#courses .fai131-course-row.fai131-course-row{
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:var(--c-r-lg)!important;
  background:var(--c-white)!important;
  background-image:none!important;
  box-shadow:var(--c-shadow)!important;
  color:var(--c-ink)!important;
}
#courses .fai131-course-row.fai131-course-row:hover{
  border-color:var(--c-line-2)!important;
  box-shadow:0 30px 60px -40px rgba(18,20,24,.35)!important;
}
/* номер курса — песочная колонка слева */
#courses .fai131-course-row.fai131-course-row .fai130-course-number{
  background:var(--c-stone)!important;
  background-image:none!important;
  color:var(--c-ink-3)!important;
  font-family:var(--c-display)!important;
  font-size:22px!important;font-weight:600!important;letter-spacing:-.03em!important;
}
#courses .fai131-course-row.fai131-course-row .fai130-course-photo-wrap{
  background:var(--c-stone)!important;
  border-radius:14px!important;
  margin:8px 0 8px 8px!important;
}
#courses .fai131-course-row.fai131-course-row .fai130-course-photo-wrap:after{
  background:linear-gradient(90deg,rgba(18,20,24,0) 72%,rgba(18,20,24,.10) 100%)!important;
}
#courses .fai131-course-row.fai131-course-row .fai130-course-photo{
  filter:saturate(.96) contrast(1.02)!important;
}
#courses .fai131-course-row.fai131-course-row:hover .fai130-course-photo{
  filter:saturate(1) contrast(1.03)!important;
}
/* текстовая колонка */
#courses .fai131-course-row.fai131-course-row .fai130-course-copy{
  border-right:1px solid var(--c-line)!important;
  border-right-color:var(--c-line)!important;
  padding:20px 26px!important;
}
#courses .fai131-course-row.fai131-course-row .fai130-course-copy h3{
  color:var(--c-ink)!important;
  font-family:var(--c-display)!important;
  font-size:19px!important;font-weight:600!important;
  line-height:1.16!important;letter-spacing:-.02em!important;
}
#courses .fai131-course-row.fai131-course-row .fai130-course-copy>p{
  margin:8px 0 14px!important;
  color:var(--c-ink-2)!important;
  font-size:14px!important;line-height:1.5!important;
}
/* длительность — пилюля на пастели */
#courses .fai131-course-row.fai131-course-row .fai130-duration{
  min-height:28px!important;padding:0 12px!important;
  border:1px solid transparent!important;
  border-color:transparent!important;
  border-radius:999px!important;
  background:var(--c-sky)!important;
  background-image:none!important;
  color:var(--c-blue)!important;
  font-family:var(--c-sans)!important;
  font-size:12px!important;font-weight:600!important;letter-spacing:0!important;
}
/* правая колонка: цена и действия */
#courses .fai131-course-side .fai130-course-price b{
  color:var(--c-ink)!important;
  font-family:var(--c-display)!important;
  font-size:19px!important;font-weight:600!important;letter-spacing:-.02em!important;
}
#courses .fai131-course-side .fai130-course-price small{
  margin-top:6px!important;color:var(--c-ink-3)!important;font-size:12px!important;
}
#courses .fai131-course-actions .fai130-more{
  color:var(--c-blue)!important;
  font-family:var(--c-sans)!important;
  font-size:13px!important;font-weight:600!important;letter-spacing:0!important;
}
#courses .fai131-course-actions .fai130-course-heart{
  width:38px!important;height:38px!important;flex:0 0 38px!important;
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:50%!important;
  background:var(--c-white)!important;
  background-image:none!important;
  color:var(--c-ink-3)!important;
  font-size:18px!important;
  transition:background .18s ease,color .18s ease,border-color .18s ease!important;
}
#courses .fai131-course-actions .fai130-course-heart:hover{
  border-color:var(--c-line-2)!important;color:var(--c-ink)!important;background:var(--c-white)!important;
}
#courses .fai131-course-actions .fai130-course-heart.active{
  background:var(--c-blue)!important;border-color:transparent!important;color:var(--c-white)!important;
}

/* Модалка курса вынесена в раздел 11 (в самый низ файла).
   ВНИМАНИЕ: здесь раньше стоял неверный блок — я принял
   .fai114-modal за диалог, а .fai114-dialog за подложку.
   На самом деле наоборот: .fai114-modal — это фон-оверлей,
   .fai114-dialog — белая панель. Плюс модалка вешается на
   document.body, поэтому префиксы #courses / .fai83-shell
   к ней не применялись вообще. Подробности — в разделе 11. */


/* ============================================================
   5. ЭКРАН «УПРАЖНЕНИЯ»
      Секция без id (<section class="screen">), поэтому вес
      набираем префиксом .fai83-shell + удвоением класса.
      Противники:
        styles.css:6121-6240 .muscle-category-card.fai129-muscle-card
                             → (0,2,0) !important, тёмный градиент
        styles.css:8447      .card,.metric,.exercise-library-card,…
                             → (0,1,0) !important, общий тёмный скин
        styles.css:8155-8175 поздний оверрайд карточки упражнения
      Наши селекторы дают (0,3,0) — выше всех перечисленных.
   ============================================================ */

/* --- шапка экрана --- */
.fai83-shell .screen-head h3{
  color:var(--c-ink)!important;
  font-family:var(--c-display)!important;
  font-size:clamp(24px,3vw,32px)!important;font-weight:600!important;
  letter-spacing:-.02em!important;line-height:1.1!important;
}
.fai83-shell .screen-head .muted{
  color:var(--c-ink-3)!important;
  font-size:11px!important;font-weight:600!important;
  letter-spacing:.1em!important;text-transform:uppercase!important;
}
.fai83-shell .screen-head p.muted{
  font-size:14.5px!important;font-weight:400!important;
  letter-spacing:0!important;text-transform:none!important;
  color:var(--c-ink-2)!important;
}

/* --- плитка мышечной группы: фото справа + белая вуаль слева.
       Ровно приём `.nl-goal`, только горизонтальный. --- */
.fai83-shell .muscle-category-card.fai129-muscle-card{
  padding:22px!important;
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:var(--c-r-lg)!important;
  background:var(--c-white)!important;
  background-image:none!important;
  color:var(--c-ink)!important;
  box-shadow:var(--c-shadow)!important;
  text-align:left!important;
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease!important;
}
.fai83-shell .muscle-category-card.fai129-muscle-card:hover{
  transform:translateY(-3px)!important;
  border-color:var(--c-line-2)!important;
  box-shadow:0 30px 60px -40px rgba(18,20,24,.35)!important;
}
/* скрим поверх фото: был тёмный (rgba(21,23,27,.98)), делаем белый —
   чтобы текст слева читался по бумаге, а фото растворялось вправо */
.fai83-shell .muscle-category-card.fai129-muscle-card::before{
  background:linear-gradient(90deg,
    var(--c-white) 0%,
    rgba(255,255,255,.96) 38%,
    rgba(255,255,255,.55) 68%,
    rgba(255,255,255,0) 100%)!important;
  background-image:linear-gradient(90deg,
    var(--c-white) 0%,
    rgba(255,255,255,.96) 38%,
    rgba(255,255,255,.55) 68%,
    rgba(255,255,255,0) 100%)!important;
  opacity:1!important;
}
.fai83-shell .fai129-muscle-card .fai129-muscle-copy h4{
  color:var(--c-ink)!important;
  font-family:var(--c-display)!important;
  font-size:20px!important;font-weight:600!important;
  line-height:1.14!important;letter-spacing:-.02em!important;
}
.fai83-shell .fai129-muscle-card .fai129-muscle-copy p{
  color:var(--c-ink-2)!important;
  font-size:14px!important;line-height:1.5!important;
}
.fai83-shell .fai129-muscle-card .fai129-muscle-copy span{
  color:var(--c-blue)!important;
  font-family:var(--c-sans)!important;
  font-size:13px!important;font-weight:600!important;
}
.fai83-shell .fai129-muscle-card .fai129-muscle-copy span b{
  color:var(--c-blue)!important;font-size:15px!important;
}
/* фото: убираем «тёмную» коррекцию, маску оставляем как есть —
   она отвечает за плавный край и к цветам отношения не имеет */
.fai83-shell .fai129-muscle-card .fai129-muscle-art img{
  opacity:1!important;
  filter:saturate(.95) contrast(1.02)!important;
}

/* --- панель упражнений группы --- */
.fai83-shell #muscleExercisePanel .card.muscle-exercise-panel{
  background:var(--c-white)!important;
  background-image:none!important;
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:var(--c-r-lg)!important;
  box-shadow:var(--c-shadow)!important;
  color:var(--c-ink)!important;
}
.fai83-shell #muscleExercisePanel .muscle-exercise-head small{
  color:var(--c-ink-3)!important;
  font-size:11px!important;font-weight:600!important;
  letter-spacing:.1em!important;text-transform:uppercase!important;
}
.fai83-shell #muscleExercisePanel .muscle-exercise-head h3{
  color:var(--c-ink)!important;
  font-family:var(--c-display)!important;
  font-size:22px!important;font-weight:600!important;letter-spacing:-.02em!important;
}

/* --- карточка упражнения (фото слева + текст) --- */
.fai83-shell .exercise-library-card.exercise-library-card{
  background:var(--c-white)!important;
  background-image:none!important;
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:var(--c-r)!important;
  box-shadow:none!important;
  color:var(--c-ink)!important;
  overflow:hidden!important;
  transition:border-color .2s ease,box-shadow .2s ease!important;
}
.fai83-shell .exercise-library-card.exercise-library-card:hover{
  border-color:var(--c-line-2)!important;
  box-shadow:var(--c-shadow)!important;
  transform:none!important;
}
.fai83-shell .exercise-library-card.exercise-library-card h4{
  margin:6px 0 4px!important;
  color:var(--c-ink)!important;
  font-family:var(--c-display)!important;
  font-size:15px!important;font-weight:600!important;
  line-height:1.2!important;letter-spacing:-.02em!important;
}
.fai83-shell .exercise-library-card.exercise-library-card small{
  color:var(--c-ink-3)!important;
  font-size:11px!important;font-weight:600!important;letter-spacing:.06em!important;
}
.fai83-shell .exercise-library-card.exercise-library-card p{
  margin:0!important;color:var(--c-ink-2)!important;font-size:12.5px!important;
}
.fai83-shell .exercise-library-card .fai159-card-photo{
  background:var(--c-stone)!important;
  background-image:none!important;
}
.fai83-shell .exercise-library-card .fai159-card-photo img{
  filter:saturate(.95) contrast(1.02)!important;
  opacity:1!important;
}
/* плейсхолдер без фото */
.fai83-shell .exercise-library-card .exercise-visual{
  background:var(--c-stone)!important;
  background-image:none!important;
  border-radius:12px!important;
}
/* кнопка «Техника» — призрачная пилюля */
.fai83-shell .exercise-library-card .exercise-actions button{
  border:1px solid var(--c-line-2)!important;
  border-color:var(--c-line-2)!important;
  border-radius:999px!important;
  background:var(--c-white)!important;
  background-image:none!important;
  color:var(--c-ink)!important;
  font-family:var(--c-sans)!important;
  font-size:13px!important;font-weight:600!important;
  padding:9px 16px!important;
  box-shadow:none!important;
}
.fai83-shell .exercise-library-card .exercise-actions button:hover{
  border-color:var(--c-ink)!important;background:var(--c-white)!important;
}
/* сердечко */
.fai83-shell .exercise-library-card .exercise-heart{
  width:36px!important;height:36px!important;
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:50%!important;
  background:var(--c-white)!important;
  background-image:none!important;
  color:var(--c-ink-3)!important;
  font-size:18px!important;
  box-shadow:none!important;
}
.fai83-shell .exercise-library-card .exercise-heart.active{
  background:var(--c-blue)!important;
  border-color:transparent!important;
  color:var(--c-white)!important;
  box-shadow:none!important;
}


/* ============================================================
   6. МОДАЛКИ ТЕХНИКИ УПРАЖНЕНИЯ
      а) #fai137TechniqueOverlay (из курсов и планов)
         styles.css:6650 — вся плашка на bare-классах с !important,
         но наш файл подключён позже, а id-префикс поднимает нас
         до (1,1,0) — выигрываем с запасом.
      б) #fp14modal (из карточки упражнения)
   ============================================================ */

#fai137TechniqueOverlay.fai137-tech-overlay,
#fp14modal.fp14-overlay{
  background:rgba(18,20,24,.5)!important;
  backdrop-filter:saturate(120%) blur(10px)!important;
}
#fai137TechniqueOverlay .fai137-tech-modal,
#fp14modal .fp14-modal{
  background:var(--c-white)!important;
  background-image:none!important;
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:var(--c-r-lg)!important;
  color:var(--c-ink)!important;
  box-shadow:0 40px 90px -40px rgba(18,20,24,.45)!important;
}
#fai137TechniqueOverlay .fai137-tech-head,
#fp14modal .fp14-modal-head{
  padding:20px 24px!important;
  background:var(--c-white)!important;
  background-image:none!important;
  border-bottom:1px solid var(--c-line)!important;
  border-bottom-color:var(--c-line)!important;
}
#fai137TechniqueOverlay .fai137-tech-head small{
  color:var(--c-ink-3)!important;
  font-size:11px!important;font-weight:600!important;
  letter-spacing:.1em!important;text-transform:uppercase!important;
}
#fai137TechniqueOverlay .fai137-tech-head h2,
#fp14modal .fp14-modal-head h3{
  margin:8px 0 0!important;
  color:var(--c-ink)!important;
  font-family:var(--c-display)!important;
  font-size:22px!important;font-weight:600!important;letter-spacing:-.02em!important;
}
#fai137TechniqueOverlay .fai137-tech-head button,
#fp14modal .fp14-modal-head button{
  width:40px!important;height:40px!important;
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:50%!important;
  background:var(--c-white)!important;
  color:var(--c-ink-2)!important;
  font-size:23px!important;
}
#fai137TechniqueOverlay .fai137-tech-body,
#fp14modal .fp14-modal-body{
  padding:22px 24px 26px!important;
  background:var(--c-white)!important;
}
#fai137TechniqueOverlay .fai137-tech-body>p,
#fp14modal .fp14-modal-body p{
  color:var(--c-ink-2)!important;font-size:14.5px!important;line-height:1.6!important;
}
/* фото техники: object-fit:contain намеренно, не трогаем — меняем подложку */
#fai137TechniqueOverlay .fai137-tech-body>.fai159-course-photo{
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:var(--c-r)!important;
  background:var(--c-stone)!important;
}
#fai137TechniqueOverlay .fai137-tech-body>.fai159-course-photo img{
  background:var(--c-stone)!important;
}
#fp14modal .fai159-tech-photo{
  border:1px solid var(--c-line)!important;
  border-radius:var(--c-r)!important;
  background:var(--c-stone)!important;
}

/* блоки «мышцы / шаги / ошибка» */
#fai137TechniqueOverlay .fai137-tech-muscles,
#fai137TechniqueOverlay .fai137-tech-steps{
  padding:16px 18px!important;
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:var(--c-r)!important;
  background:var(--c-paper)!important;
  background-image:none!important;
}
#fai137TechniqueOverlay .fai137-tech-muscles{
  background:var(--c-sky)!important;
  border-color:transparent!important;
}
#fai137TechniqueOverlay .fai137-tech-muscles small{
  color:var(--c-blue)!important;
  font-size:10px!important;font-weight:600!important;letter-spacing:.1em!important;
}
#fai137TechniqueOverlay .fai137-tech-muscles b{
  color:var(--c-ink)!important;font-size:15px!important;font-weight:600!important;
}
#fai137TechniqueOverlay .fai137-tech-steps h3{
  color:var(--c-ink)!important;
  font-family:var(--c-display)!important;
  font-size:16px!important;font-weight:600!important;letter-spacing:-.02em!important;
}
#fai137TechniqueOverlay .fai137-tech-steps li,
#fp14modal .bench-technique li,
#fp14modal .technique-content ol li{
  color:var(--c-ink-2)!important;font-size:14px!important;line-height:1.6!important;
}
#fai137TechniqueOverlay .fai137-tech-steps li::marker{
  color:var(--c-blue)!important;font-weight:700!important;
}
/* «частая ошибка» — песочная плашка вместо тёмно-коричневой */
#fai137TechniqueOverlay .fai137-tech-warning{
  padding:16px 18px!important;
  border:1px solid transparent!important;
  border-color:transparent!important;
  border-radius:var(--c-r)!important;
  background:var(--c-sand)!important;
  background-image:none!important;
}
#fai137TechniqueOverlay .fai137-tech-warning b{
  color:var(--c-brass-ink)!important;font-size:13px!important;font-weight:600!important;
}
#fai137TechniqueOverlay .fai137-tech-warning span{
  color:var(--c-ink-2)!important;font-size:13.5px!important;line-height:1.5!important;
}
#fp14modal .extra-hint{
  padding:14px 16px!important;
  border-radius:var(--c-r)!important;
  background:var(--c-sand)!important;
  color:var(--c-ink-2)!important;
}


/* ============================================================
   7. ЭКРАН «ПРОГРЕСС»
      .progress-section — это .card, а .card перехвачен
      styles.css:8447 (0,1,0)!important и styles.css:8465 (.metric).
      Берём .fai83-shell .card.progress-section = (0,3,0).
      Графики — инлайновый <svg>, базовые правила без !important.
   ============================================================ */

.fai83-shell .card.progress-section{
  margin-top:18px!important;
  padding:24px!important;
  background:var(--c-white)!important;
  background-image:none!important;
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:var(--c-r-lg)!important;
  box-shadow:var(--c-shadow)!important;
  color:var(--c-ink)!important;
}
.fai83-shell .card.progress-section .progress-section-head h4{
  margin:0 0 6px!important;
  color:var(--c-ink)!important;
  font-family:var(--c-display)!important;
  font-size:20px!important;font-weight:600!important;letter-spacing:-.02em!important;
}
.fai83-shell .card.progress-section .progress-section-head p.muted{
  color:var(--c-ink-2)!important;
  font-size:14px!important;font-weight:400!important;
  letter-spacing:0!important;text-transform:none!important;
}

/* --- три метрики сверху --- */
.fai83-shell .progress-row .metric{
  padding:18px!important;
  background:var(--c-white)!important;
  background-image:none!important;
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:var(--c-r)!important;
  box-shadow:none!important;
}
.fai83-shell .progress-row .metric span{
  color:var(--c-ink-3)!important;
  font-size:11px!important;font-weight:600!important;
  letter-spacing:.1em!important;text-transform:uppercase!important;
}
.fai83-shell .progress-row .metric b{
  color:var(--c-ink)!important;
  font-family:var(--c-display)!important;
  font-size:26px!important;font-weight:600!important;letter-spacing:-.03em!important;
  font-variant-numeric:tabular-nums!important;
}
.fai83-shell .progress-row .metric span:last-child{
  color:var(--c-blue)!important;
  letter-spacing:0!important;text-transform:none!important;font-size:12px!important;
}

/* --- графики (inline svg) --- */
.fai83-shell .progress-chart .chart-line{
  stroke:var(--c-blue)!important;stroke-width:3!important;fill:none!important;
}
.fai83-shell .progress-chart .chart-dot{
  fill:var(--c-blue)!important;stroke:var(--c-white)!important;stroke-width:3!important;
}
.fai83-shell .progress-chart .chart-grid{
  stroke:var(--c-line)!important;stroke-width:1!important;
}
.fai83-shell .progress-chart .chart-label{
  fill:var(--c-ink-3)!important;
  font-family:var(--c-sans)!important;font-size:11px!important;
}
.fai83-shell .card.progress-section .fai88-no-strength{
  padding:26px!important;
  border:1px dashed var(--c-line-2)!important;
  border-radius:var(--c-r)!important;
  background:var(--c-paper)!important;
  color:var(--c-ink-3)!important;
}

/* --- ввод веса / силового результата --- */
.fai83-shell .weight-entry input,
.fai83-shell .fai79-strength-entry input{
  border:1px solid var(--c-line-2)!important;
  border-color:var(--c-line-2)!important;
  border-radius:12px!important;
  background:var(--c-white)!important;
  color:var(--c-ink)!important;
  font-family:var(--c-sans)!important;
  font-size:15px!important;font-weight:600!important;
  padding:12px 13px!important;
}
.fai83-shell .weight-entry input:focus,
.fai83-shell .fai79-strength-entry input:focus{
  border-color:var(--c-blue-3)!important;outline:none!important;
}
.fai83-shell .weight-entry label,
.fai83-shell .fai79-strength-entry small{
  color:var(--c-ink-3)!important;font-size:12px!important;
}
/* кнопки «+» на экране прогресса — чернильные пилюли */
.fai83-shell .card.progress-section .btn.accent,
.fai83-shell .screen-head .btn.accent{
  border:1px solid transparent!important;
  border-color:transparent!important;
  border-radius:999px!important;
  background:var(--c-ink)!important;
  background-image:none!important;
  color:var(--c-white)!important;
  font-family:var(--c-sans)!important;
  font-size:14px!important;font-weight:600!important;
  padding:13px 20px!important;
  box-shadow:none!important;
  text-transform:none!important;
}
.fai83-shell .card.progress-section .btn.accent:hover,
.fai83-shell .screen-head .btn.accent:hover{
  background:var(--c-blue-2)!important;border-color:transparent!important;
}

/* --- чипсы истории веса --- */
.fai83-shell .history-chips span{
  padding:10px 12px!important;
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:999px!important;
  background:var(--c-paper)!important;
  background-image:none!important;
}
.fai83-shell .history-chips b{
  color:var(--c-ink)!important;font-size:14px!important;font-weight:600!important;
  font-variant-numeric:tabular-nums!important;
}
.fai83-shell .history-chips small{color:var(--c-ink-3)!important;font-size:11px!important}

/* --- силовые показатели --- */
.fai83-shell .strength-stats>div{
  padding:15px!important;
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:var(--c-r)!important;
  background:var(--c-paper)!important;
  background-image:none!important;
}
.fai83-shell .strength-stats>div span{
  color:var(--c-ink-3)!important;
  font-size:11px!important;font-weight:600!important;
  letter-spacing:.08em!important;text-transform:uppercase!important;
}
.fai83-shell .strength-stats>div b{
  color:var(--c-ink)!important;
  font-family:var(--c-display)!important;
  font-size:20px!important;font-weight:600!important;letter-spacing:-.03em!important;
  font-variant-numeric:tabular-nums!important;
}
.fai83-shell .strength-stats .editable-strength-stat{
  background:var(--c-sky)!important;border-color:transparent!important;
}
.fai83-shell .strength-stats .editable-strength-stat span{color:var(--c-blue)!important}
.fai83-shell .strength-detail{
  border-top:1px solid var(--c-line)!important;
  border-top-color:var(--c-line)!important;
  color:var(--c-ink-3)!important;font-size:12px!important;
}
.fai83-shell .strength-detail b{color:var(--c-ink)!important;font-weight:600!important}
/* селектор упражнения */
.fai83-shell .fai88-exercise-select{
  border:1px solid var(--c-line-2)!important;
  border-color:var(--c-line-2)!important;
  border-radius:999px!important;
  background:var(--c-white)!important;
  background-image:none!important;
  color:var(--c-ink)!important;
  font-family:var(--c-sans)!important;
  font-size:14px!important;font-weight:600!important;
  padding:11px 16px!important;
}
.fai83-shell .fai88-exercise-select b{
  color:var(--c-ink-3)!important;font-size:14px!important;
}

/* --- замеры тела --- */
.fai83-shell .fai79-body-kpis>div{
  padding:15px!important;
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:var(--c-r)!important;
  background:var(--c-paper)!important;
}
.fai83-shell .fai79-body-kpis>div span{
  color:var(--c-ink-3)!important;
  font-size:11px!important;font-weight:600!important;
  letter-spacing:.08em!important;text-transform:uppercase!important;
}
.fai83-shell .fai79-body-kpis>div b{
  color:var(--c-ink)!important;
  font-family:var(--c-display)!important;
  font-size:19px!important;font-weight:600!important;letter-spacing:-.03em!important;
  font-variant-numeric:tabular-nums!important;
}
.fai83-shell .fai79-measure-history>div{
  padding:12px 14px!important;
  border-radius:12px!important;
  background:var(--c-paper)!important;
}
.fai83-shell .fai79-measure-history>div span{color:var(--c-ink-3)!important;font-size:12px!important}
.fai83-shell .fai79-measure-history>div b{color:var(--c-ink)!important;font-weight:600!important}
.fai83-shell .fai79-measure-history>div small{color:var(--c-ink-2)!important;font-size:12px!important}
/* стрелки динамики: вниз (похудение) — приглушённый зелёный из токенов,
   вверх — приглушённый красный. Неона нет. */
.fai83-shell .fai88-arrow.down{color:var(--c-good)!important}
.fai83-shell .fai88-arrow.up{color:var(--c-bad)!important}
.fai83-shell .fai79-empty,
.fai83-shell .fai79-empty-photo{
  border:1px dashed var(--c-line-2)!important;
  border-color:var(--c-line-2)!important;
  border-radius:var(--c-r)!important;
  background:var(--c-paper)!important;
  color:var(--c-ink-3)!important;
}
.fai83-shell .fai79-empty-photo b{color:var(--c-ink)!important;font-weight:600!important}

/* --- фото прогресса --- */
.fai83-shell .fai79-photo-item{
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:var(--c-r)!important;
  background:var(--c-stone)!important;
  overflow:hidden!important;
}
.fai83-shell .fai79-photo-item span{color:var(--c-ink-3)!important;font-size:12px!important}
.fai83-shell .fai79-photo-item button{
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:999px!important;
  background:var(--c-white)!important;
  color:var(--c-ink-3)!important;
  font-size:12px!important;font-weight:600!important;padding:7px 12px!important;
}
.fai83-shell .fai79-photo-item button:hover{
  border-color:var(--c-bad)!important;color:var(--c-bad)!important;
}

/* --- модалка замеров и пикер упражнения --- */
#fai79MeasurementModal.fai79-overlay,
#fai88ExercisePicker.fai88-overlay{
  background:rgba(18,20,24,.5)!important;
  backdrop-filter:saturate(120%) blur(8px)!important;
}
#fai79MeasurementModal .fai79-modal,
#fai88ExercisePicker .fai88-picker{
  background:var(--c-white)!important;
  background-image:none!important;
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:var(--c-r-lg)!important;
  color:var(--c-ink)!important;
  box-shadow:0 40px 90px -40px rgba(18,20,24,.45)!important;
}
#fai79MeasurementModal .fai79-modal-head,
#fai88ExercisePicker .fai88-picker-head{
  padding:20px 22px!important;
  border-bottom:1px solid var(--c-line)!important;
  border-bottom-color:var(--c-line)!important;
  background:var(--c-white)!important;
}
#fai79MeasurementModal .fai79-modal-head small,
#fai88ExercisePicker .fai88-picker-head small{
  color:var(--c-ink-3)!important;
  font-size:11px!important;font-weight:600!important;
  letter-spacing:.1em!important;text-transform:uppercase!important;
}
#fai79MeasurementModal .fai79-modal-head h3,
#fai88ExercisePicker .fai88-picker-head h3{
  margin:8px 0 0!important;
  color:var(--c-ink)!important;
  font-family:var(--c-display)!important;
  font-size:21px!important;font-weight:600!important;letter-spacing:-.02em!important;
}
#fai79MeasurementModal .fai79-modal-head button,
#fai88ExercisePicker .fai88-picker-head button{
  width:40px!important;height:40px!important;
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:50%!important;
  background:var(--c-white)!important;
  color:var(--c-ink-2)!important;font-size:23px!important;
}
#fai79MeasurementModal .fai79-form label span{
  color:var(--c-ink-3)!important;font-size:12px!important;font-weight:600!important;
}
#fai79MeasurementModal .fai79-form input,
#fai88ExercisePicker input{
  border:1px solid var(--c-line-2)!important;
  border-color:var(--c-line-2)!important;
  border-radius:12px!important;
  background:var(--c-white)!important;
  color:var(--c-ink)!important;
  font-family:var(--c-sans)!important;font-size:15px!important;
}
#fai79MeasurementModal .fai79-form input:focus,
#fai88ExercisePicker input:focus{border-color:var(--c-blue-3)!important;outline:none!important}
#fai79MeasurementModal .fai79-form b{color:var(--c-ink-3)!important;font-size:12px!important}
#fai79MeasurementModal .fai79-actions{
  padding:16px 22px!important;
  border-top:1px solid var(--c-line)!important;
  border-top-color:var(--c-line)!important;
  background:var(--c-paper)!important;
}
#fai79MeasurementModal .fai79-actions .btn{
  border:1px solid var(--c-line-2)!important;
  border-color:var(--c-line-2)!important;
  border-radius:999px!important;
  background:var(--c-white)!important;
  color:var(--c-ink)!important;
  font-family:var(--c-sans)!important;font-size:14px!important;font-weight:600!important;
  box-shadow:none!important;
}
#fai79MeasurementModal .fai79-actions .btn.accent{
  background:var(--c-ink)!important;border-color:transparent!important;color:var(--c-white)!important;
}
#fai88ExercisePicker .fai88-ex-list button{
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:12px!important;
  background:var(--c-white)!important;
  color:var(--c-ink)!important;
  font-family:var(--c-sans)!important;font-size:14px!important;
}
#fai88ExercisePicker .fai88-ex-list button:hover{border-color:var(--c-line-2)!important}
#fai88ExercisePicker .fai88-ex-list button.active{
  border-color:transparent!important;background:var(--c-sky)!important;color:var(--c-blue)!important;
}
#fai88ExercisePicker .fai88-ex-list button b{color:var(--c-ink-3)!important;font-size:12px!important}


/* ============================================================
   8. РАННЕР ТРЕНИРОВКИ — #fpWorkoutRunnerV47
      Три инжектируемых блока (fai252 / fai262 / fai268) сидят
      на префиксе #fpWorkoutRunnerV47 = (1,1,0) и стоят в
      документе ПОСЛЕ нас — значит при равной специфичности
      выигрывают они. Поэтому у оформительских правил удваиваем
      класс → (1,2,0). РАСКЛАДКУ (grid/flex/position/z-index)
      НЕ ТРОГАЕМ: она у них выверена под мобильную панель.
   ============================================================ */

#fpWorkoutRunnerV47.fp-runner-overlay-v47{
  background:var(--c-paper)!important;
  background-image:none!important;
  color:var(--c-ink)!important;
}
#fpWorkoutRunnerV47 .fp-runner-shell-v47.fp-runner-shell-v47{
  background:var(--c-paper)!important;
  background-image:none!important;
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:var(--c-r-lg)!important;
  color:var(--c-ink)!important;
}

/* --- шапка раннера --- */
#fpWorkoutRunnerV47 .fp-runner-head-v47.fp-runner-head-v47{
  padding:18px 22px!important;
  background:var(--c-white)!important;
  background-image:none!important;
  border-bottom:1px solid var(--c-line)!important;
  border-bottom-color:var(--c-line)!important;
}
#fpWorkoutRunnerV47 .fp-runner-head-v47 small{
  color:var(--c-ink-3)!important;
  font-size:11px!important;font-weight:600!important;
  letter-spacing:.1em!important;text-transform:uppercase!important;
}
#fpWorkoutRunnerV47 .fp-runner-head-v47 h2{
  margin:8px 0 4px!important;
  color:var(--c-ink)!important;
  font-family:var(--c-display)!important;
  font-size:23px!important;font-weight:600!important;
  line-height:1.14!important;letter-spacing:-.02em!important;
}
#fpWorkoutRunnerV47 .fp-runner-head-v47 p{
  margin:0!important;color:var(--c-ink-2)!important;font-size:14px!important;
}
#fpWorkoutRunnerV47 .fp-runner-head-v47>button{
  width:42px!important;height:42px!important;
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:50%!important;
  background:var(--c-white)!important;
  background-image:none!important;
  color:var(--c-ink-2)!important;font-size:24px!important;
}

/* --- фото упражнения (высоту задаёт fai252, её не трогаем) --- */
#fpWorkoutRunnerV47 .fp-runner-photo-v243.fp-runner-photo-v243{
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:var(--c-r-lg)!important;
  background:var(--c-stone)!important;
  background-image:none!important;
  overflow:hidden!important;
}
#fpWorkoutRunnerV47 .fp-runner-photo-v243 img{
  filter:saturate(.96) contrast(1.02)!important;
}
#fpWorkoutRunnerV47 .fp-runner-visual-v47.fp-runner-visual-v47{
  background:transparent!important;
  background-image:none!important;
  border-color:var(--c-line)!important;
  color:var(--c-ink)!important;
}
#fpWorkoutRunnerV47 .fp-runner-animation-v47{
  background:var(--c-stone)!important;
  background-image:none!important;
  border-radius:var(--c-r-lg)!important;
}

/* --- навигация по упражнениям --- */
#fpWorkoutRunnerV47 .fp-runner-ex-nav-v47 button{
  padding:10px!important;
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:12px!important;
  background:var(--c-white)!important;
  background-image:none!important;
  color:var(--c-ink)!important;
  font-family:var(--c-sans)!important;
  text-align:left!important;
}
#fpWorkoutRunnerV47 .fp-runner-ex-nav-v47 button span{
  width:28px!important;height:28px!important;
  border-radius:8px!important;
  background:var(--c-stone)!important;
  color:var(--c-ink-2)!important;
  font-size:12px!important;font-weight:700!important;
}
#fpWorkoutRunnerV47 .fp-runner-ex-nav-v47 button b{
  color:var(--c-ink)!important;font-size:13px!important;font-weight:600!important;
}
#fpWorkoutRunnerV47 .fp-runner-ex-nav-v47 button.active{
  border-color:var(--c-blue)!important;background:var(--c-sky)!important;
}
#fpWorkoutRunnerV47 .fp-runner-ex-nav-v47 button.active span{
  background:var(--c-blue)!important;color:var(--c-white)!important;
}
#fpWorkoutRunnerV47 .fp-runner-ex-nav-v47 button.done{opacity:.55!important}
#fpWorkoutRunnerV47 .fp-runner-ex-nav-v47 button.done span{
  background:var(--c-good)!important;color:var(--c-white)!important;
}

/* --- журнал подходов --- */
#fpWorkoutRunnerV47 .fp-runner-log-v47.fp-runner-log-v47{
  padding:18px!important;
  background:var(--c-white)!important;
  background-image:none!important;
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:var(--c-r-lg)!important;
  box-shadow:var(--c-shadow)!important;
  color:var(--c-ink)!important;
}
#fpWorkoutRunnerV47 .fp-runner-log-head-v47 small{
  color:var(--c-ink-3)!important;
  font-size:11px!important;font-weight:600!important;
  letter-spacing:.1em!important;text-transform:uppercase!important;
}
#fpWorkoutRunnerV47 .fp-runner-log-head-v47 h3{
  margin:8px 0 0!important;
  color:var(--c-ink)!important;
  font-family:var(--c-display)!important;
  font-size:18px!important;font-weight:600!important;letter-spacing:-.02em!important;
}
#fpWorkoutRunnerV47 .fp-runner-log-head-v47 span{
  color:var(--c-blue)!important;font-size:13px!important;font-weight:600!important;
}
#fpWorkoutRunnerV47 .fp-runner-set-labels-v47 span{
  color:var(--c-ink-3)!important;
  font-size:10.5px!important;font-weight:600!important;
  letter-spacing:.08em!important;text-transform:uppercase!important;
}

/* строка подхода */
#fpWorkoutRunnerV47 .fp-runner-set-v47.fp-runner-set-v47{
  padding:9px!important;
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:12px!important;
  background:var(--c-paper)!important;
  background-image:none!important;
  transition:background .18s ease,border-color .18s ease!important;
}
#fpWorkoutRunnerV47 .fp-runner-set-v47.fp-runner-set-v47.done{
  background:var(--c-sky)!important;
  border-color:transparent!important;
}
#fpWorkoutRunnerV47 .fp-runner-set-v47>b{
  color:var(--c-ink-2)!important;
  font-size:14px!important;font-weight:600!important;
  font-variant-numeric:tabular-nums!important;
}
/* поля веса и повторений: 16px, чтобы iOS не зумил */
#fpWorkoutRunnerV47 .fp-runner-set-v47 input{
  border:1px solid var(--c-line-2)!important;
  border-color:var(--c-line-2)!important;
  border-radius:10px!important;
  background:var(--c-white)!important;
  color:var(--c-ink)!important;
  font-family:var(--c-sans)!important;
  font-size:16px!important;font-weight:600!important;
  text-align:center!important;
  font-variant-numeric:tabular-nums!important;
}
#fpWorkoutRunnerV47 .fp-runner-set-v47 input:focus{
  border-color:var(--c-blue-3)!important;outline:none!important;
}
#fpWorkoutRunnerV47 .fp-runner-set-v47 input::placeholder{
  color:var(--c-ink-3)!important;font-weight:400!important;
}

/* галка «подход выполнен» — синяя, без неонового свечения */
#fpWorkoutRunnerV47 .fp-set-check-v47.fp-set-check-v47{
  width:42px!important;height:42px!important;
  border:1px solid var(--c-line-2)!important;
  border-color:var(--c-line-2)!important;
  border-radius:50%!important;
  background:var(--c-white)!important;
  background-image:none!important;
  color:var(--c-ink-3)!important;
  font-family:var(--c-sans)!important;
  font-size:19px!important;font-weight:600!important;line-height:1!important;
  box-shadow:none!important;
  transition:background .16s ease,border-color .16s ease,color .16s ease!important;
}
#fpWorkoutRunnerV47 .fp-set-check-v47.fp-set-check-v47:hover{
  border-color:var(--c-ink)!important;color:var(--c-ink)!important;
}
#fpWorkoutRunnerV47 .fp-set-check-v47.fp-set-check-v47.active{
  background:var(--c-blue)!important;
  border-color:var(--c-blue)!important;
  color:var(--c-white)!important;
  box-shadow:none!important;
}

/* подсказка по повторениям — песочная плашка */
#fpWorkoutRunnerV47 .fp-rep-guidance-v47{
  padding:15px 16px!important;
  border-radius:var(--c-r)!important;
  background:var(--c-sand)!important;
  background-image:none!important;
  border:1px solid transparent!important;
  border-color:transparent!important;
}
#fpWorkoutRunnerV47 .fp-rep-guide-title-v48 b{
  color:var(--c-brass-ink)!important;font-size:14px!important;font-weight:600!important;
}
#fpWorkoutRunnerV47 .fp-rep-guidance-v47 p{
  color:var(--c-ink-2)!important;font-size:13.5px!important;line-height:1.5!important;
}
#fpWorkoutRunnerV47 .fp-rep-guide-note-v48 b{
  color:var(--c-ink)!important;font-size:13px!important;font-weight:600!important;
}

/* кнопки раннера (ширину/раскладку задаёт fai268 — только цвет) */
#fpWorkoutRunnerV47 .fp-runner-actions-v47 .btn{
  border:1px solid var(--c-line-2)!important;
  border-color:var(--c-line-2)!important;
  border-radius:999px!important;
  background:var(--c-white)!important;
  background-image:none!important;
  color:var(--c-ink)!important;
  font-family:var(--c-sans)!important;
  font-size:15px!important;font-weight:600!important;
  letter-spacing:0!important;text-transform:none!important;
  box-shadow:none!important;
}
#fpWorkoutRunnerV47 .fp-runner-actions-v47 .btn.accent{
  background:var(--c-ink)!important;
  border-color:transparent!important;
  color:var(--c-white)!important;
}
#fpWorkoutRunnerV47 .fp-runner-actions-v47 .btn.accent:hover{
  background:var(--c-blue-2)!important;
}
#fpWorkoutRunnerV47 .fp-runner-actions-v47 .btn:disabled{
  opacity:.4!important;
}
#fpWorkoutRunnerV47 .fp-finish-early-v47{
  background:transparent!important;
  border-color:var(--c-line)!important;
  color:var(--c-ink-3)!important;
}
#fpWorkoutRunnerV47 .fp-runner-visual-v47>.btn{
  border:1px solid var(--c-line-2)!important;
  border-color:var(--c-line-2)!important;
  border-radius:999px!important;
  background:var(--c-white)!important;
  color:var(--c-ink)!important;
  font-family:var(--c-sans)!important;font-size:14px!important;font-weight:600!important;
  box-shadow:none!important;
}

/* нижняя полоса прогресса */
#fpWorkoutRunnerV47 .fp-runner-progress-v47{
  padding:14px 22px!important;
  border-top:1px solid var(--c-line)!important;
  border-top-color:var(--c-line)!important;
  background:var(--c-white)!important;
  background-image:none!important;
}
#fpWorkoutRunnerV47 .fp-runner-progress-v47 span{
  color:var(--c-ink-3)!important;
  font-size:11px!important;font-weight:600!important;
  letter-spacing:.1em!important;text-transform:uppercase!important;
}
#fpWorkoutRunnerV47 .fp-runner-progress-v47 b{
  color:var(--c-ink)!important;font-size:14px!important;font-weight:600!important;
}

/* модалка «закончить тренировку» */
#fpFinishWorkoutModalV48.fp-finish-modal-overlay-v48{
  background:rgba(18,20,24,.5)!important;
  backdrop-filter:saturate(120%) blur(8px)!important;
}
#fpFinishWorkoutModalV48 .fp-finish-modal-v48{
  background:var(--c-white)!important;
  background-image:none!important;
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:var(--c-r-lg)!important;
  color:var(--c-ink)!important;
  box-shadow:0 40px 90px -40px rgba(18,20,24,.45)!important;
}
#fpFinishWorkoutModalV48 .fp-finish-modal-head-v48{
  border-bottom:1px solid var(--c-line)!important;
  border-bottom-color:var(--c-line)!important;
  background:var(--c-white)!important;
}
#fpFinishWorkoutModalV48 .fp-finish-modal-head-v48 h3{
  color:var(--c-ink)!important;
  font-family:var(--c-display)!important;
  font-size:20px!important;font-weight:600!important;letter-spacing:-.02em!important;
}
#fpFinishWorkoutModalV48 .fp-finish-modal-body-v48 p{
  color:var(--c-ink-2)!important;font-size:14.5px!important;line-height:1.55!important;
}
#fpFinishWorkoutModalV48 .fp-finish-modal-actions-v48{
  border-top:1px solid var(--c-line)!important;
  border-top-color:var(--c-line)!important;
  background:var(--c-paper)!important;
}
#fpFinishWorkoutModalV48 .fp-finish-modal-actions-v48 .btn{
  border:1px solid var(--c-line-2)!important;
  border-color:var(--c-line-2)!important;
  border-radius:999px!important;
  background:var(--c-white)!important;
  color:var(--c-ink)!important;
  font-family:var(--c-sans)!important;font-size:14px!important;font-weight:600!important;
  box-shadow:none!important;
}
#fpFinishWorkoutModalV48 .fp-finish-modal-actions-v48 .btn.accent{
  background:var(--c-ink)!important;border-color:transparent!important;color:var(--c-white)!important;
}


/* ============================================================
   9. МОБИЛЬНАЯ ШИРИНА (≤600px)
      Отдельный блок нужен потому, что app.js инжектит большой
      @media(max-width:700px) (fai235-mobile-drawer-style) и там
      всё снова красится в тёмно-зелёное bare-классами (0,1,0)/(0,2,0).
      Наши id-префиксы дают (1,1,0)+ и перекрывают его на любом
      вьюпорте, но типографику и отступы правим именно тут.
      Раскладку (grid-template-columns, position фиксированной
      панели действий) НЕ переопределяем.
   ============================================================ */

/* Фото карточки упражнения: в инжекте ему дают зелёную рамку и
   тёмный фон (только ≤700px). Правило (0,3,0) снимает это
   независимо от ширины. */
.fai83-shell .exercise-library-card .fai241-exercise-card-photo{
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  background:var(--c-stone)!important;
  background-image:none!important;
}

@media(max-width:600px){

  /* — экран «Тренировки» — */
  .fai83-shell .ready-workout-card.ready-workout-card{
    padding:18px!important;border-radius:var(--c-r)!important;
  }
  .fai83-shell .ready-workout-card .ready-workout-title h3{font-size:19px!important}
  .fai83-shell .ready-workout-card .ready-workout-title p{font-size:13.5px!important}
  .fai83-shell .ready-workout-card .ready-workout-heart{
    top:14px!important;right:14px!important;width:36px!important;height:36px!important;
  }
  .fai83-shell .ready-workout-card .ready-workout-exercises>div{padding:11px 12px!important}
  .fai83-shell .ready-workout-card .ready-workout-exercises b{font-size:13.5px!important}

  /* — «Мои тренировки» — */
  #fpMyWorkoutsOverlay.fp-my-workouts-overlay{
    background:var(--c-paper)!important;backdrop-filter:none!important;
  }
  #fpMyWorkoutsOverlay .fp-my-workouts-shell{
    background:var(--c-paper)!important;border:0!important;border-radius:0!important;box-shadow:none!important;
  }
  #fpMyWorkoutsOverlay .fp-my-workouts-head{
    padding:12px 16px!important;
    background:var(--c-white)!important;
    border-bottom:1px solid var(--c-line)!important;
    border-bottom-color:var(--c-line)!important;
  }
  #fpMyWorkoutsOverlay .fp-my-workouts-head h2{font-size:21px!important;margin:4px 0 0!important}
  #fpMyWorkoutsOverlay .fp-my-workouts-head .fai105-add-ready,
  #fpMyWorkoutsOverlay .fp-my-workouts-head .fp-create-workout-top{
    padding:11px 14px!important;font-size:13px!important;
  }
  #fpMyWorkoutsOverlay .fp-my-workouts-body{padding:13px!important;gap:12px!important}
  #fpMyWorkoutsOverlay .fp-workout-card,
  #fpMyWorkoutsOverlay .fp-no-workouts{
    padding:16px!important;border-radius:var(--c-r)!important;
  }
  #fpMyWorkoutsOverlay .fp-workout-card::before,
  #fpMyWorkoutsOverlay .fp-no-workouts::before{border-radius:var(--c-r)!important}
  #fpMyWorkoutsOverlay .fp-workout-card .fp-workout-card-top{
    margin:-16px -16px 0!important;
    padding:15px 16px!important;
    border-radius:var(--c-r) var(--c-r) 0 0!important;
  }
  #fpMyWorkoutsOverlay .fp-workout-card .fp-workout-card-top h3{font-size:17px!important}
  #fpMyWorkoutsOverlay .fp-no-workouts{padding:44px 18px!important}

  /* — каталог готовых тренировок — */
  #fai105ReadyOverlay .fai105-modal{border-radius:0!important;border:0!important}
  #fai105ReadyOverlay .fai105-head{padding:16px!important}
  #fai105ReadyOverlay .fai105-head h2{font-size:21px!important}
  #fai105ReadyOverlay .fai203-ready-card{border-radius:var(--c-r)!important}
  #fai105ReadyOverlay .fai203-ready-body,
  .fai83-shell .fai203-ready-body{padding:15px 16px 17px!important}
  #fai105ReadyOverlay .fai204-photo-copy b,
  .fai83-shell .fai204-photo-copy b{font-size:18px!important}
  #fai105ReadyOverlay .fai203-ready-body h3,
  .fai83-shell .fai203-ready-body h3{font-size:17px!important}

  /* — курсы — */
  #courses .fai114-head h2{font-size:24px!important}
  #courses .fai114-head p{font-size:14px!important}
  #courses .fai131-course-row.fai131-course-row{border-radius:var(--c-r)!important}
  #courses .fai131-course-row.fai131-course-row .fai130-course-number{font-size:17px!important}
  #courses .fai131-course-row.fai131-course-row .fai130-course-photo-wrap{
    margin:7px 0 7px 7px!important;border-radius:12px!important;
  }
  #courses .fai131-course-row.fai131-course-row .fai130-course-copy{
    padding:13px 12px!important;border-right:0!important;
  }
  #courses .fai131-course-row.fai131-course-row .fai130-course-copy h3{font-size:16px!important}
  #courses .fai131-course-row.fai131-course-row .fai130-course-copy>p{font-size:12.5px!important}
  #courses .fai131-course-side .fai130-course-price b{font-size:16px!important}
  #courses .fai131-course-actions .fai130-course-heart{
    width:34px!important;height:34px!important;flex:0 0 34px!important;font-size:16px!important;
  }

  /* — упражнения — */
  .fai83-shell .muscle-category-card.fai129-muscle-card{
    padding:16px!important;border-radius:var(--c-r)!important;
  }
  .fai83-shell .fai129-muscle-card .fai129-muscle-copy h4{font-size:17px!important}
  .fai83-shell .fai129-muscle-card .fai129-muscle-copy p{font-size:13px!important}
  /* на узком экране фото занимает меньше места — скрим сдвигаем правее,
     чтобы текст не наезжал на изображение */
  .fai83-shell .muscle-category-card.fai129-muscle-card::before{
    background:linear-gradient(90deg,
      var(--c-white) 0%,
      rgba(255,255,255,.97) 52%,
      rgba(255,255,255,.6) 78%,
      rgba(255,255,255,0) 100%)!important;
    background-image:linear-gradient(90deg,
      var(--c-white) 0%,
      rgba(255,255,255,.97) 52%,
      rgba(255,255,255,.6) 78%,
      rgba(255,255,255,0) 100%)!important;
  }
  .fai83-shell .exercise-library-card.exercise-library-card{padding:14px!important}
  .fai83-shell .exercise-library-card.exercise-library-card h4{font-size:15px!important}
  .fai83-shell .exercise-library-card .exercise-actions button{
    min-height:44px!important;padding:11px 16px!important;
  }

  /* — модалки техники — */
  #fai137TechniqueOverlay .fai137-tech-modal,
  #fp14modal .fp14-modal{border-radius:var(--c-r)!important}
  #fai137TechniqueOverlay .fai137-tech-head,
  #fp14modal .fp14-modal-head{padding:16px 18px!important}
  #fai137TechniqueOverlay .fai137-tech-head h2,
  #fp14modal .fp14-modal-head h3{font-size:19px!important}
  #fai137TechniqueOverlay .fai137-tech-body,
  #fp14modal .fp14-modal-body{padding:18px!important}
  #fai137TechniqueOverlay .fai137-tech-muscles,
  #fai137TechniqueOverlay .fai137-tech-steps,
  #fai137TechniqueOverlay .fai137-tech-warning{padding:14px 15px!important}

  /* — прогресс — */
  .fai83-shell .card.progress-section{
    padding:18px!important;border-radius:var(--c-r)!important;
  }
  .fai83-shell .card.progress-section .progress-section-head h4{font-size:18px!important}
  .fai83-shell .progress-row .metric{padding:15px!important}
  .fai83-shell .progress-row .metric b{font-size:22px!important}
  .fai83-shell .strength-stats>div b{font-size:18px!important}
  .fai83-shell .fai79-body-kpis>div{padding:13px!important}
  .fai83-shell .fai79-body-kpis>div b{font-size:17px!important}
  /* 16px у полей ввода обязательны: иначе iOS зумит страницу при фокусе */
  .fai83-shell .weight-entry input,
  .fai83-shell .fai79-strength-entry input,
  #fai79MeasurementModal .fai79-form input{font-size:16px!important}
  #fai79MeasurementModal .fai79-modal,
  #fai88ExercisePicker .fai88-picker{border-radius:var(--c-r)!important}

  /* — раннер — */
  #fpWorkoutRunnerV47.fp-runner-overlay-v47{
    background:var(--c-paper)!important;
  }
  #fpWorkoutRunnerV47 .fp-runner-shell-v47.fp-runner-shell-v47{
    border:0!important;border-radius:0!important;background:var(--c-paper)!important;
  }
  #fpWorkoutRunnerV47 .fp-runner-head-v47.fp-runner-head-v47{
    padding:12px 16px!important;
    background:var(--c-white)!important;
    border-bottom:1px solid var(--c-line)!important;
    border-bottom-color:var(--c-line)!important;
  }
  #fpWorkoutRunnerV47 .fp-runner-head-v47 h2{font-size:19px!important;margin:5px 0 3px!important}
  #fpWorkoutRunnerV47 .fp-runner-head-v47 p{font-size:13px!important}
  #fpWorkoutRunnerV47 .fp-runner-photo-v243.fp-runner-photo-v243{
    border-radius:var(--c-r)!important;
    border-color:var(--c-line)!important;
    background:var(--c-stone)!important;
  }
  #fpWorkoutRunnerV47 .fp-runner-log-v47.fp-runner-log-v47{
    padding:15px!important;border-radius:var(--c-r-lg)!important;
    background:var(--c-white)!important;border-color:var(--c-line)!important;
  }
  #fpWorkoutRunnerV47 .fp-runner-set-v47.fp-runner-set-v47{
    background:var(--c-paper)!important;border-color:var(--c-line)!important;
  }
  #fpWorkoutRunnerV47 .fp-runner-set-v47.fp-runner-set-v47.done{
    background:var(--c-sky)!important;border-color:transparent!important;
  }
  #fpWorkoutRunnerV47 .fp-set-check-v47.fp-set-check-v47{
    width:44px!important;height:44px!important;font-size:20px!important;
    border-width:1px!important;
  }
  /* фиксированная нижняя панель действий (fai252/fai268) — красим,
     раскладку и z-index не трогаем */
  #fpWorkoutRunnerV47 .fp-runner-actions-after-sets-v253{
    border:1px solid var(--c-line)!important;
    border-color:var(--c-line)!important;
    border-radius:var(--c-r)!important;
    background:rgba(250,250,248,.97)!important;
    background-image:none!important;
    backdrop-filter:saturate(120%) blur(10px)!important;
    box-shadow:0 -10px 30px -18px rgba(18,20,24,.4)!important;
  }
  #fpWorkoutRunnerV47 .fp-runner-progress-v47{padding:12px 16px!important}
  #fpFinishWorkoutModalV48 .fp-finish-modal-v48{border-radius:var(--c-r)!important}
}


/* ============================================================
   ОСТАЛОСЬ СПОРНЫМ / ТРЕБУЕТ ПРАВКИ app.js (не мой файл)
   ------------------------------------------------------------
   1. app.js:3345-3347 — fpOpenMyWorkouts ставит
      documentElement.style.setProperty('background-color',
      '#071308','important') и то же на body, плюс
      <meta name="theme-color" content="#071308">.
      Инлайн с !important не перебивается из CSS вообще.
      Визуально скрыто оверлеем (position:fixed;inset:0), но
      видно при overscroll на iOS и в цвете строки статуса.
      Чинится только в JS: цвет → #FAFAF8.
   2. app.js:3409-3413 — инлайновые background/border-color/
      box-shadow на .fp-workout-card. Фон и рамку обошли
      псевдоэлементом ::before, но инлайновая тень
      (0 8px 28px rgba(0,0,0,.18)) остаётся — на бумажном фоне
      читается как мягкая тень, так что терпимо.
   3. app.js:3415-3421 и :3423 — инлайновые фоны на
      .fp-workout-card-top (+ все потомки) и на
      .fp-create-workout-top. Перекрашены фильтрами
      (grayscale / invert): цвет получается нейтрально-тёмный,
      а не фирменный --c-blue. Точный синий возможен только
      после удаления этих setProperty из app.js.
   4. Раскладку раннера (fai252 / fai262 / fai268) намеренно не
      трогал: там выверена фиксированная нижняя панель под
      мобильный. Если её будут переделывать — цвета уже готовы.
   ============================================================ */


/* ============================================================
   10. СОСТОЯНИЕ «ЗАКРЫТО ТАРИФОМ» (BASIC paywall)
       Инжектируемые блоки fai271 / fai273 / fai275 / fai277
       сидят на (1,1,0) и (1,2,0) БЕЗ !important, но стоят в
       документе после нас — поэтому поднимаемся на ступеньку
       выше удвоением класса. Сам механизм (blur, z-index,
       раскладку) не трогаем, только цвета.
   ============================================================ */

/* --- карточка-замок в «Моих тренировках» --- */
#fpMyWorkoutsOverlay .fai271-locked-card.fai271-locked-card,
#fpMyWorkoutsOverlay .fai273-lock-card.fai273-lock-card{
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:var(--c-r-lg)!important;
  background:var(--c-white)!important;
  background-image:none!important;
  color:var(--c-ink)!important;
  box-shadow:var(--c-shadow)!important;
}
#fpMyWorkoutsOverlay .fai273-lock-card.fai273-lock-card:hover,
#fpMyWorkoutsOverlay .fai273-lock-card.fai273-lock-card:focus-visible{
  border-color:var(--c-line-2)!important;
  box-shadow:0 30px 60px -40px rgba(18,20,24,.35)!important;
}
/* «скелет» под размытием — нейтральные полосы вместо зелёных */
#fpMyWorkoutsOverlay .fai271-blur-preview.fai271-blur-preview,
#fpMyWorkoutsOverlay .fai273-blur-preview.fai273-blur-preview{
  background:var(--c-paper)!important;
  background-image:none!important;
  border-radius:var(--c-r)!important;
}
#fpMyWorkoutsOverlay .fai271-blur-preview.fai271-blur-preview span,
#fpMyWorkoutsOverlay .fai273-blur-preview.fai273-blur-preview span{
  background:var(--c-line-2)!important;
}
#fpMyWorkoutsOverlay .fai271-blur-preview.fai271-blur-preview span:nth-child(2),
#fpMyWorkoutsOverlay .fai273-blur-preview.fai273-blur-preview span:nth-child(2){
  background:var(--c-stone)!important;
}
#fpMyWorkoutsOverlay .fai271-blur-preview.fai271-blur-preview span:nth-child(3),
#fpMyWorkoutsOverlay .fai273-blur-preview.fai273-blur-preview span:nth-child(3){
  background:var(--c-line)!important;
}
#fpMyWorkoutsOverlay .fai271-blur-preview.fai271-blur-preview span:nth-child(4),
#fpMyWorkoutsOverlay .fai273-blur-preview.fai273-blur-preview span:nth-child(4){
  background:var(--c-sky)!important;
}
/* панель с замком поверх размытия */
#fpMyWorkoutsOverlay .fai271-lock-content.fai271-lock-content,
#fpMyWorkoutsOverlay .fai273-lock-panel.fai273-lock-panel{
  padding:18px 20px!important;
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:var(--c-r)!important;
  background:rgba(255,255,255,.94)!important;
  background-image:none!important;
  box-shadow:0 18px 40px -28px rgba(18,20,24,.4)!important;
  backdrop-filter:blur(5px)!important;
}
#fpMyWorkoutsOverlay .fai271-lock-content.fai271-lock-content b,
#fpMyWorkoutsOverlay .fai273-lock-panel.fai273-lock-panel b{
  color:var(--c-ink)!important;
  font-family:var(--c-display)!important;
  font-size:17px!important;font-weight:600!important;letter-spacing:-.02em!important;
}
#fpMyWorkoutsOverlay .fai271-lock-content.fai271-lock-content p,
#fpMyWorkoutsOverlay .fai273-lock-panel.fai273-lock-panel p{
  color:var(--c-ink-2)!important;font-size:13px!important;line-height:1.5!important;
}
#fpMyWorkoutsOverlay .fai273-lock-icon.fai273-lock-icon{
  width:42px!important;height:42px!important;
  border-radius:13px!important;
  background:var(--c-sky)!important;
  background-image:none!important;
  color:var(--c-blue)!important;
}
#fpMyWorkoutsOverlay .fai273-lock-cta.fai273-lock-cta{
  color:var(--c-blue)!important;
  font-size:13px!important;font-weight:600!important;
  text-underline-offset:3px!important;
}

/* --- закрытая карточка в каталоге готовых тренировок --- */
#fai105ReadyOverlay .fai275-ready-lock.fai275-ready-lock,
#fai105ReadyOverlay .fai277-ready-locked .fai277-ready-lock-title.fai277-ready-lock-title{
  padding:18px 20px!important;
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:var(--c-r)!important;
  background:rgba(255,255,255,.93)!important;
  background-image:none!important;
  box-shadow:0 18px 40px -28px rgba(18,20,24,.4)!important;
  color:var(--c-ink)!important;
  backdrop-filter:blur(5px)!important;
}
#fai105ReadyOverlay .fai275-ready-lock.fai275-ready-lock b,
#fai105ReadyOverlay .fai277-ready-locked .fai277-ready-lock-title.fai277-ready-lock-title b{
  color:var(--c-ink)!important;
  font-family:var(--c-display)!important;
  font-size:16px!important;font-weight:600!important;letter-spacing:-.02em!important;
}
#fai105ReadyOverlay .fai275-ready-lock.fai275-ready-lock small,
#fai105ReadyOverlay .fai277-ready-locked .fai277-ready-lock-title.fai277-ready-lock-title small{
  color:var(--c-ink-2)!important;font-size:12.5px!important;
}
#fai105ReadyOverlay .fai275-ready-lock.fai275-ready-lock>span:last-child,
#fai105ReadyOverlay .fai277-ready-locked .fai277-ready-lock-title.fai277-ready-lock-title>span:last-child{
  color:var(--c-blue)!important;
  font-size:12.5px!important;font-weight:600!important;
  text-underline-offset:3px!important;
}
/* «скелет» каталога — blur/opacity оставляем как есть (это механика
   пейвола), меняем только заливки полос */
#fai105ReadyOverlay .fai275-ready-blur.fai275-ready-blur{
  background:var(--c-paper)!important;
  background-image:none!important;
}
#fai105ReadyOverlay .fai275-ready-blur.fai275-ready-blur span{
  background:var(--c-line-2)!important;
}
#fai105ReadyOverlay .fai275-ready-blur.fai275-ready-blur span:nth-child(2){
  background:var(--c-stone)!important;
}
#fai105ReadyOverlay .fai275-ready-blur.fai275-ready-blur span:nth-child(3){
  background:var(--c-line)!important;
}
#fai105ReadyOverlay .fai275-ready-blur.fai275-ready-blur span:nth-child(4){
  background:var(--c-sky)!important;
}


/* ============================================================
   11. МОДАЛКА КУРСА  (.fai114-modal / .fai114-dialog)
   ------------------------------------------------------------
   РАЗМЕТКА (app.js:6706 fai114OpenCourse):
     div.fai114-modal            ← ФОН-ОВЕРЛЕЙ (position:fixed)
     └ div.fai114-dialog         ← БЕЛАЯ ПАНЕЛЬ
       ├ button.fai114-close / button.fai114-modal-heart
       ├ small («КУРС · 1 неделя») + h2 (название)
       ├ div.fai118-modal-price > b («Бесплатно») + span
       ├ p.lead
       ├ div.fai114-detail-grid > div×4 > small + p
       ├ div.fai114-basic-stats > div×4 > small + b
       ├ div.fai114-weeks       > div > b + span
       └ div.fai123-program (app.js:6693)
         ├ .fai123-program-head > div > small + h3, > span
         ├ .fai123-safety
         └ .fai123-week-list > details.fai123-week
           ├ summary > .fai123-week-num + div>(b+small) + i
           └ .fai123-sessions > .fai123-session
             ├ .fai123-session-title > span + small
             └ ol > li.fai134-course-exercise > span + small
                  + i.fai134-exercise-open

   ПОЧЕМУ БЫЛО НЕЧИТАЕМО (замерено в браузере до правки):
   app.js вешает модалку на document.body — она НЕ внутри
   .fai83-shell и НЕ внутри #courses, поэтому все мои прежние
   префиксы мимо. Панель оставалась тёмной (#0f140f), а
   styles.css правилом
     html[data-theme="light"] h1,h2,h3,h4,b,strong{color:#111611!important}
   красит голые h2/h3/b в чернильный — тёмное по тёмному:
     h2 «Базовый старт»              1.02:1
     b «Бесплатно»                   1.01:1
     b в .fai114-basic-stats         1.02:1
     b «Неделя 1»                    1.02:1
     h3 «Неделя за неделей»          1.02:1
     b в summary недели              1.02:1
   Всего 15 провалов по WCAG из 24 проверенных узлов.

   СПЕЦИФИЧНОСТЬ: у виновника (0,1,2). Базовый префикс
   `.fai114-modal .fai114-dialog` = (0,2,0), с тегом (0,2,1) —
   выше и его, и `.fai118-modal-price b{…!important}` (0,1,1).
   Оверлей берём как `.fai114-modal.fai114-modal` = (0,2,0).
   Раскладку (display/grid-template-columns/position) не трогаем.
   ============================================================ */

/* — подложка и панель — */
.fai114-modal.fai114-modal{
  background:rgba(18,20,24,.5)!important;
  background-image:none!important;
  backdrop-filter:saturate(120%) blur(8px)!important;
}
.fai114-modal .fai114-dialog{
  padding:30px!important;
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:var(--c-r-lg)!important;
  background:var(--c-white)!important;
  background-image:none!important;
  color:var(--c-ink)!important;
  box-shadow:0 40px 90px -40px rgba(18,20,24,.45)!important;
}

/* — кнопки в углу — */
.fai114-modal .fai114-close,
.fai114-modal .fai114-modal-heart{
  width:40px!important;height:40px!important;
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:50%!important;
  background:var(--c-white)!important;
  background-image:none!important;
  color:var(--c-ink-2)!important;
  box-shadow:none!important;
  transition:border-color .18s ease,color .18s ease,background .18s ease!important;
}
.fai114-modal .fai114-close{font-size:23px!important}
.fai114-modal .fai114-modal-heart{font-size:18px!important}
.fai114-modal .fai114-close:hover,
.fai114-modal .fai114-modal-heart:hover{
  border-color:var(--c-line-2)!important;color:var(--c-ink)!important;
}
.fai114-modal .fai114-modal-heart.active{
  background:var(--c-blue)!important;
  border-color:transparent!important;
  color:var(--c-white)!important;
}

/* — шапка: «КУРС · N» + название — */
.fai114-modal .fai114-dialog>small{
  display:block!important;
  color:var(--c-ink-3)!important;
  font-family:var(--c-sans)!important;
  font-size:11px!important;font-weight:600!important;
  letter-spacing:.1em!important;text-transform:uppercase!important;
}
.fai114-modal .fai114-dialog h2{
  margin:10px 0 0!important;
  color:var(--c-ink)!important;
  font-family:var(--c-display)!important;
  font-size:clamp(24px,3.2vw,30px)!important;font-weight:600!important;
  line-height:1.1!important;letter-spacing:-.02em!important;
}
.fai114-modal .fai114-dialog .lead{
  margin:0 0 22px!important;
  color:var(--c-ink-2)!important;
  font-size:15.5px!important;line-height:1.5!important;
}

/* — бейдж цены («Бесплатно» / «Базовый курс») —
     был синий #56688F по тёмному; делаем пастельную плашку */
.fai114-modal .fai118-modal-price{
  margin:12px 0 16px!important;
  padding:12px 16px!important;
  border:1px solid transparent!important;
  border-color:transparent!important;
  border-radius:999px!important;
  background:var(--c-sky)!important;
  background-image:none!important;
}
.fai114-modal .fai118-modal-price b{
  color:var(--c-blue)!important;
  font-family:var(--c-display)!important;
  font-size:17px!important;font-weight:600!important;letter-spacing:-.02em!important;
}
.fai114-modal .fai118-modal-price span{
  color:var(--c-ink-2)!important;
  font-size:12px!important;font-weight:500!important;
}

/* — сетка «для кого / что внутри / цель / уровень» —
     подписи были 8px (нечитаемо) — поднимаем до 11px */
.fai114-modal .fai114-detail-grid>div{
  padding:18px!important;
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:var(--c-r)!important;
  background:var(--c-paper)!important;
  background-image:none!important;
}
.fai114-modal .fai114-detail-grid small{
  color:var(--c-ink-3)!important;
  font-family:var(--c-sans)!important;
  font-size:11px!important;font-weight:600!important;
  letter-spacing:.1em!important;text-transform:uppercase!important;
}
.fai114-modal .fai114-detail-grid p{
  margin:8px 0 0!important;
  color:var(--c-ink-2)!important;
  font-size:14px!important;line-height:1.5!important;
}

/* — «Частота / Всего / Уровень / Цель» —
     b не имел цвета вообще и наследовал чернильный → был невидим */
.fai114-modal .fai114-basic-stats{margin-top:14px!important;gap:10px!important}
.fai114-modal .fai114-basic-stats>div{
  padding:15px!important;
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:var(--c-r)!important;
  background:var(--c-paper)!important;
  background-image:none!important;
}
.fai114-modal .fai114-basic-stats small{
  color:var(--c-ink-3)!important;
  font-size:11px!important;font-weight:600!important;
  letter-spacing:.08em!important;text-transform:uppercase!important;
}
.fai114-modal .fai114-basic-stats b{
  margin-top:7px!important;
  color:var(--c-ink)!important;
  font-family:var(--c-sans)!important;
  font-size:15px!important;font-weight:600!important;line-height:1.35!important;
}

/* — «Неделя 1 · Адаптация…» — */
.fai114-modal .fai114-weeks{margin-top:14px!important;gap:8px!important}
.fai114-modal .fai114-weeks>div{
  padding:14px 16px!important;
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:12px!important;
  background:var(--c-paper)!important;
  background-image:none!important;
}
.fai114-modal .fai114-weeks b{
  color:var(--c-ink)!important;
  font-family:var(--c-sans)!important;
  font-size:14.5px!important;font-weight:600!important;
}
.fai114-modal .fai114-weeks span{
  color:var(--c-ink-2)!important;font-size:14px!important;
}

/* — блок «ПРОГРАММА КУРСА / Неделя за неделей» — */
.fai114-modal .fai123-program{
  margin-top:26px!important;padding-top:24px!important;
  border-top:1px solid var(--c-line)!important;
  border-top-color:var(--c-line)!important;
}
.fai114-modal .fai123-program-head small{
  color:var(--c-blue)!important;
  font-family:var(--c-sans)!important;
  font-size:11px!important;font-weight:600!important;letter-spacing:.1em!important;
}
.fai114-modal .fai123-program-head h3{
  margin:8px 0 0!important;
  color:var(--c-ink)!important;
  font-family:var(--c-display)!important;
  font-size:22px!important;font-weight:600!important;letter-spacing:-.02em!important;
}
.fai114-modal .fai123-program-head>span{
  color:var(--c-ink-3)!important;font-size:13px!important;font-weight:500!important;
}
/* предупреждение для медицинских курсов — песочная плашка */
.fai114-modal .fai123-safety{
  padding:15px 17px!important;
  border:1px solid transparent!important;
  border-color:transparent!important;
  border-radius:var(--c-r)!important;
  background:var(--c-sand)!important;
  background-image:none!important;
}
.fai114-modal .fai123-safety b{
  color:var(--c-brass-ink)!important;font-size:14px!important;font-weight:600!important;
}
.fai114-modal .fai123-safety span{
  color:var(--c-ink-2)!important;font-size:13.5px!important;line-height:1.5!important;
}

/* — аккордеон недели — */
.fai114-modal .fai123-week{
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:var(--c-r)!important;
  background:var(--c-white)!important;
  background-image:none!important;
}
.fai114-modal .fai123-week[open]{
  border-color:var(--c-line-2)!important;
  background:var(--c-paper)!important;
}
.fai114-modal .fai123-week summary{padding:16px!important}
.fai114-modal .fai123-week-num{
  color:var(--c-blue)!important;
  font-family:var(--c-display)!important;
  font-size:17px!important;font-weight:600!important;letter-spacing:-.03em!important;
}
.fai114-modal .fai123-week summary b{
  color:var(--c-ink)!important;
  font-family:var(--c-sans)!important;
  font-size:14.5px!important;font-weight:600!important;
}
.fai114-modal .fai123-week summary small{
  color:var(--c-ink-3)!important;font-size:12.5px!important;
}
.fai114-modal .fai123-week summary i{
  color:var(--c-ink-3)!important;font-style:normal!important;
}

/* — карточка тренировки внутри недели — */
.fai114-modal .fai123-session{
  padding:14px!important;
  border:1px solid var(--c-line)!important;
  border-color:var(--c-line)!important;
  border-radius:var(--c-r)!important;
  background:var(--c-white)!important;
  background-image:none!important;
}
.fai114-modal .fai123-session-title{
  border-bottom:1px solid var(--c-line)!important;
  border-bottom-color:var(--c-line)!important;
}
.fai114-modal .fai123-session-title span{
  color:var(--c-ink)!important;font-size:13.5px!important;font-weight:600!important;
}
.fai114-modal .fai123-session-title small{
  color:var(--c-ink-3)!important;font-size:11px!important;
}
/* строки упражнений: были 11px/9px — поднимаем до читаемого */
.fai114-modal .fai123-session ol li.fai134-course-exercise{
  border-radius:10px!important;
  background:transparent!important;
}
.fai114-modal .fai123-session ol li.fai134-course-exercise:hover{
  background:var(--c-sky)!important;
  border-color:var(--c-line)!important;
}
.fai114-modal .fai134-course-exercise span{
  color:var(--c-ink)!important;font-size:13px!important;font-weight:500!important;
}
.fai114-modal .fai134-course-exercise small{
  color:var(--c-ink-3)!important;font-size:12px!important;line-height:1.45!important;
}
.fai114-modal .fai134-exercise-open{
  color:var(--c-blue)!important;
  font-size:12px!important;font-weight:600!important;opacity:1!important;
}

/* — мобильная ширина — */
@media(max-width:600px){
  .fai114-modal .fai114-dialog{
    padding:20px!important;border-radius:var(--c-r)!important;
  }
  .fai114-modal .fai114-dialog h2{font-size:22px!important}
  .fai114-modal .fai114-dialog .lead{font-size:14.5px!important;margin-bottom:18px!important}
  .fai114-modal .fai114-detail-grid>div,
  .fai114-modal .fai114-basic-stats>div{padding:14px!important}
  .fai114-modal .fai123-program-head h3{font-size:19px!important}
  .fai114-modal .fai123-week summary{padding:14px!important}
}

/* ============================================================
   v284 — карточка курса на телефоне.
   Сетка `44px 126px 1fr` (номер / фото / текст) рассчитана на
   десктоп. На 390 px текстовой колонке остаётся ~158 px, заголовок
   рвётся по слогам, а подпись «Бесплатно · Базовый курс» не
   помещается. Ниже 560 px раскладываем в столбец: фото во всю
   ширину, текст под ним. Декоративный номер прячем — он не несёт
   информации, а забирает 44 px из 330.

   ВАЖНО про специфичность: сетку задаёт styles.css селектором
   `#courses .fai131-course-row` = (1,1,0) и с !important. Классы,
   сколько их ни дублируй, ID не перебьют — поэтому здесь тоже
   пишем через #courses.
   ============================================================ */
@media (max-width:560px){
  #courses .fai114-course-row.fai114-course-row,
  #courses .fai130-course-row.fai130-course-row,
  #courses .fai131-course-row.fai131-course-row{
    grid-template-columns:minmax(0,1fr)!important;
    gap:0!important;
    padding:0!important;
    overflow:hidden!important;
  }
  /* styles.css держит номер через `#courses .fai131-course-row
     .fai130-course-number{display:flex!important}` = (1,2,0),
     поэтому дублируем класс до (1,3,0). */
  #courses .fai130-course-number.fai130-course-number,
  #courses .fai131-course-row .fai130-course-number.fai130-course-number,
  #courses .fai130-course-row .fai130-course-number.fai130-course-number{display:none!important}
  #courses .fai130-course-photo-wrap{
    width:100%!important;height:auto!important;aspect-ratio:16/10!important;
    border-radius:0!important;
  }
  #courses .fai130-course-photo-wrap img{
    width:100%!important;height:100%!important;object-fit:cover!important;border-radius:0!important;
  }
  #courses .fai130-course-copy{
    width:auto!important;height:auto!important;padding:14px 16px 4px!important;
  }
  /* `.fai131-course-side` растянут на `grid-column:2/-1`. При одной
     колонке браузер добирает недостающие неявными — получалось два
     столбца вместо стопки. Сбрасываем привязку. */
  #courses .fai131-course-side{
    grid-column:1/-1!important;
    width:auto!important;padding:10px 16px 14px!important;
  }
  #courses .fai130-course-photo-wrap,
  #courses .fai130-course-copy{grid-column:1/-1!important}
}
