/*!
 * 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.
 */
.UnitMeta{display:grid;gap:1rem 2rem;grid-template-columns:max-content auto;white-space:nowrap}.UnitMeta-details,.UnitMeta-links{display:flex;flex-flow:wrap;flex-direction:row;gap:1rem 2rem}.UnitMeta-repo{align-items:center;display:flex}.UnitMeta-repo a{overflow:hidden;text-overflow:ellipsis}@media (min-width: 50rem){.UnitMeta{grid-template-columns:max-content auto}.UnitMeta-details,.UnitMeta-links{flex-direction:row}}@media (min-width: 112rem){:root[data-layout=responsive] .UnitMeta{grid-template-columns:100%}:root[data-layout=responsive] .UnitMeta-details,:root[data-layout=responsive] .UnitMeta-links{flex-direction:column;white-space:nowrap}}.UnitMeta-detailsLearn{width:100%}@media (min-width: 50rem){.UnitMeta-detailsLearn{width:initial}}.StyleGuide{background-color:var(--color-background)}.StyleGuide>section{align-items:center;display:grid;gap:1rem 2rem;grid-template-columns:100%;margin-bottom:1rem}.StyleGuide>section>header{border-bottom:var(--border);grid-column:1/-1;margin-bottom:1rem;padding-bottom:1rem}.StyleGuide>section>h2{grid-column:1/-1;width:max-content}.StyleGuide>section>hr{grid-column:1/-1}.StyleGuide>section>h3{grid-column:1/-1;margin:1rem 0}.StyleGuide>section>p{grid-column:1/-1}.StyleGuide .Color,.StyleGuide .ColorIntent{grid-template-columns:repeat(auto-fit,5rem [col-start] minmax(12rem,auto) [col-end])}.StyleGuide .Outline{align-items:flex-start}.StyleGuide .Outline>span{margin-top:.5rem}@media (min-width: 80rem){.StyleGuide .Icon{grid-template-columns:10rem 8rem auto}.StyleGuide .Typography,.StyleGuide .Button,.StyleGuide .Form,.StyleGuide .Modal,.StyleGuide .Message,.StyleGuide .Breadcrumb,.StyleGuide .Chip,.StyleGuide .Tooltip,.StyleGuide .Outline,.StyleGuide .Clipboard{grid-template-columns:20rem auto}}@media (min-width: 112rem){.StyleGuide .Icon{grid-template-columns:10rem auto 50%}.StyleGuide .Typography,.StyleGuide .Button,.StyleGuide .Form,.StyleGuide .Modal,.StyleGuide .Message,.StyleGuide .Breadcrumb,.StyleGuide .Chip,.StyleGuide .Tooltip,.StyleGuide .Outline,.StyleGuide .Clipboard{grid-template-columns:auto 50%}}.StringifyElement{align-items:baseline;display:flex;flex-direction:column;gap:1rem;padding:.25rem}.ElementMarkup>pre,.StringifyElement-markup{color:var(--color-text-subtle);font-size:.875rem;margin-top:.5rem;max-width:100%;padding-left:2rem;position:relative}.ElementMarkup>pre:before,.StringifyElement-markup:before{background:url(/static/shared/icon/content_copy_gm_grey_24dp.svg);background-repeat:no-repeat;background-size:contain;content:" ";left:.5rem;padding-left:1rem;position:absolute;width:1rem}.StringifyElement-markup:active{filter:contrast(.9)}.StringifyElement-details{color:var(--color-text-subtle);font-size:.8125rem;overflow-x:auto}.GoColor-circle{background-color:var(--color);border:var(--border);border-radius:2rem;height:3rem;margin:auto auto .5rem;width:3rem}.GoIcon-title,.GoColor-title{text-transform:capitalize}.go-Main-navDesktop a+ul{text-transform:capitalize}.MainHeader-toggle{display:flex}
/*# sourceMappingURL=styleguide.min.css.map */
