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

:root {
  --gray-1: #202224;
  --gray-2: #3e4042;
  --gray-3: #555759;
  --gray-4: #6e7072;
  --gray-5: #848688;
  --gray-6: #aaacae;
  --gray-7: #c6c8ca;
  --gray-8: #dcdee0;
  --gray-9: #f0f1f2;
  --gray-10: #fafafa;

  --turq-light: #5dc9e2;
  --turq-med: #00add8;
  --turq-dark: #007d9c;

  --blue: #92e1f3;
  --green: #00a29c;
  --pink: #ce3262;
  --purple: #542c7d;
  --slate: #253443; /* Footer background. */
  --white: #fff;
  --yellow: #fddd00;

  --header-height: 3.5rem;
}

*,
:before,
:after {
  box-sizing: border-box;
}
html,
body {
  /**
   * This is used to programatically detect whether overflow needs to be altered
   * to prevent jitter when focusing within fixed elements on iOS.
   * It also must be set to 'touch' for the fix to work.
   */
  -webkit-overflow-scrolling: touch;
  height: 100%;
}
body {
  color: var(--gray-1);
  font-family: Roboto, Arial, sans-serif;
  margin: 0;
}
a,
a:link,
a:visited {
  color: var(--turq-dark);
  text-decoration: none;
}
a:hover {
  text-decoration: underline;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: 'Work Sans', arial, sans-serif;
  word-break: break-word;
}
h1,
h2,
h3 {
  font-weight: bold;
}
h1 {
  font-size: 1.5rem;
}
h2 {
  font-size: 1.125rem;
}
h3 {
  font-size: 1rem;
}
/**
  * As header elements are not interactive, it’s okay to remove the visual
  * indicator. https://css-tricks.com/focus-styles-non-interactive-elements/
  */
h1:focus,
h2:focus,
h3:focus,
h4:focus,
h5:focus,
h6:focus {
  outline: 0;
}
p {
  font-size: 1rem;
  line-height: 1.5rem;
}
.u-breakWord {
  word-break: break-word;
}
code {
  font-size: 1rem;
  font-family: 'Source Code Pro', monospace;
}

.Site {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}
.Site-content {
  flex: 1;
  padding: 0 1rem;
}
.Site--redesign.Site--wide .Site-content {
  padding: 0;
}
.Site-footer {
  margin-top: 5rem;
}
@media only screen and (min-width: 57.7rem) {
  .Site-content {
    padding: 0 1.5rem;
  }
  .Site--redesign.Site--wide .Site-content {
    padding: 0;
  }
}

.FeedbackButton {
  cursor: pointer;
}
.AutoComplete-list {
  margin: 0 0.5rem 0 0;
  list-style: none;
  padding: 0;
}
.AutoComplete-list li:first-child {
  border-top: 0.0625rem solid var(--gray-8);
  margin-top: 0.3125rem;
}
.AutoComplete-list li {
  padding: 0.25rem 0;
  text-overflow: ellipsis;
  overflow: hidden;
  cursor: pointer;
}
.AutoComplete-list li:hover,
.AutoComplete-list li[aria-selected='true'] {
  background-color: var(--gray-9);
}

.Banner {
  /**
   * Only show on wide viewports so the
   * text never wraps or gets cut off.
   */
  display: none;
  background-color: #000;
}
.Banner-inner {
  align-items: center;
  display: flex;
  justify-content: space-between;
  margin: 0 auto;
  max-width: 75.75rem;
  min-height: 2.5rem;
  padding: 0.5rem 1.5rem;
}
.Site--wide .Banner-inner {
  max-width: none;
}
.Site--redesign .Banner-inner {
  max-width: 98rem;
}
.Banner-message {
  color: #fff;
  margin-right: 1.25rem;
}
.Banner-action:link,
.Banner-action:visited {
  color: #fff;
  text-decoration: underline;
  white-space: nowrap;
}
@media only screen and (min-width: 52rem) {
  .Banner {
    display: block;
  }
}

.Header {
  margin: 0 auto;
  max-width: 75.75rem;
}
.Site--wide .Header {
  max-width: none;
}
.Site--redesign .Header {
  max-width: 98rem;
}
.Site-header {
  background: var(--turq-dark);
  box-shadow: 0 0.0625rem 0.125rem rgba(171, 171, 171, 0.3);
  width: 100%;
  z-index: 1;
}
.Header-logoLink {
  margin-right: auto;
}
.Header-nav {
  align-items: center;
  display: flex;
  height: var(--header-height);
  justify-content: space-between;
}
.Header-logo {
  display: block;
  height: 2rem;
  margin: 0 2.25rem 0 1rem;
  width: 5.125rem;
}
.Header-menu {
  display: flex;
  list-style: none;
  height: 100%;
  margin: 0;
  padding: 0;
}
.Header-menuItem {
  display: none;
}
@media only screen and (min-width: 57.7rem) {
  .Header {
    padding: 0 1.5rem;
  }
  .Header-logo {
    margin-left: 1.4rem;
  }
  .Header-menuItem {
    display: inline-flex;
    flex: none;
  }
  .Header-menu {
    justify-content: flex-end;
    margin-left: 1.4rem;
  }
  .Header-navOpen {
    display: none;
  }
  .Header-logo {
    margin-left: 0;
  }
}
.Header-menuItem a:link,
.Header-menuItem a:visited {
  align-items: center;
  border-bottom: 0.1875rem solid transparent;
  border-top: 0.1875rem solid transparent; /* To ensure the text remains centered. */
  color: var(--white);
  display: inline-flex;
  margin: 0 0.3125rem;
  padding: 0 0.9375rem;
  text-align: center;
  text-decoration: none;
  width: 100%;
}
.Header-menuItem--active a:link,
.Header-menuItem--active a:visited {
  border-top-color: var(--turq-med);
  font-weight: bold;
}
.Header-menuItem a:hover {
  border-top-color: var(--pink);
}
.Header-navOpen {
  background: no-repeat center/2rem url('/static/img/menu-24px-white.svg');
  border: none;
  height: 2.5rem;
  margin: auto 1rem;
  width: 2.5rem;
}
.Header-searchForm {
  align-items: center;
  background-color: transparent;
  border: 0.0625rem solid transparent;
  border-radius: 0.25rem;
  display: flex;
  font-size: 1rem;
  height: 2rem;
  position: relative;
  width: 2.25rem;
}
.Header-searchForm:focus-within {
  background-color: var(--white);
  border-color: var(--gray-8);
  flex: 1;
  left: 1rem;
  position: absolute;
  width: calc(100% - 5.25rem);
}
.Header-searchFormInput {
  background-color: transparent;
  border: none;
  box-sizing: border-box;
  color: transparent;
  flex: 1;
  font: inherit;
  height: 100%;
  outline: none;
  position: absolute;
  width: 100%;
}
.Header-searchFormInput::placeholder {
  color: transparent;
}
.Header-searchForm:focus-within .Header-searchFormInput {
  color: var(--gray-1);
  height: auto;
  position: relative;
  width: auto;
}
.Header-searchForm:focus-within .Header-searchFormInput::placeholder {
  color: var(--gray-4);
}
.Header-searchFormSubmit {
  background-color: transparent;
  border: none;
  box-sizing: border-box;
  cursor: pointer;
  display: flex;
}
.Header-searchFormSubmitIcon {
  box-sizing: border-box;
  cursor: pointer;
  fill: var(--white);
  width: 1.4375rem;
}
.Header-searchForm:focus-within .Header-searchFormSubmitIcon {
  fill: var(--gray-4);
}
@media only screen and (min-width: 26.875rem) {
  .Header-searchForm {
    background-color: var(--white);
    border-color: var(--gray-8);
    flex: 1;
    width: auto;
  }
  .Header-searchForm:focus-within {
    left: 0;
    position: relative;
    width: auto;
  }
  .Header-searchFormSubmitIcon {
    fill: var(--gray-4);
  }
  .Header-searchFormInput {
    color: var(--gray-1);
    height: auto;
    position: relative;
    width: auto;
  }
  .Header-searchFormInput::placeholder {
    color: var(--gray-4);
  }
}
.NavigationDrawer {
  background: var(--white);
  display: none;
  height: 100%;
  left: auto;
  max-width: 27rem;
  position: fixed;
  right: 0;
  top: 0;
  width: 85%;
  z-index: 10;
}
.NavigationDrawer.is-active {
  display: initial;
}
.NavigationDrawer-header {
  display: flex;
  justify-content: space-between;
}
.NavigationDrawer-logo {
  display: block;
  height: 2rem;
  margin: 1rem 1rem;
  width: 5.125rem;
}
.NavigationDrawer-close {
  background: no-repeat center/2rem url('/static/img/close-24px.svg');
  border: none;
  height: 2.5rem;
  margin: auto 1rem;
  width: 2.5rem;
}
.NavigationDrawer-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.NavigationDrawer-listItem {
  font-size: 1.5rem;
  margin: 0 0.5rem;
}
.NavigationDrawer-listItem a:link,
.NavigationDrawer-listItem a:visited {
  display: block;
  margin: 0 1rem;
  padding: 1rem;
}
.NavigationDrawer-listItem--active {
  background-color: var(--gray-8);
  border-radius: 0.4rem;
}
.NavigationDrawer-scrim {
  display: none;
  height: 100%;
  left: 0;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 5;
}
.NavigationDrawer.is-active + .NavigationDrawer-scrim {
  background-color: rgba(0, 0, 0, 0.32);
  display: block;
}
.DetailsHeader {
  margin-top: 0.75rem;
}
.DetailsHeader-banner {
  align-items: center;
  background-color: var(--gray-10);
  display: flex;
  justify-content: flex-start;
  padding-top: 0.1rem;
}
.DetailsHeader-banner--latest {
  display: none;
}
.DetailsHeader-infoIcon {
  color: var(--gray-3);
  flex-shrink: 0;
  margin-left: 1rem;
  margin-right: 0.7rem;
  width: 1.3rem;
}
.DetailsHeader-breadcrumb {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  word-break: break-word;
}
.DetailsHeader-main {
  margin-top: 0.25rem;
}
.DetailsHeader-title {
  display: inline-block;
  font-size: 1.875rem;
  margin: 0;
  height: 2.1875rem;
}
.DetailsHeader-version {
  display: inline-block;
  margin: 0 0.5rem;
}
.DetailsHeader-badge {
  border-radius: 1rem;
  display: inline-block;
  font-size: 0.75rem;
  padding: 0.25rem 0.75rem;
  position: relative;
  top: -0.125rem;
}
.DetailsHeader-badge--latest {
  background: var(--blue);
}
.DetailsHeader-badge--latest a {
  display: none;
}
.DetailsHeader-badge--goToLatest {
  background: var(--pink);
}
.DetailsHeader-badge--goToLatest a {
  color: var(--white);
}
.DetailsHeader-badge--goToLatest span {
  display: none;
}
.DetailsHeader-badge--unknown a {
  display: none;
}
.DetailsHeader-badge--unknown span {
  display: none;
}
.DetailsHeader-breadcrumbCurrent {
  color: var(--gray-3);
}
.DetailsHeader-breadcrumbDivider {
  color: var(--gray-3);
  margin: 0 0.3rem;
}

.Error-gopher,
.EmptyContent-gopher,
.Fetch-gopher,
.SearchResults-emptyContentGopher {
  display: block;
  margin: auto;
  max-width: 15rem;
  padding: 1.25rem 0;
}
.Error-message,
.EmptyContent-message,
.SearchResults-emptyContentMessage {
  text-align: center;
}
.Fetch-button {
  background-color: var(--gray-10);
  border-radius: 0.5rem;
  border: 0.0625rem solid var(--gray-8);
  color: var(--turq-dark);
  font-size: 1rem;
  height: 2.5rem;
  margin: 1rem 0;
  min-width: 5rem;
  padding: 0rem 1rem;
}
.Fetch-container {
  align-items: center;
  display: flex;
  flex-flow: column;
}
@keyframes blink {
  0% {
    opacity: 0.2;
  }
  20% {
    opacity: 1;
  }
  100% {
    opacity: 0.2;
  }
}
.Fetch-dot {
  animation-duration: 1.4s;
  animation-fill-mode: both;
  animation-iteration-count: infinite;
  animation-name: blink;
  background-color: var(--turq-dark);
  border-radius: 50%;
  display: inline-block;
  height: 0.5rem;
  width: 0.5rem;
}
.Fetch-loading {
  display: none;
}
.Fetch-loading:nth-child(2) {
  animation-delay: 0.2s;
}
.Fetch-loading:nth-child(3) {
  animation-delay: 0.4s;
}
.Fetch-message,
.Fetch-messageSecondary {
  text-align: center;
}

.SearchResults {
  margin: 0 auto;
  max-width: 60em;
  padding: 2rem 0;
}
.SearchResults-header {
  font-size: 1.875rem;
  margin: 0;
}
.SearchResults-help {
  margin-top: 0.3125rem;
}
.SearchResults-resultCount {
  color: var(--gray-3);
  margin-top: 1.125rem;
  margin-bottom: 0.625rem;
  display: flex;
  justify-content: space-between;
}
.SearchResults-footer {
  display: flex;
  justify-content: flex-end;
}
.Error-gopher,
.EmptyContent-gopher,
.NotFound-gopher,
.SearchResults-emptyContentGopher {
  display: block;
  height: 15rem;
  margin: auto;
  padding: 1.25rem 0;
  width: 15rem;
}
.Error-message,
.EmptyContent-message,
.NotFound-message,
.SearchResults-emptyContentMessage {
  text-align: center;
}
.NotFound-container {
  display: flex;
  justify-content: center;
}
.NotFound-button {
  height: 2.5rem;
  font-size: 1rem;
  border-radius: 1rem;
  background-color: var(--turq-dark);
  color: white;
  padding: 0rem 2rem;
}
.NotFound-button-disabled {
  height: 2.5rem;
  font-size: 1rem;
  border-radius: 1rem;
  background-color: var(--gray-5);
  color: white;
  padding: 0rem 2rem;
}
.SearchSnippet {
  border-top: 0.0625rem solid var(--gray-8);
  padding: 1rem 0;
}
.SearchSnippet:only-of-type,
.SearchSnippet:last-of-type {
  border-bottom: 0.0625rem solid var(--gray-8);
  margin-bottom: 1rem;
}
.SearchSnippet-header {
  margin: 0 0 0.3125rem;
  font-size: 1.5rem;
}
.SearchSnippet-synopsis {
  color: var(--gray-3);
  margin: 0 0 1rem;
}
.SearchSnippet-infoLabel {
  font-size: 0.875rem;
  line-height: 1.375rem;
}
.SearchResults .Pagination-nav,
.SearchResults-help,
.SearchResults-resultCount {
  font-size: 0.875rem;
  flex-wrap: wrap;
}

.Pagination-nav {
  display: flex;
}
.Pagination-navInner {
  display: flex;
  flex: 1;
  justify-content: space-between;
}
.Pagination-previous[aria-disabled='true'],
.Pagination-next[aria-disabled='true'] {
  color: var(--gray-6);
}
.Pagination-number {
  padding: 0 6px;
  color: var(--gray-1);
}

@media only screen and (min-width: 800px) {
  .SearchResults .Pagination-nav,
  .SearchResults-help,
  .SearchResults-resultCount {
    font-size: 1.125rem;
    flex-wrap: wrap;
  }
  .Pagination-navInner {
    max-width: 400px;
  }
  .Pagination-previous {
    margin-right: 12px;
  }
  .Pagination-next {
    margin-left: 12px;
  }
}

.Overview-module {
  border-bottom: 0.0625rem solid var(--gray-8);
  padding-bottom: 2rem;
  padding-top: 0.5rem;
}
.Overview-sourceCode {
  border-bottom: 0.0625rem solid var(--gray-8);
  padding-bottom: 2rem;
}
.Overview-sourceCodeLink {
  margin: 0;
}
.Overview-readme {
  padding-top: 1rem;
}
.Overview-readmeContainer {
  border: 0.0625rem solid var(--gray-8);
  border-radius: 0.5rem;
  height: 100%;
  padding: 1.625rem;
  padding-top: 0.5rem;
}
.Overview-readme img {
  max-width: 100%;
}
.Overview-readme pre {
  overflow-x: auto;
}
.Overview-readmeContent {
  overflow-wrap: break-word;
}
.Overview-readmeSource {
  color: var(--gray-3);
  font-size: 0.875rem;
  text-align: right;
  margin-top: 1.5rem;
  font-style: italic;
}
.DetailsContent {
  min-height: 32rem;
  margin: 0 auto;
  max-width: 60em;
}
.Site--wide .DetailsContent {
  max-width: none;
}
.DetailsContent :target::before {
  content: ' ';
  display: block;
  height: calc(var(--header-height) + 0.75rem);
  margin-top: calc(
    -1 * (var(--header-height) + 0.75rem)
  ); /* Move hidden anchor content for deep linking with a sticky header. */
  pointer-events: none;
  visibility: hidden;
}

.CopyToClipboardButton {
  background-color: transparent;
  border: none;
  cursor: pointer;
  height: 1.5rem;
  margin: 0 0.5rem;
  position: relative;
  width: 1.5rem;
}
.CopyToClipboardButton:not([data-tooltip])::before,
.CopyToClipboardButton:not([data-tooltip])::after,
.CopyToClipboardButton[data-tooltip='']::before,
.CopyToClipboardButton[data-tooltip='']::after {
  display: none;
}
.CopyToClipboardButton::before {
  background-color: rgba(0, 0, 0, 0.75);
  border-radius: 3px;
  color: var(--white);
  content: attr(data-tooltip);
  display: block;
  font-size: 0.9em;
  left: calc(100% + 0.125rem);
  position: absolute;
  padding: 0.25rem 0.3rem;
  text-transform: uppercase;
  top: 2px;
  white-space: nowrap;
  z-index: 1000;
}
.CopyToClipboardButton::after {
  border-bottom: 0.25rem solid transparent;
  border-left: 0;
  border-right: 0.25rem solid rgba(0, 0, 0, 0.75);
  border-top: 0.25rem solid transparent;
  content: '';
  display: block;
  position: absolute;
  right: -0.125rem;
  top: 9px;
  z-index: 1000;
}
.CopyToClipboardButton:hover {
  background-color: var(--gray-9);
}
.CopyToClipboardButton:active {
  background-color: var(--gray-8);
}
.CopyToClipboardButton-image {
  display: block;
  height: 0.9375rem;
  width: 0.8125rem;
}

.DetailsNav {
  align-items: center;
  border-bottom: 0.0625rem solid var(--gray-8);
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  min-width: 0;
  position: relative;
}
.DetailsNav [aria-hidden='true'] {
  display: none;
}
.DetailsNav [role='tablist'] {
  white-space: nowrap;
}
.DetailsNav [role='tab'] {
  color: var(--gray-2);
  display: inline-block;
}
.DetailsNav [role='tab'] + [role='tab'] {
  margin-left: 1rem;
}
.DetailsNav [role='tab'],
.DetailsNav [role='tab']:link,
.DetailsNav [role='tab']:visited {
  border-bottom: 2px solid transparent;
  display: inline-block;
  color: inherit;
  padding: 0.625rem 0.5rem;
}
.DetailsNav [role='tab']:hover {
  border-bottom-color: var(--purple);
  text-decoration: none;
}
.DetailsNav [role='tab'][aria-disabled='true'],
.DetailsNav [role='tab'][aria-disabled='true']:hover {
  border-bottom-color: transparent;
  color: var(--gray-5);
  cursor: not-allowed;
}
.DetailsNav [role='tab'][aria-selected='true'] {
  border-bottom: 2px solid var(--turq-med);
  color: var(--gray-1);
  font-weight: bold;
}
.DetailsNav [role='tab'][aria-hidden='true'] {
  display: none;
}
.DetailsNav-overflowContainer {
  display: none;
  height: 1.5rem;
  position: absolute;
  right: 0;
  top: 0.4375rem;
  width: 1.5rem;
}
.DetailsNav.is-overflowing .DetailsNav-overflowContainer {
  display: block;
}
.DetailsNav-overflowImage {
  fill: var(--gray-3);
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}
.DetailsNav-overflowSelect {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: transparent;
  border: 0;
  color: transparent;
  cursor: pointer;
  font-size: 1rem;
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}
/**
 * Firefox allows for styling of option and optgroup tags.
 * Ensure they don’t inherit the clear styling of their parent.
 */
.DetailsNav-overflowSelect option {
  color: var(--gray-1);
}

.DetailsNavFixed {
  background-color: var(--gray-10);
  border-bottom: 1px solid var(--gray-8);
  height: var(--header-height);
  position: fixed;
  top: 0;
  left: 0;
  transition: transform 100ms linear;
  width: 100%;
  z-index: 1000;
}
.DetailsNavFixed[aria-hidden='true'] {
  transform: translateY(calc(var(--header-height) * -1));
}
.DetailsNavFixed [aria-hidden='true'] {
  display: none;
}
.DetailsNavFixed-container {
  align-items: center;
  display: flex;
  height: 100%;
  margin: 0 auto;
  max-width: 75.75rem;
  padding: 0 0.5rem;
  position: relative;
}
.Site--wide .DetailsNavFixed-container {
  max-width: none;
}
.DetailsNavFixed-logoLink {
  margin-right: 1rem;
}
.DetailsNavFixed-logo {
  display: block;
  height: 1.695625;
  width: 4.5rem;
}
.DetailsNavFixed-moduleInfo {
  align-items: baseline;
  display: flex;
  flex-wrap: nowrap;
  margin-right: 3rem;
  min-width: 0;
}
.DetailsNavFixed-title {
  font: 600 1.125rem/1.5 'Work Sans', arial, sans-serif;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.DetailsNavFixed-titleType {
  display: none;
}
.DetailsNavFixed-titleType--small {
  display: inline;
}
@media only screen and (min-width: 25rem) {
  .DetailsNavFixed-titleType {
    display: inline;
  }
  .DetailsNavFixed-titleType--small {
    display: none;
  }
}
.DetailsNavFixed .CopyToClipboardButton {
  top: 0.1875rem;
}
.DetailsNavFixed-pathInput {
  left: -100vw;
  position: absolute;
  top: -100vh;
}
.DetailsNavFixed-version {
  color: var(--gray-2);
  font-size: 0.6875rem;
  position: relative;
}
@media only screen and (min-width: 37.5rem) {
  .DetailsNavFixed-container {
    padding: 0 1rem 0 1.5rem;
  }
  .DetailsNavFixed-logo {
    height: 1.9541rem;
    width: 5.1875rem;
  }
  .DetailsNavFixed-title {
    font-size: 1.5rem;
  }
  .DetailsNavFixed .CopyToClipboardButton {
    top: 0.0625rem;
  }
  .DetailsNavFixed-version {
    top: -0.125rem;
  }
}
.DetailsNavFixed-overflowingTabList {
  display: flex;
  flex: 1;
  height: 100%;
  min-width: 0;
  position: relative;
}
.DetailsNavFixed [role='tablist'] {
  display: flex;
  flex: 1;
  height: 100%;
  justify-content: flex-end;
  margin: 0;
  padding: 0;
}
.DetailsNavFixed [role='tab'] + [role='tab'] {
  margin-left: 1rem;
}
.DetailsNavFixed [role='tab'] {
  border-bottom: 0.25rem solid transparent;
  display: block;
  height: 100%;
  padding: 1.3125rem 0.5rem 0 0.5rem;
  white-space: nowrap;
}
.DetailsNavFixed [role='tab']:hover {
  border-bottom-color: var(--purple);
  text-decoration: none;
}
.DetailsNavFixed [role='tab'][aria-selected='true'] {
  border-bottom-color: var(--turq-dark);
}
.DetailsNavFixed [role='tab'][aria-hidden='true'] {
  display: none;
}
.DetailsNavFixed [role='tab'][aria-disabled='true'],
.DetailsNavFixed [role='tab'][aria-disabled='true']:hover {
  border-bottom-color: transparent;
  color: var(--gray-5);
  cursor: not-allowed;
}
.DetailsNavFixed-overflowContainer {
  display: none;
  height: 1.5rem;
  position: absolute;
  right: 0.0625rem;
  top: 1.125rem;
  width: 1.5rem;
}
.DetailsNavFixed-overflowingTabList.is-overflowing {
  padding-right: 1.5rem;
}
.DetailsNavFixed-overflowingTabList.is-overflowing .DetailsNavFixed-overflowContainer {
  display: block;
}
.DetailsNavFixed-overflowImage {
  fill: var(--gray-3);
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}
.DetailsNavFixed-overflowSelect {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: transparent;
  border: 0;
  color: transparent;
  cursor: pointer;
  font-size: 1rem;
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}
.DetailsNavFixed-overflowSelect option {
  color: var(--gray-1);
}

.Container {
  color: var(--gray-1);
  margin: 0 auto;
  max-width: 60em;
  position: relative;
}
.Site--wide .Container {
  max-width: none;
}
.GodocButton,
.GodocButton:link,
.GodocButton:visited {
  border: 0.0625rem solid var(--gray-8);
  border-radius: 0.1875rem;
  cursor: pointer;
  display: block;
  font-size: 14px;
  font-weight: bold;
  margin: 1rem 0;
  padding: 0.5rem 1.25rem;
  text-align: center;
}
.GodocButton:hover {
  text-decoration: none;
}
.GodocButton[href=''],
.GodocButton:link[href=''],
.GodocButton:visited[href=''] {
  display: none;
}
@media only screen and (min-width: 57.7rem) {
  .GodocButton,
  .GodocButton:link,
  .GodocButton:visited {
    display: inline-block;
    margin: 0;
    position: absolute;
    right: 0;
    top: 0;
  }
}
.Content {
  min-height: 32rem;
  margin: 0 auto;
  max-width: 60em;
  padding: 2rem 0;
}
.Content-header {
  margin: 0;
  font-size: 1.875rem;
}
.Content h2 {
  margin: 0;
}
.Content p {
  color: var(--gray-3);
}

.License-contents {
  background-color: var(--gray-10);
  border: 0.0625rem solid var(--gray-8);
  border-radius: 3px;
  font: 0.875rem/1.375rem 'Source Code Pro', monospace;
  margin: 0;
  overflow-x: auto;
  padding: 1.5rem;
  tab-size: 4;
}
.License-source {
  font-size: 0.875rem;
  color: var(--gray-3);
  padding-top: 0.5rem;
}
.Disclaimer-link {
  font-style: italic;
}

.DocNav,
.DocNavMobile {
  display: none;
}
.DocNav-files {
  /* This property will be removed once the documentation has been reprocessed
     and "Package Files" is listed in the left side nav.*/
  display: none;
}
/**
 * Some versions of the doc template have DocNav also on elements with these
 * classes, which we don’t want to hide unless the sidenav experiment is active.
 * TODO: Remove once HTML has been transitioned to use new markup.
 */
.Documentation-nav.DocNav,
.Documentation-toc.DocNav {
  display: block;
}

.Documentation {
  color: var(--gray-1);
}
.Documentation h2,
.Documentation h3 {
  font-size: 1.5rem;
}
.Documentation a {
  color: var(--turq-dark);
  text-decoration: none;
}
.Documentation a:hover {
  text-decoration: underline;
}
.Documentation h2 a,
.Documentation h3 a,
.Documentation summary a {
  opacity: 0;
}
.Documentation a:focus {
  opacity: 1;
}
.Documentation h3 a.Documentation-source {
  opacity: 1;
}
.Documentation h2:hover a,
.Documentation h3:hover a,
.Documentation summary:hover a,
.Documentation summary:focus a {
  opacity: 1;
}
.Documentation ul {
  line-height: 1.5rem;
  list-style: none;
  padding-left: 0;
}
.Documentation ul ul {
  padding-left: 2em;
}
.Documentation code,
.Documentation pre {
  background-color: var(--gray-10);
  border-radius: 0.3em;
  border: 0.0625rem solid #ccc;
  font: 0.875rem/1.375rem 'Source Code Pro', monospace;
  margin: 0;
  overflow-x: auto;
  padding: 0.625rem;
  tab-size: 4;
  line-height: 1.25rem;
}
.Documentation pre + pre {
  margin-top: 0.625rem;
}
.Documentation pre .comment {
  color: #060;
}

.Documentation-toc,
.Documentation-overview,
.Documentation-index,
.Documentation-examples {
  padding-bottom: 0;
}
.Documentation-empty {
  color: var(--gray-3);
  margin-top: -0.5rem;
}

.Documentation-tocItem--constants,
.Documentation-tocItem--funcsAndTypes,
.Documentation-tocItem--functions,
.Documentation-tocItem--types,
.Documentation-tocItem--variables,
.Documentation-tocItem--notes {
  display: none;
}

.Documentation-overviewHeader,
.Documentation-indexHeader,
.Documentation-constantsHeader,
.Documentation-variablesHeader,
.Documentation-examplesHeader,
.Documentation-filesHeader,
.Documentation-functionHeader,
.Documentation-typeHeader,
.Documentation-typeMethodHeader,
.Documentation-typeFuncHeader {
  margin-bottom: 0.5rem;
}

.Documentation-build {
  color: var(--gray-3);
  font-size: 0.875rem;
  padding-top: 1.5rem;
  text-align: right;
}
.Documentation-exampleButtonsContainer {
  align-items: center;
  display: flex;
  justify-content: flex-end;
  margin-top: 0.5rem;
}
.Documentation-exampleButtonsContainer button {
  background-color: var(--white);
  border: 0.15rem solid var(--turq-med);
  color: var(--turq-med);
  cursor: pointer;
  flex-shrink: 0;
  height: 2.5rem;
  width: 4.125rem;
}
.Documentation-exampleDetails {
  margin-top: 1rem;
}
.Documentation-exampleDetailsBody pre {
  margin: 1rem 0;
}
/**
 * We add another selector here to these two classes to increase CSS specificity,
 * the selector .Documentation pre + pre overrides .Documentation-exampleCode
 * and .Documentation-exampleOutput by itself and would replace the styles.
 */
.Documentation-exampleDetailsBody .Documentation-exampleCode {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  margin: 0;
}
.Documentation-exampleDetailsBody .Documentation-exampleOutput {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
  margin: 0 0 0.5rem;
}
.Documentation-exampleDetailsHeader {
  color: var(--turq-dark);
  cursor: pointer;
  margin-bottom: 2rem;
  outline: none;
  text-decoration: none;
}
.Documentation-exampleError {
  color: var(--pink);
  margin-right: 0.4rem;
  padding-right: 0.5rem;
}
.Documentation-examplePlayButton::after {
  background-image: url(/static/img/icon-launch.svg);
  background-repeat: no-repeat;
  background-size: 0.875rem 1.25rem;
  content: '';
  display: inline-block;
  height: 1rem;
  left: 0.3125rem;
  position: relative;
  top: 0.125rem;
  width: 1rem;
}
.Documentation-filesList {
  column-count: 3;
  column-width: 12.5rem;
  word-break: break-all;
}

.Versions-list {
  list-style: none;
  padding-left: 1rem;
}
.Versions-list li {
  font-size: 1.125rem;
  margin-bottom: 0.5rem;
  line-height: 1.5rem;
  padding-left: 1rem;
}
.Versions-item {
  margin-left: 1rem;
}
.Versions-commitTime {
  color: var(--gray-3);
  font-weight: 400;
  font-size: 1rem;
}
.Versions-modulePath {
  color: var(--gray-3);
  font-size: 1rem;
  font-family: Roboto, Arial, sans-serif;
  font-weight: normal;
}
.Versions-separator {
  border-bottom: 0.0625rem solid var(--gray-8);
  margin: 2rem 0;
}

.Imports-list {
  list-style: none;
  padding: 0;
}
.Imports-heading {
  font-size: 1.125rem;
  line-height: 1.125rem;
}

.ImportedBy-list {
  list-style: none;
  padding: 0;
}
.ImportedBy .Pagination-nav,
.ImportedBy .Pagination-navInner {
  justify-content: flex-start;
}

.DetailsHeader-infoLabel {
  font-size: 0.875rem;
  line-height: 1.375rem;
  margin: 0.5rem 0;
}
.DetailsHeader-infoLabelTitle {
  color: var(--gray-1);
}
.DetailsHeader-infoLabelDivider {
  color: var(--gray-5);
  display: inline-block;
  margin: 0 0.625rem;
}

table.Directories {
  margin-top: 1.5rem;
  max-width: 800px;
}
.Directories td {
  border-bottom: 0.0625rem solid var(--gray-8);
  max-width: 30rem;
  padding: 0.75rem 0;
  padding-right: 1rem;
}
.Directories th {
  text-align: left;
  border-bottom: 0.0625rem solid var(--gray-8);
  padding-right: 1rem;
  padding-bottom: 0.5rem;
}
.Directories-moduleTag {
  background-color: var(--blue);
  border-radius: 0.15rem;
  color: var(--gray-1);
  font-size: 0.74rem;
  padding: 0.2rem 0.4rem;
}
.Directory-header {
  margin-bottom: 2rem;
}

.Details-content {
  margin-left: 40px;
}
.Details-indent {
  margin-left: 1.1rem;
}

.Badge-formElement {
  display: block;
  font-size: 1rem;
  margin-top: 1rem;
}
.Badge-badgeIcon {
  height: 20px;
  width: 90px;
}
.Badge-previewLink,
.Badge-formElement > input {
  display: block;
  margin-top: 1rem;
  max-width: 50.25rem;
}
.Badge-formElement > input {
  border: 0.0625rem solid var(--gray-8);
  border-radius: 0.25rem;
  color: var(--gray-4);
  font-family: inherit;
  height: 3rem;
  padding: 0 2rem 0 0.75rem;
  text-overflow: ellipsis;
  width: 100%;
}
.Badge-formElement > input:focus::placeholder {
  color: transparent;
}
.Badge-clickToCopy {
  background: var(--gray-10) url('/static/img/copy-click.svg') right no-repeat;
  background-position: right 0.75rem center;
}
.Badge-submitButton {
  border: none;
  border-radius: 0.25rem;
  background-color: var(--turq-dark);
  color: var(--white);
  cursor: pointer;
  font-family: inherit;
  height: 2.75rem;
  width: 7.125rem;
}
.Badge-snippetContainer {
  background-color: var(--gray-10);
  display: block;
  margin-top: 1rem;
  max-width: 50.25rem;
  padding: 1rem;
}
.Badge-gopherLanding {
  height: 12.25rem;
  text-align: center;
}
.Badge-gopherLanding img {
  height: 125px;
  width: auto;
}

/* dialogs, including the jump-to-identifier dialog on documentation pages */

.Dialog {
  padding: 0;
  border: 0.0625rem solid rgba(0, 0, 0, 0.2);
  border-radius: 6px;
  box-shadow: 0 0.3125rem 0.9375rem rgba(0, 0, 0, 0.5);
}
.Dialog-title {
  font-size: 1.125rem;
  padding: 0 0.8rem;
}
.Dialog-actions {
  text-align: right;
  padding: 0.8rem;
}
.Dialog-button {
  background: none;
  border-radius: 0.625rem;
  border: 0.0625rem solid var(--gray-8);
  color: var(--turq-dark);
  font-size: 1rem;
  max-width: 6.25rem;
  padding: 0.625rem;
  text-align: center;
}

.JumpDialog {
  width: 25rem;
}
.JumpDialog-body {
  height: 12rem;
  overflow-y: scroll;
  padding: 0 0 0 0.8rem;
}
.JumpDialog-list {
  display: flex;
  flex-direction: column;
}
.JumpDialog-filter {
  margin: 0.5rem 0.8rem;
}
.JumpDialog-input {
  width: 100%;
  font-size: 1.125rem;
}
.JumpDialog a {
  text-decoration: none;
  padding: 0.25rem;
}
.JumpDialog .JumpDialog-active {
  color: var(--white);
  background-color: var(--turq-dark);
}

.ShortcutsDialog-key {
  text-align: right;
}
.ShortcutsDialog table {
  padding: 0 1rem;
}

.ImageButton {
  border: none;
  border-radius: 0.2rem;
  cursor: pointer;
  background-color: transparent;
  padding: 0.2rem 0.375rem;
  background-color: transparent;
  display: inline-flex;
}
.ImageButton:hover {
  background-color: var(--gray-9);
}
.ImageButton:active {
  background-color: var(--gray-8);
}

.Site-footer {
  background-color: var(--slate);
  color: var(--white);
  font-size: 0.875rem;
}
.Footer-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin: auto;
  max-width: 75.75rem;
  padding: 2rem 1.5rem 2.625rem 1.5rem;
}
.Footer-linkColumn {
  flex: 0 0 9.5rem;
}
a.Footer-link {
  color: var(--white);
  display: flex;
  flex: 1;
  font-size: 0.875rem;
  line-height: 2rem;
}
a.Footer-link--primary {
  font-size: 1.125rem;
  line-height: 1.75rem;
  margin-bottom: 0.5rem;
  margin-top: 0.75rem;
}
.Footer-bottom {
  align-items: center;
  border-top: 0.0625rem solid var(--gray-8);
  display: flex;
  margin: 0 1.5rem;
  min-height: 4.125rem;
}
.Footer-gopher {
  align-self: flex-end;
  height: 3.147rem;
  width: 5rem;
}
.Footer-listRow {
  display: flex;
  flex: 1;
  flex-wrap: wrap;
  list-style: none;
  margin: 0;
  padding: 0;
  text-align: center;
}
.Footer-listItem {
  align-items: center;
  display: flex;
  flex: 1 100%;
  justify-content: center;
  margin: 0.4rem 0;
  padding: 0 1rem;
}
.Footer-listItem a:link,
.Footer-listItem a:visited {
  color: var(--white);
}
@media only screen and (min-width: 52rem) {
  .Footer-listItem {
    flex: initial;
  }
  .Footer-listItem + .Footer-listItem {
    border-left: 0.0625rem solid var(--gray-7);
  }
}
.Footer-feedbackButton {
  background: none;
  border: none;
  color: var(--white);
  font-size: 0.875rem;
  padding: 0;
}
.Footer-feedbackButton:hover {
  cursor: pointer;
  text-decoration: underline;
}
.Footer-googleLogo {
  align-self: flex-end;
  height: 1.5rem;
  margin-bottom: 1.3rem;
  text-align: right;
}
.Footer-googleLogoImg {
  height: 1.5rem;
  width: 4.529rem;
}
.Container--fullBleed {
  margin: 0;
  max-width: none;
}
