Got some questions in Build a Survey Form's example

Tell us what’s happening:
the example is here https://codepen.io/freeCodeCamp/pen/VPaoNP

Since I worked on the Bulid a Survey Form challenge for several days, I’ve been looking through the example page many times to make sense of how does the css works make the layout like this.
Then I got a few questions can’t understand by myself.
Here is the questions:
1.form-outer{margin:0 auto;}
makes the form-outer div centered,is that right?
And body{text-align:center;} just defines the divs in the form-outer div?
I used to think that body{text-align:center;} itself can make the form-outer div centered in the page,until I deleted the margin:0 auto; and the whole div goes left.What’s the difference between them?
2.What does the
#userAge {
width: 40px;
}
stands for?

Thank you!
While my English is not good ,any suggestions in English is welcome!
Your code so far

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36.

Link to the challenge:

Hi @Wood-Cube
1 . Understand that rather that defining the 4 marge for an element with margin-top, margin-right, margin-bottom and margin-left we can just use f margin to do so because it is a shorthand property . So defining margin:0 auto will be count like if you do this:
Margin-top: 0;
Margin-bottom: 0;
And auto means depending of the width of your element, there will always be the same margin to left and to the right.
So yes the element wil be centered relatively to the parent element
2. Text-align: center , center all the text elements(like p, h1…h6) in the element where this property is declared, … If these element dont have their own text-align property

  1. #userAge {
    width: 40px;
    }
    means there is an element with an id set to userAge.
    This element has its width set to 40px…
    I really hope that could help you

Thank you for your help.
I wander what does #userAge {
width: 40px;
}
stands for because there is no element with id=“userAge” in the given example.
So I didn’t what is it defined.