.Input { position: relative; flex: 25% 1 0; border: 2px solid var(--color-blue); border-radius: var(--radius-default); overflow: hidden; transition: var(--transition-default); outline: 0 solid var(--color-white); & label { position: absolute; font-size: .8em; top: .3rem; left: .5rem; transition: var(--transition-default); } & input { all: unset; width: calc(100% - 1rem); padding: 1.3rem .5rem .5rem .5rem; background: var(--color-white); &[type="number"] { text-align: right; } } &.error { border-color: var(--color-red); outline-width: 2px; } & input:focus, & input:not(:placeholder-shown) { & + label { color: var(--color-main); } } }