:root{--bg:#0e1114;--panel:#151a20;--panel-2:#1b2129;--line:#262d37;--line-2:#323b47;--text:#d8dee7;--muted:#7f8a98;--dim:#56606d;--accent:#f2a93b;--accent-2:#ffc86b;--danger:#ff5a5a;--warning:#ffb020;--ok:#4fd37a;--info:#5cabff;--lift:#ffd23f;--launch:#4fd6ff;--brake:#ff6f4f;--booster:#7cf07c;--mono:ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--radius:4px;--panel-w:320px;--transport-h:64px;--topbar-h:44px}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;font-size:13px;line-height:1.4;overflow:hidden}button,input,select{font:inherit;color:inherit}button{cursor:pointer}h2,h3{margin:0;font-weight:600}kbd{font-family:var(--mono);border:1px solid var(--line-2);background:var(--panel-2);color:var(--text);border-bottom-width:2px;border-radius:3px;padding:1px 5px;font-size:11px}.app{grid-template-rows:var(--topbar-h) 1fr var(--transport-h);width:100%;height:100vh;grid-template-columns:minmax(0,1fr);height:100dvh;display:grid;overflow:hidden}.topbar{background:var(--panel);border-bottom:1px solid var(--line);align-items:center;gap:16px;min-width:0;padding:0 12px;display:flex;overflow:hidden}.brand{letter-spacing:.12em;align-items:center;gap:8px;font-size:12px;font-weight:700;display:flex}.brand-mark{border:2px solid var(--accent);border-right-color:#0000;border-radius:50%;width:14px;height:14px;transform:rotate(-30deg)}.brand-ver{color:var(--muted);letter-spacing:0;font-weight:400;font-family:var(--mono);font-size:11px}.tabs{gap:2px;display:none}.tabs button{color:var(--muted);border-radius:var(--radius);background:0 0;border:1px solid #0000;padding:5px 10px}.tabs button.active{color:var(--text);background:var(--panel-2);border-color:var(--line-2)}.topbar-right{align-items:center;gap:6px;margin-left:auto;display:flex}.btn{background:var(--panel-2);border:1px solid var(--line-2);color:var(--text);border-radius:var(--radius);white-space:nowrap;align-items:center;gap:6px;padding:5px 10px;transition:background .12s,border-color .12s;display:inline-flex}.btn:hover{background:#222a34;border-color:#3d4756}.btn:active{background:#10151b}.btn.primary{background:var(--accent);border-color:var(--accent);color:#1a1100;font-weight:600}.btn.primary:hover{background:var(--accent-2);border-color:var(--accent-2)}.btn.active{border-color:var(--accent);color:var(--accent)}.btn.small{padding:3px 7px;font-size:12px}.btn.danger{color:var(--danger);border-color:#5a2a2a}.btn[disabled]{opacity:.45;cursor:not-allowed}.btn-row{flex-wrap:wrap;gap:6px;display:flex}.icon{width:14px;height:14px;display:inline-block}.field{grid-template-columns:1fr auto;align-items:center;gap:8px;padding:3px 0;display:grid}.field label{color:var(--muted)}.field .unit{color:var(--dim);font-family:var(--mono);margin-left:4px;font-size:11px}.field input[type=number],.field select,.field input[type=text]{background:var(--bg);border:1px solid var(--line-2);border-radius:var(--radius);width:92px;font-family:var(--mono);text-align:right;padding:4px 6px;font-size:12px}.field input[type=text]{text-align:left;width:150px}.field input:focus,select:focus{outline:1px solid var(--accent);outline-offset:0}.field-slider{grid-template-columns:1fr;gap:4px;padding:4px 0;display:grid}.field-slider .row{color:var(--muted);justify-content:space-between;display:flex}.field-slider .row b{color:var(--text);font-family:var(--mono);font-weight:500}input[type=range]{width:100%;accent-color:var(--accent);height:20px}input[type=checkbox]{accent-color:var(--accent)}.workspace{grid-template-columns:var(--panel-w) 1fr var(--panel-w);min-height:0;display:grid}.panel{background:var(--panel);border-right:1px solid var(--line);scrollbar-width:thin;scrollbar-color:var(--line-2) transparent;min-height:0;overflow:hidden auto}.panel-right{border-right:0;border-left:1px solid var(--line)}.section{border-bottom:1px solid var(--line);padding:10px 12px}.section-head{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);justify-content:space-between;align-items:center;margin-bottom:8px;font-size:11px;display:flex}.section-head .meta{font-family:var(--mono);letter-spacing:0;text-transform:none;color:var(--dim);font-size:11px}.help-text{color:var(--muted);margin:4px 0 8px;font-size:12px}.point-list{border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:1px;max-height:190px;display:flex;overflow-y:auto}.point-row{background:var(--panel);text-align:left;font-family:var(--mono);color:var(--text);border:0;grid-template-columns:30px 1fr auto;align-items:center;gap:6px;padding:4px 6px;font-size:12px;display:grid}.point-row:hover{background:var(--panel-2)}.point-row.selected{box-shadow:inset 2px 0 0 var(--accent);background:#2a2416}.point-row .idx{color:var(--muted)}.point-row .coords{color:var(--text);white-space:nowrap}.point-row .sev{background:0 0;border-radius:50%;width:8px;height:8px}.sev.danger{background:var(--danger)}.sev.warning{background:var(--warning)}.sev.info{background:var(--info)}.sev.ok{background:var(--ok)}.axis-x{color:#ff6b6b}.axis-y{color:#7ce07c}.axis-z{color:#6db3ff}.sections-list{flex-direction:column;gap:6px;display:flex}.section-card{border:1px solid var(--line-2);border-radius:var(--radius);background:var(--panel-2);border-left-width:3px;padding:6px 8px}.section-card[data-type=lift]{border-left-color:var(--lift)}.section-card[data-type=launch]{border-left-color:var(--launch)}.section-card[data-type=brake]{border-left-color:var(--brake)}.section-card[data-type=booster]{border-left-color:var(--booster)}.section-card.disabled{opacity:.55}.section-card .head{align-items:center;gap:8px;margin-bottom:4px;display:flex}.section-card .head .name{text-transform:capitalize;font-weight:600}.section-card .head .state{font-family:var(--mono);color:var(--muted);margin-left:auto;font-size:11px}.section-card .head .state.active{color:var(--ok)}.section-card .grid{grid-template-columns:1fr 1fr;gap:2px 10px;display:grid}.section-card .field input[type=number]{width:70px}.stat-grid{grid-template-columns:1fr 1fr;gap:4px 10px;display:grid}.stat{border-bottom:1px dashed var(--line);flex-direction:column;padding:4px 0;display:flex}.stat .k{color:var(--muted);font-size:11px}.stat .v{font-family:var(--mono);font-size:13px}.stat .v small{color:var(--dim);font-size:11px}.verdict{border-radius:var(--radius);align-items:center;gap:8px;margin-bottom:8px;padding:8px 10px;font-weight:600;display:flex}.verdict.ok{color:var(--ok);background:#14301f}.verdict.danger{color:var(--danger);background:#3a1818}.verdict.warning{color:var(--warning);background:#3a2e12}.issue-list{flex-direction:column;gap:4px;display:flex}.issue{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);text-align:left;color:var(--text);cursor:pointer;grid-template-columns:8px 1fr;gap:8px;padding:6px 8px;display:grid}.issue:hover{border-color:var(--line-2)}.issue .bar{border-radius:2px}.issue.danger .bar{background:var(--danger)}.issue.warning .bar{background:var(--warning)}.issue.info .bar{background:var(--info)}.issue .title{justify-content:space-between;gap:6px;font-weight:600;display:flex}.issue .title .segs{font-family:var(--mono);color:var(--muted);white-space:nowrap;font-size:11px;font-weight:400}.issue .detail{color:var(--muted);margin-top:2px;font-size:12px}.issue .value{font-family:var(--mono);color:var(--text)}.empty{color:var(--dim);padding:6px 0;font-style:italic}.telemetry{grid-template-columns:repeat(2,1fr);gap:6px 12px;display:grid}.tele{flex-direction:column;display:flex}.tele .k{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:10px}.tele .v{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:15px}.tele .v small{color:var(--dim);margin-left:3px;font-size:11px}.tele.wide{grid-column:span 2}.badge{font-family:var(--mono);background:var(--panel-2);border:1px solid var(--line-2);text-transform:uppercase;border-radius:3px;padding:2px 7px;font-size:11px;display:inline-block}.badge.running{color:var(--ok);border-color:#245a36}.badge.lift,.badge.launch,.badge.booster{color:var(--lift);border-color:#5a4a14}.badge.braking{color:var(--brake);border-color:#5a2f22}.badge.rollback{color:var(--warning);border-color:#5a4114}.badge.stalled,.badge.timeout{color:var(--danger);border-color:#5a2323}.badge.completed,.badge.stopped{color:var(--info);border-color:#244a6a}.sparkline{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);width:100%;height:56px;display:block}.viewport{background:#0b0e12;min-width:0;min-height:0;position:relative}.viewport canvas{outline:none;width:100%;height:100%;display:block}.hud{border-radius:var(--radius);font-family:var(--mono);pointer-events:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0c0f13c7;border:1px solid #3c465599;grid-template-columns:auto auto;gap:2px 14px;padding:8px 10px;font-size:12px;display:grid;position:absolute;top:12px;left:12px}.hud .k{color:var(--muted)}.hud .v{text-align:right;font-variant-numeric:tabular-nums}.hud .v.warn{color:var(--warning)}.hud .v.bad{color:var(--danger)}.cam-bar{gap:4px;display:flex;position:absolute;top:12px;right:12px}.cam-bar .btn{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0c0f13c7}.viewport-hint{color:var(--muted);pointer-events:none;border-radius:var(--radius);background:#0c0f1399;padding:4px 8px;font-size:12px;position:absolute;bottom:12px;left:12px}.viewport-hint:empty{display:none}.toast{border:1px solid var(--line-2);border-radius:var(--radius);opacity:0;pointer-events:none;background:#202830;max-width:80%;padding:8px 14px;transition:opacity .2s;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.toast.show{opacity:1}.toast.error{border-color:var(--danger);color:var(--danger)}.transport{background:var(--panel);border-top:1px solid var(--line);grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:0 12px;display:grid}.transport .controls{align-items:center;gap:6px;display:flex}.timeline{font-family:var(--mono);grid-template-columns:auto 1fr auto;align-items:center;gap:10px;font-size:12px;display:grid}.timeline input[type=range]{height:22px}.timeline .time{text-align:right;font-variant-numeric:tabular-nums;min-width:110px}.timeline-track{position:relative}.timeline-marks{pointer-events:none;height:4px;position:absolute;top:2px;left:0;right:0}.timeline-marks span{opacity:.85;border-radius:2px;height:4px;position:absolute;top:0}.transport .right{align-items:center;gap:6px;display:flex}.speed-select{background:var(--bg);border:1px solid var(--line-2);border-radius:var(--radius);font-family:var(--mono);padding:4px 6px;font-size:12px}.onboarding[hidden]{display:none}.onboarding{z-index:50;background:#06080ab8;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.onboarding-card{background:var(--panel);border:1px solid var(--line-2);border-radius:6px;width:min(520px,92vw);padding:20px 22px;box-shadow:0 30px 80px #0009}.onboarding-card h2{margin-bottom:4px;font-size:16px}.onboarding-card .step{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font-size:11px}.onboarding-card p{color:var(--text);margin:10px 0}.onboarding-card ul{color:var(--muted);margin:6px 0 0 18px;padding:0}.onboarding-card li{margin:3px 0}.onboarding-card .foot{justify-content:space-between;align-items:center;margin-top:16px;display:flex}.dots{gap:5px;display:flex}.dots span{background:var(--line-2);border-radius:50%;width:6px;height:6px}.dots span.on{background:var(--accent)}.reduced-motion *,.reduced-motion .toast{transition:none!important;animation:none!important}@media (prefers-reduced-motion:reduce){.toast,.btn{transition:none}}@media (max-width:1080px){:root{--panel-w:290px}}@media (max-width:860px){.tabs{display:flex}.brand{letter-spacing:.06em}.brand-ver{display:none}.workspace{grid-template-rows:1fr;grid-template-columns:1fr}.panel{border:0;display:none}.app[data-tab=track] .panel-left,.app[data-tab=physics] .panel-right,.app[data-tab=analysis] .panel-right{display:block}.app[data-tab=physics] .panel-right .section[data-group=analysis],.app[data-tab=analysis] .panel-right .section[data-group=physics],.app:not([data-tab=scene]) .viewport{display:none}.transport{grid-template:"controls right""timeline timeline"/auto 1fr;gap:6px 10px;padding:6px 10px}.transport .controls{grid-area:controls}.transport .right{grid-area:right;justify-content:flex-end}.transport .timeline{grid-area:timeline;min-width:0}.timeline .time{white-space:nowrap;min-width:0;font-size:11px}:root{--transport-h:96px}.topbar-right .label{display:none}.hud{gap:1px 10px;font-size:11px}.brand{letter-spacing:.04em;gap:6px;font-size:11px}}@media (max-width:480px){.topbar{gap:8px;padding:0 8px}.brand-text{display:none}.tabs{gap:0}.tabs button{padding:4px 5px;font-size:11px}.topbar-right{gap:4px}.topbar-right .btn.small{padding:3px 5px}.topbar-right .speed-select{width:64px;padding:3px 2px}.cam-bar{flex-wrap:wrap;justify-content:flex-end;max-width:55%}.hud{max-width:44%;padding:6px 7px;font-size:10px}.transport{gap:4px 8px;padding:6px 8px}}
