:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0d1117;--bg-raise:#161b22;--bg-panel:#1c2230;--border:#344052;--text:#e6e9ef;--text-dim:#adb7c6;--accent:#4ade80;--accent-dim:#203b2e;--danger:#ff9595;--warn:#fbbf24;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;font-family:system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}body{background:var(--bg);color:var(--text);scrollbar-color:var(--border) var(--bg);min-height:100dvh;margin:0}::selection{background:var(--accent);color:var(--bg)}h1,h2,p,dl,dd{margin:0}h1{letter-spacing:-.025em;font-size:1.5rem;font-weight:700}h2{letter-spacing:-.02em;font-size:1.625rem;font-weight:650}button,input,select{font:inherit}button,select,input,summary{-webkit-tap-highlight-color:transparent}button,select,input[type=number]{border:1px solid var(--border);min-height:48px;color:var(--text);background:var(--bg-panel);border-radius:8px}button{cursor:pointer;padding:.65rem 1rem;font-weight:600;transition:background .15s ease-out,border-color .15s ease-out}button:hover:not(:disabled),select:hover:not(:disabled){border-color:var(--text-dim)}button.primary{background:var(--accent);border-color:var(--accent);color:#0a1510}button.primary:hover:not(:disabled){background:#78e99f;border-color:#78e99f}button:disabled,select:disabled,input:disabled{opacity:.45;cursor:not-allowed}:focus-visible{outline:2px solid var(--accent);outline-offset:4px}input,select{min-width:0;max-width:100%;caret-color:var(--accent);padding:.6rem .75rem}input::placeholder{color:var(--text-dim)}input[type=number]{font-variant-numeric:tabular-nums;width:9rem}input[type=checkbox]{accent-color:var(--accent);width:1.125rem;height:1.125rem;margin:0}.muted{color:var(--text-dim);font-size:.875rem;line-height:1.5}#app{max-width:1100px;padding:max(var(--space-5), env(safe-area-inset-top)) max(var(--space-6), env(safe-area-inset-right)) max(var(--space-6), env(safe-area-inset-bottom)) max(var(--space-6), env(safe-area-inset-left));margin:0 auto}#hud{justify-content:space-between;align-items:center;gap:var(--space-4);padding-bottom:var(--space-5);border-bottom:1px solid var(--border);display:flex}.hud-title p{margin-top:var(--space-1);font-size:.75rem}.force-readout{align-items:flex-end;gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.force-readout .muted{font-size:.75rem}#readout{font-variant-numeric:tabular-nums;text-align:right;font-size:1.125rem;font-weight:600}main{gap:var(--space-5);flex-direction:column;display:flex}#setup{border-bottom:1px solid var(--border)}summary{align-items:center;gap:var(--space-5);min-height:64px;padding-block:var(--space-3);cursor:pointer;font-size:.875rem;list-style:none;display:flex}summary::-webkit-details-marker{display:none}.connection{align-items:center;gap:var(--space-2);overflow-wrap:anywhere;min-width:0;display:flex}.connection-dot{background:var(--text-dim);border-radius:50%;flex-shrink:0;width:7px;height:7px}.connection-dot[data-connected=true]{background:var(--accent)}.reference-summary{color:var(--text-dim)}.setup-label{align-items:center;gap:var(--space-3);white-space:nowrap;margin-left:auto;display:flex}.setup-label svg{fill:none;stroke:currentColor;stroke-width:1.5px;width:16px;height:16px}details[open] .setup-label svg{transform:rotate(180deg)}.setup-content{padding-bottom:var(--space-5)}.setup-fields{justify-content:space-between;gap:var(--space-5);flex-wrap:wrap;display:flex}.field-group{align-items:flex-end;gap:var(--space-2);flex-wrap:wrap;min-width:0;display:flex}.field{gap:var(--space-2);min-width:0;color:var(--text-dim);flex-direction:column;font-size:.8125rem;display:flex}.field select,.field input{color:var(--text);font-size:.9375rem}.setup-help{justify-content:space-between;gap:var(--space-2) var(--space-5);margin-top:var(--space-3);color:var(--text-dim);flex-wrap:wrap;font-size:.8125rem;line-height:1.5;display:flex}.setup-help p{max-width:64ch}.exercise{padding:var(--space-5);background:var(--bg-raise);border:1px solid var(--border);border-radius:12px}.exercise-heading{justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}#exerciseMeta{margin-top:var(--space-2)}.exercise-select{width:14rem}.exercise-facts{gap:var(--space-5);margin-top:var(--space-6);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.exercise-fact{align-content:flex-start;column-gap:var(--space-2);flex-wrap:wrap;font-size:1.0625rem;line-height:1.5;display:flex}.exercise-fact dt{color:var(--text-dim)}.exercise-fact dd{font-variant-numeric:tabular-nums;font-weight:650}.exercise-body{align-items:center;gap:var(--space-6);margin-top:var(--space-5);grid-template-columns:minmax(0,1fr) 14rem;display:grid}.exercise-rhythm{min-width:0}.rhythm-diagram{align-items:flex-end;gap:3px;height:48px;display:flex}.rhythm-hold{min-width:0;height:max(28px, var(--target));color:#b0edc7;font-variant-numeric:tabular-nums;background:#294d3d;border-radius:4px;flex:1;justify-content:center;align-items:center;font-size:.75rem;font-weight:600;display:flex}.rhythm-release{background:#343f50;border-radius:3px;flex:.25;height:24px}.rhythm-legend{margin-top:var(--space-3);color:var(--text-dim);font-size:.75rem}.target-force{font-variant-numeric:tabular-nums;font-size:1.0625rem;font-weight:600}.exercise-force .muted{margin-top:var(--space-1);font-size:.75rem}.band-detail{margin-top:var(--space-3);color:var(--text-dim);font-size:.8125rem;line-height:1.5}.exercise-recovery{border-top:1px solid var(--border);padding-top:var(--space-4);margin-top:var(--space-5);color:var(--text-dim);font-size:.875rem;line-height:1.6}#stage{border:1px solid var(--border);background:#151c27;border-radius:12px;overflow:hidden}.stage-heading,.stage-caption{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-4);padding:var(--space-4) var(--space-5);flex-wrap:wrap;display:flex}.stage-heading h2{letter-spacing:normal;color:var(--text-dim);font-size:.9375rem;font-weight:500}#liveCue{font-variant-numeric:tabular-nums;font-size:1rem;font-weight:600}#canvas{width:100%;height:30vh;min-height:220px;max-height:400px;display:block}.stage-caption{color:var(--text-dim);font-size:.75rem}#stageTarget{color:#b0edc7}#controls{align-items:center;gap:var(--space-5);padding-bottom:var(--space-4);display:flex}.readiness{min-width:0;margin-right:auto}#sessionStatus{font-weight:600;line-height:1.5}#actionHint{margin-top:var(--space-1);font-size:.8125rem}.sound-control{align-items:center;gap:var(--space-2);cursor:pointer;min-height:44px;font-size:.875rem;display:flex}.set-actions{gap:var(--space-2);display:flex}#start{min-width:9rem}#stop:not(:disabled):hover{border-color:var(--danger)}#error{padding:var(--space-4) var(--space-5);overflow-wrap:anywhere;color:var(--danger);background:#2d1e25;border:1px solid #72404a;border-radius:12px;font-size:.875rem;line-height:1.65}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=700px){#app{padding:max(var(--space-4), env(safe-area-inset-top)) max(var(--space-4), env(safe-area-inset-right)) max(var(--space-5), env(safe-area-inset-bottom)) max(var(--space-4), env(safe-area-inset-left))}#hud{align-items:flex-start}#readout{max-width:12rem;font-size:.9375rem}summary{column-gap:var(--space-2);row-gap:var(--space-3);padding-block:var(--space-4);grid-template-columns:minmax(0,1fr) auto;display:grid}.reference-summary{grid-area:2/1/auto/-1;font-size:.8125rem}.setup-label{gap:var(--space-2);grid-area:1/2;font-size:.8125rem}.exercise{padding:var(--space-4)}h2{font-size:1.375rem}.exercise-heading{align-items:stretch}.exercise-select{width:100%}.exercise-facts{gap:var(--space-3);margin-top:var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr))}.exercise-fact{font-size:1rem}.exercise-body{gap:var(--space-4);grid-template-columns:minmax(0,1fr)}.exercise-force{border-top:1px solid var(--border);padding-top:var(--space-4)}.stage-heading,.stage-caption{padding:var(--space-4)}#canvas{height:28vh;min-height:200px}#controls{gap:var(--space-4);grid-template-columns:minmax(0,1fr) auto;display:grid}.set-actions{grid-column:1/-1}.set-actions button{flex:1;min-width:0}.rhythm-diagram{gap:2px}.rhythm-hold{font-size:.625rem}}@media (prefers-reduced-motion:reduce){button{transition:none}}.rhythm-scroll{padding-bottom:var(--space-2);scrollbar-width:thin;scrollbar-color:var(--border) var(--bg-raise);overflow-x:auto}.rhythm-hold{min-width:1.125rem}.rhythm-release{min-width:4px}#stage{scroll-margin-top:var(--space-4)}#stageReadout{margin-top:var(--space-1);font-variant-numeric:tabular-nums;font-size:1.125rem;font-weight:600;display:block}.hand-selection{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border)}#handSelector{border:0;min-width:0;margin:0;padding:0}#handSelector legend{margin-bottom:var(--space-3);color:var(--text-dim);padding:0;font-size:.8125rem}.hand-options{gap:var(--space-3);display:flex}.hand-option{align-items:center;gap:var(--space-1) var(--space-2);min-width:0;max-width:15rem;padding:var(--space-3) var(--space-4);border:1px solid var(--border);cursor:pointer;border-radius:8px;flex:1;grid-template-columns:auto minmax(0,1fr);font-size:.9375rem;display:grid}.hand-option:has(:checked){border-color:var(--accent);background:var(--accent-dim)}.hand-option:has(:focus-visible){outline:2px solid var(--accent);outline-offset:3px}.hand-option input{width:1rem;height:1rem;accent-color:var(--accent);margin:0;padding:0}.hand-recovery{color:var(--text-dim);font-variant-numeric:tabular-nums;grid-column:2;font-size:.8125rem}.hand-option:has(:checked) .hand-recovery{color:#b0edc7}#handSelector:disabled .hand-option{cursor:not-allowed}#handHelp{margin-top:var(--space-3);font-size:.8125rem}@media (width<=700px){.hand-selection{padding:var(--space-4)}.hand-option{padding:var(--space-3)}}.icon{fill:none;stroke:currentColor;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:1.125rem;height:1.125rem}.button-like{justify-content:center;align-items:center;gap:var(--space-2);display:inline-flex}button:has(.icon){justify-content:center;align-items:center;gap:var(--space-2);display:inline-flex}.button-like{border:1px solid var(--border);background:var(--bg-panel);cursor:pointer;border-radius:8px;min-height:48px;padding:.65rem 1rem;font-weight:600;transition:border-color .15s ease-out}.button-like:hover{border-color:var(--text-dim)}:is(:has(>input.sr-only:focus-visible)>.button-like,.button-like:has(+input:focus-visible)){outline:2px solid var(--accent);outline-offset:4px}.icon-button{background:0 0;border-color:#0000;place-items:center;width:48px;padding:0;display:inline-grid}button.danger-quiet{color:var(--danger);background:0 0;border-color:#0000}button.danger-quiet:hover:not(:disabled){border-color:#72404a}select optgroup{color:var(--text-dim);font-style:normal}select option{color:var(--text)}.device-field select{min-width:13rem}.data-panel{gap:var(--space-4);margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--border);display:grid}.data-intro{align-items:baseline;gap:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}.data-title{margin:0;font-size:1rem;font-weight:650}.data-count{color:var(--text-dim);font-size:.8125rem}.data-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.data-format{max-width:18rem}.data-status{color:#b0edc7;min-height:1.25rem;font-size:.8125rem}.data-status[data-tone=error]{color:var(--danger)}.exercise-pick{align-items:flex-end;gap:var(--space-2);flex-wrap:wrap;display:flex}.workout-buttons{gap:var(--space-2);display:flex}.focus-readout{display:none}body[data-phase=countdown] #hud,body[data-phase=playing] #hud,body[data-phase=countdown] #setup,body[data-phase=playing] #setup,body[data-phase=countdown] .exercise,body[data-phase=playing] .exercise,body[data-phase=countdown] .hand-selection,body[data-phase=playing] .hand-selection,body[data-phase=countdown] #result,body[data-phase=playing] #result,body[data-phase=countdown] .stage-caption,body[data-phase=playing] .stage-caption,body[data-phase=countdown] #stageReadout,body[data-phase=playing] #stageReadout,body[data-phase=countdown] .sound-control,body[data-phase=playing] .sound-control,body[data-phase=countdown] .readiness,body[data-phase=playing] .readiness,body[data-phase=countdown] #liveCue,body[data-phase=playing] #liveCue{display:none!important}body[data-phase=countdown] .focus-readout,body[data-phase=playing] .focus-readout{justify-content:space-between;align-items:flex-end;gap:var(--space-2) var(--space-5);padding:var(--space-4) var(--space-5) 0;flex-wrap:wrap;display:flex}.focus-force{align-items:baseline;gap:var(--space-2);line-height:1;display:flex}#focusKg{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:5.5rem;font-weight:700}.focus-unit{color:var(--text-dim);font-size:1.5rem;font-weight:600}.focus-meta{gap:var(--space-1);padding-bottom:var(--space-2);font-variant-numeric:tabular-nums;font-size:1.125rem;font-weight:600;display:grid}#focusTarget{color:#b0edc7}#focusRep{font-size:1.5rem;font-weight:650}#focusTime{letter-spacing:-.02em;font-size:2.5rem;font-weight:700;line-height:1.1}body[data-phase=countdown] #app,body[data-phase=playing] #app{flex-direction:column;height:100dvh;display:flex}body[data-phase=countdown] main,body[data-phase=playing] main{flex:1;min-height:0}body[data-phase=countdown] #controls,body[data-phase=playing] #controls{padding-bottom:0}body[data-phase=countdown] .set-actions,body[data-phase=playing] .set-actions{width:100%}body[data-phase=countdown] #start,body[data-phase=playing] #start{display:none}body[data-phase=countdown] #stop,body[data-phase=playing] #stop{flex:1;min-height:56px}body[data-phase=countdown] #stage,body[data-phase=playing] #stage{flex-direction:column;flex:1;min-height:0;display:flex}body[data-phase=countdown] #canvas,body[data-phase=playing] #canvas{flex:1;height:auto;min-height:0;max-height:none}body[data-phase=countdown] #liveCue,body[data-phase=playing] #liveCue{font-size:1.25rem}@media (width>=900px){#focusKg{font-size:8rem}.focus-meta{font-size:1.375rem}#focusRep{font-size:1.75rem}#focusTime{font-size:3.25rem}}@media (orientation:landscape) and (height<=520px){body[data-phase=countdown] #stage,body[data-phase=playing] #stage{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(12rem,32%) minmax(0,1fr);display:grid}body[data-phase=countdown] .stage-heading,body[data-phase=playing] .stage-heading{padding-block:var(--space-2);grid-column:1/-1}body[data-phase=countdown] .focus-readout,body[data-phase=playing] .focus-readout{padding:var(--space-3) var(--space-4);flex-direction:column;justify-content:center;align-items:flex-start}#focusKg{font-size:4rem}body[data-phase=countdown] #canvas,body[data-phase=playing] #canvas{height:100%;min-height:0}}#result{padding:var(--space-5);border:1px solid var(--border);background:var(--bg-raise);scroll-margin-top:var(--space-4);border-radius:12px;order:-1}.result-view{gap:var(--space-5);display:grid}.result-head{justify-content:space-between;align-items:baseline;gap:var(--space-1) var(--space-4);flex-wrap:wrap;display:flex}.result-title:focus{outline:none}.result-title:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.result-when{color:var(--text-dim);font-variant-numeric:tabular-nums;font-size:.875rem}.result-body{gap:var(--space-5);display:grid}.result-primary,.result-secondary{align-content:start;gap:var(--space-5);min-width:0;display:grid}.result-score{gap:var(--space-2);display:grid}.score-value{align-items:baseline;gap:var(--space-3);display:flex}.score-number{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:4.5rem;font-weight:700;line-height:.9}.score-unit{color:var(--text-dim);font-size:1rem;font-weight:500}.score-compare{gap:var(--space-1) var(--space-4);flex-wrap:wrap;font-size:.9375rem;display:flex}.score-delta{align-items:center;gap:var(--space-1);font-variant-numeric:tabular-nums;font-weight:600;display:inline-flex}.score-delta-up{color:#78e99f}.score-delta-down{color:var(--warn)}.score-delta-level,.score-best{color:var(--text-dim);font-variant-numeric:tabular-nums}.new-best{justify-self:start;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);background:var(--accent-dim);color:#b0edc7;border:1px solid #385b46;border-radius:999px;font-size:.875rem;font-weight:650;animation:.52s cubic-bezier(.16,1,.3,1) both best-in;display:inline-flex}.new-best .icon{fill:var(--accent);stroke:var(--accent);animation:.9s cubic-bezier(.16,1,.3,1) .12s both best-star}@keyframes best-in{0%{filter:blur(2px);transform:scale(.86)}to{filter:none;transform:none}}@keyframes best-star{0%{transform:rotate(-72deg)scale(.6)}to{transform:none}}.replay{margin:0}.replay-chart{width:100%;height:auto;display:block;overflow:visible}.replay-band{fill:#4ade8029;stroke:#4ade8080;stroke-width:1px}.replay-band-fast{fill:#fbbf2429;stroke:#fbbf248c}.replay-band-no-hold{fill:#adb7c614;stroke:#adb7c659;stroke-dasharray:3 3}.replay-rest{fill:#0d1117cc}.replay-rest-mark{stroke:var(--border);stroke-dasharray:2 4}.replay-axis{stroke:var(--border)}.replay-tick{fill:var(--text-dim);font-variant-numeric:tabular-nums;font-size:11px}.replay-line{fill:none;stroke:var(--accent);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.replay-rep{fill:var(--text-dim);text-anchor:middle;font-variant-numeric:tabular-nums;font-size:11px}.replay-caption{gap:var(--space-1) var(--space-4);margin-top:var(--space-3);color:var(--text-dim);flex-wrap:wrap;font-size:.75rem;display:flex}.legend{align-items:center;gap:var(--space-2);display:inline-flex}.legend:before{content:"";border-radius:2px;width:14px;height:10px}.legend-band:before{background:#4ade8029;border:1px solid #4ade8080}.legend-line:before{background:var(--accent);height:2px}.legend-rest:before{border:1px dashed var(--border)}.rep-sets{gap:var(--space-4);display:grid}.rep-set-title{margin-bottom:var(--space-2);color:var(--text-dim);font-size:.8125rem;font-weight:600}.rep-chips{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(4.75rem,1fr));margin:0;padding:0;list-style:none;display:grid}.rep-chip{padding:var(--space-2) var(--space-3);background:#4ade800f;border:1px solid #385b46;border-radius:8px;gap:2px;display:grid}.rep-chip-rep{color:var(--text-dim);font-size:.75rem}.rep-chip-value{align-items:center;gap:var(--space-1);font-variant-numeric:tabular-nums;font-size:1.125rem;font-weight:650;display:inline-flex}.rep-chip .icon{width:1rem;height:1rem}.rep-chip[data-state=fast]{background:#fbbf2412;border-color:#6b5a2a}.rep-chip[data-state=fast] .rep-chip-value{color:var(--warn)}.rep-chip[data-state=no-hold]{border-style:dashed;border-color:var(--border);background:0 0}.rep-chip[data-state=no-hold] .rep-chip-value{color:var(--text-dim);font-size:.9375rem;font-weight:600}.result-facts{gap:var(--space-4);padding-block:var(--space-4);border-block:1px solid var(--border);grid-template-columns:repeat(3,minmax(0,1fr));margin:0;display:grid}.result-fact{align-content:start;gap:var(--space-1);min-width:0;display:grid}.result-fact dt{color:var(--text-dim);font-size:.8125rem}.result-fact dd{gap:2px;margin:0;display:grid}.result-fact-value{font-variant-numeric:tabular-nums;font-size:1.25rem;font-weight:650}.result-fact-detail{color:var(--text-dim);font-variant-numeric:tabular-nums;font-size:.8125rem}.result-coach{gap:var(--space-2);max-width:60ch;font-size:1rem;line-height:1.5;display:grid}.result-coach p:first-child{font-weight:600}.trend{margin:0}.trend-caption{justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-2);color:var(--text-dim);font-variant-numeric:tabular-nums;font-size:.8125rem;display:flex}.trend-chart{width:100%;max-width:28rem;height:auto;display:block}.trend-line{fill:none;stroke:var(--text-dim);stroke-width:1.5px;stroke-linejoin:round}.trend-dot{fill:var(--bg-raise);stroke:var(--text-dim);stroke-width:1.5px}.trend-now{fill:var(--accent);stroke:var(--bg-raise);stroke-width:2px}.result-actions{gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--border);display:grid}.result-rest{align-items:baseline;gap:var(--space-1) var(--space-3);font-variant-numeric:tabular-nums;flex-wrap:wrap;display:flex}.result-rest-clock{letter-spacing:-.02em;font-size:2.5rem;font-weight:700;line-height:1}.result-rest-label{color:var(--text-dim);font-weight:600}.result-buttons{gap:var(--space-2);grid-template-columns:auto minmax(0,1fr);display:grid}.result-buttons button{white-space:nowrap}.result-unsaved{color:var(--warn);font-size:.875rem}@media (width>=900px){.result-body{grid-template-columns:minmax(0,1.5fr) minmax(18rem,1fr);align-items:start}.result-secondary{grid-area:auto/2}.result-primary{grid-area:1/1}.result-actions{grid-template-columns:minmax(0,1fr) auto;align-items:center}.result-buttons{grid-template-columns:auto minmax(14rem,auto)}.result-facts{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr)}.result-fact-detail{white-space:nowrap;font-size:.75rem}}@media (width<=899px){.result-body{flex-direction:column;display:flex}.result-primary,.result-secondary{display:contents}.result-score{order:1}.replay{order:2}.rep-sets{order:3}.result-facts{order:4}.result-coach{order:5}.trend{order:6}}@media (width<=700px){#result{padding:var(--space-4)}.score-number{font-size:4rem}.result-facts{gap:var(--space-3);grid-template-columns:minmax(0,1fr)}.result-fact{grid-template-columns:8rem minmax(0,1fr);align-items:baseline}.result-fact dd{align-items:baseline;column-gap:var(--space-2);flex-wrap:wrap;display:flex}.result-actions{margin-inline:calc(-1 * var(--space-4));margin-bottom:calc(-1 * var(--space-4));padding:var(--space-3) var(--space-4) max(var(--space-4), env(safe-area-inset-bottom));background:var(--bg-raise);border-radius:0 0 12px 12px;position:sticky;bottom:0}}dialog.sheet{border:1px solid var(--border);background:var(--bg-raise);width:100%;max-width:100%;max-height:94dvh;color:var(--text);overscroll-behavior:contain;border-bottom:0;border-radius:16px 16px 0 0;margin:auto 0 0;padding:0}dialog.sheet[open]{animation:.26s cubic-bezier(.16,1,.3,1) sheet-in}dialog.sheet::backdrop{background:#05080cb8}@keyframes sheet-in{0%{opacity:.4;transform:translateY(32px)}to{opacity:1;transform:none}}.sheet-body{gap:var(--space-5);padding:0 var(--space-4) 0;display:grid}.sheet-head{z-index:1;margin-inline:calc(-1 * var(--space-4));padding:var(--space-3) var(--space-2) var(--space-3) var(--space-4);border-bottom:1px solid var(--border);background:var(--bg-raise);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.sheet-head h2{font-size:1.25rem}.sheet-name input{border:1px solid var(--border);background:var(--bg-panel);width:100%;min-height:48px;color:var(--text);border-radius:8px;font-size:1rem}.template-row{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.template-label{margin-right:var(--space-1);color:var(--text-dim);font-size:.8125rem}button.chip{border-radius:999px;min-height:44px;padding:.45rem .9rem;font-size:.875rem}.shape-preview{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--border);background:#151c27;border-radius:10px;display:grid}.shape-chart{width:100%;height:56px;display:block}.shape-rep{fill:#4ade8047;stroke:#4ade80b3;stroke-width:1px;vector-effect:non-scaling-stroke}.shape-load{fill:#4ade801a}.shape-rest{fill:#adb7c612}.shape-base{stroke:var(--border);vector-effect:non-scaling-stroke}.shape-totals{font-variant-numeric:tabular-nums;font-size:.875rem;font-weight:600}.steppers{gap:var(--space-1);display:grid}.stepper{align-items:center;column-gap:var(--space-2);padding-block:var(--space-2);border-bottom:1px solid #34405299;grid-template-columns:minmax(0,1fr) 48px 5.75rem 48px;grid-template-areas:"label minus value plus""extra minus value plus";display:grid}.stepper-label{grid-area:label;align-self:end;font-weight:600}.stepper-extra{min-height:1.1rem;color:var(--text-dim);font-variant-numeric:tabular-nums;grid-area:extra;align-self:start;font-size:.8125rem}.stepper-button{touch-action:manipulation;-webkit-user-select:none;user-select:none;place-items:center;width:48px;padding:0;display:grid}.stepper-button:first-of-type{grid-area:minus}.stepper-button:last-of-type{grid-area:plus}.stepper-button .icon{width:1.25rem;height:1.25rem}.stepper-value{grid-area:value;justify-content:center;align-items:baseline;gap:2px;display:flex}.stepper-value input{text-align:center;appearance:textfield;background:0 0;border-color:#0000;width:3.75rem;min-height:48px;padding:0;font-size:1.375rem;font-weight:650}.stepper-value input:focus{border-color:var(--accent);background:var(--bg-panel)}.stepper-value input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.stepper-value input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.stepper-unit{color:var(--text-dim);font-size:.875rem}.stepper-reason{margin-top:calc(-1 * var(--space-3));color:var(--warn);font-size:.875rem}.grip-choice{gap:var(--space-2);border:0;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:0;display:grid}.grip-choice legend{margin-bottom:var(--space-2);padding:0;font-weight:600}.segment{justify-content:center;align-items:center;gap:var(--space-2);border:1px solid var(--border);cursor:pointer;border-radius:8px;min-height:48px;display:flex}.segment input{opacity:0;pointer-events:none;position:absolute}.segment:has(:checked){border-color:var(--accent);background:var(--accent-dim);color:#b0edc7;font-weight:600}.segment:has(:focus-visible){outline:2px solid var(--accent);outline-offset:3px}.sheet-error{color:var(--danger);font-size:.875rem}.sheet-actions{gap:var(--space-2);margin-inline:calc(-1 * var(--space-4));padding:var(--space-3) var(--space-4) max(var(--space-3), env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--bg-raise);display:flex;position:sticky;bottom:0}.sheet-actions .primary{white-space:nowrap;flex:1}.sheet-actions button:not(.primary){padding-inline:.75rem}.sheet-head h2:focus{outline:none}@media (width<=480px){.sheet-actions{flex-wrap:wrap}.sheet-actions .primary{flex:100%;order:-1}.sheet-actions button:not(.primary){flex:1}}@media (width>=900px){dialog.sheet{border-bottom:1px solid var(--border);border-radius:16px;max-width:560px;max-height:88dvh;margin:auto}.sheet-body{padding-inline:var(--space-5)}.sheet-head,.sheet-actions{margin-inline:calc(-1 * var(--space-5));padding-inline:var(--space-5)}.sheet-actions{border-radius:0 0 16px 16px}main{align-items:start;column-gap:var(--space-5);grid-template-columns:minmax(0,1.6fr) minmax(19rem,1fr);grid-auto-flow:dense;display:grid}main>#setup,main>#error,main>#result{grid-column:1/-1}main>#stage{grid-area:span 2/1}main>.exercise{grid-column:2}main>#controls{flex-wrap:wrap;grid-column:2}.exercise-facts{gap:var(--space-4);margin-top:var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr))}.exercise-body{gap:var(--space-4);grid-template-columns:minmax(0,1fr)}.exercise-select,.exercise-pick{width:100%}#canvas{height:42vh;max-height:520px}body[data-phase=countdown] main,body[data-phase=playing] main{grid-template-columns:minmax(0,1fr)}body[data-phase=countdown] main>#stage,body[data-phase=playing] main>#stage,body[data-phase=countdown] main>#controls,body[data-phase=playing] main>#controls{grid-column:1}}@media (width<=700px){.exercise-pick,.exercise-select,.workout-buttons{width:100%}.workout-buttons button{flex:1}.device-field,.device-field select{width:100%}.data-actions>*{flex:1 1 calc(50% - var(--space-2))}}@media (prefers-reduced-motion:reduce){.new-best,.new-best .icon,dialog.sheet[open]{animation:none}}.data-help{max-width:64ch;color:var(--text-dim);font-size:.8125rem;line-height:1.5}
