html {
  position: relative;
  min-height: 100%;
}

body {
  font-family: "Open Sans", sans-serif;
  margin-bottom: 120px;
}

img#brand {
  display: inline-block;
  padding-right: 10px;
  height: 24px;
}

nav {
  background-color: #f8f8f8;
}

footer {
  position: absolute;
  bottom: 0;
  width: 100%;
  height: 70px;
  padding: 10px;
}

h1, h2, h3, h4, h5 {
  margin-top: 2rem;
  margin-bottom: 1rem;
}

#main-nav {
  border: 1px solid;
  border-width: 0 0 1px;
  border-color: #e7e7e7;
  padding: 0 10px;
  margin-bottom: 1rem;
}

.navbar-brand {
  font-size: 20px;
}

.light-text {
  color: #bbbbbb;
}

.light-text a {
  color: #B2CEFF;
}

.jumbotron {
  padding: 1rem 2rem;
  margin: 3rem 0;
}

.jumbotron h1 {
  margin-top: 0;
}

.mapboxgl-map {
  font-family: "Open Sans", sans-serif;
}

.mapboxgl-popup-content {
  background-color: rgb(255, 252, 239);
  max-width: 500px;
}

.mapboxgl-popup-tip {
  border-top-color: rgb(255, 252, 239);
}

#flash-messages {
  margin-top: 1rem;
  margin-bottom: 1rem;
}

.transport-icon {
  margin-right: 0.5rem;
}

.btn-group-xs>.btn, .btn-xs {
  padding: .25rem .4rem;
  font-size: .875rem;
  line-height: .5;
  border-radius: .2rem;
}

.recently-seen {
  background-color: #efe;
}

.not-seen {
  background-color: #f1f1f1;
}

.background-light-green {
  display: inline-block;
  border-radius: 6px;
  background-color: #dff0d8;
}

.background-light-yellow {
  display: inline-block;
  border-radius: 6px;
  background-color: #f9f2cc;
}

.background-light-red {
  display: inline-block;
  border-radius: 6px;
  background-color: #f2dede;
}

.background-light-blue {
  display: inline-block;
  border-radius: 6px;
  background-color: #DCEAEF;
}

.delay {
  font-size: 90%;
  padding: 0 2px;
}

.grid line {
  stroke: lightgrey;
  stroke-opacity: 0.7;
  shape-rendering: crispEdges;
}

.grid path {
  stroke-width: 0;
}

nav #brand {
  background-image: url("/icons/logo-light.png");
  height: 24px;
  width: 24px;
  display: inline-block;
  margin-right: 5px;
  vertical-align: text-top;
  background-size: 24px 24px;
}

@media (max-width: 767px) {
  .small-mobile {
    font-size: 12px;
  }
}

@media (prefers-color-scheme: dark) {
  body {
    background-color: #333;
    color: #ccc;
  }
  nav#main-nav {
    background-color: #222;
    border-color: #444;
  }
  .navbar-light .navbar-brand {
    color: #ddd;
  }
  .navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {
    color: #fff;
  }
  .form-control {
    background-color: black;
    border-color: #777;
    color: #aaa;
  }
  .form-control:focus {
    background-color: black;
    color: #fff;
  }
  .form-control::placeholder {
    color: #aaa;
  }
  .light-text {
    color: #666;
  }
  .table {
    color: #ccc;
  }
  .table td {
    border-top-color: #777;
  }
  .table thead th {
    border-bottom-color: #777;
  }
  .background-light-yellow, .background-light-red, .background-light-green, .background-light-blue {
    color: white;
  }
  .background-light-yellow {
    background-color: #870;
  }
  .background-light-red {
    background-color: #400;
  }
  .background-light-green {
    background-color: #040;
  }
  .background-light-blue {
    background-color: #04a;
  }
  ul.dropdown-menu {
    background-color: #aaa;
  }
  .dropdown-item:focus, .dropdown-item:hover {
    background-color: #ccc;
  }
  a {
    color: #B2CEFF;
  }
  .not-seen {
    background-color: #222;
  }
  .recently-seen {
    background-color: #030;
  }
  h1, h2, h3, h4, h5, p.lead {
    color: white;
  }
  nav #brand {
    background-image: url("/icons/logo-dark.png");
  }
}
