:root{
  color-scheme:light;
  --canvas:#f3f2ee;
  --paper:#fff;
  --paper-soft:#f7f7f3;
  --ink:#171916;
  --muted:#6d716a;
  --subtle:#969b93;
  --line:#dedfd8;
  --accent:#d65d3f;
  --accent-dark:#9f3f28;
  --accent-soft:#f9e9e3;
  --lower:#b44c34;
  --push:#3970b4;
  --pull:#2d7d64;
  --danger:#a83d32;
  --danger-soft:#fae9e6;
  --shadow:0 18px 50px rgb(28 31 27 / 7%);
}
@media(prefers-color-scheme:dark){
  :root{
    color-scheme:dark;
    --canvas:#111310;
    --paper:#1a1d19;
    --paper-soft:#20241f;
    --ink:#f0f2ed;
    --muted:#adb2aa;
    --subtle:#7e857b;
    --line:#32372f;
    --accent:#ef866b;
    --accent-dark:#ffb09b;
    --accent-soft:#35231e;
    --lower:#ef866b;
    --push:#7da7e2;
    --pull:#78c4a7;
    --danger:#ff9b90;
    --danger-soft:#38221f;
    --shadow:none;
  }
}
*{box-sizing:border-box}
html{background:var(--canvas);scroll-behavior:smooth}
body{margin:0;background:var(--canvas);color:var(--ink);font:15px/1.58 -apple-system,BlinkMacSystemFont,"SF Pro Text","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}
button,input{font:inherit}
button{color:inherit}
button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 40%,transparent);outline-offset:3px}
[hidden]{display:none!important}
.topbar{position:sticky;z-index:20;top:0;border-bottom:1px solid color-mix(in srgb,var(--line) 82%,transparent);background:color-mix(in srgb,var(--canvas) 90%,transparent);backdrop-filter:blur(18px)}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;width:min(100% - 36px,1020px);min-height:54px;margin:0 auto}
.brand{display:flex;align-items:center;gap:9px;appearance:none;border:0;background:none;padding:0;text-align:left;cursor:pointer}
.brand-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--ink);color:var(--canvas);font-size:11px;font-weight:800}
.brand-copy strong{font-size:13px}
.view-tabs{display:flex;gap:3px;padding:3px;border:1px solid var(--line);border-radius:10px;background:var(--paper)}
.view-tabs button{appearance:none;border:0;border-radius:7px;background:transparent;padding:6px 12px;color:var(--muted);font-size:12px;font-weight:700;cursor:pointer}
.view-tabs button[aria-selected="true"]{background:var(--ink);color:var(--canvas)}
.shell{width:min(100% - 36px,1020px);margin:0 auto;padding:24px 0 48px}
h1,h2,h3,h4,p{margin-top:0}
h1{margin-bottom:8px;font-size:28px;line-height:1.25;letter-spacing:-.035em;font-weight:780}
.kicker{margin:0 0 8px;color:var(--accent);font-size:10px;font-weight:800;letter-spacing:.1em}
.plan-intro{margin-bottom:14px}
.plan-intro h1{margin:0 0 5px}
.plan-intro p{margin:0;color:var(--muted);font-size:13px}
.page-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:20px}
.hero-copy>p:last-child{margin:0;color:var(--muted);font-size:13px;line-height:1.65}
.plan-switch{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-bottom:14px;padding:3px;border:1px solid var(--line);border-radius:12px;background:var(--paper);scroll-margin-top:66px}
.split-button{display:flex;align-items:center;justify-content:center;appearance:none;min-width:0;min-height:40px;border:0;border-radius:8px;background:transparent;padding:8px 12px;cursor:pointer;transition:background .16s ease,color .16s ease}
.split-button:hover{background:var(--paper-soft)}
.split-button[aria-selected="true"]{background:var(--ink);color:var(--canvas)}
.split-name{font-size:14px;font-weight:750;line-height:1.2}
.tone-lower{--plan:var(--lower)}
.tone-push{--plan:var(--push)}
.tone-pull{--plan:var(--pull)}
.workout-card{overflow:hidden;border:1px solid var(--line);border-radius:18px;background:var(--paper);box-shadow:var(--shadow)}
.workout-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 22px 14px}
.workout-head h2{margin-bottom:5px;font-size:23px;line-height:1.25;letter-spacing:-.035em}
.workout-head p:last-child{max-width:610px;margin:0;color:var(--muted);font-size:13px}
.workout-meta span{color:var(--muted);font-size:11px;white-space:nowrap}
.exercise-list{border-top:1px solid var(--line)}
.exercise-item+.exercise-item{border-top:1px solid var(--line)}
.exercise-toggle{display:grid;grid-template-columns:30px minmax(0,1fr) 18px;align-items:center;gap:12px;width:100%;appearance:none;border:0;background:var(--paper);padding:13px 22px;text-align:left;cursor:pointer;transition:background .16s ease}
.exercise-toggle:hover,.exercise-item.is-open .exercise-toggle{background:var(--paper-soft)}
.exercise-number{display:grid;place-items:center;width:26px;height:26px;border:1px solid var(--line);border-radius:50%;color:var(--muted);font-size:10px;font-weight:700;font-variant-numeric:tabular-nums}
.exercise-heading{display:grid;gap:2px;min-width:0}
.exercise-heading strong{font-size:17px;font-weight:740;letter-spacing:-.02em}
.exercise-heading>span{color:var(--muted);font-size:12px}
.exercise-heading .exercise-dose{color:var(--plan);font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}
.exercise-toggle-label{display:flex;align-items:center;color:var(--muted)}
.exercise-toggle-label svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transition:transform .16s ease}
.exercise-toggle[aria-expanded="true"] .exercise-toggle-label{color:var(--plan)}
.exercise-toggle[aria-expanded="true"] .exercise-toggle-label svg{transform:rotate(180deg)}
.exercise-panel{background:var(--paper-soft);padding:4px 25px 25px}
.exercise-panel-inner{display:grid;grid-template-columns:minmax(210px,.72fr) minmax(0,1.28fr);gap:24px;border-top:1px solid var(--line);padding-top:22px}
.exercise-media{margin:0;overflow:hidden;border:1px solid var(--line);border-radius:16px;background:#fff}
.exercise-media img{display:block;width:100%;aspect-ratio:1.08;object-fit:contain;background:#fff}
.exercise-media figcaption a{color:inherit;text-underline-offset:2px}
.exercise-media figcaption{padding:7px 10px;border-top:1px solid var(--line);background:var(--paper-soft);color:var(--muted);font-size:10px;text-align:center}
.exercise-copy{min-width:0}
.exercise-prescription{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;padding-bottom:13px;border-bottom:1px solid var(--line)}
.exercise-prescription strong{font-size:16px;letter-spacing:-.02em}
.exercise-prescription span{color:var(--muted);font-size:10px;text-align:right}
.exercise-detail-grid{display:grid;grid-template-columns:142px minmax(0,1fr);gap:22px;align-items:start}
.anatomy{display:flex;justify-content:center;gap:10px;padding:10px 7px 8px;border-radius:14px;background:color-mix(in srgb,var(--plan) 7%,var(--paper))}
.anatomy-view{display:grid;justify-items:center;gap:3px;color:var(--muted);font-size:8px;font-weight:700;letter-spacing:.08em}
.anatomy-view svg{display:block;height:116px;width:auto}
.anatomy-base{fill:color-mix(in srgb,var(--ink) 11%,var(--paper));stroke:color-mix(in srgb,var(--ink) 24%,var(--paper));stroke-width:.7}
.anatomy-part{fill:transparent}
.anatomy-active{fill:var(--plan);opacity:.88}
.mini-label{margin:0 0 2px;color:var(--subtle);font-size:9px;font-weight:750;letter-spacing:.1em}
.target-copy{margin:0 0 13px;color:var(--plan);font-size:12px;font-weight:750}
.exercise-cue h4{margin:0 0 4px;font-size:13px}
.exercise-cue h4+p{margin:0;color:var(--muted);font-size:12px;line-height:1.65}
.equipment{display:flex;align-items:center;gap:7px;margin:12px 0 0;color:var(--muted);font-size:10px}
.equipment span{border:1px solid var(--line);border-radius:6px;padding:2px 5px;color:var(--subtle);font-size:8px;font-weight:750}
.workout-footer{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding:13px 25px;color:var(--muted);font-size:10px}
.starter-notes{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr);gap:32px;margin-top:24px;padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.starter-notes h2{margin:0;font-size:24px;line-height:1.25;letter-spacing:-.035em}
.starter-notes ul{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.starter-notes li{display:grid;grid-template-columns:28px 1fr;gap:8px;color:var(--muted);font-size:12px}
.starter-notes li span{color:var(--accent);font-size:9px;font-weight:800;letter-spacing:.08em;padding-top:3px}
.weight-hero{align-items:center;margin-bottom:20px}
.weight-hero .button-primary{justify-self:end}
.button-primary{appearance:none;border:1px solid var(--ink);border-radius:10px;background:var(--ink);color:var(--canvas);padding:10px 15px;min-height:42px;font-size:12px;font-weight:750;cursor:pointer;white-space:nowrap;transition:transform .16s ease,opacity .16s ease}
.button-primary:hover:not(:disabled){transform:translateY(-1px)}
.button-primary:disabled{opacity:.45;cursor:not-allowed}
.sync-line{display:flex;justify-content:space-between;gap:12px;margin-bottom:15px;padding:0 0 11px;border-bottom:1px solid var(--line)}
.sync-line p{margin:0;color:var(--muted);font-size:11px}
.text-button{appearance:none;border:0;background:none;padding:4px 1px;color:var(--accent);font-size:11px;font-weight:750;cursor:pointer}
.sync-conflicts{display:grid;gap:9px;margin-bottom:14px}
.conflict-card{border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));border-radius:12px;background:var(--accent-soft);padding:13px}
.conflict-card p{margin:0 0 9px;font-size:12px}
.conflict-actions{display:flex;flex-wrap:wrap;gap:7px}
.conflict-actions button{appearance:none;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));border-radius:8px;background:var(--paper);padding:6px 9px;font-size:10px;cursor:pointer}
.stats{display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:15px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.stat{padding:17px 18px;border-right:1px solid var(--line);min-width:0}
.stat:last-child{border-right:0}
.stat>span{display:block;color:var(--muted);font-size:10px;margin-bottom:4px}
.stat strong{display:block;font-size:28px;line-height:1.2;letter-spacing:-.045em;font-variant-numeric:tabular-nums;white-space:nowrap}
.stat strong small{margin-left:4px;color:var(--muted);font-size:10px;letter-spacing:0;font-weight:500}
.stat p{margin:4px 0 0;color:var(--muted);font-size:9px}
.panel{margin-top:15px;overflow:hidden;border:1px solid var(--line);border-radius:20px;background:var(--paper);box-shadow:var(--shadow)}
.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding:20px 21px 11px}
.panel-head h3{margin-bottom:3px;font-size:18px;letter-spacing:-.025em}
.panel-head p{margin:0;color:var(--muted);font-size:10px}
.range-switch{display:flex;gap:3px;padding:3px;border-radius:9px;background:var(--canvas)}
.range-switch button{appearance:none;border:0;border-radius:6px;background:none;padding:6px 8px;color:var(--muted);font-size:10px;cursor:pointer;white-space:nowrap}
.range-switch button[aria-pressed="true"]{background:var(--paper);color:var(--ink);font-weight:750;box-shadow:0 1px 4px rgb(0 0 0 / 7%)}
.period-nav{display:flex;align-items:center;justify-content:center;gap:8px;padding:0 21px 4px;color:var(--muted);font-size:10px}
.icon-button{appearance:none;border:1px solid var(--line);border-radius:8px;background:var(--paper);width:32px;height:32px;color:var(--ink);font-size:19px;line-height:1;cursor:pointer}
.chart-wrap{position:relative;min-height:245px;margin:3px 14px 0}
.chart-wrap svg{display:block;width:100%;height:auto;overflow:visible;color:var(--muted)}
.chart-grid{stroke:var(--line);stroke-width:1;stroke-dasharray:3 5}
.chart-line{fill:none;stroke:var(--accent);stroke-width:2.7;stroke-linecap:round;stroke-linejoin:round}
.chart-line.gap{stroke-dasharray:4 6;opacity:.65}
.chart-dot{fill:var(--paper);stroke:var(--accent);stroke-width:2.4;pointer-events:none}
.chart-hit{fill:transparent;cursor:crosshair;outline:none}
.chart-hit:focus+.chart-dot{stroke-width:5}
.chart-label{fill:var(--muted);font-size:11px;font-family:inherit;font-variant-numeric:tabular-nums}
.chart-unit{fill:var(--muted);font-size:10px}
.chart-tooltip{position:absolute;z-index:3;white-space:nowrap;border-radius:8px;background:var(--ink);color:var(--canvas);padding:7px 10px;font-size:11px;box-shadow:0 8px 22px rgb(0 0 0 / 18%);pointer-events:none}
.chart-empty{display:grid;place-items:center;align-content:center;min-height:220px;gap:5px;text-align:center;color:var(--muted)}
.chart-empty strong{color:var(--ink);font-size:13px}
.chart-empty p{margin:0;font-size:10px}
.fine-print{margin:0 20px 13px;color:var(--muted);font-size:9.5px}
.record-list{border-top:1px solid var(--line)}
.record-list summary{padding:11px 20px;color:var(--muted);font-size:11px;cursor:pointer}
.record-list>div{padding:0 20px 11px}
.record-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;border:0;border-top:1px solid var(--line);background:none;padding:9px 0;text-align:left;font-size:11px;font-variant-numeric:tabular-nums;cursor:pointer}
.record-row small{color:var(--muted)}
.calendar-nav{display:flex;align-items:center;gap:4px}
.calendar-weekdays,.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;padding:0 13px}
.calendar-weekdays{color:var(--muted);font-size:9px;text-align:center;padding-bottom:7px}
.calendar-day{appearance:none;position:relative;min-width:0;min-height:58px;border:1px solid transparent;border-radius:9px;background:transparent;padding:6px 2px;cursor:pointer}
.calendar-day:hover{background:var(--canvas)}
.calendar-day.outside{opacity:.34}
.calendar-day.future{cursor:default}
.calendar-day.future:hover{background:transparent}
.calendar-day.has-weight{background:var(--accent-soft)}
.calendar-day.today .day-number{background:var(--ink);color:var(--canvas)}
.day-number{display:grid;place-items:center;width:22px;height:22px;margin:0 auto 3px;border-radius:50%;font-size:10px}
.day-weight{display:block;font-size:9.5px;font-weight:750;font-variant-numeric:tabular-nums}
.toast{position:fixed;z-index:30;left:50%;bottom:24px;transform:translateX(-50%);max-width:calc(100% - 30px);border-radius:10px;background:var(--ink);color:var(--canvas);padding:10px 16px;box-shadow:0 10px 35px rgb(0 0 0 / 20%);font-size:11px;text-align:center}
.toast.error{background:var(--danger);color:#fff}
.dialog{width:min(460px,calc(100% - 28px));max-height:calc(100dvh - 36px);overflow:auto;border:1px solid var(--line);border-radius:19px;background:var(--paper);color:var(--ink);padding:22px;box-shadow:0 24px 90px rgb(0 0 0 / 28%)}
.dialog::backdrop{background:rgb(18 20 17 / 46%);backdrop-filter:blur(4px)}
.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:17px}
.dialog-head h2{margin:0;font-size:22px;letter-spacing:-.03em}
.field-label{display:block;margin:14px 0 6px;font-size:11px;font-weight:750}
.field{width:100%;border:1px solid var(--line);border-radius:10px;background:var(--canvas);color:var(--ink);padding:10px 11px;outline:none}
.field:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.weight-input{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:11px;background:var(--canvas);padding:9px 12px}
.weight-input:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.weight-input input{width:100%;min-width:0;border:0;outline:0;background:none;color:var(--ink);font-size:28px;font-variant-numeric:tabular-nums}
.weight-input span{color:var(--muted);font-size:12px}
.field-help{margin:7px 0 0;color:var(--muted);font-size:9.5px}
.form-error{margin:11px 0 0;border-radius:8px;background:var(--danger-soft);padding:8px 10px;color:var(--danger);font-size:11px}
.dialog-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:21px}
.danger-link{appearance:none;margin-right:auto;border:0;background:none;padding:7px 1px;color:var(--danger);font-size:10.5px;font-weight:700;cursor:pointer}
.confirm p{color:var(--muted);font-size:12px;white-space:pre-line}
@media(max-width:720px){
  .topbar-inner{gap:10px;min-height:52px;width:min(100% - 24px,1020px)}
  .brand-mark{width:28px;height:28px}
  .view-tabs button{padding:6px 9px;font-size:11px}
  .shell{width:min(100% - 24px,1020px);padding:16px 0 36px}
  .page-hero{gap:14px;margin-bottom:20px}
  h1{font-size:24px}
  .plan-intro p,.hero-copy>p:last-child{font-size:12px}
  .plan-switch{gap:3px;margin-bottom:12px}
  .split-button{min-height:38px;padding:8px}
  .workout-card{border-radius:14px}
  .workout-head{flex-direction:column;gap:5px;padding:14px 15px 10px}
  .workout-head h2{font-size:21px}
  .workout-head p:last-child{font-size:12px}
  .exercise-toggle{grid-template-columns:26px minmax(0,1fr) 16px;gap:9px;padding:11px 14px}
  .exercise-number{width:24px;height:24px}
  .exercise-heading strong{font-size:16px}
  .exercise-panel{padding:3px 14px 18px}
  .exercise-panel-inner{grid-template-columns:1fr;gap:16px;padding-top:15px}
  .exercise-media{max-width:360px}
  .exercise-media img{aspect-ratio:1.5}
  .exercise-prescription{flex-wrap:wrap;gap:4px 12px}
  .exercise-prescription strong{font-size:15px}
  .exercise-detail-grid{grid-template-columns:118px minmax(0,1fr);gap:16px}
  .anatomy{gap:5px;padding:8px 3px;border-radius:11px}
  .anatomy-view svg{height:94px}
  .workout-footer{align-items:center;gap:7px;padding:10px 14px;font-size:10px}
  .starter-notes{grid-template-columns:1fr;gap:14px;padding:20px 0}
  .starter-notes h2{font-size:21px}
  .weight-hero{align-items:flex-start}
  .stats{grid-template-columns:1fr 1fr}
  .stat{padding:14px 12px}
  .stat:nth-child(2){border-right:0}
  .stat:nth-child(3){grid-column:1/-1;border-top:1px solid var(--line)}
  .stat strong{font-size:23px}
  .panel-head{padding:16px 14px 9px}
  .range-switch button{padding:5px 6px;font-size:9px}
  .chart-wrap{margin-left:4px;margin-right:4px}
  .fine-print{margin-left:13px;margin-right:13px}
  .record-list summary{padding-left:14px}
  .record-list>div{padding-left:14px;padding-right:14px}
  .calendar-weekdays,.calendar{padding-left:4px;padding-right:4px;gap:1px}
  .calendar-day{min-height:51px;padding:5px 0}
}
@media(max-width:410px){
  .brand-copy strong{font-size:12px}
  .brand{gap:7px}
  .view-tabs{gap:1px;padding:2px}
  .view-tabs button{padding:6px 7px}
  .exercise-toggle-label svg{width:16px;height:16px}
  .exercise-detail-grid{grid-template-columns:105px minmax(0,1fr);gap:13px}
  .anatomy-view svg{height:86px}
  .target-copy{font-size:11px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
@media(prefers-reduced-motion:no-preference){
  .exercise-panel-inner{animation:panel-in .18s ease-out both}
  @keyframes panel-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
}
