.explorer {
  position: relative;
  flex: 1 1 0%;
  min-width: 0;
}

.group {
  list-style: none;
  margin: 0;
  padding: 0;
}

.entity {
  position: relative;
}

.btn {
  composes: btnClean from global;
  display: flex;
  align-items: center;
  width: 100%;
  padding: 0 1rem 0 calc(0.25rem + (var(--level) + 1) * 0.75rem);
  flex:1 1 0%;
}

.btn:hover,
.btn:focus {
  background-color: var(--primary-light);
}

.btn:focus {
  outline: 1px solid var(--primary-dark);
  outline-offset: -1px;
}

.btn[aria-selected='true'] {
  background-color: var(--primary);
  font-weight: bold;
}

.fileBtn {
  composes: btn;
  margin: 0;
  padding: 0.625rem 1rem;
  font-weight: 600;
}

.icon {
  flex: none;
  margin-right: 0.3125rem;
  margin-bottom: -0.125rem;
  font-size: 0.75em;
}

.fileIcon {
  composes: icon;
  font-size: 1em;
  margin-left: -0.375rem;
  margin-right: 0.375rem;
}

.name {
  padding: 0.375rem 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.spinner {
  position: absolute;
  top: 0.5rem;
  right: 0.75rem;
  font-size: 0.75em;
  animation: spin 1.5s ease-in-out infinite, fade 0.1s 0.1s backwards;
}

.nx {
  background-color: var(--secondary-dark);
  color: white;
  font-size: 0.625rem;
  font-weight: bold;
  margin-left: 0.5rem;
  margin-bottom: -0.125rem;
  padding: 0.125rem 0.25rem;
  border-radius: 0.375rem;
}

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

@keyframes fade {
  from {
    opacity: 0;
  }
}
