Si en principio si que se puede hacer.
Los elemento de tipo texto son los más fáciles de hacer. En el caso que muestras te valdría con
box-shadow
—usando inset— y
border-radius
, además de
color
y
background-color
claro.
Para los degradados puedes usar
background: linear-gradient(...)
. Siempre aconsejo usar
este generador.
Para estilizar los desplegables, hay que usar JavaScript ya que los elementos
<option/>
no se pueden estilizar. Creo que en Firefox si, pero es un error ya que según la especificación tienes dos o tres valores que son modificables pero nada mas.