Есть еще вариант с 2мя псевдоэлементами, но подходит только для однотонного фона и фикс ширины. Во-первых, из-за обводки, во-вторых, из-за округления. Если блок будет иметь фикс ширину, то округление не важно, просто нужно скорректировать в зависимости от четности или нечетности. https://jsfiddle.net/xm91ny4q/
Меняется, начните вводить текст и увидите.
Цвет placeholder меняется через псевдоэлемент ::placeholder
P.S. Чтобы по сто раз не писать цвет: белый, можно использовать слово inherit, тогда поля унаследуют цвета от родителя (у вас белый задан форме, от него и унаследуют)