- Replace hardcoded rgba() section colors with CSS variables defined in :root
and both dark theme blocks
- Label previously unlabeled ADVERT flag bytes 0x20/0x40 as Feature1/Feature2
- Extract shared cleanHex() and parsePacketFrame() to eliminate DRY violation
between DecodePacket and BuildBreakdown
- Add tests: combined ADVERT flags, feat1-only ADVERT, TRANSPORT_DIRECT
breakdown and decode, simple payload breakdown