/*!
 * Copyright 2020 The Go Authors. All rights reserved.
 * Use of this source code is governed by a BSD-style
 * license that can be found in the LICENSE file.
 */

/* TODO(jamal): remove these styles with legacy code. */
.Documentation-index,
.DocNav-index {
  display: block;
}

.UnitOutline {
  display: flex;
  flex-direction: column;
  max-height: 100%;
  position: sticky;
  top: 4.5rem;
}
.UnitOutline-jumpTo {
  display: flex;
  margin-bottom: -0.1625rem;
}
.UnitOutline-jumpTo button {
  background-color: white;
  border: 0.0625rem solid var(--gray-8);
  border-radius: 0.25rem;
  color: var(--gray-4);
  cursor: pointer;
  height: 2rem;
  padding-left: 1.5rem;
  text-align: left;
  width: 100%;
}
.UnitOutline-jumpTo button:hover:not([disabled]) {
  border-color: var(--gray-7);
}
.UnitOutline-jumpTo::after {
  align-self: center;
  background-color: var(--gray-9);
  border-radius: 0.5rem;
  color: var(--gray-6);
  content: 'f';
  content: 'f' / 'find';
  font-size: 0.75rem;
  padding: 0.0625rem 0;
  position: absolute;
  right: 0.75rem;
  text-align: center;
  width: 1.5rem;
}
.UnitOutline-jumpTo::before {
  align-self: center;
  border-radius: 0.5rem;
  color: var(--gray-6);
  content: url('/static/img/pkg-icon-jumpTo_16x16.svg');
  font-size: 0.75rem;
  left: 0.4rem;
  position: absolute;
  text-align: center;
  top: 0.5rem;
}
.UnitOutline-jumpToInput:disabled {
  background-color: var(--gray-9);
}
.UnitOutline ul[role='tree'],
.UnitOutline ul[role='treeitem'],
.UnitOutline ul[role='group'] {
  list-style: none;
  padding-left: 0;
}
.UnitOutline li:last-of-type {
  padding-bottom: 0.25rem;
}
.UnitOutline [role='treeitem'][aria-expanded='false'] + ul[role='group'] {
  display: none;
}
.UnitOutline [role='treeitem'][aria-expanded='true'] + ul[role='group'] {
  display: block;
}
.UnitOutline [role='treeitem'][aria-level='1'] + ul[role='group'] {
  max-height: calc(100vh - 20rem);
  overflow-y: auto;
  padding: 0.5rem 0.25rem 0 0.25rem;
}
.UnitOutline a {
  color: var(--gray-2);
  display: block;
  line-height: 1.5rem;
  overflow: hidden;
  padding: 0.125rem 0 0.125rem 1.25rem;
  position: relative;
  text-overflow: ellipsis;
  user-select: none;
  white-space: nowrap;
}
.UnitOutline a:focus,
.UnitOutline a:hover {
  outline: transparent;
  text-decoration: underline;
}
.UnitOutline [role='treeitem'][aria-selected='true'] {
  color: var(--gray-1);
  font-weight: 500;
}
.UnitOutline [role='treeitem'][aria-level='1'] {
  display: block;
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 2.5rem;
  padding: 0 1rem;
}
.UnitOutline [role='treeitem'][aria-level='1'][aria-selected='true'],
.UnitOutline [role='treeitem'][aria-level='1'][aria-expanded='true'] {
  background-color: var(--gray-9);
}
.UnitOutline [role='treeitem'][aria-level='3'][aria-expanded='true'] {
  margin-bottom: 0.375em;
}
.UnitOutline [role='treeitem'][aria-level='2'] {
  position: relative;
  margin-bottom: 0.25rem;
}
.UnitOutline [role='treeitem'][aria-level='3'] {
  font-size: 0.875rem;
  padding-left: 2.5rem;
}
.UnitOutline [role='treeitem'][aria-level='4'] {
  border-left: 0.125rem solid var(--gray-9);
  font-size: 0.875rem;
  margin-left: 2.5rem;
  padding-left: 0.5rem;
}
.UnitOutline [role='treeitem'][aria-selected='true'][aria-level='2']:not([aria-expanded])::before,
.UnitOutline [role='treeitem'][aria-selected='true'][aria-level='3']:not([aria-expanded])::before {
  border-radius: 50%;
  background-color: var(--turq-dark);
  content: '';
  display: block;
  height: 0.3125rem;
  left: 0.4688rem;
  position: absolute;
  top: 0.6875rem;
  width: 0.3125rem;
}
.UnitOutline [role='treeitem'][aria-expanded][aria-owns][aria-level='2']::before,
.UnitOutline [role='treeitem'][aria-expanded][aria-owns][aria-level='3']::before {
  border-bottom: 0.25rem solid transparent;
  border-left: 0.25rem solid var(--gray-4);
  border-right: 0;
  border-top: 0.25rem solid transparent;
  content: '';
  display: block;
  height: 0;
  left: 0.5rem;
  position: absolute;
  top: 0.625rem;
  transition: transform 0.1s linear;
  width: 0;
}
.UnitOutline [role='treeitem'][aria-expanded='true'][aria-level='2']::before,
.UnitOutline [role='treeitem'][aria-expanded='true'][aria-level='3']::before {
  transform: rotate(90deg);
}
.UnitOutline [role='treeitem'][aria-expanded][aria-level='3']:not([empty])::before,
.UnitOutline [role='treeitem'][aria-selected][aria-level='3']:not([empty])::before {
  left: 1.5rem;
  top: 0.75rem;
}
.UnitOutline [role='treeitem'][aria-selected='true'][aria-level='4'] {
  border-left: 0.125rem solid var(--turq-dark);
}
