
@font-face {
  font-family: 'CalibriRegular';
  src: url('/Calibri Regular.ttf');
}

html{
  overflow: hidden;
}

body{
  margin: 0;
  overflow: hidden;
  position: relative;
}

*{
  font-family: CalibriRegular;
  color: #1a1b1b;
}

h2{
  margin-top: 4px;
  margin-bottom: 4px;
}

#main_container {
  width: 100%;
  height: 100%;
  overflow: hidden;
}

div.topbar {
  position: absolute;
  top: 0px;
  right: 0px;
  left: 0px;
  height: 50px;
  z-index: 100;
}

div.mapboxgl-canvas-container{
  width: 100%;
  height: 100%;
}

canvas.mainCanvasContainer {
  position: absolute;
  pointer-events:none;
  z-index: 1000;
}

div.flexrow {
  display: flex;
  flex: 1;
  flex-direction: row;
}

input.text {
  flex-grow: 1;
  font-size: large;
  margin: 8px;
}

.searchBox {
  position: absolute!important;
  top: 0;
  left: 50%;
  margin: 16px;
  margin-left: 200px;
  min-width: 200px!important;
  transform: translateX(-50%);
}

div.mapview {
  background: white;
  margin-left: 400px;
  z-index: 10;
  position: absolute;
  overflow: hidden;
	/*top: 100px;
	bottom: 0px;
	right: 0px;
  	left: 800px;
        zoom: 50%;*/
}
div.mapBorder {
  position: absolute;
  z-index: 5;
  background-color: #1a1b1b;
}

div.card {
  box-shadow: 5px 5px 15px #88888844;
  padding: 12px;
  margin: 12px;
  position: relative;
  background-color: white;
}

.clipContainer {
  filter: 
    drop-shadow(0px 0px 10px rgba(0, 0, 0, 0.3))
}

div.circleCut {
  clip-path: circle(50% at center);
}

div.rectangleCut {
  clip-path: inset(2px 2px 2px 2px);
}

div.zoomInstructions {
  position: absolute;
  text-align: center;
  width: 100%;
}

input.vertical
{
    writing-mode: bt-lr; /* IE */
    width: 50vh;
    margin-left: 42px;
    transform-origin: 0 0;
    transform: rotate(90deg);
    -moz-transform: rotate(90deg);
}

.loader {
  position: absolute;
  top:0;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: white;
  z-index: 1000;
}

.spinner {
  border: 16px solid #f3f3f3;
  border-radius: 50%;
  border-top: 16px solid #1a1b1b;
  width: 80px;
  height: 80px;
  margin-left: auto;
  margin-right: auto;
  margin-top: 45%;
  -webkit-animation: spin 1s linear infinite; /* Safari */
  animation: spin 1s linear infinite;
}

/* Safari */
@-webkit-keyframes spin {
  0% { -webkit-transform: rotate(0deg); }
  100% { -webkit-transform: rotate(360deg); }
}

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

.slider {
  -webkit-appearance: none;
  background: #ececec;
  outline: none;
  opacity: 0.7;
  -webkit-transition: .2s;
  transition: opacity .2s;
}

.checkbox {
  filter: saturate(0);
  width: 25px;
  height: 25px;
}

.radio{
  filter: saturate(0);
  width: 25px;
  height: 25px;
  margin-top: -4px;
}

.radioLabel {
}

.break {
  flex-basis: 100%;
  height: 12px;
}

.hamburger {
  display: none;
  position: absolute;
  top: 20px;
  left: 12px;
  background-color: white;
  width: 40px;
  height: 40px;
  z-index: 10;
  font-size: 40px!important;
}

.slider:hover {
  opacity: 1;
}

.slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 25px;
  height: 25px;
  background: #1a1b1b;
  cursor: pointer;
}

.slider::-moz-range-thumb {
  width: 25px;
  height: 25px;
  background: #1a1b1b;
  cursor: pointer;
}

div.zoomCard {
  padding: 0px;
  position: absolute;
  left: 400px;
  width: 60px;
  height: 50vh;
}

div.mapview * {
cursor: default !important;
}

div.mapview div.mapboxgl-ctrl-group {
  zoom: 200%;
}

div.sidebar {
  position: absolute;
  overflow-y: auto;
	top: 0px;
	bottom: 0px;
	left: 0px;
  width: 400px;
  height: -moz-available;          /* WebKit-based browsers will ignore this. */
  height: -webkit-fill-available;  /* Mozilla-based browsers will ignore this. */
  height: fill-available;
  z-index: 90;
}

div.silhouetteview {
	background: rgba(255, 255, 255, 0.6);
	position: absolute;
	top: 20px;
	right: 20px;
	width: 300px;
	height: 300px;
	border-radius: 10px;
}


div.silhouetteview div.expand_button {
	position: absolute;

	background: rgba(200, 200, 200, 1.0);

	width: 22px;
	height: 23px;

	bottom: 10px;
	left: 10px;

	border-radius: 3px;
}

div.silhouetteview div.expand_button i.fa {
	color: brown;
}

.hidden {
	display: none;
}

.roadway_category_header {
  text-align: left;

}

tr.roadway_category td {
  vertical-align: top;
}

tr.roadway_category td.description {
  font-size: 10px;
}

td.inputs {
  width: 50px;
}

div.topbar button {
  float: right;
  padding: 6px;
  font-size: 18px;
  margin: 5px;
  height: 40px;
  border: solid 1px #ccc;
  border-radius: 3px;
  width: 120px;
}

div.topbar button.dropdown-primary {
  border-radius: 3px 0px 0px 3px;
  margin: 5px 0px 5px 5px;
  width: 120px;
}

div.topbar button.chevron-down {
  border-radius: 3px 3px 0px 0px;
  width: 40px;
  margin: 5px 5px 5px 0px;
  border-bottom: none;
  transform: rotate(90deg);
}

div.topbar div.dropdown-menu {
  float: right;
  overflow: visible;
  padding: 44px 0px 0px 0px;
  display: none;
  width: 0px;
  position: relative;
  margin: 0px;
}

div.topbar div.dropdown-menu .dropdown-menu-item {
    width: 140px;
    position: absolute;
    right: 0px;
    background: white;
    z-index: 999;
    padding: 6px 6px 6px 12px;
    margin: 0px 5px 0px 0px;
    border: solid 1px #ccc;
}

div.topbar button:hover, 
div.topbar div.dropdown-menu .dropdown-menu-item:hover {
    background: #eee;
    cursor: hand;
}

div.topbar select {
  float: right;
  padding: 6px;
  font-size: 18px;
  margin: 5px 5px 0px 5px;
  height: 40px;

  border-radius: 3px;
  width: 120px;
}

@keyframes example {
    0% {-webkit-transform: rotate(0deg) scale(1.0);}
    10% {-webkit-transform: rotate(90deg) scale(0.5);}
    20% {-webkit-transform: rotate(180deg) scale(0.3);}
    40% {-webkit-transform: rotate(360deg) scale(0.1);}
    60% {-webkit-transform: rotate(180deg) scale(0.3);}
    70% {-webkit-transform: rotate(90deg) scale(0.5);}
    80% {-webkit-transform: rotate(0deg) scale(1.0);}
    90% {-webkit-transform: rotate(-20deg) scale(1.1);}
    100% {-webkit-transform: rotate(0deg) scale(1.0);}
}

div.mapview.processing {
  /*filter: blur(150px);
  transition-duration: 10s;
*/
}

div.spinnerContainer {
  position: absolute;
  width: 40px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.sk-circle {
  margin: 0px;
  width: 40px;
  height: 40px;
  position: relative;
}
.sk-circle .sk-child {
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}
.sk-circle .sk-child:before {

  content: '';
  display: block;
  margin: 0 auto;
  width: 15%;
  height: 15%;
  background-color: #333;
  border-radius: 100%;
  -webkit-animation: sk-circleBounceDelay 1.2s infinite ease-in-out both;
          animation: sk-circleBounceDelay 1.2s infinite ease-in-out both;
}
.sk-circle .sk-circle2 {
  -webkit-transform: rotate(30deg);
      -ms-transform: rotate(30deg);
          transform: rotate(30deg); }
.sk-circle .sk-circle3 {
  -webkit-transform: rotate(60deg);
      -ms-transform: rotate(60deg);
          transform: rotate(60deg); }
.sk-circle .sk-circle4 {
  -webkit-transform: rotate(90deg);
      -ms-transform: rotate(90deg);
          transform: rotate(90deg); }
.sk-circle .sk-circle5 {
  -webkit-transform: rotate(120deg);
      -ms-transform: rotate(120deg);
          transform: rotate(120deg); }
.sk-circle .sk-circle6 {
  -webkit-transform: rotate(150deg);
      -ms-transform: rotate(150deg);
          transform: rotate(150deg); }
.sk-circle .sk-circle7 {
  -webkit-transform: rotate(180deg);
      -ms-transform: rotate(180deg);
          transform: rotate(180deg); }
.sk-circle .sk-circle8 {
  -webkit-transform: rotate(210deg);
      -ms-transform: rotate(210deg);
          transform: rotate(210deg); }
.sk-circle .sk-circle9 {
  -webkit-transform: rotate(240deg);
      -ms-transform: rotate(240deg);
          transform: rotate(240deg); }
.sk-circle .sk-circle10 {
  -webkit-transform: rotate(270deg);
      -ms-transform: rotate(270deg);
          transform: rotate(270deg); }
.sk-circle .sk-circle11 {
  -webkit-transform: rotate(300deg);
      -ms-transform: rotate(300deg);
          transform: rotate(300deg); }
.sk-circle .sk-circle12 {
  -webkit-transform: rotate(330deg);
      -ms-transform: rotate(330deg);
          transform: rotate(330deg); }
.sk-circle .sk-circle2:before {
  -webkit-animation-delay: -1.1s;
          animation-delay: -1.1s; }
.sk-circle .sk-circle3:before {
  -webkit-animation-delay: -1s;
          animation-delay: -1s; }
.sk-circle .sk-circle4:before {
  -webkit-animation-delay: -0.9s;
          animation-delay: -0.9s; }
.sk-circle .sk-circle5:before {
  -webkit-animation-delay: -0.8s;
          animation-delay: -0.8s; }
.sk-circle .sk-circle6:before {
  -webkit-animation-delay: -0.7s;
          animation-delay: -0.7s; }
.sk-circle .sk-circle7:before {
  -webkit-animation-delay: -0.6s;
          animation-delay: -0.6s; }
.sk-circle .sk-circle8:before {
  -webkit-animation-delay: -0.5s;
          animation-delay: -0.5s; }
.sk-circle .sk-circle9:before {
  -webkit-animation-delay: -0.4s;
          animation-delay: -0.4s; }
.sk-circle .sk-circle10:before {
  -webkit-animation-delay: -0.3s;
          animation-delay: -0.3s; }
.sk-circle .sk-circle11:before {
  -webkit-animation-delay: -0.2s;
          animation-delay: -0.2s; }
.sk-circle .sk-circle12:before {
  -webkit-animation-delay: -0.1s;
          animation-delay: -0.1s; }

@-webkit-keyframes sk-circleBounceDelay {
  0%, 80%, 100% {
    -webkit-transform: scale(0);
            transform: scale(0);
  } 40% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}

@keyframes sk-circleBounceDelay {
  0%, 80%, 100% {
    -webkit-transform: scale(0);
            transform: scale(0);
  } 40% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}

div.sideBar button.zoom_button {
 width: 40px;
 height: 40px;
 margin: 8px;
 font-size: large;
 border: none;
 border-radius: 4px;
}

button.input_btn {
  height: 40px;
  margin: 8px;
  font-size: large;
  padding-right: 16px;
  padding-left: 16px;
  border: none;
  border-radius: 4px;
 }

 button{
   background-color: #ddd;
 }

 button:hover:enabled{
   background-color: #eee;
 }

 button:focus{
   outline: none
 }

 .actions {
   position: absolute;
   height: 80px;
   width: 100%;
   width: -moz-available;          /* WebKit-based browsers will ignore this. */
   width: -webkit-fill-available;  /* Mozilla-based browsers will ignore this. */
   width: fill-available;
   bottom: 0;
   display: flex;
   justify-content: center;
 }

 .question {
   position: absolute;
   top: 24px;
   right: 8px;
   width: 32px;
   height: 32px;
   font-size: 32px!important;
   cursor: pointer;
 }

 .helpBox {
   position: absolute;
   padding: 12px;
   background-color: white;
   z-index: 2000;
   display: none;
   box-shadow: 5px 5px 15px #88888844;
   overflow-y: scroll;
 }

 p.helptext {
   margin-left: 30px;
 }
