:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{color:#e6e6e6;background:#14161a;margin:0}h1{margin:0 0 .25rem;font-size:1.25rem}.app{max-width:1320px;margin:0 auto;padding:1rem 1.25rem 3rem}.subtitle{color:#8b93a1;margin:0 0 1rem;font-size:.9rem}.panels{flex-wrap:wrap;align-items:flex-start;gap:4px;display:flex}.panels canvas{background:#000;border:1px solid #2a2f38;max-width:100%;height:auto}.status{background:#1c2027;border:1px solid #2a2f38;border-radius:6px;margin-top:.75rem;padding:.6rem .8rem;font-family:ui-monospace,monospace;font-size:.9rem}.status.ok{border-color:#1f7a1f}.status.warn{border-color:#7a5a1f}.status.bad{border-color:#7a1f1f}.controls{flex-wrap:wrap;gap:.5rem;margin:.75rem 0;display:flex}button{color:#e6e6e6;cursor:pointer;background:#262b33;border:1px solid #3a414c;border-radius:6px;padding:.45rem .9rem;font-size:.9rem}button:hover{background:#2f353f}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:#1f6feb;border-color:#1f6feb}.layout{grid-template-columns:1fr 320px;gap:1.25rem;display:grid}@media (width<=980px){.layout{grid-template-columns:1fr}}.sidebar h2{margin:0 0 .5rem;font-size:.95rem}.params{grid-template-columns:1fr auto;align-items:center;gap:.35rem .6rem;font-size:.85rem;display:grid}.params input{color:#e6e6e6;background:#1c2027;border:1px solid #3a414c;border-radius:4px;width:5rem;padding:.2rem .4rem}pre.report{white-space:pre;background:#0f1114;border:1px solid #2a2f38;border-radius:6px;padding:.75rem;font-size:.78rem;overflow-x:auto}.hint{color:#8b93a1;font-size:.82rem;line-height:1.5}kbd{background:#262b33;border:1px solid #3a414c;border-bottom-width:2px;border-radius:4px;padding:0 .35rem;font-family:ui-monospace,monospace;font-size:.8rem}.tabs{border-bottom:1px solid #2a2f38;gap:.25rem;margin-bottom:.85rem;display:flex}.tabs button{color:#8b93a1;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;padding:.5rem .9rem}.tabs button.active{color:#e6e6e6;border-bottom-color:#1f6feb}.file-btn{cursor:pointer;background:#262b33;border:1px solid #3a414c;border-radius:6px;align-items:center;padding:.45rem .9rem;font-size:.9rem;display:inline-flex}.file-btn input{display:none}table.readout{border-collapse:collapse;width:100%;margin-top:.75rem;font-family:ui-monospace,monospace;font-size:.85rem}table.readout th,table.readout td{text-align:right;border-bottom:1px solid #23282f;padding:.35rem .6rem}table.readout th:first-child,table.readout td:first-child{text-align:left}table.readout th{color:#8b93a1;font-weight:600}table.readout td.cal{color:#4ade80}table.readout td.empty{text-align:center;color:#8b93a1;padding:1rem}.joints.svelte-1m6eun{max-width:760px}.connect-card.svelte-1m6eun,.capture.svelte-1m6eun,.results.svelte-1m6eun,.verify.svelte-1m6eun{background:#1c2027;border:1px solid #2a2f38;border-radius:8px;margin-bottom:1rem;padding:1rem 1.2rem}h2.svelte-1m6eun{margin:0 0 .5rem;font-size:1.05rem}.toolbar.svelte-1m6eun{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.pill.svelte-1m6eun{border:1px solid #2a2f38;border-radius:999px;padding:.25rem .6rem;font-size:.8rem}.pill.ok.svelte-1m6eun{color:#4ade80;border-color:#1f7a1f}.progress.svelte-1m6eun{color:#8b93a1;margin-bottom:.25rem;font-size:.85rem}.desc.svelte-1m6eun{color:#b8bfc9;margin:0 0 1rem}.dim.svelte-1m6eun{color:#8b93a1}.target.svelte-1m6eun{background:#0f1114;border:1px solid #2a2f38;border-radius:6px;margin-bottom:.9rem;padding:.8rem 1rem}.target-label.svelte-1m6eun{font-size:1rem}.target-angle.svelte-1m6eun{color:#ffd24a;margin-top:.25rem;font-family:ui-monospace,monospace;font-size:1.4rem}.live.svelte-1m6eun{margin-bottom:.9rem;font-family:ui-monospace,monospace}.live-val.svelte-1m6eun{color:#4ade80;margin-left:.4rem;font-size:1.3rem}.warn-text.svelte-1m6eun{color:#ffb454}.mini.svelte-1m6eun{padding:.2rem .6rem;font-size:.78rem}.file-btn.svelte-1m6eun{cursor:pointer;background:#262b33;border:1px solid #3a414c;border-radius:6px;align-items:center;padding:.45rem .9rem;font-size:.85rem;display:inline-flex}.file-btn.disabled.svelte-1m6eun{opacity:.5;cursor:not-allowed}.file-btn.svelte-1m6eun input:where(.svelte-1m6eun){display:none}tr.activerow.svelte-1m6eun{background:#1f6feb1f}tr.activerow.svelte-1m6eun td:where(.svelte-1m6eun){color:#7cc0ff}.jsliders.svelte-1m6eun{grid-template-columns:7rem 1fr 2.5rem 3.5rem;align-items:center;gap:.4rem .6rem;margin-top:.75rem;display:grid}.jsliders.svelte-1m6eun label:where(.svelte-1m6eun){color:#b8bfc9;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,monospace;font-size:.8rem;overflow:hidden}.jsliders.svelte-1m6eun .val:where(.svelte-1m6eun){text-align:right;font-family:ui-monospace,monospace;font-size:.85rem}.jsliders.svelte-1m6eun .tick:where(.svelte-1m6eun){color:#4ade80;text-align:right;font-family:ui-monospace,monospace;font-size:.78rem}.sim.svelte-np10xh{grid-template-columns:1fr 300px;align-items:start;gap:1.25rem;display:grid}@media (width<=980px){.sim.svelte-np10xh{grid-template-columns:1fr}}.viewer.svelte-np10xh{width:100%;position:relative}.viewer.svelte-np10xh canvas:where(.svelte-np10xh){border:1px solid #2a2f38;border-radius:8px;width:100%;display:block}.overlay.svelte-np10xh{color:#8b93a1;place-items:center;font-size:.95rem;display:grid;position:absolute;inset:0}.overlay.err.svelte-np10xh{color:#f87171;text-align:center;padding:1rem}h2.svelte-np10xh{margin:1rem 0 .5rem;font-size:.95rem}.modeswitch.svelte-np10xh{gap:.25rem;display:flex}.modeswitch.svelte-np10xh button:where(.svelte-np10xh){flex:1}.modeswitch.svelte-np10xh button.active:where(.svelte-np10xh){background:#1f6feb;border-color:#1f6feb}.sliders.svelte-np10xh{grid-template-columns:auto 1fr auto;align-items:center;gap:.4rem .6rem;display:grid}.sliders.svelte-np10xh label:where(.svelte-np10xh){color:#8b93a1;font-family:ui-monospace,monospace}.sliders.svelte-np10xh .val:where(.svelte-np10xh){text-align:right;width:3.5rem;font-family:ui-monospace,monospace;font-size:.85rem}.ikstatus.svelte-np10xh{margin-top:.6rem;font-family:ui-monospace,monospace;font-size:.85rem}.ikstatus.ok.svelte-np10xh{color:#4ade80}.ikstatus.bad.svelte-np10xh{color:#fbbf24}table.angles.svelte-np10xh{border-collapse:collapse;width:100%;margin-top:.75rem;font-family:ui-monospace,monospace;font-size:.82rem}table.angles.svelte-np10xh th:where(.svelte-np10xh),table.angles.svelte-np10xh td:where(.svelte-np10xh){text-align:right;border-bottom:1px solid #23282f;padding:.25rem .5rem}table.angles.svelte-np10xh th:where(.svelte-np10xh):first-child,table.angles.svelte-np10xh td:where(.svelte-np10xh):first-child{text-align:left;color:#8b93a1}.file-btn.svelte-np10xh{cursor:pointer;background:#262b33;border:1px solid #3a414c;border-radius:6px;align-items:center;padding:.45rem .9rem;font-size:.85rem;display:inline-flex}.file-btn.svelte-np10xh input:where(.svelte-np10xh){display:none}.pickrow.svelte-np10xh{align-items:center;gap:.5rem;margin:.6rem 0;display:flex}.pickrow.svelte-np10xh label:where(.svelte-np10xh){color:#8b93a1;font-size:.85rem}.pickrow.svelte-np10xh input[type=number]:where(.svelte-np10xh){color:#e6e6e6;background:#1c2027;border:1px solid #3a414c;border-radius:4px;width:4.5rem;padding:.25rem .4rem}.pickrow.svelte-np10xh select:where(.svelte-np10xh){color:#e6e6e6;background:#1c2027;border:1px solid #3a414c;border-radius:4px;flex:1;padding:.28rem .4rem}
