.account-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.account-heading h3 { margin-right:auto; }
.sync-indicator { flex:0 0 auto; margin-top:2px; padding:6px 9px; border:1px solid var(--line); border-radius:999px; color:var(--muted); background:var(--panel2); font-size:.66rem; font-weight:850; }
.sync-indicator.synced { border-color:rgba(79,196,128,.4); color:#67d698; background:rgba(79,196,128,.08); }
.sync-indicator.syncing { border-color:color-mix(in srgb,var(--acid) 42%,var(--line)); color:var(--acid); background:var(--acid-soft); }
.sync-indicator.error { border-color:rgba(255,107,100,.42); color:var(--danger); background:rgba(255,107,100,.08); }
.sync-indicator.offline { color:#ffb84d; border-color:rgba(255,184,77,.38); background:rgba(255,184,77,.08); }
.account-form { display:grid; gap:10px; }
.account-form label { color:var(--muted); font-size:.75rem; font-weight:750; }
.account-form input { margin-top:5px; }
.account-form > div,.account-actions { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
.account-form button,.account-actions button { margin:0; }
.account-identity { display:grid; gap:3px; margin-bottom:13px!important; }
.account-identity span { color:var(--muted); font-size:.7rem; }
.account-identity strong { color:var(--text); overflow-wrap:anywhere; }
.sync-details { display:grid; gap:3px; padding:11px 12px; margin-bottom:10px; border:1px solid var(--line); border-radius:12px; background:var(--panel2); }
.sync-details span { font-size:.8rem; font-weight:750; }.sync-details small { color:var(--muted); font-size:.68rem; }
.photo-sync-note { margin:12px 0 0!important; font-size:.7rem!important; }
.message.error { color:var(--danger); }
.sync-conflict-options { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin:14px 0 10px; }
.sync-conflict-options button { min-height:92px; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; gap:5px; text-align:left; }
.sync-conflict-options button span { color:inherit; opacity:.75; font-size:.7rem; line-height:1.35; }
.sync-conflict-dialog { width:min(680px,calc(100% - 24px)); max-height:min(88vh,820px); overflow:auto; }
.sync-conflict-meta { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:12px 0; }
.sync-conflict-meta > span { display:grid; gap:3px; padding:10px; border:1px solid var(--line); border-radius:11px; background:#0e1113; color:var(--muted); font-size:.7rem; }
.sync-conflict-meta > span b { color:var(--text); font-size:.78rem; }
.sync-conflict-meta > small { grid-column:1/-1; color:var(--muted); font-size:.67rem; }
.sync-conflict-details { display:grid; gap:10px; }
.sync-conflict-details > h3 { margin:7px 0 0; font-size:.9rem; }
.conflict-workout { border:1px solid var(--line); border-radius:14px; overflow:hidden; }
.conflict-workout-head { display:flex; justify-content:space-between; gap:10px; padding:10px 12px; background:var(--panel2); }
.conflict-workout-head strong { font-size:.78rem; }
.conflict-workout-head span { color:#ffb84d; font-size:.65rem; text-align:right; }
.conflict-versions { display:grid; grid-template-columns:1fr 1fr; }
.conflict-version { min-width:0; padding:12px; background:#0e1113; }
.conflict-version + .conflict-version { border-left:1px solid var(--line); }
.conflict-version-label { display:block; margin-bottom:6px; color:var(--accent,var(--acid)); font-size:.58rem; font-weight:950; letter-spacing:.1em; }
.conflict-version > strong,.conflict-version > small { display:block; }
.conflict-version > strong { font-size:.75rem; line-height:1.35; }
.conflict-version > small { margin-top:3px; color:var(--muted); font-size:.65rem; }
.conflict-version ul { display:grid; gap:7px; margin:10px 0 0; padding:0; list-style:none; }
.conflict-version li { min-width:0; display:grid; gap:2px; padding-top:7px; border-top:1px solid var(--line); }
.conflict-version li b { font-size:.72rem; }
.conflict-version li span,.conflict-version li em { color:var(--muted); font-size:.65rem; line-height:1.4; overflow-wrap:anywhere; }
.conflict-version li em { font-style:italic; }
.conflict-choice { position:relative; min-width:0; cursor:pointer; background:#0e1113; }
.conflict-choice > input { position:absolute; opacity:0; pointer-events:none; }
.conflict-choice .conflict-version { height:100%; padding-top:38px; border:2px solid transparent; }
.conflict-choice.selected .conflict-version,.conflict-choice:has(input:checked) .conflict-version { border-color:var(--accent,var(--acid)); background:color-mix(in srgb,var(--accent,var(--acid)) 8%,#0e1113); }
.conflict-choice-marker { position:absolute; z-index:1; top:10px; left:12px; padding:4px 8px; border:1px solid var(--line); border-radius:999px; color:var(--muted); font-size:.6rem; font-weight:900; }
.conflict-choice:has(input:checked) .conflict-choice-marker { color:#081014; background:var(--accent,var(--acid)); border-color:var(--accent,var(--acid)); }
.conflict-only { border:1px solid var(--line); border-radius:12px; padding:10px; background:rgba(255,255,255,.015); }
.conflict-only summary { cursor:pointer; color:var(--text); font-size:.76rem; font-weight:850; }
.conflict-only .conflict-version { margin-top:8px; border-radius:9px; }
.conflict-one-sided + .conflict-one-sided { margin-top:10px; padding-top:10px; border-top:1px solid var(--line); }
.conflict-one-sided fieldset { display:flex; gap:8px; margin:8px 0 0; padding:0; border:0; }
.conflict-one-sided legend { margin-bottom:6px; color:var(--muted); font-size:.63rem; }
.conflict-one-sided fieldset label { flex:1; padding:9px; border:1px solid var(--line); border-radius:9px; color:var(--text); font-size:.69rem; font-weight:800; }
.conflict-one-sided fieldset label:has(input:checked) { border-color:var(--accent,var(--acid)); background:color-mix(in srgb,var(--accent,var(--acid)) 9%,transparent); }
.conflict-other { display:grid; gap:4px; padding:11px; border-left:3px solid #ffb84d; border-radius:9px; background:#0e1113; }
.conflict-other b { font-size:.75rem; }
.conflict-other span { color:var(--muted); font-size:.68rem; line-height:1.4; }
.conflict-other small { color:#ffcc84; font-size:.64rem; line-height:1.4; }
.conflict-section { border:1px solid var(--line); border-radius:14px; overflow:hidden; }
.conflict-section .conflict-version { min-height:110px; }
.conflict-record-choice { border-top:1px solid var(--line); }
.conflict-record-choice .conflict-workout-head { background:#11171b; }
.conflict-record-choice .conflict-version { min-height:74px; }
.conflict-section .conflict-version li { color:var(--text); font-size:.67rem; line-height:1.4; }
.conflict-section .conflict-version li.conflict-missing { color:#ffb0aa; font-style:italic; }
.conflict-section .conflict-version li.conflict-record-diff { display:grid; gap:4px; margin:7px 0; padding:8px 9px; border:1px solid #9a741e; border-left:4px solid #ffca57; border-radius:7px; background:#33280f; }
.conflict-record-diff>small { width:max-content; padding:2px 6px; border-radius:999px; background:#ffca57; color:#171006; font-size:.55rem; font-style:normal; font-weight:950; letter-spacing:.04em; text-transform:uppercase; }
.conflict-record-diff>span { color:#ffe6aa; font-style:normal; }
.conflict-record-diff.conflict-missing { border-color:#9c4545; border-left-color:#ff7777; background:#351717; }
.conflict-record-diff.conflict-missing>small { background:#ff7777; }
.conflict-no-draft { display:grid; align-content:start; gap:6px; min-height:150px; }
.conflict-no-draft>strong { margin-top:26px; font-size:.8rem; }
.conflict-no-draft>small { color:var(--muted); font-size:.67rem; line-height:1.4; }
.conflict-apply { margin-top:14px; position:sticky; bottom:0; box-shadow:0 -8px 20px rgba(11,13,15,.88); }
.sync-save-status { min-height:1.2em; margin:8px 2px 2px; color:var(--muted); font-size:.68rem; line-height:1.45; }
.sync-save-status.working { color:var(--accent,var(--acid)); }
.sync-save-status.success { color:#8ee8a2; }
.sync-save-status.error { color:#ff9b91; }
.sync-conflict-warning { margin:13px 0 0; color:#ffcc84; font-size:.68rem; line-height:1.4; }
@media(max-width:420px){.account-form>div,.account-actions,.sync-conflict-options{grid-template-columns:1fr}.account-heading{align-items:center}}
@media(max-width:520px){.conflict-versions{grid-template-columns:1fr}.conflict-version+.conflict-version{border-left:0;border-top:1px solid var(--line)}.sync-conflict-dialog{padding:18px}.conflict-workout-head{display:grid}.conflict-workout-head span{text-align:left}}

.theme-picker { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; margin-top:15px; }
.theme-picker button { position:relative; min-width:0; display:grid; grid-template-columns:38px minmax(0,1fr); grid-template-rows:auto auto; column-gap:10px; align-items:center; padding:11px; border:1px solid var(--line); border-radius:14px; background:var(--panel2); color:var(--text); text-align:left; }
.theme-picker button.selected { border-color:var(--acid); box-shadow:0 0 0 1px var(--acid); background:var(--acid-soft); }
.theme-picker button.selected::after { content:'✓'; position:absolute; top:7px; right:8px; color:var(--acid); font-size:.72rem; font-weight:950; }
.theme-picker b { min-width:0; padding-right:10px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.78rem; }
.theme-picker small { grid-column:2; color:var(--muted); font-size:.67rem; }
.theme-swatch { grid-row:1 / 3; width:38px; height:38px; padding:5px; display:grid; grid-template-columns:repeat(3,1fr); align-items:end; gap:2px; border-radius:11px; background:var(--swatch-bg); }
.theme-swatch i { display:block; border-radius:3px; background:var(--swatch-accent); }
.theme-swatch i:nth-child(1) { height:38%; opacity:.45; }.theme-swatch i:nth-child(2) { height:65%; opacity:.7; }.theme-swatch i:nth-child(3) { height:95%; }
.theme-swatch.lime { --swatch-bg:#18200f; --swatch-accent:#d7ff3f; }.theme-swatch.blue { --swatch-bg:#0b1d2b; --swatch-accent:#35b9ff; }.theme-swatch.orange { --swatch-bg:#28170d; --swatch-accent:#ff9d3b; }.theme-swatch.violet { --swatch-bg:#1d1430; --swatch-accent:#b995ff; }.theme-swatch.teal { --swatch-bg:#0e2425; --swatch-accent:#45d5c3; }.theme-swatch.system { --swatch-bg:linear-gradient(135deg,#f4f6f8 0 49%,#12171b 51%); --swatch-accent:#4f90ff; }

html[data-theme="lime"] { --bg:#0b0d0f;--panel:#15191d;--panel2:#1d2227;--line:#2b3239;--text:#f5f7f8;--muted:#94a0aa;--acid:#d7ff3f;--acid-dark:#1b2400;--acid-soft:rgba(215,255,63,.08);--accent-deep:#728814;--ambient:#233000;--field:#0e1113;--nav:#101316f2;--accent-ink:#111700; }
html[data-theme="blue"] { --bg:#071018;--panel:#101a23;--panel2:#182630;--line:#2a3b48;--text:#f4f8fb;--muted:#91a4b4;--acid:#35b9ff;--acid-dark:#06283b;--acid-soft:rgba(53,185,255,.09);--accent-deep:#1475aa;--ambient:#073c5a;--field:#09131a;--nav:#0b151df2;--accent-ink:#03141f; }
html[data-theme="orange"] { --bg:#100b08;--panel:#1d1612;--panel2:#2a2019;--line:#433329;--text:#fff7f1;--muted:#b09b8e;--acid:#ff9d3b;--acid-dark:#39200a;--acid-soft:rgba(255,157,59,.09);--accent-deep:#a95418;--ambient:#512406;--field:#160f0b;--nav:#17100cf2;--accent-ink:#241105; }
html[data-theme="violet"] { --bg:#0b0912;--panel:#171320;--panel2:#211a30;--line:#372d4b;--text:#faf7ff;--muted:#a79bb8;--acid:#b995ff;--acid-dark:#281844;--acid-soft:rgba(185,149,255,.09);--accent-deep:#7350b5;--ambient:#351d59;--field:#100c18;--nav:#100c18f2;--accent-ink:#160b28; }
html[data-theme="teal"] { --bg:#07100f;--panel:#111c1b;--panel2:#192827;--line:#2b403e;--text:#f2fbfa;--muted:#91aaa7;--acid:#45d5c3;--acid-dark:#0a312d;--acid-soft:rgba(69,213,195,.09);--accent-deep:#178779;--ambient:#0b4942;--field:#0a1514;--nav:#0c1716f2;--accent-ink:#06201d; }
html[data-theme="system"][data-system-appearance="dark"] { --bg:#0b0d0f;--panel:#15191d;--panel2:#1d2227;--line:#2b3239;--text:#f5f7f8;--muted:#94a0aa;--acid:#6aa7ff;--acid-dark:#132844;--acid-soft:rgba(106,167,255,.09);--accent-deep:#376da9;--ambient:#17385e;--field:#0e1113;--nav:#101316f2;--accent-ink:#07172a; }
html[data-theme="system"][data-system-appearance="light"] { --bg:#f4f6f8;--panel:#ffffff;--panel2:#edf1f5;--line:#d5dde5;--text:#18212a;--muted:#667583;--acid:#176bd6;--acid-dark:#dbeaff;--acid-soft:rgba(23,107,214,.08);--accent-deep:#0e4d9d;--ambient:#cfe3ff;--field:#f7f9fb;--nav:#fffffff2;--accent-ink:#ffffff;--danger:#c53e38;color-scheme:light; }
html:not([data-theme="system"]),html[data-system-appearance="dark"] { color-scheme:dark; }
body { background:radial-gradient(circle at 80% -10%,var(--ambient) 0,transparent 28rem),var(--bg); }
textarea,input,select,.recommended-exercises>div,.drilldown-sets>div,.history-warmup,.target-progress,.weight-chart { background-color:var(--field); }
.bottom-nav { background:var(--nav); }
.summary-card { background:linear-gradient(135deg,var(--acid),color-mix(in srgb,var(--acid) 64%,var(--accent-deep))); }
.summary-card,.primary,.finish-button,.target-add,.photo-add,.history-range-controls button.active,.start-mark,.set-done.done { color:var(--accent-ink); }
.timer-bar { background:var(--acid); color:var(--accent-ink); }
.timer-bar button { background:color-mix(in srgb,var(--accent-ink) 86%,transparent); }
.bar,.history-bar-wrap>i { background:linear-gradient(var(--acid),var(--accent-deep)); }
.recommend-template { background:linear-gradient(135deg,var(--acid-soft),var(--panel2));border-color:color-mix(in srgb,var(--acid) 38%,var(--line)); }
.exercise-recommendation-strip,.exercise-history-open,.backup-drive { background:var(--acid-soft);border-color:color-mix(in srgb,var(--acid) 36%,var(--line)); }
.recommendation-reason { background:var(--acid-soft); }
@media(max-width:380px){.theme-picker{grid-template-columns:1fr}}

.exercise-name-button {
  margin: 0;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  color: var(--text) !important;
  font-size: 1.17rem !important;
  font-weight: 800;
  text-align: left;
}
.exercise-name-button span { color: var(--acid); font-size: .8rem; }
.exercise-head { display: grid; grid-template-columns: 36px minmax(0,1fr) 30px; gap: 9px; align-items: start; }
.exercise-title { min-width: 0; }
.exercise-max { margin-top: 5px; color: var(--acid); font-size: .75rem; font-weight: 800; }
.exercise-drag-handle {
  width: 36px;
  height: 40px;
  padding: 0 !important;
  border: 1px solid var(--line) !important;
  border-radius: 10px;
  background: var(--panel2) !important;
  color: var(--muted) !important;
  font-size: 1.35rem !important;
  font-weight: 900;
  line-height: 1;
  cursor: grab;
  touch-action: none;
}
.exercise-drag-handle:active { cursor: grabbing; color: var(--acid) !important; }
.exercise-card.dragging { opacity: .65; border-color: var(--acid); transform: scale(.99); }
.set-labels, .set-row {
  display: grid;
  grid-template-columns: 20px minmax(44px,1fr) minmax(44px,1fr) minmax(54px,1fr) 38px 28px;
  gap: 6px;
  align-items: center;
}
.set-labels {
  margin-top: 12px;
  color: var(--muted);
  font-size: .62rem;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.set-row { margin-top: 6px; }
.actual-max-toggle {
  grid-column: 2 / 5;
  justify-self: start;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: transparent;
  color: var(--muted);
  padding: 5px 9px;
  font-size: .68rem;
  font-weight: 800;
}
.actual-max-toggle.active { border-color: #b89026; background: #33290d; color: #ffd86b; }
.move-set { grid-column: 5 / 7; justify-self: end; border: 0; background: transparent; color: var(--accent,#55bfff); padding: 5px 3px; font-size: .68rem; font-weight: 850; }
.set-row .set-index em { color: var(--accent,#55bfff); font-size: .52rem; font-style: normal; margin-top: 3px; }
.move-set-hint { margin: 10px 0 0; color: var(--muted); font-size: .75rem; }
.performed-order { margin: 14px 0; padding: 12px; border: 1px solid var(--line); border-radius: 13px; background: rgba(0,0,0,.16); }
.performed-order summary { color: var(--accent,#55bfff); cursor: pointer; font-size: .78rem; font-weight: 850; }
.performed-order ol { display: grid; gap: 8px; margin: 12px 0 0; padding: 0; list-style: none; }
.performed-order li { display: grid; grid-template-columns: 25px 1fr; align-items: center; gap: 8px; }
.performed-order li > span { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; background: var(--panel2); color: var(--muted); font-size: .67rem; font-weight: 900; }
.performed-order li div { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; min-width: 0; }
.performed-order button { border: 0; background: transparent; color: var(--text); padding: 0; font-weight: 800; text-align: left; }
.performed-order small { color: var(--muted); white-space: nowrap; }
.actual-max-badge { display: inline-block; border: 1px solid #8a6d19; border-radius: 999px; padding: 1px 5px; color: #ffd86b; font-size: .58rem; font-weight: 900; vertical-align: middle; }
.metric-sparkline { height: 52px; margin-top: 5px; overflow: hidden; }
.metric-sparkline svg { display: block; width: 100%; height: 52px; overflow: visible; }
.metric-sparkline .spark-bar { fill: #8fa62f; opacity: .72; }
.metric-sparkline .spark-bar.latest { fill: var(--acid); opacity: 1; }
.metric-sparkline .spark-baseline { stroke: var(--line); stroke-width: 1; vector-effect: non-scaling-stroke; }
.metric-sparkline .spark-empty { display: grid; place-items: center; height: 100%; border-top: 1px dashed var(--line); color: var(--muted); font-size: .7rem; }
.chart-card .chart-caption { color: var(--muted); font-size: .75rem; margin: -14px 0 20px; }
.exercise-history-open { width: 100%; margin: -5px 0 14px; border: 1px solid #5f7130; border-radius: 12px; background: var(--acid-dark); color: var(--acid); padding: 11px 13px; font-weight: 850; }
.duplicate-review-open { width: 100%; margin: -5px 0 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--panel2); color: var(--text); padding: 11px 13px; font-weight: 800; }
.duplicate-pair { border: 1px solid var(--line); border-radius: 15px; padding: 13px; margin-top: 10px; background: #0e1113; }
.duplicate-pair > span { color: var(--muted); font-size: .68rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.duplicate-pair > div { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 7px; margin-top: 9px; }
.duplicate-pair > div button { min-width: 0; border: 1px solid #5f7130; border-radius: 11px; background: var(--acid-dark); color: var(--text); padding: 10px; text-align: left; }
.duplicate-pair > div b,.duplicate-pair > div small { display: block; overflow-wrap: anywhere; }
.duplicate-pair > div small { margin-top: 4px; color: var(--muted); font-size: .68rem; line-height: 1.3; }
.duplicate-pair em { color: var(--muted); font-size: .7rem; font-style: normal; }
.duplicate-ignore { width: 100%; margin-top: 8px; border: 0; background: transparent; color: var(--muted); padding: 7px; font-size: .75rem; }
.duplicate-empty { color: var(--muted); text-align: center; padding: 28px 12px; border: 1px dashed var(--line); border-radius: 13px; }
.open-exercise-history { border: 0; background: transparent; color: var(--text); padding: 0; font-weight: 850; text-align: left; }
.open-exercise-history span { color: var(--acid); font-size: .72rem; }
.exercise-detail-head { display: flex; align-items: center; gap: 12px; margin: 4px 2px 18px; }
.exercise-detail-head > button { flex: 0 0 44px; width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 50%; background: var(--panel); color: var(--acid); font-size: 1.3rem; }
.exercise-detail-head h2 { margin: 3px 0 0; font-size: 1.7rem; }
.exercise-detail-metrics { margin-bottom: 22px; }
.exercise-session-heading { display: flex; justify-content: space-between; align-items: baseline; margin: 0 2px 10px; }
.exercise-session-heading span { color: var(--muted); font-size: .78rem; }
.exercise-session { background: var(--panel); border: 1px solid var(--line); border-radius: 16px; padding: 15px; margin-bottom: 9px; }
.exercise-session-date { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 7px; }
.exercise-session-date strong { font-size: .9rem; }
.exercise-session-sets { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 11px; }
.exercise-session-sets > span { border: 1px solid var(--line); border-radius: 9px; background: #0e1113; padding: 7px 9px; color: #d8dde0; font-size: .78rem; }
.exercise-session-sets b { color: #ffd86b; font-size: .58rem; margin-left: 3px; }
.exercise-session p { margin: 11px 0 0; padding: 9px 10px; border-left: 3px solid var(--acid); border-radius: 7px; background: #0e1113; color: var(--muted); font-size: .8rem; line-height: 1.45; white-space: pre-line; }
.plus-field { position: relative; display: flex; align-items: center; }
.plus-field span { color: var(--acid); font-weight: 900; margin-right: 3px; }
.plus-field input { flex: 1; width: calc(100% - 14px); }
.remove-set {
  width: 28px;
  height: 36px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--muted);
  font-size: 1.2rem;
}
.remove-set:active { color: var(--danger); }
.history-date > div { display: grid; gap: 3px; }
.copy-workout {
  align-self: start;
  border: 1px solid #5f7130;
  border-radius: 10px;
  background: var(--acid-dark);
  color: var(--acid);
  padding: 8px 12px;
  font-size: .78rem;
  font-weight: 800;
}
.copy-workout:active { background: var(--acid); color: #111700; }
.history-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:7px; }
.history-actions:has(.edit-workout) { position:relative; display:grid; grid-template-columns:1fr 42px; justify-content:end; min-width:132px; }
.history-actions:has(.edit-workout)>button { grid-column:1 / -1; }
.history-actions:has(.edit-workout) .copy-workout { grid-column:1; }
.history-actions:has(.edit-workout) .history-more { grid-column:2; grid-row:2; position:relative; }
.history-more summary { display:grid; place-items:center; height:100%; min-height:42px; border:1px solid var(--line); border-radius:13px; background:var(--panel2); color:var(--text); font-weight:900; cursor:pointer; list-style:none; }
.history-more summary::-webkit-details-marker { display:none; }
.history-more>div { position:absolute; z-index:8; top:calc(100% + 7px); right:0; width:150px; padding:7px; border:1px solid var(--line); border-radius:14px; background:#10171c; box-shadow:0 16px 38px #000b; }
.history-more button { display:block; width:100%; padding:11px 12px; border:0; border-radius:9px; background:transparent; color:var(--text); text-align:left; font-weight:750; }
.history-more button:active { background:var(--panel2); }
.history-more .delete-workout { color:var(--danger); }
.repeat-workout {
  align-self: start;
  border: 1px solid #5f7130;
  border-radius: 10px;
  background: var(--acid-dark);
  color: var(--acid);
  padding: 8px 12px;
  font-size: .78rem;
  font-weight: 850;
}
.repeat-workout:active { background: var(--acid); color: #111700; }
.edit-workout {
  align-self: start;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--panel2);
  color: var(--text);
  padding: 8px 12px;
  font-size: .78rem;
  font-weight: 800;
}
.delete-workout {
  align-self: start;
  border: 1px solid #713633;
  border-radius: 10px;
  background: transparent;
  color: var(--danger);
  padding: 8px 10px;
  font-size: .78rem;
  font-weight: 800;
}
.restart-today {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: transparent;
  color: var(--muted);
  padding: 12px;
  margin: 0 0 10px;
  font-weight: 800;
}
.cancel-edit {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: transparent;
  color: var(--muted);
  padding: 12px;
  margin: 0 0 10px;
  font-weight: 800;
}
.continue-session {
  width: 100%;
  border: 1px solid #5f7130;
  border-radius: 13px;
  background: var(--acid-dark);
  color: var(--acid);
  padding: 13px;
  margin: 0 0 10px;
  font-weight: 850;
}
.exercise-actions { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; margin-top: 12px; }
.exercise-actions .add-set { grid-column: 1 / -1; margin: 0; }
.combine-exercises {
  border: 1px solid #5f7130;
  border-radius: 12px;
  background: var(--acid-dark);
  color: var(--acid);
  padding: 8px 10px;
  font-size: .78rem;
  font-weight: 800;
}
.exercise-card.exercise-grouped { border-left-width: 4px; }
.exercise-card.group-0 { border-left-color: var(--acid); }
.exercise-card.group-1 { border-left-color: #62c8ff; }
.exercise-card.group-2 { border-left-color: #ffbd59; }
.exercise-card.group-3 { border-left-color: #d48cff; }
.exercise-group-badge { display: inline-grid; place-items: center; min-width: 27px; height: 23px; margin-right: 7px; border-radius: 7px; background: var(--acid); color: #111700; font-size: .7rem; font-weight: 950; }
.exercise-group-options { display: grid; gap: 8px; margin: 14px 0 18px; }
.exercise-group-options label { display: flex; align-items: center; gap: 11px; border: 1px solid var(--line); border-radius: 12px; background: #0e1113; padding: 12px; }
.exercise-group-options input { width: 20px; height: 20px; margin: 0; accent-color: var(--acid); }
.exercise-group-options span { font-weight: 750; }
.timer-bar {
  top: calc(env(safe-area-inset-top) + 10px);
  bottom: auto;
  gap: 8px;
}
.timer-metric { display: grid; gap: 1px; min-width: 58px; }
.timer-metric.elapsed { margin-right: auto; padding-left: 9px; border-left: 1px solid #1114; }
.timer-bar .timer-metric strong { margin: 0; font-size: 1.05rem; line-height: 1.05; }
.timer-metric.complete strong { font-size: .78rem; }
.timer-bar button { padding-inline: 8px; }
@media(max-width:420px){.timer-bar{padding-inline:10px}.timer-bar button{padding-inline:6px}.timer-metric{min-width:52px}.timer-metric.elapsed{padding-left:7px}}
.import-plan-button { width: 100%; margin-top: 9px; padding: 11px 14px; border: 1px solid #5f7130; border-radius: 12px; background: var(--acid-dark); color: var(--acid); font-weight: 800; }
#planImportInput { min-height: 260px; font-family: ui-monospace,SFMono-Regular,Consolas,monospace; font-size: .86rem; }
.plan-library-actions { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:9px; }
.plan-library-actions .import-plan-button { margin:0; }
.saved-workouts-button { border:1px solid var(--line); border-radius:12px; background:var(--panel2); color:var(--text); padding:11px 13px; font-weight:800; }
.saved-workouts-button span:not(:empty) { display:inline-grid; place-items:center; min-width:20px; height:20px; margin-left:5px; border-radius:999px; background:var(--acid); color:var(--accent-ink); font-size:.68rem; }
.optional-label { color:var(--muted); font-size:.68rem; font-weight:600; }
.plan-import-actions { display:grid; grid-template-columns:auto 1fr 1fr; }
.saved-workouts-dialog { width:min(540px,calc(100% - 24px)); max-height:calc(100vh - 28px); overflow:auto; }
.saved-workout-summary { display:flex; justify-content:space-between; align-items:center; margin:10px 1px 14px; color:var(--muted); font-size:.75rem; }
.saved-workout-summary b { color:var(--acid); }
.saved-workout-list { display:grid; gap:10px; }
.saved-workout-card { position:relative; border:1px solid var(--line); border-radius:16px; padding:14px; background:var(--panel2); }
.saved-workout-head { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; }
.saved-workout-head > div { min-width:0; display:grid; gap:3px; }
.saved-workout-head strong { overflow-wrap:anywhere; }
.saved-workout-head span { color:var(--muted); font-size:.7rem; }
.saved-workout-menu { flex:0 0 34px; height:32px; border:0; border-radius:9px; background:var(--panel); color:var(--muted); font-weight:900; }
.saved-workout-card > p { margin:11px 0; color:var(--muted); font-size:.78rem; line-height:1.45; }
.saved-workout-library-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:0 0 9px; }
.saved-workout-library-actions button { margin:0; padding:10px 8px; }
.saved-workout-library-actions .share-saved-workout { grid-column:1 / -1; }
.routine-edit-card { margin-bottom:12px; padding:14px; border:1px solid var(--accent,var(--acid)); border-radius:14px; background:var(--panel); }
.routine-edit-card label { display:flex; justify-content:space-between; align-items:baseline; }
.routine-edit-card label span { color:var(--muted); font-size:.68rem; }
.routine-edit-card input { margin-top:8px; }
.workout-panel.routine-editing .set-done,.workout-panel.routine-editing .actual-max-toggle,.workout-panel.routine-editing .exercise-recommendation-strip { display:none!important; }
.workout-panel.routine-editing .exercise-progress { visibility:hidden; height:0; margin:0; }
.saved-workout-detail { display:grid; gap:9px; margin:0 0 11px; padding:11px; border:1px solid var(--line); border-radius:12px; background:var(--panel); }
.saved-workout-warmup { padding:10px; border-left:3px solid var(--accent,var(--acid)); border-radius:8px; background:#0d1114; }
.saved-workout-warmup b { color:var(--accent,var(--acid)); font-size:.72rem; }
.saved-workout-warmup p { margin:5px 0 0; color:var(--muted); font-size:.7rem; line-height:1.45; white-space:pre-line; }
.saved-workout-exercises { display:grid; gap:8px; }
.saved-workout-exercise { padding:9px 0 0; border-top:1px solid var(--line); }
.saved-workout-exercise:first-child { padding-top:0; border-top:0; }
.saved-workout-exercise>div { display:flex; align-items:center; gap:7px; }
.saved-workout-exercise>div>span { display:grid; place-items:center; width:20px; height:20px; border-radius:50%; background:var(--panel2); color:var(--muted); font-size:.6rem; font-weight:900; }
.saved-workout-exercise strong { font-size:.75rem; }
.saved-workout-exercise>p { display:flex; flex-wrap:wrap; gap:5px; margin:7px 0 0; }
.saved-workout-exercise>p span { padding:5px 7px; border:1px solid var(--line); border-radius:7px; color:var(--text); font-size:.66rem; }
.saved-workout-exercise>small { display:block; margin-top:7px; color:var(--muted); font-size:.66rem; font-style:italic; }
.saved-workout-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.saved-workout-actions button { padding:10px 9px; }
.saved-workout-options { display:grid; grid-template-columns:1fr 1fr 1fr; gap:6px; margin-top:9px; padding-top:9px; border-top:1px solid var(--line); }
.saved-workout-options button { border:0; border-radius:9px; padding:8px; background:var(--panel); color:var(--muted); font-size:.72rem; font-weight:800; }
.saved-workout-options .danger { color:var(--danger); }
.saved-workout-empty { padding:28px 18px; border:1px dashed var(--line); border-radius:15px; color:var(--muted); text-align:center; font-size:.82rem; line-height:1.5; }
.save-workout-routine { width:100%; margin-top:13px; border:1px dashed color-mix(in srgb,var(--acid) 42%,var(--line)); border-radius:11px; background:var(--acid-soft); color:var(--acid); padding:9px 11px; font-size:.75rem; font-weight:800; }
@media(max-width:420px){.plan-library-actions{grid-template-columns:1fr}.plan-import-actions{grid-template-columns:1fr 1fr}.plan-import-actions #cancelPlanImport{grid-column:1/-1;order:3}.saved-workout-actions{grid-template-columns:1fr}.saved-workout-options{grid-template-columns:1fr}}

/* Training view refinement */
.exercise-head { grid-template-columns:36px minmax(0,1fr) auto; }
.exercise-name { color:var(--text); font-size:1.17rem; font-weight:850; line-height:1.25; overflow-wrap:anywhere; }
.exercise-progress { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:9px; }
.exercise-progress i { display:block; height:4px; overflow:hidden; border-radius:999px; background:#2a3035; }
.exercise-progress i b { display:block; height:100%; border-radius:inherit; background:var(--acid); transition:width .25s ease; }
.exercise-card.exercise-complete { border-color:#465224; background:linear-gradient(145deg,rgba(215,255,63,.035),var(--panel)); }
.exercise-menu { position:relative; }
.exercise-menu summary { width:34px; height:34px; display:grid; place-items:center; border-radius:10px; color:var(--muted); cursor:pointer; list-style:none; font-size:.8rem; font-weight:900; letter-spacing:-.05em; }
.exercise-menu summary::-webkit-details-marker { display:none; }
.exercise-menu[open] summary { background:var(--panel2); color:var(--acid); }
.exercise-menu > div { position:absolute; z-index:15; top:39px; right:0; width:158px; display:grid; gap:4px; padding:6px; border:1px solid var(--line); border-radius:12px; background:#101316; box-shadow:0 14px 35px #000c; }
.exercise-menu > div button { width:100%; height:auto; display:block; padding:10px; border:0; border-radius:8px; background:transparent; color:var(--text); font-size:.76rem; text-align:left; }
.exercise-menu > div button:active { background:var(--panel2); }
.exercise-menu > div button.danger { color:var(--danger); }
.set-row { padding:7px 5px; border:1px solid transparent; border-radius:12px; background:#111518; transition:background .2s,border-color .2s,opacity .2s; }
.set-row.next-set { border-color:#6e832d; background:rgba(215,255,63,.075); box-shadow:inset 3px 0 0 var(--acid); }
.set-row.completed { background:#101311; opacity:.68; }
.set-row.completed .set-input { color:#b8c0b2; }
.set-row.later-set { opacity:.9; }
.set-row .set-index { display:grid; gap:0; color:var(--text); line-height:1; }
.set-row .set-index small { color:var(--muted); font-size:.46rem; letter-spacing:.08em; }
.set-row .set-input { min-height:43px; font-size:1rem; font-weight:800; }
.set-row.next-set .set-input { color:#fff; }
.set-row .set-done { transition:transform .15s,background .2s; }
.set-row .set-done:active { transform:scale(.9); }
.collapsed-set-summary { flex-wrap:wrap; gap:5px; }
.exercise-card.collapsed .collapsed-set-summary { display:flex; }
.collapsed-set-summary span { padding:4px 7px; border:1px solid var(--line); border-radius:8px; background:#101316; white-space:nowrap; }
.collapsed-set-summary span.complete { border-color:#465224; color:var(--acid); opacity:.72; }
.collapsed-set-summary span.next { border-color:var(--acid); color:#fff; box-shadow:0 0 0 1px rgba(215,255,63,.12); }
.collapsed-set-summary span.planned { color:#7f8991; }

/* Integrated rest status */
.timer-bar { --rest-progress:100%; display:grid; grid-template-columns:auto auto minmax(0,1fr) auto auto auto; background:linear-gradient(90deg,#b9dc31 var(--rest-progress),var(--acid) var(--rest-progress)); }
.timer-bar.expired { background:#ffbd59; }
.timer-bar{touch-action:pan-y;will-change:transform,opacity}
.timer-restore{position:fixed;z-index:20;top:calc(env(safe-area-inset-top) + 9px);left:50%;transform:translateX(-50%);border:1px solid color-mix(in srgb,var(--acid) 55%,var(--line));border-radius:999px;padding:8px 12px;background:var(--panel);color:var(--text);box-shadow:0 8px 24px #0009;font-size:.75rem;font-weight:800;white-space:nowrap}
.timer-restore span{color:var(--acid)}
.timer-next { grid-column:1/-1; grid-row:2; min-width:0; display:flex; align-items:center; gap:8px; padding-top:7px; border-top:1px solid #1113; }
.timer-next span { flex:0 0 auto; }
.timer-next b { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.76rem; }
body.timer-active .app-shell { padding-top:calc(env(safe-area-inset-top) + 106px); }

/* History timeline and chart polish */
.history-list { position:relative; padding-left:14px; }
.history-list::before { content:""; position:absolute; top:13px; bottom:18px; left:3px; width:1px; background:linear-gradient(var(--acid),var(--line) 28%,var(--line)); }
.history-item { position:relative; box-shadow:0 8px 24px rgba(0,0,0,.14); }
.history-item::before { content:""; position:absolute; left:-16px; top:24px; width:7px; height:7px; border:2px solid var(--bg); border-radius:50%; background:var(--acid); box-shadow:0 0 0 2px #536320; }
.history-date strong { letter-spacing:-.01em; }
.history-exercises { border-top:1px solid rgba(255,255,255,.055); padding-top:11px; }
.pr-badge { opacity:.82; }
.photo-entry { margin-left:-5px; border-color:#394148; }
.photo-thumbnail { flex-basis:132px; width:132px; height:132px; }
.history-histogram-card,.chart-card { box-shadow:0 9px 26px rgba(0,0,0,.16); }
.history-bar-wrap>i,.bar { background:linear-gradient(180deg,var(--acid),#839b25); box-shadow:0 -3px 12px rgba(215,255,63,.08); }
@media(max-width:420px){.exercise-head-actions button,.exercise-menu summary{width:30px}.timer-bar{grid-template-columns:auto auto 1fr auto auto auto}.timer-next b{font-size:.7rem}.photo-thumbnail{flex-basis:120px;width:120px;height:120px}}
body.timer-active .app-shell {
  padding-top: calc(env(safe-area-inset-top) + 76px);
}
.progress-insights-card { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 18px; margin-bottom: 14px; }
.progress-insights-card h3 { margin: 4px 0 14px; font-size: 1.2rem; }
.insight-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.insight-tile { display: grid; gap: 4px; min-width: 0; padding: 12px; border-radius: 13px; background: #0e1113; }
.insight-tile span { color: var(--muted); font-size: .7rem; }
.insight-tile strong { overflow-wrap: anywhere; font-size: 1rem; line-height: 1.25; }
.insight-tile strong.positive { color: var(--acid); }
.insight-tile strong.negative { color: #ff9a72; }
.insight-tile small { color: var(--muted); font-size: .67rem; line-height: 1.35; }
.next-target { display: grid; gap: 5px; margin-top: 9px; border: 1px solid #5f7130; border-radius: 13px; background: var(--acid-dark); padding: 13px; }
.next-target span { color: var(--acid); font-size: .64rem; font-weight: 900; letter-spacing: .12em; }
.next-target strong { font-size: .9rem; line-height: 1.4; }
.muscle-volume-head { display: flex; justify-content: space-between; gap: 10px; margin: 18px 1px 8px; }
.muscle-volume-head b { font-size: .85rem; }
.muscle-volume-head span { color: var(--muted); font-size: .7rem; }
.muscle-group-sets { display: grid; gap: 9px; border-top: 1px solid var(--line); padding-top: 11px; }
.muscle-group-row { display: grid; grid-template-columns: 76px 1fr 25px; align-items: center; gap: 9px; }
.muscle-group-row span,.muscle-group-row strong { font-size: .75rem; }
.muscle-group-row strong { text-align: right; }
.muscle-group-row > div { height: 7px; overflow: hidden; border-radius: 999px; background: #262d31; }
.muscle-group-row i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,var(--acid),#728814); }
.insight-empty { color: var(--muted); font-size: .78rem; padding: 5px 0; }
.configure-measurement {
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--panel2);
  color: var(--muted);
  padding: 8px 12px;
  font-size: .78rem;
  font-weight: 800;
}
.measurement-preview { margin: 12px 0; padding: 12px; border-radius: 12px; background: var(--panel2); color: var(--muted); font-size: .82rem; line-height: 1.45; }
.measurement-hidden { display: none !important; }
.settings-done { border: 0; border-radius: 12px; background: var(--acid); color: #111700; padding: 10px 14px; font-weight: 850; }
.settings-card { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 18px; margin-bottom: 12px; }
.settings-collapsible > summary { display:flex; justify-content:space-between; align-items:center; gap:12px; cursor:pointer; list-style:none; }
.settings-collapsible > summary::-webkit-details-marker { display:none; }
.settings-collapsible > summary > span:first-child { display:grid; gap:4px; }
.settings-collapsible > summary strong { font-size:1.18rem; }
.settings-chevron { color:var(--muted); font-size:1.3rem; transition:transform .18s ease; }
.settings-collapsible[open] .settings-chevron { transform:rotate(180deg); color:var(--acid); }
.settings-collapsible > p,.settings-collapsible > form,.settings-collapsible > div:not(:first-child),.settings-collapsible > button { margin-top:12px; }
.export-range-label { display:grid; gap:6px; color:var(--muted); font-size:.78rem; font-weight:750; margin:10px 0 4px; }
.export-range-label select { margin:0; }
.settings-card h3 { margin: 4px 0 0; font-size: 1.18rem; }
.settings-card > p { color: var(--muted); font-size: .84rem; line-height: 1.5; margin: 9px 0 15px; }
.settings-card label { color: var(--muted); font-size: .78rem; font-weight: 750; }
.settings-card select { margin: 6px 0 14px; }
.settings-measure-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.settings-save { width: 100%; margin-bottom: 9px; }
.exercise-configuration-list { display: grid; gap: 10px; }
.exercise-config-item { border: 1px solid var(--line); border-radius: 15px; background: #101417; padding: 14px; }
.exercise-config-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.exercise-config-head strong { font-size: .98rem; }
.exercise-config-head button { border: 0; border-radius: 10px; background: var(--acid); color: #111700; padding: 8px 12px; font-size: .78rem; font-weight: 850; }
.exercise-config-item .settings-measure-grid { margin-top: 11px; }
.exercise-config-item .measurement-preview { margin-bottom: 0; }
.exercise-alias-form { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; align-items: end; }
.exercise-alias-form .primary { grid-column: 1/-1; width: 100%; }
.exercise-alias-list { display: grid; gap: 7px; margin-top: 14px; }
.exercise-alias-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid var(--line); padding: 10px 2px 3px; }
.exercise-alias-item span { display: grid; gap: 2px; }
.exercise-alias-item b { font-size: .86rem; }
.exercise-alias-item small,.alias-empty { color: var(--muted); font-size: .75rem; }
.exercise-alias-item button { border: 0; background: transparent; color: var(--danger); font-size: 1.25rem; }
@media(max-width:520px){.settings-measure-grid{grid-template-columns:1fr}}
@media(max-width:520px){.exercise-alias-form{grid-template-columns:1fr}.exercise-alias-form .primary{grid-column:auto}}
.toggle-note {
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--panel2);
  color: var(--muted);
  padding: 8px 12px;
  font-size: .78rem;
  font-weight: 800;
}
.exercise-note { margin-top: 10px; font-size: .9rem; }
.history-note { display: block; color: var(--muted); font-style: italic; margin: 2px 0 7px; }
.pr-badges { display: flex; flex-wrap: wrap; gap: 5px; margin: 5px 0 8px; }
.pr-badge { display: inline-flex; width: fit-content; border: 1px solid #5f7130; border-radius: 999px; background: var(--acid-dark); color: var(--acid); padding: 3px 7px; font-size: .65rem; font-weight: 850; line-height: 1.2; }
.pr-badge.strength { border-color: #3b6878; background: #10242b; color: #7cddff; }
.pr-badge.volume { border-color: #715f30; background: #29220d; color: #ffd86a; }
.pr-timeline-card { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 18px; margin-bottom: 14px; }
.pr-timeline-card h3 { margin: 4px 0 14px; font-size: 1.2rem; }
.pr-timeline { display: grid; }
.pr-milestone { display: grid; grid-template-columns: 84px 1fr; gap: 10px; padding: 11px 0; border-top: 1px solid var(--line); }
.pr-milestone time { color: var(--muted); font-size: .72rem; padding-top: 4px; }
.pr-milestone .pr-badges { margin: 0; }
.pr-baseline { color: #cdd3d7; font-size: .8rem; }
.pr-empty { color: var(--muted); font-size: .82rem; line-height: 1.45; padding: 5px 0; }
.week-dashboard { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 18px; margin-bottom: 14px; }
.week-dashboard-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.week-dashboard-head h3 { margin: 4px 0 0; font-size: 1.25rem; }
.week-dashboard-head > span { color: var(--muted); font-size: .72rem; white-space: nowrap; padding-top: 4px; }
.week-metrics { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 14px; }
.week-metric { display: grid; gap: 4px; min-width: 0; padding: 12px; border-radius: 13px; background: #0e1113; }
.week-metric > span { color: var(--muted); font-size: .7rem; }
.week-metric strong { font-size: 1.35rem; }
.week-metric small,.week-exercise small { font-size: .67rem; font-weight: 800; }
.week-metric small.up,.week-exercise small.up { color: var(--acid); }
.week-metric small.down,.week-exercise small.down { color: #ff9a72; }
.week-metric small.same,.week-exercise small.same { color: var(--muted); }
.week-exercise-head { display: flex; justify-content: space-between; gap: 10px; margin: 17px 1px 7px; }
.week-exercise-head b { font-size: .85rem; }
.week-exercise-head span { color: var(--muted); font-size: .7rem; }
.week-exercises { display: grid; }
.week-exercise { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 12px; align-items: center; padding: 10px 1px; border-top: 1px solid var(--line); }
.week-exercise > div { display: grid; gap: 3px; }
.week-exercise > div:last-child { text-align: right; }
.week-exercise b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .82rem; }
.week-exercise span { color: var(--muted); font-size: .7rem; }
.week-exercise strong { font-size: .8rem; }
.week-note { margin: 11px 0 0; color: var(--muted); font-size: .68rem; line-height: 1.4; }
.week-empty { color: var(--muted); font-size: .8rem; padding: 14px 2px 4px; border-top: 1px solid var(--line); }
.warmup-card {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 16px 18px 18px;
  margin-bottom: 12px;
}

.warmup-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
}

.warmup-head label {
  display: grid;
  gap: 3px;
}

.warmup-head label span {
  color: var(--muted);
  font-size: .75rem;
}

.warmup-head button {
  border: 1px solid var(--line);
  background: var(--panel2);
  color: var(--acid);
  border-radius: 10px;
  padding: 8px 10px;
  font-size: .75rem;
  font-weight: 800;
  white-space: nowrap;
}

.warmup-head button:disabled {
  color: var(--muted);
  opacity: .55;
}

.warmup-card textarea {
  margin-top: 12px;
}
.workout-datetime-card { background: var(--panel); border: 1px solid #5f7130; border-radius: var(--radius); padding: 16px; margin-bottom: 12px; }
.workout-datetime-card > div:first-child { display: grid; gap: 3px; }
.workout-datetime-card > div:first-child span { color: var(--muted); font-size: .75rem; line-height: 1.4; }
.workout-datetime-fields { display: grid; grid-template-columns: 1.25fr .75fr; gap: 9px; margin-top: 12px; }
.workout-datetime-fields label { color: var(--muted); font-size: .75rem; font-weight: 750; }
.workout-datetime-fields input { margin-top: 5px; }
.workout-datetime-row { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); }
.workout-datetime-row > strong { color: var(--text); font-size: .82rem; }
.workout-datetime-row .workout-datetime-fields { margin-top: 7px; }
.workout-duration-preview { display: block; margin-top: 12px; color: var(--acid); font-size: .8rem; font-weight: 800; }
.workout-duration-preview.invalid { color: var(--danger); }

.history-warmup {
  display: grid;
  gap: 3px;
  margin-top: 12px;
  padding: 10px 12px;
  border-left: 3px solid var(--acid);
  background: #0e1113;
  border-radius: 8px;
}

.history-warmup b {
  color: var(--acid);
  font-size: .75rem;
}

.history-warmup span {
  color: var(--muted);
  font-size: .8rem;
  line-height: 1.45;
  white-space: pre-line;
}
.dialog-actions {
  display: flex;
  gap: 9px;
  margin-top: 8px;
}

.dialog-actions > button {
  flex: 1;
  margin: 0;
}
.bottom-nav { grid-template-columns: repeat(4,1fr); padding-left: 10px; padding-right: 10px; }
.target-add { border: 0; border-radius: 12px; padding: 10px 13px; background: var(--acid); color: #111700; font-weight: 850; }
.weight-target-card,.target-card { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 18px; margin-bottom: 12px; }
.weight-target-card h3,.target-card h3 { margin: 3px 0 0; font-size: 1.18rem; }
.target-type { color: var(--acid); font-size: .68rem; font-weight: 900; letter-spacing: .14em; }
.weight-target-inputs { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 12px; }
.weight-target-inputs label { color: var(--muted); font-size: .75rem; font-weight: 700; }
.weight-target-inputs input { margin-top: 5px; }
.target-card-head { display: flex; align-items: flex-start; gap: 10px; }
.target-card-title { flex: 1; min-width: 0; }
.target-card-actions { display: flex; align-items: center; gap: 5px; }
.target-card-actions button { border: 0; background: transparent; border-radius: 9px; padding: 7px; font-weight: 800; }
.target-card-actions .edit-target { color: var(--acid); font-size: .75rem; }
.target-card-actions .delete-target { color: var(--danger); font-size: 1.3rem; line-height: .8; }
.target-complete-button { width: 100%; margin-top: 12px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 11px; background: var(--panel2); color: var(--text); font-size: .78rem; font-weight: 800; }
.target-card.completed .target-complete-button { color: var(--acid); border-color: #53691a; background: #1b240f; }
.target-card.completed { border-color: #76931f; background: linear-gradient(135deg,#18200f,var(--panel) 58%); }
.target-card.completed .target-type { color: var(--acid); }
.target-card.completed .target-progress > div { background: var(--acid); }
.target-drag-handle { flex: 0 0 34px; height: 38px; border: 1px solid var(--line); border-radius: 10px; background: var(--panel2); color: var(--muted); font-size: 1.35rem; font-weight: 900; line-height: 1; cursor: grab; touch-action: none; }
.target-drag-handle:active { cursor: grabbing; color: var(--acid); }
.target-card.dragging { opacity: .65; border-color: var(--acid); transform: scale(.99); }
.target-progress { height: 9px; background: #0e1113; border-radius: 999px; overflow: hidden; margin-top: 16px; }
.target-progress > div { height: 100%; width: 0; background: linear-gradient(90deg,#91b414,var(--acid)); border-radius: inherit; transition: width .25s ease; }
.target-summary { margin: 9px 0 0; color: var(--muted); font-size: .8rem; }
.target-empty { color: var(--muted); text-align: center; padding: 26px 16px; border: 1px dashed var(--line); border-radius: 17px; }
.history-heading-actions { display: flex; align-items: center; gap: 8px; }
.history-view-toggle { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; margin: -5px 0 12px; border: 1px solid var(--line); border-radius: 13px; background: #0e1113; }
.history-view-toggle button { border: 0; border-radius: 9px; background: transparent; color: var(--muted); padding: 9px; font-size: .78rem; font-weight: 850; }
.history-view-toggle button.active { background: var(--panel2); color: var(--accent,var(--acid)); box-shadow: 0 2px 10px #0006; }
.history-calendar { margin-bottom: 14px; }
.calendar-toolbar { display: grid; grid-template-columns: 40px auto 1fr 40px; align-items: center; gap: 7px; margin-bottom: 12px; }
.calendar-toolbar strong { text-align: center; font-size: 1.08rem; }
.calendar-toolbar button { height: 38px; border: 1px solid var(--line); border-radius: 10px; background: var(--panel); color: var(--text); font-weight: 850; }
.calendar-toolbar #calendarToday { padding: 0 11px; color: var(--accent,var(--acid)); font-size: .72rem; }
.calendar-weekdays,.calendar-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 4px; }
.calendar-weekdays { margin-bottom: 5px; }
.calendar-weekdays span { color: var(--muted); font-size: .59rem; font-weight: 850; text-align: center; text-transform: uppercase; }
.calendar-day { position: relative; min-width: 0; min-height: 68px; display: grid; grid-template-rows: auto 1fr auto; justify-items: start; gap: 2px; padding: 7px 5px 5px; overflow: hidden; border: 1px solid var(--line); border-radius: 10px; background: var(--panel); color: var(--text); text-align: left; }
.calendar-day > span { font-size: .76rem; font-weight: 900; }
.calendar-day > small { align-self: center; color: var(--muted); font-size: .54rem; white-space: nowrap; letter-spacing: -.02em; }
.calendar-day > i { display: flex; gap: 3px; min-height: 5px; }
.calendar-day > i b,.calendar-legend i { width: 5px; height: 5px; display: inline-block; border-radius: 50%; background: var(--accent,var(--acid)); }
.calendar-day > i b.photo,.calendar-legend i.photo { background: #ffb84d; }
.calendar-day > i b.note,.calendar-legend i.note { background: #a98bff; }
.calendar-day.outside-month { opacity: .34; background: transparent; }
.calendar-day.today > span { width: 23px; height: 23px; display: grid; place-items: center; margin: -3px 0 0 -3px; border-radius: 50%; background: var(--accent,var(--acid)); color: #071016; }
.calendar-day.selected { border-color: var(--accent,var(--acid)); box-shadow: inset 0 0 0 1px var(--accent,var(--acid)); }
.calendar-day.has-activity { background: linear-gradient(145deg,rgba(85,191,255,.07),var(--panel)); }
.calendar-legend { display: flex; justify-content: center; gap: 14px; margin: 10px 0 14px; color: var(--muted); font-size: .65rem; }
.calendar-legend span { display: flex; align-items: center; gap: 5px; }
.calendar-day-detail { padding: 16px; border: 1px solid var(--line); border-radius: 17px; background: var(--panel); }
.calendar-detail-head { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; }
.calendar-detail-head h3 { margin: 3px 0 12px; font-size: 1.05rem; }
.calendar-detail-head > strong { min-width: 58px; color: var(--accent,var(--acid)); font-size: 1.25rem; text-align: right; }
.calendar-detail-head > strong small { display: block; color: var(--muted); font-size: .55rem; font-weight: 700; }
.calendar-workout { padding: 12px 0; border-top: 1px solid var(--line); }
.calendar-workout > div { display: flex; justify-content: space-between; gap: 8px; }
.calendar-workout > div span { color: var(--muted); font-size: .7rem; }
.calendar-workout p { margin: 7px 0 9px; color: #cdd3d7; font-size: .76rem; line-height: 1.4; }
.calendar-workout button { border: 1px solid #456075; border-radius: 9px; background: rgba(85,191,255,.07); color: var(--accent,var(--acid)); padding: 7px 9px; font-size: .7rem; font-weight: 850; }
.calendar-empty-day { margin: 4px 0; color: var(--muted); font-size: .8rem; }
.calendar-recovery,.calendar-note,.calendar-photo-count { display: grid; gap: 4px; margin-top: 11px; padding: 10px; border-radius: 10px; background: #0e1113; }
.calendar-recovery b,.calendar-note b,.calendar-photo-count b { font-size: .72rem; color: var(--accent,var(--acid)); }
.calendar-recovery span,.calendar-photo-count span,.calendar-note p { margin: 0; color: var(--muted); font-size: .72rem; line-height: 1.4; }
.calendar-planning-access { width: 100%; display: grid; grid-template-columns: 30px 1fr auto; align-items: center; gap: 9px; margin-top: 12px; padding: 11px; border: 1px solid var(--line); border-radius: 11px; background: #0e1113; color: var(--text); text-align: left; }
.calendar-planning-access > span { color: var(--muted); font-size: 1.2rem; }
.calendar-planning-access b { font-size: .75rem; }
.calendar-planning-access p { margin: 3px 0 0; color: var(--muted); font-size: .68rem; line-height: 1.35; }
.calendar-planning-access > strong { color: var(--accent,var(--acid)); font-size: .7rem; }
.calendar-planning-access.enabled { border-color: #4b6525; background: rgba(215,255,63,.05); }
.calendar-planning-access.enabled > span { color: var(--accent,var(--acid)); }
.membership-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.membership-heading h3 { margin: 3px 0 0; }
.membership-tier { border: 1px solid var(--line); border-radius: 999px; padding: 6px 10px; color: var(--muted); font-size: .68rem; font-weight: 900; text-transform: uppercase; }
.feature-entitlement { display: grid; grid-template-columns: 36px 1fr auto; align-items: center; gap: 10px; margin: 14px 0 10px; padding: 13px; border: 1px solid var(--line); border-radius: 13px; background: #0e1113; }
.feature-entitlement .feature-lock { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; background: var(--panel2); color: var(--muted); font-size: 1.15rem; }
.feature-entitlement b { font-size: .82rem; }
.feature-entitlement p { margin: 3px 0 0; color: var(--muted); font-size: .7rem; line-height: 1.35; }
.feature-entitlement > strong { color: var(--muted); font-size: .68rem; text-transform: uppercase; }
.feature-entitlement.enabled { border-color: #5f7130; background: rgba(215,255,63,.055); }
.feature-entitlement.enabled .feature-lock,.feature-entitlement.enabled > strong { color: var(--accent,var(--acid)); }
.membership-card > p { color: var(--muted); font-size: .78rem; line-height: 1.45; }
@media(max-width:420px){.calendar-day{min-height:61px;padding:6px 4px}.calendar-day>small{font-size:.5rem}.calendar-toolbar{grid-template-columns:36px auto 1fr 36px}.calendar-toolbar strong{font-size:.98rem}}
.photo-add { border: 0; border-radius: 12px; padding: 9px 11px; background: var(--acid); color: #111700; font-size: .78rem; font-weight: 850; }
.photo-entry { padding: 12px; }
.photo-entry .history-date { padding: 4px 5px 10px; align-items: start; }
.photo-entry-body { display: flex; align-items: flex-start; gap: 12px; }
.photo-thumbnail { flex: 0 0 112px; width: 112px; height: 112px; padding: 0; border: 1px solid var(--line); border-radius: 13px; background: #090b0c; overflow: hidden; }
.photo-thumbnail img { display: block; width: 100%; height: 100%; object-fit: cover; }
.photo-entry p { margin: 3px 5px 4px 0; color: #cdd3d7; font-size: .88rem; line-height: 1.45; white-space: pre-line; }
.photo-entry-actions { display: flex; gap: 7px; }
.edit-photo,.delete-photo { border-radius: 10px; background: transparent; padding: 8px 10px; font-size: .78rem; font-weight: 800; }
.edit-photo { border: 1px solid var(--line); color: var(--acid); }
.delete-photo { border: 1px solid #713633; color: var(--danger); }
.photo-viewer { width: min(96vw,900px); max-width: none; height: min(94vh,1000px); max-height: none; padding: 48px 12px 12px; border-radius: 18px; background: #050607; overflow: hidden; }
.photo-viewer::backdrop { background: #000e; }
.photo-viewer-stage { position: relative; width: 100%; height: calc(100% - 54px); touch-action: pan-y; user-select: none; }
.photo-viewer img { display: block; width: 100%; height: 100%; object-fit: contain; pointer-events: none; }
.photo-viewer > #closePhotoViewer { position: absolute; z-index: 3; top: 8px; right: 10px; width: 40px; height: 40px; border: 0; border-radius: 50%; background: #20252a; color: var(--text); font-size: 1.7rem; line-height: 1; }
.photo-viewer-nav { position: absolute; z-index: 2; top: 50%; width: 42px; height: 54px; padding: 0; border: 0; border-radius: 12px; transform: translateY(-50%); background: #111b; color: #fff; font-size: 2.1rem; line-height: 1; }
.photo-viewer-nav.previous { left: 4px; }
.photo-viewer-nav.next { right: 4px; }
.photo-viewer-nav:disabled { opacity: .18; }
.photo-viewer p { margin: 8px 0 0; color: var(--muted); text-align: center; font-size: .82rem; }
.photo-viewer .photo-viewer-hint { margin-top: 3px; font-size: .74rem; }
.photo-storage-note { color: var(--muted); font-size: .75rem; line-height: 1.4; margin: 12px 2px 0; }
.backup-drive { border-color: #5f7130; background: var(--acid-dark); color: var(--acid); font-weight: 850; }
.menu-action:disabled { opacity: .6; }
.weight-log-form { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin-top: 17px; padding-top: 15px; border-top: 1px solid var(--line); }
.weight-log-form label { color: var(--muted); font-size: .75rem; font-weight: 700; }
.weight-log-form input { margin-top: 5px; }
.weight-log-form button { grid-column: 1/-1; border: 0; border-radius: 12px; padding: 11px; background: var(--panel2); color: var(--acid); font-weight: 850; }
.weight-chart { position: relative; min-height: 64px; margin-top: 14px; border-radius: 13px; background: #0e1113; overflow: hidden; }
.weight-chart svg { display: block; width: 100%; height: 118px; }
.weight-chart polyline { fill: none; stroke: var(--acid); stroke-width: 3; stroke-linejoin: round; stroke-linecap: round; }
.weight-chart circle { fill: var(--acid); stroke: #111700; stroke-width: 2; }
.weight-chart text { fill: var(--muted); font-size: 9px; }
.weight-range { position: absolute; top: 8px; left: 10px; right: 10px; display: flex; justify-content: space-between; color: var(--muted); font-size: .68rem; }
.weight-empty { color: var(--muted); text-align: center; padding: 22px 10px; font-size: .8rem; }
.weight-log-list { margin-top: 8px; }
.weight-log-list > div { display: grid; grid-template-columns: 1fr auto 30px; gap: 9px; align-items: center; padding: 8px 3px; border-top: 1px solid var(--line); font-size: .8rem; }
.weight-log-list span { color: var(--muted); }
.weight-log-list button { border: 0; background: transparent; color: var(--danger); font-size: 1.15rem; }
.photo-compare-card { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 18px; margin-bottom: 14px; }
.photo-compare-card h3 { margin: 4px 0 0; font-size: 1.2rem; }
.photo-compare-selects { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin-top: 13px; }
.photo-compare-selects label { color: var(--muted); font-size: .75rem; font-weight: 700; }
.photo-compare-selects select { margin-top: 5px; font-size: .82rem; padding: 10px; }
.photo-comparison { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin-top: 12px; }
.photo-comparison figure { margin: 0; min-width: 0; }
.photo-comparison img { display: block; width: 100%; aspect-ratio: 3/4; object-fit: contain; background: #090b0c; border-radius: 12px; }
.photo-comparison figcaption { display: grid; gap: 2px; padding: 7px 2px 0; font-size: .73rem; }
.photo-comparison figcaption span { color: var(--muted); }
.compare-empty { grid-column: 1/-1; color: var(--muted); text-align: center; padding: 28px 12px; border: 1px dashed var(--line); border-radius: 13px; font-size: .82rem; }
@media(max-width:420px){.history-heading-actions{align-items:flex-end;flex-direction:column;gap:6px}.photo-add{padding:8px 10px}.history-date{align-items:flex-start}.history-actions{max-width:185px}}

.daily-note-card{margin:16px 0;padding:16px;border:1px solid var(--border,#30343a);border-radius:16px;background:var(--surface,#15191e)}
.daily-note-heading,.daily-note-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.daily-note-heading{margin-bottom:12px}.daily-note-date-controls{display:flex;align-items:flex-end;gap:8px}.daily-note-body>.daily-note-date-controls{margin-bottom:12px}.daily-note-date{display:flex;align-items:center;gap:8px;font-size:14px}.daily-note-date input{width:155px;min-width:0;padding:8px;font-size:16px;color-scheme:dark}.daily-note-date-controls button{padding:9px 12px;min-height:40px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);color:var(--text);font-size:14px;font-weight:750;flex-shrink:0}.daily-note-card textarea{width:100%;font-size:16px;line-height:1.5}.daily-note-footer{margin-top:8px;font-size:14px;color:#a9b1bd}.daily-note-content{white-space:pre-wrap;overflow-wrap:anywhere;margin:12px 0 0;line-height:1.6;font-size:16px}@media(max-width:440px){.daily-note-heading{align-items:flex-start;flex-direction:column}.daily-note-date-controls{width:100%}.daily-note-date{flex:1}.daily-note-date input{width:100%}}
.readiness-details{margin-top:12px;border-top:1px solid var(--line,#30343a);padding-top:12px}.readiness-details summary{cursor:pointer;font-weight:800;display:flex;justify-content:space-between;align-items:center}.readiness-details summary span{font-size:12px;color:var(--muted,#9aa2ad);font-weight:600}.readiness-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.readiness-grid label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--muted,#a9b1bd);font-weight:700}.readiness-grid select,.readiness-grid input{width:100%;min-width:0;padding:10px;border-radius:10px;font-size:14px;color-scheme:dark}.readiness-score{margin-top:12px;padding:10px 12px;border-radius:10px;background:rgba(157,255,92,.08);color:var(--acid,#9dff5c);font-weight:800;font-size:13px}.readiness-score.readiness-low{background:rgba(255,184,77,.1);color:#ffb84d}.recovery-analysis-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-bottom:14px}.recovery-analysis-card h3{margin:4px 0 14px;font-size:1.2rem}.recovery-analysis-summary{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.recovery-analysis-summary span{color:var(--muted);font-size:13px;text-align:right}.recovery-analysis-card p{margin:12px 0 0;color:var(--muted);line-height:1.5}.recovery-caution{margin-top:14px;padding:12px;border-radius:12px;background:rgba(255,184,77,.1);border:1px solid rgba(255,184,77,.22);display:flex;flex-direction:column;gap:4px}.recovery-caution span{font-size:13px;color:var(--muted)}@media(max-width:440px){.readiness-grid{grid-template-columns:1fr}.recovery-analysis-summary{flex-direction:column}.recovery-analysis-summary span{text-align:left}}
.save-recovery{margin-top:10px}.recovery-entry .history-date{align-items:flex-start}.recovery-entry-score{display:inline-grid;place-items:center;min-width:62px;padding:8px 10px;border-radius:12px;background:var(--acid-dark);color:var(--acid);font-weight:900}.recovery-entry-score small{display:block;font-size:9px;letter-spacing:.08em}.recovery-entry-values{margin:14px 0 0;color:var(--muted);font-size:.86rem;line-height:1.6}.recovery-entry .history-actions{min-width:auto}
.recommend-template{grid-column:1/-1;background:linear-gradient(135deg,rgba(215,255,63,.16),var(--panel2));border-color:#65772c}.recommend-template b{color:var(--acid)}.workout-generator-dialog{width:min(560px,calc(100% - 28px));max-height:calc(100vh - 28px);overflow:auto}.generator-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.generator-fields label{font-size:.76rem;color:var(--muted);font-weight:750}.generator-fields select,.generator-fields input{margin-top:6px}.preference-fieldset{border:1px solid var(--line);border-radius:14px;margin:16px 0;padding:12px}.preference-fieldset legend{font-size:.8rem;font-weight:800;padding:0 6px}.preference-fieldset legend span{color:var(--muted);font-weight:600}.generator-preferences{display:flex;gap:7px;overflow:auto;padding:3px 0 6px}.generator-preferences label{flex:0 0 auto}.generator-preferences input{position:absolute;opacity:0;pointer-events:none}.generator-preferences span{display:block;border:1px solid var(--line);border-radius:999px;padding:8px 11px;color:var(--muted);font-size:.75rem;font-weight:700}.generator-preferences input:checked+span{border-color:var(--acid);background:var(--acid-dark);color:var(--acid)}.generator-readiness{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:.82rem}.generator-readiness input{width:18px;height:18px;margin:0;accent-color:var(--acid)}.workout-recommendation{border-top:1px solid var(--line);margin-top:18px;padding-top:18px}.recommendation-head{display:flex;justify-content:space-between;align-items:flex-start}.recommendation-head h3{margin:4px 0 14px}.recommendation-head>strong{color:var(--acid)}.recommended-exercises{display:grid;gap:7px}.recommended-exercises>div{display:grid;grid-template-columns:28px 1fr auto;gap:8px;align-items:center;background:#0e1113;border:1px solid var(--line);border-radius:11px;padding:10px}.recommended-exercises>div>span{width:24px;height:24px;border-radius:8px;background:var(--acid-dark);color:var(--acid);display:grid;place-items:center;font-size:.72rem;font-weight:900}.recommended-exercises small{color:var(--muted)}.recommendation-reason{margin:12px 0;padding:11px;border-left:3px solid var(--acid);background:rgba(215,255,63,.05);border-radius:0 10px 10px 0}.recommendation-reason p{margin:0;color:var(--muted);font-size:.78rem;line-height:1.45}.recommendation-reason p+p{margin-top:5px}@media(max-width:440px){.generator-fields{grid-template-columns:1fr}.recommended-exercises>div{grid-template-columns:28px 1fr}.recommended-exercises small{grid-column:2}}
.exercise-collapse-controls{display:flex;justify-content:flex-end;gap:8px;margin:0 0 10px}.exercise-collapse-controls button,.history-range-controls button{border:1px solid var(--line);background:var(--panel2);color:var(--muted);border-radius:999px;padding:7px 11px;font-size:.72rem;font-weight:750}.exercise-head-actions{display:flex;gap:3px;align-items:flex-start}.exercise-head-actions button{width:34px;height:34px;display:grid;place-items:center;padding:0;border-radius:10px}.exercise-head-actions .history-icon{font-size:1rem;color:var(--acid)}.exercise-progress{font-size:.72rem;color:var(--acid);margin-top:4px}.collapsed-set-summary{display:none;font-size:.76rem;color:var(--muted);margin-top:6px;line-height:1.45}.exercise-card.collapsed{padding:13px 14px}.exercise-card.collapsed .exercise-expanded,.exercise-card.collapsed .exercise-max,.exercise-card.collapsed .last{display:none}.exercise-card.collapsed .collapsed-set-summary{display:block}.exercise-card.collapsed .exercise-title{min-width:0}.exercise-card.collapsed .exercise-name-button{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.exercise-card.dragging{opacity:.72;box-shadow:0 0 0 2px var(--acid);transform:none}.exercise-recommendation-strip{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;background:rgba(215,255,63,.06);border:1px solid #566527;border-radius:11px;padding:9px 10px;margin-top:12px}.exercise-recommendation-strip span{font-size:.62rem;letter-spacing:.12em;color:var(--acid);font-weight:900}.exercise-recommendation-strip b{font-size:.78rem}.exercise-recommendation-strip small{font-size:.66rem;color:var(--muted)}.progression-panel,.history-histogram-card,.exercise-history-drilldown{background:var(--panel);border:1px solid var(--line);border-radius:17px;padding:16px;margin-bottom:12px}.progression-title{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.progression-title h3,.history-histogram-card h3,.exercise-history-drilldown h3{margin:4px 0 10px}.confidence{border-radius:999px;padding:6px 9px;font-size:.68rem;font-weight:800}.confidence.high{background:rgba(215,255,63,.12);color:var(--acid)}.confidence.medium{background:rgba(255,184,77,.12);color:#ffb84d}.confidence.low{background:var(--panel2);color:var(--muted)}.progression-target{display:block;font-size:1.25rem;color:var(--acid);margin:5px 0 14px}.progression-panel dl{margin:0;display:grid;gap:9px}.progression-panel dl>div{display:grid;gap:2px}.progression-panel dt{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.progression-panel dd{margin:0;font-size:.82rem;line-height:1.45}.history-range-controls{display:flex;gap:6px;overflow:auto;margin:0 0 12px}.history-range-controls button{flex:0 0 auto}.history-range-controls button.active{background:var(--acid);color:#111700;border-color:var(--acid)}.history-histogram-card>p{font-size:.75rem;color:var(--muted);margin:0 0 12px}.history-histogram{height:190px;display:flex;align-items:flex-end;gap:6px;overflow-x:auto;padding:4px 2px}.history-bar-wrap{height:100%;min-width:42px;flex:1;border:0;background:transparent;color:var(--text);display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px;padding:0}.history-bar-wrap>span{font-size:.62rem;font-weight:800}.history-bar-wrap>i{display:block;width:min(28px,80%);min-height:5px;background:linear-gradient(var(--acid),#728814);border-radius:7px 7px 2px 2px}.history-bar-wrap>small{font-size:.58rem;color:var(--muted);white-space:nowrap}.history-bar-wrap:focus i,.history-bar-wrap:hover i{outline:2px solid #fff}.history-chart-empty{margin:auto;color:var(--muted);font-size:.8rem}.drilldown-head{display:flex;justify-content:space-between}.drilldown-head button{border:0;background:transparent;color:var(--muted);font-size:1.5rem}.drilldown-sets{display:grid;gap:6px}.drilldown-sets>div{display:flex;justify-content:space-between;background:#0e1113;border-radius:9px;padding:9px}.exercise-history-drilldown p{font-size:.8rem;line-height:1.45}.open-complete-workout{border:1px solid var(--line);background:var(--panel2);color:var(--acid);border-radius:10px;padding:9px 11px;font-weight:750;font-size:.75rem}.stored-recommendation{border-left:2px solid var(--acid);padding-left:9px}@media(max-width:440px){.exercise-recommendation-strip{grid-template-columns:1fr}.exercise-recommendation-strip small{justify-self:start}.exercise-head-actions{gap:0}.exercise-head-actions button{width:30px}.progression-title{flex-direction:column}.history-histogram{height:170px}}

.conflict-version>span:not(.conflict-version-label){display:block;margin:5px 0}.conflict-version .conflict-field-diff{background:#513b12;color:#ffdf91;border-left:3px solid #ffca57;border-radius:4px;padding:5px 8px;box-decoration-break:clone}.conflict-field-diff small{font-size:10px;text-transform:uppercase;font-weight:800;margin-left:6px}.conflict-set{display:flex;flex-wrap:wrap;gap:6px;margin:9px 0;padding:7px 0;border-top:1px solid #31404a}.conflict-set>b{flex-basis:100%;font-size:12px}.conflict-set>span{font-size:13px}.conflict-version li>span{display:block;margin:5px 0}

.daily-note-toggle{cursor:pointer;font-weight:800;font-size:16px;padding:4px 0;list-style-position:inside}.daily-note-body{margin-top:14px}.daily-note-toggle:focus-visible{outline:2px solid var(--accent,#31b3ee);outline-offset:5px}

/* One visual language and position for labels attached to editable fields. */
:is(label:has(>input:not([type=radio]):not([type=checkbox]):not([type=file])),label:has(>select),label:has(>textarea),label#photoFileLabel){display:flex;flex-direction:column;align-items:stretch;gap:5px;color:var(--muted);font-size:.75rem;font-weight:750;letter-spacing:normal;text-transform:none}
:is(label:has(>input:not([type=radio]):not([type=checkbox]):not([type=file])),label:has(>select),label:has(>textarea),label#photoFileLabel)>:is(input,select,textarea){margin-top:0}
.notification-swipe-hint{display:block;margin-top:7px;color:color-mix(in srgb,var(--muted) 78%,transparent);font-size:.66rem;font-weight:650}

/* Linked sets: visually nested under their performed parent, owned by their exercise. */
.set-with-inserts{display:grid;gap:6px}
.set-drag-handle{min-width:20px;min-height:42px!important;border:0!important;border-radius:7px!important;background:transparent!important;color:var(--text)!important;padding:0!important;cursor:grab;touch-action:none}
.set-drag-handle::before{content:'≡';display:block;margin-bottom:2px;color:var(--muted);font-size:.72rem;line-height:.65}
.set-drag-handle:active{cursor:grabbing;color:var(--acid)!important}
.set-with-inserts.dragging{opacity:.58}
.set-with-inserts.dragging>.set-row{border-color:var(--acid);box-shadow:0 0 0 2px color-mix(in srgb,var(--acid) 18%,transparent)}
.set-with-inserts.set-link-target>.set-row{border-color:#55bfff;box-shadow:0 0 0 3px color-mix(in srgb,#55bfff 28%,transparent)}
.exercise-card.set-move-target{border-color:#ffbd59;box-shadow:0 0 0 3px color-mix(in srgb,#ffbd59 24%,transparent)}
.set-drag-status{position:fixed;z-index:45;left:50%;bottom:calc(88px + env(safe-area-inset-bottom));transform:translateX(-50%);max-width:calc(100% - 30px);padding:10px 14px;border:1px solid color-mix(in srgb,var(--accent,var(--acid)) 60%,var(--line));border-radius:999px;background:#101417ee;color:var(--text);box-shadow:0 10px 28px #000b;font-size:.76rem;font-weight:850;text-align:center;pointer-events:none}
.set-secondary-actions .move-set{font-size:0!important}.set-secondary-actions .move-set::after{content:'Place';font-size:.68rem}
.set-placement-dialog{width:min(540px,calc(100% - 18px));max-height:calc(100dvh - 20px);overflow:hidden;padding:18px}
.set-placement-dialog[open]{display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto;gap:12px}
.set-placement-dialog .dialog-head h2{margin:2px 0 0}
.set-placement-picked{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;padding:12px 14px;border:1px solid color-mix(in srgb,var(--acid) 55%,var(--line));border-radius:14px;background:var(--acid-dark)}
.set-placement-picked span{grid-column:1/-1;color:var(--acid);font-size:.62rem;font-weight:900;letter-spacing:.12em}.set-placement-picked b{color:var(--text)}.set-placement-picked strong{justify-self:end;color:var(--acid)}
.set-placement-dialog>.dialog-copy{margin:0}.set-placement-list{display:grid;gap:9px;overflow:auto;overscroll-behavior:contain;padding:1px 2px 10px}
.placement-exercise{border:1px solid var(--line);border-radius:14px;background:#101417;overflow:hidden}.placement-exercise>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px}.placement-exercise>div>b{font-size:.88rem}
.placement-exercise .placement-move{min-height:36px!important;padding:7px 11px!important;border-color:color-mix(in srgb,#ffbd59 55%,var(--line))!important;color:#ffcc73!important}
.placement-exercise .placement-nest{min-height:36px!important;padding:7px 11px!important;border-color:color-mix(in srgb,#55bfff 60%,var(--line))!important;background:color-mix(in srgb,#55bfff 12%,var(--panel2))!important;color:#72ceff!important}
.placement-exercise details{border-top:1px solid var(--line)}.placement-exercise summary{padding:10px 12px;color:#55bfff;font-size:.72rem;font-weight:800;cursor:pointer}.placement-exercise details>div{display:grid;gap:6px;padding:0 9px 9px}
.placement-after{min-height:0!important;display:flex!important;align-items:center;justify-content:space-between;gap:12px;padding:9px 10px!important;text-align:left}.placement-after span{color:var(--muted);font-size:.68rem}.placement-after b{font-size:.76rem}
.placement-exercise details .placement-move{width:100%;margin-top:3px}
.placement-unlink,.placement-new-exercise{width:100%;min-height:42px}.placement-unlink{color:#55bfff!important}
.set-secondary-actions{grid-column:2/7;display:flex;justify-content:flex-end;gap:14px}
.set-secondary-actions .insert-exercise-set,.set-secondary-actions .move-set{min-height:0!important;border:0!important;background:transparent!important;padding:5px 3px!important;color:var(--accent,#55bfff)!important;font-size:.68rem;font-weight:850}
.inserted-set-reference{position:relative;margin:0 6px 2px 42px;padding:9px 9px 9px 12px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;border-left:3px solid var(--accent,#55bfff);border-radius:0 11px 11px 0;background:color-mix(in srgb,var(--accent,#55bfff) 8%,var(--panel2));color:var(--muted)}
.inserted-set-reference>span{align-self:start;color:var(--accent,#55bfff);font-size:1rem;font-weight:900}
.inserted-set-reference .open-linked-set{min-height:0!important;border:0!important;background:transparent!important;padding:0!important;display:grid;gap:2px;text-align:left;color:var(--text)!important}
.inserted-set-reference .open-linked-set b{font-size:.78rem}
.inserted-set-reference .open-linked-set small{color:var(--muted);font-size:.68rem;font-weight:650}
.inserted-set-reference.complete{opacity:.72}
.inserted-set-reference .unlink-inserted-set{min-height:30px!important;width:30px;border:0!important;background:transparent!important;padding:0!important;color:var(--muted)!important;font-size:1.15rem}
.set-row.linked-set-focus{animation:linked-set-pulse 1.4s ease-out}
@keyframes linked-set-pulse{0%,45%{border-color:var(--accent,#55bfff);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent,#55bfff) 28%,transparent)}100%{box-shadow:none}}
@media(max-width:420px){.inserted-set-reference{margin-left:30px}.set-secondary-actions{gap:10px}}

/* In-app notification centre */
.topbar-actions{display:flex;align-items:center;gap:8px}.notification-bell{position:relative;display:grid;place-items:center}.notification-bell svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.notification-badge{position:absolute;top:-4px;right:-4px;display:grid;place-items:center;min-width:19px;height:19px;padding:0 5px;border:2px solid var(--bg);border-radius:999px;background:var(--danger);color:#fff;font-size:.62rem;font-weight:900}.notification-center{width:min(520px,calc(100% - 20px));max-height:min(720px,calc(100dvh - 24px));padding:18px;overflow:hidden}.notification-head{display:flex;align-items:center;justify-content:space-between}.notification-head h2{margin:2px 0 0}.notification-head>button{border:0;background:transparent;color:var(--muted);font-size:1.8rem}.notification-toolbar{display:flex;justify-content:flex-end;gap:8px;margin:14px 0 10px}.notification-toolbar button,.notification-actions button{border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--panel2);color:var(--text);font-size:.72rem;font-weight:750}.notification-list{display:grid;gap:9px;max-height:calc(100dvh - 180px);overflow:auto;overscroll-behavior:contain}.notification-item{position:relative;border:1px solid var(--line);border-radius:14px;padding:13px;background:#101417;touch-action:pan-y;transition:transform .18s ease,opacity .18s ease}.notification-item.unread{border-left:4px solid var(--acid)}.notification-item.persistent{border-color:#9a7431;background:#1d1911}.notification-item-head{display:flex;align-items:flex-start;gap:10px}.notification-kind{display:grid;place-items:center;flex:0 0 30px;height:30px;border-radius:9px;background:var(--acid-dark);color:var(--acid);font-size:.9rem}.notification-copy{min-width:0;flex:1}.notification-copy b{display:block;font-size:.9rem}.notification-copy p{margin:4px 0 0;color:var(--muted);font-size:.78rem;line-height:1.45}.notification-unread-dot{flex:0 0 8px;width:8px;height:8px;margin-top:5px;border-radius:50%;background:var(--acid)}.notification-actions{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 0 40px}.notification-actions .notification-open{border-color:color-mix(in srgb,var(--acid) 50%,var(--line));color:var(--acid)}.notification-empty{padding:38px 16px;text-align:center;color:var(--muted)}.notification-empty b{display:block;color:var(--text);margin-bottom:6px}
.calendar-view-switch{display:flex;gap:8px;margin:12px 0}.calendar-view-switch button{flex:1}.calendar-view-switch .active{background:#28b4f0;color:#08131a}.weekly-summary{padding:12px;border-radius:12px;background:#172630;font-size:13px;margin-bottom:12px}.weekly-calendar{display:grid;gap:14px}.week-day{min-width:0;border:1px solid #34444e;border-radius:16px;padding:14px;background:#0e1a22}.week-day.is-today{border-color:#30b5ec}.week-day h3{font-size:16px;margin:0 0 12px}.day-plans h4{margin:12px 0;font-size:13px;color:#9aadb9}.scheduled-session{border:1px dashed #d1a755;border-left:4px solid #d1a755;border-radius:12px;padding:12px;margin:10px 0;background:#1b2428}.scheduled-session.completed,.week-completed{border:1px solid #49b593;border-left:4px solid #49b593;border-radius:12px;padding:12px;margin:10px 0;background:#102822}.scheduled-session.skipped{opacity:.65;border-color:#7c8990}.scheduled-session.overdue{border-color:#ef9773}.plan-card-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}.plan-status{font-size:11px;text-transform:uppercase;color:#ffd48b}.scheduled-session p,.week-completed p,.week-note{font-size:13px;line-height:1.5;overflow-wrap:anywhere}.scheduled-session details>div{padding:8px 0}.scheduled-session details span{display:block;font-size:12px;color:#aab8c1}.plan-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.plan-actions button{font-size:12px;padding:8px}.calendar-day i b.planned{background:#e6b753}.plan-target{display:block!important;color:#e9c77d!important;font-size:10px!important;white-space:normal;min-width:70px}.schedule-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}#scheduleDialog{width:min(640px,94vw);max-height:90dvh;overflow:auto}#scheduleForm{display:grid;gap:14px}#scheduleForm label{display:grid;gap:6px;font-size:13px}#scheduleForm input,#scheduleForm textarea,#scheduleForm select{box-sizing:border-box;width:100%;min-width:0;border:1px solid #3b4b55;border-radius:9px;padding:10px;background:#101c24;color:#eaf1f5;font:inherit}#scheduleForm textarea{resize:vertical}.schedule-hint{font-size:12px;color:#a7b6c1;line-height:1.5}.schedule-check{display:flex!important;align-items:center}.schedule-check input{width:auto!important}#scheduleError{color:#ffb39d}.schedule-exercise{border:1px solid #34444e;border-radius:12px;padding:12px;margin:10px 0}.schedule-set{display:flex;flex-wrap:wrap;gap:8px;align-items:end;margin:10px 0}.schedule-set label{flex:1;min-width:75px}#scheduleExerciseEditor button{font-size:12px;padding:8px}.week-completed button{display:block;margin-top:8px;font-size:12px}
@media(min-width:1100px){.weekly-calendar{grid-template-columns:repeat(7,minmax(0,1fr))}.week-day{padding:10px}.week-day .plan-actions{display:grid}.week-day h3{font-size:13px}.week-day .scheduled-session{padding:8px}}
.calendar-view-switch button,.day-plans button,#scheduleDialog button,.week-completed button{border:1px solid var(--line);border-radius:10px;background:var(--panel2);color:var(--text);padding:10px;cursor:pointer;max-width:100%;overflow-wrap:anywhere}.calendar-view-switch button.active,.day-plans button.primary,#scheduleDialog button.primary{background:var(--acid);color:#101500;font-weight:800}.week-day .day-plans button{font-size:12px;width:100%}@media(min-width:1100px){.app-shell:has(#historyView.active #weeklyCalendar:not(.hidden)){max-width:1600px}}

/* Unified button system */
button{cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color .15s ease,border-color .15s ease,color .15s ease,transform .08s ease,opacity .15s ease}
button:focus-visible{outline:2px solid var(--accent,var(--acid));outline-offset:2px}
button:active:not(:disabled){transform:translateY(1px)}
button:disabled{cursor:not-allowed;opacity:.48}
button:not(.nav-button):not(.set-done):not(.remove-set):not(.exercise-drag-handle):not(.set-drag-handle):not(.collapse-exercise):not(.history-icon):not(.history-bar-wrap){min-height:42px;border:1px solid var(--line);border-radius:12px;background:var(--panel2);color:var(--text);padding:10px 14px;font-weight:800;line-height:1.15}
.primary,.finish-button,.target-add,.photo-add,.save-recovery,#startRecommendedWorkout,.calendar-view-switch button.active,.day-plans button.primary,#scheduleDialog button.primary{border-color:var(--accent,var(--acid))!important;background:var(--accent,var(--acid))!important;color:var(--accent-ink,#101500)!important}
.secondary,.saved-workouts-button,.import-plan-button,.open-complete-workout{border-color:var(--line)!important;background:var(--panel2)!important;color:var(--text)!important}
button.danger,.delete-workout,.delete-daily-note,.delete-recovery,.delete-photo{border-color:color-mix(in srgb,var(--danger) 48%,var(--line))!important;background:color-mix(in srgb,var(--danger) 8%,var(--panel2))!important;color:var(--danger)!important}
.dialog-head button,.drilldown-head button,.exercise-detail-head>button,.exercise-alias-item button,.weight-log-list button,.target-card-actions button{min-height:40px;padding:0;border-color:transparent;background:transparent}
.exercise-menu>div button,.saved-workout-options button,.history-more button{min-height:38px;border:0;background:transparent;border-radius:9px;padding:10px 11px;text-align:left}
.timer-bar button{min-height:34px;border:0;border-radius:9px;padding:7px 9px;background:color-mix(in srgb,var(--accent-ink) 86%,transparent);color:var(--text)}
.suggestions button,.exercise-collapse-controls button,.history-range-controls button{min-height:34px;border-radius:999px;padding:7px 11px;font-size:.75rem}
.history-actions button,.photo-entry-actions button{min-width:72px}
@media(hover:hover){button:not(:disabled):hover{border-color:color-mix(in srgb,var(--accent,var(--acid)) 55%,var(--line));filter:brightness(1.08)}}
.goal-requirement{border:1px solid var(--line);border-radius:12px;padding:10px;margin:10px 0;background:var(--panel2)}
.goal-requirement-help{color:var(--muted);margin:4px 0 8px}.inline-add-goal-requirement{margin-bottom:8px}
.goal-requirement-fields{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:8px;align-items:end}.goal-requirement-fields label{margin:0}.remove-goal-requirement{min-height:42px;padding:0 12px}
@media(max-width:600px){.goal-requirement-fields{grid-template-columns:1fr 1fr}.goal-requirement-fields .remove-goal-requirement{grid-column:1/-1}}
