Cards, buttons, and dialogs rebuilt on a shared component library
Every card, button, and dialog across the app now shares one underlying component, so they look and behave more consistently - cards get a subtle shadow, and buttons keep their familiar pill shape and colors. This is a visual refresh, not a change to how anything works.