/* The exercise lab keeps the established clinical palette and anatomy-first stage. */
body[data-platform-section="human"] .atlas-mode-switch{display:flex;width:calc(100vw - 48px);max-width:1000px;overflow-x:auto;scrollbar-width:thin}
.atlas-mode-switch #exerciseStudyMode{flex:0 0 auto;white-space:nowrap}
.exercise-root{position:fixed;inset:0;z-index:16;pointer-events:none;color:var(--text,#eaf1f1);font:13px/1.5 Arial,sans-serif}
.exercise-root[hidden],.exercise-root [hidden],body:not([data-platform-section="human"]) .exercise-root{display:none!important}
body.exercise-active #app>.controls,body.exercise-active #app>#infoCard,body.exercise-active #legend,body.exercise-active #quizPanel,body.exercise-active #labels,body.exercise-active .label-leaders,body.exercise-active .atlas-root,body.exercise-active .atlas-movement-return,body.exercise-active #boneStudyReturn,body.exercise-active #neuroMovementReturn{display:none!important}
body.exercise-active[data-exercise-ready="false"] #viewport{visibility:hidden}
body.exercise-active .brand h1{font-size:clamp(23px,2.3vw,36px)}
body.exercise-active .platform-home-link{top:150px!important;right:24px!important;bottom:auto!important}
.exercise-breadcrumb{position:absolute;top:150px;left:24px;right:24px;display:flex;gap:8px;align-items:center;pointer-events:auto;font-size:11px}
.exercise-breadcrumb span{color:var(--muted,#9eafb4)}
.exercise-panel{position:absolute;top:194px;bottom:122px;padding:16px;background:var(--panel,#10191d);border:1px solid var(--line,#2a383d);border-radius:var(--radius,8px);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;pointer-events:auto}
.exercise-library{left:24px;width:248px}.exercise-details{right:24px;width:330px}
.exercise-panel h2{font-size:20px;line-height:1.2;margin:0 0 8px}.exercise-panel h3{font-size:13px;color:var(--teal,#63d0c8);margin:17px 0 7px}.exercise-panel h4{font-size:12px;margin:9px 0 5px}.exercise-panel p{margin:6px 0;overflow-wrap:anywhere}.exercise-panel ul,.exercise-panel ol{padding-left:19px;margin:7px 0}.exercise-panel li+li{margin-top:7px}
.exercise-panel input[type=search],.exercise-panel select{width:100%;height:35px;border:1px solid var(--line,#2a383d);border-radius:5px;background:#111a1e;color:var(--text,#eaf1f1);padding:6px 8px;font:inherit;margin:4px 0 9px;min-width:0}
.exercise-panel label{font-size:11px;color:var(--muted,#9eafb4);font-weight:700}.exercise-library-count{color:var(--muted,#9eafb4);font-size:11px;margin-bottom:15px!important}.exercise-library-safety{color:var(--muted,#9eafb4);font-size:10px;border-top:1px solid var(--line,#2a383d);padding-top:11px;margin-top:14px!important}
.exercise-filters{display:grid;grid-template-columns:1fr 1fr;gap:0 7px}.exercise-filters label:first-of-type{grid-column:1;grid-row:1}.exercise-filters select:first-of-type{grid-column:1;grid-row:2}.exercise-filters label:last-of-type{grid-column:2;grid-row:1}.exercise-filters select:last-of-type{grid-column:2;grid-row:2}.exercise-filters select{font-size:11px;padding-left:5px}.exercise-mobile-select{display:none}.exercise-results{display:grid;gap:5px;margin-top:5px}.exercise-choice{background:transparent;border:1px solid transparent;border-bottom-color:var(--line,#2a383d);border-radius:4px;color:var(--text,#eaf1f1);font:inherit;padding:9px 8px;text-align:left;cursor:pointer;width:100%}.exercise-choice strong{font-size:12px;font-weight:600;display:block}.exercise-choice span{display:block;font-size:10px;color:var(--muted,#9eafb4);margin-top:4px}.exercise-choice[aria-pressed=true]{border-color:var(--teal,#63d0c8);background:rgba(99,208,200,.1)}.exercise-choice:hover{background:rgba(99,208,200,.08)}
.exercise-root .control-button{font:inherit;font-size:11px;padding:6px 9px;min-height:31px;height:auto;white-space:normal}.exercise-root button{cursor:pointer}.exercise-root button:disabled{cursor:default;opacity:.4}.exercise-root button:focus-visible,.exercise-root input:focus-visible,.exercise-root select:focus-visible,.exercise-root summary:focus-visible,.exercise-root a:focus-visible{outline:2px solid var(--teal,#63d0c8);outline-offset:3px}
.exercise-movement-filter{grid-column:1/-1;min-width:0}.exercise-movement-filter label{display:block}.exercise-movement-filter select{margin-bottom:3px}
.exercise-root button[aria-pressed=true]{border-color:var(--teal,#63d0c8);background:rgba(99,208,200,.14);color:var(--teal,#63d0c8)}
.exercise-stage{position:absolute;left:292px;right:374px;top:194px;bottom:122px;display:flex;flex-direction:column;justify-content:space-between;min-width:0;pointer-events:none}
.exercise-stage-top{max-width:580px;align-self:center;text-align:center;padding:2px 8px}.exercise-stage h2{font-size:22px;line-height:1.2;margin:0 0 6px;text-wrap:balance}.exercise-reference{color:var(--muted,#9eafb4);font-size:10px;margin:0 0 10px}.exercise-button-row{display:flex;flex-wrap:wrap;gap:5px;align-items:center;pointer-events:auto}.exercise-stage .exercise-button-row{justify-content:center}.exercise-technique-toggle{margin-top:7px}.exercise-stage-status{font-size:10px;color:var(--muted,#9eafb4);max-width:52ch;margin:8px auto;pointer-events:auto}.exercise-retry{margin-top:4px!important}
.exercise-stage-bottom{max-width:600px;align-self:center;padding:7px 12px;background:rgba(9,17,20,.82);border-radius:6px;pointer-events:none}.exercise-cue{font-size:11px;line-height:1.45;text-align:center;color:var(--text,#eaf1f1);margin:5px 0}.exercise-cue[data-error=true]{color:var(--amber,#f0bd67)}.exercise-angles{display:flex;justify-content:center;flex-wrap:wrap;gap:9px 15px}.exercise-angles>span{display:flex;gap:6px;align-items:baseline;font-size:10px;color:var(--muted,#9eafb4)}.exercise-angles strong{font-size:17px;font-weight:600;color:var(--teal,#63d0c8);font-variant-numeric:tabular-nums}
.exercise-review-status{display:flex;flex-direction:column;gap:2px;border-left:2px solid var(--amber,#f0bd67);padding-left:9px;font-size:11px;margin:0 0 12px}.exercise-review-status strong{color:var(--amber,#f0bd67)}.exercise-review-status span{color:var(--muted,#9eafb4);font-size:10px}
.exercise-review-status[data-status="REJECTED"]{border-left-color:#f08e94}.exercise-review-status[data-status="REJECTED"] strong,.exercise-root[data-review-status="REJECTED"] .exercise-stage-status{color:#f08e94}.exercise-review-status{flex-wrap:wrap;max-width:100%}.exercise-review-reason{border-left:2px solid var(--amber,#f0bd67);padding-left:8px}
.exercise-detail-tabs{display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid var(--line,#2a383d);padding-bottom:9px}.exercise-detail-tabs .control-button{padding:5px 7px;font-size:10px;min-height:29px}.exercise-note{color:var(--muted,#9eafb4);font-size:11px;line-height:1.5}.exercise-detail-content{font-size:12px}.exercise-detail-content>article{border-top:1px solid var(--line,#2a383d);padding-top:8px;margin-top:9px}.exercise-detail-content a{display:block;color:var(--teal,#63d0c8);overflow-wrap:anywhere}.exercise-facts{display:grid;grid-template-columns:65px 1fr;gap:6px 9px;margin:8px 0;font-size:11px}.exercise-facts dt{color:var(--muted,#9eafb4)}.exercise-facts dd{margin:0;overflow-wrap:anywhere}.exercise-movement{border-bottom:1px solid var(--line,#2a383d);padding-bottom:9px}.exercise-muscle{border-bottom:1px solid var(--line,#2a383d);padding:8px 0}.exercise-muscle summary{font-size:12px;cursor:pointer;color:var(--text,#eaf1f1)}.exercise-muscle[open] summary{color:var(--teal,#63d0c8);font-weight:700}.exercise-text-button{border:0;background:none;color:var(--teal,#63d0c8);font:inherit;font-size:11px;text-decoration:underline;text-underline-offset:3px;padding:5px 0;text-align:left;cursor:pointer}.exercise-anatomy-options{margin:16px 0 0;border:1px solid var(--line,#2a383d);border-radius:5px;padding:9px}.exercise-anatomy-options legend{font-size:11px;color:var(--muted,#9eafb4);padding:0 4px}.exercise-panel .exercise-check{display:flex;align-items:center;gap:7px;font-size:11px;margin:5px 0;color:var(--text,#eaf1f1);font-weight:400}.exercise-check input{accent-color:var(--teal,#63d0c8);width:14px;height:14px}
.exercise-timeline{position:absolute;bottom:24px;left:24px;right:24px;display:grid;grid-template-columns:max-content minmax(120px,1fr) max-content;gap:16px;align-items:center;background:var(--panel,#10191d);border:1px solid var(--line,#2a383d);border-radius:var(--radius,8px);padding:12px;pointer-events:auto}.exercise-play-controls,.exercise-cameras{display:flex;gap:5px}.exercise-root .exercise-primary{background:var(--teal,#63d0c8);border-color:var(--teal,#63d0c8);color:#102526;min-width:116px;font-weight:700}.exercise-timeline-track{min-width:0}.exercise-timeline-track label{display:block;color:var(--text,#eaf1f1);font-size:11px;margin-bottom:1px}.exercise-timeline-track input{display:block;width:100%;height:20px;margin:0;accent-color:var(--teal,#63d0c8);cursor:pointer}.exercise-timeline-ticks{display:flex;justify-content:space-between;font-size:9px;color:var(--muted,#9eafb4)}
@media(max-width:1200px) and (min-width:901px){.exercise-library{left:15px;width:210px}.exercise-details{right:15px;width:295px}.exercise-panel{padding:12px}.exercise-stage{left:241px;right:326px}.exercise-stage h2{font-size:18px}.exercise-stage .control-button{font-size:10px;padding:5px 7px}.exercise-timeline,.exercise-breadcrumb{left:15px;right:15px}.exercise-timeline{gap:10px}.exercise-cameras{display:none}}
@media(max-width:900px){body.exercise-active .brand{max-width:calc(100vw - 158px)}body.exercise-active .brand h1{font-size:22px}body.exercise-active .subtitle{font-size:10px;max-width:calc(100vw - 160px)}body[data-platform-section="human"] .atlas-mode-switch{max-width:none;width:calc(100vw - 24px);left:12px;top:88px;scrollbar-width:none}.atlas-mode-switch::-webkit-scrollbar{display:none}.exercise-breadcrumb{top:130px;left:12px;right:12px;gap:5px}.exercise-breadcrumb span{font-size:10px}.exercise-breadcrumb .control-button{font-size:10px;padding:5px 7px;min-height:28px}.exercise-library{top:169px;left:12px;right:12px;bottom:auto;width:auto;padding:8px;overflow:visible;display:grid;grid-template-columns:1fr 1.5fr;gap:7px;align-items:center}.exercise-library>h2,.exercise-library>.exercise-library-count,.exercise-library>.exercise-library-safety,.exercise-library>.exercise-filters,.exercise-library>label,.exercise-results{display:none}.exercise-library>input{margin:0!important;height:34px!important}.exercise-mobile-select{display:block}.exercise-mobile-select>label{display:none}.exercise-mobile-select select{margin:0;height:34px}.exercise-details{top:auto;bottom:116px;left:12px;right:12px;width:auto;height:26vh;min-height:135px;padding:10px 12px}.exercise-review-status{float:right;font-size:10px;margin:0 0 7px 9px}.exercise-review-status span{font-size:9px}.exercise-detail-tabs{padding-bottom:7px}.exercise-detail-tabs .control-button{font-size:10px;min-height:27px}.exercise-details h3{margin-top:12px}.exercise-stage{top:232px;left:12px;right:12px;bottom:calc(26vh + 132px)}.exercise-stage-top{padding:0;max-width:100%}.exercise-stage h2{font-size:17px;margin-bottom:3px}.exercise-reference{font-size:9px;margin-bottom:5px}.exercise-stage .control-button{padding:4px 7px;min-height:26px;font-size:10px}.exercise-technique-toggle{margin-top:4px}.exercise-stage-status{font-size:9px;margin:4px auto}.exercise-stage-bottom{padding:4px 8px}.exercise-cue{font-size:10px;margin:2px 0}.exercise-angles{gap:4px 10px}.exercise-angles strong{font-size:14px}.exercise-timeline{left:12px;right:12px;bottom:12px;padding:8px;gap:6px;grid-template-columns:1fr}.exercise-play-controls{justify-content:center}.exercise-play-controls .control-button{font-size:10px;min-height:28px;padding:5px 8px}.exercise-cameras{display:none}.exercise-timeline-track label{font-size:10px}.exercise-timeline-ticks{font-size:8px}.exercise-timeline-track input{height:17px}body.exercise-active .platform-home-link{display:none!important}}
@media(max-width:540px){body.exercise-active .brand h1{font-size:18px}.exercise-breadcrumb span{display:none}.exercise-library{grid-template-columns:1fr 1.8fr;gap:5px}.exercise-library input[type=search],.exercise-mobile-select select{font-size:11px}.exercise-review-status{float:none;display:flex;flex-direction:row;align-items:baseline;margin:0 0 6px;gap:8px}.exercise-stage-status{max-width:100%}.exercise-stage h2{font-size:16px}.exercise-stage-top{background:rgba(9,17,20,.85)}.exercise-stage-bottom{max-width:100%}.exercise-cue{max-height:3em;overflow:auto;pointer-events:auto}}
@media(max-height:700px) and (min-width:901px){.exercise-panel,.exercise-stage{top:178px;bottom:110px}.exercise-breadcrumb{top:140px}.exercise-timeline{bottom:12px;padding:9px}.exercise-stage h2{font-size:18px}.exercise-stage-status{font-size:9px}.exercise-stage-bottom{padding:4px 8px}.exercise-library-count{font-size:10px}.exercise-panel{padding:11px}}
/* Keep both anatomy and technique switches in one row when the central stage
   is wide enough. The renderer subtracts these measured controls from its area. */
@media(min-width:1201px){.exercise-stage-top{display:grid;grid-template-columns:max-content max-content;justify-content:center;column-gap:10px;max-width:100%;padding:2px 0}.exercise-stage h2,.exercise-reference,.exercise-stage-status{grid-column:1/-1}.exercise-stage .exercise-technique-toggle{margin-top:0}.exercise-reference{margin-bottom:7px}.exercise-stage-status{font-size:10px;line-height:1.25;margin:4px auto}.exercise-stage-bottom{padding:5px 9px}.exercise-cue{font-size:10px;margin:3px 0}.exercise-angles{gap:5px 12px}.exercise-angles strong{font-size:15px}}
/* Portrait layout reserves the largest continuous area for the model. The
   details remain a separately scrollable panel instead of covering the pose. */
@media(max-width:900px){
 body.exercise-active .brand h1{font-size:18px;line-height:1.2}
 body.exercise-active .subtitle{display:none}
 body.exercise-active .atlas-mode-switch{top:80px}
 .exercise-breadcrumb{top:120px}
 .exercise-library{top:154px;padding:6px 8px}
 .exercise-library>input,.exercise-mobile-select select{height:36px!important}
 .exercise-details{bottom:112px;height:clamp(136px,17vh,166px);min-height:136px;padding:8px 10px}
 .exercise-stage{top:216px;bottom:calc(clamp(136px,17vh,166px) + 124px)}
 .exercise-stage h2{font-size:15px;line-height:1.2;margin:0 0 3px}
 .exercise-reference{font-size:9px;line-height:1.25;margin:0 0 5px}
 .exercise-stage .control-button{min-height:30px;font-size:10px;padding:4px 8px}
 .exercise-stage-status{font-size:9px;line-height:1.2;margin:3px auto}
 .exercise-stage-bottom{padding:4px 6px;max-width:100%}
 .exercise-angles{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;max-width:100%;gap:11px;pointer-events:auto;scrollbar-width:thin}
 .exercise-angles>span{flex:0 0 auto;font-size:9px;gap:4px;white-space:nowrap}
 .exercise-angles strong{font-size:14px}
 .exercise-cue{font-size:10px;line-height:1.3;max-height:2.6em;overflow-y:auto;margin:3px 0;pointer-events:auto}
 .exercise-play-controls .control-button{min-height:32px}
 .exercise-detail-tabs .control-button{min-height:30px}
 .exercise-timeline-track input{height:20px}
 .exercise-timeline{gap:4px;padding:6px 8px;bottom:10px}
 .exercise-timeline-ticks span:nth-child(2),.exercise-timeline-ticks span:nth-child(4){visibility:hidden}
}
/* On short portrait screens prioritize a usable pose; the detail panel is
   still scrollable. Landscape phones use two small side panels. */
@media(max-width:540px) and (max-height:740px){.exercise-details{height:116px;min-height:116px}.exercise-stage{top:210px;bottom:240px}.exercise-stage h2{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.exercise-reference{font-size:8px}.exercise-stage .control-button{min-height:26px;padding:3px 6px}.exercise-stage-status{max-height:2.4em;overflow:auto}.exercise-stage-bottom{padding:3px 5px}.exercise-cue{max-height:1.3em}}
@media(max-width:900px) and (max-height:540px) and (orientation:landscape){body.exercise-active .brand{top:10px;left:12px}body.exercise-active .brand .eyebrow{display:none}body.exercise-active .brand h1{font-size:17px}body.exercise-active .atlas-mode-switch{top:43px}.exercise-breadcrumb{top:82px;left:12px}.exercise-library{top:118px;left:12px;right:auto;bottom:80px;width:172px;display:block;overflow:auto}.exercise-library>input{margin-bottom:7px!important}.exercise-library .exercise-filters{display:grid;margin-top:7px}.exercise-library .exercise-mobile-select>label{display:block}.exercise-details{left:auto;right:12px;top:118px;bottom:80px;height:auto;width:205px;min-height:0}.exercise-review-status{font-size:9px;display:block;float:none}.exercise-detail-tabs{gap:3px}.exercise-detail-tabs .control-button{font-size:9px;min-height:26px;padding:3px 5px}.exercise-stage{left:194px;right:227px;top:83px;bottom:80px}.exercise-stage-top{width:100%}.exercise-stage h2{font-size:13px}.exercise-reference{font-size:8px}.exercise-stage .control-button{font-size:9px;min-height:24px;padding:2px 5px}.exercise-stage-status{font-size:8px;margin:2px 0}.exercise-cue{font-size:9px;max-height:1.3em}.exercise-timeline{grid-template-columns:max-content 1fr;left:12px;right:12px;bottom:10px;gap:10px}.exercise-angles>span{font-size:8px}.exercise-angles strong{font-size:12px}}
/* Close-ups and playback stay in their own toolbar, outside the model viewport. */
.exercise-angle-scope{font-size:9px;line-height:1.3;color:var(--muted,#9eafb4);margin:0 0 4px;text-align:center}
.exercise-learning-card{margin:10px 0 14px;display:grid;gap:4px;border-left:2px solid var(--teal,#63d0c8);padding-left:10px}
.exercise-learning-card dt{font-size:10px;color:var(--teal,#63d0c8);font-weight:700;text-transform:uppercase;letter-spacing:.035em}
.exercise-learning-card dd{font-size:12px;line-height:1.5;margin:0 0 9px}.exercise-learning-card dd:last-child{margin-bottom:0}
.exercise-timeline{grid-template-columns:max-content minmax(150px,1fr) minmax(170px,205px) max-content;gap:12px;padding:9px 12px}
.exercise-play-controls{display:grid;grid-template-columns:repeat(3,auto);gap:5px}.exercise-play-controls .exercise-primary{grid-column:1/-1}
.exercise-cameras{display:grid;grid-template-columns:repeat(3,auto);gap:5px}.exercise-cameras .control-button:nth-last-child(2){grid-column:1/3}
.exercise-focus-controls{display:grid;grid-template-columns:1fr;min-width:0;gap:1px}.exercise-focus-controls label{font-size:10px;color:var(--muted,#9eafb4);font-weight:700}
.exercise-focus-controls select{height:32px;min-width:0;width:100%;border:1px solid var(--line,#2a383d);border-radius:5px;background:#111a1e;color:var(--text,#eaf1f1);padding:5px 7px;font:inherit;font-size:11px}
.exercise-focus-status{font-size:9px;color:var(--teal,#63d0c8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.exercise-notes-toggle{display:none}
@media(min-width:901px){.exercise-panel,.exercise-stage{bottom:136px}}
@media(max-width:1200px) and (min-width:901px){.exercise-timeline{grid-template-columns:max-content minmax(120px,1fr) minmax(155px,180px) max-content;gap:9px}.exercise-cameras{display:grid}.exercise-timeline .control-button{font-size:10px;padding:5px 7px}}
@media(max-width:900px){
 .exercise-timeline{grid-template-columns:1fr 1fr;gap:5px 8px;padding:7px 8px;bottom:10px}
 .exercise-play-controls{display:flex;grid-column:1/-1;justify-content:center;gap:5px}.exercise-play-controls .exercise-primary{min-width:109px}
 .exercise-play-controls .control-button{padding:4px 8px;font-size:10px;min-height:31px}
 .exercise-timeline-track{grid-column:1/-1}
 .exercise-cameras{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.exercise-cameras .control-button{font-size:10px;padding:3px 5px;min-height:29px}
 .exercise-cameras .control-button:nth-last-child(2){grid-column:auto}
 .exercise-focus-controls{align-self:center;gap:2px}.exercise-focus-controls select{height:33px;font-size:10px}.exercise-focus-status{font-size:9px}
 .exercise-details{bottom:192px;height:clamp(124px,16vh,150px);min-height:124px}
 .exercise-stage{top:216px;bottom:calc(clamp(124px,16vh,150px) + 204px)}
 .exercise-angle-scope{font-size:8px;margin-bottom:2px}.exercise-learning-card dd{font-size:11px}
 .exercise-stage-status{max-height:2.4em;overflow:auto}
 .exercise-notes-toggle{display:block;width:100%;margin:0 0 7px;min-height:30px!important;position:sticky;top:0;z-index:1;background:var(--panel,#10191d)}
 .exercise-details[data-expanded=false]{bottom:184px;height:40px;min-height:40px;padding:4px 8px;overflow:hidden}
 .exercise-details[data-expanded=false]>.exercise-notes-toggle{margin:0}
 .exercise-details[data-expanded=false]>:not(.exercise-notes-toggle){display:none}
 .exercise-root[data-notes-open=false] .exercise-stage{bottom:236px}
 .exercise-stage h2{font-size:13px}.exercise-reference{display:none}
 .exercise-cue{max-height:1.3em}.exercise-stage-status{font-size:8px;line-height:1.2}
 .exercise-details[data-expanded=true]{height:220px;min-height:220px;bottom:184px}
 .exercise-root[data-notes-open=true] .exercise-stage{bottom:416px}
}
@media(max-width:540px) and (max-height:740px){
 .exercise-details{bottom:184px;height:96px;min-height:96px}.exercise-stage{top:210px;bottom:290px}
 .exercise-timeline{gap:3px 7px;padding:5px 7px}.exercise-play-controls .control-button{min-height:28px;padding:3px 6px}.exercise-cameras .control-button{min-height:27px}.exercise-angle-scope{max-width:100%}
}
@media(max-width:900px) and (max-height:540px) and (orientation:landscape){
 .exercise-timeline{grid-template-columns:max-content minmax(100px,1fr) 155px max-content;gap:8px;bottom:8px}
 .exercise-play-controls{display:grid;grid-column:auto;grid-template-columns:repeat(3,auto)}.exercise-play-controls .exercise-primary{grid-column:1/-1;min-width:0}.exercise-timeline-track{grid-column:auto}
 .exercise-cameras{grid-template-columns:repeat(3,auto)}.exercise-cameras .control-button,.exercise-play-controls .control-button{min-height:24px;font-size:9px;padding:2px 5px}
 .exercise-focus-controls select{height:28px;font-size:9px}.exercise-focus-status{font-size:8px}
 .exercise-details,.exercise-library{bottom:100px;height:auto;min-height:0}.exercise-stage{top:83px;bottom:100px}
 .exercise-notes-toggle{display:none}.exercise-details[data-expanded=false],.exercise-details[data-expanded=true]{bottom:100px;height:auto;min-height:0;padding:8px 10px;overflow:auto}
 .exercise-details[data-expanded=false]>:not(.exercise-notes-toggle){display:block}
 .exercise-details[data-expanded=false]>.exercise-detail-tabs{display:flex}
 .exercise-root[data-notes-open=false] .exercise-stage,.exercise-root[data-notes-open=true] .exercise-stage{bottom:100px}
}
/* Laptop-height viewports need the pose, rather than repeated headings, to
   occupy the center. Keep all controls and the review status available. */
@media(min-width:901px) and (max-height:850px){
 .exercise-stage-top{display:grid;grid-template-columns:max-content max-content;justify-content:center;column-gap:7px;max-width:100%;padding:0}
 .exercise-stage h2,.exercise-reference,.exercise-stage-status{grid-column:1/-1}
 .exercise-stage h2{font-size:16px;line-height:1.15;margin:0 0 3px}
 .exercise-reference{font-size:9px;line-height:1.15;margin:0 0 4px}
 .exercise-stage .exercise-button-row{gap:4px}.exercise-stage .exercise-technique-toggle{margin-top:0}
 .exercise-stage .control-button{min-height:27px;font-size:10px;padding:3px 6px}
 .exercise-stage-status{font-size:9px;line-height:1.2;margin:4px auto 0;max-height:2.4em;overflow:auto}
 .exercise-stage-bottom{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:3px 9px;padding:4px 6px;width:100%;max-width:100%;align-items:center}
 .exercise-angle-scope{font-size:8px;line-height:1.2;margin:0;max-width:105px;text-align:left}
 .exercise-angles{justify-content:flex-start;flex-wrap:nowrap;gap:11px;overflow-x:auto;scrollbar-width:thin;pointer-events:auto;min-width:0}
 .exercise-angles>span{flex:0 0 auto;gap:4px;font-size:9px;white-space:nowrap}.exercise-angles strong{font-size:13px}
 .exercise-cue{grid-column:1/-1;font-size:10px;line-height:1.3;margin:0;max-height:2.6em;overflow:auto;pointer-events:auto}
}
@media(min-width:901px) and (max-width:1150px) and (max-height:850px){
 .exercise-stage-top{display:flex;flex-direction:column;align-items:center;gap:0}
 .exercise-stage h2{font-size:14px}.exercise-stage .exercise-technique-toggle{margin-top:3px}
}
@media(prefers-reduced-motion:reduce){.exercise-root *{scroll-behavior:auto;transition:none!important}}
/* Role colors are shared by the map key, source contributor list and cutaway
   labels. Selection changes the row border, never the anatomical role color. */
.exercise-root [data-role="PRIMARY"]{--muscle-role:#d95462}
.exercise-root [data-role="ASSISTING"]{--muscle-role:#c79461}
.exercise-root [data-role="STABILIZING"]{--muscle-role:#5cc0b7}
.exercise-root [data-role="STRETCHED"]{--muscle-role:#b594db}
.exercise-root [data-role="REFERENCE"]{--muscle-role:#a8b0b4}
.exercise-muscle-legend{grid-column:1/-1;display:flex;flex-wrap:wrap;justify-content:center;gap:3px 12px;max-width:550px;margin:6px auto 2px;font-size:10px;line-height:1.45;color:#dce3e5}
.exercise-muscle-legend>span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.exercise-muscle-legend>span:before{content:"";width:7px;height:7px;border-radius:2px;background:var(--muscle-role);flex:none}
.exercise-map-scope{flex-basis:100%;font-size:9px;color:#aebbc0;text-align:center}
.exercise-map-contributors{list-style:none;padding:0!important;margin:12px 0!important}
.exercise-map-contributors>li{border-left:3px solid var(--muscle-role);padding:6px 0 6px 10px;margin:0 0 9px!important;display:flex;flex-direction:column;gap:3px}
.exercise-map-contributors>li[data-selected="true"]{outline:1px solid #f4b568;outline-offset:3px;border-radius:1px}
.exercise-map-contributors strong{font-size:12px;line-height:1.4;color:#edf1f2}
.exercise-map-role{font-size:10px;color:#d5dddf}
.exercise-map-nerve{font-size:11px;line-height:1.4;color:var(--muted,#aebbc0)}
.exercise-map-unmapped{font-size:10px;color:#b7c0c4;font-style:italic}
.exercise-map-contributors .exercise-text-button{align-self:flex-start;padding:2px 0;font-size:10px}
.exercise-root .exercise-text-button:disabled{opacity:.45;cursor:default;text-decoration:none}
.exercise-muscle-callouts{position:fixed;inset:0;pointer-events:none;z-index:2;overflow:hidden}
.exercise-muscle-callout{position:absolute;inset:0;pointer-events:none}
.exercise-root .exercise-muscle-callout[data-selected="true"]{--muscle-role:#f4b568}
.exercise-muscle-dot{position:absolute;width:6px;height:6px;border-radius:50%;background:var(--muscle-role);box-shadow:0 0 0 2px #122028;transform:translate(-50%,-50%)}
.exercise-muscle-leader{position:absolute;height:1px;background:var(--muscle-role);opacity:.85;transform-origin:0 50%}
.exercise-muscle-label{position:absolute;box-sizing:border-box;padding:4px 7px;border:1px solid var(--muscle-role);border-radius:3px;background:rgba(10,19,24,.94);color:#f0f3f4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px;font-weight:600;line-height:1.25}
.exercise-root[data-view="muscle-map"] .exercise-stage-top{grid-template-columns:1fr}
.exercise-root[data-view="muscle-map"] .exercise-technique-toggle{margin-top:5px}
.exercise-root[data-anatomy-supported="true"] .exercise-stage-top{display:flex;flex-direction:column;align-items:center;width:100%;min-width:0}
.exercise-root .exercise-view-controls{flex-wrap:nowrap;justify-content:flex-start;max-width:100%;overflow-x:auto;scrollbar-width:thin;padding-bottom:3px}
.exercise-view-controls .control-button{flex:0 0 auto;white-space:nowrap}
.exercise-root[data-view="anatomical-body"] .exercise-technique-toggle{margin-top:4px}
.exercise-source-layers{margin-top:3px;margin-bottom:14px}
.exercise-source-layers .exercise-check{min-height:28px}
.exercise-source-layers>.exercise-note{font-size:10px;line-height:1.4;margin:7px 0}
.exercise-source-layers>.exercise-text-button{margin-top:3px}
/* Keep the repaired-body/reference switch inside its stage at desktop widths. */
.exercise-root[data-exercise-id="wall_push_up"] .exercise-stage-top{display:flex;flex-direction:column;align-items:center;min-width:0;width:100%;max-width:580px}
.exercise-root[data-exercise-id="wall_push_up"] .exercise-button-row{max-width:100%;min-width:0;flex-wrap:wrap}
@media(max-width:900px){.exercise-muscle-legend{gap:2px 9px;margin:4px auto 1px;font-size:9px;max-width:400px}.exercise-muscle-label{font-size:10px;padding:3px 5px}.exercise-muscle-legend>span:before{width:6px;height:6px}}
/* Inspection enlarges the same renderer; the persistent toolbar restores the
   library and notes without losing the exercise, pose, selection or camera. */
body.exercise-model-expanded #app>.hud,
body.exercise-model-expanded .topbar,
body.exercise-model-expanded .human-model-control,
body.exercise-model-expanded #humanModelSwitch,
body.exercise-model-expanded .platform-home-link{display:none!important}
.exercise-root[data-model-expanded=true] .exercise-library,
.exercise-root[data-model-expanded=true] .exercise-details,
.exercise-root[data-model-expanded=true] .exercise-breadcrumb{display:none!important}
.exercise-root[data-model-expanded=true] .exercise-stage{top:16px!important;left:24px!important;right:24px!important;bottom:152px!important}
.exercise-root[data-model-expanded=true] .exercise-stage-top{max-width:900px;align-self:center}
.exercise-focus-controls>.control-button{min-height:25px;padding:3px 7px;font-size:10px}
@media(max-width:900px){.exercise-root[data-model-expanded=true] .exercise-stage{left:12px!important;right:12px!important;bottom:212px!important}}
/* On a narrow screen, notes occupy the model area as a closable drawer.
   Keep the full playback/focus toolbar clear instead of shrinking the model
   into the space between an expanded note panel and its own heading. */
@media(max-width:900px) and (min-height:541px){
 .exercise-details[data-expanded=false]{bottom:214px}
 .exercise-root[data-notes-open=false] .exercise-stage{bottom:266px}
 .exercise-details[data-expanded=true]{top:216px;bottom:214px;height:auto;min-height:0;background:#10191d}
 .exercise-root[data-notes-open=true]:not([data-model-expanded=true]) .exercise-stage,
 .exercise-root[data-notes-open=true]:not([data-model-expanded=true]) .exercise-muscle-callouts{visibility:hidden}
}

/* Native Blender model occupies the same measured stage between its controls. */
body[data-exercise-backend="blender-atlas"] #viewport{visibility:hidden!important}
.exercise-native-canvas{display:block;flex:1 1 0;min-height:50px;width:100%;min-width:0;pointer-events:auto;touch-action:none;outline:none}
.exercise-native-canvas:focus-visible{outline:1px solid var(--teal,#63d0c8);outline-offset:-2px}
.exercise-native-review{font-size:11px;margin:10px 0;border-left:2px solid #d4aa66;padding-left:8px;overflow-wrap:anywhere}
.exercise-native-review summary{cursor:pointer;color:#d4bd8f}
.exercise-native-review a{color:var(--teal,#63d0c8)}
body[data-exercise-backend="blender-atlas"] .exercise-stage-top,body[data-exercise-backend="blender-atlas"] .exercise-stage-bottom{flex-shrink:0}

/* Primary movers are red; assistants and stabilizers are green. */
body[data-exercise-backend="blender-atlas"] .exercise-root [data-role="STRETCHED"]{--muscle-role:#b3955d}
body[data-exercise-backend="blender-atlas"] .exercise-root [data-role="PRIMARY"]{--muscle-role:#d94138}
body[data-exercise-backend="blender-atlas"] .exercise-root :is([data-role="ASSISTING"],[data-role="STABILIZING"],[data-role="COMPONENT"]){--muscle-role:#3ab978}
