/*!
 * 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.
 */

.UnitDirectories {
  margin-bottom: 2rem;
}
.UnitDirectories h2 a.UnitDirectories-idLink,
.UnitDirectories summary a {
  opacity: 0;
}
.UnitDirectories h2:hover a,
.UnitDirectories summary:focus a {
  opacity: 1;
}
.UnitDirectories-title {
  border-bottom: var(--border);
  font-size: 1.375rem;
  margin: 0.5rem 0 0 0;
  padding-bottom: 1rem;
}
.UnitDirectories-title img {
  margin: auto 1rem auto 0;
}
.UnitDirectories-table {
  border-collapse: collapse;
  height: 0;
  table-layout: auto;
  width: 100%;
}
.UnitDirectories-table--tree {
  margin-top: -2rem;
}
.UnitDirectories-tableHeader {
  background-color: var(--color-background-accented);
}
.UnitDirectories-tableHeader--tree {
  visibility: hidden;
}
.UnitDirectories td {
  border-bottom: var(--border);
  max-width: 32rem;
  min-width: 12rem;
  padding: 0.25rem 1rem;
  vertical-align: middle;
  word-break: break-word;
}
.UnitDirectories th {
  padding: 0.5rem 1rem;
  text-align: left;
}
.UnitDirectories tr.hidden {
  display: none;
}
.UnitDirectories tr[aria-controls] {
  cursor: pointer;
}
.UnitDirectories tr[aria-controls]:hover {
  background-color: var(--color-background-accented);
}
.UnitDirectories th.UnitDirectories-toggleHead {
  font-size: 0;
  max-width: 0.625rem;
  padding: 0;
  width: 0.625rem;
}
.UnitDirectories td.UnitDirectories-toggleCell,
th.UnitDirectories-toggleCell {
  background-color: var(--background);
  border: var(--white);
  max-width: 0.625rem;
  padding: 0;
  width: 0.625rem;
}
.UnitDirectories-toggleButton {
  font-size: 1.25rem;
  left: -0.75rem;
  margin: 0 0 -1rem -0.875rem;
  padding: 0;
  position: absolute;
  vertical-align: top;
}
.UnitDirectories-subSpacer {
  border-right: var(--border);
  display: inline;
  margin-right: 0.875rem;
  width: 0.0625rem;
}
.UnitDirectories-toggleButton[aria-expanded='true'] img {
  transform: rotate(90deg);
}
.UnitDirectories-pathCell {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  line-height: 1.75rem;
  word-break: break-all;
}
.UnitDirectories-pathCell > div {
  position: relative;
}
.UnitDirectories-subdirectory {
  border-left: var(--border);
  display: flex;
  flex-direction: column;
  margin-left: 0.375rem;
  padding: 0.5rem 1rem;
}
.UnitDirectories-mobileSynopsis {
  display: none;
  line-height: 1.25rem;
  margin-top: 0.25rem;
  word-break: keep-all;
}
@media only screen and (max-width: 52rem) {
  .UnitDirectories-mobileSynopsis {
    display: initial;
  }
  .UnitDirectories-table th.UnitDirectories-desktopSynopsis,
  .UnitDirectories-table td.UnitDirectories-desktopSynopsis {
    display: none;
  }
}
.UnitDirectories-expandButton {
  position: relative;
}
.UnitDirectories-expandButton button {
  background-color: transparent;
  border: none;
  bottom: 1rem;
  color: var(--color-brand-primary);
  cursor: pointer;
  display: none;
  font-size: 0.875rem;
  position: absolute;
  right: 0;
  text-decoration: none;
}
.UnitDirectories-badge {
  border: 0.0625rem solid var(--color-text-subtle);
  border-radius: 0.125rem;
  font-size: 0.6875rem;
  font-weight: 500;
  line-height: 1rem;
  margin-left: 0.5rem;
  margin-top: 0.125rem;
  padding: 0 0.35rem;
  text-align: center;
}
