/*
 * Define colors
 */

:root,
:root[data-theme='dark'] {
    --color-text-disabled: #8d96a0;
    --color-text-private: #a28a8a;
    --color-text-protected: #93937c;
    --color-accent-secondary: #f8444d;
    --tag-color-accent: #8d96a0;
    --tag-color-private: #a40009;
    --tag-color-protected: #cf4500;
    --tag-color-internal: #555555;
    --tag-color-optional: #1d60d3;
    --tag-color-rest: #038d6b;
}

:root[data-theme='light'] {
    --color-text-disabled: #636c76;
    --color-text-private: #755a5a;
    --color-text-protected: #777758;
    --color-accent-secondary: #f7232d;
    --tag-color-accent: #404040;
    --tag-color-private: #f9a3a8;
    --tag-color-protected: #ffc8ac;
    --tag-color-internal: #ababab;
    --tag-color-optional: #99befe;
    --tag-color-rest: #71e5c9;
}

/* Enable and improve smooth scrolling */
html {
    scroll-behavior: smooth;
}
.tsd-anchor {
    top: -55px;
}

/* Arrange sidebar margins */
.col-sidebar .site-menu,
.col-sidebar .page-menu .tsd-navigation.settings ,
.col-content .tsd-panel.tsd-typography > h1.tsd-anchor-link:first-of-type {
    margin-top: 0;
}
.col-content .tsd-panel.tsd-typography > h1.tsd-anchor-link:first-of-type {
    padding-top: -0.3rem;
}

/* Add toolbar icon support */
.tsd-page-toolbar .tsd-toolbar-contents .table-cell.ready {
    flex: 1;
}
.tsd-toolbar-icon-link {
    align-self: center;
}
.tsd-toolbar-icon {
    width: 30px;
    align-self: center;
    margin-right: 0.5rem;
}
:root[data-theme='dark'] .tsd-icon-inverted {
    -webkit-filter: invert(.75); /* safari 6.0 - 9.0 */
    filter: invert(.75);
}
@media(prefers-color-scheme: dark) {
    :root[data-theme='os'] .tsd-icon-inverted {
        -webkit-filter: invert(.75); /* safari 6.0 - 9.0 */
        filter: invert(.75);
    }
}

/* Improve headings */
.tsd-page-header .tsd-breadcrumb {
    margin-bottom: 1rem;
}
.tsd-page-header .tsd-tag {
    font-size: 85%;
}

/* Make index box */
.tsd-panel-group.tsd-index-group {
    margin: 2rem 0;
    border: 1px solid var(--color-accent);
    border-radius: 1rem;
    padding: 0 1rem;
}
.tsd-panel-group.tsd-index-group .tsd-index-panel {
    margin-bottom: 0;
}
.tsd-panel-group.tsd-index-group .tsd-index-panel .tsd-accordion {
    margin: 0;
}
.tsd-panel-group.tsd-index-group .tsd-index-heading {
    margin-top: 0.75rem;
}
.tsd-panel-group.tsd-index-group .tsd-index-section {
    margin-bottom: 1.75rem;
}

/* Enhance reading by padding content */
.col-content .tsd-panel p,
.col-content .tsd-panel ul, .col-content .tsd-panel ol {
    margin-left: 2rem;
}
.col-content .tsd-panel .tsd-sources ul,
.col-content .tsd-panel .tsd-sources ol {
    margin-left: 0;
}
.col-content .tsd-panel .tsd-sources {
    margin-top: 2rem;
}

/* Improve parameters reading and display */
.tsd-parameter-description .tsd-parameter-tags {
    margin-bottom: 0.5rem;
}
.tsd-parameter-description {
    padding-bottom: 1rem;
}
.tsd-parameter-description:not(:first-child) {
    padding-top: 1rem;
    border-top: 1px solid var(--color-accent);
}
.tsd-parameter-description::marker {
    content: '';
}

/* Make members display accordingly to parameters */
.tsd-panel.tsd-member {
    margin: 0;
}
.tsd-panel.tsd-member:not(:first-child) {
    padding-top: 2rem;
}
.tsd-panel.tsd-member:not(:last-child) {
    padding-bottom: 2rem;
    border-bottom: 1px solid var(--color-accent);
}
.tsd-member .tsd-member-tags {
    margin-top: 0.5rem;
}
.tsd-member .tsd-anchor-link {
    margin-top: 0.75rem;
}

/* Shadowing on privates, protected and internal */
.tsd-is-private > .tsd-kind-icon,
.tsd-is-private > .tsd-accordion-summary .tsd-kind-icon,
.tsd-is-protected > .tsd-kind-icon,
.tsd-is-protected > .tsd-accordion-summary .tsd-kind-icon,
.tsd-is-internal > .tsd-kind-icon,
.tsd-is-internal > .tsd-accordion-summary .tsd-kind-icon {
    opacity: 50%;
}
.tsd-is-private > .tsd-kind-icon ~ span,
.tsd-is-private > .tsd-accordion-summary .tsd-kind-icon ~ span {
    color: var(--color-text-private);
}
.tsd-is-protected > .tsd-kind-icon ~ span,
.tsd-is-protected > .tsd-accordion-summary .tsd-kind-icon ~ span {
    color: var(--color-text-protected);
}
.tsd-is-internal > .tsd-kind-icon ~ span,
.tsd-is-internal > .tsd-accordion-summary .tsd-kind-icon ~ span {
    color: var(--color-text-disabled);
}

/* Private remarks highlight */
.tsd-private-remarks {
    color: var(--color-accent-secondary);
}

/* Inherited symbol before the element */
.tsd-panel.tsd-member.tsd-is-inherited .tsd-anchor-link span:before,
.tsd-accordion-details .tsd-is-inherited:before,
.tsd-index-list .tsd-is-inherited:before {
    content: '▲';
    font-size: 80%;
    margin-right: 0.3rem;
}

/* Code signatures */
.tsd-member .tsd-signature {
    border-width: 1px 0;
}

/* Tag colors */
code.tsd-tag {
    border-color: var(--tag-color-accent);
}
.tsd-tag.tsd-tag-private {
    background-color: var(--tag-color-private);
}
.tsd-tag.tsd-tag-protected {
    background-color: var(--tag-color-protected);
}
.tsd-tag.tsd-tag-internal {
    background-color: var(--tag-color-internal);
}
.tsd-tag.tsd-tag-optional {
    background-color: var(--tag-color-optional);
}
.tsd-tag.tsd-tag-rest {
    background-color: var(--tag-color-rest);
}
