body { margin: 0; padding: 0.5rem; } #options { display: flex; flex-direction: column; row-gap: 0.25rem; width: fit-content; max-width: calc(100vw - 0.5rem * 2); margin: auto; } select, input, button { width: fit-content; max-width: 100%; font-size: 1rem; } input[type=number] { width: calc(1rem * 4 + 0.125rem * 2); } label { display: flex; flex-direction: row; column-gap: 0.25rem; } label#width-wrapper > button { padding: 0.0625rem 0.25rem; width: calc(1rem + 0.25rem * 3); } label > span:nth-child(1) { width: calc(3.5rem); text-align: right; }