:root {
  --atmo: #4472c4;
  --bio: #00b050;
  --socio: #e7872a;
  --sphere: #a4a4a4;
}

html {
  margin: 0 auto;
}

h3 {
  color: #006c66;
}

.tab-content.html-fill-container,
.navbar-header {
  padding-left: 0.5em;
  padding-right: 0.5em;
}

.shiny-plot-output {
  margin-bottom: 2px !important;
}

.btn {
  max-width: 500px;
}


/* Color coding for feature labels */

/* Feature labels colored by sphere. Labels without a sphere fall back to grey. */
.selectize-control.multi .selectize-input>.item {
  --sphere: #a4a4a4;
  border: 2px solid var(--sphere) !important;
  background-color: rgba(164, 164, 164, 0.15);
}

.selectize-control .option.atmo {
  background-color: rgba(68, 114, 196, 0.15);
}

.selectize-control .option.bio {
  background-color: rgba(0, 176, 80, 0.15);
}

.selectize-control .option.socio {
  background-color: rgba(231, 135, 42, 0.15);
}

.selectize-control .selectize-input>.item.atmo {
  --sphere: var(--atmo);
  background-color: rgba(68, 114, 196, 0.15);
}

.selectize-control .selectize-input>.item.bio {
  --sphere: var(--bio);
  background-color: rgba(0, 176, 80, 0.15);
}

.selectize-control .selectize-input>.item.socio {
  --sphere: var(--socio);
  background-color: rgba(231, 135, 42, 0.15);
}

.selectize-dropdown-content>.option.active {
  color: #000000;
}

.selectize-dropdown-content>.option.active.atmo {
  border: 2px solid var(--atmo);
}

.selectize-dropdown-content>.option.active.bio {
  border: 2px solid var(--bio);
}

.selectize-dropdown-content>.option.active.socio {
  border: 2px solid var(--socio);
}

.selectize-dropdown-content>.option:not(.bio):not(.atmo):not(.socio) {
  background-color: #ededed !important;
}

.selectize-dropdown-content>.option.active:not(.bio):not(.atmo):not(.socio) {
  border: 2px solid #bbbbbb !important;
}

/* Sphere column in the available-features table, full opacity */
table .sphere.atmo {
  color: var(--atmo);
}

table .sphere.bio {
  color: var(--bio);
}

table .sphere.socio {
  color: var(--socio);
}

/* Sphere radio button labels in the sidebar, full opacity */
.shiny-input-radiogroup label span.atmo {
  color: var(--atmo);
}

.shiny-input-radiogroup label span.bio {
  color: var(--bio);
}

.shiny-input-radiogroup label span.socio {
  color: var(--socio);
}

#download-spinner-overlay {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2000;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 1em;
  background: rgba(255, 255, 255, 0.75);
}

#download-spinner-overlay.show {
  display: flex;
}

#download-spinner-overlay .spinner {
  width: 80px;
  height: 80px;
  border: 8px solid rgba(0, 108, 102, 0.25);
  border-top-color: #006c66;
  border-radius: 50%;
  animation: download-spin 0.9s linear infinite;
}

#download-spinner-overlay .spinner-label {
  font-size: 1.1em;
  color: #006c66;
}

@keyframes download-spin {
  to {
    transform: rotate(360deg);
  }
}

.partner-logo {
  height: 120px;
  width: auto;
  object-fit: contain;
}