html, body {
  width: 100%;
  height: 100%;
  margin: 0;
  min-width: 650px;
  /* background-image: url(../background.jpg); */
  background-size: cover;
  background-attachment: fixed;
}

body#body {}

.sidebar {
  height: 100%;
  max-height: 100%;
  overflow: auto;
}

.fail {
  color: red;
}

.sucess {
  color: green;
}

.subnav {
  display: none;
  max-height: 500px;
  overflow: auto;
  margin-left: 15px;
  border-left: gray 3px solid;
}

.autoComplete .list-group {
  margin-bottom: 0;
  border: none;
}

#searchBar {
  display: inline-block;
}

#filters {
  margin-bottom: 10px;
  visibility: visible;
  opacity: 1;
  transition: visibility 1s ease-out, opacity 1s ease-out, margin-bottom 1s ease-out;
}

#filters .label {
  /* display: none; */
  font-size: inherit;
  transition: background-color 1s, border-color 2s;
  cursor: pointer;
}

#filters .label::after {
  content: " \2716";
}

#filters .label:hover {
  /* font-size: 0; */
  background-color: red;
  border-color: red;
}

#filters .label:hover::before {
  content: "Remove ";
}

#filters .label:hover::after {
  content: "?";
}

#filters .label:not(:last-child) {
  margin-right: 5px;
}

#filters:empty {
  visibility: hidden;
  opacity: 0;
  margin-bottom: 0;
}

/* Magic filters text that won't get picked up in jquery.text */
#filters:not(:empty)::before {
  content: "Filters: ";
}

#search {
  min-width: 500px;
}

.autoComplete {
  max-height: 0;
  overflow-y: auto;
  position: absolute;
  left: 0;
  transition: max-height 1s;
  z-index: 1;
  top: 40px !important; /* Ignore the library style */
}

*:focus ~ .autoComplete { /* If the parent detects focus on any subelement or itself */
  max-height: 500px;
}

.interest-button {
  font-size: medium;
}

.interest-button.disabled {
  cursor: not-allowed !important;
  color: gray;
}

.hidden {
  height: 0;
  display: none;
}

.disabled {
  cursor: not-allowed;
}

.panel-heading a[data-toggle="collapse"]::after {
  font-family: "Glyphicons Halflings";
  content: "\e114";
  float: right;
  color: white;
}

.panel-heading a[data-toggle="collapse"].collapsed::after {
  content: "\e080";
}

.treeExplorer .treeExplorerNode {
  padding-left: 25px;
  display: block;
  cursor: pointer;
}

.treeExplorer .treeExplorerNode .nodeContent {
  display: inline-block;
}

.treeExplorer .treeExplorerNode > .nodeChildren {
  display: none;
}

.treeExplorer .treeExplorerNode.open > .nodeChildren {
  display: block;
}

.treeExplorer .treeExplorerExpander::before {
  font-family: "Glyphicons Halflings";
  content: "+";
  color: gray;
}

.treeExplorer .open > .nodeContent > .treeExplorerExpander::before {
  content: "\2212";
}

.treeExplorer .file > .nodeContent > .treeExplorerExpander {
  cursor: default;
}

.treeExplorer .file > .nodeContent > .treeExplorerExpander::before {
  content: "\e022"
}

#popup {
  top: 0;
  left: 0;
  position: fixed;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9000;
  pointer-events: none;
}

#popup > * {
  display: none;
  pointer-events: auto;
}

.modal-open, #request {
  padding-right: 0 !important;
}

.sk-cube-grid {
  display: none;
}

table:empty ~ .sk-cube-grid {
  display: block;
}

#requestForm {
  max-width: 500px;
  /* min-height: 300px; */
  position: relative;
}

.floatRight {
  float: right;
  margin-right: 15px;
}

.fade {
  display: none;
}

.fade.in {
  display: block;
}

.navbar-brand {
  text-shadow: 1px 1px 1px black;
}

.popover {
  max-width: none;
}

.popover-container {
  position: relative;
}

.metaData {
  width: 600px;
  max-height: 800px;
  word-wrap: normal;
  overflow: auto;
}

#requestForm button {
  margin-bottom: 5px;
}

#templates {
  display: none;
}

#subsetVariables > .row:not(:last-child) {
  margin-bottom: 5px;
}

#subsetVariables {
  transition: opacity 1s, margin 1s, padding 1s;
}

#subsetVariables:empty {
  opacity: 0;
  margin: 0;
  padding: 0;
}

#direct-download-list:before {
  content: "The following are available for direct download:";
}

#direct-download-list:empty:before {
  content: "No names in the selection are available for direct download...";
}
