.uplot,.uplot *,.uplot :before,.uplot :after{box-sizing:border-box}.uplot{width:min-content;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}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{-webkit-user-select:none;user-select:none;position:relative}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{width:100%;height:100%;display:block;position:relative}.u-axis{position:absolute}.u-legend{text-align:center;margin:auto;font-size:14px}.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{pointer-events:none;background:#00000012;position:absolute}.u-cursor-x,.u-cursor-y{pointer-events:none;will-change:transform;position:absolute;top:0;left:0}.u-hz .u-cursor-x,.u-vt .u-cursor-y{border-right:1px dashed #607d8b;height:100%}.u-hz .u-cursor-y,.u-vt .u-cursor-x{border-bottom:1px dashed #607d8b;width:100%}.u-cursor-pt{pointer-events:none;will-change:transform;border:0 solid;border-radius:50%;position:absolute;top:0;left:0;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{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0d0d0d;--surface-1:#141413;--surface-2:#1a1a19;--surface-3:#242422;--border:#2d2d2b;--border-strong:#3d3d3a;--ink:#f0efec;--ink-2:#c3c2b7;--ink-3:#8d8c85;--ok:#0ca30c;--warn:#fab219;--serious:#ec835a;--crit:#d03b3b;--idle:#5c5b56;--rtmp:#3987e5;--srt:#d95926;--accent:#3987e5;--mono:ui-monospace, "SF Mono", "JetBrains Mono", "Cascadia Mono", Menlo, Consolas, monospace;--sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--radius:6px;font-family:var(--sans);background:var(--bg);color:var(--ink);font-size:14px}*{box-sizing:border-box}html,body,#root{background:var(--bg);height:100%;margin:0}body{-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}.num,.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.muted{color:var(--ink-3)}.dim{color:var(--ink-2)}.small{font-size:12px}.tiny{font-size:11px}.row{align-items:center;gap:8px;display:flex}.wrap{flex-wrap:wrap}.grow,.spacer{flex:1}.right{text-align:right}.app{flex-direction:column;min-height:100%;display:flex}.topbar{background:var(--surface-1);border-bottom:1px solid var(--border);z-index:20;align-items:center;gap:14px;height:48px;padding:0 14px;display:flex;position:sticky;top:0}.brand{letter-spacing:.04em;white-space:nowrap;align-items:center;gap:8px;font-weight:700;display:flex}.brand .dot{background:var(--ok);border-radius:50%;width:10px;height:10px}.nav{gap:2px;display:flex}.nav a{border-radius:var(--radius);color:var(--ink-2);padding:6px 10px;font-size:13px}.nav a:hover{background:var(--surface-3);color:var(--ink)}.nav a.active{background:var(--surface-3);color:var(--ink);box-shadow:inset 0 -2px 0 var(--accent)}.topstats{color:var(--ink-2);white-space:nowrap;gap:14px;font-size:12px;display:flex}.topstats b{color:var(--ink);font-weight:600}main{flex:1;padding:12px 14px 24px}.pill{letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;border:1px solid var(--border-strong);background:var(--surface-3);color:var(--ink-2);border-radius:999px;align-items:center;gap:6px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.pill:before{content:"";background:var(--idle);border-radius:50%;width:7px;height:7px}.pill.ok{color:#9be09b;background:#0f2a0f;border-color:#1f5a1f}.pill.ok:before{background:var(--ok)}.pill.warn{color:#ffd98a;background:#2b2108;border-color:#6b4e0c}.pill.warn:before{background:var(--warn)}.pill.crit{color:#ffb1b1;background:#2e1010;border-color:#7a2323}.pill.crit:before{background:var(--crit);animation:1s steps(2,end) infinite blink}.pill.idle:before{background:var(--idle)}.pill.plain:before{display:none}.proto{font-family:var(--mono);border:1px solid;border-radius:4px;padding:1px 6px;font-size:11px;font-weight:700}.proto.rtmp{color:#9cc4f5;background:#0f2036;border-color:#24528a}.proto.srt{color:#f2a07f;background:#331709;border-color:#8a3a17}@keyframes blink{50%{opacity:.25}}.btn{border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface-3);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:5px 10px;font-size:12px;line-height:1.4;display:inline-flex}.btn:hover{background:#2c2c29;border-color:#5a5a56}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:#1c4f8c;border-color:#2a6ab5}.btn.primary:hover{background:#225da3}.btn.danger{color:#ffc9c9;background:#4a1414;border-color:#7a2323}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--surface-3)}.btn.on{border-color:var(--accent);background:#18405f}.btn.sm{padding:2px 7px;font-size:11px}.seg{border:1px solid var(--border-strong);border-radius:var(--radius);display:inline-flex;overflow:hidden}.seg button{background:var(--surface-2);cursor:pointer;color:var(--ink-2);border:0;padding:4px 10px;font-size:12px}.seg button+button{border-left:1px solid var(--border-strong)}.seg button.on{color:var(--ink);background:#18405f}input[type=text],input[type=password],input[type=number],input:not([type]),select,textarea{background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius);min-width:0;padding:6px 8px}input:focus,select:focus,textarea:focus,.btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}label.field{color:var(--ink-2);flex-direction:column;gap:4px;font-size:12px;display:flex}.check{cursor:pointer;align-items:center;gap:6px;font-size:13px;display:inline-flex}.panel{background:var(--surface-1);border:1px solid var(--border);border-radius:8px}.panel>h3,.panel-h{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);border-bottom:1px solid var(--border);align-items:center;gap:8px;margin:0;padding:10px 12px;font-size:12px;font-weight:700;display:flex}.panel-b{padding:10px 12px}.grid{gap:12px;display:grid}.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (width<=1100px){.cols-3,.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.cols-2,.cols-3,.cols-4{grid-template-columns:1fr}}h1.page{align-items:center;gap:10px;margin:4px 0 12px;font-size:18px;display:flex}table.kv{border-collapse:collapse;width:100%;font-size:12.5px}table.kv td{vertical-align:top;border-bottom:1px solid #1f1f1d;padding:4px 0}table.kv td:first-child{color:var(--ink-3);width:48%;padding-right:8px}table.kv td:last-child{font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right}table.kv tr.bad td:last-child{color:#ffb1b1}table.kv tr.warnrow td:last-child{color:#ffd98a}table.kv tr.sect td{color:var(--ink-2);letter-spacing:.06em;text-transform:uppercase;font-size:11px;font-weight:700;font-family:var(--sans);text-align:left;padding-top:10px}table.list{border-collapse:collapse;width:100%;font-size:12.5px}table.list th{text-align:left;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);border-bottom:1px solid var(--border);background:var(--surface-1);padding:6px 8px;font-size:11px;font-weight:600;position:sticky;top:0}table.list td{vertical-align:top;border-bottom:1px solid #1f1f1d;padding:6px 8px}table.list tr:hover td{background:#181817}.scroll{overflow:auto}.alertbar{flex-direction:column;gap:4px;margin-bottom:10px;display:flex}.alert{border-radius:var(--radius);border:1px solid;align-items:center;gap:10px;padding:6px 10px;font-size:13px;display:flex}.alert.crit{background:#2a0f0f;border-color:#7a2323}.alert.warn{background:#261e08;border-color:#6b4e0c}.alert.info{background:var(--surface-2);border-color:var(--border)}.alert .what{font-weight:600}.alert .feedtag{font-family:var(--mono);font-weight:700}.alert.acked{opacity:.55}.allclear{border-radius:var(--radius);color:#9be09b;background:#0f1f0f;border:1px solid #1f4a1f;align-items:center;gap:8px;margin-bottom:10px;padding:6px 10px;font-size:13px;display:flex}.toasts{z-index:50;flex-direction:column;gap:8px;width:min(420px,100vw - 28px);display:flex;position:fixed;bottom:14px;right:14px}.toast{background:#1d1010;border:1px solid #7a2323;border-radius:8px;padding:10px 12px;font-size:13px;box-shadow:0 6px 24px #000a}.toast.warn{background:#221b08;border-color:#6b4e0c}.linkbanner{color:#ffd98a;background:#3a2a05;border-bottom:1px solid #6b4e0c;padding:6px 14px;font-size:13px}.mv-toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;display:flex}.mv-grid{gap:10px;display:grid}.mv-grid.l4x2{grid-template-columns:repeat(4,minmax(0,1fr))}.mv-grid.l2x2{grid-template-columns:repeat(2,minmax(0,1fr))}.mv-grid.l1{grid-template-columns:minmax(0,1fr);max-width:1500px;margin:0 auto}.mv-grid.lcmp{grid-template-columns:repeat(2,minmax(0,1fr))}@media (width<=1300px){.mv-grid.l4x2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=700px){.mv-grid.l4x2,.mv-grid.l2x2,.mv-grid.lcmp{grid-template-columns:1fr}}.tile{background:var(--surface-1);border:1px solid var(--border);border-top:3px solid var(--idle);border-radius:8px;flex-direction:column;display:flex;position:relative;overflow:hidden}.tile.ok{border-top-color:var(--ok)}.tile.warn{border-top-color:var(--warn)}.tile.crit{border-top-color:var(--crit);box-shadow:0 0 0 1px #7a2323,0 0 18px #d03b3b33}.tile-head{align-items:center;gap:8px;min-height:36px;padding:6px 8px;display:flex}.tile-name{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:700;overflow:hidden}.tile-num{font-family:var(--mono);color:var(--ink-3);font-size:12px}.tally{font-family:var(--mono);background:var(--surface-3);color:var(--ink-3);cursor:pointer;border:1px solid #0000;border-radius:4px;align-items:center;gap:4px;padding:1px 5px;font-size:10.5px;font-weight:700;display:inline-flex}.tally i{background:var(--idle);border-radius:50%;width:7px;height:7px;display:inline-block}.tally.ok i{background:var(--ok)}.tally.warn i{background:var(--warn)}.tally.crit i{background:var(--crit);animation:1s steps(2,end) infinite blink}.tally.sel{border-color:var(--ink-3);color:var(--ink)}.video-wrap{aspect-ratio:16/9;background:#000;position:relative}.video-wrap video{object-fit:contain;background:#000;width:100%;height:100%;display:block}.video-overlay{text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:12px;display:flex;position:absolute;inset:0}.video-overlay .big{letter-spacing:.08em;font-size:22px;font-weight:800}.video-overlay.crit .big{color:#ff8a8a}.video-overlay.warn .big{color:#ffd98a}.video-overlay.idle .big{color:var(--ink-3)}.vo-badges{pointer-events:none;flex-wrap:wrap;gap:4px;display:flex;position:absolute;top:6px;left:6px}.vo-badge{font-size:11px;font-family:var(--mono);background:#000b;border:1px solid #fff2;border-radius:4px;padding:1px 6px}.vo-badge.crit{background:#6e1414e6;border-color:#d03b3b}.vo-badge.warn{background:#5a4206e6;border-color:#fab219}.vo-controls{gap:4px;display:flex;position:absolute;top:6px;right:6px}.vo-controls .btn{background:#000b;border-color:#fff2;padding:3px 7px}.vo-controls .btn.on{border-color:var(--accent);background:#18405fe6}.meters{pointer-events:none;gap:3px;display:flex;position:absolute;top:40px;bottom:6px;right:6px}.meter{background:#000a;border:1px solid #ffffff1a;border-radius:2px;width:7px;position:relative;overflow:hidden}.meter .fill{background:linear-gradient(#d03b3b 0%,#fab219 15%,#0ca30c 30% 100%);background-size:100% var(--h,100px);background-position:bottom;transition:height .12s linear;position:absolute;bottom:0;left:0;right:0}.meter .peak{background:#fff;height:2px;position:absolute;left:0;right:0}.player-line{font-family:var(--mono);color:var(--ink-2);pointer-events:none;background:#000a;border-radius:3px;padding:1px 5px;font-size:10.5px;position:absolute;bottom:6px;left:6px}.player-line.bad{color:#ffd98a}.tile-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:2px 8px;padding:6px 8px 4px;font-size:11px;display:grid}.tile-stats .s{flex-direction:column;min-width:0;display:flex}.tile-stats .s span:first-child{color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;font-size:10px}.tile-stats .s span:last-child{font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.tile-stats .s.bad span:last-child{color:#ff9b9b}.tile-stats .s.wrn span:last-child{color:#ffd98a}.tile-issue{white-space:nowrap;text-overflow:ellipsis;min-height:22px;padding:3px 8px 6px;font-size:12px;overflow:hidden}.tile-issue.crit{color:#ff9b9b}.tile-issue.warn{color:#ffd98a}.tile-issue.ok{color:var(--ink-3)}.tile:fullscreen{background:#000;border:0;border-radius:0}.tile:fullscreen .video-wrap{aspect-ratio:auto;flex:1}.tile.big .tile-stats{grid-template-columns:repeat(8,minmax(0,1fr))}.tile.big .tile-name{font-size:16px}@media (width>=3000px){:root{font-size:18px}.tile-stats .s span:last-child{font-size:16px}.tile-stats .s span:first-child{font-size:13px}}.chart{width:100%}.chart-legend{color:var(--ink-2);flex-wrap:wrap;gap:12px;padding:0 2px 4px;font-size:12px;display:flex}.chart-legend i{vertical-align:middle;width:14px;height:2px;margin-right:5px;display:inline-block}.chart-legend i.dash{height:2px;background:repeating-linear-gradient(90deg,currentColor 0 4px,#0000 4px 7px)!important}.chart-title{color:var(--ink-2);margin-bottom:2px;font-size:12px;font-weight:600}.u-legend{display:none}.uplot{font-family:var(--sans)}.u-tooltip{pointer-events:none;z-index:10;border:1px solid var(--border-strong);white-space:nowrap;font-size:11.5px;font-family:var(--mono);background:#0d0d0dee;border-radius:6px;padding:6px 8px;position:absolute}.codebox{background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius);font-family:var(--mono);align-items:center;gap:6px;min-width:0;padding:4px 4px 4px 8px;font-size:12px;display:flex}.codebox code{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.codebox code.secret{letter-spacing:.1em;color:var(--ink-3)}.ingest-card{grid-template-columns:110px minmax(0,1fr);align-items:center;gap:6px 10px;font-size:12px;display:grid}.ingest-card .lbl{color:var(--ink-3)}.bar{background:var(--surface-3);border-radius:4px;height:8px;overflow:hidden}.bar>div{background:var(--accent);height:100%}.bar.warn>div{background:var(--warn)}.bar.crit>div{background:var(--crit)}.statgrid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.stat{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:10px}.stat .k{color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;font-size:11px}.stat .v{font-size:22px;font-family:var(--mono);font-variant-numeric:tabular-nums;margin-top:4px}.stat .s{color:var(--ink-3);font-size:11px;font-family:var(--mono);margin-top:2px}.login{max-width:360px;margin:12vh auto;padding:24px}.login h2{margin:0 0 4px}.error{color:#ffb1b1;font-size:13px}.note{background:var(--surface-2);border-left:3px solid var(--accent);color:var(--ink-2);border-radius:0 6px 6px 0;padding:8px 10px;font-size:12.5px}.note.warn{border-left-color:var(--warn)}.sender{border:1px dashed #6b4e0c}.tag{font-family:var(--mono);background:var(--surface-3);color:var(--ink-2);border-radius:4px;padding:1px 6px;font-size:11px}pre.log{white-space:pre-wrap;word-break:break-all;max-height:420px;margin:0;font-size:11.5px;overflow:auto}.tabs{border-bottom:1px solid var(--border);gap:2px;margin-bottom:12px;display:flex}.tabs button{color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:8px 12px}.tabs button.on{color:var(--ink);border-bottom-color:var(--accent)}.proto.encoder{color:#d9c3f5;background:#22133a;border-color:#5b3a8a}.enc-grid td.bad{color:#ff9b9b}.enc-grid td.wrn{color:#ffd98a}.menu-btn,.lbl-short{display:none}.topbar .nav{display:contents}.topbar .nav a{order:1}.topbar .spacer{order:2}.topbar .topstats{order:3}.nav-user{order:4;align-items:center;gap:10px;display:flex}.topbar .brand{order:0}.nav a,.topstats>span{white-space:nowrap}@media (width<=2100px){.hide-md{display:none!important}}@media (width<=1700px){.topbar{flex-wrap:wrap;gap:6px 8px;height:auto;min-height:48px;padding:6px 10px}.menu-btn{order:3;padding:8px 12px;font-size:13px;display:inline-flex}.topbar .spacer{display:none}.topbar .topstats{flex-wrap:wrap;flex:1;order:2;justify-content:flex-end;gap:6px 10px;font-size:11.5px}.topbar .nav{display:none}.topbar.menu-open .nav{border-top:1px solid var(--border);flex-direction:column;order:10;gap:2px;width:100%;padding-top:6px;display:flex}.topbar.menu-open .nav a{padding:12px 10px;font-size:15px}.topbar.menu-open .nav-user{border-top:1px solid var(--border);flex-wrap:wrap;margin-top:4px;padding:10px 4px 4px}.topbar.menu-open .nav-user .btn{padding:8px 12px;font-size:13px}}@media (width<=900px){html,body{overflow-x:hidden}.hide-sm{display:none!important}.lbl-long{display:none}.lbl-short{display:inline}main{padding:8px 8px 24px}h1.page{flex-wrap:wrap;gap:6px;font-size:16px}.panel-h,.panel>h3{flex-wrap:wrap;row-gap:6px}.panel-b{padding:8px}.mv-toolbar{gap:8px}.mv-toolbar .row{flex-wrap:wrap}.seg{flex-wrap:nowrap;max-width:100%;overflow-x:auto}.seg button{white-space:nowrap;padding:7px 11px}.tabs{overflow-x:auto}.tabs button{white-space:nowrap;padding:10px 12px}.btn{padding:7px 11px}.btn.sm{padding:5px 9px;font-size:12px}.alert{flex-wrap:wrap;row-gap:4px}.alert .spacer{flex-basis:100%;height:0}.tile-head{flex-wrap:wrap;row-gap:4px}.tile.big .tile-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.vo-controls .btn{padding:7px 9px}.tally{padding:3px 6px}.scroll{-webkit-overflow-scrolling:touch}.scroll>table.list,.panel-b.scroll table.list{min-width:720px}table.list th,table.list td{padding:6px}.ingest-card{grid-template-columns:minmax(0,1fr);gap:2px}.ingest-card .lbl{margin-top:6px}.codebox{padding:4px}.codebox .btn{padding:6px 10px}input[type=text],input[type=password],input[type=number],input:not([type]),select,textarea{padding:9px 10px;font-size:16px}.statgrid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.stat .v{font-size:19px}.login{margin:6vh auto;padding:18px}pre.log{max-height:300px}}@media (width<=420px){.tile-stats,.tile.big .tile-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar .topstats{font-size:11px}}
