- Refactor Widget Styling into Surface Styling & Floating Windows - New sync per-host opacity & foreground layer control - Shared DankFloatingWindow chrome - Settings fix to destroy Settings window on-hide so niri floating rules match subsequent runs Related: #2709