added box-sizing: border-box where necessary