Clarifying definition of outward unit normal

I would like to figure out how to properly define the outward unit normal vector $\nu$ for a bounded domain $\Omega \subset \mathbb{R}^n$ with smooth boundary $\partial \Omega$ ($n \ge 2$). I am following Gilbarg and Trudinger's Elliptic Partial Differential Equations of Second Order.

This function $\nu$ doesn't seem to be defined anywhere in Gilbarg and Trudinger, but it is used often, and even at the beginning of the text, when the divergence theorem is stated.

First, I will start with a definition from section 6.2 in Gilbarg and Trudinger:

Let $\Omega \subset \mathbb{R}^n$ be a bounded domain. We say $\partial \Omega$ is of class $C^k$ if and only if, for each $x_0 \in \partial \Omega$, there is a open ball $B(x_0) = B$ and an bijective function $\psi \colon B \to D \subseteq \mathbb{R}^n$ so that:

1. $\psi(B \cap \Omega) \subseteq \mathbb{R}^n_+ = \{x \in \mathbb{R}^n | x_n > 0\}$,

2. $\psi(B \cap \partial \Omega) \subseteq \partial \mathbb{R}^n_+ = \{x \in \mathbb{R}^n | x_n = 0\}$,

3. $\psi \in C^k(B), \psi^{-1} \in C^k(D)$.

Note: D is open in $\mathbb{R}^n$ by invariance of domain.

Now, starting with this definition, I would like to come to a suitable definition for the outward unit normal (i.e., a definition that makes the divergence theorem hold).

Here's what I have so far. For $x_0 \in \partial \Omega$, we can let $\psi = (\psi_1, \dots \psi_n) : B \to D$ be as in the definition above, and then notice that $B \cap \partial \Omega$ is a level set of the function $\psi_n$ ($\psi_n \equiv 0$ on $B \cap \partial \Omega$). Now, from multivariable calculus, I remember learning that $\nabla \psi_n(x_0)$ "points perpendicular" to the level set $B \cap \partial \Omega$. Intuitively, this seems to be to the property that we want $\nu$ to possess, so it seems like a good attempt to define $\nu(x_0) = \frac{\nabla \psi_n(x_0)}{||\nabla \psi_n(x_0)||}$.

However, I see two issues with trying to make this our definition for $\nu$.

1. How do we know that $\nabla \psi_n (x_0) \neq 0$, so that we can make it into a unit vector?
2. Since the map $\psi$ corresponding to a particular ball is not necessarily unique, how do we know that $\nu$ is well defined?

By property 1, the function $\psi_n$ increases going inside the domain. You should set $$\nu(x_0) = - \frac{\nabla \psi_n(x_0)}{||\nabla \psi_n(x_0)||}$$ if you want the outward normal.
How do we know that $\nabla \psi_n (x_0) \neq 0$?
By assumption, $\psi$ is a diffeomorphism (its inverse is also smooth). Therefore, the Jacobian matrix of $\psi$ is invertible. Consequently, every row of this matrix is a nonzero vector. Including the last row, which is $\nabla \psi_n$.
how do we know that $\nu$ is well defined?
Suppose $\phi$ is another map like $\psi$. It's convenient to normalize it (by adding a constant) so that $\phi(x_0)=\psi(x_0)$. Then $\phi = F\circ \psi$ where $F = \phi\circ \psi^{-1}$ is a diffeomorphism of a neighborhood of $\psi(x_0)$. Note that $F$ leaves the hyperplane $x_n=0$ invariant. Therefore, the partial derivatives of its $n$th component with respect to $x_1,\dots,x_{n-1}$ are zero. In matrix terms, this means the $n$th row of the Jacobian matrix $DF$ is of the form $(0,0,\dots, 0, * )$ where $*$ stands for a nonzero number. This number is positive, because $F$ sends upper halfspace into itself.
The chain rule, applied to $\phi = F\circ \psi$, shows that $\nabla \phi_n(x_0)$ is a positive multiple of $\nabla \psi_n(x_0)$. Therefore, the normalization of these vectors produces the same result.