.lifting-panel { margin-top: 44px; padding-top: 26px; border-top: 1px solid var(--line); }
.lifting-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.lifting-heading h2, .strength-heading h2 { margin: 0; color: var(--ink); font: 400 27px/1.25 Georgia, "Times New Roman", serif; }
.lifting-ranges { display: flex; gap: 3px; }
.lifting-ranges button { border: 0; border-radius: 3px; padding: 7px 11px; background: transparent; color: #70685e; font: 11px/1.4 var(--health-sans); cursor: pointer; }
.lifting-ranges button[aria-pressed="true"] { color: var(--paper); background: var(--accent); }
.lifting-ranges button:hover:not([aria-pressed="true"]) { color: var(--ink); background: var(--soft); }
.lifting-status { display: flex; align-items: baseline; gap: 9px; margin: 0 0 18px; color: #70685e; font: 11px/1.6 var(--health-sans); }
.lifting-status[data-error="true"], .lifting-status[data-stale="true"] { color: #79583b; }
.lifting-status button { padding: 0; border: 0; background: transparent; color: var(--ink); font: inherit; text-decoration: underline; cursor: pointer; }
.lifting-period { margin: 18px 0 20px; color: #70685e; font: 11px/1.5 var(--health-sans); }
.lifting-totals { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin: 0 0 29px; }
.lifting-totals > div { min-width: 0; }
.lifting-totals dt { margin-bottom: 6px; color: #70685e; font: 12px/1.4 var(--health-sans); }
.lifting-totals dd { margin: 0; color: var(--accent); font: 34px/1.2 Georgia, "Times New Roman", serif; letter-spacing: -.035em; font-variant-numeric: lining-nums tabular-nums; }
.lifting-unit { margin-left: 5px; color: #70685e; font: 11px/1 var(--health-sans); letter-spacing: 0; }
.lifting-totals dd small { display: block; margin-top: 5px; color: #70685e; font: 10px/1.4 var(--health-sans); letter-spacing: 0; }
.lifting-totals dd small:empty { display: none; }
.lifting-chart-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 12px; min-height: 23px; }
.lifting-chart-heading h3, .lifting-legend span { margin: 0; color: #70685e; font: 11px/1.5 var(--health-sans); }
.lifting-chart-title { display: flex; align-items: baseline; gap: 12px; }
.lifting-legend { display: flex; gap: 14px; align-items: center; margin-bottom: 6px; }
.lifting-legend span { display: inline-flex; align-items: center; gap: 5px; }
.lifting-legend i { width: 16px; border-top: 1.5px solid var(--health-accent); }
.lifting-legend-daily { opacity: .5; }
.lifting-legend .lifting-legend-trend { border-top-style: dashed; }
.lifting-chart { height: 154px; width: 100%; touch-action: pan-y; cursor: crosshair; }
.lifting-chart svg { display: block; width: 100%; height: 154px; overflow: visible; }
.lifting-chart:focus-visible { outline: 1px solid var(--health-accent); outline-offset: 4px; }
.lifting-axis { stroke: var(--line); stroke-width: 1; }
.lifting-line { fill: none; stroke: var(--health-accent); stroke-width: 1.3; stroke-linecap: round; stroke-linejoin: round; opacity: .5; }
.lifting-trend { fill: none; stroke: var(--health-accent); stroke-width: 2; stroke-dasharray: 5 4; stroke-linecap: round; stroke-linejoin: round; }
.lifting-dot { fill: var(--paper); stroke: var(--health-accent); stroke-width: 1.3; }
.lifting-hover-line { stroke: var(--health-muted-accent); stroke-width: 1; stroke-dasharray: 2 3; pointer-events: none; }
.lifting-hover-dot { fill: var(--health-accent); stroke: var(--paper); stroke-width: 2; pointer-events: none; }
.lifting-axis-label { fill: #70685e; font: 10px var(--health-sans); }
.lifting-empty { fill: #70685e; font: 12px var(--health-sans); }
.lifting-method { margin: 13px 0 0; color: #70685e; font: 10px/1.6 var(--health-sans); }
.workouts-section { margin-top: 32px; padding-top: 25px; border-top: 1px solid var(--line); }
.strength-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.strength-tabs { display: flex; flex-wrap: wrap; gap: 3px; }
.strength-tabs button { position: relative; border: 0; padding: 8px 10px; background: transparent; color: #70685e; font: 11px/1.4 var(--health-sans); cursor: pointer; }
.strength-tabs button::after { content: ""; position: absolute; inset: auto 10px 2px; height: 1px; background: var(--health-accent); transform: scaleX(0); transition: transform 180ms ease; }
.strength-tabs button[aria-selected="true"] { color: var(--ink); }
.strength-tabs button[aria-selected="true"]::after { transform: scaleX(1); }
.strength-tabs button:hover { color: var(--ink); }
.strength-tabs button:focus-visible, .strength-chart:focus-visible { outline: 1px solid var(--health-accent); outline-offset: 3px; }
.strength-stage { min-width: 0; margin-top: 15px; }
.gym-room { position: relative; width: 100%; aspect-ratio: 1000 / 620; overflow: hidden; isolation: isolate; background: var(--paper); }
.gym-architecture { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.gym-architecture { color: var(--health-accent); stroke: currentColor; stroke-width: 1.2; stroke-linecap: round; stroke-linejoin: round; }
.gym-wall { opacity: .3; }
.gym-floor { opacity: .15; }
.gym-mirror { opacity: .14; }
.gym-reflection { opacity: .22; }
.gym-station { position: absolute; left: calc(var(--station-x) * 1%); top: calc(var(--station-y) * 1%); width: calc(var(--station-width) * 1%); height: calc(var(--station-height) * 1%); transform: translate(-50%, -100%); z-index: var(--station-depth); pointer-events: none; }
.gym-station > svg { position: absolute; inset: 0; display: block; width: 100%; height: 100%; margin: 0; border: 0; border-radius: 0; transition: opacity 180ms ease; pointer-events: none; }
.gym-equipment { opacity: .57; }
.gym-station .gym-idle { inset: auto; bottom: 2%; left: calc(var(--idle-x) * 1%); height: calc(var(--idle-height) * 1%); transform: translateX(-50%); opacity: .42; }
.gym-occupied { opacity: 0; }
/* Keep clips in the square artwork's coordinates, including its paper matte. */
.gym-station .gym-occupied { inset: auto; bottom: 0; left: 50%; width: min(100%, calc(62% * var(--station-height) / var(--station-width))); height: auto; aspect-ratio: 1; transform: translateX(-50%); }
.gym-station[data-gym-station="bench"] .gym-occupied { clip-path: polygon(56% 5%, 70% 5%, 72% 13%, 80% 13%, 83% 18%, 96% 17%, 98% 32%, 87% 33%, 88% 45%, 76% 45%, 70% 53%, 76% 66%, 84% 71%, 97% 72%, 98% 80%, 84% 79%, 69% 74%, 68% 83%, 70% 91%, 70% 97%, 50% 98%, 50% 94%, 53% 90%, 45% 91%, 27% 85%, 25% 87%, 4% 87%, 4% 82%, 12% 77%, 11% 64%, 11% 52%, 13% 48%, 25% 42%, 42% 42%, 48% 39%, 34% 39%, 34% 26%, 29% 26%, 29% 13%, 41% 13%, 44% 13%, 52% 13%, 53% 23%, 56% 23%); }
.gym-station[data-gym-station="squat"] .gym-occupied { clip-path: polygon(21% 4%, 27% 4%, 27% 37%, 36% 37%, 37% 23%, 52% 22%, 54% 37%, 73% 37%, 73% 1%, 81% 1%, 81% 29%, 90% 30%, 91% 39%, 95% 39%, 95% 44%, 91% 44%, 91% 53%, 82% 53%, 82% 74%, 86% 78%, 90% 78%, 90% 84%, 75% 90%, 71% 90%, 70% 93%, 58% 93%, 57% 90%, 57% 86%, 45% 87%, 45% 89%, 27% 89%, 27% 85%, 9% 86%, 9% 80%, 16% 77%, 21% 70%, 21% 51%, 13% 51%, 10% 44%, 7% 43%, 7% 38%, 10% 38%, 11% 31%, 18% 30%, 19.5% 31%, 19.5% 24%, 22% 24%); }
.gym-station[data-gym-station="pullups"] .gym-occupied { clip-path: polygon(21% 0%, 28% 0%, 28% 2%, 72% 4%, 72% 2%, 78% 2%, 78% 80%, 83% 89%, 88% 90%, 90% 95%, 82% 96%, 62% 91%, 62% 86%, 70% 86%, 72% 79%, 72% 76%, 27% 76%, 27% 80%, 31% 91%, 42% 93%, 43% 99%, 35% 100%, 12% 92%, 12% 87%, 19% 87%, 22% 80%); }
.gym-station[data-gym-station="curls"] .gym-occupied { clip-path: polygon(40% 1%, 52% 1%, 56% 6%, 55% 15%, 61% 17%, 65% 25%, 66% 45%, 70% 48%, 70% 55%, 65% 60%, 66% 75%, 68% 88%, 69% 99%, 36% 99%, 35% 95%, 36% 89%, 37% 83%, 8% 82%, 9% 51%, 16% 48%, 29% 48%, 31% 39%, 28% 35%, 29% 30%, 31% 24%, 32% 20%, 40% 20%, 41% 17%); }
.gym-station[data-gym-station="rows"] .gym-occupied { clip-path: polygon(3% 0%, 10% 0%, 22% 5%, 23% 53%, 51% 47%, 55% 43%, 59% 36%, 61% 26%, 60% 15%, 66% 12%, 72% 13%, 75% 19%, 76% 27%, 84% 29%, 89% 36%, 93% 47%, 91% 50%, 81% 51%, 82% 61%, 87% 60%, 97% 62%, 97% 67%, 91% 69%, 91% 78%, 98% 81%, 99% 86%, 94% 88%, 86% 85%, 49% 88%, 46% 91%, 44% 96%, 33% 96%, 33% 89%, 13% 80%, 9% 84%, 1% 84%, 1% 79%, 3% 78%); }
.gym-station.is-active .gym-equipment, .gym-station.is-active .gym-idle { opacity: 0; }
.gym-station.is-active .gym-occupied { opacity: 1; }
.gym-station-select { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; background: transparent; cursor: pointer; pointer-events: auto; }
.gym-station-select:focus-visible { outline: 1px dashed var(--health-accent); outline-offset: 2px; border-radius: 6px; }
.strength-progress { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.5fr); column-gap: 35px; align-items: start; min-width: 0; padding: 12px 0; }
.strength-progress h3 { grid-column: 1; margin: 0 0 12px; color: var(--ink); font: 400 17px/1.4 Georgia, "Times New Roman", serif; }
.strength-progress > p { grid-column: 1; }
.strength-metric { margin: 0 0 4px; color: #70685e; font: 11px/1.5 var(--health-sans); }
.strength-reading { margin: 0; color: var(--health-accent); font: 40px/1.2 Georgia, "Times New Roman", serif; letter-spacing: -.035em; font-variant-numeric: lining-nums tabular-nums; }
.strength-unit { margin-left: 6px; color: #70685e; font: 11px/1 var(--health-sans); letter-spacing: 0; }
.strength-detail { min-height: 3em; margin: 8px 0 13px; color: #70685e; font: 11px/1.5 var(--health-sans); font-variant-numeric: tabular-nums; }
.strength-history { grid-column: 2; grid-row: 1 / 5; align-self: center; min-width: 0; }
.strength-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 7px 12px; margin-bottom: 12px; }
.strength-period { margin: 0; color: #70685e; font: 10px/1.5 var(--health-sans); }
.strength-ranges { margin-left: auto; }
.strength-chart { min-width: 0; height: 170px; width: 100%; touch-action: pan-y; cursor: crosshair; }
.strength-chart svg { display: block; width: 100%; height: 170px; overflow: visible; }
.strength-trail { fill: none; stroke: var(--health-accent); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.strength-point { fill: var(--paper); stroke: var(--health-accent); stroke-width: 1.3; }
@media (prefers-reduced-motion: reduce) {
  .gym-station > svg, .strength-tabs button::after { transition: none; }
}
@media (max-width: 570px) {
  .lifting-panel { margin-top: 34px; padding-top: 24px; }
  .lifting-heading h2, .strength-heading h2 { font-size: 25px; }
  .lifting-ranges button { padding: 7px 9px; }
  .lifting-totals { gap: 14px; }
  .lifting-totals dt { min-height: 2.8em; font-size: 11px; }
  .lifting-totals dd { font-size: clamp(22px, 6vw, 30px); }
  .lifting-unit { margin-left: 3px; font-size: 10px; }
  .lifting-chart-heading { align-items: flex-start; }
  .strength-heading { align-items: flex-start; flex-direction: column; gap: 9px; }
  .strength-tabs { width: 100%; justify-content: space-between; gap: 0; }
  .strength-tabs button { padding: 8px 7px; }
  .strength-tabs button::after { left: 7px; right: 7px; }
  .strength-stage { margin-top: 12px; }
  .strength-progress { display: block; padding: 8px 0 0; }
  .strength-progress h3 { margin-bottom: 9px; }
  .strength-detail { min-height: 1.5em; }
}
