You're throwing a lot of CSS at this problem. If you have a problem, adding more CSS rarely ever makes things any better.
Rethink how your different blocks of content are arranged.
If you want the border to span the width of the input as well as the button, don't put the border on the container.
If you want the button to sit next to the input, don't use absolute positioning.
If you want a gap between the input and the button, don't add padding to the inside of the input.
Learn about margins vs. padding, about inline-block, and if you want bonus points, about flexbox.