body {
    margin: 0;
    padding: 0;
    font-family: Helvetica, Arial, Liberation Sans, san-serif;
    background-color: rgb(221, 221, 221);
    color: #444;
    overflow: hidden;
  }

  button, input { color: #444; }

  select {
    text-align: center;
    text-align-last: center;
    -ms-text-align-last: center;
    -moz-text-align-last: center;
  }
  select:focus, button:focus { outline: none; }

  #controls {
    position: absolute;
    z-index: 9;
    top: 0;
    left: 0;
    right: 0;
    height: 34px;
    min-width: 400px;
    padding: 4px 0;
    background-color: rgba(255, 255, 255, 0.85);
    text-align: center;
    box-shadow: 0px 0px 10px rgba(0,0,0,0.15);
    -moz-box-shadow: 0px 0px 10px rgba(0,0,0,0.15);
    -webkit-box-shadow: 0px 0px 10px rgba(0,0,0,0.15);
  }

  #controls > * {
    position: relative;
    top: 4px;
    left: -19px;
    display: inline-block;
    vertical-align: middle;
  }

  #controls > .disabled {
    opacity: 0.5;
    pointer-events: none;
  }

  body.embed #controls .globe-button { display: none; }
  body.embed #controls .embed-button { display: none; }
  body.embed #controls .logo {display: inline-block;}

  select#map_field {
    font-size: 12px;
    font-weight: bold;
    height: 25px;
  }
  select#map_units {
    height: 25px;
  }
  #map {
    width: 1px;
    min-width: 100%;
    height: 100vh;
    position: static !important;
  }

  #colorControls {
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: 9;
    background-color: #f5f5f5;
    padding: 5px;
    margin: 5px;
    border-radius: 3px;
  }

  #addColorButtonContainer {
    text-align: right;
  }
  #colorControlsContainer > div, .colorContainer {
    margin: 5px 0;
  }
  .colorContainer {
    background-color: #d5d5d5;
    cursor: move;
    padding: 3px 5px;
  }

  #minNum, #maxNum {
    float: right;
    width: 65%;
  }
  #addColorButton {
    border: 1px solid #fff;
    padding: 0 5px;
    color: #fff;
    background-color: #333;
  }
  #addColorButton:hover {
    cursor: pointer;
    /*color: #333;*/
    background-color: #eaeaea;
  }
  .jscolor {
    /*width: 50%;*/
  }
  .deleteColor {
    float: right;
    border: 1px solid black;
    padding: 0 6px;
    background-color: #f5f5f5;
    margin-top: 6px;
  }
  .deleteColor:hover {
    color: #f5f5f5;
    background-color: #eaeaea;
    cursor: pointer;
  }
  .generateContainer {
    text-align: center;
  }

  #datepicker-button {
    margin: 0 2px 0 25px;
    width: 62px;
    height: 25px;
    font-weight: bold;
    text-align: center;
    background-color: rgb(255, 255, 255);
    border: none;
    border-radius: 3px;
    box-shadow: 0px 1px 1px 0px rgba(0,0,0,0.35);
    -moz-box-shadow: 0px 1px 1px 0px rgba(0,0,0,0.35);
    -webkit-box-shadow: 0px 1px 1px 0px rgba(0,0,0,0.35);
  }

  #datepicker-button:hover {
    background-color: #eaeaea;
    cursor: pointer;
  }

  .hour-dropdown {
    margin-right: 5px;
  }

  #map_hour {
    text-align: center;
    font-weight: bold;
    height: 25px;
  }

  .change-date-time-controls {
    display: inline-block;
    text-align: center;
  }

  .change-hour-controls {
    display: inline-block;
    text-align: center;
    font-size: 0;
    height: 25px;
  }

  @media screen and (max-width: 800px) {
    #controls .embed-button .text { display: none; }
    body #controls .embed-button { width: 28px; }
    #controls > * { left: auto; }
  }
  
  @media screen and (max-width: 700px) {
    #controls .change-hour-controls { display: none; }
    #controls .globe-button { display: none; }
    #controls .embed-button { display: none; }
  }

  @media screen and (max-width: 650px) {
    #controls .logo span { display: none; }
  }
  
  @media screen and (max-width: 500px) {
    #controls .search-button { display: none; }
    #datepicker-button { margin-left: 5px; }
    body.embed #controls .logo.maps { display: none; }
  }

  #now-button {
    display: inline-block;
    position: relative;
    top: -9px;
    border: none;
    border-radius: 3px;
    background-color: white;
    height: 18px;
    box-shadow: 0px 1px 1px 0px rgba(0,0,0,0.35);
    -moz-box-shadow: 0px 1px 1px 0px rgba(0,0,0,0.35);
    -webkit-box-shadow: 0px 1px 1px 0px rgba(0,0,0,0.35);
    margin: 0 3px 0 2px;
  }

  #now-button:hover {
    cursor: pointer;
    background-color: #eaeaea;
  }

  #left-arrow {
    display: inline-block;
    width: 45px;
    height: 25px;
    background-image: url("/National_Library/20170827070107oe_/https://maps.darksky.net/img/left-arrow.png");
    background-repeat: no-repeat;
    background-size: 45px 25px;
  }
  #left-arrow:hover {
    background-image: url("/National_Library/20170827070107oe_/https://maps.darksky.net/img/left-arrow-hover.png");
  }

  #right-arrow {
    display: inline-block;
    width: 45px;
    height: 25px;
    background-image: url("/National_Library/20170827070107oe_/https://maps.darksky.net/img/right-arrow.png");
    background-repeat: no-repeat;
    background-size: 45px 25px;
  }
  #right-arrow:hover {
    background-image: url("/National_Library/20170827070107oe_/https://maps.darksky.net/img/right-arrow-hover.png");
  }

  .custom-dropdown--large {
    font-size: 1.5em;
  }

  .custom-dropdown--small {
    font-size: .7em;
  }

  .custom-dropdown__select{
    font-size: inherit; /* inherit size from .custom-dropdown */
    padding: 0 .5em; /* add some space*/
    margin: 0; /* remove default margins */
    box-shadow: 0px 1px 1px 0px rgba(0,0,0,0.35);
    -moz-box-shadow: 0px 1px 1px 0px rgba(0,0,0,0.35);
    -webkit-box-shadow: 0px 1px 1px 0px rgba(0,0,0,0.35);
  }

  .custom-dropdown__select--white {
    background-color: #fff;
    color: #444;
  }

  @supports (pointer-events: none) and
      ((-webkit-appearance: none) or
      (-moz-appearance: none) or
      (appearance: none)) {

    .custom-dropdown {
      position: relative;
      display: inline-block;
      height: 25px;
    }

    .custom-dropdown__select {
      padding-right: 2.5em; /* accommodate with the pseudo elements for the dropdown arrow */
      border: 0;
      border-radius: 3px;
      -webkit-appearance: none;
      -moz-appearance: none;
      appearance: none;
    }

    .custom-dropdown::before,
    .custom-dropdown::after {
      content: "";
      position: absolute;
      pointer-events: none;
    }

    .custom-dropdown::after { /*  Custom dropdown arrow */
      content: "\25BC";
      height: 1em;
      font-size: .625em;
      line-height: 1;
      right: .8em; /* original: 1.2em */
      top: 50%; margin-top: -.5em;
    }

    .custom-dropdown::before { /*  Custom dropdown arrow cover */
      width: 2em;
      right: 0; top: 0; bottom: 0;
      border-radius: 0 3px 3px 0;
    }

    .custom-dropdown__select[disabled] {
      color: rgba(0,0,0,.3);
    }

    .custom-dropdown.custom-dropdown--disabled::after {
      color: rgba(0,0,0,.1);
    }

    /* White dropdown style */
    .custom-dropdown--white::before {
      background-color: #fff;
      border-left: 1px solid rgba(0,0,0,.1);
    }

    .custom-dropdown--white::after {
      color: #444;
    }

    /* FF only temp fix */
    @-moz-document url-prefix() {
      .custom-dropdown__select       { padding-right: 2.5em }
      .custom-dropdown--large .custom-dropdown__select { padding-right: 1.3em }
      .custom-dropdown--small .custom-dropdown__select { padding-right: 2.5em }
    }
  }

  #controls .logo {
    display: none;
    position: absolute;
    top: 10px;
    right: 10px;
    left: auto;
    text-decoration: none;
    color: #444;
    font-size: 12px;
    font-weight: bold;
  }
  #controls .logo:hover {
    color: #444;
  }

  #controls .logo svg {
    width: 18px;
  }

  #controls .logo span {
    position: relative;
    top: -3px;
  }

  #controls .embed-button {
    position: absolute;
    top: 8px;
    right: 6px;
    left: auto;
    width: 70px;
    height: 25px;
    line-height: 28px;
    text-decoration: none;
    color: #444;
    font-size: 11px;
    font-weight: bold;
    text-align: center;
    background-color: rgb(255, 255, 255);
    border: none;
    border-radius: 3px;
    box-shadow: 0px 1px 1px 0px rgba(0,0,0,0.35);
    -moz-box-shadow: 0px 1px 1px 0px rgba(0,0,0,0.35);
    -webkit-box-shadow: 0px 1px 1px 0px rgba(0,0,0,0.35);
  }

  #map-embed-generator {
    font-family: "Lato", sans-serif;
    position: absolute;
    z-index: 99;
    top: 48px;
    right: 6px;
    width: 300px;
    padding: 10px;
    border-radius: 3px;
    background-color: rgba(255, 255, 255, 0.95);
    box-shadow: 0px 1px 1px 0px rgba(0,0,0,0.35);
    -moz-box-shadow: 0px 1px 1px 0px rgba(0,0,0,0.35);
    -webkit-box-shadow: 0px 1px 1px 0px rgba(0,0,0,0.35);
  }

  #map-embed-generator input[type="checkbox"] {
    position: relative;
    top: -1px;
    margin-right: 5px;
  }

  #time-control-message,
  #change-field-message,
  #default-field-text,
  #default-units-text,
  #latitude-generator-text,
  #longitude-generator-text {
    float: right;
  }

  #default-field-generator {
    margin-top: 10px;
  }

  #default-units-generator {
    margin-top: 10px;
  }

  #default-field-generator, #default-units-generator {
    display: flex;
    justify-content: space-between;
  }

  #default-field-generator, #default-units-generator span:first-child {
    font-weight: bold;
  }

  #generate-embed {
    display: block;
    margin: auto;
  }

  #generator-show-hide {
    float: right;
  }

  #map-field-generator {
    height: 25px;
  }

  #map-units-generator {
    height: 25px;
  }

  #map-units-generator-container {
    /*float: right;*/
  }

  #embed-popup {
    position: absolute;
    z-index: 999;
    top: 40%;
    left: 40px;
    right: 40px;
    text-align: center;
    background-color: rgba(255, 255, 255, 0.95);
    border-radius: 3px;
    font-family: "Lato", sans-serif;
    font-size: 12px;
    -moz-box-shadow: 0px 1px 1px 0px gray;
    -webkit-box-shadow: 0px 1px 1px 0px gray;
    box-shadow: 0px 1px 1px 0px gray;
  }

  #embed-popup > p:first-child {
    font-weight: bold;
  }

  #embed-popup > p:nth-child(2) {
    background-color: #fff;
    padding: 15px 0;
  }

  #embed-popup > p:last-child {
    cursor: pointer;
    display: inline-block;
    background-color: #333;
    color: #fff;
    padding: 5px 25px;
    border: 1px solid #7d7d7d;
    text-transform: uppercase;
  }

  #embed-popup >p:last-child:hover {
    background-color: #444;
  }

  /* Map controls */

  .ol-control,.ol-scale-line {
      position: absolute;
      padding: 2px;
  }

  .ol-box {
      box-sizing: border-box;
      border-radius: 2px;
      border: 2px solid #00f;
  }

  .ol-mouse-position {
      top: 8px;
      right: 8px;
      position: absolute;
  }

  .ol-scale-line {
      background: rgba(0,60,136,.3);
      border-radius: 4px;
      bottom: 8px;
      left: 8px;
  }

  .ol-scale-line-inner {
      border: 1px solid #eee;
      border-top: none;
      color: #eee;
      font-size: 10px;
      text-align: center;
      margin: 1px;
      will-change: contents,width;
  }

  .ol-overlay-container {
      will-change: left,right,top,bottom;
  }

  .ol-unsupported {
      display: none;
  }

  .ol-viewport .ol-unselectable {
      -webkit-touch-callout: none;
      -webkit-user-select: none;
      -khtml-user-select: none;
      -moz-user-select: none;
      -ms-user-select: none;
      user-select: none;
      -webkit-tap-highlight-color: transparent;
  }

  .ol-control {
      background-color: rgba(255, 255, 255, 0.65);
      border-radius: 4px;
  }

  .ol-control:hover {
      background-color: rgba(255, 255, 255, 0.65);
  }

  .ol-zoom {
      top: 48px;
      left: 6px;
  }

  .ol-zoom .ol-zoom-in.disabled,
  .ol-zoom .ol-zoom-out.disabled {
     opacity: 0.35;
     pointer-events: none;
   }

  .ol-rotate {
      top: .5em;
      right: .5em;
      transition: opacity .25s linear,visibility 0 linear;
  }

  .ol-rotate.ol-hidden {
      opacity: 0;
      visibility: hidden;
      transition: opacity .25s linear,visibility 0 linear .25s;
  }

  .ol-zoom-extent {
      top: 4.643em;
      left: .5em;
  }

  .ol-full-screen {
      right: .5em;
      top: .5em;
  }

  @media print {
      .ol-control {
          display: none;
      }
  }

  .ol-control button {
      display: block;
      margin: 1px;
      padding: 0;
      color: #444;
      font-size: 1.14em;
      font-weight: 700;
      text-decoration: none;
      text-align: center;
      height: 1.375em;
      width: 1.375em;
      line-height: .4em;
      background-color: rgba(255,255,255,1.0);
      border: none;
      border-radius: 2px;
      -moz-box-shadow: 0px 1px 1px 0px gray;
      -webkit-box-shadow: 0px 1px 1px 0px gray;
      box-shadow: 0px 1px 1px 0px gray;
  }

  .ol-control button:focus { outline: none; }

  .ol-control button::-moz-focus-inner {
      border: none;
      padding: 0;
  }

  .ol-zoom-extent button {
      line-height: 1.4em;
  }

  .ol-compass {
      display: block;
      font-weight: 400;
      font-size: 1.2em;
      will-change: transform;
  }

  .ol-touch .ol-control button {
      font-size: 1.5em;
  }

  .ol-touch .ol-zoom-extent {
      top: 5.5em;
  }

  .ol-control button:focus,.ol-control button:hover {
      text-decoration: none;
      background-color: rgba(240,240,240,1.0);
  }

  .ol-zoom .ol-zoom-in {
      border-radius: 2px 2px 0 0;
  }

  .ol-zoom .ol-zoom-out {
      border-radius: 0 0 2px 2px;
  }

  .ol-attribution {
      text-align: right;
      bottom: .5em;
      right: .5em;
      max-width: calc(100% - 1.3em);
  }

  .ol-attribution ul {
      margin: 0;
      padding: 0 .5em;
      font-size: .7rem;
      line-height: 1.375em;
      color: #444;
      text-shadow: 0 0 2px #fff;
  }

  .ol-attribution li {
      display: inline;
      list-style: none;
      line-height: inherit;
  }

  .ol-attribution li:not(:last-child):after {
      content: " ";
  }

  .ol-attribution img {
      max-height: 2em;
      max-width: inherit;
      vertical-align: middle;
  }

  .ol-attribution button,.ol-attribution ul {
      display: inline-block;
  }

  .ol-attribution.ol-collapsed ul {
      display: none;
  }

  .ol-attribution.ol-logo-only ul {
      display: block;
  }

  .ol-attribution:not(.ol-collapsed) {
      background: rgba(255,255,255,.8);
  }

  .ol-attribution.ol-uncollapsible {
      bottom: 0;
      right: 0;
      border-radius: 4px 0 0;
      height: 1.1em;
      line-height: 1em;
  }

  .ol-attribution.ol-logo-only {
      background: 0 0;
      bottom: .4em;
      height: 1.1em;
      line-height: 1em;
  }

  .ol-attribution.ol-uncollapsible img {
      margin-top: -.2em;
      max-height: 1.6em;
  }

  .ol-attribution.ol-logo-only button,.ol-attribution.ol-uncollapsible button {
      display: none;
  }

  .ol-zoomslider {
      top: 4.5em;
      left: .5em;
      height: 200px;
  }

  .ol-zoomslider button {
      position: relative;
      height: 10px;
  }

  .ol-touch .ol-zoomslider {
      top: 5.5em;
  }

  .ol-overviewmap {
      left: .5em;
      bottom: .5em;
  }

  .ol-overviewmap.ol-uncollapsible {
      bottom: 0;
      left: 0;
      border-radius: 0 4px 0 0;
  }

  .ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button {
      display: inline-block;
  }

  .ol-overviewmap .ol-overviewmap-map {
      border: 1px solid #7b98bc;
      height: 150px;
      margin: 2px;
      width: 150px;
  }

  .ol-overviewmap:not(.ol-collapsed) button {
      bottom: 1px;
      left: 2px;
      position: absolute;
  }

  .ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button {
      display: none;
  }

  .ol-overviewmap:not(.ol-collapsed) {
      background: rgba(255,255,255,.8);
  }

  .ol-overviewmap-box {
      border: 2px dotted rgba(0,60,136,.7);
  }
  
  .globe-button,
  .search-button {
    margin-right: 25px;
    width: 25px;
    height: 25px;
    line-height: 25px;
    text-align: center;
    border-radius: 3px;
    background-color: rgba(255, 255, 255, 0.95);
    box-shadow: 0px 1px 1px 0px rgba(0,0,0,0.35);
    -moz-box-shadow: 0px 1px 1px 0px rgba(0,0,0,0.35);
    -webkit-box-shadow: 0px 1px 1px 0px rgba(0,0,0,0.35);
    font-weight: bold;
    font-size: 12px;
  }
  
  #controls .globe-button {
    position: absolute;
    top: 8px;
    left: 9px;
    margin: 0;
  }
  
  .globe-button span {
    position: relative;
    top: 1px;
  }
  
  .globe-button:hover,
  .search-button:hover {
    cursor: pointer;
    background-color: #eaeaea;
  }
  
  body.embed #controls .globe-button,
  body.embed #controls .search-button { display: none; }
  body.globe #controls .search-button { display: none; }

  .search-button img {
    position: relative;
    top: 4px;
    width: 17px;
    height: 17px;
    opacity: 0.75;
  }

  #location-search {
    position: absolute;
    z-index: 9;
    left: 0;
    right: 0;
    top: 45px;
    text-align: center;
    line-height: 0;
    font-size: 0;
  }

  #location-search .search-button {
    display: inline-block;
    position: relative;
    top: -4px;
    left: 4px;
    width: 30px;
    height: 30px;
  }

  #location-search .search-button img {
    top: 6px;
  }

  #location-search input {
    padding: 0 0 0 20px;
    border: none;
    font-size: 16px;
    width: 270px;
    height: 30px;
    outline: none;
    border-radius: 3px;
    background-color: rgba(255, 255, 255, 0.95);
    box-shadow: 0px 1px 1px 0px rgba(0,0,0,0.35);
    -moz-box-shadow: 0px 1px 1px 0px rgba(0,0,0,0.35);
    -webkit-box-shadow: 0px 1px 1px 0px rgba(0,0,0,0.35);
  }
  
  #labelView3d {
    overflow: hidden;
    position: absolute;
    z-index: 8;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
    background: none !important;
  }
  
  #labelView3d span {
    position: absolute;
    font-size: 12px;
    color: #fff;
    text-shadow: 0 0 1px #000, 0 0 1px #000, 0 0 1px #000;
  }
  
  #labelView3d span.location {
    margin-top: -7px;
  }
  #labelView3d span.condition {
    margin-top: 8px;
  }