:root{--paper: #f7f8f4;--paper-muted: #e9ece8;--ink: #111412;--ink-body: #303732;--ink-dim: #59615c;--ink-faint: #7a817c;--rule: rgba(17, 20, 18, .2);--accent: #e85434;--accent-hover: #cc4328;--accent-on: #ffffff;--accent-light: #d9ff57;--status-good: #478048;--status-warn: #bc7f25;--status-bad: #b84237;--font-sans: "IBM Plex Sans", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;color:var(--ink);background:var(--ink);font-family:var(--font-sans);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{width:100%;height:100%}html{background:var(--ink)}body{margin:0;overflow:hidden}button,input,textarea{font:inherit}button,input{appearance:none}::selection{background:var(--accent);color:var(--accent-on)}:focus-visible{outline:0;box-shadow:0 0 0 1px var(--accent),0 0 0 4px #e8543424}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.viewer-app{height:100dvh;min-height:420px;display:grid;grid-template-rows:auto auto minmax(0,1fr);overflow:hidden;background:var(--ink)}.session-header{position:relative;z-index:2;min-height:72px;display:grid;grid-template-columns:minmax(230px,auto) minmax(180px,auto) minmax(0,1fr);align-items:center;gap:24px;padding:12px 18px;border-bottom:1px solid var(--rule);background:linear-gradient(90deg,rgba(17,20,18,.024) 1px,transparent 1px),var(--paper);background-size:80px 100%;color:var(--ink)}.session-identity{min-width:0;display:flex;align-items:center;gap:11px}.session-mark{width:32px;height:32px;flex:0 0 32px;image-rendering:auto}.session-identity>div{min-width:0;display:grid;gap:1px}.session-identity strong{overflow:hidden;color:var(--ink);font-size:14px;font-weight:600;letter-spacing:-.02em;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.session-identity span,.session-id{color:var(--ink-dim);font-size:11px;line-height:1.3}.session-state{min-width:0;min-height:34px;display:flex;align-items:center;gap:14px;padding-left:18px;border-left:1px solid var(--rule)}.session-id{max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-id strong{color:var(--ink);font-family:var(--font-mono);font-size:10px;font-weight:500}.connection-state{display:inline-flex;align-items:center;gap:7px;color:var(--ink-body);font-size:12px;white-space:nowrap}.connection-dot{width:7px;height:7px;border-radius:50%;background:var(--ink-faint);box-shadow:0 0 0 3px #1114120f}.connection-state[data-state=connected] .connection-dot{background:var(--status-good);box-shadow:0 0 0 3px #47804821}.connection-state[data-state=connecting] .connection-dot,.connection-state[data-state=reconnecting] .connection-dot{background:var(--status-warn);box-shadow:0 0 0 3px #bc7f2521;animation:connection-pulse 1.4s ease-in-out infinite}.connection-state[data-state=disconnected] .connection-dot{background:var(--status-bad);box-shadow:0 0 0 3px #b842371f}.session-actions{min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:7px}.viewer-name{height:34px;display:flex;align-items:center;gap:8px;padding:0 9px;border:1px solid var(--rule);background:#ffffff61}.viewer-name span{color:var(--ink-faint);font-family:var(--font-mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase}.viewer-name input{width:82px;min-width:0;padding:0;border:0;outline:0;background:transparent;color:var(--ink);font:500 11px/1.2 var(--font-mono)}.control-button{height:34px;display:inline-flex;align-items:center;justify-content:center;padding:0 12px;border:1px solid var(--ink);border-radius:0;background:transparent;color:var(--ink);font:500 11px/1 var(--font-sans);white-space:nowrap;cursor:pointer;transition:background-color .14s ease,color .14s ease,border-color .14s ease}.control-button:hover:not(:disabled){background:var(--ink);color:var(--paper)}.control-button--primary{border-color:var(--accent);background:var(--accent);color:var(--accent-on)}.control-button--primary:hover:not(:disabled){border-color:var(--accent-hover);background:var(--accent-hover);color:var(--accent-on)}.control-button:disabled{border-color:var(--rule);background:transparent;color:var(--ink-faint);cursor:default}.control-button--primary:disabled{border-color:#e854343d;background:#e854341a;color:#1114127a}.session-telemetry{position:relative;z-index:2;min-height:39px;display:flex;align-items:center;gap:0;overflow-x:auto;border-bottom:1px solid rgba(255,255,255,.12);background:var(--ink);color:#f7f8f485;scrollbar-width:none}.session-telemetry::-webkit-scrollbar{display:none}.session-telemetry>span{min-width:max-content;display:inline-flex;align-items:baseline;gap:7px;padding:0 15px;border-right:1px solid rgba(255,255,255,.12);font:400 9px/38px var(--font-mono);letter-spacing:.06em;text-transform:uppercase}.session-telemetry strong{color:var(--paper);font-weight:500;letter-spacing:0;text-transform:none}.session-telemetry strong[data-quality=warn]{color:#e7b563}.session-telemetry strong[data-quality=bad]{color:#ed7b70}.telemetry-peer strong{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stage{position:relative;min-height:0;overflow:hidden;padding:12px;background:radial-gradient(circle at 50% 35%,#202522 0,#111412 44%,#090b0a)}.player{position:absolute;inset:12px;overflow:hidden;border:1px solid rgba(247,248,244,.16);background:#050706}.player__video{width:100%;height:100%;display:block;object-fit:contain;background:#050706}.player__overlay{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;resize:none;border:0;outline:0;background:transparent;color:transparent;caret-color:transparent;cursor:default}.player__overlay--remote-cursor{cursor:none}.viewer-empty-state{position:absolute;inset:12px;z-index:1;display:grid;place-content:center;gap:9px;padding:32px;background:linear-gradient(rgba(247,248,244,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(247,248,244,.035) 1px,transparent 1px),#0b0e0c;background-size:72px 72px;color:var(--paper);text-align:center;pointer-events:none}.viewer-empty-state span{color:var(--accent-light);font:500 10px/1.2 var(--font-mono);letter-spacing:.1em;text-transform:uppercase}.viewer-empty-state strong{font-size:clamp(20px,2.4vw,34px);font-weight:450;letter-spacing:-.035em}.viewer-notice{position:absolute;z-index:3;right:28px;bottom:26px;max-width:min(460px,calc(100% - 56px));padding:12px 14px;border:1px solid rgba(247,248,244,.28);border-left:3px solid var(--accent);background:#f7f8f4f5;color:var(--ink);box-shadow:0 16px 44px #00000047;font-size:12px;line-height:1.45}.viewer-notice--error{border-left-color:var(--status-bad)}@keyframes connection-pulse{0%,to{opacity:1}50%{opacity:.42}}@media(max-width:1180px){.session-header{grid-template-columns:minmax(210px,auto) minmax(0,1fr)}.session-state{justify-self:end}.session-actions{grid-column:1 / -1;justify-content:flex-start;padding-top:10px;border-top:1px solid var(--rule)}}@media(max-width:680px){.viewer-app{min-height:360px}.session-header{grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:10px 12px}.session-state{min-height:30px;padding-left:12px}.session-id{display:none}.session-actions{max-width:calc(100vw - 24px);justify-content:flex-start;overflow-x:auto;padding-top:9px;scrollbar-width:none}.session-actions::-webkit-scrollbar{display:none}.viewer-name input{width:68px}.control-button{flex:0 0 auto}.stage{padding:7px}.player,.viewer-empty-state{inset:7px}.viewer-notice{right:18px;bottom:16px;max-width:calc(100% - 36px)}}@media(prefers-reduced-motion:reduce){.connection-state .connection-dot{animation:none}}
