0 to -5ish: synthetic l/s baselayer (most often HH), some roubaix-ish Decathlon softshell from their running range (mesh back, like their cheapest cycling one but better cut), bibs and RF Agent shorts, kneewarmers or pads, cheap XC-skiing socks and Teva Links or Mavic Crossmax something-or-other if on SPDs.
-5 to -15ish: same as above but add a brynje underneath and some tights.
Never overheat and rarely freeze (the exception mostly being longer, faster transports between trails). If I know I’ll be stopping for longer periods I’ll take a packable Lundhags primaloft jacket in my pack. It’s honestly taken me years to work it out but this combination works best for me. If I wear any more while riding I boil over very quickly.