/*!
 * 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;
  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-internal {
  display: none;
}

.UnitDirectories-showInternal .UnitDirectories-internal {
  display: table-row;
}

.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-toggles {
  position: relative;
}

.UnitDirectories-toggleButtons {
  bottom: 1rem;
  display: flex;
  gap: 1rem;
  position: absolute;
  right: 0;
}

.UnitDirectories-toggleButtons button {
  background-color: transparent;
  border: none;
  color: var(--color-brand-primary);
  cursor: pointer;
  display: none;
  font-size: 0.875rem;
  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;
}
