:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0a0e14;--fg:#f2f5f8;--muted:#a5b0c0;--panel:#141a22;--panel-2:#1e2631;--border:#303b4a;--accent:#cf0;--accent-strong:#dcff65;--accent-fg:#152000;--accent-soft:#243008;--cyan:#00f0ff;--focus:#00f0ff;--error:#ff9aab;--good:#cf0;--warn:#ffd18a;--stage:#060a10;--radius:14px;--mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;color:var(--fg);background:var(--bg);-webkit-text-size-adjust:100%;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5}*{box-sizing:border-box}body{background:var(--bg);margin:0}button,select,summary,a,input{-webkit-tap-highlight-color:transparent}button,select{border:1px solid var(--border);min-width:0;max-width:100%;min-height:48px;font:inherit;background:var(--panel-2);color:var(--fg);border-radius:8px;padding:10px 14px;font-size:1rem}button{cursor:pointer;justify-content:center;align-items:center;gap:9px;display:inline-flex}button svg{flex:none}button:hover:not(:disabled){border-color:var(--cyan);background:#273341}button:disabled,select:disabled{opacity:.55;cursor:not-allowed}button.primary{color:var(--accent-fg);background:var(--accent);border-color:var(--accent);font-weight:750}button.primary:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong)}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}h1,h2,h3{letter-spacing:-.025em;line-height:1.22}a{color:var(--cyan)}.muted{color:var(--muted)}.small{font-size:.875rem}.app{max-width:1060px;padding:max(20px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));margin:0 auto}.topbar{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px;padding-bottom:20px;display:flex}.brand{align-items:center;gap:12px;min-width:0;display:flex}.brand>.logo{background:var(--accent);width:46px;height:46px;color:var(--accent-fg);border-radius:12px;padding:7px}.logo-ring{opacity:.35}.brand-line{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.brand h1{letter-spacing:-.04em;margin:0;font-size:1.35rem;font-weight:850}.local-badge{font:600 .64rem var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent);align-items:center;gap:5px;display:inline-flex}.local-badge svg{width:13px;height:13px}.subtitle{color:var(--muted);margin:3px 0 0;font-size:.78rem}.modes{flex:360px;justify-content:flex-end;align-items:center;gap:12px;display:flex}.segmented{border:1px solid var(--border);background:var(--panel);border-radius:10px;gap:4px;width:100%;max-width:360px;padding:4px;display:flex}.seg{color:var(--muted);background:0 0;border:1px solid #0000;flex:1;font-weight:700}.seg span{text-align:left}.seg small{margin-top:1px;font-size:.68rem;font-weight:400;display:block}.seg-active{background:var(--panel-2);color:var(--accent);border-color:#5e7131}.tools-link{color:var(--muted);background:0 0;padding:10px;font-size:.8rem}.tools-active{color:var(--cyan);border-color:var(--cyan)}.steps{gap:8px;margin-bottom:16px;display:flex}.step{min-width:0;color:var(--muted);background:var(--panel);flex:1;padding:8px;font-size:.83rem}.step-active{color:var(--accent);background:var(--accent-soft);border-color:#7d9a23}.panel,.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius)}.panel{margin:0 0 16px;padding:24px}.card{margin:14px 0;padding:20px}.card h3{margin:0 0 10px;font-size:1.05rem}.card p{margin:8px 0}.eyebrow,.section-label,.field-heading,.hud-label{font:600 .7rem var(--mono);letter-spacing:.1em;text-transform:uppercase}.eyebrow{color:var(--accent);margin:0 0 8px}.setup{position:relative}.exercise-picker{border-bottom:1px solid var(--border);margin:0 0 24px;padding-bottom:20px;display:block}.field-heading{color:var(--fg);align-items:center;gap:8px;margin-bottom:10px;display:flex}.step-number{background:var(--accent-soft);width:25px;height:25px;color:var(--accent);border-radius:5px;justify-content:center;align-items:center;display:inline-flex}.field-meta{color:var(--muted);letter-spacing:0;margin-left:auto;font-size:.65rem}.exercise-picker select{background:var(--panel-2);border-color:#4d5e35;width:100%;min-height:60px;font-size:1.25rem;font-weight:700}.setup-head{align-items:flex-start;gap:20px;display:flex}.setup-head>div:first-child{flex:1;min-width:0}.setup h2{max-width:24ch;margin:0 0 10px;font-size:clamp(1.35rem,3vw,1.9rem)}.camera-distance{color:var(--muted);align-items:center;gap:8px;margin:10px 0 0;font-size:.85rem;display:flex}.camera-distance svg{color:var(--cyan);flex-shrink:0}.setup-instruction{color:var(--muted);margin:4px 0 12px}.setup-practise{margin:0 0 8px}.setup-figure{flex:0 0 110px}.setup-figure .illustration{width:110px}.position-guide summary{cursor:pointer;min-height:44px;color:var(--cyan);align-items:center;font-size:.8rem;display:flex}.position-guide summary:after{content:"+";margin-left:12px}.position-guide[open] summary:after{content:"−"}.setup-actions{margin:14px 0}.start{width:100%;min-height:56px;font:700 .9rem var(--mono);letter-spacing:.025em;text-transform:uppercase}.action-note{color:var(--muted);justify-content:center;align-items:center;gap:6px;margin-top:8px;font-size:.72rem;display:flex}.action-note svg{width:14px;height:14px;color:var(--cyan)}.options{grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));gap:12px;margin:14px 0;display:grid}.options label,.controls label{color:var(--muted);flex-direction:column;gap:7px;font-size:.85rem;display:flex}.options-note{border:1px solid var(--border);background:#0d1219;border-radius:8px;grid-column:1/-1;margin:0;padding:12px}.range-options{border:1px solid var(--border);background:#10151d;border-radius:8px;align-self:start;padding:0 12px}.range-options summary{min-height:48px;color:var(--muted);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;font-size:.85rem;display:flex}.range-options summary:after{content:"+";color:var(--accent)}.range-options[open] summary:after{content:"−"}.range-options[open]{padding-bottom:12px}.setup-voice{border-top:1px solid var(--border);margin-top:16px;padding-top:16px}.section-label{color:var(--fg);margin:0}.section-label span{font:400 .75rem var(--mono);text-transform:none;letter-spacing:0;color:var(--muted);margin-left:8px}.status{color:var(--muted);margin:8px 0;font-size:.875rem}.status-idle{display:none}.status-error,.status-paused{border:1px solid var(--error);color:var(--error);background:#29141e;border-radius:8px;padding:14px;display:block}.stage{border:1px solid var(--border);border-radius:var(--radius);background:var(--stage);width:100%;height:min(62svh,640px);position:relative;overflow:hidden}.stage video,.stage canvas{width:100%;height:100%;position:absolute;inset:0}.stage video{object-fit:contain}.stage video.mirrored{transform:scaleX(-1)}.stage--hidden{display:none}.stage--placeholder{background:#0e141c;border-style:dashed;height:auto;margin:0 0 16px}.stage--placeholder video,.stage--placeholder canvas{display:none}.camera-placeholder{color:var(--muted);align-items:center;gap:12px;padding:16px;display:flex}.camera-placeholder svg{color:var(--cyan);flex:none}.camera-placeholder p{margin:0;font-size:.8rem}.phase-live{max-width:1440px;height:100svh;padding-top:max(10px, env(safe-area-inset-top));padding-bottom:max(10px, env(safe-area-inset-bottom));grid-template-rows:auto minmax(160px,1fr) auto auto;gap:8px;display:grid}.phase-live .topbar{margin:0;padding:0 0 8px}.phase-live .brand>.logo{border-radius:8px;width:34px;height:34px;padding:4px}.phase-live .brand h1{font-size:1rem}.phase-live .modes,.phase-live .subtitle,.phase-live footer{display:none}.phase-live .stage{height:100%;min-height:0}.hud{pointer-events:none;color:var(--fg);flex-direction:column;gap:10px;padding:clamp(12px,2vw,24px);display:flex;position:absolute;inset:0}.hud-context{font:600 .68rem var(--mono);text-transform:uppercase;letter-spacing:.04em;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;display:flex}.hud-context>span:first-child{background:#141c26;border-radius:6px;padding:8px 10px}.tracking-badge{color:var(--cyan);background:#06262c;border:1px solid #14606a;border-radius:6px;padding:8px 10px}.tracking-adjust{color:var(--warn);background:#2b2112;border-color:#7e6028}.hud-top{align-items:flex-start;gap:14px;display:flex}.count-pod{background:#0a1019ed;border:1px solid #364326;border-radius:10px;flex-direction:column;min-width:120px;padding:12px 16px;display:flex}.hud-label{color:#c0c9a7;font-size:.65rem}.hud-count{color:var(--accent);font:700 clamp(3.5rem, 12vw, 6.5rem)/1 var(--mono);letter-spacing:-.07em;font-variant-numeric:tabular-nums;display:block}.hud-phase{font:600 .8rem/1.4 var(--mono);background:#141c26e8;border-radius:6px;max-width:36ch;padding:8px 10px}.hud-bottom{flex-direction:column;gap:8px;margin-top:auto;display:flex}.hud-rep{background:#0a1019ed;border-radius:6px;margin:0;padding:8px 12px;font-size:.8rem}.hud-cue{color:#d8faff;background:#06262cf5;border:1px solid #2a7780;border-radius:10px;padding:12px 16px}.hud-cue-correction{color:#352100;background:#ffdc9e;border-color:#ffd18a}.hud-cue-kind{font:700 .65rem var(--mono);text-transform:uppercase;letter-spacing:.12em;margin-bottom:4px;display:block}.hud-cue .hud-cue-main{letter-spacing:-.025em;margin:0;font-size:clamp(1.35rem,4vw,2.5rem);font-weight:800;line-height:1.1}.hud-cue .hud-instruction{margin:6px 0 0;font-size:.8rem;line-height:1.35}.hud-cue .hud-why{display:none}.live-evidence{font-size:.8rem}.live-evidence>summary{min-height:44px;color:var(--muted);cursor:pointer;align-items:center;display:flex}.live-evidence>summary:after{content:"+";color:var(--cyan);margin-left:10px}.live-evidence[open]{max-height:30svh;overflow-y:auto}.live-bar{z-index:2;background:var(--bg);padding:0}.live-bar .status{margin:0 0 6px}.live-bar .status-running{display:none}.live-actions{align-items:center;gap:12px;display:flex}.live-actions .voice{flex:1;min-width:0}button.primary.finish{color:#fff1f3;text-transform:uppercase;background:#a70d27;border-color:#e43c58;flex:1;min-width:135px;min-height:56px;font-weight:750}button.primary.finish:hover{background:#c91a37}.live-hint{margin:6px 0 0;font-size:.7rem}.voice{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:8px;display:flex}.voice p{color:var(--muted);flex-basis:100%;margin:0;font-size:.8rem}.voice-switch{cursor:pointer;align-items:center;gap:9px;min-height:48px;font-size:.9rem;font-weight:600;display:inline-flex}.voice-switch input{width:20px;height:20px;accent-color:var(--accent);flex:none}.voice-compact{gap:0 8px;margin:0}.voice-compact .voice-switch{font-size:.8rem}.voice-compact p{font-size:.7rem}.history{margin:20px 0}.history h2{margin:0 0 12px;font-size:1.2rem}.history-empty,[data-testid=history-empty]{border:1px dashed var(--border);border-radius:10px;padding:20px}.set-card{border-top:2px solid #677e29;padding:20px;position:relative}.set-card h3{font:500 .75rem/1.4 var(--mono);letter-spacing:0;color:var(--muted);margin-bottom:14px}.result-exercise{flex-wrap:wrap;align-items:center;gap:10px;font-size:1.2rem;font-weight:700;line-height:1.25;display:flex}.result-exercise .badge{color:var(--cyan);font:500 .65rem var(--mono);background:#07272f;border-color:#234d57;padding:6px 8px}.set-card .set-count{flex-wrap:wrap;align-items:baseline;gap:0 8px;margin:12px 0 6px;font-size:1rem;display:flex}.set-count>strong{color:var(--accent);font:700 3.5rem/.95 var(--mono);letter-spacing:-.07em}.set-count>.muted{font-size:.75rem}.set-totals{color:var(--muted);font-size:.8rem}.set-range{color:#a5ebf3;background:#0a252b;border:1px solid #22424b;border-radius:8px;padding:10px 12px;font-size:.8rem}.set-range[data-kind=front],.set-range[data-kind=no-goal]{color:var(--muted);background:0 0;border:0;padding:0}.set-headline{background:#24251b;border:1px solid #5d542f;border-radius:8px;padding:12px 14px;font-size:1rem;line-height:1.4}.set-headline strong{color:var(--warn);font-weight:650}.set-headline .muted{margin-top:4px;font-size:.8rem;display:block}.set-unable .set-headline,.set-no-reps .set-headline{background:var(--panel-2);border-color:var(--border)}.rep-strip{gap:6px;margin-top:12px;padding:4px 0 10px;display:flex;overflow-x:auto}.rep-chip{text-align:center;font:500 .62rem var(--mono);color:var(--fg);background:var(--panel-2);border:1px solid var(--border);border-radius:6px;flex-direction:column;flex:0 0 84px;gap:3px;padding:8px 5px;text-decoration:none;display:flex}.rep-chip strong{color:var(--accent);font-size:.65rem}.rep-chip small{color:var(--muted);font-size:.58rem}.rep-chip-adjust{border-color:#85652c}.rep-chip-adjust small{color:var(--warn)}.rep-strip-more{color:var(--muted);flex:0 0 100px;align-self:center;font-size:.7rem}.attempt-list{margin:10px 0;padding:0;list-style:none}.attempt{border:1px solid var(--border);overflow-wrap:anywhere;background:#10161e;border-left:3px solid #526245;border-radius:6px;margin:8px 0;padding:12px;scroll-margin-top:20px}.attempt p{margin:4px 0}.attempt-lead{font-size:1rem;line-height:1.45}.attempt-lead strong{color:var(--fg)}.attempt-next{color:var(--warn);font-size:1rem;font-weight:600}.attempt-rep[data-outcome=adjust],.attempt-not-counted{border-left-color:#ffd18a}.attempt-reference,.attempt-omitted{color:var(--muted)}.reps{margin:10px 0}.reps>summary,.attempt-details>summary{cursor:pointer;min-height:44px;color:var(--cyan);align-items:center;font-size:.85rem;display:flex}.reps>summary:after,.attempt-details>summary:after{content:"+";margin-left:auto;padding-left:12px}.reps[open]>summary:after,.attempt-details[open]>summary:after{content:"−"}.set-list{margin:8px 0;padding-left:20px}.set-list li{margin:8px 0}.visit-notice{background:var(--panel);border-radius:8px;align-items:flex-start;gap:10px;padding:14px;display:flex}.visit-notice svg{color:var(--cyan);flex:none}.next-set,.next{width:100%;min-height:56px;margin:8px 0 16px}.set-so-far{font-size:1.1rem}.aspects{margin:0;padding:0;list-style:none}.aspect{border-left:3px solid var(--border);margin:6px 0;padding:8px 0 8px 12px}.aspect-met{border-left-color:var(--accent)}.aspect-adjust{border-left-color:var(--warn)}.outcome-met{color:var(--good)}.outcome-adjust{color:var(--warn)}.outcome-partial,.outcome-unable{color:var(--muted)}.attempt .checks{margin:6px 0;padding-left:20px}.attempt .checks li{margin:6px 0}.tally{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.85rem}.tally th,.tally td{text-align:left;border-bottom:1px solid var(--border);overflow-wrap:anywhere;padding:8px 6px}.practise{border-top:2px solid var(--cyan)}.practise-correction{border-top-color:var(--warn)}.practise-title{color:var(--warn);font-size:1.3rem;font-weight:700}.lesson-cue{font-size:1.1rem;font-weight:650}.badge{border:1px solid var(--border);vertical-align:middle;letter-spacing:0;border-radius:5px;padding:3px 8px;font-size:.7rem;font-weight:500;display:inline-block}.badge-not-checked{color:var(--muted)}.lesson-note{border-left:3px solid var(--cyan);background:var(--panel-2);border-radius:0 8px 8px 0;margin:12px 0;padding:12px}.figures{flex-wrap:wrap;gap:12px;display:flex}.illustration{text-align:center;width:132px;color:var(--muted);margin:0;font-size:.75rem}.illustration svg{width:100%;height:auto}.ill-body,.ill-good,.ill-warn,.ill-ghost{fill:none;stroke-width:4px;stroke-linecap:round;stroke-linejoin:round}.ill-body{stroke:var(--fg)}.ill-good{stroke:var(--good)}.ill-warn{stroke:var(--warn)}.ill-ghost{stroke:var(--border);fill:none}.ill-guide,.ill-arrow{fill:none;stroke:var(--cyan);stroke-width:2px;stroke-dasharray:4 3}.ill-arrow{stroke-dasharray:none;stroke-width:3px}.settings,.howto,.report-disclosure{border:1px solid var(--border);background:var(--panel);border-radius:10px;margin:14px 0;padding:0 16px}.settings summary,.howto summary,.report-disclosure>summary{min-height:52px;color:var(--fg);cursor:pointer;align-items:center;gap:10px;font-size:.85rem;font-weight:600;display:flex}.howto summary{color:var(--cyan)}.howto[open]{padding-bottom:12px}.controls{flex-wrap:wrap;align-items:end;gap:12px;margin:12px 0;display:flex}.controls>label{flex:160px}.diagnostics{grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:10px;margin:20px 0;display:grid}.diagnostics>div{border:1px solid var(--border);background:var(--panel);border-radius:10px;padding:18px}.diagnostics dt{font:500 .7rem var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.035em}.diagnostics dd{font:600 1.35rem var(--mono);color:var(--cyan);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:10px 0 0}.report{flex-wrap:wrap;gap:8px;padding-bottom:14px;display:flex}.report pre{border:1px solid var(--border);-webkit-user-select:text;user-select:text;background:#0a1018;border-radius:8px;flex-basis:100%;max-width:100%;max-height:320px;padding:14px;font-size:.75rem;overflow:auto}footer{border-top:1px solid var(--border);color:var(--muted);margin-top:32px;padding-top:16px;font-size:.75rem}footer a{color:var(--muted)}@media (width<=719px){.app:not(.phase-live){padding-top:max(16px, env(safe-area-inset-top));padding-bottom:max(110px, calc(env(safe-area-inset-bottom) + 95px))}.topbar{gap:16px;margin-bottom:16px;padding-bottom:16px}.modes{flex-basis:100%;gap:8px}.segmented{max-width:none}.tools-link{flex-direction:column;gap:3px;max-width:100px;padding:5px 8px;font-size:.65rem}.panel{padding:18px}.exercise-picker{margin-bottom:16px;padding-bottom:16px}.exercise-picker select{min-height:54px;font-size:1.05rem}.setup-head{gap:10px}.setup h2{font-size:1.2rem}.setup-figure{flex-basis:64px}.setup-figure .illustration{width:64px}.setup-figure figcaption{display:none}.camera-distance{font-size:.75rem}.setup-actions{z-index:5;padding:10px max(18px, env(safe-area-inset-right)) max(10px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));border-top:1px solid var(--border);background:#0a0e14;margin:0;position:fixed;bottom:0;left:0;right:0}.setup-actions .start{min-height:50px}.action-note{margin-top:5px;font-size:.65rem}.set-card{padding:16px}.set-card h3{margin-bottom:8px;font-size:.68rem}.result-exercise{font-size:1.05rem}.set-count>strong{font-size:2.9rem}.set-headline{padding:10px;font-size:.95rem}.set-headline .muted{font-size:.75rem}.rep-chip{flex-basis:74px;padding:6px 4px}.attempt{padding:10px}.step{font-size:.72rem}}@media (width>=720px){.setup{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:0 28px;display:grid}.exercise-picker{grid-column:1/-1}.setup-head{grid-area:2/1/span 4}.setup-actions{grid-area:5/2}.setup>.status{grid-area:6/2}.setup .options{grid-area:2/2;margin-top:0}.setup-voice{grid-area:3/2}.setup-figure{flex-basis:100px}.setup-figure .illustration{width:100px}.hud-count{font-size:clamp(4rem,9vw,7rem)}.hud-cue{max-width:680px}}@media (height<=520px) and (orientation:landscape){.phase-live{padding:8px max(12px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));grid-template-rows:minmax(140px,1fr) auto}.phase-live .topbar,.phase-live .live-evidence,.live-hint{display:none}.hud{gap:6px;padding:10px}.hud-context{font-size:.62rem}.hud-context>span:first-child,.tracking-badge{padding:5px 8px}.hud-top{flex:1}.count-pod{min-width:100px;padding:8px 12px}.hud-count{font-size:3.5rem}.hud-bottom{width:55%;position:absolute;bottom:10px;right:10px}.hud-cue{padding:10px 12px}.hud-cue .hud-cue-main{font-size:1.45rem}.hud-rep{display:none}.live-bar .voice{flex-wrap:nowrap}.voice-compact p{flex-basis:auto}.setup-head{grid-column:1}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}.phase-results .setup-actions{background:0 0;border:0;margin:14px 0;padding:0;position:static}@media (height<=520px) and (orientation:landscape){.phase-prepare .setup-actions{z-index:5;border-top:1px solid var(--border);background:var(--bg);margin:0;padding:8px 18px;position:fixed;bottom:0;left:0;right:0}.phase-prepare{padding-bottom:110px}}.rep-chip-target{border-color:#85652c}.rep-chip-target small{color:var(--warn)}@media (width>=720px){.set-card-latest{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:start;column-gap:24px;display:grid}.set-card-latest>*{grid-column:1;min-width:0}.set-card-latest>h3{grid-column:1/-1}.set-card-latest>.attempt-list{grid-area:2/2/span 10;margin-top:0}}.modes,.segmented,.seg span{min-width:0}.seg{flex-wrap:wrap}.tools-link{overflow-wrap:anywhere}.hud-top{flex-wrap:wrap}.hud-phase,.voice-switch{max-width:100%}@media (width<=380px){.live-actions{flex-wrap:wrap}.live-actions .voice{flex:120px}button.primary.finish{overflow-wrap:anywhere;flex:160px}}
