- src/icons/icons.{h,cpp}: colored procedural icons drawn onto LVGL
canvases (PSRAM-backed ARGB8888): sun, moon, cloud, rain, thunderstorm
(selected from API symbol field), rain-warning triangle, retry/error
symbol, back arrow. Replaces old M5GFX-based icons.h.
- tile_button: add tile_button_set_icon_obj() to swap text glyph for a
canvas icon object
- home_screen: weather tile now shows the real procedural weather icon
(rebuilt on each refresh); tapping the weather tile in error state
triggers a manual retry (SPEC.md section 8) instead of navigating
- tile_button: large touch tile with accent bg + title + icon + value,
fires LV_EVENT_CLICKED (for home screen tiles)
- back_button: fixed bottom-left Zurueck button (LV_SYMBOL_LEFT),
large touch target, reused on all detail screens
- screen_base.h: Screen struct with create/show/hide/refresh/tick
lifecycle around an lv_obj_t root (replaces old ScreenId-only header)
- lv_conf.h: enable Montserrat 16/20/24 fonts used by the widgets