.led.active background-color: #10b981; box-shadow: 0 0 8px #10b981; animation: pulseGreen 1.2s infinite;

.timeline-marker:hover transform: translateX(-50%) scale(1.3);

// Activity Log function renderActivityLog() { activityLogEl.innerHTML = state.activityLog.map(entry => ` <div class="flex items-start gap-2 p-2 rounded bg-[var(--bg)] text-sm"> <span class="mono text-xs text-[var(--muted)] shrink-0">$entry.time</span> <span class="inline-flex items-center gap-1 shrink-0"> $entry.type === 'motion' ? '<span class="w-2 h-2 rounded-full bg-[var(--warning)]"></span>' : '' $entry.type === 'warning' ? '<span class="w-2 h-2 rounded-full bg-[var(--warning)]"></span>' : '' $entry.type === 'error' ? '<span class="w-2 h-2 rounded-full bg-[var(--danger)]"></span>' : '' ${entry.type === 'info' ? '<span class="w-2 h-2

Evocam Webcam Html

.led.active background-color: #10b981; box-shadow: 0 0 8px #10b981; animation: pulseGreen 1.2s infinite;

.timeline-marker:hover transform: translateX(-50%) scale(1.3); evocam webcam html

// Activity Log function renderActivityLog() { activityLogEl.innerHTML = state.activityLog.map(entry => ` <div class="flex items-start gap-2 p-2 rounded bg-[var(--bg)] text-sm"> <span class="mono text-xs text-[var(--muted)] shrink-0">$entry.time</span> <span class="inline-flex items-center gap-1 shrink-0"> $entry.type === 'motion' ? '<span class="w-2 h-2 rounded-full bg-[var(--warning)]"></span>' : '' $entry.type === 'warning' ? '<span class="w-2 h-2 rounded-full bg-[var(--warning)]"></span>' : '' $entry.type === 'error' ? '<span class="w-2 h-2 rounded-full bg-[var(--danger)]"></span>' : '' ${entry.type === 'info' ? '<span class="w-2 h-2 .led.active background-color: #10b981