/* ─── DESIGN TOKENS ─── */
:root {
  /* Surfaces — stepped depth */
  --bg:      #080808;
  --bg2:     #101010;
  --surface: #161616;
  --card:    #1C1C1C;
  --card2:   #242424;
  --border:  #2C2C2C;
  --border2: #3A3A3A;
  --faint:   #181818;

  /* Accent — blood red (primary) */
  --accent:        #C41230;
  --accent-dim:    rgba(196,18,48,.12);
  --accent-glow:   0 0 20px rgba(196,18,48,.25);
  --accent-border: rgba(196,18,48,.35);
  /* legacy aliases — do not use in new code */
  --lime:       var(--accent);
  --lime-dim:   var(--accent-dim);
  --lime-glow:  var(--accent-glow);
  --red:        var(--accent);
  --red-dim:    var(--accent-dim);
  --red-border: var(--accent-border);

  /* Danger — error / destructive action */
  --danger:     #FF3B5C;
  --danger-dim: rgba(255,59,92,.12);

  /* Warning — AMRAP / intensity marker */
  --warning:     #C47A35;
  --warning-dim: rgba(196,122,53,.12);
  --orange:      var(--warning);
  --orange-dim:  var(--warning-dim);

  /* Positive — improvement / PR */
  --positive:        #3A7D5C;
  --positive-dim:    rgba(58,125,92,.12);
  --positive-border: rgba(58,125,92,.3);
  --green:           var(--positive);
  --green-dim:       var(--positive-dim);

  /* Gold — achievement / rank badge */
  --gold:        #B87333;
  --gold-dim:    rgba(184,115,51,.12);
  --gold-border: rgba(184,115,51,.3);
  --gold-glow:   0 0 16px rgba(184,115,51,.2);

  /* Rank colors */
  --rank-msmk: #D4AF37;
  --rank-ms:   #6B8CBA;
  --rank-kms:  #8B6BA8;

  /* Text */
  --text:  #F0EDE8;
  --text2: #909090;
  --muted: var(--text2);
  --fg:    var(--text);
  --white: #FFFFFF;

  /* Radii — brutal / zero-round */
  --r:  2px;
  --r2: 3px;
  --r3: 4px;

  /* Easing */
  --snap:   cubic-bezier(0.25, 0, 0, 1);
  --ease:   cubic-bezier(0, 0, 0.2, 1);
  --spring: cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* ─── RESET ─── */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
html, body { height:100%; overscroll-behavior-y: contain; background-color:var(--bg); background-image:url('/bg.jpg'); background-image:url('/bg.webp'); background-size:cover; background-position:center; background-attachment:scroll; color:var(--text);
  font-family:'Barlow', sans-serif; font-size:15px; line-height:1.5; overflow-x:hidden; }

/* Grain overlay — scratched metal feel */
body::after { content:''; position:fixed; inset:0; pointer-events:none; z-index:999;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
  opacity:.04; mix-blend-mode:overlay; }
/* ─── LIFTCLUB LOGO ─── */
.lc-logo { mix-blend-mode:screen; display:block; margin:0 auto; object-fit:contain; }
.lc-logo-sm { width:80px; opacity:.7; }
.lc-logo-md { width:140px; }
.lc-logo-lg { width:170px; margin-bottom:8px; }
/* ─── LAYOUT ─── */
#app { max-width:480px; margin:0 auto; min-height:100vh; position:relative; z-index:1; background:rgba(2,2,2,0.82); }
.screen { display:none; min-height:100vh; padding-bottom:84px; overflow-y:auto; }
.screen.active { display:block; }

/* ─── TYPOGRAPHY SCALE ───────────────────────────────────────────────
   Roles:
   t-display  → hero weight numbers on session screen (72px)
   t-screen   → page header title (36px)
   t-title    → modal / card headline (26px)
   t-heading  → section subheading (20px)
   t-stat     → dashboard number chips (32px)
   t-subhead  → exercise names, secondary headlines (16px)
   t-body     → readable paragraph text (15px)
   t-body-sm  → secondary / helper text (13px)
   t-label    → ALL CAPS section dividers (10px)
   t-caption  → muted helper text (12px)
   t-mono     → timer, codes — tabular (inherit)
   t-tag      → badge / protocol / rank label (9px)
──────────────────────────────────────────────────────────────────── */

.t-display {
  font-family:'Barlow Condensed',sans-serif;
  font-size:72px; font-weight:800;
  letter-spacing:-2px; line-height:1;
}
.t-screen {
  font-family:'Oswald',sans-serif;
  font-size:36px; font-weight:700;
  letter-spacing:.5px; line-height:1;
  text-transform:uppercase;
}
.t-title {
  font-family:'Oswald',sans-serif;
  font-size:26px; font-weight:700;
  letter-spacing:.3px; line-height:1.1;
  text-transform:uppercase;
}
.t-heading {
  font-family:'Oswald',sans-serif;
  font-size:20px; font-weight:700;
  letter-spacing:.3px; line-height:1.1;
  text-transform:uppercase;
}
.t-stat {
  font-family:'Barlow Condensed',sans-serif;
  font-size:32px; font-weight:800;
  letter-spacing:-1px; line-height:1;
}
.t-subhead {
  font-family:'Barlow Condensed',sans-serif;
  font-size:16px; font-weight:700;
  letter-spacing:.5px; line-height:1.2;
}
.t-body {
  font-family:'Barlow',sans-serif;
  font-size:15px; font-weight:400;
  line-height:1.55;
}
.t-body-sm {
  font-family:'Barlow',sans-serif;
  font-size:13px; font-weight:400;
  line-height:1.5;
}
.t-label {
  font-family:'Barlow Condensed',sans-serif;
  font-size:10px; font-weight:700;
  letter-spacing:2px; text-transform:uppercase;
  color:var(--text2);
}
.t-caption {
  font-family:'Barlow',sans-serif;
  font-size:12px; font-weight:400;
  line-height:1.5; color:var(--text2);
}
.t-mono {
  font-family:'Barlow Condensed',sans-serif;
  font-weight:700; letter-spacing:3px;
  font-variant-numeric:tabular-nums;
}
.t-tag {
  font-family:'Barlow Condensed',sans-serif;
  font-size:9px; font-weight:700;
  letter-spacing:2px; text-transform:uppercase;
}

/* ─── HEADER ─── */
.hdr { padding:52px 22px 16px; }
.hdr h1 { font-family:'Oswald',sans-serif; font-size:42px; font-weight:700;
  letter-spacing:-.5px; line-height:1; text-transform:uppercase;
  text-shadow: 2px 2px 0px rgba(0,0,0,.9); }
.hdr p  { font-family:'Barlow',sans-serif; font-size:13px; color:var(--text2); margin-top:5px; line-height:1.4; }

/* ─── BOTTOM NAV ─── */
#nav { position:fixed; bottom:0; left:50%; transform:translateX(-50%);
  width:100%; max-width:480px; z-index:100;
  background:rgba(8,8,8,.88);
  backdrop-filter:blur(20px) saturate(160%);
  -webkit-backdrop-filter:blur(20px) saturate(160%);
  border-top:1px solid var(--border); padding:6px 0 22px; display:flex; }
.nav-btn { flex:1; display:flex; flex-direction:column; align-items:center; gap:3px;
  background:none; border:none; color:var(--text2);
  font-size:10px; font-weight:700; letter-spacing:0.6px; text-transform:uppercase;
  cursor:pointer; padding:6px 4px; transition:color .15s var(--snap); position:relative;
  font-family:'Barlow Condensed',sans-serif; min-width:0; }
.nav-btn::before { content:''; position:absolute; top:-6px; left:50%;
  transform:translateX(-50%) scaleX(0); width:28px; height:2px;
  background:var(--accent); transition:transform .15s var(--snap); }
.nav-btn:hover { color:var(--text); }
.nav-btn.active { color:var(--accent); }
.nav-btn.active::before { transform:translateX(-50%) scaleX(1); }
.nav-btn svg { width:22px; height:22px; }
.nav-barbell-icon { width:22px; height:22px; filter:invert(.45); transition:filter .15s; }
.nav-btn:hover .nav-barbell-icon { filter:invert(.85); }
.nav-btn.active .nav-barbell-icon { filter:invert(1) sepia(1) saturate(5) hue-rotate(315deg) brightness(.85); }

/* ─── SECTION ─── */
.section { padding:20px 22px 0; }
.section + .section { padding-top:24px; }

/* ─── CARD ─── */
.card { background:var(--card); border-radius:var(--r3); padding:20px;
  border:1px solid var(--border); transition:border-color .15s var(--snap); }
.card:hover { border-color:var(--border2); }
.card + .card { margin-top:8px; }

/* ─── BADGE ─── */
.badge { display:inline-flex; align-items:center; padding:3px 9px;
  border-radius:3px; font-size:9px; font-weight:700; letter-spacing:2px;
  text-transform:uppercase; font-family:'Barlow Condensed',sans-serif; }
.badge-3  { background:var(--red-dim);             color:var(--red);    border:1px solid var(--red-border); }
.badge-6  { background:rgba(196,18,48,.07);         color:#A01028;       border:1px solid rgba(196,18,48,.2); }
.badge-10 { background:rgba(240,237,232,.06);       color:var(--muted);  border:1px solid rgba(240,237,232,.12); }

/* ─── BUTTONS ─── */
.btn { display:flex; align-items:center; justify-content:center; gap:8px;
  width:100%; padding:15px 20px; border-radius:var(--r); border:none;
  font-size:12px; font-weight:700; cursor:pointer;
  transition:transform .08s var(--snap), box-shadow .08s var(--snap), background .12s var(--snap), opacity .08s;
  letter-spacing:2.5px; text-transform:uppercase; font-family:'Barlow Condensed',sans-serif; }

/* PRIMARY — хромированная сталь под кровью */
.btn-primary {
  background: linear-gradient(180deg, #E31535 0%, #A01028 100%);
  color: #fff;
  box-shadow: 0 4px 0 #6B0018, 0 6px 18px rgba(196,18,48,.35);
  text-shadow: 0 1px 2px rgba(0,0,0,.5);
}
.btn-primary:hover { background: linear-gradient(180deg, #F0182F 0%, #B01230 100%); }
.btn-primary:active {
  transform: translateY(3px);
  box-shadow: 0 1px 0 #6B0018, 0 2px 8px rgba(196,18,48,.2);
}

/* SECONDARY — тёмная сталь */
.btn-secondary {
  background: linear-gradient(180deg, #2A2A2A 0%, #1A1A1A 100%);
  color: var(--text);
  border: 1px solid var(--border2);
  box-shadow: 0 3px 0 #0A0A0A;
}
.btn-secondary:hover { background: linear-gradient(180deg, #303030 0%, #222222 100%); }
.btn-secondary:active { transform: translateY(2px); box-shadow: 0 1px 0 #0A0A0A; }

.btn-danger  { background:var(--accent-dim); color:var(--accent); border:1px solid var(--accent-border); }
.btn-danger:hover  { background:rgba(196,18,48,.18); }
.btn-success { background:var(--positive-dim); color:var(--positive); border:1px solid var(--positive-border); }
.btn-success:hover  { background:rgba(58,125,92,.2); }
.btn-sm { padding:9px 16px; font-size:10px; border-radius:var(--r); width:auto; letter-spacing:2px; }
.btn-ghost { background:transparent; border:1px solid var(--border2); color:var(--muted); font-size:12px; padding:10px; letter-spacing:1px; }
.btn-ghost:hover { border-color:var(--accent); color:var(--accent); }

/* ─── INPUTS ─── */
.input { width:100%; background:var(--card2); border:1px solid var(--border2);
  border-radius:2px; padding:12px 14px; color:var(--text); font-size:15px;
  font-family:'Barlow',sans-serif; outline:none;
  border-bottom: 2px solid var(--border2);
  transition:border-color .12s var(--snap), box-shadow .12s var(--snap); }
.input:focus { border-color:var(--accent); border-bottom-color:var(--accent); box-shadow:0 0 0 2px var(--accent-dim); }
.input-label { font-family:'Barlow Condensed',sans-serif; font-size:10px; font-weight:700;
  text-transform:uppercase; letter-spacing:2px; color:var(--text2); margin-bottom:6px; }
.form-group { margin-bottom:14px; }
select.input { appearance:none; }

/* ─── STATS ROW ─── */
.stats-row { display:grid; grid-template-columns:1fr 1fr; gap:8px; padding:0 22px; }
.stat-chip { background:var(--card); border:1px solid var(--border); border-radius:var(--r2);
  padding:16px; position:relative; overflow:hidden;
  border-top: 3px solid var(--accent); }
.stat-chip::before { content:''; position:absolute; top:0; left:0; right:0; height:3px;
  background: linear-gradient(90deg, var(--accent) 0%, rgba(196,18,48,.3) 100%); opacity:1; }
.stat-val  { font-family:'Barlow Condensed',sans-serif; font-size:42px; font-weight:800;
  letter-spacing:-1px; color:var(--text); line-height:1;
  text-shadow: 0 2px 4px rgba(0,0,0,.8), 0 0 20px rgba(196,18,48,.1); }
.stat-label { font-family:'Barlow Condensed',sans-serif; font-size:10px; font-weight:700;
  text-transform:uppercase; letter-spacing:2px; color:var(--text2); margin-top:5px; }

/* ─── EXERCISE ITEM (program) ─── */
.ex-item { display:flex; align-items:center; gap:12px; background:var(--card);
  border-radius:var(--r2); padding:14px 16px; border:1px solid var(--border);
  border-left:3px solid transparent;
  margin-bottom:6px; cursor:pointer;
  transition:border-color .12s var(--snap), background .12s var(--snap); }
.ex-item:hover  { background:var(--surface); border-color:var(--border2); }
.ex-item:active { background:var(--card2); }
.ex-icon { width:42px; height:42px; border-radius:var(--r); display:flex;
  align-items:center; justify-content:center; flex-shrink:0;
  font-family:'Barlow Condensed',sans-serif; font-size:11px; font-weight:800; letter-spacing:1px; }
.ex-icon-3  { background:var(--red-dim);             color:var(--red); }
.ex-icon-6  { background:rgba(196,18,48,.07);         color:#A01028; }
.ex-icon-10 { background:rgba(240,237,232,.06);       color:var(--muted); }
.ex-info { flex:1; min-width:0; }
.ex-name { font-weight:600; font-size:15px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  font-family:'Barlow',sans-serif; }
.ex-meta { font-size:11px; color:var(--muted); margin-top:2px; display:flex; align-items:center; gap:6px;
  font-family:'Barlow Condensed',sans-serif; letter-spacing:.5px; }
.ex-wt   { font-family:'Barlow Condensed',sans-serif; font-size:22px; font-weight:800; text-align:right; flex-shrink:0; line-height:1; }
.ex-wt small { font-size:11px; font-family:'Barlow',sans-serif; color:var(--muted); }

/* ─── SESSION SCREEN ─── */
.s-header { padding:16px 22px 12px; }
.s-counter { font-size:10px; color:var(--muted); font-weight:700;
  text-transform:uppercase; letter-spacing:2px; margin-bottom:4px;
  font-family:'Barlow Condensed',sans-serif; }
.s-exname  { font-family:'Oswald',sans-serif; font-size:36px; font-weight:700;
  letter-spacing:.5px; line-height:1; text-transform:uppercase; }

.session-progress { display:flex; gap:3px; padding:0 22px 4px; }
.sp-dot { height:3px; border-radius:0; flex:1; background:var(--border2); transition:background .1s var(--snap); }
.sp-dot.done    { background:var(--red); }
.sp-dot.current { background:rgba(196,18,48,.4); }

/* ─── CALCULATOR ─── */
.calc-inputs { display:flex; gap:10px; margin-bottom:20px; }
.calc-inputs .input { flex:1; text-align:center; font-family:'Barlow Condensed',sans-serif;
  font-size:22px; font-weight:700; }
.formula-card { background:var(--card); border:1px solid var(--border);
  border-radius:var(--r2); padding:14px 16px; margin-bottom:8px;
  display:flex; align-items:center; justify-content:space-between;
  transition:all .1s var(--snap); border-left:3px solid transparent; }
.formula-card.recommended { border-left-color:var(--red); background:var(--card2); }
.formula-card .f-name { font-size:13px; font-weight:600; font-family:'Barlow',sans-serif; }
.formula-card .f-hint { font-size:10px; color:var(--muted); margin-top:2px; }
.formula-card .f-result { font-family:'Barlow Condensed',sans-serif; font-size:24px; font-weight:800; color:var(--text); }
.formula-card.recommended .f-result { color:var(--red); }
.formula-card .f-rec-badge { font-size:9px; color:var(--red); font-weight:700;
  letter-spacing:2px; text-transform:uppercase; margin-top:2px;
  font-family:'Barlow Condensed',sans-serif; }
.apre-result-row { display:flex; gap:8px; margin-top:16px; }
.apre-res-chip { flex:1; background:var(--card); border:1px solid var(--border);
  border-radius:var(--r); padding:12px 10px; text-align:center; }
.apre-res-chip .ar-proto { font-size:10px; color:var(--muted); font-weight:700;
  letter-spacing:2px; text-transform:uppercase; margin-bottom:4px;
  font-family:'Barlow Condensed',sans-serif; }
.apre-res-chip .ar-wt { font-family:'Barlow Condensed',sans-serif; font-size:20px;
  font-weight:800; color:var(--red); }
.apre-res-chip .ar-kg { font-size:10px; color:var(--muted); }

/* Timer */
.timer-bar { display:flex; align-items:center; gap:8px; padding:12px 22px; }
.timer-label { font-family:'Barlow Condensed',sans-serif; font-size:10px; font-weight:700;
  color:var(--text2); text-transform:uppercase; letter-spacing:2px; }
.timer-disp { font-family:'Barlow Condensed',sans-serif; font-size:22px; font-weight:700;
  color:var(--text); background:var(--card); border:1px solid var(--border2);
  border-radius:var(--r); padding:8px 16px; min-width:72px; text-align:center;
  letter-spacing:3px; font-variant-numeric:tabular-nums; }
.timer-rest { font-family:'Barlow Condensed',sans-serif; font-size:11px;
  color:var(--text2); margin-left:4px; letter-spacing:.5px; }

/* Session actions */
.s-actions  { padding:8px 22px 4px; }

/* Set cards */
.sets-wrap { padding:10px 22px; display:flex; flex-direction:column; gap:8px; }

.set-card { background:var(--card); border:1px solid var(--border);
  border-radius:var(--r2); padding:18px; position:relative;
  transition:border-left-color .12s var(--snap), background .12s var(--snap), opacity .12s;
  border-left:4px solid transparent; }
.set-edit-btn {
  position:absolute; top:12px; right:12px;
  background:none; border:none; color:var(--muted); cursor:pointer;
  padding:4px; line-height:0; transition:color .15s; -webkit-tap-highlight-color:transparent; }
.set-edit-btn:hover, .set-edit-btn:active { color:var(--text2); }
.set-card.completed    { opacity:.35; }

/* Done card — выполнено, зелёная метка */
.set-card.done {
  border-left-color: var(--positive);
  background: var(--card);
  opacity: .7;
}

/* Active card — в работе, красная линия + тёмный фон */
.set-card.active {
  border-left-color: var(--accent);
  background: #1A1010;
  box-shadow: inset 0 0 0 1px rgba(196,18,48,.12), 0 4px 24px rgba(0,0,0,.5);
}
.set-card.amrap-active {
  border-left-color: var(--warning);
  background: #1A1509;
  box-shadow: inset 0 0 0 1px rgba(196,122,53,.12), 0 4px 24px rgba(0,0,0,.5);
}

.set-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.set-num { font-size:10px; font-weight:700; text-transform:uppercase;
  letter-spacing:2px; color:var(--muted); font-family:'Barlow Condensed',sans-serif; }

.set-type-badge { font-size:9px; font-weight:700; padding:2px 8px;
  border-radius:3px; text-transform:uppercase; letter-spacing:2px;
  font-family:'Barlow Condensed',sans-serif; }
.stb-warmup     { background:rgba(104,104,104,.12);      color:var(--text2); }
.stb-activation { background:var(--accent-dim);         color:var(--accent); }
.stb-amrap      { background:var(--warning-dim);        color:var(--warning); }
.stb-work       { background:var(--positive-dim);       color:var(--positive); }

.rpe-row { display:flex; gap:5px; margin-top:12px; }
.rpe-btn { flex:1; height:34px; border-radius:var(--r); border:1px solid var(--border);
  background:var(--faint); color:var(--text2); font-size:12px; font-weight:700;
  cursor:pointer; font-family:'Barlow Condensed',sans-serif; letter-spacing:1px;
  transition:background .08s var(--snap), color .08s, border-color .08s; }
.rpe-btn:hover  { color:var(--text); border-color:var(--border2); }
.rpe-btn.active { background:var(--warning-dim); color:var(--warning); border-color:rgba(196,122,53,.4); }
.rpe-badge { display:inline-block; padding:2px 7px; border-radius:3px; font-size:10px; font-weight:700;
  font-family:'Barlow Condensed',sans-serif; background:var(--orange-dim); color:var(--orange); margin-left:4px; }
.proto-rec { background:var(--card); border:1px solid var(--border); border-radius:var(--r2);
  padding:14px 16px; margin-bottom:8px; position:relative; overflow:hidden; }
.proto-rec::before { content:''; position:absolute; left:0; top:0; bottom:0; width:3px; }
.proto-rec-up::before   { background:var(--red); }
.proto-rec-down::before { background:var(--orange); }

.set-weight { font-family:'Barlow Condensed',sans-serif; font-size:70px; font-weight:800;
  letter-spacing:-2px; line-height:1; color:var(--white);
  text-shadow: 2px 3px 0px rgba(0,0,0,.9), 0 0 40px rgba(196,18,48,.08); }
.set-weight span { font-size:22px; font-weight:400; color:var(--muted);
  letter-spacing:0; font-family:'Barlow',sans-serif; text-shadow:none; }
.set-target { font-size:12px; color:var(--muted); margin-top:5px; }

/* Rep counter */
.rep-counter { display:flex; align-items:center; background:var(--card2);
  border:1px solid var(--border2); border-radius:var(--r); overflow:hidden; }
.rep-btn { width:52px; height:52px; background:none; border:none; color:var(--text);
  font-size:22px; cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition:background .08s; }
.rep-btn:active { background:var(--border2); }
.rep-count { width:60px; text-align:center; font-family:'Barlow Condensed',sans-serif; font-size:28px; font-weight:800; }

/* Adjustment result */
.adj-card { margin:4px 22px 8px; background:var(--card); border:1px solid var(--border2);
  border-left:3px solid var(--orange); border-radius:var(--r2); padding:18px;
  animation:snapIn .15s var(--snap); }
@keyframes slideIn { from{opacity:0;transform:translateY(6px)} to{opacity:1;transform:translateY(0)} }
.adj-label { font-size:10px; font-weight:700; text-transform:uppercase;
  letter-spacing:2px; color:var(--orange); margin-bottom:10px;
  font-family:'Barlow Condensed',sans-serif; }
.adj-weight-row { display:flex; align-items:baseline; gap:6px; }
.adj-weight { font-family:'Barlow Condensed',sans-serif; font-size:48px; font-weight:800; letter-spacing:-2px; }
.adj-kg { font-size:16px; color:var(--muted); }
.adj-delta { display:inline-flex; align-items:center; padding:2px 10px;
  border-radius:3px; font-size:13px; font-weight:700; font-family:'Barlow Condensed',sans-serif;
  margin-left:8px; letter-spacing:1px; }
.adj-up   { background:var(--positive-dim);  color:var(--positive); }
.adj-down { background:var(--accent-dim);    color:var(--accent); }
.adj-same { background:var(--faint);         color:var(--text2); }
.adj-desc { font-size:12px; color:var(--muted); margin-top:8px; line-height:1.6; }

/* ─── WEEK ROW ─── */
.week-row { display:flex; gap:4px; padding:0 22px; margin-bottom:20px; }
.week-day { flex:1; padding:10px 2px 9px; background:var(--card); border-radius:var(--r2);
  display:flex; flex-direction:column; align-items:center; gap:5px;
  font-size:9px; font-weight:700; color:var(--text2); border:1px solid var(--border);
  text-transform:uppercase; letter-spacing:1px; font-family:'Barlow Condensed',sans-serif;
  transition:border-color .12s var(--snap); }
.week-day .dot { width:5px; height:5px; border-radius:50%; background:transparent;
  transition:background .12s var(--snap), box-shadow .12s; }
.week-day.has-session { border-color:var(--border2); }
.week-day.has-session .dot { background:var(--accent); }
.week-day.today { border-color:var(--accent-border); color:var(--text); background:var(--surface); }
.week-day.today .dot { background:var(--accent); box-shadow:0 0 6px rgba(196,18,48,.7); }

/* ─── HISTORY ─── */
.hist-item { background:var(--card); border:1px solid var(--border);
  border-left:3px solid var(--border2); border-radius:2px; padding:16px; margin-bottom:6px; }
.hist-date { font-family:'Oswald',sans-serif; font-size:13px; font-weight:700;
  text-transform:uppercase; letter-spacing:2px; color:var(--text);
  padding-bottom:10px; border-bottom:1px solid var(--border); margin-bottom:2px; }
.hist-row  { display:flex; justify-content:space-between; align-items:center;
  padding:6px 0; font-size:13px; border-bottom:1px solid var(--border); }
.hist-row:last-child { border-bottom:none; padding-bottom:0; }
.hist-row .nm  { color:var(--text2); font-family:'Barlow',sans-serif; }
.hist-row .val { font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:15px; }

/* hist-card (renderHistLog v2) */
.hist-card { background:var(--card); border:1px solid var(--border);
  border-left:3px solid var(--border2); border-radius:2px; padding:14px 16px; margin-bottom:6px; }
.hist-card:hover { border-left-color:var(--accent); }
.hist-date-row { display:flex; align-items:center; justify-content:space-between;
  margin-bottom:2px; }
.hist-card .hist-date { font-family:'Oswald',sans-serif; font-size:12px; font-weight:600;
  text-transform:uppercase; letter-spacing:1.5px; color:var(--muted);
  border-bottom:none; padding-bottom:0; margin-bottom:0; }
.hist-delete-btn { background:none; border:none; cursor:pointer; padding:2px 4px;
  color:var(--muted); opacity:0; transition:opacity .15s, color .15s; flex-shrink:0; }
.hist-delete-btn svg { width:15px; height:15px; display:block; }
.hist-card:hover .hist-delete-btn { opacity:1; }
.hist-delete-btn:hover { color:var(--accent); }
.hist-ctx { font-family:'Barlow Condensed',sans-serif; font-size:15px; font-weight:700;
  color:var(--text); text-transform:uppercase; letter-spacing:.5px; margin-bottom:8px; }
.hist-result { padding:6px 0; border-bottom:1px solid var(--border); font-size:13px; }
.hist-result:last-child { border-bottom:none; padding-bottom:0; }
.hist-ex   { flex:1; color:var(--text2); }
.hist-wt   { font-family:'Barlow Condensed',sans-serif; font-weight:700;
  font-size:14px; color:var(--text); }
.hist-reps { color:var(--muted); font-size:12px; }
.hist-delta.positive { color:var(--green); font-size:12px; }
.hist-delta.danger   { color:var(--accent); font-size:12px; }
.hist-delta.muted    { color:var(--muted); font-size:12px; }
.hist-card--skipped  { opacity:.55; border-style:dashed; }
.hist-skip-label     { font-size:12px; color:var(--muted); margin-top:2px; font-style:italic; }
.hist-rpe            { font-size:11px; color:var(--text2); background:var(--bg2);
  border:1px solid var(--border); border-radius:4px; padding:1px 5px; flex-shrink:0; }

/* Expandable result row */
.hist-result--expandable { cursor:pointer; }
.hist-result-summary     { display:flex; align-items:center; gap:8px; }
.hist-chevron            { margin-left:auto; color:var(--muted); font-size:18px; line-height:1;
  transition:transform .18s; flex-shrink:0; }
.hist-result.open .hist-chevron { transform:rotate(90deg); }

/* Detail: per-set rows */
.hist-detail             { display:none; margin-top:8px; padding-top:8px;
  border-top:1px solid var(--border); }
.hist-result.open .hist-detail { display:block; }
.hist-set-row  { display:flex; align-items:center; gap:8px; padding:4px 0;
  font-size:12px; border-bottom:1px solid var(--border); flex-wrap:wrap; }
.hist-set-row:last-child { border-bottom:none; }
.hist-set-n    { width:18px; text-align:center; font-weight:700; color:var(--muted); flex-shrink:0; }
.hist-set-wt   { font-family:'Barlow Condensed',sans-serif; font-weight:700;
  font-size:13px; color:var(--text); flex-shrink:0; }
.hist-set-reps { color:var(--text2); flex-shrink:0; }
.hist-set-rpe  { color:var(--text2); background:var(--bg2); border:1px solid var(--border);
  border-radius:4px; padding:1px 5px; flex-shrink:0; font-size:11px; }
.hist-set-note { flex:1 1 100%; color:var(--muted); font-style:italic; font-size:11px;
  padding-left:26px; margin-top:1px; }

/* ─── EXERCISE START BUTTON ─── */
.ex-start-btn { width:40px; height:40px; border-radius:50%; background:var(--accent); border:none;
  cursor:pointer; display:flex; align-items:center; justify-content:center; flex-shrink:0;
  color:#fff; transition:background .12s var(--snap), transform .08s var(--snap), box-shadow .12s;
  box-shadow:0 0 16px rgba(196,18,48,.25); }
.ex-start-btn:hover  { background:#D4152F; box-shadow:0 0 22px rgba(196,18,48,.4); }
.ex-start-btn:active { transform:scale(.91); }

/* ─── CHART ─── */
.chart-wrap { margin-bottom:24px; }
.chart-title { font-family:'Oswald',sans-serif; font-size:14px; font-weight:700;
  letter-spacing:2px; text-transform:uppercase; color:var(--muted);
  margin-bottom:8px; display:flex; align-items:baseline; gap:10px; }
.chart-wt { font-family:'Oswald',sans-serif; font-size:26px; font-weight:700;
  color:var(--accent); letter-spacing:-0.5px;
  text-shadow: 0 2px 4px rgba(0,0,0,.6); }
.chart-box { height:110px; position:relative; }

/* ─── CALENDAR ─── */
.cal-wrap { padding:0 0 24px; }
.cal-nav { display:flex; align-items:center; justify-content:space-between; padding:4px 0 16px; }
.cal-month-label { font-family:'Oswald',sans-serif; font-size:18px; font-weight:700;
  letter-spacing:1.5px; text-transform:uppercase; color:var(--text); }
.cal-nav-btn { background:var(--card); border:1px solid var(--border2); border-radius:2px;
  color:var(--text); font-size:22px; line-height:1; width:36px; height:36px;
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  transition:background .1s, border-color .1s; }
.cal-nav-btn:hover { border-color:var(--accent); color:var(--accent); }
.cal-nav-btn:active { background:var(--card2); transform:scale(.93); }
.cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:3px; }
.cal-dow { text-align:center; font-size:9px; font-weight:700; letter-spacing:1px;
  color:var(--muted); padding:0 0 8px; text-transform:uppercase; }
.cal-day { position:relative; aspect-ratio:1; display:flex; flex-direction:column;
  align-items:center; justify-content:center; border-radius:2px;
  border:1px solid transparent; cursor:default; user-select:none; }
.cal-day--has-sess { cursor:pointer; background:var(--card); border-color:var(--border);
  border-left:2px solid var(--accent); transition:background .1s; }
.cal-day--has-sess:active { background:var(--card2); }
.cal-day--today { border-color:var(--accent); background:var(--accent-dim); }
.cal-day--today .cal-day-num { color:var(--accent); }
.cal-day-num { font-family:'Barlow Condensed',sans-serif; font-size:16px; font-weight:600;
  color:var(--text2); line-height:1; }
.cal-day--has-sess .cal-day-num { color:var(--text); }
.cal-day-badge { font-family:'Barlow Condensed',sans-serif; font-size:9px; font-weight:800;
  letter-spacing:.5px; color:var(--accent); margin-top:2px; line-height:1;
  text-transform:uppercase; }

/* Calendar day modal */
.cal-modal-date { font-family:'Oswald',sans-serif; font-size:16px; font-weight:600;
  letter-spacing:1px; color:var(--muted); margin-bottom:16px; text-transform:uppercase; }
.cal-modal-sessions { display:flex; flex-direction:column; gap:10px;
  max-height:62vh; overflow-y:auto; padding-right:2px; }
.cal-modal-sessions .hist-card { margin-bottom:0; }

/* ─── SCROLL X ─── */
.scroll-x { display:flex; gap:8px; overflow-x:auto; padding:0 22px 4px;
  scrollbar-width:none; -ms-overflow-style:none; }
.scroll-x::-webkit-scrollbar { display:none; }

/* ─── PROTOCOL SELECTOR ─── */
.proto-sel { display:flex; gap:6px; }
.proto-btn { flex:1; padding:10px 6px; background:var(--card2); border:1px solid var(--border2);
  border-radius:var(--r); color:var(--muted); font-size:10px; font-weight:700;
  cursor:pointer; text-align:center; line-height:1.4; transition:all .1s var(--snap);
  font-family:'Barlow Condensed',sans-serif; letter-spacing:1.5px; text-transform:uppercase; }
.proto-btn.sel-3  { background:var(--red-dim);          border-color:var(--red);    color:var(--red); }
.proto-btn.sel-6  { background:rgba(196,18,48,.07);      border-color:#A01028;       color:#A01028; }
.proto-btn.sel-10 { background:rgba(240,237,232,.06);    border-color:var(--border2);color:var(--muted); }

/* ─── WEIGHT MODE TOGGLE ─── */
.mode-toggle { display:flex; background:var(--card2); border:1px solid var(--border2);
  border-radius:var(--r); overflow:hidden; margin-bottom:14px; }
.mode-btn { flex:1; padding:9px 6px; background:none; border:none; color:var(--muted);
  font-size:10px; font-weight:700; cursor:pointer; transition:all .1s var(--snap);
  letter-spacing:2px; text-transform:uppercase; font-family:'Barlow Condensed',sans-serif; }
.mode-btn.active { background:var(--red); color:#fff; }

.calc-preview { background:var(--card2); border:1px solid var(--border2);
  border-radius:var(--r); padding:12px 14px; margin-top:10px; display:none; }
.calc-preview.show { display:block; }
.calc-row { display:flex; justify-content:space-between; font-size:12px; padding:3px 0; }
.calc-row .lbl { color:var(--muted); }
.calc-row .val { font-family:'Barlow Condensed',sans-serif; font-weight:700; }

/* ─── ONBOARDING ─── */
.ob-h { font-family:'Oswald',sans-serif; font-size:22px; font-weight:700;
  letter-spacing:.3px; text-transform:uppercase; margin-bottom:6px; }
#onboarding { position:fixed; inset:0; background:var(--bg); z-index:500;
  display:flex; flex-direction:column; overflow-y:auto; }
#onboarding.hidden { display:none; }
.ob-wrap { max-width:480px; margin:0 auto; width:100%; padding:0 22px 40px; }
.ob-step { display:none; }
.ob-step.active { display:block; }
.ob-dots { display:flex; justify-content:center; gap:6px; padding:20px 0 0; margin-bottom:32px; }
.ob-dot { width:6px; height:6px; border-radius:50%; background:var(--border2); transition:all .12s var(--snap); }
.ob-dot.active { background:var(--red); width:24px; border-radius:2px; }

/* ─── ONBOARDING EXTRAS ─── */
.days-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:16px; }
.days-btn { padding:18px 12px; background:var(--card); border:1px solid var(--border);
  border-radius:var(--r2); color:var(--muted); font-size:10px; font-weight:700;
  cursor:pointer; text-align:center; transition:all .1s var(--snap); display:flex;
  flex-direction:column; align-items:center; gap:4px;
  text-transform:uppercase; letter-spacing:1.5px; font-family:'Barlow Condensed',sans-serif; }
.days-btn .days-num { font-family:'Oswald',sans-serif; font-size:32px; font-weight:700; color:var(--text); line-height:1; }
.days-btn.active { background:var(--red-dim); border-color:var(--red-border); }
.days-btn.active, .days-btn.active .days-num { color:var(--red); }
.ob-proto-rec { background:var(--card); border:1px solid var(--border);
  border-left:3px solid var(--red); border-radius:var(--r2); padding:14px; margin-bottom:16px; }
.ob-proto-soon { opacity:.5; }
.rm-card { background:var(--card); border:1px solid var(--border); border-radius:var(--r2); overflow:hidden; margin-bottom:12px; }
.rm-row { display:flex; align-items:center; gap:12px; padding:14px 16px; }
.rm-row + .rm-row { border-top:1px solid var(--border); }
.rm-ex-info { flex:1; }
.rm-ex-name { font-size:14px; font-weight:600; font-family:'Barlow',sans-serif; }
.rm-ex-sub  { font-size:11px; color:var(--muted); margin-top:2px; }
.rm-input   { width:90px; text-align:center; }
.ob-goal-grid { display:flex; flex-direction:column; gap:8px; margin-bottom:16px; }
.ob-goal-btn { display:flex; align-items:center; gap:14px; background:var(--card);
  border:1px solid var(--border); border-radius:var(--r2); padding:14px 16px;
  cursor:pointer; transition:all .1s var(--snap); text-align:left; }
.ob-goal-btn.active { border-color:var(--red); background:var(--red-dim); border-left-width:3px; }
.ob-goal-icon { font-size:22px; line-height:1; flex-shrink:0; width:36px; text-align:center; }
.ob-goal-name { font-family:'Oswald',sans-serif; font-size:14px; font-weight:600; text-transform:uppercase; letter-spacing:.5px; }
.ob-goal-sub  { font-size:11px; color:var(--muted); margin-top:2px; font-family:'Barlow',sans-serif; }

.level-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:16px; }
.level-card { background:var(--card); border:1px solid var(--border); border-radius:var(--r2);
  padding:16px; cursor:pointer; transition:all .1s var(--snap); border-left:3px solid transparent; }
.level-card.active { border-color:var(--red); background:var(--red-dim); border-left-color:var(--red); }
.level-icon { margin-bottom:8px; display:flex; align-items:center; justify-content:center; color:var(--muted); }
.level-name { font-family:'Oswald',sans-serif; font-size:13px; font-weight:600; text-transform:uppercase; letter-spacing:.5px; }
.level-desc { font-size:11px; color:var(--muted); margin-top:3px; line-height:1.4; font-family:'Barlow',sans-serif; }

/* ─── MODAL ─── */
.modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,.88);
  display:none; align-items:flex-end; z-index:200; overflow:hidden; }
.modal-overlay.open { display:flex; }
.modal { background:var(--bg2); border-radius:var(--r3) var(--r3) 0 0; padding:22px 22px 40px;
  width:100%; max-width:480px; margin:0 auto; animation:slideUp .18s var(--snap);
  max-height:90vh; overflow-y:scroll; -webkit-overflow-scrolling:touch; overscroll-behavior:contain; }
@keyframes slideUp { from{transform:translateY(100%)} to{transform:translateY(0)} }
.modal-handle { width:32px; height:3px; background:var(--border2); border-radius:2px; margin:0 auto 22px; }
.modal-title { font-family:'Oswald',sans-serif; font-size:26px; font-weight:700;
  margin-bottom:20px; text-transform:uppercase; letter-spacing:.3px; line-height:1.1; }

/* ─── PR VIDEO UPLOAD (Phase 2, VIDEO-02) ───────────────────────────────────── */
.pr-upload-track {
  background: var(--faint);
  border: 1px solid var(--border);
  border-radius: 4px;
  height: 6px;
  overflow: hidden;
}
.pr-upload-bar {
  height: 100%;
  width: 0%;
  background: var(--accent);
  transition: width .2s ease;
}
.pr-upload-bar.error {
  background: #c41230;
}

/* ─── PROFILE SETTINGS ─── */

/* Division iOS-toggle row */
.ps-div-row { display:flex; align-items:center; justify-content:space-between;
  background:var(--card); border:1px solid var(--border); border-radius:var(--r2);
  padding:14px 16px; margin-bottom:20px; }
.ps-div-label { font-family:'Barlow Condensed',sans-serif; font-size:15px; font-weight:700;
  text-transform:uppercase; letter-spacing:2px; color:var(--text); }
.ps-div-sub { font-size:11px; color:var(--muted); margin-top:3px; }
.ios-toggle { position:relative; width:48px; height:26px; border-radius:13px;
  background:var(--border2); border:none; cursor:pointer; flex-shrink:0;
  transition:background .22s var(--snap); }
.ios-toggle.on { background:var(--accent); }
.ios-toggle-thumb { position:absolute; top:3px; left:3px; width:20px; height:20px;
  border-radius:50%; background:#fff; transition:transform .22s var(--snap);
  box-shadow:0 1px 4px rgba(0,0,0,.5); }
.ios-toggle.on .ios-toggle-thumb { transform:translateX(22px); }

/* Federation list */
.ps-fed-list { background:var(--card); border:1px solid var(--border);
  border-radius:var(--r2); overflow:hidden; }
.ps-fed-row { width:100%; background:none; border:none; border-bottom:1px solid var(--border);
  padding:13px 16px; cursor:pointer; text-align:left; display:flex;
  align-items:center; justify-content:space-between; gap:12px;
  transition:background .12s var(--snap); }
.ps-fed-row:last-child { border-bottom:none; }
.ps-fed-row:active { background:var(--card2); }
.ps-fed-row-info { flex:1; min-width:0; }
.ps-fed-row-name { font-family:'Barlow Condensed',sans-serif; font-size:15px; font-weight:700;
  text-transform:uppercase; letter-spacing:2px; color:var(--text); }
.ps-fed-row.active .ps-fed-row-name { color:var(--red); }
.ps-fed-row-desc { font-size:11px; color:var(--muted); margin-top:3px; }
.ps-fed-row-check { width:18px; height:18px; border-radius:50%; border:1.5px solid var(--border2);
  flex-shrink:0; transition:all .15s var(--snap); }
.ps-fed-row.active .ps-fed-row-check { background:var(--accent); border-color:var(--accent);
  box-shadow:0 0 8px rgba(196,18,48,.4); }

/* ─── COMPLETE ─── */
.complete-icon { width:96px; height:96px; background:var(--accent-dim);
  border-radius:var(--r2); display:flex; align-items:center; justify-content:center;
  margin:0 auto 24px; border:1px solid var(--accent-border);
  box-shadow:0 0 40px rgba(196,18,48,.15); }
.complete-title { font-family:'Oswald',sans-serif; font-size:36px; font-weight:700;
  text-transform:uppercase; letter-spacing:.5px; line-height:1; }

/* ─── EMPTY STATE ─── */
.empty-state { text-align:center; padding:40px 20px; color:var(--muted); }
.empty-icon  { font-size:36px; margin-bottom:12px; }

/* ─── ANIMATIONS ─── */
.fade-up { animation:snapIn .12s var(--snap) both; }
@keyframes snapIn {
  from { opacity:0; transform:translateY(6px); }
  to   { opacity:1; transform:translateY(0); }
}
.stagger-1 { animation-delay:.03s; }
.stagger-2 { animation-delay:.06s; }
.stagger-3 { animation-delay:.09s; }
.stagger-4 { animation-delay:.12s; }

/* ─── DIVIDER ─── */
.divider { height:1px; background:var(--border); margin:16px 0; }

/* ─── PROG TABS ─── */
.prog-tabs { display:flex; gap:4px; padding:8px 22px 16px; }
.prog-tab { flex:1; padding:10px 8px; border-radius:2px; border:1px solid var(--border);
  background:var(--card); color:var(--muted); font-size:10px; font-weight:700;
  cursor:pointer; transition:background .12s var(--snap), color .12s, border-color .12s;
  font-family:'Barlow Condensed',sans-serif; letter-spacing:2px; text-transform:uppercase; }
.prog-tab:hover { color:var(--text); border-color:var(--border2); }
.prog-tab.active {
  background: linear-gradient(180deg, #E31535 0%, #A01028 100%);
  color: #fff;
  border-color: transparent;
  box-shadow: 0 3px 0 #6B0018;
  text-shadow: 0 1px 2px rgba(0,0,0,.4);
}
.prog-pane { display:none; }
.prog-pane.active { display:block; }

/* ─── НОРМАТИВЫ ─── */
.norm-settings { background:var(--card); border:1px solid var(--border);
  border-radius:var(--r2); padding:16px; margin-bottom:12px; display:flex; gap:10px; align-items:flex-end; }
.gender-toggle { display:flex; gap:4px; }
.gender-btn { padding:9px 16px; border-radius:var(--r); border:1px solid var(--border2);
  background:var(--card2); color:var(--muted); font-size:10px; font-weight:700;
  cursor:pointer; transition:all .1s var(--snap); text-transform:uppercase; letter-spacing:2px;
  font-family:'Barlow Condensed',sans-serif; }
.gender-btn.active { background:var(--red-dim); color:var(--red); border-color:var(--red-border); }
.norm-card { background:var(--card); border:1px solid var(--border); border-radius:var(--r3); padding:18px; margin-bottom:8px; }
.norm-header { display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:12px; }
.norm-exname { font-family:'Oswald',sans-serif; font-weight:700; font-size:20px; text-transform:uppercase; letter-spacing:.3px; }
.norm-rm { font-family:'Barlow Condensed',sans-serif; font-size:11px; color:var(--text2); margin-top:3px; letter-spacing:1.5px; }
.norm-bw-input { font-family:'Barlow Condensed',sans-serif; font-size:16px; font-weight:700; }
.rank-ladder { display:flex; gap:3px; margin-bottom:5px; }
.rank-rung { flex:1; height:5px; border-radius:0; background:var(--faint); transition:background .15s var(--snap); }
.rank-rung.filled-3    { background:#7A1020; }
.rank-rung.filled-2    { background:var(--warning); }
.rank-rung.filled-1    { background:var(--accent); }
.rank-rung.filled-kms  { background:var(--rank-kms); }
.rank-rung.filled-ms   { background:var(--rank-ms); }
.rank-rung.filled-msmk { background:var(--rank-msmk); }
.norm-progress-bar { height:4px; border-radius:0; background:var(--faint); overflow:hidden; margin:8px 0 5px; }
.norm-progress-fill { height:100%; }
.norm-progress-label { display:flex; justify-content:space-between; font-size:10px; color:var(--muted);
  font-weight:700; font-family:'Barlow Condensed',sans-serif; letter-spacing:1.5px; }
.rank-msmk { background:rgba(212,175,55,.12);  color:#D4AF37; border:1px solid rgba(212,175,55,.25); }
.rank-ms   { background:rgba(107,140,186,.12); color:#6B8CBA; border:1px solid rgba(107,140,186,.25); }
.rank-kms  { background:rgba(139,107,168,.12); color:#8B6BA8; border:1px solid rgba(139,107,168,.25); }
.rank-1    { background:var(--red-dim); color:var(--red); border:1px solid var(--red-border); }
.rank-2    { background:var(--orange-dim); color:var(--orange); border:1px solid rgba(196,122,53,.25); }
.rank-3    { background:rgba(82,82,82,.12); color:#666; border:1px solid rgba(82,82,82,.25); }
.rank-none { background:var(--faint); color:var(--muted); border:1px solid var(--border); }
.premium-icon { display:block; object-fit:contain; }

/* ─── AUTH SCREEN ─── */
#auth-screen { position:fixed; inset:0; background:var(--bg); z-index:600;
  display:flex; flex-direction:column; align-items:center; justify-content:flex-start;
  padding:48px 24px 32px; overflow-y:auto; }
#auth-screen.hidden { display:none; }
.auth-wrap { width:100%; max-width:400px; }
.auth-logo { text-align:center; margin-bottom:32px; }
.auth-tabs { display:flex; background:var(--card2); border:1px solid var(--border2);
  border-radius:var(--r); overflow:hidden; margin-bottom:22px; }
.auth-tab { flex:1; padding:11px; background:none; border:none; color:var(--muted);
  font-size:10px; font-weight:700; cursor:pointer; transition:all .1s var(--snap);
  font-family:'Barlow Condensed',sans-serif; letter-spacing:2.5px; text-transform:uppercase; }
.auth-tab.active { background:var(--red); color:#fff; }
.auth-error { background:var(--red-dim); color:var(--red); border:1px solid var(--red-border);
  border-radius:var(--r); padding:10px 14px; font-size:13px; margin-bottom:12px; display:none; }
.auth-error.show { display:block; }
.auth-skip { text-align:center; margin-top:20px; color:var(--muted); font-size:11px; cursor:pointer;
  padding:10px; font-family:'Barlow Condensed',sans-serif; letter-spacing:2px; text-transform:uppercase; }
.auth-skip:hover { color:var(--text); }

/* ─── SYNC INDICATOR ─── */
.sync-pill { display:inline-flex; align-items:center; gap:5px; padding:4px 10px;
  background:var(--card); border:1px solid var(--border); border-radius:3px;
  font-size:10px; font-weight:700; cursor:pointer; transition:border-color .1s var(--snap);
  font-family:'Barlow Condensed',sans-serif; color:var(--muted); letter-spacing:1.5px; text-transform:uppercase; }
.sync-pill:hover { border-color:var(--border2); }
.sync-dot { width:5px; height:5px; border-radius:50%; flex-shrink:0; }
.sync-online  { background:var(--red); box-shadow:0 0 4px rgba(196,18,48,.6); }
.sync-offline { background:var(--muted); }
.sync-busy    { background:var(--orange); animation:blink .7s ease infinite; }
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:.3} }
/* МСМК % tiers */
.sync-pill.pill-mid   { color:var(--warning);  border-color:rgba(196,122,53,.35); }
.sync-pill.pill-high  { color:var(--accent);   border-color:var(--accent-border); }
.sync-pill.pill-elite { color:#C9A227;          border-color:rgba(201,162,39,.4); }

/* ─── PROTOCOL PICKER (onboarding step 3) ─── */
.proto-pick-card {
  display:flex; align-items:center; gap:12px;
  background:var(--card); border:1px solid var(--border);
  border-left:3px solid transparent; border-radius:var(--r2);
  padding:14px 12px 14px 14px; margin-bottom:4px;
  cursor:pointer; transition:all .1s var(--snap);
  border-left-color: var(--proto-color, var(--border));
}
.proto-pick-card.active {
  background: rgba(196, 18, 48, 0.10);                          /* fallback iOS < 16.2 */
  background:color-mix(in srgb, var(--proto-color, var(--accent)) 10%, transparent);
  border-color: var(--proto-color, var(--accent));
  border-left-color: var(--proto-color, var(--accent));
}
.proto-pick-icon { font-size:24px; line-height:1; flex-shrink:0; width:32px; text-align:center; }
.proto-pick-body { flex:1; min-width:0; }
.proto-pick-name { font-family:'Oswald',sans-serif; font-size:15px; font-weight:700;
  text-transform:uppercase; letter-spacing:.4px; }
.proto-pick-sub  { font-size:11px; color:var(--muted); margin-top:2px;
  font-family:'Barlow Condensed',sans-serif; letter-spacing:1px; }
.proto-pick-level { font-size:10px; color:var(--muted); margin-top:3px;
  font-family:'Barlow',sans-serif; }
.proto-info-btn {
  flex-shrink:0; width:22px; height:22px; border-radius:50%;
  border:1px solid var(--border2); background:var(--card2);
  color:var(--muted); font-size:11px; font-weight:700;
  cursor:pointer; font-family:'Barlow',sans-serif;
  display:flex; align-items:center; justify-content:center;
  transition:all .1s var(--snap);
}
.proto-info-btn:hover { border-color:var(--text2); color:var(--text); }
.proto-info-panel {
  display:none; font-size:12px; color:var(--muted); line-height:1.5;
  background:var(--bg2); border:1px solid var(--border);
  border-top:none; border-radius:0 0 var(--r) var(--r);
  padding:10px 14px; margin-top:-4px; margin-bottom:4px;
  font-family:'Barlow',sans-serif;
}
.proto-info-panel.open { display:block; }

/* ─── LOGOUT BUTTON ─── */
.btn-logout {
  width:100%; padding:14px; border-radius:var(--r2);
  border:1px solid var(--border2); background:transparent;
  color:var(--muted); font-size:12px; font-weight:700;
  cursor:pointer; transition:all .1s var(--snap);
  font-family:'Barlow Condensed',sans-serif;
  letter-spacing:2px; text-transform:uppercase;
}
.btn-logout:hover { border-color:var(--danger); color:var(--danger); background:var(--danger-dim); }

/* ═══════════════════════════════════════════════════════════════════════════
   DASHBOARD & SESSION — missing classes (added to sync JS ↔ CSS)
   ═══════════════════════════════════════════════════════════════════════════ */

/* ─── STAT CARD (alias for stat-chip) ─── */
.stat-card { background:var(--card); border:1px solid var(--border);
  border-radius:var(--r2); padding:16px; position:relative; overflow:hidden; }
.stat-card::before { content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background:var(--accent); opacity:.5; }

/* ─── WEEK ROW (JS uses .week-dot / .week-label / .trained) ─── */
.week-day .week-dot { width:5px; height:5px; border-radius:50%;
  background:transparent; transition:background .12s var(--snap), box-shadow .12s; }
.week-day .week-label { font-family:'Barlow Condensed',sans-serif; font-size:9px;
  font-weight:700; text-transform:uppercase; letter-spacing:1px; }
.week-day.trained { border-color:var(--border2); }
.week-day.trained .week-dot { background:var(--accent); }
.week-day.today .week-dot { background:var(--accent); box-shadow:0 0 6px rgba(196,18,48,.7); }

/* ─── APRE EXERCISE DASH CARDS ─── */
.ex-dash-card { display:flex; align-items:center; gap:12px;
  background:var(--card); border:1px solid var(--border);
  border-left:3px solid var(--accent-border); border-radius:var(--r2);
  padding:14px 16px; margin-bottom:8px; cursor:pointer;
  transition:background .12s var(--snap), border-color .12s var(--snap); }
.ex-dash-card:hover  { background:var(--card2); border-color:var(--border2); }
.ex-dash-card:active { background:var(--surface); }
.ex-dash-left  { flex:1; min-width:0; }
.ex-dash-right { display:flex; align-items:center; gap:10px; flex-shrink:0; }
.ex-dash-name { font-family:'Barlow',sans-serif; font-size:15px; font-weight:600;
  margin-bottom:5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ex-dash-meta { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.ex-dash-last { font-family:'Barlow Condensed',sans-serif; font-size:11px;
  color:var(--muted); letter-spacing:.5px; }
.ex-dash-wt   { font-family:'Barlow Condensed',sans-serif; font-size:26px;
  font-weight:800; letter-spacing:-.5px; line-height:1; }
.ex-dash-wt small { font-size:12px; color:var(--muted); font-weight:400;
  font-family:'Barlow',sans-serif; margin-left:2px; }
.ex-dash-kg { font-size:11px; color:var(--muted); font-family:'Barlow',sans-serif;
  align-self:flex-end; padding-bottom:2px; }

/* ─── TIER BADGES ─── */
.tier-badge { display:inline-flex; align-items:center; justify-content:center;
  padding:2px 6px; border-radius:3px; font-family:'Barlow Condensed',sans-serif;
  font-size:10px; font-weight:700; letter-spacing:1px; flex-shrink:0; }
.tier-badge-t1 { background:var(--accent-dim); color:var(--accent); border:1px solid var(--accent-border); }
.tier-badge-t2 { background:var(--warning-dim); color:var(--warning); border:1px solid rgba(196,122,53,.3); }
.tier-badge-t3 { background:rgba(240,237,232,.05); color:var(--muted); border:1px solid var(--border); }

/* ─── SCHEDULED DAY CARD ─── */
.scheduled-card { background:var(--card); border:1px solid var(--border);
  border-left:3px solid var(--accent); border-radius:var(--r2); padding:16px; }
.scheduled-header { display:flex; align-items:center; justify-content:space-between;
  margin-bottom:8px; }
.scheduled-cycle { font-family:'Barlow Condensed',sans-serif; font-size:10px;
  font-weight:700; text-transform:uppercase; letter-spacing:2px; color:var(--muted); }
.scheduled-title { font-family:'Oswald',sans-serif; font-size:18px; font-weight:700;
  text-transform:uppercase; letter-spacing:.3px; margin-bottom:12px; color:var(--text); }
.scheduled-exlist { display:flex; flex-direction:column; gap:7px; margin-bottom:10px; }
.sched-ex-item { display:flex; align-items:center; gap:8px; }
.sched-ex-name { font-family:'Barlow',sans-serif; font-size:14px; font-weight:500;
  color:var(--text); }
.scheduled-notes { font-family:'Barlow Condensed',sans-serif; font-size:11px;
  color:var(--muted); letter-spacing:.5px; margin-top:10px; padding-top:10px;
  border-top:1px solid var(--border); }

/* ─── SESSION PROGRESS DOTS ─── */
.s-dot { height:3px; border-radius:0; flex:1; background:var(--border2);
  transition:background .1s var(--snap); }
.s-dot.done   { background:var(--accent); }
.s-dot.active { background:rgba(196,18,48,.4); }

/* ─── SESSION EXERCISE NAV (multi-exercise flow) ─── */
.sess-ex-nav { display:flex; gap:4px; padding:6px 22px; }
.sess-ex-pip { width:8px; height:8px; border-radius:50%; background:var(--border2);
  transition:background .12s var(--snap); flex-shrink:0; }
.sess-ex-pip.done    { background:var(--accent); }
.sess-ex-pip.current { background:var(--accent); opacity:.5; }

/* ─── SET CARD INTERNALS ─── */
.set-top { position:relative; padding-right:30px; }
.set-label { font-family:'Barlow Condensed',sans-serif; font-size:15px;
  color:var(--muted); margin-top:4px; letter-spacing:.5px; }
.set-rest  { font-family:'Barlow Condensed',sans-serif; font-size:11px;
  color:var(--text2); letter-spacing:1px; text-transform:uppercase; margin-top:4px; }
.set-actual { font-family:'Barlow Condensed',sans-serif; font-size:12px;
  color:var(--positive); margin-top:8px; letter-spacing:.5px; }
.notes-btn { position:absolute; top:0; right:0; background:none; border:none;
  color:var(--muted); font-size:14px; cursor:pointer; padding:2px 4px;
  border-radius:4px; transition:color .12s, background .12s; line-height:1; }
.notes-btn:hover { color:var(--text2); background:var(--border); }

/* ─── AMRAP BLOCK ─── */
.amrap-block  { margin-top:16px; padding-top:14px; border-top:1px solid var(--border); }
.amrap-label  { font-family:'Barlow Condensed',sans-serif; font-size:10px; font-weight:700;
  text-transform:uppercase; letter-spacing:2px; color:var(--warning); margin-bottom:10px; }
.amrap-counter { display:flex; align-items:center; gap:0; background:var(--card2);
  border:1px solid var(--border2); border-radius:2px; overflow:hidden;
  width:fit-content; }
.amrap-btn { width:56px; height:56px; background:none; border:none; color:var(--text);
  font-size:28px; font-weight:300; cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition:background .08s; }
.amrap-btn:active { background:var(--accent-dim); color:var(--accent); }
.amrap-val { width:72px; text-align:center; font-family:'Barlow Condensed',sans-serif;
  font-size:38px; font-weight:800; letter-spacing:-1px;
  text-shadow: 1px 2px 0px rgba(0,0,0,.8); }

/* ─── PROTO REC CARD INTERNALS ─── */
.proto-rec-title  { font-family:'Barlow Condensed',sans-serif; font-size:11px; font-weight:700;
  text-transform:uppercase; letter-spacing:2px; margin-bottom:6px; }
.proto-rec-ex     { font-family:'Oswald',sans-serif; font-size:17px; font-weight:700;
  text-transform:uppercase; letter-spacing:.3px; margin-bottom:4px; }
.proto-rec-reason { font-size:12px; color:var(--muted); margin-bottom:4px; line-height:1.5; }
.proto-rec-meta   { font-family:'Barlow Condensed',sans-serif; font-size:12px;
  color:var(--muted); margin-bottom:2px; letter-spacing:.3px; }
.proto-rec-actions { display:flex; gap:8px; margin-top:12px; }

/* ─── DONE MODAL ROWS ─── */
.done-row { display:flex; align-items:center; gap:10px; padding:10px 0;
  border-bottom:1px solid var(--border); font-family:'Barlow',sans-serif; }
.done-row:last-child { border-bottom:none; }
.done-ex    { flex:1; font-size:14px; font-weight:500; color:var(--text); min-width:0;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.done-wt    { font-family:'Barlow Condensed',sans-serif; font-size:16px; font-weight:700;
  flex-shrink:0; }
.done-delta { font-family:'Barlow Condensed',sans-serif; font-size:13px; font-weight:700;
  padding:2px 8px; border-radius:3px; flex-shrink:0; letter-spacing:.5px; }
.done-delta.positive { background:var(--positive-dim); color:var(--positive); }
.done-delta.danger   { background:var(--accent-dim);   color:var(--accent); }
.done-delta.muted    { color:var(--muted); }

/* ─── RECENT SESSION CARDS ─── */
.sess-card  { background:var(--card); border:1px solid var(--border);
  border-radius:var(--r2); padding:14px 16px; margin-bottom:8px; }
.sess-date  { font-family:'Oswald',sans-serif; font-size:12px; font-weight:700;
  text-transform:uppercase; letter-spacing:1px; color:var(--text2); margin-bottom:4px; }
.sess-exnames { font-family:'Barlow',sans-serif; font-size:13px; color:var(--text);
  line-height:1.4; }

/* ─── ADJ RPE NOTE ─── */
.adj-rpe-note { font-size:11px; margin-top:8px; padding:6px 10px; border-radius:var(--r);
  font-family:'Barlow Condensed',sans-serif; letter-spacing:.5px; }
.adj-rpe-note.positive { background:var(--positive-dim); color:var(--positive); }
.adj-rpe-note.warning  { background:var(--warning-dim);  color:var(--warning); }

/* ─── NORM CARD INTERNALS ─── */
.norm-card-header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--border);
}
.norm-ex-name {
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  font-size: 16px;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: var(--text2);
}
.norm-best {
  font-family: 'Oswald', sans-serif;
  font-size: 26px;
  font-weight: 700;
  color: var(--text);
  line-height: 1;
  text-shadow: 1px 2px 0px rgba(0,0,0,.8);
}
.norm-best.muted { color: var(--muted); font-size: 20px; }
.norm-rank-text { font-family:'Barlow Condensed',sans-serif; font-size:11px; font-weight:700;
  text-transform:uppercase; letter-spacing:2px; margin-bottom:4px; }
.norm-progress-wrap { height:4px; background:var(--faint); border-radius:0;
  margin:6px 0 4px; overflow:hidden; }
.norm-next { font-family:'Barlow Condensed',sans-serif; font-size:11px;
  color:var(--muted); letter-spacing:.5px; margin-top:3px; }
.norm-next.positive { color:var(--positive); }

/* ─── VK BLOCKS inside norm-card ─── */
.norm-vk-block { margin-top:12px; }
.norm-vk-block + .norm-vk-block { margin-top:14px; padding-top:14px; border-top:1px solid var(--border); }

/* Заголовок блока: ВК слева, РАЗРЯД справа */
.norm-vk-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}

/* "ВК 100 КГ" — метка весовой категории */
.norm-vk-cat {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  color: var(--muted);
}
.norm-vk-target .norm-vk-cat { color: var(--warning); }

/* Бейдж разряда — крупный и цветной */
.norm-vk-rank {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 13px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  padding: 3px 10px;
  border-radius: 2px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
}

.norm-vk-bar-wrap { height:10px; background:var(--border); border-radius:5px;
  overflow:hidden; margin-bottom:7px; }
.norm-vk-bar-fill { height:100%; border-radius:5px; transition:width .4s ease; }

.norm-vk-hint {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 13px;
  font-weight: 700;
  color: var(--text2);
  letter-spacing: .5px;
}
.norm-vk-hint.positive { color: var(--positive); }

/* ─── WEIGHT CATEGORY SELECT (settings modal) ─── */
.ps-select { width:100%; background:var(--card); border:1px solid var(--border2);
  border-radius:var(--r); color:var(--text); font-size:14px; font-family:'Barlow',sans-serif;
  padding:10px 12px; appearance:none; -webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23666' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 12px center; cursor:pointer; }
.ps-select:focus { outline:none; border-color:var(--accent); }

/* ═══════════════════════════════════════════════════════════════════════════
   UI/UX Pro Max — Accessibility & Feedback layer
   ═══════════════════════════════════════════════════════════════════════════ */

/* ─── FOCUS STATES (WCAG 2.1 §2.4.7) ──────────────────────────────────────
   Visible focus ring for keyboard users; hidden for mouse/touch             */
:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
/* Suppress default outline for mouse/touch interactions */
:focus:not(:focus-visible) { outline: none; }

/* ─── TOAST NOTIFICATIONS ───────────────────────────────────────────────── */
#toast-container {
  position: fixed;
  bottom: calc(56px + env(safe-area-inset-bottom, 0px) + 16px);
  left: 50%;
  transform: translateX(-50%);
  width: calc(100% - 32px);
  max-width: 400px;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  gap: 8px;
  pointer-events: none;
}
.toast {
  background: var(--card2);
  border: 1px solid var(--border2);
  border-radius: var(--r2);
  padding: 12px 16px;
  color: var(--text);
  font-family: 'Barlow', sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  display: flex;
  align-items: center;
  gap: 10px;
  pointer-events: auto;
  animation: toastIn .2s var(--snap) both;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.toast.leaving {
  animation: toastOut .18s var(--snap) both;
}
.toast-icon { flex-shrink: 0; width: 18px; height: 18px; }
.toast-msg  { flex: 1; }
.toast.toast-success { border-left: 3px solid var(--positive); }
.toast.toast-error   { border-left: 3px solid var(--accent); }
.toast.toast-info    { border-left: 3px solid var(--text2); }
@keyframes toastIn {
  from { opacity:0; transform:translateY(12px) scale(.97); }
  to   { opacity:1; transform:translateY(0)    scale(1); }
}
@keyframes toastOut {
  from { opacity:1; transform:translateY(0)    scale(1); }
  to   { opacity:0; transform:translateY(8px)  scale(.97); }
}

/* ─── SKELETON LOADING ──────────────────────────────────────────────────── */
.skeleton {
  background: var(--card);
  border-radius: var(--r2);
  position: relative;
  overflow: hidden;
}
.skeleton::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(255,255,255,.05) 50%,
    transparent 100%
  );
  background-size: 200% 100%;
  animation: shimmer 1.4s infinite linear;
}
@keyframes shimmer {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}
.skeleton-text  { height: 14px; margin-bottom: 8px; border-radius: 4px; }
.skeleton-title { height: 20px; width: 60%; margin-bottom: 12px; border-radius: 4px; }
.skeleton-card  { height: 80px; margin-bottom: 8px; }

/* ─── EMPTY STATE (enhanced) ────────────────────────────────────────────── */
.empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 48px 24px;
  color: var(--muted);
  gap: 12px;
}
.empty-state-icon {
  width: 48px;
  height: 48px;
  opacity: .35;
  color: var(--text2);
}
.empty-state-title {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 16px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--text2);
}
.empty-state-desc {
  font-size: 13px;
  color: var(--muted);
  line-height: 1.5;
  max-width: 240px;
}

/* ─── PREFERS-REDUCED-MOTION ────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

/* ── Phase 4: PR History (profile) ────────────────────────────────────────── */
.pr-hist-lift          { margin-bottom: 16px; }
.pr-hist-lift-name     { font-size: 13px; font-weight: 600; color: var(--text1); margin-bottom: 6px; text-transform: uppercase; letter-spacing: 0.5px; }
.pr-hist-row           { display: flex; align-items: center; gap: 10px; padding: 6px 0; font-size: 13px; color: var(--text2); border-bottom: 1px solid var(--border); }
.pr-hist-row:last-child { border-bottom: none; }
.pr-hist-date          { min-width: 90px; color: var(--muted); }
.pr-hist-weight        { font-weight: 600; color: var(--text1); min-width: 60px; }

/* ── Phase 4: History Tabs ────────────────────────────────────────────────── */
.ppane                 { display: none; }
.ppane.active          { display: block; }

/* ── Phase 4: Club Stats (leaderboard) ────────────────────────────────────── */
.lb-stats-block {
  padding: 14px 16px;
  margin: 0 16px 14px;
  background: var(--card);
  border-radius: 2px;
  border: 1px solid var(--border);
  border-top: 3px solid var(--accent);
}
.lb-stats-counters     { display: flex; gap: 0; flex-wrap: wrap; margin-bottom: 10px; }

/* Блок "Ваше место" */
.lb-my-rank {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 0;
  border-top: 1px solid var(--border);
  margin-bottom: 10px;
}
.lb-my-rank-label {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--muted);
}
.lb-my-rank-val {
  font-family: 'Oswald', sans-serif;
  font-size: 22px;
  font-weight: 700;
  color: var(--text);
  line-height: 1;
}
.lb-my-rank-total {
  font-size: 14px;
  color: var(--muted);
  font-weight: 400;
}
.lb-stat-item          { display: flex; flex-direction: column; align-items: center; flex: 1; min-width: 72px; padding: 0 8px; border-right: 1px solid var(--border); }
.lb-stat-item:last-child { border-right: none; }
.lb-stat-n             { font-family: 'Oswald', sans-serif; font-size: 28px; font-weight: 700; color: var(--accent); line-height: 1; text-shadow: 0 2px 4px rgba(0,0,0,.6); }
.lb-stat-label         { font-family: 'Barlow Condensed', sans-serif; font-size: 10px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--muted); margin-top: 3px; text-align: center; }
.lb-top-records        { border-top: 1px solid var(--border); padding-top: 10px; }
.lb-top-record-row     { display: flex; justify-content: space-between; align-items: baseline; padding: 5px 0; border-bottom: 1px solid rgba(255,255,255,.04); font-size: 13px; color: var(--text2); }
.lb-top-record-row:last-child { border-bottom: none; }
.lb-top-record-name    { font-family: 'Barlow Condensed', sans-serif; font-size: 14px; font-weight: 700; color: var(--text); letter-spacing: .3px; }
.lb-top-record-val     { font-family: 'Oswald', sans-serif; font-size: 16px; font-weight: 700; color: var(--accent); }

/* ── Monthly progression block (calendar) ─────────────────────────────────── */
.mp-block              { margin-top: 20px; padding: 16px; background: var(--card); border-radius: var(--r2); }
.mp-title              { font-size: 11px; font-weight: 600; letter-spacing: 0.8px; text-transform: uppercase; color: var(--muted); margin-bottom: 14px; }
.mp-cols               { display: flex; gap: 0; }
.mp-col                { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 4px; border-right: 1px solid var(--border); padding: 0 8px; }
.mp-col:last-child     { border-right: none; }
.mp-label              { font-size: 11px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.5px; }
.mp-weight             { font-size: 20px; font-weight: 700; color: var(--text1); }
.mp-delta              { font-size: 12px; font-weight: 600; }
.mp-delta--up          { color: #4caf50; }
.mp-delta--down        { color: var(--accent); }

/* ─── 1RM Delta block (program screen) ──────────────────────────────────────── */
.rm-delta-block {
  background: var(--card);
  border-radius: 14px;
  padding: 16px;
  margin-top: 16px;
  margin-bottom: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.rm-delta-block[hidden],
.rm-delta-block.hidden { display: none; }

.rm-delta-block-title {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--muted);
  margin: 0;
}

.rm-delta-row {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px 12px;
}
.rm-delta-row + .rm-delta-row {
  padding-top: 12px;
  border-top: 1px solid rgba(255,255,255,.04);
}

.rm-delta-lift-name {
  font-family: 'Oswald', sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.2;
  color: var(--text);
  flex: 0 0 auto;
}

.rm-delta-current {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.0;
  color: var(--text);
  flex: 0 0 auto;
}

.rm-delta-sep {
  color: var(--text2);
  margin: 0 4px;
  opacity: 0.5;
  flex: 0 0 auto;
}

.rm-delta-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 8px;
  align-items: baseline;
}

.rm-delta-chip {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
  transition: color 150ms;
}
.rm-delta-chip .rm-delta-period {
  font-size: 10px;
  font-weight: 700;
  text-transform: lowercase;
  letter-spacing: 0.04em;
  color: var(--text2);
  margin-left: 4px;
}
.rm-delta-chip.positive { color: var(--positive); }
.rm-delta-chip.negative { color: var(--accent); }
.rm-delta-chip.nodata   { color: var(--text2); }
.mp-delta--same        { color: var(--muted); }

/* ── 1RM Progress grid ───────────────────────────────────────────── */
.rm-dg-wrap {
  background: var(--card);
  border-radius: 2px;
  border: 1px solid var(--border);
  border-top: 3px solid var(--accent);
  padding: 16px 16px 20px;
  margin-top: 16px;
  margin-bottom: 16px;
}

.rm-dg {
  margin-top: 12px;
}

.rm-dg-head,
.rm-dg-row {
  display: grid;
  grid-template-columns: 1fr repeat(5, 44px);
  align-items: center;
}

.rm-dg-head {
  margin-bottom: 4px;
  border-bottom: 1px solid var(--border);
  padding-bottom: 6px;
}

.rm-dg-row + .rm-dg-row {
  border-top: 1px solid var(--border);
}

.rm-dg-ph {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--muted);
  text-align: center;
  padding: 4px 0 6px;
}

.rm-dg-lift {
  font-family: 'Oswald', sans-serif;
  font-size: 20px;
  font-weight: 700;
  color: var(--text);
  text-transform: uppercase;
  letter-spacing: .5px;
  padding: 11px 0;
}

.rm-dg-val {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 16px;
  font-weight: 700;
  text-align: center;
  padding: 11px 0;
  line-height: 1;
}

.rm-dg-val.positive { color: var(--positive); }
.rm-dg-val.negative { color: var(--accent); }

/* ─── SESSION DONE MODAL ──────────────────────────────────────────────────── */
.done-modal-title {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-bottom: 20px;
}
.done-title-line {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--muted);
}
.done-title-accent {
  font-family: 'Oswald', sans-serif;
  font-size: 36px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--text);
  text-shadow: 2px 2px 0px rgba(0,0,0,.9), 0 0 30px rgba(196,18,48,.15);
  line-height: 1;
}

.modal-done-body {
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  margin-bottom: 16px;
}

.done-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 11px 0;
  border-bottom: 1px solid var(--border);
}
.done-row:last-child { border-bottom: none; }

.done-ex {
  flex: 1;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--text);
  text-transform: uppercase;
  letter-spacing: .5px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.done-wt {
  font-family: 'Oswald', sans-serif;
  font-size: 20px;
  font-weight: 700;
  color: var(--text);
  flex-shrink: 0;
  text-shadow: 0 1px 3px rgba(0,0,0,.6);
}

.done-delta {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .5px;
  flex-shrink: 0;
  padding: 2px 7px;
  border-radius: 2px;
}
.done-delta.positive {
  color: var(--positive);
  background: var(--positive-dim);
  border: 1px solid var(--positive-border);
}
.done-delta.danger {
  color: var(--accent);
  background: var(--accent-dim);
  border: 1px solid var(--accent-border);
}
.done-delta.muted {
  color: var(--muted);
  background: transparent;
  border: none;
  font-size: 11px;
}

.done-save-btn {
  width: 100%;
  font-size: 16px;
  letter-spacing: 3px;
}
.rm-dg-val.nodata   { color: var(--text2); opacity: 0.35; }

/* ─── Judges Panel (Phase 4) ─────────────────────────────────────────────── */
.judge-card {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 20px;
  margin-bottom: 16px;
  border-top: 3px solid var(--accent);
}
.judge-card.state-voted { opacity: 0.72; }
.judge-card.state-quorum-reached { opacity: 0.55; }

.judge-card__video {
  width: 100%;
  max-height: 420px;
  background: #000;
  border-radius: var(--r);
  border: 1px solid var(--border);
}
.judge-card__video--missing {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 140px;
  color: var(--muted);
  font-family: 'Barlow', sans-serif;
  font-size: 13px;
}

.judge-card__badge-warn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  color: var(--warning);
  background: var(--warning-dim);
  border: 1px solid rgba(196,122,53,0.35);
  border-radius: var(--r);
  align-self: flex-start;
}

.judge-card__meta {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.judge-card__checklist {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.judge-card__checklist label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 12px;
  background: var(--card2);
  border: 1px solid var(--border);
  border-radius: var(--r);
  cursor: pointer;
  transition: border-color 150ms;
  min-height: 44px; /* touch target */
  font-family: 'Barlow', sans-serif;
  font-size: 14px;
  color: var(--text);
}
.judge-card__checklist label:has(input:checked) {
  border-color: var(--accent);
}
.judge-card__checklist input[type="checkbox"] {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  accent-color: var(--accent);
  margin-top: 1px;
}

.judge-card__comment {
  margin-top: 8px;
  min-height: 64px;
  resize: vertical;
  font-family: 'Barlow', sans-serif;
}

.judge-card__votes {
  display: flex;
  gap: 16px;
  margin-top: 12px;
}
.judge-card__votes .btn {
  flex: 1;
  min-height: 44px; /* touch target per UI-SPEC */
}

/* ─── Phase 6 — Submissions screen ─────────────────────────────────────── */

.sub-view-toggle.active {
  background: var(--accent-dim);
  color: var(--accent);
  border-color: var(--accent);
}

.sub-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 8px;
  margin-bottom: 12px;
  overflow: hidden;
}
.sub-card--with-video { border-top: 3px solid var(--accent); }

.sub-card__video {
  width: 100%;
  aspect-ratio: 16 / 9;
  background: #000;
  display: block;
}
.sub-card__video--missing {
  width: 100%;
  aspect-ratio: 16 / 9;
  background: var(--card2);
  color: var(--muted);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
}
.sub-card__video-deleted {
  padding: 14px 16px;
  color: var(--muted);
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 11px;
  letter-spacing: .3px;
}

.sub-card__body { padding: 12px; display: flex; flex-direction: column; gap: 8px; }

.sub-card__header-row { display: flex; align-items: center; gap: 10px; }
.sub-card__name { font-family: 'Barlow Condensed', sans-serif; font-weight: 700; font-size: 13px; color: var(--text); letter-spacing: .3px; }
.sub-card__meta { font-family: 'Barlow Condensed', sans-serif; font-weight: 700; font-size: 11px; color: var(--muted); letter-spacing: .3px; text-transform: uppercase; }

.sub-vote-progress { margin: 8px 0 4px; }
.sub-vote-progress__track {
  width: 100%;
  height: 4px;
  background: var(--border);
  border-radius: 2px;
  overflow: hidden;
}
.sub-vote-progress__fill {
  height: 100%;
  background: var(--warning);
  border-radius: 2px;
  transition: width .3s ease;
}
.sub-vote-progress__fill--complete { background: var(--positive); }
.sub-vote-progress__label {
  margin-top: 4px;
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 11px;
  color: var(--text2);
  letter-spacing: .3px;
}

.sub-watermark-warn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: var(--warning-dim);
  color: var(--warning);
  border: 1px solid rgba(196,122,53,.3);
  border-radius: 3px;
  padding: 3px 8px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .3px;
  align-self: flex-start;
}

.my-sub-item {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 12px 14px;
  margin-bottom: 8px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.my-sub-item__row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}
.my-sub-item__lift-weight {
  font-family: 'Barlow', sans-serif;
  font-size: 15px;
  font-weight: 400;
  color: var(--text);
}
.my-sub-item__date {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 11px;
  color: var(--muted);
  letter-spacing: .3px;
}
.my-sub-item__status-badge {
  display: inline-block;
  padding: 3px 8px;
  border-radius: 3px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .3px;
  font-family: 'Barlow Condensed', sans-serif;
}
.my-sub-item__status-badge--pending,
.my-sub-item__status-badge--under_review {
  background: var(--warning-dim); color: var(--warning);
}
.my-sub-item__status-badge--verified { background: var(--positive-dim); color: var(--positive); }
.my-sub-item__status-badge--rejected { background: var(--accent-dim); color: var(--accent); }

.my-sub-item__reject-reason,
.my-sub-item__judge-comment {
  font-size: 13px;
  color: var(--text2);
  line-height: 1.5;
}
.my-sub-item__reject-reason-label,
.my-sub-item__judge-comment-label {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 11px;
  color: var(--muted);
  letter-spacing: .3px;
  text-transform: uppercase;
  margin-right: 4px;
}

#submissions-queue { padding-bottom: 100px; }
#submissions-my-list { padding-bottom: 100px; }
