html, body {
    height: 100%;
    width: 100%;
	margin: 0;
    padding: 0;
    overscroll-behavior: contain;
    touch-action: none;
    overflow: hidden;
}
html{
    position: fixed;
}
#map {
	width: 100%;
	height: 100%;
}
img.thumbnail {
	width: 100%;
}
.infowindow{
    max-width: 214px;
    display: inline-block;
}
div.elementlocation {
	color: grey;
	font-size: 85%;
    font-weight: bold;
}
div.source {
	color: grey;
	text-align: right;
	font-size: 70%;
    margin: 0;
}
div.links {
	color: grey;
	text-align: right;
	font-size: 70%;
    margin: 0;
}
div.cmstext {
	color: yellow;
	text-align: center;
	font-family: monospace;
	font-size: 125%;
	background-color: black;
	padding: 5px 10px;
    /*
	//font-family: "Lucida Console", Monaco, monospace;
	//font-family: "Courier New", Courier, monospace;
    //font-weight: bold;
    */
}
.infowindowheader{
	color: black;
	text-align: left;
    font-size: 85%;
    font-family: monospace;
}
.infowindowdetail{
	color: black;
	text-align: left;
	font-family: monospace;
	font-size: 80%;
	max-height:12em;
    max-width: 210px;
}
.infowindowdetail .label{
    font-size: 101%;
}

.infowindowtableheader{
	color: black;
	text-align: left;
    font-size: 85%;
	font-family: monospace;
}
.infowindowtable {
    display: table;
	font-weight: 400;
	font-family:calibri, sans-serif; 
    border-collapse: collapse;
    width: 100%;
    font-size: 11.5px;
    table-layout: fixed;
}
.infowindowtable th, .infowindowtable td {
    border: 1px solid black;
    word-wrap: break-word;
}

div.splash {
	width: 100%;
	height: 100%;
	position: absolute;
	z-index: 7;
	background-color: #fff;
}
span.label  
{  
    font-weight: bold;
}
.textarea 
{  
	font-family: "Lucida Console", Monaco, monospace;
	font-size: 100%;
}

.infowindow.RWIS{
    max-width: 250px;
    max-height: 350px;
}

.scroll-container{
    margin: auto;
    overflow: hidden;
}

.scroll{
    overflow-y: auto;
}

.infowindow .scroll{
    padding-right: 10px;
}

.infowindow.CCTV .scroll, .infowindow.CMS .scroll{
    padding-right: 0px;
}

/* adapted from https://stackoverflow.com/questions/29698207/how-to-make-a-custom-scroll-bars-in-ie */ 
/*IE*/
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
    .scroll {
        margin-right: -8px;
        padding-top: 32px;
        margin-top: -32px;
        margin-bottom: -32px;
        padding-bottom: 32px;

        /* ie scrollbar color properties */
        scrollbar-base-color: #efefef;
        scrollbar-face-color: #BFBFBF;
        scrollbar-3dlight-color: #BFBFBF;
        scrollbar-highlight-color: #A7A7A7;
        scrollbar-track-color: #efefef;
        scrollbar-arrow-color: #BFBFBF;
        scrollbar-shadow-color: #BFBFBF;
        scrollbar-darkshadow-color: #BFBFBF;
    }
    .scroll:after {
        content: "";
        height: 32px;
        display: block;
    }
    .infowindow .scroll img,.infowindow .scroll .cmstext{
        margin-bottom: -32px;
    }
}

/*Edge*/
@supports (-ms-ime-align:auto)  {
    .scroll {
        margin-right: -8px;
        padding-top: 16px;
        margin-top: -16px;
        margin-bottom: -16px;
        padding-bottom: 16px;
    }

    .scroll:after {
        content: "";
        height: 16px;
        display: block;
    }
    .infowindow .scroll img,.infowindow .scroll .cmstext{
        margin-bottom: -16px;
    }
}

/*Firefox*/
/*From version 64 - https://drafts.csswg.org/css-scrollbars-1/*/
.scroll {
    scrollbar-width: thin;
    scrollbar-color: #BFBFBF #efefef;
}


/*Chrome*/
.scroll::-webkit-scrollbar-track {
    background-color: #efefef;
    width: 4px;
}

.scroll::-webkit-scrollbar-thumb {
    background-color: #BFBFBF;
    border: 1px solid transparent;
    background-clip: content-box;
}
.scroll::-webkit-scrollbar-thumb:hover {
    background-color: #A7A7A7
}

.scroll::-webkit-scrollbar {
    width: 10px;
}

.accordion.scroll::-webkit-scrollbar{
    width: 15px;
}
/*end scrollbar*/

div.menu {
    background-color: rgb(255, 255, 255);
    z-index: 6;
    transition: transform 0.5s ease-in-out;
    position:absolute;
    height:100%;
    width: 100%;
    transform: translate(-100%);
    -webkit-transform: translate(-100%);
    overflow: hidden;

}
div.menu.open{
    transform: translate(0px);
    -webkit-transform: translate(0px);
}
.menu.open ~ .hamburger{
    transform: translate(-75px);
    -webkit-transform: translate(-75px);
}

@media only screen and (min-width:600px) {
    div.menu{
        width: 360px;
        transform: translate(-360px);
        -webkit-transform: translate(-360px);
    }
}
@media only screen and (min-width:980px) {
    .menu.open ~ #legendContainer #legend{
        transform: translate(360px);
        -webkit-transform: translate(360px);
    }
    .menu.open ~ #legendContainer.collapsed #legend{
        transform: translate(360px,100%);
        -webkit-transform: translate(360px,100%);
    }    
}
.closeMenu {
    display: block;
    height: 73px;
    width: 100%;
    background-color: rgb(109, 138, 204);
    position: absolute;
    z-index: 4;
} 

@media only screen and (min-width:600px) {
    .closeMenu{
        max-width: 360px;
    }    
}

.menuLogo{
    width: 60px;
    float: right;
    margin: 6px 15px;
    user-select: none;
}

.arrow {
    position: absolute;
    width: 24px;
    height: 5px;
    margin: 20px;
    background-color: #fff;
    margin: 34px 24px;
}

.arrow::after {
    content: '';
    position: absolute;
    width: 24px;
    height: 5px;
    top: 7px;
    left: -7px;
    background-color: #fff;
    transform: rotate(45deg);
}

.arrow::before {
    content: '';
    position: absolute;
    width: 24px;
    height: 5px;
    top: -7px;
    left: -7px;
    background-color: #fff;
    transform: rotate(-45deg);
}

.closeMenu .arrow{
    cursor: pointer;
}

.accordion{
    top: 73px;
    bottom: 0px;
    width: 100%;
    position: absolute;
    overflow: auto;
}

.accordion-section .accordion-header{
    font-family: Arial,sans-serif;
    padding: 20px 20px;
    border-top: 1px solid rgba(0,0,0,0.3);
    border-bottom: 1px solid rgba(0,0,0,0.3);
    font-size: 20px;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.accordion-section .accordion-header:hover{
    background-color: lightgrey;
    cursor: pointer;
}

.accordion-section.active .accordion-header:hover{
    background-color: white;
    cursor: default;
}

.accordion-section .accordion-header::after{
    content: "";
    border: solid black;
    border-width: 0 3px 3px 0;
    display: block;
    padding: 5px;
    transform: rotate(-45deg);
    -webkit-transform: rotate(-45deg);
    float: right;
    margin: 4px;
    transition: .5s;
    -webkit-transition: .5s;
}

.accordion-section.active .accordion-header::after{
    display: none;
}

.accordion-section .accordion-content{
    font-family: Arial,sans-serif;
    display: block;
    max-height: 0px;
    position: relative;
    overflow: hidden;
    transition: max-height .5s;
    -webkit-transition: max-height .5s;
    transition-timing-function: ease-out;
}

.menuitem{
    padding: 3px 5px;
    font-family: Arial,sans-serif;
    display: block;
    font-size: 18px;
    height: 40px;
    cursor: pointer;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.menuitem:hover {
    background-color: #a7aebe;
}
   
div.hamburger {
    transition: transform 0.5s ease-in-out;
    -webkit-transition: transform 0.5s ease-in-out;
    padding: 10px 11px 8px;
    background: rgb(109, 138, 204);
    margin: 10px;
    z-index: 4;
    position:absolute;
    transform: translate(0px);
    -webkit-transform: translate(0px);
    border-radius: 15%;
}
.menuitem.disabled{
    color: lightgrey;
    cursor: default;
}

.menuitem.disabled img{
    opacity: .4;
}

/* adaptied from https://viglino.github.io/iconicss/?icon=ban&page=icons */
.menuitem.disabled .checkbox .check, .menuitem.disabled .statusicon {
    font-size: 1.5em;
    cursor: default;
    margin: auto;
    width: .6em;
    height: .6em;
    border: 0.13em solid currentColor;
    background-color: transparent;
    border-radius: 100%;
    background: linear-gradient(45deg, transparent 43%, currentcolor 43%, currentcolor 57%, transparent 57%);
    -webkit-transition: none;
    transition: none;
    transform: rotate(0deg);
    animation: none;
}
.menuitem.disabled .statusicon{
    width: 1em;
    height: 1em;
}
.menuitem.disabled .checkbox .check{
    margin-right: 5px;
}

.menuitem.disabled .checkbox .check:after, .menuitem.disabled .statusicon:before{
    height: .15em;
    background-color: currentColor;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(45deg);
    -webkit-transition: none;
    transition: none;
    border: none;
}

.menuitem.disabled .statusicon{
    margin-right: 8px;
    margin-top: 3px;
}


.menuitem .icon, .menuitem .menutext{
    display: inline-block;
}

a.menuitem{

}
a.menuitem:link,
a.menuitem:visited,
a.menuitem:hover,
a.menuitem:active {
  text-decoration: none; 
  color: #000;
}
.icon{
    height: 20px;
    width: 40px;
    margin: 10px;
}
.icon img{
    max-width: 20px;
    max-height: 20px;
}

#RoadInfo .icon{
    width: 60px;
    margin-right: 0px;
    margin-left: 0px;
}

.menutext{
    position: absolute;
    margin: 10px;
}
#timeitem{
    position: absolute;
    z-index:4;
    left: 0px;
    margin-left: 6px;
    bottom: 30px;
    transition: transform 0.5s ease-in-out, left 0.5s ease-in-out;
    -webkit-transition: transform 0.5s ease-in-out, left 0.5s ease-in-out;
    transform: translate(0px,0px);
    -webkit-transform: translate(0px,0px);
}
@media only screen and (max-width: 550px){
    #timeitem{
        bottom: 40px;
    }
}
@media only screen and (max-width: 400px){
    #timeitem{
        bottom: 60px;
    }
    #timeitem[wx="true"]{
        bottom: 50px;
    }

}
/* it has to have all of 11 of these or else the transistion looks bad. */ 
#timeitem.closed{
    transform: translate(-270px,0px);
    --webkit-transform: translate(-270px,0px)
}
@media only screen and (min-width:980px) {
    .menu.open ~ #timeitem {
        transform: translate(360px,0px);
        --webkit-transform: translate(360px,0px);
    }
    .menu.open ~ #timeitem.closed{
        transform: translate(90px,0px);
        --webkit-transform: translate(90px,0px);
    }    
}

#timeitem[wx="true"]{
    transform: translate(0px,-20px);
    --webkit-transform: translate(0px,-20px);
}

#timeitem[wx="true"].closed{
    transform: translate(-270px,-20px);
    --webkit-transform: translate(-270px,-20px)
}
@media only screen and (min-width:980px) {
    .menu.open ~ #timeitem[wx="true"] {
        transform: translate(360px,-20px);
        --webkit-transform: translate(360px,-20px);
    }
    .menu.open ~ #timeitem[wx="true"].closed{
        transform: translate(90px,-20px);
        --webkit-transform: translate(90px,-20px);
    }    
}
#legendContainer.collapsed ~ #timeitem{
    transform: translateY(35px);
    --webkit-transform: translateY(35px);
}
#legendContainer.collapsed ~ #timeitem.closed{
    transform: translate(-270px,35px);
    --webkit-transform: translate(-270px,35px)
}
@media only screen and (min-width:980px) {
    .menu.open ~ #legendContainer.collapsed ~ #timeitem {
        transform: translate(360px,35px);
        --webkit-transform: translate(360px,35px);
    }
    .menu.open ~ #legendContainer.collapsed ~ #timeitem.closed{
        transform: translate(90px,35px);
        --webkit-transform: translate(90px,35px);
    }    
}


.time{
    border-top: 2px outset rgb(103, 138, 199);
    border-bottom: 2px outset rgb(103, 138, 199);
    display: inline-block;
    margin: 0px -2px;
    height: 36px;
}
.timecontainer {
    color: black;
    text-align: left;
    font-family: Arial,sans-serif;
    font-size: 12px;
    -webkit-user-select: none;
    -moz-user-select:none;
    line-height: 160%;
    padding: 0 1px; -moz-border-radius: 2px 0 0 2px;
    -moz-box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.35);
    -webkit-box-shadow: rgba(0, 0, 0, 0.348) 2px 2px 6px;
    box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.4);
    font-weight: bold;
    border-radius: 10px;
    display: inline-block;
    background-color: white;
    width: max-content;
    margin: 10px auto;
} 
.timecontainer .timebutton:first-child {
    border-radius: 10px 0px 0px 10px;
}
.timecontainer .timebutton:nth-child(3) {
    border-radius: 0px 10px 10px 0px;
}
.timemenu select {
    font-size: 12px;
}
.timebutton {
    display:inline-block;
    vertical-align: top;
    height: 20px;
    width: 22px;
    padding: 6px 8px;
    margin: 0px -4px;
    background-color: rgb(103, 138, 199);
    border-left: 1px solid black;
    border-right: 1px solid black;
    cursor: pointer;
    text-align: center;
    border: 2px ridge rgb(103, 138, 199);
    font-size: 20px;
}

@media only screen and (max-width: 550px){
    .timecontainer{
        font-size: 10px;
        margin-bottom: 0px;
    }
    .time{
        font-size: 12px;
        height: 34px;
    }
    .timebutton{
        height: 18px;
        width: 19px;
        padding: 7px 8px 5px;
    }
}

/* adpatied form https://www.w3schools.com/howto/howto_css_custom_checkbox.asp */

/* Customize the label (the container) */
.checkbox {
    display: block;
    position: relative;
    padding-left: 35px;
    cursor: pointer;
    font-size: 22px;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    float: right;
    margin-top: 7px;
}

#timeitem .checkbox{
    margin-top: -3px;
}

/* Hide the browser's default checkbox */
.checkbox input {
    position: absolute;
    opacity: 0;
    height: 0;
    width: 0;
}

/* Create a custom checkbox */
.checkbox .check {
    position: absolute;
    top: 0;
    left: 0;
    height: 19px;
    width: 19px;
    background-color: #eee;
    border: 3px solid #bfbfbf;
}

/* On mouse-over, add a grey background color */
.menuitem:hover input + .check{
    background-color: #d1d1d1;
}

/* When the checkbox is checked, add a blue background */
.checkbox input:checked + .check {
    background-color: rgb(109, 138, 204);    
    border: none;
    height: 25px;
    width: 25px;
}

/* Create the check/indicator (hidden when not checked) */
.checkbox .check:after {
    content: "";
    position: absolute;
    display: none;
}

/* Show the check when checked */
.checkbox input:checked + .check:after {
    display: block;
}

/* Style the check/indicator */
.checkbox .check:after {
    left: 9px;
    top: 1px;
    width: 5px;
    height: 15px;
    border: solid white;
    border-width: 0 4px 4px 0;
    -webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg);
}

.statusicon{
    float: right;
    margin: 7px;
    margin-right: 12px;
}

.statusicon.loader {
    border: 5px solid #9a9a9a; /* Light grey */
    border-top: 5px solid #555; /* Blue */
    border-radius: 50%;
    width: 15px;
    height: 15px;
    animation: spin 2s linear infinite;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
} 

.statusicon.check {
    display: inline-block;
    transform: rotate(45deg);
    height: 20px;
    width: 10px;
    border-bottom: 6px solid #7a9d58;
    border-right: 6px solid #7a9d58;
    margin-top: 3px;
    margin-right: 15px;
    animation: none;
    }

#legendContainer {
    position: fixed;
    z-index: 5;
    bottom: 0px;
    left: 0px;
    max-width: 86%;
    pointer-events: none;
}

#legend {
    border: 5px solid rgb(109, 138, 204);
    background-color: rgb(109, 138, 204);
    transition: transform 0.5s ease-in-out;
    transform: translate(0px);
    -webkit-transform: translate(0px);
    pointer-events: all;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}
#legendContainer.collapsed #legend{
    transform: translateY(100%);
    -webkit-transform: translateY(100%);
}

#legend img {
    margin-bottom: -4px;
    max-height: 65px;
    max-width: 100%;
}

#legendButton {
    position: absolute;
    top: -28px;
    font-family: Arial,sans-serif;
    font-size: 14px;
    color: white;
    padding: 4px 10px;
    border-radius: 35% 35% 0% 0%;
    background-color: rgb(109,138,204);
    right: 20px;
    cursor: pointer;
}

.gm-style-iw-d{
    overflow: hidden !important;
}
.gm-style-iw{
    padding: 12px !important;
    padding-top: 16px !important;
}
.gm-ui-hover-effect[title="Close"]{
    margin: 10px !important;
    top: -12px !important;
    right: -11px !important;
}
.gm-ui-hover-effect[title="Close"] img{
    width: 16px !important;
    height: 16px !important;
}

.modal{
    display: none;
    table-layout: fixed;
    position: absolute;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    background-color: rgba(0,0,0,0.3);
    z-index: 8;
}
.modal:hover{
    cursor: pointer;
}

.modal.shown{
    display: table;
}

.modal-content{
    display: table-cell;
    text-align: center;
    vertical-align: middle;
    width: fit-content;
}

.modal img{
    padding: 10px;
    max-height: 80vh;
    max-width: 80vw;
    object-fit: contain;
    filter:
     drop-shadow(0 -10px 0 #fefefe)
     drop-shadow(0 10px 0 #fefefe)
     drop-shadow(-10px 0 0 #fefefe)
     drop-shadow(10px 0 0 #fefefe);
}

.modal-content{
    animation-name: zoom;
    animation-duration: 0.6s;
}

@keyframes zoom {
    from {transform:scale(.5)}
    to {transform:scale(1)}
}