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

.Vuln-alias {
  display: none;
}

.VulnEntry {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-top: 0.5rem;
}
.VulnEntry h2 {
  font-size: 1.25rem;
}
.VulnEntryPackages-attr {
  list-style: disc;
  list-style-position: inside;
  /* package and symbol names can be pretty long */
  overflow-wrap: anywhere;
}
.VulnEntryPackages-detailsContent {
  margin-left: 0.2rem;
}
/* One column by default */
.VulnEntryPackages-container {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: 0.5rem;
}
/* Don't display the first item - the headers for multi-col layout */
.VulnEntryPackages-container>li:first-child {
  display: none;
}
.VulnEntryPackages-attr::before {
  content: attr(data-name);
  color: var(--color-text-subtle);
}
/* Attribute name for first column, and attribute value for second column. */
.VulnEntryPackages-attr {
  display: grid;
  grid-template-columns: minmax(5em, 10%) 1fr;
  padding: 0.2rem;
}
/* Three columns for wider screen */
@media screen and (min-width: 46rem) {
  /* Undo what's done by default */
  .VulnEntryPackages-container {
    grid-gap: 0;
  }
  .VulnEntryPackages-item {
    padding: inherit;
  }
  .VulnEntryPackages-container>li:first-child {
    display: grid;  /* undo display: none setfor default */
  }
  .VulnEntryPackages-attr::before {
    content: none;
  }
  .VulnEntryPackages-attr {
    grid-template-columns: 1fr;
  }
  .VulnEntryPackages-item-container {
    display: grid;
    grid-template-columns: minmax(10em, 50%) minmax(5em, 20%) 1fr;
    padding: 0.5rem;
  }
  /* Header */
  .VulnEntryPackages-item-container:first-child {
    background-color: var(--color-background-accented);
  }
  /* Header text */
  .VulnEntryPackages-item-container:first-child .VulnEntryPackages-attr {
    display: flex;
    text-overflow: initial;
    overflow: auto;
    white-space: normal;
    font-weight: bold;
  }
}
.VulnEntry-referenceList,
.VulnEntry-aliases {
  line-height: 1.75rem;
  word-break: break-all;
}