/* ============================================================
   ФитБаза — тренерский модуль: подопечные, календарь, рассылка.
   Живёт в палитре основного приложения (--bg/--panel/--accent…),
   добавляя только семантические цвета и собственные компоненты.
   ============================================================ */

:root{
  /* Дополнение к палитре приложения. Тёплая линия сохранена, холодные тона —
     только как смысловые метки (готово / внимание / прогресс). */
  --tr-ok:#2dd4bf;        /* выполнено, подтверждено */
  --tr-warn:#fbbf24;      /* ждёт, предупреждение */
  --tr-bad:#fb7185;       /* противопоказания, ошибки */
  --tr-done:#ef4444;      /* выполнено в календаре — красный, чтобы не путался с цветом-меткой подопечного */
  --tr-lime:#a3e635;
  --tr-sky:#38bdf8;
  --tr-rose:#f472b6;

  --tr-r-sm:10px; --tr-r:14px; --tr-r-lg:18px; --tr-r-xl:24px;
  --tr-shadow:0 18px 44px rgba(0,0,0,.5);
  --tr-shadow-sm:0 6px 18px rgba(0,0,0,.35);
}

/* Цвет-метка подопечного: одна переменная задаёт весь акцент карточки. */
.tr-a-violet{--tr-c:#8b5cf6;} .tr-a-blue{--tr-c:#4f7cff;}   .tr-a-sky{--tr-c:#38bdf8;}
.tr-a-teal{--tr-c:#2dd4bf;}   .tr-a-lime{--tr-c:#a3e635;}   .tr-a-yellow{--tr-c:#facc15;}
.tr-a-orange{--tr-c:#fb923c;}
/* Старые метки: у кого-то они уже проставлены, пусть не отваливаются в серое. */
.tr-a-amber{--tr-c:#facc15;}  .tr-a-coral{--tr-c:#fb923c;}  .tr-a-rose{--tr-c:#4f7cff;}

/* Красно-золотая линия кабинета: владельцу нравятся эти цвета (п. 18 ТЗ).
   Переопределяем акцент только внутри модуля и его окон — остальное приложение не трогаем. */
.tr, .tr-modal-scrim, .tr-toast{
  --accent:#ef4444;
  --accent2:#fbbf24;
  --tr-acc-rgb:239,68,68;
  --tr-acc2-rgb:251,191,36;
  --tr-acc-ink:#fde68a;
}

.tr{padding:0 22px 40px;max-width:1180px;margin:0 auto;animation:fadeIn .3s ease;}
.tr *{box-sizing:border-box;}
/* Базовый размер иконок модуля.
   Не привязано к .tr намеренно: модалки и всплывающие подсказки рендерятся прямо
   в body, вне контейнера раздела, и внутри них иконки схлопывались бы в 0×0.
   Отдельный класс i — чтобы не задеть графики и спарклайны, а :where() —
   чтобы любое правило компонента ниже спокойно перебивало этот размер. */
:where(svg.i){width:16px;height:16px;flex:0 0 auto;vertical-align:-3px;}
.tr .num{font-family:'Space Grotesk','Manrope',sans-serif;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;}

/* ---------- Шапка раздела ---------- */
.tr-head{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;padding:22px 0 18px;}
.tr-head .tt{font-family:'Space Grotesk',sans-serif;font-size:30px;font-weight:700;letter-spacing:-.025em;line-height:1.05;margin:0;}
.tr-head .sub{font-size:13.5px;color:var(--mut);line-height:1.45;}
.tr-head .grow{flex:1 1 auto;}
.tr-actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center;}

/* ---------- Кнопки ---------- */
.tr-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line2);
  background:var(--panel2);color:var(--ink);border-radius:var(--tr-r-sm);padding:10px 15px;font-size:13.5px;
  font-weight:600;font-family:inherit;cursor:pointer;transition:background .15s,border-color .15s,transform .1s;
  min-height:40px;white-space:nowrap;}
.tr-btn:hover{background:#241d38;border-color:#463c5e;}
.tr-btn:active{transform:scale(.97);}
.tr-btn svg{width:17px;height:17px;flex:0 0 auto;}
.tr-btn.pri{background:linear-gradient(135deg,#ef4444,#f59e0b);border-color:transparent;color:#fff;
  box-shadow:0 8px 22px -8px rgba(239,68,68,.75);}
.tr-btn.pri:hover{background:linear-gradient(135deg,#f45b5b,#fbaa1f);}
.tr-btn.ghost{background:transparent;border-color:var(--line);color:var(--mut);}
.tr-btn.ghost:hover{color:var(--ink);border-color:var(--line2);}
.tr-btn.danger{color:var(--tr-bad);border-color:rgba(251,113,133,.3);background:rgba(251,113,133,.08);}
.tr-btn.danger:hover{background:rgba(251,113,133,.16);}
.tr-btn.sm{padding:7px 11px;min-height:34px;font-size:12.5px;}
.tr-btn.icon{padding:0;width:40px;min-height:40px;}
.tr-btn.icon.sm{width:34px;min-height:34px;}
.tr-btn:disabled{opacity:.45;cursor:not-allowed;}
.tr-btn:focus-visible{outline:2px solid var(--accent2);outline-offset:2px;}

/* ---------- Поля ---------- */
.tr-field{display:flex;flex-direction:column;gap:6px;min-width:0;}
.tr-field > .lb{font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--faint);font-weight:600;}
.tr-in{width:100%;background:var(--panel);border:1px solid var(--line);border-radius:var(--tr-r-sm);
  padding:10px 13px;color:var(--ink);font-family:inherit;font-size:14.5px;outline:none;transition:border-color .15s,box-shadow .15s;min-height:42px;}
.tr-in:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--tr-acc-rgb),.15);}
.tr-in::placeholder{color:var(--faint);}
textarea.tr-in{resize:vertical;line-height:1.55;min-height:96px;}
select.tr-in{appearance:none;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--mut) 50%),linear-gradient(135deg,var(--mut) 50%,transparent 50%);
  background-position:calc(100% - 17px) 19px,calc(100% - 12px) 19px;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:34px;}
.tr-search{position:relative;flex:1 1 220px;min-width:150px;}
.tr-search .tr-in{padding-left:38px;}
.tr-search .si{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--faint);display:flex;pointer-events:none;}
.tr-search .si svg{width:16px;height:16px;}

/* ---------- Переключатель внутри «Кабинета» ---------- */

.tr-cabtabs{padding:16px 0 0;}
.tr-seg.big{display:grid;grid-template-columns:repeat(3,1fr);width:100%;max-width:540px;padding:4px;gap:3px;
  border-radius:var(--tr-r);}
.tr-seg.big button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 14px;
  border-radius:calc(var(--tr-r) - 4px);font-size:14px;min-height:44px;}
.tr-seg.big button svg{opacity:.75;flex:0 0 auto;}
.tr-seg.big button.on svg{opacity:1;}
/* На 390 px три вкладки в полную ширину не помещались и «Запись» обрезалась краем.
   Ужимаем подписи и отступы — все три влезают целиком. */
@media (max-width:430px){
  .tr-seg.big{gap:2px;padding:3px;}
  .tr-seg.big button{gap:5px;padding:10px 4px;font-size:12.5px;min-width:0;white-space:nowrap;}
  .tr-seg.big button svg{width:15px;height:15px;}
}

/* ---------- Сегменты / фильтры ---------- */
.tr-seg{display:inline-flex;background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:3px;gap:2px;}
.tr-seg button{border:none;background:none;padding:7px 14px;border-radius:999px;font-size:12.5px;font-weight:600;
  color:var(--mut);cursor:pointer;font-family:inherit;transition:.15s;white-space:nowrap;}
.tr-seg button.on{background:linear-gradient(135deg,#ef4444,#f59e0b);color:#fff;}
.tr-seg button:not(.on){color:#b3a7d1;}
.tr-seg button:not(.on):hover{color:#fde68a;}
.tr-seg button:hover:not(.on){color:var(--ink);}

/* ---------- Замок ---------- */
.tr-lock{max-width:420px;margin:8vh auto;text-align:center;padding:34px 26px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--tr-r-xl);box-shadow:var(--tr-shadow);}
.tr-lock .ic{width:56px;height:56px;border-radius:16px;margin:0 auto 18px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(150deg,rgba(var(--tr-acc-rgb),.22),rgba(var(--tr-acc-rgb),.06));border:1px solid rgba(var(--tr-acc-rgb),.28);color:var(--accent2);}
.tr-lock .ic svg{width:26px;height:26px;}
.tr-lock h2{font-family:'Space Grotesk',sans-serif;font-size:22px;margin:0 0 8px;font-weight:700;}
.tr-lock p{color:var(--mut);font-size:14px;line-height:1.55;margin:0 0 20px;}
.tr-lock form{display:flex;flex-direction:column;gap:10px;}
.tr-lock .err{color:var(--tr-bad);font-size:13px;min-height:18px;text-align:left;}

/* ---------- Сетка карточек подопечных ---------- */
.tr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:14px;}

.tr-card{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:var(--tr-r-lg);
  padding:16px 17px 14px;cursor:pointer;overflow:hidden;text-align:left;width:100%;font-family:inherit;color:inherit;
  transition:border-color .18s,transform .18s,box-shadow .18s;display:flex;flex-direction:column;gap:13px;}
.tr-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--tr-c,var(--accent));opacity:.9;}
.tr-card:hover{border-color:var(--line2);transform:translateY(-2px);box-shadow:var(--tr-shadow-sm);}
.tr-card:active{transform:translateY(0);}
.tr-card:focus-visible{outline:2px solid var(--accent2);outline-offset:2px;}
.tr-card.paused{opacity:.62;}

.tr-card .top{display:flex;align-items:center;gap:12px;min-width:0;}
.tr-ava{width:46px;height:46px;border-radius:14px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;
  font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:17px;color:#0a0812;letter-spacing:-.02em;
  background:linear-gradient(145deg,var(--tr-c,var(--accent)),color-mix(in srgb,var(--tr-c,var(--accent)) 62%,#000));}
.tr-ava.lg{width:64px;height:64px;border-radius:19px;font-size:24px;}
.tr-card .who{min-width:0;flex:1;}
.tr-card .nm{font-family:'Space Grotesk',sans-serif;font-size:17.5px;font-weight:700;letter-spacing:-.015em;line-height:1.2;
  overflow-wrap:anywhere;}
.tr-tg{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:var(--mut);margin-top:3px;overflow-wrap:anywhere;}
.tr-tg .dot{width:6px;height:6px;border-radius:50%;flex:0 0 auto;background:var(--faint);}
.tr-tg.ok .dot{background:var(--tr-ok);}
.tr-tg.bad .dot{background:var(--tr-bad);}
.tr-tg.bad{color:var(--tr-bad);}
.tr-tg.none{color:var(--faint);}

.tr-stats{display:flex;gap:7px;flex-wrap:wrap;}
.tr-pill{display:inline-flex;align-items:baseline;gap:5px;border-radius:8px;padding:5px 9px;font-size:12px;
  color:#fde3c8;white-space:nowrap;background:linear-gradient(135deg,rgba(239,68,68,.16),rgba(45,212,191,.10));
  border:1px solid rgba(239,68,68,.28);}
.tr-pill b{font-family:'Space Grotesk',sans-serif;font-variant-numeric:tabular-nums;font-weight:700;font-size:13.5px;color:var(--ink);}
.tr-pill.warn{border-color:rgba(251,113,133,.32);background:rgba(251,113,133,.1);color:#fca5b5;}
.tr-pill.warn b{color:#fecdd3;}

.tr-card .foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:11px;
  border-top:1px solid var(--line);font-size:12.5px;color:var(--mut);min-width:0;}
.tr-next{display:inline-flex;align-items:center;gap:6px;min-width:0;}
.tr-next svg{width:14px;height:14px;flex:0 0 auto;color:var(--faint);}
.tr-next.soon{color:var(--accent2);} .tr-next.soon svg{color:var(--accent2);}

.tr-delta{display:inline-flex;align-items:center;gap:4px;font-family:'Space Grotesk',sans-serif;font-weight:700;
  font-variant-numeric:tabular-nums;font-size:13px;}
.tr-delta svg{width:13px;height:13px;}
.tr-delta.down{color:var(--tr-ok);} .tr-delta.up{color:var(--tr-warn);} .tr-delta.flat{color:var(--mut);}

.tr-alert{display:flex;align-items:flex-start;gap:8px;background:rgba(251,113,133,.09);border:1px solid rgba(251,113,133,.24);
  border-radius:var(--tr-r-sm);padding:9px 11px;font-size:12.5px;line-height:1.45;color:#fca5b5;}
.tr-alert svg{width:15px;height:15px;flex:0 0 auto;margin-top:1px;color:var(--tr-bad);}
.tr-alert b{color:#fecdd3;font-weight:700;}

/* ---------- Цель ---------- */

/* Мишень всегда акцентная — и в списке, и в карточке. */
.tr-goal{display:flex;align-items:flex-start;gap:8px;font-size:13px;line-height:1.45;color:var(--mut);}
.tr-goal > svg{color:var(--accent2);margin-top:2px;}
.tr-goal.big{font-size:14px;line-height:1.5;color:var(--ink);}
.tr-goal.big > svg{margin-top:3px;}
.tr-goal i{display:block;font-style:normal;font-size:12px;color:var(--faint);}

/* ---------- Акцент по группам мышц ---------- */

/* Шестнадцать мышц разложены по частям тела: сплошной ряд чипов не читается. */
.tr-mus{display:flex;flex-direction:column;gap:11px;}
.tr-mus-g{display:flex;flex-direction:column;gap:6px;}
.tr-mus-g .gn{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);font-weight:600;}

/* Выбор в форме. Чекбокс скрыт, но остаётся в потоке — фокус с клавиатуры работает. */
.tr-chips{display:flex;flex-wrap:wrap;gap:7px;}
.tr-chip{position:relative;display:inline-flex;cursor:pointer;}
.tr-chip input{position:absolute;inset:0;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;}
.tr-chip span{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;
  border:1px solid var(--line);background:var(--panel);color:var(--mut);font-size:13px;font-weight:600;
  transition:background .15s,border-color .15s,color .15s;user-select:none;min-height:38px;}
.tr-chip:hover span{border-color:var(--line2);color:var(--ink);}
.tr-chip input:checked + span{background:rgba(var(--tr-acc-rgb),.16);border-color:var(--accent);color:var(--tr-acc-ink);}
.tr-chip input:focus-visible + span{outline:2px solid var(--accent2);outline-offset:2px;}
.tr-field-hint{font-size:11.5px;color:var(--faint);line-height:1.45;}
.tr-adj .lb{display:inline-flex;align-items:center;gap:7px;}
.tr-adj .lb i{display:grid;place-items:center;width:20px;height:20px;border-radius:7px;font-style:normal;}
.tr-adj .lb i svg{width:12px;height:12px;stroke-width:2.6;}
.tr-adj.def .lb i{color:#fff;background:linear-gradient(135deg,#fb7185,#ef4444);box-shadow:0 0 10px rgba(239,68,68,.45);}
.tr-adj.pro .lb i{color:#1a0b00;background:linear-gradient(135deg,#fde68a,#f59e0b);box-shadow:0 0 10px rgba(245,158,11,.45);}
.tr-adj.def .tr-in:not(:placeholder-shown){border-color:rgba(239,68,68,.6);background:linear-gradient(150deg,rgba(239,68,68,.12),transparent 70%);}
.tr-adj.pro .tr-in:not(:placeholder-shown){border-color:rgba(245,158,11,.6);background:linear-gradient(150deg,rgba(245,158,11,.12),transparent 70%);}
.tr-adj.cleared .tr-in{animation:adjOut .7s ease;}
@keyframes adjOut{30%{border-color:rgba(251,191,36,.9);box-shadow:0 0 0 3px rgba(251,191,36,.18);}}

/* Показ в карточке. */
.tr-focus{display:flex;align-items:flex-start;gap:8px;}
.tr-focus > svg{color:var(--accent2);margin-top:4px;}
.tr-focus .fl{display:flex;flex-wrap:wrap;gap:5px;min-width:0;}
.tr-focus .ft{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-size:11.5px;
  font-weight:600;letter-spacing:.02em;background:rgba(var(--tr-acc-rgb),.13);border:1px solid rgba(var(--tr-acc-rgb),.28);
  color:var(--tr-acc-ink);white-space:nowrap;}

/* ---------- Абонемент ---------- */

/* Строка остатка тренировок. Стоит под противопоказаниями: зелёная, пока занятия
   есть, красная — когда абонемент закончился или ушёл в минус. */
.tr-sess{display:flex;align-items:flex-start;gap:8px;border-radius:var(--tr-r-sm);padding:9px 11px;
  font-size:12.5px;line-height:1.45;}
.tr-sess svg{width:15px;height:15px;flex:0 0 auto;margin-top:1px;}
.tr-sess b{font-family:'Space Grotesk',sans-serif;font-variant-numeric:tabular-nums;font-weight:700;font-size:13.5px;}
.tr-sess.ok{background:rgba(74,222,128,.09);border:1px solid rgba(74,222,128,.26);color:#86efac;}
.tr-sess.ok b{color:#bbf7d0;}
.tr-sess.ok svg{color:#4ade80;}
.tr-sess.out{background:rgba(251,113,133,.1);border:1px solid rgba(251,113,133,.3);color:#fca5b5;}
.tr-sess.out b{color:#fecdd3;}
.tr-sess.out svg{color:var(--tr-bad);}
.tr-sess.note{background:rgba(var(--tr-acc-rgb),.09);border:1px solid rgba(var(--tr-acc-rgb),.28);color:var(--tr-acc-ink);}
.tr-sess.note b{color:var(--tr-acc-ink);}
.tr-sess.note svg{color:var(--accent2);}

/* Выбор отметки посещения. */
.tr-opts{display:flex;flex-direction:column;gap:7px;}
.tr-opt{display:flex;align-items:center;gap:12px;width:100%;text-align:left;font-family:inherit;color:inherit;
  background:var(--panel2);border:1px solid var(--line);border-radius:var(--tr-r);padding:12px 14px;cursor:pointer;
  transition:border-color .15s,background .15s;}
.tr-opt:hover{background:#241d38;border-color:var(--line2);}
.tr-opt.on{border-color:var(--accent);background:rgba(var(--tr-acc-rgb),.1);}
.tr-opt .oi{display:flex;width:34px;height:34px;flex:0 0 auto;align-items:center;justify-content:center;
  border-radius:10px;background:var(--panel);border:1px solid var(--line);color:var(--mut);}
.tr-opt.on .oi{color:var(--accent2);border-color:rgba(var(--tr-acc-rgb),.35);}
.tr-opt .ot{display:flex;flex-direction:column;gap:2px;min-width:0;}
.tr-opt .ot b{font-size:14.5px;font-weight:600;}
.tr-opt .ot i{font-style:normal;font-size:12px;color:var(--mut);}
/* Разделяет отметки посещения и действия с самой записью. */
.tr-opts-sep{height:1px;background:var(--line);margin:4px 0;}

/* ---------- Спарклайн ---------- */
.tr-spark{display:block;width:100%;height:34px;overflow:visible;}
.tr-spark path.ln{fill:none;stroke:var(--tr-c,var(--accent));stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.tr-spark path.ar{fill:var(--tr-c,var(--accent));opacity:.11;}
.tr-spark circle{fill:var(--tr-c,var(--accent));}

/* ---------- Карточка подопечного (документ) ---------- */
.tr-back{display:inline-flex;align-items:center;gap:7px;background:none;border:none;color:var(--mut);font-size:13.5px;
  font-family:inherit;font-weight:600;cursor:pointer;padding:6px 0;margin:18px 0 6px;transition:color .15s;}
.tr-back:hover{color:var(--ink);}
.tr-back svg{width:16px;height:16px;}

.tr-hero{display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap;padding-bottom:20px;}
.tr-hero .nm{font-family:'Space Grotesk',sans-serif;font-size:clamp(28px,5.4vw,40px);font-weight:700;letter-spacing:-.03em;
  line-height:1.03;margin:0;overflow-wrap:anywhere;}
.tr-hero .meta{display:flex;align-items:center;gap:10px;margin-top:8px;flex-wrap:wrap;}

.tr-cols{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:16px;align-items:start;}

.tr-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--tr-r-lg);overflow:hidden;}
.tr-panel + .tr-panel{margin-top:14px;}
/* Шапка панели переносится: с кнопкой и отметкой сохранения в неё иначе
   не влезает заголовок и они наезжают друг на друга. */
.tr-panel .ph{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:14px 16px;border-bottom:1px solid var(--line);}
.tr-panel .ph .t{font-family:'Space Grotesk',sans-serif;font-size:14px;font-weight:700;letter-spacing:.01em;
  flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tr-panel .ph > .tr-btn{flex:0 0 auto;}
@media (max-width:560px){
  /* Заголовок остаётся рядом со значком, а кнопки уходят на строку ниже:
     ширина считается как «вся строка минус значок с отступом». */
  .tr-panel .ph .t{flex:1 1 calc(100% - 26px);}
}
/* Больше ярких цветов (п. 25): у каждой панели свой цвет значка, чтобы экран
   читался с одного взгляда, а не был серым списком одинаковых карточек. */
.tr-panel .ph svg{width:16px;height:16px;color:#fbbf24;}
.tr-panel:nth-of-type(2n) .ph svg{color:#2dd4bf;}
.tr-panel:nth-of-type(3n) .ph svg{color:#fbbf24;}
.tr-panel:nth-of-type(4n) .ph svg{color:#f87171;}
.tr-panel:nth-of-type(5n) .ph svg{color:#38bdf8;}
.tr-panel .ph .t{color:var(--ink);}
.tr-panel .pb{padding:15px 16px;}
.tr-panel .pb.tight{padding:8px 10px;}

/* анкета */
.tr-form{display:grid;grid-template-columns:1fr 1fr;gap:11px;}
.tr-form .wide{grid-column:1/-1;}

/* полоса показателей */
/* Ровно четыре показателя — сетка 2×2, чтобы не оставалось пустой ячейки. */
.tr-kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);}
.tr-kpi{background:var(--panel);padding:13px 14px;}
.tr-kpi{position:relative;}
.tr-kpi::after{content:'';position:absolute;left:14px;bottom:0;width:26px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,#f59e0b,#ef4444);opacity:.9;}
.tr-kpi:nth-child(2)::after{background:linear-gradient(90deg,#2dd4bf,#38bdf8);}
.tr-kpi:nth-child(3)::after{background:linear-gradient(90deg,#fbbf24,#f472b6);}
.tr-kpi:nth-child(4)::after{background:linear-gradient(90deg,#a3e635,#2dd4bf);}
.tr-kpi .k{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#9c8fbd;font-weight:600;}
.tr-kpi .v{font-family:'Space Grotesk',sans-serif;font-variant-numeric:tabular-nums;font-size:22px;font-weight:700;
  letter-spacing:-.02em;margin-top:5px;line-height:1;}
.tr-kpi .v small{font-size:12px;font-weight:600;color:var(--mut);margin-left:3px;letter-spacing:0;}
.tr-kpi .v.dim{color:var(--faint);font-size:15px;font-weight:600;}

/* график веса */
.tr-chart{position:relative;width:100%;height:150px;}
.tr-chart svg{width:100%;height:100%;overflow:visible;}
.tr-chart .grid line{stroke:var(--line);stroke-width:1;}
.tr-chart .area{fill:url(#trGrad);}
.tr-chart .line{fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;}
.tr-chart .pt{fill:var(--bg);stroke:var(--accent);stroke-width:2.5;}
.tr-chart .lbl{fill:var(--faint);font-size:10px;font-family:'Space Grotesk',sans-serif;}

/* ---------- КБЖУ ---------- */

/* Четыре поля нормы в форме — своей группой, чтобы не тонули среди анкеты. */
.tr-kbju-form{display:flex;flex-direction:column;gap:6px;}
.tr-kbju-form .row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
.tr-kbju-form .tr-in{font-family:'Space Grotesk',sans-serif;font-variant-numeric:tabular-nums;font-weight:600;}

  font-size:17px;font-weight:700;}

/* Полоса раскладки: видно, на чём держится калорийность. */

  border:1px solid var(--line);border-radius:var(--tr-r-sm);overflow:hidden;}
  font-weight:700;line-height:1;}

/* ---------- Замеры ---------- */

/* Шапка выбранного показателя над графиком: название, крупное значение, изменение. */
.tr-mhead{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:6px;}
.tr-mhead .l{font-family:'Space Grotesk',sans-serif;font-size:13px;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--mut);}
.tr-mhead .v{font-family:'Space Grotesk',sans-serif;font-variant-numeric:tabular-nums;font-size:30px;font-weight:700;
  letter-spacing:-.03em;line-height:1;}
.tr-mhead .v small{font-size:13px;font-weight:600;color:var(--mut);margin-left:4px;letter-spacing:0;}
.tr-mhead .n{margin-left:auto;font-size:11.5px;color:var(--faint);}

/* Плитки показателей. Разделители — фон контейнера в зазорах, поэтому число колонок
   подобрано так, чтобы восемь плиток делились нацело и не оставалось пустой ячейки. */
.tr-mgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;
  background:var(--line);border-top:1px solid var(--line);}
.tr-mtile{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:5px;
  background:var(--panel);border:none;padding:11px 12px 10px;cursor:pointer;font-family:inherit;color:inherit;
  text-align:left;transition:background .15s;min-width:0;}
.tr-mtile:hover{background:var(--panel2);}
.tr-mtile:focus-visible{outline:2px solid var(--accent2);outline-offset:-2px;}
.tr-mtile.on{background:rgba(var(--tr-acc-rgb),.1);}
.tr-mtile.on::before{content:'';position:absolute;left:0;right:0;top:0;height:2px;background:var(--accent);}
.tr-mtile .mn{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-weight:600;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
.tr-mtile.on .mn{color:var(--accent2);}
.tr-mtile .mv{font-family:'Space Grotesk',sans-serif;font-variant-numeric:tabular-nums;font-size:19px;font-weight:700;
  letter-spacing:-.02em;line-height:1;}
.tr-mtile .mv small{font-size:10.5px;font-weight:600;color:var(--mut);margin-left:2px;letter-spacing:0;}
.tr-mtile .ms{width:100%;height:20px;display:block;}
.tr-mtile .ms .tr-spark{height:20px;--tr-c:var(--faint);}
.tr-mtile.on .ms .tr-spark{--tr-c:var(--accent);}
.tr-mtile .md{font-size:11px;}
.tr-mtile .md .tr-delta{font-size:11.5px;}
.tr-mtile .md .tr-delta svg.i{width:11px;height:11px;}

/* Форма замера: два столбца полей с табличными цифрами. */
.tr-mform{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.tr-in.num{font-family:'Space Grotesk',sans-serif;font-variant-numeric:tabular-nums;font-weight:600;}

/* История замеров таблицей. Узкие экраны — прокрутка по горизонтали внутри блока. */
.tr-mtable{overflow-x:auto;margin:-4px -4px 0;}
.tr-mtable table{border-collapse:collapse;width:100%;font-size:13.5px;}
.tr-mtable th{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-weight:600;
  text-align:right;padding:0 9px 9px;white-space:nowrap;}
.tr-mtable th:first-child{text-align:left;}
.tr-mtable td{padding:9px;border-top:1px solid var(--line);white-space:nowrap;}
.tr-mtable td.num{text-align:right;font-family:'Space Grotesk',sans-serif;font-variant-numeric:tabular-nums;font-weight:600;}
.tr-mtable td.dt{color:var(--mut);}
.tr-mtable td .dim{color:#453a5e;font-weight:400;}
.tr-mtable tr.nt td{border-top:none;padding-top:0;color:var(--mut);font-size:12.5px;white-space:normal;}
/* Показателей много, таблица шире модалки. Дату и кнопку удаления закрепляем по краям,
   иначе при горизонтальной прокрутке удалить строку просто нечем. */
.tr-mtable th:first-child,.tr-mtable td.dt{position:sticky;left:0;background:var(--panel);z-index:1;}
.tr-mtable th:last-child,.tr-mtable tbody tr:not(.nt) td:last-child{position:sticky;right:0;
  background:var(--panel);z-index:1;box-shadow:-8px 0 10px -8px rgba(0,0,0,.6);}
.tr-mtable .rm{background:none;border:none;color:var(--faint);cursor:pointer;padding:5px;border-radius:7px;display:flex;
  transition:.15s;}
.tr-mtable .rm:hover{color:var(--tr-bad);background:rgba(251,113,133,.1);}
.tr-mtable .rm:disabled{opacity:.4;cursor:not-allowed;}

/* ---------- Редактор плана ---------- */
.tr-plan{display:flex;flex-direction:column;gap:5px;}
.tr-row{display:grid;grid-template-columns:34px minmax(0,1fr) 74px 58px 62px 34px;gap:6px;align-items:center;
  background:var(--panel2);border:1px solid transparent;border-radius:var(--tr-r-sm);padding:5px 7px;transition:border-color .15s;}
.tr-row:focus-within{border-color:var(--line2);}
.tr-row .ri{background:transparent;border:none;outline:none;color:var(--ink);font-family:inherit;font-size:14px;
  padding:8px 6px;min-width:0;width:100%;border-radius:7px;transition:background .15s;}
.tr-row .ri:focus{background:var(--panel);}
.tr-row .ri.n{font-variant-numeric:tabular-nums;font-family:'Space Grotesk',sans-serif;font-weight:600;text-align:center;}
/* На широком экране числовые поля — обычные ячейки шестиколоночной сетки строки;
   обёртка нужна только для мобильной перекладки, поэтому здесь она «прозрачна». */
.tr-row .nums{display:contents;}
.tr-row .ri::placeholder{color:#4d4168;}
.tr-row .del{background:none;border:none;color:#453a5e;cursor:pointer;padding:6px;border-radius:7px;display:flex;
  align-items:center;justify-content:center;transition:.15s;}
.tr-row .del:hover{color:var(--tr-bad);background:rgba(251,113,133,.1);}
.tr-row .del svg{width:15px;height:15px;}

.tr-row.head{grid-template-columns:minmax(0,1fr) 34px;background:transparent;padding-top:12px;}
/* Номер по порядку: вписал другую цифру — упражнение переехало на это место */
.tr-row .ri.pos{width:30px;padding:8px 0;text-align:center;font-family:'Space Grotesk',sans-serif;
  font-weight:700;font-size:13.5px;font-variant-numeric:tabular-nums;color:var(--accent2);
  background:rgba(var(--tr-acc2-rgb),.10);border:1px solid rgba(var(--tr-acc2-rgb),.26);cursor:text;}
.tr-row .ri.pos:focus{background:rgba(var(--tr-acc2-rgb),.2);border-color:var(--accent2);}
.tr-row.head .ri{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:12px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--accent2);}
.tr-row.note{grid-template-columns:minmax(0,1fr) 34px;}
.tr-row.note .ri{color:var(--mut);font-size:13.5px;font-style:italic;}

.tr-rowhint{display:grid;grid-template-columns:34px minmax(0,1fr) 74px 58px 62px 34px;gap:6px;padding:0 7px 2px;}
.tr-rowhint span{font-size:9.5px;letter-spacing:.11em;text-transform:uppercase;color:#453a5e;text-align:center;font-weight:600;}
.tr-rowhint span:first-child{text-align:left;}

.tr-addrow{display:flex;gap:7px;flex-wrap:wrap;padding:10px 0 2px;}

.tr-save{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--faint);transition:color .2s;}
.tr-save svg{width:14px;height:14px;}
.tr-save.on{color:var(--tr-ok);}
.tr-save.busy{color:var(--accent2);}

/* прогрессия */

/* ---------- Календарь ---------- */
.tr-cal-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,382px);gap:16px;align-items:start;}

.tr-monthbar{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line);}
.tr-monthbar .mt{font-family:'Space Grotesk',sans-serif;font-size:17px;font-weight:700;flex:1;text-transform:capitalize;letter-spacing:-.01em;}

.tr-dow{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;padding:12px 12px 4px;}
.tr-dow span{text-align:center;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-weight:600;}
.tr-dow span.we{color:#6b5f80;}

.tr-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;padding:0 12px 14px;}
.tr-day{position:relative;aspect-ratio:1;min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;
  gap:4px;padding:7px 4px 5px;background:var(--panel2);border:1px solid transparent;border-radius:11px;cursor:pointer;
  font-family:inherit;color:var(--ink);transition:background .15s,border-color .15s,transform .1s;}
.tr-day:hover{background:#241d38;}
.tr-day:active{transform:scale(.96);}
.tr-day.out{background:transparent;color:#453a5e;}
.tr-day.sel{border-color:var(--accent);background:rgba(var(--tr-acc-rgb),.12);}
.tr-day.today .dn{color:var(--accent2);font-weight:800;}
.tr-day.today::after{content:'';position:absolute;bottom:4px;left:50%;transform:translateX(-50%);width:14px;height:2px;
  border-radius:2px;background:var(--accent2);}
.tr-day .dn{font-family:'Space Grotesk',sans-serif;font-variant-numeric:tabular-nums;font-size:14.5px;font-weight:600;line-height:1;}
.tr-day .dots{display:flex;gap:3px;flex-wrap:wrap;justify-content:center;max-width:100%;}
.tr-day .dots i{width:5px;height:5px;border-radius:50%;background:var(--tr-c,var(--accent));display:block;}
.tr-day .dots i.done{background:var(--tr-done);}
.tr-day .dots i.miss{background:#5a4a6e;}
.tr-day .cnt{font-family:'Space Grotesk',sans-serif;font-size:10px;color:var(--mut);font-variant-numeric:tabular-nums;}

/* Дневной чек-лист — прямой наследник его заметок: «29 ИЮЛЯ — СР» и кружки. */
.tr-daypanel .dh{padding:15px 16px 12px;border-bottom:1px solid var(--line);}
.tr-daypanel .dh .d1{font-family:'Space Grotesk',sans-serif;font-size:17px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;}
.tr-daypanel .dh .d2{font-size:12.5px;color:var(--mut);margin-top:3px;}
.tr-daypanel .dh .d2 b{color:var(--tr-done);font-weight:700;}
.tr-daypanel .dh .d2 s{color:var(--mut);text-decoration:none;}

.tr-items{display:flex;flex-direction:column;padding:6px;}
.tr-item{display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:var(--tr-r-sm);transition:background .15s;min-width:0;}
.tr-item:hover{background:var(--panel2);}
.tr-item:hover .rm{opacity:1;}
.tr-check{width:26px;height:26px;flex:0 0 auto;border-radius:50%;border:2px solid #3d3355;background:transparent;cursor:pointer;
  display:flex;align-items:center;justify-content:center;padding:0;transition:background .16s,border-color .16s,transform .12s;}
.tr-check:hover{border-color:var(--mut);}
.tr-check:active{transform:scale(.88);}
.tr-check svg{width:14px;height:14px;color:#0a0812;opacity:0;transform:scale(.6);transition:opacity .16s,transform .16s;}
/* Выполненное — красным, а не акцентом. Акцент теперь фиолетовый, и он же входит
   в палитру цветов-меток подопечных: отметка сливалась бы с раскраской человека,
   а не читалась как «сделано». Красного среди меток нет. */
.tr-check.on,.tr-check.came{background:var(--tr-done);border-color:var(--tr-done);
  box-shadow:0 0 0 3px rgba(239,68,68,.16);}
.tr-check.on svg,.tr-check.came svg{opacity:1;transform:scale(1);color:#fff;}
/* Не пришёл: приглушённый крестик. Заливка тут не нужна — красное теперь занято
   выполненным, а «списано / не списано» и так подписано словами в строке. */
.tr-check.missed{border-color:#5a4a6e;background:transparent;}
.tr-check.missed svg{opacity:1;transform:scale(1);color:var(--mut);}
.tr-check.missed.charged{border-color:var(--tr-bad);}
.tr-check.missed.charged svg{color:var(--tr-bad);}
.tr-check:focus-visible{outline:2px solid var(--accent2);outline-offset:2px;}

.tr-item .lb{flex:1;min-width:0;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;}
.tr-item .who{font-size:15.5px;font-weight:600;overflow-wrap:anywhere;cursor:pointer;}
.tr-item .who:hover{color:var(--accent2);}
.tr-item .tm{font-family:'Space Grotesk',sans-serif;font-variant-numeric:tabular-nums;font-size:15px;font-weight:700;
  color:var(--accent2);border-bottom:2px solid rgba(var(--tr-acc2-rgb),.42);line-height:1.15;}
/* Проведённая тренировка светится красным целиком — по ней сразу видно, что день закрыт. */
.tr-item.came .who{color:#f0a0a0;text-decoration:line-through;text-decoration-color:rgba(239,68,68,.5);}
.tr-item.came .tm{color:#ef4444;border-bottom-color:rgba(239,68,68,.4);}
.tr-item.done:not(.came) .who{color:var(--faint);text-decoration:line-through;text-decoration-color:#3d3355;}
.tr-item.done:not(.came) .tm{color:var(--faint);border-bottom-color:transparent;}
.tr-item .nt{width:100%;font-size:12.5px;color:var(--mut);line-height:1.45;}
/* Напоминание к записи: отдельной строкой с колокольчиком, чтобы не путалось
   с подписью «не пришёл» и было видно, что это надо не забыть. */
.tr-item .rem{display:inline-flex;align-items:flex-start;gap:6px;width:100%;font-size:12.5px;line-height:1.45;
  color:var(--accent2);}
.tr-item .rem svg{width:13px;height:13px;flex:0 0 auto;margin-top:2px;opacity:.9;}
.tr-item.done .rem{color:var(--mut);opacity:.7;}
/* Пометка неявки: сразу видно, списали тренировку или простили. */
.tr-item .tag{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;font-weight:600;padding:2px 7px;
  border-radius:999px;border:1px solid rgba(251,113,133,.32);color:#fca5b5;background:rgba(251,113,133,.08);
  white-space:nowrap;}
.tr-item .tag.ch{background:rgba(251,113,133,.2);color:#fecdd3;}
.tr-item.miss .who{text-decoration:none;color:var(--mut);}
.tr-item .rm{background:none;border:none;color:#453a5e;cursor:pointer;padding:6px;border-radius:7px;opacity:0;
  transition:.15s;display:flex;flex:0 0 auto;}
.tr-item .rm:hover{color:var(--tr-bad);background:rgba(251,113,133,.1);}
/* Кнопка выбора отметки — основной способ разобрать неявку, поэтому видна всегда
   и оформлена как кнопка, а не как призрачная иконка. */
.tr-item .rm.keep{opacity:1;color:var(--mut);background:var(--panel2);border:1px solid var(--line);
  width:30px;height:30px;align-items:center;justify-content:center;}
.tr-item .rm.keep:hover{color:var(--ink);background:#241d38;border-color:var(--line2);}
.tr-item .rm svg{width:15px;height:15px;}
/* На тачскрине наведения нет — действия у записи должны быть видны всегда. */
@media (hover:none){ .tr-item .rm{opacity:1;} }

/* Граница между предстоящими и прошедшими занятиями: предстоящих теперь видно все,
   и без метки непонятно, где кончается будущее. */
.tr-sep{display:flex;align-items:center;gap:10px;padding:10px 10px 6px;}
.tr-sep::before,.tr-sep::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--line2),transparent);}
.tr-sep span{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-weight:600;white-space:nowrap;}
.tr-more{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;padding:11px;border:none;
  border-top:1px solid var(--line);background:transparent;color:var(--mut);font:inherit;font-size:13px;font-weight:600;
  cursor:pointer;border-radius:0 0 var(--tr-r) var(--tr-r);transition:background .15s,color .15s;}
.tr-more:hover{background:var(--panel2);color:var(--ink);}
.tr-more svg{width:15px;height:15px;}

.tr-quick{display:grid;grid-template-columns:minmax(0,1fr) 96px 40px;gap:7px;padding:11px;border-top:1px solid var(--line);
  background:var(--panel2);}
.tr-quick .full{grid-column:1/-1;}
.tr-quick .tr-in[data-q="note"]{font-size:13.5px;}
/* выбран подопечный — своё дело и «до» прячем: у тренировки конец считается сам.
   напоминание остаётся */
.tr-quick.who-picked .tr-in[data-q="title"],
.tr-quick.who-picked .tr-in[data-q="end"]{display:none;}

/* ---------- Рассылка ---------- */
.tr-bcast{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,390px);gap:16px;align-items:start;}

.tr-status{display:flex;align-items:center;gap:12px;padding:13px 16px;border-radius:var(--tr-r);border:1px solid var(--line);
  background:var(--panel);margin-bottom:16px;flex-wrap:wrap;}
.tr-status .bulb{width:9px;height:9px;border-radius:50%;background:var(--faint);flex:0 0 auto;}
.tr-status.on .bulb{background:var(--tr-ok);box-shadow:0 0 0 4px rgba(45,212,191,.16);}
.tr-status.err{border-color:rgba(251,113,133,.3);background:rgba(251,113,133,.07);}
.tr-status.err .bulb{background:var(--tr-bad);}
.tr-status .st{font-size:13.5px;font-weight:600;}
.tr-status .ds{font-size:12.5px;color:var(--mut);flex:1 1 auto;overflow-wrap:anywhere;}

/* Подключение аккаунта Telegram: единственное, что видно до привязки номера. */
.tr-connect-wrap{max-width:560px;}
.tr-connect .pb{display:flex;flex-direction:column;gap:14px;}
.tr-connect-p{margin:0;font-size:14px;line-height:1.6;color:var(--mut);}
.tr-connect-p b{color:var(--ink);font-weight:600;}
.tr-connect-row{display:flex;gap:9px;flex-wrap:wrap;}
.tr-connect-row .tr-in{flex:1 1 190px;min-width:0;font-size:16px;}
.tr-connect-row .tr-in.code{font-family:'Space Grotesk',sans-serif;font-variant-numeric:tabular-nums;
  letter-spacing:.32em;text-align:center;font-size:21px;font-weight:700;}
.tr-connect-row .tr-btn{flex:0 0 auto;}
.tr-connect-err{display:flex;align-items:flex-start;gap:8px;font-size:13px;line-height:1.5;color:#fca5b5;
  background:rgba(251,113,133,.09);border:1px solid rgba(251,113,133,.24);border-radius:var(--tr-r-sm);padding:10px 12px;}
.tr-connect-err svg{color:var(--tr-bad);margin-top:1px;}
.tr-status .tr-btn{margin-left:auto;}

.tr-picklist{max-height:330px;overflow-y:auto;display:flex;flex-direction:column;padding:6px;gap:1px;}
.tr-pick{display:flex;align-items:center;gap:10px;width:100%;padding:8px 9px;border-radius:var(--tr-r-sm);
  cursor:pointer;transition:background .15s;font:inherit;color:inherit;text-align:left;
  background:none;border:none;-webkit-appearance:none;appearance:none;
  -webkit-tap-highlight-color:transparent;touch-action:manipulation;}
.tr-pick:focus-visible{outline:2px solid var(--accent2);outline-offset:-2px;}
.tr-pick:hover{background:var(--panel2);}
.tr-pick .bx{width:19px;height:19px;flex:0 0 auto;border-radius:6px;border:2px solid #3d3355;display:flex;align-items:center;
  justify-content:center;transition:.15s;}
.tr-pick .bx svg{width:12px;height:12px;color:#0a0812;opacity:0;}
.tr-pick.on .bx{background:var(--accent);border-color:var(--accent);}
.tr-pick.on .bx svg{opacity:1;}
.tr-pick .nm{flex:1;font-size:14px;min-width:0;overflow-wrap:anywhere;}
.tr-pick .un{font-size:12px;color:var(--mut);}
.tr-pick.no{opacity:.45;cursor:not-allowed;}

.tr-preview{background:#08060f;border:1px solid var(--line);border-radius:var(--tr-r);padding:13px 15px;font-size:14px;
  line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere;color:#e4dff0;}
.tr-preview .ph{color:var(--accent2);font-weight:700;padding:0;border:none;display:inline;}

.tr-bar{height:7px;border-radius:99px;background:var(--panel2);overflow:hidden;display:flex;}
.tr-bar i{display:block;height:100%;transition:width .4s ease;}
.tr-bar i.s{background:var(--tr-ok);} .tr-bar i.f{background:var(--tr-bad);} .tr-bar i.k{background:#453a5e;}

.tr-tgt{display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:9px;align-items:center;padding:8px 10px;
  border-radius:var(--tr-r-sm);font-size:13.5px;}
.tr-tgt:nth-child(odd){background:rgba(255,255,255,.017);}
.tr-tgt .ic{display:flex;} .tr-tgt .ic svg{width:15px;height:15px;}
.tr-tgt.sent .ic{color:var(--tr-ok);} .tr-tgt.failed .ic{color:var(--tr-bad);}
.tr-tgt.skipped .ic{color:var(--faint);} .tr-tgt.pending .ic{color:#453a5e;}
.tr-tgt .er{font-size:11.5px;color:var(--mut);grid-column:2/-1;line-height:1.4;}

/* ---------- Разное ---------- */
.tr-empty{text-align:center;padding:52px 22px;color:var(--mut);}
.tr-empty .ic{width:52px;height:52px;margin:0 auto 15px;border-radius:16px;color:#fde68a;
  background:linear-gradient(140deg,rgba(245,158,11,.18),rgba(239,68,68,.12));border:1px solid rgba(245,158,11,.3);
  display:flex;align-items:center;justify-content:center;color:var(--faint);}
.tr-empty .ic svg{width:24px;height:24px;}
.tr-empty .t{font-family:'Space Grotesk',sans-serif;font-size:17px;font-weight:700;color:var(--ink);margin-bottom:7px;}
.tr-empty .d{font-size:14px;line-height:1.55;max-width:400px;margin:0 auto 18px;}

.tr-skel{background:linear-gradient(90deg,var(--panel) 25%,var(--panel2) 50%,var(--panel) 75%);background-size:200% 100%;
  animation:trShine 1.4s linear infinite;border-radius:var(--tr-r-lg);height:150px;}
@keyframes trShine{from{background-position:200% 0;}to{background-position:-200% 0;}}

.tr-modal-scrim{position:fixed;inset:0;background:rgba(6,5,4,.76);backdrop-filter:blur(6px);z-index:70;
  display:flex;align-items:center;justify-content:center;padding:20px;animation:overlayIn .18s ease;}
.tr-modal{background:var(--panel);border:1px solid var(--line2);border-radius:var(--tr-r-xl);width:100%;max-width:520px;
  max-height:88vh;overflow-y:auto;box-shadow:var(--tr-shadow);animation:trPop .22s cubic-bezier(.2,.8,.2,1);}
@keyframes trPop{from{opacity:0;transform:translateY(14px) scale(.98);}to{opacity:1;transform:none;}}
.tr-modal .mh{display:flex;align-items:center;gap:12px;padding:18px 20px 14px;border-bottom:1px solid var(--line);
  position:sticky;top:0;background:var(--panel);z-index:2;}
.tr-modal .mh .t{font-family:'Space Grotesk',sans-serif;font-size:18px;font-weight:700;flex:1;}
.tr-modal .mb{padding:18px 20px;display:flex;flex-direction:column;gap:12px;}
.tr-modal .mf{display:flex;gap:9px;justify-content:flex-end;padding:0 20px 20px;flex-wrap:wrap;}
.tr-modal .mf .tr-btn{flex:0 1 auto;}

.tr-toast{position:fixed;left:50%;bottom:calc(24px + var(--botH));transform:translateX(-50%) translateY(10px);
  background:rgba(20,16,32,.97);border:1px solid var(--line2);color:#fff;padding:11px 18px;border-radius:12px;
  font-size:13.5px;z-index:80;opacity:0;transition:.25s;pointer-events:none;max-width:86vw;text-align:center;
  box-shadow:var(--tr-shadow-sm);}
.tr-toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
.tr-toast.bad{border-color:rgba(251,113,133,.45);}

.tr-hintbox{display:flex;gap:10px;align-items:flex-start;background:var(--panel2);border:1px solid var(--line);
  border-radius:var(--tr-r-sm);padding:11px 13px;font-size:12.5px;line-height:1.55;color:var(--mut);}
.tr-hintbox svg{width:15px;height:15px;flex:0 0 auto;margin-top:1px;color:var(--accent2);}
.tr-hintbox b{color:var(--ink);font-weight:600;}

/* ============================================================
   Адаптив. Мобильная раскладка — не сжатая настольная:
   колонки схлопываются, редактор плана перестраивается,
   действия уезжают в липкую нижнюю панель над таб-баром.
   ============================================================ */
@media(max-width:1080px){
  .tr-cal-wrap,.tr-bcast{grid-template-columns:minmax(0,1fr);}
  .tr-cols{grid-template-columns:minmax(0,1fr);}
  /* панель замеров стала во всю ширину — восемь плиток ложатся в два ряда по четыре */
  .tr-mgrid{grid-template-columns:repeat(4,1fr);}
}

@media(max-width:820px){
  .tr{padding:0 14px 26px;}
  .tr-head{padding:16px 0 14px;}
  .tr-head .tt{font-size:25px;}
  .tr-grid{grid-template-columns:minmax(0,1fr);gap:11px;}
  .tr-form{grid-template-columns:1fr;}

  /* План: два ряда вместо шести колонок — имя сверху, числа снизу крупными полями. */
  .tr-rowhint{display:none;}
  .tr-row{grid-template-columns:34px minmax(0,1fr) 34px;grid-template-areas:"pos name del" "nums nums nums";
    row-gap:5px;padding:7px 8px;}
  .tr-row .del{grid-area:del;}
  .tr-row .ri.pos{grid-area:pos;}
  .tr-row .ri.nm{grid-area:name;}
  .tr-row .nums{grid-area:nums;display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;}
  .tr-row .nums .ri{background:var(--panel);border:1px solid var(--line);min-height:40px;}
  .tr-row.head,.tr-row.note{grid-template-columns:minmax(0,1fr) 34px;grid-template-areas:"name del";}

  .tr-day{min-height:44px;border-radius:9px;padding:5px 2px 4px;}
  .tr-day .dn{font-size:13px;}
  .tr-day .cnt{display:none;}
  .tr-dow,.tr-days{padding-left:8px;padding-right:8px;}

  .tr-quick{grid-template-columns:minmax(0,1fr) 84px 40px;}
  .tr-kpis{grid-template-columns:repeat(2,1fr);}
  .tr-mgrid{grid-template-columns:repeat(2,1fr);}
  .tr-mform{grid-template-columns:1fr 1fr;}
  .tr-kbju-form .row{grid-template-columns:1fr 1fr;}
  .tr-mhead .v{font-size:26px;}

  .tr-modal-scrim{padding:0;align-items:flex-end;}
  .tr-modal{max-width:none;border-radius:var(--tr-r-xl) var(--tr-r-xl) 0 0;max-height:92vh;
    padding-bottom:env(safe-area-inset-bottom);animation:trSheet .24s cubic-bezier(.2,.8,.2,1);}
  @keyframes trSheet{from{transform:translateY(100%);}to{transform:none;}}
  .tr-modal .mf{position:sticky;bottom:0;background:var(--panel);padding-top:12px;border-top:1px solid var(--line);}
  .tr-modal .mf .tr-btn{flex:1 1 auto;}

  .tr-toast{bottom:calc(var(--botH) + 16px);}
}

@media(max-width:420px){
  .tr-head .tt{font-size:22px;}
  .tr-actions{width:100%;}
  .tr-actions .tr-btn{flex:1 1 auto;}
  .tr-hero .nm{font-size:26px;}
  .tr-kpis{grid-template-columns:repeat(2,1fr);}
}

@media (prefers-reduced-motion:reduce){
  .tr,.tr-modal,.tr-modal-scrim{animation:none;}
  .tr-card,.tr-btn,.tr-day,.tr-check,.tr-check svg,.tr-bar i{transition:none;}
  .tr-skel{animation:none;}
}

/* ---------- Запись клиентов по ссылке ---------- */
.tr-modal-lead{margin:0 0 12px;font-size:13px;line-height:1.6;color:var(--mut);}
.tr-panel .tr-modal-lead{margin:0;}

.tr-keys{display:flex;flex-direction:column;gap:10px;}
.tr-key{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:13px 14px;border-radius:var(--tr-r);
  background:var(--panel2);border:1px solid var(--line);}
.tr-key.off{opacity:.55;}
/* flex:1 с min-width:0 позволял имени и ссылке сжаться до 16 пикселей вместо переноса:
   три кнопки справа забирали всю строку. Даём колонке базу — на узком экране
   она занимает первую строку целиком, а кнопки уходят под неё. */
.tr-key .kw{flex:1 1 200px;min-width:0;display:flex;flex-direction:column;gap:3px;}
.tr-key .nm{font-size:14.5px;font-weight:650;}
.tr-key .sub{font-size:11.5px;color:var(--faint);overflow-wrap:anywhere;}
.tr-key .ka{display:flex;align-items:center;gap:7px;flex-wrap:wrap;}

.tr-wdays{display:flex;gap:6px;flex-wrap:wrap;}
.tr-wday{display:inline-flex;align-items:center;justify-content:center;min-width:44px;padding:9px 10px;cursor:pointer;
  border-radius:var(--tr-r-sm);border:1px solid var(--line);background:var(--panel);color:var(--mut);
  font-size:13px;font-weight:650;transition:.14s;}
.tr-wday{font:inherit;font-size:13px;font-weight:650;-webkit-appearance:none;appearance:none;
  -webkit-tap-highlight-color:transparent;touch-action:manipulation;}
.tr-wday:focus-visible{outline:2px solid var(--accent2);outline-offset:2px;}
.tr-wday.on{background:rgba(var(--tr-acc-rgb),.16);border-color:rgba(var(--tr-acc-rgb),.45);color:var(--ink);}

.tr-panel .ph .t{min-width:0;}
.tr-panel .ph{flex-wrap:wrap;row-gap:8px;}

.tr-blocks{display:flex;flex-direction:column;gap:8px;}
.tr-block{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--tr-r-sm);
  background:var(--panel2);border:1px solid var(--line);font-size:13.5px;}
.tr-block .d{font-weight:650;}
.tr-block .t{color:var(--mut);}
.tr-block .r{color:var(--faint);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tr-block .rm{margin-left:auto;display:flex;align-items:center;justify-content:center;width:28px;height:28px;flex:0 0 auto;
  border-radius:8px;border:1px solid transparent;background:transparent;color:var(--faint);cursor:pointer;}
.tr-block .rm:hover{color:var(--tr-bad);border-color:rgba(251,113,133,.3);}

/* Карта мышц внутри формы и карточки */
.tr-musmap{margin:2px 0 10px;}
.tr-focus-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;}
.tr-focus-list .ft{font-size:11.5px;font-weight:600;padding:4px 9px;border-radius:999px;
  background:rgba(var(--tr-acc-rgb),.14);border:1px solid rgba(var(--tr-acc-rgb),.3);color:var(--ink);}

/* программы тренировок: вкладки над планом */
.tr-progwrap{border-bottom:1px solid var(--line);background:var(--panel2);}
.tr-progs{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:10px 16px;}
.tr-prog{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:6px 12px;
  border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--mut);
  font:inherit;font-size:13px;font-weight:600;cursor:pointer;max-width:100%;
  transition:background .15s,color .15s,border-color .15s;}
.tr-prog:hover{color:var(--ink);border-color:var(--faint);}
.tr-prog:focus-visible{outline:2px solid var(--accent2);outline-offset:2px;}
.tr-prog .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tr-prog.on{background:rgba(var(--tr-acc-rgb),.14);border-color:var(--accent);color:var(--ink);}
.tr-prog .ed{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;
  margin:-4px -6px -4px 0;border-radius:50%;color:var(--faint);}
.tr-prog .ed{opacity:.55;}
.tr-prog.on .ed,.tr-prog:hover .ed{opacity:1;}
.tr-prog .ed:hover{background:var(--panel);color:var(--accent2);}
.tr-prog .ed svg{width:13px;height:13px;display:block;}
.tr-prog.add{color:var(--faint);border-style:dashed;}
.tr-prog.add svg{width:14px;height:14px;}
.tr-btn.tr-prog-del{width:100%;margin-top:14px;color:var(--tr-bad);justify-content:center;}

/* отчёты подопечного: коллаж фото и таблица опроса */
.rp-sec{display:flex;flex-direction:column;gap:9px;}
.rp-sec + .rp-sec{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);}
.rp-h{font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--faint);font-weight:600;}
.rp-day{display:flex;flex-direction:column;gap:6px;}
.rp-day .d{font-size:12.5px;font-weight:650;color:var(--mut);}
.rp-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;}
.rp-row.wrap{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));}
.rp-th{position:relative;display:block;padding:0;border:1px solid var(--line);border-radius:var(--tr-r-sm);
  overflow:hidden;background:var(--panel2);cursor:pointer;aspect-ratio:3/4;}
.rp-th.sm{aspect-ratio:1/1;}
.rp-th img{width:100%;height:100%;object-fit:cover;display:block;}
.rp-th .k{position:absolute;left:0;right:0;bottom:0;padding:4px 6px;font-size:10.5px;font-weight:600;
  color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.75));}
.rp-th:hover{border-color:var(--accent);}
.rp-tbl{display:flex;flex-direction:column;gap:1px;background:var(--line);border-radius:var(--tr-r-sm);overflow:hidden;}
.rp-tr{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,1fr)) 26px;gap:6px;
  align-items:center;padding:8px 10px;background:var(--panel2);font-size:13px;font-variant-numeric:tabular-nums;}
.rp-tr.hd{background:var(--panel);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-weight:600;}
.rp-note{display:flex;flex-direction:column;gap:3px;padding:2px 10px 9px;background:var(--panel2);
  font-size:12.5px;line-height:1.5;color:var(--mut);}
.rp-note b{color:var(--ink);font-weight:650;}

/* листалка тренировок внутри плана */
.tr-wpager{display:flex;align-items:center;gap:8px;padding:9px 16px;
  border-bottom:1px solid var(--line);background:var(--panel2);}
.tr-wpager .wl{font-family:'Space Grotesk',sans-serif;font-size:13.5px;font-weight:700;
  display:inline-flex;align-items:baseline;gap:6px;white-space:nowrap;}
.tr-wpager .wl small{font-size:11.5px;font-weight:600;color:var(--faint);}
.tr-wpager .add{margin-left:auto;}
.tr-wpager .tr-btn[disabled]{opacity:.35;pointer-events:none;}
/* на узком экране подпись важнее слова на кнопке — оставляем плюс */
@media (max-width:560px){
  .tr-wpager{gap:6px;padding:9px 12px;}
  .tr-wpager .add{padding-left:10px;padding-right:10px;}
  .tr-wpager .add .btxt{display:none;}
}

/* Буквы тренировок: у каждой свой состав, как просил владелец (М, С, Б или любые другие) */
.tr-wchips{display:flex;align-items:stretch;gap:8px;padding:11px 16px 10px;overflow-x:auto;
  background:var(--panel2);border-bottom:1px solid var(--line);scrollbar-width:none;}
.tr-wchips::-webkit-scrollbar{display:none;}
.tr-wchip{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  min-width:56px;max-width:150px;padding:7px 13px;cursor:pointer;border-radius:14px;
  border:1px solid var(--line2);background:var(--panel);color:var(--mut);font-family:inherit;transition:.18s;}
.tr-wchip b{font-family:'Space Grotesk',sans-serif;font-size:17px;font-weight:700;line-height:1.05;color:var(--ink);}
.tr-wchip s{max-width:126px;text-decoration:none;font-size:10.5px;line-height:1.2;color:var(--faint);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tr-wchip:hover{border-color:#f59e0b;transform:translateY(-1px);}
.tr-wchip.on{background:linear-gradient(150deg,rgba(245,158,11,.26),rgba(239,68,68,.12));
  border-color:rgba(245,158,11,.55);box-shadow:0 8px 22px -14px rgba(245,158,11,.9);}
.tr-wchip.on b{color:#fde68a;}
.tr-wchip.on s{color:#fcd34d;}
.tr-wchip.add{min-width:44px;padding:7px 12px;color:var(--faint);border-style:dashed;}
.tr-wchip.add svg{width:17px;height:17px;}
.tr-wchip.add:hover{color:#fbbf24;}
.tr-wtitle{display:flex;align-items:center;gap:9px;padding:0 16px 11px;background:var(--panel2);
  border-bottom:1px solid var(--line);}
.tr-wtitle .wl-let{flex:none;display:grid;place-items:center;min-width:34px;height:34px;padding:0 8px;
  border-radius:11px;font-family:'Space Grotesk',sans-serif;font-size:15px;font-weight:700;color:#fde68a;
  background:linear-gradient(140deg,rgba(245,158,11,.24),rgba(239,68,68,.12));
  border:1px solid rgba(245,158,11,.4);}
.tr-wtitle .tr-in{font-family:'Space Grotesk',sans-serif;font-size:14.5px;font-weight:650;}
@media (max-width:560px){ .tr-wtitle{padding:0 12px 10px;} }

/* расшифровка букв программы: показ в карточке и правка в окне программы */
.tr-marks{display:flex;flex-wrap:wrap;gap:7px;padding:0 16px 11px;}
.tr-marks .mk{display:inline-flex;align-items:baseline;gap:7px;padding:5px 11px 5px 6px;
  border-radius:999px;background:var(--panel);border:1px solid var(--line);font-size:12px;}
.tr-marks .mk b{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;
  border-radius:50%;background:rgba(var(--tr-acc-rgb),.2);color:var(--tr-acc-ink);font-size:11.5px;font-weight:700;
  font-family:'Space Grotesk',sans-serif;align-self:center;}
.tr-marks .mk .tt{color:var(--ink);font-weight:600;}
.tr-marks .mk .mu{color:var(--faint);}

.tr-mks{display:flex;flex-direction:column;gap:8px;}
.tr-mk{display:grid;grid-template-columns:56px minmax(0,1fr) minmax(0,1.4fr) 36px;gap:7px;align-items:center;}
.tr-mk .lt{text-align:center;font-weight:700;}
.tr-mk .mus{justify-content:flex-start;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;
  line-height:1.3;text-align:left;}
.tr-mk-empty{font-size:12.5px;color:var(--faint);line-height:1.5;}
@media (max-width:560px){
  .tr-mks{gap:15px;}
  .tr-mk{grid-template-columns:56px minmax(0,1fr) 36px;row-gap:6px;}
  .tr-mk .lt{grid-column:1;grid-row:1;}
  .tr-mk [data-mk-f="title"]{grid-column:2/-1;grid-row:1;}
  .tr-mk .mus{grid-column:1/3;grid-row:2;}
  .tr-mk [data-mk-del]{grid-column:3;grid-row:2;}
}

/* ── Канонические циклы ─────────────────────────────────────────────────────
   Программа-таблица: герой с анимированной фигурой, недели, карточки С/М/Б.
   Цвета дней: С — фиолетовый (акцент), М — бирюза, Б — роза; всё сверх 100%
   от ПМ горит тёплым градиентом — это сверхмаксимальные подходы. */
.pb.cyc{padding:0 0 16px;}

.cyc-hero{display:flex;align-items:center;gap:18px;padding:18px 18px 14px;position:relative;overflow:hidden;
  background:
    radial-gradient(420px 190px at 12% 0%,rgba(var(--tr-acc-rgb),.16),transparent 70%),
    radial-gradient(360px 200px at 95% 110%,rgba(45,212,191,.07),transparent 70%);}
.cyc-fig{flex:0 0 118px;width:118px;height:112px;border-radius:18px;position:relative;
  background:linear-gradient(160deg,rgba(var(--tr-acc-rgb),.14),rgba(var(--tr-acc-rgb),.03) 65%);
  border:1px solid rgba(var(--tr-acc-rgb),.25);box-shadow:inset 0 0 24px rgba(var(--tr-acc-rgb),.08),0 10px 26px rgba(0,0,0,.3);}
.cyc-fig::after{content:'';position:absolute;left:14%;right:14%;bottom:9px;height:10px;border-radius:50%;
  background:radial-gradient(closest-side,rgba(var(--tr-acc-rgb),.34),transparent);filter:blur(1px);
  animation:cycGlow 2.8s ease-in-out infinite;}
@keyframes cycGlow{0%,100%{opacity:.5;transform:scaleX(.86);}50%{opacity:1;transform:scaleX(1);}}
.cyc-figsvg{width:100%;height:100%;display:block;}
.cyc-figsvg .fl{fill:none;stroke:var(--tr-acc-ink);stroke-width:4.6;stroke-linecap:round;stroke-linejoin:round;}
.cyc-figsvg .fl.thin{stroke-width:3;}
.cyc-figsvg .fg{fill:none;stroke:rgba(var(--tr-acc2-rgb),.30);stroke-width:2;stroke-linecap:round;}
.cyc-figsvg .fb{fill:rgba(var(--tr-acc2-rgb),.2);stroke:rgba(var(--tr-acc2-rgb),.4);stroke-width:1.4;}
.cyc-figsvg .fd{fill:var(--tr-acc-ink);}
.cyc-figsvg .fp{fill:rgba(var(--tr-acc-rgb),.32);stroke:var(--accent2);stroke-width:2.6;}
.cyc-figsvg .fr{fill:none;stroke:rgba(var(--tr-acc2-rgb),.4);stroke-width:1.5;}
.cyc-figsvg .fh{fill:var(--accent2);}

.cyc-head{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px;align-items:flex-start;}
.cyc-badge{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:800;letter-spacing:.16em;
  text-transform:uppercase;color:var(--tr-acc-ink);padding:4px 10px;border-radius:999px;
  background:linear-gradient(120deg,rgba(var(--tr-acc-rgb),.32),rgba(var(--tr-acc-rgb),.12));border:1px solid rgba(var(--tr-acc2-rgb),.4);}
.cyc-badge svg{width:11px;height:11px;color:#fbbf24;fill:#fbbf24;stroke:none;}
.cyc-head .nm{font-family:'Space Grotesk',sans-serif;font-size:23px;font-weight:700;letter-spacing:-.02em;line-height:1.1;}
.cyc-head .vr{font-size:12.5px;color:var(--mut);}
.cyc-pm{display:inline-flex;align-items:baseline;gap:6px;margin-top:5px;padding:7px 13px;border-radius:11px;cursor:pointer;
  border:1px solid var(--line2);background:var(--bg);color:var(--mut);font-family:inherit;font-size:12.5px;transition:.15s;}
.cyc-pm b{font-family:'Space Grotesk',sans-serif;font-size:19px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;}
.cyc-pm svg{width:12px;height:12px;align-self:center;opacity:.6;}
.cyc-pm:hover{border-color:var(--accent);color:var(--accent2);}
.cyc-mus{flex:0 0 148px;width:148px;}
.cyc-mus .mm-wrap{margin:0;}

.cyc-note{display:flex;gap:8px;align-items:flex-start;margin:0 18px 12px;padding:9px 12px;border-radius:11px;
  font-size:12.5px;line-height:1.5;color:var(--mut);background:rgba(var(--tr-acc-rgb),.06);border:1px solid rgba(var(--tr-acc-rgb),.14);}
.cyc-note svg{width:14px;height:14px;flex:0 0 auto;margin-top:2px;color:var(--accent2);}

.cyc-wks{display:flex;gap:8px;padding:0 18px 14px;flex-wrap:wrap;}
.cyc-wk{display:flex;flex-direction:column;align-items:center;gap:1px;min-width:74px;padding:8px 14px;cursor:pointer;
  border:1px solid var(--line2);border-radius:13px;background:var(--bg);color:var(--mut);font-family:inherit;transition:.15s;}
.cyc-wk s{text-decoration:none;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;}
.cyc-wk b{font-family:'Space Grotesk',sans-serif;font-size:17px;font-weight:700;line-height:1.1;color:var(--ink);}
.cyc-wk:hover{border-color:var(--accent);}
.cyc-wk.on{background:linear-gradient(150deg,rgba(var(--tr-acc-rgb),.30),rgba(var(--tr-acc-rgb),.10));
  border-color:rgba(var(--tr-acc2-rgb),.55);box-shadow:0 6px 18px rgba(var(--tr-acc-rgb),.22);color:var(--tr-acc-ink);}
.cyc-wk.on b{color:#fff;}

.cyc-days{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px;padding:0 18px;}
.cyc-card{position:relative;border:1px solid var(--line2);border-radius:20px;overflow:hidden;padding:15px 15px 13px;
  background:radial-gradient(120% 80% at 0% 0%,var(--cy-soft),transparent 60%),
    linear-gradient(170deg,rgba(255,255,255,.03),transparent 45%),var(--bg);
  box-shadow:0 18px 40px -30px rgba(0,0,0,.9);}
.cyc-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;
  background:linear-gradient(to bottom,var(--cy-c),transparent);}
.cyc-card.k-s{--cy-c:#fbbf24;--cy-soft:rgba(var(--tr-acc2-rgb),.16);}
.cyc-card.k-m{--cy-c:#2dd4bf;--cy-soft:rgba(45,212,191,.15);}
.cyc-card.k-b{--cy-c:#fb7185;--cy-soft:rgba(251,113,133,.15);}
.cyc-card .ch{display:flex;align-items:center;gap:11px;padding-bottom:12px;margin-bottom:2px;
  border-bottom:1px solid var(--line);}
.cyc-card .med{width:40px;height:40px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;
  border-radius:14px;font-family:'Space Grotesk',sans-serif;font-size:18px;font-weight:800;color:#0c0a14;
  background:linear-gradient(145deg,color-mix(in srgb,var(--cy-c) 88%,#fff),color-mix(in srgb,var(--cy-c) 55%,#000));
  box-shadow:0 6px 18px var(--cy-soft),0 0 0 4px var(--cy-soft);}
.cyc-card .lb{display:flex;flex-direction:column;line-height:1.2;min-width:0;}
.cyc-card .lb b{font-family:'Space Grotesk',sans-serif;font-size:16.5px;font-weight:800;letter-spacing:-.01em;}
.cyc-card .lb s{text-decoration:none;font-size:11px;color:var(--faint);}
.cyc-card .mx{margin-left:auto;display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:#fda4af;padding:4px 9px;border-radius:999px;
  background:rgba(251,113,133,.1);border:1px solid rgba(251,113,133,.3);}
.cyc-card .mx svg{width:11px;height:11px;fill:#fb7185;stroke:none;}

.cyc-blk{margin-top:13px;}
.cyc-blk:first-of-type{margin-top:11px;}
/* Заголовок блока: точка цвета, название, число подходов и линия до края —
   так три блока подряд не сливаются в одну кашу. */
.cyc-blk .bl{display:flex;align-items:center;gap:8px;margin:0 0 8px;}
.cyc-blk .bl .d{width:7px;height:7px;flex:none;border-radius:50%;background:var(--faint);
  box-shadow:0 0 0 3px rgba(255,255,255,.04);}
.cyc-blk .bl .n{font-size:10.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--mut);}
.cyc-blk .bl em{font-style:normal;font-size:10.5px;color:var(--faint);white-space:nowrap;}
.cyc-blk .bl .ln{flex:1;height:1px;min-width:10px;background:linear-gradient(90deg,var(--line2),transparent);}
.cyc-blk.work .bl .n{color:var(--cy-c);}
.cyc-blk.work .bl .d{background:var(--cy-c);box-shadow:0 0 0 3px var(--cy-soft);}
.cyc-blk.extra .bl .n{color:#fbbf24;}
.cyc-blk.extra .bl .d{background:#fbbf24;box-shadow:0 0 0 3px rgba(251,191,36,.16);}

/* Подходы — сетка, а не прокрутка: на телефоне ничего не уезжает за край. */
.cyc-sets{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:7px;}
.cyc-set{position:relative;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;
  min-height:92px;padding:8px 4px 9px;border-radius:14px;overflow:hidden;isolation:isolate;
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);
  transition:transform .16s,border-color .16s;}
.cyc-set:hover{transform:translateY(-2px);}
/* Заливка снизу — она и есть «столбик»: доля от ПМ читается силуэтом. */
.cyc-set .fill{position:absolute;left:0;right:0;bottom:0;z-index:-1;border-radius:0 0 13px 13px;opacity:.5;
  transform-origin:bottom;background:linear-gradient(to top,rgba(255,255,255,.14),rgba(255,255,255,.03));
  animation:cycRise .5s cubic-bezier(.2,.9,.25,1);}
/* Светлая кромка на уровне заливки — по ней уровень читается точнее, чем по оттенку. */
.cyc-set .fill::after{content:'';position:absolute;left:0;right:0;top:0;height:2px;
  background:rgba(255,255,255,.5);box-shadow:0 0 10px rgba(255,255,255,.35);}
/* В кадрах только высота: прозрачность здесь перебивала бы цвет заливки блока. */
@keyframes cycRise{from{transform:scaleY(.2);}to{transform:scaleY(1);}}
.cyc-set u{position:absolute;top:7px;left:0;right:0;text-decoration:none;text-align:center;
  font-size:9.5px;font-weight:700;letter-spacing:.02em;color:var(--faint);font-variant-numeric:tabular-nums;}
.cyc-set .v{display:flex;flex-direction:column;align-items:center;gap:1px;}
.cyc-set b{font-family:'Space Grotesk',sans-serif;font-size:17px;font-weight:800;line-height:1.05;
  letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap;
  text-shadow:0 2px 10px rgba(0,0,0,.55);}
.cyc-set s{text-decoration:none;font-size:11px;font-weight:700;color:#e9e2ff;white-space:nowrap;
  text-shadow:0 1px 6px rgba(0,0,0,.7);}

/* Рабочие подходы — в цвете тренировки, добор — золотой, свыше ПМ — огонь. */
.cyc-blk.work .cyc-set{border-color:color-mix(in srgb,var(--cy-c) 30%,transparent);}
.cyc-blk.work .cyc-set .fill{background:linear-gradient(to top,var(--cy-c),color-mix(in srgb,var(--cy-c) 30%,transparent));
  opacity:.3;}
.cyc-blk.work .cyc-set .fill::after{background:var(--cy-c);box-shadow:0 0 12px var(--cy-c);}
.cyc-blk.work .cyc-set u{color:var(--cy-c);}
.cyc-blk.work .cyc-set:hover{border-color:var(--cy-c);}
.cyc-blk.extra .cyc-set{border-color:rgba(251,191,36,.26);}
.cyc-blk.extra .cyc-set .fill{background:linear-gradient(to top,#f59e0b,rgba(253,230,138,.18));opacity:.28;}
.cyc-blk.extra .cyc-set .fill::after{background:#fbbf24;box-shadow:0 0 12px rgba(251,191,36,.9);}
.cyc-blk.extra .cyc-set u{color:#fcd34d;}
/* Больше 80 % от ПМ — подход горит: живая заливка, языки пламени над кромкой, тёплое свечение. */
.cyc-blk .cyc-set.hot{border-color:rgba(249,115,22,.55);animation:hotGlow 1.7s ease-in-out infinite;}
@keyframes hotGlow{
  0%,100%{box-shadow:0 0 12px rgba(249,115,22,.30),inset 0 -16px 26px -16px rgba(251,146,60,.45);}
  50%{box-shadow:0 0 24px rgba(239,68,68,.55),inset 0 -22px 32px -16px rgba(253,224,71,.6);}}
.cyc-blk .cyc-set.hot .fill{opacity:.45;
  background:linear-gradient(to top,#b91c1c,#ea580c 40%,#f59e0b 70%,rgba(253,224,71,.35));
  animation:cycRise .5s cubic-bezier(.2,.9,.25,1),hotFill 1.1s ease-in-out .5s infinite alternate;}
@keyframes hotFill{from{filter:brightness(.92) saturate(1.1);}to{filter:brightness(1.28) saturate(1.45);}}
.cyc-blk .cyc-set.hot .fill::after{background:#fde047;box-shadow:0 0 14px #f97316,0 0 28px rgba(239,68,68,.8);}
/* Языки пламени: SVG сидит на верхней кромке заливки, слои мерцают с разной задержкой. */
.cyc-set .fire{position:absolute;left:-4%;right:-4%;bottom:-2px;z-index:-1;width:108%;height:68%;
  filter:drop-shadow(0 -3px 12px rgba(249,115,22,.7));}
.cyc-set .fire .tg{transform-box:fill-box;transform-origin:50% 100%;
  animation:hotLick .5s ease-in-out infinite alternate;}
/* Внешний слой размыт — края языков сливаются в общую массу пламени. */
.cyc-set .fire .fo{fill:#dc2626;opacity:.9;filter:blur(2.2px);}
.cyc-set .fire .fm{fill:#f97316;opacity:.95;filter:blur(1.1px);}
.cyc-set .fire .fc{fill:#fde047;filter:blur(.5px);animation:hotCore .38s ease-in-out infinite alternate;}
@keyframes hotLick{from{transform:scaleY(.82) scaleX(1.06) skewX(-4deg);}to{transform:scaleY(1.18) scaleX(.94) skewX(4deg);}}
@keyframes hotCore{from{opacity:.75;}to{opacity:1;}}
.cyc-blk .cyc-set.hot u{display:inline-flex;align-items:center;justify-content:center;gap:3px;color:#fde68a;}
.cyc-blk .cyc-set.hot u svg{width:10px;height:10px;fill:#fb923c;stroke:none;animation:cycFlame 1.2s ease-in-out infinite;}
/* Числа на пламени: тёмная подложка со стеклом, иначе вес и повторы теряются в огне. */
.cyc-blk .cyc-set.hot .v{padding:3px 9px 4px;border-radius:11px;background:rgba(10,6,4,.42);
  border:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);}
.cyc-blk .cyc-set.hot b{color:#fff;text-shadow:0 2px 6px rgba(0,0,0,.9);}
.cyc-blk .cyc-set.hot s{color:#fff;text-shadow:0 1px 5px rgba(0,0,0,.95);}
.cyc-blk .cyc-set.hot u{text-shadow:0 1px 5px rgba(0,0,0,.9);}

/* Свыше ПМ — красный поверх любого блока, поэтому селектор длиннее. */
.cyc-blk .cyc-set.over{border-color:rgba(244,63,94,.5);}
.cyc-blk .cyc-set.over .fill{background:linear-gradient(to top,#9f1239,#e11d48 45%,#f97316 75%,rgba(253,224,71,.4));opacity:.62;}
.cyc-blk .cyc-set.over .fill::after{background:#fb7185;box-shadow:0 0 14px rgba(244,63,94,.95);}
.cyc-blk .cyc-set.over u{color:#fda4af;}
.cyc-blk .cyc-set.over b{color:#fff;}

.cyc-max{display:flex;align-items:center;gap:7px;margin-top:10px;padding:9px 12px;border-radius:11px;
  font-size:12.5px;font-weight:600;color:#fecdd3;
  background:linear-gradient(120deg,rgba(225,29,72,.18),rgba(251,146,60,.08));border:1px solid rgba(251,113,133,.3);}
.cyc-max svg{width:14px;height:14px;fill:#fb7185;stroke:none;animation:cycFlame 1.6s ease-in-out infinite;}
.cyc-acc{margin-top:14px;padding-top:13px;border-top:1px dashed rgba(255,255,255,.09);}
.cyc-acc .bl{display:flex;align-items:center;gap:8px;margin:0 0 9px;}
.cyc-acc .bl .d{width:7px;height:7px;flex:none;border-radius:50%;background:#fb7185;box-shadow:0 0 0 3px rgba(251,113,133,.16);}
.cyc-acc .bl .n{font-size:10.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#fda4af;}
.cyc-acc .bl em{font-style:normal;font-size:10.5px;color:var(--faint);white-space:nowrap;}
.cyc-acc .bl .ln{flex:1;height:1px;min-width:10px;background:linear-gradient(90deg,var(--line2),transparent);}
.cya-t{display:flex;align-items:center;gap:9px;padding:0 12px;border-radius:13px;cursor:text;
  background:linear-gradient(150deg,rgba(251,113,133,.08),rgba(251,191,36,.04));border:1px solid rgba(251,113,133,.22);
  transition:border-color .16s,box-shadow .16s;}
.cya-t svg{width:16px;height:16px;flex:none;color:#fb7185;}
.cya-t input{flex:1;min-width:0;background:transparent;border:0;outline:0;color:var(--ink);font:inherit;
  font-size:14.5px;font-weight:650;padding:11px 0;}
.cya-t:focus-within{border-color:rgba(251,113,133,.6);box-shadow:0 0 0 3px rgba(251,113,133,.14);}
.cya-t input::placeholder,.cya-nm::placeholder,.cya-n input::placeholder{color:#5d5470;font-weight:500;}
.cya-rows{display:flex;flex-direction:column;gap:8px;margin-top:9px;}
.cya-r{position:relative;padding:8px 9px 9px;border-radius:15px;
  background:linear-gradient(160deg,rgba(255,255,255,.05),rgba(255,255,255,.012));border:1px solid rgba(255,255,255,.08);
  box-shadow:0 10px 22px -18px rgba(0,0,0,.9);transition:border-color .16s;
  animation:cyaIn .36s cubic-bezier(.2,.8,.25,1) both;animation-delay:var(--d,0ms);}
.cya-r:focus-within{border-color:color-mix(in srgb,var(--cy-c) 55%,transparent);}
@keyframes cyaIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}
.cya-top{display:flex;align-items:center;gap:8px;}
.cya-no{flex:none;display:grid;place-items:center;width:25px;height:25px;border-radius:8px;font-style:normal;
  font-family:'Space Grotesk',sans-serif;font-size:12.5px;font-weight:800;color:#0c0a14;
  background:linear-gradient(145deg,color-mix(in srgb,var(--cy-c) 88%,#fff),color-mix(in srgb,var(--cy-c) 58%,#000));}
.cya-nm{flex:1;min-width:0;background:transparent;border:0;outline:0;color:var(--ink);font:inherit;
  font-size:14.5px;font-weight:650;padding:6px 2px;}
.cya-del{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:9px;border:0;background:none;
  color:var(--faint);cursor:pointer;transition:.15s;}
.cya-del:hover{color:#fb7185;background:rgba(251,113,133,.1);}
.cya-del svg{width:15px;height:15px;}
.cya-nums{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:7px;}
.cya-n{display:flex;flex-direction:column;align-items:center;gap:1px;padding:7px 4px 6px;border-radius:12px;cursor:text;
  background:rgba(0,0,0,.24);border:1px solid rgba(255,255,255,.06);transition:border-color .16s,background .16s;}
.cya-n input{width:100%;min-width:0;background:transparent;border:0;outline:0;text-align:center;color:var(--ink);padding:0;
  font-family:'Space Grotesk',sans-serif;font-size:17px;font-weight:800;line-height:1.15;font-variant-numeric:tabular-nums;}
.cya-n span{font-size:9.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);}
.cya-n:focus-within{border-color:color-mix(in srgb,var(--cy-c) 55%,transparent);background:rgba(0,0,0,.34);}
.cya-n:focus-within span{color:var(--cy-c);}
.cya-r.note{display:flex;align-items:center;gap:8px;padding:5px 9px 5px 12px;border-style:dashed;background:transparent;box-shadow:none;}
.cya-r.note > svg{width:15px;height:15px;flex:none;color:var(--faint);}
.cya-r.note .cya-nm{font-style:italic;font-weight:500;font-size:13.5px;color:var(--mut);}
.cya-add{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px;}
@media (prefers-reduced-motion:reduce){.cya-r{animation:none;}}
@keyframes cycFlame{0%,100%{transform:scale(1);}50%{transform:scale(1.22);}}

/* Демонстрация движения: два кадра из free-exercise-db сменяют друг друга. */
.cyc-demos{display:flex;gap:12px;padding:16px 18px 0;flex-wrap:wrap;}
.cyc-demo{flex:1 1 240px;max-width:340px;margin:0;}
.cyc-demo .ph{position:relative;display:block;aspect-ratio:3/2;border-radius:14px;overflow:hidden;
  border:1px solid var(--line2);box-shadow:0 10px 26px rgba(0,0,0,.32);}
.cyc-demo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
.cyc-demo img.b{animation:cycDemo 2.6s ease-in-out infinite;}
@keyframes cycDemo{0%,38%{opacity:0;}50%,88%{opacity:1;}100%{opacity:0;}}
.cyc-demo figcaption{margin-top:6px;font-size:11.5px;color:var(--mut);text-align:center;}

/* Мастер нового цикла */
.cyw{display:flex;flex-direction:column;gap:13px;}
.cyw-h{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent2);}
.cyw-lifts{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:9px;}
.cyw-l{display:flex;flex-direction:column;align-items:center;gap:3px;padding:12px 8px 11px;cursor:pointer;
  border:1px solid var(--line2);border-radius:14px;background:var(--bg);color:var(--ink);font-family:inherit;transition:.15s;}
.cyw-l svg{width:74px;height:70px;}
.cyw-l b{font-size:13.5px;font-weight:700;}
.cyw-l s{text-decoration:none;font-size:10.5px;color:var(--faint);}
.cyw-l:hover{border-color:var(--accent);}
.cyw-l.on{background:linear-gradient(155deg,rgba(var(--tr-acc-rgb),.24),rgba(var(--tr-acc-rgb),.06));
  border-color:rgba(var(--tr-acc2-rgb),.6);box-shadow:0 8px 22px rgba(var(--tr-acc-rgb),.2);}
.cyw-row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;}
.cyw-days{display:flex;gap:0;border:1px solid var(--line2);border-radius:12px;overflow:hidden;}
.cyw-days button{padding:10px 15px;border:none;background:transparent;color:var(--mut);cursor:pointer;
  font-family:inherit;font-size:13px;font-weight:600;transition:.15s;}
.cyw-days button.on{background:var(--accent);color:#fff;}
.cyw-pm{display:flex;flex-direction:column;gap:5px;flex:1;min-width:130px;}
.cyw-pm span{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);}
.cyw-or{display:flex;align-items:center;gap:10px;color:var(--faint);font-size:11.5px;}
.cyw-or i{flex:1;height:1px;background:var(--line2);}
.tr-btn.wide{width:100%;justify-content:center;}
.tr-prog.cyc svg{width:12px;height:12px;color:#fbbf24;fill:#fbbf24;stroke:none;margin-right:-2px;}

@media (max-width:760px){
  .cyc-hero{flex-wrap:wrap;gap:12px;padding:14px 12px 10px;}
  .cyc-fig{flex-basis:96px;width:96px;height:92px;}
  .cyc-mus{order:3;flex:1 1 100%;width:auto;display:flex;justify-content:center;}
  .cyc-mus [data-musmap-ro]{max-width:190px;}
  .cyc-note{margin:0 12px 10px;}
  .cyc-wks{padding:0 12px 12px;gap:6px;}
  .cyc-wk{min-width:0;flex:1;padding:7px 8px;}
  .cyc-days{grid-template-columns:1fr;padding:0 12px;}
  .cyc-demos{padding:14px 12px 0;}
  .cyc-head .nm{font-size:19px;}
}

/* ── Тексты автосообщений ───────────────────────────────────────────────────
   Тренер правит письма, которые уходят подопечным. Рядом с полем — подстановки
   и живой предпросмотр: видно ровно то, что придёт в Telegram. */
.tr-msgs{display:flex;flex-direction:column;gap:14px;}
.tr-msg{position:relative;padding:13px 14px 12px;border-radius:15px;
  border:1px solid var(--line2);background:var(--bg);transition:border-color .18s,box-shadow .18s;}
.tr-msg::before{content:'';position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:0 3px 3px 0;
  background:linear-gradient(180deg,#fbbf24,#f97316);opacity:0;transition:opacity .18s;}
.tr-msg.custom::before{opacity:1;}
.tr-msg.custom{border-color:rgba(251,191,36,.34);}
.tr-msg:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--tr-acc-rgb),.13);}
.tr-msg-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:9px;}
.tr-msg-h .nm{font-family:'Space Grotesk',sans-serif;font-size:14.5px;font-weight:700;}
.tr-msg-when{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--mut);}
.tr-msg-when .tr-in{width:66px;padding:6px 8px;text-align:center;font-variant-numeric:tabular-nums;}
.tr-msg-reset{margin-left:auto;display:inline-flex;align-items:center;gap:5px;padding:5px 10px;cursor:pointer;
  border:1px solid var(--line2);border-radius:999px;background:transparent;color:var(--faint);
  font-family:inherit;font-size:11.5px;transition:.15s;}
.tr-msg-reset:hover{border-color:var(--accent);color:var(--accent2);}
.tr-msg-reset svg{width:12px;height:12px;}
.tr-msg-t{width:100%;resize:vertical;min-height:84px;line-height:1.5;}
.tr-msg-vars{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px;}
.tr-var{padding:4px 10px;border-radius:999px;cursor:pointer;font-family:'Space Grotesk',sans-serif;
  font-size:11.5px;font-weight:600;color:var(--tr-acc-ink);background:rgba(var(--tr-acc-rgb),.14);
  border:1px solid rgba(var(--tr-acc-rgb),.3);transition:.15s;}
.tr-var:hover{background:rgba(var(--tr-acc-rgb),.26);border-color:var(--accent);transform:translateY(-1px);}
.tr-var:active{transform:translateY(0);}
.tr-msg-prev{margin-top:11px;padding:11px 13px;border-radius:13px;
  background:linear-gradient(150deg,rgba(45,212,191,.09),rgba(45,212,191,.03));
  border:1px solid rgba(45,212,191,.22);}
.tr-msg-prev .l{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:#2dd4bf;}
.tr-msg-prev .l svg{width:12px;height:12px;}
.tr-msg-prev p{margin:7px 0 0;font-size:13.5px;line-height:1.55;color:var(--ink);white-space:pre-wrap;
  overflow-wrap:anywhere;}
@media (max-width:560px){
  .tr-msg{padding:11px 11px 10px;}
  .tr-msg-reset{margin-left:0;}
  .tr-msg-when{width:100%;}
}

/* Поиск человека в Telegram: имя, ник и числовой id — для тех, у кого ника нет */
.tr-tgpick{display:flex;flex-direction:column;gap:9px;}
.tr-tgpick .tgp-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.tgp-id{flex:1;min-width:0;}
.tgp-none{font-size:12px;color:var(--faint);}
.tgp-chip{display:inline-flex;align-items:center;gap:7px;padding:5px 6px 5px 11px;border-radius:999px;
  font-family:'Space Grotesk',sans-serif;font-size:12.5px;font-weight:700;letter-spacing:.02em;
  color:#fde68a;background:linear-gradient(135deg,rgba(245,158,11,.2),rgba(239,68,68,.14));
  border:1px solid rgba(245,158,11,.4);box-shadow:0 4px 14px -8px rgba(245,158,11,.7);
  animation:tgp-pop .22s ease-out;}
.tgp-chip svg{width:13px;height:13px;}
.tgp-chip .cp,.tgp-chip .rm{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;
  padding:0;border:0;border-radius:50%;cursor:pointer;background:rgba(0,0,0,.22);color:inherit;transition:.15s;}
.tgp-chip .cp:hover{background:rgba(0,0,0,.4);}
.tgp-chip .rm:hover{background:rgba(239,68,68,.55);color:#fff;transform:rotate(90deg);}
@keyframes tgp-pop{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}
.tgp-find{white-space:nowrap;}
.tgp-box{border:1px solid var(--line);border-radius:var(--tr-r);background:var(--panel2);overflow:hidden;
  animation:tgp-open .2s ease-out;}
@keyframes tgp-open{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
.tgp-search{display:flex;align-items:center;gap:8px;padding:9px 11px;border-bottom:1px solid var(--line);
  color:var(--faint);}
.tgp-search svg{width:15px;height:15px;flex:none;}
.tgp-search .tr-in{border:0;background:transparent;padding:2px 0;}
.tgp-search .tr-in:focus{box-shadow:none;}
.tgp-list{max-height:264px;overflow:auto;}
.tgp-note{padding:14px 13px;font-size:12.5px;color:var(--mut);line-height:1.5;}
.tgp-note.bad{color:#fca5a5;}
.tgp-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 11px;border:0;cursor:pointer;
  background:transparent;color:var(--ink);text-align:left;font-family:inherit;transition:.14s;}
.tgp-item+.tgp-item{border-top:1px solid var(--line);}
.tgp-item:hover{background:rgba(245,158,11,.09);}
.tgp-item .av{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;
  font-family:'Space Grotesk',sans-serif;font-size:14px;font-weight:700;color:#0b0a12;
  background:linear-gradient(140deg,#fbbf24,#f87171);}
.tgp-item .tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.tgp-item .nm{font-size:13.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tgp-item .sub{font-size:11.5px;color:var(--faint);font-variant-numeric:tabular-nums;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tgp-item .tag{flex:none;padding:3px 8px;border-radius:999px;font-size:10.5px;font-weight:700;
  color:#fde68a;background:rgba(245,158,11,.16);border:1px solid rgba(245,158,11,.32);}
@media (max-width:560px){
  .tgp-find{width:100%;}
  .tgp-list{max-height:210px;}
}

/* Удаление отчётов: крестик поверх снимка и корзина в строке опроса */
.rp-cell{position:relative;}
.rp-cell .rp-th{width:100%;}
.rp-del{position:absolute;top:5px;right:5px;display:grid;place-items:center;width:24px;height:24px;
  padding:0;border:1px solid rgba(255,255,255,.14);border-radius:50%;cursor:pointer;
  background:rgba(9,8,15,.68);color:#fff;opacity:0;transform:scale(.8);transition:.16s;
  -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);}
.rp-del svg{width:13px;height:13px;}
.rp-cell:hover .rp-del,.rp-del:focus-visible{opacity:1;transform:scale(1);}
.rp-del:hover{background:linear-gradient(135deg,#ef4444,#f59e0b);border-color:transparent;
  box-shadow:0 6px 16px -8px rgba(239,68,68,.9);}
.rp-delrow{display:grid;place-items:center;width:26px;height:26px;padding:0;border:0;border-radius:8px;
  cursor:pointer;background:transparent;color:var(--faint);transition:.15s;}
.rp-delrow svg{width:14px;height:14px;}
.rp-delrow:hover{background:rgba(239,68,68,.16);color:#fca5a5;}
@media (hover:none){
  .rp-del{opacity:1;transform:scale(1);}
}

/* Ответы анкеты: активность образа жизни и тренировки в неделю */
.tr-facts{display:flex;flex-wrap:wrap;gap:8px;}
.tr-fact{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border-radius:12px;
  font-size:13px;line-height:1.35;color:var(--ink);
  background:linear-gradient(135deg,rgba(245,158,11,.13),rgba(var(--tr-acc-rgb),.1));
  border:1px solid rgba(245,158,11,.26);}
.tr-fact b{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:14.5px;color:#fde68a;}
.tr-fact svg{width:15px;height:15px;flex:none;color:#fbbf24;}

/* Отметка «тренировка выполнена» */
.cyc-done{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;margin-top:11px;
  padding:9px 12px;border:1px dashed var(--line2);border-radius:12px;cursor:pointer;
  background:transparent;color:var(--mut);font-family:inherit;font-size:12.5px;font-weight:600;
  transition:.18s;}
.cyc-done .bx{display:grid;place-items:center;width:19px;height:19px;border-radius:7px;
  border:1px solid var(--line2);color:transparent;transition:.18s;}
.cyc-done .bx svg{width:12px;height:12px;}
.cyc-done:hover{border-color:#34d399;color:#a7f3d0;}
.cyc-done:hover .bx{border-color:#34d399;}
.cyc-card.done{border-color:rgba(52,211,153,.42);
  background:linear-gradient(160deg,rgba(52,211,153,.10),rgba(52,211,153,.02));}
.cyc-card.done::before{background:#34d399;}
.cyc-card.done .cyc-done{border-style:solid;border-color:rgba(52,211,153,.5);color:#a7f3d0;
  background:rgba(52,211,153,.12);}
.cyc-card.done .cyc-done .bx{background:linear-gradient(135deg,#34d399,#10b981);border-color:transparent;
  color:#04231a;animation:cyc-pop .24s ease-out;}
@keyframes cyc-pop{from{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}
.cyc-wk{position:relative;}
.cyc-wk.full{border-color:rgba(52,211,153,.5);}
.cyc-wk .ok{position:absolute;top:-6px;right:-6px;display:grid;place-items:center;width:19px;height:19px;
  border-radius:50%;background:linear-gradient(135deg,#34d399,#10b981);color:#04231a;
  box-shadow:0 4px 12px -6px rgba(16,185,129,.9);}
.cyc-wk .ok svg{width:12px;height:12px;}

/* Окно программы: под каждой буквой её упражнения */
.tr-mkg{padding:12px 12px 10px;border:1px solid var(--line);border-radius:16px;background:var(--panel2);}
.tr-mkg + .tr-mkg{margin-top:12px;}
.tr-mkrows{display:flex;flex-direction:column;gap:8px;margin-top:10px;}
.mkr{position:relative;padding:10px 40px 10px 11px;border-radius:13px;background:var(--panel);
  border:1px solid var(--line);}
.mkr .nm{border:0;background:transparent;padding:0;font-size:14.5px;font-weight:600;}
.mkr .nm:focus{box-shadow:none;}
.mkr-n{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:9px;}
.mkr-n .tr-in{text-align:center;padding:9px 6px;font-variant-numeric:tabular-nums;}
.mkr-del{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:26px;height:26px;
  padding:0;border:0;border-radius:9px;cursor:pointer;background:transparent;color:var(--faint);transition:.15s;}
.mkr-del svg{width:14px;height:14px;}
.mkr-del:hover{background:rgba(239,68,68,.16);color:#fca5a5;}
.mkr.note{padding-top:11px;padding-bottom:11px;background:transparent;border-style:dashed;}
.tr-mkadd{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;}

/* Уведомление о новых отчётах при заходе в кабинет */
.tr-fresh{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px;padding:13px 15px;border-radius:18px;
  background:linear-gradient(140deg,rgba(245,158,11,.16),rgba(239,68,68,.08));
  border:1px solid rgba(245,158,11,.38);box-shadow:0 14px 34px -26px rgba(245,158,11,.9);
  animation:fresh-in .3s ease-out;}
@keyframes fresh-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
.tr-fresh .ic{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:13px;
  color:#0b0a12;background:linear-gradient(140deg,#fbbf24,#f87171);}
.tr-fresh .ic svg{width:19px;height:19px;animation:fresh-ring 2.6s ease-in-out infinite;}
@keyframes fresh-ring{0%,88%,100%{transform:rotate(0)}91%{transform:rotate(11deg)}95%{transform:rotate(-9deg)}}
.tr-fresh .tx{flex:1;min-width:0;}
.tr-fresh .t{font-family:'Space Grotesk',sans-serif;font-size:14.5px;font-weight:700;color:#fde68a;}
.tr-fresh .who{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px;}
.fr-p{display:inline-flex;flex-direction:column;align-items:flex-start;gap:1px;padding:6px 11px;cursor:pointer;
  border-radius:11px;border:1px solid rgba(245,158,11,.3);background:rgba(9,8,15,.35);
  font-family:inherit;text-align:left;transition:.16s;}
.fr-p b{font-size:13px;font-weight:650;color:var(--ink);}
.fr-p s{text-decoration:none;font-size:11px;color:var(--faint);}
.fr-p:hover{border-color:#fbbf24;transform:translateY(-1px);}
.tr-fresh > .tr-btn{flex:none;}
@media (max-width:560px){
  .tr-fresh{flex-wrap:wrap;}
  .tr-fresh > .tr-btn{width:100%;}
}

/* BMR — базовый обмен, считается сам по весу, росту, возрасту и полу */
.tr-bmr{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;padding:11px 14px;border-radius:14px;
  background:linear-gradient(140deg,rgba(239,68,68,.14),rgba(245,158,11,.08));
  border:1px solid rgba(239,68,68,.28);}
.tr-bmr .bmr-v{display:inline-flex;align-items:center;gap:7px;font-family:'Space Grotesk',sans-serif;
  font-size:13.5px;font-weight:650;color:#fecaca;}
.tr-bmr .bmr-v b{font-size:19px;font-weight:700;color:#fff;}
.tr-bmr .bmr-v svg{width:16px;height:16px;color:#f87171;}
.tr-bmr .bmr-f{font-size:11.5px;color:var(--faint);}
.tr-bmr .bmr-no{font-size:12.5px;color:var(--mut);}
.tr-panel .pb > .tr-bmr{margin-bottom:12px;}
.tr-bmr .bmr-k{display:inline-flex;align-items:baseline;gap:5px;font-family:'Space Grotesk',sans-serif;
  font-size:13px;font-weight:650;color:#fcd34d;}
.tr-bmr .bmr-k b{font-size:18px;font-weight:700;color:#fff;}
.tr-bmr .bmr-f{flex-basis:100%;}

/* Норма КБЖУ: граммы → калории, итог считается на лету */
.tr-calc{display:flex;flex-direction:column;gap:10px;padding:13px 14px;border-radius:16px;
  background:linear-gradient(150deg,rgba(45,212,191,.10),rgba(var(--tr-acc-rgb),.06));
  border:1px solid rgba(45,212,191,.26);}
.tr-calc > .lb{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:#5eead4;font-weight:600;}
.tr-calc .row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;}
.tr-calc .row .tr-field{gap:4px;}
.tr-calc .row .tr-in{text-align:center;font-variant-numeric:tabular-nums;}
.calc-out{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;font-size:12.5px;color:var(--mut);}
.calc-r{display:inline-flex;align-items:baseline;gap:5px;}
.calc-r s{text-decoration:none;font-size:11px;color:var(--faint);}
.calc-r b{font-family:'Space Grotesk',sans-serif;font-size:15px;font-weight:700;color:var(--ink);}
.calc-t{margin-left:auto;font-size:12.5px;color:#5eead4;}
.calc-t b{font-family:'Space Grotesk',sans-serif;font-size:18px;font-weight:700;color:#fff;}
.calc-no{font-size:12.5px;color:var(--mut);}
.tr-calc .tr-btn{align-self:flex-start;}
@media (max-width:560px){ .calc-t{margin-left:0;flex-basis:100%;} }

/* Тренировка цикла на телефоне: подходы в три колонки, цифры крупнее */
@media (max-width:560px){
  .cyc-card{padding:13px 12px 12px;border-radius:18px;}
  .cyc-sets{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;}
  /* Раскладка по числу подходов, чтобы не оставалось одинокой плитки в ряду. */
  .cyc-sets[data-n="1"]{grid-template-columns:minmax(0,132px);}
  .cyc-sets[data-n="2"],.cyc-sets[data-n="4"]{grid-template-columns:repeat(2,minmax(0,1fr));}
  .cyc-set{min-height:86px;border-radius:13px;}
  .cyc-set b{font-size:18px;}
  .cyc-blk .bl em{display:none;}
}
@media (max-width:340px){
  .cyc-sets{grid-template-columns:repeat(2,minmax(0,1fr));}
}

@media (prefers-reduced-motion:reduce){
  .cyc-blk .cyc-set.hot,.cyc-set .fire .tg,.cyc-set .fire .fc,.cyc-blk .cyc-set.hot u svg{animation:none;}
}

/* Отметка подопечного «сделал» — он ставит её по своей ссылке */
.tr-cdone{display:flex;align-items:center;gap:7px;margin-top:10px;padding:8px 12px;border-radius:11px;
  font-size:12.5px;font-weight:600;color:#a7f3d0;
  background:linear-gradient(120deg,rgba(45,212,191,.14),rgba(52,211,153,.05));
  border:1px solid rgba(45,212,191,.32);}
.tr-cdone svg{width:14px;height:14px;color:#34d399;}
.tr-wchip.cdone{position:relative;}
.tr-wchip.cdone::after{content:'';position:absolute;top:6px;right:6px;width:7px;height:7px;border-radius:50%;
  background:#34d399;box-shadow:0 0 8px rgba(52,211,153,.9);}

/* Доступ подопечного к плану: тумблер и его личная ссылка */
.tr-share{margin-top:12px;padding:12px 13px;border-radius:14px;
  background:var(--panel2);border:1px solid var(--line);transition:.2s;}
.tr-share:has(.tr-switch.on){background:linear-gradient(130deg,rgba(45,212,191,.10),rgba(239,68,68,.04));
  border-color:rgba(45,212,191,.3);}
.tr-switch{display:flex;align-items:flex-start;gap:12px;width:100%;padding:0;cursor:pointer;
  background:none;border:0;text-align:left;font-family:inherit;color:inherit;}
.tr-switch .sw{position:relative;flex:none;width:46px;height:27px;margin-top:1px;border-radius:999px;
  background:var(--panel);border:1px solid var(--line2);transition:.22s cubic-bezier(.2,.9,.3,1);}
.tr-switch .sw i{position:absolute;top:3px;left:3px;width:19px;height:19px;border-radius:50%;
  background:#6f6688;transition:.22s cubic-bezier(.2,.9,.3,1);}
.tr-switch:hover .sw{border-color:var(--faint);}
.tr-switch.on .sw{background:linear-gradient(135deg,#2dd4bf,#34d399);border-color:transparent;
  box-shadow:0 0 0 4px rgba(45,212,191,.14);}
.tr-switch.on .sw i{left:22px;background:#04231a;}
.tr-switch .lb{display:flex;flex-direction:column;gap:3px;min-width:0;}
.tr-switch .lb b{font-size:13.5px;font-weight:650;color:var(--mut);transition:color .2s;}
.tr-switch.on .lb b{color:#a7f3d0;}
.tr-switch .lb s{text-decoration:none;font-size:12px;line-height:1.45;color:var(--faint);}
.tr-share-l{display:flex;align-items:center;gap:8px;margin-top:11px;padding-top:11px;
  border-top:1px solid var(--line);font-size:12.5px;color:var(--mut);overflow-wrap:anywhere;}
.tr-share-l svg{width:14px;height:14px;flex:none;color:#2dd4bf;}
.tr-share-l.warn{color:#fcd34d;}
.tr-share-l.warn svg{color:#fbbf24;}
.tr-linkbox{display:flex;align-items:center;gap:9px;padding:13px 14px;border-radius:14px;
  background:linear-gradient(135deg,rgba(251,191,36,.12),rgba(239,68,68,.10));
  border:1px solid rgba(251,191,36,.35);margin-bottom:12px;}
.tr-linkbox svg{width:16px;height:16px;flex:none;color:#fbbf24;}
.tr-linkbox span{font-size:13.5px;font-weight:600;color:var(--ink);overflow-wrap:anywhere;line-height:1.4;}

/* Режим работы: две карточки-переключателя. На проценте денег в приложении нет,
   поэтому выбор стоит первым и читается с одного взгляда. */
.tr-mode{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.tr-mode-b{display:flex;align-items:flex-start;gap:10px;text-align:left;padding:13px 12px;border-radius:var(--tr-r-sm);
  border:1px solid var(--line);background:var(--panel2);color:var(--mut);cursor:pointer;font:inherit;
  transition:border-color .16s,background .16s,color .16s,transform .12s;}
.tr-mode-b:hover{border-color:var(--line2);color:var(--ink);}
.tr-mode-b:active{transform:scale(.985);}
.tr-mode-b .ic{display:flex;flex:0 0 auto;width:32px;height:32px;align-items:center;justify-content:center;
  border-radius:9px;background:#241d38;color:var(--mut);transition:background .16s,color .16s;}
.tr-mode-b .ic svg{width:17px;height:17px;}
.tr-mode-b .tx{display:flex;flex-direction:column;gap:3px;min-width:0;}
.tr-mode-b b{font-size:14.5px;color:var(--ink);font-weight:700;}
.tr-mode-b s{text-decoration:none;font-size:12px;line-height:1.4;color:var(--mut);}
.tr-mode-b.on{border-color:rgba(239,68,68,.55);background:linear-gradient(160deg,rgba(239,68,68,.16),rgba(251,191,36,.08));
  color:var(--ink);box-shadow:0 0 0 3px rgba(239,68,68,.1);}
.tr-mode-b.on .ic{background:linear-gradient(145deg,#ef4444,#f59e0b);color:#1a0f12;}
.tr-mode-b.on s{color:#f0c9c9;}
@media (max-width:560px){ .tr-mode{grid-template-columns:1fr;} }


/* Дефицит и профицит: третья строка плашки BMR — сколько выходит после процента. */
.bmr-a{font-size:13.5px;font-weight:600;}
.bmr-a b{font-family:'Space Grotesk',sans-serif;font-size:17px;}
.bmr-a.minus{color:#7dd3fc;}
.bmr-a.minus b{color:#e0f2fe;}
.bmr-a.plus{color:#fbbf24;}
.bmr-a.plus b{color:#fef3c7;}

/* Ответы о здоровье: «да» видно сразу — из-за них меняют программу. */
.tr-hq-n{margin-left:auto;font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;
  padding:4px 9px;border-radius:999px;white-space:nowrap;}
.tr-hq-n.ok{color:#86efac;background:rgba(34,197,94,.12);border:1px solid rgba(34,197,94,.3);}
.tr-hq-n.bad{color:#fecdd3;background:rgba(251,113,133,.16);border:1px solid rgba(251,113,133,.4);}
.tr-hq{display:flex;flex-direction:column;gap:2px;}
.tr-hq-i{display:flex;gap:9px;align-items:flex-start;padding:7px 8px;border-radius:9px;}
.tr-hq-i .m{flex:0 0 auto;display:flex;width:18px;height:18px;align-items:center;justify-content:center;margin-top:1px;
  color:#3f8f63;}
.tr-hq-i .m svg{width:14px;height:14px;}
.tr-hq-i .x{display:flex;flex-direction:column;gap:3px;min-width:0;}
.tr-hq-i b{font-size:13px;font-weight:500;color:var(--mut);line-height:1.4;}
.tr-hq-i s{text-decoration:none;font-size:12.5px;color:#fecdd3;line-height:1.4;}
.tr-hq-i.yes{background:rgba(251,113,133,.09);}
.tr-hq-i.yes .m{color:#fb7185;}
.tr-hq-i.yes b{color:var(--ink);font-weight:600;}

/* Видео-отчёт подопечного у строки плана. */
.tr-exvid{flex:0 0 auto;width:30px;height:30px;display:flex;align-items:center;justify-content:center;padding:0;
  border-radius:8px;border:1px solid rgba(239,68,68,.45);cursor:pointer;
  background:linear-gradient(145deg,rgba(239,68,68,.22),rgba(251,191,36,.14));color:#fca5a5;transition:.15s;}
.tr-exvid:hover{color:#fff;border-color:rgba(239,68,68,.8);}
.tr-exvid svg{width:15px;height:15px;}
.tr-exvid-p{width:100%;max-height:70vh;border-radius:12px;background:#000;display:block;}
.tr-exvid{position:relative;}
.tr-exvid i{position:absolute;top:-7px;right:-7px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;
  display:grid;place-items:center;font-style:normal;font-size:10.5px;font-weight:800;color:#1a0b00;
  background:linear-gradient(135deg,#fbbf24,#f97316);box-shadow:0 0 0 2px #120d14,0 0 10px rgba(251,191,36,.5);}
.tr-exvid-it + .tr-exvid-it{margin-top:20px;padding-top:18px;border-top:1px dashed rgba(255,255,255,.1);}
.tr-exvid-n{display:flex;align-items:center;gap:9px;margin-bottom:10px;font-size:11px;font-weight:800;
  letter-spacing:.12em;text-transform:uppercase;color:#fca5a5;}
.tr-exvid-n b{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;letter-spacing:0;font-size:12px;
  color:#fff;background:linear-gradient(135deg,#ef4444,#f59e0b);box-shadow:0 0 12px rgba(239,68,68,.45);}

/* Тренировки внутри программы идут подряд: тонкая полоса с названием вместо кружков-букв.
   Переключатель букв убран — он дублировал окно «Программа», а упражнения других
   тренировок из-за него приходилось искать. */
.tr-wsep{display:flex;align-items:center;gap:9px;padding:16px 12px 8px;}
.tr-wsep::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,var(--line2),transparent);}
.tr-wsep span{font-size:11px;letter-spacing:.09em;text-transform:uppercase;font-weight:700;color:#fbbf24;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:70%;}
.tr-wsep .ok{display:flex;flex:0 0 auto;width:18px;height:18px;align-items:center;justify-content:center;
  border-radius:50%;background:rgba(239,68,68,.18);color:#fca5a5;}
.tr-wsep .ok svg{width:11px;height:11px;}
.tr-wempty{padding:14px 12px;font-size:13px;color:var(--faint);}
.tr-wnew{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;margin-top:12px;padding:12px;
  border-radius:var(--tr-r-sm);border:1px dashed var(--line2);background:transparent;color:var(--mut);
  font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;transition:.15s;}
.tr-wnew:hover{color:var(--ink);border-color:rgba(251,191,36,.5);background:rgba(251,191,36,.06);}
.tr-wnew svg{width:15px;height:15px;}

/* КБЖУ в карточке: тот же вид, что владелец утвердил — граммы и построчный расчёт,
   без полосы долей и процентов. Проценты ничего не решали, а места занимали много. */
.tr-norm{margin-top:12px;padding:13px 14px;border-radius:16px;border:1px solid rgba(45,212,191,.3);
  background:rgba(45,212,191,.055);}
.tr-norm.empty{font-size:13px;color:var(--mut);line-height:1.5;}
.tr-norm-h{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:#5eead4;font-weight:700;margin-bottom:11px;}
.tr-norm-g{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;}
.tr-norm-c{display:flex;flex-direction:column;align-items:center;gap:5px;padding:9px 6px;border-radius:12px;
  background:var(--panel);border:1px solid var(--line);}
.tr-norm-c .k{font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--faint);text-align:center;}
.tr-norm-c .v{font-family:'Space Grotesk',sans-serif;font-size:21px;font-weight:700;color:var(--ink);
  font-variant-numeric:tabular-nums;}
.tr-norm-m{display:flex;flex-direction:column;gap:5px;margin-top:11px;}
.tr-norm-m .r{font-size:12.5px;color:var(--mut);font-variant-numeric:tabular-nums;}
.tr-norm-m .r s{text-decoration:none;color:#5eead4;margin-right:5px;}
.tr-norm-m .r b{color:var(--ink);font-weight:700;}
.tr-norm-m .t{margin-top:3px;font-size:14px;color:#5eead4;font-weight:600;}
.tr-norm-m .t b{font-family:'Space Grotesk',sans-serif;font-size:19px;color:#fff;}

/* На телефоне колонки схлопываются в одну, и до плана тренировок приходилось
   прокручивать пять панелей. Раскрываем обёртки колонок и расставляем панели так,
   как ими пользуются: кто это → что делаем → когда занимаемся → всё остальное. */
@media(max-width:900px){
  .tr-cols > div{display:contents;}
  .tr-cols{gap:14px;}
  .tr-cols .tr-panel + .tr-panel{margin-top:0;}
  .p-card{order:1;} .p-plan{order:2;} .p-days{order:3;} .p-kbju{order:4;}
  .p-health{order:5;} .p-rep{order:6;} .p-meas{order:7;} .p-mus{order:8;}
}

/* Тексты писем: свёрнуты по одному. Раньше семь карточек с полями шли подряд
   и экран настроек превращался в простыню. */
.tr-msg-t{display:flex;align-items:center;gap:10px;width:100%;padding:0;border:none;background:none;
  color:inherit;font:inherit;text-align:left;cursor:pointer;}
.tr-msg-t .nm{font-family:'Space Grotesk',sans-serif;font-size:14.5px;font-weight:700;flex:0 0 auto;}
.tr-msg-t .pk{flex:1;min-width:0;font-size:12.5px;color:var(--faint);white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis;}
.tr-msg-t .ch{flex:0 0 auto;margin-left:auto;display:flex;color:var(--mut);transition:color .15s;}
.tr-msg-t .ch svg{width:15px;height:15px;}
.tr-msg-t:hover .ch{color:var(--accent2);}
/* На узком экране заголовок съедал всю строку и от превью оставалось «Нова…».
   Переносим начало письма под заголовок — тогда по нему и правда видно, что за письмо. */
@media (max-width:430px){
  .tr-msg-t{display:grid;grid-template-columns:1fr auto;grid-template-areas:'nm ch' 'pk pk';gap:3px 8px;}
  .tr-msg-t .nm{grid-area:nm;}
  .tr-msg-t .ch{grid-area:ch;margin:0;}
  .tr-msg-t .pk{grid-area:pk;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;
    -webkit-box-orient:vertical;overflow:hidden;line-height:1.4;}
}
.tr-msg-b{display:none;}
.tr-msg.open .tr-msg-b{display:block;margin-top:11px;}
.tr-msg.open .tr-msg-h{margin-bottom:9px;}
.tr-msg-h:empty{display:none;margin:0;}

/* Планы питания в карточке: их может быть несколько — показываем все, каждый со своим крестиком. */
.tr-fplan{display:flex;flex-direction:column;gap:12px;margin-top:14px;padding:14px;border-radius:18px;position:relative;overflow:hidden;
  background:radial-gradient(120% 90% at 0% 0%,rgba(251,191,36,.13),transparent 60%),
    radial-gradient(90% 80% at 100% 100%,rgba(244,63,94,.12),transparent 60%),rgba(255,255,255,.025);
  border:1px solid rgba(251,191,36,.22);box-shadow:inset 0 1px 0 rgba(255,255,255,.05);}
.tr-fplan-h{display:flex;align-items:flex-start;gap:11px;min-width:0;}
.tr-fplan-h .ic{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:13px;color:#fff;
  background:linear-gradient(140deg,#f43f5e,#f59e0b);box-shadow:0 8px 20px -6px rgba(244,63,94,.6);}
.tr-fplan-h .ic svg{width:19px;height:19px;}
.tr-fplan-h .tx{display:flex;flex-direction:column;gap:3px;min-width:0;}
.tr-fplan-h b{font-size:14px;color:var(--ink);}
.tr-fplan-h s{text-decoration:none;font-size:12px;color:var(--mut);line-height:1.45;}
.tr-fplan-l{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:10px;}
.tr-fplan-i{position:relative;animation:fplIn .4s cubic-bezier(.2,.8,.25,1) both;animation-delay:var(--d,0ms);}
@keyframes fplIn{from{opacity:0;transform:translateY(8px) scale(.94);}to{opacity:1;transform:none;}}
.tr-fplan-th{position:relative;display:block;width:100%;aspect-ratio:3/4;padding:0;border-radius:13px;overflow:hidden;cursor:pointer;
  border:1px solid rgba(255,255,255,.12);background:var(--bg);box-shadow:0 10px 22px -12px rgba(0,0,0,.8);
  transition:transform .16s ease,border-color .16s;}
.tr-fplan-th:hover{transform:translateY(-2px);border-color:rgba(251,191,36,.6);}
.tr-fplan-th img{width:100%;height:100%;object-fit:cover;object-position:top;display:block;}
.tr-fplan-th i{position:absolute;left:6px;bottom:6px;min-width:20px;height:20px;padding:0 6px;border-radius:999px;
  font-style:normal;font-size:11px;font-weight:800;line-height:20px;text-align:center;color:#1a1206;
  background:linear-gradient(140deg,#fde68a,#f59e0b);box-shadow:0 2px 8px rgba(0,0,0,.5);}
.tr-fplan-i .rp-del{position:absolute;top:-6px;right:-6px;}
.tr-fplan-add{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;aspect-ratio:3/4;
  border-radius:13px;border:1.5px dashed rgba(251,191,36,.45);background:rgba(251,191,36,.05);color:#fde68a;
  cursor:pointer;font:inherit;font-size:11.5px;font-weight:700;text-align:center;padding:6px;transition:.16s;}
.tr-fplan-add:hover{border-color:#f59e0b;background:rgba(251,191,36,.1);}
.tr-fplan-add .pl{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;color:#fff;
  background:linear-gradient(140deg,#f43f5e,#f59e0b);}
.tr-fplan-add .pl svg{width:16px;height:16px;}
.tr-fplan-drop{display:flex;align-items:center;gap:13px;width:100%;padding:16px;border-radius:15px;cursor:pointer;font:inherit;
  text-align:left;color:var(--ink);border:1.5px dashed rgba(251,191,36,.45);background:rgba(251,191,36,.05);transition:.16s;}
.tr-fplan-drop:hover{border-color:#f59e0b;background:rgba(251,191,36,.1);transform:translateY(-1px);}
.tr-fplan-drop .pl{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:14px;color:#fff;
  background:linear-gradient(140deg,#f43f5e,#f97316 55%,#f59e0b);box-shadow:0 10px 24px -8px rgba(244,63,94,.65);}
.tr-fplan-drop .pl svg{width:21px;height:21px;}
.tr-fplan-drop .lb{display:flex;flex-direction:column;gap:3px;}
.tr-fplan-drop b{font-size:14px;}
.tr-fplan-drop s{text-decoration:none;font-size:12px;color:var(--mut);}
.tr-fplan-add.busy .pl svg,.tr-fplan-drop.busy .pl svg{animation:fplSpin 1s linear infinite;}
.tr-fplan-add:disabled,.tr-fplan-drop:disabled{cursor:progress;}
@keyframes fplSpin{to{transform:rotate(360deg);}}
@media (prefers-reduced-motion:reduce){.tr-fplan-i{animation:none;}}

/* Анкета здоровья в форме подопечного: свёрнута, чтобы не растягивать окно,
   и разворачивается одним нажатием. Вопросы задаёт тренер — у подопечного их больше нет. */
.tr-hqf{gap:0;}
.tr-hqf-t{display:flex;align-items:center;gap:10px;width:100%;padding:11px 12px;border-radius:var(--tr-r-sm);
  border:1px solid var(--line);background:var(--panel2);color:inherit;font:inherit;text-align:left;cursor:pointer;
  transition:border-color .15s,background .15s;}
.tr-hqf-t:hover{border-color:var(--line2);}
.tr-hqf-t .lb{font-size:13px;font-weight:700;color:var(--ink);text-transform:none;letter-spacing:0;}
.tr-hqf-t .n{margin-left:auto;font-size:11px;letter-spacing:.05em;text-transform:uppercase;font-weight:700;
  padding:3px 9px;border-radius:999px;color:#86efac;background:rgba(34,197,94,.12);white-space:nowrap;}
.tr-hqf-t .n.bad{color:#fecdd3;background:rgba(251,113,133,.16);}
.tr-hqf-t .ch{display:flex;color:var(--mut);transition:transform .18s;}
.tr-hqf-t .ch svg{width:15px;height:15px;}
.tr-hqf.open .tr-hqf-t .ch{transform:rotate(180deg);}
.tr-hqf-b{display:none;flex-direction:column;gap:7px;margin-top:10px;}
.tr-hqf.open .tr-hqf-b{display:flex;}
.tr-hqf-i{padding:10px 11px;border-radius:12px;border:1px solid var(--line);background:var(--bg);transition:.15s;}
.tr-hqf-i.yes{border-color:rgba(251,113,133,.45);background:rgba(251,113,133,.07);}
.tr-hqf-i .q{display:flex;gap:8px;align-items:flex-start;font-size:13px;line-height:1.45;color:var(--ink);}
.tr-hqf-i .q i{flex:0 0 auto;width:19px;height:19px;border-radius:6px;background:var(--panel2);color:var(--faint);
  font-size:11px;font-weight:700;font-style:normal;display:flex;align-items:center;justify-content:center;margin-top:1px;}
.tr-hqf-i.yes .q i{background:rgba(251,113,133,.24);color:#fecdd3;}
.tr-hqf-i .b{display:flex;gap:7px;margin-top:9px;}
.tr-hqf-i .b button{flex:1;padding:8px;border-radius:9px;border:1px solid var(--line);background:var(--panel2);
  color:var(--mut);font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;transition:.15s;}
.tr-hqf-i .b .y.on{background:linear-gradient(145deg,#f43f5e,#fb7185);border-color:transparent;color:#fff;}
.tr-hqf-i .b .n.on{background:var(--panel2);border-color:var(--line2);color:var(--ink);}
.tr-hqf-i .nt{margin-top:9px;}

/* Метка «уведомления выключены» в списке подопечных — чтобы молчание не выглядело сбоем. */
.tr-quiet{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--faint);
  padding:4px 9px;border-radius:999px;background:var(--panel2);border:1px solid var(--line);align-self:flex-start;}
.tr-quiet svg{width:13px;height:13px;opacity:.8;}

/* Побочные эффекты и препараты в отчёте: видно сразу, что человек на фармакологии. */
.rp-note .bad{color:#fecdd3;}
.rp-ph{display:flex;flex-direction:column;gap:4px;}
.rp-ph i{display:flex;align-items:baseline;gap:8px;font-style:normal;font-size:12.5px;color:var(--ink);}
.rp-ph i::before{content:'';flex:0 0 auto;width:4px;height:4px;border-radius:50%;background:#fb7185;}
.rp-ph u{margin-left:auto;text-decoration:none;font-family:'Space Grotesk',sans-serif;font-weight:700;
  color:#fbbf24;font-variant-numeric:tabular-nums;white-space:nowrap;}
.tr-cabtabs .tr-seg.big{grid-template-columns:repeat(7,1fr);max-width:1180px;}
.tr-cabtabs .tr-narrow{display:none;}
@media (max-width:760px){
  .tr-cabtabs .tr-seg.big button{flex-direction:column;gap:4px;padding:9px 2px;font-size:11.5px;}
  .tr-cabtabs .tr-seg.big button svg{width:18px;height:18px;}
  .tr-cabtabs .tr-wide{display:none;}
  .tr-cabtabs .tr-narrow{display:inline;}
}
@media (max-width:600px){
  .tr-cabtabs .tr-seg.big{grid-template-columns:repeat(12,1fr);}
  .tr-cabtabs .tr-seg.big button{grid-column:span 3;}
  .tr-cabtabs .tr-seg.big button:nth-child(n+5){grid-column:span 4;}
  .tr-cabtabs .tr-seg.big button{font-size:11.5px;letter-spacing:-.01em;padding:9px 2px;}
}

.tr-bmi{position:relative;overflow:hidden;border-radius:18px;padding:14px 14px 12px;border:1px solid color-mix(in srgb,var(--bz,#22c55e) 38%,transparent);background:linear-gradient(150deg,color-mix(in srgb,var(--bz,#22c55e) 16%,transparent),rgba(14,11,24,.92) 62%);--bz:#22c55e}
.tr-bmi::before{content:'';position:absolute;right:-60px;top:-70px;width:190px;height:190px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--bz) 34%,transparent),transparent 66%);filter:blur(4px);pointer-events:none;animation:trBmiGlow 7s ease-in-out infinite}
@keyframes trBmiGlow{50%{transform:translate(-14px,12px) scale(1.1)}}
.tr-bmi.z-low{--bz:#38bdf8}.tr-bmi.z-ok{--bz:#22c55e}.tr-bmi.z-over{--bz:#fbbf24}.tr-bmi.z-ob1{--bz:#fb923c}.tr-bmi.z-ob2{--bz:#ef4444}.tr-bmi.z-ob3{--bz:#dc2626}
.tr-bmi.none{display:flex;align-items:center;gap:9px;color:var(--mut);font-size:13px;border-style:dashed;border-color:var(--line2);background:rgba(10,8,18,.4)}
.tr-bmi.none::before{display:none}
.tr-bmi.none svg{width:17px;height:17px;color:#fbbf24}
.tr-bmi-top{position:relative;display:flex;align-items:center;gap:14px}
.tr-bmi-v{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:84px;height:84px;border-radius:22px;background:radial-gradient(circle at 50% 28%,color-mix(in srgb,var(--bz) 30%,transparent),rgba(10,8,18,.9) 72%);border:1px solid color-mix(in srgb,var(--bz) 50%,transparent);box-shadow:0 12px 30px -14px var(--bz),inset 0 0 22px -10px var(--bz)}
.tr-bmi-v .k{font-size:10px;font-weight:800;letter-spacing:.16em;color:color-mix(in srgb,var(--bz) 70%,#fff)}
.tr-bmi-v b{font-family:'Space Grotesk',sans-serif;font-size:30px;font-weight:700;line-height:1;color:#fff;margin-top:3px;text-shadow:0 0 18px color-mix(in srgb,var(--bz) 60%,transparent)}
.tr-bmi-c{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1}
.tr-bmi-c .cat{align-self:flex-start;max-width:100%;padding:5px 11px;border-radius:999px;font-size:12.5px;font-weight:800;color:#0b0b10;background:linear-gradient(135deg,color-mix(in srgb,var(--bz) 82%,#fff),var(--bz));box-shadow:0 8px 20px -10px var(--bz);line-height:1.25}
.tr-bmi-c .risk{font-size:12.3px;color:#ddd6ea;line-height:1.45}
.tr-bmi-g{position:relative;margin:16px 4px 4px;padding-bottom:16px}
.tr-bmi-g .bar{display:flex;height:9px;border-radius:9px;overflow:hidden;gap:2px;background:rgba(255,255,255,.05)}
.tr-bmi-g .z{display:block;height:100%}
.tr-bmi-g .z.low{background:linear-gradient(90deg,#0ea5e9,#38bdf8)}.tr-bmi-g .z.ok{background:linear-gradient(90deg,#16a34a,#4ade80)}.tr-bmi-g .z.over{background:linear-gradient(90deg,#f59e0b,#fcd34d)}
.tr-bmi-g .z.ob1{background:linear-gradient(90deg,#f97316,#fb923c)}.tr-bmi-g .z.ob2{background:linear-gradient(90deg,#dc2626,#ef4444)}.tr-bmi-g .z.ob3{background:linear-gradient(90deg,#7f1d1d,#b91c1c)}
.tr-bmi-g .mk{position:absolute;top:-6px;left:var(--pos);width:0;height:0}
.tr-bmi.anim .tr-bmi-g .mk{animation:trBmiIn 1.1s cubic-bezier(.2,.8,.2,1) both}
@keyframes trBmiIn{from{left:0;opacity:0}}
.tr-bmi-g .mk i{position:absolute;left:-10px;top:0;width:20px;height:20px;border-radius:50%;background:#fff;border:4px solid var(--bz);box-shadow:0 0 0 5px color-mix(in srgb,var(--bz) 22%,transparent),0 6px 14px rgba(0,0,0,.55)}
.tr-bmi-g .mk i::after{content:'';position:absolute;inset:-9px;border-radius:50%;border:2px solid var(--bz);opacity:0;animation:trBmiPing 2.4s ease-out infinite}
@keyframes trBmiPing{0%{transform:scale(.6);opacity:.8}100%{transform:scale(1.5);opacity:0}}
.tr-bmi-g .tk{position:absolute;left:0;right:0;bottom:0;height:12px}
.tr-bmi-g .tk span{position:absolute;transform:translateX(-50%);font-size:10px;font-weight:700;color:var(--faint);font-family:'Space Grotesk',sans-serif}
.tr-bmi-f{position:relative;margin-top:6px;font-size:12.5px;color:var(--mut);font-family:'Space Grotesk',sans-serif}
.tr-bmi-f b{color:#fff}
.tr-bmi-t{position:relative;margin-top:10px;border-radius:14px;border:1px solid var(--line);background:rgba(10,8,18,.5)}
.tr-bmi-t summary{list-style:none;display:flex;align-items:center;gap:8px;padding:10px 12px;cursor:pointer;font-size:13px;font-weight:700;color:#ece6f6}
.tr-bmi-t summary::-webkit-details-marker{display:none}
.tr-bmi-t summary svg{width:15px;height:15px;color:#fbbf24}
.tr-bmi-t summary svg:last-child{margin-left:auto;color:var(--faint);transition:transform .25s}
.tr-bmi-t[open] summary svg:last-child{transform:rotate(180deg)}
.tr-bmi-t .tbl{display:flex;flex-direction:column;gap:4px;padding:0 8px 9px;animation:fadeIn .3s ease}
.tr-bmi-t .r{display:grid;grid-template-columns:82px 1fr 1fr;gap:8px;align-items:center;padding:8px 9px;border-radius:10px;font-size:12px;line-height:1.35;color:#ddd6ea;border:1px solid transparent;background:color-mix(in srgb,var(--rz,#fff) 7%,transparent)}
.tr-bmi-t .r span:first-child{font-family:'Space Grotesk',sans-serif;font-weight:700;color:#fff}
.tr-bmi-t .r.h{background:none;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);padding-top:2px;padding-bottom:2px}
.tr-bmi-t .r.h span:first-child{color:var(--faint)}
.tr-bmi-t .r.low{--rz:#38bdf8}.tr-bmi-t .r.ok{--rz:#22c55e}.tr-bmi-t .r.over{--rz:#fbbf24}.tr-bmi-t .r.ob1{--rz:#fb923c}.tr-bmi-t .r.ob2{--rz:#ef4444}.tr-bmi-t .r.ob3{--rz:#dc2626}
.tr-bmi-t .r.on{border-color:var(--rz);background:color-mix(in srgb,var(--rz) 18%,transparent);box-shadow:0 0 18px -8px var(--rz)}

.tr-kbn{position:sticky;top:-18px;z-index:2;margin:-4px -4px 12px;padding:12px;border-radius:16px;border:1px solid rgba(251,191,36,.35);background:linear-gradient(140deg,rgba(239,68,68,.2),rgba(245,158,11,.12) 45%,rgba(18,14,26,.97));box-shadow:0 14px 30px -18px rgba(0,0,0,.9);backdrop-filter:blur(10px)}
.tr-kbn.empty{display:flex;align-items:center;gap:9px;font-size:13px;color:#fde68a}
.tr-kbn svg{width:16px;height:16px;color:#fbbf24;flex:0 0 auto}
.tr-kbn-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#fde68a}
.tr-kbn-h em{font-style:normal;margin-left:auto;font-size:11.5px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--mut)}
.tr-kbn-g{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:9px}
.tr-kbn-g .c{display:flex;flex-direction:column;gap:2px;padding:9px 10px;border-radius:12px;background:rgba(10,8,18,.6);border:1px solid var(--line);position:relative;overflow:hidden}
.tr-kbn-g .c::after{content:'';position:absolute;left:10px;right:10px;bottom:0;height:2px;border-radius:2px;background:var(--cc)}
.tr-kbn-g .c.kc{--cc:linear-gradient(90deg,#ef4444,#f59e0b)}.tr-kbn-g .c.p{--cc:linear-gradient(90deg,#38bdf8,#22d3ee)}.tr-kbn-g .c.f{--cc:linear-gradient(90deg,#fbbf24,#fde047)}.tr-kbn-g .c.cb{--cc:linear-gradient(90deg,#22c55e,#a3e635)}
.tr-kbn-g .k{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}
.tr-kbn-g b{font-family:'Space Grotesk',sans-serif;font-size:21px;font-weight:700;color:#fff;line-height:1.1}
.tr-kbn-g s{text-decoration:none;font-size:11px;color:var(--mut);font-weight:600}

.tr-panel.p-fai .ph{background:linear-gradient(90deg,rgba(239,68,68,.12),rgba(245,158,11,.06) 50%,transparent)}
.tr-panel.p-fai .ph svg{color:#fbbf24}
.tr-panel.p-fai .ph .tr-btn{margin-left:auto}
.tr-fai-empty{display:flex;gap:14px;align-items:center;padding:6px 2px}
.tr-fai-empty .art{position:relative;flex:0 0 auto;width:64px;height:64px;border-radius:20px;display:grid;place-items:center;overflow:hidden;color:#fff;background:linear-gradient(140deg,#ef4444,#f59e0b);box-shadow:0 14px 30px -14px rgba(239,68,68,.9)}
.tr-fai-empty .art svg{width:30px;height:30px}
.tr-fai-empty .art i{position:absolute;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,#fff,transparent);box-shadow:0 0 12px 3px rgba(255,255,255,.6);animation:trFaiScan 2.2s ease-in-out infinite}
@keyframes trFaiScan{0%{top:12%}50%{top:86%}100%{top:12%}}
.tr-fai-empty b{display:block;font-size:14.5px;color:#fff;margin-bottom:3px}
.tr-fai-empty span{font-size:12.8px;color:var(--mut);line-height:1.5}
.tr-fai-day{padding:12px;border-radius:16px;border:1px solid var(--line);background:linear-gradient(160deg,rgba(245,158,11,.06),rgba(10,8,18,.55));animation:trFaiIn .5s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i,0) * 60ms)}
.tr-fai-day + .tr-fai-day{margin-top:10px}
@keyframes trFaiIn{from{opacity:0;transform:translateY(10px)}}
.tr-fai-day .dh{display:flex;align-items:baseline;gap:9px}
.tr-fai-day .dh .d{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:15px;color:#fff}
.tr-fai-day .dh .n{font-size:12px;color:var(--faint)}
.tr-fai-day .dh b{margin-left:auto;font-family:'Space Grotesk',sans-serif;font-size:19px;color:#fde68a}
.tr-fai-day .dh b small{font-size:11px;color:var(--mut);font-weight:600}
.tr-fai-bars{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;margin:10px 0}
.tr-fai-bars .b{position:relative}
.tr-fai-bars .l{display:flex;justify-content:space-between;align-items:baseline;gap:6px;font-size:11.5px;color:var(--mut);margin-bottom:4px}
.tr-fai-bars .l b{font-family:'Space Grotesk',sans-serif;font-size:12.5px;color:#fff}
.tr-fai-bars .l b s{text-decoration:none;color:var(--faint);font-weight:600}
.tr-fai-track{height:7px;border-radius:7px;background:rgba(255,255,255,.07);overflow:hidden}
.tr-fai-track i{display:block;height:100%;border-radius:7px;background:var(--bc);box-shadow:0 0 10px -2px var(--bg2);animation:trFaiBar 1s cubic-bezier(.2,.8,.2,1) both}
@keyframes trFaiBar{from{width:0}}
.tr-fai-bars .b em{position:absolute;right:0;top:-1px;font-style:normal;font-size:10.5px;font-weight:800;color:var(--bg2);display:none}
.tr-fai-bars .kc{--bc:linear-gradient(90deg,#ef4444,#f59e0b);--bg2:#f59e0b}.tr-fai-bars .p{--bc:linear-gradient(90deg,#0ea5e9,#22d3ee);--bg2:#22d3ee}
.tr-fai-bars .f{--bc:linear-gradient(90deg,#f59e0b,#fde047);--bg2:#fbbf24}.tr-fai-bars .cb{--bc:linear-gradient(90deg,#16a34a,#a3e635);--bg2:#84cc16}
.tr-fai-bars .over .l b{color:#fca5a5}
.tr-fai-bars .over .tr-fai-track i{background:linear-gradient(90deg,#ef4444,#b91c1c)}
.tr-fai-meals{display:flex;flex-direction:column;gap:7px}
.tr-fai-meal{position:relative;display:flex;gap:10px;align-items:center;padding:8px 36px 8px 8px;border-radius:13px;background:rgba(10,8,18,.6);border:1px solid var(--line)}
.tr-fai-meal .pics{display:flex;gap:4px;flex:0 0 auto}
.tr-fai-meal .th{width:48px;height:48px;border-radius:11px;overflow:hidden;padding:0;border:1px solid var(--line2);background:rgba(255,255,255,.04);cursor:zoom-in}
.tr-fai-meal .th img{width:100%;height:100%;object-fit:cover;display:block}
.tr-fai-meal .th.ph{display:grid;place-items:center;color:#fbbf24;cursor:default}
.tr-fai-meal .th.ph svg{width:20px;height:20px}
.tr-fai-meal .bd{min-width:0;display:flex;flex-direction:column;gap:4px}
.tr-fai-meal .bd b{font-size:13.3px;color:#fff;line-height:1.3}
.tr-fai-meal .mac{display:flex;flex-wrap:wrap;gap:4px}
.tr-fai-meal .mac i,.tr-fai-tot i{font-style:normal;display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:999px;font-size:11px;font-weight:700;border:1px solid}
.tr-fai-meal .mac i svg{width:11px;height:11px}
.tr-fai-meal .mac .kc,.tr-fai-tot .kc{color:#fed7aa;border-color:rgba(249,115,22,.45);background:rgba(249,115,22,.1)}
.tr-fai-meal .mac .p,.tr-fai-tot .p{color:#bae6fd;border-color:rgba(56,189,248,.4);background:rgba(56,189,248,.08)}
.tr-fai-meal .mac .f,.tr-fai-tot .f{color:#fde68a;border-color:rgba(251,191,36,.42);background:rgba(251,191,36,.08)}
.tr-fai-meal .mac .cb,.tr-fai-tot .cb{color:#d9f99d;border-color:rgba(132,204,22,.42);background:rgba(132,204,22,.08)}
.tr-fai-meal .mac .ai{color:#fde68a;border-color:rgba(245,158,11,.35);background:linear-gradient(135deg,rgba(239,68,68,.16),rgba(245,158,11,.12))}
.tr-fai-meal .mac .mn{color:var(--mut);border-color:var(--line2)}
.tr-fai-meal .nt{font-size:11.5px;color:var(--faint);line-height:1.4}
.tr-fai-meal .rp-del{position:absolute;right:6px;top:6px}
.tr-fai-more{margin-top:10px;width:100%;justify-content:center}

.tr-fai-m{display:flex;flex-direction:column;gap:12px}
.tr-fai-who{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--mut)}
.tr-fai-who svg{width:15px;height:15px;color:#fbbf24}
.tr-fai-who b{color:#fff}
.tr-fai-drop{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:150px;padding:16px;border-radius:18px;border:1.5px dashed rgba(245,158,11,.5);background:radial-gradient(circle at 50% 0%,rgba(239,68,68,.14),rgba(10,8,18,.5) 70%);text-align:center;cursor:pointer;transition:border-color .2s,background .2s}
.tr-fai-drop:hover{border-color:#fbbf24;background:radial-gradient(circle at 50% 0%,rgba(239,68,68,.22),rgba(10,8,18,.5) 70%)}
.tr-fai-drop input{position:absolute;inset:0;opacity:0;cursor:pointer}
.tr-fai-drop .big{width:56px;height:56px;border-radius:18px;display:grid;place-items:center;color:#fff;background:linear-gradient(140deg,#ef4444,#f59e0b);box-shadow:0 12px 28px -12px rgba(239,68,68,.9)}
.tr-fai-drop .big svg{width:26px;height:26px}
.tr-fai-drop b{font-size:15px;color:#fff}
.tr-fai-drop s{text-decoration:none;font-size:12.3px;color:var(--mut);line-height:1.45}
.tr-fai-pics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.tr-fai-pics:empty{display:none}
.tr-fai-pics .pic{position:relative;aspect-ratio:1;border-radius:14px;overflow:hidden;border:1px solid var(--line2);animation:trFaiIn .35s both}
.tr-fai-pics .pic img{width:100%;height:100%;object-fit:cover;display:block}
.tr-fai-pics .pic button{position:absolute;right:5px;top:5px;width:24px;height:24px;border-radius:8px;display:grid;place-items:center;border:0;background:rgba(10,8,18,.75);color:#fff;cursor:pointer}
.tr-fai-pics .pic button svg{width:13px;height:13px}
.tr-fai-pics .pic.scan::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(245,158,11,.18),transparent 40%,rgba(239,68,68,.18))}
.tr-fai-pics .pic .line{position:absolute;left:0;right:0;height:3px;z-index:1;background:linear-gradient(90deg,transparent,#fbbf24,#ef4444,transparent);box-shadow:0 0 14px 4px rgba(245,158,11,.6);animation:trFaiScan 1.6s ease-in-out infinite}
.tr-fai-go{display:flex;align-items:flex-end;gap:10px}
.tr-fai-go label{display:flex;flex-direction:column;gap:5px;font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}
.tr-fai-go input{color-scheme:dark;min-width:150px}
.tr-fai-go .tr-btn{flex:1;justify-content:center;min-height:44px}
.tr-fai-wait{display:flex;align-items:center;gap:10px;padding:14px;border-radius:14px;border:1px solid rgba(245,158,11,.35);background:rgba(245,158,11,.08);color:#fde68a;font-size:13px;font-weight:600}
.tr-fai-wait .sp{width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.2);border-top-color:#fbbf24;animation:trFaiSpin .8s linear infinite}
@keyframes trFaiSpin{to{transform:rotate(360deg)}}
.tr-fai-err,.tr-fai-ok,.tr-fai-note{display:flex;gap:9px;align-items:flex-start;padding:11px 12px;border-radius:13px;font-size:12.8px;line-height:1.5;margin-bottom:10px}
.tr-fai-err{background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.4);color:#fecaca}
.tr-fai-ok{background:linear-gradient(135deg,rgba(239,68,68,.12),rgba(245,158,11,.1));border:1px solid rgba(245,158,11,.4);color:#fde68a}
.tr-fai-note{background:rgba(56,189,248,.07);border:1px solid rgba(56,189,248,.3);color:#cffafe;margin:10px 0 0}
.tr-fai-err svg,.tr-fai-ok svg,.tr-fai-note svg{width:17px;height:17px;flex:0 0 auto;margin-top:1px}
.tr-fai-list{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}
.tr-fai-r{padding:10px;border-radius:14px;border:1px solid var(--line);background:rgba(10,8,18,.55);animation:trFaiIn .35s both}
.tr-fai-r .top{display:flex;gap:6px}
.tr-fai-r .top .tr-in{flex:1;font-weight:700}
.tr-fai-r .nums{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:7px}
.tr-fai-r .nums label{display:flex;flex-direction:column;gap:3px;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}
.tr-fai-r .nums .tr-in{padding-left:8px;padding-right:6px;font-family:'Space Grotesk',sans-serif;font-weight:700;min-width:0}
.tr-fai-r .nums .kcal span{color:#fdba74}.tr-fai-r .nums .protein span{color:#7dd3fc}.tr-fai-r .nums .fat span{color:#fcd34d}.tr-fai-r .nums .carbs span{color:#bef264}
.tr-fai-tot{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;padding:10px 12px;border-radius:13px;background:linear-gradient(135deg,rgba(239,68,68,.12),rgba(245,158,11,.08));border:1px solid rgba(245,158,11,.3)}
.tr-fai-tot span{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#fde68a;margin-right:4px}
.tr-fai-manual{display:inline-flex;align-items:center;gap:7px;border:0;background:none;color:var(--mut);font-size:13px;font-weight:600;cursor:pointer;padding:4px 0}
.tr-fai-manual svg{width:15px;height:15px;color:#fbbf24}
.tr-fai-manual:hover{color:#fff}
@media (max-width:560px){
  .tr-bmi-v{min-width:74px;height:74px;border-radius:19px}
  .tr-bmi-v b{font-size:26px}
  .tr-bmi-t .r{grid-template-columns:70px 1fr;font-size:11.5px}
  .tr-bmi-t .r span:nth-child(3){grid-column:2;color:var(--mut)}
  .tr-kbn{padding:10px}
  .tr-kbn-g{gap:5px}
  .tr-kbn-g .c{padding:7px 7px 8px}
  .tr-kbn-g .k{font-size:9px;letter-spacing:.04em}
  .tr-kbn-g b{font-size:17px}
  .tr-kbn-h em{margin-left:0;width:100%}
  .tr-bmi-t .r.h span:nth-child(3){display:none}
  .tr-fai-bars{grid-template-columns:1fr}
  .tr-fai-pics{grid-template-columns:repeat(4,1fr);gap:6px}
  .tr-fai-go{flex-direction:column;align-items:stretch}
  .tr-fai-r .nums{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}
}
@media (prefers-reduced-motion:reduce){
  .tr-bmi::before,.tr-bmi-g .mk,.tr-bmi-g .mk i::after,.tr-fai-empty .art i,.tr-fai-day,.tr-fai-track i,.tr-fai-pics .pic .line{animation:none!important}
}

.tr-rmd{display:flex;flex-direction:column;gap:9px;padding:13px;border-radius:17px;position:relative;
  background:radial-gradient(110% 90% at 0% 0%,rgba(244,63,94,.10),transparent 60%),
    radial-gradient(90% 80% at 100% 100%,rgba(251,191,36,.10),transparent 60%),rgba(255,255,255,.025);
  border:1px solid rgba(251,113,133,.2);box-shadow:inset 0 1px 0 rgba(255,255,255,.05);transition:opacity .2s,filter .2s;}
.tr-rmd.off{opacity:.55;filter:saturate(.5);}
.tr-rmd-h{display:flex;align-items:flex-start;gap:10px;}
.tr-rmd-h .ic{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:12px;color:#fff;
  background:linear-gradient(140deg,#f43f5e,#f59e0b);box-shadow:0 8px 18px -6px rgba(244,63,94,.6);}
.tr-rmd-h .ic svg{width:17px;height:17px;}
.tr-rmd-h .tx{display:flex;flex-direction:column;gap:2px;min-width:0;}
.tr-rmd-h b{font-size:13.5px;color:var(--ink);}
.tr-rmd-h s{text-decoration:none;font-size:11.5px;line-height:1.4;color:var(--faint);}
.tr-rmd-r{display:flex;align-items:flex-start;flex-wrap:wrap;gap:10px;padding:10px;border-radius:13px;
  background:rgba(0,0,0,.2);border:1px solid rgba(255,255,255,.06);transition:border-color .16s,opacity .2s;}
.tr-rmd-r:focus-within{border-color:rgba(251,191,36,.45);}
.tr-rmd-r .ri{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:10px;
  color:#fbbf24;background:rgba(251,191,36,.1);border:1px solid rgba(251,191,36,.22);}
.tr-rmd-r .ri svg{width:15px;height:15px;}
.tr-rmd-r .tx{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0;}
.tr-rmd-r .tx b{font-size:13px;font-weight:650;color:var(--ink);}
.tr-rmd-r .tx s{text-decoration:none;font-size:11.5px;color:var(--faint);line-height:1.35;}
.tr-rmd-r.mute .ri{color:var(--faint);background:rgba(255,255,255,.04);border-color:var(--line);}
.tr-rmd-r.mute .tx b{color:var(--mut);}
.tr-rmd-ln{flex-basis:100%;display:flex;align-items:center;gap:10px;padding-left:40px;}
.tr-rmd-ln .nt{font-size:11.5px;color:var(--faint);min-width:0;}
.tr-rmd-tm.own + .nt{color:#fcd34d;}
.tr-rmd-tm{flex:none;display:flex;align-items:center;gap:5px;width:92px;padding:0 9px;border-radius:11px;cursor:text;
  background:rgba(255,255,255,.04);border:1px solid var(--line2);transition:.16s;}
.tr-rmd-tm svg{width:13px;height:13px;flex:none;color:var(--faint);}
.tr-rmd-tm input{width:100%;min-width:0;padding:8px 0;background:transparent;border:0;outline:0;color:var(--ink);
  font-family:'Space Grotesk',sans-serif;font-size:14.5px;font-weight:700;font-variant-numeric:tabular-nums;}
.tr-rmd-tm input::placeholder{color:#6b6280;font-weight:600;}
.tr-rmd-tm.own{border-color:rgba(251,191,36,.55);background:rgba(251,191,36,.08);box-shadow:0 0 0 3px rgba(251,191,36,.1);}
.tr-rmd-tm.own svg{color:#fbbf24;}
.tr-rmd-tm:focus-within{border-color:#f59e0b;}
.tr-rmd-tm input:disabled{opacity:.4;cursor:not-allowed;}
.tr-rmd-sw{position:relative;flex:none;width:44px;height:26px;padding:0;margin-top:2px;border-radius:999px;cursor:pointer;
  background:var(--panel);border:1px solid var(--line2);transition:.22s cubic-bezier(.2,.9,.3,1);}
.tr-rmd-sw i{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#6f6688;
  transition:.22s cubic-bezier(.2,.9,.3,1);}
.tr-rmd-sw.on{background:linear-gradient(135deg,#f43f5e,#f59e0b);border-color:transparent;box-shadow:0 0 0 4px rgba(244,63,94,.14);}
.tr-rmd-sw.on i{left:21px;background:#fff;}
.tr-unp{margin:12px 14px 4px;padding:13px;border-radius:17px;position:relative;overflow:hidden;
  background:radial-gradient(110% 90% at 0% 0%,rgba(244,63,94,.14),transparent 60%),
    radial-gradient(90% 80% at 100% 100%,rgba(251,191,36,.12),transparent 60%),rgba(255,255,255,.025);
  border:1px solid rgba(251,113,133,.25);box-shadow:inset 0 1px 0 rgba(255,255,255,.05);}
.tr-unp-h{display:flex;align-items:flex-start;gap:10px;}
.tr-unp-h .ic{flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:12px;color:#fff;
  background:linear-gradient(140deg,#f43f5e,#f59e0b);box-shadow:0 8px 18px -6px rgba(244,63,94,.6);}
.tr-unp-h .ic svg{width:18px;height:18px;}
.tr-unp-h .tx{display:flex;flex-direction:column;gap:3px;min-width:0;}
.tr-unp-h b{font-size:13.5px;color:var(--ink);}
.tr-unp-h s{text-decoration:none;font-size:11.5px;line-height:1.45;color:var(--faint);}
.tr-unp-l{display:flex;flex-wrap:wrap;gap:6px;margin-top:11px;}
.tr-unp-l .un{padding:5px 10px;border-radius:999px;font-size:12px;font-weight:650;color:#fde68a;
  background:rgba(251,191,36,.1);border:1px solid rgba(251,191,36,.3);
  animation:unpIn .35s cubic-bezier(.2,.8,.25,1) both;animation-delay:var(--d,0ms);}
@keyframes unpIn{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}
.tr-unp-go{width:100%;justify-content:center;margin-top:11px;}
.tr-unp-b{margin-left:7px;padding:2px 7px;border-radius:999px;font-style:normal;font-size:10px;font-weight:800;
  letter-spacing:.04em;text-transform:uppercase;color:#fecdd3;background:rgba(244,63,94,.16);border:1px solid rgba(244,63,94,.35);
  vertical-align:middle;}

.rp-th .rv,.rp-vid .rv{position:absolute;top:5px;right:5px;display:grid;place-items:center;width:20px;height:20px;border-radius:50%;
  box-shadow:0 3px 10px rgba(0,0,0,.55);}
.rv svg{width:12px;height:12px;stroke-width:3;}
.rv.ok{background:linear-gradient(135deg,#34d399,#10b981);color:#04231a;}
.rv.bad{background:linear-gradient(135deg,#fb7185,#e11d48);color:#fff;}
.rp-vids{display:flex;flex-direction:column;gap:8px;}
.rp-vid{position:relative;animation:unpIn .35s cubic-bezier(.2,.8,.25,1) both;animation-delay:var(--d,0ms);}
.rp-vid-b{position:relative;display:flex;align-items:center;gap:11px;width:100%;padding:10px 38px 10px 10px;border-radius:14px;cursor:pointer;
  font:inherit;text-align:left;color:var(--ink);background:rgba(255,255,255,.03);border:1px solid var(--line);transition:.16s;}
.rp-vid-b:hover{border-color:rgba(251,191,36,.5);transform:translateY(-1px);}
.rp-vid-b .pl{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:11px;color:#fff;
  background:linear-gradient(140deg,#ef4444,#f59e0b);box-shadow:0 6px 16px -6px rgba(239,68,68,.6);}
.rp-vid-b .pl svg{width:15px;height:15px;}
.rp-vid-b .tx{display:flex;flex-direction:column;gap:2px;min-width:0;}
.rp-vid-b b{font-size:13.5px;font-weight:650;overflow-wrap:anywhere;}
.rp-vid-b s{text-decoration:none;font-size:11.5px;color:var(--faint);}
.rp-vid.r-ok .rp-vid-b{border-color:rgba(52,211,153,.35);}
.rp-vid.r-bad .rp-vid-b{border-color:rgba(251,113,133,.4);}
.rp-vid .rv{top:50%;right:10px;transform:translateY(-50%);}
.rp-vid .rp-del{position:absolute;top:-6px;right:-6px;}
.tr-exvid.r-ok{border-color:rgba(52,211,153,.7);color:#6ee7b7;}
.tr-exvid.r-bad{border-color:rgba(251,113,133,.8);color:#fda4af;}

.tr-rv{margin-top:14px;padding:13px;border-radius:16px;
  background:linear-gradient(160deg,rgba(255,255,255,.045),rgba(255,255,255,.012));border:1px solid var(--line2);}
.tr-rv-h{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#fcd34d;}
.tr-rv-h svg{width:15px;height:15px;}
.tr-rv-b{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:11px;}
.tr-rv-b button{display:flex;align-items:center;justify-content:center;gap:8px;padding:13px 10px;border-radius:14px;cursor:pointer;
  font:inherit;font-size:14px;font-weight:700;color:var(--mut);background:rgba(0,0,0,.22);border:1px solid var(--line2);
  transition:transform .14s ease,background .2s,border-color .2s,color .2s,box-shadow .2s;}
.tr-rv-b button svg{width:18px;height:18px;}
.tr-rv-b button:hover{transform:translateY(-1px);}
.tr-rv-b button:active{transform:scale(.97);}
.tr-rv-b .ok:hover{border-color:rgba(52,211,153,.6);color:#a7f3d0;}
.tr-rv-b .bad:hover{border-color:rgba(251,113,133,.6);color:#fecdd3;}
.tr-rv-b .ok.on{color:#04231a;border-color:transparent;background:linear-gradient(135deg,#34d399,#10b981);
  box-shadow:0 10px 24px -8px rgba(16,185,129,.7);animation:rvPop .32s cubic-bezier(.2,.9,.3,1.4);}
.tr-rv-b .bad.on{color:#fff;border-color:transparent;background:linear-gradient(135deg,#fb7185,#e11d48);
  box-shadow:0 10px 24px -8px rgba(225,29,72,.7);animation:rvPop .32s cubic-bezier(.2,.9,.3,1.4);}
@keyframes rvPop{from{transform:scale(.92);}to{transform:none;}}
.tr-rv-n{display:flex;flex-direction:column;gap:8px;margin-top:10px;animation:fplIn .3s ease both;}
.tr-rv-n[hidden]{display:none;}
.tr-rv-n .tr-btn{align-self:flex-end;}
.tr-rv-s{margin-top:9px;font-size:11.5px;color:var(--faint);}
@media (prefers-reduced-motion:reduce){.tr-unp-l .un,.rp-vid{animation:none;}}

.tr-lift{display:flex;align-items:center;flex-wrap:wrap;gap:6px 9px;margin:-2px 0 4px 40px;padding:7px 11px;border-radius:11px;
  font-size:12.5px;color:#fde68a;background:linear-gradient(140deg,rgba(251,191,36,.12),rgba(239,68,68,.05));border:1px solid rgba(251,191,36,.28);
  animation:fplIn .35s ease both;}
.tr-lift svg{width:14px;height:14px;flex:none;color:#fbbf24;}
.tr-lift b{color:#fff;font-family:'Space Grotesk',sans-serif;font-size:13.5px;}
.tr-lift s{text-decoration:none;font-size:11.5px;color:var(--faint);}
@media (max-width:760px){.tr-lift{margin-left:0;}}

.tr-sech{position:relative;isolation:isolate;overflow:hidden;margin:16px 0 16px;padding:20px 18px 18px;border-radius:24px;align-items:center;
  border:1px solid rgba(251,191,36,.24);background:linear-gradient(145deg,rgba(239,68,68,.2),rgba(245,158,11,.07) 45%,rgba(20,16,32,.94));
  box-shadow:0 26px 60px -42px rgba(239,68,68,.8);animation:secIn .45s cubic-bezier(.2,.8,.25,1) both;}
@keyframes secIn{from{opacity:0;transform:translateY(10px);}}
.tr-glow{position:absolute;right:-90px;top:-130px;width:320px;height:320px;border-radius:50%;z-index:-1;pointer-events:none;
  background:radial-gradient(circle,rgba(251,191,36,.28),transparent 65%);animation:secGlow 9s ease-in-out infinite;}
@keyframes secGlow{50%{transform:translate(-34px,26px) scale(1.12);}}
.tr-kick{display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#fbbf24;}
.tr-kick:before{content:'';width:7px;height:7px;border-radius:50%;background:#fbbf24;box-shadow:0 0 12px #fbbf24;}
.tr-sech .tt{margin-top:8px;background:linear-gradient(90deg,#fff 35%,#fde68a);-webkit-background-clip:text;background-clip:text;color:transparent;}
.tr-sech .sub{margin-top:6px;color:#e6ddf5;opacity:.85;max-width:680px;}
.tr-cabtabs .tr-seg.big{background:rgba(20,16,32,.62);border-color:rgba(255,255,255,.07);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  box-shadow:0 14px 34px -24px rgba(0,0,0,.9);}
.tr-cabtabs .tr-seg.big button.on{background:linear-gradient(140deg,#ef4444,#f97316 60%,#f59e0b);box-shadow:0 10px 22px -10px rgba(239,68,68,.85);}
.tr-panel{background:rgba(20,16,32,.62);border-color:rgba(255,255,255,.07);border-radius:22px;
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 22px 50px -38px rgba(0,0,0,.9);}
.tr-panel .ph{border-bottom-color:rgba(255,255,255,.06);background:linear-gradient(180deg,rgba(255,255,255,.03),transparent);}
.tr-panel .ph > svg:first-child{box-sizing:border-box;flex:none;width:32px;height:32px;padding:7px;border-radius:11px;color:#fff;
  background:linear-gradient(140deg,#f59e0b,#ef4444 60%,#b91c1c);box-shadow:0 8px 18px -8px rgba(239,68,68,.75);}
.tr-panel .ph .t{font-size:15px;}
.tr-card{background:linear-gradient(160deg,rgba(255,255,255,.045),rgba(20,16,32,.62) 55%);border-color:rgba(255,255,255,.08);border-radius:22px;
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);}
.tr-card:hover{border-color:rgba(251,191,36,.4);box-shadow:0 20px 44px -26px rgba(239,68,68,.55);}
@media (max-width:760px){ .tr-sech{padding:18px 15px 15px;} }
@media (prefers-reduced-motion:reduce){ .tr-sech,.tr-glow{animation:none;} }

.tr-wchip{position:relative;}
.tr-wchip.rot{border-color:rgba(251,191,36,.7);box-shadow:0 0 0 3px rgba(251,191,36,.14),0 10px 22px -12px rgba(245,158,11,.7);}
.tr-wchip.rot.r-next{border-style:dashed;}
.tr-wchip.rot.r-done{border-color:rgba(52,211,153,.7);box-shadow:0 0 0 3px rgba(52,211,153,.14);}
.tr-wchip .rb{position:absolute;left:50%;top:-9px;transform:translateX(-50%);padding:1px 7px;border-radius:999px;white-space:nowrap;
  font-style:normal;font-size:9.5px;font-weight:800;letter-spacing:.04em;color:#1a1206;background:linear-gradient(140deg,#fde68a,#f59e0b);
  box-shadow:0 4px 10px -2px rgba(245,158,11,.6);animation:rbIn .4s cubic-bezier(.2,.9,.3,1.4) both;}
.tr-wchip.rot.r-done .rb{color:#04231a;background:linear-gradient(140deg,#6ee7b7,#10b981);}
@keyframes rbIn{from{transform:translateX(-50%) scale(.6);opacity:0;}}
.tr-wchips{padding-top:12px;}
.tr-rot{display:flex;align-items:flex-start;gap:8px;margin:2px 18px 4px;padding:9px 12px;border-radius:12px;font-size:12.5px;line-height:1.45;color:#fde68a;
  background:linear-gradient(140deg,rgba(251,191,36,.12),rgba(239,68,68,.05));border:1px solid rgba(251,191,36,.28);}
.tr-rot svg{width:15px;height:15px;flex:none;margin-top:1px;color:#fbbf24;}
.tr-rot.r-done{color:#a7f3d0;background:rgba(52,211,153,.08);border-color:rgba(52,211,153,.3);}
.tr-rot.r-done svg{color:#34d399;}
@media (max-width:760px){.tr-rot{margin:2px 12px 4px;}}

.tr-preset{display:flex;flex-direction:column;gap:8px;}
.tr-pre-g{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}
.tr-pre{display:flex;align-items:center;gap:10px;padding:10px 11px;border-radius:15px;cursor:pointer;text-align:left;font:inherit;color:var(--ink);
  background:linear-gradient(160deg,rgba(255,255,255,.05),rgba(20,16,32,.6));border:1px solid rgba(255,255,255,.09);
  transition:transform .15s ease,border-color .15s,box-shadow .2s;}
.tr-pre:hover{transform:translateY(-2px);border-color:rgba(251,191,36,.5);}
.tr-pre.on{border-color:transparent;background:linear-gradient(150deg,rgba(239,68,68,.32),rgba(245,158,11,.22));box-shadow:0 12px 26px -14px rgba(239,68,68,.8),inset 0 0 0 1px rgba(251,191,36,.55);}
.tr-pre .dn{flex:none;width:34px;height:34px;border-radius:50%;
  background:conic-gradient(#38bdf8 0 calc(var(--pp) * 1%),#fbbf24 0 calc((var(--pp) + var(--pf)) * 1%),#4ade80 0 100%);
  -webkit-mask:radial-gradient(circle,transparent 42%,#000 44%);mask:radial-gradient(circle,transparent 42%,#000 44%);
  filter:drop-shadow(0 3px 8px rgba(0,0,0,.4));transition:transform .4s cubic-bezier(.2,.9,.3,1.3);}
.tr-pre.on .dn{transform:rotate(180deg) scale(1.06);}
.tr-pre .tx{display:flex;flex-direction:column;gap:2px;min-width:0;}
.tr-pre b{font-size:13px;font-weight:700;}
.tr-pre s{text-decoration:none;font-size:10.5px;line-height:1.35;color:var(--faint);}
.tr-pre s i{font-style:normal;white-space:nowrap;}
.tr-pre-n{font-size:11.5px;color:var(--faint);line-height:1.4;}
.tr-pre-n.err{color:#fda4af;}
.tr-calc .tr-in.flash{animation:preFlash .9s ease;}
@keyframes preFlash{0%{box-shadow:0 0 0 0 rgba(251,191,36,.0);}30%{box-shadow:0 0 0 4px rgba(251,191,36,.35);border-color:#f59e0b;}100%{box-shadow:0 0 0 0 rgba(251,191,36,0);}}
@media (max-width:560px){.tr-pre-g{grid-template-columns:1fr;}}
.tr-kq{display:flex;flex-direction:column;gap:14px;margin:0 0 14px;padding:14px;border-radius:18px;
  background:radial-gradient(120% 90% at 100% 0%,rgba(251,191,36,.10),transparent 60%),linear-gradient(150deg,rgba(239,68,68,.10),rgba(20,16,32,.35) 70%);
  border:1px solid rgba(251,191,36,.18);animation:kqIn .45s cubic-bezier(.2,.8,.2,1) both;}
@keyframes kqIn{from{opacity:0;transform:translateY(8px);}}
.tr-kq-adj{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.tr-kq{container-type:inline-size;}
@container (max-width:520px){.tr-kq .tr-pre-g{grid-template-columns:1fr;}}
.tr-kq .tr-preset > .lb{font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--faint);font-weight:600;}
.tr-kq .tr-pre{animation:kqIn .45s cubic-bezier(.2,.8,.2,1) both;}
.tr-kq .tr-pre:nth-child(2){animation-delay:60ms;}
.tr-kq .tr-pre:nth-child(3){animation-delay:120ms;}
@media (prefers-reduced-motion:reduce){.tr-kq,.tr-kq .tr-pre{animation:none;}}

.tr-accent{display:flex;align-items:center;gap:9px;margin:6px 18px 2px;padding:0 12px;border-radius:13px;cursor:text;
  background:linear-gradient(150deg,rgba(251,113,133,.08),rgba(251,191,36,.04));border:1px solid rgba(251,113,133,.22);transition:border-color .16s,box-shadow .16s;}
.tr-accent svg{width:16px;height:16px;flex:none;color:#fb7185;}
.tr-accent span{flex:none;font-size:10.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#fda4af;}
.tr-accent input{flex:1;min-width:0;background:transparent;border:0;outline:0;color:var(--ink);font:inherit;font-size:14.5px;font-weight:650;padding:10px 0;}
.tr-accent input::placeholder{color:#5d5470;font-weight:500;}
.tr-accent:focus-within{border-color:rgba(251,113,133,.6);box-shadow:0 0 0 3px rgba(251,113,133,.14);}
.tr-wchip b{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
@media (max-width:760px){.tr-accent{margin:6px 12px 2px;}}
.cya-r .tr-lift{margin:10px 0 0;}
