*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#0a0a0a;color:#fff;min-height:100vh}.app{max-width:800px;margin:0 auto;padding:2rem}.header{text-align:center;margin-bottom:2rem}.header h1{font-size:2.5rem;font-weight:700;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header .subtitle{color:#888;font-size:.9rem;margin-top:.5rem;display:block}.main{display:flex;flex-direction:column;gap:1.5rem}.video-container{position:relative;width:100%;aspect-ratio:16/9;background:#1a1a1a;border-radius:12px;overflow:hidden;border:2px solid #333}.video-container video{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .3s}.video-container video.active{opacity:1}.video-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#555}.video-placeholder span{font-size:3rem;margin-bottom:1rem}.live-indicator{position:absolute;top:1rem;left:1rem;background:#e53935;color:#fff;padding:.4rem .8rem;border-radius:4px;font-size:.75rem;font-weight:600;letter-spacing:.05em;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.controls{display:flex;justify-content:center;gap:1rem}.btn{padding:.875rem 2rem;font-size:1rem;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:transform .15s,box-shadow .15s}.btn:hover{transform:translateY(-2px)}.btn:active{transform:translateY(0)}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 15px #667eea66}.btn-primary:hover{box-shadow:0 6px 20px #667eea80}.btn-danger{background:linear-gradient(135deg,#e53935,#c62828);color:#fff;box-shadow:0 4px 15px #e5393566}.btn-danger:hover{box-shadow:0 6px 20px #e5393580}.status{background:#1a1a1a;border-radius:8px;padding:1rem;display:flex;flex-direction:column;gap:.75rem}.status-item{display:flex;align-items:center;gap:.5rem;font-size:.875rem}.status-item .label{color:#888;min-width:120px}.status-item .value{color:#fff}.status-item .value.live{color:#4caf50;font-weight:600}.status-item .value.mono{font-family:SF Mono,Monaco,Inconsolata,monospace;font-size:.8rem;color:#aaa}.status-item .uploading{animation:bounce .5s infinite alternate}@keyframes bounce{0%{transform:translateY(0)}to{transform:translateY(-3px)}}.status-item.error .value{color:#e53935}
