:root {
  --shield : url('images/dce-shield.svg');
  --shield-ml: -12px;
  --shield-size: 45px;
}
/*
  --shield-ext : url('images/dce-shield.svg');
  --shield-ext-ml: -12px;
  --shield-ext-size: 50px;

  --shield-hss : url('images/hss-shield.svg');
  --shield-hss-ml: 0px;
  --shield-hss-size: auto 45 ps;

*/
#header {
      background-image: var(--shield);
      background-repeat: no-repeat;
      background-size: var(--shield-size);
      background-position: left 5px;
      margin-left: var(--shield-ml);
      margin-right: 0px;
      background-color: #fff;
      padding-left: 50px;
  }
  #header a {
      display: block;
  }
  #header a:link,
  #header a:visited {
      text-decoration: none;
      color: #000;
  }

  #header #coursename a {
      font-size-adjust: none;
      background-color: #fff;
      margin-top: 3px;
      color: #444;
      padding-left: 10px;
      height: 1.25rem;
      font-size: 14pt;
      font-weight: bold;
      padding-top: 2px;
      padding-bottom: 2px;
  }
  #header #coursename a span.term {
      color: #999;
  }
  #header #schoolname a {
      background-color: #fff;
      margin-top: 3px;
      color: #444;
      padding-left: 10px;
      height: 1.25rem;
      font-size: 14pt;
      font-weight: bold;
      padding-top: 2px;
      padding-bottom: 2px;
  }

#header.presentation {
  display: flex;
  background-size: 2vw;
  background-position: left;
  padding: 2px 2px 2px 2.2vw;
  margin: 0;
  max-height: 3vw;
  background-color: #fff;
  min-height: 1.5vw;
  line-height: normal;
}
#header.presentation #coursename a,
#header.presentation #schoolname a
{ font-size: 1.5vw;
  padding: 0;
  margin: 0;
  background-color: white;
  color: #a51c30;
  font-weight: normal;
  height: auto;
}
#header.presentation #schoolname a::after {
  content: ' | '
}
#header.presentation > div { margin-right: 2px;}
#header.presentation #coursename a span.term {
  color: #a51c30;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: "Calibri", "Lucida Grande", Verdana, "Trebuchet MS", Geneva, Helvetica, Arial, sans-serif;
    background-color: #ffffff;
    text-align: left;
    clear: left;
}
h2 { margin-top: 0;}

h3 {
    margin-top: 2rem;
    padding-top: 1rem;
    border-top: thin solid #ccc;
}

html {
    margin: 0px;
    margin: 0px;
    font-family: "Calibri", "Lucida Grande", Verdana, "Trebuchet MS", Geneva, Helvetica, Arial, sans-serif;
}

body {
    margin-left: 12pt;
    margin-right: 12pt;
    margin-top: 0px;
    font-family: "Calibri", "Lucida Grande", Verdana, "Trebuchet MS", Geneva, Helvetica, Arial, sans-serif;
    line-height: 1.5;
}

img { max-width: 100%; }

div.imagerow img { width: 30%;}
nav a:visited,
nav a:link {
    color: blue;
    text-decoration: none;
}

nav a:hover {
    color: white;
    background-color: blue;
    text-decoration: none;
}

nav a:link {
    color: #000066;
}

nav a:visited {
    color: #000066;
}

nav a:hover {
    color: #ffffff;
    background-color: #000066;
}

a:visited {
    color: blue;
}

h2 {
    page-break-before: always;
    clear: both;
}

div.nav {
    clear: both;
    font-family: "Calibri", "Lucida Grande", Verdana, "Trebuchet MS", Geneva, Helvetica, Arial, sans-serif;
    margin-top: 4px;

    font-size: 0.5rem;

    /*
    border-top: thin solid #ccc;
    border-bottom: thin solid #ccc;
    background-color: #eee;
    margin-left: -12pt;
    padding-left: 12pt;
    margin-right: -12pt;
    padding-right: 12pt;
    */
}

div.navprevnext {

}

div.navlinks {
    text-align: left;
}

div.title {
    font-weight: bold;
    margin-top: 0.5em;
    font-family: "Calibri", "Lucida Grande", Verdana, "Trebuchet MS", Geneva, Helvetica, Arial, sans-serif;
}

div.link {
    margin-left: 2em;
    margin-top: 0.25em;
}

div.linkuri {
    margin-left: 1em;
    font-family: "Lucida console", courier, monospace;
    font-size: 75%;
}

div.header {
    background-color: #dddddd;
    text-align: left;
    font-variant: small-caps;
    font-size: 0.5em;
    color: #990000;
    border: solid thin #990000;
}

.elementcontent,
.element {
    margin-left: 1em;
}

.bracket {
    font-weight: bold;
}

.ename {
    color: blue;
}

.attr {
    color: green;
}

.attrv {
    color: green;
}

.pcdata {
    color: black;
}

.source,
.htmlexample {
    border-style: solid;
    border-width: thin;
    padding: 0.5em;
    background-color: #eeeeee;
}

hr.examplehr {
    width: 100%;
    clear: both;
}

.center {
    text-align: center;
}

.comment {
    color: #888888;
}

.fasprompt {
    color: navy;
    margin-right: 1em;
}

.command {
    font-weight: bold;
    color: #990000;
}

.terminal {
    background-color: #ffffdd;
    border-style: solid;
    border-width: thin;
    padding: 1em 1em 1em 1em;
}

.highlight {
    background-color: yellow;
}

.styleblock {
    font-size: 80%;
    font-family: courier, monospace;
    white-space: pre;
}

.highlight1,
.highlight {
    padding: 0px;
    background-color: maroon;
    color: white;
}

.highlight2 {
    padding: 0px;
    background-color: olive;
    color: white;
}

.highlight0 {
    padding: 0px;
    background-color: orange;
    color: white;
}

.highlight3 {
    padding: 0px;
    background-color: purple;
    color: white;
}

.highlight4 {
    padding: 2px;
    background-color: green;
    color: white;
    border-bottom: medium solid purple;
    font-weight: bold;
}

.highlight5 {
    padding: 1px;
    background-color: yellow;
    color: black;
    border-bottom: medium solid red;
    font-weight: bold;
}

.highlight6 {
    padding: 1px;
    background-color: green;
    color: white;
    border-bottom: medium solid orange;
    font-weight: bold;
}

.note {
    padding: 0.25em;
    margin: 1em;
    background-color: #eef;
    border: thin solid #ccc;
}

div.room {
    padding: .5em;
}

div.book div.bookcover img {
    float: right;
}

div.book {
    border: thin solid #ccc;
    padding: 0.25em;
    margin: 0.25em;
}

.callout {
    border: thin dashed black;
    background-color: #ffe;
    padding: 0.25em;
    margin: 1em;
}

tr.trhead {
    background-color: #fefecd;
}

tr.trhead th {
    border: thin solid black;
}

table.spreadsheet td {
    border-bottom: thin solid black;
}

.hint {
    margin: 1em;
    padding: 0.5em;
    background-color: #eeeeee;
    border: thin dashed black;
}

blockquote.box,
pre.box {
    margin: 1em;
    padding: 0.5em;
    background-color: #eeeeee;
    border: thin dotted black;
}

/** pre.code {
    margin: 1em;
    padding: 0.5em;
    background-color: #eeeeee;
    border: thin dashed black;
}
**/

img.screenshot {
    border-width: medium;
    border-style: double;
    border-color: black;
}

img.example_screenshot {
    border: thin dotted black;
    padding: 10px;
}

.box {
    padding: 0.25em;
    border: thin dotted black;
}

table tr td,
table tr th {
    vertical-align: top;
}

table.bottom tr td,
table.bottom tr th {
    vertical-align: bottom;
}

.fixme, updateme {
    padding: 1em;
    background: yellow;
    color: red;
    border: thin solid red;
}

div.rendered {
    padding: 0.25em;
    /*border: 1px solid #2B91AF;*/
}

table.grid {
    border: medium solid black;
    border-collapse: collapse;
    margin-bottom: 5px;
}

table.grid td,
table.grid th {
    border-bottom: thin solid black;
    border-right: thin solid black;
    padding: .25em;
}

table.grid caption {
    border: medium solid black;
    background-color: #ddd;
}

table.grid th {
    background-color: #ddd;
}

table.room td, table.room th { padding: 1em; }
td.clientrequest {
    border: thin solid black;
    background-color: #f9f;
}

td.serverresponse {
    border: thin solid black;
    background-color: #ff9;
}

.border {
    border: thin dotted black;
    padding: 0.5em;
    margin: 0.5em;
}

.attributename,
.elementname {
    font-family: lucida console, courier, monospace;
}

table.data td {
    padding: 3px;
}

table.data {
    border: thin solid black;
    margin: 1em;
}

ul li {
    margin-top: 0.5em;
}
/* transparency background-color */

td.tbc {
    width: 150px;
    height: 150px;
    background-color: #999;
    text-align: center;
    vertical-align: middle;
}
/* transparency background-image*/

td.tbi {
    background-position: center;
    width: 150px;
    height: 150px;
    background-image: url(images/satin.png);
    text-align: center;
    vertical-align: middle;
}

.internetarchive dt {
    font-weight: bold;
    font-size: 110%;
}

.internetarchive dl {
    margin-top: 1em;
}

.internetarchive dd {
    margin: 1em 1em 1em 3em;
}

.todo {
    background-color: #ff0;
    color: black;
    border: medium solid red;
    padding: 1em;
}

ul.plain {
    list-style: none;
}

ul.plaininline {
    list-style: none;
}

ul.plaininline li {
    display: inline;
    padding-left: 10px;
}

ul.room li {
    margin-top: 1em;
}



p.thumbshotgrid img {
    border: thin solid #ccc;
    padding: 3px;
}

.ui-tabs .ui-tabs-nav li a {
    font-size: 80%;
    padding: 0.25em 0.25em;
}

.ui-tabs .ui-tabs-panel {
    padding: 0.5em 0.5em 0em 0.5em;
}

.ui-widget-content .example a {
    color: blue;
}

.ui-widget {
    font-family: inherit;
    font-size: inherit;
}

.dp-highlighter {
    margin: 0.5em;
}

input {
    margin-bottom: 0.5em;
}

table.grid tbody tr th {
    text-align: left;
}

td.strict {
    background-color: #cce;
}

td.transitional {
    background-color: #cec;
}

td.xml {
    background-color: #fcc;
}

td.sgml {
    background-color: #cff;
}

code:not(.prism)
{
    font-size: 100%;
    font-family: "lucida console", courier, monospace;
    padding: 2px 4px;
    color: #d14;
    background-color: #f7f7f9;
    border: 1px solid #e1e1e8;
}

a:link code,
a:hover code,
a:active code,
a:visited code,
ZZcode a {
    text-decoration: none;
}

@media print {
    .ui-tabs .ui-tabs-hide {
        display: block !important;
    }
    font-size: 12pt;
}

dt {
    margin-top: 1em;
}

ul.resourcegrid {
    background-color: white;
    display: grid;
    grid-gap: 1rem;
    list-style: none;
    grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
}

ul.resourcegrid > li {

    margin: 0;
    padding: 0.5em;
    border: thin solid #ccc;

    list-style: none;
}

ul.resourcegrid > li img {
    height: 150px;
    margin-left: auto; margin-right: auto;
    display: block;
}

.done {
    text-decoration: line-through;
}

ul.inline {
    background-color: white;
}

ul.inline > li {
    margin: 1em;
    padding: 0.5em;
    border: thin solid #ccc;
    float: left;
    list-style: none;
    ;
}

ZZcode:not(.prism) {
    text-decoration: none;
    padding: 0 3px 2px;
    font-family: Monaco, Menlo, Consolas, "Courier New", monospace;
    color: #333333;
    -webkit-border-radius: 3px;
    -moz-border-radius: 3px;
    -ms-border-radius: 3px;
    -o-border-radius: 3px;
    border-radius: 3px;
    padding: 2px 4px;
    color: #d14;
    background-color: #f7f7f9;
}

code.highlight5 {
    background-color: #fefed0;
    border: 2px solid green;
}

table.languages tr td:first-child {
    font-size: 125%;
    font-weight: bold;
}
.col {
    -webkit-column-gap: 3rem; /* Chrome, Safari, Opera */
    -moz-column-gap: 3rem; /* Firefox */
    column-gap: 3rem;

    -webkit-column-rule: 2px outset #ccc; /* Chrome, Safari, Opera */
    -moz-column-rule: 2px outset #ccc; /* Firefox */
    column-rule: 2px outset #ccc;
}
.col li {
    -webkit-column-break-inside: avoid;
    page-break-inside: avoid;
    break-inside: avoid;
}
.col3 {
    -webkit-column-count: 3; /* Chrome, Safari, Opera */
    -moz-column-count: 3; /* Firefox */
    column-count: 3;
}
.col2 {
    -webkit-column-count: 2; /* Chrome, Safari, Opera */
    -moz-column-count: 2; /* Firefox */
    column-count: 2;
}
.col4 {
    -webkit-column-count: 4; /* Chrome, Safari, Opera */
    -moz-column-count: 4; /* Firefox */
    column-count: 4;
}
.chart rect {
  fill: #4e84c4;
}
.chart rect.highlight1 { fill: #a51c30; }

.chart text.value {
  fill: white;
  font: 10px sans-serif;
  text-anchor: end;
}
.chart text.label {
  fill: white;
  font: 12px sans-serif;
  font-weight: normal;
  text-anchor: start;
}
.histogram text.label {
  fill: black;
  font: 16pt sans-serif;
  font-weight: normal;
  text-anchor: middle;
}
a:link.button,
a:visited.button,
a:hover.button,
a:active.button,
a.button {
	background-color: #eee;
	border: 1px solid rgba(0,0,0,.5);
    padding: 3px 5px;
    margin: 3px 3px 5px 3px;
    display: inline-block;
    border-radius: 5px;
    text-decoration: none;
    color: #333;
}

.smaller { font-size: smaller; }
th.incorrect { background-color: red; color: white; }
th.correct { background-color: green; color: white;}
.url-current,
.url-relative,
.url-resolved { line-height: 125%; padding: 4px 2px; font-family: 'lucida console', monospace }
.url-current { color: darkblue; background-color: #eee;}
.url-relative { color: crimson; background-color: oldlace;}
.warn { padding: 0.5em; color: #8a6d3b; border-radius: 4px; border: 1px solid #faebcc; background-color: #fcf8e3; }


.button {
    line-height: 1.5;
    background: #f5f5f5;
    color: #2D3B45;
    border: 1px solid;
    border-color: #C7CDD1;
    border-radius: 3px;
    transition: all 0.3s ease-in-out;
    display: inline-block;
    position: relative;
    padding: 8px 14px;
    margin-bottom: 0;
    font-size: 0.7rem;
    text-align: center;
    vertical-align: middle;
    cursor: pointer;
    text-decoration: none;
    overflow: hidden;
    text-shadow: none;
    user-select: none;
}
.button.jsfiddle,
button.jsfiddle {
  background-image: url('images/jsfiddle-logo.png');
  background-size: contain;
  background-repeat: no-repeat;
  height: 35px;
  font-size: 1rem;
  border-width: 2px;
  border-color: #2B63DA;
  border-radius: 7px;
  padding: 0.25rem 0.25rem 0.25rem 50px;
  cursor: pointer;
  background-color: #fafaff;
}
button.jsfiddle:hover {
  text-decoration: underline;
}
header { padding-bottom: 4px; border-bottom: 1px solid #ccc; margin-bottom: 0.25em; }
a:hover.button { text-decoration: underline; background-color: #d5d5d5;}
 nav { display: flex;
  justify-content: flex-end; }
.presentation nav .previous,
.presentation nav .next { font-size: 1vw;}
a.previous,
a.next {
  background-image: url('./images/previous.svg');
background-repeat: no-repeat;
background-position: left;
background-size: contain;
padding-left: 1.5em;
}
.presentation nav .next { font-size: 1.3vw; }
a.next {   background-image: url('./images/next.svg');
; background-position: right; padding-right: 1.5em;}

a:hover.previous, a:hover.next {
  background-color: white;
  color: black;
  text-decoration: underline;
}

.navprevnext {
  overflow: auto;}
nav { clear: both; }
footer { clear: both;
  font-size: 1rem; padding-top: 0.5em;
  border-top: 2px dotted #333; margin-top: 1rem;}
p {line-height: 1.5;}
.hide-for-localhost { display: none; }
footer { display: flex; color: #333;}
footer > * { flex-grow: 0; flex-shrink: 0; flex-basis: auto; padding-right: 1rem;}
footer > .copyright { flex-grow: 1; text-align: right; padding-right: 0rem;}
footer a:link,
footer a:visited,
footer a:hover,
footer a:active { color: #333; text-decoration: underline;}
footer a:hover { text-decoration: underline; color: blue;}
.websiteovertime {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.websiteovertime div {
  padding-top: 5rem;
  border-top: medium solid #999999;
  width: 48%;
}
.websiteovertime img {
  width: 100%;
  border: thin outset #666666;
}
form.labelbreak label {
  display: block;
}
div.exampleheader { margin-top: 1rem; margin-bottom: 0.5rem;}
form.jsfiddle, form.codepen { margin-left: 1em; display: inline; }

a.standaloneexample,
.button.codepen,
button.codepen {
  background-image: url('images/codepen-logo.png');
  background-size: contain;
  background-repeat: no-repeat;
  height: 35px;
  font-size: 1rem;
  border-style: solid;
  border-width: 2px;
  border-color: rgb(10,10,10);
  border-radius: 7px;
  padding: 0.25rem 0.25rem 0.25rem 40px;
  cursor: pointer;
  background-color: #fafafa;
}
a.standaloneexample {
  padding: 0.25rem;
  height: calc(35px - 0.5rem - 4px);
  display: inline-block;
  color: black;
  text-decoration: none; background-image: none; }
button.jsfiddle:hover,
button.codepen:hover,
a.standaloneexample:hover
{
  text-decoration: underline;
}
.preferredchoice {
  border: medium solid green;
  padding: 0.5em;
  margin: 0.5em;
  background-color: rgb(240,255,240);
}
ul.expanded li , ol.expanded li { margin-top: 1.5rem; line-height: 175%;}
main.thankyou {
  background-color: #990000;
  width: 100%;
  height: 70vh;
}
main.thankyou h2#thankyou {
  background-color: #990000;
  color: white;
  font-size: 12vw;
  text-align: center;
  margin-top: 0;
  margin-bottom: 0;
  padding-top: 25vh;
}
h4 + div {  margin-left: 2rem;}
.container { display: flex; }
.container h3 { border: none; margin-top: 0.5rem;}
.container > div { flex-grow: 1; flex-shrink: 1;}
code a:link, code a:visited, code a:hover, code a:active { text-decoration: none; color: #d14;}

ul.todolist,
ul.todolist ul
 { list-style: none;}

ul.todolist li:before {
  content: '\2610  ';
  font-size: 2em;
  line-height: 1rem;
}
iframe.example-preview { width: 100%; }
ul.listofexamples a:link.exampletitle { font-size: 1.1rem; font-weight: bold; text-decoration: none;}
ul.listofexamples a:hover.exampletitle { text-decoration: underline; }
ul.listofexamples li { margin-bottom: 1rem;}
.bigparts {
  font-size: 1.2em; font-weight: bold;
}
.sidebyside { display:flex; gap: 1rem; max-width: 100%; flex-wrap: nowrap; align-items: flex-start;}
.sidebyside > * {  flex-grow: 1; flex-shrink: 1; flex-basis: 100%;}
.sidebyside > div.box { border: 2px solid black; padding: 1rem;}
