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, img, ins, kbd, q, s, samp, small, strike, 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;
}
/* ------------------------------------------------------ */
/* ------------------------------------------------------ */
/* layout */
/* ------------------------------------------------------ */
/* ------------------------------------------------------ */
body {
 background-color: #000;
}

#content {
    padding: 1rem;
    background-color: #4f6952;
}

#contentHeader {
    display: flex;
    align-items: end;
}

.contentHeaderTab {
    display: flex;
    align-items: end;
    cursor: pointer;
}

.contentHeaderTab h1 {
    font-family: 'Roboto Slab', Georgia, 'Times New Roman', Times, serif;
    font-weight: 500;
    color: rgba(20,52,63,.8);
    line-height: 2.2rem;
    background-color: rgba(166,206,226, .5);
    display: inline-block;
    border-radius: 1rem 1rem 0 0;
    font-size: 1.5em;
    padding: 5px 20px 3px 20px;
}

.contentHeaderTab h1:hover {
    background-color: rgba(166,206,226, .8);
    cursor: pointer!important;
}

.contentHeaderTab.selected h1 {
    font-size: 2.2rem;
    padding: 10px 20px 5px 20px;

    color: #14343f;
}

.contentHeaderTab.selected h1,
.contentHeaderTab.selected #inversecurve {
    background-color: #a6cee2;
    display: block;
}

#inversecurve {
    background-color: rgba(166,206,226, .5);
    width: .5rem;
    height: 1rem;
    display: none;
}

#inversecurve div {
    border-radius: 0 0 0 .5rem;
    background-color: #4f6952;
    width: .5rem;
    height: 1rem;
}

#inversecurve.left div {
    border-radius: 0 0 .5rem;
}


/* ------------------------------------------------------ */
/* ------------------------------------------------------ */
/* header */
/* ------------------------------------------------------ */
/* ------------------------------------------------------ */
header {
    background-color: #232323;
    justify-content: flex-start;
    gap: 10px;
    align-items: center;
    width: auto;
    margin: 0 auto;
    display: flex;
}

#headers {
    flex: 1 1 auto;
    padding: .5rem 0;
}

header h2 {
    font-family: 'Roboto Slab', Georgia, 'Times New Roman', Times, serif;
    color: #ccc;
    font-size: 1.5rem;
    font-weight: 300;
    font-size: 1rem;
} 

header h3 {
    font-family: 'Roboto Slab', Georgia, 'Times New Roman', Times, serif;
    font-weight: 400;
    color: white;
    font-size: 1.5rem;
    line-height: 1.5rem;
}

#subtitle {
    align-self: stretch;
    background-color: #a1c0a5;
    padding: 0 1rem;
    display: flex;
    align-items: center;
}

header h4 {
    font-family: 'Roboto Slab', Georgia, 'Times New Roman', Times, serif;
    font-weight: 400;
    color: black;
    font-size: 1.5rem;
}

#logo {
    padding: .5rem 0 .5rem 1rem;
}

header img {
    flex: 0 0 auto;
    width: 60px;
    height: 60px;
    display: block;
} 


/* ------------------------------------------------------ */
/* ------------------------------------------------------ */
/* about the model */
/* ------------------------------------------------------ */
/* ------------------------------------------------------ */
#about {
    background-color: #323232;
    padding: 1rem 2rem;
}

#about h2 {
    font-family: 'Roboto Slab', Georgia, 'Times New Roman', Times, serif;
    color: white;
    font-size: 1.5rem;
    margin-bottom: 1rem;
    font-weight: bold;
    margin-top: 1rem;
}

#about h3 {
    font-family: 'Roboto Slab', Georgia, 'Times New Roman', Times, serif;
    color: white;
    font-size: 1rem;
    margin-bottom: 1rem;
}

#about p,
#about li {
    color: white;
    font-size: .8rem;
    font-weight: 100;
    margin-bottom: 1rem;
}

#about hr {
    margin: 2rem 0;
    border: 1px solid rgba(255, 255, 255, .2);
    border-top: 1px;
}


/* ------------------------------------------------------ */
/* ------------------------------------------------------ */
/* footer */
/* ------------------------------------------------------ */
/* ------------------------------------------------------ */
footer {
    clear: both;
    padding: 1rem 2rem;
    background-color: #000;
}

footer p {
    color: white;
    font-size: .7rem;
}

/* ------------------------------------------------------ */
/* ------------------------------------------------------ */
/* fonts */
/* ------------------------------------------------------ */
/* ------------------------------------------------------ */

h3 {
    font-family: 'Roboto Slab', Georgia, 'Times New Roman', Times, serif;
    font-size: 1.2em;
    font-weight: bold;
}

h4 {
    font-family: 'Roboto Slab', Georgia, 'Times New Roman', Times, serif;
    font-size: 1em;
    font-weight: bold;
}

h5 {
    font-family: 'Open Sans', Verdana, Geneva, Tahoma, sans-serif;
    font-size: .8rem;
    margin-top: .2rem;
}

h5#graphSubTitle {
    text-align: center;
    margin-bottom: 1rem;
}

p,
li {
   font-family: 'Open Sans', Verdana, Geneva, Tahoma, sans-serif;
}

p, 
li {
    margin-bottom: .5rem;
}
.tabContent p,
.resultExplanation {
    margin: 0 0 1rem 0;
    color: black;
    /* background: #cfcfcf; */
    padding: .5rem .5rem;
    border-radius: .5rem;
    font-weight: normal;
}

.resultExplanation {
    padding-left: .75rem;
    padding-right: .75rem;
}

.resultExplanation h3 {
    margin-bottom: .5rem;
}

.resultExplanation p {
    margin-bottom: 0;
    padding-left: 0;
}

ul, 
ol {
    margin-left: 2rem;
}

#instructions p {
    padding-bottom: .5rem;
}

#instructions img {
    display: inline-block;
    vertical-align: middle;
}

#instructions ul {
    padding-bottom: 1rem;
}

label {
    font-family: 'Open Sans', Verdana, Geneva, Tahoma, sans-serif;
}

sub {
    vertical-align: sub;
    font-size: smaller;
  }

.hidden {
    display: none!important;
}

/* ------------------------------------------------------ */
/* ------------------------------------------------------ */
/* diagram */
/* ------------------------------------------------------ */
/* ------------------------------------------------------ */
#incorrect {
    position: absolute;
    background: #910000;
    z-index: 1000;
    width: 50%;
    left: calc(25% - 5px);
    top: 40px;
    border-radius: 1rem;
    box-shadow: 0 0 14px 4px rgba(0, 0, 0, .7);
    border: 5px solid #710202;
    color: white;
}

#incorrect:hover {
    cursor: pointer;
}

#incorrect h3, 
#incorrect p {
    padding: 0 3rem;
}

#incorrect h3 {
    padding-top: 3rem;
    padding-bottom: .5rem;
}

#incorrect p {
    padding-bottom: 3rem;
}

#incorrect button {
    float: right;
    background-color: #710202;
    border: none;
    border-radius: 0 8px 0 14px;
    padding: .5rem .75rem .75rem 1rem;
    color: white;
    font-size: 1rem;
}

#incorrect button:hover {
    background-color: #b20101;
    cursor: pointer;
}   


#visuals.modelenergy {
    width: calc(100% - 2rem);
}

#visuals.modelenergy.correct {
    /* border-color: #ffc200; */
    border-color: #225166;
}

#diagram {
    display: flex;
    background-color: white;
    /* gap: 10px; */
}

#diagram.correct {
    background-color: #225166;
}

#diagram .box {
    flex: 1 1 33%;
    box-sizing: border-box;
    position: relative;
    border-width: 0 2px;
    border: 5px solid white;
}

#diagram.correct .box {
    border-color: #225166;
}

#diagram .box:first-of-type {
    border-bottom-left-radius: 13px;
    border-top-left-radius: 13px;
}

#diagram .box:last-of-type {
    border-bottom-right-radius: 13px;
    border-top-right-radius: 13px;
}

#diagram .box:hover,
#diagram .box.active {
    border-color: #458608;
    /* cursor: copy; */
}

#screen:not(.dragging) #diagram .box[data-choice="placeholder"]:hover {
    cursor: default;
}

/* #diagram .box::drag-image {
  content: "📦 Dragging...";
  padding: 0.5rem 1rem;
  background: #fff6d6;
  color: #333;
  border: 2px dashed orange;
  border-radius: 0.5rem;
} */
/* 
#screen.removingfromdiagram #diagram .box:active {
    border: 1px solid red;
} */

/* #screen.removingfromdiagram  #diagramChoicesAll:hover {
    border: 1px solid red!important;
} */

:not(.dragging) #diagram .box:hover {
    cursor: grab;
}

#screen.dragging #diagram .box:hover,
#screen.clicking #diagram .box:hover {
    cursor: copy !important;
}

/* #screen.removingfromdiagram .choice:hover {
    cursor: crosshair!important;
    border: 2px solid red!important;
} */

#screen.removingfromdiagram #diagram .box.dragging:hover:not(.active) {
    border-color: rgb(197, 5, 5);
    /* cursor:crosshair; */
}

#diagram.correct .box:hover {
    border-color: #225166;
}

#diagram .box .diagramimg  {
    display: block;
    /* border: 1px solid black; */
    max-width: 100%;
    /* border-radius: 8px 8px 0 0; */
    border-radius: 0;
    user-select: none;
    /* border: .5px solid white; */
    border: 1px solid #5e6c70;
}

#diagram.correct .box .diagramimg {
    border-width: 0;
}

#diagram.correct .box:last-of-type .diagramimg,
#diagram.correct .box:first-of-type .diagramimg {
    border-bottom-right-radius: 0;
    border-bottom-left-radius: 0;
}

#diagram .box:first-of-type .diagramimg {
    border-radius: 8px 0 0 8px;
}

#diagram .box:last-of-type .diagramimg {
    border-radius: 0 8px 8px 0;
}

#diagram .box .num {
    position: absolute;
    background-color: white;
    border-radius: 7px 0 7px 0;
    width: 20px;
    height: 25px;
    font-weight: bold;
    font-family: 'Open Sans';
    font-size: 1.5rem;
    padding: 5px 10px 10px 10px;
    text-align: center;
    /* margin: 5px; */
    /* border: 1px solid black; */
    border-width: 0 1px 1px 0;
    user-select: none;
    box-shadow: 3px 3px 2px rgba(0,0,0,.1);
    z-index: 500;
    border: 1px solid #5e6c70;
    /* border-top-width: 0; */
    border-top-color: white;
}


#diagram .box:nth-of-type(1) .num {
    border-left-color: white;
    border-top-color: white;
}

#diagram .box:last-of-type .num {
    right: 0;
    /* border-width: 0 0 1px 1px; */
    border-radius: 0 7px 0 7px;
    box-shadow: -3px 3px 2px rgba(0,0,0,.1);
    border-right-color: white;
}

#diagram .box:nth-of-type(2) .num {
    left: calc(50% - 20px);
    /* border-width: 0 1px 1px 1px; */
    border-radius: 0 0 7px 7px;
    box-shadow: 0px 3px 2px rgba(0,0,0,.1);
}

#diagram:hover .box:hover .num {
    border-color: #5e6c70!important;
}

#diagram .motion {
    position: absolute;
    width: calc(100% - 2px);
    height: 100%;
    top: 0;
    z-index: 200;
    left: 1px;
}

#diagram:not(.correct) .caption,
#diagram:not(.correct) .motion {
    display: none;
}

#diagram.correct .caption {
    display: block;
    background-color: #efefef;
    padding: 10px;
    font-family: 'Open Sans', Verdana, Geneva, Tahoma, sans-serif;
    border-top: 1px solid #5e6c70
}

#diagram .box:first-of-type .caption {
    border-bottom-left-radius: 8px;
}

#diagram .box:last-of-type .caption {
    border-bottom-right-radius: 8px;
}


/* button ------------------- */
#instructions #testmodel {
    display: block;
    font-size: 1.5rem;
    background-color: #225166;
    font-family: 'Roboto Slab', Georgia, 'Times New Roman', Times, serif;
    color: white;
    margin-top: .5rem;
    border-radius: 20rem;
    text-align: center;
    padding: 1.5rem;
    box-shadow: 0px 0px 5px rgba(0, 0, 0, .25);
    /* display: flex; */
    align-items: center;
    /* gap: 0 10px; */
    /* flex-direction: column; */
    user-select: none;
    /* margin: 2rem 15% 1rem 15%; */
    padding: 1rem;
    margin: 0;
}

#instructions #testmodel:hover {
    cursor: pointer;
    background-color: #2e6a7f;
}

#instructions .modelenergy {
    display: flex;
    gap: 1rem;
}


#hint {
    background: #7aa8ba;
    color: #16343f;
    padding: 1rem;
    font-size: 1.2rem;
    font-weight: 200;
    border-radius: .5rem;
    /* font-family: 'Roboto Slab', Georgia, 'Times New Roman', Times, serif; */
    font-family: 'Open Sans', Verdana, Geneva, Tahoma, sans-serif;
    flex: 1 0 300px;
    margin-bottom: .75rem;
}

#hint div {
    display: flex;
}

#hint h4 {
    margin-bottom: .5rem;
    font-size: 1.3rem;
}

#hint p {
    font-size: 1rem;
}

#hint p strong {
    font-weight: bold;
}

#hint i {
    color: #ffc200;
    font-size: 1.5rem;
    margin-right: 10px;
    /* text-shadow: 1px 1px 1px #fff; */
    -webkit-text-stroke: 1px white;
}

/* ------------------------------------------------------ */
/* ------------------------------------------------------ */
/* choices */
/* ------------------------------------------------------ */
/* ------------------------------------------------------ */
#diagramChoices {
    width: calc(100% - .8rem);
    display: flex;
    /* flex-wrap: wrap; */
    gap: 0;
    /* margin-top: 1rem; */
    margin: .5rem auto 0 auto;
    /* background-color: white; */
    background-color: transparent;
    padding-top: 10px;
}

#diagramChoicesAll {
    display: flex;
    gap: 3px;
    margin: 1rem auto;
    background-color: transparent;
    padding-top: 10px;
    border-radius: 8px;
    box-shadow: 0px 0px 5px rgba(0, 0, 0, .25);
    background-color: white;
    padding: 10px;
    flex-wrap: wrap;
    width: calc(100% - 2rem);
}

#diagramChoices .choiceCol {
    flex: 1 1 33%;
    background-color: white;
    padding: 10px;
    border-radius: 8px;
    box-shadow:  0px 0px 5px rgba(0, 0, 0, .25);
}

.choiceCol h3 {
    padding-bottom: 1rem;
    text-align: center;
}

.choice {
    flex: 1 1 20%;
    display: flex;
    text-align: left;
    background-color: #efefef;
    display: flex;
    align-items: center;
    justify-items: stretch;
    cursor: pointer;
    padding: 0 0 0 .6rem;
    gap: 10px;
    border: 5px solid white;
    box-sizing: border-box;
    border-radius: 12px;
}

.choice:hover {
    /* background-color: #c2dae896; */
    background-color: #dcdbdb;
    cursor: grab;
}

.choice:hover .unchecked {
    border-color: transparent
}

/* .choice:first-of-type {
    border-radius: 8px 8px 0 0 ;
}

.choice:last-of-type {
    border-radius: 0 0 8px 8px;
    border: none;
} */

/* #diagramChoicesAll .choice {
    border-radius: 8px;
} */


.base {
    font-size: 2rem;
    border-radius: 50%;
    height: 32px;
    width: 32px;
    display: block;
    line-height: 0;
    /* border: 2px solid #c2dae8; */
    /* background: #efefef; */
    color: transparent;
    position: relative;
}

.selected .base {
    background-color: #458608;
}

.unchecked {
    border: 2px solid white;
}
.choice:not(.selected) .checked
{
    display: none;
}

.choice .partLabel {
    user-select: none;
    font-family: 'Open Sans', Verdana, Geneva, Tahoma, sans-serif;
    flex: 1 1 auto;
    line-height: 1.2rem;
    font-size: 1rem;
}

.choice .img {
    flex: 0 0 70px;
    align-self: flex-end;
    background-color: white;
    border-radius: 0 8px 8px 0;
    /* border: 2px solid white; */
    width: 70px;
    height: 50px;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    border-left: 1px solid white;
}

.choice #pizzaimg.img {
    background-position-x: 70%;
}

.choice #thermostatimg.img {
    background-position-x: 5%;
}

.choice #powerlineimg.img {
    background-position-x: 0%;
}

.choice #batteryimg.img {
    background-position-x: 20%;
}

.choice #oilimg.img {
    background-position-x: 80%;
}

.choice #lightimg.img {
    background-position-x: 0%;
}

.choice #soccerimg.img {
    background-position-x: 15%;
}

.choice #stoveimg.img {
    background-position-x: 70%;
}

.choice .checked,
.choice .unchecked {
    font-size: 2rem;
    border-radius: 50%;
    height: 29px;
    width: 29px;
    display: block;
    line-height: 0;
    border: 2px solid #efefef;
    /* color: #87aec5; */
    color: #bfbfbf;
    background: transparent;
    text-align: center;
}

.choice .checked {
    border-color: white;
    color: #458608;
    background: white;
}

.choice .checked span {
    width: 100%;
    height: 100%;
    display: inline-block;
    border-radius: 50%;
    line-height: 29px;
    text-align: center;
    font-weight: bold;
    font-size: 20px;
    vertical-align: middle;
    background-color: #458608;
    color: white;
}

.choice.selected {
    color: white;
    background-color: #225166;
    border-color: white;
}

.choice:not(.selected) .checked,
.choice.selected .unchecked {
    display: none;
}

.choice.selected .checked,
.choice .unchecked {
    display: block;
}

.choice.active,
.choice.dragging {
    border-color: #458608;
}

.choice.dragging {
    transform: translate(0, 0)!important;
}

/* ------------------------------------------------------ */
/* ------------------------------------------------------ */
/* model */
/* ------------------------------------------------------ */
/* ------------------------------------------------------ */
#visuals {
    /* flex: 0 0 500px; */
    background-color: #efefef;
    border-radius: .5rem;
    /* margin-left: 10px; */
    box-shadow: 0px 0px 5px rgba(0, 0, 0, .25);
    align-self: flex-start;
    border: 10px solid white;
    position: relative;
    margin: 0 auto;
}

#visuals.large {
    flex: 0 0 800px;
}

/* .resultsscreen.top:not(.hidden) + #model {
    border-radius: 0 0 .5rem .5rem;
} */


svg {
    transform-origin: center center;
}

#model {
    border: .5rem;
    background-color: white;
}

#model img#community {
    display: block;
    width: 100%;
    border-radius: 0 0 .5rem .5rem;
    user-select: none;
}

#model img#community:hover,
#highlightHolder:hover {
    cursor: pointer;
}

#contentWrapper {
    max-width: 1250px;
    margin: 0 auto;
}

#model img#community,
#highlightHolder {
    max-width: 1200px;
}

#highlightHolder {
    position: absolute;
    z-index: 200;
    display: block;
    width: 100%;
}

#highlightHolder svg g {
    opacity: 0;
}

#highlightHolder svg g.show {
    opacity: 100;
}

/* ------------------------------------------------------ */
/* ------------------------------------------------------ */
/* build cost */
/* ------------------------------------------------------ */
/* ------------------------------------------------------ */
#buildCost {
    background: #4f6952;
    color: white;
    padding: 1rem;
    font-size: 1.2rem;
    font-weight: 200;
    border-radius: 8px 8px 0 0 ;
    font-family: 'Roboto Slab', Georgia, 'Times New Roman', Times, serif;
}

#currentCost {
    font-family: 'Open Sans', Verdana, Geneva, Tahoma, sans-serif;
}

#buildCost strong {
    font-weight: bold;
}

#energyCount {
    font-weight: bold;
    color: #fbe359;
    margin-left: 5px;
}



/* ------------------------------------------------------ */
/* ------------------------------------------------------ */
/* load results */
/* ------------------------------------------------------ */
/* ------------------------------------------------------ */


.hide {
    display: none!important;
}

/* ------------------------------------------------------ */
/* ------------------------------------------------------ */
/* tabs */
/* ------------------------------------------------------ */
/* ------------------------------------------------------ */
#instructions {
    border-radius: 0 1rem 0 0;
    background-color: #a6cee2;
    padding: 1rem;
    display: flex;
    align-items: center;
    padding-bottom: 1rem;
    gap: 10px;
}

#instructions .button {
    flex: 1 0 auto;
    margin-left: 2rem;
}   

#instructions h3 {
    margin-bottom: 1rem;
    margin-top: .5rem;
}

#screen {
    display: flex;
    flex-direction: column;
    clear: both;
    padding: 0 1rem 1rem 1rem;
    background-color: #a6cee2;
    border-radius: 0 0 1rem 1rem;
}

#tabWrapper {
    flex: 1 1 auto;
    /* margin-right: 10px; */
 }

#tabs {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    align-items: stretch;
    padding: 0;
}

/* -------------------------------------------------------------- */
/* -------------------------------------------------------------- */
/* MEDIA QUERIES ------------------------------------------------ */
/* -------------------------------------------------------------- */
/* -------------------------------------------------------------- */
@media only screen and (max-width: 1060px) {
    .choice {
        flex-basis: 30%;
    }
}   

@media only screen and (max-width: 810px) {
    .choice {
        flex-basis: 45%;
    }

    .contentHeaderTab.selected h1 {
        font-size: 1.5rem;
    }

    .contentHeaderTab h1 {
        font-size: 1.2rem;
        line-height: 1.5rem;
    }

    #instructions .modelenergy {
        flex-direction: column;
    }
} 

@media only screen and (max-width: 580px) {
    .choice {
        flex-basis: 85%;
    }

    .contentHeaderTab.selected h1 {
        font-size: 1.2rem;
    }

    .contentHeaderTab h1 {
        font-size: 1.2rem;
        line-height: 1.2rem;
    }
} 