/* Overall layout */
body {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1em;
  background-color: #f7f5ee;
  color: #333333;
  margin: 0;
  padding: 0;
}
#wrapper {
  width: 1000px;
  max-width: 95%;
  margin: 0 auto;
  border: 1px solid #666666;
  background-color: #ffffff;
}
#main {
  clear: left;
  padding: 1em;
}
#banner {
  padding: 1em 2em 0 0;
  min-height: 6em;
}
footer {
  clear: left;
  margin: 1em 0;
  padding: 1em;
  font-size: 0.9em;
  border-top: solid thin #666666;
}

/* Home Page Layout */

#mainWrapper {
  background-color: #fff;
  padding: 20px;
}

#home #mainWrapper {
  display: grid;
  grid-template-columns: 2fr 1fr; /* Main column takes 2/3, aside takes 1/3 */
  gap: 20px; /* Space between columns */
}
aside {
  background: #ffc;
  border: 2px solid #306;
  padding-left: 0.5rem;
}
aside h2 {
  font-size: 1.2em;
  padding-top: 0.5rem;
  padding-bottom: 0;
}
aside ul {
  margin: 1em;
  padding: 0;
}

/* HTML Elements */

h1,
h2,
h3,
h4 {
  font-weight: bold;
}
h1 {
  font-size: 1.6em;
  color: #227;
  font-weight: bold;
}
h2 {
  font-size: 1.4em;
  color: #227;
}

h3 {
  font-size: 1.2em;
  color: #333333;
  margin-left: 0.5em;
}
h4 {
  font-size: 1em;
  font-style: italic;
  margin-left: 0.5em;
  margin-bottom: 0.5em;
  padding-bottom: 0;
  color: #333333;
}
p,
li,
dd {
  margin-top: 0.25em;
  margin-bottom: 1em;
  margin-left: 0.65em;
  line-height: 1.5em;
}
ul ul,
ul ol,
ol ol,
ol ul,
ul p,
ol p {
  margin-top: 0.75em;
}
ol {
  list-style-type: decimal;
}
ol ol {
  list-style-type: lower-alpha;
}
ol ul {
  list-style-type: disc;
}
dl {
  margin-top: 1em;
}
dt {
  font-weight: bold;
}
dd {
  margin: 1em;
}
dt span.filename {
  font-style: italic;
}
a,
a:visited {
  text-decoration: none;
  color: #227;
  border-bottom: 1px solid #227;
}

a:hover,
a:focus,
a:active {
  background: #ffc;
  border-bottom: 1px solid #226f83;
  text-decoration: none;
}
textarea,
fieldset {
  width: 80%;
}
fieldset {
  padding: 0.5em;
}
legend {
  color: #000;
  margin: 0;
  padding: 0;
  padding-bottom: 0.5em;
}

/* Banner */
#banner {
  background: #4b2e83;
}

#home #banner {
  padding-bottom: 2.5rem;
}

#instructor #banner {
  background-color: #226f83;
  padding-bottom: 0;
}
#student #banner {
  background: #cc0000;
  padding-bottom: 0;
}
#siteTitle {
  font-family: Cambria, Trajan, serif; /* good fonts for Roman numerals */
  font-size: 1.8em;
  letter-spacing: 0.25em;
  margin: 0.25em 1em;
  color: #fff;
  font-weight: bold;
  text-shadow: 2px 2px 2px #333333;
}
#version {
  font-family: Cambria, Trajan, serif;
  font-size: 1.2em;
  color: #ffffff;
  margin: 0.25em 3em;
}
#subTitle {
  font-family: Cambria, Trajan, serif;
  font-size: 1.4em;
  color: #ffffff;
  text-align: right;
  font-weight: bold;
  letter-spacing: 0.2em;
  padding-bottom: 2rem;
}
#logo {
  margin: 0;
  padding: 0;
}

/* Navigation */
.primary-menu {
  background-color: #4b2e83;
}
#instructor .primary-menu {
  background-color: #226f83;
  border-bottom: 1px solid #227;
}
#student .primary-menu {
  background: #cc0000;
}
nav ul {
  margin: 0;
  font-family: Arial, sans-serif;
  font-weight: bold;
  width: 100%;
}
nav ul li {
  padding: 0;
  list-style: none;
  margin: 0;
  display: inline;
}
nav ul li a {
  padding: 0.25em 0.65em 0 0.65em;
  margin-bottom: 0;
  margin-left: 3px;
  border: 1px solid #227;
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
  border-bottom: none;
  background: #dde;
  text-decoration: none;
}

nav a:hover,
nav a:focus,
nav a:active,
nav a.thisItem {
  color: #000000;
  background: #ffffff;
}
#btnPrev a:before {
  content: "<<< ";
}
#btnNext a:after {
  content: " >>>";
}

/* Special in-line text styles */

.filename,
.element,
.attribute,
.selector,
.property,
.command {
  font-family: Courier, monospace;
  font-weight: bolder;
}
.filename {
  color: black;
}
.command {
  color: #963; /* brown */
}
.element {
  color: #c00; /* deep red */
}
.selector {
  color: #33c; /* navy */
}
.attribute {
  color: #007a00; /* forest green */
  font-style: italic;
}
.property {
  color: #a86500; /* orange */
}
.term {
  font-weight: bolder;
  font-style: italic;
}

/* Login form */

form#loginForm {
  margin: 1em;
}
form#loginForm div {
  margin: 1em;
}
form#loginForm input {
  width: 25em;
}
form#loginForm input[type="submit"] {
  width: 7em;
}

/* Data Tables (general) */
table,
th,
td {
  border: 1px solid black;
  border-collapse: collapse;
}
th,
td {
  padding: 0.25em 0.5em;
}
th {
  font-weight: bold;
}

/* Day 1 Survey Form */

form#survey div {
  margin: 1em;
}
form#survey label {
  display: block;
  font-weight: bold;
  margin-bottom: 0.5em;
}
form#survey fieldset label {
  display: inline;
  font-weight: normal;
}
#survey fieldset {
  border: none;
  margin-bottom: 1em;
  padding: 0.5em;
}
form#survey fieldset legend {
  font-weight: bold;
  margin-bottom: 0;
  padding-bottom: 0;
}
#survey textarea,
#survey input[type="text"] {
  width: 50%;
}
#survey table th[scope="row"] {
  text-align: left;
  font-weight: normal;
}
#survey table td {
  text-align: center;
}

/* Registration form */
form#register {
  margin-left: 1em;
}
form#register div.formfield {
  margin: 1em;
}
form#register fieldset {
  border: none;
}
form#register input[type="text"] {
  width: 20em;
  font-size: 1em;
}
form#register select {
  font-size: 1em;
}
form#register textarea {
  width: 100%;
}

/* Photos and other images */
div.photo {
  margin: 0 1em 30px;
}
div.photo p {
  margin: 0 0 0.5em;
  padding: 0;
  position: relative;
  z-index: 100;
}
div.photo img {
  position: relative;
  z-index: 1;
}

/* Student Assignment Checklist */

#checklist th,
#checklist td {
  font-size: 0.9em;
  padding: 0.5em;
  font-weight: normal;
}
#checklist th[scope="col"] {
  font-weight: bold;
  text-align: center;
}
#checklist th[scope="row"] {
  font-weight: normal;
  text-align: left;
}

/* Question Bank */
.question {
  margin-bottom: 1.5em;
  padding: 1em;
  border: 3px solid #999;
  background-color: #fefefe;
}
ul#questionBankOptions {
  list-style-type: none;
  padding-left: 0.25em;
}
.question h3 {
  font-size: 1.1em;
  margin: 0 0 0.75em;
}
.question label {
  display: block;
  margin-bottom: 0.25em;
}
.question input[type="text"] {
  width: 50%;
}
.question fieldset {
  border: none;
}
.question legend,
.question .legend {
  margin-left: -0.5em;
  padding-bottom: 0;
}
.question .legend {
  /* used when questions include embedded elements */
  /* embedded elements not allowed inside <legend> */
  margin-bottom: 1.5em;
}
.question fieldset ol {
  list-style-type: lower-alpha;
  margin-top: 0.25em;
  margin-bottom: 0.25em;
  padding-left: 1em;
}
.question fieldset label {
  display: inline;
  margin-bottom: 0;
}
.question fieldset input {
  display: none;
}
.question div.answer {
  display: none;
}
.question div.answer span.label {
  font-weight: bold;
}

/* Feedback Form */
form#feedback div,
form#feedback fieldset {
  margin: 1em;
}
form#feedback fieldset {
  border: none;
}
form#feedback legend {
  margin: 0 -0.5em;
  padding-bottom: 0;
}
form#feedback fieldset ul {
  list-style-type: none;
  padding-left: 0;
}
form#feedback input[type="submit"] {
  font-size: 1em;
  border: 3px solid #aaa;
  padding: 0.25em;
  border-radius: 0.25em;
  text-transform: capitalize;
}
form#feedback input[type="submit"]:hover,
form#feedback input[type="submit"]:focus {
  border: 3px solid #94bff9 !important;
  border-radius: 3px;
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset,
    0 0 3px rgba(102, 175, 233, 0.6);
  outline: 0 none;
}

/* Misc styles */
.alert {
  font-weight: bold;
  color: #000;
  border: 2px solid #000;
  font-weight: bold;
  background-color: #ffc;
  padding: 1em;
  text-align: center;
}
div.alert p,
div.alert ul {
  text-align: left;
}
div.alert li {
  margin-bottom: 0.25em;
}
.announcement {
}
.announcement h2 {
  font-size: 1.5em;
  color: #cc0000;
}
.announcement p:first-of-type {
  border-left: 10px solid #990000;
  padding-left: 1em;
}
div.code {
  font-family: Courier, monospace;
  background-color: #ffc;
  margin: 1em;
  padding: 1em;
  border: 2px solid #ccc;
}
span.code {
  font-weight: bold;
  font-style: italic;
}
.cookiecrumbs {
  margin-left: -0.5em;
}
.doublecheck {
  background: yellow;
}
div.image {
  margin-left: 1.5em;
  margin-bottom: 1em;
}
#logo {
  float: left;
  margin: 0;
}
#nets {
  font-weight: bold;
}
#nets ul {
  font-weight: normal;
}
pre.example,
div.example,
#example {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1em;
  line-height: 1.5em;
  margin: 1em 25% 1em 0;
  border: solid thin #666666;
  padding: 1em;
  background-color: #ffffd1;
}
#sample_portfolio #example {
  padding: 2em;
}

.ExampleCaption {
  font-style: italic;
}
.ExampleCaption strong {
  font-style: normal;
}

.highlight {
  background: #ffc; /* pale yellow */
}
.imageStack {
  margin-bottom: 1em;
}
.imageStack p {
  font-weight: bold;
  margin-bottom: 0.25em;
}
.imageStack img {
  margin-left: 1em;
}

.indent1 {
  padding-left: 1em;
}
.indent2 {
  padding-left: 2em;
}
.indent3 {
  padding-left: 3em;
}
.indent4 {
  padding-left: 4em;
}

.ealr1 {
  color: #227;
  font-weight: bold;
  font-size: 1em;
  margin-left: 1em;
  padding: 0.5em 0;
}

.ealr2 {
  font-weight: bold;
  font-size: 1em;
  margin-left: 2em;
  padding-bottom: 0;
}

.ealrlist {
  font-size: 1em;
  margin: 0 0 0 2em;
  padding: 0 0 0 2em;
}

.ealrlist1 {
  list-style: none;
  color: #227;
  font-weight: bold;
  margin: 0 0 0 1em;
  padding: 0;
}

.ealrlist2 {
  color: #333333;
  font-weight: normal;
  list-style-type: disc;
}

.sample_h2 {
  margin-left: 1em;
}

.sample_ul1 {
  margin-left: 2em;
}

.sample_li1 {
  margin-left: 3em;
}

.sample_ul2 {
  margin-left: 4em;
}

.sample_li2 {
  margin-left: 5em;
}
#skip a {
  position: absolute;
  left: -9999px;
  top: -9999px;
  margin: 0.15em 1em;
  background-color: white;
  padding: 0.15em;
  border: black 1px solid;
}
#skip a:focus {
  left: 0;
  top: 0;
}
.timeEstimate {
  font-weight: bold;
}
.updates li {
  margin-bottom: 0.75em;
}
.updates .date {
  font-weight: bold;
  display: block;
  margin-bottom: 0.5em;
}
video {
  border: 2px solid black;
}
.visibly-hidden {
  position: absolute;
  left: -10000px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
