:root{font-family:system-ui,sans-serif;color:#f5f7fb;background:#101827}body{margin:0}main{max-width:520px;margin:auto;padding:24px 18px}header{display:flex;justify-content:space-between;align-items:center;gap:12px}h1{font-size:23px}#status,.hint,#progress,#next{color:#a9b7cd}.panel{background:#1c293e;border-radius:22px;padding:26px 20px;text-align:center;margin:20px 0}h2{font-size:26px;min-height:64px}#clock{font-size:74px;font-weight:750;font-variant-numeric:tabular-nums;margin:18px 0}#detail{font-size:20px}.actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}button{border:0;border-radius:12px;background:#334865;color:white;font-size:17px;padding:17px 12px;cursor:pointer}#primary{background:#34a67c;grid-column:span 2;color:#071c14;font-weight:700}#done{background:#3467b4}#reset{background:#653b4b}label{display:block;margin:22px 0}.hint{font-size:13px;line-height:1.5}#mic{width:100%}
.panel{transition:background-color .2s ease}.panel[data-phase="work"]{background:#8f2630}.panel[data-phase="rest"]{background:#176b47}.panel[data-phase="work"] #progress,.panel[data-phase="work"] #next,.panel[data-phase="rest"] #progress,.panel[data-phase="rest"] #next{color:#e8f0ed}

#actualBox,#reportBox{background:#1c293e;border-radius:14px;padding:14px;margin:12px 0}#actualBox[hidden]{display:none}.actualFields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.actualFields label{margin:10px 0 0}.actualFields input{display:block;box-sizing:border-box;width:100%;margin-top:7px;padding:12px;background:#101827;color:#fff;border:1px solid #8293a8;border-radius:9px;font-size:20px}#reportButton{width:100%;background:#3467b4}

#workoutSelect{display:block;width:100%;box-sizing:border-box;padding:12px;background:#263750;color:#fff;border:1px solid #526581;border-radius:12px;font-size:16px}
label[for="workoutSelect"]{margin:10px 0 6px}
#actualBox,#reportBox{box-sizing:border-box;background:#1c293e;border-radius:14px;padding:14px;margin:12px 0}
#actualBox[hidden]{display:none}
#actualHeading{display:block;font-size:17px;margin-bottom:6px}
.actualFields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.actualFields label{min-width:0;margin:6px 0 0;font-size:14px}
.actualFields input{box-sizing:border-box;display:block;width:100%;min-width:0;margin-top:6px;padding:10px;background:#101827;color:white;border:1px solid #8293a8;border-radius:9px;font-size:20px}
.difficultyLabel{margin:12px 0 0;font-size:14px}
#actualDifficulty{display:block;box-sizing:border-box;width:100%;height:30px;margin:4px 0 0;padding:0;border:0;background:transparent;accent-color:#34a67c;cursor:pointer}
.difficultyScale{display:flex;justify-content:space-between;padding:0 3px;color:#a9b7cd;font-size:13px}
#difficultyValue{text-align:center;font-size:16px;font-weight:650;margin-top:5px}
#actualBox .hint{margin:9px 0 0}
#reportButton{width:100%;background:#3467b4}
@media(max-width:420px){main{padding:14px 12px}.panel{padding:18px 14px;margin:12px 0}#clock{font-size:60px}h2{font-size:22px;min-height:0}.actions{gap:8px}.actions button{font-size:15px;padding:14px 8px}}

/* Focus on the current exercise after starting. Keep recording and controls available. */
body.trainingActive header,body.trainingActive label[for="workoutSelect"],body.trainingActive #workoutSelect,body.trainingActive #primary,body.trainingActive #reportBox,body.trainingActive main>.hint,body.trainingActive #micStatus{display:none}
body.trainingActive main{padding-top:10px}
body.trainingActive .panel{margin:0 0 12px;padding:18px 14px}
body.trainingActive #progress{margin:0;font-size:14px}
body.trainingActive #name{min-height:0;margin:12px 0 4px;font-size:25px}
body.trainingActive #clock{margin:10px 0;font-size:clamp(68px,19vw,104px);line-height:1.1}
body.trainingActive #detail{margin:8px 0;font-size:16px}
body.trainingActive #next{margin:8px 0 0;font-size:15px}
body.trainingActive .actions{gap:8px}
body.trainingActive .actions button{padding:13px 8px;font-size:15px}
body.trainingActive #done{grid-column:span 2}
body.trainingActive #mic{padding:10px;font-size:14px}
body.trainingActive main>label:has(#voice){margin:12px 0}

#importBox{margin:12px 0;background:#1c293e;border-radius:12px;padding:12px 14px}#importBox summary{cursor:pointer;font-weight:600}#importBox label{margin:12px 0 5px;font-size:14px}#importFile,#importText{display:block;box-sizing:border-box;width:100%;background:#101827;color:#fff;border:1px solid #8293a8;border-radius:9px;padding:10px;font-size:15px}#importText{resize:vertical;font-family:monospace}.importActions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.importActions button{font-size:14px;padding:12px 8px}#importStatus{font-size:13px;color:#b9d5e9;overflow-wrap:anywhere}body.trainingActive #importBox{display:none}

/* Workout overview: available before start and when paused. */
#planBox[hidden],#planContent[hidden]{display:none!important}.planBox{background:#1c293e;border-radius:14px;padding:12px;margin:12px 0}#planToggle{display:block;width:100%;padding:13px;background:#334865;text-align:left;font-size:16px}#planSummary{color:#c4d1e3;font-size:14px;line-height:1.5;margin:12px 3px}#planSteps{max-height:min(55vh,460px);overflow-y:auto;overscroll-behavior:contain;margin:0;padding:0 8px 0 33px;scrollbar-width:thin}#planSteps li{padding:10px 8px;border-bottom:1px solid #34465c;line-height:1.4}#planSteps li:last-child{border-bottom:0}#planSteps li.planCurrent{background:#2c425a;border-radius:8px}#planSteps strong{font-size:15px}#planSteps .planStepDetails{color:#b9d5e9;font-size:14px;margin-top:4px}#planSteps .planStepNote{color:#a9b7cd;font-size:13px;margin-top:4px}

#planSteps li.planDone{opacity:.62}#planSteps li.planDone strong{text-decoration:line-through}#planSteps .chooseExercise{display:block;margin-top:9px;padding:9px 12px;font-size:14px;background:#3467b4}body.trainingActive #planBox:not([hidden]){display:block}body.trainingActive #planBox[hidden]{display:none}

/* Optional per-set notes. */
#actualCommentToggle{display:block;width:100%;margin-top:14px;padding:11px 13px;text-align:left;font-size:15px;background:#334865}
#actualCommentPanel[hidden]{display:none!important}
#actualCommentPanel label{margin:12px 0 6px;font-size:14px}
#actualComment{box-sizing:border-box;width:100%;min-height:82px;padding:12px;border-radius:9px;border:1px solid #8293a8;background:#101827;color:white;font:16px system-ui,sans-serif;resize:vertical}
#actualCommentPanel .hint{margin:6px 0}
