AFAIK na tą chwilę <td> nie reagują na max-width użyj po prostu width.
W podanym przez @pablop76; przykładzie jest m. in. napisane:
... But unfortunately, min-width on table columns are not respected by the <col> element...
... The solution is to fake a min-width and we need to be a bit creative to do it.
proponuje inne podejście do tematu w kwestii: fake a min-width np.
.test{
width: max(18dvw, 150px);
}