- Content script: base href check via absolute URL; scope to listing container
- Popup: fallback to background-assisted collection when no receiver exists
- Background: expose collect.fromTab to run injection + collection
- Add debug logging for visibility