The active tab's data-[state=active]:text-foreground rule outranked the plain text-primary hover class, so hovering the active tab left white text on the white hover pill (invisible in dark mode). Mark the hover text-primary as important so the hovered active tab matches the hover color of inactive tabs.