:root{--bg: #f7f8fa;--panel: #ffffff;--line: #e2e6ec;--ink: #1a1f26;--muted: #68727f;--accent: #1f8f6b;--on-accent: #ffffff;--warn: #b3701a;--shadow: 0 1px 2px rgba(16, 24, 40, .06);color-scheme:light}:root[data-theme=dark]{--bg: #12161c;--panel: #1b212a;--line: #2b3440;--ink: #eef2f6;--muted: #93a1b1;--accent: #7ddcbe;--on-accent: #10231d;--warn: #f0b866;--shadow: none;color-scheme:dark}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #12161c;--panel: #1b212a;--line: #2b3440;--ink: #eef2f6;--muted: #93a1b1;--accent: #7ddcbe;--on-accent: #10231d;--warn: #f0b866;--shadow: none;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}.wrap{max-width:560px;margin:0 auto;padding:28px 20px 56px;display:flex;flex-direction:column;gap:16px}h1{font-size:28px;line-height:1.2;margin:4px 0;letter-spacing:-.01em}h2{font-size:20px;margin:4px 0}.section{margin-top:22px;color:var(--muted);font-size:14px;text-transform:uppercase;letter-spacing:.08em}.muted{color:var(--muted);margin:0}.small{font-size:14px}button{font:inherit;border-radius:12px;border:1px solid var(--line);background:var(--panel);color:var(--ink);padding:14px 16px;cursor:pointer;transition:transform .06s ease,background .15s ease}button:active{transform:scale(.985)}.primary{background:var(--accent);color:var(--on-accent);border-color:transparent;font-weight:650}.primary.big{padding:18px;font-size:18px}.ghost{background:transparent}.back{align-self:flex-start;background:transparent;border:none;color:var(--muted);padding:4px 0}.linky{background:none;border:none;color:var(--accent);padding:0;text-decoration:underline}.filebtn{display:block;text-align:center;padding:18px;border-radius:12px;background:var(--accent);color:var(--on-accent);font-weight:650;cursor:pointer}.filebtn input{display:none}.fineprint{color:var(--muted);font-size:13px;margin-top:20px;border-top:1px solid var(--line);padding-top:14px}.gaps{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.gaps button{width:100%;display:grid;grid-template-columns:auto auto 1fr;gap:12px;align-items:baseline;text-align:left}.time{font-variant-numeric:tabular-nums;font-weight:650}.len{color:var(--accent);font-size:14px}.ctx{color:var(--muted);font-size:14px;justify-self:end}.state-row{display:flex;gap:18px;flex-wrap:wrap}.chooser{flex:1 1 200px}.label{color:var(--muted);font-size:13px;margin:0 0 6px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{padding:9px 13px;font-size:14px;border-radius:999px}.chip.on{background:var(--accent);color:var(--on-accent);border-color:transparent;font-weight:600}.sore{margin-top:4px}.plan{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:10px}.plan li{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px 16px;box-shadow:var(--shadow)}.plan-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.dose{color:var(--accent);font-size:14px;white-space:nowrap}.reason{color:var(--muted);font-size:14px;margin:6px 0 0}.tag{display:inline-block;margin-top:8px;font-size:12px;color:var(--accent);border:1px solid var(--line);border-radius:999px;padding:3px 9px}.coach{display:flex;flex-direction:column;gap:14px}.coach-head h2{margin:0;font-size:26px}.cues{display:flex;gap:10px;margin:6px 0 0}.cues span{background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:5px 12px;font-size:14px;color:var(--muted)}.stage{position:relative;aspect-ratio:4 / 3;background:#000;border-radius:16px;overflow:hidden;border:1px solid var(--line)}.cam,.overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.cam{object-fit:cover;transform:scaleX(-1)}.stage-cover{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:16px;background:color-mix(in srgb,var(--bg) 92%,transparent);text-align:center;overflow-y:auto}.stage-cover p{font-size:14px}.stage-cover button{padding:11px 16px}.stage-cover p{color:var(--muted);margin:0}.readout{display:flex;align-items:center;gap:16px}.count{font-size:40px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1;white-space:nowrap;flex:0 0 auto}.count span{font-size:20px;color:var(--muted);font-weight:500}.feedback{margin:0;font-size:17px}.feedback.unsure{color:var(--warn)}.stop-if{color:var(--muted);font-size:14px;margin:0;border-left:2px solid var(--warn);padding-left:12px}.actions{display:flex;gap:10px}.actions button{flex:1}.progress{text-align:center;color:var(--muted);font-size:14px;margin:14px 0 0}.done{justify-content:center;min-height:60vh}.diagram{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;max-width:340px;margin-bottom:4px}.diagram{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px 8px;max-width:none;margin:0}.diagram figure{margin:0;flex:0 0 84px;text-align:center}.diagram svg{width:84px;height:104px;display:block}.diagram figcaption{color:var(--muted);font-size:12px;margin-top:2px}.diagram .arrow{flex:0 0 34px}.diagram .arrow svg{width:34px;height:20px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.theme-toggle{background:transparent;border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:7px 12px;font-size:13px;line-height:1}.theme-toggle:hover{color:var(--ink)}.alone{margin:20px 0 0}.alone .chips{margin-top:6px}.alone-hint{color:var(--muted);font-size:13px;margin:8px 0 0}.camctl{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.camctl select.chip{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:999px;padding:9px 13px;font:inherit;font-size:14px;max-width:190px}.pointmap{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px 16px;box-shadow:var(--shadow)}.pointmap svg{width:150px;height:165px;display:block;margin:0 auto 6px}.pointmap .spots{margin:0;padding-left:20px;color:var(--muted);font-size:14px;display:flex;flex-direction:column;gap:3px}.pointmap .spot-note{color:var(--muted);font-size:13px;margin:10px 0 0;border-left:2px solid var(--warn);padding-left:10px}.fig3d{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:8px 8px 4px;box-shadow:var(--shadow)}.fig3d-canvas{width:100%;height:290px;cursor:grab;touch-action:none}.fig3d-canvas:active{cursor:grabbing}.fig3d-canvas canvas{display:block;margin:0 auto}.fig3d-hint{color:var(--muted);font-size:12px;text-align:center;margin:0 0 6px}.fig3d-loading{height:290px;display:grid;place-items:center;color:var(--muted);font-size:14px}.no-check{color:var(--muted);font-size:15px;margin:14px 0 0}.stage-cover .setup{color:var(--ink);font-size:15px;max-width:30ch}.readout-meta{display:flex;gap:12px;align-items:baseline;color:var(--muted);font-size:13px;margin:0 0 4px}.readout-meta span:first-child{font-variant-numeric:tabular-nums;font-weight:650;color:var(--accent)}.phoneqr{display:flex;gap:14px;align-items:flex-start;margin-top:24px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px;box-shadow:var(--shadow)}.phoneqr img{border-radius:6px;flex:0 0 auto;background:#fff;padding:4px}.phoneqr-title{margin:2px 0 4px;font-weight:650;font-size:15px}.phoneqr-note{margin:0;color:var(--muted);font-size:13px;line-height:1.5}.readout-meta .warn{color:var(--warn);font-weight:650}.targetpreview{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px 14px;box-shadow:var(--shadow)}.targetpreview svg{width:100%;max-width:300px;display:block;margin:0 auto}.targetpreview-note{color:var(--muted);font-size:13px;margin:8px 0 0;line-height:1.5}.targetpreview-gate{color:var(--ink);font-size:13px;margin:8px 0 0;line-height:1.5;border-left:2px solid var(--accent);padding-left:10px}.field{display:block;margin-top:20px}.field .label{display:block}.field-row{display:flex;align-items:center;gap:14px;margin-top:8px}.field-row input[type=range]{flex:1;accent-color:var(--accent);min-width:0}.field-row input[type=range]:disabled{opacity:.45}.field-row output{font-variant-numeric:tabular-nums;font-weight:650;font-size:15px;min-width:8ch;text-align:right;color:var(--ink)}.field .chips{margin-top:10px}.summary{margin:22px 0 0;font-size:17px;font-weight:650}.summary.warn{color:var(--warn);font-size:14px;font-weight:400;margin-top:8px}
