LiveView Streams not updating when referencing external variable?

Yes, you need to:
a) have any values you need changed in the items of the stream, and
b) explicitly insert (update) items when changed into the stream.

As for the styling I understand your pain, but you can do it differently. Use a CSS (tailwind) child selector in the parent element and style accordingly. That’s how I do it.