.cctv-root{color:#ededed;background:#111113;flex-direction:column;height:100%;min-height:0;font-family:inherit;display:flex;position:relative;overflow:hidden}.cctv-target-bar{scrollbar-width:none;background:#161619;border-bottom:1px solid #28282c;flex-shrink:0;gap:8px;padding:10px 14px;display:flex;overflow-x:auto}.cctv-target-bar::-webkit-scrollbar{display:none}.cctv-target-pill{cursor:pointer;white-space:nowrap;color:#9e9e9e;background:#1c1c20;border:1px solid #2e2e34;border-radius:20px;align-items:center;gap:7px;padding:4px 10px;transition:all .16s;display:flex}.cctv-target-pill:hover{color:#d1d1d1;border-color:#555560}.cctv-target-pill.is-active{color:#fff;background:#27272e;border-color:#e5e5e5;box-shadow:0 0 10px #ffffff14}.cctv-pill-name{font-size:12px;font-weight:500}.cctv-pill-bond{color:#f472b6;margin-left:-2px;font-size:10px}.cctv-stage{overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;gap:12px;min-height:0;padding:12px 14px;display:flex;overflow-y:auto}.cctv-screen{background:#0c0c0e;border:1.5px solid #333339;border-radius:8px;flex:none;position:relative;overflow:hidden;box-shadow:inset 0 0 20px #000c,0 4px 12px #0006}.cctv-scanlines{pointer-events:none;z-index:2;opacity:.65;background:linear-gradient(#12101000 50%,#00000047 50%) 0 0/100% 4px;position:absolute;inset:0}.cctv-hud-header{z-index:3;color:#a1a1aa;background:#0e0e11eb;border-bottom:1px solid #222226;justify-content:space-between;align-items:center;padding:8px 12px;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:11px;display:flex;position:relative}.cctv-rec-badge{color:#ef4444;letter-spacing:.5px;align-items:center;gap:6px;font-weight:700;display:flex}.cctv-rec-dot{background:#ef4444;border-radius:50%;width:7px;height:7px;animation:1.2s ease-in-out infinite cctvRecPulse;box-shadow:0 0 6px #ef4444}@keyframes cctvRecPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(.85)}}.cctv-hud-meta{align-items:center;gap:6px;display:flex}.cctv-hud-sep{color:#2e2e34;margin:0 1px}.cctv-hud-sig{align-items:flex-end;gap:2px;height:12px;margin-right:4px;display:flex}.cctv-sig-bar{background:#10b981;border-radius:1px;width:3px}.cctv-sig-bar:first-child{height:4px}.cctv-sig-bar:nth-child(2){height:6px}.cctv-sig-bar:nth-child(3){height:8px}.cctv-sig-bar:nth-child(4){height:10px}.cctv-sig-bar:nth-child(5){height:12px}.cctv-sig-bar.is-dim{background:#27272a}.cctv-hud-cam{color:#e4e4e7;font-weight:600}.cctv-hud-time{color:#71717a}.cctv-viewport{z-index:3;flex-direction:column;gap:12px;padding:16px 14px;display:flex;position:relative}.cctv-target-card{background:#1a1a1fb3;border:1px solid #2e2e36;border-radius:6px;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.cctv-tc-left{align-items:center;gap:10px;display:flex}.cctv-tc-name{color:#fff;align-items:center;gap:6px;font-size:14px;font-weight:600;display:flex}.cctv-tc-loc{color:#9ca3af;align-items:center;gap:4px;margin-top:2px;font-size:11px;display:flex}.cctv-vibe-badge{color:#a78bfa;letter-spacing:.5px;background:#1a1a22;border:1px solid #3b3b50;border-radius:20px;padding:2px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10px}.cctv-status-badge{color:#e2e8f0;background:#1e1e24;border:1px solid #3b3b44;border-radius:4px;align-items:center;gap:6px;padding:4px 8px;font-size:11px;display:flex}.cctv-status-dot{background:#10b981;border-radius:50%;width:5px;height:5px}.cctv-feed-box{color:#d4d4d8;background:#121216d9;border:1px solid #2a2a32;border-radius:6px;flex-direction:column;gap:10px;padding:12px 14px;font-size:13px;line-height:1.75;display:flex;position:relative}.cctv-feed-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.cctv-feed-time{color:#52525b;flex-shrink:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10px}.cctv-feed-text{color:#d4d4d8;font-size:13px;line-height:1.75}.cctv-action-line{background:#0f1117;border-left:2px solid #4b5563;border-radius:0 4px 4px 0;align-items:baseline;gap:8px;padding:6px 10px;font-size:12px;display:flex}.cctv-action-label{color:#6b7280;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10px}.cctv-action-text{color:#a1a1aa;font-style:italic}.cctv-reaction-block{background:#f871710f;border:1px solid #f871712e;border-radius:4px;padding:8px 10px}.cctv-reaction-label{color:#f87171;letter-spacing:.5px;margin-bottom:4px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10px;font-weight:700}.cctv-reaction-text{color:#e4e4e7;font-size:13px;line-height:1.65}.cctv-feed-tag{letter-spacing:.5px;border-radius:3px;flex-shrink:0;padding:1px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10px;font-weight:700;display:inline-block}.cctv-feed-tag.is-obs{color:#a1a1aa;background:#27272a;border:1px solid #3f3f46}.cctv-feed-tag.is-int{color:#fb923c;background:#451a03;border:1px solid #7c2d12}.cctv-monologue-quote{background:#0d0d11;border-left:2.5px solid #6b7280;border-radius:0 4px 4px 0;flex-direction:column;gap:4px;padding:8px 12px;font-size:12px;display:flex}.cctv-mono-label{color:#52525b;letter-spacing:.5px;text-transform:uppercase;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:9px}.cctv-mono-text{color:#e4e4e7;font-style:italic;line-height:1.6}.cctv-tuning{color:#52525b;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:30px 10px;font-size:12px;display:flex}.cctv-no-signal-icon{color:#2e2e38;margin-bottom:4px;font-size:28px;line-height:1}.cctv-tuning-spinner{border:1.5px solid #27272a;border-top-color:#a1a1aa;border-radius:50%;width:22px;height:22px;animation:.9s linear infinite cctvSpin}@keyframes cctvSpin{to{transform:rotate(360deg)}}.cctv-actions-bar{gap:10px;margin-top:4px;display:flex}.cctv-btn-watch{color:#e4e4e7;cursor:pointer;letter-spacing:.2px;background:#1a1a22;border:1px solid #3a3a48;border-radius:6px;flex:1;justify-content:center;align-items:center;gap:6px;padding:10px 12px;font-size:13px;font-weight:600;transition:all .16s;display:flex}.cctv-btn-watch:hover:not(:disabled){background:#252530;border-color:#a1a1aa}.cctv-btn-watch:disabled{opacity:.45;cursor:not-allowed}.cctv-btn-icon{opacity:.8;font-size:14px;line-height:1}.cctv-btn-cost{opacity:.55;margin-left:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10px}.cctv-btn-interfere{color:#fca5a5;cursor:pointer;letter-spacing:.2px;background:#1e1218;border:1px solid #5a2828;border-radius:6px;flex:1;justify-content:center;align-items:center;gap:6px;padding:10px 12px;font-size:13px;font-weight:600;transition:all .16s;display:flex}.cctv-btn-interfere:hover:not(:disabled){color:#fff;background:#2c1616;border-color:#ef4444}.cctv-btn-interfere:disabled{opacity:.45;cursor:not-allowed}.cctv-drawer{background:#16161a;border:1px solid #2e2e36;border-radius:8px;flex-direction:column;gap:12px;padding:14px;display:flex}.cctv-drawer-head{justify-content:space-between;align-items:center;display:flex}.cctv-drawer-title{color:#f4f4f5;align-items:center;gap:6px;font-size:13px;font-weight:700;display:flex}.cctv-drawer-sub{color:#71717a;font-size:11px}.cctv-mischief-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.cctv-mischief-card{cursor:pointer;text-align:left;background:#1c1c22;border:1px solid #2b2b33;border-radius:6px;flex-direction:column;align-items:flex-start;gap:4px;padding:9px 10px;transition:all .15s;display:flex}.cctv-mischief-card:hover:not(:disabled){background:#25252e;border-color:#e5e5e5;transform:translateY(-1px)}.cctv-mischief-card:disabled{opacity:.45;cursor:not-allowed}.cctv-mc-top{justify-content:space-between;align-items:center;width:100%;display:flex}.cctv-mc-title{color:#f4f4f5;align-items:center;gap:5px;font-size:12px;font-weight:600;display:flex}.cctv-mc-cost{color:#9ca3af;font-family:monospace;font-size:10px}.cctv-mc-desc{color:#71717a;text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:11px;line-height:1.4;display:-webkit-box;overflow:hidden}.cctv-custom-box{gap:8px;margin-top:2px;display:flex}.cctv-custom-input{color:#f4f4f5;background:#121215;border:1px solid #33333d;border-radius:6px;outline:none;flex:1;padding:8px 10px;font-size:12px;transition:border-color .15s}.cctv-custom-input:focus{border-color:#e4e4e7}.cctv-custom-input::placeholder{color:#52525b}.cctv-custom-btn{color:#f4f4f5;cursor:pointer;white-space:nowrap;background:#18181c;border:1px solid #4a4a58;border-radius:6px;align-items:center;gap:4px;padding:0 14px;font-size:12px;font-weight:600;transition:all .15s;display:flex}.cctv-custom-btn:hover:not(:disabled){background:#2a2a32;border-color:#fff}.cctv-custom-btn:disabled{opacity:.5;cursor:not-allowed}.cctv-logs-history{flex-direction:column;gap:8px;margin-top:6px;display:flex}.cctv-history-head{color:#71717a;border-bottom:1px solid #222228;justify-content:space-between;align-items:center;padding-bottom:4px;font-size:12px;font-weight:600;display:flex}.cctv-log-item{color:#a1a1aa;background:#151518;border:1px solid #24242a;border-radius:6px;padding:10px 12px;font-size:12px;line-height:1.6}.cctv-log-meta{color:#71717a;justify-content:space-between;align-items:center;margin-bottom:4px;font-family:monospace;font-size:10px;display:flex}.cctv-log-type-obs{color:#a1a1aa}.cctv-log-type-int{color:#fb923c}.cctv-log-vibe{color:#7c6fad;background:#1a1624;border:1px solid #2e2a40;border-radius:10px;padding:1px 5px;font-size:9px}.cctv-log-feed{color:#a1a1aa;margin-top:4px;line-height:1.65}.cctv-log-action{color:#71717a;border-left:1px solid #2e2e38;margin-top:5px;padding-left:8px;font-size:11px;font-style:italic}.cctv-log-reaction{color:#d1a090;margin-top:5px;font-size:11px;line-height:1.55}.cctv-log-mono{color:#71717a;margin-top:4px;font-size:11px;font-style:italic}.cctv-toast{color:#f4f4f5;z-index:99;pointer-events:none;background:#18181cf2;border:1px solid #52525b;border-radius:20px;padding:6px 14px;font-size:12px;animation:.2s ease-out cctvFadeIn;position:absolute;top:64px;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #00000080}@keyframes cctvFadeIn{0%{opacity:0;transform:translate(-50%,-6px)}to{opacity:1;transform:translate(-50%)}}
