Prep and preheat. Heat the oven to 375°F (190°C).
Grease a 9x13-inch baking dish. Pat the chicken dry and season with 1/2 teaspoon salt, black pepper, and smoked paprika.
Blanch the broccoli. Bring a pot of salted water to a boil. Add broccoli florets and cook for 1–2 minutes until bright green and slightly tender.
Drain and rinse under cold water to stop the cooking. Set aside.
Brown the chicken. Warm 1 tablespoon olive oil in a large skillet over medium-high heat. Cook chicken in a single layer until lightly browned and just cooked through, 4–6 minutes.
Transfer to a plate. Don’t overcook; it will finish in the oven.
Make the creamy sauce. In the same skillet, lower heat to medium and add 3 tablespoons butter. When melted, stir in flour to form a paste.
Cook, stirring, for 1 minute to remove raw flour taste. Slowly whisk in the chicken broth, then the milk, whisking until smooth.
Season and enrich. Stir in minced garlic, Dijon, onion powder, and remaining 1/2 teaspoon salt. Simmer 2–3 minutes until slightly thickened.
Remove from heat and stir in sour cream, 1/2 cup Parmesan, and mozzarella until melted and smooth. Taste and adjust salt and pepper.
Combine in the baking dish. Add broccoli and chicken to the prepared dish. Pour the sauce over the top and gently toss to coat everything evenly.
If using, add a little lemon zest for brightness.
Mix the crispy topping. In a bowl, combine panko, remaining 1/2 cup Parmesan, melted butter, and 1 tablespoon olive oil. Stir until crumbs are evenly moistened and clumpy.
Top and bake. Sprinkle the panko mixture evenly over the casserole. Bake for 20–25 minutes, until the topping is golden and the edges are bubbling.
Rest and serve. Let the casserole rest for 5–10 minutes so it sets slightly.
Garnish with chopped parsley. Serve warm.