:root{--bg:#f4f6f5;--panel:#fff;--line:#d5ddd8;--text:#18211d;--muted:#65736b;--accent:#1d6f55}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 Inter,ui-sans-serif,system-ui,sans-serif}header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 28px;background:white;border-bottom:1px solid var(--line)}.brand,.session{display:flex;align-items:center;gap:14px}.mark{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:var(--accent);color:white;font-size:28px;font-weight:700}.brand h1{font-size:24px;letter-spacing:3px;line-height:1.1;margin:0}.brand small{font-size:10px;letter-spacing:1.8px}.version{font-size:12px;color:var(--muted)}h2{margin:0;font-size:23px;line-height:1.3}.panel{background:white;border:1px solid var(--line);border-radius:12px}.auth{max-width:1040px;margin:70px auto;display:grid;grid-template-columns:1fr 1fr;gap:64px;padding:24px}.intro{padding-top:30px}.intro h2{font-size:42px;line-height:1.2;letter-spacing:-1.5px}.intro p{color:var(--muted);max-width:340px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:1.8px;color:var(--accent);margin:0 0 12px}.tag{display:inline-block;margin-top:28px;padding:12px 18px;background:#e5eee9;border-radius:8px;color:var(--accent);font-weight:650}.auth-panel{padding:28px}.tabs{display:flex;gap:8px;margin-bottom:26px}form{display:grid;gap:15px;margin-top:22px}label{display:grid;gap:6px;font-size:13px;font-weight:700;color:var(--muted)}input,select{width:100%;min-height:44px;border:1px solid #c5d0ca;border-radius:6px;background:white;color:var(--text);padding:9px 10px;font:inherit}button{min-height:42px;border:1px solid var(--accent);border-radius:6px;padding:9px 16px;background:var(--accent);color:white;font:inherit;font-weight:700;cursor:pointer}button.secondary{background:white;color:var(--text);border-color:#bccac1}button:disabled{opacity:.6;cursor:wait}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #b88223;outline-offset:3px}.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}small,.subtle{color:var(--muted)}#authStatus{margin:0;color:#a12b2b}.exercise{display:grid;grid-template-columns:280px minmax(0,1fr);gap:20px;padding:24px;max-width:1500px;margin:auto}aside{padding:24px;align-self:start}aside label{margin-top:24px}aside p{color:var(--muted)}.exercise-link{background:#edf4ef;border-left:3px solid var(--accent);padding:18px 16px;margin:24px -8px}.exercise-link small{font-size:10px;letter-spacing:1px}.exercise-link h2{margin-top:8px;font-size:21px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px}.toolbar .eyebrow{margin-bottom:4px}.background-choice{display:flex;align-items:center;gap:7px;font-size:13px}.background-choice button[aria-pressed=true]{outline:2px solid #b88223;outline-offset:2px}.stage{background:#000;display:flex;justify-content:center;align-items:center;min-height:300px}.stage video{width:100%;height:clamp(300px,55vh,640px);object-fit:contain}.controls{padding:20px 24px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}.controls strong{display:block;font-size:32px;font-variant-numeric:tabular-nums;line-height:1.1}.controls .subtle{font-size:10px;letter-spacing:1px}.controls>div{margin-right:16px}#playStatus{font-size:13px;color:var(--muted)}footer{text-align:center;padding:24px;color:var(--muted);font-size:12px}@media(max-width:800px){header{padding:12px 16px}.session{gap:6px;flex-wrap:wrap;justify-content:flex-end}.version{display:none}.auth{grid-template-columns:1fr;margin:12px auto;gap:24px}.intro{padding:0}.intro h2{font-size:32px}.tag{margin-top:8px}.exercise{grid-template-columns:1fr;padding:12px}.toolbar{align-items:flex-start;flex-direction:column}.exercise-link{margin:12px 0}.exercise-link br{display:none}aside label{margin-top:12px}.controls{gap:10px}}
.rest-panel{padding:48px 24px;text-align:center;background:#fff;color:#18211d;width:100%;min-height:300px}.rest-panel h2{font-size:32px}.rest-panel p{max-width:440px;margin:16px auto}
.voice-choice{display:flex;align-items:center;gap:10px}.voice-choice input{width:18px;min-height:18px;margin:0}.voice-caption{margin:0;padding:0 24px 18px;color:var(--accent);font-weight:600;min-height:40px}

.history-panel{grid-column:1/-1;padding:20px}.history-panel .toolbar{padding:0 0 12px}.history-list{display:grid;gap:12px;margin:16px 0}.history-list article{border:1px solid var(--line);border-radius:8px;padding:16px}.history-list h3{margin:0;font-size:18px}.history-list p{color:var(--muted);margin:8px 0}.history-list summary{cursor:pointer;color:var(--accent);font-weight:700}.history-list li{margin:8px 0}.completed-duration{font-size:25px;font-weight:800}.controls button:disabled{cursor:default}

.share-details{display:grid;grid-template-columns:256px minmax(0,1fr);gap:24px;align-items:center;margin:20px 0}.share-details img{max-width:100%;height:auto;background:#fff}.share-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.guest-main{max-width:1100px;margin:24px auto;padding:12px;display:grid;gap:20px}.guest-intro{padding:24px}.guest-intro .voice-choice{margin:16px 0}.guest-main .player-panel{overflow:hidden}#resumeGuest{margin:0 24px 20px}@media(max-width:600px){.share-details{grid-template-columns:1fr}.share-details img{justify-self:center}.guest-main{margin:0 auto}}

.guest-intro.joined{display:flex;gap:12px 20px;align-items:center;flex-wrap:wrap;padding:12px 24px}.guest-intro.joined h2,.guest-intro.joined .guest-intro-info{display:none}.guest-intro.joined .voice-choice,.guest-intro.joined p{margin:0}.guest-intro.joined #connectionStatus{flex:1 1 220px}

#exerciseChoices{border:1px solid #cbd8d2;border-radius:8px;margin:16px 0;padding:12px}#exerciseChoices legend{font-weight:600}.exercise-choice{display:flex;align-items:flex-start;gap:9px;margin:10px 0;font-size:.9rem}.exercise-choice input{width:18px;min-width:18px;min-height:18px;height:18px;margin:2px 0}.exercise-choice span{line-height:1.4}

#exerciseChecklist{max-height:340px;overflow-y:auto;overscroll-behavior:contain;padding:3px}

/* Preview media is separate from the repetition-counting exercise video. */
.stage.preview-mode{position:relative;overflow:hidden}
.stage .movement-preview{filter:grayscale(1);opacity:.72;pointer-events:none}
.stage.preview-mode .rest-panel{position:absolute;z-index:1;left:10px;right:auto;bottom:10px;width:min(300px,75%);min-height:0;padding:8px 12px;border:1px solid rgba(255,255,255,.18);border-radius:12px;background:rgba(9,13,12,.48);color:#f4f7f4;text-align:left}
.stage.preview-mode .rest-panel h2{font-size:16px;line-height:1.25}
.stage.preview-mode .rest-panel p{margin:3px 0;font-size:12px;line-height:1.3}
.stage.preview-mode .rest-panel .eyebrow{margin:0 0 3px;font-size:9px;letter-spacing:1px;color:#b9ed8b}
.stage.preview-mode #restPanel p:last-child{display:none}
.stage.preview-mode::before{content:"Aperçu du mouvement";position:absolute;z-index:2;top:12px;left:12px;padding:5px 10px;background:rgba(255,255,255,.92);color:#36443d;border-radius:6px;font-size:12px;font-weight:700}

/* Mobile player first: start the session before reaching the configuration panels. */
@media(max-width:800px){
 .exercise>#playerPanel{order:-1}
 .exercise>#nativeWorkoutActions{order:-2;grid-column:1/-1}
}
