.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;-webkit-user-select:none;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: #08080a;--panel: #0a0a0d;--panel-2: #0c0c10;--panel-3: #101015;--border: rgba(255, 255, 255, .08);--border-active: rgba(255, 201, 61, .5);--text: #ececef;--muted: #9a9aa3;--faint: #7c7c86;--accent: #ffc93d;--accent-amber: #ff9500;--cool: #5db6df;--font-ui: "Space Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Consolas, monospace;font-family:var(--font-ui);color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:radial-gradient(70% 100% at 82% -8%,#101015 0%,var(--bg) 58%);color:var(--text)}.app{display:flex;flex-direction:column;min-height:100%}.topbar{position:relative;display:flex;align-items:center;justify-content:space-between;padding:14px 22px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,#101014,#08080a)}.topbar:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,#ffc93d 30%,#ff9500 50%,#ffc93d 70%,transparent);opacity:.75}.brand{display:flex;align-items:center;gap:13px}.brand .logo{width:28px;height:28px;display:block;flex-shrink:0}.brand h1{font-size:19px;margin:0;font-weight:700;letter-spacing:.2px}.brand .eyebrow{margin:0 0 3px;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent)}.brand p{margin:3px 0 0;color:var(--muted);font-size:12px;font-family:var(--font-mono);letter-spacing:.03em}.topbar-right{display:flex;align-items:center;gap:16px}.back-link{color:var(--muted);font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;white-space:nowrap}.back-link:hover{color:var(--accent)}.about-btn{background:transparent;color:var(--muted);border:1px solid var(--border);font-family:var(--font-mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase}.layout{display:flex;flex:1;min-height:0}.sidebar{width:360px;flex-shrink:0;padding:16px;border-right:1px solid var(--border);overflow-y:auto;display:flex;flex-direction:column;gap:14px}.main{flex:1;min-width:0;padding:16px 18px 26px;display:flex;flex-direction:column;gap:16px;overflow-y:auto}button{font:inherit;font-family:var(--font-ui);color:var(--text);background:#14141a;border:1px solid var(--border);border-radius:2px;padding:7px 12px;cursor:pointer;transition:background .18s,border-color .18s,color .18s}button:hover{background:#1b1b23;border-color:var(--border-active);color:var(--accent)}button.primary,button.on{background:var(--accent);color:#08080a;border-color:var(--accent);font-weight:700;clip-path:polygon(0 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%)}button.primary:hover,button.on:hover{background:#fff;color:#08080a;border-color:#fff}select,input{font:inherit;font-family:var(--font-ui);color:var(--text);background:var(--panel-2);border:1px solid var(--border);border-radius:2px;padding:7px 9px;width:100%}select:focus,input:focus{outline:none;border-color:var(--border-active)}input[type=number]{-moz-appearance:textfield}.picker{background:var(--panel);border:1px solid var(--border);border-radius:2px;padding:13px 14px;display:flex;flex-direction:column;gap:10px}.picker-title{font-family:var(--font-mono);font-weight:500;font-size:12px;text-transform:uppercase;letter-spacing:.16em;display:flex;align-items:center;gap:8px}.picker-title .swatch{width:9px;height:9px;border-radius:0;flex-shrink:0}.field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.coords{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.geo-btn{margin-top:2px}.swap{display:flex;justify-content:center;margin:-4px 0}.swap button{font-size:12px;padding:4px 14px;color:var(--muted);font-family:var(--font-mono);letter-spacing:.08em}.controls{background:var(--panel);border:1px solid var(--border);border-radius:2px;padding:13px 14px;display:flex;flex-direction:column;gap:12px}.ctl-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.simtime{font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto;font-family:var(--font-mono)}.ctl-group{display:flex;flex-direction:column;gap:6px}.ctl-label{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.seg{display:flex;flex-wrap:wrap;gap:6px}.seg button{padding:5px 10px;font-size:12.5px}.readout{background:linear-gradient(180deg,#0e0e13 0%,var(--panel) 100%);border:1px solid var(--border);border-radius:2px;padding:18px 20px}.speed-main{display:flex;align-items:baseline;gap:10px}.speed-val{font-size:52px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums;color:var(--accent);letter-spacing:-.01em}.speed-unit{font-size:18px;color:var(--muted);font-family:var(--font-mono)}.speed-sub{margin-top:6px;color:var(--muted);font-size:13px}.speed-sub b{color:var(--text)}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}.metric{background:var(--panel-2);border:1px solid var(--border);border-radius:2px;padding:10px 12px}.metric-label{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.metric-val{font-size:18px;font-weight:600;margin-top:4px;font-variant-numeric:tabular-nums}.metric-val small{font-size:12px;color:var(--muted);font-weight:400}.metric-val.tiny{font-size:12.5px;font-weight:500;line-height:1.45}.vec{margin-top:14px;display:flex;flex-direction:column;gap:4px}.vec-label{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.vec code{font-family:var(--font-mono);font-size:13px;color:var(--cool)}.panel{background:var(--panel);border:1px solid var(--border);border-radius:2px}.panel-head{padding:11px 16px;border-bottom:1px solid var(--border);font-family:var(--font-mono);font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.1em}.panel-head:before{content:"// ";color:var(--accent)}.panel-head .muted{color:var(--muted);font-weight:400;margin-left:8px;text-transform:none;letter-spacing:0}.chart-panel{padding-bottom:10px}.chart{width:100%;padding:8px 8px 0}.scene3d{position:relative;height:380px;overflow:hidden;padding:0}.scene3d canvas{border-radius:2px}.scene-overlay{position:absolute;left:14px;bottom:12px;display:flex;flex-direction:column;gap:3px;pointer-events:none}.legend-line{font-size:12px;color:var(--text);display:flex;align-items:center;gap:7px;font-family:var(--font-mono);letter-spacing:.02em}.legend-line .dot{width:10px;height:10px;border-radius:0;display:inline-block}.scene-note{font-size:11px;color:var(--muted);margin-top:3px;font-family:var(--font-mono)}.scene-label-wrap{pointer-events:none}.scene-label{pointer-events:none;white-space:nowrap;font-size:11.5px;font-weight:500;font-family:var(--font-mono);color:var(--text);background:#08080ab8;border:1px solid var(--border);border-radius:2px;padding:2px 7px;transform:translateY(-2px)}.axis-label{pointer-events:none;font-size:12px;font-weight:700;color:var(--faint);font-family:var(--font-mono)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#040406b8;display:flex;align-items:center;justify-content:center;padding:24px;z-index:50}.modal{background:var(--panel);border:1px solid var(--border);border-radius:2px;padding:24px 26px;max-width:620px;max-height:86vh;overflow-y:auto}.modal h2{margin:0 0 12px;font-size:19px;font-weight:700}.modal p,.modal li{color:#cdd0d8;font-size:13.5px;line-height:1.6}.modal ul{padding-left:18px}.modal li{margin-bottom:7px}.modal code{font-family:var(--font-mono);background:var(--panel-2);padding:1px 5px;border-radius:2px;font-size:12.5px;color:var(--cool)}.modal .primary{margin-top:10px}.td-body{padding:14px 16px;display:flex;flex-direction:column;gap:11px}.td-main{display:flex;align-items:baseline;gap:8px}.td-val{font-size:34px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--cool)}.td-unit{font-size:15px;color:var(--muted);font-family:var(--font-mono)}.td-sub{color:var(--muted);font-size:13px;line-height:1.5}.td-sub b{color:var(--text)}.td-breakdown{display:flex;gap:10px}.td-chip{flex:1;background:var(--panel-2);border:1px solid var(--border);border-radius:2px;padding:8px 11px;display:flex;flex-direction:column;gap:3px}.td-chip .muted{font-size:11px;text-transform:uppercase;letter-spacing:.1em;font-family:var(--font-mono);color:var(--muted)}.td-chip b{font-size:14px;font-variant-numeric:tabular-nums}.u-legend{color:var(--muted);font-size:12px;font-family:var(--font-mono)}.u-legend .u-marker{border-radius:0}.u-axis{color:var(--muted)}.mode-toggle{display:grid;grid-template-columns:1fr 1fr;gap:8px;background:var(--panel);border:1px solid var(--border);border-radius:2px;padding:7px}.mode-toggle button{background:transparent;border:1px solid transparent;font-weight:600;font-size:12.5px;padding:9px 8px}.mode-toggle button.on{background:var(--accent);border-color:var(--accent);color:#08080a}.extremes-panel{gap:11px}.choice-seg{display:grid;grid-template-columns:1fr 1fr;gap:8px}.choice-seg button{font-weight:600}.ext-scanning{font-size:13px;padding:8px 0;color:var(--muted);font-family:var(--font-mono)}.ext-card{background:var(--panel-2);border:1px solid var(--border);border-radius:2px;padding:11px 12px;display:flex;flex-direction:column;gap:3px}.ext-card-head{display:flex;align-items:center;justify-content:space-between}.ext-tag{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;font-weight:500}.ext-badge{font-size:9.5px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:#08080a;border-radius:0;padding:1px 6px}.ext-body-name{font-size:16px;font-weight:700;margin-top:2px}.ext-speed{font-size:21px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.1}.ext-speed small{font-size:12px;color:var(--muted);font-weight:400}.ext-coords{font-size:12px;font-variant-numeric:tabular-nums;font-family:var(--font-mono);color:var(--muted)}.ext-pin{margin-top:7px;font-size:12px;padding:6px 10px}.perbody{display:flex;flex-direction:column;gap:2px}.perbody-head{font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:4px}.perbody-row{display:grid;grid-template-columns:14px 1fr auto;grid-template-areas:"dot name speed" "dot coords speed";align-items:center;column-gap:8px;padding:4px 6px;border-radius:2px}.perbody-row:nth-child(2n){background:#ffffff06}.pb-dot{grid-area:dot;width:9px;height:9px;border-radius:0}.pb-name{grid-area:name;font-size:12.5px;font-weight:600}.pb-coords{grid-area:coords;font-size:10.5px;color:var(--muted);font-variant-numeric:tabular-nums;font-family:var(--font-mono)}.pb-speed{grid-area:speed;font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;text-align:right}.pb-speed small{font-size:10px;color:var(--muted);font-weight:400}@media (max-width: 900px){.layout{flex-direction:column}.sidebar{width:100%;border-right:none;border-bottom:1px solid var(--border)}}@media (max-width: 640px){.topbar{flex-direction:column;align-items:stretch;gap:12px}.brand{align-items:flex-start}.brand .logo{margin-top:3px}.brand .eyebrow{font-size:10px;letter-spacing:.18em}.brand p{font-size:11px}.topbar-right{justify-content:space-between}}@media (max-width: 560px){.topbar{padding:12px 16px}.brand h1{font-size:16px}.metrics{grid-template-columns:1fr 1fr}.main{padding:14px}}
