:root {
  color-scheme: dark;
  --bg: #050706;
  --bg-rgb: 5, 7, 6;
  --page-top: #070a08;
  --page-bottom: #040605;
  --surface: #0d110f;
  --surface-2: #141a16;
  --surface-raised: #111612;
  --surface-input: #0a0e0b;
  --panel-start: #101511;
  --panel-end: #090c0a;
  --feature-start: #121a13;
  --feature-end: #090d0a;
  --button-start: #171d19;
  --button-end: #101411;
  --line: rgba(255,255,255,.11);
  --text: #f7f8f5;
  --muted: #a6aaa5;
  --accent: #95ff45;
  --accent-rgb: 149, 255, 69;
  --accent-soft: #b6ff69;
  --accent-ink: #071006;
  --accent-text: var(--accent);
  --mint: #62efbf;
  --mint-rgb: 98, 239, 191;
  --mint-text: var(--mint);
  --sky: #75c8ff;
  --sky-rgb: 96, 184, 255;
  --sky-text: var(--sky);
  --danger: #ff6b57;
  --danger-text: #ffb7ad;
  --amber: #ffc453;
  --amber-text: var(--amber);
  --lime-wash: rgba(var(--accent-rgb),.09);
  --radius: 18px;
  --max: 1060px;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

:root[data-theme="power-petal"] {
  color-scheme: light;
  --bg: #fffaf5;
  --bg-rgb: 255, 250, 245;
  --page-top: #fffdf9;
  --page-bottom: #fff6f1;
  --surface: #ffffff;
  --surface-2: #f8eff7;
  --surface-raised: #ffffff;
  --surface-input: #fff9fc;
  --panel-start: #ffffff;
  --panel-end: #f9f1f8;
  --feature-start: #f7d8eb;
  --feature-end: #eef1ff;
  --button-start: #fff7fb;
  --button-end: #f3eaf3;
  --line: rgba(62,40,58,.14);
  --text: #241b23;
  --muted: #746874;
  --accent: #ff5fbc;
  --accent-rgb: 255, 95, 188;
  --accent-soft: #ffafd9;
  --accent-ink: #2b071b;
  --accent-text: #9b1459;
  --mint: #9dff57;
  --mint-rgb: 157, 255, 87;
  --mint-text: #2f6b00;
  --sky: #78d7ff;
  --sky-rgb: 120, 215, 255;
  --sky-text: #005f86;
  --danger: #d93f61;
  --danger-text: #9f2038;
  --amber: #e8ad35;
  --amber-text: #805400;
  --lime-wash: rgba(var(--mint-rgb),.18);
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { background: var(--bg); scroll-behavior: smooth; scrollbar-gutter: stable; }
body { position: relative; margin: 0; min-width: 320px; min-height: 100dvh; background: var(--bg); color: var(--text); }
body::before { content: ""; position: fixed; z-index: -1; inset: 0; pointer-events: none; background: radial-gradient(circle at 83% 8%, rgba(var(--accent-rgb),.075), transparent 27%), radial-gradient(circle at 12% 68%, rgba(var(--mint-rgb),.035), transparent 24%), repeating-linear-gradient(115deg, rgba(255,255,255,.012) 0 1px, transparent 1px 9px), linear-gradient(180deg, var(--page-top), var(--page-bottom) 72%); }
:root[data-theme="power-petal"] body::before { background: radial-gradient(circle at 86% 7%, rgba(var(--accent-rgb),.12), transparent 28%), radial-gradient(circle at 10% 73%, rgba(var(--mint-rgb),.16), transparent 26%), radial-gradient(circle at 45% 42%, rgba(var(--sky-rgb),.1), transparent 30%), linear-gradient(180deg, var(--page-top), var(--page-bottom) 72%); }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
button, [role="button"] { -webkit-tap-highlight-color: transparent; }

.app-shell { min-height: 100dvh; padding-bottom: 92px; }
.topbar { position: sticky; z-index: 15; top: 0; height: 70px; padding: 14px max(20px, env(safe-area-inset-left)); display: flex; align-items: center; justify-content: space-between; max-width: var(--max); margin: 0 auto; background: linear-gradient(180deg, rgba(var(--bg-rgb),.96), rgba(var(--bg-rgb),.72), transparent); backdrop-filter: blur(10px); }
.brand { border: 0; background: transparent; display: inline-flex; align-items: center; gap: 10px; padding: 0; font-weight: 900; letter-spacing: .12em; cursor: pointer; }
.brand-logo { display: block; width: auto; height: 32px; max-width: min(46vw, 230px); object-fit: contain; }
.topbar-actions { display: flex; align-items: center; gap: 8px; }
.language-switch { height: 34px; padding: 3px; border: 1px solid rgba(255,255,255,.11); border-radius: 999px; background: rgba(13,17,15,.9); display: inline-grid; grid-template-columns: repeat(2, 1fr); gap: 2px; }
.language-switch button { min-width: 32px; padding: 0 8px; border: 0; border-radius: 999px; background: transparent; color: var(--muted); font-size: .65rem; font-weight: 900; letter-spacing: .05em; cursor: pointer; }
.language-switch button[aria-pressed="true"] { background: var(--accent); color: var(--accent-ink); box-shadow: 0 0 16px rgba(var(--accent-rgb),.13); }
.icon-button { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 13px; background: var(--surface); cursor: pointer; }
.icon-button svg { width: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.account-button { width: 42px; height: 42px; border: 1px solid rgba(var(--accent-rgb),.42); border-radius: 13px; background: var(--accent); color: var(--accent-ink); font-size: .78rem; font-weight: 950; cursor: pointer; }

main { width: min(100%, var(--max)); margin: 0 auto; padding: 16px 20px 32px; outline: none; }
.eyebrow { margin: 0 0 7px; color: var(--accent-text); font-size: .78rem; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 8px; font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif; font-size: clamp(2.35rem, 9vw, 4.8rem); font-weight: 900; line-height: .92; letter-spacing: -.025em; text-transform: uppercase; }
h2 { margin-bottom: 16px; font-size: clamp(1.35rem, 4vw, 1.75rem); letter-spacing: -.03em; }
h3 { margin-bottom: 6px; font-size: 1.05rem; letter-spacing: -.015em; }
.subtle { color: var(--muted); line-height: 1.55; }
.page-intro { margin-bottom: 30px; }
.page-intro p { max-width: 620px; margin-bottom: 0; }
.page-intro h1 { max-width: 780px; }
.build-page-intro { margin-bottom: 16px; }
.build-page-intro .eyebrow { margin-bottom: 5px; font-size: .68rem; }
.build-page-intro h1 { max-width: none; margin-bottom: 6px; font-size: clamp(1.8rem, 6vw, 3rem); line-height: .96; }
.build-page-intro .subtle { font-size: .84rem; line-height: 1.4; }

.hero-card { position: relative; overflow: hidden; min-height: 270px; padding: 26px; border: 1px solid rgba(var(--accent-rgb),.28); border-radius: 26px; background: linear-gradient(145deg, rgba(24,34,25,.96) 0%, rgba(8,12,9,.98) 72%); box-shadow: inset 0 0 50px rgba(var(--accent-rgb),.025), 0 22px 80px rgba(0,0,0,.26); display: flex; flex-direction: column; justify-content: space-between; }
.hero-card::after { content: ""; position: absolute; width: 260px; height: 260px; right: -90px; top: -105px; border: 52px solid rgba(var(--accent-rgb),.09); border-radius: 50%; filter: drop-shadow(0 0 18px rgba(var(--accent-rgb),.12)); }
.hero-card > * { position: relative; z-index: 1; }
.hero-meta { display: flex; gap: 12px; align-items: center; color: var(--muted); font-size: .9rem; }
.status-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 5px rgba(var(--accent-rgb),.1); }
.hero-title { margin: 22px 0 2px; font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif; font-size: clamp(2.4rem, 9vw, 4rem); font-weight: 900; line-height: .95; letter-spacing: .005em; text-transform: uppercase; }
.hero-actions { display: flex; gap: 10px; align-items: stretch; }

.primary-button, .secondary-button, .ghost-button, .danger-button { min-height: 50px; border-radius: 14px; padding: 0 18px; border: 1px solid transparent; font-weight: 850; cursor: pointer; transition: transform .15s ease, background .15s ease; }
.primary-button { background: linear-gradient(105deg, var(--accent), var(--accent-soft)); color: var(--accent-ink); box-shadow: 0 0 24px rgba(var(--accent-rgb),.1); flex: 1; }
.secondary-button { border-color: rgba(255,255,255,.14); background: linear-gradient(180deg, var(--button-start), var(--button-end)); }
.ghost-button { border-color: var(--line); background: transparent; color: var(--muted); }
.danger-button { border-color: rgba(255,107,87,.28); background: rgba(255,107,87,.09); color: #ffb7ad; }
.primary-button:active, .secondary-button:active, .ghost-button:active, .danger-button:active { transform: scale(.98); }
.primary-button:focus-visible, .secondary-button:focus-visible, .ghost-button:focus-visible, .danger-button:focus-visible, button.list-card:focus-visible, input:focus-visible, .nav-item:focus-visible { outline: 3px solid rgba(var(--accent-rgb),.35); outline-offset: 2px; }

.metric-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 14px; }
.metric-card { min-height: 128px; padding: 18px; border: 1px solid var(--line); border-radius: var(--radius); background: linear-gradient(155deg, var(--surface-raised), var(--surface-input)); box-shadow: inset 0 1px rgba(255,255,255,.025); }
.metric-label { color: var(--muted); font-size: .82rem; font-weight: 700; }
.metric-value { margin: 18px 0 4px; font-size: 1.75rem; font-weight: 900; letter-spacing: -.045em; }
.metric-detail { color: var(--muted); font-size: .8rem; }
.trend-up { color: var(--accent-text); }
.trend-down { color: var(--danger); }

.section { margin-top: 30px; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 14px; }
.section-heading h2 { margin: 0; }
.text-button { border: 0; background: transparent; color: var(--accent-text); font-weight: 800; cursor: pointer; padding: 7px 0; }

.list { display: grid; gap: 10px; }
.list-card { width: 100%; padding: 16px; border: 1px solid var(--line); border-radius: 16px; background: linear-gradient(145deg, var(--panel-start), var(--panel-end)); text-align: left; display: flex; align-items: center; justify-content: space-between; gap: 14px; transition: border-color .15s ease, transform .15s ease; }
button.list-card { cursor: pointer; }
button.list-card:hover { border-color: rgba(var(--accent-rgb),.35); transform: translateY(-1px); }
.list-card p { margin: 4px 0 0; color: var(--muted); font-size: .84rem; }
.list-icon { flex: 0 0 42px; width: 42px; height: 42px; border-radius: 13px; background: var(--surface-2); display: grid; place-items: center; color: var(--accent-text); font-weight: 900; }
.list-copy { min-width: 0; flex: 1; }
.list-value { text-align: right; font-weight: 850; white-space: nowrap; }
.recent-training-list { gap: 7px; }
.recent-session-card { min-height: 58px; padding: 9px 11px; border-radius: 13px; gap: 9px; }
.recent-session-card .list-icon { flex-basis: 34px; width: 34px; height: 34px; border-radius: 10px; font-size: .78rem; }
.recent-session-card .list-copy h3 { margin: 0 0 2px; font-size: .78rem; }
.recent-session-card .list-copy p { margin: 0; font-size: .65rem; line-height: 1.3; }
.recent-session-value { display: grid; justify-items: end; gap: 1px; }
.recent-session-value strong { font-size: .8rem; }
.recent-session-value p { margin: 0; }
.recent-session-value span { margin-top: 1px; color: var(--accent-text); font-size: .54rem; font-weight: 900; letter-spacing: .07em; }

@media (min-width: 760px) {
  .recent-training-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .recent-training-list .empty-state { grid-column: 1 / -1; }
}
.chevron { color: var(--muted); font-size: 1.25rem; }

.workout-head { display: flex; gap: 16px; align-items: center; margin-bottom: 20px; }
.workout-progress { flex: 1; height: 7px; border-radius: 999px; background: var(--line); overflow: hidden; }
.workout-progress > span { display: block; height: 100%; background: var(--accent); transition: width .25s ease; }
.workout-count { color: var(--muted); font-size: .84rem; white-space: nowrap; }
.exercise-panel { padding: 20px; border-radius: 24px; background: linear-gradient(145deg, var(--surface-raised), var(--panel-end)); border: 1px solid rgba(255,255,255,.12); box-shadow: 0 22px 70px rgba(0,0,0,.3); }
.exercise-title-row { display: flex; align-items: start; justify-content: space-between; gap: 16px; }
.muscle-tag, .pr-badge { display: inline-flex; min-height: 26px; align-items: center; border-radius: 999px; padding: 0 10px; font-size: .72rem; font-weight: 850; text-transform: uppercase; letter-spacing: .08em; }
.muscle-tag { background: var(--surface-2); color: var(--muted); }
.pr-badge { background: var(--accent); color: var(--accent-ink); animation: pop .25s ease; }
@keyframes pop { 50% { transform: scale(1.08); } }
.previous-block { margin: 20px 0; padding: 14px 16px; border-radius: 14px; border: 1px solid rgba(var(--accent-rgb),.16); background: var(--surface-input); }
.previous-block strong { font-size: .86rem; }
.previous-block > small { display: block; margin-top: 4px; color: var(--muted); font-size: .66rem; line-height: 1.4; }
.previous-sets { margin-top: 8px; color: var(--muted); font-size: .88rem; word-spacing: 5px; }

.set-table { width: 100%; border-collapse: collapse; }
.set-table th { padding: 0 5px 8px; color: var(--muted); font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; text-align: left; }
.set-table th:first-child, .set-table td:first-child { width: 44px; text-align: center; }
.set-table th:last-child, .set-table td:last-child { width: 46px; text-align: right; }
.set-table td { padding: 6px 5px; }
.set-table input { width: 100%; height: 48px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-input); color: var(--text); padding: 0 12px; font-size: 1.05rem; font-weight: 800; }
.set-index { color: var(--muted); font-weight: 800; }
.set-done { width: 42px; height: 42px; border-radius: 12px; border: 1px solid var(--line); background: transparent; cursor: pointer; }
.set-done.is-done { border-color: var(--accent-text); background: var(--accent); color: var(--accent-ink); }
.exercise-actions { display: grid; grid-template-columns: .8fr .9fr 1.4fr; gap: 8px; margin-top: 18px; }
.exercise-actions button { padding-inline: 10px; }

.weight-entry { padding: 18px; border-radius: var(--radius); border: 1px solid var(--line); background: var(--surface); display: flex; align-items: end; gap: 10px; }
.field { flex: 1; }
.field label { display: block; margin-bottom: 8px; color: var(--muted); font-size: .8rem; font-weight: 750; }
.field input { width: 100%; height: 50px; padding: 0 14px; border: 1px solid var(--line); border-radius: 13px; background: var(--surface-2); color: var(--text); font-size: 1.05rem; font-weight: 800; }
.weight-entry .primary-button { flex: 0 0 auto; }

.range-tabs { width: min(100%, 440px); display: grid; grid-template-columns: repeat(5, 1fr); gap: 4px; padding: 5px; margin: 0 0 14px auto; border: 1px solid var(--line); border-radius: 14px; background: var(--surface-input); }
.range-tabs button { min-height: 38px; border: 0; border-radius: 10px; background: transparent; color: var(--muted); font-size: .78rem; font-weight: 850; cursor: pointer; }
.range-tabs button.is-active { background: var(--accent); color: var(--accent-ink); }
.analytics-card { min-width: 0; padding: 20px; border: 1px solid var(--line); border-radius: 22px; background: linear-gradient(150deg, rgba(17,22,18,.98), rgba(7,10,8,.98)); box-shadow: inset 0 1px rgba(255,255,255,.025), 0 20px 60px rgba(0,0,0,.18); }
.strength-card { border-color: rgba(var(--accent-rgb),.18); }
.analytics-head { display: flex; align-items: start; justify-content: space-between; gap: 16px; }
.analytics-head h2 { margin: 5px 0 0; }
.trend-number { flex: 0 0 auto; font-size: 1.35rem; font-weight: 950; }
.filter-row.compact { margin: 14px 0 2px; }
.filter-row.compact .filter-chip { min-height: 34px; font-size: .72rem; }
.line-chart { display: block; width: 100%; height: 190px; margin-top: 6px; overflow: visible; }
.chart-gridline { fill: none; stroke: rgba(255,255,255,.075); stroke-width: 1; }
.chart-footer { display: flex; justify-content: space-between; gap: 16px; color: var(--muted); font-size: .78rem; }
.chart-footer strong { color: var(--text); }
.chart-empty { min-height: 180px; display: grid; place-items: center; color: var(--muted); border-bottom: 1px solid var(--line); }
.analytics-card .weight-entry { margin-top: 10px; padding: 0; border: 0; background: transparent; }
.pr-card { position: relative; overflow: hidden; min-height: 280px; display: flex; flex-direction: column; justify-content: end; border-color: rgba(var(--accent-rgb),.26); }
.pr-card::before { content: ""; position: absolute; width: 200px; height: 200px; right: -60px; top: -65px; border-radius: 50%; background: radial-gradient(circle, rgba(var(--accent-rgb),.18), transparent 66%); }
.pr-mark { position: absolute; right: 24px; top: 24px; width: 58px; height: 58px; display: grid; place-items: center; clip-path: polygon(50% 0,61% 16%,80% 10%,82% 30%,100% 38%,86% 52%,96% 70%,76% 75%,74% 96%,54% 88%,39% 100%,28% 82%,8% 85%,10% 64%,0 50%,18% 39%,14% 19%,35% 20%); background: var(--accent); color: var(--accent-ink); font-size: 1.35rem; }
.pr-value { margin-top: 28px; font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif; font-size: 4rem; line-height: .9; }
.pr-value small { font-family: inherit; font-size: 1.4rem; color: var(--muted); }
.pr-card p { margin: 9px 0; font-weight: 800; }
.pr-copy { max-width: 340px; color: var(--muted); font-size: .8rem; line-height: 1.5; }
.symptom-form { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.symptom-form input, .symptom-form select, textarea { width: 100%; min-height: 46px; padding: 0 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-input); color: var(--text); }
.symptom-form input, .symptom-form button { grid-column: 1 / -1; }
.symptom-list { display: grid; gap: 2px; margin-top: 16px; }
.symptom-row { min-width: 0; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px; padding: 12px 0; border-top: 1px solid rgba(255,255,255,.07); }
.symptom-row small { display: block; margin-top: 3px; color: var(--muted); font-size: .74rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.severity-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--accent); }
.severity-none { background: var(--mint); }
.severity-mild { background: var(--accent); }
.severity-moderate { background: var(--amber); }
.severity-high { background: var(--danger); }
.severity-tag { padding: 5px 8px; border-radius: 7px; background: var(--surface-2); color: var(--muted); font-size: .7rem; font-weight: 800; }

/* Historical intelligence */
.history-overview-grid { margin-bottom: 16px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.history-metric { min-width: 0; padding: 15px; border: 1px solid var(--line); border-radius: 17px; background: linear-gradient(145deg, rgba(17,23,18,.98), rgba(8,11,9,.98)); display: flex; align-items: center; gap: 12px; }
.history-metric-mark { flex: 0 0 auto; width: 38px; height: 38px; border-radius: 12px; background: rgba(var(--accent-rgb),.08); color: var(--accent-text); display: grid; place-items: center; font-size: 1.05rem; font-weight: 950; }
.history-metric > div { min-width: 0; display: grid; gap: 2px; }
.history-metric small { color: var(--muted); font-size: .65rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.history-metric strong { overflow: hidden; color: var(--text); font-size: 1.35rem; line-height: 1.05; text-overflow: ellipsis; white-space: nowrap; }
.history-metric div > span { color: var(--muted); font-size: .68rem; }
.history-strength-head { align-items: center; }
.progress-signal { flex: 0 0 auto; min-width: 118px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 11px; display: grid; gap: 2px; text-align: right; }
.progress-signal strong { font-size: 1.08rem; }
.progress-signal span { font-size: .63rem; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.progress-signal.is-improving { border-color: rgba(var(--accent-rgb),.3); background: rgba(var(--accent-rgb),.07); color: var(--accent-text); }
.progress-signal.is-regressing { border-color: rgba(255,179,71,.34); background: rgba(255,179,71,.07); color: #ffc875; }
.progress-signal.is-steady { border-color: rgba(var(--mint-rgb),.26); background: rgba(var(--mint-rgb),.055); color: var(--mint-text); }
.progress-signal.is-baseline { color: var(--muted); }
.progress-signal.compact { min-width: 108px; padding: 6px 8px; }
.progress-signal.compact strong { font-size: .83rem; }
.progress-signal.compact span { font-size: .55rem; }
.history-exercise-select { margin-top: 16px; display: grid; gap: 6px; color: var(--muted); font-size: .68rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.history-exercise-select select { width: 100%; min-height: 48px; padding: 0 12px; border: 1px solid var(--line); border-radius: 13px; background: var(--surface-input); color: var(--text); font-size: .86rem; font-weight: 800; }
.history-method-note { margin: 14px 0 0; padding-top: 12px; border-top: 1px solid var(--line); color: var(--muted); font-size: .7rem; line-height: 1.5; }
.trend-neutral { color: var(--text); }
.trend-number small { color: var(--muted); font-size: .65rem; }
.history-inline-stats { margin-top: 14px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.history-inline-stats > span { min-width: 0; padding: 9px; border: 1px solid rgba(255,255,255,.065); border-radius: 11px; background: rgba(0,0,0,.16); display: grid; gap: 4px; }
.history-inline-stats small { color: var(--muted); font-size: .62rem; }
.history-inline-stats strong { overflow: hidden; font-size: .78rem; text-overflow: ellipsis; white-space: nowrap; }
.weight-history-card .weight-entry { display: grid; grid-template-columns: 1fr 1fr auto; align-items: end; }
.history-detail { margin-top: 15px; border-top: 1px solid var(--line); }
.history-detail > summary { min-height: 48px; list-style: none; color: var(--text); display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: .76rem; font-weight: 850; cursor: pointer; }
.history-detail > summary::-webkit-details-marker { display: none; }
.history-detail > summary::after { content: "+"; color: var(--accent-text); font-size: 1.05rem; }
.history-detail[open] > summary::after { content: "−"; }
.history-detail > summary span { margin-left: auto; color: var(--muted); }
.weight-history-list { max-height: 290px; overflow-y: auto; }
.weight-history-row { min-height: 54px; border-top: 1px solid rgba(255,255,255,.06); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.weight-history-row > div:first-child { display: grid; gap: 2px; }
.weight-history-row strong { font-size: .84rem; }
.weight-history-row small { color: var(--muted); font-size: .68rem; }
.weight-history-row > div:last-child { display: flex; gap: 8px; }
.weight-history-row button { min-height: 38px; padding-inline: 4px; font-size: .68rem; }
.weight-dialog-grid { margin-top: 17px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.history-count { min-width: 34px; height: 34px; padding: 0 8px; border-radius: 10px; background: rgba(var(--accent-rgb),.08); color: var(--accent-text); display: grid; place-items: center; font-size: .78rem; font-weight: 900; }
.strength-landscape { margin-top: 14px; display: grid; gap: 6px; }
.strength-progress-row { width: 100%; min-height: 68px; padding: 10px 12px; border: 1px solid rgba(255,255,255,.07); border-radius: 13px; background: rgba(0,0,0,.16); color: var(--text); display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 14px; text-align: left; cursor: pointer; }
.strength-progress-row:hover { border-color: rgba(var(--accent-rgb),.25); }
.strength-progress-main { min-width: 0; display: grid; gap: 4px; }
.strength-progress-main strong { overflow: hidden; font-size: .8rem; text-overflow: ellipsis; white-space: nowrap; }
.strength-progress-main small { overflow: hidden; color: var(--muted); font-size: .64rem; text-overflow: ellipsis; white-space: nowrap; }
.strength-progress-best { display: grid; gap: 3px; text-align: right; }
.strength-progress-best small { color: var(--muted); font-size: .58rem; }
.strength-progress-best strong { font-size: .78rem; }
.muscle-history-bars { margin-top: 14px; display: grid; gap: 11px; }
.muscle-history-row { display: grid; grid-template-columns: 88px minmax(0, 1fr) 28px; align-items: center; gap: 9px; }
.muscle-history-row > span { overflow: hidden; color: var(--muted); font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }
.muscle-history-row > div { height: 8px; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.06); }
.muscle-history-row i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--accent), var(--mint)); }
.muscle-history-row strong { font-size: .7rem; text-align: right; }
.pr-timeline { margin-top: 12px; display: grid; gap: 3px; }
.pr-timeline-item { padding: 9px 0; border-top: 1px solid rgba(255,255,255,.065); display: grid; grid-template-columns: 27px minmax(0, 1fr); align-items: center; gap: 8px; }
.pr-timeline-item > span { width: 26px; height: 26px; border-radius: 9px; background: rgba(var(--accent-rgb),.09); color: var(--accent-text); display: grid; place-items: center; font-size: .72rem; }
.pr-timeline-item > div { min-width: 0; display: grid; gap: 3px; }
.pr-timeline-item strong { overflow: hidden; font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }
.pr-timeline-item small { color: var(--muted); font-size: .63rem; }
.workout-history-list { max-height: 620px; margin-top: 10px; overflow-y: auto; display: grid; gap: 7px; }
.historical-session { border: 1px solid rgba(255,255,255,.075); border-radius: 13px; background: rgba(0,0,0,.15); overflow: hidden; }
.historical-session > summary { min-height: 65px; padding: 10px 12px; list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 12px; cursor: pointer; }
.historical-session > summary::-webkit-details-marker { display: none; }
.historical-session > summary > span:first-child { min-width: 0; display: grid; gap: 4px; }
.historical-session > summary strong { overflow: hidden; font-size: .8rem; text-overflow: ellipsis; white-space: nowrap; }
.historical-session > summary small { color: var(--muted); font-size: .63rem; }
.historical-session > summary > span:last-child { color: var(--accent-text); font-size: .7rem; font-weight: 900; white-space: nowrap; }
.historical-session-body { padding: 0 12px 12px; display: grid; gap: 6px; }
.historical-session-body > div { padding: 9px; border: 1px solid rgba(255,255,255,.055); border-radius: 10px; background: rgba(255,255,255,.02); display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.historical-session-body > div > span { min-width: 0; display: grid; gap: 3px; }
.historical-session-body strong { font-size: .72rem; }
.historical-session-body small { overflow: hidden; color: var(--muted); font-size: .61rem; text-overflow: ellipsis; white-space: nowrap; }
.historical-session-body em { color: var(--muted); font-size: .61rem; font-style: normal; white-space: nowrap; }
.historical-session-body p { margin: 4px 0 0; color: var(--muted); font-size: .67rem; line-height: 1.45; }
.historical-session-body > .historical-session-actions { padding: 10px 0 0; border: 0; border-radius: 0; background: transparent; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.historical-session-actions button { min-height: 42px; padding-inline: 10px; font-size: .68rem; }
.dialog.history-session-dialog { width: min(760px, 100%); max-height: min(90dvh, 900px); overflow-y: auto; }
.history-session-meta-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.history-session-meta-grid .is-wide { grid-column: 1 / -1; }
.history-exercise-editor-list { margin-top: 18px; display: grid; gap: 12px; }
.history-exercise-editor { padding: 14px; border: 1px solid rgba(255,255,255,.075); border-radius: 14px; background: rgba(255,255,255,.025); }
.history-exercise-editor-head { margin-bottom: 10px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.history-exercise-editor-head strong { font-size: .84rem; }
.history-exercise-editor-head span { color: var(--muted); font-size: .65rem; font-weight: 800; }
.history-set-editor { display: grid; gap: 7px; }
.history-set-row { display: grid; grid-template-columns: 42px minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 8px; }
.history-set-row > span { color: var(--muted); font-size: .68rem; font-weight: 850; text-align: center; }
.history-set-row input { width: 100%; min-width: 0; }
.history-set-head { min-height: 20px; color: var(--muted); font-size: .6rem; font-weight: 850; letter-spacing: .05em; text-transform: uppercase; }
.history-cardio-edit-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.history-cardio-edit-grid label { min-width: 0; display: grid; gap: 6px; color: var(--muted); font-size: .62rem; font-weight: 800; }
.history-cardio-edit-grid input { width: 100%; min-width: 0; }
.dialog-actions.history-session-dialog-actions { grid-template-columns: auto minmax(0, 1fr) minmax(0, 1fr); }

@media (max-width: 1000px) {
  .history-overview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 759px) {
  .history-metric { padding: 12px; gap: 9px; }
  .history-metric-mark { width: 32px; height: 32px; border-radius: 10px; }
  .history-metric strong { font-size: 1.08rem; }
  .history-metric div > span { font-size: .61rem; }
  .history-strength-head { align-items: start; }
  .progress-signal { min-width: 104px; }
  .weight-history-card .weight-entry { grid-template-columns: 1fr 1fr; }
  .weight-history-card .weight-entry .primary-button { grid-column: 1 / -1; width: 100%; }
  .strength-progress-row { grid-template-columns: minmax(0, 1fr) auto; gap: 9px; }
  .strength-progress-row .progress-signal { grid-column: 1 / -1; width: 100%; text-align: left; display: flex; align-items: center; justify-content: space-between; }
  .workout-history-list { max-height: none; }
}

@media (max-width: 420px) {
  .history-overview-grid { gap: 7px; }
  .history-metric { align-items: start; flex-direction: column; }
  .history-inline-stats { grid-template-columns: 1fr; }
  .weight-dialog-grid { grid-template-columns: 1fr; }
  .historical-session-body > div { align-items: start; flex-direction: column; }
  .historical-session-body > .historical-session-actions { display: grid; grid-template-columns: 1fr; }
  .history-session-meta-grid, .history-cardio-edit-grid { grid-template-columns: 1fr; }
  .history-session-meta-grid .is-wide { grid-column: auto; }
  .dialog-actions.history-session-dialog-actions { grid-template-columns: 1fr; }
  .history-session-dialog-actions button { width: 100%; }
}

.workout-tools { margin-top: 20px; border-top: 1px solid var(--line); }
.workout-tools summary { padding: 18px 0 4px; list-style: none; display: flex; justify-content: space-between; color: var(--text); font-weight: 850; cursor: pointer; }
.workout-tools summary::-webkit-details-marker { display: none; }
.workout-tools summary span { color: var(--muted); font-size: .76rem; font-weight: 700; }
.tool-grid { display: grid; gap: 12px; padding-top: 14px; }
.timer-card { padding: 18px; border: 1px solid rgba(var(--accent-rgb),.2); border-radius: 18px; background: radial-gradient(circle at 90% 10%, rgba(var(--accent-rgb),.1), transparent 45%), var(--surface-input); }
.timer-card.is-running { position: sticky; z-index: 12; bottom: max(16px, env(safe-area-inset-bottom)); border-color: rgba(var(--accent-rgb),.48); box-shadow: 0 18px 48px rgba(0,0,0,.52); }
.timer-value { margin: 8px 0 16px; font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif; font-size: 3.1rem; letter-spacing: .04em; }
.rest-duration-picker { margin: -4px 0 12px; display: grid; grid-template-columns: auto repeat(4, minmax(0, 1fr)); align-items: center; gap: 6px; }
.rest-duration-picker > span { color: var(--muted); font-size: .66rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.rest-duration-option { min-height: 34px; padding: 0 6px; border: 1px solid var(--line); border-radius: 9px; background: rgba(255,255,255,.025); color: var(--muted); font: inherit; font-size: .68rem; font-weight: 850; cursor: pointer; }
.rest-duration-option[aria-pressed="true"] { border-color: rgba(var(--accent-rgb),.55); background: rgba(var(--accent-rgb),.12); color: var(--accent-text); }
.timer-actions { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 7px; }
.timer-actions button { min-height: 42px; padding: 0 8px; font-size: .75rem; }
.notes-field textarea { min-height: 130px; padding: 12px; resize: vertical; line-height: 1.45; }

.back-button { margin-bottom: 18px; }
.module-back-button { margin: 0 0 14px; padding: 8px 12px; border: 1px solid rgba(var(--accent-rgb),.2); border-radius: 999px; background: rgba(var(--accent-rgb),.04); color: var(--muted); font: inherit; font-size: .76rem; font-weight: 850; letter-spacing: .02em; cursor: pointer; }
.module-back-button:hover, .module-back-button:focus-visible { color: var(--accent-text); border-color: rgba(var(--accent-rgb),.5); outline: none; }
.library-intro { display: flex; align-items: end; justify-content: space-between; gap: 18px; }
.library-intro > div { min-width: 0; }
.private-exercise-badge { display: inline-flex; margin-left: 8px; padding: 2px 6px; border: 1px solid rgba(var(--accent-rgb),.35); border-radius: 999px; color: var(--accent-text); font-size: .54rem; font-style: normal; font-weight: 900; letter-spacing: .08em; vertical-align: middle; }
.private-exercise-note { display: inline-flex; margin: 4px 0 8px; padding: 6px 9px; border-radius: 999px; background: rgba(var(--accent-rgb),.08); color: var(--accent-text); font-size: .72rem; font-weight: 800; }
.detail-actions { margin-top: 18px; }
.exercise-detail-hero { position: relative; overflow: hidden; padding: 26px; border: 1px solid rgba(var(--accent-rgb),.24); border-radius: 24px; background: linear-gradient(135deg, #172017, var(--surface-input) 72%); }
.exercise-detail-hero h1 { max-width: 740px; }
.exercise-glyph { position: absolute; right: -15px; top: -35px; color: rgba(var(--accent-rgb),.085); font-family: Impact, sans-serif; font-size: 13rem; line-height: 1; }
.detail-stats { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.detail-stats span { min-width: 135px; padding: 13px 15px; border: 1px solid var(--line); border-radius: 13px; background: rgba(0,0,0,.28); font-weight: 900; }
.detail-stats small { display: block; margin-bottom: 4px; color: var(--muted); font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; }
.instruction-list { padding: 0; margin: 22px 0 0; list-style: none; counter-reset: steps; display: grid; gap: 18px; }
.instruction-list li { position: relative; min-height: 32px; padding-left: 44px; color: var(--text); line-height: 1.5; counter-increment: steps; }
.instruction-list li::before { content: counter(steps); position: absolute; left: 0; top: -2px; width: 30px; height: 30px; display: grid; place-items: center; border: 1px solid var(--accent); border-radius: 50%; color: var(--accent-text); font-weight: 900; }
.target-visual { min-height: 155px; margin: 18px 0; border-radius: 16px; display: grid; place-items: center; background: radial-gradient(ellipse, rgba(var(--accent-rgb),.22), transparent 60%), linear-gradient(135deg, #111711, #070908); }
.target-visual span { padding: 9px 13px; border: 1px solid var(--accent); border-radius: 999px; color: var(--accent-text); font-weight: 900; text-transform: uppercase; letter-spacing: .09em; }
.target-row { display: grid; grid-template-columns: auto 86px 1fr; gap: 9px; align-items: center; padding: 9px 0; border-bottom: 1px solid rgba(255,255,255,.06); font-size: .82rem; }
.target-row > span:last-child { color: var(--muted); }
.tip-box { margin: 18px 0 0; padding: 14px; border-left: 3px solid var(--accent); background: rgba(var(--accent-rgb),.06); color: var(--muted); line-height: 1.5; }
.tip-box strong { display: block; margin-bottom: 5px; color: var(--text); }

.chart { height: 160px; padding: 18px 12px 8px; border: 1px solid var(--line); background: var(--surface); border-radius: var(--radius); display: flex; align-items: end; gap: 9px; }
.bar-wrap { flex: 1; min-width: 0; height: 100%; display: flex; flex-direction: column; justify-content: end; align-items: center; gap: 7px; }
.bar { width: 100%; max-width: 30px; min-height: 8px; border-radius: 8px 8px 3px 3px; background: linear-gradient(var(--accent), var(--mint)); }
.bar-label { color: var(--muted); font-size: .66rem; }

.filter-row { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 4px; margin-bottom: 16px; scrollbar-width: none; }
.filter-row::-webkit-scrollbar { display: none; }
.filter-chip { min-height: 38px; padding: 0 14px; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); color: var(--muted); white-space: nowrap; cursor: pointer; }
.filter-chip.is-active { background: var(--accent); border-color: var(--accent-text); color: var(--accent-ink); font-weight: 850; }
.library-tools, .builder-tools { display: grid; grid-template-columns: minmax(0, 1fr) minmax(150px, .42fr); gap: 10px; margin: 0 0 14px; }
.search-field, .select-field { display: grid; gap: 6px; color: var(--muted); font-size: .72rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.search-field input, .select-field select { width: 100%; min-height: 48px; padding: 0 13px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-input); color: var(--text); font: inherit; outline: none; }
.search-field input:focus, .select-field select:focus { border-color: rgba(var(--accent-rgb),.65); box-shadow: 0 0 0 3px rgba(var(--accent-rgb),.08); }
.library-result-line, .builder-result-line { display: flex; align-items: baseline; gap: 6px; margin: 0 0 12px; color: var(--muted); font-size: .79rem; }
.library-result-line strong, .builder-result-line strong { color: var(--accent-text); font-size: 1rem; }
.empty-state { padding: 36px 20px; border: 1px dashed var(--line); border-radius: var(--radius); text-align: center; color: var(--muted); }
.ownership { margin: 30px 0 0; color: #6f7871; font-size: .74rem; text-align: center; letter-spacing: .06em; text-transform: uppercase; }

.principle-card { margin-bottom: 18px; padding: 20px; border: 1px solid var(--line); border-radius: 20px; background: linear-gradient(135deg, rgba(var(--accent-rgb),.1), rgba(var(--accent-rgb),.025)); }
.principle-card strong { display: block; margin-bottom: 6px; font-size: 1.05rem; }
.principle-card p { margin: 0; color: var(--muted); line-height: 1.5; }
.build-control-card { margin-bottom: 10px; padding: 12px 16px; border-radius: 15px; display: flex; align-items: baseline; gap: 12px; }
.build-control-card strong { flex: 0 0 auto; margin: 0; font-size: .9rem; }
.build-control-card p { font-size: .76rem; line-height: 1.4; }
.hero-card.r2fit-builder-cta { min-height: 135px; padding: 18px 20px; border-radius: 20px; flex-direction: row; align-items: center; gap: 18px; }
.r2fit-builder-cta .hero-title { margin: 9px 0 2px; font-size: clamp(1.7rem, 5vw, 2.45rem); }
.r2fit-builder-cta .subtle { margin: 0; max-width: 650px; font-size: .8rem; line-height: 1.4; }
.r2fit-builder-cta .primary-button { flex: 0 0 auto; min-width: 190px; }
.template-grid { display: grid; gap: 12px; }
.train-active-card, .train-build-card { margin-bottom: 18px; padding: 18px; border: 1px solid rgba(var(--accent-rgb),.24); border-radius: 20px; background: linear-gradient(145deg, rgba(18,26,19,.98), rgba(8,12,9,.98)); display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.train-active-card h2, .train-build-card h2 { margin: 3px 0 4px; }
.train-active-card p:last-child { margin: 0; color: var(--muted); font-size: .78rem; }
.train-active-card .primary-button { flex: 0 0 auto; min-height: 43px; padding-inline: 18px; }
.training-organizer { margin-bottom: 14px; padding: 14px 15px; border: 1px solid rgba(var(--accent-rgb),.2); border-radius: 16px; background: rgba(var(--accent-rgb),.045); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.training-organizer > div { display: grid; gap: 3px; }
.training-organizer strong { font-size: .82rem; }
.training-organizer span { color: var(--muted); font-size: .68rem; line-height: 1.4; }
.training-organizer .secondary-button { min-height: 42px; padding-inline: 13px; white-space: nowrap; font-size: .67rem; }
.training-categories { display: grid; gap: 11px; }
.training-category-shell { position: relative; min-width: 0; }
.training-category { width: 100%; border: 1px solid var(--line); border-radius: 18px; background: rgba(12,17,13,.78); overflow: hidden; }
.training-category-shell.is-deletable .training-category > summary { padding-right: 142px; }
.training-category-delete { position: absolute; z-index: 2; top: 17px; right: 15px; min-width: 72px; min-height: 40px; padding: 0 10px; border: 1px solid rgba(255,107,107,.3); border-radius: 10px; background: rgba(255,107,107,.06); color: var(--danger); font-size: .62rem; font-weight: 900; cursor: pointer; }
.training-category-delete:hover { border-color: rgba(255,107,107,.58); background: rgba(255,107,107,.11); }
.training-category > summary { min-height: 74px; padding: 15px 17px; cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.training-category > summary::-webkit-details-marker { display: none; }
.training-category > summary span { display: grid; gap: 4px; }
.training-category > summary strong { font-size: .92rem; }
.training-category > summary small { color: var(--muted); font-size: .7rem; }
.training-category > summary em { color: var(--accent-text); font-size: .7rem; font-style: normal; font-weight: 900; white-space: nowrap; }
.training-category[open] > summary { border-bottom: 1px solid var(--line); background: rgba(var(--accent-rgb),.035); }
.training-days { padding: 11px; display: grid; gap: 10px; }
.training-day-card { border: 1px solid rgba(255,255,255,.08); border-radius: 15px; background: var(--surface-2); overflow: hidden; }
.training-day-disclosure > summary { padding: 15px 15px 10px; cursor: pointer; list-style: none; }
.training-day-disclosure > summary::-webkit-details-marker { display: none; }
.training-day-disclosure[open] > summary { border-bottom: 1px solid rgba(255,255,255,.07); }
.training-day-body { padding: 0 15px 10px; }
.training-day-head { display: flex; align-items: start; justify-content: space-between; gap: 12px; }
.training-day-head h3 { margin: 0 0 4px; font-size: .94rem; }
.training-day-head p { margin: 0; color: var(--muted); font-size: .7rem; }
.training-day-head > span { color: var(--accent-text); font-size: .68rem; font-weight: 900; white-space: nowrap; }
.training-day-head > span b { display: inline-grid; width: 20px; height: 20px; margin-left: 4px; border-radius: 50%; background: rgba(var(--accent-rgb),.09); place-items: center; transition: transform .16s ease; }
.training-day-disclosure[open] .training-day-head > span b { transform: rotate(45deg); }
.training-day-lesson { margin: 10px 0 0; color: #c7d1c7; font-size: .73rem; line-height: 1.45; }
.training-day-exercises { margin: 12px 0; padding: 0; list-style: none; display: grid; gap: 6px; }
.training-day-exercises li { padding: 9px 10px; border-radius: 10px; background: rgba(0,0,0,.22); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.training-day-exercises li span { display: grid; gap: 2px; }
.training-day-exercises strong { font-size: .74rem; }
.training-day-exercises small { color: var(--muted); font-size: .63rem; }
.training-day-exercises em { color: #cbd4cb; font-size: .66rem; font-style: normal; white-space: nowrap; }
.training-category-actions { display: flex; justify-content: flex-end; padding: 10px 15px 0; }
.training-category-actions button { min-height: 36px; font-size: .67rem; }
.training-day-quick-actions { padding: 0 15px 15px; display: grid; grid-template-columns: auto 1fr 1fr; gap: 8px; }
.training-day-quick-actions button { width: 100%; min-height: 43px; padding-inline: 10px; font-size: .69rem; }
.routine-order-controls { display: inline-flex; gap: 5px; }
.routine-order-controls button { width: 42px; min-width: 42px; }
.training-day-secondary-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.training-day-secondary-actions button { min-height: 40px; font-size: .68rem; }
.category-empty { padding: 18px; border: 1px dashed rgba(var(--accent-rgb),.25); border-radius: 12px; text-align: center; display: grid; gap: 5px; }
.category-empty strong { font-size: .82rem; }
.category-empty span { color: var(--muted); font-size: .7rem; }
.train-build-card { margin: 18px 0 0; align-items: end; }
.train-build-card .builder-actions { min-width: min(100%, 300px); }
.template-card { padding: 20px; border: 1px solid var(--line); border-radius: 20px; background: var(--surface); display: flex; flex-direction: column; }
.template-top { display: flex; align-items: start; justify-content: space-between; gap: 14px; }
.template-number { flex: 0 0 auto; color: var(--accent-text); font-size: .75rem; font-weight: 900; letter-spacing: .1em; }
.build-modules { display: grid; gap: 11px; }
.build-modules > .section-heading { margin-bottom: 3px; }
.build-modules-folder { border: 1px solid rgba(var(--accent-rgb),.25); border-radius: 20px; background: linear-gradient(145deg, rgba(16,22,17,.98), rgba(7,10,8,.98)); overflow: hidden; }
.build-modules-folder > summary { min-height: 68px; padding: 13px 17px; list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.build-modules-folder > summary::-webkit-details-marker { display: none; }
.build-modules-folder > summary > span { min-width: 0; display: grid; gap: 2px; }
.build-modules-folder > summary small { color: var(--accent-text); font-size: .62rem; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.build-modules-folder > summary strong { font-size: .92rem; }
.build-modules-folder > summary em { color: var(--muted); font-size: .67rem; font-style: normal; }
.build-modules-folder > summary b { width: 30px; height: 30px; flex: 0 0 auto; border: 1px solid rgba(var(--accent-rgb),.25); border-radius: 50%; color: var(--accent-text); display: grid; place-items: center; transition: transform .16s ease; }
.build-modules-folder[open] > summary { border-bottom: 1px solid var(--line); background: rgba(var(--accent-rgb),.04); }
.build-modules-folder[open] > summary b { transform: rotate(45deg); }
.build-modules-folder-body { padding: 10px; display: grid; gap: 8px; }
.build-modules-folder .build-module { border-radius: 14px; }
.build-modules-folder .build-module > summary { min-height: 64px; padding: 12px 14px; }
.build-module { border: 1px solid var(--line); border-radius: 20px; background: linear-gradient(145deg, rgba(16,22,17,.98), rgba(7,10,8,.98)); overflow: hidden; }
.build-module > summary { min-height: 82px; padding: 16px 18px; list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.build-module > summary::-webkit-details-marker { display: none; }
.build-module > summary > span { display: grid; gap: 3px; }
.build-module > summary small { color: var(--accent-text); font-size: .65rem; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.build-module > summary strong { font-size: 1rem; }
.build-module > summary em { color: var(--muted); font-size: .7rem; font-style: normal; }
.build-module > summary b { width: 31px; height: 31px; border: 1px solid rgba(var(--accent-rgb),.25); border-radius: 50%; color: var(--accent-text); display: grid; place-items: center; transition: transform .16s ease; }
.build-module[open] > summary { border-bottom: 1px solid var(--line); background: rgba(var(--accent-rgb),.035); }
.build-module[open] > summary b { transform: rotate(45deg); }
.build-module-body { padding: 14px; display: grid; gap: 13px; }
.hiit-module { border-color: rgba(255,196,83,.25); }
.hiit-module > summary small { color: var(--amber-text); }
.cardio-module { border-color: rgba(var(--sky-rgb),.28); }
.cardio-module > summary small { color: var(--sky-text); }
.cardio-module-guidance { border-color: rgba(var(--sky-rgb),.22); background: rgba(var(--sky-rgb),.06); }
.builder-cardio-badge { padding: 7px 9px; border: 1px solid rgba(var(--sky-rgb),.28); border-radius: 999px; color: var(--sky-text); font-size: .59rem; font-weight: 900; letter-spacing: .06em; white-space: nowrap; }
.module-guidance { padding: 13px 14px; border: 1px solid rgba(255,196,83,.2); border-radius: 13px; background: rgba(255,196,83,.055); display: grid; gap: 4px; }
.module-guidance strong, .module-guidance span { font-size: .72rem; line-height: 1.45; }
.module-guidance span { color: var(--muted); }
.build-module-card { min-width: 0; }
.module-lock-note { margin: 10px 0 0; padding: 10px; border-radius: 10px; background: rgba(255,196,83,.08); color: #ffd89a; font-size: .7rem; line-height: 1.45; }
.pregnancy-module-status { padding: 14px; border: 1px solid rgba(var(--accent-rgb),.18); border-radius: 14px; background: rgba(var(--accent-rgb),.04); display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.pregnancy-module-status > div { min-width: 0; display: grid; gap: 3px; }
.pregnancy-module-status small { color: var(--muted); font-size: .64rem; text-transform: uppercase; letter-spacing: .08em; }
.pregnancy-module-status strong { font-size: .86rem; }
.pregnancy-module-status span { color: var(--muted); font-size: .68rem; line-height: 1.4; }
.pregnancy-module-status button { flex: 0 0 auto; min-height: 42px; padding-inline: 12px; font-size: .66rem; }
.pregnancy-stage-guide { padding: 16px; border: 1px solid rgba(var(--accent-rgb),.2); border-radius: 16px; background: linear-gradient(145deg, rgba(var(--accent-rgb),.07), rgba(var(--mint-rgb),.025)); display: grid; gap: 14px; }
.pregnancy-stage-guide-head { display: grid; gap: 5px; }
.pregnancy-stage-guide-head small { color: var(--accent-text); font-size: .62rem; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.pregnancy-stage-guide-head strong { font-size: .96rem; }
.pregnancy-stage-guide-head p, .pregnancy-stage-structure { margin: 0; color: var(--muted); font-size: .72rem; line-height: 1.55; }
.pregnancy-stage-guide-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.pregnancy-stage-guide-grid > div { padding: 12px; border: 1px solid rgba(255,255,255,.07); border-radius: 12px; background: rgba(0,0,0,.13); }
.pregnancy-stage-guide-grid h4 { margin: 0 0 8px; font-size: .72rem; }
.pregnancy-stage-guide-grid ul { margin: 0; padding-left: 17px; display: grid; gap: 6px; }
.pregnancy-stage-guide-grid li { color: var(--muted); font-size: .68rem; line-height: 1.45; }
.pregnancy-stage-structure { padding-top: 11px; border-top: 1px solid rgba(255,255,255,.07); }
.pregnancy-stage-structure strong { color: var(--text); }
.module-empty { padding: 24px 16px; border: 1px dashed rgba(var(--accent-rgb),.24); border-radius: 14px; text-align: center; display: grid; gap: 5px; }
.module-empty strong { font-size: .84rem; }
.module-empty span { color: var(--muted); font-size: .7rem; }
.cycle-build-module { border-color: rgba(255,95,188,.26); }
.cycle-build-module > summary small { color: #ff91cf; }
.cycle-safety-banner { padding: 13px 14px; border: 1px solid rgba(255,95,188,.22); border-radius: 13px; background: rgba(255,95,188,.055); display: grid; gap: 4px; }
.cycle-safety-banner strong { color: #ffb3dc; font-size: .74rem; }
.cycle-safety-banner span, .cycle-privacy-note, .cycle-data-note { color: var(--muted); font-size: .69rem; line-height: 1.5; }
.cycle-empty { padding: 17px; border: 1px dashed rgba(255,95,188,.3); border-radius: 15px; display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.cycle-empty p { max-width: 680px; margin: 5px 0 0; color: var(--muted); font-size: .72rem; line-height: 1.5; }
.cycle-empty button { flex: 0 0 auto; }
.cycle-status-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.cycle-status-grid article { padding: 14px; border: 1px solid var(--line); border-radius: 13px; background: rgba(0,0,0,.16); display: grid; gap: 4px; }
.cycle-status-grid small { color: #ff91cf; font-size: .61rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.cycle-status-grid strong { font-size: .8rem; }
.cycle-status-grid span { color: var(--muted); font-size: .68rem; line-height: 1.45; }
.cycle-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.cycle-recommendations { display: grid; gap: 8px; }
.cycle-routine-card { padding: 12px; border: 1px solid var(--line); border-radius: 13px; background: rgba(0,0,0,.16); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.cycle-routine-card > div:first-child { min-width: 0; display: grid; gap: 3px; }
.cycle-routine-card small, .cycle-routine-card p { color: var(--muted); font-size: .65rem; line-height: 1.4; }
.cycle-routine-card p { margin: 2px 0 0; }
.cycle-routine-card > div:last-child { flex: 0 0 auto; display: flex; gap: 6px; }
.cycle-routine-card button { min-height: 38px; padding-inline: 10px; font-size: .62rem; }
.cycle-patterns, .cycle-education, .cycle-log-list { border: 1px solid var(--line); border-radius: 12px; background: rgba(0,0,0,.12); overflow: hidden; }
.cycle-patterns summary, .cycle-education summary, .cycle-log-list summary { min-height: 48px; padding: 10px 12px; cursor: pointer; display: flex; align-items: center; justify-content: space-between; font-size: .72rem; font-weight: 850; }
.cycle-patterns summary span, .cycle-education summary span, .cycle-log-list summary span { color: var(--accent-text); font-size: .63rem; }
.cycle-patterns p { margin: 0; padding: 0 12px 12px; color: var(--muted); font-size: .69rem; line-height: 1.5; }
.cycle-education > div { padding: 0 12px 12px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.cycle-education article { padding: 10px; border: 1px solid var(--line); border-radius: 10px; }
.cycle-education article strong { font-size: .7rem; }
.cycle-education article p, .cycle-education aside { margin: 4px 0 0; color: var(--muted); font-size: .65rem; line-height: 1.45; }
.cycle-education aside { grid-column: 1 / -1; padding: 10px; border-left: 3px solid #ff5fbc; background: rgba(255,95,188,.05); }
.cycle-form-grid { margin-top: 16px; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.cycle-form-grid .is-wide { grid-column: 1 / -1; }
.cycle-log-list { margin-top: 14px; }
.cycle-log-list > div { max-height: 210px; overflow-y: auto; padding: 0 12px 10px; display: grid; gap: 7px; }
.cycle-log-list p { margin: 0; display: grid; gap: 2px; }
.cycle-log-list p strong { font-size: .68rem; }
.cycle-log-list p span { color: var(--muted); font-size: .64rem; }
.cycle-delete-data { width: 100%; margin-top: 12px; }
.builder-bank { margin-top: 16px; border: 1px solid rgba(var(--accent-rgb),.2); border-radius: 16px; background: rgba(0,0,0,.13); overflow: hidden; }
.builder-bank-toggle { width: 100%; min-height: 66px; padding: 12px 14px; border: 0; background: rgba(var(--accent-rgb),.035); color: var(--text); cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 14px; text-align: left; }
.builder-bank-toggle span { display: grid; gap: 3px; }
.builder-bank-toggle small { color: var(--accent-text); font-size: .62rem; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.builder-bank-toggle strong { font-size: .78rem; }
.builder-bank-toggle b { width: 28px; height: 28px; border: 1px solid rgba(var(--accent-rgb),.25); border-radius: 50%; color: var(--accent-text); display: grid; place-items: center; }
.builder-bank.is-open .builder-bank-toggle { border-bottom: 1px solid var(--line); }
.builder-bank-body { padding: 14px; }
.custom-exercise-cta { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 14px; padding: 12px; border: 1px solid rgba(var(--accent-rgb),.18); border-radius: 14px; background: rgba(var(--accent-rgb),.035); }
.custom-exercise-cta span { display: grid; gap: 3px; }
.custom-exercise-cta small { color: var(--muted); line-height: 1.4; }
.custom-exercise-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 18px; }
.custom-exercise-grid .is-wide { grid-column: 1 / -1; }
.hiit-session-panel { border-color: rgba(255,196,83,.26); }
.hiit-round-count { color: var(--amber-text); font-size: .72rem; font-weight: 900; white-space: nowrap; }
.hiit-timer-card { margin: 20px 0 14px; padding: 20px; border: 1px solid rgba(var(--accent-rgb),.25); border-radius: 20px; background: radial-gradient(circle at 85% 12%, rgba(var(--accent-rgb),.13), transparent 45%), var(--surface-input); text-align: center; }
.hiit-timer-card.is-rest { border-color: rgba(var(--sky-rgb),.3); background: radial-gradient(circle at 85% 12%, rgba(var(--sky-rgb),.13), transparent 45%), var(--surface-input); }
.hiit-timer-card > strong { display: block; margin: 5px 0 6px; font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif; font-size: clamp(3.4rem, 16vw, 5.4rem); line-height: 1; letter-spacing: .04em; }
.hiit-timer-card > small { color: var(--muted); font-size: .7rem; line-height: 1.4; }
.hiit-timer-actions { margin-top: 17px; display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 7px; }
.hiit-timer-actions button { min-height: 43px; padding-inline: 8px; font-size: .67rem; }
.hiit-rounds { display: grid; gap: 7px; }
.hiit-round { width: 100%; min-height: 54px; padding: 10px 13px; border: 1px solid var(--line); border-radius: 13px; background: var(--surface-2); color: var(--text); cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 12px; text-align: left; }
.hiit-round span { color: var(--muted); font-size: .7rem; }
.hiit-round strong { font-size: .72rem; }
.hiit-round.is-done { border-color: rgba(var(--accent-rgb),.4); background: rgba(var(--accent-rgb),.09); }
.hiit-round.is-done strong { color: var(--accent-text); }
.hiit-safety-note { margin: 13px 0 0; color: var(--muted); font-size: .68rem; line-height: 1.45; }
.hiit-exercise-actions { grid-template-columns: .9fr 1.2fr; }
.template-meta { display: flex; flex-wrap: wrap; gap: 7px; margin: 14px 0; }
.template-meta span { padding: 6px 9px; border-radius: 8px; background: var(--surface-2); color: var(--muted); font-size: .74rem; font-weight: 750; }
.template-lesson { margin: 0 0 16px; color: var(--muted); font-size: .86rem; line-height: 1.5; }
.template-caution { margin: 0 0 16px; padding: 12px 14px; border: 1px solid rgba(255, 179, 71, .38); border-radius: 12px; background: rgba(255, 179, 71, .08); color: #f3d2a6; font-size: .82rem; line-height: 1.5; }
.template-caution strong { display: block; margin-bottom: 4px; color: #ffbd66; letter-spacing: .02em; }
.template-exercises { margin: 0 0 18px; padding: 0; list-style: none; display: grid; gap: 7px; }
.template-exercises li { display: flex; gap: 9px; color: #c4ccc6; font-size: .85rem; }
.template-exercises li::before { content: ""; width: 5px; height: 5px; margin-top: .52em; border-radius: 50%; background: var(--accent); }
.template-card .secondary-button { margin-top: auto; width: 100%; }
.builder { padding: 20px; border: 1px solid var(--line); border-radius: 22px; background: var(--surface); }
.builder-intro { margin-bottom: 18px; }
.builder-tools { margin-top: 16px; }
.builder-exercises { max-height: min(52dvh, 560px); overflow-y: auto; overscroll-behavior: contain; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0 0 18px; padding-right: 4px; scrollbar-color: #485044 transparent; }
.builder-exercise { min-height: 66px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-2); color: var(--muted); text-align: left; font-size: .78rem; font-weight: 750; cursor: pointer; display: grid; align-content: center; gap: 4px; }
.builder-exercise span { color: inherit; }
.builder-exercise small { color: #7f8981; font-size: .65rem; font-weight: 650; }
.builder-exercise.is-selected { border-color: var(--accent-text); background: rgba(var(--accent-rgb),.1); color: var(--text); }
.builder-exercise.is-selected small { color: #b9c7bc; }
.builder-empty { grid-column: 1 / -1; }
.builder-summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; color: var(--muted); font-size: .84rem; }
.builder-order { margin: -2px 0 16px; padding: 14px; border: 1px solid rgba(var(--accent-rgb),.2); border-radius: 16px; background: rgba(var(--accent-rgb),.035); }
.builder-order-heading { display: flex; align-items: end; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.builder-order-heading h3 { margin: 2px 0 0; font-size: .92rem; }
.builder-order-heading > span { color: var(--muted); font-size: .64rem; }
.builder-order-list { margin: 0; padding: 0; list-style: none; display: grid; gap: 7px; }
.builder-order-list li { min-width: 0; padding: 9px; border: 1px solid rgba(255,255,255,.07); border-radius: 11px; background: rgba(0,0,0,.22); display: grid; grid-template-columns: 24px minmax(0,1fr) auto auto; align-items: center; gap: 8px; }
.builder-order-number { color: var(--accent-text); font-size: .68rem; font-weight: 900; text-align: center; }
.builder-order-copy { min-width: 0; display: grid; gap: 2px; }
.builder-order-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .72rem; }
.builder-order-copy small { color: var(--muted); font-size: .61rem; }
.builder-set-stepper, .builder-order-controls { display: inline-flex; align-items: center; gap: 3px; }
.builder-set-stepper { padding: 3px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface-input); }
.builder-set-stepper button, .builder-order-controls button { min-width: 30px; height: 30px; padding: 0 7px; border: 0; border-radius: 7px; background: rgba(255,255,255,.06); color: var(--text); font-size: .65rem; font-weight: 900; cursor: pointer; }
.builder-set-stepper strong { min-width: 18px; color: var(--accent-text); font-size: .7rem; text-align: center; }
.builder-order-controls button:disabled { opacity: .25; cursor: default; }
.builder-order-controls .danger-text { color: var(--danger); }
.custom-plan-train-actions { display: flex; align-items: center; gap: 12px; margin: 0 0 16px; }
.custom-plan-train-actions small { color: var(--muted); line-height: 1.35; }
.builder .primary-button { width: 100%; }
.idea-categories { display: grid; gap: 8px; }
.idea-category { border: 1px solid var(--line); border-radius: 15px; background: rgba(12,17,13,.78); overflow: hidden; }
.idea-category > summary, .saved-routines-disclosure > summary { min-height: 58px; padding: 10px 14px; cursor: pointer; list-style: none; display: grid; grid-template-columns: minmax(0,1fr) auto 28px; align-items: center; gap: 10px; }
.idea-category > summary::-webkit-details-marker, .saved-routines-disclosure > summary::-webkit-details-marker { display: none; }
.idea-category > summary span, .saved-routines-disclosure > summary span { min-width: 0; display: grid; gap: 2px; }
.idea-category > summary strong, .saved-routines-disclosure > summary strong { font-size: .82rem; }
.idea-category > summary small, .saved-routines-disclosure > summary small { color: var(--muted); font-size: .66rem; }
.idea-category > summary em, .saved-routines-disclosure > summary em { color: var(--accent-text); font-size: .68rem; font-style: normal; font-weight: 900; white-space: nowrap; }
.idea-category > summary b, .saved-routines-disclosure > summary b { width: 27px; height: 27px; border: 1px solid rgba(var(--accent-rgb),.22); border-radius: 50%; color: var(--accent-text); display: grid; place-items: center; transition: transform .16s ease; }
.idea-category[open] > summary, .saved-routines-disclosure[open] > summary { border-bottom: 1px solid var(--line); background: rgba(var(--accent-rgb),.035); }
.idea-category[open] > summary b, .saved-routines-disclosure[open] > summary b { transform: rotate(45deg); }
.idea-category-body { padding: 8px; display: grid; gap: 6px; }
.compact-template-card { padding: 10px 11px; border: 1px solid rgba(255,255,255,.07); border-radius: 11px; background: rgba(0,0,0,.2); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.compact-template-copy { min-width: 0; }
.compact-template-copy h3 { margin: 0 0 3px; font-size: .78rem; }
.compact-template-copy p { margin: 0; color: var(--muted); font-size: .64rem; line-height: 1.35; }
.compact-template-actions { flex: 0 0 auto; display: flex; gap: 6px; }
.compact-template-actions button { width: auto; min-height: 36px; padding: 0 11px; border-radius: 9px; font-size: .63rem; }
.primary-button:disabled { opacity: .42; cursor: not-allowed; }

.auth-shell { min-height: calc(100dvh - 118px); display: grid; place-items: center; padding: 24px 0 48px; }
.auth-card { width: min(100%, 470px); padding: clamp(22px, 5vw, 34px); border: 1px solid var(--line); border-radius: 26px; background: linear-gradient(145deg, #171b18, #101310); box-shadow: 0 24px 80px rgba(0,0,0,.35); }
.auth-brand-logo { display: block; width: min(100%, 390px); height: auto; margin: 0 auto 22px; object-fit: contain; }
.auth-card h1 { font-size: clamp(2.2rem, 9vw, 3.5rem); }
.auth-mode { display: inline-flex; align-items: center; min-height: 28px; margin-bottom: 22px; padding: 0 10px; border-radius: 999px; background: rgba(255,196,83,.12); color: var(--amber-text); font-size: .72rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.auth-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding: 5px; margin: 24px 0 20px; border: 1px solid var(--line); border-radius: 15px; background: #0d100e; }
.auth-tab { min-height: 42px; border: 0; border-radius: 10px; background: transparent; color: var(--muted); font-weight: 800; cursor: pointer; }
.auth-tab.is-active { background: var(--surface-2); color: var(--text); }
.auth-form { display: grid; gap: 14px; }
.auth-form .field input { height: 54px; }
.auth-form .primary-button { margin-top: 4px; }
.password-policy { margin: -4px 0 0; color: var(--muted); font-size: .76rem; line-height: 1.45; }
.auth-message { min-height: 22px; margin: 12px 0 0; color: var(--muted); font-size: .84rem; line-height: 1.45; }
.auth-message.is-error { color: var(--danger); }
.auth-footnote { margin: 20px 0 0; padding-top: 18px; border-top: 1px solid var(--line); color: var(--muted); font-size: .78rem; line-height: 1.5; }

.bottom-nav { position: fixed; z-index: 20; left: 50%; bottom: max(12px, env(safe-area-inset-bottom)); transform: translateX(-50%); width: min(calc(100% - 24px), 620px); height: 68px; padding: 7px; border: 1px solid #333a35; border-radius: 22px; background: rgba(18,21,19,.92); backdrop-filter: blur(18px); display: grid; grid-template-columns: repeat(5, 1fr); box-shadow: 0 16px 50px rgba(0,0,0,.42); }
.nav-item { border: 0; border-radius: 16px; background: transparent; color: var(--muted); display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 3px; font-size: .69rem; font-weight: 750; cursor: pointer; }
.nav-item svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.nav-item.is-active { background: var(--surface-2); color: var(--accent-text); }

.toast-region { position: fixed; z-index: 50; left: 50%; top: 16px; transform: translateX(-50%); width: min(calc(100% - 32px), 420px); pointer-events: none; }
.toast { padding: 14px 16px; border: 1px solid #495642; border-radius: 14px; background: #1a2019; box-shadow: 0 12px 40px rgba(0,0,0,.45); font-weight: 750; animation: toast-in .2s ease; }
@keyframes toast-in { from { opacity: 0; transform: translateY(-8px); } }

.dialog-backdrop { position: fixed; z-index: 40; inset: 0; background: rgba(0,0,0,.72); display: grid; place-items: end center; padding: 16px; overflow-y: auto; overscroll-behavior: contain; }
.dialog { width: min(100%, 480px); max-height: calc(100dvh - 32px); overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding: 22px; border: 1px solid var(--line); border-radius: 24px; background: var(--surface); box-shadow: 0 20px 70px rgba(0,0,0,.55); }
.dialog-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 22px; }
.routine-editor-backdrop { place-items: center; }
.routine-editor-dialog { width: min(100%, 820px); max-height: calc(100dvh - 32px); padding: 0; overflow-y: auto; }
.routine-editor-header { padding: 20px 22px 15px; border-bottom: 1px solid var(--line); display: flex; align-items: start; justify-content: space-between; gap: 16px; }
.routine-editor-header h2 { margin: 3px 0 4px; }
.routine-editor-header p:last-child { margin: 0; font-size: .72rem; }
.routine-editor-fields { padding: 14px 22px 0; display: grid; grid-template-columns: 1.4fr 1fr; gap: 10px; }
.routine-editor-order { margin: 12px 22px 0; }
.routine-editor-order .builder-order-list { padding-bottom: 2px; }
.routine-editor-bank { margin: 12px 22px 0; }
.routine-editor-bank.is-open { max-height: min(44dvh, 420px); overflow-y: auto; }
.routine-editor-footer { position: sticky; bottom: 0; padding: 14px 22px calc(14px + env(safe-area-inset-bottom)); border-top: 1px solid var(--line); background: var(--surface); display: grid; grid-template-columns: 1fr 1.5fr; gap: 10px; }
.custom-plan-prompt { width: 100%; min-height: 260px; margin-top: 14px; padding: 14px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface-2); color: var(--text); font: inherit; resize: vertical; }
.custom-plan-review-days { display: grid; gap: 10px; margin-top: 16px; }
.custom-plan-review-days section { padding: 13px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface-2); }
.custom-plan-review-days strong, .custom-plan-review-days small { display: block; }
.custom-plan-review-days small { margin-top: 3px; color: var(--muted); }
.custom-plan-review-days ol { margin: 10px 0 0; padding-left: 20px; color: var(--muted); }
.custom-plan-review-days li + li { margin-top: 5px; }
.category-dialog .field { margin-top: 18px; }
.category-choice-list { max-height: min(44dvh, 390px); margin-top: 16px; overflow-y: auto; display: grid; gap: 7px; }
.category-choice { min-height: 52px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-2); color: var(--text); cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 12px; text-align: left; }
.category-choice span { font-weight: 850; }
.category-choice small { color: var(--accent-text); font-size: .66rem; font-weight: 800; }
.category-choice.is-current { border-color: rgba(var(--accent-rgb),.3); background: rgba(var(--accent-rgb),.07); }
.category-choice.is-current small { color: var(--muted); }
.category-create-inline { margin: 14px 0; padding-top: 14px; border-top: 1px solid var(--line); display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 8px; }
.category-create-inline .field { margin: 0; }
.category-create-inline .secondary-button { min-height: 48px; padding-inline: 12px; font-size: .66rem; }

@media (min-width: 760px) {
  main { padding-top: 30px; }
  .dashboard-grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: 16px; align-items: stretch; }
  .metric-grid { margin-top: 0; }
  .hero-card { min-height: 320px; }
  .exercise-panel { padding: 28px; }
  .progress-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
  .template-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .builder-exercises { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .section.desktop-reset { margin-top: 0; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

@media (max-width: 380px) {
  .library-tools, .builder-tools { grid-template-columns: 1fr; }
  .nav-item { font-size: .61rem; }
  .nav-item svg { width: 19px; height: 19px; }
  .exercise-actions { grid-template-columns: 1fr 1fr; }
  .exercise-actions .primary-button { grid-column: 1 / -1; }
}

@media (max-width: 520px) {
  .topbar { padding-inline: 14px; }
  .topbar-actions { gap: 6px; }
  .topbar .sync-status { display: none; }
  .language-switch button { min-width: 28px; padding-inline: 6px; }
  .training-organizer { align-items: stretch; flex-direction: column; }
  .training-organizer .secondary-button { width: 100%; }
  .training-day-quick-actions { grid-template-columns: auto 1fr; }
  .training-day-quick-actions > .primary-button { grid-column: 1 / -1; }
  .custom-plan-train-actions { align-items: stretch; flex-direction: column; }
  .category-create-inline { grid-template-columns: 1fr; }
  .builder-order-list li { grid-template-columns: 22px minmax(0,1fr) auto; }
  .builder-order-controls { grid-column: 2 / -1; justify-content: flex-end; }
  .pregnancy-module-status { align-items: stretch; flex-direction: column; }
  .pregnancy-module-status button { width: 100%; }
  .pregnancy-stage-guide-grid { grid-template-columns: 1fr; }
  .cycle-empty, .cycle-routine-card { align-items: stretch; flex-direction: column; }
  .cycle-empty button, .cycle-routine-card > div:last-child button { width: 100%; }
  .cycle-routine-card > div:last-child { display: grid; grid-template-columns: 1fr 1fr; }
  .cycle-status-grid, .cycle-form-grid { grid-template-columns: 1fr; }
  .cycle-education > div { grid-template-columns: 1fr; }
  .cycle-education aside { grid-column: auto; }
  .cycle-form-grid .is-wide { grid-column: auto; }
  .routine-editor-backdrop { padding: 0; place-items: end center; }
  .routine-editor-dialog { width: 100%; max-height: 94dvh; border-radius: 24px 24px 0 0; }
  .routine-editor-header, .routine-editor-fields, .routine-editor-footer { padding-inline: 15px; }
  .routine-editor-fields { grid-template-columns: 1fr; }
  .routine-editor-order, .routine-editor-bank { margin-inline: 15px; }
  .hiit-timer-actions { grid-template-columns: 1fr 1fr; }
  .hiit-timer-actions .primary-button { grid-column: 1 / -1; }
}

/* Premium mobile and in-gym interaction polish */
:root {
  --surface-raised: #111612;
  --surface-input: #0a0e0b;
  --lime-wash: rgba(var(--accent-rgb),.09);
  --nav-height: 72px;
  --tap-size: 44px;
}

body {
  overscroll-behavior-y: none;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.app-shell {
  padding-bottom: calc(var(--nav-height) + 34px + env(safe-area-inset-bottom));
}

.topbar {
  height: auto;
  min-height: calc(70px + env(safe-area-inset-top));
  padding: calc(14px + env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) 14px max(20px, env(safe-area-inset-left));
}

main {
  padding-right: max(20px, env(safe-area-inset-right));
  padding-left: max(20px, env(safe-area-inset-left));
}

button,
input,
select {
  min-height: var(--tap-size);
}

button {
  touch-action: manipulation;
}

.brand,
.text-button {
  min-height: var(--tap-size);
}

.metric-value,
.trend-number,
.pr-value,
.timer-value,
.list-value,
.set-table input,
.workout-count {
  font-variant-numeric: tabular-nums;
}

.metric-card {
  background: linear-gradient(155deg, var(--surface-raised), var(--feature-end));
}

.metric-value {
  margin-top: 11px;
}

.list-card,
.analytics-card,
.template-card,
.builder,
.exercise-panel {
  box-shadow: inset 0 1px rgba(255,255,255,.025), 0 16px 48px rgba(0,0,0,.13);
}

.nav-item {
  min-height: 52px;
  white-space: nowrap;
}

.nav-item.is-active {
  box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb),.1), 0 6px 18px rgba(0,0,0,.16);
}

.set-table tbody tr {
  transition: background-color .18s ease, opacity .18s ease;
}

.set-table tbody tr > td:first-child {
  border-radius: 12px 0 0 12px;
}

.set-table tbody tr > td:last-child {
  border-radius: 0 12px 12px 0;
}

.set-table tbody tr:has(.set-done.is-done),
.set-table tbody tr.is-done,
.set-row.is-done {
  background: var(--lime-wash);
}

.set-table tbody tr:has(.set-done.is-done) input,
.set-table tbody tr.is-done input,
.set-row.is-done input {
  border-color: rgba(var(--accent-rgb),.18);
  background: rgba(var(--accent-rgb),.06);
  color: var(--muted);
}

.set-done.is-done {
  box-shadow: 0 0 0 4px rgba(var(--accent-rgb),.1), 0 0 22px rgba(var(--accent-rgb),.12);
}

.empty-state {
  min-height: 156px;
  padding: 28px 22px;
  border-style: solid;
  border-color: rgba(var(--accent-rgb),.14);
  background: radial-gradient(circle at 50% 14%, rgba(var(--accent-rgb),.08), transparent 42%), rgba(8,11,9,.7);
  display: grid;
  place-items: center;
  align-content: center;
  gap: 10px;
  line-height: 1.5;
}

.empty-state::before {
  content: "+";
  width: 42px;
  height: 42px;
  border: 1px solid rgba(var(--accent-rgb),.3);
  border-radius: 50%;
  background: rgba(var(--accent-rgb),.06);
  color: var(--accent-text);
  display: grid;
  place-items: center;
  font-size: 1.35rem;
  font-weight: 500;
}

.empty-state .primary-button,
.empty-state .secondary-button,
.empty-state-action {
  margin-top: 4px;
}

/* Hooks for the account menu and explicit cloud-save feedback. */
.sync-chip {
  min-height: 30px;
  padding: 0 10px;
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 999px;
  background: rgba(13,17,15,.84);
  color: var(--muted);
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: .72rem;
  font-weight: 800;
  white-space: nowrap;
}

.sync-chip::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 0 4px rgba(var(--accent-rgb),.08);
}

.sync-chip.is-saving::before {
  background: var(--amber);
  animation: sync-pulse 1s ease-in-out infinite;
}

.sync-chip.is-offline,
.sync-chip.is-error {
  border-color: rgba(255,107,87,.2);
  color: #ffc0b7;
}

.sync-chip.is-offline::before,
.sync-chip.is-error::before {
  background: var(--danger);
  box-shadow: 0 0 0 4px rgba(255,107,87,.08);
}

@keyframes sync-pulse {
  50% { opacity: .45; transform: scale(.85); }
}

.account-sheet-backdrop {
  position: fixed;
  z-index: 45;
  inset: 0;
  padding: 16px max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
  background: rgba(0,0,0,.72);
  backdrop-filter: blur(7px);
  display: grid;
  place-items: end center;
}

.account-sheet {
  width: min(100%, 480px);
  max-height: min(78dvh, 680px);
  overflow-y: auto;
  padding: 10px 20px calc(20px + env(safe-area-inset-bottom));
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 26px 26px 20px 20px;
  background: linear-gradient(165deg, #151b16, var(--panel-end) 72%);
  box-shadow: 0 -22px 70px rgba(0,0,0,.52);
}

.account-sheet::before {
  content: "";
  width: 42px;
  height: 4px;
  margin: 0 auto 18px;
  border-radius: 999px;
  background: rgba(255,255,255,.24);
  display: block;
}

.account-sheet-header,
.account-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.theme-picker { margin: 18px 0 14px; padding: 14px; border: 1px solid var(--line); border-radius: 18px; background: rgba(255,255,255,.025); }
.theme-picker-heading { margin-bottom: 11px; display: flex; align-items: end; justify-content: space-between; gap: 12px; }
.theme-picker-heading > span { display: grid; gap: 3px; }
.theme-picker-heading small { color: var(--accent-text); font-size: .62rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.theme-picker-heading strong { font-size: .88rem; }
.theme-picker-heading em { color: var(--muted); font-size: .62rem; font-style: normal; }
.theme-options { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.theme-option { min-width: 0; min-height: 112px; padding: 11px; border: 1px solid var(--line); border-radius: 14px; background: rgba(0,0,0,.18); color: var(--text); display: grid; grid-template-columns: 1fr auto; align-content: start; gap: 9px; text-align: left; cursor: pointer; }
.theme-option.is-selected { border-color: var(--accent-text); box-shadow: inset 0 0 0 1px var(--accent); }
.theme-swatch { grid-column: 1 / -1; height: 25px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; }
.theme-swatch i { border-radius: 7px; background: var(--swatch-color); box-shadow: inset 0 0 0 1px rgba(255,255,255,.14); }
.theme-option-copy { min-width: 0; display: grid; gap: 3px; }
.theme-option-copy strong { font-size: .78rem; }
.theme-option-copy small { color: var(--muted); font-size: .6rem; line-height: 1.35; }
.theme-check { color: var(--accent-text); font-weight: 950; }

:root[data-theme="power-petal"] .language-switch,
:root[data-theme="power-petal"] .workout-unit-toggle,
:root[data-theme="power-petal"] .range-tabs,
:root[data-theme="power-petal"] .previous-block,
:root[data-theme="power-petal"] .timer-card,
:root[data-theme="power-petal"] .hiit-timer-card { background: rgba(255,255,255,.86); border-color: var(--line); }
:root[data-theme="power-petal"] .secondary-button { border-color: var(--line); }
:root[data-theme="power-petal"] .hero-card { background: linear-gradient(145deg, #f7d6e9 0%, #f0edff 72%); box-shadow: inset 0 0 50px rgba(var(--sky-rgb),.12), 0 22px 70px rgba(73,36,65,.12); }
:root[data-theme="power-petal"] .hero-card::after { border-color: rgba(var(--mint-rgb),.13); filter: drop-shadow(0 0 16px rgba(var(--accent-rgb),.14)); }
:root[data-theme="power-petal"] .train-active-card,
:root[data-theme="power-petal"] .train-build-card,
:root[data-theme="power-petal"] .build-module,
:root[data-theme="power-petal"] .build-modules-folder,
:root[data-theme="power-petal"] .training-category,
:root[data-theme="power-petal"] .saved-routines-disclosure { background: linear-gradient(145deg, var(--panel-start), var(--panel-end)); }
:root[data-theme="power-petal"] .exercise-panel { border-color: var(--line); box-shadow: 0 22px 60px rgba(73,36,65,.16); }
:root[data-theme="power-petal"] .bottom-nav { border-color: var(--line); background: rgba(255,255,255,.94); box-shadow: 0 14px 38px rgba(73,36,65,.14); }
:root[data-theme="power-petal"] .account-sheet { border-color: var(--line); background: linear-gradient(165deg, #ffffff, #fff2f8 72%); }
:root[data-theme="power-petal"] .template-exercises li,
:root[data-theme="power-petal"] .r2fit-message.is-user p { color: var(--text); }
:root[data-theme="power-petal"] input,
:root[data-theme="power-petal"] select,
:root[data-theme="power-petal"] textarea { border-color: var(--line); background-color: var(--surface-input); color: var(--text); }
:root[data-theme="power-petal"] .brand-logo { filter: hue-rotate(278deg) saturate(1.2) brightness(.72); }

.account-row {
  min-height: 54px;
  padding: 10px 0;
  border-top: 1px solid rgba(255,255,255,.07);
}

.account-danger,
.danger-zone {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid rgba(255,107,87,.18);
}

.account-danger button,
.danger-zone button {
  color: #ffafa3;
}

/* Password controls can wrap existing password inputs without changing form rhythm. */
.password-field,
.password-input-wrap {
  position: relative;
}

.password-field input,
.password-input-wrap input {
  padding-right: 54px;
}

.password-toggle,
.show-password {
  position: absolute;
  right: 5px;
  bottom: 5px;
  width: 44px;
  min-height: 44px;
  padding: 0;
  border: 0;
  border-radius: 11px;
  background: transparent;
  color: var(--muted);
  display: grid;
  place-items: center;
}

.password-toggle:hover,
.show-password:hover {
  background: rgba(255,255,255,.05);
  color: var(--text);
}

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
textarea:-webkit-autofill,
select:-webkit-autofill {
  -webkit-text-fill-color: var(--text);
  -webkit-box-shadow: 0 0 0 1000px var(--surface-input) inset;
  box-shadow: 0 0 0 1000px var(--surface-input) inset;
  caret-color: var(--text);
  border-color: rgba(var(--accent-rgb),.28);
  transition: background-color 9999s ease-out 0s;
}

.auth-mode {
  background: rgba(var(--accent-rgb),.09);
  color: var(--accent-text);
}

.auth-form input:focus-visible,
.set-table input:focus-visible,
.weight-entry input:focus-visible,
.symptom-form input:focus-visible,
.symptom-form select:focus-visible,
textarea:focus-visible {
  border-color: rgba(var(--accent-rgb),.52);
  box-shadow: 0 0 0 4px rgba(var(--accent-rgb),.08);
  outline: none;
}

@media (hover: hover) and (pointer: fine) {
  .primary-button:hover { filter: brightness(1.04); transform: translateY(-1px); }
  .secondary-button:hover, .ghost-button:hover { border-color: rgba(var(--accent-rgb),.28); background-color: rgba(var(--accent-rgb),.04); }
}

@media (max-width: 759px) {
  :root {
    --nav-height: 72px;
  }

  /* iOS zooms the viewport when a focused form control renders below 16px. */
  input:not([type="checkbox"]):not([type="radio"]),
  select,
  textarea {
    font-size: 16px !important;
  }

  main {
    padding: 10px max(16px, env(safe-area-inset-right)) 26px max(16px, env(safe-area-inset-left));
  }

  .topbar {
    min-height: calc(62px + env(safe-area-inset-top));
    padding: calc(10px + env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) 8px max(16px, env(safe-area-inset-left));
  }

  .brand {
    gap: 8px;
    font-size: .86rem;
  }

  .brand-logo { height: 27px; max-width: 55vw; }

  .page-intro {
    margin-bottom: 22px;
  }

  .page-intro h1 {
    max-width: 15ch;
  }

  h1 {
    font-size: clamp(2.25rem, 11vw, 3.4rem);
    line-height: .94;
  }

  h2 {
    font-size: 1.35rem;
  }

  .subtle {
    font-size: .94rem;
  }

  .hero-card {
    min-height: 246px;
    padding: 21px;
    border-radius: 22px;
  }

  .hero-title {
    margin-top: 18px;
  }

  .metric-grid {
    gap: 10px;
  }

  .metric-card {
    min-height: 112px;
    padding: 15px;
    border-radius: 16px;
  }

  .metric-value {
    margin: 10px 0 3px;
    font-size: 1.58rem;
  }

  .metric-label,
  .metric-detail,
  .chart-footer,
  .template-meta span,
  .severity-tag {
    font-size: .78rem;
  }

  .section {
    margin-top: 25px;
  }

  .list-card {
    padding: 14px;
  }

  .analytics-card,
  .builder,
  .template-card {
    padding: 17px;
    border-radius: 18px;
  }

  .exercise-panel {
    padding: 17px;
    border-radius: 20px;
  }

  .previous-block {
    margin: 16px 0;
  }

  .set-table th {
    padding-inline: 3px;
    font-size: .68rem;
  }

  .set-table td {
    padding: 6px 3px;
  }

  .set-table th:first-child,
  .set-table td:first-child {
    width: 34px;
  }

  .set-table th:last-child,
  .set-table td:last-child {
    width: 44px;
  }

  .set-table input {
    height: 50px;
    min-height: 50px;
    padding-inline: 10px;
  }

  .exercise-actions {
    position: sticky;
    z-index: 12;
    bottom: calc(var(--nav-height) + 18px + env(safe-area-inset-bottom));
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin: 18px -9px -9px;
    padding: 10px 9px 9px;
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 18px;
    background: rgba(10,14,11,.94);
    box-shadow: 0 14px 42px rgba(0,0,0,.44), 0 -8px 28px rgba(0,0,0,.18);
    backdrop-filter: blur(16px);
  }

  .exercise-actions .primary-button {
    grid-column: 1 / -1;
    grid-row: 1;
    min-height: 54px;
  }

  .exercise-actions .ghost-button {
    min-height: 44px;
  }

  body.is-workout-mode .topbar,
  .app-shell.is-workout-mode .topbar {
    min-height: calc(54px + env(safe-area-inset-top));
    padding-bottom: 4px;
  }

  body.is-workout-mode main,
  .app-shell.is-workout-mode main {
    padding-top: 4px;
  }

  body.is-workout-mode .bottom-nav,
  .app-shell.is-workout-mode .bottom-nav {
    opacity: .96;
  }

  .bottom-nav {
    width: min(calc(100% - 20px - env(safe-area-inset-left) - env(safe-area-inset-right)), 620px);
    height: var(--nav-height);
    bottom: max(10px, env(safe-area-inset-bottom));
    padding: 6px;
    border-radius: 21px;
  }

  .nav-item {
    gap: 2px;
    font-size: .72rem;
  }

  .nav-item svg {
    width: 20px;
    height: 20px;
  }

  .toast-region {
    top: auto;
    bottom: calc(var(--nav-height) + 24px + env(safe-area-inset-bottom));
  }

  body.is-workout-mode .toast-region,
  .app-shell.is-workout-mode .toast-region {
    bottom: calc(var(--nav-height) + 138px + env(safe-area-inset-bottom));
  }

  .toast {
    border-color: rgba(var(--accent-rgb),.2);
    background: rgba(20,27,21,.97);
    backdrop-filter: blur(14px);
  }

  .range-tabs {
    width: 100%;
    margin-left: 0;
  }

  .filter-row {
    margin-right: calc(0px - max(16px, env(safe-area-inset-right)));
    padding-right: max(16px, env(safe-area-inset-right));
    scroll-snap-type: x proximity;
  }

  .filter-chip {
    min-height: 42px;
    scroll-snap-align: start;
  }

  .train-active-card,
  .train-build-card {
    align-items: stretch;
    flex-direction: column;
  }

  .train-active-card .primary-button,
  .train-build-card .builder-actions {
    width: 100%;
  }

  .training-day-head {
    align-items: start;
  }

  .training-day-exercises li {
    align-items: start;
  }
}

/* Set controls + mobile-first plate calculator */
.set-table th:nth-child(4),
.set-table td:nth-child(4) {
  width: 46px;
  text-align: right;
}

.set-table th:nth-child(5),
.set-table td:nth-child(5) {
  width: 38px;
  padding-left: 1px;
  text-align: right;
}

.set-remove {
  width: 34px;
  height: 42px;
  border: 1px solid rgba(255, 107, 87, .2);
  border-radius: 11px;
  background: rgba(255, 107, 87, .055);
  color: #ffafa3;
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
}

.set-remove:hover:not(:disabled),
.set-remove:focus-visible {
  border-color: rgba(255, 107, 87, .55);
  background: rgba(255, 107, 87, .12);
}

.set-remove:disabled {
  opacity: .22;
  cursor: not-allowed;
}

.plate-calculator {
  margin-top: 18px;
  border: 1px solid rgba(var(--accent-rgb), .22);
  border-radius: 18px;
  background: radial-gradient(circle at 90% 0, rgba(var(--accent-rgb), .09), transparent 38%), var(--surface-input);
  overflow: hidden;
}

.plate-calculator > summary {
  min-height: 64px;
  padding: 12px 14px;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  cursor: pointer;
}

.plate-calculator > summary::-webkit-details-marker { display: none; }
.plate-calculator > summary > span:first-child { display: grid; gap: 3px; }
.plate-calculator > summary strong { font-size: .92rem; }
.plate-calculator > summary small { color: var(--muted); font-size: .72rem; }
.plate-calculator > summary::after { content: "+"; color: var(--accent-text); font-size: 1.25rem; font-weight: 900; }
.plate-calculator[open] > summary::after { content: "−"; }

.plate-summary-total {
  margin-left: auto;
  color: var(--accent-text);
  font-size: 1rem;
  font-weight: 950;
  white-space: nowrap;
}

.plate-calculator-body {
  padding: 14px;
  border-top: 1px solid rgba(255,255,255,.08);
}

.plate-bar-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: end;
  gap: 10px;
}

.plate-toggle {
  min-height: 50px;
  padding: 0 13px;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: var(--surface-2);
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--text);
  font-size: .82rem;
  font-weight: 850;
  cursor: pointer;
}

.plate-toggle input {
  width: 20px;
  height: 20px;
  margin: 0;
  accent-color: var(--accent-text);
}

.plate-bar-weight { display: grid; gap: 6px; color: var(--muted); font-size: .72rem; font-weight: 800; }
.plate-input-unit { position: relative; display: block; }
.plate-input-unit input {
  width: 100%;
  height: 50px;
  padding: 0 38px 0 12px;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: var(--surface-2);
  color: var(--text);
  font-size: 1rem;
  font-weight: 850;
}
.plate-input-unit input:disabled { opacity: .42; }
.plate-input-unit small { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); color: var(--muted); font-weight: 850; pointer-events: none; }
.plate-hint { margin: 10px 1px 14px; color: var(--muted); font-size: .74rem; line-height: 1.45; }

.plate-picker { margin: 0; padding: 0; border: 0; }
.plate-picker legend { margin-bottom: 9px; color: var(--muted); font-size: .72rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.plate-grid { display: grid; gap: 7px; }
.plate-stepper {
  min-height: 50px;
  padding: 4px;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: rgba(255,255,255,.025);
  display: grid;
  grid-template-columns: minmax(64px, 1fr) 42px 52px 42px;
  align-items: center;
  gap: 4px;
}

.plate-size { padding-left: 9px; color: var(--text); font-size: 1rem; font-weight: 950; }
.plate-size small { margin-left: 3px; color: var(--muted); font-size: .67rem; }
.plate-stepper button {
  width: 42px;
  height: 40px;
  border: 1px solid rgba(var(--accent-rgb),.18);
  border-radius: 10px;
  background: rgba(var(--accent-rgb),.06);
  color: var(--accent-text);
  font-size: 1.25rem;
  font-weight: 900;
  cursor: pointer;
}
.plate-stepper input {
  width: 52px;
  height: 40px;
  padding: 0 3px;
  border: 0;
  border-radius: 9px;
  background: #050706;
  color: var(--text);
  text-align: center;
  font-size: 1rem;
  font-weight: 900;
  appearance: textfield;
}
.plate-stepper input::-webkit-inner-spin-button,
.plate-stepper input::-webkit-outer-spin-button { margin: 0; appearance: none; }

.plate-total {
  margin-top: 12px;
  padding: 14px;
  border: 1px solid rgba(var(--accent-rgb),.24);
  border-radius: 14px;
  background: rgba(var(--accent-rgb),.075);
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 12px;
}
.plate-total > span:first-child { display: grid; gap: 3px; }
.plate-total small, .plate-total-note { color: var(--muted); font-size: .7rem; font-weight: 750; }
.plate-total strong { color: var(--accent-text); font-size: 1.55rem; letter-spacing: -.02em; }
.plate-total-note { padding-bottom: 3px; }

.plate-apply-row { margin-top: 10px; display: grid; grid-template-columns: 1fr 1.25fr; gap: 8px; }
.plate-apply-row label { display: grid; gap: 5px; color: var(--muted); font-size: .7rem; font-weight: 800; }
.plate-apply-row select {
  width: 100%;
  height: 50px;
  padding: 0 11px;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: var(--surface-2);
  color: var(--text);
  font-weight: 850;
}
.plate-apply-row .secondary-button { min-width: 0; align-self: end; padding-inline: 8px; }

@media (min-width: 680px) {
  .plate-grid { grid-template-columns: 1fr 1fr; }
  .plate-stepper:last-child { grid-column: 1 / -1; }
}

@media (max-width: 420px) {
  .set-table th,
  .set-table td { padding-inline: 2px; }
  .set-table input { padding-inline: 8px; }
  .set-done { width: 38px; }
  .set-remove { width: 30px; }
  .plate-calculator-body { padding: 12px; }
  .plate-bar-row { grid-template-columns: 1fr; }
  .plate-apply-row { grid-template-columns: 1fr; }
  .plate-apply-row .secondary-button { width: 100%; }
}

/* R2Fit and the extensible More hub */
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.r2fit-shell {
  width: min(100%, 780px);
  height: min(820px, calc(100dvh - 178px - env(safe-area-inset-bottom)));
  min-height: 510px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
}

.r2fit-hero {
  padding: 4px 2px 18px;
  display: flex;
  align-items: center;
  gap: 16px;
}

.r2fit-orb {
  flex: 0 0 auto;
  width: 62px;
  height: 62px;
  border: 1px solid rgba(var(--accent-rgb),.44);
  border-radius: 20px;
  background: radial-gradient(circle at 32% 25%, #d8ff92, var(--accent) 38%, #4c8d1d 100%);
  color: #071006;
  box-shadow: 0 0 0 6px rgba(var(--accent-rgb),.05), 0 14px 44px rgba(var(--accent-rgb),.1);
  display: grid;
  place-items: center;
  font-size: 1.12rem;
  font-weight: 950;
  letter-spacing: -.06em;
}

.r2fit-hero-copy { min-width: 0; flex: 1; }
.r2fit-hero .eyebrow { margin-bottom: 3px; }
.r2fit-hero .subtle { max-width: 650px; margin: 5px 0 0; font-size: .84rem; }
.r2fit-title-row { display: flex; align-items: center; gap: 12px; }
.r2fit-title-row h1 { max-width: min(100%, 14ch); margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: clamp(2.1rem, 7vw, 3.4rem); }
.r2fit-rename { min-height: 36px; padding-inline: 4px; font-size: .75rem; }
.r2fit-clear { min-height: 36px; margin-left: auto; padding-inline: 4px; color: #9aa29c; font-size: .72rem; }

.r2fit-mode-row { margin: -7px 0 10px; display: flex; justify-content: flex-end; gap: 8px; }
.r2fit-mode { min-height: 42px; padding: 7px 11px; border: 1px solid var(--line); border-radius: 13px; background: var(--surface); color: var(--muted); display: grid; gap: 2px; text-align: left; cursor: pointer; }
.r2fit-mode span { color: var(--text); font-size: .75rem; font-weight: 850; }
.r2fit-mode small { font-size: .65rem; }
.r2fit-mode.is-active { border-color: rgba(255,179,71,.5); background: rgba(255,179,71,.08); }
.r2fit-mode.is-active span { color: #ffd69a; }

.r2fit-chat {
  min-height: 0;
  flex: 1;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 18px;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 24px;
  background: radial-gradient(circle at 90% 0, rgba(var(--accent-rgb),.06), transparent 27%), linear-gradient(165deg, rgba(15,20,16,.98), rgba(7,10,8,.98));
  box-shadow: inset 0 1px rgba(255,255,255,.025), 0 18px 54px rgba(0,0,0,.22);
  scrollbar-color: #485044 transparent;
}

.r2fit-welcome {
  min-height: 100%;
  padding: 28px 12px;
  display: grid;
  place-items: center;
  align-content: center;
  text-align: center;
}

.r2fit-welcome-mark {
  width: 48px;
  height: 48px;
  margin-bottom: 13px;
  border: 1px solid rgba(var(--accent-rgb),.28);
  border-radius: 16px;
  background: rgba(var(--accent-rgb),.07);
  color: var(--accent-text);
  display: grid;
  place-items: center;
  font-size: 1.25rem;
}

.r2fit-welcome > strong { font-size: 1.22rem; }
.r2fit-welcome > p { max-width: 540px; margin: 8px auto 20px; color: var(--muted); font-size: .86rem; line-height: 1.5; }
.r2fit-starters { width: min(100%, 560px); display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.r2fit-starters button {
  min-height: 42px;
  padding: 9px 13px;
  border: 1px solid rgba(var(--accent-rgb),.2);
  border-radius: 999px;
  background: rgba(var(--accent-rgb),.045);
  color: #d8ded9;
  font-size: .78rem;
  font-weight: 750;
  cursor: pointer;
}

.r2fit-starters button:hover { border-color: rgba(var(--accent-rgb),.5); color: var(--accent-text); }
.r2fit-message { max-width: min(84%, 610px); margin-bottom: 14px; display: grid; gap: 5px; }
.r2fit-message.is-user { margin-left: auto; justify-items: end; }
.r2fit-message.is-assistant { margin-right: auto; }
.r2fit-message-label { padding: 0 4px; color: var(--muted); font-size: .68rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.r2fit-message p { margin: 0; padding: 12px 14px; border: 1px solid var(--line); border-radius: 5px 17px 17px 17px; background: var(--surface-2); color: var(--text); line-height: 1.53; overflow-wrap: anywhere; }
.r2fit-message.is-user p { border-color: rgba(var(--accent-rgb),.28); border-radius: 17px 5px 17px 17px; background: linear-gradient(135deg, rgba(var(--accent-rgb),.18), rgba(var(--accent-rgb),.08)); color: var(--text); }
.r2fit-message:has(.r2fit-workout-stack) { width: min(100%, 690px); max-width: 100%; }
.r2fit-workout-stack { margin-top: 9px; display: grid; gap: 10px; }
.r2fit-workout-card { padding: 15px; border: 1px solid rgba(var(--accent-rgb),.27); border-radius: 18px; background: linear-gradient(145deg, rgba(23,31,24,.98), rgba(10,14,11,.98)); }
.r2fit-workout-head { display: flex; align-items: start; justify-content: space-between; gap: 12px; }
.r2fit-workout-head small { color: var(--accent-text); font-size: .65rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.r2fit-workout-head h3 { margin: 4px 0 0; font-size: 1.08rem; }
.r2fit-workout-head em { display: block; margin-top: 5px; color: #ffc875; font-size: .66rem; font-style: normal; font-weight: 800; }
.r2fit-workout-head > span { padding: 5px 8px; border-radius: 8px; background: rgba(var(--accent-rgb),.1); color: var(--accent-text); font-size: .7rem; font-weight: 850; white-space: nowrap; }
.r2fit-rationale { margin: 9px 0 12px !important; padding: 0 !important; border: 0 !important; background: transparent !important; color: var(--muted) !important; font-size: .77rem; }
.r2fit-workout-exercises { display: grid; gap: 6px; }
.r2fit-workout-exercise { min-width: 0; padding: 10px; border: 1px solid rgba(255,255,255,.07); border-radius: 12px; background: rgba(0,0,0,.2); display: flex; align-items: center; justify-content: space-between; gap: 9px; }
.r2fit-workout-exercise > div:first-child { min-width: 0; display: grid; gap: 3px; }
.r2fit-workout-exercise strong { font-size: .79rem; }
.r2fit-workout-exercise small { color: var(--muted); font-size: .66rem; line-height: 1.35; }
.r2fit-workout-edit { flex: 0 0 auto; display: flex; align-items: center; gap: 3px; }
.r2fit-workout-edit button { width: 29px; height: 29px; padding: 0; border: 1px solid var(--line); border-radius: 8px; background: var(--surface-2); color: var(--text); cursor: pointer; }
.r2fit-workout-edit span { min-width: 17px; text-align: center; font-size: .75rem; font-weight: 900; }
.r2fit-workout-actions { margin-top: 11px; display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.r2fit-workout-actions button, .r2fit-save-all { min-height: 42px; padding: 0 10px; font-size: .69rem; }
.r2fit-save-all { width: 100%; }
.pregnancy-safety-banner { margin: 0 0 13px; padding: 12px 14px; border: 1px solid rgba(255,179,71,.34); border-radius: 14px; background: rgba(255,179,71,.07); display: grid; gap: 4px; }
.pregnancy-safety-banner strong { color: #ffc875; font-size: .78rem; }
.pregnancy-safety-banner span { color: #d7c3a5; font-size: .72rem; line-height: 1.45; }
.workout-pregnancy-banner { margin-bottom: 18px; }
.pregnancy-profile-dialog { max-height: min(90dvh, 760px); overflow-y: auto; }
.pregnancy-profile-dialog .select-field, .pregnancy-profile-dialog .field { margin-top: 16px; }
.pregnancy-warning { margin: 15px 0; padding: 12px; border-left: 3px solid var(--amber); background: rgba(255,179,71,.07); display: grid; gap: 4px; }
.pregnancy-warning strong { color: #ffc875; font-size: .8rem; }
.pregnancy-warning span { color: var(--muted); font-size: .74rem; line-height: 1.45; }
.pregnancy-clearance { margin-top: 14px; display: flex; align-items: start; gap: 10px; cursor: pointer; }
.pregnancy-clearance input { width: 20px; height: 20px; accent-color: var(--accent-text); }
.pregnancy-clearance span { display: grid; gap: 3px; }
.pregnancy-clearance strong { font-size: .82rem; }
.pregnancy-clearance small { color: var(--muted); font-size: .7rem; line-height: 1.4; }
.r2fit-memory-dialog { max-height: min(90dvh, 760px); overflow-y: auto; }
.r2fit-memory-list { margin-top: 16px; display: grid; gap: 8px; }
.r2fit-memory-item { padding: 11px 12px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.025); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.r2fit-memory-item > div { min-width: 0; display: grid; gap: 5px; }
.r2fit-memory-item strong { font-size: .8rem; line-height: 1.4; overflow-wrap: anywhere; }
.r2fit-memory-meta { color: var(--accent-text); font-size: .62rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.r2fit-memory-meta em { margin-left: 7px; padding: 2px 6px; border-radius: 999px; background: rgba(255,179,71,.12); color: #ffc875; font-style: normal; letter-spacing: .04em; }
.r2fit-memory-empty { margin-top: 16px; padding: 18px; border: 1px dashed var(--line); border-radius: 13px; color: var(--muted); font-size: .8rem; text-align: center; }
.r2fit-memory-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.r2fit-memory-actions .danger-button:last-child:nth-child(3) { grid-column: 1 / -1; }
.program-guidance { margin: -7px 0 16px; padding: 12px 14px; border: 1px solid rgba(var(--accent-rgb),.18); border-radius: 13px; background: rgba(var(--accent-rgb),.05); display: grid; gap: 4px; }
.program-guidance strong { color: var(--accent-text); font-size: .78rem; }
.program-guidance span, .program-guidance small { color: var(--muted); font-size: .72rem; line-height: 1.4; }
.r2fit-message.is-loading { width: min(100%, 520px); }
.r2fit-progress-card { position: relative; min-height: 78px; padding: 17px 76px 15px 16px; overflow: hidden; border: 1px solid rgba(var(--accent-rgb),.2); border-radius: 5px 17px 17px 17px; background: var(--surface-2); display: grid; align-items: center; }
.r2fit-progress-card > div { display: grid; gap: 4px; }
.r2fit-progress-card strong { font-size: .82rem; }
.r2fit-progress-card small { color: var(--muted); font-size: .69rem; line-height: 1.4; }
.r2fit-progress-card button { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); padding: 7px 0; border: 0; background: transparent; color: var(--muted); font-size: .66rem; font-weight: 900; letter-spacing: .08em; cursor: pointer; }
.r2fit-progress-bar { position: absolute; inset: 0 auto auto 0; width: 42%; height: 2px; border-radius: 999px; background: var(--accent); box-shadow: 0 0 10px rgba(var(--accent-rgb),.55); animation: r2fit-progress 1.45s ease-in-out infinite; }
@keyframes r2fit-progress { 0% { transform: translateX(-110%); } 100% { transform: translateX(340%); } }

.r2fit-error {
  margin: 8px 0 4px;
  padding: 14px;
  border: 1px solid rgba(255,107,87,.25);
  border-radius: 16px;
  background: rgba(255,107,87,.055);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.r2fit-error p { margin: 4px 0 0; color: #d3aaa4; font-size: .8rem; line-height: 1.45; }
.r2fit-error .secondary-button { flex: 0 0 auto; min-height: 42px; padding-inline: 14px; font-size: .72rem; }

.r2fit-composer {
  margin-top: 10px;
  padding: 7px;
  border: 1px solid rgba(var(--accent-rgb),.22);
  border-radius: 19px;
  background: rgba(14,19,15,.97);
  box-shadow: 0 12px 34px rgba(0,0,0,.25);
  display: flex;
  align-items: end;
  gap: 7px;
}
.r2fit-composer textarea {
  min-width: 0;
  min-height: 48px;
  max-height: 136px;
  flex: 1;
  resize: none;
  padding: 13px 12px;
  border: 0;
  background: transparent;
  color: var(--text);
  line-height: 1.4;
  outline: none;
}
.r2fit-composer textarea::placeholder { color: #747d76; }
.r2fit-send { flex: 0 0 auto; width: 48px; height: 48px; min-height: 48px; padding: 0; border: 0; border-radius: 14px; background: var(--accent); color: var(--accent-ink); display: grid; place-items: center; cursor: pointer; }
.r2fit-send svg { width: 21px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.r2fit-send:disabled { opacity: .45; cursor: wait; }
.r2fit-note { margin: 7px 6px 0; color: #707872; font-size: .68rem; line-height: 1.35; text-align: center; }
.r2fit-rename-dialog .field { margin-top: 20px; }

.more-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
.more-card {
  min-height: 174px;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: linear-gradient(150deg, rgba(17,22,18,.98), rgba(7,10,8,.98));
  color: var(--text);
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: start;
  gap: 14px;
  text-align: left;
}
button.more-card { cursor: pointer; transition: transform .16s ease, border-color .16s ease, background .16s ease; }
button.more-card:hover { transform: translateY(-2px); border-color: rgba(var(--accent-rgb),.36); }
.more-card.is-featured { border-color: rgba(var(--accent-rgb),.28); background: radial-gradient(circle at 90% 0, rgba(var(--accent-rgb),.12), transparent 40%), linear-gradient(150deg, var(--feature-start), var(--surface-input)); }
.more-card-icon { width: 46px; height: 46px; border-radius: 14px; background: rgba(var(--accent-rgb),.09); color: var(--accent-text); display: grid; place-items: center; font-size: 1.3rem; font-weight: 500; }
.more-card-icon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.more-card-copy { min-width: 0; display: grid; gap: 6px; }
.more-card-copy small { color: var(--accent-text); font-size: .67rem; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.more-card-copy strong { font-size: 1.08rem; }
.more-card-copy > span { color: var(--muted); font-size: .82rem; line-height: 1.45; }
.more-card-arrow { color: var(--accent-text); font-size: 1.18rem; }
.more-card.more-card-roadmap {
  grid-column: 1 / -1;
  min-height: 0;
  padding: 10px 14px;
  border-radius: 14px;
  background: rgba(255,255,255,.018);
  display: flex;
  align-items: center;
  gap: 10px;
  opacity: .66;
}
.more-card-roadmap .more-card-icon { width: 30px; height: 30px; border-radius: 9px; flex: 0 0 auto; font-size: .9rem; }
.more-card-roadmap .more-card-copy { display: flex; align-items: baseline; flex-wrap: wrap; gap: 3px 8px; }
.more-card-roadmap .more-card-copy small { font-size: .58rem; }
.more-card-roadmap .more-card-copy strong { font-size: .82rem; }
.more-card-roadmap .more-card-copy > span { font-size: .68rem; line-height: 1.3; }
.custom-plans-more-card { border-color: rgba(var(--mint-rgb),.25); background: radial-gradient(circle at 95% 0, rgba(var(--mint-rgb),.1), transparent 42%), linear-gradient(150deg, #101815, var(--surface-input)); }
.custom-plans-more-card .more-card-icon { background: rgba(var(--mint-rgb),.09); color: var(--mint-text); }

.custom-plans-intro { position: relative; padding-top: 40px; }
.custom-plans-back { position: absolute; top: 0; left: 0; }
.custom-plan-upload-shell { margin-bottom: 26px; padding: 16px; border: 1px solid rgba(var(--accent-rgb),.22); border-radius: 24px; background: radial-gradient(circle at 85% 0, rgba(var(--accent-rgb),.1), transparent 35%), var(--surface-input); }
.custom-plan-upload { min-height: 210px; padding: 26px; border: 1px dashed rgba(var(--accent-rgb),.42); border-radius: 19px; background: rgba(var(--accent-rgb),.035); display: grid; place-items: center; align-content: center; gap: 7px; color: var(--text); text-align: center; cursor: pointer; }
.custom-plan-upload:hover { border-color: rgba(var(--accent-rgb),.75); background: rgba(var(--accent-rgb),.06); }
.custom-plan-upload input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.custom-plan-upload-icon { width: 50px; height: 50px; margin-bottom: 3px; border-radius: 16px; background: var(--accent); color: var(--accent-ink); display: grid; place-items: center; font-size: 1.5rem; font-weight: 950; }
.custom-plan-upload strong { font-size: 1.13rem; }
.custom-plan-upload > span:not(.custom-plan-upload-icon) { color: var(--accent-text); font-size: .72rem; font-weight: 900; letter-spacing: .06em; }
.custom-plan-upload small { max-width: 580px; color: var(--muted); font-size: .72rem; line-height: 1.45; }
.custom-plan-upload-steps { padding: 14px 6px 1px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.custom-plan-upload-steps span { color: var(--muted); font-size: .69rem; font-weight: 800; text-align: center; }
.custom-plan-upload-steps b { width: 22px; height: 22px; margin-right: 4px; border: 1px solid rgba(var(--accent-rgb),.25); border-radius: 50%; color: var(--accent-text); display: inline-grid; place-items: center; }

.custom-plan-library-head { display: flex; align-items: end; justify-content: space-between; gap: 16px; }
.custom-plan-library-head h2 { margin: 0; }
.custom-plan-library-head > span { color: var(--muted); font-size: .76rem; font-weight: 850; }
.custom-plan-card-grid { margin-bottom: 28px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 310px), 1fr)); gap: 15px; align-items: start; }
.custom-plan-card { min-width: 0; border: 1px solid rgba(255,255,255,.1); border-radius: 22px; background: linear-gradient(155deg, var(--panel-start), var(--page-top) 42%, var(--feature-end)); overflow: hidden; box-shadow: 0 16px 42px rgba(0,0,0,.2); }
.custom-plan-card[open] { grid-column: 1 / -1; border-color: rgba(var(--accent-rgb),.3); }
.custom-plan-hero { padding: 24px; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 24px; align-items: end; }
.custom-plan-card-summary { min-height: 230px; border-bottom: 0; list-style: none; cursor: pointer; }
.custom-plan-card-summary::-webkit-details-marker { display: none; }
.custom-plan-card[open] .custom-plan-card-summary { min-height: 0; border-bottom: 1px solid var(--line); }
.custom-plan-card-summary > div:first-child { min-width: 0; }
.plan-origin { color: var(--mint-text); font-size: .67rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.custom-plan-hero h2 { margin: 7px 0 8px; font-size: clamp(1.65rem, 4vw, 2.4rem); letter-spacing: -.035em; }
.custom-plan-hero p { max-width: 720px; margin: 0; color: var(--muted); font-size: .86rem; line-height: 1.55; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
.custom-plan-card-toggle { width: max-content; margin-top: 16px; padding: 8px 11px; border: 1px solid rgba(var(--accent-rgb),.28); border-radius: 999px; color: var(--accent-text); display: inline-flex; font-size: .64rem; font-weight: 900; letter-spacing: .06em; }
.custom-plan-card-toggle i { display: none; font-style: normal; }
.custom-plan-card[open] .custom-plan-card-toggle b { display: none; }
.custom-plan-card[open] .custom-plan-card-toggle i { display: inline; }
.custom-plan-metrics { display: grid; grid-template-columns: repeat(3, 76px); gap: 7px; }
.custom-plan-metrics span { padding: 12px 8px; border: 1px solid var(--line); border-radius: 15px; background: rgba(255,255,255,.025); display: grid; text-align: center; }
.custom-plan-metrics strong { color: var(--accent-text); font-size: 1.2rem; }
.custom-plan-metrics small { color: var(--muted); font-size: .61rem; font-weight: 800; text-transform: uppercase; }
.custom-plan-card-body { padding-bottom: 1px; }

.custom-plan-levels { margin: 18px 22px; padding: 16px; border: 1px solid rgba(var(--accent-rgb),.22); border-radius: 18px; background: rgba(var(--accent-rgb),.045); display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px 16px; align-items: center; }
.custom-plan-levels > div:first-child { display: grid; gap: 3px; }
.custom-plan-levels small { color: var(--muted); font-size: .64rem; font-weight: 850; text-transform: uppercase; }
.custom-plan-levels strong { font-size: 1.06rem; }
.custom-plan-levels span { color: var(--accent-text); font-size: .74rem; font-weight: 800; }
.custom-plan-levels > p { grid-column: 1 / -1; margin: 0; color: var(--muted); font-size: .76rem; line-height: 1.45; }
.custom-plan-level-buttons { display: flex; gap: 6px; }
.custom-plan-level-buttons button { min-height: 38px; padding: 0 11px; border: 1px solid var(--line); border-radius: 11px; background: #0a0d0b; color: var(--muted); font-size: .69rem; font-weight: 900; cursor: pointer; }
.custom-plan-level-buttons button.is-active { border-color: var(--accent-text); background: var(--accent); color: var(--accent-ink); }

.custom-plan-week-grid { padding: 2px 22px 22px; display: grid; grid-template-columns: repeat(5, minmax(255px, 1fr)); gap: 11px; overflow-x: auto; overscroll-behavior-inline: contain; scroll-snap-type: x proximity; scrollbar-color: #485044 transparent; }
.custom-plan-day { min-width: 0; border: 1px solid var(--line); border-radius: 18px; background: #0b0f0c; overflow: hidden; scroll-snap-align: start; }
.custom-plan-day[open] { border-color: rgba(var(--accent-rgb),.27); }
.custom-plan-day > summary { min-height: 108px; padding: 15px; list-style: none; display: grid; grid-template-columns: auto minmax(0,1fr); gap: 10px; align-items: start; cursor: pointer; }
.custom-plan-day > summary::-webkit-details-marker { display: none; }
.custom-plan-day-index { width: 32px; height: 32px; border-radius: 10px; background: rgba(var(--accent-rgb),.09); color: var(--accent-text); display: grid; place-items: center; font-size: .72rem; font-weight: 950; }
.custom-plan-day > summary > span:nth-child(2) { min-width: 0; display: grid; gap: 3px; }
.custom-plan-day > summary small { color: var(--accent-text); font-size: .62rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.custom-plan-day > summary strong { font-size: .96rem; }
.custom-plan-day > summary em { color: var(--muted); font-size: .67rem; font-style: normal; line-height: 1.3; }
.custom-plan-day-status { grid-column: 1 / -1; color: #8c968f; font-size: .65rem; font-weight: 800; }
.custom-plan-day-body { padding: 0 13px 13px; border-top: 1px solid var(--line); }
.custom-plan-source-note { margin: 12px 2px; color: #a9b2ac; font-size: .68rem; line-height: 1.45; }
.custom-plan-blocks { display: grid; gap: 9px; margin-top: 12px; }
.custom-plan-block { padding: 11px; border-radius: 13px; background: rgba(255,255,255,.025); }
.custom-plan-block > div { margin-bottom: 9px; display: grid; gap: 2px; }
.custom-plan-block > div strong { color: var(--accent-text); font-size: .72rem; }
.custom-plan-block > div span { color: var(--muted); font-size: .62rem; }
.custom-plan-block ol { margin: 0; padding-left: 20px; display: grid; gap: 9px; }
.custom-plan-block li { padding-left: 2px; color: #747e77; }
.custom-plan-block li span { color: var(--text); display: block; font-size: .72rem; font-weight: 780; line-height: 1.32; }
.custom-plan-block li small { color: var(--muted); display: block; font-size: .61rem; line-height: 1.35; }
.custom-plan-start { width: 100%; margin-top: 12px; min-height: 43px; }

.custom-plan-history { margin: 0 22px 16px; padding: 18px; border: 1px solid rgba(var(--accent-rgb),.2); border-radius: 19px; background: linear-gradient(145deg, rgba(var(--accent-rgb),.05), rgba(0,0,0,.16)); }
.custom-plan-history-head { display: flex; align-items: start; justify-content: space-between; gap: 18px; }
.custom-plan-history-head > div { min-width: 0; }
.custom-plan-history-head span { color: var(--accent-text); font-size: .64rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.custom-plan-history-head h3 { margin: 5px 0; font-size: 1.14rem; }
.custom-plan-history-head p { max-width: 660px; margin: 0; color: var(--muted); font-size: .72rem; line-height: 1.5; }
.custom-plan-history-head > strong { flex: 0 0 auto; padding: 8px 10px; border: 1px solid rgba(var(--accent-rgb),.25); border-radius: 11px; background: rgba(var(--accent-rgb),.07); color: var(--accent-text); font-size: .7rem; }
.custom-plan-history-metrics { margin-top: 14px; display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 7px; }
.custom-plan-history-metrics > span { min-width: 0; padding: 11px; border: 1px solid rgba(255,255,255,.07); border-radius: 12px; background: rgba(0,0,0,.18); display: grid; gap: 4px; }
.custom-plan-history-metrics small { color: var(--muted); font-size: .59rem; font-weight: 800; text-transform: uppercase; }
.custom-plan-history-metrics strong { overflow: hidden; font-size: .88rem; text-overflow: ellipsis; white-space: nowrap; }
.custom-plan-signals { margin-top: 14px; border-top: 1px solid rgba(255,255,255,.07); }
.custom-plan-history-subhead { min-height: 47px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.custom-plan-history-subhead strong { font-size: .76rem; }
.custom-plan-history-subhead span { color: var(--muted); font-size: .62rem; }
.custom-plan-signal { min-height: 59px; padding: 8px 0; border-top: 1px solid rgba(255,255,255,.055); display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 12px; }
.custom-plan-signal > span { min-width: 0; display: grid; gap: 4px; }
.custom-plan-signal > span strong { overflow: hidden; font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }
.custom-plan-signal > span small { color: var(--muted); font-size: .62rem; }
.custom-plan-history-empty { margin: 14px 0 0; padding: 13px; border: 1px solid rgba(255,255,255,.06); border-radius: 12px; background: rgba(0,0,0,.16); color: var(--muted); font-size: .69rem; line-height: 1.5; }
.custom-plan-session-log { margin-top: 14px; border-top: 1px solid rgba(255,255,255,.08); }
.custom-plan-session-log > summary { min-height: 50px; list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 12px; cursor: pointer; }
.custom-plan-session-log > summary::-webkit-details-marker { display: none; }
.custom-plan-session-log > summary span { font-size: .76rem; font-weight: 850; }
.custom-plan-session-log > summary em { color: var(--muted); font-size: .63rem; font-style: normal; }
.custom-plan-session-list { max-height: 420px; overflow-y: auto; display: grid; gap: 7px; }
.custom-plan-last-trained { margin: 12px 0 0; color: var(--muted); font-size: .63rem; }
.hiit-workout-tools { margin-top: 18px; }
.hiit-workout-tools .notes-field { padding: 14px; }
.cardio-session-panel { border-color: rgba(var(--sky-rgb),.28); }
.cardio-status { padding: 7px 10px; border: 1px solid rgba(var(--sky-rgb),.28); border-radius: 999px; color: var(--sky-text); font-size: .66rem; font-weight: 900; white-space: nowrap; }
.cardio-status.is-complete { border-color: rgba(var(--accent-rgb),.4); color: var(--accent-text); background: rgba(var(--accent-rgb),.08); }
.cardio-guidance { margin: 15px 0; padding: 12px 14px; border: 1px solid rgba(var(--sky-rgb),.2); border-radius: 14px; background: rgba(var(--sky-rgb),.055); display: grid; gap: 4px; }
.cardio-guidance strong { font-size: .75rem; }
.cardio-guidance span { color: var(--muted); font-size: .69rem; line-height: 1.45; }
.cardio-metric-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.cardio-metric-field { min-width: 0; padding: 11px; border: 1px solid var(--line); border-radius: 13px; background: var(--surface-2); display: grid; gap: 7px; }
.cardio-metric-field > span:first-child { color: var(--muted); font-size: .65rem; font-weight: 800; }
.cardio-input-unit { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 6px; }
.cardio-input-unit input { width: 100%; min-width: 0; height: 42px; padding: 0 9px; border: 1px solid rgba(255,255,255,.09); border-radius: 9px; background: var(--panel-end); color: var(--text); font-size: .93rem; font-weight: 800; }
.cardio-input-unit small { color: var(--muted); font-size: .62rem; }
.cardio-derived-metrics { margin-top: 10px; min-height: 42px; padding: 10px 12px; border-radius: 12px; background: rgba(var(--sky-rgb),.055); color: var(--muted); display: flex; align-items: center; gap: 18px; font-size: .66rem; }
.cardio-derived-metrics > span { display: grid; gap: 2px; }
.cardio-derived-metrics small { color: var(--muted); font-size: .6rem; }
.cardio-derived-metrics strong { color: #a9dcff; font-size: .76rem; }
.cardio-complete-button { width: 100%; margin-top: 14px; }
.cardio-complete-button.is-complete { color: var(--accent-text); border: 1px solid rgba(var(--accent-rgb),.38); background: rgba(var(--accent-rgb),.08); }
.cardio-workout-tools { margin-top: 18px; }
.cardio-workout-tools .notes-field { padding: 14px; }
.cardio-history-list { margin-top: 14px; display: grid; gap: 7px; }
.cardio-history-list > div { padding: 10px 12px; border: 1px solid var(--line); border-radius: 11px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.cardio-history-list span { display: grid; gap: 2px; }
.cardio-history-list strong { font-size: .73rem; }
.cardio-history-list small, .cardio-history-list em { color: var(--muted); font-size: .64rem; font-style: normal; }
.cardio-history-list em { text-align: right; }

@media (max-width: 520px) {
  .cardio-metric-grid { grid-template-columns: 1fr; }
  .cardio-derived-metrics { align-items: flex-start; flex-direction: column; gap: 7px; }
  .cardio-history-list > div { align-items: flex-start; flex-direction: column; }
  .cardio-history-list em { text-align: left; }
}

.custom-plan-reference { margin: 0 22px 16px; border: 1px solid var(--line); border-radius: 16px; background: rgba(255,255,255,.02); overflow: hidden; }
.custom-plan-reference > summary { min-height: 50px; padding: 0 15px; list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--text); font-size: .77rem; font-weight: 850; cursor: pointer; }
.custom-plan-reference > summary::-webkit-details-marker { display: none; }
.custom-plan-reference > summary span { color: var(--accent-text); }
.custom-plan-cardio-grid { padding: 0 13px 13px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.custom-plan-cardio-grid div { padding: 12px; border-radius: 12px; background: var(--panel-end); display: grid; gap: 4px; }
.custom-plan-cardio-grid strong { color: var(--accent-text); font-size: .73rem; }
.custom-plan-cardio-grid span { font-size: .76rem; font-weight: 850; }
.custom-plan-cardio-grid small { color: var(--muted); font-size: .63rem; line-height: 1.35; }
.custom-plan-reference > p { margin: 0; padding: 0 14px 14px; color: var(--muted); font-size: .67rem; }
.custom-plan-nutrition-hold { margin: 0 22px 22px; padding: 13px 15px; border: 1px solid rgba(var(--mint-rgb),.18); border-radius: 15px; background: rgba(var(--mint-rgb),.035); }
.custom-plan-nutrition-hold span { color: var(--mint-text); font-size: .65rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.custom-plan-nutrition-hold p { margin: 5px 0 0; color: var(--muted); font-size: .7rem; line-height: 1.45; }

/* Peptide Tracker */
.protocols-intro { margin-bottom: 16px; }
.protocols-intro .text-button { margin-bottom: 10px; }
.protocol-toolbar { margin-bottom: 16px; padding: 17px; border: 1px solid rgba(var(--accent-rgb),.22); border-radius: 19px; background: linear-gradient(145deg, rgba(var(--accent-rgb),.055), rgba(0,0,0,.18)); display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.protocol-toolbar > div { min-width: 0; display: grid; gap: 4px; }
.protocol-toolbar strong { font-size: .86rem; }
.protocol-toolbar span { color: var(--muted); font-size: .72rem; line-height: 1.45; }
.protocol-toolbar .primary-button { flex: 0 0 auto; }
.peptide-today-reminder { width: 100%; min-height: 72px; margin: 0 0 16px; padding: 14px 17px; border: 1px solid rgba(var(--accent-rgb),.3); border-radius: 18px; background: linear-gradient(135deg, rgba(var(--accent-rgb),.11), rgba(13,18,14,.98)); color: var(--text); display: flex; align-items: center; justify-content: space-between; gap: 14px; text-align: left; cursor: pointer; }
.peptide-today-reminder span { min-width: 0; display: grid; gap: 4px; }
.peptide-today-reminder small { color: var(--accent-text); font-size: .62rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.peptide-today-reminder strong { font-size: .8rem; line-height: 1.4; }
.peptide-today-reminder b { flex: 0 0 auto; color: var(--accent-text); font-size: .65rem; }
.protocol-reminder-banner { margin-bottom: 14px; padding: 15px 17px; border: 1px solid rgba(255,200,117,.28); border-radius: 17px; background: rgba(255,200,117,.055); }
.protocol-reminder-banner > div { display: grid; gap: 4px; }
.protocol-reminder-banner small { color: #ffc875; font-size: .61rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.protocol-reminder-banner strong { font-size: .8rem; }
.protocol-reminder-banner span { color: var(--muted); font-size: .68rem; line-height: 1.45; }
.protocol-calendar { margin-bottom: 16px; padding: 17px; border: 1px solid var(--line); border-radius: 19px; background: linear-gradient(145deg, var(--panel-start), var(--surface-input)); }
.protocol-calendar > header { margin-bottom: 13px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; }
.protocol-calendar > header h2 { margin-top: 3px; font-size: 1.05rem; }
.protocol-calendar > header > div:last-child { display: flex; align-items: center; gap: 10px; }
.protocol-calendar-weekdays, .protocol-calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px; }
.protocol-calendar-grid { grid-template-rows: repeat(6, 84px); }
.protocol-calendar-weekdays { margin-bottom: 5px; }
.protocol-calendar-weekdays span { color: var(--muted); font-size: .56rem; font-weight: 850; text-align: center; text-transform: uppercase; }
.protocol-calendar-day { min-width: 0; min-height: 0; padding: 7px; border: 1px solid rgba(255,255,255,.055); border-radius: 10px; background: rgba(0,0,0,.16); color: inherit; font: inherit; text-align: left; appearance: none; display: flex; flex-direction: column; gap: 4px; overflow: hidden; cursor: pointer; }
.protocol-calendar-day.is-empty { border-color: transparent; background: transparent; }
.protocol-calendar-day.is-today { border-color: rgba(var(--accent-rgb),.42); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb),.08); }
.protocol-calendar-day:not(.is-empty):hover { border-color: rgba(var(--accent-rgb),.28); background: rgba(var(--accent-rgb),.035); }
.protocol-calendar-day:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.protocol-calendar-day > strong { font-size: .67rem; }
.protocol-calendar-day > span { min-width: 0; padding: 4px 5px; border-radius: 6px; background: rgba(255,255,255,.05); overflow: hidden; color: var(--text); display: grid; gap: 1px; font-size: .52rem; font-weight: 800; }
.protocol-calendar-day > span b, .protocol-calendar-day > span small { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.protocol-calendar-day > span b { font: inherit; }
.protocol-calendar-day > span small { color: var(--muted); font-size: .47rem; font-weight: 700; }
.protocol-calendar-day > span.is-due { background: rgba(255,200,117,.13); color: #ffd89d; }
.protocol-calendar-day > span.is-unlogged, .protocol-calendar-day > span.is-missed { background: rgba(255,103,103,.1); color: #ffb5b5; }
.protocol-calendar-day > span.is-logged { background: rgba(var(--accent-rgb),.1); color: var(--accent-text); }
.protocol-calendar-day > span.protocol-calendar-more { background: transparent; color: var(--muted); }
.protocol-calendar > .subtle { margin: 13px 0 0; font-size: .64rem; }
.protocol-weekdays { min-width: 0; margin: 0; padding: 10px; border: 1px solid var(--line); border-radius: 13px; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px; }
.protocol-weekdays legend { padding: 0 5px; color: var(--muted); font-size: .68rem; }
.protocol-weekdays label { min-width: 0; display: grid; place-items: center; gap: 4px; color: var(--muted); font-size: .58rem; cursor: pointer; }
.protocol-weekdays input { width: 18px; height: 18px; accent-color: var(--accent-text); }
.protocol-day-builder { width: min(620px, calc(100vw - 32px)); }
.protocol-day-builder-list { margin-top: 16px; display: grid; gap: 8px; }
.protocol-day-builder-row { min-height: 66px; padding: 9px 10px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.025); display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 10px; }
.protocol-day-builder-row > label { min-width: 0; display: flex; align-items: center; gap: 11px; cursor: pointer; }
.protocol-day-builder-row input { flex: 0 0 auto; width: 21px; height: 21px; accent-color: var(--accent-text); }
.protocol-day-builder-row label span { min-width: 0; display: grid; gap: 3px; }
.protocol-day-builder-row label strong { overflow: hidden; font-size: .78rem; text-overflow: ellipsis; white-space: nowrap; }
.protocol-day-builder-row label small { color: var(--muted); font-size: .62rem; }
.protocol-day-builder-row .primary-button { min-height: 38px; padding: 8px 12px; font-size: .63rem; }
.protocol-day-status { min-width: 62px; padding: 8px; border-radius: 9px; color: var(--accent-text); background: rgba(var(--accent-rgb),.09); font-size: .61rem; font-weight: 900; text-align: center; }
.protocol-day-status.is-missed { color: #ffc875; background: rgba(255,200,117,.09); }
.protocol-day-builder-empty { min-height: 94px; padding: 18px; border: 1px dashed var(--line); border-radius: 13px; display: grid; place-content: center; gap: 4px; text-align: center; }
.protocol-day-builder-empty strong { font-size: .8rem; }
.protocol-day-builder-empty span { color: var(--muted); font-size: .66rem; }
.protocol-list { display: grid; gap: 11px; }
.protocol-card { border: 1px solid var(--line); border-radius: 19px; background: linear-gradient(145deg, var(--panel-start), var(--surface-input)); overflow: hidden; }
.protocol-card[open] { border-color: rgba(var(--accent-rgb),.3); }
.protocol-card > summary { min-height: 88px; padding: 16px 18px; list-style: none; display: grid; grid-template-columns: minmax(0,1fr) auto 22px; align-items: center; gap: 16px; cursor: pointer; overflow-anchor: auto; }
.protocol-card > summary::-webkit-details-marker { display: none; }
.protocol-card > summary::after { content: "+"; grid-column: 3; width: 22px; color: var(--accent-text); font-size: 1.3rem; font-weight: 900; text-align: center; }
.protocol-card[open] > summary::after { content: "−"; }
.protocol-summary-main { min-width: 0; display: grid; gap: 3px; }
.protocol-summary-main small { color: var(--accent-text); font-size: .62rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.protocol-summary-main strong { overflow: hidden; font-size: 1rem; text-overflow: ellipsis; white-space: nowrap; }
.protocol-summary-main em { color: var(--muted); font-size: .66rem; font-style: normal; }
.protocol-summary-dose { display: grid; gap: 2px; text-align: right; }
.protocol-summary-dose strong { font-size: .88rem; }
.protocol-summary-dose small { color: var(--muted); font-size: .6rem; text-transform: uppercase; }
.protocol-card-body { padding: 17px; border-top: 1px solid var(--line); overflow-anchor: none; }
.protocol-details { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.protocol-detail { min-width: 0; padding: 12px; border: 1px solid rgba(255,255,255,.065); border-radius: 12px; background: rgba(0,0,0,.16); display: grid; gap: 5px; }
.protocol-detail.is-wide { grid-column: 1 / -1; }
.protocol-detail small { color: var(--muted); font-size: .61rem; }
.protocol-detail strong { overflow-wrap: anywhere; font-size: .74rem; line-height: 1.45; }
.protocol-actions { margin-top: 11px; display: grid; grid-template-columns: 1fr auto auto; gap: 7px; }
.protocol-actions button { min-height: 42px; }
.protocol-entry-head { min-height: 54px; margin-top: 14px; border-top: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; }
.protocol-entry-head strong { font-size: .78rem; }
.protocol-entry-head span { min-width: 28px; height: 28px; border-radius: 9px; background: rgba(var(--accent-rgb),.08); color: var(--accent-text); display: grid; place-items: center; font-size: .7rem; font-weight: 900; }
.protocol-entry-list { display: grid; gap: 7px; }
.protocol-entry { padding: 12px; border: 1px solid rgba(255,255,255,.07); border-radius: 13px; background: rgba(0,0,0,.17); display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 9px 14px; }
.protocol-entry.is-missed { border-color: rgba(255,179,71,.24); }
.protocol-entry-status, .protocol-entry-dose { display: grid; gap: 4px; }
.protocol-entry-status span { width: max-content; padding: 4px 7px; border-radius: 7px; background: rgba(var(--accent-rgb),.09); color: var(--accent-text); font-size: .58rem; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.protocol-entry.is-missed .protocol-entry-status span { background: rgba(255,179,71,.1); color: #ffc875; }
.protocol-entry-status strong, .protocol-entry-dose strong { font-size: .74rem; }
.protocol-entry-dose { text-align: right; }
.protocol-entry-dose small { color: var(--muted); font-size: .59rem; }
.protocol-entry-source { grid-column: 1 / -1; display: flex; gap: 18px; }
.protocol-entry-source span { min-width: 0; display: grid; gap: 3px; }
.protocol-entry-source small { color: var(--muted); font-size: .58rem; }
.protocol-entry-source strong { overflow-wrap: anywhere; font-size: .68rem; }
.protocol-entry > p { grid-column: 1 / -1; margin: 0; padding-top: 9px; border-top: 1px solid rgba(255,255,255,.055); color: var(--text); font-size: .7rem; line-height: 1.45; }
.protocol-entry > p small { display: block; margin-bottom: 4px; color: var(--muted); font-size: .58rem; }
.protocol-entry-actions { grid-column: 1 / -1; display: flex; justify-content: flex-end; gap: 15px; }
.protocol-entry-actions button { font-size: .67rem; }
.protocol-empty-entries { padding: 15px; border: 1px dashed var(--line); border-radius: 12px; color: var(--muted); font-size: .72rem; text-align: center; }
.protocol-empty .primary-button { width: max-content; margin: 14px auto 0; }
.protocol-dialog-grid { margin-top: 16px; display: grid; grid-template-columns: 1fr 1fr; gap: 11px; }
.protocol-dialog-grid .is-wide { grid-column: 1 / -1; }
.protocol-dialog textarea { min-height: 92px; padding: 12px; resize: vertical; }
.protocol-missed { min-height: 58px; padding: 11px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.025); display: flex; align-items: center; gap: 10px; cursor: pointer; }
.protocol-missed input { width: 20px; height: 20px; accent-color: var(--accent-text); }
.protocol-missed span { display: grid; gap: 3px; }
.protocol-missed strong { font-size: .77rem; }
.protocol-missed small { color: var(--muted); font-size: .62rem; }
.peptide-calculator-result { grid-column: 1 / -1; height: 126px; padding: 15px; border: 1px solid rgba(255,255,255,.09); border-radius: 14px; background: rgba(0,0,0,.2); display: grid; align-content: start; gap: 5px; overflow-y: auto; overscroll-behavior: contain; }
.peptide-calculator-result small { color: var(--accent-text); font-size: .62rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.peptide-calculator-result strong { font-size: 1.35rem; }
.peptide-calculator-result span { color: var(--muted); font-size: .68rem; line-height: 1.45; }
.peptide-calculator-result code { width: max-content; max-width: 100%; padding: 5px 7px; border-radius: 7px; background: rgba(var(--accent-rgb),.07); color: var(--text); font: 700 .62rem/1.35 ui-monospace, SFMono-Regular, Menlo, monospace; overflow-wrap: anywhere; }
.peptide-calculator-result.is-warning { border-color: rgba(255,200,117,.26); }
.peptide-calculator-result.is-danger { border-color: rgba(255,103,103,.34); background: rgba(255,70,70,.055); }
.peptide-calculator-result.is-danger strong { color: #ff9b9b; font-size: .83rem; }
.peptide-calculator-result.is-empty strong, .peptide-calculator-result.is-warning strong { font-size: .8rem; }
.peptide-calculator-warning { padding: 13px; border-left: 3px solid #ffc875; border-radius: 10px; background: rgba(255,200,117,.065); display: grid; gap: 4px; }
.peptide-calculator-warning strong { font-size: .73rem; }
.peptide-calculator-warning span { color: var(--muted); font-size: .65rem; line-height: 1.45; }
.peptide-saved-conversion span { color: var(--muted); font-size: .65rem; }
.protocol-expiration-last { order: 99; }
.protocol-expiration-field { order: 99; }

/* Private body profile and journey context */
.body-context-card { border-color: rgba(var(--mint-rgb),.22); background: radial-gradient(circle at 88% 0, rgba(var(--mint-rgb),.09), transparent 34%), linear-gradient(145deg, #101612, var(--surface-input)); }
.body-context-card.is-empty { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.body-context-card.is-empty h2 { margin: 5px 0; }
.body-context-card.is-empty p { margin: 0; color: var(--muted); font-size: .75rem; }
.body-context-card.is-empty .primary-button { flex: 0 0 auto; }
.body-context-head { display: flex; align-items: start; justify-content: space-between; gap: 16px; }
.body-context-head h2 { margin: 5px 0 0; }
.body-context-metrics { margin-top: 15px; display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 8px; }
.body-context-metrics > span, .body-journey-row > span { min-width: 0; padding: 11px; border: 1px solid rgba(255,255,255,.07); border-radius: 12px; background: rgba(0,0,0,.18); display: grid; gap: 4px; }
.body-context-metrics small, .body-journey-row small, .weight-performance-context small { color: var(--muted); font-size: .59rem; }
.body-context-metrics strong { overflow-wrap: anywhere; font-size: .78rem; }
.body-journey-row { margin-top: 8px; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 8px; }
.body-journey-row strong { font-size: .82rem; }
.weight-performance-context { margin-top: 12px; padding: 14px; border: 1px solid rgba(var(--accent-rgb),.18); border-radius: 14px; background: rgba(var(--accent-rgb),.035); }
.weight-performance-context > div:first-child { display: grid; gap: 4px; }
.weight-performance-context > div:first-child strong { font-size: .86rem; }
.weight-performance-context > div:nth-child(2) { margin-top: 10px; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 7px; }
.weight-performance-context > div:nth-child(2) span { display: grid; gap: 3px; }
.weight-performance-context > div:nth-child(2) strong { font-size: .76rem; }
.weight-performance-context p, .body-context-disclaimer { margin: 11px 0 0; color: var(--muted); font-size: .65rem; line-height: 1.5; }
.body-context-empty { margin-top: 12px; padding: 13px; border: 1px dashed rgba(255,255,255,.09); border-radius: 12px; color: var(--muted); font-size: .7rem; line-height: 1.45; }
.body-profile-grid { margin-top: 16px; display: grid; grid-template-columns: 1fr 1fr; gap: 11px; }
.body-profile-grid .is-wide { grid-column: 1 / -1; }
.body-profile-grid .field small { color: var(--muted); font-size: .62rem; line-height: 1.4; }
.profile-ai-consent { min-height: 70px; padding: 12px; border: 1px solid rgba(var(--mint-rgb),.2); border-radius: 14px; background: rgba(var(--mint-rgb),.04); display: flex; align-items: center; gap: 11px; cursor: pointer; }
.profile-ai-consent input { flex: 0 0 auto; width: 21px; height: 21px; accent-color: var(--accent-text); }
.profile-ai-consent span { display: grid; gap: 4px; }
.profile-ai-consent strong { font-size: .76rem; }
.profile-ai-consent small { color: var(--muted); font-size: .62rem; line-height: 1.4; }

@media (max-width: 759px) {
  .r2fit-shell { height: calc(100dvh - 164px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); min-height: 460px; }
  .r2fit-hero { gap: 12px; padding-bottom: 13px; }
  .r2fit-orb { width: 52px; height: 52px; border-radius: 17px; }
  .r2fit-title-row h1 { font-size: 2.2rem; }
  .r2fit-hero .subtle { display: none; }
  .r2fit-chat { padding: 13px; border-radius: 20px; }
  .r2fit-welcome { padding: 18px 2px; }
  .r2fit-welcome > p { font-size: .8rem; }
  .r2fit-message { max-width: 90%; }
  .r2fit-message:has(.r2fit-workout-stack) { max-width: 100%; }
  .r2fit-message p { padding: 11px 13px; font-size: .9rem; }
  .r2fit-workout-exercise { align-items: start; flex-direction: column; }
  .r2fit-workout-edit { align-self: flex-end; }
  .r2fit-mode-row { justify-content: stretch; }
  .r2fit-mode { width: 100%; flex: 1; }
  .r2fit-error { align-items: stretch; flex-direction: column; }
  .r2fit-error .secondary-button { width: 100%; }
  .more-grid { grid-template-columns: 1fr; }
  .more-card { min-height: 138px; padding: 17px; border-radius: 19px; }
  .custom-plan-upload-shell { padding: 11px; border-radius: 20px; }
  .custom-plan-upload { min-height: 190px; padding: 20px 14px; }
  .custom-plan-upload-steps { grid-template-columns: 1fr 1fr; gap: 10px 4px; }
  .custom-plan-hero { padding: 19px; grid-template-columns: 1fr; }
  .custom-plan-metrics { grid-template-columns: repeat(3, 1fr); }
  .custom-plan-levels { margin: 14px; grid-template-columns: 1fr; }
  .custom-plan-level-buttons { width: 100%; }
  .custom-plan-level-buttons button { flex: 1; }
  .custom-plan-week-grid { padding: 2px 14px 16px; grid-template-columns: repeat(5, minmax(82vw, 1fr)); }
  .custom-plan-history, .custom-plan-reference, .custom-plan-nutrition-hold { margin-inline: 14px; }
  .custom-plan-history { padding: 14px; }
  .custom-plan-history-head { display: grid; }
  .custom-plan-history-head > strong { width: max-content; }
  .custom-plan-history-metrics { grid-template-columns: 1fr 1fr; }
  .custom-plan-history-subhead { align-items: start; flex-direction: column; justify-content: center; gap: 3px; }
  .custom-plan-signal { grid-template-columns: minmax(0,1fr); }
  .custom-plan-signal .progress-signal { width: 100%; text-align: left; }
  .custom-plan-cardio-grid { grid-template-columns: 1fr; }
  .protocol-toolbar { align-items: stretch; flex-direction: column; }
  .protocol-toolbar .primary-button { width: 100%; }
  .body-context-metrics { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 520px) {
  .protocol-calendar { padding: 12px 8px; }
  .protocol-calendar > header { padding-inline: 4px; }
  .protocol-calendar > header > div:last-child { gap: 6px; }
  .protocol-calendar > header .text-button { font-size: .58rem; }
  .protocol-calendar-weekdays, .protocol-calendar-grid { gap: 3px; }
  .protocol-calendar-grid { grid-template-rows: repeat(6, 68px); }
  .protocol-calendar-day { min-height: 0; padding: 4px 3px; border-radius: 7px; }
  .protocol-calendar-day > span { padding: 3px; font-size: .46rem; }
  .protocol-calendar-day > span small { font-size: .42rem; }
  .peptide-today-reminder { align-items: flex-start; flex-direction: column; }
  .protocol-card > summary { grid-template-columns: minmax(0,1fr) 22px; padding: 14px; }
  .protocol-card > summary::after { grid-column: 2; grid-row: 1; margin-left: 8px; }
  .protocol-summary-dose { grid-column: 1 / -1; text-align: left; }
  .protocol-details, .protocol-dialog-grid { grid-template-columns: 1fr; }
  .protocol-detail.is-wide, .protocol-dialog-grid .is-wide { grid-column: 1; }
  .protocol-actions { grid-template-columns: 1fr 1fr; }
  .protocol-actions .primary-button { grid-column: 1 / -1; }
  .body-context-card.is-empty { align-items: stretch; flex-direction: column; }
  .body-context-card.is-empty .primary-button { width: 100%; }
  .body-context-metrics, .body-journey-row, .weight-performance-context > div:nth-child(2), .body-profile-grid { grid-template-columns: 1fr; }
  .body-profile-grid .is-wide { grid-column: 1; }
}

@media (max-height: 680px) and (max-width: 759px) {
  .r2fit-shell { height: calc(100dvh - 150px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); min-height: 400px; }
  .r2fit-hero { padding-bottom: 8px; }
  .r2fit-orb { width: 44px; height: 44px; border-radius: 14px; font-size: .9rem; }
  .r2fit-hero .eyebrow { display: none; }
  .r2fit-title-row h1 { font-size: 1.8rem; }
  .r2fit-note { display: none; }
}

/* TS1024Fit interaction hooks */
.boot-state { min-height: 60dvh; display: grid; place-items: center; align-content: center; gap: 14px; color: var(--muted); font-weight: 750; }
.boot-mark { width: 54px; height: 50px; display: grid; place-items: center; clip-path: polygon(27% 0,100% 0,72% 48%,100% 100%,49% 100%,31% 68%,15% 100%,0 100%); background: var(--accent); color: var(--accent-ink); font-weight: 950; }
.sync-status { min-height: 30px; padding: 0 9px; border: 1px solid rgba(255,255,255,.09); border-radius: 999px; background: rgba(13,17,15,.84); color: var(--muted); display: inline-flex; align-items: center; gap: 7px; font-size: .72rem; font-weight: 800; white-space: nowrap; }
.sync-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 4px rgba(var(--accent-rgb),.08); }
.sync-status[data-state="saving"] .sync-dot { background: var(--amber); animation: sync-pulse 1s ease-in-out infinite; }
.sync-status[data-state="offline"] { border-color: rgba(255,107,87,.2); color: #ffc0b7; }
.sync-status[data-state="offline"] .sync-dot { background: var(--danger); box-shadow: 0 0 0 4px rgba(255,107,87,.08); }
.password-input { position: relative; }
.password-input input { padding-right: 70px; }
.password-input button { position: absolute; right: 5px; top: 5px; min-width: 58px; min-height: 44px; border: 0; border-radius: 10px; background: transparent; color: var(--accent-text); font-size: .78rem; font-weight: 850; cursor: pointer; }
.workout-track { flex: 1; display: flex; align-items: center; gap: 12px; }
.workout-head-actions { flex: 0 0 auto; display: flex; align-items: center; gap: 10px; }
.workout-head-actions .text-button { font-size: .75rem; }
.workout-head-actions .text-button:disabled { opacity: .35; cursor: not-allowed; }
.workout-end { flex: 0 0 auto; color: #ffafa3; }
.active-workout-order-dialog { width: min(620px, 100%); }
.active-workout-order-list { margin: 18px 0 0; padding: 0; display: grid; gap: 8px; list-style: none; }
.active-workout-order-item { min-width: 0; padding: 10px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface-2); display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; align-items: center; gap: 10px; }
.active-workout-order-item.is-current { border-color: rgba(var(--accent-rgb),.4); background: rgba(var(--accent-rgb),.07); }
.active-workout-order-number { width: 30px; height: 30px; border-radius: 9px; background: rgba(255,255,255,.06); color: var(--muted); display: grid; place-items: center; font-size: .72rem; font-weight: 900; }
.active-workout-order-item.is-current .active-workout-order-number { background: var(--accent); color: var(--accent-ink); }
.active-workout-order-copy { min-width: 0; display: grid; gap: 3px; }
.active-workout-order-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .82rem; }
.active-workout-order-copy small { color: var(--muted); font-size: .67rem; }
.active-workout-order-item.is-current .active-workout-order-copy small { color: var(--accent-text); }
.active-workout-order-controls { display: grid; grid-template-columns: 38px 38px minmax(76px, auto); gap: 5px; }
.active-workout-order-controls button { min-width: 0; min-height: 38px; padding: 0 8px; }
.active-workout-order-controls button:disabled { opacity: .32; cursor: not-allowed; }
.active-workout-jump { font-size: .62rem; }
.active-workout-order-actions { grid-template-columns: 1fr; }
.workout-unit-row { margin: -2px 0 16px; padding: 10px 12px; border: 1px solid rgba(255,255,255,.08); border-radius: 14px; background: rgba(255,255,255,.025); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.workout-unit-row > span { min-width: 0; display: grid; gap: 2px; }
.workout-unit-row strong { font-size: .8rem; }
.workout-unit-row small { color: var(--muted); font-size: .68rem; line-height: 1.35; }
.workout-unit-toggle { flex: 0 0 auto; padding: 3px; border: 1px solid rgba(255,255,255,.1); border-radius: 11px; background: var(--surface-input); display: grid; grid-template-columns: 1fr 1fr; gap: 2px; }
.workout-unit-toggle button { min-width: 48px; height: 34px; padding: 0 10px; border: 0; border-radius: 8px; background: transparent; color: var(--muted); font: inherit; font-size: .72rem; font-weight: 900; cursor: pointer; }
.workout-unit-toggle button.is-active { background: var(--accent); color: var(--accent-ink); }
.exercise-secondary-actions { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.exercise-actions { grid-template-columns: 1fr; }
.exercise-actions .primary-button { grid-row: 1; }
.exercise-secondary-actions { grid-row: 2; }
.exercise-actions button:disabled { opacity: .35; cursor: not-allowed; }
.set-table tbody tr.is-complete { background: var(--lime-wash); }
.set-table tbody tr.is-complete input { border-color: rgba(var(--accent-rgb),.18); background: rgba(var(--accent-rgb),.06); color: var(--muted); }
.resume-workout { position: sticky; z-index: 11; bottom: calc(var(--nav-height) + 22px + env(safe-area-inset-bottom)); width: 100%; min-height: 66px; margin-top: 24px; padding: 11px 14px; border: 1px solid rgba(var(--accent-rgb),.35); border-radius: 17px; background: rgba(15,22,16,.96); color: var(--text); box-shadow: 0 16px 46px rgba(0,0,0,.42); backdrop-filter: blur(16px); display: flex; align-items: center; justify-content: space-between; gap: 14px; text-align: left; cursor: pointer; }
.resume-workout span:first-child { display: grid; gap: 3px; }
.resume-workout small { color: var(--accent-text); font-weight: 850; text-transform: uppercase; letter-spacing: .08em; }
.resume-workout span:last-child { color: var(--muted); font-size: .78rem; white-space: nowrap; }
.account-sheet h2, .account-sheet p { margin-bottom: 4px; }
.account-sheet-header { align-items: start; }
.account-sheet-header .icon-button { flex: 0 0 auto; }
.account-row { align-items: start; }
.account-row strong { max-width: 64%; color: var(--accent-text); font-size: .82rem; text-align: right; }
.account-wide { width: 100%; margin-top: 10px; }
.finish-actions { display: grid; gap: 10px; margin-top: 22px; }
.finish-actions .danger-text { color: #ffafa3; justify-self: center; }
.workout-feedback { margin: 18px 0 0; padding: 14px; border: 1px solid rgba(var(--accent-rgb),.16); border-radius: 15px; background: rgba(var(--accent-rgb),.035); }
.workout-feedback legend { padding: 0 6px; font-size: .78rem; font-weight: 850; }
.workout-feedback > div { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 7px; }
.workout-feedback > div label { position: relative; cursor: pointer; }
.workout-feedback > div input { position: absolute; opacity: 0; pointer-events: none; }
.workout-feedback > div span { min-height: 40px; padding: 8px 5px; border: 1px solid var(--line); border-radius: 10px; color: var(--muted); display: grid; place-items: center; font-size: .68rem; font-weight: 850; text-align: center; }
.workout-feedback > div input:checked + span { border-color: rgba(var(--accent-rgb),.7); background: rgba(var(--accent-rgb),.14); color: var(--accent-text); }
.workout-feedback .field { margin-top: 12px; }
.workout-feedback textarea { min-height: 72px; resize: vertical; }
.danger-text { color: #ffafa3; }
.dialog-open { overflow: hidden; }
.dialog-backdrop { padding-top: max(16px, env(safe-area-inset-top)); padding-right: max(16px, env(safe-area-inset-right)); padding-bottom: max(16px, env(safe-area-inset-bottom)); padding-left: max(16px, env(safe-area-inset-left)); backdrop-filter: blur(7px); }
.timer-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.builder-actions { display: grid; grid-template-columns: 1fr 1.2fr; gap: 9px; }
.builder-actions button { width: 100%; }
.saved-routines-section { margin-top: 24px; }
.saved-routines-disclosure { border: 1px solid rgba(var(--accent-rgb),.2); border-radius: 15px; background: rgba(12,17,13,.78); overflow: hidden; }
.saved-routines-disclosure > summary small { color: var(--accent-text); font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.saved-routines { padding: 8px; display: grid; gap: 6px; }
.saved-routine-row { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: stretch; gap: 6px; }
.saved-routine { width: 100%; min-height: 48px; padding: 8px 11px; border: 1px solid rgba(var(--accent-rgb),.16); border-radius: 11px; background: rgba(0,0,0,.2); display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--text); text-align: left; cursor: pointer; }
.saved-routine span:first-child { display: grid; gap: 5px; }
.saved-routine strong { font-size: .73rem; }
.saved-routine small { color: var(--muted); font-size: .64rem; }
.saved-routine span:last-child { color: var(--accent-text); font-size: .64rem; font-weight: 900; white-space: nowrap; }
.saved-routine-actions { display: flex; gap: 5px; }
.saved-routine-actions button { min-height: 48px; padding: 0 10px; border-radius: 10px; font-size: .6rem; }
.exercise-request { padding: 20px; border: 1px dashed rgba(var(--accent-rgb),.22); border-radius: 20px; background: rgba(var(--accent-rgb),.035); }
.exercise-request h2 { margin-bottom: 8px; }

@media (max-width: 680px) {
  .library-intro { align-items: stretch; flex-direction: column; }
  .library-intro .secondary-button { width: 100%; }
  .custom-exercise-cta { align-items: stretch; flex-direction: column; }
  .custom-exercise-grid { grid-template-columns: 1fr; }
  .custom-exercise-grid .is-wide { grid-column: auto; }
}
.status-pill { display: inline-flex; min-height: 30px; margin-top: 4px; padding: 0 10px; border-radius: 999px; background: rgba(var(--accent-rgb),.09); color: var(--accent-text); align-items: center; font-size: .72rem; font-weight: 850; }

/* Living product guide */
.learn-more-card { border-color: rgba(var(--accent-rgb),.34); background: radial-gradient(circle at 90% 0, rgba(var(--accent-rgb),.13), transparent 38%), linear-gradient(145deg, var(--feature-start), var(--feature-end)); }
.learn-intro { position: relative; padding: 24px; border: 1px solid rgba(var(--accent-rgb),.23); border-radius: 24px; background: radial-gradient(circle at 92% 5%, rgba(var(--accent-rgb),.12), transparent 32%), linear-gradient(145deg, #101611, var(--surface-input)); }
.learn-intro h1 { max-width: 720px; }
.learn-intro .subtle { max-width: 680px; }
.learn-meta { margin-top: 16px; display: flex; flex-wrap: wrap; gap: 8px; }
.learn-meta span { min-height: 28px; padding: 0 10px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); display: inline-flex; align-items: center; font-size: .68rem; font-weight: 800; }
.learn-print-button { width: max-content; margin-top: 18px; }
.learn-quick-card { margin-bottom: 14px; padding: 20px; border: 1px solid rgba(var(--mint-rgb),.22); border-radius: 20px; background: rgba(var(--mint-rgb),.045); display: grid; grid-template-columns: minmax(180px,.65fr) 1.35fr; gap: 22px; }
.learn-quick-card p { margin: 0; color: var(--muted); font-size: .78rem; line-height: 1.45; }
.learn-quick-card ol { margin: 0; padding-left: 1.25rem; display: grid; gap: 9px; }
.learn-quick-card li { padding-left: 4px; font-size: .82rem; line-height: 1.45; }
.learn-sections { display: grid; gap: 9px; }
.learn-section { border: 1px solid var(--line); border-radius: 17px; background: linear-gradient(145deg, var(--panel-start), var(--surface-input)); overflow: hidden; }
.learn-section[open] { border-color: rgba(var(--accent-rgb),.27); }
.learn-section > summary { min-height: 76px; padding: 15px 17px; list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 14px; cursor: pointer; }
.learn-section > summary::-webkit-details-marker { display: none; }
.learn-section > summary span { min-width: 0; display: grid; grid-template-columns: 34px minmax(0,1fr); gap: 3px 9px; align-items: center; }
.learn-section > summary small { grid-row: 1 / 3; color: var(--accent-text); font-size: .66rem; font-weight: 950; letter-spacing: .08em; }
.learn-section > summary strong { font-size: .95rem; }
.learn-section > summary em { color: var(--muted); font-size: .69rem; font-style: normal; line-height: 1.35; }
.learn-section > summary b { color: var(--accent-text); font-size: 1.35rem; }
.learn-section[open] > summary b { transform: rotate(45deg); }
.learn-section-body { padding: 4px 18px 20px 60px; border-top: 1px solid rgba(255,255,255,.06); display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.learn-section-body > div { padding-top: 16px; }
.learn-section-body h2 { margin: 0 0 10px; color: var(--accent-text); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.learn-section-body ol, .learn-section-body ul { margin: 0; padding-left: 1.1rem; display: grid; gap: 8px; }
.learn-section-body li { padding-left: 3px; color: var(--muted); font-size: .76rem; line-height: 1.5; }
.learn-tip { grid-column: 1 / -1; margin: 0; padding: 12px 14px; border-left: 3px solid var(--accent); border-radius: 10px; background: rgba(var(--accent-rgb),.05); font-size: .74rem; line-height: 1.5; }
.learn-empty { margin-top: 22px; }

/* Power Petal keeps every module legible while carrying the alternate palette end to end. */
:root[data-theme="power-petal"] :is(.analytics-card, .history-metric, .more-card, .r2fit-workout-card, .custom-plan-card, .protocol-calendar, .protocol-card, .learn-section) {
  background: linear-gradient(150deg, var(--panel-start), var(--panel-end));
}
:root[data-theme="power-petal"] .r2fit-chat {
  background: radial-gradient(circle at 90% 0, rgba(var(--sky-rgb),.07), transparent 30%), linear-gradient(165deg, var(--panel-start), var(--panel-end));
  scrollbar-color: rgba(var(--accent-rgb),.48) transparent;
}
:root[data-theme="power-petal"] :is(.r2fit-composer, .resume-workout, .sync-status, .toast, .exercise-actions) {
  border-color: var(--line);
  background: rgba(255,255,255,.96);
}
:root[data-theme="power-petal"] .r2fit-orb {
  background: radial-gradient(circle at 30% 24%, var(--sky), var(--accent) 42%, #a51c61 100%);
  color: var(--accent-ink);
}
:root[data-theme="power-petal"] :is(.r2fit-clear, .r2fit-starters button, .r2fit-note) {
  color: var(--muted);
}
:root[data-theme="power-petal"] :is(.training-day-lesson, .training-day-exercises em, .template-exercises li, .builder-exercise.is-selected small, .custom-plan-day-status, .custom-plan-source-note, .custom-plan-block li, .cardio-derived-metrics strong) {
  color: var(--muted);
}
:root[data-theme="power-petal"] :is(.progress-signal.is-regressing, .module-lock-note, .template-caution, .template-caution strong, .r2fit-mode.is-active span, .r2fit-workout-head em, .pregnancy-safety-banner strong, .pregnancy-safety-banner span, .pregnancy-warning strong, .r2fit-memory-meta em, .protocol-reminder-banner small, .protocol-calendar-day > span.is-due, .protocol-day-status.is-missed, .protocol-entry.is-missed .protocol-entry-status span) {
  color: var(--amber-text);
}
:root[data-theme="power-petal"] :is(.danger-button, .sync-chip.is-offline, .sync-chip.is-error, .account-danger button, .danger-zone button, .r2fit-error p, .protocol-calendar-day > span.is-unlogged, .protocol-calendar-day > span.is-missed, .peptide-calculator-result.is-danger strong, .sync-status[data-state="offline"], .workout-end, .finish-actions .danger-text, .danger-text) {
  color: var(--danger-text);
}
:root[data-theme="power-petal"] :is(.training-day-exercises li, .pregnancy-stage-guide-grid > div, .builder-bank, .builder-order-list li, .r2fit-workout-exercise, .r2fit-memory-item, .protocol-calendar-day, .protocol-day-builder-row, .protocol-detail, .protocol-entry, .protocol-missed, .peptide-calculator-result) {
  border-color: var(--line);
  background: var(--surface-input);
}
:root[data-theme="power-petal"] .r2fit-composer textarea::placeholder { color: var(--muted); }
:root[data-theme="power-petal"] .custom-plans-more-card {
  background: radial-gradient(circle at 95% 0, rgba(var(--mint-rgb),.11), transparent 42%), linear-gradient(150deg, var(--panel-start), var(--panel-end));
}
:root[data-theme="power-petal"] :is(.custom-plan-upload-shell, .custom-plan-level-buttons button, .custom-plan-day, .cardio-input-unit input, .custom-plan-cardio-grid div) {
  background: var(--surface-input);
}
:root[data-theme="power-petal"] .peptide-today-reminder {
  background: linear-gradient(135deg, rgba(var(--accent-rgb),.13), var(--panel-start));
}
:root[data-theme="power-petal"] .body-context-card {
  background: radial-gradient(circle at 88% 0, rgba(var(--mint-rgb),.1), transparent 36%), linear-gradient(145deg, var(--panel-start), var(--panel-end));
}
:root[data-theme="power-petal"] .learn-intro {
  background: radial-gradient(circle at 92% 5%, rgba(var(--sky-rgb),.1), transparent 34%), linear-gradient(145deg, var(--panel-start), var(--panel-end));
}
:root[data-theme="power-petal"] .exercise-detail-hero {
  background: linear-gradient(135deg, var(--feature-start), var(--panel-end) 72%);
}
:root[data-theme="power-petal"] .target-visual {
  background: radial-gradient(ellipse, rgba(var(--accent-rgb),.2), transparent 60%), linear-gradient(135deg, var(--surface-2), var(--surface-input));
}

@media (max-width: 640px) {
  .learn-intro { padding: 18px; }
  .learn-print-button { width: 100%; }
  .learn-quick-card { grid-template-columns: 1fr; gap: 14px; }
  .learn-section-body { padding: 2px 16px 18px; grid-template-columns: 1fr; gap: 0; }
  .learn-tip { margin-top: 14px; }
}

@media print {
  body::before, .topbar, .bottom-nav, .back-button, .learn-print-button, .workout-resume { display: none !important; }
  body, html { background: #fff !important; color: #111 !important; }
  .app-shell { padding: 0; }
  main { width: 100%; max-width: none; padding: 0; }
  .learn-intro, .learn-quick-card, .learn-section { border-color: #bbb; background: #fff; color: #111; box-shadow: none; break-inside: avoid; }
  .learn-section { margin-bottom: 8px; }
  .learn-section > summary { color: #111; }
  .learn-section > summary em, .learn-section-body li, .learn-quick-card p, .learn-meta span { color: #444; }
  .learn-section:not([open]) > .learn-section-body { display: grid; }
  .learn-section-body { grid-template-columns: 1fr 1fr; }
  .eyebrow, .learn-section-body h2, .learn-section > summary small { color: #326b12 !important; }
}

@media (max-width: 759px) {
  body.is-workout-mode .app-shell { padding-bottom: calc(18px + env(safe-area-inset-bottom)); }
  body.is-workout-mode .exercise-actions { bottom: max(8px, env(safe-area-inset-bottom)); }
  body.is-workout-mode .toast-region { bottom: calc(126px + env(safe-area-inset-bottom)); }
  .sync-label { display: none; }
  .sync-status { width: 30px; padding: 0; justify-content: center; }
  .r2fit-builder-cta { min-height: 150px; padding: 16px; align-items: stretch; flex-direction: column; gap: 12px; }
  .r2fit-builder-cta .primary-button { min-width: 0; min-height: 44px; }
}

@media (max-width: 520px) {
  .build-control-card { align-items: start; flex-direction: column; gap: 4px; }
  .compact-template-card { align-items: stretch; flex-direction: column; }
  .compact-template-actions button { flex: 1; }
  .saved-routine-row { grid-template-columns: 1fr; }
  .saved-routine-actions button { flex: 1; min-height: 38px; }
  .active-workout-order-item { grid-template-columns: 30px minmax(0, 1fr); }
  .active-workout-order-controls { grid-column: 1 / -1; grid-template-columns: 44px 44px minmax(0, 1fr); }
}

@media (max-width: 599px) {
  .auth-shell {
    min-height: calc(100dvh - 76px - env(safe-area-inset-top));
    place-items: start stretch;
    padding: clamp(18px, 6vh, 48px) 0 34px;
  }

  .auth-card {
    width: 100%;
    padding: 10px 0 22px;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .auth-card h1 {
    max-width: 9ch;
    font-size: clamp(2.65rem, 14vw, 4rem);
  }

  .auth-mode {
    margin-bottom: 18px;
  }

  .auth-tabs {
    margin: 22px 0 18px;
  }

  .auth-form {
    gap: 13px;
  }

  .auth-form .field input {
    height: 56px;
    min-height: 56px;
    background: var(--surface-input);
  }

  .auth-form .primary-button {
    min-height: 56px;
  }

  .auth-footnote {
    font-size: .8rem;
  }

  .account-sheet-backdrop {
    padding: 0;
  }

  .account-sheet {
    border-right: 0;
    border-bottom: 0;
    border-left: 0;
    border-radius: 26px 26px 0 0;
  }
}

@media (max-width: 380px) {
  .nav-item {
    font-size: .66rem;
  }

  .metric-card {
    padding: 13px;
  }

  .metric-value {
    font-size: 1.42rem;
  }

  .exercise-panel {
    padding-inline: 13px;
  }
}

/* Workout management: compact, touch-friendly controls across Train, Build, and Custom Plans. */
.training-category-actions {
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
  padding: 11px 15px 2px;
}

.training-category-actions .routine-order-controls {
  display: inline-grid;
  grid-template-columns: repeat(2, 38px);
  gap: 5px;
  margin-right: auto;
}

.training-category-actions .routine-order-controls button {
  width: 38px;
  padding: 0;
  font-size: .9rem;
}

.training-category-actions > button {
  padding-inline: 12px;
  white-space: nowrap;
}

.builder-order-list li {
  grid-template-columns: 24px minmax(130px, 1fr) auto auto;
}

.builder-prescription-grid {
  grid-column: 1 / -1;
  margin-top: 3px;
  padding: 12px;
  border-top: 1px solid var(--line);
  border-radius: 0 0 9px 9px;
  background: rgba(var(--accent-rgb),.025);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
}

.builder-prescription-grid label,
.custom-plan-review-day-fields label,
.custom-plan-review-block label {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 6px;
  color: var(--muted);
  font-size: .61rem;
  font-weight: 850;
  letter-spacing: .035em;
  text-transform: uppercase;
}

.builder-prescription-grid .is-wide,
.custom-plan-review-block .is-wide {
  grid-column: 1 / -1;
}

.builder-prescription-grid input,
.custom-plan-review-day-fields input,
.custom-plan-review-block input,
.custom-plan-review-block select,
.active-exercise-edit-dialog .field select,
.custom-plan-details-dialog .field textarea {
  width: 100%;
  min-width: 0;
  min-height: 43px;
  padding: 9px 11px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--surface-input);
  color: var(--text);
  font: inherit;
  font-size: .76rem;
  font-weight: 750;
  letter-spacing: normal;
  text-transform: none;
  outline: none;
}

.builder-prescription-grid input:focus,
.custom-plan-review-day-fields input:focus,
.custom-plan-review-block input:focus,
.custom-plan-review-block select:focus,
.active-exercise-edit-dialog .field select:focus,
.custom-plan-details-dialog .field textarea:focus {
  border-color: rgba(var(--accent-rgb),.65);
  box-shadow: 0 0 0 3px rgba(var(--accent-rgb),.08);
}

.custom-plan-management,
.custom-plan-train-actions {
  margin: 16px 22px 0;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: rgba(var(--accent-rgb),.025);
}

.custom-plan-management {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}

.custom-plan-management button {
  min-height: 40px;
  padding-inline: 13px;
  font-size: .66rem;
}

.custom-plan-train-actions {
  align-items: center;
  margin-bottom: 16px;
}

.custom-plan-train-actions .secondary-button {
  flex: 0 0 auto;
  min-height: 42px;
  padding-inline: 14px;
  font-size: .69rem;
}

.custom-plan-train-actions small {
  font-size: .66rem;
}

.custom-plan-day-actions {
  margin-top: 12px;
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  gap: 7px;
}

.custom-plan-day-actions button,
.custom-plan-day-actions .custom-plan-start {
  width: 100%;
  min-height: 43px;
  margin: 0;
  padding-inline: 8px;
  font-size: .66rem;
}

.custom-plan-review-dialog {
  width: min(940px, 100%);
}

.custom-plan-review-days {
  gap: 14px;
}

.custom-plan-review-days > section {
  padding: 15px;
  background: linear-gradient(145deg, var(--surface-2), var(--surface-input));
}

.custom-plan-review-day-fields {
  display: grid;
  grid-template-columns: minmax(110px, .55fr) minmax(180px, 1fr) minmax(180px, 1fr);
  gap: 9px;
}

.custom-plan-review-block {
  margin-top: 13px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}

.custom-plan-review-block > strong {
  margin-bottom: 8px;
  color: var(--accent-text);
  font-size: .72rem;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.custom-plan-review-block ol {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 9px;
}

.custom-plan-review-block li,
.custom-plan-review-block li + li {
  margin: 0;
}

.custom-plan-review-block li {
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: rgba(var(--bg-rgb),.3);
  display: grid;
  grid-template-columns: minmax(210px, 2fr) minmax(70px, .55fr) minmax(110px, .8fr) minmax(90px, .7fr);
  gap: 8px;
}

.custom-plan-details-dialog .field,
.active-exercise-edit-dialog .field {
  margin-top: 16px;
}

.custom-plan-details-dialog .field textarea {
  min-height: 96px;
  resize: vertical;
  line-height: 1.45;
}

.active-workout-order-dialog {
  width: min(780px, 100%);
}

.active-workout-order-controls {
  grid-template-columns: 38px 38px minmax(76px, auto) minmax(76px, auto) minmax(72px, auto);
}

.active-workout-order-controls button {
  white-space: nowrap;
  font-size: .61rem;
}

.active-workout-order-actions {
  grid-template-columns: 1fr 1fr;
}

:root[data-theme="power-petal"] :is(.builder-prescription-grid, .custom-plan-management, .custom-plan-train-actions, .custom-plan-review-block li) {
  border-color: var(--line);
  background: var(--surface-input);
}

@media (max-width: 759px) {
  .builder-prescription-grid {
    grid-template-columns: 1fr 1fr;
  }

  .custom-plan-review-day-fields,
  .custom-plan-review-block li {
    grid-template-columns: 1fr 1fr;
  }

  .custom-plan-review-block li > label:first-child,
  .custom-plan-review-block .is-wide {
    grid-column: 1 / -1;
  }

  .active-workout-order-controls {
    grid-template-columns: 44px 44px repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 520px) {
  .training-category-shell.is-deletable .training-category > summary { padding-right: 104px; }
  .training-category-delete { right: 10px; min-width: 66px; padding-inline: 8px; }

  .training-category-actions {
    align-items: stretch;
    display: grid;
    grid-template-columns: auto 1fr;
  }

  .training-category-actions .routine-order-controls {
    grid-row: 1 / 3;
    margin: 0;
  }

  .training-category-actions > button {
    width: 100%;
  }

  .builder-order-list li {
    grid-template-columns: 22px minmax(0, 1fr) auto;
  }

  .builder-prescription-grid {
    grid-column: 1 / -1;
    grid-template-columns: 1fr;
    padding-inline: 9px;
  }

  .builder-prescription-grid .is-wide {
    grid-column: auto;
  }

  .custom-plan-management,
  .custom-plan-train-actions {
    margin-inline: 14px;
  }

  .custom-plan-management {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .custom-plan-management button {
    width: 100%;
    padding-inline: 8px;
  }

  .custom-plan-train-actions {
    align-items: stretch;
  }

  .custom-plan-train-actions .secondary-button {
    width: 100%;
  }

  .custom-plan-review-dialog {
    padding: 17px;
  }

  .custom-plan-review-day-fields,
  .custom-plan-review-block li {
    grid-template-columns: 1fr;
  }

  .custom-plan-review-block li > label:first-child,
  .custom-plan-review-block .is-wide {
    grid-column: auto;
  }

  .active-workout-order-controls {
    grid-template-columns: 42px 42px minmax(0, 1fr);
  }

  .active-workout-order-controls button:nth-child(4),
  .active-workout-order-controls button:nth-child(5) {
    grid-column: span 1;
  }

  .active-workout-order-controls button:nth-child(5) {
    grid-column: span 2;
  }

  .active-workout-order-actions {
    grid-template-columns: 1fr;
  }
}

.custom-built-library { margin-top: 22px; }
.custom-built-library .section-heading { align-items: start; }
.custom-built-routine-list { display: grid; gap: 9px; }
.custom-built-routine-list article { padding: 13px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface-input); display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; }
.custom-built-routine-list article > div:first-child { display: grid; gap: 5px; }
.custom-built-routine-list article strong { font-size: .82rem; }
.custom-built-routine-list article small { color: var(--muted); font-size: .66rem; }
.custom-built-routine-list article > div:last-child { display: flex; flex-wrap: wrap; gap: 6px; }
.custom-built-routine-list button { min-height: 40px; padding-inline: 12px; font-size: .62rem; }

.history-exercise-structure { margin: 0 0 11px; display: grid; grid-template-columns: minmax(180px, 1fr) 80px auto; align-items: end; gap: 8px; }
.history-exercise-structure label { min-width: 0; display: grid; gap: 5px; color: var(--muted); font-size: .62rem; font-weight: 800; }
.history-exercise-structure select,
.history-exercise-structure input { width: 100%; min-width: 0; min-height: 42px; }
.history-exercise-structure .history-remove-check { min-height: 42px; display: flex; align-items: center; gap: 7px; }
.history-exercise-structure .history-remove-check input { width: 18px; min-height: 18px; }
.history-exercise-editor .history-set-row { grid-template-columns: 42px minmax(0, 1fr) minmax(0, 1fr) 62px; }
.history-exercise-editor .history-set-row > input[type="checkbox"] { width: 18px; justify-self: center; }
.history-add-set { margin-top: 7px; padding-top: 7px; border-top: 1px solid var(--line); }
.history-add-set > span { color: var(--accent-text); }

@media (max-width: 620px) {
  .custom-built-routine-list article { grid-template-columns: 1fr; }
  .custom-built-routine-list article > div:last-child { display: grid; grid-template-columns: 1fr 1fr; }
  .custom-built-routine-list article > div:last-child .primary-button { grid-column: 1 / -1; }
  .history-exercise-structure { grid-template-columns: minmax(0, 1fr) 72px; }
  .history-exercise-structure .history-remove-check { grid-column: 1 / -1; }
  .history-exercise-editor .history-set-row { grid-template-columns: 32px minmax(0, 1fr) minmax(0, 1fr) 44px; gap: 5px; }
}
