.p-asidemenu {
  height: 100%;

  display: flex;
  flex-direction: column;
  justify-content: stretch;
}

.p-asidemenu-group > div {
  margin: 0.5rem 0;
}

.p-asidemenu-group > div > span {
  font-weight: 600;
  font-size: 0.75rem;
  text-transform: uppercase;
  color: var(--surface-800);
  line-height: 1.2;
}

.p-asidemenu-group > div > ul {
  margin: 0.5rem 0;
}

.p-asidemenu ul {
  list-style: none;
  padding: 0;
}

.p-asidemenu-label {
  font-weight: 400;
  color: var(--surface-900);
}

.p-asidemenu-list > ul {
  margin-bottom: 1rem;

  overflow: hidden;
}

.p-asidemenu-bottom {
  margin-top: auto;
}

.p-asidemenu-link {
  display: flex;
  align-items: center;

  padding: 0.825rem 0.75rem;
  border-radius: var(--border-radius);

  cursor: pointer;
  color: var(--text-color);

  transition-duration: 150ms;
  transition-property: background-color, border-color, color;
}

.p-asidemenu-link:hover {
  background-color: var(--surface-200);
}

.p-asidemenu-link span {
  color: inherit;
}

.p-asidemenu-parent {
  display: flex;
  align-items: center;
  background-color: transparent;
  color: var(--text-color);
  z-index: 1000;
}

.p-asidemenu-parent-active {
  background-color: transparent;
  color: var(--primary-color-text);
}

.p-asidemenu-active {
  position: relative;

  padding-left: 0.75rem;

  background-color: var(--primary-color-hover);
  color: var(--primary-color-text);
}

.p-asidemenu-active::before {
  content: '';

  position: absolute;
  top: 50%;
  left: 1px;
  transform: translateY(-50%);

  width: 4px;
  height: 50%;

  background-color: currentColor;
  border-radius: var(--border-radius);
}

.p-asidemenu-icon:first-child {
  margin-right: 0.75rem;
  font-size: 1.25rem;
}

.p-asidemenu-link.p-asidemenu-active:hover {
  background-color: var(--primary-color);
}

.p-asidemenu-link + ul {
  overflow-y: hidden;

  transition: all 400ms ease-in-out;

  background-color: rgba(127, 127, 127, 0.04);
  padding: 0.25rem 0;
  border-radius: var(--border-radius);
}

.p-asidemenu-link + ul > .p-asidemenu-link {
  padding-left: 3.5rem;
}

.p-asidemenu-link .pi-angle-right,
.p-asidemenu-link .pi-angle-down {
  margin-left: auto;
  color: var(--surface-600);
}

.p-asidemenu-link .pi-angle-right {
  display: block;
}

.p-asidemenu-link .pi-angle-down {
  display: none;
}

.p-asidemenu-link.p-asidemenu-open .pi-angle-right {
  display: none;
}

.p-asidemenu-link.p-asidemenu-open .pi-angle-down {
  display: block;
}

.p-asidemenu .hidden {
  display: none !important;
}

.p-asidemenu .slidedown {
  animation: slidedown 0.25s ease-in-out;
}

.p-asidemenu .slideup {
  animation: slideup 0.15s ease-in-out;
}

.p-asidemenu .p-asidemenu-badge {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 1.5rem;
  height: 1.5rem;
  margin-left: 0.5rem;
  padding: 0 0.5rem;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--primary-color-text);
  background: var(--primary-color-hover);
  border-radius: var(--border-radius);
}

@keyframes slidedown {
  0% {
    max-height: 0;
  }
  100% {
    max-height: auto;
  }
}

@keyframes slideup {
  0% {
    max-height: 1000px;
  }
  100% {
    max-height: 0;
  }
}
