/** * EventsPanel — "campus pulse" list of live and upcoming events. * * Renders active events as LIVE and upcoming events with time range, * category color, and attendance count vs capacity. * * Architecture: rendered by App.jsx from the snapshot's events block. * * Design: read-only; event data originates in the deterministic event * calendar on the backend. */ const CATEGORY_COLOR = { "technical-cultural": "#5b9bd5", sports: "#51cf66", academic: "#d4a04a", }; function EventCard({ event, active }) { const color = CATEGORY_COLOR[event.category] || "#8a8a96"; return (