/*
 * 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 (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 (width >= 37.5rem) {
  .Version-major {
    margin-bottom: 0;
  }
}

.Version-tag {
  text-align: left;
}

@media only screen and (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 (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;
}
