.uplot,.uplot *,.uplot *:before,.uplot *:after{box-sizing:border-box}.uplot{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5;width:min-content}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{position:relative;user-select:none}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{display:block;position:relative;width:100%;height:100%}.u-axis{position:absolute}.u-legend{font-size:14px;margin:auto;text-align:center}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{background:#00000012;position:absolute;pointer-events:none}.u-cursor-x,.u-cursor-y{position:absolute;left:0;top:0;pointer-events:none;will-change:transform}.u-hz .u-cursor-x,.u-vt .u-cursor-y{height:100%;border-right:1px dashed #607D8B}.u-hz .u-cursor-y,.u-vt .u-cursor-x{width:100%;border-bottom:1px dashed #607D8B}.u-cursor-pt{position:absolute;top:0;left:0;border-radius:50%;border:0 solid;pointer-events:none;will-change:transform;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}:root{--bg: #f0f0f0;--surface: #ffffff;--surface-2: #e6e6e6;--text: #000000;--muted: #565656;--border: #a0a0a0;--border-strong: #7a7a7a;--accent: #0078d7;--accent-text: #ffffff;--hover: #e5f1fb;--focus: #005a9e;--ok: #166534;--warn: #7a4100;--bad: #a80000;--ok-bg: #dff3e3;--warn-bg: #fff4ce;--bad-bg: #fde7e9;--plan: #0000ff;--mount: #b000b0;--chute: #d40000;--info: #1e6fd0;--btn-bg: #e1e1e1;--btn-border: #adadad;--btn-active: #cce4f7;--btn-off-text: #6d6d6d;--btn-off-bg: #f0f0f0;--btn-off-border: #cfcfcf;--btn-pressed: #c9c9c9;--card-border: #c8c8c8;--menu-hover: #cce8ff;--menu-hover-border: #99d1ff;--popup-bg: #f2f2f2;--popup-hover: #91c9f7;--shadow: rgba(0, 0, 0, .3);--scrim: rgba(0, 0, 0, .35);--overlay-bg: rgba(255, 255, 255, .82);--result-ink: #0000b3;--ruler-line: #555;--ruler-ink: #333;--part-fill: #fff;--part-selected: #dbe8ff;--mount-fill: #9a9a9a;--marker-ground: #fff;--tile-bg: #f7f7f7;--tile-border: #b5b5b5;--window-min: 1200px;--radius: 2px;--gap: 4px;color-scheme:light;font-family:Segoe UI,Tahoma,Noto Sans,system-ui,sans-serif;font-size:12px;line-height:1.35}:root[data-theme=dark]{--bg: #3c3f41;--surface: #45494a;--surface-2: #4e5254;--text: #e4e6e7;--muted: #a7acaf;--border: #5d6264;--border-strong: #7d8386;--accent: #3a6ea5;--accent-text: #ffffff;--hover: #54595c;--focus: #8ab8f5;--ok: #86d99a;--warn: #f0c36a;--bad: #ff9a92;--ok-bg: #243a2b;--warn-bg: #44391c;--bad-bg: #4b2b2b;--plan: #7fb0ff;--mount: #e58cff;--chute: #ff8080;--info: #6aa8ff;--btn-bg: #55595b;--btn-border: #747a7d;--btn-active: #2f5b8f;--btn-off-text: #868b8e;--btn-off-bg: #424648;--btn-off-border: #55595b;--btn-pressed: #6c7174;--card-border: #5d6264;--menu-hover: #4d6f94;--menu-hover-border: #5d84ad;--popup-bg: #45494a;--popup-hover: #3a6ea5;--shadow: rgba(0, 0, 0, .55);--scrim: rgba(0, 0, 0, .55);--overlay-bg: rgba(60, 63, 65, .82);--result-ink: #8ab8f5;--ruler-line: #a9aeb1;--ruler-ink: #d2d5d7;--part-fill: #3d4143;--part-selected: #36557c;--mount-fill: #868b8e;--marker-ground: #d9dcde;--tile-bg: #474b4d;--tile-border: #62676a;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}html{overflow:auto}body{margin:0;background:var(--bg);color:var(--text)}h1,h2,h3{line-height:1.25;margin:0 0 4px;font-size:1rem;font-weight:600}h3{margin-top:8px}p{margin:3px 0}code{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:.95em;background:var(--surface-2);padding:0 3px}:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.skip-link{position:absolute;left:8px;top:-48px;background:var(--accent);color:var(--accent-text);padding:4px 8px;z-index:50}.skip-link:focus{top:8px}.window{min-width:var(--window-min);min-height:640px;height:100%;display:grid;grid-template-rows:auto auto auto auto minmax(0,1fr) auto}.titlebar{display:flex;align-items:center;height:28px;padding:0 8px;background:var(--surface)}.titlebar h1{margin:0;font-weight:400}.titlebar__name{color:var(--muted)}.menubar{display:flex;padding:0 2px;background:var(--bg);position:relative;z-index:30}.menubar__menu{position:relative}.menubar__trigger{min-height:22px;padding:1px 8px;border:1px solid transparent;background:transparent}.menubar__trigger:hover:not(:disabled),.menubar__trigger[aria-expanded=true]{background:var(--menu-hover);border-color:var(--menu-hover-border)}.menubar__popup{position:absolute;left:0;top:100%;min-width:240px;padding:2px;background:var(--popup-bg);border:1px solid var(--border);box-shadow:2px 3px 4px var(--shadow)}.menubar__popup button{display:flex;justify-content:space-between;gap:24px;width:100%;min-height:24px;padding:2px 24px 2px 12px;border:1px solid transparent;background:transparent;text-align:left}.menubar__popup button:hover:not(:disabled),.menubar__popup button:focus-visible{background:var(--popup-hover);border-color:var(--popup-hover)}.menubar__hint{color:var(--muted)}.tabbar{display:flex;justify-content:space-between;align-items:flex-end;padding:3px 6px 0;border-bottom:1px solid var(--border)}.tabbar [role=tablist]{display:flex}.tabbar [role=tab]{min-height:24px;padding:2px 10px;border:1px solid var(--border);border-bottom:0;border-radius:0;background:var(--surface-2);margin-right:-1px}.tabbar [role=tab][aria-selected=true]{background:var(--surface);position:relative;top:1px;padding-top:3px;box-shadow:inset 0 2px 0 var(--accent)}.units{display:flex;gap:12px;margin:0}.units label{display:inline-flex;align-items:center;gap:4px;min-height:24px}main{min-height:0;overflow:auto}main:focus{outline:none}.statusbar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:0 24px;padding:2px 8px;border-top:1px solid var(--border);font-size:11px;color:var(--muted)}.statusbar p{margin:0}.split{height:100%;display:grid;grid-template-rows:minmax(0,1fr) auto minmax(0,1fr);padding:var(--gap);min-height:0}.split__top{min-height:0;min-width:0;overflow:auto}.split__bottom{min-height:0;min-width:0;overflow:hidden}.split__bar{height:7px;margin:1px 0;background:var(--surface-2);border-top:1px solid var(--border);border-bottom:1px solid var(--border);cursor:row-resize;touch-action:none}.split__bar:hover,.split__bar:focus-visible{background:var(--hover)}.split__bottom{display:grid}.design__top{height:100%;display:grid;grid-template-columns:minmax(220px,300px) 150px minmax(0,1fr);gap:var(--gap);min-height:0}.region{min-height:0;min-width:0;background:var(--surface);border:1px solid var(--border-strong);overflow:auto}.pad{padding:6px}.component-list{list-style:none;margin:0;padding:2px 0}.component-list__root{padding:1px 6px}.component-list__stage{padding:1px 6px 1px 14px}.component-list__stack{padding-left:30px}.component-list__child{padding-left:46px}.component-list__item{display:flex;align-items:center;gap:4px;width:100%;min-height:20px;padding:0 4px;border:1px solid transparent;border-radius:0;background:transparent;text-align:left}.component-list__item:hover:not(.is-active){background:var(--hover)}.component-list__item.is-active{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.component-list__item:focus-visible{outline-offset:-2px}.component-list__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.component-list__kind{color:var(--muted);white-space:nowrap}.is-active .component-list__kind{color:inherit}.badge{display:inline-block;min-width:1.6em;padding:0 4px;text-align:center;font-weight:700}.badge--error{background:var(--bad-bg);color:var(--bad);border:1px solid var(--bad)}.actions{display:flex;flex-direction:column;gap:8px;padding:8px 4px 0}.palette{margin:0;min-width:0;min-height:0;overflow:auto;border:1px solid var(--border);padding:2px 10px 8px}.palette>legend{padding:0 4px}.palette__group{margin:4px 0 0}.palette__title{margin:6px 0 4px;font-size:12px;font-weight:400;color:var(--muted)}.palette__tiles{display:flex;flex-wrap:wrap;gap:6px}.tile{display:grid;grid-template-rows:32px auto;justify-items:center;align-content:start;gap:4px;width:92px;min-height:66px;padding:6px 4px 4px;border:1px solid var(--tile-border);border-radius:3px;background:var(--tile-bg);color:var(--text);font-size:11px;line-height:1.15;text-align:center}.tile span{overflow-wrap:anywhere}.tile:hover:not(:disabled){background:var(--hover);border-color:var(--accent)}.tile:disabled{background:transparent;border-color:var(--btn-off-border);color:var(--btn-off-text);opacity:.62}.ico{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round;overflow:visible}.ico .fill{fill:currentColor;fill-opacity:.22}.ico--lens{stroke-width:1.6}.design-view{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0;min-width:0}.viewbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:4px 14px;padding:6px 4px}.viewbar__group{display:grid;gap:3px}.viewbar__group--end{margin-left:auto;min-width:260px}.viewbar__label,.viewbar label{color:var(--muted);font-size:11px;line-height:1.2}.viewbar__row{display:flex;align-items:center;gap:6px}.viewbar select{min-height:24px;padding:1px 4px;border:1px solid var(--btn-border);background:var(--surface);color:var(--text)}.viewbar__view{min-width:136px}.viewbar__motor{width:100%}.viewbar__sep{align-self:stretch;width:1px;margin:0 2px;background:var(--border)}.viewbar .iconbtn{display:inline-grid;place-items:center;min-width:42px;padding:2px 6px}.viewbar .stagebtn[aria-pressed=true]{min-width:78px;background:var(--btn-pressed);border-color:var(--btn-border);font-weight:600}.viewbar__check{display:inline-flex;align-items:center;gap:6px;min-height:24px;font-size:12px;color:var(--text)}.viewbar .viewbar__check{color:var(--text);font-size:12px}.rollctl{position:absolute;top:2px;left:2px;bottom:6px;width:36px;z-index:2;display:grid;grid-template-rows:auto 1fr;justify-items:center;gap:6px}.rollctl input[type=text]{width:34px;min-height:20px;padding:0 2px;text-align:center;border:1px solid var(--border-strong);background:var(--surface);color:var(--text)}.rollctl input[type=range]{writing-mode:vertical-lr;width:16px;min-height:0;height:100%;margin:0;accent-color:var(--accent)}.drawing{position:relative;min-height:0;background:var(--surface);border:1px solid var(--border-strong)}.rocket-view__frame,.rocket-view__scroll{position:absolute;inset:0}.rocket-view__scroll{overflow:auto}.rocket-view{margin:0}.rocket-view svg{display:block}.drawing__text{position:absolute;margin:0;padding:1px 4px;font-size:11px;line-height:1.3;pointer-events:none;background:var(--overlay-bg)}.drawing__text--tl{top:26px;left:88px}.drawing__text--tr{top:26px;right:22px;text-align:right}.drawing__text--bl{bottom:10px;left:88px;color:var(--result-ink)}.drawing__text--bl div{display:flex;gap:6px}.drawing__text--bl dt{min-width:98px;font-weight:600}.drawing__text--bl dd{margin:0}.legend{display:flex;align-items:center;justify-content:flex-end;gap:4px}.ruler line{stroke:var(--ruler-line);stroke-width:1}.ruler text{font-size:10px;fill:var(--ruler-ink)}.ruler .ruler__unit{font-weight:700}.rocket-view .part{fill:var(--part-fill);stroke:var(--plan);stroke-width:1;vector-effect:non-scaling-stroke;pointer-events:all;cursor:pointer}.rocket-view .part polygon{fill:var(--part-fill);stroke:var(--plan);stroke-width:1;vector-effect:non-scaling-stroke}.rocket-view .part--mount{fill:var(--mount-fill);stroke:var(--mount)}.rocket-view .part--chute,.rocket-view .part--mass{fill:none;stroke:var(--chute);stroke-dasharray:5 3}.rocket-view .part--crown,.rocket-view .part--shoulder,.rocket-view .part--lug{fill:var(--mount-fill);stroke:var(--mount);vector-effect:non-scaling-stroke}.rocket-view .part--cord rect{fill:transparent;stroke:none}.rocket-view .part--cord polyline{fill:none;stroke:var(--chute);vector-effect:non-scaling-stroke}.rocket-view .is-selected,.rocket-view .is-selected polygon{stroke-width:2.5}.rocket-view .part--nose-cone.is-selected,.rocket-view .part--body-tube.is-selected,.rocket-view .part--transition.is-selected,.rocket-view .part--fin.is-selected polygon{fill:var(--part-selected)}.marker--cg circle,.legend__cg circle{fill:var(--marker-ground);stroke:var(--plan);stroke-width:1.5}.marker--cg path,.legend__cg path{fill:var(--plan)}.marker--cp circle,.legend__cp circle{fill:#e00000;stroke:#7a0000;stroke-width:1}.panel{background:var(--bg);border:1px solid var(--border);padding:6px 8px;min-width:0}.muted{color:var(--muted)}.small{font-size:11px}button,input,select{font:inherit;color:inherit}button{min-height:24px;padding:2px 10px;border:1px solid var(--btn-border);border-radius:var(--radius);background:var(--btn-bg);cursor:pointer}button:hover:not(:disabled){background:var(--hover);border-color:var(--accent)}button:active:not(:disabled){background:var(--btn-active)}button:disabled{color:var(--btn-off-text);background:var(--btn-off-bg);border-color:var(--btn-off-border);cursor:default}button.primary{border-color:var(--accent);border-width:2px;font-weight:600}button.danger{color:var(--bad)}.toolbar{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}fieldset{border:1px solid var(--border);margin:6px 0;padding:2px 8px 6px}legend{padding:0 4px;font-weight:600}.field{display:grid;gap:1px;margin:5px 0}.field>*{min-width:0}.field label{overflow-wrap:anywhere}.field input[type=text],.field input[type=number],.field select{min-height:24px;padding:1px 4px;border:1px solid var(--border-strong);border-radius:0;background:var(--surface);width:100%;min-width:0}.field--check{grid-template-columns:auto 1fr;align-items:center;column-gap:6px}.field--check input{width:14px;height:14px}.field--check .field__hint{grid-column:2}.field__hint{font-size:11px;color:var(--muted)}.field__error{color:var(--bad)}.field--invalid input,.field--invalid select{border-color:var(--bad);border-width:2px}.stats,.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:3px;margin:0}.stats>div,.cards>div{background:var(--surface);border:1px solid var(--card-border);padding:2px 6px}.stats dt,.cards dt{font-size:11px;color:var(--muted)}.stats dd,.cards dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums}.stats__margin--ok{background:var(--ok-bg)!important}.stats__margin--warn{background:var(--warn-bg)!important}.stats__margin--bad{background:var(--bad-bg)!important}.issue-list{margin:4px 0;padding-left:16px}.issue-list--error{color:var(--bad)}.issue-list--warning{color:var(--warn)}.issue-box{border:1px solid var(--bad);background:var(--bad-bg);padding:4px 8px;margin:6px 0}.notices{padding:0 6px}.notice{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:4px 0;padding:3px 8px;border:1px solid var(--border)}.notice button{min-height:20px;min-width:24px;padding:0 6px}.notice--info{background:var(--surface)}.notice--warning{background:var(--warn-bg);border-color:var(--warn)}.notice--error{background:var(--bad-bg);border-color:var(--bad)}.progress{display:flex;align-items:center;gap:8px;min-height:20px}progress{width:120px}.import-report{position:fixed;top:60px;left:8px;z-index:40;width:min(560px,calc(100vw - 16px));max-height:60vh;overflow:auto;padding:6px 10px;background:var(--surface);border:1px solid var(--border-strong);box-shadow:2px 3px 6px var(--shadow)}.motor-list{padding-left:16px;margin:4px 0}.status{font-weight:600;padding:3px 8px}.status--ok{background:var(--ok-bg);color:var(--ok)}.status--warn{background:var(--warn-bg);color:var(--warn)}table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}th,td{text-align:left;padding:2px 6px;border-bottom:1px solid var(--border)}.events{max-width:640px}.charts{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.chart{margin:0;min-width:0}.chart figcaption{margin-bottom:4px}.chart__plot{min-height:250px;width:100%;overflow:hidden}.chart .u-legend{font-size:11px;color:var(--text)}.chart .uplot .u-label,.chart .uplot .u-title{color:var(--text)}.chart details{margin-top:4px;overflow-x:auto}.about ul{padding-left:16px}.about{max-width:820px}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}.panelwrap{height:100%}.tabpage{height:100%;display:flex;flex-direction:column;gap:var(--gap);padding:var(--gap) 6px;min-height:0}.tabpage>p{margin:0}.tabpage .toolbar{margin:0;align-items:center}.toolbar__gap,.region--table{flex:1}.grid{width:100%;border-collapse:collapse}.grid th,.grid td{padding:1px 8px;border-bottom:1px solid var(--surface-2);text-align:left;font-weight:400}.grid thead th{position:sticky;top:0;background:var(--surface-2);border-bottom:1px solid var(--border);font-weight:600}.grid tbody tr:hover:not(.is-active){background:var(--hover)}.grid tr.is-active{background:var(--accent);color:var(--accent-text)}.grid__select{min-height:20px;padding:0;border:0;background:transparent;color:inherit;text-align:left;font-weight:600}.grid__select:hover:not(:disabled){background:transparent}.dialog{padding:0;border:1px solid var(--border-strong);background:var(--bg);color:var(--text);box-shadow:2px 4px 10px var(--shadow);max-width:calc(100vw - 16px)}.dialog--modal{width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 48px)}.dialog--modal.dialog--wide{width:min(900px,calc(100vw - 32px))}.dialog--modal[open]{display:flex;flex-direction:column}.dialog--modal::backdrop{background:var(--scrim)}.dialog--floating{position:fixed;inset:64px 16px auto auto;margin:0;width:340px;max-height:min(70vh,640px);z-index:30}.dialog--floating[open]{display:flex;flex-direction:column}.dialog__title{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:28px;padding:0 2px 0 8px;background:var(--accent);color:var(--accent-text);user-select:none}.dialog__title h2{margin:0;font-size:12px;font-weight:600}.dialog__title--drag{cursor:move;touch-action:none}.dialog__title button{min-width:28px;min-height:24px;padding:0;border:0;background:transparent;color:inherit;font-size:16px;line-height:1}.dialog__title button:hover:not(:disabled){background:#c42b1c;color:#fff}.dialog__body{min-height:0;overflow:auto;padding:6px 8px 8px}.dialog__body .panel{margin-bottom:var(--gap)}.subtabs{display:flex;margin-top:4px;border-bottom:1px solid var(--border)}.subtabs [role=tab]{min-height:24px;padding:2px 10px;border:1px solid var(--border);border-bottom:0;border-radius:0;background:var(--surface-2);margin-right:-1px}.subtabs [role=tab][aria-selected=true]{background:var(--surface);box-shadow:inset 0 2px 0 var(--accent)}.results__panel{padding:6px 0 0}.results .status{margin:0 0 4px}.bigbar{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;padding:6px 0 4px}.bigbar button{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:3px 14px}.ico--tool{flex:none}.ico .tone-ok{stroke:var(--ok)}.ico .tone-bad{stroke:var(--bad)}.ico .tone-warn{stroke:var(--warn)}.ico .tone-info{stroke:var(--info)}.ico .fill.tone-ok{fill:var(--ok);fill-opacity:.9}.ico .fill.tone-warn{fill:#f2c230;fill-opacity:.95;stroke:#b8901a}.ico .fill.tone-info{fill:var(--info);fill-opacity:.85}.subtabs [role=tab]:disabled{color:var(--btn-off-text);background:transparent;cursor:default}.cfgtab{gap:6px}.cfgtab__panel{flex:1;min-height:0;display:grid;grid-template-columns:minmax(180px,230px) minmax(0,1fr);gap:10px;padding-top:6px}.box{min-width:0;min-height:0;margin:0;padding:4px 8px 8px;border:1px solid var(--border)}.box>legend{padding:0 4px;font-weight:700}.box--configs{display:flex;flex-direction:column;gap:6px}.box--wide{grid-column:1 / -1;display:flex;flex-direction:column;gap:6px}.mountlist{list-style:none;margin:0;padding:0;min-height:140px;background:var(--surface);border:1px solid var(--border-strong)}.mountlist li{padding:1px 6px;border-bottom:1px solid var(--surface-2)}.mountlist label{display:flex;align-items:center;gap:8px;min-height:20px}.grid--configs td,.grid--configs th{padding:0 4px}.grid__select--cell{display:flex;gap:6px;width:100%;min-height:22px;font-weight:400;padding:0 4px}.chip{padding:0 6px;border:1px solid transparent}.is-cell .chip,.grid tr.is-active .grid__select--cell .chip{border-color:currentColor}.chip--auto{opacity:.85}.cfg-actions{display:flex;justify-content:flex-end;gap:8px}.grid--sims td,.grid--sims th{white-space:nowrap;padding:0 8px}.grid--sims thead th{text-align:center;font-weight:400;font-size:11px}.grid__status{width:30px;text-align:center}.grid__status .ico{vertical-align:middle}.region--table{overflow:auto}.region--picker{max-height:220px;flex:none}.picker{display:grid;gap:6px}.picker__row{display:flex;align-items:flex-end;gap:10px}.picker__row .field{min-width:180px;margin:0}.rename{min-width:340px}.grid--sims .grid__select,.grid--configs th .grid__select{font-weight:400}
