Summary
While fixing #337, an audit of inline <style> blocks in content/dashboard/testing.html and content/dashboard/testing-session.html surfaced ~210 lines of CSS that's duplicated identically in both pages, plus a small handful of drift items that should be reconciled.
The shared stylesheet content/dashboard/testing-session-refactored.css is loaded by both pages — that's where these rules belong.
Cleanup wins (zero behavioral change)
.abrchar-* block (~70 lines) — duplicated byte-for-byte in both pages. Consolidate to shared.
.events-timeline-wrap + vis-timeline rules (~100 lines) — duplicated byte-for-byte. Consolidate.
.chart-expand-btn / .chart-expand-icon — duplicated. Consolidate.
@keyframes chart-pulse-dot + button[data-action="pause-bitrate-chart"].chart-live rules — duplicated. Consolidate.
Port-then-consolidate (testing.html missing rules from testing-session.html)
.abrchar-ruler-marker.wire-active-1s .abrchar-ruler-line { background: #059669; }
.abrchar-ruler-marker.wire-active-1s .abrchar-ruler-label { color: #047857; }
These exist only in testing-session.html. Verify whether testing.html actually needs them (does its ABR characterization UI render wire-active-1s markers?). If yes, port; either way, consolidate.
Drift to reconcile (visual decision needed)
.chart-paused-badge — testing.html uses rgba(220, 38, 38, 0.85) red sans-serif "PAUSED"; testing-session.html uses rgba(30, 41, 59, 0.72) dark monospace. Pick one palette and apply on both.
Out of scope (intentional differences, leave alone)
.chart-wrap differs significantly (testing-session.html has white background + border + padding for single-card density; testing.html is bare for multi-session dashboard density). Don't unify.
- Page-shell rules:
.page-header, .session-tabs, .network-log-* (testing.html-only); .player-card, .player-frame, .stats-grid (testing-session.html-only).
Acceptance
- Both pages render identically for the consolidated rules (visually verify on
:21000).
- Net diff is mostly subtractive (delete from inline blocks, single addition to shared CSS).
- No behavioral or visual regression on either page.
Origin
Audit performed during PR for #337 (fix/337-testing-html-buttons).
Summary
While fixing #337, an audit of inline
<style>blocks incontent/dashboard/testing.htmlandcontent/dashboard/testing-session.htmlsurfaced ~210 lines of CSS that's duplicated identically in both pages, plus a small handful of drift items that should be reconciled.The shared stylesheet
content/dashboard/testing-session-refactored.cssis loaded by both pages — that's where these rules belong.Cleanup wins (zero behavioral change)
.abrchar-*block (~70 lines) — duplicated byte-for-byte in both pages. Consolidate to shared..events-timeline-wrap+ vis-timeline rules (~100 lines) — duplicated byte-for-byte. Consolidate..chart-expand-btn/.chart-expand-icon— duplicated. Consolidate.@keyframes chart-pulse-dot+button[data-action="pause-bitrate-chart"].chart-liverules — duplicated. Consolidate.Port-then-consolidate (testing.html missing rules from testing-session.html)
.abrchar-ruler-marker.wire-active-1s .abrchar-ruler-line { background: #059669; }.abrchar-ruler-marker.wire-active-1s .abrchar-ruler-label { color: #047857; }These exist only in testing-session.html. Verify whether testing.html actually needs them (does its ABR characterization UI render
wire-active-1smarkers?). If yes, port; either way, consolidate.Drift to reconcile (visual decision needed)
.chart-paused-badge— testing.html usesrgba(220, 38, 38, 0.85)red sans-serif "PAUSED"; testing-session.html usesrgba(30, 41, 59, 0.72)dark monospace. Pick one palette and apply on both.Out of scope (intentional differences, leave alone)
.chart-wrapdiffers significantly (testing-session.html has white background + border + padding for single-card density; testing.html is bare for multi-session dashboard density). Don't unify..page-header,.session-tabs,.network-log-*(testing.html-only);.player-card,.player-frame,.stats-grid(testing-session.html-only).Acceptance
:21000).Origin
Audit performed during PR for #337 (
fix/337-testing-html-buttons).