/*
 * Copyright 2021 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.
 */

.Versions table {
  border-spacing: 0;
}
.Versions th {
  text-align: left;
}
.Versions td {
  padding-bottom: 1rem;
}
.Versions td:nth-child(1) {
  padding-right: 3rem;
  vertical-align: top;
}
.Versions td:nth-child(2) {
  border-right: var(--border);
  padding-right: 1rem;
  text-align: right;
  vertical-align: top;
  white-space: nowrap;
}
.Versions td:nth-child(3) {
  padding-left: 1rem;
}
.Versions-commitTime {
  font-size: 1rem;
  font-weight: 400;
}
.Versions-major {
  font-weight: 600;
}
.Versions-symbols {
  margin-left: 2rem;
}
.Versions-vulns {
  margin: 0.25rem 2rem;
  max-width: 60rem;
}
.Versions-symbolBulletNew {
  color: var(--color-text-subtle);
  padding-right: 0.5rem;
}
.Versions-symbolBuilds,
.Versions-symbolBuildsDash,
.Versions-symbolOld {
  color: var(--color-text-subtle);
}
.Versions-symbolChild {
  padding-left: 2rem;
}
.Versions-symbolSection,
.Versions-symbolType {
  margin-bottom: 0.625rem;
}
.Versions-symbolsHeader {
  margin: 0.625rem 0;
}

.Versions-title {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 2.5rem;
  margin-bottom: 1rem;
}
.Versions-titleButtonGroup {
  display: none;
}
.Versions-titleButtonGroup button {
  font-size: 0.875rem;
}
.Versions-modulesTitle {
  font-size: 1rem;
  margin: 1rem 0;
}
.Versions-list {
  gap: 0 1rem;
  line-height: 2.25rem;
}
@media only screen and (min-width: 37.5rem) {
  .Versions-list {
    display: grid;
    grid-template-columns: fit-content(8rem) fit-content(20rem) min-content auto;
  }
}
.Version-major {
  align-items: baseline;
  display: flex;
  gap: 1rem;
  margin-bottom: 1rem;
  min-width: 4rem;
}
@media only screen and (min-width: 37.5rem) {
  .Version-major {
    margin-bottom: 0;
  }
}
.Version-tag {
  text-align: left;
}
@media only screen and (min-width: 37.5rem) {
  .Version-tag {
    text-align: right;
  }
}
.Version-dot {
  border: var(--border);
  color: var(--gray-7);
  display: none;
  font-size: 2.75rem;
  justify-content: center;
  line-height: 1.75rem;
  -webkit-text-stroke: 0.125rem var(--color-background);
  width: 0;
}
.Version-dot::before {
  content: '•';
}
@media only screen and (min-width: 37.5rem) {
  .Version-dot {
    display: flex;
  }
}
.Version-dot--minor {
  color: var(--color-brand-primary);
}
.Version-commitTime {
  align-items: center;
  display: flex;
  gap: 0.75rem;
  margin-left: 1rem;
  white-space: nowrap;
}
.Version-details {
  line-height: 1.25rem;
}
.Version-summary {
  align-items: center;
  cursor: pointer;
  line-height: 2.25rem;
  padding-right: 0.5rem;
  white-space: nowrap;
  width: min-content;
}
.Version-summary .go-Chip {
  margin-left: 0.5rem;
}
