Edition like one hundred
Ok, you want the hard way... :)
First. Making a gradient look like a continuous shape is really hard, and we need to blame your brain...
Here are two gradients (T), and some curves representing a simplification of what the gradients should look like.
The Upper gradient is a continuous one, and the bottom is a gradient coming to a halt on a color for a moment, and then continuing the gradient.
(U) Represents the upper gradient and (V) the bottom. But our eyes start compensating shades, and see (W)
That means, if you do not do that perfectly you will notice that.
A Not that simple method
So. Rounded bevels on a cube or cuboid can be interpreted as sections of a sphere connected. That is how you could do that in a 3D modeling software.
Then, take a sphere (1) that is easily shaded to look like one. And divide it in 4 (2) (for nos as an example I am using a square grid) Now you have your vertices rounded (3). Now connect them with a rectangle using the exact same color values as the sections of the sphere. I used a mesh there so I have different nodes with specific colors.
I am lazy and only did 1 section as proof of concept.
But as you have perspective... you need to apply that to the vertices.
Now you have a perfect gradient for the corners... now you have to connect them. There is not an easy way to make those transitions.
This method at least answer very precisely your questions
I can never determine what the fill should be... lighter? darker? mid-tone?
Use a color picker on the zone that mimics the angle you want. That will give you more consistent colors on light and shade.
Or use 3D software and make a stylized render...