*{box-sizing:border-box}:root,[data-theme=light]{--bg:#fff;--text:#000;--text-muted:#333;--border:#000;--border-muted:#ddd;--input-bg:#fff;--btn-hover:#f5f5f5;--btn-active:#eee;--video-bg:#f0f0f0}[data-theme=dark]{--bg:#1a1a1a;--text:#e8e8e8;--text-muted:#b0b0b0;--border:#e8e8e8;--border-muted:#444;--input-bg:#2a2a2a;--btn-hover:#333;--btn-active:#444;--video-bg:#0f0f0f}body,html{margin:0;padding:0;min-height:100vh;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text)}h1,h2,h3{margin:0 0 .5rem;font-weight:600}button,h1,h2,h3{color:var(--text)}button{cursor:pointer;font:inherit;border:1px solid var(--border);border-radius:2px;padding:.5rem 1rem;background:var(--bg)}button:disabled{cursor:not-allowed;opacity:.5}button:not(:disabled):hover{background:var(--btn-hover)}button:not(:disabled):active{background:var(--btn-active)}video{display:block;background:var(--video-bg);border:1px solid var(--border-muted);overflow:hidden}.theme-toggle{position:fixed;top:.75rem;left:.75rem;z-index:100}.theme-toggle-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:1px solid var(--border);background:var(--bg);color:var(--text)}.theme-toggle-btn:hover{background:var(--btn-hover)}.stream-demo{display:flex;flex-direction:column;align-items:center;gap:1.5rem}.stream-demo-live-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:1px solid var(--border);font-size:.9rem;color:var(--text)}.stream-demo-live-dot{width:6px;height:6px;background:var(--text);animation:stream-demo-pulse 1.5s ease-in-out infinite}@keyframes stream-demo-pulse{0%,to{opacity:1}50%{opacity:.4}}.stream-demo-status-live{color:var(--text);font-weight:500}.stream-demo .stream-demo-videos{display:flex;gap:2rem;flex-wrap:wrap;justify-content:center}.stream-demo .stream-demo-panel{text-align:center}.stream-demo .stream-demo-panel h3{margin-bottom:.5rem;font-size:1rem;color:var(--text)}.stream-demo .stream-demo-video-box{width:640px;height:640px;object-fit:cover}.stream-demo .stream-demo-video-mirror{transform:scaleX(-1)}.stream-demo-below{display:flex;flex-direction:column;align-items:center;gap:.75rem;width:100%;max-width:1280px;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border-muted)}.stream-demo .stream-demo-status{margin:0;font-size:.85rem;color:var(--text-muted)}.stream-demo .stream-demo-controls{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center}.stream-demo .stream-demo-controls .btn{padding:.5rem 1rem;border:1px solid var(--border);background:var(--bg);color:var(--text)}.stream-demo .btn-start:hover:not(:disabled),.stream-demo .btn-stop:hover:not(:disabled),.stream-demo .btn-track:hover:not(:disabled){background:var(--btn-hover)}.stream-demo-hint{margin:0;font-size:.8rem;color:var(--text-muted)}.stream-demo-errors{color:var(--text);font-size:.9rem}.stream-demo-errors p{margin:.25rem 0}.page{min-height:100vh;padding:2rem 1rem;display:flex;flex-direction:column;align-items:center}.page-header{text-align:center;margin-bottom:2rem}.page-header h1{font-size:1.75rem;margin-bottom:.5rem}.subtitle{color:var(--text-muted);font-size:.95rem;margin:0}.subtitle a{color:var(--text);text-decoration:underline}.subtitle a:hover{text-decoration:none}.playback-hint{margin-top:1.5rem;font-size:.85rem;color:var(--text-muted)}.playback-hint a{color:var(--text);word-break:break-all;text-decoration:underline}.page-error{color:var(--text);margin-top:1rem}.page-start .start-form{display:flex;flex-direction:column;align-items:center;gap:1rem;max-width:360px;margin:0 auto}.start-label{display:flex;flex-direction:column;gap:.5rem;width:100%;font-size:.9rem;color:var(--text)}.start-input,.start-select{padding:.5rem .75rem;border-radius:0;border:1px solid var(--border);background:var(--input-bg);color:var(--text);font:inherit}.start-select{cursor:pointer;width:100%}.start-input:focus,.start-select:focus{outline:1px solid var(--border);outline-offset:0}.btn-create{padding:.5rem 1rem;border:1px solid var(--border);background:var(--bg);color:var(--text);width:100%}.btn-create:hover:not(:disabled){background:var(--btn-hover)}.app-footer{margin-top:auto;padding:2rem 1rem 1.5rem;text-align:center;font-size:.85rem;color:var(--text-muted);border-top:1px solid var(--border-muted)}.app-footer p{margin:.25rem 0}.app-footer a{color:var(--text);text-decoration:underline}.app-footer .powered{margin-top:.75rem}