/* PROJECT PRIME — Gym. iOS-dark system sampled pixel by pixel from the reference logbook:
   page #1c1c1e · card #2c2c2e · set row #19191b · field #242426 · control #323234 */
:root {
  --g-bg: #1c1c1e; --g-card: #2c2c2e; --g-card2: #262628; --g-row: #19191b; --g-field: #242426; --g-ctl: #323234; --g-ctl2: #3a3a3c;
  --g-line: rgba(255, 255, 255, .06); --g-tx: #fff; --g-tx2: #c7c7cc; --g-dim: #8e8e93; --g-faint: #636366;
  --g-blue: #0a84ff; --g-blue-tx: #7ea6ff; --g-blue-bg: #2e3543; --g-blue-ln: rgba(84, 132, 255, .5);
  --g-green: #30d158; --g-green-tx: #4ade80; --g-green-bg: #13543c;
  --g-gold: #e9ad3c; --g-gold-bg: #4a3d29; --g-gold-ln: #a37a2c;
  --g-red: #ff6961; --g-tips: #4e443c; --g-tips-t: #d9a35d; --g-tips-x: #e9bb7a;
  --g-font: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Inter', system-ui, sans-serif;
  --g-disp: -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Inter', system-ui, sans-serif;
}
body:has(.gym) { background: var(--g-bg); }
body:has(.gym-s) .shell > .top { display: none; }
.gym { font-family: var(--g-font); color: var(--g-tx); -webkit-font-smoothing: antialiased; }
.gym button { font-family: inherit; }
.gym .ti { line-height: 1; }

/* ── segmented control ── */
.lb-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2px; background: var(--g-row); border-radius: 12px; padding: 3px; margin-top: 14px; }
.lb-tabs button { height: 34px; border-radius: 9px; font: 600 14px var(--g-font); color: var(--g-dim); transition: background .2s, color .2s; }
.lb-tabs button.on { background: var(--g-ctl2); color: var(--g-tx); box-shadow: 0 1px 2px rgba(0, 0, 0, .35); }

/* ── generic surfaces ── */
.lb-card { display: block; width: 100%; text-align: left; background: var(--g-card); border-radius: 22px; padding: 16px; margin-top: 12px; }
.lb-label { font: 600 12px var(--g-font); letter-spacing: .06em; text-transform: uppercase; color: var(--g-dim); margin: 22px 4px 8px; }
.lb-card > .lb-label:first-child { margin-top: 0; }
.lb-head small { font: 600 12px var(--g-font); letter-spacing: .06em; text-transform: uppercase; color: var(--g-dim); }
.lb-head h2 { margin: 3px 0 14px; font: 700 22px var(--g-disp); letter-spacing: -.01em; color: var(--g-tx); }
.lb-kpis, .lb-sum { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.lb-kpis > div, .lb-sum > div { background: var(--g-row); border-radius: 14px; padding: 11px 12px; min-width: 0; }
.lb-kpis b, .lb-sum b { display: block; font: 700 20px var(--g-disp); color: var(--g-tx); font-variant-numeric: tabular-nums; }
.lb-kpis span, .lb-sum span { font: 500 12px var(--g-font); color: var(--g-dim); }
.lb-kpis .up, .lb-sum .up { color: var(--g-green-tx); } .lb-kpis .down { color: var(--g-red); }
.lb-sum { margin-top: 12px; }

/* ── train home ── */
.lb-resume { display: grid; grid-template-columns: 10px 1fr auto; gap: 14px; align-items: center; box-shadow: inset 0 0 0 1px rgba(48, 209, 88, .55); }
.lb-resume b { display: block; font: 600 16px var(--g-font); } .lb-resume small { font: 500 13px var(--g-font); color: var(--g-dim); } .lb-resume > .ti { color: var(--g-faint); }
.lb-resume .pulse { width: 10px; height: 10px; border-radius: 50%; background: var(--g-green); box-shadow: 0 0 0 4px rgba(48, 209, 88, .2); }
.lb-today { display: grid; gap: 10px; }
.lb-plan small { display: block; font: 600 12px var(--g-font); letter-spacing: .06em; text-transform: uppercase; color: var(--g-dim); }
.lb-plan b { display: block; font: 700 28px/1.1 var(--g-disp); letter-spacing: -.015em; margin: 4px 0 3px; }
.lb-plan span { font: 500 14px var(--g-font); color: var(--g-dim); }
.lb-donechip { justify-self: start; display: inline-flex; gap: 6px; align-items: center; height: 34px; padding: 0 14px; border-radius: 10px; background: rgba(48, 209, 88, .14); color: var(--g-green-tx); font: 600 14px var(--g-font); }
.lb-finish { width: 100%; height: 50px; border-radius: 14px; background: var(--g-blue); color: #fff; font: 600 16px var(--g-font); display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.lb-finish:active { filter: brightness(.9); }
.lb-btn2 { width: 100%; height: 46px; border-radius: 14px; background: var(--g-ctl); color: var(--g-tx); font: 600 15px var(--g-font); display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.lb-btn2.red { color: var(--g-red); }
.lb-strip { display: grid; grid-template-columns: repeat(9, minmax(0, 1fr)); gap: 5px; margin-top: 8px; }
.lb-cal { background: var(--g-card); border-radius: 12px; padding: 8px 2px 9px; text-align: center; display: grid; gap: 2px; min-width: 0; }
.lb-cal span { font: 600 10px var(--g-font); text-transform: uppercase; color: var(--g-faint); }
.lb-cal b { font: 600 16px var(--g-disp); font-variant-numeric: tabular-nums; }
.lb-cal em { font: 700 8.5px/1.15 var(--g-font); font-style: normal; letter-spacing: .02em; color: var(--g-blue-tx); text-transform: uppercase; }
.lb-cal.off em { color: var(--g-faint); }
.lb-cal.today { background: var(--g-blue-bg); box-shadow: inset 0 0 0 1px var(--g-blue-ln); }
.lb-days { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.lb-day { position: relative; min-width: 0; background: var(--g-card); border-radius: 20px; padding: 15px 15px 14px; text-align: left; display: grid; gap: 2px; }
.lb-day.next { box-shadow: inset 0 0 0 1px var(--g-blue-ln); }
.lb-dn { font: 700 17px var(--g-disp); letter-spacing: -.005em; padding-right: 64px; }
.lb-dx { font: 500 12.5px var(--g-font); color: var(--g-dim); margin: 1px 0 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lb-dm { font: 500 12.5px var(--g-font); color: var(--g-tx2); } .lb-dl { font: 500 12px var(--g-font); color: var(--g-faint); }
.lb-day em { position: absolute; top: 14px; right: 14px; font: 600 10.5px var(--g-font); font-style: normal; letter-spacing: .04em; text-transform: uppercase; color: var(--g-blue-tx); background: var(--g-blue-bg); border-radius: 7px; padding: 4px 7px; }
.lb-date { display: flex; align-items: center; gap: 8px; margin: 14px 4px 0; font: 500 14px var(--g-font); color: var(--g-dim); }
.lb-date input { margin-left: auto; height: 36px; background: var(--g-card); border: 0; border-radius: 10px; color: var(--g-tx); padding: 0 10px; font: 500 15px var(--g-font); color-scheme: dark; }

/* ── session header (final Sergio build: black bar, uppercase title, thick blue progress) ── */
.lb-top { position: sticky; top: 0; z-index: 15; margin: 0 -16px; padding: calc(var(--safe-t, 0px) + 14px) 16px 16px; background: linear-gradient(180deg, #000 0%, #0b0b0c 100%); display: grid; grid-template-columns: 48px 1fr 48px; align-items: center; gap: 0 8px; box-shadow: 0 10px 24px rgba(0, 0, 0, .35); }
.lb-x { width: 44px; height: 44px; border-radius: 50%; background: #2c2c2e; color: #fff; font-size: 20px; display: grid; place-items: center; }
.lb-tt { text-align: center; min-width: 0; }
.lb-tt small { display: block; font: 600 13px var(--g-font); letter-spacing: .08em; color: #8e8e93; }
.lb-tt b { display: block; font: 800 22px/1.15 var(--g-disp); letter-spacing: .01em; margin-top: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lb-clock { justify-self: end; font: 600 13px var(--g-font); color: var(--g-green-tx); font-variant-numeric: tabular-nums; }
.lb-prog { grid-column: 1 / 3; height: 8px; border-radius: 4px; background: #2c2c2e; margin-top: 18px; overflow: hidden; }
.lb-prog i { display: block; height: 100%; border-radius: 4px; background: #4180f5; transition: width .4s cubic-bezier(.2, .8, .2, 1); }
.lb-count { justify-self: end; margin-top: 18px; font: 600 15px var(--g-font); color: #8e8e93; font-variant-numeric: tabular-nums; }

/* ── exercise card ── */
.lb-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; margin-top: 14px; }
.lb-ex { margin: 0; padding: 18px 0 14px; border-radius: 28px; overflow: hidden; background: #2c2c2e; }
.lb-ex > * { margin-left: 18px; margin-right: 18px; }
.lb-ex > .lb-base, .lb-ex > .lb-cols { margin-left: 0; margin-right: 0; }
.lb-ex > .lb-set, .lb-ex > .lb-plan-pill, .lb-ex > .lb-extra, .lb-ex > .lb-chips, .lb-ex > .lb-adv { margin-left: 14px; margin-right: 14px; }
.lb-exh { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: start; }
.lb-exn { min-width: 0; padding-top: 1px; }
.lb-nm { display: flex; align-items: baseline; gap: 8px; min-width: 0; }
.lb-nm b { flex: 0 1 auto; min-width: 0; font: 600 18px/1.25 var(--g-disp); letter-spacing: -.01em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lb-nm small { flex: 0 0 auto; font: 500 12.5px var(--g-font); letter-spacing: .05em; color: #8e8e93; }
.lb-pr { display: flex; align-items: center; gap: 5px; margin-top: 4px; font: 700 15px var(--g-font); color: #4ade80; }
.lb-pr .ti { font-size: 17px; }
.lb-note { display: flex; align-items: center; gap: 7px; margin-top: 6px; font: 500 15px var(--g-font); color: #e8b44a; }
.lb-note .ti { font-size: 17px; } .lb-note span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lb-side { display: grid; justify-items: center; gap: 8px; padding-top: 18px; }
.lb-hide { font: 600 11.5px var(--g-font); letter-spacing: .08em; text-transform: uppercase; color: #6e6d75; }
.lb-tools { display: flex; gap: 8px; }
.lb-tools button { width: 36px; height: 36px; border-radius: 50%; background: #29282f; color: #b6b5bc; font-size: 17px; display: grid; place-items: center; }
.lb-tools button.gold { background: #4c3d25; color: #f0b13b; box-shadow: inset 0 0 0 1.5px #7d5f22; }
.lb-menu { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.lb-menu button { height: 32px; padding: 0 11px; border-radius: 9px; background: #3a3a3c; color: #fff; font: 500 13px var(--g-font); display: inline-flex; gap: 6px; align-items: center; }
.lb-menu .red { color: var(--g-red); }
.lb-base { display: flex; align-items: center; gap: 14px; margin-top: 16px; padding: 14px 20px; background: linear-gradient(90deg, #463355 0%, #3a3456 30%, #313851 55%, #3c3457 80%, #4a3558 100%); border-top: 1px solid rgba(170, 130, 255, .22); border-bottom: 1px solid #6a4fb0; position: relative; }
.lb-base::after { content: ''; position: absolute; inset: 0; background: repeating-linear-gradient(90deg, rgba(255, 255, 255, .018) 0 2px, transparent 2px 9px); pointer-events: none; }
.lb-base .ti { font-size: 24px; color: #c08cff; } .lb-base b { display: block; font: 700 15px var(--g-font); letter-spacing: .06em; color: #cfa8ff; } .lb-base span { font: 500 13.5px var(--g-font); color: #aaa5bd; }
.lb-cols { display: grid; grid-template-columns: 1fr 1fr 1fr 52px; gap: 8px; padding: 14px 20px; margin: 0 0 10px; border-bottom: 1px solid rgba(255, 255, 255, .05); font: 600 13px var(--g-font); letter-spacing: .08em; text-transform: uppercase; color: #77767d; text-align: center; }
.lb-exh + .lb-cols, .lb-menu + .lb-cols { margin-top: 14px; border-top: 1px solid rgba(255, 255, 255, .05); }
.lb-plan-pill { display: flex; align-items: center; gap: 12px; height: 46px; padding: 0 16px; margin-bottom: 10px; border-radius: 12px; border: 1.5px solid #45474b; background: #323337; color: #b9b9bf; font: 500 16.5px var(--g-font); }
.lb-plan-pill .ti { font-size: 19px; }
.lb-plan-pill.reps, .lb-plan-pill.up { border-color: rgba(84, 132, 255, .55); background: #2e3543; color: #7ea6ff; }
.lb-plan-pill.down { border-color: rgba(255, 105, 97, .45); background: #3d2526; color: #ff9d97; }

/* set row */
.lb-set { display: grid; grid-template-columns: 1fr 1fr 1fr 52px; gap: 8px; align-items: center; background: #18171f; border-radius: 26px; padding: 7px; }
.lb-f { position: relative; height: 50px; min-width: 0; background: #28262e; border-radius: 13px; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.lb-f input { width: 100%; height: 100%; background: transparent; border: 0; padding: 0; text-align: center; font: 600 19px var(--g-disp); color: #fff; font-variant-numeric: tabular-nums; }
.lb-f input:focus { outline: none; } .lb-f:focus-within { box-shadow: inset 0 0 0 1.5px #4180f5; }
.lb-f input::placeholder { color: #fff; font-weight: 600; }
.lb-f:has(small) input { padding-bottom: 12px; }
.lb-f small { position: absolute; bottom: 6px; left: 0; right: 0; text-align: center; font: 500 10.5px var(--g-font); color: #77767d; pointer-events: none; }
.lb-f.reps input::placeholder { color: #6e6d75; font-weight: 400; }
.lb-f.reps.rg input { padding-right: 46px; }
.lb-f.reps em { position: absolute; right: 0; top: 0; bottom: 0; width: 46px; display: grid; place-items: center; background: #323038; color: #c9c8ce; font: 700 12px ui-monospace, 'SF Mono', Menlo, monospace; font-style: normal; letter-spacing: -.02em; }
.lb-rir { justify-self: center; width: 100%; max-width: 94px; height: 42px; background: #2f2e33; border-radius: 11px; display: grid; grid-template-columns: 28px 1fr 28px; align-items: center; }
.lb-rir button { height: 42px; color: #fff; font-size: 16px; display: grid; place-items: center; }
.lb-rir b { text-align: center; font: 700 20px var(--g-disp); font-variant-numeric: tabular-nums; }
.lb-log { justify-self: center; width: 44px; height: 44px; border-radius: 50%; background: #2a292f; color: #5f5e66; font-size: 18px; display: grid; place-items: center; transition: background .15s, color .15s; }
.lb-set.done { background: #22382b; box-shadow: inset 0 0 0 1.5px #2f6a45; }
.lb-set.done .lb-f { background: #2c4a37; } .lb-set.done .lb-f input, .lb-set.done .lb-f input::placeholder { color: #34d36b; } .lb-set.done .lb-f small { color: #4f8f65; }
.lb-set.done .lb-rir { background: #3a4a41; } .lb-set.done .lb-rir b { color: #fff; } .lb-set.done .lb-rir button { color: #a9b5ad; }
.lb-set.done .lb-log { background: #19c75d; color: #fff; }
.lb-set.extra { box-shadow: inset 0 0 0 1px rgba(233, 173, 60, .3); }
.lb-chips { display: flex; flex-wrap: wrap; gap: 6px; padding: 8px 4px 10px; }
.lb-chips span, .lb-chips button { height: 24px; display: inline-flex; align-items: center; padding: 0 10px; border-radius: 12px; background: #313037; color: #a8a7ad; font: 800 11.5px var(--g-font); letter-spacing: .08em; text-transform: uppercase; }
.lb-chips .mono { font: 600 12px ui-monospace, 'SF Mono', Menlo, monospace; letter-spacing: .04em; text-transform: none; color: #b4b3b9; }
.lb-chips .k-keep, .lb-chips .k-reps, .lb-chips .k-up { background: #22314c; color: #6a9cdf; }
.lb-chips .k-down { background: #3d2526; color: #ff8a84; } .lb-chips .k-base { background: #33284a; color: #c08cff; } .lb-chips .k-extra { background: #3d3220; color: #e9ad3c; }
.lb-chips button { color: var(--g-red); background: #3d2526; letter-spacing: .02em; }
.lb-adv { margin-bottom: 12px; padding: 14px 16px 15px; border-radius: 6px; background: #2e313b; border-left: 3px solid #3c6fd0; }
.lb-adv b { display: block; font: 800 13.5px var(--g-font); letter-spacing: .1em; color: #6b9fda; }
.lb-adv p { margin: 6px 0 0; font: 400 15px/1.45 var(--g-font); color: #a3a6b0; } .lb-adv p b { display: inline; font: 700 15px var(--g-font); letter-spacing: 0; color: #fff; }
.lb-adv.k-base { border-color: #8a5cf0; background: #302b3d; } .lb-adv.k-base > b { color: #c08cff; }
.lb-adv.k-down { border-color: #d0524b; background: #392a2c; } .lb-adv.k-down > b { color: #ff8a84; }
.lb-adv.k-up { border-color: #2fae5c; background: #263529; } .lb-adv.k-up > b { color: #4ade80; }
.lb-extra { display: block; width: calc(100% - 28px); height: 52px; margin-top: 4px; border-radius: 24px; border: 2px dashed #34333a; background: #18171f; color: #d4d3d8; font: 600 16px var(--g-font); }
.lb-extra.wide { width: 100%; margin: 14px 0 0; }
.lb-ta { width: 100%; background: #18171f; border: 0; border-radius: 12px; padding: 12px; color: #fff; font: 500 15px/1.4 var(--g-font); resize: vertical; }
.lb-ta:focus { outline: 1.5px solid #4180f5; }
.lb-actions { display: grid; gap: 10px; margin-top: 14px; }
.lb-actions .lb-finish { background: #19c75d; height: 54px; border-radius: 16px; }

/* ── program editor ── */
.lb-prow { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 12px; }
.lb-prow b { display: block; font: 600 16px var(--g-disp); } .lb-prow small { display: block; font: 500 13px var(--g-font); color: var(--g-dim); margin-top: 2px; } .lb-prow > .ti { color: var(--g-faint); }
.lb-in { display: grid; gap: 5px; margin-top: 10px; min-width: 0; } .lb-in span { font: 600 11px var(--g-font); letter-spacing: .06em; text-transform: uppercase; color: var(--g-dim); }
.lb-in input { height: 40px; width: 100%; min-width: 0; background: var(--g-row); border: 0; border-radius: 10px; padding: 0 12px; color: var(--g-tx); font: 500 15px var(--g-font); color-scheme: dark; }
.lb-in input:focus, .lb-dayname:focus, .lb-pname:focus { outline: 1.5px solid var(--g-blue); }
.lb-dayname { width: 100%; min-width: 0; height: 40px; border: 0; border-radius: 10px; background: transparent; text-align: center; color: var(--g-tx); font: 700 18px var(--g-disp); }
.lb-pname { width: 100%; min-width: 0; border: 0; background: transparent; padding: 0; color: var(--g-tx); font: 600 16px var(--g-disp); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; border-radius: 6px; }
.lb-pex.hl { box-shadow: inset 0 0 0 1px var(--g-blue-ln); }
.lb-mus { display: block; margin-top: 10px; font: 500 12px var(--g-font); color: var(--g-faint); }
.gym .row2 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px; }
.gym .subhead { grid-template-columns: 40px minmax(0, 1fr) 40px; }
.gym .subhead > b { font: 600 17px var(--g-disp); letter-spacing: -.01em; text-transform: none; }
.gym .back { background: var(--g-ctl2); color: var(--g-tx); }
.gym .back.red { color: var(--g-red); }
.gym .link { font: 600 14px var(--g-font); color: var(--g-blue-tx); display: inline-flex; gap: 4px; align-items: center; margin-top: 8px; }
.gym .btn { width: 100%; height: 46px; border-radius: 14px; background: var(--g-card); color: var(--g-tx2); font: 600 14.5px var(--g-font); display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.gym .empty { font: 500 14px var(--g-font); color: var(--g-dim); }

/* ── analysis / history ── */
.lb-table { width: 100%; border-collapse: collapse; }
.lb-table th { font: 600 11px var(--g-font); letter-spacing: .05em; text-transform: uppercase; color: var(--g-faint); text-align: left; padding: 0 0 8px; }
.lb-table td { font: 500 14.5px var(--g-font); color: var(--g-tx); padding: 10px 0; border-top: 1px solid var(--g-line); font-variant-numeric: tabular-nums; }
.lb-table td.up { color: var(--g-green-tx); } .lb-table td.down { color: var(--g-red); } .lb-table td.mute { color: var(--g-faint); }
.lb-heat { display: grid; gap: 4px; overflow-x: auto; }
.lb-heat .hrow { display: grid; grid-template-columns: 92px repeat(8, minmax(26px, 1fr)); gap: 4px; align-items: center; }
.lb-heat .hrow > span:first-child { font: 500 12.5px var(--g-font); color: var(--g-tx2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lb-heat .head span { font: 500 10.5px var(--g-font); color: var(--g-faint); text-align: center; }
.lb-heat i { height: 28px; border-radius: 7px; display: grid; place-items: center; font: 600 12px var(--g-font); font-style: normal; color: #fff; }
.lb-erow { width: 100%; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 11px 0; border-top: 1px solid var(--g-line); text-align: left; }
.lb-label + .lb-erow { border-top: 0; }
.lb-erow b { display: block; font: 600 15px var(--g-font); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .lb-erow small { font: 500 12px var(--g-font); color: var(--g-dim); }
.lb-erow .v { font: 600 16px var(--g-disp); font-variant-numeric: tabular-nums; } .lb-erow .v small { margin-left: 4px; } .lb-erow .up { color: var(--g-green-tx); } .lb-erow .down { color: var(--g-red); }
.lb-exhero .lb-pr { font: 700 30px var(--g-disp); letter-spacing: -.02em; } .lb-exhero .lb-pr .ti { font-size: 26px; }
.lb-exhero > small { font: 500 13px var(--g-font); color: var(--g-dim); }
.lb-chart { padding: 16px 14px 10px; }
.lb-ch { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; } .lb-ch b { font: 600 15px var(--g-font); } .lb-ch span { font: 500 12px var(--g-font); color: var(--g-dim); }
.lb-chart svg { width: 100%; height: auto; margin-top: 8px; } .lb-chart svg text { font: 500 10.5px var(--g-font); fill: var(--g-faint); }
.lb-rm { display: grid; grid-template-columns: repeat(auto-fill, minmax(70px, 1fr)); gap: 6px; }
.lb-rm div { background: var(--g-row); border-radius: 12px; padding: 8px 10px; } .lb-rm span { display: block; font: 500 11px var(--g-font); color: var(--g-dim); } .lb-rm b { font: 600 17px var(--g-disp); }
.lb-hist { display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 10px; padding: 12px 0; border-top: 1px solid var(--g-line); }
.lb-label + .lb-hist { border-top: 0; }
.lb-hist b { display: block; font: 600 14px var(--g-font); } .lb-hist small { font: 500 11.5px var(--g-font); color: var(--g-dim); }
.lb-hsets { display: flex; flex-wrap: wrap; gap: 6px; }
.lb-hsets span { background: var(--g-row); border-radius: 8px; padding: 5px 9px; font: 600 13px var(--g-font); color: var(--g-tx2); font-variant-numeric: tabular-nums; }
.lb-hsets span.top { background: rgba(48, 209, 88, .14); color: var(--g-green-tx); } .lb-hsets i { font-style: normal; color: var(--g-faint); margin-left: 3px; font-weight: 500; }

/* ── small phones ── */
@media (max-width: 380px) {
  .lb-set, .lb-cols { grid-template-columns: 1fr 1fr .95fr 42px; gap: 6px; }
  .lb-log { width: 36px; height: 36px; } .lb-tools button { width: 32px; height: 32px; font-size: 16px; } .lb-tools { gap: 5px; }
  .lb-nm b { font-size: 16px; } .lb-strip { grid-template-columns: repeat(7, minmax(0, 1fr)); } .lb-strip .lb-cal:nth-child(n+8) { display: none; }
}

/* ── desktop: same proportions as the phone, laid out in two columns ── */
@media (min-width: 1024px) {
  .gym { max-width: 1180px; margin: 0 auto; }
  .lb-tabs { max-width: 520px; }
  .lb-days { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .lb-top { margin: -22px 0 0; padding: 18px 22px 16px; border-radius: 0 0 24px 24px; grid-template-columns: 44px 1fr 120px; }
  .lb-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
  .gym-s .lb-sum, .gym-s .lb-actions { max-width: 760px; margin-left: auto; margin-right: auto; }
  .gym-s .lb-actions { grid-template-columns: 1fr 1fr; }
  .gym-s > section.lb-card { max-width: 760px; margin-left: auto; margin-right: auto; }
  .gym-s .lb-extra.wide { max-width: 760px; margin-left: auto; margin-right: auto; display: block; }
}
@media (min-width: 1700px) { .gym { max-width: 1500px; } .lb-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
/* mobile: header flush with the top edge */
@media (max-width: 1023px) { .gym-s { margin-top: calc(-1 * (var(--safe-t, 0px) + 12px)); } }
@media (max-width: 400px) {
  .lb-ex > * { margin-left: 16px; margin-right: 16px; } .lb-ex > .lb-set, .lb-ex > .lb-plan-pill, .lb-ex > .lb-extra, .lb-ex > .lb-chips, .lb-ex > .lb-adv { margin-left: 12px; margin-right: 12px; }
  .lb-extra { width: calc(100% - 24px); } .lb-tools { gap: 6px; } .lb-tools button { width: 33px; height: 33px; font-size: 16px; }
  .lb-set, .lb-cols { grid-template-columns: 1fr 1fr .95fr 46px; gap: 6px; } .lb-log { width: 40px; height: 40px; } .lb-nm b { font-size: 17px; }
  .lb-f.reps em { width: 40px; } .lb-f.reps.rg input { padding-right: 40px; }
}
.lb-hero > .lb-card { margin-top: 12px; }
.lb-cal em { font-size: 9.5px; letter-spacing: .02em; text-transform: none; font-weight: 600; }
@media (min-width: 1024px) {
  .lb-hero { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 16px; align-items: stretch; }
  .lb-hero > .lb-card { margin-top: 16px; }
  .lb-today { align-content: start; }
  .lb-strip { gap: 8px; } .lb-cal { padding: 10px 2px; }
}
.lb-exhero .lb-pr { display: flex; }
.lb-table th:not(:first-child), .lb-table td:not(:first-child) { text-align: right; }
.gym .btn { letter-spacing: 0; text-transform: none; }
@media (min-width: 1024px) {
  .gym-prog { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 12px; }
}
/* ── v2 proportions measured on the final build (card ≈ 360pt) ── */
.lb-exh { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: 'nm nm' 'meta side'; gap: 2px 10px; align-items: center; }
.lb-exh > .lb-nm { grid-area: nm; } .lb-exh > .lb-exn { grid-area: meta; align-self: start; padding-top: 2px; } .lb-exh > .lb-side { grid-area: side; padding-top: 4px; gap: 6px; }
.lb-nm b { font-size: 17px; } .lb-nm small { font-size: 12px; }
.lb-pr { font-size: 14px; margin-top: 3px; } .lb-pr .ti { font-size: 16px; }
.lb-note { font-size: 14px; margin-top: 7px; } .lb-note .ti { font-size: 16px; }
.lb-hide { font-size: 11px; }
.lb-tools { gap: 7px; } .lb-tools button { width: 34px; height: 34px; font-size: 16px; }
.lb-base { margin-top: 14px; padding: 12px 18px; gap: 12px; } .lb-base .ti { font-size: 22px; } .lb-base b { font-size: 13.5px; } .lb-base span { font-size: 12.5px; }
.lb-cols { padding: 12px 18px; font-size: 12px; margin-bottom: 9px; grid-template-columns: 1fr 1fr 1fr 44px; }
.lb-plan-pill { height: 40px; font-size: 15px; border-radius: 10px; margin-bottom: 8px; } .lb-plan-pill .ti { font-size: 17px; }
.lb-set { grid-template-columns: 1fr 1fr 1fr 44px; gap: 7px; padding: 6px; border-radius: 22px; }
.lb-f { height: 40px; border-radius: 11px; } .lb-f input { font-size: 17px; } .lb-f:has(small) input { padding-bottom: 10px; } .lb-f small { bottom: 3px; font-size: 9.5px; }
.lb-f.reps em { width: 40px; font-size: 11px; } .lb-f.reps.rg input { padding-right: 40px; }
.lb-rir { height: 34px; max-width: 84px; border-radius: 9px; grid-template-columns: 24px 1fr 24px; } .lb-rir button { height: 34px; font-size: 14px; } .lb-rir b { font-size: 17px; }
.lb-log { width: 36px; height: 36px; font-size: 16px; }
.lb-chips { gap: 5px; padding: 6px 2px 8px; } .lb-chips span, .lb-chips button { height: 20px; padding: 0 8px; border-radius: 10px; font-size: 10px; } .lb-chips .mono { font-size: 10.5px; }
.lb-adv { padding: 11px 13px 12px; margin-bottom: 10px; } .lb-adv b { font-size: 11.5px; } .lb-adv p { font-size: 13px; margin-top: 4px; } .lb-adv p b { font-size: 13px; }
.lb-extra { height: 42px; border-radius: 21px; font-size: 14.5px; border-width: 1.5px; }
.lb-ex { padding: 16px 0 12px; border-radius: 26px; }
@media (max-width: 400px) { .lb-set, .lb-cols { grid-template-columns: 1fr 1fr .95fr 40px; gap: 6px; } .lb-log { width: 34px; height: 34px; } .lb-tools button { width: 32px; height: 32px; } }
/* header: tools centred on the whole title block, like the final build */
.lb-exh { grid-template-areas: 'nm side' 'meta side'; align-items: center; }
.lb-exh > .lb-side { padding-top: 0; align-self: center; }
.lb-nm { overflow: hidden; } .lb-nm b { flex: 0 1 auto; } .lb-nm small { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lb-hide:empty { display: none; }
.lb-exh.tall { grid-template-areas: 'nm nm' 'meta side'; }
.lb-exh.tall > .lb-side { margin-top: -6px; }
.lb-base span { font-size: 12px; letter-spacing: -.005em; }
/* ── program day editor: same language as the session ── */
.lb-dhead { display: grid; grid-template-columns: 48px 1fr 48px; align-items: center; gap: 8px; margin-top: 16px; }
.lb-dhead .lb-tt input { margin-top: 2px; }
.lb-x.red { color: var(--g-red); }
.lb-dayname { height: 34px; font: 800 22px var(--g-disp); letter-spacing: .01em; text-transform: uppercase; }
.lb-pex .lb-nm { overflow: visible; } .lb-pname { flex: 1 1 auto; font: 600 17px var(--g-disp); height: 26px; padding: 0 2px; margin-left: -2px; }
.lb-pex .lb-note { margin-top: 6px; } .lb-pex .lb-note input { flex: 1; min-width: 0; height: 26px; border: 0; background: transparent; color: #e8b44a; font: 500 14px var(--g-font); padding: 0; }
.lb-pex .lb-note input::placeholder { color: #6e6d75; } .lb-pex .lb-note input:focus { outline: none; box-shadow: 0 1px 0 #e8b44a; }
.lb-tools button.redt { color: var(--g-red); }
.lb-pmeta { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 8px; margin-top: 12px; }
.lb-pmeta label { display: grid; gap: 4px; min-width: 0; } .lb-pmeta span { font: 600 10.5px var(--g-font); letter-spacing: .08em; text-transform: uppercase; color: #77767d; padding-left: 4px; }
.lb-pmeta input { height: 38px; min-width: 0; width: 100%; border: 0; border-radius: 11px; background: #18171f; color: #fff; padding: 0 12px; font: 500 14.5px var(--g-font); }
.lb-pmeta input.mono { font: 600 13px ui-monospace, 'SF Mono', Menlo, monospace; } .lb-pmeta input:focus { outline: 1.5px solid #4180f5; }
.lb-cols.g5, .lb-set.lb-grow { grid-template-columns: .6fr .9fr 1.25fr 1.25fr 34px; }
.lb-pex .lb-cols { margin-top: 14px; border-top: 1px solid rgba(255, 255, 255, .05); }
.lb-set.lb-grow { margin-bottom: 8px; margin-top: 0; }
.lb-grow .lb-f input { font-size: 14.5px; padding: 0 4px 10px; }
.lb-grow .lb-f:first-child input { font-size: 17px; }
.lb-log.del { width: 30px; height: 30px; font-size: 14px; color: #ff8a84; background: #2a292f; }
.lb-pex .lb-extra { margin-top: 2px; }
.lb-pex.hl { box-shadow: inset 0 0 0 1.5px rgba(84, 132, 255, .55); }
.lb-pex .lb-pname { flex: 0 1 auto; width: auto; max-width: 100%; }
.lb-pex .lb-nm small { flex: 0 0 auto; }
.lb-sub { margin: 10px 2px 0; font: 500 12.5px/1.45 var(--g-font); color: #8e8e93; } .lb-sub b { color: #fff; }
.lb-stall { display: inline-flex; align-items: center; gap: 6px; margin-top: 10px; padding: 6px 10px; border-radius: 9px; background: #3d3220; color: #e9ad3c; font: 600 13px var(--g-font); } .lb-stall.down { background: #3d2526; color: #ff8a84; }
