/* /Components/Shared/ErrorOverlay.razor.rz.scp.css */
/* Styles live in app.css — ErrorBoundary renders ErrorContent outside the component
   subtree so scoped CSS is never stamped here. */
/* /Components/Shared/ServerUnreachable.razor.rz.scp.css */
.server-unreachable-page[b-j5lqpknbpl] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    text-align: center;
}

.server-unreachable-page[b-j5lqpknbpl]  .server-unreachable-card {
    max-width: 420px;
    width: 100%;
}

.server-unreachable-page[b-j5lqpknbpl]  .server-unreachable-icon {
    font-size: 3rem;
}
/* /Components/Shared/UserDisplay.razor.rz.scp.css */
.system-avatar-icon[b-zup6fd38lz] {
    width: 18px;
    height: 18px;
    object-fit: contain;
}

.tooltip-content[b-zup6fd38lz] {
    line-height: 1.5;
    font-size: 0.75rem;
}
/* /Features/About/Pages/About.razor.rz.scp.css */
.about-container[b-3n2eb6uogb] {
    padding-bottom: 48px;
    font-family: 'Poppins', Arial, sans-serif;
}

.hero[b-3n2eb6uogb],
.section-dark[b-3n2eb6uogb],
.closing[b-3n2eb6uogb] {
    background: #01303e;
    border-radius: 12px;
}

.hero[b-3n2eb6uogb] {
    padding: 52px 56px;
    margin-bottom: 20px;
}

.category-pill[b-3n2eb6uogb],
.section-label[b-3n2eb6uogb],
.section-label-light[b-3n2eb6uogb] {
    display: inline-block;
    border-radius: 20px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.12em;
    padding: 3px 10px;
    text-transform: uppercase;
}

.category-pill[b-3n2eb6uogb],
.section-label-light[b-3n2eb6uogb] {
    background: rgba(0, 219, 166, 0.12);
    color: #00dba6;
}

.section-label[b-3n2eb6uogb] {
    background: rgba(53, 188, 152, 0.15);
    color: var(--mud-palette-primary);
}

.hero h1[b-3n2eb6uogb] {
    color: #ffffff;
    font-size: clamp(30px, 5vw, 48px);
    font-weight: 400;
    letter-spacing: -0.03em;
    line-height: 1.1;
    margin: 18px 0 14px;
}

.hero h1 span[b-3n2eb6uogb] {
    color: #00dba6;
}

.hero p[b-3n2eb6uogb],
.section-dark > p[b-3n2eb6uogb],
.closing p[b-3n2eb6uogb] {
    color: rgba(255, 255, 255, 0.75);
    font-size: 14px;
    line-height: 1.7;
    margin: 0;
    max-width: 720px;
}

.executive-summary[b-3n2eb6uogb] {
    background: rgba(53, 188, 152, 0.10);
    border-radius: 10px;
    margin-bottom: 32px;
    padding: 24px 30px;
}

.executive-summary h2[b-3n2eb6uogb],
.section h2[b-3n2eb6uogb],
.section-dark h2[b-3n2eb6uogb],
.closing h2[b-3n2eb6uogb] {
    color: var(--mud-palette-text-primary);
    font-size: 22px;
    font-weight: 600;
    letter-spacing: -0.02em;
    margin: 8px 0 12px;
}

.executive-summary p[b-3n2eb6uogb],
.section-intro[b-3n2eb6uogb] {
    color: var(--mud-palette-text-primary);
    font-size: 13px;
    line-height: 1.7;
    margin: 0;
    max-width: 860px;
}

.section[b-3n2eb6uogb] {
    margin-bottom: 32px;
}

.section-dark[b-3n2eb6uogb] {
    margin-bottom: 0;
    padding: 34px 48px;
}

.section-dark h2[b-3n2eb6uogb],
.closing h2[b-3n2eb6uogb] {
    color: #ffffff;
}

.section-dark code[b-3n2eb6uogb] {
    color: #00dba6;
    font-family: inherit;
}

.section-after-dark[b-3n2eb6uogb] {
    padding-top: 24px;
}

.section-intro[b-3n2eb6uogb] {
    color: var(--mud-palette-text-secondary);
    margin-top: -4px;
}

.card-grid[b-3n2eb6uogb],
.outcome-grid[b-3n2eb6uogb] {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.content-card[b-3n2eb6uogb],
.outcome-grid article[b-3n2eb6uogb] {
    background: var(--mud-palette-background-grey);
    border-radius: 10px;
    padding: 20px;
}

.content-card.dark[b-3n2eb6uogb] {
    background: #003050;
}

.content-card h3[b-3n2eb6uogb],
.outcome-grid h3[b-3n2eb6uogb] {
    color: var(--mud-palette-text-primary);
    font-size: 14px;
    font-weight: 600;
    margin: 0 0 8px;
}

.content-card p[b-3n2eb6uogb],
.outcome-grid p[b-3n2eb6uogb] {
    color: var(--mud-palette-text-primary);
    font-size: 12px;
    line-height: 1.65;
    margin: 0;
}

.content-card.dark h3[b-3n2eb6uogb] {
    color: #00dba6;
}

.content-card.dark p[b-3n2eb6uogb] {
    color: rgba(255, 255, 255, 0.8);
}

.governance-section[b-3n2eb6uogb] {
    background: rgba(53, 188, 152, 0.08);
    border: 1px solid rgba(53, 188, 152, 0.3);
    border-radius: 10px;
    margin-bottom: 32px;
    padding: 28px 30px;
}

.governance-section h2[b-3n2eb6uogb] {
    color: var(--mud-palette-text-primary);
    font-size: 22px;
    font-weight: 600;
    letter-spacing: -0.02em;
    margin: 8px 0 10px;
}

.governance-section > p[b-3n2eb6uogb] {
    color: var(--mud-palette-text-secondary);
    font-size: 13px;
    line-height: 1.7;
    margin: 0;
    max-width: 900px;
}

.stewardship-grid[b-3n2eb6uogb] {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 22px;
}

.stewardship-grid article[b-3n2eb6uogb] {
    border-left: 3px solid var(--mud-palette-primary);
    padding-left: 14px;
}

.stewardship-grid h3[b-3n2eb6uogb] {
    color: var(--mud-palette-text-primary);
    font-size: 13px;
    font-weight: 600;
    margin: 0 0 6px;
}

.stewardship-grid p[b-3n2eb6uogb] {
    color: var(--mud-palette-text-secondary);
    font-size: 11.5px;
    line-height: 1.6;
    margin: 0;
}

.identity-flow[b-3n2eb6uogb] {
    align-items: stretch;
    background: #012535;
    border-radius: 10px;
    display: grid;
    gap: 12px;
    grid-template-columns: 0.75fr 1.5fr auto 1.35fr auto 1fr;
    margin-top: 16px;
    padding: 24px;
}

.identity-person[b-3n2eb6uogb],
.identity-policy[b-3n2eb6uogb],
.identity-destination[b-3n2eb6uogb],
.identity-route[b-3n2eb6uogb] {
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 16px;
}

.identity-person[b-3n2eb6uogb],
.identity-destination[b-3n2eb6uogb],
.identity-route[b-3n2eb6uogb] {
    background: #00434f;
}

.identity-options[b-3n2eb6uogb] {
    display: grid;
    gap: 8px;
}

.identity-route[b-3n2eb6uogb] {
    min-height: 54px;
    padding: 12px 14px;
}

.identity-policy[b-3n2eb6uogb] {
    background: rgba(53, 188, 152, 0.18);
}

.identity-flow strong[b-3n2eb6uogb] {
    color: #ffffff;
    font-size: 13px;
}

.identity-policy strong[b-3n2eb6uogb] {
    color: var(--mud-palette-primary);
}

.identity-flow span[b-3n2eb6uogb] {
    color: rgba(255, 255, 255, 0.65);
    font-size: 10.5px;
    line-height: 1.45;
    margin-top: 5px;
}

.identity-policy span[b-3n2eb6uogb] {
    color: rgba(255, 255, 255, 0.65);
}

.flow-arrow[b-3n2eb6uogb] {
    align-self: center;
    color: #00dba6;
    font-size: 24px;
}

.architecture-section[b-3n2eb6uogb] {
    margin-top: 36px;
}

.arch-diagram[b-3n2eb6uogb] {
    background: #012535;
    border-radius: 10px;
    margin-top: 16px;
    padding: 24px;
}

.arch-svg[b-3n2eb6uogb] {
    display: block;
    height: auto;
    width: 100%;
}

.closing[b-3n2eb6uogb] {
    align-items: end;
    display: flex;
    gap: 36px;
    justify-content: space-between;
    margin-top: 36px;
    padding: 34px 48px;
}

.closing h2[b-3n2eb6uogb] {
    margin-bottom: 0;
    max-width: 480px;
}

.closing p[b-3n2eb6uogb] {
    max-width: 430px;
}

@media (max-width: 760px) {
    .hero[b-3n2eb6uogb],
    .section-dark[b-3n2eb6uogb],
    .closing[b-3n2eb6uogb] {
        padding: 30px 24px;
    }

    .card-grid[b-3n2eb6uogb],
    .outcome-grid[b-3n2eb6uogb],
    .stewardship-grid[b-3n2eb6uogb] {
        grid-template-columns: 1fr;
    }

    .identity-flow[b-3n2eb6uogb] {
        grid-template-columns: 1fr;
    }

    .closing[b-3n2eb6uogb] {
        flex-direction: column;
    }

    .flow-arrow[b-3n2eb6uogb] {
        align-self: center;
        transform: rotate(90deg);
    }

    .arch-diagram[b-3n2eb6uogb] {
        overflow-x: auto;
        padding: 16px;
    }

    .arch-svg[b-3n2eb6uogb] {
        min-width: 680px;
    }
}
/* /Features/AiUsage/Components/AiUsageInsights.razor.rz.scp.css */
.ai-usage-insight-card[b-ebptcfr1mv] {
    height: 100%;
    padding: 16px;
    border-radius: 8px;
    border: 1px solid var(--mud-palette-divider);
    border-left: 3px solid var(--mud-palette-info);
    background: var(--mud-palette-surface);
    box-shadow: var(--mud-elevation-1);
}

.ai-usage-insight-card--compact[b-ebptcfr1mv] {
    padding: 12px;
    background: color-mix(in srgb, var(--mud-palette-surface), var(--mud-palette-info) 3%);
    box-shadow: none;
}

.ai-usage-insight-icon[b-ebptcfr1mv] {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 28px;
    background: color-mix(in srgb, var(--mud-palette-info), transparent 88%);
}

.ai-usage-insight-empty[b-ebptcfr1mv] {
    border-radius: 8px;
}
/* /Features/AiUsage/Components/AiUserEngagementDetails.razor.rz.scp.css */
.ai-engagement-panel[b-37wyi8rfm5] {
    padding: 12px;
    border-radius: 8px;
    border: 1px solid var(--mud-palette-divider);
    background: var(--mud-palette-surface);
}

.ai-engagement-empty[b-37wyi8rfm5] {
    border-radius: 8px;
}
/* /Features/AiUsage/Components/AiUserUsageBreakdowns.razor.rz.scp.css */
.ai-user-breakdown-panel[b-amffcz2glh] {
    height: 100%;
    padding: 16px;
    border-radius: 8px;
    border: 1px solid var(--mud-palette-divider);
    background: var(--mud-palette-surface);
    box-shadow: var(--mud-elevation-1);
}

.ai-user-breakdown-panel--compact[b-amffcz2glh] {
    padding: 12px;
    box-shadow: none;
}
/* /Features/AiUsage/Components/AiUserUsageSummary.razor.rz.scp.css */
.ai-user-usage-summary-card[b-khk7csaqrl] {
    height: 100%;
    padding: 16px;
    border-radius: 8px;
    border: 1px solid var(--mud-palette-divider);
    background: var(--mud-palette-surface);
    box-shadow: var(--mud-elevation-1);
}

.ai-user-usage-summary-card--compact[b-khk7csaqrl] {
    padding: 12px;
    background: color-mix(in srgb, var(--mud-palette-surface), var(--mud-palette-primary) 3%);
    box-shadow: none;
}
/* /Features/AiUsage/Components/MetricPanel.razor.rz.scp.css */
.metric-panel[b-yxo8293re8] {
    height: 100%;
    padding: 12px;
    border-radius: 8px;
    border: 1px solid var(--mud-palette-divider);
    background: var(--mud-palette-surface);
}
/* /Features/AiUsage/Components/NamedUsageTable.razor.rz.scp.css */
.named-usage-table[b-o4t7vumnbu] {
    height: 100%;
    border-radius: 8px;
    border: 1px solid var(--mud-palette-divider);
    background: var(--mud-palette-surface);
    overflow: hidden;
}
/* /Features/CustomerHealth/Pages/CustomerHealth.razor.rz.scp.css */
/*
    Customer Health dashboard — scoped typography + layout pass. Follows Brandy's
    mockup direction: uppercase muted headers, tabular numerals for numeric columns,
    tighter density, muted secondary text. Colours come from MudBlazor's theme;
    the palette isn't overridden here — this file is purely typography + spacing.
*/

/*
    Two kinds of selector live in this file, and the difference decides whether `::deep` is
    required or fatal.

    Elements authored in CustomerHealth.razor — including markup inside MudBlazor render
    fragments such as CellTemplate — are stamped with this component's scope attribute, so a
    plain selector matches them. `.page` is the page's OUTERMOST element, so `::deep .page`
    (which compiles to `[b-scope] .page` and needs a stamped ancestor) matched nothing at all
    and this rule was inert.

    Elements MudBlazor itself renders are never stamped, even when we hand them a class through
    `Class=` / `HeaderClass=` / `CellClass=`. Those selectors — `.customer-grid`,
    `.filter-search`, `.filter-select`, `.numeric`, and anything `.mud-*` — genuinely need
    `::deep` and must keep it.
*/
.page[b-guertr47u1] {
    max-width: 1280px;
    margin: 0 auto;
    padding: 24px 32px 48px;
}

[b-guertr47u1] .head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 20px;
}

[b-guertr47u1] .head h1 {
    margin: 0;
    font-size: 22px;
    font-weight: 600;
    letter-spacing: -0.01em;
    text-wrap: balance;
}

[b-guertr47u1] .head p {
    margin: 4px 0 0;
    color: var(--mud-palette-text-secondary);
    font-size: 13px;
    max-width: 60ch;
}

[b-guertr47u1] .snapshot {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px 6px 10px;
    background: var(--mud-palette-surface);
    border: 1px solid var(--mud-palette-divider);
    border-radius: 999px;
    font-size: 12px;
    color: var(--mud-palette-text-secondary);
    white-space: nowrap;
}

    [b-guertr47u1] .snapshot::before {
        content: "";
        width: 6px;
        height: 6px;
        border-radius: 999px;
        background: var(--mud-palette-primary);
    }

/* ── Tiles ─────────────────────────────────────────────────────────── */

[b-guertr47u1] .tiles {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 20px;
}

[b-guertr47u1] .tile {
    background: var(--mud-palette-surface);
    border: 1px solid var(--mud-palette-divider);
    border-radius: 10px;
    padding: 16px 18px;
}

[b-guertr47u1] .tile-label {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--mud-palette-text-disabled);
}

[b-guertr47u1] .tile-value {
    margin-top: 6px;
    font-size: 26px;
    font-weight: 600;
    letter-spacing: -0.015em;
    font-variant-numeric: tabular-nums;
}

[b-guertr47u1] .tile-sub {
    margin-top: 2px;
    font-size: 12px;
    color: var(--mud-palette-text-secondary);
}

/* ── Filter bar ───────────────────────────────────────────────────── */

[b-guertr47u1] .filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    padding: 12px;
    margin-bottom: 12px;
    background: var(--mud-palette-surface);
    border: 1px solid var(--mud-palette-divider);
    border-radius: 10px;
}

[b-guertr47u1] .filter-search {
    flex: 1 1 260px;
    min-width: 200px;
}

[b-guertr47u1] .filter-select {
    min-width: 160px;
    max-width: 240px;
}

[b-guertr47u1] .filter-summary {
    margin-left: auto;
    font-size: 12px;
    color: var(--mud-palette-text-secondary);
    font-variant-numeric: tabular-nums;
}

/* ── Table wrap ───────────────────────────────────────────────────── */

[b-guertr47u1] .table-wrap {
    background: var(--mud-palette-surface);
    border: 1px solid var(--mud-palette-divider);
    border-radius: 10px;
    overflow: hidden;
}

[b-guertr47u1] .customer-grid {
    font-variant-numeric: tabular-nums;
}

    /* Column headers — Brandy's uppercase-muted-with-chevron treatment. */
    [b-guertr47u1] .customer-grid .mud-table-head-row th,
    [b-guertr47u1] .customer-grid .mud-table-head-row .mud-table-cell {
        font-size: 11px;
        font-weight: 600;
        letter-spacing: 0.05em;
        text-transform: uppercase;
        color: var(--mud-palette-text-secondary);
        background: var(--mud-palette-background-gray);
    }

    [b-guertr47u1] .customer-grid .numeric {
        text-align: right;
    }

/* ── Row content ──────────────────────────────────────────────────── */

[b-guertr47u1] .cust-name {
    font-weight: 600;
    color: var(--mud-palette-text-primary);
    font-size: 13.5px;
}

[b-guertr47u1] .cust-id {
    font-size: 12px;
    color: var(--mud-palette-text-disabled);
    margin-top: 2px;
}

[b-guertr47u1] .muted {
    color: var(--mud-palette-text-secondary);
    font-size: 12.5px;
}

[b-guertr47u1] .faint {
    color: var(--mud-palette-text-disabled);
}

[b-guertr47u1] .chip {
    display: inline-flex;
    align-items: center;
    padding: 2px 10px;
    height: 22px;
    border: 1px solid var(--mud-palette-divider);
    border-radius: 999px;
    font-size: 11.5px;
    font-weight: 500;
    color: var(--mud-palette-text-secondary);
    background: var(--mud-palette-background-gray);
}

[b-guertr47u1] .chip-launched {
    color: var(--mud-palette-primary-text);
    background: var(--mud-palette-primary);
    border-color: var(--mud-palette-primary);
}

[b-guertr47u1] .arr {
    font-weight: 600;
    letter-spacing: -0.005em;
    font-variant-numeric: tabular-nums;
}

[b-guertr47u1] .renewal {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    line-height: 1.3;
}

[b-guertr47u1] .renewal-date {
    font-weight: 500;
}

[b-guertr47u1] .renewal-until {
    font-size: 11.5px;
    color: var(--mud-palette-text-secondary);
    margin-top: 2px;
}

    [b-guertr47u1] .renewal-until.close {
        color: var(--mud-palette-warning);
        font-weight: 500;
    }

[b-guertr47u1] .empty {
    padding: 32px;
    text-align: center;
    color: var(--mud-palette-text-secondary);
}
/* /Features/Customers/Components/CustomerDataGrid.razor.rz.scp.css */
.sticky[b-dghxednoro] {
    position: sticky;
    top: 0;
    z-index: 100;
}

.customer-org-id[b-dghxednoro] {
    font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
    color: var(--mud-palette-text-secondary);
}
/* /Features/Customers/Components/UpgradeHistoryTile.razor.rz.scp.css */
.upgrade-timeline[b-rvzv616996] {
    position: relative;
    padding-left: 1.25rem;
}

.upgrade-timeline[b-rvzv616996]::before {
    content: '';
    position: absolute;
    left: 0.25rem;
    top: 0.4rem;
    bottom: 0.4rem;
    width: 2px;
    background: var(--mud-palette-divider);
}

.upgrade-item[b-rvzv616996] {
    position: relative;
    padding: 0.5rem 0;
}

.upgrade-item[b-rvzv616996]::before {
    content: '';
    position: absolute;
    left: -1.25rem;
    top: 0.65rem;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--mud-palette-success);
    border: 2px solid var(--mud-palette-surface);
}

.upgrade-item.major[b-rvzv616996]::before {
    background: var(--mud-palette-warning);
}

.mono[b-rvzv616996] {
    font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
}

.upgrade-from[b-rvzv616996] {
    color: var(--mud-palette-text-secondary);
}
/* /Features/Customers/Pages/CustomerDetail.razor.rz.scp.css */
.customer-crumbs[b-2bl39zmxql] {
    font-size: 0.75rem;
    color: var(--mud-palette-text-secondary);
}

.mono[b-2bl39zmxql] {
    font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
}
/* /Features/DatasetSources/Components/DatasetSourceDataGrid.razor.rz.scp.css */
.sticky[b-oy9ktqptk7] {
    position: sticky;
    top: 0;
    z-index: 100;
}
/* /Features/Deployments/Pages/Deployments.razor.rz.scp.css */
.pipeline-card[b-rzd7fu031o] {
    background: var(--mud-palette-background-grey);
    border: 1px solid var(--mud-palette-divider);
    border-radius: 8px;
    padding: 20px 24px 16px;
    margin: 16px 0;
}

.pipeline-header[b-rzd7fu031o] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-bottom: 18px;
}

.pipeline-title[b-rzd7fu031o] {
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--mud-palette-text-primary);
}

.pipeline-sub[b-rzd7fu031o] {
    font-size: 0.8125rem;
    color: var(--mud-palette-text-secondary);
}

.pipeline-flow[b-rzd7fu031o] {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    overflow-x: auto;
    gap: 6px;
    margin-bottom: 14px;
}

.pipeline-step[b-rzd7fu031o] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
}

.step-icon[b-rzd7fu031o] {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 36px;
    border-radius: 6px;
    font-size: 0.75rem;
    font-weight: 700;
    padding: 0 10px;
    min-width: 48px;
    white-space: nowrap;
}

.step-merge[b-rzd7fu031o] {
    background: rgba(53, 188, 152, 0.15);
    color: var(--mud-palette-primary);
    font-size: 1.2rem;
    padding: 0 12px;
}

.step-env[b-rzd7fu031o] {
    background: #01303E;
    color: #35BC98;
}

.step-release[b-rzd7fu031o] {
    background: rgba(53, 188, 152, 0.15);
    color: var(--mud-palette-text-primary);
    font-size: 1rem;
}

.step-notify[b-rzd7fu031o] {
    background: rgba(64, 122, 240, 0.15);
    color: var(--mud-palette-info);
    font-size: 1rem;
}

.step-label[b-rzd7fu031o] {
    font-size: 0.7rem;
    color: var(--mud-palette-text-secondary);
    text-align: center;
    white-space: nowrap;
}

.pipeline-arrow[b-rzd7fu031o] {
    color: var(--mud-palette-text-disabled);
    font-size: 1.1rem;
    padding-bottom: 16px;
}

.pipeline-note[b-rzd7fu031o] {
    font-size: 0.8125rem;
    color: var(--mud-palette-text-secondary);
    border-top: 1px solid var(--mud-palette-divider);
    padding-top: 12px;
    line-height: 1.5;
}

.chip-preview[b-rzd7fu031o] {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 600;
    padding: 1px 8px;
    border-radius: 16px;
    vertical-align: middle;
}

.chip-skipped[b-rzd7fu031o] {
    border: 1px solid var(--mud-palette-warning);
    color: var(--mud-palette-warning-darken);
    background: transparent;
}
/* /Features/EngineeringInsights/Components/EngineeringInsightsTabs.razor.rz.scp.css */
.ei-tab-bar[b-h7bhg52aq5] {
    padding-top: 16px;
    border-bottom: 1px solid var(--mud-palette-divider);
    background: var(--mud-palette-surface);
}

/* Scoped CSS can't reach markup rendered by the child RoutedTabs component, so MudTabs internals
   are targeted with ::deep to align the tab strip's horizontal gutter with the pa-6 page content
   below it. */
.ei-tab-bar[b-h7bhg52aq5]  .mud-tabs-tabbar-wrapper {
    padding-left: 24px;
    padding-right: 24px;
}
/* /Features/EngineeringInsights/Pages/EngineeringInsightsAi.razor.rz.scp.css */
.ai-usage-filter-bar[b-sf3jfozns3] {
    border-bottom: 1px solid var(--mud-palette-divider);
    position: sticky;
    top: 0;
    z-index: 9;
    background: var(--mud-palette-surface);
}

.ai-usage-freshness-notice[b-sf3jfozns3] {
    border-radius: 0 !important;
    font-size: 0.8rem;
    opacity: 0.85;
}

.kpi-card[b-sf3jfozns3] {
    border-radius: 8px;
    transition: box-shadow 0.15s ease;
}

.kpi-card:hover[b-sf3jfozns3] {
    box-shadow: var(--mud-elevation-4) !important;
}

.engagement-stat[b-sf3jfozns3] {
    min-width: 80px;
}

.kpi-info-icon[b-sf3jfozns3] {
    opacity: 0.4;
    font-size: 14px !important;
    width: 14px !important;
    height: 14px !important;
    transition: opacity 0.15s ease;
}

.kpi-card:hover .kpi-info-icon[b-sf3jfozns3] {
    opacity: 0.7;
}
/* /Features/EngineeringInsights/Pages/EngineeringInsightsContributors.razor.rz.scp.css */
.ei-contributors-filter-bar[b-f7o9sppz0z] {
    border-bottom: 1px solid var(--mud-palette-divider);
    position: sticky;
    top: 0;
    z-index: 9;
    background: var(--mud-palette-surface);
}
/* /Features/LicenseSources/Components/LicenseSourceDataGrid.razor.rz.scp.css */
.sticky[b-sj8xa115fk] {
    position: sticky;
    top: 0;
    z-index: 100;
}
/* /Features/LicenseSources/Components/SourceHealthTab.razor.rz.scp.css */
.source-health-toolbar[b-6dfelytky2] {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 12px 0;
}
/* /Features/LicenseSources/Components/SourceNotesTab.razor.rz.scp.css */
.source-notes-toolbar[b-ytfz9nvb2u] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 0;
}

.source-notes-toolbar-right[b-ytfz9nvb2u] {
    display: flex;
    align-items: center;
}

.note-content-cell[b-ytfz9nvb2u] {
    white-space: pre-wrap;
    padding: 8px 0;
}
/* /Features/LicenseSources/Pages/LicenseSourceDetails.razor.rz.scp.css */
.sticky[b-yk1i4lq0z2] {
    position: sticky;
    top: 0;
    z-index: 100;
}
/* /Features/LicenseTypes/Components/LicenseTypeDataGrid.razor.rz.scp.css */
.sticky[b-tbz98sb12v] {
    position: sticky;
    top: 0;
    z-index: 100;
}

.sticky[b-tbz98sb12v]  .license-type-toolbar {
    border-bottom: 1px solid var(--mud-palette-divider);
}

.license-type-toolbar-content[b-tbz98sb12v] {
    padding: 16px 32px 14px;
}

.license-type-grid-shell[b-tbz98sb12v] {
    padding: 18px 32px 32px;
}

.license-type-grid-shell[b-tbz98sb12v]  .mud-table {
    table-layout: fixed;
    width: 100%;
}

.license-type-grid-shell[b-tbz98sb12v]  .mud-table-cell {
    overflow: hidden;
    padding: 10px 14px;
    vertical-align: middle;
}

.license-type-grid-shell[b-tbz98sb12v]  .mud-table-head .mud-table-cell {
    color: var(--mud-palette-text-primary);
    font-weight: 600;
    white-space: nowrap;
}

.license-type-name-cell[b-tbz98sb12v],
.license-type-token-list[b-tbz98sb12v],
.license-type-alias-cell[b-tbz98sb12v] {
    align-items: center;
    display: flex;
    gap: 6px;
    min-width: 0;
}

.license-type-name-cell[b-tbz98sb12v] {
    gap: 10px;
}

.license-type-name-cell[b-tbz98sb12v]  .mud-icon-root {
    flex: 0 0 auto;
}

.license-type-name-text[b-tbz98sb12v],
.license-type-alias-text[b-tbz98sb12v] {
    color: var(--mud-palette-text-primary);
    line-height: 1.35;
    min-width: 0;
    overflow-wrap: anywhere;
}

.license-type-name-text[b-tbz98sb12v] {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.license-type-token-list[b-tbz98sb12v],
.license-type-alias-cell[b-tbz98sb12v] {
    flex-wrap: wrap;
}

.license-type-token[b-tbz98sb12v],
.license-type-demo-token[b-tbz98sb12v] {
    align-items: center;
    border-radius: 999px;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 0.72rem;
    font-weight: 600;
    height: 22px;
    justify-content: center;
    line-height: 1;
    padding: 0 7px;
}

.license-type-token[b-tbz98sb12v] {
    border: 1px solid var(--mud-palette-divider);
    color: var(--mud-palette-text-secondary);
}

.license-type-token-info[b-tbz98sb12v] {
    border-color: rgba(33, 150, 243, 0.5);
    color: var(--mud-palette-info);
}

.license-type-demo-token[b-tbz98sb12v] {
    border: 1px solid rgba(255, 152, 0, 0.5);
    color: var(--mud-palette-warning);
}

.license-type-more-count[b-tbz98sb12v] {
    color: var(--mud-palette-text-secondary);
    flex: 0 0 auto;
    font-size: 0.82rem;
    line-height: 1.35;
    white-space: nowrap;
}

.license-type-alias-text[b-tbz98sb12v] {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

@media (max-width: 960px) {
    .license-type-toolbar-content[b-tbz98sb12v],
    .license-type-grid-shell[b-tbz98sb12v] {
        padding-left: 18px;
        padding-right: 18px;
    }

    .license-type-grid-shell[b-tbz98sb12v]  .mud-table-cell {
        padding-left: 10px;
        padding-right: 10px;
    }
}
/* /Features/ScraperBacklog/Components/BacklogAgeBar.razor.rz.scp.css */
/* Bucket colours come from custom properties declared on .backlog-console in
   ScraperBacklogConsole.razor.css. Custom properties inherit through the DOM regardless of scoped
   CSS boundaries, so one declaration site serves the summary band and every table row — which is
   what keeps the colour language consistent.

   The tooltip's own contents are portalled to the body and are styled in app.css. */

.age-bar-host[b-oypmrnzo9z] {
    width: 100%;
}

.age-bar-host--compact[b-oypmrnzo9z] {
    max-width: 130px;
}

/* MudTooltip's in-place wrapper is a child component root, so it never carries this component's
   scope attribute — reach it with ::deep. Without this the full-width bar collapses to its
   content width. */
.age-bar-host[b-oypmrnzo9z]  .age-bar-host__anchor {
    display: block;
    width: 100%;
}

.age-bar[b-oypmrnzo9z] {
    display: flex;
    width: 100%;
    overflow: hidden;
    border-radius: 2px;
    background: var(--backlog-age-track);
    cursor: help;
}

.age-bar:focus-visible[b-oypmrnzo9z] {
    outline: 2px solid var(--mud-palette-primary);
    outline-offset: 2px;
}

.age-bar--full[b-oypmrnzo9z] {
    height: 34px;
}

.age-bar--compact[b-oypmrnzo9z] {
    height: 8px;
}

.age-bar__segment[b-oypmrnzo9z] {
    /* A bucket holding 26 of 7,000 is a sub-pixel sliver at true proportion: invisible, and giving
       the operator nothing to aim at. The floor costs a little accuracy on the widest segment and
       buys every non-zero bucket a visible presence. */
    min-width: 4px;
    transition: flex-grow 0.45s cubic-bezier(0.3, 0.7, 0.3, 1);
}

.age-bar--compact .age-bar__segment[b-oypmrnzo9z] {
    min-width: 3px;
}

.age-bar__segment[data-bucket="0"][b-oypmrnzo9z] { background: var(--backlog-age-0); }
.age-bar__segment[data-bucket="1"][b-oypmrnzo9z] { background: var(--backlog-age-1); }
.age-bar__segment[data-bucket="2"][b-oypmrnzo9z] { background: var(--backlog-age-2); }
.age-bar__segment[data-bucket="3"][b-oypmrnzo9z] { background: var(--backlog-age-3); }

.age-bar__empty[b-oypmrnzo9z] {
    flex: 1;
    background: var(--backlog-age-track);
}

@media (prefers-reduced-motion: reduce) {
    .age-bar__segment[b-oypmrnzo9z] {
        transition: none;
    }
}
/* /Features/ScraperBacklog/Components/BacklogDispatchBar.razor.rz.scp.css */
/* Sticks to the bottom of the viewport: the operator ticks rows while scrolling a long table, and
   an action bar that scrolls away turns selection into a memory exercise. */
.backlog-dispatch[b-zisvks98vq] {
    position: sticky;
    bottom: 0;
    z-index: 3;
    display: flex;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
    margin: 18px 24px 0;
    padding: 12px 18px;
    border: 1px solid var(--mud-palette-primary);
    border-radius: 4px;
    background: var(--mud-palette-surface);
    box-shadow: 0 -2px 12px rgba(0, 0, 0, 0.12);
}

.backlog-dispatch__counts[b-zisvks98vq] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    flex-wrap: wrap;
}

.backlog-dispatch__total[b-zisvks98vq] {
    display: flex;
    align-items: baseline;
    gap: 6px;
}

/* The request total is the decision. It is the largest thing in the bar on purpose. */
.backlog-dispatch__total-value[b-zisvks98vq] {
    font-family: 'Poppins', sans-serif;
    font-weight: 600;
    font-size: 22px;
    line-height: 1;
    color: var(--mud-palette-text-primary);
}

.backlog-dispatch__total-label[b-zisvks98vq] {
    font-size: 13px;
    color: var(--mud-palette-text-primary);
}

.backlog-dispatch__groups[b-zisvks98vq] {
    font-size: 12px;
    color: var(--mud-palette-text-secondary);
}

.backlog-dispatch__cap[b-zisvks98vq] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1 1 260px;
    font-size: 12px;
    color: var(--mud-palette-warning-text);
}

.backlog-dispatch__actions[b-zisvks98vq] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}
/* /Features/ScraperBacklog/Components/BacklogFilterBar.razor.rz.scp.css */
/* Only the bar itself is styled here. The dropdown contents live in a MudPopover, which renders
   outside this component's scoped CSS subtree — those styles are in app.css under
   "Scraper Backlog filter dropdowns". */

.backlog-filters[b-ctmg5ruxsv] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    padding: 12px 24px;
    background: var(--mud-palette-surface);
    border-bottom: 1px solid var(--mud-palette-divider);
}

.backlog-filters[b-ctmg5ruxsv]  .backlog-filter__button {
    text-transform: none;
    font-size: 13px;
    letter-spacing: normal;
    border-color: var(--mud-palette-divider);
    color: var(--mud-palette-text-primary);
}

.backlog-filters[b-ctmg5ruxsv]  .backlog-filter__button--active {
    background: rgba(var(--mud-palette-primary-rgb), 0.15);
    border-color: var(--mud-palette-primary);
}

.backlog-filters[b-ctmg5ruxsv]  .backlog-filter__tally {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    margin-left: 7px;
    padding: 0 5px;
    border-radius: 9px;
    background: var(--mud-palette-primary);
    color: var(--mud-palette-primary-text);
    font-size: 11px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.backlog-filters[b-ctmg5ruxsv]  .backlog-filters__reset {
    text-transform: none;
    font-size: 12px;
    color: var(--mud-palette-text-secondary);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.backlog-filters[b-ctmg5ruxsv]  .backlog-filters__reset:hover {
    color: var(--backlog-age-3);
}

@media (max-width: 720px) {
    .backlog-filters[b-ctmg5ruxsv] {
        padding: 12px 14px;
    }
}
/* /Features/ScraperBacklog/Components/BacklogGroupsTable.razor.rz.scp.css */
.backlog-table[b-n1n1b1gpf0] {
    margin: 18px 24px 0;
    background: var(--mud-palette-surface);
    border: 1px solid var(--mud-palette-divider);
    border-radius: 4px;
    overflow-x: auto;
    transition: opacity 0.15s ease-out;
}

/* Previous results stay readable while a refetch runs. Blanking them would break the one thing the
   operator is doing: comparing numbers across filter changes. */
.backlog-table--refreshing[b-n1n1b1gpf0] {
    opacity: 0.45;
    pointer-events: none;
}

.backlog-table[b-n1n1b1gpf0]  table {
    min-width: 880px;
}

.backlog-table[b-n1n1b1gpf0]  th {
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-size: 10px;
    font-weight: 600;
    color: var(--mud-palette-text-secondary);
    white-space: nowrap;
    background: var(--mud-palette-background-grey);
}

.backlog-table[b-n1n1b1gpf0]  td {
    font-size: 13px;
    vertical-align: middle;
}

.backlog-table[b-n1n1b1gpf0]  .backlog-table__num {
    text-align: right;
}

.backlog-table__source[b-n1n1b1gpf0] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.backlog-table__tag[b-n1n1b1gpf0] {
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 9.5px;
    font-weight: 600;
    border: 1px solid transparent;
    border-radius: 2px;
    padding: 1px 5px;
    white-space: nowrap;
}

.backlog-table__tag--license[b-n1n1b1gpf0] {
    color: var(--mud-palette-primary);
    border-color: rgba(var(--mud-palette-primary-rgb), 0.4);
    background: rgba(var(--mud-palette-primary-rgb), 0.15);
}

.backlog-table__tag--dataset[b-n1n1b1gpf0] {
    color: var(--mud-palette-secondary);
    border-color: rgba(var(--mud-palette-secondary-rgb), 0.4);
    background: rgba(var(--mud-palette-secondary-rgb), 0.15);
}

.backlog-table__count[b-n1n1b1gpf0] {
    font-weight: 600;
    font-size: 14px;
    font-variant-numeric: tabular-nums;
}

.backlog-table__muted[b-n1n1b1gpf0] {
    color: var(--mud-palette-text-disabled);
    font-style: italic;
}

.backlog-table__unresolved[b-n1n1b1gpf0] {
    color: var(--mud-palette-text-secondary);
}

/* A stand-in name is marked rather than silently passed off as real, so an operator can tell the
   difference between "this client is called that" and "we could not look it up". */
.backlog-table__unresolved-mark[b-n1n1b1gpf0] {
    display: inline-block;
    margin-left: 4px;
    padding: 0 4px;
    border: 1px solid var(--mud-palette-divider);
    border-radius: 2px;
    font-size: 9.5px;
    font-weight: 700;
    color: var(--mud-palette-text-disabled);
    vertical-align: 1px;
}

.backlog-table__oldest[b-n1n1b1gpf0] {
    display: block;
    margin-top: 4px;
    font-size: 11px;
    color: var(--mud-palette-text-secondary);
    font-variant-numeric: tabular-nums;
}

.backlog-table__oldest--hot[b-n1n1b1gpf0] {
    color: var(--backlog-age-3);
    font-weight: 600;
}

.backlog-table__empty[b-n1n1b1gpf0] {
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: 54px 22px;
    text-align: center;
    color: var(--mud-palette-text-secondary);
}

.backlog-table__empty strong[b-n1n1b1gpf0] {
    font-size: 15px;
    color: var(--mud-palette-text-primary);
}

.backlog-table__placeholder[b-n1n1b1gpf0] {
    padding: 54px 22px;
    text-align: center;
    color: var(--mud-palette-text-disabled);
}

.backlog-table__foot[b-n1n1b1gpf0] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 12px 24px 0;
    font-size: 11px;
    color: var(--mud-palette-text-secondary);
}

@media (max-width: 720px) {
    .backlog-table[b-n1n1b1gpf0] {
        margin: 14px 14px 0;
    }

    .backlog-table__foot[b-n1n1b1gpf0] {
        padding: 12px 14px 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .backlog-table[b-n1n1b1gpf0] {
        transition: none;
    }
}

.backlog-table[b-n1n1b1gpf0]  .backlog-table__tick {
    width: 40px;
    padding-right: 0;
}

/* The whole row is the click target, so it has to look like one. */
.backlog-table[b-n1n1b1gpf0]  .backlog-table__row--selectable {
    cursor: pointer;
}

.backlog-table[b-n1n1b1gpf0]  .backlog-table__row--selected {
    background: rgba(var(--mud-palette-primary-rgb), 0.08);
}
/* /Features/ScraperBacklog/Components/BacklogRecentSends.razor.rz.scp.css */
.backlog-recent[b-ccmb4cdy7e] {
    margin: 18px 24px 0;
    border: 1px solid var(--mud-palette-divider);
    border-radius: 4px;
    background: var(--mud-palette-surface);
}

.backlog-recent__head[b-ccmb4cdy7e] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 14px;
    border-bottom: 1px solid var(--mud-palette-divider);
    background: var(--mud-palette-background-grey);
}

.backlog-recent__title[b-ccmb4cdy7e] {
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-size: 10px;
    font-weight: 600;
    color: var(--mud-palette-text-secondary);
}

/* Says out loud that this list is per-browser, so nobody mistakes it for the audit trail. */
.backlog-recent__scope[b-ccmb4cdy7e] {
    font-size: 11px;
    font-style: italic;
    color: var(--mud-palette-text-secondary);
    margin-right: auto;
}

.backlog-recent__row[b-ccmb4cdy7e] {
    display: grid;
    grid-template-columns: 90px 1fr auto auto;
    gap: 12px;
    align-items: center;
    padding: 6px 14px;
    font-size: 12px;
}

.backlog-recent__when[b-ccmb4cdy7e] {
    color: var(--mud-palette-text-secondary);
    white-space: nowrap;
}

.backlog-recent__counts[b-ccmb4cdy7e] {
    color: var(--mud-palette-text-primary);
}

.backlog-recent__status[b-ccmb4cdy7e] {
    display: flex;
    align-items: baseline;
    gap: 6px;
    white-space: nowrap;
}

.backlog-recent__status-value[b-ccmb4cdy7e] {
    font-weight: 600;
}

.backlog-recent__status-progress[b-ccmb4cdy7e],
.backlog-recent__status-unknown[b-ccmb4cdy7e] {
    color: var(--mud-palette-text-secondary);
}

.backlog-recent__error[b-ccmb4cdy7e] {
    padding: 0 14px 8px 116px;
    font-size: 11px;
    color: var(--mud-palette-error);
}

@media (max-width: 720px) {
    .backlog-recent__row[b-ccmb4cdy7e] {
        grid-template-columns: 1fr;
    }

    .backlog-recent__error[b-ccmb4cdy7e] {
        padding-left: 14px;
    }
}
/* /Features/ScraperBacklog/Components/BacklogSendDialog.razor.rz.scp.css */
.backlog-send[b-drwes4j377] {
    display: flex;
    flex-direction: column;
    gap: 14px;
    min-width: 380px;
    max-width: 620px;
}

.backlog-send__headline[b-drwes4j377] {
    display: flex;
    align-items: baseline;
    gap: 8px;
    font-size: 13px;
    color: var(--mud-palette-text-primary);
}

.backlog-send__headline-value[b-drwes4j377] {
    font-family: 'Poppins', sans-serif;
    font-weight: 600;
    font-size: 26px;
    line-height: 1;
}

/* Scrolls rather than truncating: the operator can send up to 200 groups, and a list that hides
   some of them would defeat the point of listing them at all. */
.backlog-send__groups[b-drwes4j377] {
    max-height: 260px;
    overflow-y: auto;
    border: 1px solid var(--mud-palette-divider);
    border-radius: 4px;
}

.backlog-send__group[b-drwes4j377] {
    display: grid;
    grid-template-columns: 1.2fr 1.4fr 0.8fr auto;
    gap: 10px;
    align-items: center;
    padding: 6px 10px;
    font-size: 12px;
    border-bottom: 1px solid var(--mud-palette-divider);
}

.backlog-send__group:last-child[b-drwes4j377] {
    border-bottom: none;
}

.backlog-send__group-client[b-drwes4j377] {
    font-weight: 600;
    color: var(--mud-palette-text-primary);
}

.backlog-send__group-source[b-drwes4j377],
.backlog-send__group-verification[b-drwes4j377] {
    color: var(--mud-palette-text-secondary);
    overflow-wrap: anywhere;
}

.backlog-send__group-count[b-drwes4j377] {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    text-align: right;
    color: var(--mud-palette-text-primary);
}

.backlog-send__drift[b-drwes4j377] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    padding: 12px;
    border: 1px solid var(--mud-palette-divider);
    border-radius: 4px;
    background: var(--mud-palette-background-grey);
}

.backlog-send__drift-item[b-drwes4j377] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}

.backlog-send__drift-label[b-drwes4j377] {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--mud-palette-text-secondary);
}

.backlog-send__drift-value[b-drwes4j377] {
    font-family: 'Poppins', sans-serif;
    font-weight: 600;
    font-size: 20px;
    line-height: 1;
    color: var(--mud-palette-text-primary);
}

.backlog-send__status[b-drwes4j377] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    padding: 10px 12px;
    border: 1px solid var(--mud-palette-divider);
    border-radius: 4px;
}

.backlog-send__status-line[b-drwes4j377] {
    display: flex;
    align-items: baseline;
    gap: 6px;
    font-size: 13px;
    color: var(--mud-palette-text-primary);
}

.backlog-send__status-value[b-drwes4j377] {
    font-weight: 600;
}

.backlog-send__note[b-drwes4j377] {
    font-size: 12px;
    line-height: 1.5;
    color: var(--mud-palette-text-secondary);
}

.backlog-send__note--muted[b-drwes4j377] {
    font-size: 11px;
    overflow-wrap: anywhere;
}
/* /Features/ScraperBacklog/Components/BacklogSummaryBand.razor.rz.scp.css */
.backlog-band[b-5eagglj67u] {
    background: var(--v-deep-blue);
    color: #FFFFFF;
    padding: 26px 24px 20px;
}

.backlog-band__skeleton[b-5eagglj67u] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* MudSkeleton's default tint is invisible on the dark band. */
.backlog-band__skeleton[b-5eagglj67u]  .mud-skeleton {
    background-color: rgba(255, 255, 255, 0.12);
}

.backlog-band__figures[b-5eagglj67u] {
    display: flex;
    align-items: flex-end;
    gap: 32px;
    flex-wrap: wrap;
    margin-bottom: 18px;
}

.backlog-band__headline[b-5eagglj67u] {
    display: flex;
    flex-direction: column;
}

.backlog-band__label[b-5eagglj67u] {
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.62);
    margin-bottom: 6px;
}

.backlog-band__count[b-5eagglj67u] {
    font-family: 'Poppins', sans-serif;
    font-size: 58px;
    font-weight: 300;
    line-height: 0.9;
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
}

.backlog-band__stats[b-5eagglj67u] {
    display: flex;
    gap: 28px;
    flex-wrap: wrap;
    padding-bottom: 6px;
}

.backlog-band__stat[b-5eagglj67u] {
    display: flex;
    flex-direction: column;
}

.backlog-band__stat-value[b-5eagglj67u] {
    font-size: 19px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.backlog-band__stat-label[b-5eagglj67u] {
    font-size: 11px;
    letter-spacing: 0.05em;
    color: rgba(255, 255, 255, 0.62);
}

.backlog-band__stat--alarm .backlog-band__stat-value[b-5eagglj67u] {
    color: var(--backlog-age-alarm-text);
}

.backlog-band__legend[b-5eagglj67u] {
    display: flex;
    gap: 22px;
    flex-wrap: wrap;
    margin-top: 10px;
}

.backlog-band__key[b-5eagglj67u] {
    display: flex;
    align-items: baseline;
    gap: 7px;
    font-size: 11px;
    color: rgba(255, 255, 255, 0.7);
}

.backlog-band__key b[b-5eagglj67u] {
    font-weight: 600;
    color: #FFFFFF;
    font-variant-numeric: tabular-nums;
}

.backlog-band__swatch[b-5eagglj67u] {
    width: 9px;
    height: 9px;
    border-radius: 1px;
    display: inline-block;
    flex: none;
    transform: translateY(1px);
}

.backlog-band__swatch[data-bucket="0"][b-5eagglj67u] { background: var(--backlog-age-0); }
.backlog-band__swatch[data-bucket="1"][b-5eagglj67u] { background: var(--backlog-age-1); }
.backlog-band__swatch[data-bucket="2"][b-5eagglj67u] { background: var(--backlog-age-2); }
.backlog-band__swatch[data-bucket="3"][b-5eagglj67u] { background: var(--backlog-age-3); }

.backlog-band__generated[b-5eagglj67u] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 14px;
    font-size: 11px;
    color: rgba(255, 255, 255, 0.55);
}

/* A snapshot the operator might mistake for live gets emphatic treatment rather than being
   quietly the same size as everything else. */
.backlog-band__generated--stale[b-5eagglj67u] {
    color: var(--backlog-age-alarm-text);
    font-weight: 600;
}

@media (max-width: 720px) {
    .backlog-band[b-5eagglj67u] {
        padding: 20px 14px 16px;
    }

    .backlog-band__count[b-5eagglj67u] {
        font-size: 44px;
    }
}
/* /Features/ScraperBacklog/Components/ScraperBacklogConsole.razor.rz.scp.css */
/* The age-bucket colour ramp is declared once, here, and inherited by the summary band, its
   legend, and every table row. Custom properties cross scoped-CSS boundaries, so one declaration
   site keeps the colour language identical everywhere it is read.

   The ramp runs healthy → alarming: portal green, amber, coral, deep red. Two of the four are brand
   tokens; the outer pair are chosen to keep the steps distinguishable and to stay legible against
   both the dark summary band and the white table. */
.backlog-console[b-cqsa9lhaiw] {
    --backlog-age-0: var(--v-green-regular);
    --backlog-age-1: #C9A227;
    --backlog-age-2: var(--v-coral);
    --backlog-age-3: #B3313F;
    --backlog-age-track: var(--mud-palette-divider);
    --backlog-age-alarm-text: #F0909F;

    padding-bottom: 32px;
}

.backlog-console__scope[b-cqsa9lhaiw] {
    display: flex;
    align-items: center;
    gap: 18px;
    flex-wrap: wrap;
    padding: 14px 24px;
    background: var(--v-dark);
    color: rgba(255, 255, 255, 0.82);
}

.backlog-console__scope-title[b-cqsa9lhaiw] {
    font-family: 'Poppins', sans-serif;
    font-weight: 600;
    font-size: 15px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #FFFFFF;
}

.backlog-console__scope-note[b-cqsa9lhaiw] {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-left: auto;
    padding: 4px 10px;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 3px;
    font-size: 11px;
}

/* MudAlert renders its own root element, which never carries this component's scope attribute —
   reach it through ::deep from the scoped wrapper. */
.backlog-console[b-cqsa9lhaiw]  .backlog-console__error {
    margin: 18px 24px 0;
}

.backlog-console__error-body[b-cqsa9lhaiw] {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

/* Inside the always-dark band the palette divider is too faint, so the track is overridden there.
   The four bucket colours above are deliberately fixed: they are a data-viz scale that has to stay
   recognisable on the dark band and the palette surface alike, so they do not track the theme. */
.backlog-console[b-cqsa9lhaiw]  .backlog-band {
    --backlog-age-track: rgba(255, 255, 255, 0.14);
}

@media (max-width: 720px) {
    .backlog-console__scope[b-cqsa9lhaiw] {
        padding: 14px;
    }

    .backlog-console__scope-note[b-cqsa9lhaiw] {
        margin-left: 0;
    }

    .backlog-console[b-cqsa9lhaiw]  .backlog-console__error {
        margin: 14px 14px 0;
    }
}

/* Says why the ticks disappeared. Informational rather than a warning: the clearing is correct
   behaviour, and the only failure would be leaving it unexplained. */
.backlog-console__selection-note[b-cqsa9lhaiw] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 18px 24px 0;
    padding: 8px 12px;
    border: 1px solid var(--mud-palette-divider);
    border-radius: 4px;
    background: var(--mud-palette-background-grey);
    font-size: 12px;
    color: var(--mud-palette-text-secondary);
}
/* /Features/SourceStatusFlow/Pages/SourceStatusFlow.razor.rz.scp.css */
/* ── Status card grid ──────────────────────────────────────────── */

.state-grid[b-jodtnj2c8r] {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 12px;
}

@media (max-width: 900px) {
    .state-grid[b-jodtnj2c8r] {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 600px) {
    .state-grid[b-jodtnj2c8r] {
        grid-template-columns: repeat(2, 1fr);
    }
}

.state-card[b-jodtnj2c8r] {
    display: flex;
    flex-direction: column;
    padding: 14px 14px 12px;
    border-radius: 10px;
    border: 1.5px solid var(--mud-palette-lines-default);
    background: var(--mud-palette-surface);
    cursor: pointer;
    transition: box-shadow 0.15s, transform 0.12s, border-color 0.15s;
    user-select: none;
    /* colour accent on left edge, overridden per-variant below */
    border-left-width: 4px;
}

.state-card:hover[b-jodtnj2c8r] {
    transform: translateY(-3px);
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.10);
}

.state-card--selected[b-jodtnj2c8r] {
    transform: translateY(-3px);
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.14);
}

/* Per-variant left-border accent colours */
.state-card--active[b-jodtnj2c8r]         { border-left-color: var(--mud-palette-success); }
.state-card--possible-issue[b-jodtnj2c8r] { border-left-color: var(--mud-palette-warning); }
.state-card--source-issue[b-jodtnj2c8r]   { border-left-color: var(--mud-palette-error); }
.state-card--automation-issue[b-jodtnj2c8r] { border-left-color: var(--mud-palette-error); }
.state-card--automation-degraded[b-jodtnj2c8r] { border-left-color: var(--mud-palette-warning); }

/* Selected cards get a matching border on all sides */
.state-card--active.state-card--selected[b-jodtnj2c8r]         { border-color: var(--mud-palette-success); }
.state-card--possible-issue.state-card--selected[b-jodtnj2c8r] { border-color: var(--mud-palette-warning); }
.state-card--source-issue.state-card--selected[b-jodtnj2c8r]   { border-color: var(--mud-palette-error); }
.state-card--automation-issue.state-card--selected[b-jodtnj2c8r] { border-color: var(--mud-palette-error); }
.state-card--automation-degraded.state-card--selected[b-jodtnj2c8r] { border-color: var(--mud-palette-warning); }

.state-card__badge[b-jodtnj2c8r] {
    margin-bottom: 8px;
}

.state-card__name[b-jodtnj2c8r] {
    font-weight: 600;
    line-height: 1.3;
    margin-bottom: 4px;
    font-size: 0.875rem;
}

.state-card__summary[b-jodtnj2c8r] {
    font-size: 0.76rem;
    line-height: 1.4;
    color: var(--mud-palette-text-secondary);
    flex: 1; /* ensures cards in the same row stretch to equal height */
}

/* Chip inside card — suppress pointer so card click wins */
.chip-no-pointer[b-jodtnj2c8r] {
    pointer-events: none;
}

/* ── Arrow / transition legend ─────────────────────────────────── */

.arrow-legend[b-jodtnj2c8r] {
    display: flex;
    flex-direction: column;
    gap: 7px;
    padding: 12px 16px;
    background: var(--mud-palette-background-grey);
    border-radius: 8px;
    font-size: 0.83rem;
}

.arrow-legend-row[b-jodtnj2c8r] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.arrow-badge[b-jodtnj2c8r] {
    display: inline-block;
    font-size: 0.64rem;
    font-weight: 700;
    letter-spacing: 0.5px;
    padding: 2px 7px;
    border-radius: 4px;
    white-space: nowrap;
    margin-top: 2px;
    flex-shrink: 0;
}

.arrow-badge--auto[b-jodtnj2c8r]   { background: rgba(76, 175, 80, 0.15); color: var(--mud-palette-success); }
.arrow-badge--manual[b-jodtnj2c8r] { background: rgba(255, 152, 0, 0.15); color: var(--mud-palette-warning); }

.arrow-legend-text[b-jodtnj2c8r] {
    line-height: 1.5;
}

/* ── Capability table row highlight ───────────────────────────── */

[b-jodtnj2c8r] .table-row--selected td {
    background-color: rgba(var(--mud-palette-primary-rgb), 0.07);
}

/* ── Detail panel sticky ──────────────────────────────────────── */

.detail-sticky[b-jodtnj2c8r] {
    position: sticky;
    top: 72px;
}

.detail-empty[b-jodtnj2c8r] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 200px;
    text-align: center;
    opacity: 0.55;
    border-radius: 10px !important;
}

/* ── Timeline interactive link ────────────────────────────────── */

.timeline-routing-link[b-jodtnj2c8r] {
    font-weight: 600;
    cursor: pointer;
    text-decoration: underline dotted;
    color: var(--mud-palette-primary);
}
/* /Features/SourceTriggers/Components/SourceTriggerDataGrid.razor.rz.scp.css */
.sticky[b-yi8bu3u9dr] {
    position: sticky;
    top: 0;
    z-index: 100;
}

.sticky[b-yi8bu3u9dr]  .sources-monitoring-toolbar {
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.reason-cell[b-yi8bu3u9dr] {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    max-width: 320px;
}

.source-trigger-grid .mud-table-cell[b-yi8bu3u9dr] {
    vertical-align: middle;
}

.warden-link-cell[b-yi8bu3u9dr] {
    min-width: 160px;
    line-height: 1.2;
}

.ingestion-chip[b-yi8bu3u9dr] {
    margin: 0;
    height: 18px;
    font-size: 0.65rem;
    pointer-events: none;
}
/* /Features/SourceTriggers/Components/SourceWardenMetricsPanel.razor.rz.scp.css */
[b-e1anta0q4s] .warden-metrics-panel {
    margin: 0;
    border-radius: 0;
    border-top: 1px solid var(--mud-palette-divider);
}

[b-e1anta0q4s] .stat-tiles {
    padding-top: 12px;
}
/* /Features/SupportInsights/Components/AgentPanelSection.razor.rz.scp.css */
.agent-grid[b-4hklx9rmfv] {
    width: 100%;
    overflow-x: auto;
}

.leaderboard-chart[b-4hklx9rmfv] {
    margin: 0 -8px;
}

.clickable-bars :deep(.apexcharts-bar-area)[b-4hklx9rmfv] {
    cursor: pointer;
}

/* Explains what the deltas below are measured against. Uses the muted text token rather than
   Color.Secondary, which is the theme's pink accent and reads as an alert on a neutral caption. */
.delta-caption[b-4hklx9rmfv] {
    color: var(--mud-palette-text-secondary);
}

/* Week-over-week delta, shown beside each queue count. Sized down and set in tabular figures so a
   column of counts stays vertically aligned whether or not a given row has a delta to show. */
.queue-delta[b-4hklx9rmfv] {
    margin-left: 4px;
    font-size: 0.72rem;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

/* Growth in a queue column means more tickets sitting there — the unwanted direction — so the
   colors are inverted relative to the usual "up is good" convention. */
.queue-delta-up[b-4hklx9rmfv] {
    color: var(--mud-palette-warning);
}

.queue-delta-down[b-4hklx9rmfv] {
    color: var(--mud-palette-success);
}
/* /Features/SupportInsights/Components/AgentSourceTrendCard.razor.rz.scp.css */
.chart-section[b-6rur8zcbfq] {
    margin-top: 1rem;
}

.chart-title[b-6rur8zcbfq] {
    display: block;
    margin-bottom: 0.25rem;
    color: var(--mud-palette-text-secondary);
}
/* /Features/SupportInsights/Components/BacklogSection.razor.rz.scp.css */
.kpi-tile-clickable[b-zk9tz34ias] {
    cursor: pointer;
    transition: box-shadow 0.15s ease;
}

.kpi-tile-clickable:hover[b-zk9tz34ias] {
    box-shadow: var(--mud-elevation-4);
}

.kpi-tile-link[b-zk9tz34ias] {
    display: block;
    text-decoration: none;
    color: inherit;
}
/* /Features/SupportInsights/Components/KpiSummarySection.razor.rz.scp.css */
.kpi-tile-clickable[b-9r69a93jy3] {
    cursor: pointer;
    transition: box-shadow 0.15s ease;
}

.kpi-tile-clickable:hover[b-9r69a93jy3] {
    box-shadow: var(--mud-elevation-4);
}

.kpi-tile-link[b-9r69a93jy3] {
    display: block;
    text-decoration: none;
    color: inherit;
}
/* /Features/SupportInsights/Components/SupportInsightsAdminTabs.razor.rz.scp.css */
/* Section switcher for the Support Insights admin area. Sits in the content area below the page's
   tab bar — the horizontal gutter matches the pa-6 page content beneath it, and the top/bottom
   padding keeps it visually attached to the content it switches rather than to the tabs above. */
.si-admin-switcher[b-ayy6bss98c] {
    padding: 16px 24px 0;
}

/* MudToggleGroup stretches to its container by default, which reads as a heavy full-width band
   directly under the tab bar. Scoped CSS can't reach the component's own markup, so ::deep pins it
   to its content width and keeps it left-aligned with the page content below. */
.si-admin-switcher[b-ayy6bss98c]  .mud-toggle-group {
    width: fit-content;
}

/* Without this the longest label sits flush against its item borders while shorter ones float in
   whitespace, because the group distributes width rather than padding each label. */
.si-admin-switcher[b-ayy6bss98c]  .mud-toggle-item {
    padding-left: 16px;
    padding-right: 16px;
}
/* /Features/SupportInsights/Components/SupportInsightsTabs.razor.rz.scp.css */
.si-tab-bar[b-u1scgwj5v3] {
    padding-top: 16px;
    border-bottom: 1px solid var(--mud-palette-divider);
    background: var(--mud-palette-surface);
}

/* Scoped CSS can't reach markup rendered by the child RoutedTabs component, so MudTabs internals
   are targeted with ::deep to align the tab strip's horizontal gutter with the pa-6 page content
   below it. */
.si-tab-bar[b-u1scgwj5v3]  .mud-tabs-tabbar-wrapper {
    padding-left: 24px;
    padding-right: 24px;
}
/* /Features/SupportInsights/Pages/SupportInsightsCustomers.razor.rz.scp.css */
/* .zd-count-link colors and text-decoration are in app.css (global) so they
   override MudBlazor's default <a> reset regardless of scoping. */
/* /Features/Users/Pages/Users.razor.rz.scp.css */
.users-page[b-u1xj6q7w3p] {
    width: 100%;
    overflow-x: auto;
}

.users-page[b-u1xj6q7w3p]  .mud-table-cell {
    vertical-align: middle;
}

.users-name[b-u1xj6q7w3p] {
    overflow-wrap: anywhere;
}

.users-email-cell[b-u1xj6q7w3p] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    max-width: 100%;
}

.users-email[b-u1xj6q7w3p] {
    overflow-wrap: anywhere;
}

.users-roles-cell[b-u1xj6q7w3p] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    min-width: 0;
}

.users-role-item[b-u1xj6q7w3p] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    max-width: 100%;
    min-height: 26px;
    white-space: nowrap;
}

.users-role-item[b-u1xj6q7w3p]  .mud-icon-button {
    flex: 0 0 24px;
    color: var(--mud-palette-text-secondary);
}

.users-role-item[b-u1xj6q7w3p]  .mud-chip {
    margin: 0;
}

.users-actions-cell[b-u1xj6q7w3p] {
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
}
/* /Layout/AppNavBar/AppNavBar.razor.rz.scp.css */
.appbar-logo-icon[b-ni5mnrs8ui] {
    display: flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    color: inherit;
}

.appbar-title[b-ni5mnrs8ui] {
    font-family: 'Poppins', sans-serif;
    font-weight: 600;
    font-size: 1rem;
    color: #ffffff;
    letter-spacing: 0.01em;
}

@media (min-width: 960px) {
    .drawer-toggle[b-ni5mnrs8ui] {
        display: none;
    }
}

.appbar-actions[b-ni5mnrs8ui] {
    display: flex;
    align-items: center;
    gap: 4px;
}
/* /Layout/AppSideNav/AppSideNav.razor.rz.scp.css */
[b-upeczdkn9w] .mud-nav-link {
    border-radius: 8px;
    margin: 2px 8px;
    text-decoration: none;
    color: var(--mud-palette-text-primary);
}

[b-upeczdkn9w] .mud-nav-link:hover {
    background-color: rgba(var(--mud-palette-primary-rgb), 0.07);
    text-decoration: none;
}

[b-upeczdkn9w] .mud-nav-link.active {
    background-color: rgba(var(--mud-palette-primary-rgb), 0.10);
    color: var(--mud-palette-text-primary);
    font-weight: 600;
    text-decoration: none;
}

[b-upeczdkn9w] .mud-nav-link .mud-nav-link-text {
    text-decoration: none;
}
/* /Pages/Unauthorized.razor.rz.scp.css */
.unauthorized-page[b-avrhoh039s] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    text-align: center;
}
