6f0a55de5c
The previous border-spacing approach made each card stand on its own — but it also fragmented the rail. Each rail segment ended at the bottom of its row, leaving visible breaks between cards. Restructured each event row to wrap the avatar+content cells in a nested card table sitting in the row's left outer TD. The right TD carries the rail as its border-left. With the outer section table now using border-collapse:collapse, consecutive rows' left-borders touch and merge into one unbroken line that runs through the card gaps. Added a downward triangle TR after the last event of each section as a visual cap on the rail. Pure CSS (border-style trick), coloured to match the rail.