I think instead of HorizontalLayout you should use LumoUtility with Div.
The simplest example is here. The following will create a Div that is CSS Flex layout (HorizontalLayout is actually a CSS Flex layout too with Row direction). But as you want the direction to change on screenwidth, this works better. This Div is now by default vertical, but if the screen is wider than 640 pixels, it will be horizontal instead. I have added very small gap between components and small outer padding as well. Just for example, so that it is easier for you to play with the utilities.
Div div = new Div();
div.addClassNames(LumoUtility.Display.FLEX,
LumoUtility.FlexDirection.COLUMN,
LumoUtility.FlexDirection.Breakpoint.Small.ROW,
LumoUtility.FlexWrap.WRAP, LumoUtility.Gap.XSMALL,
LumoUtility.Padding.SMALL);
If you just want the fields to shrink to fit, rather than wrap to multiple lines, you need to configure their widths, min-widths, etc, approrpriately.
The HL does scale to fit its parent, but its contents do not, by default.
It looks like you’re not setting any widths or min-widths or anything on those fields, so they just use whatever is their defaults. I would suggest setting an appropriate min-width on the combobox (e.g. 3em or so), so that it can squash into a smaller space.