.toggle-vis-btn shrinks the visible mat-icon-button to 28px, but Material still reserves its default ~48px invisible touch-target/ripple centered on the button. Since the suffix container doesn't clip overflow, that ripple rendered past the input's own border on hover/focus, making the eye icon look like it was sitting outside/on top of the field edge. Constrained the touch-target and ripple to match the shrunk button.