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: "\e080";
  color: gray;
}

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

.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;
}

.absBotRight {
  position: absolute;
  bottom: 0;
  right: 0;
}

.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;
}
