Widget displays: - systemSmall: calorie ring + "X left" text - systemMedium: ring + "Calories" / "X of Y" / "X remaining" - accessoryCircular: gauge ring for lock screen - accessoryInline: "🔥 845 / 2000 cal" text for lock screen - accessoryRectangular: linear gauge + calorie count Data flow: main app writes totalCalories + calorieGoal to UserDefaults on each loadTodayData(), then calls WidgetCenter.shared.reloadAllTimelines(). Widget reads on 15-minute refresh cycle. Note: currently uses standard UserDefaults (same app container). For production, migrate to App Group UserDefaults so widget process can read the data. Requires Xcode App Group setup. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>