:root{--c-bg:#0a0e14;--c-bg-2:#0f141b;--c-bg-3:#151c25;--c-line:#1f2a36;--c-line-2:#2c3a4a;--c-text:#dfe6ee;--c-text-2:#a6b3c2;--c-text-3:#6f7f92;--c-steel:#7fb2e5;--c-rust:#c8552f;--c-rust-2:#e8926f;--c-moss:#7fc89a;--c-sand:#d9b26a;--c-fail:#e0695a;--font:"Instrument Sans", "Helvetica Neue", Arial, sans-serif;--radius:6px;--sidebar-w:332px;--panel-w:400px;--header-h:56px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--c-bg);color:var(--c-text);font-family:var(--font);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.45;overflow:hidden}a{color:var(--c-steel);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}button:focus-visible,input:focus-visible{outline:2px solid var(--c-steel);outline-offset:2px}h1,h2,h3,p,dl,dd,dt,ul,ol{margin:0}ul,ol{padding:0;list-style:none}.app{grid-template-rows:var(--header-h) 1fr;grid-template-columns:var(--sidebar-w) minmax(0, 1fr) var(--panel-w);grid-template-areas:"header header header""sidebar stage panel";height:100%;display:grid}.header{border-bottom:1px solid var(--c-line);background:var(--c-bg-2);grid-area:header;align-items:center;gap:18px;padding:0 18px;display:flex}.header__title{letter-spacing:-.01em;white-space:nowrap;align-items:center;gap:10px;font-size:17px;font-weight:600;display:flex}.mars{background:radial-gradient(circle at 35% 35%,#e8926f,#c8552f 55%,#6a2514);border-radius:50%;width:14px;height:14px;box-shadow:0 0 14px #c8552f73}.header__tagline{color:var(--c-text-2);max-width:70ch;font-size:13px}.header__status{color:var(--c-text-3);white-space:nowrap;align-items:center;gap:6px;margin-left:auto;font-size:12px;display:flex}.header__status:before{content:"";background:var(--c-moss);border-radius:50%;width:7px;height:7px}.header__status--running:before{background:var(--c-sand)}.header__status--error:before{background:var(--c-fail)}.header__link{white-space:nowrap;font-size:13px}.sidebar{border-right:1px solid var(--c-line);background:var(--c-bg-2);grid-area:sidebar;padding:6px 0 40px;overflow-y:auto}.stage{background:#000;grid-area:stage;min-width:0;position:relative;overflow:hidden}.stage canvas{display:block}.panel{border-left:1px solid var(--c-line);background:var(--c-bg-2);grid-area:panel;overflow-y:auto}.group{border-bottom:1px solid var(--c-line);padding:14px 16px 10px}.group__title{color:var(--c-text-2);margin-bottom:8px;font-size:12.5px;font-weight:600}.group__note{color:var(--c-text-3);margin:4px 0 8px;font-size:12px}.vehicles{flex-direction:column;gap:2px;display:flex}.vehicle{text-align:left;border-radius:var(--radius);border-left:2px solid #0000;width:100%;padding:8px 10px 8px 12px;display:block}.vehicle:hover{background:var(--c-bg-3)}.vehicle--selected{background:var(--c-bg-3);border-left-color:var(--c-rust)}.vehicle__head{align-items:baseline;gap:8px;display:flex}.vehicle__name{flex:1;font-size:13.5px;font-weight:600}.vehicle__tagline{color:var(--c-text-3);margin-top:2px;font-size:12px;display:block}.status{color:var(--c-text-3);white-space:nowrap;font-size:11px}.status--flown{color:var(--c-moss)}.status--development{color:var(--c-sand)}.status--historical{color:var(--c-text-2)}.status--hypothetical{color:var(--c-steel)}.chips{flex-wrap:wrap;gap:6px;margin-bottom:6px;display:flex}.chip{border:1px solid var(--c-line-2);color:var(--c-text-2);border-radius:999px;padding:5px 10px;font-size:12.5px}.chip:hover{border-color:var(--c-text-3);color:var(--c-text)}.chip--on{background:var(--c-text);color:var(--c-bg);border-color:var(--c-text)}.field{margin:8px 0 4px;display:block}.field__row{justify-content:space-between;font-size:12.5px;display:flex}.field__label{color:var(--c-text-2)}.field__value{color:var(--c-text)}.field__note{color:var(--c-text-3);margin-top:2px;font-size:11.5px;display:block}.field input[type=range]{width:100%;accent-color:var(--c-steel);height:18px;margin:4px 0 0}.check{color:var(--c-text-2);align-items:center;gap:8px;margin:8px 0 4px;font-size:12.5px;display:flex}.check input{accent-color:var(--c-steel)}.hud{border:1px solid var(--c-line);border-radius:var(--radius);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none;background:#0a0e14b8;min-width:190px;padding:10px 12px;position:absolute;top:14px;left:14px}.hud__phase{color:var(--c-text-2);font-size:12px}.hud__time{letter-spacing:-.01em;margin:2px 0 8px;font-size:22px;font-weight:600}.hud__lines{gap:3px;display:grid}.hud__line{justify-content:space-between;gap:16px;font-size:12.5px;display:flex}.hud__line dt{color:var(--c-text-3)}.hud__line dd{color:var(--c-text)}.hud__line--warn dd{color:var(--c-sand)}.hud__line--fail dd{color:var(--c-fail)}.hud__line--ok dd{color:var(--c-moss)}.playbar{border:1px solid var(--c-line);border-radius:var(--radius);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a0e14c7;align-items:center;gap:8px;padding:8px 10px;display:flex;position:absolute;bottom:14px;left:14px;right:14px}.playbar__btn{border:1px solid var(--c-line-2);border-radius:4px;width:30px;height:28px;font-size:12px}.playbar__btn:hover{background:var(--c-bg-3)}.phasestrip{flex:1;gap:3px;min-width:0;display:flex}.phase{background:var(--c-bg-3);border:1px solid var(--c-line);min-width:0;height:28px;color:var(--c-text-3);border-radius:4px;flex:1 1 0;font-size:11.5px;position:relative;overflow:hidden}.phase__fill{background:#7fb2e540;position:absolute;top:0;bottom:0;left:0}.phase--active{border-color:var(--c-steel);color:var(--c-text)}.phase--done{color:var(--c-text-2)}.phase--done .phase__fill{background:#7fb2e524}.phase__label{white-space:nowrap;text-overflow:ellipsis;padding:0 8px;line-height:26px;display:block;position:relative;overflow:hidden}.speeds{gap:2px;display:flex}.speed{color:var(--c-text-3);border-radius:4px;padding:4px 6px;font-size:11.5px}.speed--on{color:var(--c-text);background:var(--c-bg-3)}.playbar__end{color:var(--c-text-3);white-space:nowrap;font-size:11.5px}.verdict{border-bottom:1px solid var(--c-line);padding:16px 18px 12px;transition:opacity .2s}.verdict--stale{opacity:.6}.verdict__reach{flex-wrap:wrap;gap:6px 10px;margin-bottom:10px;display:flex}.reach{color:var(--c-text-3);align-items:center;gap:5px;font-size:11.5px;display:flex}.reach:before{content:"";background:var(--c-line-2);border-radius:50%;width:6px;height:6px}.reach--on{color:var(--c-text-2)}.reach--on:before{background:var(--c-moss)}.reach--off{color:var(--c-fail)}.reach--off:before{background:var(--c-fail)}.verdict__headline{letter-spacing:-.015em;margin-bottom:8px;font-size:22px;font-weight:600;line-height:1.2}.verdict--ok .verdict__headline{color:var(--c-text)}.verdict--fail .verdict__headline{color:#f0b4a8}.verdict--warn .verdict__headline{color:#efd9a6}.verdict__summary{color:var(--c-text-2);font-size:13px}.verdict__first{color:var(--c-rust-2);margin-top:8px;font-size:12.5px}.verdict__first strong{font-weight:600}.stats{grid-template-columns:1fr 1fr;gap:8px 14px;margin-top:14px;display:grid}.stat dt{color:var(--c-text-3);font-size:11.5px}.stat dd{font-size:14px;font-weight:600}.stat__note{color:var(--c-text-3);font-size:11px;font-weight:400;display:block}.stat--fail dd{color:var(--c-fail)}.stat--warn dd{color:var(--c-sand)}.stat--ok dd{color:var(--c-moss)}.verdict__meta{color:var(--c-text-3);margin-top:10px;font-size:11px}.tabs{border-bottom:1px solid var(--c-line);background:var(--c-bg-2);z-index:2;padding:0 10px;display:flex;position:sticky;top:0}.tab{color:var(--c-text-3);border-bottom:2px solid #0000;margin-bottom:-1px;padding:9px 10px;font-size:13px}.tab--on{color:var(--c-text);border-bottom-color:var(--c-text)}.empty{color:var(--c-text-3);padding:18px}.timeline{padding:6px 0 30px}.event__btn{text-align:left;border-left:2px solid #0000;grid-template-columns:74px 1fr;gap:10px;width:100%;padding:7px 18px;display:grid}.event__btn:hover{background:var(--c-bg-3)}.event--past .event__btn{border-left-color:var(--c-line-2)}.event__time{color:var(--c-text-3);padding-top:1px;font-size:12px}.event__label{font-size:13px;font-weight:600;display:block}.event__detail{color:var(--c-text-2);font-size:12px;display:block}.event--ok .event__label{color:var(--c-moss)}.event--warn .event__label{color:var(--c-sand)}.event--fail .event__label{color:var(--c-fail)}.telemetry,.trajectory,.model{padding:12px 18px 30px}.h3{color:var(--c-text-2);margin:14px 0 6px;font-size:13px;font-weight:600}.h3:first-child{margin-top:4px}.note{color:var(--c-text-3);margin:6px 0;font-size:12px}.chart{width:100%;height:auto;margin:4px 0 10px;display:block}.chart__grid{stroke:var(--c-line);stroke-width:1px}.chart__tick,.chart__axis{fill:var(--c-text-3);font-size:9.5px}.chart__legend{fill:var(--c-text-2);font-size:9.5px}.chart__marker{stroke:var(--c-text);stroke-width:1px;stroke-dasharray:3 3}.orbitplot{border:1px solid var(--c-line);border-radius:var(--radius);background:#05070b;width:100%;height:auto;display:block}.orbit{fill:none;stroke:var(--c-line-2);stroke-width:.8px;stroke-dasharray:2 3}.track{fill:none;stroke-width:1.4px}.track--earth{stroke:var(--c-steel)}.track--mars{stroke:var(--c-rust)}.track--ship{stroke:#fff;stroke-width:1.2px;stroke-dasharray:3 2}.porkchop{border:1px solid var(--c-line);border-radius:var(--radius);background:#05070b;width:100%;height:auto;display:block}.porkchop rect{cursor:pointer}.kv{gap:6px;margin:10px 0;display:grid}.kv dt{color:var(--c-text-3);font-size:11.5px}.kv dd{font-size:12.5px}.table{border-collapse:collapse;width:100%;margin:6px 0;font-size:12px}.table th{text-align:left;color:var(--c-text-3);border-bottom:1px solid var(--c-line);padding:4px 6px 4px 0;font-weight:500}.table td{border-bottom:1px solid var(--c-line);vertical-align:top;color:var(--c-text-2);padding:5px 6px 5px 0}.notes{color:var(--c-text-2);padding-left:16px;font-size:12.5px;list-style:outside}.notes li{margin:4px 0}@media (max-width:1180px){:root{--sidebar-w:290px;--panel-w:340px}}@media (max-width:900px){.app{grid-template-columns:1fr;grid-template-rows:var(--header-h) 56vh auto auto;grid-template-areas:"header""stage""panel""sidebar"}body{overflow:auto}.sidebar,.panel{border:0;border-top:1px solid var(--c-line);overflow:visible}.header__tagline{display:none}.hud{min-width:150px}.speeds{display:none}}@media (prefers-reduced-motion:reduce){.verdict{transition:none}}.label3d{color:var(--c-text-2);white-space:nowrap;text-shadow:0 1px 3px #000;pointer-events:none;font-size:12px;transform:translateY(14px)}
