/* Body pilot: one hierarchy for observed values, dated changes and training load. */
.swack-body-progress,.swack-body-metric-detail{--body-panel:var(--bp-card,#fff);--body-tint:color-mix(in srgb,var(--bp-purple) 7%,var(--body-panel));--body-line:color-mix(in srgb,var(--bp-purple) 16%,transparent);color:var(--bp-ink);font-variant-numeric:tabular-nums}
.swack-body-progress .swack-body-heading{margin:22px 0 14px;padding:0;border:0;gap:12px}.swack-body-progress .swack-body-heading h2{font-size:26px;margin:0}.swack-body-progress .swack-body-heading>button{padding:8px 12px;border:1px solid var(--body-line);border-radius:var(--sw-r-md);background:var(--body-tint)}
.swack-body-progress .swack-body-trend{padding:18px 16px 10px;border-radius:var(--sw-r-md);background:var(--body-tint);border:0;box-shadow:none}
.swack-body-metric-tabs,.swack-body-periods,.swack-body-sides{display:flex;gap:4px;min-width:0;padding:3px;border-radius:var(--sw-r-md);background:color-mix(in srgb,var(--bp-ink) 4%,transparent)}
.swack-body-metric-tabs{background:none;padding:0;margin:-6px -6px 12px;gap:2px}
.swack-body-metric-tabs button,.swack-body-periods button,.swack-body-sides button{flex:1;min-width:0;min-height:44px;padding:8px 5px;border:0;border-radius:calc(var(--sw-r-md) - 4px);box-shadow:none;background:transparent;color:var(--bp-muted);font:600 13px/1.3 var(--sw-font-body);overflow-wrap:anywhere}
.swack-body-metric-tabs button[aria-pressed=true],.swack-body-periods button[aria-pressed=true],.swack-body-sides button[aria-pressed=true]{color:var(--bp-purple);background:var(--body-panel);box-shadow:0 1px 3px rgba(0,0,0,.05)}
.swack-body-lead{margin:10px 0 16px}.swack-body-lead>.swack-key-stat{display:block;font-size:46px;font-weight:760;line-height:1.05;letter-spacing:-.04em;color:var(--bp-ink)}.swack-body-lead>.swack-key-stat>span{font-size:20px;font-weight:550;letter-spacing:0;color:var(--bp-muted)}
.swack-body-lead>p{margin:9px 0 4px;font-size:14px;line-height:1.5;color:var(--bp-ink)}.swack-body-progress .swack-meta,.swack-body-metric-detail .swack-meta{font-size:12px;line-height:1.55;color:var(--bp-muted);font-weight:400}
.swack-body-chart{display:block;width:100%;height:auto;margin:15px 0 0;overflow:visible}.swack-body-chart line{stroke:var(--body-line);stroke-width:1}.swack-body-chart polyline{fill:none;stroke:var(--bp-purple);stroke-width:3;stroke-linejoin:round;stroke-linecap:round}.swack-body-chart circle{fill:var(--bp-purple);stroke:var(--body-panel);stroke-width:1.5}.swack-body-chart text{font:11px var(--sw-font-body);fill:var(--bp-muted)}
.swack-body-history-link{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:44px;padding:10px 0;border:0;background:none;color:var(--bp-purple);font:600 14px var(--sw-font-body);box-shadow:none}
.swack-body-empty-chart{display:flex;align-items:center;gap:16px;min-height:138px;color:var(--bp-muted)}.swack-body-empty-chart>span{flex:none;width:38px;height:38px;color:var(--bp-purple)}.swack-body-empty-chart svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.5}.swack-body-empty-chart p{font-size:14px;line-height:1.5;margin:0}
.swack-body-changes{margin:26px 0}.swack-body-progress h3.swack-section-heading,.swack-body-progress .swack-section-heading h3{margin:0 0 5px;font-size:20px;line-height:1.3;letter-spacing:-.02em;color:var(--bp-ink)}.swack-body-changes>p{margin:0 0 14px}
.swack-body-change-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.swack-body-change-grid button{display:flex;flex-direction:column;gap:5px;align-items:flex-start;min-width:0;padding:0;border:0;border-radius:0;box-shadow:none;background:transparent;color:var(--bp-ink);text-align:left}.swack-body-change-grid button>span{font-size:12px;color:var(--bp-muted)}.swack-body-change-grid button>strong{font-size:25px;font-weight:740;letter-spacing:-.035em;line-height:1.2}.swack-body-change-grid button>small{font-size:11px;line-height:1.4;color:var(--bp-muted);overflow-wrap:anywhere}
.swack-body-atlas{padding:20px 16px;border:1px solid var(--body-line);border-radius:var(--sw-r-md);background:var(--body-panel);scroll-margin-top:120px;outline-offset:4px}.swack-body-atlas .swack-section-heading p{margin:0 0 16px}.swack-body-atlas-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:15px;align-items:center}.swack-body-atlas-figure{height:270px;width:100%;margin:8px 0 0;display:grid;place-items:center}
.swack-body-atlas-figure .swack-body-atlas-svg{width:100%!important;height:100%!important;max-height:none!important;max-width:100%!important;min-width:0!important;transform:none!important;filter:none;overflow:hidden;aspect-ratio:410/970!important}
.swack-body-atlas-svg [data-muscle]{cursor:pointer;stroke:var(--bp-purple);stroke-width:1;fill:transparent!important;opacity:1!important}.swack-body-atlas-svg [data-muscle][data-load="1"]{fill:color-mix(in srgb,var(--bp-purple) 22%,transparent)!important}.swack-body-atlas-svg [data-muscle][data-load="2"]{fill:color-mix(in srgb,var(--bp-purple) 45%,transparent)!important}.swack-body-atlas-svg [data-muscle][data-load="3"]{fill:color-mix(in srgb,var(--bp-purple) 74%,transparent)!important}.swack-body-atlas-svg [aria-pressed=true],.swack-body-atlas-svg [data-muscle]:focus{stroke:var(--bp-ink);stroke-width:5;outline:none}
.swack-body-atlas-summary h4{font-size:18px;line-height:1.3;margin:6px 0 10px;overflow-wrap:anywhere}.swack-body-atlas-summary .swack-key-stat{font-size:32px;font-weight:750;line-height:1.15;color:var(--bp-purple)}.swack-body-atlas-summary .swack-key-stat span{font-size:14px;font-weight:500}.swack-body-atlas-summary p{margin:12px 0}
.swack-body-atlas-legend{display:flex;gap:3px;flex-wrap:wrap}.swack-body-atlas-legend i{width:22px;height:8px;background:color-mix(in srgb,var(--bp-purple) 12%,transparent);border-radius:3px}.swack-body-atlas-legend i[data-load="1"]{background:color-mix(in srgb,var(--bp-purple) 22%,transparent)}.swack-body-atlas-legend i[data-load="2"]{background:color-mix(in srgb,var(--bp-purple) 45%,transparent)}.swack-body-atlas-legend i[data-load="3"]{background:color-mix(in srgb,var(--bp-purple) 74%,transparent)}.swack-body-atlas-legend span{flex-basis:100%;font-size:11px;line-height:1.5;color:var(--bp-muted)}
.swack-body-muscle-select{display:grid;gap:6px;margin:12px 0;font-size:13px;color:var(--bp-muted)}.swack-body-muscle-select select{min-height:44px;width:100%;padding:10px 12px;font:inherit;border:1px solid var(--body-line);border-radius:var(--sw-r-md);color:var(--bp-ink);background:var(--body-tint)}
.swack-body-muscle-detail{margin:16px 0 0;padding-top:14px;border-top:1px solid var(--body-line)}.swack-body-muscle-detail h4{font-size:18px;margin:0 0 8px}.swack-body-muscle-detail>strong{font-size:27px}.swack-body-muscle-detail>strong>span{font-size:13px;font-weight:400;color:var(--bp-muted)}.swack-body-muscle-detail>p{display:flex;justify-content:space-between;gap:10px;font-size:13px;line-height:1.5;margin:8px 0}.swack-body-muscle-detail>p>b{white-space:nowrap}
.swack-body-insight{display:flex;gap:12px;margin:24px 0;padding:0;color:var(--bp-ink)}.swack-body-insight>span{width:24px;height:24px;flex:none;color:var(--bp-purple)}.swack-body-insight>span svg{width:24px;height:24px}.swack-body-insight h3{font-size:15px;margin:0 0 5px}.swack-body-insight p{font-size:13px;line-height:1.55;margin:0 0 5px}
.swack-body-secondary{margin:22px 0 30px;border-top:1px solid var(--body-line)}.swack-body-secondary>summary{display:flex;justify-content:space-between;align-items:center;list-style:none;min-height:58px;font-size:17px;font-weight:650;cursor:pointer}.swack-body-secondary>summary::-webkit-details-marker{display:none}.swack-body-secondary[open]>summary>span{transform:rotate(45deg)}.swack-body-secondary>button{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto 12px;align-items:center;gap:12px;min-height:65px;border:0;border-bottom:1px solid var(--body-line);border-radius:0;background:none;box-shadow:none;text-align:left;color:var(--bp-ink);padding:12px 0;font:500 14px var(--sw-font-body)}.swack-body-secondary>button>span>small{display:block;font-size:11px;color:var(--bp-muted);margin-top:4px}.swack-body-secondary>button>strong{font-size:20px}.swack-body-secondary>button>strong>small{font-size:12px;font-weight:400;color:var(--bp-muted)}.swack-body-secondary>button>i{font-style:normal;color:var(--bp-muted)}
.swack-body-metric-detail header{margin:0 0 24px}.swack-body-metric-detail .swack-body-lead{margin-top:0}.swack-body-measurement-history{margin-top:24px}.swack-body-measurement-history h3{font-size:20px}.swack-body-measurement-history>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid var(--body-line);font-size:14px}.swack-body-measurement-history small{display:block;color:var(--bp-muted);font-size:12px;margin-top:3px}
.swack-body-progress :is(button,select,summary):focus-visible,.swack-body-metric-detail button:focus-visible{outline:2px solid var(--bp-purple);outline-offset:3px}
.swack-body-progress .swack-body-atlas>.swack-section-heading{display:block;margin:0}
.swack-body-metric-tabs{overflow-x:auto}.swack-body-metric-tabs button{flex:1 0 auto;white-space:nowrap;overflow-wrap:normal}
.swack-body-periods button,.swack-body-sides button{white-space:normal}
.swack-body-atlas-layout{display:flex;flex-wrap:wrap}.swack-body-atlas-layout>div{flex:1 1 140px;min-width:0}
.swack-body-atlas-figure{max-width:190px;margin-inline:auto}
.swack-body-reference>summary{min-height:44px;display:flex;align-items:center;color:var(--bp-purple);font-size:14px;cursor:pointer}.swack-body-metric-detail summary:focus-visible{outline:2px solid var(--bp-purple);outline-offset:3px}
@media(max-width:350px){.swack-body-progress .swack-body-trend,.swack-body-atlas{padding-inline:12px}.swack-body-atlas-layout{gap:10px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.swack-body-atlas-figure{height:240px}.swack-body-metric-tabs button{font-size:12px}.swack-body-change-grid{gap:8px}.swack-body-change-grid button>strong{font-size:22px}}
