Cook the base: Prepare rice, quinoa, or cauliflower rice according to package directions. Fluff and keep warm.
For extra flavor, add a squeeze of lime and a pinch of salt once cooked.
Mix the spice blend: In a small bowl, combine chili powder, cumin, smoked paprika, garlic powder, onion powder, salt, and black pepper.
Season the fish: Pat the fish dry. Drizzle with 1 tablespoon oil and sprinkle the spice blend evenly on all sides. Add lime zest and a squeeze of lime juice.
Gently rub to coat.
Prep the toppings: Chop the veggies, halve the tomatoes, slice the avocado, and tear some cilantro. If using canned corn, drain it; for extra flavor, char it in a dry skillet for 2–3 minutes.
Make the sauce: In a bowl, whisk together Greek yogurt, mayonnaise (if using), lime juice, grated garlic, salt, and hot sauce or chipotle. Add a splash of water until it’s drizzly but not runny.
Taste and adjust salt and heat.
Cook the fish: Heat a large nonstick skillet over medium-high. Add 1 tablespoon oil. Place the fish in a single layer.
Cook without moving for 2–3 minutes to get color, then gently flip and cook 2–4 more minutes, depending on thickness, until the fish flakes easily and is opaque. Avoid overcooking.
Rest and flake: Transfer fish to a plate and let it rest for 2 minutes. Flake into large pieces with a fork.
Assemble the bowls: Add a scoop of rice or your chosen base, then cabbage and greens.
Top with fish, tomatoes, corn, red onion, avocado, and cilantro. Spoon over the yogurt-lime sauce and add a lime wedge on the side. Finish with quick-pickled onions or jalapeños if you like a tangy kick.
Serve: Enjoy immediately while the fish is warm.
Pass extra sauce and lime at the table.