/* figures: integration */

/* namespace name builder (features/namespace.md, js/fig-integration.js) */
.md-typeset .nj-integration-ns {
    --nj-int-line: color-mix(in srgb, currentColor 30%, var(--md-default-bg-color));
    display: block;
    width: auto;
    max-width: none;
    margin: 1.5rem 0;
    padding: .9rem 1rem;
    text-align: left;
    border: 1px solid var(--nj-int-line);
    border-radius: 8px;
}
.md-typeset .nj-integration-ns__strip {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: .5rem .15rem;
}
.md-typeset .nj-integration-ns__seg {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    min-width: 0;
}
.md-typeset .nj-integration-ns__seg code {
    padding: .25em .5em;
    border: 1.5px solid var(--nj-int-line);
    border-radius: 6px;
    background: var(--md-default-bg-color);
    color: var(--md-default-fg-color);
    font-size: .8rem;
    font-weight: 600;
    word-break: normal;
}
.md-typeset .nj-integration-ns__seg small {
    max-width: 10rem;
    margin-top: .25rem;
    color: var(--md-default-fg-color--light);
    font-size: .58rem;
    line-height: 1.25;
    text-align: center;
    overflow-wrap: anywhere;
}
.md-typeset .nj-integration-ns__seg--sep code {
    border-color: transparent;
    padding-inline: .1em;
}
.md-typeset .nj-integration-ns__seg--abi code {
    border-color: var(--md-typeset-a-color);
    background: color-mix(in srgb, var(--md-typeset-a-color) 12%, var(--md-default-bg-color));
    color: var(--md-typeset-a-color);
}
.md-typeset .nj-integration-ns__seg--tag code {
    border-style: dashed;
    border-color: var(--md-typeset-a-color);
    color: var(--md-typeset-a-color);
}
.md-typeset .nj-integration-ns__seg--ver code {
    background: color-mix(in srgb, currentColor 8%, var(--md-default-bg-color));
}
.md-typeset .nj-integration-ns figcaption {
    max-width: none;
    margin: .8rem 0 0;
    font-size: .75rem;
    text-align: left;
    color: var(--md-default-fg-color--light);
}
.md-typeset .nj-integration-ns__controls {
    margin-top: 1rem;
    padding-top: .8rem;
    border-top: 1px solid var(--nj-int-line);
    font-size: .7rem;
}
.md-typeset .nj-integration-ns__version select {
    min-height: 2rem;
    margin-left: .3rem;
    padding: 0 .4rem;
    border: 1px solid var(--nj-int-line);
    border-radius: 6px;
    background: var(--md-default-bg-color);
    color: var(--md-default-fg-color);
    font: inherit;
}
.md-typeset .nj-integration-ns__list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 21rem), 1fr));
    gap: 0 1rem;
    margin: .7rem 0 0;
    padding: 0;
    border: 0;
}
.md-typeset .nj-integration-ns__list legend {
    padding: 0;
    margin-bottom: .3rem;
    font-weight: 600;
}
.md-typeset .nj-integration-ns__opt {
    display: grid;
    grid-template-columns: 1.1rem 1fr;
    align-items: center;
    gap: 0 .55rem;
    min-height: 2.2rem;
    padding: .15rem 0;
    cursor: pointer;
}
.md-typeset .nj-integration-ns__meta {
    grid-column: 2;
    display: flex;
    flex-wrap: wrap;
    gap: 0 .45rem;
}
.md-typeset .nj-integration-ns__opt input {
    grid-row: 1 / span 2;
    width: 1.1rem;
    height: 1.1rem;
    margin: 0;
    accent-color: var(--md-typeset-a-color);
}
.md-typeset .nj-integration-ns__opt input:focus-visible {
    outline: 2px solid var(--md-accent-fg-color);
    outline-offset: 2px;
}
.md-typeset .nj-integration-ns__opt code {
    font-size: .64rem;
    overflow-wrap: anywhere;
}
.md-typeset .nj-integration-ns__hint {
    color: var(--md-typeset-a-color);
    font-family: var(--md-code-font-family);
    font-size: .64rem;
}
.md-typeset .nj-integration-ns__since {
    color: var(--md-default-fg-color--light);
    font-size: .6rem;
}
.md-typeset .nj-integration-ns__opt.is-unavailable {
    cursor: not-allowed;
    opacity: .5;
}
@media screen and (max-width: 44.984375em) {
    .md-typeset .nj-integration-ns__opt {
        min-height: 2.75rem;
    }
}

/* roadmap lanes and release timeline (scripts/figures/integration.py, release_timeline.py) */
.md-typeset svg.nj-fig--lanes { min-width: 44rem; max-width: 46rem; }
.md-typeset svg.nj-fig--timeline { min-width: 44rem; max-width: 52rem; }
.nj-fig .nj-int-lane { fill: color-mix(in srgb, var(--md-typeset-a-color) 10%, var(--md-default-bg-color)); stroke: var(--md-typeset-a-color); stroke-width: 1.5; }
.nj-fig .nj-int-lane--future { fill: none; stroke-dasharray: 6 4; }
.nj-fig .nj-int-lanetext { fill: var(--md-typeset-a-color); font-size: 15px; font-weight: 700; }
.nj-fig .nj-int-text { fill: currentColor; font-size: 13px; }
.nj-fig .nj-int-mute { fill: currentColor; fill-opacity: .7; font-size: 12.5px; }
.nj-fig .nj-int-macro { fill: currentColor; font-family: var(--md-code-font-family), monospace; font-size: 12.5px; }
.nj-fig .nj-int-val { fill: currentColor; font-family: var(--md-code-font-family), monospace; font-size: 13px; font-weight: 600; }
.nj-fig .nj-int-row { fill: color-mix(in srgb, currentColor 4%, var(--md-default-bg-color)); }
.nj-fig .nj-int-track { fill: color-mix(in srgb, currentColor 14%, var(--md-default-bg-color)); stroke: color-mix(in srgb, currentColor 45%, var(--md-default-bg-color)); stroke-width: 1.2; }
.nj-fig .nj-int-track--on { fill: var(--md-typeset-a-color); stroke: var(--md-typeset-a-color); }
.nj-fig .nj-int-knob { fill: var(--md-default-bg-color); stroke: color-mix(in srgb, currentColor 45%, var(--md-default-bg-color)); stroke-width: 1.2; }
.nj-fig .nj-int-knob--on { stroke: var(--md-typeset-a-color); }
.nj-fig .nj-int-axis { stroke: color-mix(in srgb, currentColor 45%, var(--md-default-bg-color)); stroke-width: 1.5; }
.nj-fig .nj-int-grid { stroke: color-mix(in srgb, currentColor 14%, var(--md-default-bg-color)); stroke-width: 1; }
.nj-fig .nj-int-minor { fill: var(--md-typeset-a-color); stroke: var(--md-default-bg-color); stroke-width: 1.5; }
.nj-fig .nj-int-patch { fill: var(--md-default-bg-color); stroke: var(--md-typeset-a-color); stroke-width: 1.5; }
.nj-fig .nj-int-major { fill: currentColor; fill-opacity: .7; font-size: 13px; font-weight: 600; }
.nj-fig .nj-int-label { fill: currentColor; font-size: 12px; font-weight: 600; text-anchor: middle; }
.nj-fig .nj-int-year { fill: currentColor; fill-opacity: .7; font-size: 12px; text-anchor: middle; }
.nj-fig .nj-int-leader { stroke: color-mix(in srgb, currentColor 30%, var(--md-default-bg-color)); stroke-width: 1; }
.nj-fig .nj-int-hit { fill: transparent; }

/* roadmap: value pills (3.x default -> 4.0 value) */
.nj-fig .nj-int-pill { fill: color-mix(in srgb, currentColor 8%, var(--md-default-bg-color)); stroke: color-mix(in srgb, currentColor 35%, var(--md-default-bg-color)); stroke-width: 1.2; }
.nj-fig .nj-int-pill--v4 { fill: var(--md-typeset-a-color); stroke: var(--md-typeset-a-color); }
.nj-fig .nj-int-val--v4 { fill: var(--md-default-bg-color); }
