p.instruction {
    text-align: center;
    }

p.instruction:before {
    content: "*";
    color: red;
    font-size: 1.5em;
    }

p.instruction:after {
    content: "indicates a required field";
    color: #333;
    }

form {
    width: 60em;
    height: auto;
    border: 1px solid #999;
    padding: 10px;
    margin: 0.5em auto;
    font-size: 1.1em;
    }

fieldset {
    position: relative;
    margin-bottom: 0.5em;
    padding: 1em;
    border: 1px solid #ccc;
    }

input[type="checkbox"] {
    vertical-align: middle;
    }

input[type="submit"] {
    border: 2px outset gray;
    width: 75px;
    }

input[type="submit"]:active {
    border: 2px inset gray;
    position: relative;
    top: 1px;
    left: 1px;
    -moz-outline: none;
    }

input[type="text"], select {
    vertical-align: top;
    width: 10em;
    border: 1px solid #999;
    }

input[type="text"]:focus {
    background-color: #ffe;
    }

legend {
    font-size: 0.9em;
    padding: 0.2em 0.5em;
    background-color: #eee;
    border: 1px solid #555;
    }

label {
  font-size: 0.9em;
  margin: .5em 0;
  }

label span.req:before {
    content: "*\a0";
    color: red;
    }

label:hover span.req {
    color: red;
    }

label:hover span.req:before {
    content: " Required\a0";
    }

label:hover,
label:hover input,
label:hover span {
    background-color: #eee;
    }

label span {
    width: 16em;
    float: left;
    text-align: right;
    margin-right: 1em;
    }

input, select {
    width: 8em;
    border: 1px solid #777;
    }
    
label span.nreq:before {
    }

label:hover span.nreq {
    color: blue;
    }

label:hover span.nreq:before {
    }

