/* Material icon: https://developers.google.com/fonts/docs/material_icons */
/* Icon library: https://fonts.google.com/icons */
.material-icons {
    font-family: 'Material Icons';
    font-weight: normal;
    font-style: normal;
    font-size: 24px;  /* Preferred icon size */
    display: inline-block;
    line-height: 1;
    text-transform: none;
    letter-spacing: normal;
    word-wrap: normal;
    white-space: nowrap;
    direction: ltr;

    /* Support for all WebKit browsers. */
    -webkit-font-smoothing: antialiased;
    /* Support for Safari and Chrome. */
    text-rendering: optimizeLegibility;

    /* Support for Firefox. */
    -moz-osx-font-smoothing: grayscale;

    /* Support for IE. */
    font-feature-settings: 'liga';
}

/* Global font */
body, input {
    font-family: "Roboto", "Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
}

code, kbd, pre {
    font-family: "Roboto Mono", "Consolas", "Courier New", Courier, monospace;
}

h1, h2, h3, h4, .md-header, .md-tabs, .md-hero {
    font-family: "Google Sans", "Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
}

/* Title font */
@media only screen and (min-width: 45em) {
    .md-header-nav__title {
        font-weight: 500;
    }
}

.md-typeset h4, .md-typeset h5, .md-typeset h6 {
    font-weight: 600;
}

/* viewcode link should have left padding */
span.viewcode-link {
    padding-left: 0.6rem;
}

/* adding an eyebrow for API references */
dt.sig-object {
    position: relative;
    background: #f4f5f7;
    padding: 0.5rem;
    border-left: 0.2rem solid var(--custom-color-accent);  /* this should be matched with theme color. */
    word-wrap: break-word;
}

.class > dt.sig-object {
    border-left: none;                    /* remove left border */
    border-top: 0.18rem solid var(--custom-color-accent);  /* this should be matched with theme color. */
}

.function > dt.sig-object {
    border-left: none;                    /* remove left border */
    border-top: 0.18rem solid var(--custom-color-accent);  /* this should be matched with theme color. */
}

.exception > dt.sig-object {
    border-left: none;                    /* remove left border */
    border-top: 0.18rem solid var(--custom-color-accent);  /* this should be matched with theme color. */
}

/* Padding on parameter list is not needed */
dl.field-list > dt {
    padding-left: 0 !important;
}

dl.field-list > dd {
    margin-left: 1.5em;
}

/* show headerlink when hover/focus */
.headerlink:focus, .headerlink:hover {
    -webkit-transform: translate(0);
    transform: translate(0);
    opacity: 1;
}

/* logo is too large */
a.md-logo img {
    padding: 3px;
}

/* Add split for navigation */
nav.md-tabs .md-tabs__item:not(:last-child) {
    padding-right: 0;
}

nav.md-tabs .md-tabs__item:not(:last-child) .md-tabs__link:after {
    content: "»";
    font-family: "Material Icons";
    padding-left: 0.6rem;
}

/* hide the floating button generated by readthedocs */
.rst-versions.rst-badge {
    display: none !important;
}

/* Add some margin between main content and footer */
.md-footer {
    margin-top: 1rem;
}

/* make footer appearing inline */
.md-footer-copyright__highlight {
    display: inline;
}

/* toc style */
li.md-nav__item:not(:first-child) span.caption {
    margin-top: 1.25em;
}

.md-nav__title.md-nav__title--site {
    margin-bottom: 1.25em;
}

/* hide nav bar in some cases */
.md-tabs.hidden {
    display: none;
}

/* citation style */
.citation dt {
    padding-right: 1em;
}

/* inline code style */
.md-typeset code {
    padding-left: 0.07em;
    padding-right: 0.07em;
}

/* for release icon, on home page */
.release-icon {
    margin-left: 8px;
    width: 40px;
}

/* Similar to cardlink, but used in codesnippet in index page. see sphinx_gallery.css */
.codesnippet-card-container {
    display: flex;
    flex-flow: wrap row;
}

.codesnippet-card.admonition {
    border-left: 0;
    padding: 0;
    margin: .5rem 1rem 1rem 0rem;
    width: 100%;
}

/* Controlling the cards in containers only */
.codesnippet-card-container .codesnippet-card.admonition {
    width: 47%;
}

@media only screen and (max-width:59.9375em) {
    .codesnippet-card-container .codesnippet-card.admonition {
        width: 100%;
    }
}

.codesnippet-card .codesnippet-card-body {
    min-height: 4rem;
    position: relative;
    padding: 0.9rem 0.9rem 3rem 0.9rem;
}

.codesnippet-card .codesnippet-card-footer {
    padding: 0.8rem 0.9rem;
    border-top: 1px solid #ddd;
    margin: 0 !important;
    position: absolute;
    bottom: 0;
    width: 100%;
}

.codesnippet-card a:not(:hover) {
    color: rgba(0, 0, 0, .68);
}

.codesnippet-card-title-container {
    margin-top: 0.3rem;
    position: relative;
}

.codesnippet-card-title-container h4 {
    padding-left: 2.3rem;
    line-height: 1.6rem;
    height: 1.6rem;
    margin-top: 0;
}

.codesnippet-card-icon {
    position: absolute;
    top: 0;
    left: 0;
}

.codesnippet-card-icon img {
    max-width: 100%;
    max-height: 100%;
    /* horizontal and vertical center */
    /* https://stackoverflow.com/questions/7273338/how-to-vertically-align-an-image-inside-a-div */
    text-align: center;
    vertical-align: middle;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto;
}

.codesnippet-card-icon {
    width: 1.6rem;
    height: 1.6rem;
    padding: 0;
}

.codesnippet-card-link {
    position: relative;
}

.codesnippet-card-link .material-icons {
    position: absolute;
    right: 0;
}

/* fixes reference overlapping issue */
/* This is originally defined to be negative in application_fixes.css */
/* They did that to ensure the header doesn't disappear in jump links */
/* We did this by using scroll-margin-top instead */
dt:target {
    margin-top: 0.15rem !important;
    padding-top: 0.5rem !important;
}

:target {
    /* header height */
    scroll-margin-top: 3.5rem;
}

/* fix code block style on mobile */
@media only screen and (max-width: 44.9375em) {
    .md-typeset pre {
        margin: 1em -0.3em;
    }
}

/* Responsive nav bar */
.md-source__fact {
    padding: 0 !important;
}

@media only screen and (max-width:76.1875em) {
    .md-nav--primary .md-nav__link {
        padding: .15rem .5rem;
    }
    .md-nav--primary span.md-nav__link.caption {
        margin-top: 0.75em;
    }
    .md-nav--primary .md-nav__item .md-nav__list .md-nav__item {
        padding-left: .3rem;
    }
    html .md-nav--primary .md-nav__title--site .md-nav__button {
        height: auto;
        font-size: inherit;
    }
    html .md-nav--primary .md-nav__title {
        padding-top: 2rem;
        height: 4.6rem;
    }
}

/* Increase TOC padding */
.md-nav--primary ul li ul li {
    padding-left: 0.8rem;
}

/* Nav bar and heroes */
@media only screen and (min-width:60em) {
    .md-search__form, .md-search__input {
        border-radius: .3rem;   /* even rounder */
    }
}

.md-header-nav__source, .md-source {
    padding-right: 0 !important;
}

.md-hero {
    position: relative;
}

.md-hero__background {
    max-width: 73rem;
    position: absolute;
    bottom: -46px;
    left: 0;
    right: 0;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    z-index: 0;
}

.md-hero__background img {
    width: 100%;
}

@media only screen and (max-width:59.9375em) {
    .md-hero__background {
        display: none;
    }
}

@media only screen and (max-width:76.1875em) {
    .md-hero__background {
        bottom: -5%;
        top: auto;
    }
}

.md-hero__inner {
    z-index: 1;
    position: relative;
    padding-right: 35%;
}

@media only screen and (min-width:76.2em) {
    .md-hero__inner {
        padding-top: 2.4rem;
        padding-bottom: 1.2rem;
    }
}

/* make title look larger */
.md-typeset h1 {
    margin: 0 0 1.5rem;
    color: rgba(0,0,0,.85);
    font-size: 1.5625rem;
    line-height: 1.3;
}

.md-typeset h1, .md-typeset h2, .md-typeset h3 {
    font-weight: 400;
    letter-spacing: 0;
}

/* Enlarge table */
.md-typeset table:not([class]) {
    font-size: 0.7rem;
    box-shadow: 0 2px 2px 0 rgb(0 0 0 / 8%), 0 1px 5px 0 rgb(0 0 0 / 7%), 0 3px 1px -2px rgb(0 0 0 / 14%);
}

.md-typeset table:not([class]) th {
    padding: .5rem .7rem;
    background-color: #e6e7e8;
    color: inherit;
    font-weight: 500;
}

.md-typeset table:not([class]) td {
    padding: .4rem .7rem;
}

/* On this page TOC */
.md-sidebar--secondary .md-nav--secondary {
    border-inline-start: 4px solid var(--custom-color-primary);
}

.md-nav__link {
    margin-top: 0.45em;
}

/* Override style for copy button */
button.copybtn {
    opacity: 1;
}

.o-tooltip--left:after {
    transform: translateX(-5%) translateY(-125%);
    padding: .4em;
    font-size: .5rem;
    font-weight: 600;
    background: #5f6368;
}

.o-tooltip--left:hover:after {
    transform: translateX(-5%) translateY(-120%);
}

/* Sphinx tabs */
/* Copied from https://github.com/executablebooks/sphinx-tabs/blob/master/sphinx_tabs/static/tabs.css with modifications */
.sphinx-tabs.container {
    margin-bottom: 1rem;
    border: 1px solid rgb(232, 234, 237);
    border-radius: 8px;
}

[role="tablist"] {
    padding: .3rem 0 0 0;
    border-bottom: 1px solid #a0b3bf;
}

.sphinx-tabs-tab {
    position: relative;
    line-height: 2rem;
    font-weight: 600;
    padding: 0 1rem;
    color: #80868b;
}

.sphinx-tabs-tab[aria-selected="true"] {
    color: #3f51b5;                     /* primary color */
    border-bottom: 2px solid #3f51b5;
}

.sphinx-tabs-tab:focus {
    z-index: 1;
    outline-offset: 1px;
}

.sphinx-tabs-panel {
    position: relative;
    padding: 1rem;
}

.sphinx-tabs-panel.code-tab {
    padding: 0;
}

.sphinx-tabs-panel.code-tab .highlight {
    margin: 0;
    padding: .5rem;
}

.sphinx-tab img {
    margin-bottom: 2rem;
}
