@font-face{font-family:"Steve Sans";font-style:normal;font-weight:100 900;font-display:swap;src:url("/assets/fonts/SteveSans.woff2") format("woff2")}@font-face{font-family:"Steve Sans";font-style:italic;font-weight:100 900;font-display:swap;src:url("/assets/fonts/SteveSans-Italic.woff2") format("woff2")}@font-face{font-family:"Steve Brains Mono";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/fonts/SteveBrainsMono.woff") format("woff")}@font-face{font-family:"Steve Brains Mono";font-style:italic;font-weight:400;font-display:swap;src:url("/assets/fonts/SteveBrainsMono-Italic.woff") format("woff")}
:root{--safe-bottom:env(safe-area-inset-bottom);--shell-sidebar:17rem;--shell-topbar:4rem;--shell-radius:1rem;--shell-shadow:0 .5rem 2rem rgba(15,23,42,.07);--bs-body-font-family:"Steve Sans",Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color-scheme:light}html[data-bs-theme="dark"]{color-scheme:dark;--shell-shadow:0 .5rem 2rem rgba(0,0,0,.22)}html,body,button,input,select,textarea,.tooltip,.popover{font-family:var(--bs-body-font-family)}body{min-height:100vh}code,kbd,pre,samp,.font-monospace{font-family:"Steve Brains Mono",ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace!important}
a{color:inherit}.app-body{background:var(--bs-tertiary-bg)}.app-frame{min-height:100dvh}.app-workspace{min-width:0}.app-main{width:100%;max-width:88rem;margin:0 auto;padding:1.25rem 1rem calc(6.25rem + var(--safe-bottom))}.app-sidebar{display:none}.app-topbar{position:sticky;top:0;z-index:1020;display:flex;align-items:center;justify-content:space-between;height:var(--shell-topbar);padding:0 1rem;background:color-mix(in srgb,var(--bs-body-bg) 90%,transparent);border-bottom:1px solid var(--bs-border-color-translucent);backdrop-filter:blur(16px)}.app-topbar__actions{display:flex;align-items:center;gap:.5rem}.app-topbar__name{display:none;color:var(--bs-secondary-color);font-size:.875rem}.app-brand{display:inline-flex;align-items:center;gap:.7rem;text-decoration:none;font-weight:750;letter-spacing:-.02em}.app-brand__mark{display:grid;place-items:center;width:2.15rem;height:2.15rem;border-radius:.7rem;background:var(--bs-primary);color:#fff;font-size:1.05rem;box-shadow:0 .35rem 1rem rgba(var(--bs-primary-rgb),.2)}.app-brand__text{font-size:1.08rem}.app-icon{width:1.35rem;height:1.35rem;flex:0 0 auto}.icon-button{display:inline-grid;place-items:center;width:2.6rem;height:2.6rem;border:0;border-radius:.8rem;background:transparent;color:var(--bs-secondary-color);text-decoration:none;transition:.15s ease}.icon-button:hover,.icon-button:focus-visible{background:var(--bs-secondary-bg);color:var(--bs-body-color)}.mobile-nav{position:fixed;left:.75rem;right:.75rem;bottom:calc(.75rem + var(--safe-bottom));z-index:1030;display:grid;grid-template-columns:repeat(5,1fr);padding:.35rem;background:color-mix(in srgb,var(--bs-body-bg) 92%,transparent);border:1px solid var(--bs-border-color-translucent);border-radius:1.15rem;box-shadow:0 .75rem 2rem rgba(15,23,42,.16);backdrop-filter:blur(18px)}.mobile-nav__link{display:flex;min-width:0;flex-direction:column;align-items:center;gap:.2rem;padding:.55rem .15rem;border-radius:.85rem;color:var(--bs-secondary-color);font-size:.68rem;font-weight:650;text-decoration:none}.mobile-nav__link .app-icon{width:1.25rem;height:1.25rem}.mobile-nav__link.is-active{background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary)}.page-header{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.35rem}.page-eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--bs-primary);font-size:.72rem;font-weight:750}.page-title{margin:0;font-size:clamp(1.65rem,4vw,2.15rem);font-weight:780;letter-spacing:-.035em}.page-description{max-width:44rem;margin:.3rem 0 0;color:var(--bs-secondary-color)}.page-actions{display:flex;flex-wrap:wrap;gap:.6rem}.app-card,.card{border-color:var(--bs-border-color-translucent);border-radius:var(--shell-radius);box-shadow:var(--shell-shadow)}.app-card{background:var(--bs-body-bg)}.card-header,.card-footer{background:transparent;border-color:var(--bs-border-color-translucent)}.btn{border-radius:.75rem;font-weight:680;padding:.62rem .95rem}.btn-sm{border-radius:.6rem;padding:.4rem .7rem}.btn-primary{box-shadow:0 .3rem .8rem rgba(var(--bs-primary-rgb),.16)}.form-label{font-weight:680}.form-control,.form-select{min-height:2.8rem;border-radius:.75rem;background-color:var(--bs-body-bg)}.form-control:focus,.form-select:focus{background-color:var(--bs-body-bg);box-shadow:0 0 0 .22rem rgba(var(--bs-primary-rgb),.12)}.form-text{color:var(--bs-secondary-color)}.app-alert{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;border-radius:.9rem;box-shadow:var(--shell-shadow)}.app-alert__icon{display:grid;place-items:center;width:1.7rem;height:1.7rem;border-radius:50%;background:currentColor;color:inherit;font-weight:800}.app-alert__icon::first-letter{color:#fff}.empty-state{padding:2.5rem 1.25rem;text-align:center}.empty-state__icon{display:grid;place-items:center;width:3.25rem;height:3.25rem;margin:0 auto 1rem;border-radius:1rem;background:rgba(var(--bs-primary-rgb),.1);color:var(--bs-primary);font-size:1.35rem;font-weight:800}.exercise-card{background:var(--bs-body-bg);border-radius:var(--shell-radius)!important;box-shadow:var(--shell-shadow);transition:transform .15s ease,box-shadow .15s ease}.exercise-card:hover{transform:translateY(-2px)}.library-thumb{width:64px;height:64px;object-fit:contain;background:var(--bs-tertiary-bg);border-radius:.8rem}.metric{height:100%;padding:1rem;text-align:center;background:var(--bs-body-bg);border:1px solid var(--bs-border-color-translucent);border-radius:var(--shell-radius);box-shadow:var(--shell-shadow)}.metric strong{display:block;font-size:1.4rem}.metric span{font-size:.75rem;color:var(--bs-secondary-color)}.list-group{border-radius:var(--shell-radius);box-shadow:var(--shell-shadow);overflow:hidden}.list-group-item{background:var(--bs-body-bg);border-color:var(--bs-border-color-translucent)}.table-card{overflow:hidden}.table-card .table{margin:0}.auth-body{align-items:center;background:radial-gradient(circle at 50% 0,rgba(13,110,253,.12),transparent 42%),var(--bs-body-bg);display:flex;justify-content:center;min-height:100dvh;padding:1.25rem}.auth-shell{max-width:30rem;width:100%}.auth-card{background:color-mix(in srgb,var(--bs-body-bg) 94%,transparent);border:1px solid var(--bs-border-color-translucent);border-radius:1.15rem;box-shadow:0 1.25rem 3.5rem rgba(0,0,0,.1)}html[data-bs-theme="dark"] .auth-body{background:radial-gradient(circle at 50% 0,rgba(70,140,255,.16),transparent 42%),var(--bs-body-bg)}html[data-bs-theme="dark"] .auth-card{box-shadow:0 1.25rem 3.5rem rgba(0,0,0,.35)}.auth-title{font-weight:700;letter-spacing:-.025em}.auth-subtitle{color:var(--bs-secondary-color)}.auth-card .form-control{background-color:var(--bs-body-bg);border-color:var(--bs-border-color);border-radius:.75rem}
@media(min-width:576px){.app-main{padding:1.75rem 1.5rem calc(6.5rem + var(--safe-bottom))}.page-header{flex-direction:row;align-items:flex-start;justify-content:space-between}.page-actions{justify-content:flex-end}.app-topbar__name{display:inline}}
@media(min-width:992px){.app-frame{display:grid;grid-template-columns:var(--shell-sidebar) minmax(0,1fr)}.app-sidebar{position:sticky;top:0;display:flex;flex-direction:column;height:100dvh;padding:1.25rem 1rem;background:var(--bs-body-bg);border-right:1px solid var(--bs-border-color-translucent)}.app-sidebar .app-brand{padding:0 .65rem;margin-bottom:1.5rem}.desktop-nav{display:flex;flex-direction:column;gap:.3rem}.desktop-nav__link{display:flex;align-items:center;gap:.8rem;padding:.72rem .8rem;border-radius:.8rem;color:var(--bs-secondary-color);font-weight:670;text-decoration:none}.desktop-nav__link:hover{background:var(--bs-tertiary-bg);color:var(--bs-body-color)}.desktop-nav__link.is-active{background:rgba(var(--bs-primary-rgb),.11);color:var(--bs-primary)}.sidebar-user{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.7rem;margin-top:auto;padding:.8rem .5rem 0;border-top:1px solid var(--bs-border-color-translucent)}.sidebar-user__avatar{display:grid;place-items:center;width:2.35rem;height:2.35rem;border-radius:.75rem;background:var(--bs-tertiary-bg);font-weight:800}.sidebar-user__copy{display:flex;min-width:0;flex-direction:column}.sidebar-user__copy strong,.sidebar-user__copy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user__copy strong{font-size:.84rem}.sidebar-user__copy span{color:var(--bs-secondary-color);font-size:.7rem}.app-topbar{display:none}.mobile-nav{display:none}.app-main{padding:2.25rem 2rem 3rem}}
.settings-form{padding-bottom:5.5rem}.settings-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.settings-number-control{max-width:13rem}.settings-select{max-width:18rem}.preference-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.preference-choice__item{display:flex;flex-direction:column;gap:.15rem;padding:1rem;border:1px solid var(--bs-border-color);border-radius:.85rem;background:var(--bs-body-bg);cursor:pointer;transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease}.preference-choice__item strong{font-size:.95rem}.preference-choice__item span{color:var(--bs-secondary-color);font-size:.8rem}.btn-check:checked+.preference-choice__item{border-color:var(--bs-primary);background:rgba(var(--bs-primary-rgb),.09);box-shadow:0 0 0 .2rem rgba(var(--bs-primary-rgb),.08)}.btn-check:focus-visible+.preference-choice__item{outline:2px solid var(--bs-primary);outline-offset:2px}.settings-switch{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.75rem;padding-left:0}.settings-switch .form-check-input{float:none;margin:.15rem 0 0}.settings-switch .form-check-label{display:flex;flex-direction:column;gap:.2rem}.settings-switch .form-check-label strong{font-size:.95rem}.settings-switch .form-check-label span{color:var(--bs-secondary-color);font-size:.82rem;line-height:1.35}.settings-savebar{position:fixed;left:1rem;right:1rem;bottom:calc(5.9rem + var(--safe-bottom));z-index:1025;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem .85rem .75rem 1rem;border:1px solid var(--bs-border-color-translucent);border-radius:1rem;background:color-mix(in srgb,var(--bs-body-bg) 94%,transparent);box-shadow:0 .75rem 2rem rgba(15,23,42,.15);backdrop-filter:blur(16px)}.settings-savebar__copy{display:none;min-width:0;flex-direction:column}.settings-savebar__copy strong,.settings-savebar__copy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-savebar__copy span{color:var(--bs-secondary-color);font-size:.75rem}.settings-savebar .btn{margin-left:auto}@media(min-width:576px){.settings-savebar__copy{display:flex}}@media(min-width:992px){.settings-form{padding-bottom:0}.settings-savebar{position:sticky;left:auto;right:auto;bottom:1.25rem;margin-top:1.5rem}.settings-savebar__copy{display:flex}}

.family-code{display:flex;flex-direction:column;align-items:flex-end;padding:.7rem .9rem;border-radius:.8rem;background:var(--bs-tertiary-bg)}.family-code span{font-size:.7rem;color:var(--bs-secondary-color);text-transform:uppercase;letter-spacing:.08em}.family-code strong,.family-code-input{font-family:"Steve Brains Mono",monospace;letter-spacing:.12em;text-transform:uppercase}.min-w-0{min-width:0}

.taxonomy-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.taxonomy-grid{display:grid;gap:1rem}.taxonomy-card{overflow:hidden}.taxonomy-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1rem 1.1rem}.taxonomy-anatomical{margin-top:.2rem;color:var(--bs-secondary-color);font-size:.8rem;font-style:italic}.taxonomy-view{flex:0 0 auto;padding:.25rem .5rem;border-radius:.5rem;background:var(--bs-tertiary-bg);color:var(--bs-secondary-color);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.taxonomy-list{border-radius:0;box-shadow:none}.taxonomy-muscle{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1.1rem}.taxonomy-muscle strong,.taxonomy-muscle span{display:block}.taxonomy-muscle>div:first-child>span{margin-top:.1rem;color:var(--bs-secondary-color);font-size:.78rem;font-style:italic}.taxonomy-muscle__meta{flex:0 0 auto;text-align:right;color:var(--bs-secondary-color);font-size:.7rem}.taxonomy-muscle__meta span+span{margin-top:.1rem}@media(min-width:768px){.taxonomy-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:575.98px){.taxonomy-summary{grid-template-columns:1fr}.taxonomy-summary .metric{display:flex;align-items:center;justify-content:space-between;text-align:left}.taxonomy-muscle{align-items:flex-start}.taxonomy-muscle__meta{max-width:6rem}}
.exercise-filters{display:grid;grid-template-columns:1fr;gap:1rem;padding:1rem}.exercise-filters__search{position:relative}.exercise-filters__search .form-control{padding-left:2.65rem}.exercise-filters__search-icon{position:absolute;left:.95rem;top:50%;z-index:2;transform:translateY(-50%);color:var(--bs-secondary-color);font-size:1.25rem;pointer-events:none}.exercise-filters__actions{display:flex;align-items:flex-end;gap:.5rem}.exercise-library-grid{display:grid;grid-template-columns:1fr;gap:1rem}.exercise-library-card{display:flex;min-width:0;flex-direction:column;overflow:hidden;transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease}.exercise-library-card:hover{transform:translateY(-2px)}.exercise-library-card.is-disabled{opacity:.72}.exercise-library-card__media{position:relative;display:grid;place-items:center;aspect-ratio:16/8;background:linear-gradient(145deg,var(--bs-tertiary-bg),var(--bs-secondary-bg));overflow:hidden}.exercise-library-card__media img{width:100%;height:100%;object-fit:contain;padding:.8rem}.exercise-library-card__placeholder{display:grid;place-items:center;width:4rem;height:4rem;border-radius:1.2rem;background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);font-size:2rem;font-weight:800}.exercise-library-card__group{position:absolute;left:.7rem;top:.7rem;padding:.3rem .55rem;border:1px solid var(--bs-border-color-translucent);border-radius:999px;background:color-mix(in srgb,var(--bs-body-bg) 88%,transparent);font-size:.7rem;font-weight:750;backdrop-filter:blur(10px)}.exercise-library-card__body{display:flex;flex:1;flex-direction:column;gap:.75rem;padding:1rem}.exercise-library-card__title{margin:0;font-size:1.05rem;font-weight:760;letter-spacing:-.018em}.exercise-library-card__equipment{margin-top:.15rem;color:var(--bs-secondary-color);font-size:.78rem}.exercise-library-card__muscles{color:var(--bs-body-color);font-size:.82rem}.exercise-library-card__meta{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:auto}.exercise-library-card__meta span{padding:.25rem .5rem;border-radius:.5rem;background:var(--bs-tertiary-bg);color:var(--bs-secondary-color);font-size:.72rem;font-weight:650}.exercise-library-card__footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;border-top:1px solid var(--bs-border-color-translucent)}.availability-dot{width:.65rem;height:.65rem;flex:0 0 auto;margin-top:.35rem;border-radius:50%;background:var(--bs-secondary-color);box-shadow:0 0 0 .2rem var(--bs-tertiary-bg)}.availability-dot.is-available{background:var(--bs-success)}
@media(min-width:576px){.exercise-library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:768px){.exercise-filters{grid-template-columns:minmax(14rem,2fr) repeat(3,minmax(9rem,1fr));align-items:end}.exercise-filters__search{align-self:end}.exercise-filters__actions{grid-column:1/-1}}
@media(min-width:1200px){.exercise-library-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.exercise-filters__actions{grid-column:auto}}
.exercise-editor{padding-bottom:2rem}.exercise-defaults-card{position:sticky;top:1.5rem}.muscle-picker-grid{display:grid;grid-template-columns:1fr;gap:1.5rem}.muscle-region{margin:0 0 1rem;padding:.75rem;border:1px solid var(--bs-border-color-translucent);border-radius:.8rem;background:var(--bs-tertiary-bg)}.muscle-region legend{float:none;width:auto;margin:0 0 .5rem;padding:0 .2rem;color:var(--bs-secondary-color);font-size:.72rem;font-weight:750;letter-spacing:.06em;text-transform:uppercase}.muscle-check{display:flex;align-items:flex-start;gap:.6rem;padding:.45rem .35rem;border-radius:.5rem;cursor:pointer}.muscle-check:hover{background:var(--bs-secondary-bg)}.muscle-check .form-check-input{flex:0 0 auto;margin-top:.2rem}.muscle-check span,.muscle-check strong,.muscle-check small{display:block}.muscle-check strong{font-size:.86rem}.muscle-check small{color:var(--bs-secondary-color);font-size:.7rem;font-style:italic}@media(min-width:768px){.muscle-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:1199.98px){.exercise-defaults-card{position:static}}
.exercise-detail-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:1.25rem}.exercise-gallery{min-width:0;overflow:hidden}.exercise-gallery__viewport{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;overscroll-behavior-x:contain}.exercise-gallery__viewport::-webkit-scrollbar{display:none}.exercise-gallery__slide{flex:0 0 100%;min-width:0;margin:0;scroll-snap-align:start;scroll-snap-stop:always}.exercise-gallery__image-wrap{display:grid;place-items:center;aspect-ratio:4/3;min-height:18rem;background:linear-gradient(145deg,var(--bs-tertiary-bg),var(--bs-secondary-bg));overflow:hidden}.exercise-gallery__image-wrap img{width:100%;height:100%;object-fit:contain;padding:1.25rem}.exercise-gallery__image-wrap--map img{padding:.65rem 1.5rem}.exercise-gallery__slide figcaption{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;border-top:1px solid var(--bs-border-color-translucent);font-size:.82rem}.exercise-gallery__slide figcaption span:first-child{font-weight:750}.exercise-gallery__slide figcaption span:last-child{color:var(--bs-secondary-color)}.exercise-gallery__controls{display:flex;align-items:center;justify-content:center;gap:1rem;padding:.8rem 1rem 0}.exercise-gallery__controls .icon-button{font-size:1.65rem}.exercise-gallery__dots{display:flex;align-items:center;justify-content:center;gap:.5rem}.exercise-gallery__dot{width:.55rem;height:.55rem;padding:0;border:0;border-radius:50%;background:var(--bs-border-color);transition:width .15s ease,background-color .15s ease}.exercise-gallery__dot.is-active{width:1.4rem;border-radius:999px;background:var(--bs-primary)}.exercise-gallery__hint{margin:.45rem 0 .8rem;text-align:center;color:var(--bs-secondary-color);font-size:.72rem}.exercise-detail-sidebar{min-width:0}.exercise-detail-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;margin:1rem 0 1.25rem}.exercise-detail-metrics div{display:flex;min-width:0;flex-direction:column;padding:.75rem;border-radius:.75rem;background:var(--bs-tertiary-bg)}.exercise-detail-metrics strong{overflow:hidden;text-overflow:ellipsis;font-size:1.05rem;white-space:nowrap}.exercise-detail-metrics span{color:var(--bs-secondary-color);font-size:.68rem;text-transform:uppercase;letter-spacing:.05em}.exercise-detail-list{margin:0}.exercise-detail-list div{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 0;border-top:1px solid var(--bs-border-color-translucent)}.exercise-detail-list dt{color:var(--bs-secondary-color);font-size:.8rem;font-weight:600}.exercise-detail-list dd{margin:0;text-align:right;font-size:.82rem;font-weight:700}.exercise-muscle-list{display:grid;gap:.6rem}.exercise-muscle-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:.75rem;padding:.7rem .8rem;border-radius:.7rem;background:rgba(var(--bs-primary-rgb),.09)}.exercise-muscle-list strong,.exercise-muscle-list span,.exercise-muscle-list small{display:block}.exercise-muscle-list span{grid-column:1;color:var(--bs-secondary-color);font-size:.74rem;font-style:italic}.exercise-muscle-list small{grid-column:2;grid-row:1/3;align-self:center;color:var(--bs-secondary-color);font-size:.68rem}.exercise-muscle-list--secondary>div{background:var(--bs-tertiary-bg)}@media(min-width:992px){.exercise-detail-grid{grid-template-columns:minmax(0,1.55fr) minmax(18rem,.75fr);align-items:start}.exercise-detail-sidebar{position:sticky;top:1.5rem}.exercise-gallery__image-wrap{min-height:30rem}}@media(max-width:575.98px){.exercise-gallery__image-wrap{min-height:15rem;aspect-ratio:1/1}.exercise-gallery__image-wrap img{padding:.8rem}.exercise-detail-metrics{gap:.4rem}.exercise-detail-metrics div{padding:.65rem .55rem}}

/* Weekly schedule editor */
.schedule-form{padding-bottom:5.5rem}.schedule-week{display:grid;grid-template-columns:1fr;gap:1rem}.schedule-day{overflow:hidden}.schedule-day.is-today{border-color:rgba(var(--bs-primary-rgb),.5)}.schedule-day__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1rem .75rem}.schedule-day__summary{max-width:55%;overflow:hidden;color:var(--bs-secondary-color);font-size:.75rem;font-weight:650;text-align:right;text-overflow:ellipsis;white-space:nowrap}.schedule-type{display:grid;grid-template-columns:repeat(3,1fr);gap:.35rem;padding:0 1rem 1rem}.schedule-type__option{padding:.55rem .4rem;border:1px solid var(--bs-border-color);border-radius:.7rem;color:var(--bs-secondary-color);font-size:.8rem;font-weight:700;text-align:center;cursor:pointer;transition:.15s ease}.btn-check:checked+.schedule-type__option{border-color:var(--bs-primary);background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary)}.schedule-panel{display:none;padding:1rem;border-top:1px solid var(--bs-border-color-translucent);background:var(--bs-tertiary-bg)}.schedule-panel.is-active{display:block}.schedule-allocation-heading,.schedule-allocation{display:grid;grid-template-columns:minmax(0,1fr) 5.25rem;align-items:center;gap:1rem}.schedule-allocation-heading{padding:0 .35rem .45rem;color:var(--bs-secondary-color);font-size:.68rem;font-weight:750;letter-spacing:.06em;text-transform:uppercase}.schedule-allocation-heading span:last-child{text-align:center}.schedule-allocations{display:grid;gap:.35rem}.schedule-allocation{padding:.45rem .35rem;border-radius:.65rem;background:var(--bs-body-bg);font-size:.85rem;font-weight:680}.schedule-allocation .form-select{min-height:2.2rem}.schedule-savebar{position:fixed;left:1rem;right:1rem;bottom:calc(5.65rem + var(--safe-bottom));z-index:1025;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem;background:color-mix(in srgb,var(--bs-body-bg) 94%,transparent);border:1px solid var(--bs-border-color-translucent);border-radius:1rem;box-shadow:0 .8rem 2rem rgba(15,23,42,.16);backdrop-filter:blur(18px)}.schedule-savebar>div{display:none;min-width:0}.schedule-savebar strong,.schedule-savebar span{display:block}.schedule-savebar span{color:var(--bs-secondary-color);font-size:.72rem}.schedule-savebar .btn{margin-left:auto;white-space:nowrap}@media(min-width:576px){.schedule-savebar>div{display:block}}@media(min-width:768px){.schedule-week{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1200px){.schedule-week{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:992px){.schedule-form{padding-bottom:0}.schedule-savebar{position:sticky;left:auto;right:auto;bottom:1.25rem;margin-top:1.25rem}.mobile-nav{grid-template-columns:repeat(6,1fr)}}@media(max-width:991.98px){.mobile-nav{grid-template-columns:repeat(6,1fr)}.mobile-nav__link{font-size:.6rem;padding-inline:.05rem}.mobile-nav__link .app-icon{width:1.15rem;height:1.15rem}}

/* Today routine */
.routine-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.routine-group{margin-bottom:2rem}.routine-group__header{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.routine-list{display:flex;flex-direction:column;gap:.65rem}.routine-exercise{display:grid;grid-template-columns:2.25rem 5.25rem minmax(0,1fr) auto;align-items:center;gap:1rem;padding:.8rem;background:var(--bs-body-bg);border:1px solid var(--bs-border-color-translucent);border-radius:var(--shell-radius);box-shadow:var(--shell-shadow)}.routine-exercise.is-complete{opacity:.72}.routine-exercise__position{display:grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:50%;background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);font-weight:800}.routine-exercise__image{width:5.25rem;height:5.25rem;object-fit:contain;padding:.35rem;background:var(--bs-tertiary-bg);border-radius:.8rem}.routine-exercise__content{min-width:0}.routine-exercise__meta{display:flex;flex-wrap:wrap;gap:.35rem .9rem;color:var(--bs-secondary-color);font-size:.82rem}.routine-exercise__meta span:not(:last-child)::after{content:"·";margin-left:.9rem}.routine-exercise__description{display:-webkit-box;overflow:hidden;color:var(--bs-secondary-color);font-size:.9rem;-webkit-box-orient:vertical;-webkit-line-clamp:2}.routine-exercise__action{white-space:nowrap}.family-offer{border-color:rgba(var(--bs-primary-rgb),.25)}
@media(max-width:767.98px){.routine-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.routine-exercise{grid-template-columns:2rem 4.25rem minmax(0,1fr);gap:.7rem;padding:.7rem}.routine-exercise__position{width:2rem;height:2rem}.routine-exercise__image{width:4.25rem;height:4.25rem}.routine-exercise__action{grid-column:2/-1;width:100%}.routine-exercise__description{display:none}.routine-group__header{align-items:center}.routine-group__header .badge{font-size:.7rem}}
@media(max-width:419.98px){.routine-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.routine-exercise{grid-template-columns:2rem 3.75rem minmax(0,1fr)}.routine-exercise__image{width:3.75rem;height:3.75rem}.routine-exercise__meta span:not(:last-child)::after{display:none}.routine-exercise__meta{gap:.2rem .6rem}}

/* Exercise logging */
.workout-log-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;align-items:start}.workout-log-card{overflow:hidden}.workout-log-hero{display:grid;grid-template-columns:7rem minmax(0,1fr);align-items:center;gap:1rem;padding:1rem;border-bottom:1px solid var(--bs-border-color-translucent)}.workout-log-hero img{width:7rem;height:7rem;object-fit:contain;padding:.4rem;border-radius:.9rem;background:var(--bs-tertiary-bg)}.workout-set-form{padding:1rem}.workout-set-table{display:grid;gap:.55rem}.workout-set-row{display:grid;grid-template-columns:2.75rem minmax(5.5rem,.65fr) minmax(9rem,1fr);align-items:center;gap:.65rem}.workout-set-row--heading{padding:0 .25rem;color:var(--bs-secondary-color);font-size:.7rem;font-weight:750;letter-spacing:.05em;text-transform:uppercase}.workout-set-number{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:50%;background:rgba(var(--bs-primary-rgb),.11);color:var(--bs-primary)}.workout-set-row .form-control,.workout-set-row .input-group-text{font-variant-numeric:tabular-nums}.workout-log-actions{display:flex;justify-content:flex-end;gap:.65rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--bs-border-color-translucent)}.previous-set-list{display:grid;gap:.55rem}.previous-set-list>div{display:flex;justify-content:space-between;gap:1rem;padding:.7rem .75rem;border-radius:.7rem;background:var(--bs-tertiary-bg)}.previous-set-list span{color:var(--bs-secondary-color);font-size:.8rem}.previous-set-list strong{text-align:right;font-size:.84rem}@media(min-width:992px){.workout-log-layout{grid-template-columns:minmax(0,1.4fr) minmax(18rem,.6fr)}.workout-log-layout aside{position:sticky;top:1.25rem}}@media(max-width:575.98px){.workout-log-hero{grid-template-columns:5rem minmax(0,1fr);padding:.8rem}.workout-log-hero img{width:5rem;height:5rem}.workout-set-form{padding:.8rem}.workout-set-row{grid-template-columns:2.25rem minmax(4.5rem,.55fr) minmax(8rem,1fr);gap:.4rem}.workout-set-number{width:2.1rem;height:2.1rem}.workout-set-row .form-control,.workout-set-row .input-group-text{padding-inline:.45rem}.workout-set-row .input-group-text{font-size:.72rem}.workout-log-actions{position:sticky;bottom:calc(5.4rem + var(--safe-bottom));z-index:10;margin-inline:-.8rem;margin-bottom:-.8rem;padding:.75rem .8rem;background:color-mix(in srgb,var(--bs-body-bg) 94%,transparent);backdrop-filter:blur(14px)}.workout-log-actions .btn{flex:1}}


.workout-set-row[data-set-row]{position:relative;transition:background-color .18s ease,border-color .18s ease}
.workout-set-row[data-set-row]::after{content:"";position:absolute;right:.45rem;top:.45rem;width:.5rem;height:.5rem;border-radius:50%;background:transparent;transition:background-color .18s ease}
.workout-set-row[data-set-row].is-saving{background:rgba(var(--bs-primary-rgb),.055)}
.workout-set-row[data-set-row].is-saving::after{background:var(--bs-primary);animation:workout-save-pulse .9s ease-in-out infinite}
.workout-set-row[data-set-row].is-saved{background:rgba(var(--bs-success-rgb),.07)}
.workout-set-row[data-set-row].is-saved::after{background:var(--bs-success)}
.workout-set-row[data-set-row].is-error{background:rgba(var(--bs-danger-rgb),.07)}
.workout-set-row[data-set-row].is-error::after{background:var(--bs-danger)}
.workout-save-status{display:flex;align-items:center;gap:.5rem;min-height:1.5rem;margin-top:1rem;color:var(--bs-secondary-color);font-size:.78rem}
.workout-save-status__dot{width:.55rem;height:.55rem;flex:0 0 auto;border-radius:50%;background:var(--bs-secondary-color);transition:background-color .18s ease}
.workout-save-status.is-saving .workout-save-status__dot{background:var(--bs-primary);animation:workout-save-pulse .9s ease-in-out infinite}
.workout-save-status.is-saved{color:var(--bs-success-text-emphasis)}
.workout-save-status.is-saved .workout-save-status__dot{background:var(--bs-success)}
.workout-save-status.is-error{color:var(--bs-danger-text-emphasis)}
.workout-save-status.is-error .workout-save-status__dot{background:var(--bs-danger)}
@keyframes workout-save-pulse{0%,100%{opacity:.45;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}
@media(prefers-reduced-motion:reduce){.workout-set-row[data-set-row],.workout-save-status__dot{transition:none}.workout-set-row[data-set-row].is-saving::after,.workout-save-status.is-saving .workout-save-status__dot{animation:none}}

.rest-timer{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;border-bottom:1px solid var(--bs-border-color-translucent);background:color-mix(in srgb,var(--bs-primary-bg-subtle) 42%,var(--bs-body-bg))}.rest-timer__copy{display:grid;grid-template-columns:auto auto;align-items:baseline;column-gap:.75rem}.rest-timer__copy .page-eyebrow{grid-column:1/-1}.rest-timer__elapsed{font-family:"Steve Brains Mono","SFMono-Regular",Consolas,monospace;font-size:2rem;line-height:1;font-variant-numeric:tabular-nums}.rest-timer__target{color:var(--bs-secondary-color);font-size:.8rem}.rest-timer__actions{display:flex;gap:.5rem}.rest-timer.is-running .rest-timer__elapsed{color:var(--bs-primary)}.rest-timer.is-target-reached{background:color-mix(in srgb,var(--bs-success-bg-subtle) 58%,var(--bs-body-bg))}.rest-timer.is-target-reached .rest-timer__elapsed{color:var(--bs-success)}@media(max-width:575.98px){.rest-timer{padding:.8rem}.rest-timer__elapsed{font-size:1.7rem}.rest-timer__actions .btn{padding-inline:.85rem}}

.routine-exercise__actions{display:flex;flex-direction:column;align-items:stretch;gap:.4rem;min-width:7.5rem}.routine-exercise__actions form{margin:0}.routine-exercise__actions .btn{width:100%;white-space:nowrap}
@media(max-width:767.98px){.routine-exercise__actions{grid-column:2/-1;display:grid;grid-template-columns:1fr 1fr;min-width:0}.routine-exercise__action{grid-column:auto;width:100%}}

/* Skip-today, replacement, and partial-workout controls */
.skip-choice-layout{display:grid;gap:1rem}.skip-choice-exercise{display:grid;grid-template-columns:6rem minmax(0,1fr);align-items:center;gap:1rem;padding:1rem}.skip-choice-exercise img{width:6rem;height:6rem;object-fit:contain;padding:.35rem;border-radius:.8rem;background:var(--bs-tertiary-bg)}.skip-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.skip-choice-icon{display:grid;place-items:center;width:2.8rem;height:2.8rem;margin-bottom:1rem;border-radius:50%;background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);font-size:1.1rem;font-weight:800}.replacement-filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(11rem,.45fr) auto;align-items:end;gap:.8rem;padding:1rem}.replacement-filters__actions{display:flex;gap:.5rem}.replacement-list{display:grid;gap:.75rem}.replacement-card{display:grid;grid-template-columns:6rem minmax(0,1fr) auto;align-items:center;gap:1rem;padding:.8rem}.replacement-card>img{width:6rem;height:6rem;object-fit:contain;padding:.35rem;border-radius:.8rem;background:var(--bs-tertiary-bg)}.replacement-card__content{min-width:0}.skipped-today{padding:0}.skipped-today summary{cursor:pointer;padding:1rem;font-weight:700}.skipped-today__list{display:grid;gap:.45rem;padding:0 1rem 1rem}.skipped-today__list>div{display:flex;justify-content:space-between;gap:1rem;padding:.65rem .75rem;border-radius:.65rem;background:var(--bs-tertiary-bg)}.skipped-today__list span{color:var(--bs-secondary-color);font-size:.82rem}
@media(max-width:767.98px){.skip-choice-grid{grid-template-columns:1fr}.replacement-filters{grid-template-columns:1fr}.replacement-filters__actions .btn{flex:1}.replacement-card{grid-template-columns:4.5rem minmax(0,1fr)}.replacement-card>img{width:4.5rem;height:4.5rem}.replacement-card>form{grid-column:1/-1}.replacement-card>form .btn{width:100%}.routine-exercise__actions{grid-template-columns:1fr 1fr}.routine-exercise__actions>a:last-child{grid-column:1/-1}}
@media(max-width:419.98px){.skip-choice-exercise{grid-template-columns:4.5rem minmax(0,1fr)}.skip-choice-exercise img{width:4.5rem;height:4.5rem}}

.progression-recommendation {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: center;
    padding: 1rem;
}
.progression-recommendation__icon {
    display: grid;
    place-items: center;
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    background: var(--bs-primary-bg-subtle);
    color: var(--bs-primary);
    font-size: 1.75rem;
    font-weight: 700;
}
.progression-recommendation__actions form { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: flex-end; }
.progression-recommendation__actions .input-group { width: auto; min-width: 13rem; }
.exercise-history-list { display: grid; gap: 1rem; }
.exercise-history-session { padding: 1rem; }
.exercise-history-session__header { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; }
.exercise-history-metrics { display: flex; flex-wrap: wrap; gap: .65rem 1.25rem; margin-top: .9rem; color: var(--bs-secondary-color); font-size: .9rem; }
.exercise-history-metrics strong { color: var(--bs-body-color); }
@media (max-width: 767.98px) {
    .progression-recommendation { grid-template-columns: auto minmax(0, 1fr); }
    .progression-recommendation__actions { grid-column: 1 / -1; }
    .progression-recommendation__actions form { justify-content: stretch; }
    .progression-recommendation__actions form > .btn { flex: 1; }
    .progression-recommendation__actions .input-group { width: 100%; }
    .exercise-history-session__header { flex-direction: column; }
}

/* Progress dashboard */
.progress-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.progress-metric{align-items:flex-start;text-align:left}.progress-metric strong{font-size:clamp(1.55rem,3vw,2.25rem)}.progress-metric small{color:var(--bs-secondary-color);font-size:.78rem}.progress-chart{position:relative;min-height:16rem}.progress-chart svg{display:block;width:100%;height:auto;overflow:visible}.progress-chart__empty{display:grid;place-items:center;min-height:16rem;color:var(--bs-secondary-color)}.balance-score{display:flex;align-items:baseline;gap:.25rem}.balance-score strong{font-size:3.25rem;line-height:1}.balance-score span{color:var(--bs-secondary-color);font-size:1.15rem}.balance-status-links{display:grid;gap:.65rem}.balance-status-links a{display:flex;align-items:center;gap:.65rem;padding:.7rem .75rem;border:1px solid var(--bs-border-color-translucent);border-radius:.75rem;text-decoration:none}.balance-status-links a:hover{background:var(--bs-tertiary-bg)}.group-balance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}.group-balance-item{padding:1rem;border:1px solid var(--bs-border-color-translucent);border-radius:.85rem}.muscle-balance-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.muscle-balance-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem;border:1px solid var(--bs-border-color-translucent);border-radius:.75rem;text-decoration:none}.muscle-balance-row:hover{background:var(--bs-tertiary-bg)}.muscle-balance-row>span:first-child{display:grid;min-width:0}.muscle-balance-row small{color:var(--bs-secondary-color)}.balance-drilldown-tabs{display:flex;flex-wrap:wrap;gap:.65rem}.muscle-drilldown-list{display:grid;gap:1rem}.muscle-drilldown-card:target{outline:3px solid rgba(var(--bs-primary-rgb),.25)}.muscle-drilldown-metrics{display:flex;gap:2rem}.muscle-drilldown-metrics>div{display:grid;text-align:right}.muscle-drilldown-metrics strong{font-size:1.2rem}.muscle-drilldown-metrics span{color:var(--bs-secondary-color);font-size:.76rem}
@media(max-width:991.98px){.progress-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767.98px){.group-balance-grid,.muscle-balance-preview{grid-template-columns:1fr}.muscle-drilldown-metrics{width:100%;justify-content:space-between}.muscle-drilldown-metrics>div{text-align:left}}
@media(max-width:479.98px){.progress-metric-grid{grid-template-columns:1fr 1fr;gap:.65rem}.progress-metric{padding:.85rem}.progress-metric strong{font-size:1.35rem}.progress-chart{min-height:12rem}.balance-drilldown-tabs .btn{flex:1 1 100%}}
.system-nav{display:flex;flex-wrap:wrap;gap:.6rem}.system-nav .btn{min-width:7rem}.system-health-detail{max-width:52rem}
@media(max-width:767.98px){.system-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.system-nav .btn{min-width:0}.table-card .table{min-width:48rem}}


/* Installed PWA / home-screen adjustments */
@media(display-mode:standalone){
  :root{--standalone-top:env(safe-area-inset-top)}
  .app-topbar{height:calc(var(--shell-topbar) + var(--standalone-top));padding-top:var(--standalone-top)}
  .app-sidebar{padding-top:calc(1.25rem + var(--standalone-top))}
  .auth-body{padding-top:calc(1.25rem + env(safe-area-inset-top));padding-left:calc(1.25rem + env(safe-area-inset-left));padding-right:calc(1.25rem + env(safe-area-inset-right));padding-bottom:calc(1.25rem + env(safe-area-inset-bottom))}
}

/* Accessibility, responsive resilience, and system-state hardening */
.skip-link{position:fixed;top:.5rem;left:.5rem;z-index:2000;padding:.65rem .9rem;border-radius:.65rem;background:var(--bs-primary);color:#fff;text-decoration:none;transform:translateY(-150%);transition:transform .15s ease}.skip-link:focus{color:#fff;transform:translateY(0)}
:focus-visible{outline:3px solid rgba(var(--bs-primary-rgb),.65);outline-offset:3px}.btn:focus-visible,.form-control:focus-visible,.form-select:focus-visible{outline:none}
.mobile-nav{display:block;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none}.mobile-nav::-webkit-scrollbar{display:none}.mobile-nav__track{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(4.25rem,1fr);min-width:max-content}.mobile-nav__link{min-height:3.4rem}
.table-responsive{border-radius:inherit}.table th{white-space:nowrap}.table td,.table th{vertical-align:middle}
.empty-state{max-width:100%;overflow-wrap:anywhere}.page-actions>*{max-width:100%}
.progress-chart svg{width:100%;height:auto;min-height:12rem}.progress-chart__empty{padding:2rem 1rem;text-align:center;color:var(--bs-secondary-color)}
@media(max-width:575.98px){.page-actions{display:grid;grid-template-columns:1fr;width:100%}.page-actions .btn,.page-actions form,.page-actions form .btn{width:100%}.btn-group{display:flex;flex-wrap:wrap}.btn-group>.btn{flex:1 1 auto;border-radius:.6rem!important;margin:1px}.app-alert{grid-template-columns:auto minmax(0,1fr) auto}.routine-exercise__actions,.workout-actions{flex-wrap:wrap}.routine-exercise__actions .btn,.routine-exercise__actions form{flex:1 1 auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.exercise-card:hover{transform:none}}
@media(forced-colors:active){.app-brand__mark,.empty-state__icon{border:1px solid currentColor}.availability-dot{border:1px solid CanvasText}.progress-bar{forced-color-adjust:none}.mobile-nav__link.is-active,.desktop-nav__link.is-active{outline:2px solid currentColor}}
.exercise-gallery__image-wrap--sheet{aspect-ratio:5/3;min-height:0;background:#f8fafc}.exercise-gallery__image-wrap--sheet img{padding:.35rem;object-fit:contain}@media(max-width:575.98px){.exercise-gallery__image-wrap--sheet{aspect-ratio:5/3;min-height:0}.exercise-gallery__image-wrap--sheet img{padding:.15rem}}
