Prep and preheat: Heat the oven to 375°F (190°C).
Grease a 9x13-inch baking dish. Bring a large pot of salted water to a boil.
Cook the pasta: Boil the pasta until just shy of al dente, about 1–2 minutes less than the package suggests. Reserve 1/2 cup pasta water, then drain.
Blanch the broccoli: In the same boiling water, cook the broccoli florets for 1–2 minutes until bright green and crisp-tender. Drain and set aside.
Cook the chicken: Pat the chicken dry.
Season with salt, pepper, Italian seasoning, and smoked paprika. Heat 1–2 tablespoons olive oil in a large skillet over medium-high. Sear the chicken until golden and cooked through (165°F/74°C), about 4–6 minutes per side for breasts, 6–8 for thighs.
Rest 5 minutes, then cut into bite-size pieces.
Sauté aromatics: In the same skillet, lower the heat to medium. Add 1 tablespoon butter if the pan is dry. Cook the onion for 3–4 minutes until soft, then add garlic for 30 seconds until fragrant.
Make the sauce: Add remaining butter to the skillet.
Stir in flour and cook 1 minute, stirring constantly. Slowly whisk in the chicken broth, then the milk. Bring to a gentle simmer and cook 3–5 minutes until slightly thickened.
Flavor and cheese it up: Whisk in Dijon, a pinch of red pepper flakes if using, and season with salt and black pepper.
Off the heat, stir in cream cheese (if using) until smooth. Add 1 cup mozzarella, 1/2 cup cheddar, and 1/4 cup Parmesan. Stir until melted.
If the sauce seems too thick, loosen with a splash of pasta water to a creamy, pourable consistency.
Combine: In a large bowl (or the pot you used for pasta), mix the pasta, broccoli, and chicken. Pour in the cheese sauce and toss to coat evenly. Taste and adjust seasoning.
Assemble: Transfer to the baking dish.
Top with remaining mozzarella, cheddar, and Parmesan. For extra crunch, sprinkle the oiled panko on top.
Bake: Bake uncovered for 18–22 minutes, until bubbling and golden at the edges. For a deeper crust, broil for 1–2 minutes at the end, watching closely.
Rest and serve: Let it rest 5–10 minutes so the sauce sets slightly.
Garnish with black pepper or chopped parsley if you like. Serve warm.