.turbo-progress-bar {
    height: 3px;
    background-color: var(--tblr-primary);
}

.data-table-loading {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    background: color-mix(in srgb, var(--tblr-bg-surface) 75%, transparent);
}

/* --data-table-row-highlight: DataTable cards only colour the card title with it. */
.allocation-row-department-closed {
    --data-table-row-highlight: var(--tblr-red-lt);
}

.allocation-row-department-closed > td,
.allocation-row-department-closed > th {
    background-color: var(--tblr-red-lt) !important;
}

/* Hide CSV item in the ApexCharts export menu */
.apexcharts-menu-item.exportCSV {
    display: none;
}

.import-processing-name {
    font-size: 1.5rem;
    line-height: 1.3;
}

.import-processing-hero {
    --tblr-avatar-size: 3.5rem;
}

.import-processing-step-title {
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.35;
}

.import-processing-step-desc {
    font-size: 0.875rem;
    line-height: 1.45;
}

.import-processing-steps.steps-vertical .step-item {
    padding-top: 0.625rem;
    padding-bottom: 0.625rem;
}

.import-processing-steps.steps-vertical .step-item:not(:first-child) {
    margin-top: 0.75rem;
}

.dropdown-menu-scrollable {
    max-height: 500px;
    overflow-y: auto;
}

.dropdown-item-typeahead-focus {
    background-color: var(--tblr-dropdown-link-hover-bg, rgba(0, 0, 0, 0.04));
    color: var(--tblr-dropdown-link-hover-color, inherit);
}

.closure-event-badge-stack .badge + .badge {
    margin-left: -0.35rem;
    box-shadow: 0 0 0 2px var(--tblr-bg-surface, #fff);
}

.closure-event-preview {
    width: min(26rem, calc(100vw - 2rem));
    max-height: 24rem;
    overflow-y: auto;
    padding: 0.25rem 0;
}

.closure-event-preview__item {
    padding: 0.75rem 1rem;
}

.closure-event-preview__title {
    margin: 0;
    font-size: 0.9375rem;
    font-weight: 600;
    line-height: 1.3;
}

.closure-event-preview__time {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    margin: 0.2rem 0 0;
    font-size: 0.75rem;
    line-height: 1.35;
}

.closure-event-preview__time .icon {
    width: 0.875rem;
    height: 0.875rem;
    flex-shrink: 0;
}

.closure-event-preview__badge {
    margin-top: 0.5rem;
}

.closure-volume-quality-legend > summary {
    cursor: pointer;
    list-style: none;
}

.closure-volume-quality-legend > summary::-webkit-details-marker,
.closure-volume-quality-legend > summary::marker {
    display: none;
}

.closure-volume-quality-legend > summary::before {
    content: '▸ ';
}

.closure-volume-quality-legend[open] > summary::before {
    content: '▾ ';
}

.closure-volume-quality-legend > summary:hover {
    color: var(--tblr-body-color);
}

.closure-event-departments-list {
    padding-left: 1.25rem;
    list-style: disc;
}

.closure-event-departments-list > li {
    display: list-item;
}

.closure-event-preview__more {
    padding: 0.5rem 1rem 0.75rem;
    color: var(--tblr-secondary);
    font-size: 0.8125rem;
}

.data-table-card {
    overflow: visible;
}

.data-table-card > .card-header {
    overflow: visible;
}

.data-table-toolbar {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: 0.5rem;
}

/* One header for selection actions (left) and table settings (right). */
.data-table-header {
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
}

.data-table-header__actions {
    margin-left: auto;
}

/* Same vertical pull as Tabler's .card-actions, so the header keeps its height when rows get selected. */
.data-table-header .data-table-bulk-selection {
    margin-block: -0.5rem;
}

/* On narrow screens the header wraps; without the pull the lines do not overlap. */
@media (max-width: 575.98px) {
    .data-table-header--bulk .data-table-bulk-selection,
    .data-table-header--bulk .data-table-header__actions {
        margin-block: 0;
    }
}

/* Icon-only settings buttons (tables with bulk actions): no extra icon margin, so the icon sits centered. */
.data-table-toolbar .btn-icon-only .icon {
    margin: 0;
}

.data-table-toolbar > .btn,
.data-table-toolbar > .btn-group > .btn,
.data-table-toolbar > .btn-group > .btn-group > .btn,
.data-table-bulk-actions .btn,
.data-table-bulk-selection .btn {
    font-size: 0.75rem;
    padding: 0.125rem 0.4rem;
    min-height: 1.5rem;
    line-height: 1.2;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.data-table-toolbar > .btn .icon,
.data-table-toolbar > .btn-group > .btn .icon,
.data-table-toolbar > .btn-group > .btn-group > .btn .icon,
.data-table-bulk-actions .btn .icon {
    width: 0.8125rem;
    height: 0.8125rem;
}

.data-table-toolbar .dropdown-toggle-no-caret::after {
    display: none;
}

.bg-gray-lt {
    background-color: var(--tblr-gray-lt) !important;
    color: var(--tblr-gray) !important;
}

.bg-gray-dark-lt {
    background-color: var(--tblr-gray-dark-lt) !important;
    color: var(--tblr-gray-dark) !important;
}

.bg-gray-muted-lt {
    background-color: color-mix(in srgb, var(--tblr-gray) 12%, transparent) !important;
    color: var(--tblr-secondary) !important;
}

.data-table-popover {
    width: min(22rem, calc(100vw - 2rem));
    padding: 0;
}

.data-table-popover__header {
    padding: 0.75rem 1rem 0.5rem;
}

.data-table-popover__title {
    margin: 0;
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.3;
}

.data-table-popover__help {
    margin: 0.25rem 0 0;
    color: var(--tblr-secondary);
    font-size: 0.75rem;
    line-height: 1.4;
}

.data-table-popover__body {
    padding: 0.25rem 1rem 0.75rem;
}

.data-table-popover__body .form-label {
    margin-bottom: 0.25rem;
}

.data-table-popover__body .mb-3:last-child {
    margin-bottom: 0 !important;
}

.data-table-popover__actions {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    border-top: 1px solid var(--tblr-border-color);
}

.data-table-column-picker .data-table-popover__body {
    max-height: min(24rem, calc(100vh - 14rem));
    overflow-y: auto;
}

.data-table-column-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.4rem 0;
}

.data-table-column-id {
    flex: 0 0 1.75rem;
    font-variant-numeric: tabular-nums;
    color: var(--tblr-secondary);
}

/* DataTable mobile cards (mobileLayout="cards"): when the table is narrower than its breakpoint
   (container query on the table's own width, not the viewport) every row becomes a card with
   labelled values. Same markup as the table; only tables that opt in get .data-table-cards.

   Card header row: title (mobilePrimaryColumn), then the row checkbox, then the "more" menu with the
   row actions. A row class can set --data-table-row-highlight; cards colour only the title with it.

   Rules here are safe in table layout (they only take effect on grid/flex boxes or on elements that
   exist only in cards). Everything that changes the table look sits in the container queries below,
   one per DataTableMobileBreakpoint (sm/md/lg). Keep the three blocks identical apart from the width. */
.data-table-cards {
    container: data-table-cards / inline-size;
}

.data-table-cards .data-table-cell__label {
    display: none;
    color: var(--tblr-secondary);
    font-size: 0.8125rem;
}

.data-table-cards .data-table-actions-menu,
.data-table-cards .data-table-action-link,
.data-table-cell__pair > .data-table-cell__label {
    display: none;
}

.data-table-cards > .table > thead > tr {
    flex-wrap: wrap;
    align-items: center;
    gap: 0 1rem;
}

.data-table-select-page {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    cursor: pointer;
}

.data-table-cards > .table > tbody {
    gap: 0.75rem;
}

.data-table-cards > .table > tbody > tr {
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 0.5rem 0.5rem;
}

.data-table-cards > .table > tbody > tr > td {
    grid-column: 1 / -1;
    grid-template-columns: minmax(6rem, 40%) minmax(0, 1fr);
    gap: 0.75rem;
    align-items: baseline;
}

/* Values without a label use the full card width. */
.data-table-cards td > .data-table-cell__value:only-child {
    grid-column: 1 / -1;
}

.data-table-cards > .table > tbody > tr > td.data-table-cell--primary {
    grid-column: 1;
    grid-row: 1;
}

.data-table-cards > .table > tbody > tr > td.data-table-cell--select {
    grid-column: 2;
    grid-row: 1;
}

.data-table-cards > .table > tbody > tr > td.data-table-cell--actions {
    grid-column: 3;
    grid-row: 1;
}

/* Title parts (mobileTitleColumns) sit below the title; their grid-row comes from the markup. */
.data-table-cards > .table > tbody > tr > td.data-table-cell--title {
    grid-column: 1;
}

/* Without a checkbox or menu next to it, the title box uses the full card width. */
.data-table-cards > .table > tbody > tr:not(:has(> td.data-table-cell--select, > td.data-table-cell--actions)) > td:is(.data-table-cell--primary, .data-table-cell--title) {
    grid-column: 1 / -1;
}

/* A single detail action becomes a link at the end of the card. */
.data-table-cards > .table > tbody > tr > td.data-table-cell--action-link {
    order: 1000;
}

@container data-table-cards (max-width: 575.98px) {
    .data-table-cards--sm > .table,
    .data-table-cards--sm > .table > thead {
        display: block;
    }

    /* Headers stay in the accessibility tree (no display: none). A header becomes visible while its
       sort link has keyboard focus; the "select page" checkbox stays visible as a bar. */
    .data-table-cards--sm > .table > thead > tr {
        display: flex;
        padding: 0 1rem;
    }

    .data-table-cards--sm > .table > thead th {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip-path: inset(50%);
        white-space: nowrap;
        border: 0;
    }

    .data-table-cards--sm > .table > thead th:focus-within,
    .data-table-cards--sm > .table > thead th.data-table-cell--select {
        position: static;
        width: auto !important;
        height: auto;
        margin: 0;
        padding: 0.5rem 0;
        overflow: visible;
        clip-path: none;
        background: none;
    }

    .data-table-cards--sm .data-table-select-page .data-table-cell__label {
        display: inline;
    }

    .data-table-cards--sm > .table > tbody {
        display: grid;
        padding: 0.75rem;
        background: var(--tblr-bg-surface-secondary);
    }

    .data-table-cards--sm > .table > tbody > tr {
        display: grid;
        align-items: start;
        padding: 0.75rem 1rem;
        background: var(--tblr-bg-surface);
        border: var(--tblr-border-width) solid var(--tblr-border-color);
        border-radius: var(--tblr-border-radius);
    }

    .data-table-cards--sm > .table > tbody > tr:has([data-bulk-selection-target="item"]:checked) {
        border-color: var(--tblr-primary);
        box-shadow: 0 0 0 1px var(--tblr-primary);
    }

    /* text-end, text-nowrap, w-1 and row highlights come from the table config and are meant for the
       table; cards reset them and colour only the title with --data-table-row-highlight. */
    .data-table-cards--sm > .table > tbody > tr > td {
        display: grid;
        width: auto !important;
        padding: 0;
        border: 0;
        background-color: transparent !important;
        box-shadow: none;
        text-align: start !important;
        white-space: normal !important;
    }

    .data-table-cards--sm .data-table-cell__label {
        display: block;
        overflow-wrap: break-word;
        hyphens: auto;
    }

    .data-table-cards--sm .data-table-cell__value {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    /* Cells that label their parts (mobileLabel: false) use the same label/value columns. */
    .data-table-cards--sm .data-table-cell__pair {
        display: grid;
        grid-template-columns: minmax(6rem, 40%) minmax(0, 1fr);
        gap: 0.75rem;
        align-items: baseline;
    }

    .data-table-cards--sm .data-table-cell__pair + .data-table-cell__pair {
        margin-top: 0.5rem;
    }

    /* Cell templates that centre their content (boolean icons) align with the other values. */
    .data-table-cards--sm .data-table-cell__value > .text-center {
        text-align: start !important;
    }

    /* Truncated badges (facets) wrap in cards instead; centred and clipped they lose both ends. */
    .data-table-cards--sm .data-table-cell__value .text-truncate {
        text-align: start;
        white-space: normal !important;
    }

    .data-table-cards--sm > .table > tbody > tr > td.data-table-cell--primary,
    .data-table-cards--sm > .table > tbody > tr > td.data-table-cell--select,
    .data-table-cards--sm > .table > tbody > tr > td.data-table-cell--actions {
        display: block;
    }

    .data-table-cards--sm > .table > tbody > tr > td.data-table-cell--primary {
        margin: -0.25rem -0.5rem;
        padding: 0.25rem 0.5rem;
        border-radius: var(--tblr-border-radius);
        background-color: var(--data-table-row-highlight, transparent) !important;
        font-size: 1rem;
        font-weight: var(--tblr-font-weight-medium);
    }

    /* Title box: the title and its parts share one background (--data-table-row-highlight). Negative
       margins close the row gap between them without overlapping: the highlight is translucent. */
    .data-table-cards--sm > .table > tbody > tr > td.data-table-cell--title {
        display: block;
        margin: -0.25rem -0.5rem -0.25rem;
        padding: 0 0.5rem 0.25rem;
        border-radius: 0 0 var(--tblr-border-radius) var(--tblr-border-radius);
        background-color: var(--data-table-row-highlight, transparent) !important;
        text-align: end !important;
    }

    .data-table-cards--sm > .table > tbody > tr:has(> td.data-table-cell--title) > td.data-table-cell--primary {
        border-bottom-left-radius: 0;
        border-bottom-right-radius: 0;
    }

    .data-table-cards--sm > .table > tbody > tr > td.data-table-cell--action-link {
        display: block;
        margin-top: 0.25rem;
    }

    .data-table-cards--sm td.data-table-cell--action-link > .data-table-cell__value {
        display: none;
    }

    .data-table-cards--sm .data-table-action-link {
        display: block;
    }

    .data-table-cards--sm .data-table-cell--select .form-check-input {
        width: 1.5rem;
        height: 1.5rem;
    }

    /* Row actions: the inline buttons give way to the "more" menu in the card header. */
    .data-table-cards--sm td.data-table-cell--actions > .data-table-cell__value,
    .data-table-cards--sm > .table > tbody > tr > td.data-table-cell--actions-extra {
        display: none;
    }

    .data-table-cards--sm .data-table-actions-menu {
        display: block;
    }

    /* Empty state: one full-width block, not a data card. */
    .data-table-cards--sm > .table > tbody > tr.data-table-row--empty {
        display: block;
        padding: 0;
        background: none;
        border: 0;
    }

    .data-table-cards--sm > .table > tbody > tr.data-table-row--empty > td {
        display: block;
    }
}

@container data-table-cards (max-width: 767.98px) {
    .data-table-cards--md > .table,
    .data-table-cards--md > .table > thead {
        display: block;
    }

    /* Headers stay in the accessibility tree (no display: none). A header becomes visible while its
       sort link has keyboard focus; the "select page" checkbox stays visible as a bar. */
    .data-table-cards--md > .table > thead > tr {
        display: flex;
        padding: 0 1rem;
    }

    .data-table-cards--md > .table > thead th {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip-path: inset(50%);
        white-space: nowrap;
        border: 0;
    }

    .data-table-cards--md > .table > thead th:focus-within,
    .data-table-cards--md > .table > thead th.data-table-cell--select {
        position: static;
        width: auto !important;
        height: auto;
        margin: 0;
        padding: 0.5rem 0;
        overflow: visible;
        clip-path: none;
        background: none;
    }

    .data-table-cards--md .data-table-select-page .data-table-cell__label {
        display: inline;
    }

    .data-table-cards--md > .table > tbody {
        display: grid;
        padding: 0.75rem;
        background: var(--tblr-bg-surface-secondary);
    }

    .data-table-cards--md > .table > tbody > tr {
        display: grid;
        align-items: start;
        padding: 0.75rem 1rem;
        background: var(--tblr-bg-surface);
        border: var(--tblr-border-width) solid var(--tblr-border-color);
        border-radius: var(--tblr-border-radius);
    }

    .data-table-cards--md > .table > tbody > tr:has([data-bulk-selection-target="item"]:checked) {
        border-color: var(--tblr-primary);
        box-shadow: 0 0 0 1px var(--tblr-primary);
    }

    /* text-end, text-nowrap, w-1 and row highlights come from the table config and are meant for the
       table; cards reset them and colour only the title with --data-table-row-highlight. */
    .data-table-cards--md > .table > tbody > tr > td {
        display: grid;
        width: auto !important;
        padding: 0;
        border: 0;
        background-color: transparent !important;
        box-shadow: none;
        text-align: start !important;
        white-space: normal !important;
    }

    .data-table-cards--md .data-table-cell__label {
        display: block;
        overflow-wrap: break-word;
        hyphens: auto;
    }

    .data-table-cards--md .data-table-cell__value {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    /* Cells that label their parts (mobileLabel: false) use the same label/value columns. */
    .data-table-cards--md .data-table-cell__pair {
        display: grid;
        grid-template-columns: minmax(6rem, 40%) minmax(0, 1fr);
        gap: 0.75rem;
        align-items: baseline;
    }

    .data-table-cards--md .data-table-cell__pair + .data-table-cell__pair {
        margin-top: 0.5rem;
    }

    /* Cell templates that centre their content (boolean icons) align with the other values. */
    .data-table-cards--md .data-table-cell__value > .text-center {
        text-align: start !important;
    }

    /* Truncated badges (facets) wrap in cards instead; centred and clipped they lose both ends. */
    .data-table-cards--md .data-table-cell__value .text-truncate {
        text-align: start;
        white-space: normal !important;
    }

    .data-table-cards--md > .table > tbody > tr > td.data-table-cell--primary,
    .data-table-cards--md > .table > tbody > tr > td.data-table-cell--select,
    .data-table-cards--md > .table > tbody > tr > td.data-table-cell--actions {
        display: block;
    }

    .data-table-cards--md > .table > tbody > tr > td.data-table-cell--primary {
        margin: -0.25rem -0.5rem;
        padding: 0.25rem 0.5rem;
        border-radius: var(--tblr-border-radius);
        background-color: var(--data-table-row-highlight, transparent) !important;
        font-size: 1rem;
        font-weight: var(--tblr-font-weight-medium);
    }

    /* Title box: the title and its parts share one background (--data-table-row-highlight). Negative
       margins close the row gap between them without overlapping: the highlight is translucent. */
    .data-table-cards--md > .table > tbody > tr > td.data-table-cell--title {
        display: block;
        margin: -0.25rem -0.5rem -0.25rem;
        padding: 0 0.5rem 0.25rem;
        border-radius: 0 0 var(--tblr-border-radius) var(--tblr-border-radius);
        background-color: var(--data-table-row-highlight, transparent) !important;
        text-align: end !important;
    }

    .data-table-cards--md > .table > tbody > tr:has(> td.data-table-cell--title) > td.data-table-cell--primary {
        border-bottom-left-radius: 0;
        border-bottom-right-radius: 0;
    }

    .data-table-cards--md > .table > tbody > tr > td.data-table-cell--action-link {
        display: block;
        margin-top: 0.25rem;
    }

    .data-table-cards--md td.data-table-cell--action-link > .data-table-cell__value {
        display: none;
    }

    .data-table-cards--md .data-table-action-link {
        display: block;
    }

    .data-table-cards--md .data-table-cell--select .form-check-input {
        width: 1.5rem;
        height: 1.5rem;
    }

    /* Row actions: the inline buttons give way to the "more" menu in the card header. */
    .data-table-cards--md td.data-table-cell--actions > .data-table-cell__value,
    .data-table-cards--md > .table > tbody > tr > td.data-table-cell--actions-extra {
        display: none;
    }

    .data-table-cards--md .data-table-actions-menu {
        display: block;
    }

    /* Empty state: one full-width block, not a data card. */
    .data-table-cards--md > .table > tbody > tr.data-table-row--empty {
        display: block;
        padding: 0;
        background: none;
        border: 0;
    }

    .data-table-cards--md > .table > tbody > tr.data-table-row--empty > td {
        display: block;
    }
}

@container data-table-cards (max-width: 991.98px) {
    .data-table-cards--lg > .table,
    .data-table-cards--lg > .table > thead {
        display: block;
    }

    /* Headers stay in the accessibility tree (no display: none). A header becomes visible while its
       sort link has keyboard focus; the "select page" checkbox stays visible as a bar. */
    .data-table-cards--lg > .table > thead > tr {
        display: flex;
        padding: 0 1rem;
    }

    .data-table-cards--lg > .table > thead th {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip-path: inset(50%);
        white-space: nowrap;
        border: 0;
    }

    .data-table-cards--lg > .table > thead th:focus-within,
    .data-table-cards--lg > .table > thead th.data-table-cell--select {
        position: static;
        width: auto !important;
        height: auto;
        margin: 0;
        padding: 0.5rem 0;
        overflow: visible;
        clip-path: none;
        background: none;
    }

    .data-table-cards--lg .data-table-select-page .data-table-cell__label {
        display: inline;
    }

    .data-table-cards--lg > .table > tbody {
        display: grid;
        padding: 0.75rem;
        background: var(--tblr-bg-surface-secondary);
    }

    .data-table-cards--lg > .table > tbody > tr {
        display: grid;
        align-items: start;
        padding: 0.75rem 1rem;
        background: var(--tblr-bg-surface);
        border: var(--tblr-border-width) solid var(--tblr-border-color);
        border-radius: var(--tblr-border-radius);
    }

    .data-table-cards--lg > .table > tbody > tr:has([data-bulk-selection-target="item"]:checked) {
        border-color: var(--tblr-primary);
        box-shadow: 0 0 0 1px var(--tblr-primary);
    }

    /* text-end, text-nowrap, w-1 and row highlights come from the table config and are meant for the
       table; cards reset them and colour only the title with --data-table-row-highlight. */
    .data-table-cards--lg > .table > tbody > tr > td {
        display: grid;
        width: auto !important;
        padding: 0;
        border: 0;
        background-color: transparent !important;
        box-shadow: none;
        text-align: start !important;
        white-space: normal !important;
    }

    .data-table-cards--lg .data-table-cell__label {
        display: block;
        overflow-wrap: break-word;
        hyphens: auto;
    }

    .data-table-cards--lg .data-table-cell__value {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    /* Cells that label their parts (mobileLabel: false) use the same label/value columns. */
    .data-table-cards--lg .data-table-cell__pair {
        display: grid;
        grid-template-columns: minmax(6rem, 40%) minmax(0, 1fr);
        gap: 0.75rem;
        align-items: baseline;
    }

    .data-table-cards--lg .data-table-cell__pair + .data-table-cell__pair {
        margin-top: 0.5rem;
    }

    /* Cell templates that centre their content (boolean icons) align with the other values. */
    .data-table-cards--lg .data-table-cell__value > .text-center {
        text-align: start !important;
    }

    /* Truncated badges (facets) wrap in cards instead; centred and clipped they lose both ends. */
    .data-table-cards--lg .data-table-cell__value .text-truncate {
        text-align: start;
        white-space: normal !important;
    }

    .data-table-cards--lg > .table > tbody > tr > td.data-table-cell--primary,
    .data-table-cards--lg > .table > tbody > tr > td.data-table-cell--select,
    .data-table-cards--lg > .table > tbody > tr > td.data-table-cell--actions {
        display: block;
    }

    .data-table-cards--lg > .table > tbody > tr > td.data-table-cell--primary {
        margin: -0.25rem -0.5rem;
        padding: 0.25rem 0.5rem;
        border-radius: var(--tblr-border-radius);
        background-color: var(--data-table-row-highlight, transparent) !important;
        font-size: 1rem;
        font-weight: var(--tblr-font-weight-medium);
    }

    /* Title box: the title and its parts share one background (--data-table-row-highlight). Negative
       margins close the row gap between them without overlapping: the highlight is translucent. */
    .data-table-cards--lg > .table > tbody > tr > td.data-table-cell--title {
        display: block;
        margin: -0.25rem -0.5rem -0.25rem;
        padding: 0 0.5rem 0.25rem;
        border-radius: 0 0 var(--tblr-border-radius) var(--tblr-border-radius);
        background-color: var(--data-table-row-highlight, transparent) !important;
        text-align: end !important;
    }

    .data-table-cards--lg > .table > tbody > tr:has(> td.data-table-cell--title) > td.data-table-cell--primary {
        border-bottom-left-radius: 0;
        border-bottom-right-radius: 0;
    }

    .data-table-cards--lg > .table > tbody > tr > td.data-table-cell--action-link {
        display: block;
        margin-top: 0.25rem;
    }

    .data-table-cards--lg td.data-table-cell--action-link > .data-table-cell__value {
        display: none;
    }

    .data-table-cards--lg .data-table-action-link {
        display: block;
    }

    .data-table-cards--lg .data-table-cell--select .form-check-input {
        width: 1.5rem;
        height: 1.5rem;
    }

    /* Row actions: the inline buttons give way to the "more" menu in the card header. */
    .data-table-cards--lg td.data-table-cell--actions > .data-table-cell__value,
    .data-table-cards--lg > .table > tbody > tr > td.data-table-cell--actions-extra {
        display: none;
    }

    .data-table-cards--lg .data-table-actions-menu {
        display: block;
    }

    /* Empty state: one full-width block, not a data card. */
    .data-table-cards--lg > .table > tbody > tr.data-table-row--empty {
        display: block;
        padding: 0;
        background: none;
        border: 0;
    }

    .data-table-cards--lg > .table > tbody > tr.data-table-row--empty > td {
        display: block;
    }
}

/* IVENA-inspired closure timeline. Neutral cells mean “no closure represented”,
   not that the department was proven to be open. */
.closure-timeline-scroll {
    overflow-x: auto;
    overscroll-behavior-inline: contain;
}

.closure-timeline-scroll--years {
    max-height: min(65vh, 42rem);
    overflow-y: auto;
}

.closure-timeline-grid {
    display: grid;
    grid-template-columns: minmax(12rem, 16rem) repeat(var(--closure-columns), minmax(7rem, 1fr));
    min-width: max-content;
    border-bottom: 1px solid var(--tblr-border-color);
}

.closure-timeline-grid__label,
.closure-timeline-label {
    position: sticky;
    left: 0;
    z-index: 3;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 12rem;
    padding: 0.65rem 0.75rem;
    background: var(--tblr-bg-surface);
    border-right: 1px solid var(--tblr-border-color);
}

.closure-timeline-grid__label small,
.closure-timeline-label small {
    margin-top: 0.125rem;
    color: var(--tblr-secondary-color);
    font-size: 0.7rem;
    line-height: 1.25;
}

.closure-timeline-cell {
    display: flex;
    min-height: 4.5rem;
    padding: 0.45rem;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: var(--tblr-body-color);
    background: color-mix(in srgb, var(--tblr-bg-surface-secondary) 75%, transparent);
    border-right: 1px solid var(--tblr-border-color);
    text-align: center;
    text-decoration: none;
}

.closure-timeline-cell > span {
    color: var(--tblr-body-color);
    font-weight: 700;
}

.closure-timeline-cell--closed {
    color: var(--tblr-primary);
    background: var(--tblr-primary-lt);
}

.closure-timeline-cell--multiple {
    background-color: var(--tblr-primary-lt);
    background-image: repeating-linear-gradient(
        135deg,
        transparent 0,
        transparent 7px,
        color-mix(in srgb, var(--tblr-primary) 20%, transparent) 7px,
        color-mix(in srgb, var(--tblr-primary) 20%, transparent) 12px
    );
}

.closure-timeline-cell:hover,
.closure-timeline-cell:focus-visible {
    position: relative;
    z-index: 2;
    outline: 2px solid var(--tblr-primary);
    outline-offset: -2px;
}

.closure-timeline-ruler,
.closure-timeline-lane,
.closure-event-ruler,
.closure-timeline-department,
.closure-timeline-week-ruler,
.closure-timeline-week-lane {
    display: grid;
    grid-template-columns: minmax(12rem, 16rem) minmax(48rem, 1fr);
    min-width: 64rem;
}

.closure-timeline-ruler {
    position: sticky;
    top: 0;
    z-index: 4;
    min-height: 2.5rem;
    color: var(--tblr-body-color);
    background: var(--tblr-bg-surface-secondary);
    border-bottom: 1px solid var(--tblr-border-color);
}

.closure-event-ruler {
    align-items: center;
    min-height: 2.75rem;
    color: var(--tblr-body-color);
    background: var(--tblr-bg-surface-secondary);
    border-bottom: 1px solid var(--tblr-border-color);
}

.closure-timeline-hours,
.closure-timeline-track {
    position: relative;
}

.closure-timeline-hours span {
    position: absolute;
    top: 0.65rem;
    translate: -50% 0;
    color: var(--tblr-secondary-color);
    font-size: 0.7rem;
    font-weight: 700;
}

.closure-timeline-hours span:first-child {
    translate: 0;
}

.closure-timeline-hours span:last-child {
    translate: -100% 0;
}

.closure-timeline-day {
    width: 100%;
    min-width: 64rem;
    padding: 0.4rem 0.75rem;
    color: var(--tblr-body-color);
    background: var(--tblr-bg-surface-secondary);
    border-bottom: 1px solid var(--tblr-border-color);
    font-weight: 700;
}

.closure-timeline-department {
    color: var(--tblr-body-color);
    background: color-mix(in srgb, var(--tblr-bg-surface-secondary) 75%, var(--tblr-bg-surface));
    border-bottom: 1px solid var(--tblr-border-color);
}

.closure-timeline-department__label {
    position: sticky;
    left: 0;
    z-index: 3;
    display: flex;
    padding: 0.45rem 0.75rem;
    flex-direction: column;
    background: var(--tblr-bg-surface-secondary);
    border-left: 3px solid var(--tblr-primary);
    border-right: 1px solid var(--tblr-border-color);
}

.closure-timeline-department__label small {
    color: var(--tblr-secondary-color);
    font-size: 0.7rem;
    line-height: 1.25;
}

.closure-timeline-lane {
    min-height: 3.25rem;
    border-bottom: 1px solid var(--tblr-border-color);
}

.closure-timeline-scroll[data-testid='closure-timeline-segments'] .closure-timeline-lane .closure-timeline-label,
[data-testid='closure-timeline-period-departments'] .closure-timeline-week-lane .closure-timeline-label {
    padding-left: 1.5rem;
}

.closure-timeline-track {
    margin-block: 0.55rem;
    background-color: color-mix(in srgb, var(--tblr-bg-surface-secondary) 75%, transparent);
    background-image: repeating-linear-gradient(
        90deg,
        transparent 0,
        transparent calc(4.1667% - 1px),
        var(--tblr-border-color) calc(4.1667% - 1px),
        var(--tblr-border-color) 4.1667%
    );
}

.closure-timeline-week-ruler {
    position: sticky;
    top: 0;
    z-index: 4;
    min-height: 2.75rem;
    color: var(--tblr-body-color);
    background: var(--tblr-bg-surface-secondary);
    border-bottom: 1px solid var(--tblr-border-color);
}

.closure-timeline-week-axis,
.closure-timeline-week-track {
    position: relative;
}

.closure-timeline-week-day {
    position: absolute;
    inset-block: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    padding-inline: 0.25rem;
    border-right: 1px solid var(--tblr-border-color);
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--tblr-body-color);
    text-decoration: none;
    white-space: nowrap;
}

.closure-timeline-week-day:hover,
.closure-timeline-week-day:focus-visible {
    z-index: 1;
    color: var(--tblr-primary);
    background: var(--tblr-primary-lt);
    outline: 2px solid var(--tblr-primary);
    outline-offset: -2px;
}

.closure-timeline-week-lane {
    min-height: 3.5rem;
    border-bottom: 1px solid var(--tblr-border-color);
}

.closure-timeline-week-track {
    margin-block: 0.55rem;
    background: color-mix(in srgb, var(--tblr-bg-surface-secondary) 75%, transparent);
}

.closure-timeline-week-gridline {
    position: absolute;
    inset-block: 0;
    width: 1px;
    background: var(--tblr-border-color);
    pointer-events: none;
}

.closure-timeline-segment {
    position: absolute;
    top: 0.25rem;
    bottom: 0.25rem;
    z-index: 1;
    min-width: 0.2rem;
    border: 1px solid color-mix(in srgb, var(--tblr-primary) 70%, #000);
    border-radius: 0.2rem;
    background: var(--tblr-primary);
    box-shadow: 0 1px 2px rgb(0 0 0 / 20%);
}

.closure-timeline-segment--grouped,
.closure-timeline-segment--parallel {
    background-image: repeating-linear-gradient(135deg, transparent 0, transparent 6px, rgb(255 255 255 / 22%) 6px, rgb(255 255 255 / 22%) 10px);
}

.closure-timeline-segment--group,
.closure-timeline-segment--source_group {
    border-color: color-mix(in srgb, var(--tblr-blue) 70%, #000);
    background-color: var(--tblr-blue);
}

.closure-timeline-segment--cluster {
    border-color: color-mix(in srgb, var(--tblr-azure) 70%, #000);
    background-color: var(--tblr-azure);
}

.closure-timeline-segment--single {
    border-color: color-mix(in srgb, var(--tblr-purple) 70%, #000);
    background-color: var(--tblr-purple);
}

.closure-timeline-segment:hover,
.closure-timeline-segment:focus-visible {
    z-index: 2;
    outline: 2px solid var(--tblr-primary);
    outline-offset: 2px;
}

.closure-timeline-segment--context {
    z-index: 0;
    box-shadow: none;
}

.closure-timeline-segment--context:hover,
.closure-timeline-segment--context:focus-visible {
    outline-color: var(--tblr-secondary);
}

.closure-timeline-segment--context.closure-timeline-segment--group,
.closure-timeline-segment--context.closure-timeline-segment--source_group {
    border-color: color-mix(in srgb, var(--tblr-blue) 45%, var(--tblr-border-color));
    background: color-mix(in srgb, var(--tblr-blue) 28%, transparent);
}

.closure-timeline-segment--context.closure-timeline-segment--cluster {
    border-color: color-mix(in srgb, var(--tblr-azure) 45%, var(--tblr-border-color));
    background: color-mix(in srgb, var(--tblr-azure) 28%, transparent);
}

.closure-timeline-segment--context.closure-timeline-segment--single {
    border-color: color-mix(in srgb, var(--tblr-purple) 45%, var(--tblr-border-color));
    background: color-mix(in srgb, var(--tblr-purple) 28%, transparent);
}

[data-testid='closure-event-timeline'].closure-timeline-scroll {
    --closure-event-timeline-track-min: 64rem;
    padding-inline-end: 0.75rem;
}

[data-testid='closure-event-timeline'] .closure-timeline-day {
    width: 100%;
    min-width: calc(16rem + var(--closure-event-timeline-track-min));
    box-sizing: border-box;
}

[data-testid='closure-event-timeline'] .closure-timeline-ruler,
[data-testid='closure-event-timeline'] .closure-timeline-lane {
    grid-template-columns: minmax(12rem, 16rem) minmax(var(--closure-event-timeline-track-min), 1fr);
    width: 100%;
    min-width: calc(16rem + var(--closure-event-timeline-track-min));
    box-sizing: border-box;
}

[data-testid='closure-event-timeline'] .closure-timeline-hours,
[data-testid='closure-event-timeline'] .closure-timeline-track {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

[data-testid='closure-event-timeline'] .closure-timeline-track {
    isolation: isolate;
}

.closure-timeline-segment--current,
.closure-timeline-segment--current.closure-timeline-segment--group,
.closure-timeline-segment--current.closure-timeline-segment--source_group,
.closure-timeline-segment--current.closure-timeline-segment--cluster,
.closure-timeline-segment--current.closure-timeline-segment--single {
    z-index: 2;
    border-width: 2px;
    border-style: solid;
    border-color: var(--tblr-body-color);
    outline: 2px dashed var(--tblr-body-color);
    outline-offset: 1px;
    background-color: var(--tblr-bg-surface);
    background-image: repeating-linear-gradient(
        135deg,
        transparent 0,
        transparent 4px,
        color-mix(in srgb, var(--tblr-body-color) 42%, transparent) 4px,
        color-mix(in srgb, var(--tblr-body-color) 42%, transparent) 6px
    );
}

.closure-timeline-segment__mark {
    position: absolute;
    top: 0.1rem;
    left: 0.15rem;
    z-index: 1;
    padding: 0 0.25rem;
    font-size: 0.65rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--tblr-body-color);
    background: var(--tblr-bg-surface);
    border: 1px solid var(--tblr-body-color);
}

.closure-timeline-swatch--current {
    border: 2px solid var(--tblr-body-color);
    background-color: var(--tblr-bg-surface);
    background-image: repeating-linear-gradient(
        135deg,
        transparent 0,
        transparent 4px,
        color-mix(in srgb, var(--tblr-body-color) 42%, transparent) 4px,
        color-mix(in srgb, var(--tblr-body-color) 42%, transparent) 6px
    );
}

.closure-timeline-swatch--context-group {
    border-color: color-mix(in srgb, var(--tblr-blue) 45%, var(--tblr-border-color));
    background: color-mix(in srgb, var(--tblr-blue) 28%, transparent);
}

.closure-timeline-swatch--context-cluster {
    border-color: color-mix(in srgb, var(--tblr-azure) 45%, var(--tblr-border-color));
    background: color-mix(in srgb, var(--tblr-azure) 28%, transparent);
}

.closure-timeline-swatch--context-single {
    border-color: color-mix(in srgb, var(--tblr-purple) 45%, var(--tblr-border-color));
    background: color-mix(in srgb, var(--tblr-purple) 28%, transparent);
}

.closure-timeline-legend {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1rem;
}

.closure-timeline-legend > span {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.closure-timeline-legend > small {
    flex-basis: 100%;
    color: var(--tblr-secondary-color);
}

.closure-timeline-swatch {
    width: 1.25rem;
    height: 0.75rem;
    border: 1px solid var(--tblr-border-color);
    border-radius: 0.15rem;
    background: var(--tblr-bg-surface-secondary);
}

.closure-timeline-swatch--closed {
    border-color: var(--tblr-primary);
    background: var(--tblr-primary-lt);
}

.closure-timeline-swatch--multiple {
    border-color: var(--tblr-primary);
    background: repeating-linear-gradient(135deg, var(--tblr-primary-lt) 0, var(--tblr-primary-lt) 5px, color-mix(in srgb, var(--tblr-primary) 25%, transparent) 5px, color-mix(in srgb, var(--tblr-primary) 25%, transparent) 9px);
}

.closure-timeline-swatch--group {
    border-color: var(--tblr-blue);
    background: var(--tblr-blue);
}

.closure-timeline-swatch--cluster {
    border-color: var(--tblr-azure);
    background: var(--tblr-azure);
}

.closure-timeline-swatch--single {
    border-color: var(--tblr-purple);
    background: var(--tblr-purple);
}

[data-testid="stats-closure-unit-name"] {
    display: inline-block;
    max-width: 18rem;
    white-space: normal;
    overflow-wrap: anywhere;
}

.closure-breakdown-rows > * + * {
    margin-top: 1rem;
}

.closure-breakdown-details {
    margin-top: 0.5rem;
}

.closure-breakdown-details[open] {
    display: flex;
    flex-direction: column;
}

.closure-breakdown-details > summary {
    order: 2;
    cursor: pointer;
    list-style: none;
}

.closure-breakdown-details > summary::marker,
.closure-breakdown-details > summary::-webkit-details-marker {
    display: none;
    content: none;
}

.closure-breakdown-details__rows {
    order: 1;
}

.closure-breakdown-details__hide,
.closure-breakdown-details[open] .closure-breakdown-details__show {
    display: none;
}

[data-controller='closure-analytics-charts'] {
    --closure-chart-current-fill: rgba(32, 107, 196, 0.22);
    --closure-chart-current-border: #1864ab;
    --closure-chart-other-fill: rgba(173, 181, 189, 0.14);
    --closure-chart-other-border: rgba(134, 142, 150, 0.55);
    --closure-chart-gap-border: #868e96;
    --closure-chart-marker-text: #fff;
}

[data-bs-theme='dark'] [data-controller='closure-analytics-charts'] {
    --closure-chart-current-fill: color-mix(in srgb, var(--tblr-primary) 32%, transparent);
    --closure-chart-current-border: color-mix(in srgb, var(--tblr-primary) 82%, white);
    --closure-chart-other-fill: color-mix(in srgb, var(--tblr-secondary) 20%, transparent);
    --closure-chart-other-border: color-mix(in srgb, var(--tblr-secondary) 55%, transparent);
    --closure-chart-gap-border: #adb5bd;
    --closure-chart-marker-text: #1a1d21;
}

.closure-chart-help > summary {
    cursor: pointer;
    font-size: 0.875rem;
    color: var(--tblr-secondary);
}

.closure-chart-help > summary:hover,
.closure-chart-help[open] > summary {
    color: var(--tblr-body-color);
}

.closure-chart-legend-swatch {
    display: inline-block;
    width: 1rem;
    height: 0.65rem;
    vertical-align: -0.1em;
    border: 1px solid var(--closure-chart-current-border);
    border-radius: 2px;
    background: var(--closure-chart-current-fill);
}

[data-controller='closure-analytics-charts'] .apexcharts-legend {
    display: flex !important;
    flex-flow: row wrap;
    justify-content: flex-start;
    gap: 0.25rem 0.875rem;
    padding: 0;
}

.closure-volume-chart-card .apexcharts-legend {
    justify-content: flex-end !important;
}

[data-controller='closure-analytics-charts'] .apexcharts-legend-series {
    display: inline-flex !important;
    align-items: center;
    margin: 0 !important;
}

.closure-breakdown-details[open] .closure-breakdown-details__hide {
    display: inline;
}

.benchmark-delta-heatmap__tooltip {
    position: fixed;
    z-index: 1080;
    pointer-events: none;
    max-width: 16rem;
    padding: 0.5rem 0.75rem;
    border-radius: 0.375rem;
    background: var(--tblr-bg-surface, #fff);
    border: 1px solid var(--tblr-border-color, rgba(0, 0, 0, 0.1));
    box-shadow: 0 0.25rem 1rem rgba(0, 0, 0, 0.12);
}

.import-processing-status-message {
    font-size: 1.125rem;
    font-weight: 600;
    line-height: 1.4;
    color: var(--tblr-body-color);
}

.import-processing-spinner-icon {
    width: 1.75rem;
    height: 1.75rem;
    animation: import-processing-spin 0.9s linear infinite;
}

@keyframes import-processing-spin {
    to {
        transform: rotate(360deg);
    }
}

.onboarding-step-action-icon {
    animation: onboarding-action-nudge 1.4s ease-in-out infinite;
}

@keyframes onboarding-action-nudge {
    0%,
    100% {
        transform: translateX(0);
    }

    50% {
        transform: translateX(0.2em);
    }
}

.case-flow-map-square {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    max-height: min(100%, 560px);
}

.case-flow-map-square .case-flow-map-container {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    border-radius: var(--tblr-border-radius, 4px);
    overflow: hidden;
    background: var(--tblr-bg-surface-secondary, #f8f9fa);
}

.case-flow-map-container.leaflet-container {
    height: 100%;
    width: 100%;
    font: inherit;
}

/* Maps without background tiles (empty MAP_TILE_URL, offline use). */
.leaflet-container.geo-map--no-basemap {
    background: var(--tblr-bg-surface-secondary, #f8f9fa);
}

.case-flow-map-container .leaflet-pane {
    z-index: 1;
}

.case-flow-map-container .leaflet-top,
.case-flow-map-container .leaflet-bottom {
    z-index: 2;
}

.catalog-orientation-map-frame {
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 3;
    max-height: 420px;
    min-height: 220px;
}

.catalog-orientation-map-frame .case-flow-map-container {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    border-radius: var(--tblr-border-radius, 4px);
    overflow: hidden;
    background: var(--tblr-bg-surface-secondary, #f8f9fa);
}

.catalog-orientation-map-pin,
.catalog-orientation-map-origin {
    background: transparent;
    border: 0;
}

.catalog-orientation-map-legend-swatch {
    flex: 0 0 0.85rem;
    width: 0.85rem;
    height: 0.85rem;
    border: 1px solid var(--tblr-border-color, #dee2e6);
}

.catalog-orientation-map-legend-swatch-origin {
    background: #339af0;
    border-color: #1864ab;
}

.catalog-orientation-map-legend-swatch-destination {
    background: #d9480f;
    border-color: #ffffff;
    clip-path: polygon(50% 100%, 0 0, 100% 0);
}

.catalog-orientation-map-legend-swatch-context {
    background: #1864ab;
    border-color: #ffffff;
    clip-path: polygon(50% 100%, 0 0, 100% 0);
}

.catalog-orientation-map-legend-swatch-isochrone-outside {
    background: rgba(253, 126, 20, 0.28);
    border-color: #e8590c;
    border-style: dashed;
    border-width: 2px;
}

.catalog-orientation-map-legend-swatch-isochrone-band {
    background: rgba(253, 126, 20, 0.45);
    border-color: #d9480f;
    border-width: 2px;
}

.catalog-year-heatmap {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.catalog-year-heatmap-row {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.5rem;
}

.catalog-year-heatmap-cell {
    --catalog-heat: 0;
    --catalog-cell-fg: var(--tblr-body-color, #1e293b);
    display: block;
    border-radius: var(--tblr-border-radius, 4px);
    padding: 0.5rem 0.35rem;
    text-align: center;
    color: var(--catalog-cell-fg);
    text-decoration: none;
    background: color-mix(
        in srgb,
        var(--tblr-primary, #206bc4) calc(var(--catalog-heat) * 85%),
        var(--tblr-bg-surface-secondary, #f1f5f9)
    );
    border: 1px solid var(--tblr-border-color, rgba(0, 0, 0, 0.08));
}

.catalog-year-heatmap-cell.is-hot {
    --catalog-cell-fg: #fff;
}

a.catalog-year-heatmap-cell:any-link,
a.catalog-year-heatmap-cell:hover,
a.catalog-year-heatmap-cell:focus-visible,
a.catalog-year-heatmap-cell:active {
    color: var(--catalog-cell-fg);
    text-decoration: none;
}

a.catalog-year-heatmap-cell:hover,
a.catalog-year-heatmap-cell:focus-visible {
    outline: 2px solid var(--tblr-primary, #206bc4);
    outline-offset: 1px;
}

.catalog-year-heatmap-cell.is-empty {
    color: var(--tblr-secondary, #6c7a91);
}

.catalog-year-heatmap-cell.is-sensitive .catalog-year-heatmap-count {
    font-style: italic;
    opacity: 0.85;
}

.catalog-year-heatmap-cell.is-future {
    color: var(--tblr-secondary, #6c7a91);
    background: transparent;
    border-style: dashed;
    opacity: 0.7;
}

.catalog-year-heatmap-year {
    font-weight: 600;
    line-height: 1.2;
}

.catalog-year-heatmap-count {
    margin-top: 0.15rem;
    font-size: 0.8125rem;
    opacity: 0.9;
}

/* Import detail: daily data coverage, GitHub-style (weeks as columns, Monday to Sunday) */
.import-coverage-calendar {
    --import-coverage-cell: 0.625rem;
    --import-coverage-gap: 3px;
    display: flex;
    gap: var(--import-coverage-gap);
    max-width: 100%;
    font-size: 0.75rem;
    line-height: 1;
    color: var(--tblr-secondary, #6c7a91);
}

.import-coverage-calendar.is-medium {
    --import-coverage-cell: 1rem;
    --import-coverage-gap: 4px;
}

.import-coverage-calendar.is-short {
    --import-coverage-cell: 1.25rem;
    --import-coverage-gap: 4px;
}

.import-coverage-weekdays,
.import-coverage-week {
    display: grid;
    grid-template-rows: 1rem repeat(7, var(--import-coverage-cell));
    gap: var(--import-coverage-gap);
}

.import-coverage-weekdays span {
    display: flex;
    align-items: center;
    padding-right: 0.25rem;
}

.import-coverage-weeks {
    display: flex;
    gap: var(--import-coverage-gap);
    min-width: 0;
    overflow-x: auto;
    padding-bottom: 2px;
}

.import-coverage-week {
    grid-template-columns: var(--import-coverage-cell);
}

.import-coverage-month {
    overflow: visible;
    white-space: nowrap;
}

.import-coverage-cell {
    display: inline-block;
    width: var(--import-coverage-cell, 0.75rem);
    height: var(--import-coverage-cell, 0.75rem);
    border-radius: 3px;
    vertical-align: middle;
}

.import-coverage-cell.is-data { background: color-mix(in srgb, var(--tblr-primary, #206bc4) 35%, var(--tblr-bg-surface-secondary, #f1f5f9)); }
.import-coverage-cell.is-level-2 { background: color-mix(in srgb, var(--tblr-primary, #206bc4) 55%, var(--tblr-bg-surface-secondary, #f1f5f9)); }
.import-coverage-cell.is-level-3 { background: color-mix(in srgb, var(--tblr-primary, #206bc4) 78%, var(--tblr-bg-surface-secondary, #f1f5f9)); }
.import-coverage-cell.is-level-4 { background: var(--tblr-primary, #206bc4); }

.import-coverage-cell.is-none {
    background: var(--tblr-bg-surface-secondary, #f1f5f9);
    box-shadow: inset 0 0 0 1px var(--tblr-border-color, #e6e7e9);
}

.import-coverage-cell.is-gap {
    background: color-mix(in srgb, var(--tblr-yellow, #f59f00) 20%, transparent);
    box-shadow: inset 0 0 0 1px var(--tblr-yellow, #f59f00);
}

.import-coverage-legend {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1.25rem;
}

.import-coverage-legend .import-coverage-cell {
    --import-coverage-cell: 0.75rem;
}

.import-coverage-legend-scale {
    display: inline-flex;
    align-items: center;
    gap: 3px;
}

.import-coverage-gaps-table {
    table-layout: fixed;
}

.import-coverage-gaps-table__date {
    width: 8rem;
}

.import-coverage-gaps-details[open] {
    display: flex;
    flex-direction: column;
}

.import-coverage-gaps-details > summary {
    order: 2;
    cursor: pointer;
    list-style: none;
}

.import-coverage-gaps-details > summary::marker,
.import-coverage-gaps-details > summary::-webkit-details-marker {
    display: none;
    content: none;
}

.import-coverage-gaps-details__rows {
    order: 1;
}

.import-coverage-gaps-details__hide,
.import-coverage-gaps-details[open] .import-coverage-gaps-details__show {
    display: none;
}

.import-coverage-gaps-details[open] .import-coverage-gaps-details__hide {
    display: inline;
}

.data-quality-drawer {
    --bs-offcanvas-width: min(28rem, 100vw);
}

@media (min-width: 992px) {
    #analysisExplorerShelf.offcanvas {
        position: static;
        transform: none;
        visibility: visible;
        height: auto;
        width: auto;
        max-height: none;
        border: 0;
        border-bottom: var(--tblr-border-width) solid var(--tblr-border-color);
        border-radius: 0;
        box-shadow: none;
        background: transparent;
        z-index: auto;
    }

    #analysisExplorerShelf .offcanvas-header {
        display: none;
    }

    #analysisExplorerShelf .offcanvas-body {
        display: block;
        padding: 1rem 1.25rem;
        overflow: visible;
    }
}

#analysisExplorerShelf .input-group > .d-none {
    display: none;
}

.stats-aex-chart-summary {
    flex: 1 1 0;
    min-width: 0;
}

.stats-aex-chart-toolbar .btn {
    --tblr-btn-line-height: 1rem;
    --tblr-btn-icon-size: 1rem;
    height: 2rem;
}

.stats-aex-chart-toolbar .btn .icon {
    width: 1rem;
    height: 1rem;
    min-width: 1rem;
    margin: 0;
}

.stats-aex-table-card .card-header .form-check {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-height: 0;
    margin-bottom: 0;
    padding-left: 0;
}

.stats-aex-table-card .card-header .form-check .form-check-input {
    float: none;
    margin: 0;
}

#analysisExplorerShelf .input-group > [data-testid="stats-analysis-explorer-row-grain-field"]:not(.d-none),
#analysisExplorerShelf .input-group > [data-testid="stats-analysis-explorer-column-grain-field"]:not(.d-none) {
    display: flex;
    flex: 0 0 42%;
    max-width: 42%;
}

#analysisExplorerShelf .input-group > [data-testid="stats-analysis-explorer-row-grain-field"] .form-select,
#analysisExplorerShelf .input-group > [data-testid="stats-analysis-explorer-column-grain-field"] .form-select {
    width: 100%;
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.analysis-explorer-edit-drawer .offcanvas-body {
    padding: 0.5rem 0.75rem;
}

.analysis-explorer-edit-drawer .offcanvas-header {
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
}

.filter-drawer > .offcanvas-body {
    flex: 1 1 auto;
    padding: 0.5rem 0.75rem;
    overflow-y: auto;
}

.filter-drawer > .offcanvas-footer {
    flex: 0 0 auto;
    background: var(--tblr-bg-surface, #fff);
}

.filter-drawer.offcanvas {
    display: flex;
    flex-direction: column;
    max-height: 100vh;
    max-height: 100dvh;
}

.filter-drawer .accordion-body,
.analysis-explorer-edit-drawer .accordion-body,
.export-filter-accordion .accordion-body {
    padding: 0.375rem 0.5rem;
}

.filter-drawer .accordion-button,
.analysis-explorer-edit-drawer .accordion-button,
.export-filter-accordion .accordion-button {
    font-size: 0.9375rem;
    padding: 0.5rem 0.75rem;
    gap: 0.375rem;
}

.filter-drawer .accordion-button::after,
.analysis-explorer-edit-drawer .accordion-button::after,
.export-filter-accordion .accordion-button::after {
    display: none;
}

.filter-drawer .analysis-explorer-accordion-state-icon,
.analysis-explorer-edit-drawer .analysis-explorer-accordion-state-icon,
.export-filter-accordion .analysis-explorer-accordion-state-icon {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    color: var(--tblr-secondary, #6c757d);
}

.filter-drawer .analysis-explorer-accordion-state-icon .icon,
.analysis-explorer-edit-drawer .analysis-explorer-accordion-state-icon .icon,
.export-filter-accordion .analysis-explorer-accordion-state-icon .icon {
    width: 1rem;
    height: 1rem;
}

.filter-drawer .accordion-button .analysis-explorer-accordion-state-icon--expanded,
.analysis-explorer-edit-drawer .accordion-button .analysis-explorer-accordion-state-icon--expanded,
.export-filter-accordion .accordion-button .analysis-explorer-accordion-state-icon--expanded {
    display: inline-flex;
}

.filter-drawer .accordion-button .analysis-explorer-accordion-state-icon--collapsed,
.analysis-explorer-edit-drawer .accordion-button .analysis-explorer-accordion-state-icon--collapsed,
.export-filter-accordion .accordion-button .analysis-explorer-accordion-state-icon--collapsed {
    display: none;
}

.filter-drawer .accordion-button.collapsed .analysis-explorer-accordion-state-icon--expanded,
.analysis-explorer-edit-drawer .accordion-button.collapsed .analysis-explorer-accordion-state-icon--expanded,
.export-filter-accordion .accordion-button.collapsed .analysis-explorer-accordion-state-icon--expanded {
    display: none;
}

.filter-drawer .accordion-button.collapsed .analysis-explorer-accordion-state-icon--collapsed,
.analysis-explorer-edit-drawer .accordion-button.collapsed .analysis-explorer-accordion-state-icon--collapsed,
.export-filter-accordion .accordion-button.collapsed .analysis-explorer-accordion-state-icon--collapsed {
    display: inline-flex;
}

.filter-drawer .accordion-button:not(.collapsed),
.analysis-explorer-edit-drawer .accordion-button:not(.collapsed),
.export-filter-accordion .accordion-button:not(.collapsed) {
    box-shadow: none;
}

.export-filter-accordion .row.g-2 {
    --bs-gutter-y: 0.375rem;
    --bs-gutter-x: 0.5rem;
}

.export-filter-accordion .export-hospitals-select-all {
    min-height: 1.75rem;
    padding-bottom: 0.375rem;
    margin-bottom: 0.125rem;
    border-bottom: 1px solid var(--tblr-border-color, rgba(0, 0, 0, 0.08));
}

.export-filter-accordion .export-hospitals-select-all .form-check-label {
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.4;
    color: var(--tblr-secondary, #6c757d);
}

.export-filter-accordion .form-check {
    min-height: 1.75rem;
    margin-bottom: 0;
}

.export-filter-accordion .form-check-label {
    font-size: 0.9375rem;
    line-height: 1.4;
}

.filter-drawer .mb-3,
.analysis-explorer-edit-drawer .mb-3 {
    margin-bottom: 0.375rem !important;
}

.filter-drawer .form-label,
.analysis-explorer-edit-drawer .form-label {
    margin-bottom: 0.125rem;
    font-size: 0.875rem;
}

.filter-drawer .row.g-2,
.analysis-explorer-edit-drawer .row.g-3 {
    --bs-gutter-y: 0.375rem;
    --bs-gutter-x: 0.5rem;
}

.filter-drawer .allocation-filter-checkboxes {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.filter-drawer .allocation-filter-checkbox-group {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}

.filter-drawer .allocation-filter-checkbox-group + .allocation-filter-checkbox-group {
    padding-top: 0.25rem;
    border-top: 1px solid var(--tblr-border-color, rgba(0, 0, 0, 0.08));
}

.filter-drawer .allocation-filter-checkboxes .form-check-label {
    font-size: 0.9375rem;
    line-height: 1.4;
}

.filter-drawer .allocation-filter-checkboxes .form-check {
    min-height: 1.75rem;
    margin-bottom: 0;
}

.stats-aex-table-card-body {
    overflow: hidden;
}

.stats-aex-table-scroll {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
}

.stats-aex-table-scroll .stats-aex-table {
    width: 100%;
    min-width: 100%;
    table-layout: fixed;
    margin-bottom: 0;
}

.stats-aex-table-scroll .stats-aex-table:has(thead th:nth-child(4)) {
    width: max-content;
    table-layout: auto;
}

.stats-aex-table-scroll .stats-aex-table > :not(caption) > tr > :first-child {
    width: 16.666%;
    max-width: 16.666%;
    min-width: 0;
    white-space: normal;
    word-break: break-word;
}

.stats-aex-table-scroll .stats-aex-table:has(thead th:nth-child(4)) > :not(caption) > tr > :first-child {
    width: 1%;
    max-width: 12rem;
    min-width: 4.5rem;
}

.stats-aex-table-scroll .table-sort.sorted-asc::after {
    content: ' \2191';
    font-size: 0.75em;
}

.stats-aex-table-scroll .table-sort.sorted-desc::after {
    content: ' \2193';
    font-size: 0.75em;
}

.data-quality-indicator-btn {
    max-width: 100%;
}

.data-quality-dimensions-table .data-quality-dimension-note-row > td {
    padding: 0;
    border-top: none;
}

.data-quality-dimensions-table .data-quality-dimension-row + .data-quality-dimension-note-row > td {
    border-top: none;
}

.data-quality-dimension-note-subtable {
    --bs-table-bg: var(--tblr-bg-surface-secondary, #f8f9fa);
    width: 100%;
    table-layout: fixed;
}

.data-quality-dimension-note-subtable td {
    padding: 0.375rem 0.75rem;
    border: none;
    border-left: 3px solid var(--tblr-border-color, #dee2e6);
}

.data-quality-details-accordion .accordion-button {
    font-size: 0.9375rem;
    padding-top: 0.625rem;
    padding-bottom: 0.625rem;
}

.data-quality-details-accordion .accordion-button:not(.collapsed) {
    box-shadow: none;
}

.data-quality-allocation-table th {
    font-weight: 600;
}

.data-quality-allocation-table th[scope="row"] {
    color: var(--tblr-secondary, #6c757d);
    font-weight: 500;
}

.data-quality-allocation-bucket-sufficient {
    --bs-table-bg: rgba(var(--tblr-green-rgb, 47, 179, 68), 0.04);
}

.isochrone-origin-map-frame {
    position: relative;
    width: 100%;
    height: 500px;
}

.isochrone-origin-map-frame .case-flow-map-container {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    border-radius: var(--tblr-border-radius, 4px);
    overflow: hidden;
    background: var(--tblr-bg-surface-secondary, #f8f9fa);
}

.isochrone-origin-map-pin {
    background: transparent;
    border: 0;
}

.isochrone-origin-map-legend-scale {
    display: inline-flex;
    overflow: hidden;
    border: 1px solid var(--tblr-border-color, #dee2e6);
    border-radius: 2px;
}

.isochrone-origin-map-legend-swatch {
    display: block;
    width: 1.1rem;
    height: 0.7rem;
}

.geo-map-share-label {
    background: transparent !important;
    border: 0 !important;
    pointer-events: none;
}

.geo-map-share-label span {
    position: absolute;
    left: 0;
    top: 0;
    transform: translate(-50%, -50%);
    display: inline-block;
    padding: 0.05rem 0.28rem;
    border-radius: 0.2rem;
    background: rgb(255 255 255 / 72%);
    color: #0b1f33;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    line-height: 1.15;
    white-space: nowrap;
    box-shadow: 0 0 0 1px rgb(8 48 107 / 12%);
}

.geo-map-share-label--on-dark span {
    background: rgb(8 48 107 / 78%);
    color: #fff;
    box-shadow: 0 0 0 1px rgb(8 48 107 / 35%);
}

.geo-map-share-label--expanded span {
    font-size: 0.85rem;
    padding: 0.08rem 0.35rem;
}

.geo-map-pin-legend-dot {
    display: inline-block;
    width: 0.7rem;
    height: 0.7rem;
    border-radius: 50%;
    box-shadow: 0 0 0 1px rgb(0 0 0 / 12%);
}

.case-flow-dispatch-sankey {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.35rem;
}

.case-flow-dispatch-sankey-stage {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.case-flow-dispatch-sankey-stage .case-flow-dispatch-sankey-node {
    flex: 1 1 calc(50% - 0.25rem);
    min-width: 0;
}

.case-flow-dispatch-sankey-stage .case-flow-dispatch-sankey-node:only-child {
    flex-basis: 100%;
}

.case-flow-dispatch-sankey-node {
    padding: 0.65rem 0.8rem;
    border: 1px solid var(--tblr-border-color, #dee2e6);
    border-radius: var(--tblr-border-radius, 4px);
    background: var(--tblr-bg-surface, #fff);
}

.case-flow-dispatch-sankey-node.is-inflow {
    border-left: 4px solid #e8590c;
}

.case-flow-dispatch-sankey-node.is-local-origin,
.case-flow-dispatch-sankey-node.is-inside {
    border-left: 4px solid #1864ab;
}

.case-flow-dispatch-sankey-node.is-total {
    border-left: 4px solid #495057;
}

.case-flow-dispatch-sankey-node.is-outflow {
    border-left: 4px solid #fab005;
}

.case-flow-dispatch-sankey-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.15rem;
    line-height: 1;
    color: var(--tblr-secondary, #667382);
}

.case-flow-segment-header-picker {
    flex: 0 1 14rem;
    min-width: 10rem;
}

.stats-case-flow-segment-dimension-table {
    width: 100%;
    table-layout: fixed;
}

.stats-case-flow-segment-col-label {
    width: 34%;
}

.stats-case-flow-segment-col-metric {
    min-width: 4.25rem;
}

.stats-case-flow-segment-dimension-table .stats-top-lists-share-col {
    width: auto;
    min-width: 0;
}

.stats-case-flow-segment-dimension-table th,
.stats-case-flow-segment-dimension-table td {
    overflow-wrap: anywhere;
    word-break: break-word;
}

.stats-case-flow-segment-dimension-table td.text-nowrap {
    overflow-wrap: normal;
    word-break: normal;
}

.hospital-population-map-frame {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    max-height: 480px;
}

.hospital-population-map-frame .case-flow-map-container {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    border-radius: var(--tblr-border-radius, 4px);
    overflow: hidden;
    background: var(--tblr-bg-surface-secondary, #f8f9fa);
}

.hospital-population-map-pin,
.geo-map-pin {
    background: transparent;
    border: none;
}

body.geo-map-expand-open {
    overflow: hidden;
}

.geo-map-expand-overlay {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 1055;
    flex-direction: column;
    background: var(--tblr-bg-surface, #fff);
}

.geo-map-expand-overlay.is-open {
    display: flex;
}

.geo-map-expand-header,
.geo-map-expand-toolbar,
.geo-map-expand-footer {
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--tblr-border-color, #dee2e6);
}

.geo-map-expand-footer {
    border-bottom: 0;
    border-top: 1px solid var(--tblr-border-color, #dee2e6);
}

.geo-map-expand-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.geo-map-expand-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
}

.geo-map-compact-layer-toggles {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    column-gap: 0.6rem;
    row-gap: 0.1rem;
    min-width: 0;
}

.card-header > .geo-map-compact-layer-toggles {
    width: 100%;
}

.geo-map-layer-toggle--compact {
    min-height: 0;
    padding: 0;
    margin-right: 0;
}

.geo-map-layer-toggle--compact .form-check-input {
    margin-top: 0.12em;
}

.geo-map-legend [data-geo-map-target].d-none {
    display: none !important;
}

.geo-map-legend details > summary {
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding-inline-start: 0;
    list-style: none;
}

.geo-map-legend details > summary::-webkit-details-marker,
.geo-map-legend details > summary::marker {
    display: none;
    content: none;
}

.geo-map-legend details > summary::before {
    content: '';
    width: 0.35rem;
    height: 0.35rem;
    flex-shrink: 0;
    box-sizing: border-box;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: translateY(-0.05rem) rotate(-45deg);
    transition: transform 0.15s ease;
}

.geo-map-legend details[open] > summary::before {
    transform: translateY(-0.12rem) rotate(45deg);
}

.geo-map-legend details > summary:hover {
    color: var(--tblr-body-color, inherit);
}

.geo-map-expand-footer .geo-map-legend {
    margin-top: 0;
}

.geo-map-expand-canvas {
    position: relative;
    flex: 1;
    min-height: 0;
}

.geo-map-expand-canvas .case-flow-map-container {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.hospital-population-map-legend-pin {
    flex-shrink: 0;
}

.hospital-population-map-legend-pin--participating {
    color: #1864ab;
}

.hospital-population-map-legend-pin--reference {
    color: #868e96;
}

.page-body:has(#stats-hospital-population) {
    padding-top: 0;
}

.stats-compare-side-a {
    border-left-color: var(--tblr-primary) !important;
}

.stats-compare-side-b {
    border-left-color: var(--tblr-secondary, #667382) !important;
}

.stats-compare-subject-link {
    text-decoration-line: underline;
    text-decoration-color: transparent;
    text-underline-offset: 0.2em;
}

.stats-compare-side-a .stats-compare-subject-link:hover,
.stats-compare-side-a .stats-compare-subject-link:focus-visible {
    color: inherit;
    text-decoration-color: var(--tblr-primary);
}

.stats-compare-side-b .stats-compare-subject-link:hover,
.stats-compare-side-b .stats-compare-subject-link:focus-visible {
    color: inherit;
    text-decoration-color: var(--tblr-secondary, #667382);
}

.input-group [data-testid^="password-toggle-"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding-inline: 0.5rem;
}

.input-group [data-testid^="password-toggle-"] .icon {
    margin: 0;
}

.stats-ttp-table-scroll {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.stats-ttp-table {
    width: 100%;
    table-layout: fixed;
    margin-bottom: 0;
}

.stats-ttp-table > :not(caption) > * > * {
    padding: 0.4rem 0.45rem;
    vertical-align: top;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
    hyphens: auto;
}

.stats-ttp-table .stats-ttp-metric-col {
    position: sticky;
    left: 0;
    z-index: 2;
    width: 9.5rem;
    background: var(--tblr-bg-surface, #fff);
    box-shadow: 1px 0 0 var(--tblr-border-color, #e6e7e9);
}

.stats-ttp-table thead th {
    position: sticky;
    top: 0;
    z-index: 3;
    background: var(--tblr-bg-surface, #fff);
    font-size: 0.75rem;
    line-height: 1.2;
}

.stats-ttp-table thead th.stats-ttp-metric-col {
    z-index: 4;
}

.stats-ttp-section-row th {
    background: var(--tblr-bg-surface-secondary, #f6f8fb);
    font-size: 0.75rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--tblr-secondary);
}

.stats-ttp-ranked-td {
    font-size: 0.8125rem;
    line-height: 1.25;
}

.stats-ttp-ranked-cell {
    min-width: 0;
}

.stats-ttp-ranked-label {
    display: block;
    overflow-wrap: anywhere;
    word-break: break-word;
    hyphens: auto;
}

.stats-ttp-ranked-meta {
    margin-top: 0.15rem;
}

.stats-ttp-marker,
.stats-rank-shift-badge {
    display: flex;
    align-items: center;
    gap: 0.15rem;
    width: fit-content;
    padding: 0.1rem 0.35rem;
    font-size: 0.7rem;
    font-weight: 500;
    white-space: nowrap;
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
}

.stats-ttp-marker {
    margin-top: 0.15rem;
    margin-left: auto;
}

.stats-rank-shift-badge {
    margin: 0;
}

.stats-ttp-marker .icon,
.stats-rank-shift-badge .icon {
    width: 0.85rem;
    height: 0.85rem;
}

.btn.stats-top-lists-compare-continue {
    --stats-compare-continue-size: calc(
        var(--tblr-btn-line-height, 1.4285714) * 1em
        + var(--tblr-btn-padding-y, 0.25rem) * 2
        + var(--tblr-border-width, 1px) * 2
    );
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--stats-compare-continue-size);
    min-width: var(--stats-compare-continue-size);
    height: var(--stats-compare-continue-size);
    padding: 0;
    line-height: 1;
    flex-shrink: 0;
}

.btn.stats-top-lists-compare-continue .icon {
    display: block;
    margin: 0;
    width: 1rem;
    height: 1rem;
    font-size: 1rem;
    vertical-align: middle;
    flex-shrink: 0;
}

.stats-top-lists-value-pair {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    min-height: 1.375rem;
}

.stats-top-lists-comparison-side-header {
    min-height: 2.5rem;
}

.stats-top-lists-comparison-tables {
    display: grid;
    gap: 1rem;
}

@media (min-width: 1200px) {
    .stats-top-lists-comparison-tables {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        row-gap: 0;
    }
}

.stats-top-lists-comparison-tables tbody td {
    height: 2.25rem;
}

.stats-top-lists-share-col {
    width: 6.5rem;
    min-width: 4.5rem;
    vertical-align: middle;
}

.stats-top-lists-share-bar {
    width: 100%;
    min-width: 0;
}

.stats-ttp-ranked-td .stats-ttp-marker {
    margin-left: 0;
}

.stats-ttp-small-n {
    opacity: 0.7;
}

.stats-ttp-heat-low-1,
.stats-ttp-heat-low-2,
.stats-ttp-heat-low-3,
.stats-ttp-heat-high-1,
.stats-ttp-heat-high-2,
.stats-ttp-heat-high-3,
.stats-ttp-rank-shift-up,
.stats-ttp-rank-shift-down,
.stats-ttp-rank-shift-new,
.stats-rank-shift-up,
.stats-rank-shift-down,
.stats-rank-shift-new {
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
}

.stats-ttp-heat-low-1 {
    background-color: rgba(214, 57, 57, 0.08);
    border-left: 2px solid rgba(214, 57, 57, 0.38);
}

.stats-ttp-heat-low-2 {
    background-color: rgba(214, 57, 57, 0.16);
    border-left: 3px solid rgba(214, 57, 57, 0.55);
}

.stats-ttp-heat-low-3 {
    background-color: rgba(214, 57, 57, 0.28);
    border-left: 4px solid rgba(214, 57, 57, 0.78);
}

.stats-ttp-heat-high-1 {
    background-color: rgba(47, 179, 68, 0.10);
    border-left: 2px solid rgba(47, 179, 68, 0.40);
}

.stats-ttp-heat-high-2 {
    background-color: rgba(47, 179, 68, 0.18);
    border-left: 3px solid rgba(47, 179, 68, 0.58);
}

.stats-ttp-heat-high-3 {
    background-color: rgba(47, 179, 68, 0.30);
    border-left: 4px solid rgba(47, 179, 68, 0.82);
}

.stats-ttp-rank-shift-up,
.stats-rank-shift-up {
    border-left: 3px solid rgba(47, 179, 68, 0.85);
}

.stats-ttp-rank-shift-down,
.stats-rank-shift-down {
    border-left: 3px solid rgba(214, 57, 57, 0.85);
}

.stats-ttp-rank-shift-new,
.stats-rank-shift-new {
    border-left: 3px solid rgba(32, 107, 196, 0.75);
}

.stats-ttp-insight {
    padding-top: 0.65rem;
    padding-bottom: 0.65rem;
}

.activity-post-preview {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
}

.activity-post-preview p {
    margin-bottom: 0;
}

.navbar-username {
    max-width: 12rem;
}

header.navbar {
    overflow: visible;
}

#explore-subnav > .container-xl {
    overflow-x: auto;
}

/* overflow-x: auto computes overflow-y to auto and clips nested dropdowns */
#explore-subnav:has(.dropdown-menu.show) > .container-xl {
    overflow: visible;
}

header.navbar .navbar-brand {
    min-width: 0;
}

header.navbar .navbar-nav.flex-row {
    flex-shrink: 0;
}

header.navbar .navbar-nav.flex-row .dropdown-menu {
    position: absolute;
    right: 0;
    left: auto;
}

.insights-directory-card .card-header-tabs {
    flex-wrap: nowrap;
}

.insights-directory-card .card-header-tabs .nav-item.ms-auto {
    display: flex;
    align-items: center;
    align-self: stretch;
}

.insights-directory-card .card-header-tabs .insights-directory-header-tools {
    padding-right: calc(var(--tblr-card-cap-padding-x) * 0.5);
}

.insights-directory-header-tools .form-control {
    width: 13rem;
}

.insights-table-icon-action.btn-icon {
    --tblr-btn-padding-y: 0.125rem;
    --tblr-btn-padding-x: 0.125rem;
    min-width: 1.5rem;
    min-height: 1.5rem;
}

.insights-table-icon-action .icon {
    width: 1rem;
    height: 1rem;
}

@media (max-width: 767.98px) {
    header.navbar > .container-xl {
        justify-content: flex-start;
        flex-wrap: wrap;
    }

    header.navbar .navbar-toggler {
        flex-shrink: 0;
    }

    header.navbar .navbar-brand {
        flex: 1 1 0%;
        min-width: 0;
    }

    header.navbar .navbar-collapse {
        flex-basis: 100%;
        width: 100%;
    }
}

.analysis-context-triggers {
    max-width: min(100%, 28rem);
}

.analysis-context-location {
    min-width: 0;
    max-width: min(46vw, 16rem);
}

.analysis-context-location-label {
    min-width: 0;
}

.analysis-context-period {
    flex: 0 0 auto;
    white-space: nowrap;
}

/* Notification dropdown (ADR 016): hover actions stay reachable for keyboard users. */
.list-group-hoverable .list-group-item-actions:focus-visible {
    opacity: 1;
}

/* Notification bell: the unread dot sits on the icon's top right corner, not on the wider nav link. */
.notification-bell-icon {
    position: relative;
    display: inline-flex;
}

.navbar .navbar-nav .nav-link .notification-bell-icon .badge:empty {
    top: 0;
    inset-inline-end: 0;
}

/* Notification dropdown: Tabler strips the card's own frame only for a direct child of the menu; here the
   lazily loaded turbo-frame sits in between, so the card would draw a second border and shadow. */
.dropdown-menu.notification-dropdown-menu > turbo-frame > .card {
    margin: 0;
    border: 0;
    box-shadow: none;
}

/* Notification dropdown: a fixed width; titles and messages wrap in full instead of widening the menu. */
.dropdown-menu.notification-dropdown-menu {
    width: 24rem;
    max-width: calc(100vw - 1rem);
}

.notification-dropdown-text {
    min-width: 0;
    overflow-wrap: anywhere;
}


/* Notification dropdown on phones: full width below the navbar instead of overflowing the left edge. */
@media (max-width: 575.98px) {
    header.navbar .navbar-nav.flex-row .dropdown-menu.notification-dropdown-menu {
        position: fixed;
        top: 3.5rem;
        inset-inline: 0.5rem;
        width: auto;
        min-width: 0;
    }

    header.navbar .navbar-nav.flex-row .dropdown-menu.notification-dropdown-menu.dropdown-menu-arrow::before,
    header.navbar .navbar-nav.flex-row .dropdown-menu.notification-dropdown-menu.dropdown-menu-arrow::after {
        display: none;
    }
}

/* Notification preferences: the chevron of the type toggle points up while the types are shown. */
.notification-preferences [data-bs-toggle='collapse'] .icon {
    transition: transform 0.15s ease-in-out;
}

.notification-preferences [data-bs-toggle='collapse']:not(.collapsed) .icon {
    transform: rotate(180deg);
}

/* Notification preferences on narrow screens: keep the names readable; the table scrolls sideways. */
.notification-preferences th[scope='row'] {
    min-width: 13rem;
}

/* Notification preferences: checkboxes sit exactly in the middle of their cell, like the "–" of channels a type does not offer. */
.notification-preferences td .form-check {
    display: inline-flex;
    justify-content: center;
    min-height: 0;
    margin: 0;
    padding: 0;
    vertical-align: middle;
}

.notification-preferences td .form-check .form-check-input {
    float: none;
    margin: 0;
}
