2c0de144

Created Started Finished

By: Michael Lynch <git@mtlynch.io>

Keep grocery list visibility in sync with its rows

Previously, the client duplicated pending-row state in a Set and manually
updated empty section and cart-control visibility after checkbox changes.

Derive visibility with CSS :has() and keep pending state on the affected
row. Fresh server HTML clears that state naturally, while late responses
still cannot revive pending rows. Preserve sections containing open edit
forms and retain the existing failure recovery and focus behavior.

The visibility rules require a browser with CSS :has() support.