The caret color is not configurable.
The caret uses xor to invert the current color. That should be fine on black.
However it is a problem on medium grey, as #7f7f7f changes to #808080.
On some OS the OS is providing the caret, and that may not offer any color config.
At the moment SynEdit is bypassing this system caret, and therefore the color can be changed (in code only).
But this may change in future. There are issues bypassing the system caret. So the default may change. But likely an option will then be added.
To change the color in the source code
components\synedit\synpluginmulticaret.pp
line 1721
constructor TSynPluginMultiCaretBase.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FColor := clBlack;
Note that this does not make the caret black.
It will invert all bit on the canvas, that are zero in FColor.
FColor := clWhite; // the caret will not change any pixel at all
FColor := clRed; // the caret will invert the green and blue channel of each pixel, and leave red as it is.
-------------
For reference: The caret is painted by TSynEditScreenCaretPainterInternal in components\synedit\syneditpointclasses.pas