/* T2 slice 2 — Rank Trend charts. GLOBAL (not component-isolated) on purpose: the axis + value marks are built
   via RenderTreeBuilder, and CSS-isolation scope is applied ONLY to static markup, so those pieces would be
   unstyled under a .razor.css. All classes are rank-trend-* prefixed. Time-series: a percentage-space SVG
   (areas + trend line) fills the plot above a reserved axis strip; HTML marks + axis labels sit at date X. */

.rank-trend-charts {
    --rank-net-line: #1b2a4a;
    --rank-enps-line: var(--rank-net-line, #1b2a4a);
    --rank-promoter: #31b57f;
    --rank-passive: #f4b740;
    --rank-detractor: #e5533c;
    --rank-response: var(--rank-evidence-strong, #31b57f);
    --rank-access: var(--rank-evidence-margin, #f4b740);

    /* Full width on md and below; 2-up grid at ≥ xl (a full-width chart with a handful of cycles is too sparse). */
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

/* The theme capitalizes card titles, which corrupts the product spelling of eNPS. */
.rank-trend-charts .rank-trend-chart-title {
    text-transform: none !important;
}

.rank-trend-headlines {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
    gap: 1rem;
}

.rank-trend-headline {
    --rank-trend-headline-accent: var(--primary-color, #3164e0);
    border-top: 3px solid var(--rank-trend-headline-accent);
}

.rank-trend-headline.is-net {
    --rank-trend-headline-accent: var(--primary-color, #3164e0);
}

.rank-trend-headline.is-enps {
    --rank-trend-headline-accent: var(--bs-body-color, #1b2a4a);
}

.rank-trend-headline.is-response {
    --rank-trend-headline-accent: var(--rank-evidence-strong, #31b57f);
}

.rank-trend-headline.is-access {
    --rank-trend-headline-accent: var(--rank-evidence-margin, #f4b740);
}

.rank-trend-headline-label {
    align-items: center;
    color: var(--bs-secondary-color, #7f8da6);
    display: flex;
    font-size: .72rem;
    font-weight: 700;
    gap: .5rem;
    line-height: 1.15;
}

.rank-trend-headline-ring-wrap {
    align-items: center;
    background: color-mix(in srgb, var(--rank-trend-headline-accent) 8%, var(--bs-body-bg, #fff));
    border-radius: 50%;
    color: var(--rank-trend-headline-accent);
    display: inline-flex;
    flex: 0 0 2rem;
    height: 2rem;
    justify-content: center;
    width: 2rem;
}

.rank-trend-headline-ring {
    --rank-trend-ring-value: 0;
    border-radius: 50%;
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--rank-trend-headline-accent) 12%, transparent);
    display: block;
    height: 1.45rem;
    width: 1.45rem;
    background:
        radial-gradient(circle at center, var(--bs-body-bg, #fff) 0 48%, transparent 51%),
        conic-gradient(
            var(--rank-trend-headline-accent) calc(var(--rank-trend-ring-value) * 1%),
            color-mix(in srgb, var(--rank-trend-headline-accent) 12%, var(--bs-body-bg, #fff)) 0);
}

.rank-trend-headline-ring.is-composition {
    --rank-trend-ring-promoter: 0;
    --rank-trend-ring-passive: 0;
    --rank-trend-ring-detractor: 0;
    --rank-trend-ring-promoter-color: var(--rank-evidence-strong, #31b57f);
    --rank-trend-ring-passive-color: var(--rank-evidence-margin, #f4b740);
    --rank-trend-ring-detractor-color: rgb(var(--danger-rgb));
    background:
        radial-gradient(circle at center, var(--bs-body-bg, #fff) 0 48%, transparent 51%),
        conic-gradient(
            var(--rank-trend-ring-promoter-color) 0 calc(var(--rank-trend-ring-promoter) * 1%),
            var(--rank-trend-ring-passive-color) 0 calc((var(--rank-trend-ring-promoter) + var(--rank-trend-ring-passive)) * 1%),
            var(--rank-trend-ring-detractor-color) 0 100%);
}

.rank-trend-headline-ring.is-empty {
    background:
        radial-gradient(circle at center, var(--bs-body-bg, #fff) 0 48%, transparent 51%),
        conic-gradient(var(--bs-border-color, #dbe3ee) 0 100%);
}

.rank-trend-movement {
    background: var(--bs-body-bg, #fff);
    border: 1px solid var(--bs-border-color, #dbe3ee);
    border-radius: 6px;
    overflow: visible;
    position: relative;
}

.rank-trend-movement-header {
    align-items: flex-start;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding: .8rem 1rem .7rem;
}

.rank-trend-movement-header h3,
.rank-trend-movement-section-heading h4 {
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.3;
    margin: 0;
}

.rank-trend-movement-header p {
    color: var(--bs-secondary-color, #7f8da6);
    font-size: .78rem;
    line-height: 1.35;
    margin: .15rem 0 0;
}

.rank-trend-movement-count,
.rank-trend-movement-section-heading > span {
    color: var(--bs-secondary-color, #7f8da6);
    font-size: .75rem;
    line-height: 1.35;
    margin: .15rem 0 0;
}

.rank-trend-movement-meta {
    align-items: center;
    display: flex;
    flex: 0 0 auto;
    flex-wrap: wrap;
    gap: .4rem;
    justify-content: flex-end;
}

.rank-trend-movement-count {
    font-weight: 650;
}

.rank-trend-movement-body {
    border-top: 1px solid var(--bs-border-color, #e2e8f0);
    display: grid;
    grid-template-columns: minmax(0, 1fr);
}

.rank-trend-movement-section {
    padding: .7rem 1rem .35rem;
}

.rank-trend-movement-section + .rank-trend-movement-section {
    border-top: 1px solid var(--bs-border-color, #e2e8f0);
}

.rank-trend-movement-section-heading {
    display: grid;
    gap: .1rem;
    margin-bottom: .45rem;
}

.rank-trend-movement-section-heading h4 {
    font-size: .9rem;
}

.rank-trend-category-grid {
    display: grid;
    gap: .65rem 1.25rem;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 24rem), 1fr));
}

.rank-trend-category-group {
    min-width: 0;
}

.rank-trend-category-group-heading {
    align-items: baseline;
    display: flex;
    flex-wrap: wrap;
    gap: .2rem .55rem;
    margin-bottom: .4rem;
}

.rank-trend-category-group-heading strong {
    font-size: .8rem;
}

.rank-trend-category-group-heading span {
    color: var(--bs-secondary-color, #7f8da6);
    font-size: .73rem;
}

.rank-trend-category-row {
    align-items: center;
    border-top: 1px solid var(--bs-border-color, #e2e8f0);
    display: grid;
    gap: .55rem;
    grid-template-columns: .65rem minmax(0, 1fr) auto;
    min-height: 3.2rem;
    outline: none;
    padding: .5rem .15rem;
    transition: background-color .12s ease, box-shadow .12s ease;
}

.rank-trend-category-dot {
    background: var(--rank-movement-color);
    border-radius: 50%;
    height: .65rem;
    transition: transform .12s ease;
    width: .65rem;
}

.rank-trend-category-row.is-related,
.rank-trend-category-row:focus-visible {
    background: color-mix(in srgb, var(--rank-movement-color) 7%, transparent);
    box-shadow: inset 2px 0 0 var(--rank-movement-color);
}

.rank-trend-category-row.is-related .rank-trend-category-dot,
.rank-trend-category-row:focus-visible .rank-trend-category-dot {
    transform: translateX(.18rem) scale(1.18);
}

.rank-trend-category-copy {
    display: grid;
    min-width: 0;
}

.rank-trend-category-copy strong {
    font-size: .86rem;
    font-weight: 700;
    line-height: 1.3;
}

.rank-trend-category-copy small {
    color: var(--bs-secondary-color, #7f8da6);
    font-size: .73rem;
    line-height: 1.35;
}

.rank-trend-category-row > .rank-audience-signal {
    font-size: .72rem;
    white-space: nowrap;
}

.rank-trend-movement-empty {
    align-items: center;
    color: var(--bs-secondary-color, #7f8da6);
    display: flex;
    gap: .55rem;
}

.rank-trend-movement-empty > i {
    color: var(--primary-color, #3164e0);
    flex: 0 0 auto;
    font-size: 1rem;
}

.rank-trend-movement-empty {
    background: color-mix(in srgb, var(--primary-color, #3164e0) 3%, var(--bs-body-bg, #fff));
    border-top: 1px solid var(--bs-border-color, #e2e8f0);
    min-height: 3.5rem;
    padding: .65rem 1rem;
}

.rank-trend-movement-empty > div {
    display: grid;
}

.rank-trend-movement-empty strong {
    color: var(--bs-body-color, #263248);
    font-size: .88rem;
}

.rank-trend-movement-empty small {
    font-size: .75rem;
}

.rank-trend-question-grid {
    display: grid;
    gap: .75rem 1.25rem;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 24rem), 1fr));
}

.rank-trend-workforce-section {
    border-top: 1px solid var(--bs-border-color, #e2e8f0);
    padding: .7rem 1rem .45rem;
}

.rank-trend-workforce-grid {
    display: grid;
    gap: .75rem 1.25rem;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 24rem), 1fr));
}

.rank-trend-workforce-group {
    min-width: 0;
}

.rank-trend-workforce-group-title {
    align-items: center;
    color: var(--bs-secondary-color, #7f8da6);
    display: flex;
    font-size: .78rem;
    font-weight: 700;
    gap: .35rem;
    padding: .25rem .15rem .4rem;
}

.rank-trend-workforce-group.is-decline .rank-trend-workforce-group-title {
    color: var(--rank-evidence-weak, #dc3545);
}

.rank-trend-workforce-group.is-lift .rank-trend-workforce-group-title {
    color: var(--rank-evidence-strong, #31b57f);
}

.rank-trend-workforce-row,
.rank-trend-workforce-skeleton-row {
    align-items: center;
    border-top: 1px solid var(--bs-border-color, #e2e8f0);
    display: grid;
    gap: .55rem;
    grid-template-columns: 1.45rem minmax(0, 1fr) auto;
    min-height: 4.15rem;
    padding: .65rem .15rem;
}

.rank-trend-workforce-row {
    background: transparent;
    border-bottom: 0;
    border-left: 0;
    border-right: 0;
    color: inherit;
    text-align: left;
    width: 100%;
}

.rank-trend-workforce-row:hover,
.rank-trend-workforce-row:focus-visible {
    background: color-mix(in srgb, var(--rank-workforce-color) 4%, transparent);
}

.rank-trend-workforce-row:focus-visible {
    box-shadow: inset 2px 0 0 var(--rank-workforce-color);
    outline: none;
}

.rank-trend-workforce-dot {
    align-items: center;
    background: color-mix(in srgb, var(--rank-workforce-color) 7%, var(--bs-body-bg, #fff));
    border: 1px solid color-mix(in srgb, var(--rank-workforce-color) 18%, var(--bs-border-color, #dbe3ee));
    border-radius: .35rem;
    color: var(--rank-workforce-color);
    display: inline-flex;
    font-size: .82rem;
    height: 1.35rem;
    justify-content: center;
    width: 1.35rem;
}

.rank-trend-workforce-dot > i {
    line-height: 1;
}

.rank-trend-workforce-skeleton-dot {
    border-radius: 50%;
    height: .65rem;
    justify-self: center;
    width: .65rem;
}

.rank-trend-workforce-copy,
.rank-trend-workforce-value,
.rank-trend-workforce-skeleton-copy {
    display: grid;
    min-width: 0;
}

.rank-trend-workforce-copy strong {
    font-size: .88rem;
    font-weight: 700;
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rank-trend-workforce-copy small {
    color: var(--bs-secondary-color, #7f8da6);
    font-size: .74rem;
    line-height: 1.35;
}

.rank-trend-workforce-copy small.rank-trend-workforce-shifts {
    color: var(--bs-body-color, #263248);
    font-size: .72rem;
    margin-top: .1rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rank-trend-workforce-value {
    align-items: end;
    justify-items: end;
}

.rank-trend-workforce-value > strong {
    font-size: .95rem;
}

.rank-trend-workforce-actions {
    align-items: center;
    display: inline-flex;
    gap: .35rem;
    justify-content: flex-end;
    min-width: 0;
}

.rank-trend-workforce-value .rank-audience-signal {
    font-size: .72rem;
    padding-block: .12rem;
    white-space: nowrap;
}

.rank-trend-workforce-action {
    align-items: center;
    color: color-mix(in srgb, var(--primary-color, #3164e0) 78%, var(--bs-secondary-color, #7f8da6));
    display: inline-flex;
    flex: 0 0 auto;
    font-size: .9rem;
    justify-content: center;
    line-height: 1;
}

.rank-trend-workforce-row:hover .rank-trend-workforce-action,
.rank-trend-workforce-row:focus-visible .rank-trend-workforce-action {
    color: var(--primary-color, #3164e0);
}

.rank-trend-workforce-skeleton-copy {
    gap: .3rem;
}

.rank-trend-workforce-skeleton-copy .placeholder {
    border-radius: var(--ranx-block-radius, .375rem);
    height: .62rem;
}

.rank-trend-workforce-skeleton-value {
    border-radius: var(--ranx-block-radius, .375rem);
    height: 1.5rem;
    width: 5.5rem;
}

.rank-trend-workforce-unavailable {
    align-items: center;
    color: var(--bs-secondary-color, #7f8da6);
    display: flex;
    font-size: .8rem;
    gap: .45rem;
    min-height: 3.75rem;
    padding: .65rem .15rem;
}

.rank-trend-workforce-unavailable > i {
    color: var(--rank-evidence-margin, #f4b740);
    flex: 0 0 auto;
    font-size: 1rem;
}

/* Deferred question read: the question aggregate is a SECOND read that lands after the charts paint, so
   this column holds its place with compact skeleton rows instead of collapsing (which would reflow the
   whole movement section) or — worse — rendering as "no question movement". Geometry deliberately mirrors
   .rank-trend-question-row so nothing shifts when the real rows arrive. Uses the app's existing Bootstrap
   placeholder-glow treatment (same as ProvisionTenant), not a bespoke shimmer. */
.rank-trend-question-skeleton-row {
    align-items: center;
    border-top: 1px solid var(--bs-border-color, #e2e8f0);
    display: grid;
    gap: .55rem;
    grid-template-columns: .65rem minmax(0, 1fr) auto;
    min-height: 3.75rem;
    padding: .65rem .15rem;
}

.rank-trend-question-skeleton-dot {
    border-radius: 50%;
    height: .65rem;
    width: .65rem;
}

.rank-trend-question-skeleton-copy {
    display: grid;
    gap: .3rem;
    min-width: 0;
}

.rank-trend-question-skeleton-copy .placeholder {
    border-radius: var(--ranx-block-radius, .375rem);
    height: .62rem;
}

.rank-trend-question-skeleton-value {
    border-radius: var(--ranx-block-radius, .375rem);
    height: 1.5rem;
    width: 3.25rem;
}

/* Secondary-read failure degrades THIS column only — charts, headlines and category movement stay usable. */
.rank-trend-question-unavailable {
    align-items: center;
    color: var(--bs-secondary-color, #7f8da6);
    display: flex;
    font-size: .8rem;
    gap: .45rem;
    min-height: 3.75rem;
    padding: .65rem .15rem;
}

.rank-trend-question-unavailable > i {
    color: var(--rank-evidence-margin, #f4b740);
    flex: 0 0 auto;
    font-size: 1rem;
}

.rank-trend-question-group {
    min-width: 0;
}

.rank-trend-question-group-title {
    align-items: center;
    color: var(--bs-secondary-color, #7f8da6);
    display: flex;
    font-size: .78rem;
    font-weight: 700;
    gap: .35rem;
    padding: .25rem .15rem .4rem;
}

.rank-trend-question-group.is-decline .rank-trend-question-group-title,
.rank-trend-question-group.is-decline .rank-trend-question-tooltip-foot {
    color: var(--rank-evidence-weak, #dc3545);
}

.rank-trend-question-group.is-lift .rank-trend-question-group-title,
.rank-trend-question-group.is-lift .rank-trend-question-tooltip-foot {
    color: var(--rank-evidence-strong, #31b57f);
}

.rank-trend-question-row {
    align-items: center;
    border-top: 1px solid var(--bs-border-color, #e2e8f0);
    display: grid;
    gap: .55rem;
    grid-template-columns: .65rem minmax(0, 1fr) auto;
    min-height: 3.75rem;
    outline: none;
    padding: .65rem .15rem;
    position: relative;
    transition: background-color .12s ease, box-shadow .12s ease;
}

.rank-trend-question-row:hover,
.rank-trend-question-row:focus-visible {
    background: color-mix(in srgb, var(--rank-question-color) 4%, transparent);
}

.rank-trend-question-row:focus-visible {
    box-shadow: inset 2px 0 0 var(--rank-question-color);
}

.rank-trend-question-row.is-related {
    background: color-mix(in srgb, var(--rank-question-color) 7%, transparent);
    box-shadow: inset 2px 0 0 var(--rank-question-color);
}

.rank-trend-question-dot {
    background: var(--rank-question-color);
    border-radius: 50%;
    height: .65rem;
    transition: transform .12s ease;
    width: .65rem;
}

.rank-trend-question-row.is-related .rank-trend-question-dot,
.rank-trend-question-row:focus-visible .rank-trend-question-dot {
    transform: translateX(.18rem) scale(1.18);
}

.rank-trend-question-copy,
.rank-trend-question-value,
.rank-trend-question-tooltip-cycle > span {
    display: grid;
    min-width: 0;
}

.rank-trend-question-copy strong {
    font-size: .88rem;
    font-weight: 700;
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rank-trend-question-copy small {
    color: var(--bs-secondary-color, #7f8da6);
    font-size: .74rem;
    line-height: 1.35;
}

.rank-trend-question-value {
    align-items: end;
    justify-items: end;
}

.rank-trend-question-value > strong {
    font-size: .95rem;
}

.rank-trend-question-value .rank-audience-signal {
    font-size: .72rem;
    padding-block: .12rem;
}

.rank-trend-question-tooltip {
    background: #1f2a44;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 6px;
    bottom: calc(100% + .35rem);
    box-shadow: 0 .55rem 1.25rem rgba(31, 42, 68, .22);
    color: #fff;
    display: grid;
    font-size: .72rem;
    left: .15rem;
    line-height: 1.3;
    max-width: calc(100vw - 3rem);
    opacity: 0;
    padding: .65rem .7rem;
    pointer-events: none;
    position: absolute;
    transform: translateY(.2rem);
    transition: opacity .12s ease, transform .12s ease, visibility .12s ease;
    visibility: hidden;
    width: min(24rem, calc(100% - .3rem));
    z-index: 8;
}

.rank-trend-question-tooltip::after {
    border-left: .4rem solid transparent;
    border-right: .4rem solid transparent;
    border-top: .4rem solid #1f2a44;
    content: "";
    left: 1.25rem;
    position: absolute;
    top: 100%;
}

.rank-trend-question-tooltip small {
    color: #dbe4f4;
    font-size: .67rem;
}

.rank-trend-question-row:hover .rank-trend-question-tooltip,
.rank-trend-question-row:focus-visible .rank-trend-question-tooltip {
    opacity: 1;
    transform: translateY(0);
    visibility: visible;
}

.rank-trend-question-tooltip-head {
    border-bottom: 1px solid rgba(255, 255, 255, .14);
    display: grid;
    gap: .1rem;
    padding-bottom: .4rem;
}

.rank-trend-question-tooltip-cycle {
    align-items: start;
    display: grid;
    gap: .6rem;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: .4rem 0;
}

.rank-trend-question-tooltip-cycle.is-latest {
    border-top: 1px solid rgba(255, 255, 255, .14);
}

.rank-trend-question-tooltip-foot {
    align-items: center;
    border-top: 1px solid rgba(255, 255, 255, .14);
    display: flex;
    font-size: .68rem;
    font-weight: 650;
    gap: .3rem;
    padding-top: .4rem;
}

@media (max-width: 575.98px) {
    .rank-trend-movement-header,
    .rank-trend-movement-section,
    .rank-trend-workforce-section,
    .rank-trend-movement-empty {
        padding-inline: .75rem;
    }

    .rank-trend-movement-header {
        align-items: baseline;
    }

    .rank-trend-question-copy strong {
        white-space: normal;
    }

    .rank-trend-workforce-copy strong {
        white-space: normal;
    }

    .rank-trend-workforce-copy small.rank-trend-workforce-shifts {
        white-space: normal;
    }

    .rank-trend-workforce-row {
        align-items: start;
        grid-template-columns: 1.45rem minmax(0, 1fr);
    }

    .rank-trend-workforce-value {
        grid-column: 2;
        justify-items: start;
        margin-top: .15rem;
    }

    .rank-trend-workforce-actions {
        justify-content: flex-start;
    }
}

@media (min-width: 1200px) {
    .rank-trend-movement-body.has-two-sections {
        grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
    }

    .rank-trend-movement-body.has-two-sections .rank-trend-movement-section + .rank-trend-movement-section {
        border-left: 1px solid var(--bs-border-color, #e2e8f0);
        border-top: 0;
    }

    .rank-trend-charts {
        grid-template-columns: 1fr 1fr;
    }

    /* The participation card spans the full width beneath the Net Ranx / eNPS pair. */
    .rank-trend-charts .rank-trend-wide {
        grid-column: 1 / -1;
    }
}

.rank-trend-plot {
    position: relative;
    width: 100%;
    height: var(--chart-h, 200px);
    --axis-h: 1.4rem;
}

/* The chart area = everything above the reserved axis strip. The SVG + the HTML marks share this exact box so
   percentage coordinates line up. */
.rank-trend-svg,
.rank-trend-marks {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: var(--axis-h);
}

.rank-trend-svg {
    bottom: auto;
    display: block;
    width: 100%;
    height: calc(100% - var(--axis-h));
    overflow: hidden;
    shape-rendering: geometricPrecision;
}

.rank-trend-area-net {
    fill-opacity: .78;
    stroke: none;
}

.rank-trend-area-composition {
    fill-opacity: .28;
}

.rank-trend-line {
    fill: none;
    stroke-width: 2.25;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.rank-trend-grid {
    stroke: color-mix(in srgb, var(--bs-border-color, #dbe3ee) 72%, transparent);
    stroke-width: 1;
    stroke-dasharray: 2 3;
}

.rank-trend-marks {
    pointer-events: none;
    z-index: 2;
}

.rank-trend-mark {
    position: absolute;
    transform: translate(-50%, -50%);
    pointer-events: auto;
}

.rank-trend-mark-dot {
    display: block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    border: 2px solid var(--bs-body-bg, #fff);
    box-shadow: 0 0 0 1px rgba(0, 0, 0, .1);
}

.rank-trend-mark-lbl {
    position: absolute;
    bottom: calc(100% + 3px);
    left: 50%;
    transform: translateX(-50%);
    font-size: .7rem;
    font-weight: 600;
    color: var(--bs-body-color, #334155);
    white-space: nowrap;
}

.rank-trend-plot.is-score-chart .rank-trend-mark-dot {
    width: 10px;
    height: 10px;
}

.rank-trend-plot.is-score-chart .rank-trend-mark-lbl {
    bottom: calc(100% + 4px);
    font-size: .76rem;
    font-weight: 700;
}

.rank-trend-axis {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: var(--axis-h);
    border-top: 1px solid var(--bs-border-color, #e2e8f0);
}

.rank-trend-y-axis {
    position: absolute;
    inset: 0 0 var(--axis-h) 0;
    z-index: 2;
    pointer-events: none;
}

.rank-trend-y-axis > span {
    position: absolute;
    left: .2rem;
    transform: translateY(-50%);
    padding: 0 .2rem;
    background: color-mix(in srgb, var(--bs-body-bg, #fff) 88%, transparent);
    color: var(--bs-secondary-color, #7f8da6);
    font-size: .65rem;
    font-weight: 600;
    line-height: 1.2;
}

.rank-trend-axis-lbl {
    position: absolute;
    top: .28rem;
    transform: translateX(-50%);
    font-size: .7rem;
    color: var(--bs-secondary-color, #94a3b8);
    white-space: nowrap;
}

.rank-trend-key {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    vertical-align: middle;
    margin-right: .38rem;
}

.rank-trend-legend {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem 1rem;
    min-height: 1.15rem;
    margin-top: .25rem;
    color: var(--bs-secondary-color, #7f8da6);
    font-size: .72rem;
    line-height: 1.25;
}

.rank-trend-legend > span {
    display: inline-flex;
    min-width: 0;
    align-items: center;
}

.rank-trend-interactions {
    position: absolute;
    inset: 0 0 var(--axis-h) 0;
    z-index: 4;
    pointer-events: none;
}

.rank-trend-hit {
    position: absolute;
    top: 0;
    bottom: 0;
    z-index: 1;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    outline: 0;
    background: transparent;
    cursor: crosshair;
    pointer-events: auto;
    touch-action: pan-y;
}

.rank-trend-hit:focus-visible {
    outline: 2px solid color-mix(in srgb, var(--primary-color, #3164e0) 55%, transparent);
    outline-offset: -2px;
}

.rank-trend-guide {
    position: absolute;
    top: 0;
    bottom: 0;
    z-index: 2;
    border-left: 1px dashed color-mix(in srgb, var(--bs-body-color, #334155) 32%, transparent);
    pointer-events: none;
}

.rank-trend-tooltip {
    position: absolute;
    top: .5rem;
    z-index: 3;
    width: min(19rem, calc(100% - 1rem));
    transform: translateX(-50%);
    padding: .65rem .7rem;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 6px;
    background: #1f2a44;
    box-shadow: 0 .55rem 1.25rem rgba(31, 42, 68, .22);
    color: #fff;
    font-size: .72rem;
    line-height: 1.25;
    pointer-events: none;
}

.rank-trend-tooltip.is-start {
    left: .5rem !important;
    transform: none;
}

.rank-trend-tooltip.is-end {
    right: .5rem;
    left: auto !important;
    transform: none;
}

.rank-trend-tooltip-head,
.rank-trend-tooltip-primary,
.rank-trend-tooltip-row,
.rank-trend-tooltip-rate {
    display: grid;
    align-items: baseline;
    gap: .15rem .5rem;
}

.rank-trend-tooltip-head {
    grid-template-columns: minmax(0, 1fr) auto;
    padding-bottom: .4rem;
    border-bottom: 1px solid rgba(255, 255, 255, .14);
}

.rank-trend-tooltip-head strong,
.rank-trend-tooltip-label {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rank-trend-tooltip-head > span,
.rank-trend-tooltip small,
.rank-trend-tooltip-detail,
.rank-trend-tooltip-foot {
    color: #dbe4f4;
}

.rank-trend-tooltip-primary {
    grid-template-columns: minmax(0, 1fr) auto;
    padding: .45rem 0 .35rem;
}

.rank-trend-tooltip-primary > strong {
    font-size: .92rem;
}

.rank-trend-tooltip-primary > small {
    grid-column: 1 / -1;
}

.rank-trend-tooltip-list {
    display: grid;
    gap: .25rem;
}

.rank-trend-tooltip-row {
    grid-template-columns: minmax(0, 1fr) auto auto;
}

.rank-trend-tooltip-row > small:empty {
    display: none;
}

.rank-trend-tooltip-rate {
    grid-template-columns: minmax(0, 1fr) auto;
    padding: .15rem 0;
}

.rank-trend-tooltip-rate > small,
.rank-trend-tooltip-detail {
    grid-column: 1 / -1;
}

.rank-trend-tooltip-foot {
    margin-top: .4rem;
    padding-top: .4rem;
    border-top: 1px solid rgba(255, 255, 255, .14);
}

.rank-trend-tooltip-empty {
    padding-top: .5rem;
    color: #dbe4f4;
}

.rank-trend-tooltip .is-positive {
    color: #c7f5e2;
}

.rank-trend-tooltip .is-negative {
    color: #ffd9dc;
}

.rank-trend-tooltip .is-neutral {
    color: #d7deea;
}
