You should be able to configure Z2JH to pass the profile to the singleuser server, e.g. as an environment variable. You’ll then have to configure/extend JupyterLab/notebook based on that environment variable- this part is unrelated to JupyterHub, it’s all in your singleuser container image which means you can easily test it locally.
we do indeed use the profiles in z2jh as you mention.
You right that what I am wondering is where the CSS/HTML code/config can be changed in Jupyter Lab.
I guess I’ll look at how to configure a custom theme and switch it in the spawner.