Prepare the Pasta: Start by boiling the elbow macaroni in a large pot of salted water until al dente. Drain and set aside, keeping the pasta slightly undercooked as it will continue to cook in the oven.
Make the Roux: In a large saucepan, melt butter over medium heat. Sprinkle in the flour and whisk continuously for about 1 minute, creating a smooth, thick base for your sauce.
Craft the Cheese Sauce: Slowly pour in the milk, stirring constantly to prevent lumps. Bring the mixture to a simmer, then reduce the heat. Add the cheddar and mozzarella cheeses, stirring until completely melted and the sauce is smooth. Season with salt and pepper to taste.
Combine and Mix: Add the cooked pasta to the cheese sauce, stirring gently until all the pasta is evenly coated. Transfer this mixture to a greased baking dish.
Add the Topping: In a small bowl, mix panko breadcrumbs with olive oil and paprika. Sprinkle this topping over the mac and cheese to add a crispy texture and extra flavor.
Bake to Perfection: Preheat the oven to 375°F (190°C) and bake for about 20 minutes, or until the top is golden brown and crispy.