/* BiStrong Phase 17 — Student Core integration layer.
   Presentation only. Does not own coaching, load, warm-up, equipment, auth or persistence authority. */
:root{
  --bs-bg:#eef3ff;--bs-surface:#ffffff;--bs-surface-2:#f5f7ff;--bs-line:#dde5f3;
  --bs-text:#12192e;--bs-muted:#69758e;--bs-faint:#8d96aa;--bs-lilac:#7650ef;--bs-lilac-soft:#c8b9ff;
  --bs-cobalt:#315ff6;--bs-ink:#12192e;--bs-green:#1f8053;--bs-red:#b83849;--bs-amber:#a86412;
  --bs-shadow:0 18px 48px rgba(35,49,88,.13);--bs-press:160ms;--bs-state:200ms;
}
html[data-theme="dark"]{
  --bs-bg:#0d1018;--bs-surface:#171a23;--bs-surface-2:#202431;--bs-line:#30364a;
  --bs-text:#f7f8ff;--bs-muted:#aeb6ca;--bs-faint:#7f899e;--bs-lilac:#9b78ff;--bs-lilac-soft:#c8b6ff;
  --bs-cobalt:#7893ff;--bs-ink:#f7f8ff;--bs-green:#77d99f;--bs-red:#ff7c88;--bs-amber:#f0b15d;
  --bs-shadow:0 20px 54px rgba(0,0,0,.36);
}
html,body{background:var(--bs-bg)!important;color:var(--bs-text)!important}
body{font-family:'Manrope',sans-serif!important;padding-bottom:76px!important}
header{background:color-mix(in srgb,var(--bs-bg) 94%,transparent)!important;border-bottom:0!important;backdrop-filter:blur(18px);padding:12px 14px 6px!important}
main{padding:12px 14px 24px!important;max-width:760px;margin:0 auto;width:100%}
.brand-mark{font-family:'Unbounded',sans-serif!important;background:linear-gradient(100deg,#7650ef,#f15bb5)!important;-webkit-background-clip:text!important;background-clip:text!important;color:transparent!important}
.util-chip,.conn-pill{font-family:'Manrope',sans-serif!important;background:var(--bs-surface)!important;border-color:var(--bs-line)!important;color:var(--bs-muted)!important;box-shadow:0 6px 18px rgba(35,49,88,.05)}
#themeToggleBtn{width:34px;padding:5px!important;text-align:center;font-size:14px!important}

.bs-greeting{max-width:760px;margin:2px auto 12px;padding:4px 2px 0;min-height:78px}
.bs-greeting-title{display:inline;font:400 clamp(32px,8vw,46px)/1 'Instrument Serif',serif;margin:0;letter-spacing:-.015em;color:var(--bs-text)}
.bs-greeting-title.typing::after{content:'';display:inline-block;width:1px;height:.78em;margin-left:4px;background:var(--bs-lilac);vertical-align:-.06em;animation:bsBlink .65s steps(1,end) infinite}
@keyframes bsBlink{50%{opacity:0}}
.bs-greeting-message{margin:7px 0 0;color:var(--bs-muted);font-size:12px;font-weight:600;opacity:0;transform:translateY(3px);transition:opacity var(--bs-state) ease-out,transform var(--bs-state) ease-out}
.bs-greeting-message.show{opacity:1;transform:none}
.bs-today-status{max-width:760px;margin:0 auto 10px;border-radius:14px;padding:10px 12px;background:linear-gradient(135deg,color-mix(in srgb,var(--bs-lilac) 9%,var(--bs-surface)),var(--bs-surface));box-shadow:0 10px 28px rgba(35,49,88,.07)}
.bs-today-status[hidden]{display:none!important}.bs-today-status b{font-size:11px}.bs-today-status span{display:block;margin-top:2px;color:var(--bs-muted);font-size:10px;line-height:1.4}

.nav-row{max-width:760px;margin:0 auto;gap:8px}.week-dd-trigger{background:var(--bs-surface)!important;border-color:var(--bs-line)!important;border-radius:13px!important;height:48px!important}.week-dd-trigger .lbl{font-family:'Manrope',sans-serif!important;color:var(--bs-faint)!important}.week-dd-trigger .val{font-family:'Manrope',sans-serif!important;color:var(--bs-text)!important}.week-dd-menu{background:var(--bs-surface)!important;border-color:var(--bs-line)!important;box-shadow:var(--bs-shadow)!important}.week-dd-menu button{font-family:'Manrope',sans-serif!important}.week-dd-menu button.active{background:var(--bs-surface-2)!important;color:var(--bs-text)!important}
#tabs{gap:5px!important}.tab{font-family:'Manrope',sans-serif!important;background:var(--bs-surface)!important;border-color:var(--bs-line)!important;color:var(--bs-muted)!important}.tab.active{background:var(--bs-ink)!important;color:var(--bs-bg)!important;border-color:var(--bs-ink)!important;font-weight:800!important}
.top-row{max-width:760px;margin:8px auto 0}.top-row h1{font:400 28px/1 'Instrument Serif',serif!important;color:var(--bs-text)!important}.eyebrow{font-family:'Manrope',sans-serif!important;color:var(--bs-muted)!important}.sub{color:var(--bs-muted)!important}
.tabs.view-tabs{max-width:760px;margin:8px auto 10px!important;background:var(--bs-surface)!important;border-color:var(--bs-line)!important}.tabs.view-tabs .tab{background:transparent!important}.tabs.view-tabs .tab.active{color:#fff!important}.seg-indicator{background:var(--bs-ink)!important;box-shadow:none!important}

.day-title{font:400 33px/1 'Instrument Serif',serif!important;color:var(--bs-text)!important;margin-top:4px!important}.day-sub{color:var(--bs-muted)!important}
.location-global{background:var(--bs-surface)!important;border:0!important;box-shadow:var(--bs-shadow)!important}.location-label{color:var(--bs-muted)!important}.loc-btn{background:var(--bs-surface-2)!important;border-color:var(--bs-line)!important;color:var(--bs-muted)!important;transition:transform var(--bs-press) ease-out}.loc-btn:active{transform:scale(.97)}.loc-btn.active{background:var(--bs-ink)!important;color:var(--bs-bg)!important;border-color:var(--bs-ink)!important}

.bs-warmup-details{background:var(--bs-surface)!important;border:0!important;box-shadow:var(--bs-shadow)!important;padding:0!important;overflow:hidden}.bs-warmup-details>summary{list-style:none;cursor:pointer;padding:13px 14px;font-weight:800;font-size:11px;display:flex;justify-content:space-between;align-items:center;color:var(--bs-text)}.bs-warmup-details>summary::-webkit-details-marker{display:none}.bs-warmup-details>summary::after{content:'⌄';color:var(--bs-lilac);transition:transform var(--bs-state) ease-out}.bs-warmup-details[open]>summary::after{transform:rotate(180deg)}.bs-warmup-body{padding:0 14px 14px}.warmup-box ul{color:var(--bs-text)!important}.warmup-box .note,.warmup-box .wb-caption,.warmup-box .wb-approx{color:var(--bs-muted)!important}.warmup-box .wb-row,.warmup-box .wb-reps,.warmup-box .wb-setup{color:var(--bs-text)!important}.warmup-box .wb-load,.warmup-box .wb-row b,.warmup-box .wb-setup strong{color:var(--bs-text)!important;font-family:'Manrope',sans-serif!important}.warmup-box .wb-exname{font-family:'Manrope',sans-serif!important;color:var(--bs-lilac)!important}

.section-label{font-family:'Manrope',sans-serif!important;color:var(--bs-muted)!important}.card{background:var(--bs-surface)!important;border:0!important;border-radius:20px!important;box-shadow:var(--bs-shadow)!important}.card-head{padding:15px 15px 11px!important}.ex-eyebrow{font-family:'Manrope',sans-serif!important;color:var(--bs-faint)!important}.ex-name{font:400 27px/1 'Instrument Serif',serif!important;color:var(--bs-text)!important}.ex-meta{font-family:'Manrope',sans-serif!important;color:var(--bs-muted)!important;font-size:11px!important;line-height:1.45}.kind-pill,.training-group-badge{font-family:'Manrope',sans-serif!important}.kind-pill{background:var(--bs-surface-2)!important;border-color:var(--bs-line)!important;color:var(--bs-muted)!important}.kind-pill.main{color:var(--bs-lilac)!important;background:color-mix(in srgb,var(--bs-lilac) 9%,transparent)!important;border-color:transparent!important}

.smart-note{border:0!important;border-radius:14px!important;margin:0 15px 11px!important;padding:11px 12px!important;transition:background-color var(--bs-state) ease-in-out,color var(--bs-state) ease-in-out}.smart-note .sn-head{font-family:'Manrope',sans-serif!important;font-size:10px!important;font-weight:800!important}.smart-note .sn-weight{font:400 27px/1 'Instrument Serif',serif!important;color:currentColor!important}.smart-note .sn-line{color:currentColor!important;opacity:.8}.smart-note.down{background:color-mix(in srgb,var(--bs-red) 10%,var(--bs-surface))!important;color:var(--bs-red)!important}.smart-note.stay,.smart-note.initial{background:color-mix(in srgb,var(--bs-green) 10%,var(--bs-surface))!important;color:var(--bs-green)!important}.smart-note.up{background:color-mix(in srgb,var(--bs-lilac) 12%,var(--bs-surface))!important;color:var(--bs-lilac)!important}.smart-note.test{background:color-mix(in srgb,var(--bs-amber) 11%,var(--bs-surface))!important;color:var(--bs-amber)!important}.smart-note.warn{background:var(--bs-surface-2)!important;color:var(--bs-muted)!important}.smart-note.down .sn-head,.smart-note.down .sn-weight,.smart-note.stay .sn-head,.smart-note.stay .sn-weight,.smart-note.up .sn-head,.smart-note.up .sn-weight,.smart-note.test .sn-head,.smart-note.test .sn-weight{color:currentColor!important}

.bs-technique{margin:0 15px 11px;border-radius:13px;background:var(--bs-surface-2);overflow:hidden}.bs-technique-btn{width:100%;border:0;background:transparent;color:var(--bs-text);display:flex;justify-content:space-between;align-items:center;padding:11px 12px;font-weight:800;font-size:11px;cursor:pointer}.bs-technique-btn:active{transform:scale(.99)}.bs-technique-body{padding:0 11px 11px;animation:bsReveal var(--bs-state) ease-out both}.bs-technique-frame{position:relative;width:100%;aspect-ratio:16/9;border-radius:11px;overflow:hidden;background:#0d1018}.bs-technique-frame iframe,.bs-technique-frame video{position:absolute;inset:0;width:100%;height:100%;border:0;background:#000}@keyframes bsReveal{from{opacity:0;transform:translateY(-4px);clip-path:inset(0 0 10% 0)}to{opacity:1;transform:none;clip-path:inset(0)}}

.set-list{padding:12px 15px 5px!important}.set-header,.set-name .obj{font-family:'Manrope',sans-serif!important;color:var(--bs-faint)!important}.set-name .n{color:var(--bs-text)!important}.set-row{border-color:var(--bs-line)!important}.set-rail::before{background:var(--bs-line)!important}.set-rail .set-dot{background:var(--bs-surface)!important;border-color:var(--bs-faint)!important}.set-row:last-child .set-dot{border-color:var(--bs-lilac)!important;background:var(--bs-lilac)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--bs-lilac) 12%,transparent)!important}input.num{background:var(--bs-surface-2)!important;border-color:var(--bs-line)!important;color:var(--bs-text)!important;font-family:'Manrope',sans-serif!important;border-radius:9px!important}input.num::placeholder{color:var(--bs-faint)!important}.rir-trigger{background:var(--bs-surface-2)!important;border-color:var(--bs-line)!important;color:var(--bs-muted)!important;font-family:'Manrope',sans-serif!important}.rir-trigger.filled{background:var(--bs-ink)!important;color:var(--bs-bg)!important}.rir-picker-pop{background:var(--bs-surface)!important;border-color:var(--bs-line)!important}.rir-chip{background:var(--bs-surface-2)!important;border-color:var(--bs-line)!important;color:var(--bs-muted)!important;font-family:'Manrope',sans-serif!important}
.exercise-guide{margin:0 15px 11px!important;background:var(--bs-surface-2)!important;border-color:var(--bs-line)!important}.exercise-guide summary,.guide-copy{color:var(--bs-text)!important}.guide-title{color:var(--bs-lilac)!important}.self-note input{background:var(--bs-surface-2)!important;border-color:var(--bs-line)!important;color:var(--bs-text)!important}
.finish-btn{background:var(--bs-ink)!important;color:var(--bs-bg)!important;border:0!important;border-radius:13px!important;font-family:'Manrope',sans-serif!important;transition:transform var(--bs-press) ease-out}.finish-btn:active{transform:scale(.97)}.finish-btn.done{background:color-mix(in srgb,var(--bs-green) 12%,var(--bs-surface))!important;color:var(--bs-green)!important}
.status,.offline-banner{color:var(--bs-muted)!important}.legend,#guideBox{display:none!important}

@media(max-width:720px){input:not([type="checkbox"]):not([type="radio"]),select,textarea,[contenteditable="true"]{font-size:16px!important}.bs-greeting{min-height:73px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}.bs-greeting-title.typing::after{display:none!important}}

/* ===== Phase 17.1 visual-parity repair =====
   Goal: match the approved compact Student Core instead of reskinning the legacy layout. */
header{position:static!important;top:auto!important;padding:10px 14px 4px!important;backdrop-filter:none!important}
.brand-row{margin-bottom:4px!important}
.top-row{display:none!important}
.bs-greeting{min-height:0!important;margin:4px auto 8px!important;padding:0 2px!important}
.bs-greeting-title{font-size:38px!important}
.bs-greeting-message{margin-top:5px!important;font-size:11px!important}
.bs-today-status{margin:5px auto 8px!important;padding:9px 11px!important;border-radius:12px!important;box-shadow:none!important;border:1px solid var(--bs-line)!important}
.bs-today-status b{font-size:10.5px!important}.bs-today-status span{font-size:9.5px!important}
.nav-row{margin-top:4px!important;gap:6px!important}
.week-dd{flex:0 0 76px!important}.week-dd-trigger{height:43px!important;min-width:76px!important;padding:6px 9px!important}
#tabs{flex:1!important;display:flex!important;gap:5px!important;overflow-x:auto!important;scrollbar-width:none}
#tabs::-webkit-scrollbar{display:none}.tab{min-height:43px!important;padding:8px 12px!important;border-radius:12px!important;font-size:11px!important}
.tabs.view-tabs{margin:7px auto 9px!important;min-height:42px!important}.tabs.view-tabs .tab{min-height:36px!important}

main{padding:4px 14px 90px!important}
.day-title{font-size:29px!important;margin:8px 0 0!important}.day-sub{margin-bottom:8px!important;font-size:10px!important}
.location-global{padding:8px!important;margin:0 0 9px!important;border-radius:13px!important;box-shadow:none!important;border:1px solid var(--bs-line)!important}
.location-label{font-size:8px!important;letter-spacing:.12em!important;margin:0 0 6px!important}
.location-toggle{gap:6px!important}.loc-btn{min-height:38px!important;padding:7px 10px!important;border-radius:10px!important;font-size:11px!important}

.bs-warmup-details{margin:0 0 10px!important;border:1px solid var(--bs-line)!important;box-shadow:none!important;border-radius:13px!important}
.bs-warmup-details>summary{padding:10px 12px!important;font-size:10.5px!important}.bs-warmup-body{padding:0 12px 12px!important;font-size:10px!important}
.section-label{font-size:8px!important;letter-spacing:.12em!important;margin:10px 2px 6px!important}

.bs-exercise-card{margin:0 0 9px!important;border-radius:16px!important;box-shadow:0 8px 26px rgba(35,49,88,.08)!important;border:1px solid color-mix(in srgb,var(--bs-line) 86%,transparent)!important;overflow:hidden!important}
.bs-exercise-card>summary{list-style:none}.bs-exercise-card>summary::-webkit-details-marker{display:none}
.bs-exercise-summary{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px;cursor:pointer;min-height:84px;background:var(--bs-surface)}
.bs-exercise-summary:active{background:var(--bs-surface-2)}
.bs-ex-thumb{width:64px;height:64px;border-radius:12px;background:linear-gradient(145deg,#1b2030,#303750);background-size:cover;background-position:center;display:grid;place-items:center;color:white;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.bs-ex-thumb span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.88);color:#4f35d7;font-size:10px}
.bs-ex-summary-copy{min-width:0}.bs-ex-summary-kicker{font-size:7.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--bs-faint);font-weight:800}.bs-ex-summary-name{font:400 22px/1.04 'Instrument Serif',serif;color:var(--bs-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.bs-ex-summary-meta{font-size:9px;color:var(--bs-muted);margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bs-ex-summary-load{text-align:right;min-width:76px;display:flex;flex-direction:column;align-items:flex-end}.bs-ex-summary-load small{font-size:7px;text-transform:uppercase;letter-spacing:.08em;color:var(--bs-faint)}.bs-ex-summary-load b{font:400 20px/1 'Instrument Serif',serif;color:var(--bs-text);margin:3px 0}.bs-ex-summary-load span{font-size:11px;color:var(--bs-lilac);transition:transform var(--bs-state) ease-out}.bs-exercise-card[open] .bs-ex-summary-load span{transform:rotate(180deg)}
.bs-exercise-detail{padding:0 10px 12px;background:var(--bs-surface)}

.bs-demo{position:relative;min-height:148px;aspect-ratio:16/8.5;border-radius:14px;overflow:hidden;background:linear-gradient(145deg,#151a29,#2f3751);background-image:var(--bs-demo-poster);background-size:cover;background-position:center;margin:2px 0 9px}
.bs-demo-shade{position:absolute;inset:0;background:linear-gradient(to top,rgba(8,10,18,.72),rgba(8,10,18,.04) 60%)}
.bs-demo-caption{position:absolute;left:11px;bottom:11px;display:flex;align-items:center;gap:8px;color:#fff;font-size:10px;max-width:62%}.bs-demo-caption>span{width:29px;height:29px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(255,255,255,.8);font-size:9px}.bs-demo-caption b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bs-demo-technique{position:absolute;right:10px;bottom:10px;border:0;border-radius:999px;background:rgba(255,255,255,.92);color:#141a2c;padding:9px 12px;font-size:9px;font-weight:800;min-height:35px}
.bs-demo-empty{aspect-ratio:auto;min-height:76px;display:flex;align-items:center;gap:10px;padding:12px;color:#fff}.bs-demo-empty-icon{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.9);color:#5b42e6}.bs-demo-empty b,.bs-demo-empty span{display:block}.bs-demo-empty b{font-size:10px}.bs-demo-empty span{font-size:8px;opacity:.7;margin-top:2px}

.bs-metric-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:0 0 9px}.bs-metric-row>div,.bs-metric-row>button{min-width:0;border:1px solid var(--bs-line);background:var(--bs-surface-2);border-radius:11px;padding:8px 5px;text-align:center;color:var(--bs-text)}.bs-metric-row button{font:inherit}.bs-metric-row b{display:block;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bs-metric-row span{display:block;font-size:6.8px;color:var(--bs-faint);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.smart-note{margin:0 0 9px!important;padding:11px 12px!important;border-radius:13px!important}.smart-note .sn-side{align-items:flex-end!important}.smart-note .sn-head{font-size:9px!important}.smart-note .sn-weight{font-size:31px!important}.smart-note .sn-line{font-size:9px!important;line-height:1.35!important}.sn-details-toggle{font-size:8px!important}
.equipment-line{margin:0 0 8px!important;padding:5px 9px!important;font-size:9px!important}.equip-caution{margin:0 0 8px!important;font-size:9px!important;padding:7px 9px!important}.exercise-ramp{margin:0 0 8px!important}
.exercise-guide{margin:0 0 8px!important;border-radius:11px!important}.exercise-guide summary{padding:9px 10px!important;font-size:9px!important}

.bs-working-sets{border:1px solid var(--bs-line);border-radius:14px;padding:10px;margin-top:8px;background:var(--bs-surface)}.bs-working-title{font:400 22px/1 'Instrument Serif',serif;margin-bottom:8px}.bs-set-head{display:grid;grid-template-columns:1fr 64px 54px 50px;gap:5px;padding:0 5px 6px;border-bottom:1px solid var(--bs-line);font-size:7px;text-transform:uppercase;letter-spacing:.06em;color:var(--bs-faint)}
.bs-set-saved{display:grid;grid-template-columns:1fr 64px 54px 50px 24px;gap:5px;align-items:center;padding:9px 4px;border-bottom:1px solid var(--bs-line);font-size:10px}.bs-set-saved .bs-set-index b{color:var(--bs-green)}.bs-set-saved button{border:0;background:transparent;color:var(--bs-muted);padding:4px;font-weight:800}
.set-row.bs-set-entry-row{display:grid!important;grid-template-columns:minmax(72px,1fr) 64px 54px 50px!important;gap:5px!important;padding:9px 4px!important;border:0!important}.bs-set-entry-row .set-name{min-width:0}.bs-set-entry-row .set-name .n{font-size:10px!important}.bs-set-entry-row .set-name .obj{font-size:7px!important}.bs-set-entry-row input.num{width:100%!important;min-width:0!important;height:42px!important;padding:6px!important;text-align:center!important;font-size:16px!important}.bs-set-entry-row .rir-trigger{width:50px!important;height:42px!important;font-size:14px!important}
.bs-register-set{width:100%;min-height:44px;border:0;border-radius:11px;background:var(--bs-ink);color:var(--bs-bg);font-weight:800;font-size:11px;margin-top:4px;transition:transform var(--bs-press) ease-out}.bs-register-set:active{transform:scale(.98)}
.bs-set-pending{display:flex;justify-content:space-between;gap:10px;padding:8px 5px;border-top:1px dashed var(--bs-line);font-size:8px;color:var(--bs-faint)}.bs-all-sets-done{padding:10px;text-align:center;color:var(--bs-green);font-size:10px;font-weight:800}
.self-note{padding:8px 0 0!important}.self-note input{min-height:42px!important;font-size:16px!important;border-radius:11px!important}
.bs-technique{margin:0 0 9px!important}.bs-technique-link{display:block;padding:12px;color:var(--bs-lilac);font-weight:800;text-decoration:none;font-size:10px}

/* Prevent the old entire program header from eating the viewport while the student logs sets. */
@media(max-width:720px){
  header{position:static!important}
  .brand-mark{font-size:20px!important}.util-group{gap:4px!important}.util-chip,.conn-pill{font-size:8px!important;padding:6px 8px!important}.conn-pill{display:none!important}
  #themeToggleBtn{width:31px!important}.bs-greeting-title{font-size:34px!important}
  .bs-exercise-summary{grid-template-columns:58px minmax(0,1fr) 70px;padding:9px}.bs-ex-thumb{width:58px;height:58px}.bs-ex-summary-name{font-size:20px}.bs-ex-summary-load{min-width:70px}.bs-ex-summary-load b{font-size:18px}
  .bs-metric-row{gap:4px}.bs-metric-row>div,.bs-metric-row>button{padding:7px 3px}.bs-metric-row b{font-size:9px}
}

/* ===== Phase 17.2 — Deep Surface + Direct Manipulation fidelity repair =====
   Restores the frozen BiStrong visual language: Profunda relief, floating controls,
   quiet Apple-like press response, selective glass, and less card-soup. Static shadows
   only; interaction motion stays on transform/opacity. */
:root{
  --bs-bg:#f6f8ff;
  --bs-surface:#ffffff;
  --bs-surface-2:#f8f9fe;
  --bs-line:#e4e8f3;
  --bs-shadow-control:0 1px 1px rgba(26,34,61,.04),0 5px 14px rgba(54,62,110,.08),0 14px 32px rgba(74,72,140,.05);
  --bs-shadow-card:0 1px 0 rgba(255,255,255,.96) inset,0 1px 2px rgba(29,37,67,.04),0 10px 28px rgba(54,62,110,.09),0 26px 60px rgba(104,80,190,.055);
  --bs-shadow-open:0 1px 0 rgba(255,255,255,.98) inset,0 2px 5px rgba(29,37,67,.05),0 18px 44px rgba(54,62,110,.12),0 38px 82px rgba(104,80,190,.07);
  --bs-ease:cubic-bezier(.2,.8,.2,1);
}
html[data-theme="dark"]{
  --bs-bg:#0d1018;--bs-surface:#181b25;--bs-surface-2:#202431;--bs-line:#30364a;
  --bs-shadow-control:0 1px 0 rgba(255,255,255,.035) inset,0 7px 20px rgba(0,0,0,.24);
  --bs-shadow-card:0 1px 0 rgba(255,255,255,.045) inset,0 12px 32px rgba(0,0,0,.30),0 30px 70px rgba(0,0,0,.16);
  --bs-shadow-open:0 1px 0 rgba(255,255,255,.055) inset,0 20px 48px rgba(0,0,0,.38),0 42px 90px rgba(0,0,0,.2);
}
html{background:var(--bs-bg)!important}
body{
  background:
    radial-gradient(110% 46% at 50% -8%,color-mix(in srgb,var(--bs-cobalt) 7%,transparent),transparent 63%),
    var(--bs-bg)!important;
  -webkit-tap-highlight-color:transparent;
}

/* tactile grammar: no bounce, no ripple, no animated shadow */
button,.tab,.week-dd-trigger,.loc-btn,.bs-exercise-summary,.bs-register-set,.bs-demo-technique,.rir-trigger,.exercise-guide>summary,.bs-warmup-details>summary{
  touch-action:manipulation;
  transform:translateZ(0);
  transition:transform var(--bs-press) var(--bs-ease),opacity var(--bs-state) ease-out!important;
}
button:active,.tab:active,.week-dd-trigger:active,.loc-btn:active,.bs-exercise-summary:active,.bs-register-set:active,.bs-demo-technique:active,.rir-trigger:active,.exercise-guide>summary:active,.bs-warmup-details>summary:active{
  transform:scale(.975)!important;
  opacity:.92;
}
@media(hover:hover) and (pointer:fine){
  .week-dd-trigger:hover,.tab:hover,.loc-btn:hover,.bs-exercise-card:not([open]) .bs-exercise-summary:hover{transform:translateY(-1px)}
}

/* floating week/day controls */
.nav-row{gap:9px!important;padding:3px 1px 7px!important}
.week-dd-trigger,.tab{
  border:0!important;
  background:color-mix(in srgb,var(--bs-surface) 94%,transparent)!important;
  box-shadow:var(--bs-shadow-control)!important;
  backdrop-filter:blur(14px) saturate(1.06);
  -webkit-backdrop-filter:blur(14px) saturate(1.06);
}
.week-dd-trigger{border-radius:16px!important}
#tabs{gap:8px!important;padding:0 2px 2px!important}
#tabs .tab{border-radius:16px!important}
#tabs .tab.active{
  background:var(--bs-ink)!important;color:#fff!important;
  box-shadow:0 9px 22px rgba(18,25,46,.17),0 2px 6px rgba(18,25,46,.11)!important;
}

/* view switcher as one floating material surface */
.tabs.view-tabs{
  border:0!important;
  border-radius:18px!important;
  padding:5px!important;
  background:color-mix(in srgb,var(--bs-surface) 92%,transparent)!important;
  box-shadow:var(--bs-shadow-control)!important;
  backdrop-filter:blur(18px) saturate(1.08);
  -webkit-backdrop-filter:blur(18px) saturate(1.08);
}
.tabs.view-tabs .tab{box-shadow:none!important;background:transparent!important;border:0!important;border-radius:14px!important}
.seg-indicator{
  border-radius:14px!important;
  background:var(--bs-ink)!important;
  box-shadow:0 8px 20px rgba(18,25,46,.18),0 2px 5px rgba(18,25,46,.1)!important;
}

/* environment selector: compact floating segmented control, not a large card */
.location-global{
  width:min(100%,330px)!important;
  margin:2px 0 13px auto!important;
  padding:5px!important;
  border:0!important;
  border-radius:17px!important;
  background:color-mix(in srgb,var(--bs-surface) 93%,transparent)!important;
  box-shadow:var(--bs-shadow-control)!important;
  backdrop-filter:blur(16px) saturate(1.08);
  -webkit-backdrop-filter:blur(16px) saturate(1.08);
}
.location-label{display:none!important}
.location-toggle{gap:5px!important}
.loc-btn{
  min-height:36px!important;padding:7px 10px!important;border:0!important;border-radius:13px!important;
  background:transparent!important;box-shadow:none!important;font-size:10px!important;
}
.loc-btn.active{
  background:var(--bs-ink)!important;color:#fff!important;
  box-shadow:0 7px 16px rgba(18,25,46,.16)!important;
}

/* warm-up = floating disclosure, not bordered strip */
.bs-warmup-details{
  border:0!important;border-radius:18px!important;background:var(--bs-surface)!important;
  box-shadow:var(--bs-shadow-control)!important;overflow:hidden!important;
}
.bs-warmup-details>summary{padding:12px 14px!important}

/* exercise summaries: real elevation and quiet direct manipulation */
.bs-exercise-card{
  border:0!important;border-radius:22px!important;
  box-shadow:var(--bs-shadow-card)!important;
  background:var(--bs-surface)!important;
  overflow:visible!important;
  transition:transform var(--bs-shared) var(--bs-ease),opacity var(--bs-state) ease-out!important;
}
.bs-exercise-card[open]{box-shadow:var(--bs-shadow-open)!important;transform:translateY(-1px)}
.bs-exercise-card>summary{border-radius:22px!important;overflow:hidden}
.bs-exercise-summary{
  border-radius:22px!important;
  background:linear-gradient(180deg,rgba(255,255,255,.985),rgba(252,253,255,.96))!important;
  padding:12px!important;min-height:92px!important;
}
html[data-theme="dark"] .bs-exercise-summary{background:linear-gradient(180deg,#1c202b,#181b25)!important}
.bs-exercise-summary:active{background:inherit!important}
.bs-ex-thumb{
  border-radius:16px!important;
  background:linear-gradient(150deg,#f1efff,#e9edff 45%,#dfe7fb)!important;
  color:var(--bs-lilac)!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.86),0 6px 16px rgba(77,71,144,.1)!important;
}
.bs-ex-thumb span{background:rgba(255,255,255,.9)!important;color:var(--bs-lilac)!important;box-shadow:0 5px 14px rgba(65,55,130,.14)!important}
.bs-ex-summary-kicker{color:color-mix(in srgb,var(--bs-lilac) 70%,var(--bs-faint))!important}
.bs-ex-summary-load b{font-size:22px!important}
.bs-ex-summary-load span{width:23px;height:23px;border-radius:50%;display:grid;place-items:center;background:var(--bs-surface-2);box-shadow:inset 0 0 0 1px var(--bs-line)}

/* opened exercise: content floats inside one parent surface, not nested card soup */
.bs-exercise-detail{padding:4px 12px 14px!important;border-radius:0 0 22px 22px!important;background:var(--bs-surface)!important}
.bs-demo{
  border-radius:18px!important;
  box-shadow:0 12px 28px rgba(28,35,64,.12)!important;
  background:linear-gradient(145deg,#e9ecf9,#dce3f6)!important;
}
.bs-demo.has-poster{background-image:var(--bs-demo-poster)!important;background-size:cover!important;background-position:center!important}
.bs-demo-empty{
  min-height:118px!important;
  background:linear-gradient(135deg,#f1efff,#e5ebfb)!important;
  color:var(--bs-text)!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.8),0 10px 24px rgba(77,71,144,.1)!important;
}
.bs-demo-empty-icon{background:#fff!important;box-shadow:0 7px 18px rgba(84,67,155,.15)!important}
.bs-demo-technique{box-shadow:0 8px 20px rgba(12,18,36,.18)!important}

/* metric tiles should read as floating instruments */
.bs-metric-row{gap:8px!important;margin:11px 0 12px!important}
.bs-metric-row>div,.bs-metric-row>button{
  border:0!important;border-radius:15px!important;background:var(--bs-surface)!important;
  box-shadow:var(--bs-shadow-control)!important;padding:10px 5px!important;
}
.bs-metric-row>button{color:var(--bs-lilac)!important}

/* recommendation: stronger single semantic surface */
.smart-note{
  border:0!important;border-radius:18px!important;padding:14px 15px!important;
  box-shadow:0 9px 26px rgba(44,52,88,.07)!important;
}
.smart-note.stay,.smart-note.initial{background:linear-gradient(135deg,#edf9f2,#f7fcf9)!important}
.smart-note.up{background:linear-gradient(135deg,#f2edff,#faf8ff)!important}
.smart-note.down{background:linear-gradient(135deg,#fff0f2,#fff8f9)!important}
.smart-note.test{background:linear-gradient(135deg,#fff5e8,#fffaf3)!important}
html[data-theme="dark"] .smart-note.stay,html[data-theme="dark"] .smart-note.initial{background:#13291d!important}
html[data-theme="dark"] .smart-note.up{background:#241d3a!important}
html[data-theme="dark"] .smart-note.down{background:#32191e!important}
html[data-theme="dark"] .smart-note.test{background:#302314!important}

/* notes are secondary: no large AI-looking accordion block */
.exercise-guide{
  border:0!important;background:transparent!important;box-shadow:none!important;
  margin:2px 0 8px!important;border-radius:0!important;
}
.exercise-guide>summary{
  width:max-content!important;max-width:100%!important;padding:7px 9px!important;border-radius:11px!important;
  background:var(--bs-surface-2)!important;color:var(--bs-muted)!important;font-size:8.5px!important;
}
.exercise-guide-body{padding:8px 3px 3px!important}

/* working sets: elevated workspace with one obvious active action */
.bs-working-sets{
  border:0!important;border-radius:19px!important;padding:13px!important;
  background:linear-gradient(180deg,#fff,#fbfcff)!important;
  box-shadow:0 1px 0 rgba(255,255,255,.95) inset,0 8px 24px rgba(51,59,103,.075)!important;
}
html[data-theme="dark"] .bs-working-sets{background:#181b25!important}
.bs-working-title{font-size:25px!important;margin-bottom:10px!important}
.bs-set-saved{border-bottom-color:color-mix(in srgb,var(--bs-line) 78%,transparent)!important}
.bs-set-entry-row input.num,.bs-set-entry-row .rir-trigger{
  border:0!important;background:#f7f9ff!important;
  box-shadow:inset 0 0 0 1px #e1e6f2,0 4px 12px rgba(54,62,110,.055)!important;
  border-radius:13px!important;
}
html[data-theme="dark"] .bs-set-entry-row input.num,html[data-theme="dark"] .bs-set-entry-row .rir-trigger{background:#202431!important;box-shadow:inset 0 0 0 1px #30364a!important}
.bs-set-entry-row input.num:focus{outline:0!important;box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--bs-cobalt) 50%,transparent),0 0 0 4px color-mix(in srgb,var(--bs-cobalt) 10%,transparent)!important}
.bs-register-set{
  min-height:48px!important;border-radius:15px!important;
  box-shadow:0 10px 22px rgba(18,25,46,.15)!important;
}

/* note input stays light and subordinate */
.self-note{padding-top:12px!important}
.self-note input{border:0!important;background:var(--bs-surface)!important;box-shadow:var(--bs-shadow-control)!important;border-radius:14px!important;color:var(--bs-text)!important}

@media(max-width:720px){
  body{padding-bottom:82px!important}
  main{padding-left:15px!important;padding-right:15px!important}
  .nav-row{gap:8px!important}
  .location-global{width:238px!important;margin-left:auto!important}
  .loc-btn{font-size:9px!important;min-height:34px!important;padding:6px 8px!important}
  .bs-exercise-summary{grid-template-columns:60px minmax(0,1fr) 72px!important;gap:11px!important;padding:11px!important}
  .bs-ex-thumb{width:60px!important;height:60px!important}
  .bs-ex-summary-name{font-size:21px!important}
  .bs-ex-summary-meta{font-size:8.8px!important}
  .bs-ex-summary-load b{font-size:19px!important}
}


/* ===== Phase 17.3 — Design Fidelity / contrast / operational typography =====
   This layer intentionally supersedes Phase 17.2 where live-device testing exposed
   washed-out light surfaces, muddy dark semantic colors, legacy variable leakage,
   and too much editorial serif inside operational UI. */
:root{
  /* Canonical student palette */
  --bs-bg:#F1F4FA;
  --bs-surface:#FFFFFF;
  --bs-surface-2:#EEF2F8;
  --bs-surface-3:#E7ECF5;
  --bs-line:#D6DDE9;
  --bs-text:#111827;
  --bs-muted:#5F6B7E;
  --bs-faint:#8792A6;
  --bs-lilac:#7357E8;
  --bs-lilac-soft:#B7A6FA;
  --bs-cobalt:#4169E1;
  --bs-green:#167451;
  --bs-red:#B73549;
  --bs-amber:#9A651A;
  --bs-cta-bg:#121A2D;
  --bs-cta-text:#FFFFFF;
  --bs-selected-bg:#172036;
  --bs-selected-text:#FFFFFF;
  --bs-focus:#5B8EF7;
  --bs-shadow-control:0 1px 0 rgba(255,255,255,.96) inset,0 2px 5px rgba(23,32,54,.07),0 9px 22px rgba(50,61,92,.11);
  --bs-shadow-card:0 1px 0 rgba(255,255,255,.98) inset,0 3px 8px rgba(23,32,54,.07),0 16px 38px rgba(50,61,92,.12),0 34px 70px rgba(86,74,145,.06);
  --bs-shadow-open:0 1px 0 rgba(255,255,255,1) inset,0 5px 12px rgba(23,32,54,.08),0 22px 52px rgba(50,61,92,.15),0 46px 92px rgba(86,74,145,.075);

  /* Bridge legacy Portal variables so old components no longer leak the previous dark palette. */
  --bg:var(--bs-bg);--surface:var(--bs-surface);--surface-2:var(--bs-surface-2);
  --line:var(--bs-line);--line-soft:#E4E8F0;--text:var(--bs-text);--muted:var(--bs-muted);--faint:var(--bs-faint);
  --coach:#7B61E8;--coach-bg:#F0EDFF;--client:#A45488;--client-bg:#F8F6FA;
  --warm:#7657C8;--warm-bg:#F2EEFA;--pink:#B65E9A;--violet:var(--bs-lilac);
  --green:#22936C;--amber:#B27A22;
}
html[data-theme="dark"]{
  --bs-bg:#0D121C;
  --bs-surface:#171E2A;
  --bs-surface-2:#20293A;
  --bs-surface-3:#273247;
  --bs-line:#334057;
  --bs-text:#F7F9FD;
  --bs-muted:#B5BED0;
  --bs-faint:#8894AA;
  --bs-lilac:#B09BFF;
  --bs-lilac-soft:#8E78E7;
  --bs-cobalt:#79A4FF;
  --bs-green:#70D7A3;
  --bs-red:#FF8390;
  --bs-amber:#FFC56D;
  --bs-cta-bg:#F4F6FB;
  --bs-cta-text:#10151F;
  --bs-selected-bg:#29344A;
  --bs-selected-text:#FFFFFF;
  --bs-focus:#8AB4FF;
  --bs-shadow-control:0 1px 0 rgba(255,255,255,.055) inset,0 1px 0 rgba(255,255,255,.025),0 9px 22px rgba(0,0,0,.30);
  --bs-shadow-card:0 1px 0 rgba(255,255,255,.065) inset,0 0 0 1px rgba(255,255,255,.035),0 14px 34px rgba(0,0,0,.34),0 34px 72px rgba(0,0,0,.20);
  --bs-shadow-open:0 1px 0 rgba(255,255,255,.075) inset,0 0 0 1px rgba(255,255,255,.045),0 20px 48px rgba(0,0,0,.40),0 48px 96px rgba(0,0,0,.22);

  --bg:var(--bs-bg);--surface:var(--bs-surface);--surface-2:var(--bs-surface-2);
  --line:var(--bs-line);--line-soft:#2B3548;--text:var(--bs-text);--muted:var(--bs-muted);--faint:var(--bs-faint);
  --coach:#B9A8FF;--coach-bg:#241F38;--client:#E18BBC;--client-bg:#201A23;
  --warm:#C6B4F8;--warm-bg:#211D2E;--pink:#D67FB4;--violet:var(--bs-lilac);
  --green:#70D7A3;--amber:#FFC56D;
}

/* Neutral canvas; depth comes from material hierarchy, not pale blue wash. */
body{
  background:
    radial-gradient(90% 34% at 50% -6%,color-mix(in srgb,var(--bs-lilac) 7%,transparent),transparent 72%),
    var(--bs-bg)!important;
}
header{background:color-mix(in srgb,var(--bs-bg) 92%,transparent)!important}

/* Typography: editorial serif is now rare, not operational. */
.bs-greeting-title{font-family:'Instrument Serif',serif!important;font-weight:400!important;color:var(--bs-text)!important}
.top-row h1,.day-title,.ex-name,.bs-ex-summary-name,.bs-working-title,.smart-note .sn-weight,.bs-ex-summary-load b{
  font-family:'Manrope',sans-serif!important;
  letter-spacing:-.025em!important;
}
.top-row h1,.day-title,.bs-ex-summary-name,.bs-working-title{font-weight:750!important}
.day-title{font-size:28px!important;line-height:1.08!important}
.bs-ex-summary-name{
  font-size:18px!important;line-height:1.18!important;font-weight:750!important;
  white-space:normal!important;overflow:visible!important;text-overflow:clip!important;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
}
.bs-ex-summary-load b{font-size:17px!important;font-weight:700!important;letter-spacing:-.02em!important}
.bs-working-title{font-size:21px!important;line-height:1.12!important;margin-bottom:12px!important}
.smart-note .sn-weight{font-size:18px!important;font-weight:750!important}
.ex-eyebrow,.bs-ex-summary-kicker,.section-label,.bs-set-head,.location-label,.week-dd-trigger .lbl{
  letter-spacing:.075em!important;
}

/* Stronger hierarchy and readable contrast in both themes. */
.bs-ex-summary-kicker{color:color-mix(in srgb,var(--bs-lilac) 78%,var(--bs-muted))!important;font-weight:800!important}
.bs-ex-summary-meta,.ex-meta,.day-sub,.bs-greeting-message{color:var(--bs-muted)!important}
.bs-ex-summary-meta{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;line-height:1.35!important}

/* Floating navigation: selected control is a raised capsule, not a flat fill. */
.week-dd-trigger,#tabs .tab,.tabs.view-tabs,.location-global,.bs-warmup-details{
  border:1px solid color-mix(in srgb,var(--bs-line) 88%,transparent)!important;
}
#tabs .tab.active{
  background:var(--bs-selected-bg)!important;color:var(--bs-selected-text)!important;
  box-shadow:0 1px 0 rgba(255,255,255,.08) inset,0 8px 18px rgba(15,23,42,.18)!important;
}
html[data-theme="dark"] #tabs .tab.active{box-shadow:0 1px 0 rgba(255,255,255,.09) inset,0 10px 24px rgba(0,0,0,.34)!important}
.seg-indicator{background:var(--bs-selected-bg)!important}
.tabs.view-tabs .tab.active{color:var(--bs-selected-text)!important}
.loc-btn.active{background:var(--bs-selected-bg)!important;color:var(--bs-selected-text)!important}

/* Exercise cards: clear edge + real separation from canvas. */
.bs-exercise-card{
  border:1px solid color-mix(in srgb,var(--bs-line) 86%,transparent)!important;
  background:var(--bs-surface)!important;
  box-shadow:var(--bs-shadow-card)!important;
}
.bs-exercise-card[open]{box-shadow:var(--bs-shadow-open)!important;border-color:color-mix(in srgb,var(--bs-lilac) 18%,var(--bs-line))!important}
.bs-exercise-summary{background:var(--bs-surface)!important}
html[data-theme="dark"] .bs-exercise-summary{background:linear-gradient(180deg,#1B2331,#171E2A)!important}
.bs-ex-thumb{
  background:linear-gradient(145deg,#EEEAFE,#E5EBFA)!important;
  color:var(--bs-lilac)!important;
  border:1px solid rgba(116,87,232,.12)!important;
}
html[data-theme="dark"] .bs-ex-thumb{
  background:linear-gradient(145deg,#2B3144,#242B3C)!important;
  border-color:rgba(176,155,255,.18)!important;
}
.bs-ex-summary-load span{background:var(--bs-surface-2)!important;border:1px solid var(--bs-line)!important;box-shadow:var(--bs-shadow-control)!important}

/* Inline SVG icon language replaces emoji/AI-looking glyphs. */
.bs-ui-icon{width:16px;height:16px;display:inline-block;vertical-align:-3px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
.loc-btn{display:flex!important;align-items:center!important;justify-content:center!important;gap:6px!important}
.bs-ex-thumb .bs-ui-icon{width:20px;height:20px;vertical-align:0}
.bs-demo-empty-icon .bs-ui-icon{width:18px;height:18px;vertical-align:0}
.bs-demo-caption .bs-ui-icon{width:15px;height:15px;vertical-align:0}
.exercise-guide>summary>span:first-child{display:flex;align-items:center;gap:6px}
.exercise-guide>summary .bs-ui-icon{width:14px;height:14px}

/* Demo: readable in light and dark, even before a video is loaded. */
.bs-demo-empty{
  background:linear-gradient(145deg,#E9EDF7,#E1E7F3)!important;
  color:var(--bs-text)!important;
  border:1px solid rgba(17,24,39,.045)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.72),0 9px 24px rgba(45,55,84,.09)!important;
}
.bs-demo-empty-icon{background:rgba(255,255,255,.88)!important;color:var(--bs-lilac)!important}
.bs-demo-empty span{color:var(--bs-muted)!important;opacity:1!important}
html[data-theme="dark"] .bs-demo-empty{
  background:linear-gradient(145deg,#263047,#202838)!important;
  color:var(--bs-text)!important;border-color:rgba(255,255,255,.055)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.055),0 14px 28px rgba(0,0,0,.26)!important;
}
html[data-theme="dark"] .bs-demo-empty-icon{background:#303A50!important;color:#C1B3FF!important;box-shadow:0 8px 18px rgba(0,0,0,.22)!important}

/* Metric instruments: enough contrast to read, without creating four mini-cards. */
.bs-metric-row>div,.bs-metric-row>button{
  background:color-mix(in srgb,var(--bs-surface) 82%,var(--bs-surface-2))!important;
  border:1px solid color-mix(in srgb,var(--bs-line) 85%,transparent)!important;
  box-shadow:0 1px 0 rgba(255,255,255,.7) inset,0 6px 14px rgba(42,51,78,.075)!important;
}
html[data-theme="dark"] .bs-metric-row>div,html[data-theme="dark"] .bs-metric-row>button{
  background:#20293A!important;border-color:#344159!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.045),0 8px 18px rgba(0,0,0,.22)!important;
}
.bs-metric-row b{color:var(--bs-text)!important;font-weight:800!important}.bs-metric-row span{color:var(--bs-muted)!important}

/* Semantic cards: tint, don't flood. Removes muddy brown/green blocks in Night. */
.smart-note{
  position:relative;overflow:hidden;border:1px solid var(--bs-line)!important;
  background:var(--bs-surface-2)!important;box-shadow:none!important;
}
.smart-note::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--bs-muted)}
.smart-note.test::before{background:var(--bs-amber)}.smart-note.stay::before,.smart-note.initial::before{background:var(--bs-green)}.smart-note.up::before{background:var(--bs-lilac)}.smart-note.down::before{background:var(--bs-red)}
.smart-note.test,.smart-note.stay,.smart-note.initial,.smart-note.up,.smart-note.down,.smart-note.warn{background:var(--bs-surface-2)!important}
.smart-note .sn-line{color:var(--bs-muted)!important;opacity:1!important}
.smart-note.test .sn-head,.smart-note.test .sn-weight{color:var(--bs-amber)!important}
.smart-note.stay .sn-head,.smart-note.stay .sn-weight,.smart-note.initial .sn-head,.smart-note.initial .sn-weight{color:var(--bs-green)!important}
.smart-note.up .sn-head,.smart-note.up .sn-weight{color:var(--bs-lilac)!important}
.smart-note.down .sn-head,.smart-note.down .sn-weight{color:var(--bs-red)!important}

/* Notes are genuinely secondary. */
.exercise-guide>summary{
  background:transparent!important;border:0!important;color:var(--bs-muted)!important;
  padding:7px 4px!important;border-radius:8px!important;font-weight:650!important;
}
.exercise-guide>summary:active{background:color-mix(in srgb,var(--bs-surface-2) 75%,transparent)!important}

/* Working-set workspace: one material layer; fields are controls, not empty cards. */
.bs-working-sets{
  background:color-mix(in srgb,var(--bs-surface) 94%,var(--bs-surface-2))!important;
  border:1px solid var(--bs-line)!important;
  box-shadow:0 1px 0 rgba(255,255,255,.75) inset,0 9px 22px rgba(45,55,84,.075)!important;
}
html[data-theme="dark"] .bs-working-sets{
  background:#171E2A!important;border-color:#334057!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.045),0 12px 26px rgba(0,0,0,.26)!important;
}
.bs-set-entry-row input.num,.bs-set-entry-row .rir-trigger{
  background:var(--bs-surface-2)!important;border:1px solid var(--bs-line)!important;
  color:var(--bs-text)!important;box-shadow:inset 0 1px 2px rgba(16,24,40,.035)!important;
}
html[data-theme="dark"] .bs-set-entry-row input.num,html[data-theme="dark"] .bs-set-entry-row .rir-trigger{
  background:#20293A!important;border-color:#3A4760!important;color:#F7F9FD!important;
  box-shadow:inset 0 1px 2px rgba(0,0,0,.22)!important;
}
.bs-register-set{background:var(--bs-cta-bg)!important;color:var(--bs-cta-text)!important;box-shadow:0 9px 22px rgba(18,26,45,.16)!important}
html[data-theme="dark"] .bs-register-set{box-shadow:0 9px 22px rgba(0,0,0,.30),inset 0 -1px 0 rgba(0,0,0,.08)!important}

/* RIR: selected values must remain legible in Night. */
.rir-trigger.filled{font-weight:800!important;border-color:transparent!important}
.rir-trigger.filled[data-v="0"]{color:#fff!important}.rir-trigger.filled[data-v="1"]{color:#151515!important}.rir-trigger.filled[data-v="2"]{color:#171717!important}.rir-trigger.filled[data-v="3"]{color:#142014!important}.rir-trigger.filled[data-v="4"]{color:#10201a!important}.rir-trigger.filled[data-v="5"]{color:#fff!important}

/* Self-note and secondary text should not disappear in Night. */
.self-note input{background:var(--bs-surface-2)!important;color:var(--bs-text)!important;border:1px solid var(--bs-line)!important;box-shadow:none!important}
.self-note input::placeholder{color:color-mix(in srgb,var(--bs-muted) 82%,transparent)!important}

@media(max-width:720px){
  .bs-greeting-title{font-size:32px!important}
  .bs-ex-summary-name{font-size:17px!important}
  .bs-exercise-summary{grid-template-columns:58px minmax(0,1fr) 68px!important;gap:9px!important}
  .bs-ex-summary-load b{font-size:16px!important}
  .bs-working-title{font-size:20px!important}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}


/* ============================================================
   PHASE 17.4 — INTERACTION & FEEDBACK PARITY
   ============================================================ */
.nav-row{
  display:grid!important;
  grid-template-columns:80px minmax(0,1fr)!important;
  gap:12px!important;
  overflow:visible!important;
  padding:10px 10px 16px!important;
  margin-left:-10px!important;
  margin-right:-10px!important;
}
.week-dd,#tabs{overflow:visible!important}
.week-dd-trigger{
  width:80px!important;height:58px!important;
  border-radius:18px!important;
  box-shadow:0 14px 30px rgba(43,55,88,.13),0 3px 9px rgba(43,55,88,.07),inset 0 1px 0 rgba(255,255,255,.88)!important;
}
.bs-day-tabs{
  display:grid!important;
  gap:12px!important;
  padding:0!important;
  margin:0!important;
  overflow:visible!important;
}
.bs-day-tabs.bs-days-1{grid-template-columns:1fr!important}
.bs-day-tabs.bs-days-2{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.bs-day-tabs.bs-days-3{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.bs-day-tabs.bs-days-4{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.bs-day-tabs .tab{
  width:100%!important;min-width:0!important;height:58px!important;
  border-radius:18px!important;
  box-shadow:0 14px 30px rgba(43,55,88,.13),0 3px 9px rgba(43,55,88,.07),inset 0 1px 0 rgba(255,255,255,.88)!important;
  position:relative!important;
}
.bs-day-tabs .tab.active{
  transform:translateY(-1px);
  box-shadow:0 16px 34px rgba(18,25,46,.22),0 4px 10px rgba(18,25,46,.12),inset 0 1px 0 rgba(255,255,255,.12)!important;
}
@media(max-width:520px){
  .nav-row{grid-template-columns:78px minmax(0,1fr)!important;gap:10px!important}
  .week-dd-trigger{width:78px!important}
  .bs-day-tabs{gap:9px!important}
}
@media(min-width:521px){
  .bs-day-tabs.bs-days-5,.bs-day-tabs.bs-days-6,.bs-day-tabs.bs-days-7{
    display:flex!important;overflow-x:auto!important;overflow-y:visible!important;padding:3px 5px 16px!important;margin:-3px -5px -16px!important;
  }
  .bs-day-tabs.bs-days-5 .tab,.bs-day-tabs.bs-days-6 .tab,.bs-day-tabs.bs-days-7 .tab{flex:0 0 84px!important}
}
@media(max-width:520px){
  .bs-day-tabs.bs-days-5,.bs-day-tabs.bs-days-6,.bs-day-tabs.bs-days-7{
    display:flex!important;overflow-x:auto!important;padding:3px 6px 16px!important;margin:-3px -6px -16px!important;scroll-snap-type:x proximity;
  }
  .bs-day-tabs.bs-days-5 .tab,.bs-day-tabs.bs-days-6 .tab,.bs-day-tabs.bs-days-7 .tab{flex:0 0 76px!important;scroll-snap-align:start}
}
html[data-theme="dark"] .week-dd-trigger,
html[data-theme="dark"] .bs-day-tabs .tab{
  box-shadow:0 15px 34px rgba(0,0,0,.32),0 3px 8px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.055)!important;
}
html[data-theme="dark"] .bs-day-tabs .tab.active{
  box-shadow:0 18px 38px rgba(0,0,0,.46),0 4px 10px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.09)!important;
}

.rir-trigger.filled,.rir-chip.active{border-color:transparent!important;font-weight:800!important}
.rir-trigger.filled[data-v="0"],.rir-chip[data-v="0"].active{background:#FBE4E8!important;color:#A92D42!important}
.rir-trigger.filled[data-v="1"],.rir-chip[data-v="1"].active{background:#FBEADD!important;color:#9B4B27!important}
.rir-trigger.filled[data-v="2"],.rir-chip[data-v="2"].active{background:#FBF1D8!important;color:#846217!important}
.rir-trigger.filled[data-v="3"],.rir-chip[data-v="3"].active{background:#E6F4E9!important;color:#276A3C!important}
.rir-trigger.filled[data-v="4"],.rir-chip[data-v="4"].active{background:#DFF2EF!important;color:#17695F!important}
.rir-trigger.filled[data-v="5"],.rir-chip[data-v="5"].active{background:#E4ECFA!important;color:#315B99!important}
.bs-rir-saved{font-weight:750;border-radius:999px;padding:4px 7px;justify-self:start}
.bs-rir-saved.rir-v-0{background:#FBE4E8;color:#A92D42}.bs-rir-saved.rir-v-1{background:#FBEADD;color:#9B4B27}
.bs-rir-saved.rir-v-2{background:#FBF1D8;color:#846217}.bs-rir-saved.rir-v-3{background:#E6F4E9;color:#276A3C}
.bs-rir-saved.rir-v-4{background:#DFF2EF;color:#17695F}.bs-rir-saved.rir-v-5{background:#E4ECFA;color:#315B99}
html[data-theme="dark"] .rir-trigger.filled[data-v="0"],html[data-theme="dark"] .rir-chip[data-v="0"].active{background:#46232C!important;color:#FF9AAA!important}
html[data-theme="dark"] .rir-trigger.filled[data-v="1"],html[data-theme="dark"] .rir-chip[data-v="1"].active{background:#453024!important;color:#FFB58B!important}
html[data-theme="dark"] .rir-trigger.filled[data-v="2"],html[data-theme="dark"] .rir-chip[data-v="2"].active{background:#403821!important;color:#F3D67A!important}
html[data-theme="dark"] .rir-trigger.filled[data-v="3"],html[data-theme="dark"] .rir-chip[data-v="3"].active{background:#203A2A!important;color:#8CDEAA!important}
html[data-theme="dark"] .rir-trigger.filled[data-v="4"],html[data-theme="dark"] .rir-chip[data-v="4"].active{background:#1C3A37!important;color:#7ADCCF!important}
html[data-theme="dark"] .rir-trigger.filled[data-v="5"],html[data-theme="dark"] .rir-chip[data-v="5"].active{background:#22334D!important;color:#9DC2FF!important}
html[data-theme="dark"] .bs-rir-saved.rir-v-0{background:#46232C;color:#FF9AAA}html[data-theme="dark"] .bs-rir-saved.rir-v-1{background:#453024;color:#FFB58B}
html[data-theme="dark"] .bs-rir-saved.rir-v-2{background:#403821;color:#F3D67A}html[data-theme="dark"] .bs-rir-saved.rir-v-3{background:#203A2A;color:#8CDEAA}
html[data-theme="dark"] .bs-rir-saved.rir-v-4{background:#1C3A37;color:#7ADCCF}html[data-theme="dark"] .bs-rir-saved.rir-v-5{background:#22334D;color:#9DC2FF}

.smart-note{
  transition:background-color var(--bs-state) ease-out,border-color var(--bs-state) ease-out,opacity var(--bs-state) ease-out!important;
  border-width:1px!important;
}
.smart-note.down{background:#FFF0F2!important;border-color:#F4CCD4!important}
.smart-note.stay,.smart-note.initial{background:#EEF8F2!important;border-color:#CDE7D6!important}
.smart-note.up{background:#F2EEFF!important;border-color:#DCD2FF!important}
.smart-note.observed{background:#F2F5FA!important;border-color:#DCE3EF!important}
.smart-note.warn,.smart-note.test{background:#FFF7E9!important;border-color:#F2DFC0!important}
.smart-note.down::before{background:#C83E56!important;width:4px}
.smart-note.stay::before,.smart-note.initial::before{background:#2D8A58!important;width:4px}
.smart-note.up::before{background:#7650EF!important;width:4px}
.smart-note.observed::before{background:#8793AA!important;width:4px}
.smart-note.warn::before,.smart-note.test::before{background:#B47724!important;width:4px}
.smart-note.down .sn-head,.smart-note.down .sn-weight{color:#B52D46!important}
.smart-note.stay .sn-head,.smart-note.stay .sn-weight,.smart-note.initial .sn-head,.smart-note.initial .sn-weight{color:#247347!important}
.smart-note.up .sn-head,.smart-note.up .sn-weight{color:#6841E8!important}
.smart-note.observed .sn-head,.smart-note.observed .sn-weight{color:#53627B!important}
html[data-theme="dark"] .smart-note.down{background:#2D1C24!important;border-color:#53303C!important}
html[data-theme="dark"] .smart-note.stay,html[data-theme="dark"] .smart-note.initial{background:#182A21!important;border-color:#2C4B39!important}
html[data-theme="dark"] .smart-note.up{background:#211D35!important;border-color:#3B315B!important}
html[data-theme="dark"] .smart-note.observed{background:#1D2634!important;border-color:#34435A!important}
html[data-theme="dark"] .smart-note.warn,html[data-theme="dark"] .smart-note.test{background:#2D2619!important;border-color:#514326!important}
html[data-theme="dark"] .smart-note.down .sn-head,html[data-theme="dark"] .smart-note.down .sn-weight{color:#FF8EA0!important}
html[data-theme="dark"] .smart-note.stay .sn-head,html[data-theme="dark"] .smart-note.stay .sn-weight,html[data-theme="dark"] .smart-note.initial .sn-head,html[data-theme="dark"] .smart-note.initial .sn-weight{color:#7ED7A0!important}
html[data-theme="dark"] .smart-note.up .sn-head,html[data-theme="dark"] .smart-note.up .sn-weight{color:#B8A1FF!important}
html[data-theme="dark"] .smart-note.observed .sn-head,html[data-theme="dark"] .smart-note.observed .sn-weight{color:#B6C2D6!important}

.bs-unit-control{cursor:pointer!important;position:relative!important}
.bs-unit-control::after{content:'⇄';position:absolute;right:8px;top:8px;font-size:10px;color:var(--bs-lilac);opacity:.78}
.bs-unit-control:active{transform:scale(.975)!important}
.bs-set-entry-row{grid-template-columns:minmax(78px,1fr) 66px 58px 58px!important}
.bs-set-entry-row .rir-trigger{width:58px!important}
.bs-set-saved{grid-template-columns:50px 1fr 48px 72px 28px!important;align-items:center!important}
.smart-note .sn-side{min-width:118px}
.smart-note .sn-line{line-height:1.45!important}
header,.nav-row,.week-dd,#tabs,.tabs.view-tabs{overflow:visible!important}


/* ===== Phase 17.5 — completion flow + row parity + borderless elevated surfaces ===== */
.bs-working-sets{
  border:0!important;
  box-shadow:0 18px 42px rgba(38,50,86,.10),0 4px 12px rgba(38,50,86,.06)!important;
}
html[data-theme="dark"] .bs-working-sets{
  border:0!important;
  box-shadow:0 20px 46px rgba(0,0,0,.34),0 4px 12px rgba(0,0,0,.22)!important;
}
.bs-set-head,
.bs-set-saved,
.set-row.bs-set-entry-row{
  grid-template-columns:minmax(72px,1.08fr) minmax(58px,.82fr) minmax(50px,.66fr) minmax(64px,.84fr) 24px!important;
  column-gap:6px!important;
  align-items:center!important;
}
.bs-set-head{padding-left:8px!important;padding-right:8px!important}
.bs-set-head span:not(:first-child){text-align:center!important}
.bs-set-saved{padding-left:8px!important;padding-right:8px!important}
.bs-set-saved>span:nth-child(2),.bs-set-saved>span:nth-child(3),.bs-set-saved>span:nth-child(4){justify-self:center!important;text-align:center!important}
.bs-set-saved .bs-rir-saved{justify-self:center!important;white-space:nowrap!important}
.set-row.bs-set-entry-row{padding-left:8px!important;padding-right:8px!important}
.bs-set-entry-row input.num{width:100%!important;min-width:0!important}
.bs-set-entry-row .rir-picker-wrap{justify-self:center!important}
.bs-set-entry-row .rir-trigger{width:100%!important;min-width:58px!important}
.bs-set-action-spacer{display:block;width:24px;height:1px}

/* Recommendation is one elevated semantic surface: no colored rail, no visible border. */
.smart-note{
  border:0!important;
  box-shadow:0 14px 34px rgba(37,49,83,.11),0 3px 10px rgba(37,49,83,.06)!important;
  overflow:visible!important;
}
.smart-note::before{display:none!important;content:none!important}
.smart-note.down{background:#FFF0F2!important}
.smart-note.stay,.smart-note.initial{background:#EEF8F2!important}
.smart-note.up{background:#F2EEFF!important}
.smart-note.observed{background:#F2F5FA!important}
.smart-note.warn,.smart-note.test{background:#FFF7E9!important}
html[data-theme="dark"] .smart-note{border:0!important;box-shadow:0 16px 38px rgba(0,0,0,.30),0 3px 9px rgba(0,0,0,.20)!important}

/* Floating controls should read as independent surfaces, not bordered chips. */
.week-dd-trigger,.bs-day-tabs .tab,.tabs.view-tabs,.loc-btn{
  border:0!important;
}
.week-dd-trigger,.bs-day-tabs .tab{
  box-shadow:0 13px 30px rgba(25,36,70,.13),0 3px 9px rgba(25,36,70,.07),inset 0 1px 0 rgba(255,255,255,.78)!important;
}

/* Rare completion cue: static glow on a pseudo-element; only opacity animates. */
.bs-exercise-card{position:relative!important;isolation:isolate}
.bs-exercise-card.bs-next-exercise-cue::after{
  content:"";
  position:absolute;
  inset:-4px;
  z-index:-1;
  pointer-events:none;
  border-radius:calc(var(--bs-radius-xl, 26px) + 5px);
  box-shadow:0 0 0 2px rgba(140,105,246,.38),0 0 30px rgba(140,105,246,.36),0 18px 42px rgba(98,70,205,.18);
  opacity:0;
  animation:bsNextExerciseCue 4s ease-out 1;
}
@keyframes bsNextExerciseCue{
  0%{opacity:0}
  12%{opacity:1}
  45%{opacity:.72}
  78%{opacity:.42}
  100%{opacity:0}
}
@media(prefers-reduced-motion:reduce){
  .bs-exercise-card.bs-next-exercise-cue::after{animation:none!important;opacity:.45!important}
}


/* ============================================================
   PHASE 17.6 — SURFACE POLISH + INTERACTION CONSISTENCY
   Student Core presentation/orchestration only.
   ============================================================ */
:root{
  --bs-shared:250ms;
  --bs-ease-direct:cubic-bezier(.2,.8,.2,1);
  --bs-set-grid:minmax(78px,1.08fr) minmax(60px,.82fr) minmax(52px,.68fr) minmax(66px,.86fr) 28px;
}

/* Night mode: cleaner navy/graphite hierarchy with luminous lilac accents. */
html[data-theme="dark"]{
  --bs-bg:#0A1020;
  --bs-surface:#121A28;
  --bs-surface-2:#19243A;
  --bs-line:#2E3A52;
  --bs-text:#F8FAFF;
  --bs-muted:#B7C2D8;
  --bs-faint:#8794AE;
  --bs-lilac:#A88CFF;
  --bs-lilac-soft:#D7CAFF;
  --bs-cobalt:#8FA7FF;
  --bs-green:#82DEAA;
  --bs-red:#FF91A2;
  --bs-amber:#F3C875;
  --bs-shadow:0 18px 48px rgba(0,0,0,.38),0 3px 10px rgba(0,0,0,.24);
}
html[data-theme="dark"] body{
  background:radial-gradient(95% 34% at 50% -8%,rgba(168,140,255,.11),transparent 70%),var(--bs-bg)!important;
}
html[data-theme="dark"] .bs-exercise-card,
html[data-theme="dark"] .bs-working-sets,
html[data-theme="dark"] .location-global,
html[data-theme="dark"] .bs-warmup-details{
  background:var(--bs-surface)!important;
}
html[data-theme="dark"] .bs-exercise-summary,
html[data-theme="dark"] .bs-exercise-detail{background:var(--bs-surface)!important}
html[data-theme="dark"] .bs-metric-row>div,
html[data-theme="dark"] .bs-metric-row>button,
html[data-theme="dark"] .exercise-guide,
html[data-theme="dark"] .bs-technique,
html[data-theme="dark"] .bs-set-entry-row input.num,
html[data-theme="dark"] .bs-set-entry-row .rir-trigger{background:var(--bs-surface-2)!important}

/* Week + weekday controls: exactly one stable horizontal row, never vertical reflow. */
.nav-row{
  display:grid!important;
  grid-template-columns:80px minmax(0,1fr)!important;
  align-items:stretch!important;
  gap:10px!important;
  overflow:visible!important;
  padding:8px 8px 18px!important;
  margin:0 -8px 2px!important;
}
.week-dd{width:80px!important;min-width:80px!important;overflow:visible!important}
.week-dd-trigger{
  width:80px!important;min-width:80px!important;height:54px!important;
  border:0!important;border-radius:16px!important;
  box-shadow:0 12px 28px rgba(35,49,88,.12),0 3px 8px rgba(35,49,88,.06),inset 0 1px 0 rgba(255,255,255,.84)!important;
  transition:transform var(--bs-press) var(--bs-ease-direct),background-color var(--bs-state) ease-out,color var(--bs-state) ease-out!important;
}
#tabs.bs-day-tabs{
  min-width:0!important;
  display:grid!important;
  grid-auto-flow:column!important;
  grid-auto-columns:minmax(0,1fr)!important;
  grid-template-columns:none!important;
  align-items:stretch!important;
  gap:8px!important;
  overflow:visible!important;
  padding:0!important;
  margin:0!important;
  flex-wrap:nowrap!important;
}
#tabs.bs-day-tabs .tab{
  width:100%!important;min-width:0!important;height:54px!important;
  padding:0 4px!important;border:0!important;border-radius:16px!important;
  white-space:nowrap!important;
  box-shadow:0 12px 28px rgba(35,49,88,.12),0 3px 8px rgba(35,49,88,.06),inset 0 1px 0 rgba(255,255,255,.84)!important;
  transition:transform var(--bs-press) var(--bs-ease-direct),background-color var(--bs-state) ease-out,color var(--bs-state) ease-out,opacity var(--bs-state) ease-out!important;
}
.week-dd-trigger:active,#tabs.bs-day-tabs .tab:active{transform:scale(.975)!important}
#tabs.bs-day-tabs .tab.active{transform:none!important}
html[data-theme="dark"] .week-dd-trigger,
html[data-theme="dark"] #tabs.bs-day-tabs .tab{
  box-shadow:0 14px 32px rgba(0,0,0,.34),0 3px 8px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.06)!important;
}
@media(max-width:520px){
  .nav-row{grid-template-columns:72px minmax(0,1fr)!important;gap:8px!important}
  .week-dd,.week-dd-trigger{width:72px!important;min-width:72px!important}
  #tabs.bs-day-tabs{gap:6px!important}
  #tabs.bs-day-tabs .tab{font-size:10.5px!important;padding:0 2px!important}
}

/* One shared five-column contract for header, editing row and saved row. */
.bs-set-head,
.set-row.bs-set-entry-row,
.bs-set-saved{
  display:grid!important;
  grid-template-columns:var(--bs-set-grid)!important;
  column-gap:6px!important;
  align-items:center!important;
  box-sizing:border-box!important;
  padding-left:8px!important;
  padding-right:8px!important;
}
.bs-set-head>span:nth-child(n+2),
.bs-set-saved>span:nth-child(2),
.bs-set-saved>span:nth-child(3),
.bs-set-saved>span:nth-child(4){text-align:center!important;justify-self:stretch!important}
.bs-set-entry-row input.num,
.bs-set-entry-row .rir-picker-wrap{width:100%!important;min-width:0!important;justify-self:stretch!important}
.bs-set-entry-row .rir-trigger{width:100%!important;min-width:0!important}
.bs-set-saved .bs-rir-saved{justify-self:center!important;white-space:nowrap!important}
.bs-set-saved>button{width:28px!important;min-width:28px!important;justify-self:center!important}
.bs-set-action-spacer{width:28px!important;min-width:28px!important}
@media(max-width:390px){
  :root{--bs-set-grid:minmax(72px,1.04fr) minmax(54px,.78fr) minmax(48px,.66fr) minmax(62px,.86fr) 26px}
  .bs-set-head,.set-row.bs-set-entry-row,.bs-set-saved{column-gap:4px!important;padding-left:5px!important;padding-right:5px!important}
}

/* Equipment belongs inside Notes & execution, never as a standalone green pill. */
.bs-equipment-guide-section .equipment-line,
.bs-equipment-guide-section .equip-caution{
  display:block!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:var(--bs-muted)!important;
  font:600 10px/1.5 'Manrope',sans-serif!important;
}
.bs-equipment-guide-section .equipment-line b{display:none!important}
.bs-equipment-guide-section .equipment-line span{color:inherit!important}
.bs-equipment-guide-section .equip-caution{color:color-mix(in srgb,var(--bs-amber) 78%,var(--bs-text))!important}
html[data-theme="dark"] .bs-equipment-guide-section .equip-caution{color:#F3CF8A!important}

/* Recommendation remains a single elevated semantic surface with no visible border/rail. */
.smart-note{
  border:0!important;border-color:transparent!important;
  box-shadow:0 14px 34px rgba(37,49,83,.11),0 3px 10px rgba(37,49,83,.06)!important;
  transition:background-color var(--bs-state) ease-out,color var(--bs-state) ease-out,opacity var(--bs-state) ease-out!important;
}
.smart-note::before{display:none!important;content:none!important}
.smart-note.down{background:#FFF0F2!important}
.smart-note.stay,.smart-note.initial{background:#EEF8F2!important}
.smart-note.up{background:#F2EEFF!important}
html[data-theme="dark"] .smart-note{border:0!important;border-color:transparent!important;box-shadow:0 16px 38px rgba(0,0,0,.32),0 3px 9px rgba(0,0,0,.20)!important}
html[data-theme="dark"] .smart-note.down{background:#2B1A24!important}
html[data-theme="dark"] .smart-note.stay,html[data-theme="dark"] .smart-note.initial{background:#172A22!important}
html[data-theme="dark"] .smart-note.up{background:#251F3C!important}

/* Direct manipulation: 160 ms press, 200 ms state, 250 ms shared movement. */
.bs-exercise-summary,.bs-demo-technique,.bs-technique-btn,.exercise-guide>summary,.bs-unit-control,.bs-register-set,.loc-btn,.rir-trigger,.rir-chip,.tabs.view-tabs .tab,.week-dd-trigger,#tabs.bs-day-tabs .tab{
  -webkit-tap-highlight-color:transparent!important;
}
.bs-exercise-summary,.bs-demo-technique,.bs-technique-btn,.exercise-guide>summary,.bs-unit-control,.bs-register-set,.loc-btn,.rir-trigger,.rir-chip{
  transition:transform var(--bs-press) var(--bs-ease-direct),background-color var(--bs-state) ease-out,color var(--bs-state) ease-out,opacity var(--bs-state) ease-out!important;
}
.bs-exercise-summary:active,.bs-demo-technique:active,.bs-technique-btn:active,.exercise-guide>summary:active,.bs-unit-control:active,.bs-register-set:active,.loc-btn:active,.rir-trigger:active,.rir-chip:active{transform:scale(.985)!important}
.bs-exercise-card[open]>.bs-exercise-summary{background:color-mix(in srgb,var(--bs-lilac) 4%,var(--bs-surface))!important}
.seg-indicator{transition:transform var(--bs-shared) var(--bs-ease-direct)!important}

/* Completion cue: luminous lilac halo from behind for five seconds; no scroll/open side effect. */
.bs-exercise-card.bs-next-exercise-cue{overflow:visible!important}
.bs-exercise-card.bs-next-exercise-cue::after{
  inset:-5px!important;
  border-radius:calc(var(--bs-radius-xl, 26px) + 6px)!important;
  box-shadow:0 0 0 2px rgba(168,140,255,.42),0 0 34px rgba(168,140,255,.42),0 18px 44px rgba(107,78,221,.20)!important;
  animation:bsNextExerciseCue17_6 5s ease-out 1!important;
}
@keyframes bsNextExerciseCue17_6{
  0%{opacity:0}
  10%{opacity:1}
  34%{opacity:.86}
  68%{opacity:.52}
  100%{opacity:0}
}
html[data-theme="dark"] .bs-exercise-card.bs-next-exercise-cue::after{
  box-shadow:0 0 0 2px rgba(184,158,255,.56),0 0 38px rgba(168,140,255,.52),0 20px 48px rgba(104,73,218,.26)!important;
}

/* kg/lb remains per numeric exercise only; this layer never changes canonical backend units. */
.bs-unit-control{position:relative!important}

@media(prefers-reduced-motion:reduce){
  .bs-exercise-card.bs-next-exercise-cue::after{animation:none!important;opacity:.46!important}
}

/* ============================================================
   PHASE 17.7 — TRAINING STRUCTURE + INLINE MEDIA FLOW
   Student Core presentation/orchestration only.
   ============================================================ */

/* Visible workout structure is authored execution structure, not main/accessory taxonomy. */
.bs-training-structure-label{
  display:flex!important;
  align-items:center!important;
  gap:9px!important;
  min-height:20px!important;
  margin:13px 3px 7px!important;
  font:800 9px/1.2 'Manrope',sans-serif!important;
  letter-spacing:.12em!important;
  text-transform:uppercase!important;
  color:var(--bs-lilac)!important;
  overflow:visible!important;
}
.bs-training-structure-label::after{
  content:"";
  height:1px;
  flex:1 1 auto;
  background:linear-gradient(90deg,color-mix(in srgb,var(--bs-lilac) 34%,transparent),transparent 88%);
}
.bs-training-structure-label small{
  order:2;
  flex:0 0 auto;
  padding:5px 8px;
  border-radius:999px;
  background:color-mix(in srgb,var(--bs-lilac) 8%,var(--bs-surface));
  color:var(--bs-muted);
  font:700 9px/1 'Manrope',sans-serif;
  letter-spacing:0;
  text-transform:none;
  box-shadow:var(--bs-shadow-control);
}
.bs-training-structure-label small + *{order:3}
.bs-training-structure-label.individual{margin-top:11px!important}
.bs-training-structure-label.individual span{color:color-mix(in srgb,var(--bs-lilac) 88%,var(--bs-text))!important}
html[data-theme="dark"] .bs-training-structure-label::after{
  background:linear-gradient(90deg,rgba(168,140,255,.44),transparent 88%);
}
html[data-theme="dark"] .bs-training-structure-label small{
  background:#202A40;
  color:#CBD4E7;
}

/* Compact group guidance: no rest timer gate; registration itself drives the handoff. */
.training-group-guide{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:14px!important;
  margin:0 0 9px!important;
  padding:11px 12px!important;
  border:0!important;
  border-radius:13px!important;
  background:color-mix(in srgb,var(--bs-lilac) 7%,var(--bs-surface-2))!important;
  color:var(--bs-muted)!important;
  box-shadow:0 10px 26px rgba(50,57,91,.07)!important;
  font:600 9px/1.45 'Manrope',sans-serif!important;
}
.training-group-guide>div{display:flex;flex-direction:column;gap:4px;flex:0 0 auto}
.training-group-guide strong{font:800 9px/1.1 'Manrope',sans-serif;color:var(--bs-lilac);letter-spacing:.08em;text-transform:uppercase}
.training-group-guide b{font:750 9px/1.1 'Manrope',sans-serif!important;color:var(--bs-text)!important;letter-spacing:0!important;text-transform:none!important;margin:0!important}
.training-group-guide>span{max-width:68%;text-align:right}
html[data-theme="dark"] .training-group-guide{background:#1B2539!important;box-shadow:0 12px 28px rgba(0,0,0,.20)!important}

/* In-group handoff: next member is already open; this makes the transition perceptible without bounce/ripple/scroll. */
.bs-exercise-card.bs-group-handoff-in{overflow:visible!important}
.bs-exercise-card.bs-group-handoff-in::after{
  content:"";
  position:absolute;
  inset:-4px;
  z-index:-1;
  pointer-events:none;
  border-radius:calc(var(--bs-radius-xl, 26px) + 5px);
  box-shadow:0 0 0 2px rgba(168,140,255,.34),0 0 26px rgba(168,140,255,.28);
  opacity:0;
  animation:bsGroupHandoffHalo 850ms var(--bs-ease-direct) 1;
}
.bs-exercise-card.bs-group-handoff-in[open]>.bs-exercise-detail{
  animation:bsGroupDetailIn var(--bs-shared) var(--bs-ease-direct) both;
}
@keyframes bsGroupHandoffHalo{0%{opacity:0}24%{opacity:1}70%{opacity:.52}100%{opacity:0}}
@keyframes bsGroupDetailIn{from{opacity:.35;transform:translateY(-3px)}to{opacity:1;transform:none}}
.bs-training-structure-label.bs-next-structure-cue span{
  animation:bsStructureTextCue 5s ease-out 1;
}
@keyframes bsStructureTextCue{0%,100%{opacity:1}12%{opacity:.62}28%{opacity:1}}

/* Reference is a small semantic surface that mirrors the live recommendation state. */
.bs-ex-summary-load{
  min-width:84px!important;
  padding:7px 8px 7px 9px!important;
  border-radius:13px!important;
  box-sizing:border-box!important;
  box-shadow:0 9px 22px rgba(39,51,84,.08)!important;
  transition:background-color var(--bs-state) ease-out,color var(--bs-state) ease-out,transform var(--bs-press) var(--bs-ease-direct)!important;
}
.bs-ex-summary-load.state-neutral{background:var(--bs-surface-2)!important}
.bs-ex-summary-load.state-stay{background:#EEF8F2!important}
.bs-ex-summary-load.state-up{background:#F2EEFF!important}
.bs-ex-summary-load.state-down{background:#FFF0F2!important}
.bs-ex-summary-load.state-stay small,.bs-ex-summary-load.state-stay b{color:#247347!important}
.bs-ex-summary-load.state-up small,.bs-ex-summary-load.state-up b{color:#6841E8!important}
.bs-ex-summary-load.state-down small,.bs-ex-summary-load.state-down b{color:#B52D46!important}
.bs-ex-summary-load.state-neutral small{color:var(--bs-faint)!important}
.bs-ex-summary-load.state-neutral b{color:var(--bs-text)!important}
html[data-theme="dark"] .bs-ex-summary-load{box-shadow:0 10px 24px rgba(0,0,0,.22)!important}
html[data-theme="dark"] .bs-ex-summary-load.state-neutral{background:#1C263A!important}
html[data-theme="dark"] .bs-ex-summary-load.state-stay{background:#172A22!important}
html[data-theme="dark"] .bs-ex-summary-load.state-up{background:#251F3C!important}
html[data-theme="dark"] .bs-ex-summary-load.state-down{background:#2B1A24!important}
html[data-theme="dark"] .bs-ex-summary-load.state-stay small,html[data-theme="dark"] .bs-ex-summary-load.state-stay b{color:#7ED7A0!important}
html[data-theme="dark"] .bs-ex-summary-load.state-up small,html[data-theme="dark"] .bs-ex-summary-load.state-up b{color:#B8A1FF!important}
html[data-theme="dark"] .bs-ex-summary-load.state-down small,html[data-theme="dark"] .bs-ex-summary-load.state-down b{color:#FF8EA0!important}

/* Technique stays inside the original media frame. No second Technique card below it. */
.bs-demo{isolation:isolate}
.bs-demo-poster-layer,.bs-demo-player{position:absolute;inset:0}
.bs-demo-poster-layer{z-index:1;opacity:1;transition:opacity var(--bs-state) ease-out}
.bs-demo-player{z-index:2;background:#090D16;animation:bsDemoPlayerIn var(--bs-state) ease-out both}
.bs-demo-player[hidden]{display:none!important}
.bs-demo-player iframe,.bs-demo-player video{position:absolute;inset:0;width:100%;height:100%;border:0;background:#000;object-fit:contain}
.bs-demo.is-playing .bs-demo-poster-layer{opacity:0}
.bs-demo.is-playing .bs-demo-technique{
  left:10px!important;
  right:auto!important;
  top:10px!important;
  bottom:auto!important;
  z-index:5!important;
  background:rgba(16,20,32,.74)!important;
  color:#fff!important;
  backdrop-filter:blur(8px);
}
.bs-demo-external{
  position:absolute;
  top:10px;
  right:10px;
  z-index:5;
  padding:8px 10px;
  border-radius:999px;
  background:rgba(16,20,32,.74);
  color:#fff!important;
  font:750 9px/1 'Manrope',sans-serif;
  text-decoration:none;
  backdrop-filter:blur(8px);
}
.bs-demo-inline-fallback{
  position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:44px 18px 18px;text-align:center;color:#fff;background:#111725
}
.bs-demo-inline-fallback b{font:800 12px/1.2 'Manrope',sans-serif}
.bs-demo-inline-fallback span{max-width:320px;color:#C5CEE0;font:600 10px/1.4 'Manrope',sans-serif}
.bs-demo-inline-fallback a{margin-top:3px;color:#D7CAFF!important;font:800 10px/1 'Manrope',sans-serif;text-decoration:none}
.bs-demo-static .bs-demo-caption{max-width:82%}
@keyframes bsDemoPlayerIn{from{opacity:.35;transform:scale(.997)}to{opacity:1;transform:none}}

@media(max-width:390px){
  .bs-exercise-summary{grid-template-columns:58px minmax(0,1fr) 78px!important}
  .bs-ex-summary-load{min-width:78px!important;padding-left:7px!important;padding-right:7px!important}
  .training-group-guide{gap:10px!important}
  .training-group-guide>span{max-width:62%}
}

@media(prefers-reduced-motion:reduce){
  .bs-exercise-card.bs-group-handoff-in::after,.bs-exercise-card.bs-group-handoff-in[open]>.bs-exercise-detail,.bs-training-structure-label.bs-next-structure-cue span,.bs-demo-player{animation:none!important}
  .bs-exercise-card.bs-group-handoff-in::after{opacity:.34!important}
}
.training-group-guide.compact{padding:9px 11px!important;align-items:center!important}
.training-group-guide.compact>span{max-width:52%;font-size:8.5px!important}

/* ============================================================
   PHASE 17.7.1 — LIVE DEVICE REPAIR
   Fixes reference surface clipping, week tile clipping, inline-media
   affordance duplication, and non-numeric set registration.
   ============================================================ */

/* Week selector: one self-contained surface, no legacy pseudo-arrow stealing vertical space. */
.week-dd,.week-dd-trigger{box-sizing:border-box!important}
.week-dd-trigger{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:center!important;
  width:100%!important;
  min-width:0!important;
  height:54px!important;
  padding:7px 10px!important;
  overflow:visible!important;
  white-space:nowrap!important;
  text-align:left!important;
}
.week-dd-trigger::after{content:none!important;display:none!important}
.week-dd-trigger .lbl{
  display:block!important;
  width:100%!important;
  margin:0 0 2px!important;
  font:650 8px/1 'Manrope',sans-serif!important;
  letter-spacing:.08em!important;
  text-transform:uppercase!important;
  overflow:visible!important;
}
.week-dd-trigger .val{
  display:flex!important;
  align-items:center!important;
  gap:5px!important;
  width:100%!important;
  min-width:0!important;
  font:800 16px/1.05 'Manrope',sans-serif!important;
  overflow:visible!important;
}
.week-dd-trigger .val svg{flex:0 0 auto!important;width:9px!important;height:6px!important}
@media(max-width:520px){
  .nav-row{grid-template-columns:76px minmax(0,1fr)!important}
  .week-dd{width:76px!important;min-width:76px!important}
  .week-dd-trigger{height:54px!important;padding:7px 9px!important}
}

/* Reference: semantic color lives in typography + a tiny status dot, never a pasted rectangle. */
.bs-ex-summary-load,
.bs-ex-summary-load.state-neutral,
.bs-ex-summary-load.state-stay,
.bs-ex-summary-load.state-up,
.bs-ex-summary-load.state-down{
  position:relative!important;
  min-width:78px!important;
  padding:4px 5px 28px 4px!important;
  background:transparent!important;
  box-shadow:none!important;
  border-radius:0!important;
  overflow:visible!important;
}
.bs-ex-summary-load small{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:5px!important;
  color:var(--bs-faint)!important;
}
.bs-ex-summary-load small::before{
  content:"";
  width:6px;height:6px;border-radius:50%;
  background:var(--bs-faint);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--bs-faint) 10%,transparent);
}
.bs-ex-summary-load b{display:block!important;text-align:right!important;color:var(--bs-text)!important}
.bs-ex-summary-load.state-stay small,.bs-ex-summary-load.state-stay b{color:#247347!important}
.bs-ex-summary-load.state-up small,.bs-ex-summary-load.state-up b{color:#6841E8!important}
.bs-ex-summary-load.state-down small,.bs-ex-summary-load.state-down b{color:#B52D46!important}
.bs-ex-summary-load.state-stay small::before{background:#42A66C;box-shadow:0 0 0 3px rgba(66,166,108,.12)}
.bs-ex-summary-load.state-up small::before{background:#8064EF;box-shadow:0 0 0 3px rgba(128,100,239,.12)}
.bs-ex-summary-load.state-down small::before{background:#D45167;box-shadow:0 0 0 3px rgba(212,81,103,.12)}
.bs-summary-chevron{
  position:absolute!important;
  right:4px!important;
  bottom:1px!important;
  width:27px!important;height:27px!important;
  display:grid!important;place-items:center!important;
  border-radius:50%!important;
  background:var(--bs-surface-2)!important;
  color:var(--bs-lilac)!important;
  box-shadow:var(--bs-shadow-control)!important;
}
html[data-theme="dark"] .bs-ex-summary-load,
html[data-theme="dark"] .bs-ex-summary-load.state-neutral,
html[data-theme="dark"] .bs-ex-summary-load.state-stay,
html[data-theme="dark"] .bs-ex-summary-load.state-up,
html[data-theme="dark"] .bs-ex-summary-load.state-down{background:transparent!important;box-shadow:none!important}
html[data-theme="dark"] .bs-ex-summary-load.state-stay small,html[data-theme="dark"] .bs-ex-summary-load.state-stay b{color:#7ED7A0!important}
html[data-theme="dark"] .bs-ex-summary-load.state-up small,html[data-theme="dark"] .bs-ex-summary-load.state-up b{color:#B8A1FF!important}
html[data-theme="dark"] .bs-ex-summary-load.state-down small,html[data-theme="dark"] .bs-ex-summary-load.state-down b{color:#FF8EA0!important}

/* Media frame has ONE primary affordance: the play control/caption itself. */
.bs-demo-launch{
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  width:100%!important;height:100%!important;
  margin:0!important;padding:0!important;
  border:0!important;border-radius:inherit!important;
  background:transparent!important;
  color:inherit!important;
  cursor:pointer!important;
  overflow:hidden!important;
  text-align:left!important;
  -webkit-tap-highlight-color:transparent!important;
  transition:opacity var(--bs-state) ease-out,transform var(--bs-press) var(--bs-ease-direct)!important;
}
.bs-demo-launch:active{transform:scale(.995)!important;opacity:.94!important}
.bs-demo-launch[hidden]{display:none!important}
.bs-demo-launch .bs-demo-poster-layer{position:absolute!important;inset:0!important}
.bs-demo.is-playing .bs-demo-poster-layer{opacity:1!important}
.bs-demo-close{
  position:absolute!important;
  top:10px!important;left:10px!important;
  z-index:5!important;
  min-height:34px!important;
  padding:8px 11px!important;
  border:0!important;border-radius:999px!important;
  background:rgba(16,20,32,.76)!important;
  color:#fff!important;
  font:750 9px/1 'Manrope',sans-serif!important;
  backdrop-filter:blur(8px)!important;
}
.bs-demo-close[hidden],.bs-demo-external[hidden]{display:none!important}
.bs-demo-external{top:10px!important;right:10px!important}
.bs-demo-technique{display:none!important}

/* Non-numeric loads must not force fake kg/lb just to register a set. */
.bs-set-load-static{
  min-height:44px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:13px!important;
  background:var(--bs-surface-2)!important;
  color:var(--bs-muted)!important;
  box-shadow:inset 0 0 0 1px var(--bs-line)!important;
  font:800 10px/1 'Manrope',sans-serif!important;
  text-align:center!important;
}
html[data-theme="dark"] .bs-set-load-static{background:#202431!important;box-shadow:inset 0 0 0 1px #30364a!important;color:#CBD4E7!important}

/* Group handoff must visibly reveal the next member even when the browser delays details painting. */
.bs-exercise-card.bs-group-handoff-in[open]>.bs-exercise-summary{
  background:color-mix(in srgb,var(--bs-lilac) 6%,var(--bs-surface))!important;
}
.bs-exercise-card.bs-group-handoff-in[open]>.bs-exercise-detail{
  display:block!important;
  opacity:1!important;
}


/* ============================================================
   PHASE 17.7.2 — MICRO REPAIR
   Reference is now pure semantic typography; zero external load
   is handled in registration logic, not visual styling.
   ============================================================ */
.bs-ex-summary-load,
.bs-ex-summary-load.state-neutral,
.bs-ex-summary-load.state-stay,
.bs-ex-summary-load.state-up,
.bs-ex-summary-load.state-down{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-end!important;
  justify-content:flex-start!important;
  min-width:74px!important;
  padding:5px 4px 30px 4px!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  border-radius:0!important;
  overflow:visible!important;
}
.bs-ex-summary-load small,
.bs-ex-summary-load small::before{display:none!important;content:none!important;box-shadow:none!important}
.bs-ex-summary-load b{
  margin:0!important;
  max-width:100%!important;
  text-align:right!important;
  white-space:nowrap!important;
  font-family:'Manrope',sans-serif!important;
  font-size:17px!important;
  line-height:1.05!important;
  font-weight:800!important;
  letter-spacing:-.03em!important;
  color:var(--bs-text)!important;
}
.bs-ex-summary-load.state-stay b{color:#247347!important}
.bs-ex-summary-load.state-up b{color:#6841E8!important}
.bs-ex-summary-load.state-down b{color:#B52D46!important}
.bs-ex-summary-load.state-neutral b{color:var(--bs-text)!important}
.bs-summary-chevron{right:3px!important;bottom:1px!important}
html[data-theme="dark"] .bs-ex-summary-load.state-stay b{color:#7ED7A0!important}
html[data-theme="dark"] .bs-ex-summary-load.state-up b{color:#B8A1FF!important}
html[data-theme="dark"] .bs-ex-summary-load.state-down b{color:#FF8EA0!important}
html[data-theme="dark"] .bs-ex-summary-load.state-neutral b{color:var(--bs-text)!important}
@media(max-width:390px){
  .bs-exercise-summary{grid-template-columns:58px minmax(0,1fr) 74px!important}
  .bs-ex-summary-load{min-width:74px!important;padding-left:2px!important;padding-right:2px!important}
  .bs-ex-summary-load b{font-size:16px!important}
}
