:root{--bg: #0a0a0a;--bg-2: #141414;--bg-3: #1f1f1f;--line: #2a2a2a;--text: #f5f5f5;--muted: #8a8a8a;--accent: #ffd400;--warn: #ff9800;--err: #ff5252}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,Roboto,sans-serif}.app{display:flex;flex-direction:column;min-height:100vh}.header{display:flex;align-items:center;gap:16px;padding:10px 16px;background:var(--bg-2);border-bottom:1px solid var(--line);flex-wrap:wrap}.brand{display:flex;align-items:center;gap:10px}.logo{background:var(--accent);color:#000;font-weight:900;padding:4px 10px;border-radius:6px;letter-spacing:1px}.title{font-weight:700;letter-spacing:4px;font-size:14px}.loc{display:flex;align-items:center;gap:8px;font-variant-numeric:tabular-nums;font-size:14px}.dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent);animation:pulse 1.6s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.muted{color:var(--muted)}.lookahead-badge{background:var(--accent);color:#000;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:800;letter-spacing:.5px;margin-left:6px}.lookahead-badge.muted-badge{background:var(--bg-3);color:var(--muted);border:1px solid var(--line)}.demo{margin-left:auto;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.demo button{background:var(--bg-3);color:var(--text);border:1px solid var(--line);padding:6px 10px;border-radius:6px;font-size:12px;cursor:pointer}.demo button:hover{border-color:var(--accent);color:var(--accent)}.demo button.clear{background:var(--accent);color:#000;border-color:var(--accent)}.banner{padding:10px 16px;background:var(--bg-3);border-bottom:1px solid var(--line);font-size:13px}.banner.warn{background:#2a1d00;color:var(--warn);border-color:#4a3300}.banner.err{background:#2a0d0d;color:var(--err);border-color:#4a1a1a}.grid{flex:1;display:grid;grid-template-columns:1fr 360px;gap:12px;padding:12px;min-height:0}@media (max-width: 900px){.grid{grid-template-columns:1fr}.queue{max-height:50vh}}.primary{display:flex;flex-direction:column;min-height:0}.placeholder{flex:1;display:flex;align-items:center;justify-content:center;color:var(--muted);background:var(--bg-2);border:1px solid var(--line);border-radius:12px}.cam{background:#000;border:1px solid var(--line);border-radius:12px;overflow:hidden;flex:1;display:flex;cursor:pointer}.cam.big{min-height:400px}.cam-frame{position:relative;flex:1;display:flex;align-items:center;justify-content:center}.cam-frame img{width:100%;height:100%;object-fit:contain;display:block}.cam-frame img.broken{opacity:.15}.cam-overlay{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(transparent,#000000d9);padding:14px 18px}.cam-title{font-size:16px;font-weight:700}.cam-meta{display:flex;gap:6px;font-size:12px;color:var(--muted);margin-top:4px;flex-wrap:wrap}.src-tag{margin-left:auto;background:var(--bg-3);color:var(--accent);padding:1px 6px;border-radius:4px;font-weight:700}.manual-tag{position:absolute;top:10px;right:10px;background:var(--accent);color:#000;padding:4px 10px;border-radius:4px;font-size:11px;font-weight:800;letter-spacing:1px}.queue{background:var(--bg-2);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;overflow:hidden}.queue-header{display:flex;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--line);font-size:12px;letter-spacing:2px;color:var(--accent);font-weight:800}.queue-list{overflow-y:auto;flex:1}.queue-item{width:100%;display:flex;gap:10px;padding:10px;background:transparent;border:none;border-bottom:1px solid var(--line);cursor:pointer;text-align:left;color:var(--text)}.queue-item:hover{background:var(--bg-3)}.queue-item.active{background:var(--bg-3);border-left:3px solid var(--accent)}.qi-thumb{width:96px;height:64px;flex-shrink:0;background:#000;border-radius:4px;overflow:hidden}.qi-thumb img{width:100%;height:100%;object-fit:cover}.qi-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.qi-title{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.qi-sub{font-size:11px;color:var(--muted)}.qi-dist{font-size:11px;color:var(--accent);font-weight:700;margin-top:auto}.foot{display:flex;gap:16px;padding:8px 16px;background:var(--bg-2);border-top:1px solid var(--line);font-size:12px}.foot .muted{margin-left:auto}.foot .muted+.muted{margin-left:0}
