.sp-advanced-builder{--ab-ink:#16364a;--ab-muted:#6f7f89;--ab-line:#dce5e9;--ab-accent:#d7ff45;position:relative;max-width:860px;margin:0 auto;background:#f7f9fa;border:1px solid var(--ab-line);border-radius:22px;overflow:hidden;color:var(--ab-ink)}
.sp-ab-top{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;background:#fff;border-bottom:1px solid var(--ab-line)}.sp-ab-top div{display:grid}.sp-ab-top span{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ab-muted)}.sp-ab-top button,.sp-ab-modes button,.sp-ab-exercise header button,.sp-ab-ex-menu button,.sp-ab-analytics button,.sp-ab-settings>button{border:0;background:transparent;color:inherit;cursor:pointer}
.sp-ab-modes{display:grid;grid-template-columns:1fr 1fr;padding:10px 18px 0;background:#fff}.sp-ab-focus{margin:0;padding:8px 18px;background:#fff;color:var(--ab-muted);font-size:12px}.sp-ab-modes button{padding:12px;border-bottom:2px solid transparent}.sp-ab-modes .is-active{border-color:var(--ab-ink);font-weight:700}.sp-ab-form{padding:16px}.sp-ab-generate{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end;margin-bottom:16px}.sp-ab-generate label,.sp-ab-settings label{display:grid;gap:5px;font-size:12px;font-weight:700}.sp-ab-generate select,.sp-ab-settings select,.sp-ab-settings input{min-height:42px;border:1px solid var(--ab-line);border-radius:10px;background:#fff;padding:8px}
.sp-ab-nav{display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border-bottom:1px solid var(--ab-line)}.sp-ab-nav button{border:0;background:#fff;padding:14px;color:var(--ab-muted);font-weight:700;cursor:pointer}.sp-ab-nav button.is-active{color:var(--ab-ink);box-shadow:inset 0 -3px var(--ab-accent)}
.sp-ab-page{padding:20px;min-height:420px}.sp-ab-page h2{margin:0 0 18px}.sp-ab-settings-form{display:grid;gap:14px;max-width:520px}.sp-ab-settings-form label{display:grid;gap:6px;font-weight:700}.sp-ab-settings-form select,.sp-ab-settings-form input{min-height:44px;border:1px solid var(--ab-line);border-radius:10px;padding:8px;background:#fff}.sp-ab-empty{padding:38px 20px;text-align:center;color:var(--ab-muted);background:#fff;border:1px dashed var(--ab-line);border-radius:16px}.sp-ab-history{display:grid;gap:10px}.sp-ab-history article{display:flex;align-items:center;gap:12px;padding:14px;background:#fff;border:1px solid var(--ab-line);border-radius:12px}.sp-ab-history article>div{display:grid;gap:3px;flex:1}.sp-ab-history article span,.sp-ab-history article em{font-size:12px;color:var(--ab-muted);font-style:normal}.sp-ab-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.sp-ab-metrics article{display:grid;padding:18px;background:#fff;border:1px solid var(--ab-line);border-radius:14px}.sp-ab-metrics strong{font-size:28px}.sp-ab-metrics span{color:var(--ab-muted)}
.sp-ab-canvas{display:grid;gap:12px}.sp-ab-exercise{background:#fff;border:1px solid var(--ab-line);border-radius:16px;padding:14px}.sp-ab-exercise header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.sp-ab-exercise header button{font-size:16px;font-weight:700;text-align:left}.sp-ab-exercise header span{font-size:11px;text-transform:uppercase;color:var(--ab-muted)}.sp-ab-setgrid{display:grid;grid-template-columns:30px 1fr 1fr;gap:7px;align-items:center}.sp-ab-setgrid>span{font-size:10px;text-transform:uppercase;color:var(--ab-muted)}.sp-ab-setgrid input{width:100%;min-width:0;border:1px solid var(--ab-line);border-radius:9px;padding:9px;background:#fbfcfc;color:var(--ab-ink)}.sp-ab-setgrid label{position:relative}.sp-ab-setgrid small{position:absolute;right:8px;top:10px;color:var(--ab-muted)}.sp-ab-ex-menu{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid var(--ab-line)}.sp-ab-ex-menu button{padding:7px 9px;border-radius:8px;background:#eef3f5}.sp-ab-actions{position:sticky;bottom:0;display:flex;gap:8px;margin:16px -16px -16px;padding:12px 16px;background:rgba(255,255,255,.96);border-top:1px solid var(--ab-line)}
.sp-ab-analytics-fab{position:fixed;right:24px;bottom:88px;width:52px;height:52px;border:0;border-radius:50%;background:var(--ab-accent);color:#102b3c;font-weight:900;box-shadow:0 10px 28px rgba(0,0,0,.18);z-index:50}.sp-ab-analytics,.sp-ab-settings{position:fixed;inset:0;z-index:120;background:#f7f9fa;overflow:auto;padding:20px}.sp-ab-analytics header,.sp-ab-settings{color:var(--ab-ink)}.sp-ab-analytics header{display:flex;gap:12px;align-items:center}.sp-ab-analytics nav{display:flex;overflow:auto;gap:5px;border-bottom:1px solid var(--ab-line);margin:12px 0 20px}.sp-ab-analytics nav button{padding:10px;white-space:nowrap}.sp-ab-settings{left:auto;width:min(390px,100%);background:#fff;box-shadow:-10px 0 30px rgba(0,0,0,.15)}.sp-ab-settings form{display:grid;gap:14px;margin-top:24px}.sp-builder-text-small{font-size:14px}.sp-builder-text-large{font-size:18px}
@media(max-width:700px){.sp-advanced-builder{border-radius:0;border-left:0;border-right:0}.sp-ab-generate{grid-template-columns:1fr 1fr}.sp-ab-generate .sp-button{grid-column:1/-1}.sp-ab-form{padding:12px}.sp-ab-actions{margin-left:-12px;margin-right:-12px;margin-bottom:-12px;flex-wrap:wrap}.sp-ab-analytics-fab{right:16px;bottom:78px}.sp-ab-setgrid{grid-template-columns:26px minmax(70px,1fr) minmax(90px,1fr)}.sp-ab-page{padding:14px}.sp-ab-history article{align-items:flex-start;flex-wrap:wrap}}


/* v0.41.2: Advanced Builder is its own focused workspace, not a Legacy card inside Training. */
.sp-ab-top{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px}
.sp-ab-exit{display:inline-flex;align-items:center;color:inherit;text-decoration:none;font-size:13px;font-weight:600;white-space:nowrap}
.sp-ab-context{text-align:center;min-width:0}.sp-ab-context strong,.sp-ab-context span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sp-ab-context strong{font-size:15px}.sp-ab-context span{font-size:10px}
.sp-ab-menu-toggle{font-size:24px;line-height:1;padding:8px}.sp-ab-menu{position:absolute;right:12px;top:62px;z-index:90;min-width:190px;padding:8px;background:#fff;border:1px solid var(--ab-line);border-radius:14px;box-shadow:0 14px 35px rgba(17,42,58,.18)}.sp-ab-menu button,.sp-ab-menu .sp-ab-menu-link{display:block;width:100%;padding:12px;border:0;border-radius:9px;background:#fff;text-align:left;font-weight:700;color:var(--ab-ink);cursor:pointer;text-decoration:none;box-sizing:border-box}.sp-ab-menu button:hover,.sp-ab-menu .sp-ab-menu-link:hover{background:#eef3f5}.sp-ab-technique{margin-top:10px;padding-top:10px;border-top:1px solid var(--ab-line)}.sp-ab-technique summary{cursor:pointer;font-weight:700}.sp-ab-technique p{color:var(--ab-muted);line-height:1.5}
body.sp-advanced-builder-workspace-active .sp-app-view[data-app-view="training"]>.sp-app-view-head{display:none!important}
body.sp-advanced-builder-workspace-active .sp-app-bottom-nav{display:grid!important}
body.sp-advanced-builder-workspace-active .sp-app-view[data-app-view="training"],
body.sp-advanced-builder-workspace-active .sp-app-view[data-app-view="training"] .sp-app-view-content{padding:0!important;margin:0!important;max-width:none!important}
body.sp-advanced-builder-workspace-active .sp-app-view[data-app-view="training"] .sp-module-tool{margin:0!important;padding:0!important}
body.sp-advanced-builder-workspace-active [data-training-workspace]>.sp-training-workspace-nav{display:none!important}body.sp-advanced-builder-workspace-active [data-training-create]>.sp-kicker,body.sp-advanced-builder-workspace-active [data-training-create]>h2,body.sp-advanced-builder-workspace-active [data-training-create]>p{display:none!important}body.sp-advanced-builder-workspace-active [data-training-create]{margin:0!important;padding:0!important;border:0!important;background:transparent!important}
body.sp-advanced-builder-workspace-active .sp-advanced-builder{max-width:none;min-height:calc(100dvh - 1px);border:0;border-radius:0}
.sp-ab-active-session .sp-session[hidden]{display:none!important}.sp-ab-active-session .sp-training-history>h3,.sp-ab-active-session .sp-personal-bests,.sp-ab-active-session .sp-session-actions{display:none!important}.sp-ab-history-controls{display:flex;gap:12px;align-items:center}.sp-ab-history-detail{width:100%;padding:12px 0}.sp-ab-history-detail p{margin:4px 0}
@media(max-width:700px){.sp-ab-top{padding-top:calc(16px + env(safe-area-inset-top));}.sp-ab-exit{font-size:12px}.sp-ab-context strong{font-size:14px}}

/* v0.41.10: keep Advanced Builder navigation usable during a live self session and normalize analytics layout. */
.sp-advanced-builder.is-active-session .sp-ab-analytics-fab{display:flex!important;align-items:center;justify-content:center}
.sp-ab-active-session{padding:12px 14px 20px}.sp-ab-active-session .sp-training-history{margin:0}.sp-ab-active-session .sp-session{background:#fff;border:1px solid var(--ab-line);border-radius:14px;overflow:hidden}
.sp-ab-analytics{padding:0!important;display:block;top:var(--ab-site-header-offset,0)!important}.sp-ab-analytics[hidden]{display:none!important}.sp-ab-analytics>header{position:sticky;top:0;z-index:2;margin:0;padding:18px 16px 14px;background:var(--ab-ink);color:#fff}.sp-ab-analytics>nav{position:sticky;top:58px;z-index:2;margin:0;padding:12px 16px 0;background:#f7f9fa}.sp-ab-analytics>[data-analytics-pane]{padding:18px 16px 40px}.sp-ab-history button.sp-link{border:0;background:transparent;padding:0;color:inherit;text-decoration:underline;cursor:pointer}

/* v0.41.11: keep Analytics below the fixed SERHILL site header; nutrition metrics are rounded in JS. */
.sp-training-workspace:has([data-advanced-builder]) > .sp-training-workspace-nav{display:none!important}

/* v0.41.66 — Advanced Builder lives inside the canonical Training workspace. */
.sp-advanced-builder{
  width:100%;
  max-width:100%;
  margin:0;
  border-radius:18px;
  overflow:visible;
}
.sp-ab-top{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  padding:14px 16px;
  border-radius:18px 18px 0 0;
}
.sp-ab-context{text-align:left}
.sp-ab-menu{top:56px;right:12px}
.sp-ab-menu button.is-active{background:#eef3f5;color:var(--ab-ink)}
.sp-ab-client-strip{
  display:grid;
  gap:3px;
  padding:13px 16px;
  background:#f0f4f7;
  border-bottom:1px solid var(--ab-line);
}
.sp-ab-client-strip>span,.sp-ab-section-head span{
  color:var(--ab-muted);
  font-size:10px;
  font-weight:800;
  letter-spacing:.12em;
}
.sp-ab-client-strip>strong{font-size:15px}
.sp-ab-client-strip>small{color:var(--ab-muted);font-size:12px}
.sp-ab-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:18px}
.sp-ab-section-head h2{margin:4px 0 6px}
.sp-ab-section-head p{margin:0;color:var(--ab-muted);line-height:1.5}
.sp-ab-history-list{display:grid;gap:12px}
.sp-ab-history-card{
  display:grid;
  gap:12px;
  padding:15px;
  background:#fff;
  border:1px solid var(--ab-line);
  border-radius:14px;
}
.sp-ab-history-card-main{display:grid;gap:4px}
.sp-ab-history-card-main>strong{font-size:16px}
.sp-ab-history-card-main>span{font-size:12px;color:var(--ab-muted)}
.sp-ab-history-card-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.sp-ab-history-card-actions .sp-button{min-height:40px;padding:8px 12px}
.sp-ab-history-delete{margin-left:auto;color:#a53a32!important}
.sp-ab-analytics{
  position:static!important;
  inset:auto!important;
  top:auto!important;
  z-index:auto!important;
  display:block!important;
  overflow:visible!important;
  width:auto!important;
  min-height:0!important;
  padding:0!important;
  background:transparent!important;
}
.sp-ab-analytics[hidden]{display:none!important}
.sp-ab-analytics-tabs,
.sp-ab-analytics>nav{
  position:static!important;
  top:auto!important;
  z-index:auto!important;
  display:flex;
  gap:6px;
  margin:0 0 18px!important;
  padding:0 0 8px!important;
  overflow-x:auto;
  overflow-y:hidden;
  background:transparent!important;
  border-bottom:1px solid var(--ab-line);
  scrollbar-width:none;
}
.sp-ab-analytics-tabs::-webkit-scrollbar{display:none}
.sp-ab-analytics-tabs button,.sp-ab-analytics>nav button{
  flex:0 0 auto;
  padding:9px 11px!important;
  white-space:nowrap;
  border-radius:10px;
  color:var(--ab-muted);
  font-weight:700;
}
.sp-ab-analytics-tabs button.is-active,.sp-ab-analytics>nav button.is-active{background:#e9eef2;color:var(--ab-ink)}
.sp-ab-analytics>[data-analytics-pane]{padding:0 0 18px!important}
.sp-ab-meal-plan-label{margin-top:12px;color:var(--ab-muted)}
.sp-ab-meal-plan-label span{font-weight:700;color:var(--ab-ink)}
.sp-ab-settings-form{max-width:620px}
.sp-ab-analytics-fab{display:none!important}
body.sp-advanced-builder-workspace-active .sp-app-view[data-app-view="training"]>.sp-app-view-head{display:block!important}
body.sp-advanced-builder-workspace-active .sp-app-view[data-app-view="training"],
body.sp-advanced-builder-workspace-active .sp-app-view[data-app-view="training"] .sp-app-view-content{
  padding-left:inherit!important;
  padding-right:inherit!important;
  margin:inherit!important;
  max-width:100%!important;
}
body.sp-advanced-builder-workspace-active .sp-app-view[data-app-view="training"] .sp-module-tool{margin:0!important;padding:0!important}
body.sp-advanced-builder-workspace-active .sp-advanced-builder{min-height:0!important;border:1px solid var(--ab-line)!important;border-radius:18px!important}
@media(max-width:700px){
  .sp-advanced-builder{border-radius:16px;border-left:1px solid var(--ab-line);border-right:1px solid var(--ab-line)}
  .sp-ab-top{padding-top:14px}
  .sp-ab-page{padding:14px 12px 20px}
  .sp-ab-history-card-actions{display:grid;grid-template-columns:1fr 1fr}
  .sp-ab-history-card-actions .sp-ab-history-delete{grid-column:1/-1;margin-left:0;text-align:left;padding:8px 2px}
}

/* v0.41.66 — suppress only the legacy Training wrapper while Advanced Builder is mounted. */
#training.sp-advanced-builder-host-active{
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
#training.sp-advanced-builder-host-active > .sp-kicker,
#training.sp-advanced-builder-host-active > h2,
#training.sp-advanced-builder-host-active > p,
#training.sp-advanced-builder-host-active > .sp-builder-client-gate{
  display:none!important;
}

.sp-ab-technique-visual{display:grid;place-items:center;margin:10px 0 12px;overflow:hidden;border:1px solid var(--ab-line);border-radius:12px;background:#f7f9fb}.sp-ab-technique-visual[hidden]{display:none!important}.sp-ab-technique-visual img{display:block;width:100%;max-width:520px;max-height:420px;object-fit:contain;background:#fff}.sp-ab-technique p:empty{display:none}
.sp-ab-setrow{display:contents}
.sp-ab-exercise.is-grouped{border-left:3px solid #2f80c4;border-radius:0 16px 16px 0;margin-left:6px}
.sp-ab-exercise.is-group-first{border-top-left-radius:12px;margin-bottom:-13px;padding-bottom:27px}
.sp-ab-exercise.is-group-middle{border-top-color:transparent;border-bottom-color:transparent;border-radius:0;margin-top:-1px;margin-bottom:-13px;padding-top:20px;padding-bottom:27px}
.sp-ab-exercise.is-group-last{border-bottom-left-radius:12px;margin-top:-1px;padding-top:20px}
.sp-ab-exercise:not(.is-grouped) [data-unlink],.sp-ab-exercise:not(.is-grouped) [data-group-up],.sp-ab-exercise:not(.is-grouped) [data-group-down]{display:none}
.sp-ab-combine-picker{display:grid;gap:6px;margin:10px 0 12px;padding:10px;border:1px solid var(--ab-line);border-radius:10px;background:#f7fafc}
.sp-ab-combine-picker strong{font-size:12px;color:var(--ab-muted)}
.sp-ab-combine-picker button{border:0;border-radius:8px;padding:9px 10px;background:#fff;text-align:left;cursor:pointer;color:var(--ab-ink)}
.sp-ab-combine-link{display:flex;justify-content:center;align-items:center;margin:14px 0 10px;position:relative;z-index:2}
.sp-ab-combine-link button{border:1px solid var(--ab-line);border-radius:999px;background:#f7fafc;color:var(--ab-muted);padding:6px 13px;font-size:11px;line-height:1.2;cursor:pointer}
.sp-ab-exercise.is-grouped .sp-ab-combine-link button{border-color:#bfd6e8;color:#2f6f9f;background:#f4f9fd}
.sp-ab-ex-menu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:0;padding-top:12px;align-items:stretch}
.sp-ab-ex-menu[hidden]{display:none!important}
.sp-ab-ex-menu button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:8px 10px;text-align:center;line-height:1.25}

/* v0.41.195: keep iOS focused numeric fields at 16px to prevent automatic page zoom. */
@media(max-width:700px){.sp-ab-setgrid input{font-size:16px}}

/* v0.41.197 — visual parity polish: make plan intent and exercise controls obvious without adding icon clutter. */
.sp-ab-control-hint{display:block;margin:8px 0 2px;color:var(--ab-muted);font-size:10px;line-height:1.35;text-align:right;opacity:.82}
.sp-ab-workout-context>label{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:center;column-gap:12px;row-gap:6px}
.sp-ab-workout-context>label>input{min-width:0}
@media(max-width:700px){
  .sp-ab-workout-context>label{grid-template-columns:1fr;gap:7px}
  .sp-ab-workout-context input,.sp-ab-workout-context select{font-size:16px!important}
  .sp-ab-control-hint{margin-top:9px}
}

/* v0.41.214 — keep the Advanced Builder Focus control aligned with the existing menu. */
.sp-ab-top .sp-ab-top-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}
.sp-ab-top .sp-ab-top-actions .sp-builder-focus-toggle{border:1px solid currentColor;background:transparent;padding:8px 12px;font-size:13px;min-height:34px;border-radius:999px}
.sp-advanced-builder.is-builder-focus .sp-ab-top .sp-ab-top-actions .sp-builder-focus-toggle{width:44px;min-width:44px;height:44px;min-height:44px;padding:0;border-radius:50%;font-size:28px;background:#fff}


/* v0.41.218 — Focus/mobile Advanced Builder alignment and compact lifecycle actions. */
@media(max-width:700px){
  .sp-advanced-builder.is-builder-focus .sp-ab-form{padding-left:0!important;padding-right:0!important;}
  .sp-advanced-builder.is-builder-focus .sp-ab-generate{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:12px!important;
    width:100%!important;
    max-width:100%!important;
  }
  .sp-advanced-builder.is-builder-focus .sp-ab-generate>label{min-width:0!important;width:100%!important;}
  .sp-advanced-builder.is-builder-focus .sp-ab-generate select{
    box-sizing:border-box!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }
  .sp-advanced-builder.is-builder-focus .sp-ab-generate>.sp-button{grid-column:1/-1!important;width:100%!important;}
  .sp-advanced-builder .sp-ab-actions{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:8px!important;
    align-items:stretch!important;
  }
  .sp-advanced-builder .sp-ab-actions>.sp-button{
    width:100%!important;
    min-width:0!important;
    margin:0!important;
  }
  .sp-advanced-builder .sp-ab-actions>.sp-button:last-child:nth-child(odd){grid-column:1/-1!important;}
}

/* v0.41.220 — Focus lifecycle actions belong to the document flow, never the viewport. */
.sp-advanced-builder.is-builder-focus .sp-ab-actions{
  position:static!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  z-index:auto!important;
  margin-top:16px!important;
  margin-bottom:0!important;
  background:#fff!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
@media(max-width:700px){
  .sp-advanced-builder.is-builder-focus .sp-ab-actions{
    margin-left:0!important;
    margin-right:0!important;
    padding:12px!important;
    border:1px solid var(--ab-line)!important;
    border-radius:14px!important;
  }
}

/* v0.41.263 custom multi-muscle focus picker */
.sp-ab-focus-picker{display:grid;grid-template-columns:1fr 1fr;grid-template-areas:"lagging groups";gap:10px;min-width:0;grid-column:1/-1;align-items:start}
.sp-ab-lagging-group{grid-area:lagging}
.sp-ab-focus-groups{grid-area:groups;margin:0;padding:10px 12px;border:1px solid rgba(20,50,73,.14);border-radius:12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 12px;background:rgba(255,255,255,.32)}
.sp-ab-focus-groups legend{padding:0 5px;font-size:12px;font-weight:700;color:#20384c}
.sp-ab-focus-groups label{display:flex;align-items:center;gap:7px;font-size:13px;line-height:1.2;min-width:0}
.sp-ab-focus-groups input{margin:0;flex:0 0 auto}
.sp-ab-focus-auto{grid-column:1/-1;padding-bottom:7px;margin-bottom:2px;border-bottom:1px solid rgba(20,50,73,.10);font-weight:700}
.sp-ab-focus-groups small{grid-column:1/-1;opacity:.7;font-size:11px;line-height:1.25}
@media (max-width:640px){.sp-ab-focus-groups{grid-template-columns:repeat(2,minmax(0,1fr));padding:9px 10px;gap:8px 10px}}

/* v0.41.268: keep History inspection inside Advanced Builder context. */
.sp-ab-history-inline-detail{display:grid;gap:12px;width:100%}.sp-ab-history-inline-nav{position:sticky;top:0;z-index:4;padding:8px 0;background:#f7f9fa}.sp-ab-history-inline-detail .sp-training-history{margin:0}.sp-ab-history-inline-detail .sp-session{margin:0}
