Ваше решение сработало бы, если бы столбцы не были входами, скажем, вместо этого, элементами div.
Проблема с входными данными в том, что они имеют ширину по умолчанию для размещения нескольких символов. Эта ширина будет вычисляться с использованием font-size, поэтому изменение font-size входных данных делает их больше.
Итак, как упоминает Яннес, гибкая основа не вступит в силу, если вы не перезапишете свойство ширины. Вы также можете сделать это, изменив атрибут размера входного элемента.
<input size=2>
Введенный выше ввод будет иметь ширину для размещения двух символов.
Дополнительно, если то, что вы хотите, предназначено для первый и последний столбцы, чтобы занять оставшееся доступное пространство, вы можете дать им flex-grow: 1 и удалить flex-grow в центральном столбце (по умолчанию 0).
.col-2 {
/*flex-grow: 2;*/
flex-grow: 1;
}
.col-1 {
/*flex-grow: 1;*/
}