.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{color-scheme:dark;--bg: #14161a;--panel: #1c1f26;--line: #2a2e37;--text: #e6e6e6;--subtle: #8a909b;--accent: #4fc3f7}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.centered{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}.app{max-width:1500px;margin:0 auto;padding:0 16px 48px}header{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line);margin-bottom:20px}.crumbs{display:flex;gap:8px;align-items:center}.crumbs a{color:var(--accent);cursor:pointer}.crumbs span{color:var(--subtle)}.user{display:flex;gap:12px;align-items:center;color:var(--subtle)}button{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:6px 12px;cursor:pointer}button.primary{background:var(--accent);color:#06212e;border:none;font-weight:600;padding:10px 20px}button:hover{border-color:var(--accent)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line)}th{color:var(--subtle);font-weight:600}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--panel)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.extension-code{font-size:16px;font-weight:700;letter-spacing:.12em;color:#e0b34a}.extension-desc{max-width:380px;white-space:pre-wrap}.extension-about{margin-top:6px;font-size:12px;color:var(--subtle)}.extension-about p{margin:3px 0}.extension-about ol{margin:3px 0 3px 18px}.subtle{color:var(--subtle)}.error{color:#ff6b6b}.shot-meta{display:flex;gap:18px;align-items:baseline;margin-bottom:16px}.shot-meta b{color:var(--accent)}.chart{width:100%;margin-bottom:18px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px}.smooth-bar{display:flex;align-items:center;gap:10px;margin-bottom:8px}.smooth-bar label{color:var(--subtle)}.smooth-bar input[type=range]{flex:0 1 240px;accent-color:var(--accent)}.u-title{color:var(--text);font-size:13px}.workspace{display:flex;gap:16px;align-items:flex-start}.shot-list{flex:0 0 300px;background:var(--panel);border:1px solid var(--line);border-radius:8px;max-height:calc(100vh - 140px);overflow-y:auto}.shot-list-head{position:sticky;top:0;display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:var(--panel);border-bottom:1px solid var(--line);font-weight:600}.shot-list ul{list-style:none;margin:0;padding:0}.shot-item{padding:10px 12px;border-bottom:1px solid var(--line);cursor:pointer}.shot-item:hover{background:var(--bg)}.shot-item.selected{background:var(--bg);border-left:3px solid var(--accent);padding-left:9px}.shot-item-top,.shot-item-sub{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.shot-type{color:var(--accent);font-weight:600}.peakcount{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--subtle);white-space:nowrap}.peakcount.bad{color:#ff6b6b;font-weight:600}.shot-detail{flex:1 1 auto;min-width:0}.live{color:var(--subtle);font-size:12px;font-weight:400}.live.on{color:#81c784}.load-more{margin:10px 12px}.pad{padding:12px}.shot-list-head .clear-btn{padding:2px 8px;font-size:11px;border-radius:4px}.shot-list-head .clear-btn:hover:not(:disabled){border-color:#ff6b6b;color:#ff6b6b}.shot-list-head .clear-btn:disabled{opacity:.4;cursor:default}.algo-bar{position:sticky;top:41px;display:flex;gap:6px;align-items:center;padding:8px 12px;background:var(--panel);border-bottom:1px solid var(--line)}.algo-bar select{flex:1 1 auto;min-width:0;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:5px 8px;font-size:12px}.algo-bar .recompute-btn{flex:0 0 auto;padding:5px 9px;font-size:13px;line-height:1}.algo-bar .recompute-btn:disabled{opacity:.4;cursor:default}.dim{color:var(--subtle);font-size:.92em}.shot-no{color:var(--accent);font-weight:600}.shot-meta .shot-no{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.link-btn{background:none;border:none;color:var(--subtle);padding:2px 4px;cursor:pointer;font-size:12px}.link-btn:hover:not(:disabled){color:var(--accent);border:none}.link-btn:disabled{opacity:.4;cursor:default}.dev-label{color:var(--text)}tr.upload-on td:first-child{border-left:3px solid #81c784;padding-left:7px}.upload-toggle{padding:2px 8px;font-size:11px;border-radius:4px;color:var(--subtle)}.upload-toggle.on{color:#81c784;border-color:#2f5f3a}.upload-toggle:disabled{opacity:.5;cursor:default}.level-chips{display:inline-flex;gap:4px}.level-chips.muted{opacity:.45}.level-chip{padding:2px 7px;font-size:11px;border-radius:4px;color:var(--subtle)}.level-chip.on{color:#81c784;border-color:#2f5f3a}.level-chip:disabled{opacity:.5;cursor:default}.device-bar{display:flex;align-items:center;gap:8px;padding:10px 12px;margin-bottom:14px;background:var(--panel);border:1px solid var(--line);border-radius:8px}.dev-label-lg{font-weight:600;font-size:15px}.dev-bar-spacer{flex:1 1 auto}.upload-switch{display:inline-flex;align-items:center;gap:8px;color:var(--subtle);font-size:13px}.msg-stats{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--subtle);margin:-8px 0 16px;white-space:nowrap;overflow-x:auto}.msg-stats .ms-type{color:var(--text)}.msg-stats .ms-count{color:var(--accent)}.msg-stats .ms-sep{color:var(--line);margin:0 6px}.metric{display:inline-flex;align-items:baseline;gap:8px}.metric .m-label{color:var(--subtle)}.metric .m-fw{color:var(--text)}.metric .m-algo{color:var(--accent);font-weight:600}.cast-chip.live{color:#81c784;border-color:#2f5f3a}.cast-chip.armed{color:#ffb74d;border-color:#6b4a1a}.support{display:flex;flex-direction:column;gap:10px}.support-hint{margin:0}.support-frame{width:100%;height:calc(100vh - 190px);min-height:420px;border:1px solid var(--line);border-radius:6px;background:#000}
