@layer lab-base{.vega-lead a{color:var(--accent);border-bottom:1px solid var(--accent-pale);font-weight:600;text-decoration:none}.vega-lead a:hover{color:var(--accent-press);border-bottom-color:var(--accent)}svg.plot{touch-action:none;width:100%;max-width:560px;height:auto;margin:0 auto;display:block}svg.plot.mini{max-width:230px}.plot .grid{stroke:var(--line);stroke-width:1px}.plot .axis{stroke:var(--line-strong);stroke-width:2px}.plot .arrow{fill:var(--line-strong)}.plot .tk{stroke:var(--line-strong);stroke-width:1.5px}.plot .tklbl{font-family:var(--mono);fill:var(--muted);text-anchor:middle;font-size:11px}.plot .tklbl.al{text-anchor:end}.plot .axname{font-family:var(--mono);fill:var(--muted);text-anchor:middle;font-size:12px;font-weight:600}.plot .curve{fill:none;stroke:var(--accent);stroke-width:2.6px;stroke-linejoin:round;stroke-linecap:round}.plot .curve.alt{stroke:var(--warn)}.plot .helper{stroke:var(--muted);stroke-width:1.6px;stroke-dasharray:5 4;fill:none}.plot .pt{fill:var(--accent-deep);stroke:var(--card);stroke-width:2px}.plot .pt.warn,.plot .pt.peak,.plot .pt.alt{fill:var(--warn)}.plot .pt.sym{fill:var(--accent-2)}.plot .obj{fill:var(--panel);stroke:var(--line-strong);stroke-width:2px}.plot .bar{fill:var(--accent-soft);fill-opacity:.55;stroke:var(--accent-press);stroke-width:1px;stroke-opacity:.6}.plot .fillarea{fill:var(--accent-soft);fill-opacity:.75;stroke:none}.plot .fillarea.neg{fill:var(--bad-soft);fill-opacity:.85}.plot .fillarea.hot{fill:var(--warn-soft);fill-opacity:.9}.plot .fillarea.cold{fill:var(--bad-soft);fill-opacity:.9}.plot .vec{fill:none;stroke:var(--accent-press);stroke-width:2.4px;stroke-linejoin:round;stroke-linecap:round}.plot .vec.f1{stroke:var(--accent)}.plot .vec.f2{stroke:var(--accent-press)}.plot .vec.f3{stroke:var(--warn)}.plot .vec.res{stroke:var(--accent-deep);stroke-width:3.2px}.plot .vec.acc{stroke:var(--bad);stroke-width:2.2px;stroke-dasharray:6 4}.vega-legend .sw.c1sw{background:var(--accent);border-color:var(--accent)}.vega-legend .sw.c2sw{background:var(--accent-2);border-color:var(--accent-2)}.vega-legend .sw.vecsw{background:var(--accent-press);border-color:var(--accent-press)}.vega-legend .sw.mutsw{background:var(--muted);border-color:var(--muted)}.vega-legend .sw.badsw{background:var(--bad);border-color:var(--bad)}.vega-legend .sw.warnsw{background:var(--warn);border-color:var(--warn)}.vega-legend .sw.deepsw{background:var(--accent-deep);border-color:var(--accent-deep)}.vega-legend .sw.oksw{background:var(--good);border-color:var(--good)}.vega-legend .sw.barsw{background:var(--accent-soft);border-color:var(--accent-press)}.vega-legend .sw.f1sw{background:var(--accent);border-color:var(--accent)}.vega-legend .sw.f2sw{background:var(--accent-press);border-color:var(--accent-press)}.vega-legend .sw.f3sw{background:var(--warn);border-color:var(--warn)}.vega-legend .sw.ressw{background:var(--accent-deep);border-color:var(--accent-deep)}.vega-legend .sw.accsw{background:var(--bad);border-color:var(--bad)}.vega-legend .sw.centrisw{background:var(--warn);border-color:var(--warn)}.vega-legend .sw.velsw{background:var(--accent-press);border-color:var(--accent-press)}.vega-legend .sw.gravsw{background:var(--ink-soft);border-color:var(--ink-soft)}.vega-legend .sw.coldsw{background:var(--bad);border-color:var(--bad);opacity:.7}.vega-legend .sw.oversw{background:var(--warn);border-color:var(--warn)}.vega-legend .sw.undersw{background:var(--bad);border-color:var(--bad)}.vega-legend .sw.o2sw{background:var(--warn);border-color:var(--warn)}.vega-legend .sw.fsw{background:var(--accent);border-color:var(--accent)}.vega-legend .sw.gsw{background:var(--warn);border-color:var(--warn)}.vega-legend .sw.frsw{background:var(--bad);border-color:var(--bad)}.vega-legend .sw.netsw{background:var(--accent-press);border-color:var(--accent-press)}.vega-legend .sw.pesw{background:var(--warn);border-color:var(--warn)}.vega-legend .sw.kesw{background:var(--accent);border-color:var(--accent)}.trackwrap{padding:10px 16px 4px}svg.track{width:100%;max-width:560px;height:auto;margin:0 auto;display:block}.track .rail{stroke:var(--line-strong);stroke-width:2px}.track .tick{stroke:var(--line);stroke-width:1px}.track .ticklbl{font-family:var(--mono);fill:var(--muted);text-anchor:middle;font-size:10.5px}.track .origin{fill:var(--muted)}.track .dot{fill:var(--accent);stroke:var(--card);stroke-width:2px}.track .dot.neg{fill:var(--warn)}.track .arrow{stroke:var(--accent-press);stroke-width:2.4px;fill:none}.track .arrowhead{fill:var(--accent-press)}.rulerwrap{flex-direction:column;align-items:center;gap:10px;padding:10px 16px;display:flex}svg.ruler{width:120px;height:420px;display:block}.ruler .body{fill:var(--panel);stroke:var(--line-strong);stroke-width:1.5px}.ruler .cm{stroke:var(--line-strong);stroke-width:1px}.ruler .mm{stroke:var(--line);stroke-width:.75px}.ruler .cmlbl{font-family:var(--mono);fill:var(--muted);text-anchor:start;font-size:9.5px}.ruler .grabline{stroke:var(--bad);stroke-width:2px;stroke-dasharray:4 3}.ruler .startline{stroke:var(--accent);stroke-width:2px}.rulerbtn{font-family:var(--display);font-weight:600}.gaugewrap{justify-content:center;align-items:center;gap:18px;padding:10px 16px;display:flex}svg.gauge{width:140px;height:320px;display:block}.gauge .body{fill:var(--panel);stroke:var(--line-strong);stroke-width:1.5px}.gauge .baseline{stroke:var(--muted);stroke-width:1.6px;stroke-dasharray:5 4}.gauge .fill{fill:var(--accent-soft)}.gauge .fill.over{fill:var(--warn);opacity:.55}.gauge .fill.under{fill:var(--bad);opacity:.4}.gauge .cap{stroke:var(--accent-deep);stroke-width:3px}.gauge .ticklbl{font-family:var(--mono);fill:var(--muted);text-anchor:end;font-size:10.5px}.gauge .mglbl{font-family:var(--mono);fill:var(--muted);text-anchor:start;font-size:10.5px}.tri-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:6px 12px;display:grid}.tri-grid .cell{flex-direction:column;align-items:center;gap:2px;display:flex}.panelcap{font-family:var(--mono);color:var(--muted);font-size:11px}svg.orbit{width:100%;max-width:420px;height:auto;margin:0 auto;display:block}.orbit .ring{fill:none;stroke:var(--line-strong);stroke-width:2px}.orbit .radius{stroke:var(--muted);stroke-width:1.5px;stroke-dasharray:5 4;fill:none}.orbit .centerdot{fill:var(--muted)}.orbit .dot{fill:var(--accent);stroke:var(--card);stroke-width:2px}.orbit .vec{fill:none;stroke-width:2.6px;stroke-linejoin:round;stroke-linecap:round}.orbit .vec.vel{stroke:var(--accent-press)}.orbit .vec.acc{stroke:var(--warn)}.orbit .lbl{font-family:var(--mono);fill:var(--muted);font-size:11.5px}svg.loop{width:100%;max-width:420px;height:auto;margin:0 auto;display:block}.loop .track{fill:none;stroke:var(--line-strong);stroke-width:2px;stroke-dasharray:3 5}.loop .ball{stroke:var(--card);stroke-width:2px}.loop .ball.ok{fill:var(--accent)}.loop .ball.fail{fill:var(--bad)}.loop .vec{fill:none;stroke-width:2.6px;stroke-linejoin:round;stroke-linecap:round}.loop .vec.grav{stroke:var(--ink-soft)}.loop .vec.normal.ok{stroke:var(--good)}.loop .vec.normal.fail{stroke:var(--bad)}.loop .lbl{font-family:var(--mono);fill:var(--muted);font-size:11.5px}.incline .ground{stroke:var(--line-strong);stroke-width:2px}.incline .surface{fill:var(--accent-pale);stroke:var(--line-strong);stroke-width:1.5px}.incline .rightangle{fill:none;stroke:var(--line);stroke-width:1.2px}.incline .block{fill:var(--panel);stroke:var(--line-strong);stroke-width:1.6px}.incline .vec{fill:none;stroke:var(--accent);stroke-width:2.4px;stroke-linecap:round}.incline polygon.vec{fill:var(--accent);stroke:none}.incline .warnvec{fill:none;stroke:var(--warn);stroke-width:2.4px;stroke-linecap:round}.incline polygon.warnvec{fill:var(--warn);stroke:none}.incline .badvec{fill:none;stroke:var(--bad);stroke-width:2.4px;stroke-linecap:round}.incline polygon.badvec{fill:var(--bad);stroke:none}.barchart .zeroline{stroke:var(--line-strong);stroke-width:1.5px}.barchart .bar{stroke:none}.barchart .bar.fsw{fill:var(--accent)}.barchart .bar.gsw{fill:var(--warn)}.barchart .bar.frsw{fill:var(--bad)}.barchart .bar.netsw{fill:var(--accent-press)}.barchart .barlbl{font-family:var(--body);fill:var(--muted);text-anchor:middle;font-size:11px}.barchart .barval{font-family:var(--mono);fill:var(--ink);text-anchor:middle;font-variant-numeric:tabular-nums;font-size:11px}.trackdiag .ground{stroke:var(--line-strong);stroke-width:2px}.trackdiag .h0line{stroke:var(--muted);stroke-width:1.4px;stroke-dasharray:5 4}.trackdiag .h0lbl{font-family:var(--mono);fill:var(--muted);font-size:11px}.trackdiag .trackpath{fill:none;stroke:var(--accent-press);stroke-width:2.8px;stroke-linejoin:round;stroke-linecap:round}.trackdiag .ball{fill:var(--accent);stroke:var(--card);stroke-width:2px}.trackdiag .ball.stopped{fill:var(--bad)}.stackbar .zeroline{stroke:var(--line-strong);stroke-width:1.5px}.stackbar .e0line{stroke:var(--muted);stroke-width:1.4px;stroke-dasharray:5 4}.stackbar .e0lbl{font-family:var(--body);fill:var(--muted);text-anchor:end;font-size:11px}.stackbar .stackseg{stroke:var(--card);stroke-width:1px}.stackbar .stackseg.pesw{fill:var(--warn)}.stackbar .stackseg.kesw{fill:var(--accent)}.stackbar .heatbrace{stroke:var(--bad);stroke-width:1.5px;stroke-dasharray:3 3}.stackbar .heatlbl{font-family:var(--body);fill:var(--bad);font-size:11px}svg.track2{width:100%;max-width:560px;height:auto;margin:0 auto;display:block}.track2 .rail{stroke:var(--line-strong);stroke-width:2px}.track2 .tick{stroke:var(--line);stroke-width:1px}.track2 .ticklbl{font-family:var(--mono);fill:var(--muted);text-anchor:middle;font-size:10.5px}.track2 .origin{fill:var(--muted)}.track2 .body{stroke:var(--card);stroke-width:2px}.track2 .body.o1{fill:var(--accent)}.track2 .body.o2{fill:var(--warn)}.track2 .lbl{font-family:var(--mono);fill:var(--muted);text-anchor:middle;font-size:11px}.track2 .varrow{stroke-width:2.4px;fill:none}.track2 .varrow.o1{stroke:var(--accent-press)}.track2 .varrow.o2{stroke:var(--bad)}.track2 .varrowhead.o1{fill:var(--accent-press)}.track2 .varrowhead.o2{fill:var(--bad)}.track2 .contactflash{fill:none;stroke:var(--accent-deep);stroke-width:2px;stroke-dasharray:3 3;opacity:.75}.planetwrap{padding:12px 16px 6px}svg.planets{width:100%;max-width:560px;height:auto;margin:0 auto;display:block}.planets .groundline{stroke:var(--line-strong);stroke-width:1.5px}.planets .body.earth{fill:var(--accent-pale);stroke:var(--accent);stroke-width:2px}.planets .body.target{fill:var(--accent-soft);stroke:var(--accent-press);stroke-width:2px}.planets .glabel{font-family:var(--display);fill:var(--ink);text-anchor:middle;font-size:13px;font-weight:600}.planets .garrow{stroke:var(--accent-press);stroke-width:3px}.planets .garrowhead{fill:var(--accent-press)}.planets .gvalue{font-family:var(--mono);fill:var(--muted);text-anchor:middle;font-size:12px}.plot .curve.drop{stroke:var(--bad);stroke-width:2px;stroke-dasharray:3 3}.plot .curve.ghost{stroke:var(--warn);stroke-width:2.2px;stroke-dasharray:6 5}.duo{flex-direction:column;gap:14px;display:flex}.duopanel{flex-direction:column;align-items:center;gap:3px;display:flex}.duopanel .panelcap{text-align:center}svg.atwood,svg.train{width:100%;max-width:560px;height:auto;margin:0 auto;display:block}.atwood .ceiling,.train .ground{stroke:var(--line-strong);stroke-width:2.5px}.atwood .hanger{stroke:var(--line-strong);stroke-width:2px}.atwood .pulley{fill:var(--panel);stroke:var(--line-strong);stroke-width:2.5px}.atwood .axle{fill:var(--muted)}.atwood .rope,.train .rope{stroke:var(--accent-press);stroke-width:2px}.blockbox{stroke:var(--card);stroke-width:2px}.blockbox.heavy{fill:var(--accent)}.blockbox.light{fill:var(--accent-2)}.blocklbl{font-family:var(--mono);fill:var(--card);text-anchor:middle;font-size:11.5px;font-weight:700}.train .rowcap{font-family:var(--display);fill:var(--muted);font-size:12px;font-weight:600}.atwood .baseaxis{stroke:var(--line-strong);stroke-width:2px}.atwood .bar{stroke:var(--card);stroke-width:1px}.atwood .bar.heat{fill:var(--accent);fill-opacity:.85}.atwood .bar.mech{fill:var(--warn);fill-opacity:.9}.atwood .barval{font-family:var(--mono);fill:var(--ink);text-anchor:middle;font-size:11px;font-weight:700}.atwood .barlbl{font-family:var(--mono);fill:var(--muted);text-anchor:middle;font-size:11px}.train .vec{fill:none;stroke:var(--accent);stroke-width:2.4px;stroke-linejoin:round;stroke-linecap:round}.train .vec.res{stroke:var(--accent-press);stroke-width:3px}.train .vec.f1{stroke:var(--accent)}.train .vec.f3{stroke:var(--warn)}svg.river,svg.frames{width:100%;max-width:560px;height:auto;margin:0 auto;display:block}.river .water{fill:var(--accent-soft);fill-opacity:.35}.river .bank{stroke:var(--line-strong);stroke-width:2.5px}.river .startline{stroke:var(--line);stroke-width:1.2px;stroke-dasharray:4 4}.river .track{fill:none;stroke:var(--accent-deep);stroke-width:2.6px}.river .startpt{fill:var(--accent-deep);stroke:var(--card);stroke-width:2px}.river .rivlbl{font-family:var(--mono);fill:var(--muted);font-size:11px}.river .rivlbl.small{font-size:10.5px}.river .vec{fill:none;stroke:var(--accent);stroke-width:2.2px;stroke-linejoin:round;stroke-linecap:round}.river .vec.f1{stroke:var(--accent)}.river .vec.f3{stroke:var(--warn)}.river .vec.res{stroke:var(--accent-press);stroke-width:3px}.frames .divider{stroke:var(--line);stroke-width:1.2px;stroke-dasharray:5 4}.frames .framecap{font-family:var(--display);fill:var(--muted);font-size:12px;font-weight:600}.frames .groundline{stroke:var(--line-strong);stroke-width:2px}.frames .traj{fill:none;stroke:var(--accent);stroke-width:2.4px}.frames .traj.alt{stroke:var(--warn)}.frames .cartbox{fill:var(--panel);stroke:var(--line-strong);stroke-width:1.5px}.frames .ball{fill:var(--accent-deep);stroke:var(--card);stroke-width:2px}.frames .helperline{stroke:var(--muted);stroke-width:1.2px;stroke-dasharray:4 4}svg.ellipse{width:100%;max-width:560px;height:auto;margin:0 auto;display:block}.ellipse .sector{fill:var(--accent-soft);fill-opacity:.55;stroke:var(--accent);stroke-width:.8px;stroke-opacity:.55}.ellipse .sector.hot{fill:var(--warn);fill-opacity:.5;stroke:var(--warn);stroke-width:1.4px;stroke-opacity:1}.ellipse .focus{fill:var(--bad);stroke:var(--card);stroke-width:2px}.ellipse .radius{stroke:var(--accent-deep);stroke-width:2px}.ellipse .planet{fill:var(--accent-deep);stroke:var(--card);stroke-width:2px}.ellipse .elabel,.plot .ptlbl{font-family:var(--mono);fill:var(--muted);font-size:11px}svg.bank{width:100%;max-width:560px;height:auto;margin:0 auto;display:block}.bank .horizon{stroke:var(--line);stroke-width:1.2px;stroke-dasharray:5 4;fill:none}.bank .roadline{stroke:var(--line-strong);stroke-width:4px;stroke-linecap:round;fill:none}.bank .carbody{fill:var(--panel);stroke:var(--line-strong);stroke-width:2px}.bank .banklbl{font-family:var(--mono);fill:var(--muted);font-size:11px}.bank .vec{fill:none;stroke:var(--accent);stroke-width:2.4px;stroke-linejoin:round;stroke-linecap:round}.bank .vec.f1{stroke:var(--accent)}.bank .vec.f2{stroke:var(--accent-press)}.bank .vec.f3{stroke:var(--warn)}.bank .vec.res{stroke:var(--accent-deep);stroke-width:3.2px}svg.split{width:100%;max-width:560px;height:auto;margin:0 auto;display:block}.split .axisline{stroke:var(--line-strong);stroke-width:2px}.split .bar{stroke:var(--card);stroke-width:1px}.split .bar.mom{fill:var(--accent-press);fill-opacity:.85}.split .bar.en{fill:var(--warn);fill-opacity:.85}.split .splitcap{font-family:var(--display);fill:var(--muted);font-size:12px;font-weight:600}.split .barval{font-family:var(--mono);fill:var(--ink);text-anchor:middle;font-size:11px;font-weight:700}.split .splitlbl{font-family:var(--mono);fill:var(--muted);text-anchor:end;font-size:11px}.split .splitlbl.right{text-anchor:start}.barchart .baseaxis{stroke:var(--line-strong);stroke-width:2px}.barchart .bar.mech{fill:var(--accent);fill-opacity:.85;stroke:var(--card);stroke-width:1px}.barchart .bar.heat{fill:var(--warn);fill-opacity:.9;stroke:var(--card);stroke-width:1px}.barchart .bar.wrong{fill:var(--muted);fill-opacity:.45;stroke:var(--card);stroke-width:1px}.barchart .barlbl.sub{font-size:10.5px}}
