.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: #f4f5f7;--card-bg: #ffffff;--border: #d9dce1;--title-bg: #eef1f5;--text: #1c2430;--text-dim: #5c6672;--accent: #2563eb;--accent-soft: #dbeafe;--marker: #64748b;--marker-sel: #dc2626;--baseline: rgba(37, 99, 235, .35);--land: #e2e6ec;--sphere: #f7f9fc;--radius: 8px;--gap: 10px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:13px;color:var(--text)}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--bg)}#app{height:100dvh;padding:var(--gap);display:flex;flex-direction:column}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:var(--gap);flex:1 1 auto;min-height:0}.app-header{flex:0 0 auto;display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:2px 4px 8px}.app-brand{font-size:15px;font-weight:600;white-space:nowrap}.app-home{color:var(--accent);text-decoration:none}.app-home:hover{text-decoration:underline}.app-home-mute{font-weight:400;opacity:.6}.app-crumb-sep{margin:0 8px;font-weight:400;color:var(--text-dim)}.app-here{color:var(--text)}.app-credit{font-size:11px;color:var(--text-dim);text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-credit a{color:var(--accent);text-decoration:none}.app-credit a:hover{text-decoration:underline}.card{display:flex;flex-direction:column;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;min-width:0;min-height:0}.card-title{padding:6px 10px;font-weight:600;font-size:12px;letter-spacing:.02em;text-transform:uppercase;color:var(--text-dim);background:var(--title-bg);border-bottom:1px solid var(--border)}.card-body{position:relative;flex:1 1 0;min-height:0;min-width:0;padding:8px;display:flex;flex-direction:column;gap:6px;overflow:hidden}.card-body.image-body{align-items:center;justify-content:center}.card-tabs{display:flex;gap:2px;padding:0 6px;background:var(--title-bg);border-bottom:1px solid var(--border)}.card-tab{padding:6px 12px;font:inherit;font-size:12px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--text-dim);background:transparent;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer}.card-tab:hover{color:var(--text)}.card-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.tab-pane{display:none;flex:1 1 0;min-height:0;min-width:0;flex-direction:column}.tab-pane.active{display:flex}.card-controls{display:flex;flex-wrap:wrap;gap:6px 12px;padding:8px 10px;border-top:1px solid var(--border);background:#fbfcfd}.ctl{display:flex;flex-direction:column;gap:2px;font-size:12px;min-width:90px}.ctl-label{color:var(--text-dim);white-space:nowrap}.ctl .unit{color:var(--text-dim);margin-left:3px;opacity:.8}.ctl input[type=range]{width:130px}.ctl input[type=number],.ctl input[type=datetime-local],.ctl select{padding:2px 4px;border:1px solid var(--border);border-radius:4px;background:#fff;color:var(--text);font:inherit;max-width:170px}.ctl input[type=number]{width:84px}.ctl-slider{flex-direction:column}.ctl-slider output{font-variant-numeric:tabular-nums;color:var(--text);font-size:11px}.ctl-toggle{flex-direction:row;align-items:center;gap:6px}.ctl-toggle .ctl-label{color:var(--text)}.image-canvas{width:100%;height:100%;min-height:0;object-fit:contain;display:block;border-radius:4px;background:#000}.scatter{flex:1 1 0;min-height:0;width:100%;display:flex;align-items:center;justify-content:center;overflow:hidden}.panel-msg[hidden]{display:none}.panel-msg{position:absolute;inset:8px;display:flex;align-items:center;justify-content:center;text-align:center;padding:16px;color:var(--text-dim);font-size:12px;background:#fbfcfd;border:1px dashed var(--border);border-radius:4px}.map-toolbar{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:4px}.preset-btn{padding:3px 8px;font:inherit;font-size:11px;border:1px solid var(--border);border-radius:4px;background:#fff;color:var(--text);cursor:pointer}.preset-btn:hover{background:var(--accent-soft);border-color:var(--accent)}.map-toggle{margin-left:auto;font-weight:600}.map-svg{flex:1 1 0;min-height:0;width:100%;display:block;background:var(--sphere);border-radius:4px;touch-action:none}.map-sphere{fill:var(--sphere);stroke:var(--border);stroke-width:1}.map-land{fill:var(--land);stroke:#cfd5dd;stroke-width:.4}.map-baseline{fill:none;stroke:var(--baseline);stroke-width:1}.map-marker{fill:var(--marker);stroke:#fff;stroke-width:1;cursor:pointer}.map-marker:hover{fill:var(--accent)}.map-marker.sel{fill:var(--marker-sel)}.sky-svg{cursor:crosshair}.sky-sphere{fill:var(--sphere);stroke:var(--border);stroke-width:1}.sky-graticule{fill:none;stroke:var(--border);stroke-width:.5}.sky-galactic{fill:none;stroke:#d97706;stroke-width:1.2;stroke-dasharray:4 3;opacity:.6}.sky-source circle{fill:var(--marker);cursor:pointer}.sky-source:hover circle{fill:var(--accent)}.sky-source text{fill:var(--text-dim);font-size:9px;pointer-events:none;user-select:none}.sky-marker line,.sky-marker circle{stroke:var(--marker-sel);stroke-width:1.5;fill:none;pointer-events:none}
