/* Х5 ТРЕНИРОВКИ — палитра и приёмы дашборда Даймон Финансы, тема Plata (оранжевая) по умолчанию */
:root{
  --accent:#FF6A2B; --accent-d:#E23C03; --accent-l:rgba(255,106,43,.20);
  --radius:14px; --radius-card:22px;
  --safe-top:env(safe-area-inset-top,0px); --safe-bot:env(safe-area-inset-bottom,0px);
  /* тон Plata: фирменный оранжевый банка */
  --h:14; --s:93%; --s2:70%; --s3:45%;
  --bg:#2A0901; --card:rgba(255,255,255,.07); --ink:#FFFFFF;
  --muted:#E3BFAC; --faint:rgba(255,235,225,.52);
  --line:rgba(255,255,255,.14); --fillq:rgba(255,255,255,.09);
  --pos:#6FE3A8; --neg:#FF8A63; --warn:#FFC24B; --info:#7FC8FF;
  --silver:#C4C5C9; --brand:#E23C03; --deep:#8C0702;
  --shadow-card:0 1px 1px rgba(0,0,0,.25), 0 10px 30px rgba(58,15,2,.45);
  --grad-1:#B02E07; --grad-2:#7A1A04; --grad-3:#4A0E02; --grad-4:#1C0401;
  --glow-1:rgba(255,122,40,.85); --glow-2:rgba(140,7,2,.75);
  --glass:rgba(255,255,255,.07); --glass-br:rgba(255,255,255,.11);
  --pill:rgba(255,255,255,.08); --pill-br:rgba(255,255,255,.22); --pill-ink:#fff;
  --hero-a:rgba(255,255,255,.16); --hero-b:rgba(255,255,255,.05); --hero-c:rgba(140,7,2,.30);
  --hero-br:rgba(255,255,255,.20);
  --hero-sh:0 1px 1px rgba(255,255,255,.22) inset, 0 12px 34px hsla(14,70%,8%,.55);
  --seg-ink:#8C0702; --sheet-a:#5A1503; --sheet-b:#2A0901; --spark:rgba(255,255,255,.42);
  /* пульсовые зоны Garmin */
  --z1:#8FD3F4; --z2:#6FE3A8; --z3:#FFC24B; --z4:#FF8A63; --z5:#FF4D4D;
}
/* светлая тема — та же механика, что в финансах (переключатель в настройках) */
:root[data-theme="light"]{
  --bg:#F5F1EA; --card:#FFFFFF; --ink:#0A0A0A; --muted:#6E6862; --faint:rgba(110,104,98,.62);
  --line:rgba(10,10,10,.12); --fillq:rgba(10,10,10,.07);
  --glass:rgba(255,255,255,.66); --glass-br:rgba(255,255,255,.85);
  --pill:rgba(255,255,255,.72); --pill-br:rgba(10,10,10,.08); --pill-ink:var(--ink);
  --hero-a:rgba(255,255,255,.92); --hero-b:rgba(255,255,255,.62);
  --hero-c:hsla(14,52%,82%,.55); --hero-br:rgba(255,255,255,.9);
  --hero-sh:0 1px 1px rgba(255,255,255,.9) inset, 0 12px 30px hsla(14,40%,45%,.16);
  --grad-1:hsl(14,52%,88%); --grad-2:hsl(14,52%,94%); --grad-3:hsl(14,30%,97%); --grad-4:hsl(14,30%,99%);
  --glow-1:hsla(14,93%,62%,.42); --glow-2:hsla(14,52%,68%,.34);
  --sheet-a:hsl(14,30%,97%); --sheet-b:hsl(14,30%,93%); --seg-ink:hsl(14,93%,32%);
  --shadow-card:0 1px 2px rgba(17,24,39,.04), 0 8px 24px rgba(17,24,39,.06);
  --pos:#0F9D58; --neg:#E63946; --warn:#FF9F0A;
}

body{visibility:hidden}
html.ready body{visibility:visible}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;overflow-x:hidden;overscroll-behavior-x:none}
body{
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text",Inter,"Segoe UI",Roboto,sans-serif;
  color:var(--ink);font-size:15px;line-height:1.35;display:flex;flex-direction:column;height:100%;
  background:
    radial-gradient(115% 55% at 50% -8%, var(--glow-1) 0%, transparent 66%),
    radial-gradient(90% 45% at 50% 108%, var(--glow-2) 0%, transparent 70%),
    linear-gradient(180deg, var(--grad-1) 0%, var(--grad-2) 26%, var(--grad-3) 58%, var(--grad-4) 88%);
  background-attachment:fixed;
}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;
  transition:background .15s,color .15s,transform .1s,opacity .15s}
button:active{transform:scale(.97)}
button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:8px}
.hidden{display:none!important}
input,textarea{font-family:inherit}

/* ---------- топбар ---------- */
.topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:8px;
  padding:calc(var(--safe-top) + 10px) 18px 8px;background:transparent;flex:none}
.title{font-size:26px;font-weight:700;letter-spacing:-.4px;white-space:nowrap}
/* на 360px «Х5 ТРЕНИРОВКИ» + кнопки в одну строку не влезают — заголовок ужимаем, а не переносим */
@media (max-width:374px){ .title{font-size:22px} }
.sub{font-size:13px;color:var(--muted);margin-top:4px}
.tb-actions{display:flex;gap:6px}
.chip{min-width:36px;height:32px;border-radius:16px;font-size:13px;font-weight:600;padding:0 12px;
  background:var(--pill);border:1px solid var(--pill-br);color:var(--pill-ink)}
.chip:hover{background:var(--accent-l);color:var(--accent)}

/* ---------- календарь-полоска ---------- */
.calhead{display:flex;align-items:baseline;gap:8px;padding:0 18px 8px;flex:none}
.cal-title{font-size:26px;font-weight:700;letter-spacing:-.4px}
.cal-sub{flex:1;font-size:13px;color:var(--muted)}
.cal-nav{display:flex;gap:6px}
.nav-arr{width:32px;height:32px;border-radius:16px;font-size:19px;font-weight:600;
  display:flex;align-items:center;justify-content:center;line-height:1;flex:none;
  background:var(--pill);border:1px solid var(--pill-br);color:var(--pill-ink)}
.nav-arr:hover{background:var(--accent-l);color:var(--accent)}
.weekstrip{display:flex;gap:2px;padding:0 14px 10px;flex:none}
.wd-cell{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;padding:4px 0;cursor:pointer}
.wd-lbl{font-size:11px;color:var(--muted);letter-spacing:.2px}
.wd-num{width:36px;height:36px;display:flex;align-items:center;justify-content:center;position:relative;
  font-size:15px;font-weight:600;color:var(--ink);border-radius:11px;
  font-variant-numeric:tabular-nums;transition:background .15s,color .15s}
.wd-cell.today .wd-num{color:var(--accent)}
.wd-cell.future .wd-num{color:var(--faint)}
.wd-cell.sel .wd-num{background:#fff;color:var(--seg-ink)}
.wd-cell:hover .wd-num{background:var(--accent-l)}
.wd-cell.sel:hover .wd-num{background:#fff}
.wd-dot{position:absolute;bottom:3px;width:4px;height:4px;border-radius:2px;background:var(--accent)}
.wd-cell.sel .wd-dot{background:var(--seg-ink)}

/* ---------- скролл и карточки ---------- */
.scroll{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;
  padding:0 14px calc(var(--safe-bot) + 90px);touch-action:pan-y}
.card{border-radius:var(--radius-card);padding:16px;margin-bottom:12px;
  background:var(--glass);border:1px solid var(--glass-br);
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:var(--shadow-card)}
/* герой — металлик карты PLATA */
.scroll > .card.hero{
  background:linear-gradient(145deg, var(--hero-a) 0%, var(--hero-b) 42%, var(--hero-c) 100%);
  border:1px solid var(--hero-br);box-shadow:var(--hero-sh)}
.card-h{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:12px}
.lbl{font-size:13px;font-weight:600;color:var(--muted);letter-spacing:.1px}
.k{font-size:13px;color:var(--faint)}
.big{font-size:38px;font-weight:700;letter-spacing:-1.6px;line-height:1}
.mid{font-size:19px;font-weight:700;letter-spacing:-.4px}
.pos{color:var(--pos)} .neg{color:var(--neg)} .warn{color:var(--warn)}

/* ---------- герой тренировки ---------- */
.hero-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.hero-name{font-size:22px;font-weight:700;letter-spacing:-.5px;line-height:1.15}
.hero-meta{font-size:13px;color:var(--muted);margin-top:4px}
.badge{font-size:11px;font-weight:700;padding:5px 10px;border-radius:11px;
  background:var(--fillq);color:var(--muted);white-space:nowrap;letter-spacing:.2px}
.badge.done{background:rgba(111,227,168,.16);color:var(--pos)}
.badge.live{background:var(--accent);color:#fff}
.hero-row{display:flex;gap:20px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.hero-cell{flex:1}
.hero-cell .k{display:block;margin-bottom:3px}
.hero-cell b{font-size:19px;font-weight:700;font-variant-numeric:tabular-nums}
.prog{height:5px;border-radius:3px;background:var(--fillq);overflow:hidden;margin-top:14px}
.prog i{display:block;height:100%;border-radius:3px;transition:width .4s ease;
  background:linear-gradient(90deg,var(--accent) 0%,var(--accent-d) 100%)}

/* ---------- блок тренировки ---------- */
.blk{margin-bottom:12px}
.blk-head{width:100%;display:flex;align-items:center;gap:10px;text-align:left}
.blk-ttl{flex:1;min-width:0}
.blk-name{font-size:15px;font-weight:700;letter-spacing:-.2px}
.blk-sub{font-size:11px;color:var(--faint);margin-top:3px;line-height:1.3}
.blk-time{font-size:19px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.blk-time.empty{color:var(--faint);font-weight:600;font-size:15px}
.chev{color:var(--faint);font-size:15px;transition:transform .25s ease;transform:rotate(90deg);
  display:inline-block;line-height:1;flex:none}
.blk.closed .chev{transform:rotate(0deg)}
.blk.closed .blk-body{display:none}
.blk-body{margin-top:12px}
.rounds-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;
  color:var(--muted);margin-bottom:10px;font-variant-numeric:tabular-nums}
.rnd{padding:4px 9px;border-radius:9px;background:var(--fillq);font-weight:600;font-size:13px}
.rnd.best{background:rgba(111,227,168,.18);color:var(--pos)}
.delta{font-size:11px;font-weight:700;padding:3px 7px;border-radius:8px}
.delta.up{background:rgba(255,138,99,.16);color:var(--neg)}
.delta.down{background:rgba(111,227,168,.16);color:var(--pos)}

/* ---------- упражнение ---------- */
.ex{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}
.ex:last-child{border-bottom:none}
.ex-main{flex:1;min-width:0}
.ex-nm{font-size:14px;line-height:1.3}
.ex-plan{font-size:11px;color:var(--faint);margin-top:3px}
.ex-hint{font-size:11px;color:var(--faint);font-style:italic;margin-top:2px}
/* факт не должен отжимать название: без max-width сводка на 6 подходов забирала 248px из 360
   и «Толкание саней» рвалось по слову в строку */
.ex-fact{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;text-align:right;
  min-width:64px;max-width:46%;color:var(--muted);overflow-wrap:anywhere}
.ex-fact.filled{color:var(--ink)}
.ex-fact.skip{color:var(--neg);font-weight:600;font-size:11px}
.ex-note{font-size:11px;color:var(--faint);margin-top:3px;font-style:italic}
.ex-go{width:30px;height:30px;border-radius:15px;flex:none;font-size:15px;
  background:var(--pill);border:1px solid var(--pill-br);display:flex;align-items:center;justify-content:center}
.ex-go:hover{background:var(--accent-l);color:var(--accent)}
.ex.done .ex-nm{opacity:.72}

/* ---------- режим правки ---------- */
.chip.on{background:var(--accent);color:#fff;border-color:transparent}
.pen{font-size:13px;opacity:.75;vertical-align:2px}
.edit-tools{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.etool{padding:8px 12px;border-radius:11px;font-size:13px;font-weight:600;
  background:var(--pill);border:1px solid var(--pill-br);color:var(--pill-ink)}
.etool:hover{background:var(--accent-l);color:var(--accent)}
.etool.tiny{padding:6px 9px;font-size:13px;line-height:1}
.etool.off{opacity:.3;pointer-events:none}
.ex-move{display:flex;gap:4px;flex:none}
.ex-move .etool.tiny{width:28px;height:28px;padding:0;display:flex;align-items:center;justify-content:center}
.set-wrap{position:relative;display:inline-flex;flex:none}
.set-x{position:absolute;top:-5px;right:-3px;width:19px;height:19px;border-radius:10px;
  font-size:11px;line-height:1;background:var(--neg);color:#fff;display:flex;
  align-items:center;justify-content:center;box-shadow:0 2px 6px rgba(0,0,0,.35);opacity:0;
  transition:opacity .15s}
.set-wrap:hover .set-x,.set-wrap .set.active ~ .set-x{opacity:1}
.set-x:hover{filter:brightness(1.15)}

/* ---------- секундомер ---------- */
.stopwatch{display:flex;align-items:center;gap:10px;margin:2px 0 12px}
.sw-val{flex:1;font-size:34px;font-weight:700;letter-spacing:-1.4px;font-variant-numeric:tabular-nums;line-height:1}
.sw-btn{padding:11px 18px;border-radius:13px;font-size:14px;font-weight:700;
  background:linear-gradient(180deg,var(--accent) 0%,var(--accent-d) 100%);color:#fff;
  box-shadow:0 8px 20px var(--accent-l)}
.sw-btn.stop{background:var(--pill);border:1px solid var(--pill-br);color:var(--pill-ink);box-shadow:none}
.sw-btn.ghost{background:var(--pill);border:1px solid var(--pill-br);color:var(--muted);box-shadow:none;
  font-weight:600;padding:11px 14px}
.sw-btn:hover{filter:brightness(1.06)}

/* ---------- пульсовые зоны ---------- */
.zbar{display:flex;height:12px;border-radius:6px;overflow:hidden;margin:10px 0 8px;background:var(--fillq)}
.zbar i{display:block;height:100%}
.zleg{display:flex;gap:12px;flex-wrap:wrap;font-size:11px;color:var(--muted)}
.zleg span{display:flex;align-items:center;gap:5px;font-variant-numeric:tabular-nums}
.zleg em{width:8px;height:8px;border-radius:3px;font-style:normal;flex:none}

/* ---------- нижняя панель ---------- */
.tabbar{position:fixed;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:space-around;
  padding:8px 14px calc(var(--safe-bot) + 8px);gap:8px;z-index:20;
  background:linear-gradient(180deg,transparent 0%,var(--grad-4) 42%);pointer-events:none}
.tabbar > *{pointer-events:auto}
.tab{width:46px;height:46px;border-radius:23px;font-size:19px;display:flex;align-items:center;justify-content:center;
  background:var(--pill);border:1px solid var(--pill-br);color:var(--pill-ink)}
.tab:hover,.tab.active{background:var(--accent-l);color:var(--accent)}
.fab{width:58px;height:58px;border-radius:29px;font-size:24px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(180deg,var(--accent) 0%,var(--accent-d) 100%);color:#fff;
  box-shadow:0 10px 26px rgba(226,60,3,.45)}

/* ---------- шит ---------- */
.sheet{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:flex-end;z-index:50}
.sheet-body{width:100%;border-radius:22px 22px 0 0;padding:20px 20px calc(var(--safe-bot) + 20px);
  max-height:90%;overflow-y:auto;background:linear-gradient(180deg,var(--sheet-a) 0%,var(--sheet-b) 100%)}
.sheet-h{display:flex;align-items:center;justify-content:space-between;font-size:19px;font-weight:700;margin-bottom:6px;gap:10px}
.sheet-sub{font-size:13px;color:var(--muted);margin-bottom:16px}
.x{width:30px;height:30px;border-radius:15px;background:var(--fillq);font-size:15px;flex:none}
.x:hover{background:var(--accent-l);color:var(--accent)}
.s-block{margin-bottom:18px}
.s-lbl{font-size:13px;font-weight:600;color:var(--muted);margin-bottom:8px}
.s-row{display:flex;gap:8px;flex-wrap:wrap}
.s-row button{flex:1;min-width:64px;padding:12px;border-radius:12px;font-size:13px;font-weight:600;
  background:var(--glass);border:1px solid var(--glass-br)}
.s-row button:hover{background:var(--accent-l);color:var(--accent)}
.s-row button.active{background:var(--accent);color:#fff;border-color:transparent}
.s-in{display:flex;align-items:center;justify-content:space-between;gap:10px;border-radius:12px;
  padding:12px 14px;margin-bottom:8px;font-size:13px;background:var(--glass);border:1px solid var(--glass-br)}
.s-in input{border:none;background:none;color:var(--ink);font-size:15px;text-align:right;width:110px;
  font-variant-numeric:tabular-nums}
.ta{width:100%;border-radius:12px;padding:12px 14px;font-size:14px;color:var(--ink);resize:vertical;
  background:var(--glass);border:1px solid var(--glass-br);min-height:76px}
.btn-primary{width:100%;padding:16px;border-radius:14px;color:#fff;font-size:15px;font-weight:600;
  background:linear-gradient(180deg,var(--accent) 0%,var(--accent-d) 100%);box-shadow:0 8px 20px var(--accent-l)}
.btn-primary:disabled{opacity:.5;cursor:default}
.btn-ghost{width:100%;padding:14px;border-radius:14px;font-size:14px;font-weight:600;margin-top:8px;
  background:var(--glass);border:1px solid var(--glass-br);color:var(--muted)}
.btn-ghost:hover{color:var(--accent)}

/* ---------- ввод подходов ---------- */
/* подходы — лента с горизонтальной прокруткой: при 6 подходах сетка съедала весь экран,
   а на телефоне вертикаль дороже горизонтали */
.sets{display:flex;gap:10px;flex-wrap:nowrap;overflow-x:auto;overflow-y:visible;
  margin:6px -20px 14px;padding:6px 20px 10px;scroll-snap-type:x proximity;
  -webkit-overflow-scrolling:touch;scrollbar-width:none}
.sets::-webkit-scrollbar{display:none}
.set{min-width:104px;flex:none;padding:10px 12px;border-radius:13px;text-align:center;
  font-size:15px;font-weight:700;scroll-snap-align:center;white-space:nowrap;
  font-variant-numeric:tabular-nums;background:var(--glass);border:1px solid var(--glass-br)}
.set.active{border-color:var(--accent);background:var(--accent-l);color:var(--accent)}
.set i{display:block;font-size:10px;font-weight:600;color:var(--faint);font-style:normal;margin-bottom:3px}
.set.active i{color:var(--accent)}
/* величины подхода: повторы · вес · мин · сек · дистанция.
   Сетка в 4 колонки — мин и сек стоят рядом узкой парой, остальные по половине ширины */
.fields{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}
.fld-r,.fld-kg,.fld-m{grid-column:span 2}
.fld-min,.fld-sec{grid-column:span 1}
.fld{padding:11px 12px;border-radius:13px;text-align:left;
  background:var(--glass);border:1px solid var(--glass-br)}
.fld i{display:block;font-size:11px;font-weight:600;color:var(--faint);font-style:normal;margin-bottom:3px}
.fld b{font-size:17px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.3px}
.fld.filled b{color:var(--ink)}
.fld.active{border-color:var(--accent);background:var(--accent-l)}
.fld.active i,.fld.active b{color:var(--accent)}

.pad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}
.pad button{padding:16px 0;border-radius:13px;font-size:20px;font-weight:600;
  background:var(--glass);border:1px solid var(--glass-br);font-variant-numeric:tabular-nums}
.pad button:hover{background:var(--accent-l);color:var(--accent)}
.pad button.wide{grid-column:span 1}
.quick{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.quick button{padding:9px 14px;border-radius:11px;font-size:13px;font-weight:600;
  background:var(--glass);border:1px solid var(--glass-br)}
.quick button:hover{background:var(--accent-l);color:var(--accent)}

/* ---------- список истории ---------- */
.hrow{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}
.hrow:last-child{border-bottom:none}
.hrow-main{flex:1;min-width:0}
.hrow-nm{font-size:14px;font-weight:600}
.hrow-sub{font-size:11px;color:var(--faint);margin-top:3px}
.hrow-v{font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--muted)}

.empty{text-align:center;color:var(--faint);font-size:13px;padding:36px 20px;line-height:1.5}
.foot{text-align:center;font-size:11px;color:var(--faint);padding:8px 0 2px}
.toast{position:fixed;left:50%;bottom:calc(var(--safe-bot) + 84px);transform:translateX(-50%);
  background:rgba(0,0,0,.82);color:#fff;padding:11px 18px;border-radius:13px;font-size:13px;
  z-index:80;opacity:0;transition:opacity .2s;pointer-events:none;max-width:88%;text-align:center}
.toast.show{opacity:1}
.spin{display:inline-block;width:15px;height:15px;border:2px solid var(--accent-l);
  border-top-color:var(--accent);border-radius:50%;animation:sp .7s linear infinite;vertical-align:-2px}
@keyframes sp{to{transform:rotate(360deg)}}
.report{white-space:pre-wrap;font-size:12px;line-height:1.5;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  color:var(--muted)}
