CHANGES REQUIRED - **Important — empty selection still exposes Lag/Phase aggregates through the details panel.** - `renderCorrelations()` independently loads every computed result and renders up to 30 rows without consulting the Explorer selection: `scripts/health/assets/health-assets/dashboard-v5.js:475-481`. - Although the main Lag/Phase panels fail closed via `correlationIds.size > 0` and explicit empty states (`dashboard-v5.js:644-672`), `renderDomainView()` calls `renderCorrelations()` separately before `updateExplorer()` (`dashboard-v5.js:800-805`). - Browser reproduction after **Auswahl leeren**: - checked metrics: `0` - Lag panel rows: `0` - Phase panel rows: `0` - `#correlation-list .v5-card`: **30** - First exposed row still contained predictor, target, lag, medication phase, `n`, coverage, `ρ`, and `q`. - The existing regression only asserts zero rows in `#explorer-lag-heatmap` and `#explorer-phase` (`tests/browser/dashboard_v5.spec.js:285-288`), so it misses this alternate presentation path. - Required fix: make the details list selection-aware/fail-closed too, or hide/empty it when no metric is selected, and add a browser assertion for `#correlation-list`. **Other reviewed findings pass:** - Period semantics are now honest: `render.py:60` states that Lag/Phase are server-validated aggregates, their start/end period is not present in the bundle, and global period/cadence controls apply only to trend, event lane, and scatter. Changing **Alle → 7 T** left Lag/Phase counts unchanged at `30/30`, matching that statement. - Weekly event alignment is corrected: - chart domain and event-lane domain both reproduced as `2026-05-18 … 2026-06-08`; - event `2026-06-14` used Monday anchor `2026-06-08` at `100%`; - details retained exact date `14.6.2026`. - Implementation anchors the event lane to the rendered chart domain at `dashboard-v5.js:621-630` and preserves exact event dates at `dashboard-v5.js:431-447`. **Verification:** - Focused Python: `4 passed` - Focused Playwright: `3 passed` - `node --check` and `git diff --check`: passed - No files created or modified; temporary synthetic fixture/server removed.