:root{--bg:#0f1218;--panel:#171b23;--text:#e8ebf1;--muted:#8b93a3;--accent:#6aa8ff;--dot:#ff6b6b;--border:#262c38;--live:#5dd39e}*{box-sizing:border-box}html,body,#root{background:var(--bg);height:100%;color:var(--text);margin:0;font-family:Pretendard,Noto Sans KR,system-ui,-apple-system,sans-serif}#root{flex-direction:column;display:flex}header{background:var(--panel);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:16px;padding:10px 16px;display:flex}h1{letter-spacing:.2px;margin:0;font-size:16px;font-weight:700}.channel-switcher{flex-wrap:wrap;gap:4px;display:flex}.channel-switcher button{background:var(--bg);color:var(--muted);border:1px solid var(--border);font:inherit;cursor:pointer;border-radius:6px;padding:4px 10px;font-size:13px}.channel-switcher button[aria-pressed=true]{color:var(--text);border-color:var(--accent)}.playback .totals{margin-left:6px}.raw-picker{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:flex}.raw-picker select{background:var(--bg);color:var(--text);border:1px solid var(--border);font:inherit;border-radius:6px;max-width:320px;padding:4px 6px}.raw-picker .error{color:var(--danger,#e5534b)}.tabs{gap:4px;display:flex}.tabs button{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:6px 12px;font-size:14px;position:relative}.tabs button[aria-selected=true]{color:var(--text);background:var(--bg)}.tabs .dot{background:var(--dot);border-radius:50%;width:7px;height:7px;position:absolute;top:4px;right:3px}.playback{color:var(--muted);font-variant-numeric:tabular-nums;align-items:center;gap:4px;font-size:12px;display:flex}.playback .pos{min-width:104px;margin-right:6px}.playback button{color:var(--muted);border:1px solid var(--border);font:inherit;cursor:pointer;background:0 0;border-radius:6px;padding:3px 7px}.playback button[aria-pressed=true]{color:var(--bg);background:var(--accent);border-color:var(--accent)}.status{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto;font-size:12px}.status .live{color:var(--live)}main{flex:1;min-height:0;position:relative}canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.empty{color:var(--muted);pointer-events:none;text-align:center;justify-content:center;align-items:center;padding:16px;font-size:14px;display:flex;position:absolute;inset:0}.tooltip{pointer-events:none;border:1px solid var(--border);background:#171b23f5;border-radius:8px;max-width:320px;padding:8px 10px;font-size:13px;display:none;position:absolute;box-shadow:0 6px 20px #00000059}.tooltip .label{word-break:break-all;margin-bottom:4px;font-weight:700}.tooltip .meta{color:var(--muted);font-variant-numeric:tabular-nums}.nav{gap:10px;font-size:13px;display:flex}.nav a{color:var(--muted);text-decoration:none}.nav a[aria-current=page],.nav a:hover{color:var(--text)}body.overlay,body.overlay #root{background:0 0}body.overlay header{display:none}a{color:var(--accent)}.page{flex-direction:column;flex:1;gap:20px;min-height:0;padding:16px;display:flex;overflow:auto}.page section{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:14px 16px}.page h2{margin:0 0 10px;font-size:15px}.page h3{color:var(--muted);margin:16px 0 8px;font-size:13px;font-weight:600}.muted{color:var(--muted);font-size:13px}.error{color:var(--dot);margin:6px 0;font-size:13px}.status.warn{color:var(--dot)}.live{color:var(--live)}.page table{border-collapse:collapse;width:100%;font-size:13px}.page th,.page td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:6px 8px}.page th{color:var(--muted);font-weight:600}.page td.num,.page th.num{text-align:right;font-variant-numeric:tabular-nums}.page td.source{text-overflow:ellipsis;white-space:nowrap;max-width:240px;color:var(--muted);overflow:hidden}.page td.label-cell,.label-cell{word-break:break-all}.page td.memo{color:var(--muted);max-width:260px}.page tr.inactive td{opacity:.5}.page td.actions{white-space:nowrap;gap:4px;display:flex}.badge{border:1px solid var(--border);color:var(--muted);border-radius:10px;margin-left:6px;padding:1px 6px;font-size:11px}button,input,select{font:inherit;font-size:13px}.page button,header select,.replay-controls button{background:var(--bg);color:var(--text);border:1px solid var(--border);cursor:pointer;border-radius:6px;padding:4px 10px}.page button:disabled{opacity:.4;cursor:default}.page button[aria-pressed=true],.replay-controls button[aria-pressed=true]{border-color:var(--accent)}.page button.link{color:var(--accent);background:0 0;border:0;padding:0}.page input,.page select{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:4px 8px}.inline-form{flex-wrap:wrap;align-items:center;gap:6px;margin:10px 0;display:flex}.inline-form input.wide{flex:1;min-width:220px}.settings{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;padding:8px 0;display:grid}.settings label{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;display:flex}.settings label.check{flex-direction:row;align-items:center}.settings .form-actions{grid-column:1/-1;align-items:center;gap:10px;display:flex}.columns{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;display:grid}.chips{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.chips li{background:var(--bg);border:1px solid var(--border);border-radius:14px;align-items:center;gap:6px;padding:3px 4px 3px 10px;font-size:13px;display:flex}.chips li button{border-radius:10px;padding:1px 8px}.stats-page{flex-flow:wrap;align-items:flex-start}.stats-page .sessions{flex:0 0 260px}.stats-page .session-detail{flex:1;min-width:320px}.sessions ul{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.sessions button{text-align:left;width:100%}.summary{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:0;display:grid}.summary dt{color:var(--muted);font-size:12px}.summary dd{font-variant-numeric:tabular-nums;margin:2px 0 0}.chart .legend{flex-wrap:wrap;gap:12px;margin:0 0 6px;padding:0;font-size:12px;list-style:none;display:flex}.chart .legend li,.chart-tip .meta{align-items:center;gap:6px;display:flex}.swatch{border-radius:3px;width:10px;height:10px;display:inline-block}.chart-plot{position:relative}.chart svg{width:100%;height:auto;display:block}.chart .grid{stroke:var(--border);stroke-width:1px}.chart .crosshair{stroke:var(--muted);stroke-width:1px;stroke-dasharray:3 3}.chart .axis{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.chart-tip{pointer-events:none;border:1px solid var(--border);white-space:nowrap;background:#171b23f5;border-radius:8px;padding:6px 9px;font-size:12px;position:absolute;top:0;transform:translate(-50%)}.chart-tip .label{margin-bottom:2px;font-weight:700}.chart-tip b{font-variant-numeric:tabular-nums}.replay-controls{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;display:flex}.replay-controls input[type=range]{width:240px}.replay-controls .pos{font-variant-numeric:tabular-nums}
