Logs tab — a Grafana-style log viewer over every step execution's captured
logs for the workflow. Stateful (filters, sort, page) so it lives as a
LiveComponent. Each step's :logs is a list of maps with "level",
"message", "timestamp", "source", and "metadata" keys.
Features:
- level + step filters, full-text search (message/step/level/source/metadata)
- sort by timestamp (oldest ⇄ newest)
- pagination (dense rows, 100/page)
- per-level left-bar coloring; expandable JSON / metadata per line