Set the oven to 350°F and grease an 8×8-inch baking dish with cooking spray. For easy removal, you can also line the pan with parchment paper, leaving a 2-inch overhang on two sides, and grease any exposed edges.
In a small bowl, mix the cocoa powder, food coloring, vanilla, and vinegar until it forms a thick, smooth paste with no lumps. Set aside.
In a stand mixer fitted with a paddle attachment, beat the butter and sugar on medium speed for about 2 minutes until light and fluffy. Add the eggs one at a time, mixing well after each addition and scraping down the bowl as needed.
With the mixer off, add the cocoa mixture, then beat on medium speed until the color is evenly blended. Reduce the speed to medium-low, add the flour and salt, and mix just until combined—be careful not to over-mix.
Remove the bowl from the mixer and use a spatula to scrape down the sides, giving the batter a final stir to ensure everything is well incorporated. Some lumps are fine.
Spread the batter evenly in the prepared pan and bake for 30-40 minutes, or until a toothpick inserted in the center comes out clean. Let the brownies cool in the pan on a wire rack for 45-60 minutes. To speed this up, you can place them in the fridge or freezer. If using parchment paper, lift the edges to remove the brownies and transfer them to a cutting board.
For the frosting, beat the cream cheese in a mixing bowl with a hand mixer until smooth. Add the butter gradually, 1 tablespoon at a time, and continue mixing until fully blended. Add the powdered sugar and vanilla all at once, mixing until smooth. Avoid over-mixing, as this can make the frosting too soft—if that happens, chill it in the fridge or freezer until it firms up.
Spread the frosting over the cooled brownies, slice, and serve.