/*  
    JavaScript 7th Edition
    Chapter 6
    Hands-on Project 6-1

    Project Description:
    This stylesheet controls the layout and appearance of the sign-up form
    and the account information page. It includes:
       - A full CSS reset
       - Page layout styling
       - Form styling
       - Invalid input highlighting
*/

/* Apply natural box model to all elements */
* {
   box-sizing: border-box;
}

/* Reset default browser styles */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
   margin: 0;
   padding: 0;
   border: 0;
   font-size: 100%;
   font: inherit;
   vertical-align: baseline;
}

/* Ensure HTML5 elements display correctly */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
   display: block;
}

/* Page body styling */
body {
   line-height: 1;
   width: 960px;
   background: white;
   margin: 0 auto;
   font-family: Verdana, Geneva, sans-serif;
}

/* Remove list bullets */
ol, ul {
   list-style: none;
}

/* Header styling */
header {
   background: #5472B2;
   width: 100%;
   color: white;
   font-size: 48px;
   text-align: center;
   line-height: 1.5em;
}

/* Section heading */
section h1 {
   font-size: 1.4em;
   margin: 20px 0;
}

/* Fieldset styling */
fieldset {
   border: 1px solid rgb(192,192,192);
   background-color: #EBE09C;
   box-shadow: 3px 3px 20px gray;
   padding: 30px;
   width: 600px;
   margin: 0 auto;
}

/* Legend styling */
fieldset legend {
   color: rgb(80,80,80);
   background: rgba(255,255,255,0.3);
   font-size: 1.05em;
}

/* Label styling */
label {
   display: block;
   width: 200px;
   float: left;
   clear: left;
   margin-bottom: 15px;
   text-align: right;
   margin-right: 20px;
   font-size: 1em;
   color: rgb(80,80,80);
}

/* Input styling */
input {
   display: block;
   float: left;
   font-size: 1.05em;
   color: rgb(80,80,80);
   margin-bottom: 15px;
}

/* Highlight invalid fields */
input:invalid {
   border-color: red;
   box-shadow: 2px 2px 5px red;
}

/* Submit button styling */
input[type='submit'] {
   clear: left;
   display: block;
   margin: 0 auto;
   float: none;
   font-size: 1.1em;
   background-color: #BF7E21;
   color: white;
   padding: 3px;
   width: 100px;
}

/* Table styling */
table {
   margin-left: 30px;
   border-collapse: collapse;
}

table td {
   border: 1px solid rgb(150,150,150);
   padding: 5px;
}

table tr td:first-of-type {
   background-color: #E3E09B;
}
