:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0a0b0d;--letterbox:#07080a;--surface:#111316;--raised:#15181c;--line:#22262c;--line-soft:#191d22;--text:#e3e6ea;--dim:#949ca5;--faint:#626a73;--accent:#4e9cd6;--ok:#4f9d63;--warn:#c2912f;--bad:#cf5f52;--mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--sans:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Helvetica, sans-serif;--r:2px;--panel-h:15rem;--clip-w:124px;--clip-h:70px}*{box-sizing:border-box;min-width:0}img{max-width:100%;display:block}html,body{height:100%}body{background:var(--bg);color:var(--text);font:13px/1.5 var(--sans);-webkit-font-smoothing:antialiased;margin:0;overflow:hidden}#app{flex-direction:column;height:100dvh;display:flex}#topbar{border-bottom:1px solid var(--line);background:var(--surface);align-items:center;gap:1.25rem;height:44px;padding:0 .875rem;display:flex}.brand{align-items:baseline;gap:.5rem;display:flex}h1{letter-spacing:.01em;margin:0;font-size:13px;font-weight:620}.brand-sub{text-transform:uppercase;letter-spacing:.13em;color:var(--faint);font-size:10px}#status{font-family:var(--mono);color:var(--dim);align-items:center;gap:.45rem;margin:0 auto 0 0;font-size:11px;display:flex}#status:before{content:"";background:var(--faint);border-radius:50%;flex:none;width:6px;height:6px}#status[data-kind=busy]:before{background:var(--warn);animation:1.2s ease-in-out infinite pulse}#status[data-kind=live]:before{background:var(--ok)}@keyframes pulse{50%{opacity:.2}}.actions{gap:.375rem;display:flex}button{font:inherit;border:1px solid var(--line);border-radius:var(--r);background:var(--raised);color:var(--text);cursor:pointer;padding:.25rem .7rem;font-size:12px}button:hover:not(:disabled){background:#1b1f24;border-color:#313841}button:disabled{opacity:.35;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#061119;font-weight:600}button.primary:hover:not(:disabled){filter:brightness(1.1);background:var(--accent)}button.quiet{color:var(--dim);background:0 0}button.quiet:hover:not(:disabled){color:var(--text)}:focus-visible{outline:1px solid var(--accent);outline-offset:1px}input{font:inherit;font-family:var(--mono);border:1px solid var(--line);border-radius:var(--r);color:var(--text);background:#08090b;padding:.25rem .5rem;font-size:12px}input::placeholder{color:var(--faint)}input:focus{border-color:var(--accent);outline:none}.error{border-bottom:1px solid color-mix(in srgb, var(--bad) 40%, var(--line));background:color-mix(in srgb, var(--bad) 13%, var(--bg));color:#f0b6ae;margin:0;padding:.45rem .875rem;font-size:12px}#phrase-veil{display:none}#phrase-veil:has(>form:not([hidden])){background:color-mix(in srgb, var(--letterbox) 78%, transparent);z-index:10;place-items:center;display:grid;position:fixed;inset:0}#phrase-form{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);width:min(24rem,100vw - 2rem);padding:1.125rem}#phrase-form h2{margin:0 0 .5rem;font-size:13px;font-weight:620}#phrase-form label{color:var(--dim);margin-bottom:.7rem;font-size:12px;display:block}#phrase-form .row{gap:.4rem;display:flex}#phrase-form input{flex:1}#viewer{grid-template-rows:minmax(0, 1fr) auto auto auto var(--panel-h);flex:1;min-height:0;display:grid}#topbar,.error{flex:none}#stage{background:var(--letterbox);grid-template-rows:minmax(0,1fr) auto;min-height:0;display:grid}.stage-frame{justify-content:center;align-items:center;min-height:0;padding:1.25rem;display:flex;position:relative;overflow:hidden}.shot{object-fit:contain;border:1px solid var(--line);background:#000;min-width:0;max-width:100%;min-height:0;max-height:100%}.ghost{border:1px dashed var(--line);background:linear-gradient(180deg, var(--surface), transparent);flex:0 auto;width:min(72ch,100%);min-height:0;max-height:100%;padding:1rem 1.125rem;position:relative;overflow:hidden}.ghost:after{content:"";background:linear-gradient(180deg, transparent, var(--letterbox));height:3rem;position:absolute;inset:auto 0 0}.ghost-text{font-family:var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;color:var(--dim);margin:0;font-size:12px;line-height:1.55}.stage-frame .bar{background:var(--line);height:2px;position:absolute;inset:auto 0 0;overflow:hidden}.stage-frame .bar:after{content:"";background:var(--accent);width:28%;height:100%;animation:1.15s ease-in-out infinite sweep;display:block}@keyframes sweep{0%{transform:translate(-100%)}to{transform:translate(360%)}}.stage-caption{border-top:1px solid var(--line);background:var(--bg);align-items:center;gap:.7rem;min-height:34px;padding:0 .875rem;font-size:11px;display:flex}.stage-caption:empty{display:none}#transport{border-bottom:1px solid var(--line);background:var(--surface);align-items:center;gap:.75rem;height:34px;padding:0 .875rem;display:flex}.transport-nav{align-items:center;gap:.45rem;margin-right:auto;display:flex}.transport-tools{align-items:center;gap:.75rem;display:flex}.step{font-family:var(--mono);padding:.1rem .5rem;line-height:1.2}.stamp{font-family:var(--mono);font-variant-numeric:tabular-nums;padding-left:.35rem;font-size:12px}.counter,.transport-status{font-family:var(--mono);color:var(--faint);white-space:nowrap;font-size:11px}.filter{width:15rem}#track{border-bottom:1px solid var(--line);background:var(--bg)}.track-scroll{scrollbar-width:thin;overflow:auto hidden}.track-scroll:focus-visible{outline-offset:-1px}.track-strip{align-items:flex-start;gap:6px;width:max-content;min-width:100%;padding:10px 12px 16px;display:flex}.track-head{height:var(--clip-h);border-right:1px solid var(--line);flex:none;place-items:center;margin-right:4px;padding-right:10px;display:grid}.track-head-note{width:6rem;color:var(--faint);text-align:center;font-size:10px;line-height:1.35}.track-head-note.is-busy{color:var(--accent)}.track-more{padding:.2rem .5rem;font-size:11px}.track-empty{color:var(--faint);align-self:center;padding:1.5rem .5rem;font-size:12px}.clip{width:var(--clip-w);text-align:left;background:0 0;border:0;flex-direction:column;flex:none;gap:5px;padding:0;display:flex}.clip-shot{height:var(--clip-h);background:var(--surface);border:1px solid var(--line);position:relative;overflow:hidden}.clip-shot img{object-fit:cover;width:100%;height:100%;display:block}.clip:hover .clip-shot{border-color:#333c45}.clip.is-on .clip-shot{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.clip.is-on:before{content:"";background:var(--accent);height:2px;margin-bottom:-2px}.clip-lead{-webkit-line-clamp:4;font-family:var(--mono);color:var(--faint);-webkit-box-orient:vertical;padding:5px 6px;font-size:8px;line-height:1.45;display:-webkit-box;overflow:hidden}.clip-shot:after{content:"";width:5px;height:5px;position:absolute;top:4px;right:4px}.clip[data-frame=none] .clip-shot:after{box-shadow:inset 0 0 0 1px var(--faint)}.clip[data-frame=remote] .clip-shot:after{box-shadow:inset 0 0 0 1px var(--accent)}.clip[data-frame=local] .clip-shot:after{background:var(--accent)}.clip-redacted{font-family:var(--mono);color:var(--warn);background:color-mix(in srgb, var(--warn) 18%, #000);border:1px solid color-mix(in srgb, var(--warn) 40%, transparent);padding:0 3px;font-size:8px;position:absolute;bottom:4px;left:4px}.clip-time{font-family:var(--mono);color:var(--faint);font-variant-numeric:tabular-nums;font-size:10px}.clip.is-on .clip-time{color:var(--accent)}.track-gap{width:30px;height:var(--clip-h);background:repeating-linear-gradient(135deg, transparent 0 3px, var(--line-soft) 3px 4px);flex:none;position:relative}.track-gap-label{text-align:center;font-family:var(--mono);color:var(--faint);font-size:9px;position:absolute;inset:auto 0 -15px}.track-day{height:var(--clip-h);border-left:1px solid var(--line);flex:none;place-items:center;padding:0 2px;display:grid}.track-day span{writing-mode:vertical-rl;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-size:9px}#tabs{background:var(--surface);border-bottom:1px solid var(--line);gap:1px;padding:0 .875rem;display:flex}.tab{text-transform:uppercase;letter-spacing:.09em;color:var(--faint);background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;margin-bottom:-1px;padding:.5rem .85rem;font-size:11px}.tab:hover{color:var(--dim);background:0 0}.tab[aria-selected=true]{color:var(--text);border-bottom-color:var(--accent)}#panel{background:var(--bg);min-height:0;overflow:hidden}.panel-body{scrollbar-width:thin;height:100%;padding:.875rem;overflow:auto}.panel-head{border-bottom:1px solid var(--line-soft);text-transform:uppercase;letter-spacing:.09em;color:var(--faint);justify-content:space-between;align-items:baseline;gap:.75rem;margin:1.125rem 0 .5rem;padding-bottom:.35rem;font-size:10px;display:flex}.panel-head:first-child{margin-top:0}.panel-head button{text-transform:none;letter-spacing:0;padding:.1rem .45rem;font-size:11px}.grid{background:var(--line-soft);border:1px solid var(--line-soft);grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:1px;display:grid}.field{background:var(--surface);padding:.4rem .6rem}.field-key{text-transform:uppercase;letter-spacing:.1em;color:var(--faint);font-size:9px;display:block}.field-val{font-family:var(--mono);overflow-wrap:anywhere;margin-top:.1rem;font-size:12px;display:block}.tags{flex-wrap:wrap;gap:.3rem;display:flex}.tag{font-family:var(--mono);color:var(--warn);background:color-mix(in srgb, var(--warn) 12%, transparent);border:1px solid color-mix(in srgb, var(--warn) 34%, transparent);padding:.05rem .35rem;font-size:10px}.ocr{font-family:var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text);margin:0;font-size:12px;line-height:1.5}.note{color:var(--faint);margin:0;font-size:12px}.services{margin:0;padding:0;list-style:none}.svc{border-bottom:1px solid var(--line-soft);align-items:center;gap:.55rem;padding:.28rem 0;font-size:12px;display:flex}.svc-name{flex:1}.svc-state{font-family:var(--mono);color:var(--faint);font-size:11px}.dot{background:var(--faint);border-radius:50%;flex:none;width:6px;height:6px}.svc[data-state=active] .dot{background:var(--ok)}.svc[data-state=activating] .dot{background:var(--warn)}.svc[data-state=failed] .dot{background:var(--bad)}.svc[data-state=failed] .svc-state{color:var(--bad)}.is-muted{color:var(--faint)}.is-ok{color:var(--ok)}.is-warn{color:var(--warn)}.is-bad{color:var(--bad)}@media (width<=720px){.filter{width:8rem}.counter{display:none}:root{--panel-h:12rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
