/* ═══════════════════════════════════════════════════════════════
   THEMES
═══════════════════════════════════════════════════════════════ */
:root {
  --bg:        #0a0a12;
  --bg2:       #12121e;
  --bg3:       #1a1a2a;
  --surface:   rgba(255,255,255,.05);
  --border:    rgba(255,255,255,.09);
  --accent:    #2E75B6;
  --accent2:   #1D9E75;
  --accent3:   #E67E22;
  --text:      #FFFFFF;
  --text2:     rgba(255,255,255,.6);
  --text3:     rgba(255,255,255,.35);
  --warn:      #E67E22;
  --success:   #1D9E75;
  --r:         14px;
  --rsm:       10px;
  --nav-h:     64px;
  --header-h:  56px;
}
body.theme-dark   { --bg:#0a0a12; --bg2:#12121e; --bg3:#1a1a2a; --text:#fff; --text2:rgba(255,255,255,.6); --text3:rgba(255,255,255,.32); --surface:rgba(255,255,255,.05); --border:rgba(255,255,255,.09); }
body.theme-light  { --bg:#F0F2F8; --bg2:#FFFFFF; --bg3:#E8EAF0; --text:#1a1a2e; --text2:rgba(0,0,0,.6); --text3:rgba(0,0,0,.38); --surface:rgba(0,0,0,.04); --border:rgba(0,0,0,.1); --accent:#2563EB; }
body.theme-mint   { --bg:#071a12; --bg2:#0d2018; --bg3:#132b1e; --text:#e8faf2; --text2:rgba(232,250,242,.6); --text3:rgba(232,250,242,.35); --surface:rgba(29,158,117,.08); --border:rgba(29,158,117,.2); --accent:#1D9E75; --accent2:#27AE60; }
body.theme-coal   { --bg:#060606; --bg2:#111111; --bg3:#1a1a1a; --text:#f0f0f0; --text2:rgba(240,240,240,.55); --text3:rgba(240,240,240,.3); --surface:rgba(255,255,255,.04); --border:rgba(255,255,255,.1); --accent:#BDBDBD; --accent2:#888; }
body.theme-sunset { --bg:#120a04; --bg2:#1e1008; --bg3:#2a180a; --text:#fff6ee; --text2:rgba(255,246,238,.6); --text3:rgba(255,246,238,.35); --surface:rgba(230,126,34,.07); --border:rgba(230,126,34,.18); --accent:#E67E22; --accent2:#E74C3C; }

/* ── Glassmorphism background ──────────────────────────────── */
body {
  background:
    radial-gradient(ellipse at 15% 15%, rgba(29,158,117,.28) 0%, transparent 55%),
    radial-gradient(ellipse at 85% 65%, rgba(46,117,182,.22) 0%, transparent 55%),
    radial-gradient(ellipse at 50% 100%, rgba(100,60,160,.18) 0%, transparent 50%),
    #09090f !important;
  transition: background 1.2s ease;
}
/* День тренировки — зелёный */
body.mode-gym {
  background:
    radial-gradient(ellipse at 15% 15%, rgba(29,158,117,.35) 0%, transparent 55%),
    radial-gradient(ellipse at 85% 65%, rgba(46,117,182,.18) 0%, transparent 55%),
    radial-gradient(ellipse at 50% 100%, rgba(20,100,60,.15) 0%, transparent 50%),
    #09090f !important;
}
/* День отдыха — синий/индиго */
body.mode-rest {
  background:
    radial-gradient(ellipse at 20% 25%, rgba(46,117,182,.32) 0%, transparent 55%),
    radial-gradient(ellipse at 80% 70%, rgba(100,60,180,.28) 0%, transparent 55%),
    radial-gradient(ellipse at 50% 100%, rgba(30,30,120,.2) 0%, transparent 50%),
    #09090f !important;
}
/* Вне дома — оранжевый */
body.mode-shift {
  background:
    radial-gradient(ellipse at 15% 20%, rgba(200,100,20,.32) 0%, transparent 55%),
    radial-gradient(ellipse at 80% 65%, rgba(180,70,20,.22) 0%, transparent 55%),
    radial-gradient(ellipse at 50% 100%, rgba(120,50,10,.18) 0%, transparent 50%),
    #09090f !important;
}
body.theme-light {
  background:
    radial-gradient(ellipse at 15% 15%, rgba(29,158,117,.12) 0%, transparent 55%),
    radial-gradient(ellipse at 85% 65%, rgba(46,117,182,.1) 0%, transparent 55%),
    #f0f2f8 !important;
}

/* ── Glass card ─────────────────────────────────────────────── */
.card {
  background: rgba(255,255,255,.06) !important;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 0.5px solid rgba(255,255,255,.12) !important;
  border-radius: var(--r);
  padding: 14px 15px;
  margin-bottom: 10px;
}
body.theme-light .card {
  background: rgba(255,255,255,.55) !important;
  border: 0.5px solid rgba(255,255,255,.7) !important;
}

/* ── Light theme overrides ──────────────────────────────────── */
body.theme-light .app-header {
  background: rgba(240,242,248,.88);
  border-bottom-color: rgba(0,0,0,.1);
}
body.theme-light .week-strip,
body.theme-light .week-nav-row {
  background: rgba(232,234,240,.9);
  border-bottom-color: rgba(0,0,0,.08);
}
body.theme-light .week-nav-btn {
  background: rgba(0,0,0,.06);
  border-color: rgba(0,0,0,.12);
  color: var(--text2);
}
body.theme-light .bottom-nav {
  background: rgba(240,242,248,.9);
  border-top-color: rgba(0,0,0,.1);
}
body.theme-light .nav-item     { color: rgba(0,0,0,.38); }
body.theme-light .nav-item.on  { color: var(--accent); background: rgba(37,99,235,.1); border-color: rgba(37,99,235,.2); }
body.theme-light .mode-stripe.rest { background: rgba(0,0,0,.12); }
body.theme-light .sheet-overlay { background: rgba(0,0,0,.35); }
body.theme-light .bottom-sheet  { background: rgba(240,242,248,.97); }
body.theme-light .icon-btn { background: rgba(0,0,0,.06); border-color: rgba(0,0,0,.12); }
body.theme-light .wday     { color: var(--text2); }
body.theme-light .wday.on  { background: var(--accent); color: #fff; }
body.theme-light .wday.today { border-color: var(--accent); }
/* Onboarding — rgba белого невидимы на светлом фоне */
body.theme-light .ob-goal-opt,
body.theme-light .ob-sub-opt,
body.theme-light .ob-gender-btn,
body.theme-light .ob-act-opt,
body.theme-light .ob-eq-btn,
body.theme-light .ob-split-opt,
body.theme-light .ob-exp-opt  { background: rgba(0,0,0,.05); border-color: rgba(0,0,0,.1); }
body.theme-light .ob-goal-opt.sel,
body.theme-light .ob-sub-opt.sel,
body.theme-light .ob-gender-btn.sel,
body.theme-light .ob-act-opt.sel,
body.theme-light .ob-eq-btn.sel,
body.theme-light .ob-split-opt.sel,
body.theme-light .ob-exp-opt.sel { background: rgba(37,99,235,.12); border-color: var(--accent); }

/* ═══════════════════════════════════════════════════════════════
   BASE
═══════════════════════════════════════════════════════════════ */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; -webkit-tap-highlight-color:transparent; }
html,body { height:100%; overflow:hidden; background:var(--bg); color:var(--text); font-family:'Outfit','Segoe UI','SF Pro Display',-apple-system,sans-serif; font-size:15px; }

/* ═══════════════════════════════════════════════════════════════
   LAYOUT
═══════════════════════════════════════════════════════════════ */
#app { display:flex; flex-direction:column; height:100%; }

/* Header */
.app-header {
  height:var(--header-h); flex-shrink:0;
  display:flex; align-items:center; justify-content:space-between;
  padding:0 16px;
  background: rgba(9,9,15,.6);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom:0.5px solid rgba(255,255,255,.08);
  z-index:50;
}
.hdr-date-btn { background:none; border:none; color:var(--text); font-size:17px; font-weight:600; cursor:pointer; font-family:inherit; letter-spacing:-.3px; }
.hdr-right { display:flex; align-items:center; gap:8px; }
.hdr-wd { font-size:12px; color:var(--text3); }
.mode-stripe { height:3px; margin:6px 14px 0; border-radius:2px; transition:background .3s; }
.mode-stripe.gym   { background:#1D9E75; }
.mode-stripe.shift { background:#E67E22; }
.mode-stripe.rest  { background:rgba(255,255,255,.1); }
.mode-label { font-size:9px; font-weight:600; text-transform:uppercase; letter-spacing:.06em; padding:2px 14px 5px; }
.mode-label.gym   { color:#5DCAA5; }
.mode-label.shift { color:#EF9F27; }
.mode-label.rest  { color:var(--text3); }
.live-dot { width:6px; height:6px; border-radius:50%; background:var(--success); animation:pulse 2s infinite; }
.hdr-time { font-size:15px; font-weight:300; color:var(--text3); font-variant-numeric:tabular-nums; }
.icon-btn { width:32px; height:32px; border-radius:9px; background:var(--surface); border:0.5px solid var(--border); color:var(--text2); font-size:15px; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:all .15s; }
.icon-btn:active { transform:scale(.93); }
.icon-btn.on { background:rgba(46,117,182,.2); border-color:rgba(46,117,182,.4); color:#85B7EB; }

/* Week strip */
.week-strip { flex-shrink:0; display:grid; grid-template-columns:repeat(7,1fr); gap:3px; padding:7px 10px 6px; background:rgba(9,9,15,.5); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); border-bottom:0.5px solid rgba(255,255,255,.08); }
.week-nav-row { display:flex; align-items:center; justify-content:center; gap:8px; padding:5px 10px 6px; background:rgba(9,9,15,.5); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); border-bottom:0.5px solid rgba(255,255,255,.08); }
.week-nav-btn { width:32px; height:22px; border-radius:6px; background:rgba(255,255,255,.05); border:0.5px solid rgba(255,255,255,.1); color:var(--text3); font-size:14px; cursor:pointer; display:flex; align-items:center; justify-content:center; font-family:inherit; transition:all .15s; }
.week-nav-btn:active { opacity:.7; }
.week-today-btn { flex:1; max-width:180px; padding:3px 0; border-radius:8px; background:rgba(255,255,255,.05); border:0.5px solid rgba(255,255,255,.1); color:var(--text3); font-size:11px; font-weight:500; cursor:pointer; font-family:inherit; transition:all .2s; text-align:center; }
.week-today-btn.active { background:rgba(46,117,182,.2); border-color:rgba(46,117,182,.4); color:#85B7EB; }
.week-today-btn:active { opacity:.7; }

/* ── Универсальный крестик — без рамки, просто символ ── */
.btn-close-x {
  background:none; border:none; cursor:pointer; font-family:inherit;
  font-size:20px; font-weight:800; line-height:1; padding:4px 6px;
  color:rgba(255,255,255,.28); transition:color .15s;
  display:flex; align-items:center; justify-content:center;
}
.btn-close-x:hover { color:rgba(255,255,255,.55); }
.btn-close-x:active { color:rgba(255,255,255,.7); }
.dp { border-radius:8px; padding:5px 2px; text-align:center; border:0.5px solid var(--border); background:transparent; cursor:pointer; transition:all .15s; }
.dp.gym   { border-color:rgba(29,158,117,.4); background:rgba(29,158,117,.05); }
.dp.shift-day { border-color:rgba(230,126,34,.35); background:rgba(230,126,34,.04); }
.dp.cur   { background:rgba(46,117,182,.25); border-color:rgba(46,117,182,.6); }
.dp .dn   { font-size:8px; color:var(--text3); font-weight:500; text-transform:uppercase; }
.dp .dd   { font-size:12px; font-weight:600; color:var(--text2); margin:1px 0; }
.dp .dt   { font-size:8px; color:var(--success); font-weight:600; min-height:10px; }
.dp.cur .dn,.dp.cur .dd { color:var(--text); }

/* Main scroll area */
.main-scroll { flex:1; overflow-y:auto; -webkit-overflow-scrolling:touch; padding:12px 12px calc(var(--nav-h) + 12px); }
.main-scroll::-webkit-scrollbar { display:none; }

/* Bottom nav */
.bottom-nav {
  height:var(--nav-h); flex-shrink:0;
  position:fixed; bottom:0; left:0; right:0;
  background: rgba(9,9,15,.65);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border-top:0.5px solid rgba(255,255,255,.08);
  display:grid; grid-template-columns:repeat(5,1fr);
  z-index:50;
  padding-bottom:env(safe-area-inset-bottom);
}
.nav-item {
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:4px; cursor:pointer;
  padding:6px 10px; border-radius:22px;
  transition:all .28s cubic-bezier(.4,0,.2,1);
  color:rgba(255,255,255,.32);
  overflow:hidden; flex:1;
}
.nav-item:active { transform:scale(.92); }
.nav-item.on {
  background:rgba(46,117,182,.18);
  border:0.5px solid rgba(46,117,182,.3);
  color:#85B7EB;
  flex:none;
  flex-direction:row; gap:7px;
  padding:7px 16px;
}
.nav-svg { flex-shrink:0; transition:opacity .2s; }
.nav-lbl {
  font-size:10px; font-weight:600; color:#85B7EB;
  white-space:nowrap;
  max-width:0; overflow:hidden; opacity:0;
  transition:all .28s cubic-bezier(.4,0,.2,1);
  font-family:inherit;
}
.nav-item.on .nav-lbl { max-width:70px; opacity:1; }
/* убираем старые иконки */
.nav-icon { display:none; }

/* ═══════════════════════════════════════════════════════════════
   CARDS
═══════════════════════════════════════════════════════════════ */
.card { background:var(--bg2); border:0.5px solid var(--border); border-radius:var(--r); padding:14px 15px; margin-bottom:10px; }
.card-lbl { font-size:10px; font-weight:600; color:var(--text3); text-transform:uppercase; letter-spacing:.08em; margin-bottom:8px; }
.card-title { font-size:15px; font-weight:600; color:var(--text); margin-bottom:4px; }

/* Train card */
.train-card { border-left:3px solid var(--tc,var(--accent)); padding-left:13px; cursor:pointer; }
.train-card:active { background:var(--bg3); }
.train-muscles { display:flex; flex-wrap:wrap; gap:4px; margin:6px 0; }
.mtag { font-size:10px; padding:2px 8px; border-radius:6px; background:var(--surface); color:var(--text2); border:0.5px solid var(--border); }
.ex-row { display:flex; align-items:center; gap:7px; padding:5px 0; border-bottom:0.5px solid var(--border); font-size:13px; color:var(--text2); }
.ex-row:last-child { border-bottom:none; }
.ex-dot { width:4px; height:4px; border-radius:50%; background:var(--tc,var(--accent)); flex-shrink:0; }
.ex-sets { margin-left:auto; font-size:11px; color:var(--text3); }
.card-hint { font-size:11px; color:var(--text3); margin-top:8px; display:flex; align-items:center; gap:4px; }

/* Meals */
.meal-grid { display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.meal-card { background:var(--bg3); border:0.5px solid var(--border); border-radius:var(--rsm); padding:10px 11px; cursor:pointer; transition:all .15s; position:relative; }
.meal-card:active { transform:scale(.97); }
.meal-card.active { border-color:var(--accent); background:rgba(46,117,182,.1); }
.meal-time { font-size:9px; font-weight:600; color:var(--text3); text-transform:uppercase; margin-bottom:3px; }
.meal-food { font-size:12px; color:var(--text2); line-height:1.4; margin-bottom:4px; }
.meal-kcal { font-size:10px; color:var(--text3); }
/* Macros — компактная одна строка */
.macros-row { display:flex; align-items:center; justify-content:space-between; gap:0; margin-top:8px; }
.mac-box { flex:1; text-align:center; padding:4px 2px; position:relative; }
.mac-box:not(:last-child)::after { content:''; position:absolute; right:0; top:15%; height:70%; width:0.5px; background:var(--border); }
.mac-val { font-size:14px; font-weight:600; color:var(--text); }
.mac-val.kcal { font-size:20px; color:var(--accent); }
.mac-lbl { font-size:9px; color:var(--text3); margin-top:1px; text-transform:uppercase; letter-spacing:.04em; }

/* Water & sleep — компактная одна рамка */
.ws-compact-card { background:rgba(255,255,255,.06); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); border:0.5px solid rgba(255,255,255,.12); border-radius:12px; overflow:hidden; margin-bottom:10px; }
.ws-compact-row { display:flex; align-items:center; gap:8px; padding:8px 12px; }
.ws-compact-row + .ws-compact-row { border-top:0.5px solid var(--border); }
.ws-compact-icon { font-size:13px; width:18px; text-align:center; flex-shrink:0; }
.ws-compact-lbl { font-size:11px; color:var(--text3); width:28px; flex-shrink:0; }
.ws-compact-track { flex:1; height:3px; background:var(--bg3); border-radius:2px; overflow:hidden; }
.ws-compact-fill { height:100%; border-radius:2px; transition:width .3s; }
.ws-compact-val { font-size:11px; font-weight:600; color:var(--text2); width:44px; text-align:right; flex-shrink:0; }
.ws-compact-btns { display:flex; gap:3px; margin-left:6px; }
.ws-compact-btn { padding:3px 7px; border-radius:5px; border:0.5px solid var(--border); background:var(--surface); color:var(--text2); font-size:11px; cursor:pointer; font-family:inherit; transition:all .15s; }
.ws-compact-btn:active { opacity:.7; }

/* Sleep slider */
.sleep-slider { width:100%; -webkit-appearance:none; appearance:none; height:4px; border-radius:2px; background:var(--bg3); outline:none; cursor:pointer; margin:0; }
.sleep-slider::-webkit-slider-thumb { -webkit-appearance:none; appearance:none; width:22px; height:22px; border-radius:50%; background:#5DCAA5; cursor:pointer; border:2.5px solid rgba(29,158,117,.4); box-shadow:0 0 0 5px rgba(29,158,117,.12); }
.sleep-slider::-webkit-slider-runnable-track { height:4px; border-radius:2px; }
.sleep-slider:active::-webkit-slider-thumb { box-shadow:0 0 0 8px rgba(29,158,117,.18); }

/* Today nutrition ring card */
.today-nut-card { background:rgba(255,255,255,.06); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); border:0.5px solid rgba(255,255,255,.12); border-radius:var(--r); padding:12px 13px; margin-bottom:10px; cursor:pointer; transition:opacity .15s; }
.today-nut-card:active { opacity:.8; }
.today-nut-top { display:flex; align-items:center; gap:12px; margin-bottom:10px; }
.nut-ring-wrap { position:relative; flex-shrink:0; }
.nut-ring-label { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.nut-ring-pct { font-size:15px; font-weight:700; color:var(--text); }
.nut-ring-sub { font-size:8px; color:var(--text3); margin-top:1px; }
.nut-macros { flex:1; display:flex; flex-direction:column; gap:5px; }
.nut-macro-row { display:flex; align-items:center; gap:6px; }
.nut-macro-lbl { font-size:10px; color:var(--text3); width:36px; flex-shrink:0; }
.nut-macro-track { flex:1; height:3px; background:var(--bg3); border-radius:2px; overflow:hidden; }
.nut-macro-fill { height:100%; border-radius:2px; transition:width .3s; }
.nut-macro-val { font-size:10px; color:var(--text2); width:36px; text-align:right; flex-shrink:0; }
.next-meal-block { border-top:0.5px solid var(--border); padding-top:9px; }
.next-meal-lbl { font-size:9px; color:var(--text3); text-transform:uppercase; letter-spacing:.06em; margin-bottom:5px; }
.next-meal-row { display:flex; align-items:center; gap:8px; }
.next-meal-time { font-size:10px; color:#85B7EB; font-weight:600; background:rgba(46,117,182,.12); border:0.5px solid rgba(46,117,182,.25); border-radius:5px; padding:2px 7px; flex-shrink:0; }
.next-meal-name { font-size:12px; color:var(--text); font-weight:500; flex:1; }
.next-meal-kcal { font-size:10px; color:var(--text3); flex-shrink:0; }

/* Goals chips */
.goals-wrap { display:flex; flex-wrap:wrap; gap:6px; }
.gchip { display:flex; align-items:center; gap:5px; font-size:11px; padding:6px 12px; border-radius:20px; border:0.5px solid var(--border); background:var(--surface); color:var(--text2); cursor:pointer; user-select:none; transition:all .15s; }
.gchip:active { transform:scale(.95); }
.gchip.done { background:rgba(29,158,117,.15); border-color:rgba(29,158,117,.35); color:#5DCAA5; }
.gchip.weekly { border-color:rgba(201,162,39,.35); background:rgba(201,162,39,.08); color:rgba(250,220,100,.8); }
.gchip.weekly.done { background:rgba(29,158,117,.15); border-color:rgba(29,158,117,.35); color:#5DCAA5; }

/* Tasks */
.task-item { display:flex; align-items:flex-start; gap:10px; padding:9px 0; border-bottom:0.5px solid var(--border); }
.task-item:last-child { border-bottom:none; }
.task-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; margin-top:4px; }
.task-name { font-size:13px; color:var(--text); font-weight:500; }
.task-meta { font-size:11px; color:var(--text3); margin-top:2px; }

/* Shop tags */
.shop-tag { font-size:11px; padding:4px 10px; border-radius:8px; background:rgba(201,162,39,.1); border:0.5px solid rgba(201,162,39,.25); color:rgba(250,238,218,.75); }

/* Tip rows */
.tip-row { display:flex; gap:8px; align-items:flex-start; margin-bottom:8px; }
.tip-row:last-child { margin-bottom:0; }
.tip-i { font-size:14px; flex-shrink:0; }
.tip-t { font-size:13px; color:var(--text2); line-height:1.55; }

/* Rest card */
.rest-card { text-align:center; padding:20px 15px; }
.rest-title { font-size:16px; font-weight:600; color:var(--text2); margin-bottom:5px; }
.rest-sub   { font-size:12px; color:var(--text3); line-height:1.6; }

/* Divider */
.div { height:0.5px; background:var(--border); margin:4px 0 12px; }

/* ═══════════════════════════════════════════════════════════════
   BOTTOM SHEET (modal)
═══════════════════════════════════════════════════════════════ */
.sheet-overlay { position:fixed; inset:0; background:rgba(0,0,0,.65); backdrop-filter:blur(8px); z-index:100; opacity:0; pointer-events:none; transition:opacity .25s; }
.sheet-overlay.open { opacity:1; pointer-events:all; }
.bottom-sheet {
  position:fixed; left:0; right:0; bottom:0;
  background:rgba(12,12,20,.75);
  backdrop-filter:blur(30px);
  -webkit-backdrop-filter:blur(30px);
  border-radius:18px 18px 0 0;
  border-top:0.5px solid rgba(255,255,255,.12);
  z-index:101;
  transform:translateY(100%);
  transition:transform .32s cubic-bezier(.4,0,.2,1);
  max-height:90vh; display:flex; flex-direction:column;
  padding-bottom:env(safe-area-inset-bottom);
}
.bottom-sheet.open { transform:translateY(0); }
.sheet-handle { width:36px; height:4px; border-radius:2px; background:var(--border); margin:10px auto 0; flex-shrink:0; }
.sheet-header { padding:14px 18px 12px; border-bottom:0.5px solid var(--border); display:flex; align-items:center; justify-content:space-between; flex-shrink:0; }
.sheet-title { font-size:16px; font-weight:600; color:var(--text); }
.sheet-close { background:none; border:none; cursor:pointer; font-family:inherit; font-size:20px; font-weight:800; line-height:1; padding:4px 6px; color:rgba(255,255,255,.28); transition:color .15s; display:flex; align-items:center; justify-content:center; width:auto; height:auto; border-radius:0; }
.sheet-close:hover { color:rgba(255,255,255,.55); }
.train-page-close { background:none; border:none; cursor:pointer; font-family:inherit; font-size:20px; font-weight:800; line-height:1; padding:4px 6px; color:rgba(255,255,255,.28); transition:color .15s; }
.train-page-close:hover { color:rgba(255,255,255,.55); }
.sheet-body { overflow-y:auto; -webkit-overflow-scrolling:touch; flex:1; padding:14px 18px 20px; }
.sheet-body::-webkit-scrollbar { display:none; }

/* Training sheet tabs */
.sheet-tabs { display:flex; gap:5px; margin-bottom:14px; border-bottom:0.5px solid var(--border); padding-bottom:10px; }
.sheet-tab { font-size:12px; padding:5px 13px; border-radius:8px; border:0.5px solid var(--border); background:var(--surface); color:var(--text2); cursor:pointer; font-family:inherit; transition:all .15s; }
.sheet-tab.on { background:var(--accent); border-color:var(--accent); color:#fff; }

/* Exercise nav in sheet */
.ex-nav-list { display:flex; flex-direction:column; gap:5px; margin-bottom:12px; }
.ex-nav-item { display:flex; align-items:center; gap:8px; padding:9px 12px; border-radius:9px; border:0.5px solid var(--border); background:var(--surface); cursor:pointer; font-size:13px; color:var(--text2); transition:all .15s; }
.ex-nav-item.on { background:rgba(46,117,182,.15); border-color:rgba(46,117,182,.4); color:var(--text); }
.ex-nav-num { width:22px; height:22px; border-radius:50%; background:rgba(255,255,255,.1); font-size:10px; font-weight:700; display:flex; align-items:center; justify-content:center; flex-shrink:0; }

/* Exercise detail */
/* ── Exercise detail card (train sheet) ─────────────────────── */
.ex-detail { background:rgba(255,255,255,.04); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); border:0.5px solid rgba(255,255,255,.1); border-radius:16px; padding:16px; margin-bottom:12px; }
.ex-accent { height:2px; width:32px; background:linear-gradient(90deg,#1D9E75,#2E75B6); border-radius:2px; margin-bottom:12px; }
.ex-detail-name { font-size:20px; font-weight:800; color:var(--text); letter-spacing:-.4px; margin-bottom:3px; }
.ex-schema-pill { font-size:10px; font-weight:600; color:var(--accent2); text-transform:uppercase; letter-spacing:.08em; margin-bottom:12px; }
.block-lbl { font-size:8px; font-weight:600; color:var(--text3); text-transform:uppercase; letter-spacing:.1em; margin-bottom:8px; margin-top:14px; }

/* Stats grid */
.sets-grid { display:grid; grid-template-columns:repeat(3,1fr); background:rgba(0,0,0,.2); border-radius:11px; overflow:hidden; border:0.5px solid rgba(255,255,255,.08); margin-bottom:0; }
.set-box { padding:10px 4px; text-align:center; position:relative; }
.set-box:not(:last-child)::after { content:''; position:absolute; right:0; top:15%; height:70%; width:0.5px; background:rgba(255,255,255,.1); }
.set-val { font-size:17px; font-weight:800; color:var(--text); letter-spacing:-.3px; }
.set-lbl { font-size:8px; color:var(--text3); margin-top:2px; text-transform:uppercase; letter-spacing:.06em; }

/* Техника — единый блок */
.tech-block { background:rgba(0,0,0,.2); border:0.5px solid rgba(255,255,255,.08); border-radius:11px; overflow:hidden; }
.tech-block-item { display:flex; align-items:flex-start; gap:10px; padding:10px 12px; border-bottom:0.5px solid rgba(255,255,255,.05); }
.tech-block-item:last-child { border-bottom:none; }
.tech-block-num { font-size:11px; font-weight:700; color:rgba(29,158,117,.7); min-width:16px; flex-shrink:0; margin-top:1px; }
.tech-list { font-size:12px; color:var(--text2); line-height:1.5; }
.tech-list li { margin-left:14px; margin-bottom:3px; }

/* Tip / warn boxes */
.warn-box { display:flex; align-items:flex-start; gap:8px; background:rgba(230,126,34,.08); border:0.5px solid rgba(230,126,34,.25); border-radius:11px; padding:10px 12px; font-size:12px; color:rgba(250,200,100,.85); line-height:1.5; margin-top:10px; }
.tip-box  { display:flex; align-items:flex-start; gap:8px; background:rgba(201,162,39,.08); border:0.5px solid rgba(201,162,39,.2); border-radius:11px; padding:10px 12px; font-size:12px; color:rgba(250,220,100,.85); line-height:1.5; margin-top:10px; }

/* Альтернативы — горизонтальный скролл */
.alts-scroll { display:flex; gap:8px; overflow-x:auto; padding-bottom:2px; -webkit-overflow-scrolling:touch; }
.alts-scroll::-webkit-scrollbar { display:none; }
.alt-card { flex-shrink:0; background:rgba(255,255,255,.05); border:0.5px solid rgba(255,255,255,.1); border-radius:12px; padding:10px 12px; min-width:110px; max-width:140px; cursor:pointer; transition:all .15s; position:relative; overflow:hidden; }
.alt-card::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg,rgba(46,117,182,.6),rgba(29,158,117,.6)); }
.alt-card:active { transform:scale(.96); background:rgba(46,117,182,.1); }
.alt-card-name { font-size:11px; font-weight:600; color:rgba(255,255,255,.8); line-height:1.35; margin-bottom:7px; }
.alt-card-arrow { font-size:9px; font-weight:600; color:#85B7EB; text-transform:uppercase; letter-spacing:.05em; }
.alt-tag { display:none; } /* скрываем старые теги если где-то остались */
.alt-tag-clickable { display:none; }
.alts-wrap { display:none; } /* скрываем старый враппер */

/* ── Train fullscreen page ───────────────────────────────────── */
.train-page {
  position:fixed; inset:0; z-index:102;
  display:none; flex-direction:column;
  background:transparent;
  opacity:0; transform:scale(1.04);
  transition:opacity .38s cubic-bezier(.4,0,.2,1), transform .38s cubic-bezier(.4,0,.2,1);
  pointer-events:none;
}
.train-page.open { opacity:1; transform:scale(1); pointer-events:all; }
.train-page-hdr {
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 18px 10px; flex-shrink:0;
}
.train-page-close {
  font-size:20px; font-weight:800; color:rgba(255,255,255,.3);
  background:none; border:none; cursor:pointer; font-family:inherit;
  line-height:1; padding:4px; transition:color .15s;
}
.train-page-close:hover { color:rgba(255,255,255,.6); }
.train-page-title { font-size:16px; font-weight:800; color:var(--text); letter-spacing:-.3px; }
.train-page-tabs {
  display:flex; gap:6px; padding:0 16px 10px; flex-shrink:0; justify-content:center;
}
.train-page-tab {
  padding:6px 16px; border-radius:20px; font-size:11px; font-weight:600;
  border:0.5px solid rgba(255,255,255,.12); background:rgba(255,255,255,.06);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  color:rgba(255,255,255,.4); cursor:pointer; font-family:inherit; transition:all .2s;
}
.train-page-tab.on { background:rgba(29,158,117,.2); border-color:rgba(29,158,117,.45); color:#5DCAA5; }
.train-page-divider { height:0.5px; background:rgba(255,255,255,.08); margin:0 16px 4px; flex-shrink:0; }
.train-page-body {
  flex:1; overflow-y:auto; -webkit-overflow-scrolling:touch;
  padding:10px 14px calc(var(--nav-h) + 16px);
}
.train-page-body::-webkit-scrollbar { display:none; }

/* Когда train-page открыт — основной контент скрывается */
body.train-open #app { opacity:0; transform:scale(.96); transition:opacity .35s ease, transform .35s ease; pointer-events:none; }
.wc-list { display:flex; flex-direction:column; gap:7px; }
.wc-item { display:flex; gap:10px; padding:9px 11px; background:var(--surface); border-radius:9px; border:0.5px solid var(--border); }
.wc-num { width:22px; height:22px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:10px; font-weight:700; flex-shrink:0; }
.wc-warm .wc-num { background:rgba(241,196,15,.15); color:#F1C40F; }
.wc-cool .wc-num { background:rgba(46,117,182,.15); color:#85B7EB; }
.wc-name { font-size:13px; font-weight:500; color:var(--text); margin-bottom:3px; }
.wc-desc { font-size:12px; color:var(--text2); line-height:1.5; }
.wc-note { margin-top:10px; padding:10px 12px; border-radius:9px; font-size:12px; line-height:1.6; }

/* Meal detail sheet */
.bju-row { display:grid; grid-template-columns:repeat(5,1fr); gap:5px; margin-bottom:12px; }
.bju-box { background:var(--surface); border-radius:8px; padding:7px 4px; text-align:center; border:0.5px solid var(--border); }
.bju-v { font-size:13px; font-weight:600; color:var(--text); }
.bju-l { font-size:9px; color:var(--text3); margin-top:2px; text-transform:uppercase; }
.recipe-list { font-size:13px; color:var(--text2); line-height:1.7; }
.recipe-list li { margin-left:14px; margin-bottom:3px; }
.alt-row { display:flex; flex-wrap:wrap; gap:5px; }

/* Calendar sheet */
.cal-wds { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; margin-bottom:5px; }
.cal-wd { font-size:9px; font-weight:600; color:var(--text3); text-align:center; padding:3px 0; }
.cal-days-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:3px; }
.cd { aspect-ratio:1; border-radius:7px; display:flex; flex-direction:column; align-items:center; justify-content:center; font-size:12px; cursor:pointer; position:relative; color:var(--text2); border:0.5px solid transparent; transition:all .15s; }
.cd:active { transform:scale(.9); }
.cd.om  { color:var(--text3); }
.cd.td  { font-weight:700; color:var(--text); }
.cd.td::after { content:''; position:absolute; bottom:2px; width:4px; height:4px; border-radius:50%; background:var(--accent); }
.cd.gym-d { color:#5DCAA5; font-weight:600; background:rgba(29,158,117,.08); border-color:rgba(29,158,117,.2); }
.cd.rest-d { color:var(--text2); }
.cd.sel { background:rgba(46,117,182,.28); border-color:rgba(46,117,182,.6); color:var(--text); }
.cd.shift-s { background:rgba(230,126,34,.2); border-color:rgba(230,126,34,.45); color:#EF9F27; font-weight:600; }
.cd.shift-e { background:rgba(192,57,43,.18); border-color:rgba(192,57,43,.4); color:#E74C3C; font-weight:600; }
.cd.in-sh   { background:rgba(230,126,34,.07); }
.cd-dot { width:5px; height:5px; border-radius:50%; position:absolute; top:3px; right:3px; }
.cd-done { width:5px; height:5px; border-radius:50%; position:absolute; top:3px; left:3px; background:var(--accent2); }
.cd-tasks { display:flex; gap:2px; justify-content:center; position:absolute; bottom:2px; }
.cd-tdot  { width:3px; height:3px; border-radius:50%; background:rgba(201,162,39,.8); }
.cal-leg { margin-top:12px; display:flex; flex-wrap:wrap; gap:8px; }
.cal-lr  { display:flex; align-items:center; gap:5px; font-size:11px; color:var(--text2); }
.cal-ld  { width:8px; height:8px; border-radius:50%; flex-shrink:0; }

/* Week strip enhanced */
.dp { border-radius:8px; padding:5px 2px 4px; text-align:center; border:0.5px solid transparent; background:transparent; cursor:pointer; transition:all .15s; position:relative; }
.dp.gym   { border-color:rgba(29,158,117,.3); background:rgba(29,158,117,.06); }
.dp.shift-day { border-color:rgba(230,126,34,.35); background:rgba(230,126,34,.04); }
.dp.rest  { border-color:rgba(255,255,255,.05); }
.dp.cur   { background:rgba(46,117,182,.2); border-color:rgba(46,117,182,.5); }
.dp .dn   { font-size:8px; color:var(--text3); font-weight:500; text-transform:uppercase; }
.dp .dd   { font-size:13px; font-weight:600; color:var(--text2); margin:1px 0; }
.dp.cur .dn,.dp.cur .dd { color:var(--text); }
.dp-dot { width:4px; height:4px; border-radius:50%; margin:1px auto 0; }
.dp-done-dot { position:absolute; top:2px; right:2px; width:4px; height:4px; border-radius:50%; background:var(--accent2); }

/* Fullscreen calendar overlay */
.cal-fullscreen { position:fixed; inset:0; z-index:300; background:var(--bg); display:flex; flex-direction:column; animation:fadeIn .2s ease; }
@keyframes fadeIn { from{opacity:0;transform:scale(.97)} to{opacity:1;transform:scale(1)} }
.cal-fs-header { display:flex; align-items:center; justify-content:space-between; padding:16px 16px 8px; border-bottom:0.5px solid var(--border); }
.cal-fs-title { font-size:18px; font-weight:700; color:var(--text); }
.cal-fs-body { flex:1; overflow-y:auto; padding:12px; }
.cd-fs { aspect-ratio:auto; min-height:52px; border-radius:10px; display:flex; flex-direction:column; align-items:center; justify-content:flex-start; padding:5px 3px; font-size:13px; cursor:pointer; position:relative; color:var(--text2); border:0.5px solid transparent; transition:all .15s; gap:2px; }
.cd-fs .cd-num { font-size:14px; font-weight:600; }
.cd-fs .cd-tag { font-size:8px; font-weight:600; text-align:center; line-height:1.2; }
.cd-fs.gym-d { background:rgba(29,158,117,.1); border-color:rgba(29,158,117,.3); color:#5DCAA5; }
.cd-fs.rest-d { background:rgba(255,255,255,.03); }
.cd-fs.shift-s,.cd-fs.in-sh { background:rgba(230,126,34,.1); border-color:rgba(230,126,34,.3); color:#EF9F27; }
.cd-fs.sel { background:rgba(46,117,182,.3); border-color:rgba(46,117,182,.7); color:#fff; }
.cd-fs.td { border-color:rgba(46,117,182,.4); }
.cd-fs.om { opacity:.35; }

/* Checklist sheet */
.cl-field-row { display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.cl-field-lbl { font-size:13px; color:var(--text2); min-width:110px; }
.cl-inp { flex:1; background:var(--surface); border:0.5px solid var(--border); border-radius:9px; padding:9px 12px; color:var(--text); font-size:14px; font-family:inherit; outline:none; }
.cl-inp:focus { border-color:var(--accent); }
.cl-inp::placeholder { color:var(--text3); }
.cl-hist-row { display:flex; gap:8px; padding:8px 10px; background:var(--surface); border-radius:9px; margin-bottom:5px; font-size:12px; border:0.5px solid var(--border); }
.cl-hist-date { color:var(--text3); min-width:72px; flex-shrink:0; }
.cl-hist-vals { display:flex; gap:8px; flex-wrap:wrap; }
.cl-hist-val  { color:var(--text2); }

/* Progress sheet */
/* ── Progress screen ─────────────────────────────────── */
.prog-top-tabs { display:flex; gap:6px; margin-bottom:14px; }
.prog-top-tab { flex:1; padding:7px 4px; border-radius:9px; border:0.5px solid var(--border); background:var(--surface); color:var(--text3); font-size:12px; font-weight:500; cursor:pointer; font-family:inherit; text-align:center; transition:all .15s; }
.prog-top-tab.on { background:var(--accent); border-color:var(--accent); color:#fff; }

.prog-day-tabs { display:flex; gap:4px; margin-bottom:12px; overflow-x:auto; padding-bottom:4px; }
.prog-day-tabs::-webkit-scrollbar { display:none; }
.prog-dtab { font-size:11px; padding:4px 12px; border-radius:7px; border:0.5px solid var(--border); background:var(--surface); color:var(--text3); cursor:pointer; font-family:inherit; white-space:nowrap; transition:all .15s; }
.prog-dtab.on { border-color:var(--pd-col); background:rgba(0,0,0,.2); color:var(--pd-col); }

/* Exercise card */
.prog-ex { background:var(--surface); border:0.5px solid var(--border); border-radius:12px; padding:13px 13px 10px; margin-bottom:10px; }
.prog-ex-hdr { display:flex; align-items:center; gap:8px; margin-bottom:8px; }
.prog-ex-name { font-size:13px; font-weight:600; color:var(--text); flex:1; padding-left:8px; border-left:3px solid var(--accent); }
.prog-ex-schema { font-size:10px; color:var(--text3); }
.prog-ex-suggest { font-size:11px; color:var(--accent2); background:rgba(29,158,117,.1); border:0.5px solid rgba(29,158,117,.25); border-radius:7px; padding:5px 9px; margin-bottom:8px; display:flex; align-items:center; gap:5px; }

/* Set grid */
.prog-sets-grid { display:grid; gap:6px; }
.prog-set-row { display:grid; grid-template-columns:32px 1fr 1fr auto; gap:6px; align-items:center; }
.prog-set-num { font-size:11px; color:var(--text3); text-align:center; font-weight:600; }
.prog-inp { width:100%; background:var(--bg3); border:0.5px solid var(--border); border-radius:8px; padding:8px 6px; text-align:center; color:var(--text); font-size:15px; font-family:inherit; outline:none; transition:border-color .15s; }
.prog-inp:focus { border-color:var(--accent); }
.prog-inp::placeholder { color:var(--text3); font-size:11px; }
.prog-inp.done { border-color:var(--accent2); background:rgba(29,158,117,.08); }
.prog-set-done-btn { width:34px; height:34px; border-radius:8px; border:0.5px solid var(--border); background:var(--surface); color:var(--text3); font-size:16px; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:all .15s; font-family:inherit; }
.prog-set-done-btn.done { background:var(--accent2); border-color:var(--accent2); color:#fff; }
.prog-best-row { display:flex; justify-content:space-between; align-items:center; margin-top:6px; padding-top:6px; border-top:0.5px solid var(--border); }
.prog-best-lbl { font-size:10px; color:var(--text3); }
.prog-best-val { font-size:11px; color:var(--accent2); font-weight:600; }

/* Rest timer */
.rest-timer-bar { position:fixed; bottom:calc(var(--nav-h) + 10px); left:12px; right:12px; z-index:150; background:var(--bg2); border:0.5px solid var(--accent); border-radius:14px; padding:12px 16px; display:flex; align-items:center; gap:12px; box-shadow:0 4px 20px rgba(0,0,0,.4); animation:slideUp .2s ease; }
@keyframes slideUp { from{transform:translateY(20px);opacity:0} to{transform:translateY(0);opacity:1} }
.rest-timer-count { font-size:28px; font-weight:700; color:var(--accent); min-width:52px; }
.rest-timer-bar-track { flex:1; height:4px; background:var(--surface); border-radius:2px; overflow:hidden; }
.rest-timer-bar-fill { height:100%; background:var(--accent); border-radius:2px; transition:width .5s linear; }
.rest-timer-skip { padding:6px 14px; border-radius:8px; border:0.5px solid var(--border); background:var(--surface); color:var(--text3); font-size:12px; cursor:pointer; font-family:inherit; }

/* Workout summary */
.prog-summary { background:linear-gradient(135deg,rgba(46,117,182,.15),rgba(29,158,117,.1)); border:0.5px solid rgba(46,117,182,.3); border-radius:12px; padding:14px; margin-bottom:12px; }
.prog-summary-row { display:flex; justify-content:space-around; }
.prog-summary-box { text-align:center; }
.prog-summary-val { font-size:22px; font-weight:700; color:var(--accent); }
.prog-summary-lbl { font-size:10px; color:var(--text3); margin-top:2px; }

/* History */
.prog-hist-item { display:flex; gap:10px; padding:9px 11px; background:var(--surface); border-radius:9px; margin-bottom:6px; border:0.5px solid var(--border); font-size:12px; align-items:flex-start; }
.prog-hist-date { color:var(--text3); min-width:70px; flex-shrink:0; font-size:11px; }
.prog-hist-sets { color:var(--text2); flex:1; line-height:1.5; }
.prog-hist-vol { font-size:11px; color:var(--accent2); font-weight:600; white-space:nowrap; }

/* Body weight chart */
.bw-chart-wrap { position:relative; height:90px; margin:8px 0 4px; }
.bw-chart-svg { width:100%; height:100%; overflow:visible; }
.bw-input-row { display:grid; grid-template-columns:1fr auto; gap:8px; align-items:center; margin-top:10px; }

/* Strength chart */
.str-chart-wrap { position:relative; height:80px; margin:8px 0 4px; }
.str-ex-select { width:100%; background:var(--bg3); border:0.5px solid var(--border); border-radius:9px; padding:7px 10px; color:var(--text); font-size:13px; font-family:inherit; outline:none; margin-bottom:10px; }

/* Settings sheet */
.set-section { margin-bottom:18px; }
.set-sec-lbl { font-size:10px; font-weight:600; color:var(--text3); text-transform:uppercase; letter-spacing:.08em; margin-bottom:8px; }
.set-row { display:flex; gap:6px; flex-wrap:wrap; }
.set-btn { font-size:13px; padding:7px 16px; border-radius:9px; border:0.5px solid var(--border); background:var(--surface); color:var(--text2); cursor:pointer; font-family:inherit; transition:all .15s; }
.set-btn:active { transform:scale(.95); }
.set-btn.on { background:var(--accent); border-color:var(--accent); color:#fff; }
.theme-btn { width:36px; height:36px; border-radius:50%; border:2.5px solid transparent; cursor:pointer; transition:all .15s; flex-shrink:0; }
.theme-btn.on { border-color:var(--text); transform:scale(1.12); }
.slider-row { display:flex; align-items:center; gap:10px; margin-bottom:8px; }
/* Cardio sheet buttons */
.cardio-type-btn { padding:7px 13px; border-radius:20px; border:0.5px solid var(--border); background:var(--surface); color:var(--text2); font-size:13px; cursor:pointer; font-family:inherit; transition:all .15s; white-space:nowrap; }
.cardio-type-btn.on { background:rgba(46,117,182,.15); border-color:var(--accent); color:var(--accent); font-weight:600; }
.cardio-zone-btn { flex:1; padding:9px 4px; border-radius:9px; border:0.5px solid var(--border); background:var(--surface); color:var(--text2); font-size:12px; font-weight:600; cursor:pointer; font-family:inherit; transition:all .15s; text-align:center; }
.cardio-zone-btn.on { background:var(--accent); border-color:var(--accent); color:#fff; }
/* Cardio info sheet */
.cardio-info-block { padding:14px 0; border-bottom:0.5px solid var(--border); }
.cardio-info-title { font-size:13px; font-weight:700; color:var(--text); margin-bottom:10px; }
.cardio-info-text  { font-size:13px; color:var(--text2); line-height:1.5; }
.cardio-info-text b { color:var(--text); }
.cardio-info-row   { display:flex; align-items:flex-start; gap:9px; margin-bottom:7px; font-size:13px; color:var(--text2); line-height:1.4; }
.cardio-info-ok    { font-size:13px; color:var(--success); font-weight:700; flex-shrink:0; margin-top:1px; }
.cardio-info-warn  { font-size:13px; color:var(--warn); font-weight:700; flex-shrink:0; margin-top:1px; }
.cardio-info-bad   { font-size:13px; color:#E74C3C; font-weight:700; flex-shrink:0; margin-top:1px; }
.cardio-info-zone  { display:flex; gap:11px; margin-bottom:12px; align-items:flex-start; font-size:13px; color:var(--text2); line-height:1.4; }
.cardio-info-zbadge { font-size:11px; font-weight:700; padding:3px 9px; border-radius:20px; flex-shrink:0; margin-top:1px; }
.cardio-info-sub   { font-size:12px; color:var(--text3); }
.slider-lbl { font-size:12px; color:var(--text2); min-width:100px; }
.sslider { flex:1; cursor:pointer; height:4px; accent-color:var(--accent); }
.sslider-val { font-size:11px; color:var(--text3); min-width:32px; text-align:right; }

/* Task add form */
.task-form-inp { width:100%; background:var(--surface); border:0.5px solid var(--border); border-radius:9px; padding:10px 13px; color:var(--text); font-size:14px; font-family:inherit; outline:none; margin-bottom:10px; }
.task-form-inp:focus { border-color:var(--accent); }
textarea.task-form-inp { resize:vertical; min-height:70px; }

/* Buttons */
.btn-primary { padding:12px 22px; border-radius:11px; background:var(--accent); border:none; color:#fff; font-size:14px; font-weight:600; cursor:pointer; font-family:inherit; transition:opacity .15s; width:100%; }
.btn-primary:active { opacity:.8; }
.btn-secondary { padding:10px 18px; border-radius:11px; background:var(--surface); border:0.5px solid var(--border); color:var(--text2); font-size:13px; cursor:pointer; font-family:inherit; }

/* ═══════════════════════════════════════════════════════════════
   SCREENS
═══════════════════════════════════════════════════════════════ */
.screen { display:none; }
.screen.active { display:block; }

/* Countdown */
.countdown-bar { background:var(--bg3); border-radius:10px; padding:8px 12px; margin-bottom:10px; display:flex; justify-content:space-between; align-items:center; font-size:12px; }
.cd-bar-lbl { color:var(--text3); }
.cd-bar-val { color:var(--accent); font-weight:600; }

/* Shop tags wrap */
.shop-wrap { display:flex; flex-wrap:wrap; gap:6px; }

/* Animations */
@keyframes slideUp   { from{opacity:0;transform:translateY(12px)} to{opacity:1;transform:translateY(0)} }
@keyframes fadeIn    { from{opacity:0} to{opacity:1} }
@keyframes pulse     { 0%,100%{opacity:1} 50%{opacity:.4} }
@keyframes popIn     { 0%{opacity:0;transform:scale(.94)} 60%{transform:scale(1.02)} 100%{opacity:1;transform:scale(1)} }

.screen.active > * { animation:slideUp .28s cubic-bezier(.4,0,.2,1); }
.card { animation:fadeIn .2s ease; }
/* ═══════════════════════════════════════════════════════════════
   ONBOARDING — NEW DESIGN v3.9
═══════════════════════════════════════════════════════════════ */
#onboarding {
  position:fixed; inset:0; z-index:200;
  background: radial-gradient(ellipse at 15% 15%, rgba(29,158,117,.28) 0%, transparent 55%),
              radial-gradient(ellipse at 85% 65%, rgba(46,117,182,.22) 0%, transparent 55%),
              radial-gradient(ellipse at 50% 100%, rgba(100,60,160,.18) 0%, transparent 50%),
              #09090f;
  display:flex; flex-direction:column;
  transition:opacity .35s cubic-bezier(.4,0,.2,1), transform .35s cubic-bezier(.4,0,.2,1);
  font-family:'Outfit','Segoe UI',sans-serif;
}
#onboarding.hidden { opacity:0; pointer-events:none; transform:scale(.97); }

/* Progress bar */
.ob-progress-wrap { display:flex; gap:4px; padding:18px 24px 0; flex-shrink:0; }
.ob-step-dot { height:3px; border-radius:2px; flex:1; background:rgba(255,255,255,.1); transition:background .3s; }
.ob-step-dot.done { background:#1D9E75; }
.ob-step-dot.active { background:rgba(29,158,117,.5); }

/* Scrollable body */
.ob-body { flex:1; overflow-y:auto; -webkit-overflow-scrolling:touch; padding:22px 24px 8px; }
.ob-body::-webkit-scrollbar { display:none; }

/* Screen transitions */
.ob-screen { display:none; }
.ob-screen.active { display:block; animation:obSlideUp .32s cubic-bezier(.22,1,.36,1); }
@keyframes obSlideUp { from { opacity:0; transform:translateY(22px); } to { opacity:1; transform:translateY(0); } }
.ob-screen.slide-back { animation:obSlideDown .32s cubic-bezier(.22,1,.36,1); }
@keyframes obSlideDown { from { opacity:0; transform:translateY(-16px); } to { opacity:1; transform:translateY(0); } }

/* Typography */
.ob-title { font-size:24px; font-weight:700; color:#fff; letter-spacing:-.5px; line-height:1.2; margin-bottom:5px; }
.ob-sub { font-size:13px; color:rgba(255,255,255,.38); line-height:1.55; margin-bottom:18px; }
.ob-section-row { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.ob-section-lbl { font-size:10px; color:rgba(255,255,255,.28); text-transform:uppercase; letter-spacing:.6px; }
.ob-section-hint { font-size:11px; color:rgba(255,255,255,.28); font-style:italic; }

/* Goal options */
.ob-goal-list { display:flex; flex-direction:column; gap:7px; margin-bottom:16px; }
.ob-goal-opt { border-radius:14px; overflow:hidden; border:0.5px solid rgba(255,255,255,.09); background:rgba(255,255,255,.04); cursor:pointer; transition:border-color .25s,background .25s; -webkit-tap-highlight-color:transparent; }
.ob-goal-opt:active { transform:scale(.985); }
.ob-goal-opt.ob-sel-green { background:rgba(29,158,117,.12); border-color:rgba(29,158,117,.45); }
.ob-goal-opt.ob-sel-orange { background:rgba(230,126,34,.1); border-color:rgba(230,126,34,.4); }
.ob-goal-opt.ob-sel-blue { background:rgba(46,117,182,.1); border-color:rgba(46,117,182,.4); }
.ob-goal-head { display:flex; align-items:center; gap:10px; padding:12px 14px; }
.ob-goal-icon { font-size:18px; flex-shrink:0; width:26px; text-align:center; }
.ob-goal-body { flex:1; }
.ob-goal-name { color:#fff; font-size:13px; font-weight:600; }
.ob-goal-desc { color:rgba(255,255,255,.38); font-size:10px; margin-top:1px; }
.ob-goal-check { width:18px; height:18px; border-radius:50%; border:1.5px solid rgba(255,255,255,.2); flex-shrink:0; display:flex; align-items:center; justify-content:center; transition:all .2s; }
.ob-goal-check.on-green { background:#1D9E75; border-color:#1D9E75; }
.ob-goal-check.on-orange { background:#E67E22; border-color:#E67E22; }
.ob-goal-check.on-blue { background:#2E75B6; border-color:#2E75B6; }
.ob-goal-check.on-green::after,.ob-goal-check.on-orange::after,.ob-goal-check.on-blue::after { content:''; display:block; width:5px; height:3px; border-left:1.5px solid #fff; border-bottom:1.5px solid #fff; transform:rotate(-45deg) translate(1px,-1px); }
.ob-goal-extra { max-height:0; overflow:hidden; transition:max-height .4s cubic-bezier(.22,1,.36,1); }
.ob-goal-extra.open { max-height:220px; }
.ob-goal-extra-inner { padding:0 14px 12px; border-top:0.5px solid rgba(255,255,255,.07); }
.ob-goal-extra-text { color:rgba(255,255,255,.45); font-size:12px; line-height:1.65; padding:10px 0 8px; }

/* Sub-options (tempo) */
.ob-sub-opts { display:flex; flex-direction:column; gap:5px; }
.ob-sub-opt { display:flex; align-items:center; gap:9px; padding:9px 11px; border-radius:10px; background:rgba(255,255,255,.04); border:0.5px solid rgba(255,255,255,.08); cursor:pointer; transition:all .2s; -webkit-tap-highlight-color:transparent; }
.ob-sub-opt.ob-sub-sel-green { background:rgba(29,158,117,.15); border-color:rgba(29,158,117,.45); }
.ob-sub-opt.ob-sub-sel-orange { background:rgba(230,126,34,.12); border-color:rgba(230,126,34,.4); }
.ob-sub-dot { width:7px; height:7px; border-radius:50%; flex-shrink:0; }
.ob-sub-body { flex:1; }
.ob-sub-name { color:#fff; font-size:12px; font-weight:600; }
.ob-sub-desc { color:rgba(255,255,255,.38); font-size:10px; margin-top:1px; }
.ob-sub-check { width:14px; height:14px; border-radius:50%; border:1px solid rgba(255,255,255,.2); flex-shrink:0; transition:all .2s; }
.ob-sub-check.on-green { background:#1D9E75; border-color:#1D9E75; }
.ob-sub-check.on-orange { background:#E67E22; border-color:#E67E22; }

/* Params step */
.ob-gender-row { display:flex; gap:8px; margin-bottom:12px; }
.ob-gender-btn { flex:1; padding:10px; border-radius:11px; background:rgba(255,255,255,.04); border:0.5px solid rgba(255,255,255,.09); color:rgba(255,255,255,.5); font-family:inherit; font-size:13px; font-weight:500; cursor:pointer; text-align:center; transition:all .2s; -webkit-tap-highlight-color:transparent; }
.ob-gender-btn.ob-gender-sel { background:rgba(29,158,117,.14); border-color:rgba(29,158,117,.4); color:#fff; }
.ob-fields-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:12px; }
.ob-field-card { background:rgba(255,255,255,.04); border:0.5px solid rgba(255,255,255,.09); border-radius:11px; padding:10px 13px; cursor:pointer; transition:border-color .2s; }
.ob-field-card:focus-within { border-color:rgba(29,158,117,.5); }
.ob-field-lbl { font-size:9px; color:rgba(255,255,255,.3); text-transform:uppercase; letter-spacing:.5px; margin-bottom:4px; }
.ob-field-inp { width:100%; background:transparent; border:none; outline:none; color:#fff; font-family:inherit; font-size:20px; font-weight:700; padding:0; }
.ob-field-inp::placeholder { color:rgba(255,255,255,.2); font-size:16px; font-weight:400; }
.ob-field-unit { font-size:10px; color:rgba(255,255,255,.35); font-weight:400; }

/* BMI card */
.ob-bmi-card { border-radius:14px; padding:14px 16px; border:0.5px solid rgba(46,117,182,.35); background:rgba(46,117,182,.1); display:flex; flex-direction:column; gap:10px; margin-bottom:4px; transition:all .4s; }
.ob-bmi-top { display:flex; align-items:flex-end; gap:10px; }
.ob-bmi-val { font-size:48px; font-weight:800; letter-spacing:-2px; line-height:1; color:#2E75B6; }
.ob-bmi-right { padding-bottom:6px; }
.ob-bmi-cat { font-size:15px; font-weight:700; color:#fff; }
.ob-bmi-range { font-size:11px; color:rgba(255,255,255,.38); margin-top:2px; }
.ob-bmi-scale-wrap { position:relative; }
.ob-bmi-scale { height:6px; border-radius:3px; background:rgba(255,255,255,.08); overflow:hidden; }
.ob-bmi-scale-fill { height:100%; border-radius:3px; transition:width .5s cubic-bezier(.22,1,.36,1); }
.ob-bmi-scale-labels { display:flex; justify-content:space-between; margin-top:4px; }
.ob-bmi-scale-lbl { font-size:9px; color:rgba(255,255,255,.25); }
.ob-bmi-comment { font-size:12px; color:rgba(255,255,255,.5); line-height:1.65; border-top:0.5px solid rgba(255,255,255,.07); padding-top:10px; }
.ob-bmi-comment strong { color:rgba(255,255,255,.8); font-weight:600; }

/* Activity options */
.ob-act-list { display:flex; flex-direction:column; gap:6px; margin-bottom:16px; }
.ob-act-opt { display:flex; align-items:center; gap:10px; padding:11px 13px; border-radius:12px; background:rgba(255,255,255,.04); border:0.5px solid rgba(255,255,255,.09); cursor:pointer; transition:all .2s; -webkit-tap-highlight-color:transparent; }
.ob-act-opt:active { transform:scale(.985); }
.ob-act-opt.ob-sel { background:rgba(29,158,117,.12); border-color:rgba(29,158,117,.4); }
.ob-act-icon { font-size:18px; width:26px; text-align:center; flex-shrink:0; }
.ob-act-body { flex:1; }
.ob-act-name { color:#fff; font-size:13px; font-weight:600; }
.ob-act-desc { color:rgba(255,255,255,.35); font-size:10px; margin-top:1px; }
.ob-act-check { width:17px; height:17px; border-radius:50%; border:1.5px solid rgba(255,255,255,.2); flex-shrink:0; transition:all .2s; }
.ob-act-check.on { background:#1D9E75; border-color:#1D9E75; }
.ob-act-check.on::after { content:''; display:block; width:5px; height:3px; border-left:1.5px solid #fff; border-bottom:1.5px solid #fff; transform:rotate(-45deg) translate(1px,-1px); }

/* Chips */
.ob-chips { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:4px; }
.ob-chip { padding:6px 12px; border-radius:20px; font-size:12px; font-weight:500; border:0.5px solid rgba(255,255,255,.1); background:rgba(255,255,255,.04); color:rgba(255,255,255,.55); cursor:pointer; transition:all .2s; -webkit-tap-highlight-color:transparent; }
.ob-chip:active { transform:scale(.95); }
.ob-chip.selected { background:rgba(29,158,117,.15); border-color:rgba(29,158,117,.45); color:#fff; }
.ob-chip.sel-danger { background:rgba(231,76,60,.1); border-color:rgba(231,76,60,.35); color:#E74C3C; }

/* Training level */
.ob-level-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; margin-bottom:16px; }
.ob-lvl-card { padding:14px 10px; border-radius:14px; background:rgba(255,255,255,.04); border:0.5px solid rgba(255,255,255,.09); text-align:center; cursor:pointer; transition:all .2s; -webkit-tap-highlight-color:transparent; }
.ob-lvl-card:active { transform:scale(.97); }
.ob-lvl-card.ob-sel { background:rgba(29,158,117,.14); border-color:rgba(29,158,117,.45); }
.ob-lvl-bars { display:flex; gap:3px; justify-content:center; margin-bottom:10px; }
.ob-lvl-bar { width:6px; border-radius:2px; background:rgba(255,255,255,.15); }
.ob-lvl-bar.on { background:#1D9E75; }
.ob-lvl-name { color:#fff; font-size:12px; font-weight:700; margin-bottom:3px; }
.ob-lvl-desc { color:rgba(255,255,255,.35); font-size:9px; line-height:1.4; }

/* Frequency */
.ob-freq-row { display:flex; gap:6px; margin-bottom:10px; }
.ob-freq-btn { flex:1; padding:12px 4px; border-radius:12px; background:rgba(255,255,255,.04); border:0.5px solid rgba(255,255,255,.09); text-align:center; cursor:pointer; transition:all .2s; -webkit-tap-highlight-color:transparent; }
.ob-freq-btn:active { transform:scale(.95); }
.ob-freq-btn.ob-sel { background:rgba(29,158,117,.14); border-color:rgba(29,158,117,.45); }
.ob-freq-num { color:#fff; font-size:18px; font-weight:800; line-height:1; }
.ob-freq-lbl { color:rgba(255,255,255,.3); font-size:9px; margin-top:3px; }
.ob-freq-btn.ob-sel .ob-freq-lbl { color:rgba(29,158,117,.8); }

/* Freq tooltip */
.ob-tip-row { display:flex; align-items:center; justify-content:flex-end; margin-bottom:8px; }
.ob-tip-btn { font-size:11px; color:rgba(29,158,117,.7); cursor:pointer; display:flex; align-items:center; gap:4px; background:none; border:none; font-family:inherit; }
.ob-tip-icon { width:15px; height:15px; border-radius:50%; border:1px solid rgba(29,158,117,.5); display:flex; align-items:center; justify-content:center; font-size:9px; color:rgba(29,158,117,.8); }
.ob-freq-tooltip { max-height:0; overflow:hidden; transition:max-height .4s cubic-bezier(.22,1,.36,1); margin-bottom:0; }
.ob-freq-tooltip.open { max-height:300px; margin-bottom:10px; }
.ob-freq-tooltip-inner { background:rgba(255,255,255,.04); border:0.5px solid rgba(255,255,255,.09); border-radius:12px; padding:12px 14px; display:flex; flex-direction:column; gap:6px; }
.ob-freq-tip-row { display:flex; gap:10px; align-items:flex-start; }
.ob-freq-tip-num { font-size:13px; font-weight:700; color:#1D9E75; min-width:24px; }
.ob-freq-tip-text { font-size:11px; color:rgba(255,255,255,.45); line-height:1.5; }
.ob-freq-tip-text strong { color:rgba(255,255,255,.75); font-weight:600; }

/* Hint card (dynamic) */
.ob-hint-card { background:rgba(29,158,117,.08); border:0.5px solid rgba(29,158,117,.2); border-radius:12px; padding:11px 14px; display:flex; gap:10px; align-items:flex-start; }
.ob-hint-dot { width:6px; height:6px; border-radius:50%; background:#1D9E75; flex-shrink:0; margin-top:4px; }
.ob-hint-text { color:rgba(255,255,255,.5); font-size:12px; line-height:1.6; }
.ob-hint-text strong { color:rgba(255,255,255,.85); font-weight:600; }

/* Focus zones grid */
.ob-zones-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:7px; margin-bottom:16px; }
.ob-zone-card { padding:12px 8px; border-radius:12px; background:rgba(255,255,255,.04); border:0.5px solid rgba(255,255,255,.09); text-align:center; cursor:pointer; transition:all .2s; -webkit-tap-highlight-color:transparent; }
.ob-zone-card:active { transform:scale(.97); }
.ob-zone-card.ob-sel { background:rgba(29,158,117,.14); border-color:rgba(29,158,117,.45); }
.ob-zone-emoji { font-size:22px; margin-bottom:6px; line-height:1; display:block; filter:grayscale(.6); opacity:.7; transition:all .2s; }
.ob-zone-card.ob-sel .ob-zone-emoji { filter:grayscale(0); opacity:1; }
.ob-zone-name { color:rgba(255,255,255,.6); font-size:11px; font-weight:600; line-height:1.3; }
.ob-zone-card.ob-sel .ob-zone-name { color:#fff; }

/* Split options */
.ob-split-list { display:flex; flex-direction:column; gap:6px; margin-bottom:16px; }
.ob-split-opt { border-radius:12px; overflow:hidden; border:0.5px solid rgba(255,255,255,.09); background:rgba(255,255,255,.04); cursor:pointer; transition:border-color .25s,background .25s; -webkit-tap-highlight-color:transparent; }
.ob-split-opt:active { transform:scale(.985); }
.ob-split-opt.ob-sel { background:rgba(29,158,117,.1); border-color:rgba(29,158,117,.4); }
.ob-split-head { display:flex; align-items:center; gap:10px; padding:11px 13px; }
.ob-split-tag { font-size:10px; font-weight:700; padding:3px 8px; border-radius:6px; background:rgba(255,255,255,.08); color:rgba(255,255,255,.5); flex-shrink:0; min-width:58px; text-align:center; }
.ob-split-opt.ob-sel .ob-split-tag { background:rgba(29,158,117,.2); color:#5DCAA5; }
.ob-split-body { flex:1; }
.ob-split-name { color:#fff; font-size:13px; font-weight:600; }
.ob-split-desc { color:rgba(255,255,255,.35); font-size:10px; margin-top:1px; }
.ob-split-right { display:flex; flex-direction:column; align-items:flex-end; gap:4px; flex-shrink:0; }
.ob-split-check { width:16px; height:16px; border-radius:50%; border:1.5px solid rgba(255,255,255,.2); flex-shrink:0; transition:all .2s; }
.ob-split-check.on { background:#1D9E75; border-color:#1D9E75; display:flex; align-items:center; justify-content:center; }
.ob-split-check.on::after { content:''; display:block; width:4px; height:3px; border-left:1.5px solid #fff; border-bottom:1.5px solid #fff; transform:rotate(-45deg) translate(1px,-1px); }
.ob-rec-badge { font-size:9px; font-weight:700; padding:2px 7px; border-radius:20px; background:rgba(29,158,117,.2); color:#5DCAA5; white-space:nowrap; }
.ob-split-detail { max-height:0; overflow:hidden; transition:max-height .45s cubic-bezier(.22,1,.36,1); }
.ob-split-detail.open { max-height:220px; }
.ob-split-detail-inner { padding:0 13px 12px; border-top:0.5px solid rgba(255,255,255,.07); }
.ob-split-detail-text { color:rgba(255,255,255,.45); font-size:12px; line-height:1.65; padding:10px 0 8px; }
.ob-split-detail-text strong { color:rgba(255,255,255,.8); font-weight:600; }
.ob-week-chips { display:flex; gap:4px; flex-wrap:wrap; }
.ob-wchip { font-size:10px; padding:4px 9px; border-radius:8px; font-weight:600; }
.ob-wchip-train { background:rgba(29,158,117,.18); color:#5DCAA5; border:0.5px solid rgba(29,158,117,.3); }
.ob-wchip-rest { background:rgba(255,255,255,.05); color:rgba(255,255,255,.3); border:0.5px solid rgba(255,255,255,.08); }

/* Duration */
.ob-dur-row { display:flex; gap:6px; margin-bottom:16px; }
.ob-dur-btn { flex:1; padding:10px 4px; border-radius:11px; background:rgba(255,255,255,.04); border:0.5px solid rgba(255,255,255,.09); text-align:center; cursor:pointer; transition:all .2s; -webkit-tap-highlight-color:transparent; }
.ob-dur-btn:active { transform:scale(.95); }
.ob-dur-btn.ob-sel { background:rgba(29,158,117,.14); border-color:rgba(29,158,117,.45); }
.ob-dur-val { color:#fff; font-size:13px; font-weight:700; line-height:1; }
.ob-dur-lbl { color:rgba(255,255,255,.3); font-size:9px; margin-top:3px; }
.ob-dur-btn.ob-sel .ob-dur-lbl { color:rgba(29,158,117,.8); }

/* Injury groups accordion */
.ob-injury-groups { display:flex; flex-direction:column; gap:6px; margin-bottom:16px; }
.ob-inj-group { border-radius:12px; overflow:hidden; border:0.5px solid rgba(255,255,255,.09); background:rgba(255,255,255,.04); }
.ob-inj-group.has-issue { border-color:rgba(230,126,34,.35); }
.ob-inj-group-head { display:flex; align-items:center; gap:10px; padding:12px 13px; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.ob-inj-group-emoji { font-size:16px; flex-shrink:0; }
.ob-inj-group-name { color:#fff; font-size:13px; font-weight:600; flex:1; }
.ob-inj-group-status { font-size:10px; color:rgba(255,255,255,.3); margin-right:4px; }
.ob-inj-group-status.warn { color:#E67E22; }
.ob-inj-group-arrow { font-size:12px; color:rgba(255,255,255,.25); transition:transform .3s; flex-shrink:0; }
.ob-inj-group-arrow.open { transform:rotate(90deg); }
.ob-inj-group-body { max-height:0; overflow:hidden; transition:max-height .4s cubic-bezier(.22,1,.36,1); }
.ob-inj-group-body.open { max-height:400px; }
.ob-inj-group-inner { padding:0 13px 12px; border-top:0.5px solid rgba(255,255,255,.07); display:flex; flex-direction:column; gap:0; }
.ob-inj-row { display:flex; align-items:center; gap:8px; padding:8px 0; border-bottom:0.5px solid rgba(255,255,255,.06); }
.ob-inj-row:last-child { border-bottom:none; }
.ob-inj-name { color:rgba(255,255,255,.65); font-size:12px; font-weight:500; width:88px; flex-shrink:0; }
.ob-inj-btns { display:flex; gap:3px; flex:1; }
.ob-sev-btn { flex:1; padding:5px 2px; border-radius:6px; font-family:inherit; font-size:9px; font-weight:600; border:0.5px solid rgba(255,255,255,.08); background:rgba(255,255,255,.04); color:rgba(255,255,255,.3); cursor:pointer; text-align:center; transition:all .2s; -webkit-tap-highlight-color:transparent; }
.ob-sev-btn.selected { background:rgba(29,158,117,.18); border-color:rgba(29,158,117,.45); color:#1D9E75; }
.ob-sev-btn.ob-sev-mild.selected { background:rgba(241,196,15,.14); border-color:rgba(241,196,15,.4); color:#F1C40F; }
.ob-sev-btn.ob-sev-bad.selected { background:rgba(230,126,34,.14); border-color:rgba(230,126,34,.4); color:#E67E22; }
.ob-sev-btn.ob-sev-severe.selected { background:rgba(231,76,60,.12); border-color:rgba(231,76,60,.35); color:#E74C3C; }

/* Chronotype */
.ob-chrono-row { display:flex; gap:7px; margin-bottom:16px; }
.ob-chrono-btn { flex:1; padding:11px 6px; border-radius:12px; background:rgba(255,255,255,.04); border:0.5px solid rgba(255,255,255,.09); text-align:center; cursor:pointer; transition:all .2s; -webkit-tap-highlight-color:transparent; }
.ob-chrono-btn.ob-sel { background:rgba(29,158,117,.14); border-color:rgba(29,158,117,.45); }
.ob-chrono-emoji { font-size:18px; display:block; margin-bottom:5px; }
.ob-chrono-name { color:rgba(255,255,255,.6); font-size:11px; font-weight:600; }
.ob-chrono-btn.ob-sel .ob-chrono-name { color:#fff; }
.ob-chrono-time { color:rgba(255,255,255,.28); font-size:9px; margin-top:2px; }

/* Meal mode */
.ob-meal-list { display:flex; flex-direction:column; gap:6px; margin-bottom:16px; }
.ob-meal-opt { display:flex; align-items:center; gap:10px; padding:11px 13px; border-radius:12px; background:rgba(255,255,255,.04); border:0.5px solid rgba(255,255,255,.09); cursor:pointer; transition:all .2s; -webkit-tap-highlight-color:transparent; }
.ob-meal-opt:active { transform:scale(.985); }
.ob-meal-opt.ob-sel { background:rgba(29,158,117,.12); border-color:rgba(29,158,117,.4); }
.ob-meal-emoji { font-size:16px; flex-shrink:0; }
.ob-meal-body { flex:1; }
.ob-meal-name { color:#fff; font-size:13px; font-weight:600; }
.ob-meal-desc { color:rgba(255,255,255,.35); font-size:10px; margin-top:1px; }
.ob-meal-check { width:16px; height:16px; border-radius:50%; border:1.5px solid rgba(255,255,255,.2); flex-shrink:0; transition:all .2s; }
.ob-meal-check.on { background:#1D9E75; border-color:#1D9E75; display:flex; align-items:center; justify-content:center; }
.ob-meal-check.on::after { content:''; display:block; width:4px; height:3px; border-left:1.5px solid #fff; border-bottom:1.5px solid #fff; transform:rotate(-45deg) translate(1px,-1px); }

/* Footer */
.ob-footer { padding:12px 24px; padding-bottom:calc(12px + env(safe-area-inset-bottom)); flex-shrink:0; }
.ob-btn-row { display:flex; gap:8px; align-items:center; }
.ob-back { padding:11px 16px; border-radius:12px; background:rgba(255,255,255,.05); border:0.5px solid rgba(255,255,255,.08); color:rgba(255,255,255,.4); font-size:13px; cursor:pointer; font-family:inherit; }
.ob-next { flex:1; padding:11px; border-radius:12px; background:transparent; border:none; outline:none; color:#fff; font-size:20px; font-weight:800; letter-spacing:-.4px; cursor:pointer; font-family:inherit; text-align:center; -webkit-appearance:none; }
.ob-next:focus { outline:none; }
.ob-next::-moz-focus-inner { border:0; }
.ob-next-label { background:linear-gradient(90deg,#1D9E75,#5DCAA5 50%,#2E75B6); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.ob-next:disabled .ob-next-label { background:rgba(255,255,255,.2); -webkit-background-clip:text; -webkit-text-fill-color:transparent; }

/* Final screen */
.ob-final-check { width:52px; height:52px; border-radius:50%; border:2px solid rgba(29,158,117,.5); display:flex; align-items:center; justify-content:center; margin-bottom:14px; }
.ob-final-stats { display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; margin:16px 0 12px; }
.ob-final-stat { background:rgba(255,255,255,.05); border:0.5px solid rgba(255,255,255,.08); border-radius:12px; padding:11px 10px; text-align:center; }
.ob-final-stat.accent { background:rgba(29,158,117,.12); border-color:rgba(29,158,117,.3); }
.ob-final-stat-lbl { font-size:9px; color:rgba(255,255,255,.3); text-transform:uppercase; letter-spacing:.5px; margin-bottom:5px; }
.ob-final-stat-val { font-size:20px; font-weight:800; color:#fff; line-height:1; }
.ob-final-stat-unit { font-size:10px; color:rgba(255,255,255,.35); font-weight:400; margin-left:1px; }
.ob-final-stat.accent .ob-final-stat-val { color:#1D9E75; }
.ob-final-card { background:rgba(255,255,255,.04); border:0.5px solid rgba(255,255,255,.09); border-radius:16px; overflow:hidden; }
.ob-final-row { display:flex; align-items:center; justify-content:space-between; padding:10px 14px; border-bottom:0.5px solid rgba(255,255,255,.06); }
.ob-final-row:last-child { border-bottom:none; }
.ob-final-key { color:rgba(255,255,255,.38); font-size:12px; }
.ob-final-val { color:#fff; font-size:12px; font-weight:600; }
.ob-final-val.green { color:#1D9E75; }
.ob-final-badges { display:flex; gap:5px; align-items:center; }
.ob-final-badge { font-size:10px; padding:2px 8px; border-radius:20px; font-weight:600; }
.ob-final-badge-green { background:rgba(29,158,117,.18); color:#1D9E75; }
.ob-final-badge-blue { background:rgba(46,117,182,.18); color:#5DCAA5; }
.ob-final-hint { text-align:center; color:rgba(255,255,255,.18); font-size:11px; margin-top:10px; }

/* keep old classes for JS compatibility */
.ob-opt { display:none; }
.ob-opts { display:none; }
.ob-hint { display:none; }
.ob-warn { background:rgba(230,126,34,.09); border:0.5px solid rgba(230,126,34,.3); border-radius:10px; padding:10px 13px; font-size:12px; color:rgba(250,200,100,.9); line-height:1.6; margin-bottom:14px; }
.ob-danger { background:rgba(192,57,43,.08); border:0.5px solid rgba(192,57,43,.28); border-radius:10px; padding:10px 13px; font-size:12px; color:rgba(231,76,60,.9); line-height:1.6; margin-bottom:14px; }
.ob-inp { width:100%; background:transparent; border:none; border-radius:0; padding:0; color:#fff; font-size:20px; font-family:inherit; outline:none; }
.ob-inp::placeholder { color:rgba(255,255,255,.2); font-size:16px; }
.ob-science-note { display:none; }
.ob-injury-row { display:none; }
.ob-injury-label { display:none; }
.ob-injury-btns { display:none; }
.ob-2col { display:none; }
.ob-summary-row { display:flex; justify-content:space-between; align-items:flex-start; gap:8px; padding:9px 0; border-bottom:0.5px solid rgba(255,255,255,.07); font-size:13px; }
.ob-summary-row:last-child { border-bottom:none; }
.ob-summary-key { color:rgba(255,255,255,.4); flex-shrink:0; }
.ob-summary-val { color:#fff; font-weight:500; text-align:right; }
.ob-opt-rec { display:none; }
/* Profile badge in nutrition header */
.profile-badge { font-size:10px; padding:2px 8px; border-radius:6px; background:rgba(29,158,117,.15); border:0.5px solid rgba(29,158,117,.3); color:#5DCAA5; margin-left:6px; }

/* ── Nutrition screen new design ─────────────────────────── */
.nut-summary-card { background:rgba(255,255,255,.06); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); border:0.5px solid rgba(255,255,255,.12); border-radius:16px; padding:14px; margin-bottom:8px; }
.nut-summary-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.nut-kcal-big { font-size:28px; font-weight:800; color:var(--text); letter-spacing:-.5px; line-height:1; }
.nut-kcal-sub { font-size:10px; color:var(--text3); margin-top:2px; }
.nut-kcal-remain { font-size:12px; font-weight:600; color:var(--accent2); margin-top:4px; }
.nut-macro-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:6px; }
.nut-macro-card { background:rgba(0,0,0,.2); border:0.5px solid rgba(255,255,255,.07); border-radius:10px; padding:8px 6px; text-align:center; }
.nut-macro-val { font-size:15px; font-weight:700; letter-spacing:-.3px; }
.nut-macro-lbl { font-size:8px; color:var(--text3); margin-top:2px; text-transform:uppercase; letter-spacing:.05em; }
.nut-macro-bar { height:3px; background:rgba(255,255,255,.08); border-radius:2px; overflow:hidden; margin-top:6px; }
.nut-macro-fill { height:100%; border-radius:2px; transition:width .3s; }
.nut-macro-sub { font-size:9px; color:var(--text3); margin-top:3px; }
.meal-plan-card { display:flex; align-items:stretch; border-radius:14px; overflow:hidden; margin-bottom:6px; background:rgba(255,255,255,.06); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); border:0.5px solid rgba(255,255,255,.1); box-shadow:inset 0 1px 0 rgba(255,255,255,.05); cursor:pointer; transition:border-color .2s, background .2s; }
.meal-plan-card:active { transform:scale(.98); }
.meal-plan-card.done { background:rgba(29,158,117,.12); border-color:rgba(29,158,117,.35); box-shadow:inset 0 1px 0 rgba(29,158,117,.1); }
.meal-plan-stripe { width:3px; flex-shrink:0; }
.meal-plan-body { flex:1; padding:11px 12px; display:flex; align-items:center; gap:12px; }
.meal-plan-check { width:32px; height:32px; border-radius:50%; flex-shrink:0; border:1.5px solid rgba(255,255,255,.2); display:flex; align-items:center; justify-content:center; font-size:14px; color:transparent; background:none; cursor:pointer; font-family:inherit; transition:all .2s; }
.meal-plan-card.done .meal-plan-check { background:#1D9E75; border-color:#1D9E75; color:#fff; }
.meal-plan-slot { font-size:8px; font-weight:600; color:rgba(255,255,255,.3); text-transform:uppercase; letter-spacing:.06em; margin-bottom:3px; }
.meal-plan-name { font-size:13px; font-weight:600; color:var(--text); line-height:1.3; margin-bottom:5px; }
.meal-plan-macros { display:flex; gap:7px; font-size:10px; color:rgba(255,255,255,.35); }
.meal-plan-mac { font-size:10px; color:rgba(255,255,255,.35); }
.meal-plan-mac span { font-weight:600; }
.meal-plan-kcal { font-size:13px; font-weight:700; color:rgba(255,255,255,.5); flex-shrink:0; }
.protein-tip-card { display:flex; align-items:flex-start; gap:8px; padding:10px 12px; background:rgba(29,158,117,.08); border:0.5px solid rgba(29,158,117,.2); border-radius:12px; font-size:11px; color:rgba(93,202,165,.9); line-height:1.5; margin-bottom:8px; }

/* ── Meal detail page ─────────────────────────────────────── */
.meal-detail-page { position:fixed; inset:0; z-index:103; display:none; flex-direction:column; background:transparent; opacity:0; transform:scale(1.04); transition:opacity .38s cubic-bezier(.4,0,.2,1), transform .38s cubic-bezier(.4,0,.2,1); pointer-events:none; }
.meal-detail-page.open { opacity:1; transform:scale(1); pointer-events:all; }
.meal-detail-hdr { display:flex; align-items:center; justify-content:space-between; padding:14px 16px 10px; flex-shrink:0; }
.meal-detail-title { font-size:16px; font-weight:800; color:var(--text); letter-spacing:-.3px; flex:1; text-align:center; }
.meal-detail-body { flex:1; overflow-y:auto; -webkit-overflow-scrolling:touch; padding:0 12px calc(var(--nav-h)+16px); }
.meal-detail-body::-webkit-scrollbar { display:none; }
.meal-detail-card { background:rgba(255,255,255,.06); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); border:0.5px solid rgba(255,255,255,.12); border-radius:16px; padding:14px; margin-bottom:8px; }
.meal-accent { height:2px; width:32px; background:linear-gradient(90deg,#1D9E75,#2E75B6); border-radius:2px; margin-bottom:12px; }
.meal-name { font-size:20px; font-weight:800; color:var(--text); letter-spacing:-.4px; margin-bottom:3px; line-height:1.2; }
.meal-slot-lbl { font-size:10px; font-weight:600; color:var(--accent2); text-transform:uppercase; letter-spacing:.08em; margin-bottom:12px; display:flex; align-items:center; gap:5px; }
.meal-macros-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:0; background:rgba(0,0,0,.2); border-radius:12px; overflow:hidden; border:0.5px solid rgba(255,255,255,.07); margin-bottom:14px; }
.meal-mac-box { padding:9px 3px; text-align:center; position:relative; }
.meal-mac-box:not(:last-child)::after { content:''; position:absolute; right:0; top:15%; height:70%; width:0.5px; background:rgba(255,255,255,.1); }
.meal-mac-v { font-size:14px; font-weight:800; letter-spacing:-.3px; }
.meal-mac-dot { width:4px; height:4px; border-radius:50%; margin:3px auto 0; }
.meal-mac-l { font-size:7px; color:rgba(255,255,255,.28); margin-top:2px; text-transform:uppercase; letter-spacing:.05em; }
.meal-list-block { background:rgba(0,0,0,.2); border:0.5px solid rgba(255,255,255,.07); border-radius:11px; overflow:hidden; margin-bottom:12px; }
.meal-list-item { display:flex; align-items:flex-start; gap:9px; padding:9px 11px; border-bottom:0.5px solid rgba(255,255,255,.05); }
.meal-list-item:last-child { border-bottom:none; }
.meal-list-dot { width:5px; height:5px; border-radius:50%; flex-shrink:0; margin-top:6px; }
.meal-list-num { font-size:10px; font-weight:700; color:rgba(46,117,182,.7); min-width:14px; flex-shrink:0; margin-top:2px; }
.meal-list-text { font-size:12px; color:rgba(255,255,255,.7); line-height:1.45; }
.meal-alts-scroll { display:flex; gap:7px; overflow-x:auto; padding-bottom:2px; }
.meal-alts-scroll::-webkit-scrollbar { display:none; }
.meal-alt-card { flex-shrink:0; background:rgba(255,255,255,.05); border:0.5px solid rgba(255,255,255,.1); border-radius:11px; padding:9px 11px; min-width:105px; cursor:pointer; position:relative; overflow:hidden; transition:all .15s; }
.meal-alt-card::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg,rgba(46,117,182,.6),rgba(29,158,117,.6)); }
.meal-alt-card:active { transform:scale(.96); background:rgba(46,117,182,.08); }
.meal-alt-name { font-size:10px; font-weight:600; color:rgba(255,255,255,.8); line-height:1.3; margin-bottom:5px; }
.meal-alt-arrow { font-size:8px; font-weight:600; color:#85B7EB; text-transform:uppercase; letter-spacing:.05em; }
.meal-check-btn { width:100%; padding:13px; border-radius:12px; background:linear-gradient(135deg,#1D9E75,#22b584); border:none; color:#fff; font-size:14px; font-weight:700; cursor:pointer; font-family:inherit; display:flex; align-items:center; justify-content:center; gap:8px; transition:all .2s; }
.meal-check-btn.done { background:rgba(29,158,117,.15); border:0.5px solid rgba(29,158,117,.35); color:#5DCAA5; }
.filtered-note { font-size:11px; color:var(--text3); padding:6px 0 10px; display:flex; align-items:center; gap:5px; }

/* ── ЗАДАЧА 8: PUOS-предупреждения и недельный анализ ─────── */
@keyframes slideUp {
  from { transform: translateY(100%); opacity: 0; }
  to   { transform: translateY(0);    opacity: 1; }
}
.puos-warn-chip {
  display:flex;align-items:flex-start;gap:7px;
  background:rgba(230,126,34,.08);border:0.5px solid rgba(230,126,34,.25);
  border-radius:9px;padding:8px 10px;margin-bottom:5px;cursor:pointer;
  transition:background .18s;
}
.puos-warn-chip:active { background:rgba(230,126,34,.15); }
.vol-indicator-bar {
  height:4px;border-radius:2px;background:var(--border);overflow:hidden;
  transition:all .3s ease;
}
.vol-indicator-fill {
  height:100%;border-radius:2px;transition:width .5s ease;
}

/* ═══════════════════════════════════════════════════════════════
   EDIT MODE — Режим редактирования тренировок
═══════════════════════════════════════════════════════════════ */
.edit-mode-overlay {
  position:fixed;inset:0;z-index:200;
  background:rgba(0,0,0,.7);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  display:flex;flex-direction:column;
  animation:editFadeIn .3s ease;
}
.edit-mode-overlay.hidden { display:none!important; }
@keyframes editFadeIn { from{opacity:0} to{opacity:1} }
@keyframes editSlideUp { from{transform:translateY(24px);opacity:0} to{transform:translateY(0);opacity:1} }

/* ── Онбординг ─────────────────────────────────────────────── */
.edit-onboarding {
  flex:1;display:flex;flex-direction:column;
  justify-content:center;align-items:center;
  padding:40px 24px;text-align:center;
  overflow-y:auto;-webkit-overflow-scrolling:touch;
}
.edit-onboarding.hidden { display:none!important; }
.edit-title {
  font-size:26px;font-weight:800;letter-spacing:-.6px;
  background:linear-gradient(135deg,#fff,#85B7EB,#5DCAA5);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  margin-bottom:10px;animation:editSlideUp .5s ease;
}
.edit-badge {
  background:rgba(46,117,182,.2);border:0.5px solid rgba(46,117,182,.4);
  border-radius:40px;padding:5px 14px;font-size:11px;font-weight:600;
  color:#85B7EB;margin-bottom:24px;display:inline-block;
  animation:editSlideUp .5s ease .1s both;
}
.edit-description { font-size:13px;line-height:1.65;color:rgba(255,255,255,.6);max-width:300px;margin-bottom:24px; animation:editSlideUp .5s ease .15s both;}
.edit-features { display:flex;flex-direction:column;gap:10px;margin-bottom:28px;width:100%;max-width:300px; }
.edit-feature-item {
  display:flex;align-items:center;gap:11px;
  background:rgba(255,255,255,.04);border:0.5px solid rgba(255,255,255,.08);
  border-radius:12px;padding:10px 13px;
  animation:editSlideUp .5s ease calc(.25s + var(--fi-d,0)*.08s) both;
}
.edit-feature-icon { width:30px;height:30px;background:rgba(29,158,117,.15);border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0; }
.edit-feature-title { font-size:12px;font-weight:600;color:#fff; }
.edit-feature-desc { font-size:10px;color:rgba(255,255,255,.4); }
.edit-start-btn {
  background:linear-gradient(135deg,#1D9E75,#2E75B6);border:none;border-radius:40px;
  padding:13px 28px;font-size:15px;font-weight:700;color:#fff;cursor:pointer;
  font-family:inherit;display:flex;align-items:center;gap:8px;
  box-shadow:0 4px 18px rgba(29,158,117,.3);
  animation:editSlideUp .5s ease .5s both;
}

/* ── Основной контент ──────────────────────────────────────── */
.edit-main-content {
  flex:1;display:flex;flex-direction:column;overflow:hidden;
}
.edit-main-content.hidden { display:none!important; }

.edit-hdr {
  display:flex;align-items:center;gap:8px;
  padding:12px 16px 10px;flex-shrink:0;
  border-bottom:0.5px solid rgba(255,255,255,.08);
  background:rgba(9,9,15,.7);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
}
.edit-hdr-title { font-size:14px;font-weight:700;color:var(--text); }
.edit-hdr-close {
  background:none;border:none;color:rgba(255,255,255,.35);cursor:pointer;
  font-size:20px;font-weight:800;padding:2px 6px;font-family:inherit;
  transition:color .15s;
}
.edit-hdr-close:hover { color:rgba(255,255,255,.7); }

.edit-scroll {
  flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;
  padding:12px 12px 24px;
}
.edit-scroll::-webkit-scrollbar { display:none; }

/* ── Таймер-хедер ──────────────────────────────────────────── */
.edit-time-bar {
  background:rgba(0,0,0,.35);border-radius:14px;padding:10px 16px;
  margin-bottom:12px;display:flex;align-items:center;
  justify-content:space-between;flex-wrap:wrap;gap:8px;
  backdrop-filter:blur(10px);border:0.5px solid rgba(255,255,255,.07);
}
.edit-time-items { display:flex;gap:18px; }
.edit-time-item { text-align:center; }
.edit-time-val { font-size:20px;font-weight:700;color:#85B7EB; }
.edit-time-lbl { font-size:8px;color:rgba(255,255,255,.45);text-transform:uppercase;letter-spacing:.06em; }
.edit-ai-btn {
  background:rgba(29,158,117,.18);border:0.5px solid rgba(29,158,117,.4);border-radius:24px;
  padding:7px 14px;color:#5DCAA5;font-size:11px;font-weight:600;cursor:pointer;
  display:flex;align-items:center;gap:5px;font-family:inherit;transition:all .15s;
}
.edit-ai-btn:active { opacity:.75;transform:scale(.96); }
.edit-plan-btns { display:flex;gap:6px;flex-wrap:wrap;margin-top:2px; }
.edit-ideal-btn { background:rgba(155,89,182,.18);border-color:rgba(155,89,182,.4);color:#C39BD3; }
.edit-restore-btn { background:rgba(52,152,219,.18);border-color:rgba(52,152,219,.4);color:#7FB3D3; }
.edit-restore-btn.hidden { display:none; }

/* ── Идеальный план — сравнительный блок ──────────────────── */
.ideal-compare-block { background:rgba(255,255,255,.06);border-radius:12px;padding:14px;margin-bottom:12px; }
.ideal-compare-row { display:flex;justify-content:space-between;align-items:center;padding:4px 0;font-size:13px; }
.ideal-compare-row span { color:rgba(255,255,255,.5); }
.ideal-diff-line { font-size:12px;color:var(--accent,#1D9E75);margin-top:8px;padding-top:8px;border-top:0.5px solid rgba(255,255,255,.1); }

/* ── Панель анализа нагрузки ───────────────────────────────── */
.edit-load-panel {
  background:rgba(0,0,0,.3);border-radius:14px;padding:13px 14px;
  margin-bottom:12px;border:0.5px solid rgba(255,255,255,.07);
}
.edit-load-panel-hdr {
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:12px;flex-wrap:wrap;gap:6px;
}
.edit-load-panel-title { font-size:12px;font-weight:600;color:#fff;display:flex;align-items:center;gap:6px; }
.edit-load-info-btn {
  background:rgba(255,255,255,.09);border:0.5px solid rgba(255,255,255,.15);border-radius:24px;
  padding:3px 10px;font-size:10px;color:rgba(255,255,255,.55);cursor:pointer;
  display:flex;align-items:center;gap:3px;font-family:inherit;transition:all .15s;
}
.edit-load-info-btn:hover { background:rgba(46,117,182,.2);color:#85B7EB; }
.edit-load-target { font-size:10px;color:rgba(255,255,255,.45); }
.edit-load-grid {
  display:flex;overflow-x:auto;gap:8px;padding-bottom:4px;
  -webkit-overflow-scrolling:touch;scrollbar-width:none;
}
.edit-load-grid::-webkit-scrollbar { display:none; }
.edit-load-card {
  background:rgba(255,255,255,.04);border-radius:11px;padding:9px 11px;
  border:0.5px solid rgba(255,255,255,.07);
  flex-shrink:0;min-width:140px;
}
.edit-load-card-hdr { display:flex;align-items:center;justify-content:space-between;margin-bottom:6px; }
.edit-load-name { font-size:11px;font-weight:600;color:rgba(255,255,255,.75); }
.edit-load-status { font-size:9px;padding:2px 7px;border-radius:16px;background:rgba(0,0,0,.3); }
.edit-load-status.low { color:#E67E22;background:rgba(230,126,34,.15); }
.edit-load-status.ok { color:#1D9E75;background:rgba(29,158,117,.15); }
.edit-load-status.high { color:#E74C3C;background:rgba(231,76,60,.15); }
.edit-load-status.ideal { color:#5DCAA5;background:rgba(93,202,165,.15); }
.edit-load-val { font-size:18px;font-weight:700;margin-bottom:5px; }
.edit-load-bar { height:3px;background:rgba(255,255,255,.09);border-radius:2px;overflow:hidden; }
.edit-load-bar-fill { height:100%;border-radius:2px;transition:width .35s ease; }
.edit-load-range { font-size:8px;color:rgba(255,255,255,.35);margin-top:5px;text-align:center; }

/* ── Карточки дней ─────────────────────────────────────────── */
.edit-day-card {
  background:rgba(255,255,255,.04);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border:0.5px solid rgba(255,255,255,.09);border-radius:16px;
  margin-bottom:14px;overflow:hidden;
}
.edit-day-hdr {
  padding:12px 14px;border-bottom:0.5px solid rgba(255,255,255,.07);
  background:rgba(0,0,0,.25);
}
.edit-day-name { font-size:15px;font-weight:700;display:flex;align-items:center;gap:7px;margin-bottom:5px; }
.edit-day-stats { display:flex;gap:8px;font-size:10px;color:rgba(255,255,255,.45); }
.edit-day-stats span { background:rgba(255,255,255,.07);padding:3px 9px;border-radius:16px; }
.edit-independent-badge { font-size:11px;color:rgba(255,255,255,.4);margin-left:auto;font-style:italic;font-weight:500; }
.edit-day-muscles { display:flex;gap:5px;flex-wrap:wrap;margin-top:7px; }

.edit-exercises-list { min-height:60px; }

.edit-ex-item {
  padding:10px 13px;border-bottom:0.5px solid rgba(255,255,255,.05);
  display:flex;align-items:center;gap:10px;cursor:grab;
  background:rgba(0,0,0,.15);transition:background .15s;
}
.edit-ex-item:last-child { border-bottom:none; }
.edit-ex-item.dragging { opacity:.35;cursor:grabbing; }
.edit-ex-item.drag-over { border-top:2px solid #1D9E75; }
.edit-drag-handle { color:rgba(255,255,255,.25);font-size:16px;padding:3px;flex-shrink:0; }
.edit-ex-info { flex:1;min-width:0; }
.edit-ex-name { font-size:13px;font-weight:600;display:flex;align-items:center;gap:6px;flex-wrap:wrap; }
.edit-ex-meta { font-size:10px;color:rgba(255,255,255,.4);display:flex;gap:10px;margin-top:3px; }
.edit-time-badge { background:rgba(46,117,182,.18);padding:2px 7px;border-radius:10px;font-size:9px;color:#85B7EB; }
.edit-ex-actions { display:flex;gap:5px;flex-shrink:0; }
.edit-action-btn {
  background:rgba(255,255,255,.07);border:0.5px solid rgba(255,255,255,.12);border-radius:8px;
  padding:5px 9px;color:rgba(255,255,255,.55);font-size:11px;cursor:pointer;
  transition:all .15s;font-family:inherit;
}
.edit-action-btn:active { opacity:.7; }
.edit-action-btn.danger:active { color:#E74C3C; }

.edit-add-ex-btn {
  margin:10px 13px;padding:9px;background:rgba(29,158,117,.09);
  border:0.5px dashed rgba(29,158,117,.35);border-radius:10px;
  color:#5DCAA5;font-size:11px;font-weight:500;cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:5px;
  width:calc(100% - 26px);font-family:inherit;transition:all .15s;
}
.edit-add-ex-btn:active { opacity:.75; }

.edit-seq-warning {
  background:rgba(230,126,34,.09);border-left:3px solid #E67E22;
  padding:7px 12px;margin:6px 13px;border-radius:7px;
  font-size:10px;color:rgba(239,159,39,.9);line-height:1.5;
}

/* ── Модалки редактора ─────────────────────────────────────── */
.edit-modal-overlay {
  position:fixed;inset:0;z-index:300;background:rgba(0,0,0,.72);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  display:flex;align-items:center;justify-content:center;
  animation:editFadeIn .2s ease;
}
.edit-modal-box {
  width:90%;max-width:480px;max-height:82vh;
  background:rgba(14,14,24,.97);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
  border-radius:20px;border:0.5px solid rgba(255,255,255,.13);
  overflow:hidden;display:flex;flex-direction:column;
}
.edit-modal-hdr {
  padding:14px 16px;border-bottom:0.5px solid rgba(255,255,255,.09);
  display:flex;justify-content:space-between;align-items:flex-start;flex-shrink:0;
}
.edit-modal-title { font-size:14px;font-weight:700;color:var(--text); }
.edit-modal-sub { font-size:10px;color:rgba(255,255,255,.4);margin-top:2px; }
.edit-modal-close { background:none;border:none;color:rgba(255,255,255,.35);cursor:pointer;font-size:18px;font-weight:800;padding:0 4px;font-family:inherit;transition:color .15s; }
.edit-modal-close:hover { color:rgba(255,255,255,.7); }
.edit-modal-body { flex:1;overflow-y:auto;padding:14px 16px; }
.edit-modal-body::-webkit-scrollbar { display:none; }
.edit-modal-footer { padding:12px 16px;border-top:0.5px solid rgba(255,255,255,.07);display:flex;gap:8px;flex-shrink:0; }
.edit-modal-cancel {
  flex:1;padding:10px;border-radius:10px;border:0.5px solid rgba(255,255,255,.14);
  background:transparent;color:rgba(255,255,255,.5);cursor:pointer;font-family:inherit;font-size:13px;
}
.edit-modal-confirm {
  flex:1;padding:10px;border-radius:10px;border:none;
  background:#2E75B6;color:#fff;font-weight:600;cursor:pointer;font-family:inherit;font-size:13px;
  transition:opacity .15s;
}
.edit-modal-confirm:disabled { opacity:.4;cursor:not-allowed; }

.edit-alt-item {
  padding:10px 12px;border-radius:11px;border:0.5px solid rgba(255,255,255,.09);
  background:rgba(255,255,255,.03);cursor:pointer;margin-bottom:7px;transition:all .15s;
}
.edit-alt-item:active, .edit-alt-item.selected { background:rgba(46,117,182,.18);border-color:rgba(46,117,182,.45); }
.em-inline-analysis {
  background:rgba(46,117,182,.07);border:0.5px solid rgba(46,117,182,.2);
  border-radius:0 0 11px 11px;border-top:none;
  padding:8px 12px 10px;margin-top:-7px;margin-bottom:7px;
  animation:em-expand .15s ease;
}
@keyframes em-expand {
  from { opacity:0; transform:translateY(-4px); }
  to   { opacity:1; transform:translateY(0); }
}
.edit-alt-name { font-size:13px;font-weight:600;color:var(--text); }
.edit-alt-meta { font-size:10px;color:rgba(255,255,255,.4);margin-top:2px; }

.edit-warn-box {
  background:rgba(230,126,34,.08);border:0.5px solid rgba(230,126,34,.28);
  border-radius:9px;padding:9px 11px;margin-top:10px;
}
.edit-warn-box.success { background:rgba(29,158,117,.08);border-color:rgba(29,158,117,.25); }
.edit-warn-box.info { background:rgba(46,117,182,.08);border-color:rgba(46,117,182,.25); }
.edit-warn-box.danger { background:rgba(231,76,60,.08);border-color:rgba(231,76,60,.28); }
.edit-warn-box.danger .edit-warn-title { color:rgba(231,76,60,.9); }
.edit-warn-title { font-size:11px;font-weight:600;color:rgba(239,159,39,.9);margin-bottom:3px; }
.edit-warn-box.success .edit-warn-title { color:rgba(93,202,165,.9); }
.edit-warn-box.info .edit-warn-title { color:rgba(133,183,235,.9); }
.edit-warn-msg { font-size:11px;color:rgba(255,255,255,.55);line-height:1.5; }

.edit-justif-card {
  background:linear-gradient(135deg,rgba(46,117,182,.13),rgba(29,158,117,.09));
  border:0.5px solid rgba(46,117,182,.28);border-radius:13px;padding:13px;margin-bottom:12px;
}
.edit-justif-title {
  font-size:10px;font-weight:700;color:#85B7EB;text-transform:uppercase;
  letter-spacing:.5px;margin-bottom:10px;display:flex;align-items:center;gap:6px;
}
.edit-justif-item { padding:6px 0;border-bottom:0.5px solid rgba(255,255,255,.06);display:flex;gap:8px; }
.edit-justif-item:last-child { border-bottom:none; }
.edit-justif-icon { font-size:14px;flex-shrink:0; }
.edit-justif-text { font-size:11px;line-height:1.5;color:rgba(255,255,255,.65); }
.edit-science-badge { background:rgba(29,158,117,.2);border-radius:16px;padding:1px 7px;font-size:8px;font-weight:600;color:#5DCAA5;display:inline-block;margin-left:6px; }

/* ── Ideal Planner UI ────────────────────────────────────── */
.ideal-toggle-wrap { margin-left:auto; }
.ideal-toggle {
  display:flex;align-items:center;gap:6px;cursor:pointer;
  padding:4px 10px;border-radius:20px;
  background:rgba(255,255,255,.04);border:0.5px solid rgba(255,255,255,.09);
  transition:all .2s ease;user-select:none;
}
.ideal-toggle.active { background:rgba(29,158,117,.1);border-color:rgba(29,158,117,.25); }
.ideal-toggle-icon { font-size:13px; }
.ideal-toggle-label { font-size:10px;font-weight:600;color:rgba(255,255,255,.6); }
.ideal-toggle.active .ideal-toggle-label { color:#5DCAA5; }
.ideal-toggle-switch {
  width:28px;height:16px;border-radius:10px;
  background:rgba(255,255,255,.15);position:relative;transition:background .2s;
}
.ideal-toggle-switch.on { background:rgba(29,158,117,.5); }
.ideal-toggle-knob {
  width:12px;height:12px;border-radius:50%;
  background:#fff;position:absolute;top:2px;left:2px;
  transition:transform .2s ease;
}
.ideal-toggle-switch.on .ideal-toggle-knob { transform:translateX(12px); }

/* Score ring */
.ideal-score { position:relative;display:inline-flex;align-items:center;justify-content:center; }
.ideal-score svg { display:block; }
.ideal-score-text {
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  font-size:14px;font-weight:800;
}

/* Analysis header */
.ideal-analysis-header {
  display:flex;align-items:center;justify-content:space-between;
  padding:12px;border-radius:12px;
  background:rgba(255,255,255,.03);border:0.5px solid rgba(255,255,255,.07);
  margin-bottom:10px;
}
.ideal-analysis-status { display:flex;align-items:center;gap:10px; }
.ideal-analysis-icon { font-size:24px; }
.ideal-analysis-title { font-size:13px;font-weight:700; }
.ideal-analysis-sub { font-size:10px;color:rgba(255,255,255,.45);margin-top:2px; }

/* Params grid */
.ideal-params-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:10px; }
.ideal-param {
  background:rgba(255,255,255,.03);border-radius:10px;padding:8px 6px;
  text-align:center;border:0.5px solid rgba(255,255,255,.06);
}
.ideal-param-icon { font-size:16px;margin-bottom:3px; }
.ideal-param-val { font-size:15px;font-weight:800;color:var(--text); }
.ideal-param-lbl { font-size:8px;color:rgba(255,255,255,.45);margin-top:2px;line-height:1.2; }

/* Gaps */
.ideal-gaps {
  background:rgba(230,126,34,.06);border:0.5px solid rgba(230,126,34,.18);
  border-radius:10px;padding:10px 12px;margin-bottom:10px;
}
.ideal-gaps-title { font-size:11px;font-weight:700;color:rgba(230,126,34,.85);margin-bottom:8px; }
.ideal-gap-row { display:flex;align-items:center;gap:8px;margin-bottom:5px; }
.ideal-gap-row:last-child { margin-bottom:0; }
.ideal-gap-name { font-size:10px;color:rgba(255,255,255,.6);width:55px;flex-shrink:0; }
.ideal-gap-bar { flex:1;height:4px;background:rgba(255,255,255,.08);border-radius:2px;overflow:hidden; }
.ideal-gap-bar-fill { height:100%;border-radius:2px;transition:width .3s ease; }
.ideal-gap-val { font-size:9px;color:rgba(255,255,255,.45);width:35px;text-align:right;flex-shrink:0; }

/* Recommendations */
.ideal-recs { margin-top:6px;padding-top:6px;border-top:0.5px solid rgba(255,255,255,.06); }
.ideal-rec-item { font-size:10px;color:rgba(255,255,255,.55);padding:2px 0; }

/* Segment bars */
.ideal-seg-grid { display:flex;flex-direction:column;gap:6px; }
.ideal-seg-row { padding:4px 0; }
.ideal-seg-header { display:flex;align-items:center;justify-content:space-between;margin-bottom:3px; }
.ideal-seg-name { font-size:10px;color:rgba(255,255,255,.6); }
.ideal-seg-val { font-size:12px;font-weight:700; }
.ideal-seg-target { font-size:9px;font-weight:400;opacity:.5; }
.ideal-seg-bar-track { position:relative;height:4px;background:rgba(255,255,255,.08);border-radius:2px;overflow:hidden; }
.ideal-seg-bar-fill { height:100%;border-radius:2px;transition:width .35s ease; }
.ideal-seg-bar-target { position:absolute;top:-1px;bottom:-1px;width:1.5px;background:rgba(255,255,255,.25);z-index:1; }
.ideal-seg-status { font-size:8px;margin-top:2px; }

/* Result sections */
.ideal-result-section { margin-bottom:14px; }
.ideal-result-title { font-size:12px;font-weight:700;color:rgba(255,255,255,.7);margin-bottom:8px; }

/* Toast */
.edit-toast {
  position:fixed;bottom:80px;left:50%;transform:translateX(-50%);
  background:#1D9E75;padding:10px 22px;border-radius:26px;
  font-size:12px;color:#fff;z-index:500;pointer-events:none;
  animation:editSlideUp .2s ease;white-space:nowrap;
}

/* ═══════════════════════════════════════════════════════════════
   ONBOARDING — Reveal блок (схема + время)
═══════════════════════════════════════════════════════════════ */
.ob-train-step2 {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity .35s ease, transform .35s ease;
}
.ob-train-step2--visible {
  opacity: 1;
  transform: translateY(0);
}

/* ═══════════════════════════════════════════════════════════════
   PLAN CONSTRAINTS — Onboarding
═══════════════════════════════════════════════════════════════ */
.ob-freq-btn.ob-freq-disabled { opacity:0.35; pointer-events:none; }
.ob-freq-btn.ob-freq-warn { border-color:#f59e0b !important; color:#f59e0b !important; }
.ob-split-opt.ob-split-disabled { opacity:0.4; pointer-events:none; }
/* Duration button states */
.ob-dur-btn.ob-dur-disabled { opacity:0.35; pointer-events:none; }
.ob-dur-btn.ob-dur-warn { border-color:#f59e0b !important; color:#f59e0b !important; background:rgba(245,158,11,.08) !important; }
.ob-dur-btn.ob-dur-optimal { border-color:#1D9E75 !important; color:#1D9E75 !important; background:rgba(29,158,117,.08) !important; }
/* Duration message block */
.ob-duration-msg {
  font-size:12px; padding:10px 14px; border-radius:12px;
  margin-top:8px; margin-bottom:4px;
  display:flex; align-items:center; gap:8px;
}
.ob-duration-msg.error   { background:rgba(231,76,60,.12);  color:#E74C3C; border:0.5px solid rgba(231,76,60,.25); }
.ob-duration-msg.warn    { background:rgba(245,158,11,.12); color:#f59e0b; border:0.5px solid rgba(245,158,11,.25); }
.ob-duration-msg.success { background:rgba(29,158,117,.12); color:#1D9E75; border:0.5px solid rgba(29,158,117,.25); }
.ob-duration-msg.info    { background:rgba(46,117,182,.12); color:#85B7EB; border:0.5px solid rgba(46,117,182,.25); }
.ob-constraint-msg {
  color:rgba(255,255,255,.4); font-size:11px; padding:4px 8px;
  margin-top:5px; letter-spacing:.01em;
}
.ob-warn-msg {
  color:rgba(255,255,255,.4); font-size:11px; padding:4px 8px;
  margin-top:5px; letter-spacing:.01em;
}

/* ═══════════════════════════════════════════════════════════════
   PLAN CONSTRAINTS — Training Settings Modal (ideal-ui)
═══════════════════════════════════════════════════════════════ */
.its-section { margin-bottom:20px; }
.its-section-title { font-size:12px; color:var(--text-secondary,rgba(255,255,255,.5)); text-transform:uppercase; letter-spacing:.06em; margin-bottom:8px; }
.its-btn-row { display:flex; gap:8px; flex-wrap:wrap; }
.its-btn {
  padding:8px 14px; border-radius:8px; border:1.5px solid var(--border,rgba(255,255,255,.12));
  background:var(--card-bg,rgba(255,255,255,.06)); color:var(--text,#fff);
  font-size:14px; cursor:pointer; transition:border-color .15s,color .15s;
}
.its-btn.active { border-color:var(--accent,#1D9E75); color:var(--accent,#1D9E75); }
.its-btn.its-warn-btn { border-color:#f59e0b; color:#f59e0b; }
.its-btn.its-error-btn { border-color:#ef4444; color:#ef4444; }
.its-btn.its-disabled { opacity:0.35; pointer-events:none; }
.its-rec {
  font-size:11px; color:var(--accent,#1D9E75); margin-top:5px;
  display:flex; align-items:center; gap:4px;
}
.its-inline-warn {
  font-size:12px; color:#f59e0b; margin-top:5px;
  padding:4px 8px; border-left:2px solid #f59e0b; background:rgba(245,158,11,.08); border-radius:0 4px 4px 0;
}
.its-inline-error {
  font-size:12px; color:#ef4444; margin-top:5px;
  padding:4px 8px; border-left:2px solid #ef4444; background:rgba(239,68,68,.08); border-radius:0 4px 4px 0;
}
.its-validation-box { margin-top:14px; }
.its-conflict-item {
  display:flex; align-items:flex-start; gap:6px;
  font-size:13px; color:#ef4444; padding:6px 0; border-bottom:1px solid rgba(239,68,68,.15);
}
.its-warning-item {
  display:flex; align-items:flex-start; gap:6px;
  font-size:13px; color:#f59e0b; padding:6px 0; border-bottom:1px solid rgba(245,158,11,.1);
}
.its-valid-item { font-size:13px; color:#1D9E75; padding:6px 0; }
.its-score-bar {
  height:4px; border-radius:2px; background:rgba(255,255,255,.1); margin-top:8px;
}
.its-score-fill { height:100%; border-radius:2px; transition:width .3s; }
