#drawer {
  position: fixed;
  top: 0;
  left: 80px;
  width: 320px;
  bottom: 0;
  padding: 16px 0;
  background-color: #28292A;
  color: var(--white, #FFF);
  overflow: auto;

  &::-webkit-scrollbar {
    width: 8px;
  }

  &::-webkit-scrollbar-track {
    background-color: #28292A;
  }

  &::-webkit-scrollbar-thumb {
    background-color: #BDC1C6;
    outline: 1px solid #BDC1C6;
    border-radius: 8px;
  }

  & h1 {
    margin: 0;
    font: 0.875rem/1 var(--font-base);
  }

  &:hover {
    --clr-spacer: #444;
  }
}

#drawer-structure {
  font-size: 0.875rem;
  line-height: 1.5;
  margin: 0 8px;
}

.node-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
}

.node {
  & a {
    color: var(--white, #fff);
    text-decoration: none;
  }

  &.current>.node-row:nth-child(1) {
    background-color: #37383A;
  }
}

.node-row {
  --level: 0;
  --toggle-width: 1rem;

  display: grid;
  grid-template-columns: calc(var(--level) * (var(--toggle-width) / 2)) var(--toggle-width) 1fr;
  grid-template-areas: "spacer toggle content";

  min-height: 2rem;
  padding: 0 10px 0 0;
  cursor: pointer;

  &:hover {
    background-color: #37383A;
    border-radius: 4px;
  }


  .child {
    color: var(--clr-grey-400);
    font: 1.125rem/1 var(--font-icons);
    font-variation-settings: 'opsz' 24, 'wght' 300, 'FILL' 1, 'GRAD' 0;
    grid-area: toggle;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .parent {

    &:hover {

      background-color: var(--clr-grey-600);
      border-radius: 4px 0 0 4px;
    }

    & span:nth-child(1) {
      display: inherit;
    }

    & span:nth-child(2) {
      display: none;
    }
  }

  &.closed {
    .parent {

      & span:nth-child(1) {
        display: none;
      }

      & span:nth-child(2) {
        display: inherit;
      }
    }
  }

}

.node-title {
  display: flex;
  align-items: center;
  gap: 4px;
  grid-area: content;
  letter-spacing: 0.00625em;
  text-overflow: ellipsis;
  
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  word-break: normal;

  &::before {
    color: var(--data-icon-color, #717274);
    font-family: var(--font-icons);
    font-variation-settings: 'opsz' 24, 'wght' 300, 'FILL' 1, 'GRAD' 0;
    font-size: 1.25rem;
    content: attr(data-icon);
  }
}

.node-link {
  text-decoration: none;
  color: var(--black);
  display: flex;
  align-items: center;
  gap: 8px;
  
  &:not(:has(img))::before {
    color: var(--data-icon-color, #717274);
    font-family: var(--font-icons);
    font-variation-settings: 'opsz' 24, 'wght' 300, 'FILL' 1, 'GRAD' 0;
    font-size: 1.5rem;
    line-height: 1.5;
    content: attr(data-icon);
  }

  &:has(img) {
    & img {
      width: 24px;
      height: 36px;
      object-fit: contain;
    }
  }  
  
}

[data-icon=inventory_2] {
  --data-icon-color: #886F65;
}
[data-icon=folder] {
  --data-icon-color: #EC5F59;
}
[data-icon=book_2] {
  --data-icon-color: #F8CA4F;
}
[data-icon=description] {
  --data-icon-color: #94A3AD;
}






.spacer {
  grid-area: spacer;
  display: flex;
  justify-content: stretch;

  & div {
    width: 100%;
    height: 100%;
    border-right: 1px solid var(--clr-spacer, transparent);
  }

}

.closed~.node {
  display: none;
}

.node-ctrls {
  display: flex;
  gap: 8px;

  & button {
    font: 1rem/1 var(--font-icons);
    font-variation-settings: 'opsz' 24, 'wght' 300, 'FILL' 1, 'GRAD' 0;
  }
}

#tree {
  margin-left: 320px;
}

.tree-title {
  font-size: 1rem;
  font-weight: 600;
  display: flex;
  justify-content: start;
  gap: 0.2em;

  & a {
    color: var(--action);
    text-decoration: none;

    &:hover {
      text-decoration: underline;
    }
  }
}

.tree-children {

  font-size: 1rem;
}