Weird color behaviour
Probably the best way to approach it is to use a flat shader (color shader) without diffuse, the other way is to use the objects' normals in order to create a &quot;fake&quot; light and keep them always consistent regardless the light conditions in your scene (as it is done in most NPR approaches).
this is how a flat shader would look like (just an emission shader in Blender's context)
Emission Shader (flat)

and that's how an NRP would look like
Dot Product (Geometry Position)

or like this
Dot Product (Geometry Normals)

check the material setup here:

the second vector in the Dot Product node (math vector) will be  the source of your fake light.

Keep in mind that Dot Product gives also negative values, so you may need to clamp it for certain occasions