@import '_content/ContraForce.Blazor.Common/ContraForce.Blazor.Common.glnzinrbot.bundle.scp.css';
@import '_content/ContraForce.Blazor.MonacoEditor/ContraForce.Blazor.MonacoEditor.90dcjnlr62.bundle.scp.css';
@import '_content/ContraForce.Blazor.UI.V2/ContraForce.Blazor.UI.V2.tc2mqm9sc2.bundle.scp.css';
@import '_content/ContraForce.Iris.Client.Components.GoJsGraph/ContraForce.Iris.Client.Components.GoJsGraph.fkw7lwln1b.bundle.scp.css';
@import '_content/ContraForce.Iris.Client.Components/ContraForce.Iris.Client.Components.4kgqvkrvak.bundle.scp.css';

/* /Pages/External/Admin/AddServiceProviderPanel.razor.rz.scp.css */
.admin-add-sp-panel[b-7o1d0ax8h9] {
    display: flex;
    flex-direction: column;
    gap: var(--cf-space-4, 1rem);
    padding-top: var(--cf-space-2, 0.5rem);
}

.admin-add-sp-panel__footer[b-7o1d0ax8h9] {
    display: flex;
    flex-direction: column-reverse;
    gap: var(--cf-space-2, 0.5rem);
    width: 100%;
}

@media (min-width: 560px) {
    .admin-add-sp-panel__footer[b-7o1d0ax8h9] {
        flex-direction: row;
        justify-content: flex-end;
    }
}
/* /Pages/External/Admin/AdminAccountDetailPage.razor.rz.scp.css */
.admin-account-detail__section-head[b-e5ysb4emmt] {
    display: flex;
    flex-direction: column;
    gap: var(--cf-space-2, 0.5rem);
    align-items: flex-start;
    width: 100%;
}

.admin-account-detail__meta-grid[b-e5ysb4emmt] {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--cf-space-4, 1rem);
}

.admin-account-detail__meta[b-e5ysb4emmt] {
    display: flex;
    flex-direction: column;
    gap: var(--cf-space-1, 0.25rem);
    align-items: flex-start;
    min-width: 0;
}

.admin-account-detail__value-inline[b-e5ysb4emmt] {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--cf-space-1, 0.25rem);
    min-width: 0;
    max-width: 100%;
}

.admin-account-detail__mono[b-e5ysb4emmt] {
    font-family: var(--cf-font-mono, monospace);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

/* Monospace but wrapping — for long values in table cells (e.g. webhook URLs) that must break
   instead of overflowing into the next column. */
.admin-account-detail__mono-wrap[b-e5ysb4emmt] {
    font-family: var(--cf-font-mono, monospace);
    overflow-wrap: anywhere;
    min-width: 0;
}

.admin-account-detail__health-summary[b-e5ysb4emmt] {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--cf-space-4, 1rem);
}

.admin-account-detail__score-suffix[b-e5ysb4emmt] {
    font-size: 0.5em;
    color: var(--cf-text-muted, #6b7280);
}

.admin-account-detail__criteria-grid[b-e5ysb4emmt] {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--cf-space-3, 0.75rem);
}

.admin-account-detail__criterion-head[b-e5ysb4emmt] {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    gap: var(--cf-space-2, 0.5rem);
    margin-bottom: var(--cf-space-1, 0.25rem);
}

.admin-account-detail__kpi-grid[b-e5ysb4emmt] {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--cf-space-3, 0.75rem);
}

.admin-account-detail__kpi-clickable[b-e5ysb4emmt] {
    cursor: pointer;
}

/*
  Run-history KPIs and breakdowns flow to fill the row instead of snapping to the page's fixed
  4-column kpi-grid. That grid orphaned the 5th KPI onto a row of its own and left the two
  breakdown cards stranded across half the width.
*/
.admin-account-detail__run-kpis[b-e5ysb4emmt] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
    gap: var(--cf-space-3, 0.75rem);
}

.admin-account-detail__breakdown-grid[b-e5ysb4emmt] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
    gap: var(--cf-space-3, 0.75rem);
}

/* Chip rows need room to breathe; they sat flush against the card edge. */
.admin-account-detail__breakdown-chips[b-e5ysb4emmt] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--cf-space-2, 0.5rem);
    padding-block: var(--cf-space-1, 0.25rem);
}

.admin-account-detail__run-coverage[b-e5ysb4emmt] {
    color: var(--cf-text-muted, #6b7280);
    font-size: var(--cf-text-body-sm, 0.75rem);
}

.admin-account-detail__module-grid[b-e5ysb4emmt] {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--cf-space-3, 0.75rem);
}

.admin-account-detail__module[b-e5ysb4emmt] {
    display: flex;
    flex-direction: column;
    gap: var(--cf-space-2, 0.5rem);
    height: 100%;
}

.admin-account-detail__module-head[b-e5ysb4emmt] {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
}

.admin-account-detail__module-icon[b-e5ysb4emmt] {
    width: 53px;
    height: 53px;
    object-fit: contain;
}

.admin-account-detail__module-status[b-e5ysb4emmt] {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--cf-space-2, 0.5rem);
}

.admin-account-detail__pager[b-e5ysb4emmt] {
    display: flex;
    justify-content: center;
    margin-top: var(--cf-space-3, 0.75rem);
}

@media (min-width: 560px) {
    .admin-account-detail__section-head[b-e5ysb4emmt] {
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
    }

    .admin-account-detail__meta-grid[b-e5ysb4emmt] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-account-detail__criteria-grid[b-e5ysb4emmt],
    .admin-account-detail__kpi-grid[b-e5ysb4emmt] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-account-detail__module-grid[b-e5ysb4emmt] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 960px) {
    .admin-account-detail__kpi-grid[b-e5ysb4emmt] {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .admin-account-detail__module-grid[b-e5ysb4emmt] {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/* ── Agent activity card (PLAT-3393) ─────────────────────────────────────────
   CFCard bodies add no gap between direct children, so the activity card's
   stacked sections need their own vertical rhythm. */
.admin-account-detail__activity-body[b-e5ysb4emmt] {
    display: flex;
    flex-direction: column;
    gap: var(--cf-space-4, 1rem);
}

/* Daily run volume. Deliberately CSS rather than a charting dependency: the
   series is one value per day over a short window, so a bar strip carries it
   without pulling a library into the admin bundle for a single view. */
.admin-account-detail__daily[b-e5ysb4emmt] {
    display: flex;
    align-items: flex-end;
    gap: var(--cf-space-1, 0.25rem);
    min-height: 6rem;
    width: 100%;
}

.admin-account-detail__daily-col[b-e5ysb4emmt] {
    flex: 1 1 0;
    min-width: 0;
    height: 6rem;
    display: flex;
    align-items: flex-end;
}

.admin-account-detail__daily-bar[b-e5ysb4emmt] {
    width: 100%;
    min-height: 2px;
    border-radius: var(--cf-radius-sm, 2px);
    background: var(--cf-color-primary, #3b82f6);
}

.admin-account-detail__daily-axis[b-e5ysb4emmt] {
    display: flex;
    justify-content: space-between;
    margin-top: var(--cf-space-2, 0.5rem);
    color: var(--cf-text-secondary, #94a3b8);
    font-size: 0.75rem;
}

/* The header controls sit in a flex row whose items are allowed to shrink, so the switch label wrapped to
   three lines beside the time filter. Keep the control intrinsically sized and its label on one line; the
   row still wraps as a whole on narrow viewports (PLAT-3393).

   ::deep because .cf-switch is rendered by CFSwitch, not declared in this page, and Blazor scoped CSS only
   decorates elements from its own file. */
.admin-account-detail__section-head[b-e5ysb4emmt]  .cf-switch {
    flex: 0 0 auto;
}

.admin-account-detail__section-head[b-e5ysb4emmt]  .cf-switch__label {
    white-space: nowrap;
}

/* Agents card: one height across Agents / Activity / Resources (PLAT-3393).

   A deliberate fixed height rather than min-height. The three panels differ by hundreds of pixels, so a minimum
   would stop the card shrinking but not growing, and the page would still jump on every tab change. Each panel
   owns the single scroll region, which is why the agents grid no longer carries its own max-height - nesting the
   two produced two scrollbars for one list. */
.admin-account-detail__agents-panel[b-e5ysb4emmt] {
    height: 32rem;
    overflow-y: auto;
}

/* The activity header's title and filter sit at opposite ends. justify-content alone was not enough, and neither
   was flex:0 0 auto on the filter: TimeFilterV2's scoped CSS sets width:100% on its root, so a basis of `auto`
   still resolves to the full row and both children shrink - which is what wrapped the title onto two lines. The
   filter is wrapped in an element this page owns so its width can be set without a specificity fight. */
.admin-account-detail__activity-head > :first-child[b-e5ysb4emmt] {
    flex: 1 1 auto;
    min-width: 0;
}

.admin-account-detail__filter[b-e5ysb4emmt] {
    flex: 0 0 auto;
    width: auto;
    min-width: 12rem;
    margin-left: auto;
}
/* /Pages/External/Admin/AdminAccountsPage.razor.rz.scp.css */
.admin-accounts__controls[b-msrv71d3xn] {
    display: flex;
    flex-direction: column;
    gap: var(--cf-space-2, 0.5rem);
    align-items: stretch;
}

.admin-accounts__search[b-msrv71d3xn] {
    flex: 1 1 auto;
    min-width: 0;
}

.admin-accounts__filters[b-msrv71d3xn] {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: var(--cf-space-2, 0.5rem);
    align-items: center;
}

.admin-accounts__id[b-msrv71d3xn] {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--cf-space-1, 0.25rem);
    min-width: 0;
}

.admin-accounts__mono[b-msrv71d3xn] {
    font-family: var(--cf-font-mono, monospace);
}

@media (min-width: 560px) {
    .admin-accounts__controls[b-msrv71d3xn] {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }

    .admin-accounts__search[b-msrv71d3xn] {
        max-width: 420px;
    }
}
/* /Pages/External/Admin/AdminAgentCenterDetailPage.razor.rz.scp.css */
.admin-agent-center__hero[b-c1uhh6rvak] {
    display: flex;
    flex-direction: column;
    gap: var(--cf-space-3, 0.75rem);
    align-items: flex-start;
    justify-content: space-between;
}

.admin-agent-center__hero-info[b-c1uhh6rvak] {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--cf-space-3, 0.75rem);
}

.admin-agent-center__hero-text[b-c1uhh6rvak] {
    display: flex;
    flex-direction: column;
    gap: var(--cf-space-1, 0.25rem);
    align-items: flex-start;
}

.admin-agent-center__chip-row[b-c1uhh6rvak] {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--cf-space-2, 0.5rem);
}

.admin-agent-center__hero-actions[b-c1uhh6rvak] {
    display: flex;
    flex-direction: row;
    gap: var(--cf-space-1, 0.25rem);
}

.admin-agent-center__mgmt[b-c1uhh6rvak] {
    display: flex;
    flex-direction: column;
    gap: var(--cf-space-1, 0.25rem);
    margin-top: var(--cf-space-3, 0.75rem);
    align-items: flex-start;
}

.admin-agent-center__value-inline[b-c1uhh6rvak] {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--cf-space-1, 0.25rem);
    min-width: 0;
    max-width: 100%;
}

.admin-agent-center__mono[b-c1uhh6rvak] {
    font-family: var(--cf-font-mono, monospace);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.admin-agent-center__muted[b-c1uhh6rvak] {
    display: block;
    color: var(--cf-text-muted, #6b7280);
    font-size: 0.8em;
}

.admin-agent-center__kpis[b-c1uhh6rvak] {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--cf-space-3, 0.75rem);
}

.admin-agent-center__kpi-clickable[b-c1uhh6rvak] {
    cursor: pointer;
    border-radius: var(--cf-radius-md, 0.5rem);
    transition: background 0.12s ease;
}

.admin-agent-center__kpi-clickable:hover[b-c1uhh6rvak] {
    background: var(--cf-bg-elevated-hover, rgba(127, 127, 127, 0.08));
}

.admin-agent-center__section-head[b-c1uhh6rvak] {
    display: flex;
    flex-direction: column;
    gap: var(--cf-space-2, 0.5rem);
    align-items: flex-start;
    width: 100%;
}

@media (min-width: 560px) {
    .admin-agent-center__kpis[b-c1uhh6rvak] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-agent-center__section-head[b-c1uhh6rvak] {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }
}

@media (min-width: 720px) {
    .admin-agent-center__hero[b-c1uhh6rvak] {
        flex-direction: row;
        align-items: center;
    }
}

@media (min-width: 960px) {
    .admin-agent-center__kpis[b-c1uhh6rvak] {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }
}
/* /Pages/External/Admin/AdminAgentCentersPage.razor.rz.scp.css */
.admin-agent-centers__head[b-p8wxlah4yt] {
    display: flex;
    flex-direction: column;
    gap: var(--cf-space-2, 0.5rem);
    align-items: flex-start;
}

.admin-agent-centers__kpis[b-p8wxlah4yt] {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--cf-space-3, 0.75rem);
}

.admin-agent-centers__row-actions[b-p8wxlah4yt] {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: var(--cf-space-1, 0.25rem);
    justify-content: flex-end;
}

/* Quiet coverage caption: full coverage is the normal case and should not read as an alert. */
.admin-agent-centers__run-coverage[b-p8wxlah4yt] {
    color: var(--cf-text-muted, #6b7280);
    font-size: var(--cf-text-body-sm, 0.75rem);
    padding-block-end: var(--cf-space-2, 0.5rem);
}

@media (min-width: 560px) {
    .admin-agent-centers__head[b-p8wxlah4yt] {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }

    .admin-agent-centers__kpis[b-p8wxlah4yt] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 960px) {
    .admin-agent-centers__kpis[b-p8wxlah4yt] {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}
/* /Pages/External/Admin/AdminDashboardBreakdownDialog.razor.rz.scp.css */
.admin-dashboard-breakdown__total[b-y5kx0ruv6l] {
    display: flex;
    flex-direction: row;
    align-items: baseline;
    gap: var(--cf-space-2, 0.5rem);
    margin-bottom: var(--cf-space-4, 1rem);
}

.admin-dashboard-breakdown__group-head[b-y5kx0ruv6l] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--cf-space-1, 0.25rem);
    margin-bottom: var(--cf-space-2, 0.5rem);
}

@media (min-width: 560px) {
    .admin-dashboard-breakdown__group-head[b-y5kx0ruv6l] {
        flex-direction: row;
        align-items: baseline;
        justify-content: space-between;
        gap: var(--cf-space-2, 0.5rem);
    }
}
/* /Pages/External/Admin/AdminEditAccountPanel.razor.rz.scp.css */
.admin-edit-account-panel__section[b-qttdmse9xe] {
    display: flex;
    flex-direction: column;
    gap: var(--cf-space-4, 1rem);
    padding-top: var(--cf-space-2, 0.5rem);
}

.admin-edit-account-panel__grid[b-qttdmse9xe] {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--cf-space-4, 1rem);
}

.admin-edit-account-panel__perm-grid[b-qttdmse9xe] {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--cf-space-6, 1.5rem);
}

.admin-edit-account-panel__perm-group[b-qttdmse9xe] {
    display: flex;
    flex-direction: column;
    gap: var(--cf-space-2, 0.5rem);
    align-items: flex-start;
}

.admin-edit-account-panel__footer[b-qttdmse9xe] {
    display: flex;
    flex-direction: column-reverse;
    gap: var(--cf-space-2, 0.5rem);
    width: 100%;
}

@media (min-width: 560px) {
    .admin-edit-account-panel__footer[b-qttdmse9xe] {
        flex-direction: row;
        justify-content: flex-end;
    }
}

@media (min-width: 720px) {
    .admin-edit-account-panel__grid[b-qttdmse9xe] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-edit-account-panel__perm-grid[b-qttdmse9xe] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
/* /Pages/External/Admin/AdminFeatureFlagAudiencePanel.razor.rz.scp.css */
/* Spacing uses the --cf-space-N scale from tokens/_spacing.css. There is no --cf-spacing-* scale;
   naming one collapses the declaration to nothing, which is what flattened this panel. */

.admin-ff-panel[b-tvm6zm70ye] {
    display: flex;
    flex-direction: column;
    gap: var(--cf-space-4);
}

/* The grid is the densest thing in the panel, so it gets more air above it than the
   stacked alerts and controls need between themselves. */
.admin-ff-panel__table[b-tvm6zm70ye] {
    margin-top: var(--cf-space-2);
}

.admin-ff-panel__meta[b-tvm6zm70ye] {
    display: flex;
    align-items: center;
    gap: var(--cf-space-2);
    flex-wrap: wrap;
}

.admin-ff-panel__filters[b-tvm6zm70ye] {
    display: flex;
    align-items: center;
    gap: var(--cf-space-2);
    flex-wrap: wrap;
}

.admin-ff-panel__search[b-tvm6zm70ye] {
    max-width: 24rem;
}

.admin-ff-panel__account[b-tvm6zm70ye] {
    display: flex;
    align-items: center;
    gap: var(--cf-space-2);
    min-width: 0;
}

/* Wrap between words, never inside one. The grid cell is narrow enough that the inherited
   break-anywhere rule was splitting names like "A Datum Corporation" character by character. */
.admin-ff-panel__account-name[b-tvm6zm70ye] {
    min-width: 0;
    overflow-wrap: normal;
    word-break: normal;
}

/* The badge keeps its width so the name gives up space first, not the other way round.
   ::deep because .cf-chip is rendered by CFChip, not declared here, and Blazor scoped CSS
   only stamps its scope onto elements in this component's own markup. */
.admin-ff-panel__account[b-tvm6zm70ye]  .cf-chip {
    flex: 0 0 auto;
}

.admin-ff-panel__mono[b-tvm6zm70ye] {
    font-family: var(--cf-font-mono);
    font-size: 0.8125rem;
}
/* /Pages/External/Admin/AdminFeatureFlagsPage.razor.rz.scp.css */
/* Spacing uses the --cf-space-N scale from tokens/_spacing.css. */

.admin-feature-flags__header[b-ogxcah7o58] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--cf-space-4);
    flex-wrap: wrap;
}

.admin-feature-flags__title[b-ogxcah7o58] {
    display: flex;
    align-items: center;
    gap: var(--cf-space-2);
}

.admin-feature-flags__search[b-ogxcah7o58] {
    max-width: 28rem;
}

.admin-feature-flags__mono[b-ogxcah7o58] {
    font-family: var(--cf-font-mono);
    font-size: 0.8125rem;
}
/* /Pages/External/Admin/AdminGamebookBreakdownDialog.razor.rz.scp.css */
.admin-breakdown-dialog[b-7srr1s9a8i] {
    display: flex;
    flex-direction: column;
    gap: var(--cf-space-4, 1rem);
}

.admin-breakdown-dialog__total[b-7srr1s9a8i] {
    display: flex;
    align-items: baseline;
    gap: var(--cf-space-2, 0.5rem);
}

.admin-breakdown-dialog__bar[b-7srr1s9a8i] {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: var(--cf-space-2, 0.5rem);
}
/* /Pages/External/Admin/AdminIncidentBreakdownDialog.razor.rz.scp.css */
.admin-breakdown-dialog[b-8ydaqq298p] {
    display: flex;
    flex-direction: column;
    gap: var(--cf-space-4, 1rem);
}

.admin-breakdown-dialog__total[b-8ydaqq298p] {
    display: flex;
    align-items: baseline;
    gap: var(--cf-space-2, 0.5rem);
}

.admin-breakdown-dialog__bar[b-8ydaqq298p] {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: var(--cf-space-2, 0.5rem);
}
/* /Pages/External/Admin/AdminSaasPoolAgentDetailPage.razor.rz.scp.css */
.admin-pool-agent__section-head[b-3x1ip0cof2] {
    display: flex;
    flex-direction: column;
    gap: var(--cf-space-2, 0.5rem);
    align-items: flex-start;
    width: 100%;
}

.admin-pool-agent__meta-grid[b-3x1ip0cof2] {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--cf-space-4, 1rem);
}

.admin-pool-agent__meta[b-3x1ip0cof2] {
    display: flex;
    flex-direction: column;
    gap: var(--cf-space-1, 0.25rem);
    min-width: 0;
}

.admin-pool-agent__value-inline[b-3x1ip0cof2] {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--cf-space-1, 0.25rem);
    min-width: 0;
    max-width: 100%;
}

.admin-pool-agent__mono[b-3x1ip0cof2] {
    font-family: var(--cf-font-mono, monospace);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.admin-pool-agent__kpis[b-3x1ip0cof2] {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--cf-space-3, 0.75rem);
    margin-bottom: var(--cf-space-4, 1rem);
}

@media (min-width: 560px) {
    .admin-pool-agent__section-head[b-3x1ip0cof2] {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }

    .admin-pool-agent__meta-grid[b-3x1ip0cof2] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 960px) {
    .admin-pool-agent__meta-grid[b-3x1ip0cof2] {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
/* /Pages/External/Admin/AdminSentinelIngestDetailsDialog.razor.rz.scp.css */
.admin-sentinel-ingest__grid[b-ysy8xgcnxi] {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--cf-space-4, 1rem);
}

@media (min-width: 560px) {
    .admin-sentinel-ingest__grid[b-ysy8xgcnxi] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Value + copy action sit side by side, action immediately next to the value. */
.admin-sentinel-ingest__inline[b-ysy8xgcnxi] {
    display: flex;
    align-items: center;
    gap: var(--cf-space-2, 0.5rem);
    min-width: 0;
}

.admin-sentinel-ingest__inline[b-ysy8xgcnxi]  :first-child {
    min-width: 0;
    overflow-wrap: anywhere;
}
/* /Pages/External/Admin/DeployAgentCenterPanel.razor.rz.scp.css */
.admin-deploy-panel[b-m3ev1syid3] {
    display: flex;
    flex-direction: column;
    gap: var(--cf-space-4, 1rem);
    padding-top: var(--cf-space-2, 0.5rem);
}

.admin-deploy-panel__footer[b-m3ev1syid3] {
    display: flex;
    flex-direction: column-reverse;
    gap: var(--cf-space-2, 0.5rem);
    width: 100%;
}

@media (min-width: 560px) {
    .admin-deploy-panel__footer[b-m3ev1syid3] {
        flex-direction: row;
        justify-content: flex-end;
    }
}
/* /Pages/External/Admin/DeploySaasPoolAgentPanel.razor.rz.scp.css */
.admin-deploy-panel[b-bn7vnfudsb] {
    display: flex;
    flex-direction: column;
    gap: var(--cf-space-4, 1rem);
    padding-top: var(--cf-space-2, 0.5rem);
}

.admin-deploy-panel__grid[b-bn7vnfudsb] {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--cf-space-4, 1rem);
}

.admin-deploy-panel__footer[b-bn7vnfudsb] {
    display: flex;
    flex-direction: column-reverse;
    gap: var(--cf-space-2, 0.5rem);
    width: 100%;
}

@media (min-width: 560px) {
    .admin-deploy-panel__grid[b-bn7vnfudsb] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-deploy-panel__footer[b-bn7vnfudsb] {
        flex-direction: row;
        justify-content: flex-end;
    }
}
/* /Pages/External/CommandPageV2.razor.rz.scp.css */
/* ==========================================================================
   CommandPageV2 — Hero row
   Mobile-first:
   - < 720px: title above, controls stack full-width below
   - ≥ 720px: title left, controls right (single row)
   ========================================================================== */

.cf-v2-command-page__hero[b-cl6aladej1] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--cf-space-3, 0.75rem);
    width: 100%;
    min-width: 0;
}

.cf-v2-command-page__controls[b-cl6aladej1] {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: var(--cf-space-2, 0.5rem);
    width: 100%;
    min-width: 0;
}

@media (min-width: 720px) {
    .cf-v2-command-page__hero[b-cl6aladej1] {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        gap: var(--cf-space-4, 1rem);
        flex-wrap: wrap;
    }

    /* Cap the controls block and let it shrink — without this, the time
       filter's internal width:100% expands until it overflows the hero. */
    .cf-v2-command-page__controls[b-cl6aladej1] {
        flex-direction: row;
        align-items: center;
        justify-content: flex-end;
        width: auto;
        max-width: 100%;
        flex: 0 1 auto;
        gap: var(--cf-space-3, 0.75rem);
    }

    /* The time filter's scoped CSS sets width:100%; inside the hero we want
       it sized to its content so the refresh control and timestamp stay on
       screen. ::deep pierces into the TimeFilterV2 component's root. */
    .cf-v2-command-page__controls[b-cl6aladej1]  .cf-v2-time-filter {
        width: auto;
        min-width: 12rem;
        max-width: 18rem;
    }
}
/* /Pages/External/Gamebooks.razor.rz.scp.css */
/*
    Gamebooks workbench (V2) — page-specific tweaks. Reuses the
    cf-v2-incident-detail__* shared shell (page padding, card-shell
    heights, side-panel scroll surface) from iris-components-styles.css.
    Page-specific overrides:

      1. Two-column split tuned for graph-dominant layout: response column
         capped narrower so the GoJS canvas gets the bulk of the width.
      2. Graph body wired into the CFCard flex chain so GoJS sees a
         definite height — without that the canvas collapses to 0×0
         and renders the single root node as a "dot."
      3. Close-incident trailing action: full-width on mobile, auto on
         tablet+, per page-design.md.
*/

/* ---------- Two-column split tuned for the graph workbench ----------
   Inherited shared grid switches to two columns at >=1180px; for the
   gamebook workbench the graph needs room as soon as we have it, so
   split at >=960px and cap the response column tighter (20-26rem) than
   the incident-detail grid (22-30rem). */
@media (min-width: 960px) {
    .cf-v2-gamebooks-page .cf-v2-incident-detail__content-grid[b-t9gtvfrtm9] {
        grid-template-columns: minmax(0, 1fr) minmax(20rem, 26rem);
    }
}

@media (min-width: 1440px) {
    .cf-v2-gamebooks-page .cf-v2-incident-detail__content-grid[b-t9gtvfrtm9] {
        grid-template-columns: minmax(0, 1fr) minmax(22rem, 28rem);
    }
}

/* ---------- Graph body: explicit flex + height chain to GoJS ---------- */
.cf-v2-gamebooks__graph-body[b-t9gtvfrtm9] {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
    width: 100%;
    /* Mobile fallback: card-shell isn't height-constrained <720px, so
       give the graph its own minimum so GoJS has something to draw on. */
    min-height: 28rem;
}

@media (min-width: 720px) {
    .cf-v2-gamebooks__graph-body[b-t9gtvfrtm9] {
        height: 100%;
        min-height: 0;
    }
}

/* The Graph component's root div uses height:100%, which only resolves
   if every ancestor up the tree has a definite height. Forwarding the
   flex chain through the Graph wrapper and into #myDiagramDiv keeps the
   GoJS canvas full-bleed inside the card. ::deep pierces into the Graph
   component's internal DOM (different scope). */
.cf-v2-gamebooks__graph-body[b-t9gtvfrtm9]  > * {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    width: 100%;
    height: 100%;
}

.cf-v2-gamebooks__graph-body[b-t9gtvfrtm9]  #myDiagramDiv {
    height: 100%;
    width: 100%;
    min-height: 0;
}

.cf-v2-gamebooks__panel[b-t9gtvfrtm9] {
    gap: var(--cf-space-3, 0.75rem);
}

/* Class params forwarded into child V2 components (e.g. CFButton's
   internal <button>) do not receive Blazor's scope attribute, so anchor
   to the page wrapper and pierce with ::deep. */
.cf-v2-gamebooks-page[b-t9gtvfrtm9]  .cf-v2-gamebooks__close-incident {
    width: 100%;
    justify-self: stretch;
}

@media (min-width: 560px) {
    .cf-v2-gamebooks-page[b-t9gtvfrtm9]  .cf-v2-gamebooks__close-incident {
        width: auto;
        justify-self: auto;
    }
}

/* ---------- legacy V1 threat-hunting timeline styles (unused) ---------- */

/** {
    color: white;
}
*/
.threathunting-summary-container[b-t9gtvfrtm9] {
    padding: 5px;
    overflow-y: auto;
    border-bottom: 1px solid #6F6F6F;
}

.threathunting-timeline-container[b-t9gtvfrtm9] {
    padding: 5px;
    overflow-y: auto;
}
/*
.timeline-card {
    background: black;
    cursor: pointer;
    padding: 4px;
    margin: 4px;
    transition: 0.2s;
}

    .timeline-card:hover {
        background-color: #0091D1;
        color: white;
    }

    .timeline-card .icon {
        margin: auto;
        width: 40px;
        display: block;
        position: relative;
        top: 14px;
    }

    .timeline-card p {
        font-size: 14px;
        color: gray;
    }

    .timeline-card:hover p {
        color: white;
    }*/
/*
.threathunting-container {
    background-color: #00040F;
    border: 1px solid #707070;
    color: white;
}*/

.timeline-container[b-t9gtvfrtm9] {
    overflow-y: auto;
}
/*
.threathunting-details-container {
    padding: 5px;
    height: 1075px;
    overflow-y: auto;
}*/
/*
.summary-item {
    padding: 2px;
    font-size: 18px;
    display: flex;
    margin-bottom: 6px;
}

    .summary-item i {
        margin: 2px;
    }

    .summary-item span {
        margin: 2px;
        margin-left: 15px;
    }
*/
/* Timeline Styles */
/*.timeline-item {
    margin: 2px;
    margin-bottom: 10px;
    padding: 7px;
    color: white;
    cursor: pointer;
    border: 1px solid #EEEEEE;
    border-radius: 5px;
    transition: 0.2s
}
.timeline-item-selected {
    background-color: #0b1b48;
}
    .timeline-item:hover {
        border: 1px solid #0091d1;
    }

    .timeline-item table {
        display: none;
        transition: 0.2s;
    }

    .timeline-item .show-table {
        display: table;
    }

    .timeline-item .timeline-item-header {
        display: flex;
    }

        .timeline-item .timeline-item-header img {
            width: 35px;
            margin: 3px;
        }

        .timeline-item .timeline-item-header h5 {
            position: relative;
            top: 8px;
            left: 10px;
        }*/
/*table {
    font-size:20px;
    background-color: black;
}*/

/*.blue {
    color: #0091d1;
}

.link {
    color: #8a8ac3;
    text-decoration: underline;
}

.status-bar {
    background-color: #0091D1;
    color: white;
    position: fixed;
    top: calc(100% - 40px);
    left: 0;
    width: 100%;
    height: 40px;
    padding: 6px;
    padding-left: 20px;
    font-size: 20px;
}*/
/* /Pages/External/GamebooksHistoryV2.razor.rz.scp.css */
.cf-v2-gamebooks-page__hero[b-5xq6ehj62c] {
    display: flex;
    flex-direction: column;
    gap: var(--cf-space-3, 0.75rem);
    align-items: stretch;
}

.cf-v2-gamebooks-page__hero-copy[b-5xq6ehj62c] {
    display: flex;
    flex-direction: column;
    gap: var(--cf-space-1, 0.25rem);
    min-width: 0;
}

.cf-v2-gamebooks-page__hero-controls[b-5xq6ehj62c] {
    display: flex;
    align-items: center;
}

@media (min-width: 720px) {
    .cf-v2-gamebooks-page__hero[b-5xq6ehj62c] {
        flex-direction: row;
        align-items: flex-start;
        justify-content: space-between;
        gap: var(--cf-space-4, 1rem);
    }

    .cf-v2-gamebooks-page__hero-controls[b-5xq6ehj62c] {
        flex: 0 0 auto;
    }
}

[b-5xq6ehj62c] .cf-v2-gamebooks-page__title {
    margin: 0;
}

[b-5xq6ehj62c] .cf-v2-gamebooks-page__subtitle {
    margin: 0;
}
/* /Pages/External/SettingsPanel.razor.rz.scp.css */
body[b-etilu5amxj] {
}
/* /Pages/External/SettingsPanelV2.razor.rz.scp.css */
/* Page padding lives in iris-components-styles.css so details pages share it.
   Keep scoped overrides for tab chrome here only. */

@media (max-width: 640px) {
    .cf-v2-settings-page[b-5w9r7sz339] (.cf-tabs__trigger) {
        padding: var(--cf-space-2) var(--cf-space-3);
        font-size: var(--cf-text-body-sm);
    }

    .cf-v2-settings-page[b-5w9r7sz339] (.cf-tabs__panels) {
        padding: var(--cf-space-3) 0;
    }
}
/* /Pages/External/SetupWizard.razor.rz.scp.css */
/* ==========================================================================
   SetupWizard — V2 layout
   ==========================================================================
   The wizard renders inside BlankLayoutV2's centered main slot. It owns its
   own width budget (vs. AppShell pages that stretch to the page padding).
   The card grid below the stepper is mobile-first: one column under 720px,
   two columns above.
   ========================================================================== */

.cf-v2-wizard[b-1d58t2i94j] {
    width: 100%;
    max-width: 880px;
    margin: 0 auto;
}

.cf-v2-wizard__panel[b-1d58t2i94j] {
    display: block;
}

.cf-v2-wizard__cards[b-1d58t2i94j] {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--cf-space-3, 0.75rem);
}

@media (min-width: 720px) {
    .cf-v2-wizard__cards[b-1d58t2i94j] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.cf-v2-wizard__card-item[b-1d58t2i94j] {
    min-width: 0;
    display: flex;
}

.cf-v2-wizard__card-item > *[b-1d58t2i94j] {
    flex: 1 1 auto;
    min-width: 0;
}

.cf-v2-wizard__module-img[b-1d58t2i94j] {
    width: 24px;
    height: 24px;
    display: block;
    flex-shrink: 0;
}

.cf-v2-wizard__module-icon[b-1d58t2i94j] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    flex-shrink: 0;
}

.cf-v2-wizard__module-icon--success[b-1d58t2i94j] {
    color: var(--cf-status-success-fg, #22c55e);
}

.cf-v2-wizard__module-icon--primary[b-1d58t2i94j] {
    color: var(--cf-color-primary, #2557f9);
}

.cf-v2-wizard__nav[b-1d58t2i94j] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--cf-space-3, 0.75rem);
    flex-wrap: wrap;
}

@media (max-width: 559px) {
    .cf-v2-wizard__nav[b-1d58t2i94j] {
        flex-direction: column-reverse;
        align-items: stretch;
    }
}
/* /Pages/External/Sops/SopPageV2.razor.rz.scp.css */
.cf-v2-sop-page__hero[b-codc6me17h] {
    display: flex;
    flex-direction: column;
    gap: var(--cf-space-1, 0.25rem);
}

[b-codc6me17h] .cf-v2-sop-page__title {
    margin: 0;
}

[b-codc6me17h] .cf-v2-sop-page__subtitle {
    margin: 0;
}
/* /Shared/BlankLayoutV2.razor.rz.scp.css */
/* ==========================================================================
   BlankLayoutV2 — minimal shell for external customer-flow pages
   ==========================================================================
   The shell is intentionally thin: a slim top bar with the logo + login menu,
   then a centered content slot. Pages set their own card/section markup; the
   layout only owns the chrome.
   ========================================================================== */

.cf-v2-blank[b-af2ub5e5mb] {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background: var(--cf-bg-default, #0b0d12);
    color: var(--cf-text-default);
}

.cf-v2-blank__topbar[b-af2ub5e5mb] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--cf-space-4, 1rem);
    padding: var(--cf-space-3, 0.75rem) var(--cf-space-6, 1.5rem);
    border-bottom: 1px solid var(--cf-border-subtle, rgba(255, 255, 255, 0.08));
    background: var(--cf-bg-elevated, transparent);
}

.cf-v2-blank__logo[b-af2ub5e5mb] {
    display: flex;
    align-items: center;
}

.cf-v2-blank__logo img[b-af2ub5e5mb] {
    height: 32px;
    width: auto;
    display: block;
}

.cf-v2-blank__topbar-end[b-af2ub5e5mb] {
    display: flex;
    align-items: center;
    gap: var(--cf-space-2, 0.5rem);
}

.cf-v2-blank__main[b-af2ub5e5mb] {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    /* "safe center" lets the browser fall back to start alignment when content
       overflows the viewport (e.g., the SetupWizard's stepper + tall cards).
       Without "safe", justify-content: center clips the top of overflowing
       content past the scroll boundary. */
    justify-content: safe center;
    padding: var(--cf-space-6, 1.5rem);
    box-sizing: border-box;
}

@media (min-width: 720px) {
    .cf-v2-blank__main[b-af2ub5e5mb] {
        padding: var(--cf-space-8, 2rem);
    }
}
/* /Shared/MainLayout.razor.rz.scp.css */
/* ── V2 app shell tree ─────────────────────────────────────────────── */

.cf-v2-app[b-tuzda805lm] {
    position: fixed;
    inset: 0;
    height: 100dvh;
    width: 100%;
    overflow: hidden;
}

.cf-v2-app__logo[b-tuzda805lm] {
    display: flex;
    align-items: center;
    padding-left: var(--cf-space-md, 16px);
}

.cf-v2-app__logo img[b-tuzda805lm] {
    height: 32px;
    width: auto;
    display: block;
    /* Desktop leaves the mark 192px: a 256px brand slot, less 24px of slot padding either side
       and the 16px this container adds. Below 767px CFTopBar drops the slot to flex: 0 0 auto,
       so the parent becomes content-sized and a percentage would have nothing to resolve
       against — hence the absolute ceiling too. contain then scales an oversized mark down
       rather than letting it shove the workspace picker and the mobile menu around. */
    max-width: min(100%, 192px);
    object-fit: contain;
}

.cf-v2-app__workspace-slot[b-tuzda805lm] {
    display: flex;
    align-items: center;
    min-width: 0;
    padding: 0 var(--cf-space-md, 16px);
    max-width: 760px;
    width: 100%;
}

/* Only the desktop instance shows by default; the mobile (End-slot) copy is
   hidden until the viewport crosses CFTopBar's mobile breakpoint (767px).
   See the swap in the @media block below. */
.cf-v2-app__workspace-slot--mobile[b-tuzda805lm] {
    display: none;
    padding: 0;
    width: auto;
    max-width: none;
}

.cf-v2-app__actions[b-tuzda805lm] {
    display: flex;
    align-items: center;
    gap: var(--cf-space-xs, 8px);
    padding-right: var(--cf-space-md, 16px);
}

.cf-v2-app__actions-label[b-tuzda805lm] {
    margin: 0 var(--cf-space-xs, 8px);
}

.cf-v2-app__actions-shortcut[b-tuzda805lm] {
    opacity: 0.6;
    font-size: 0.75rem;
    letter-spacing: 0.02em;
}

/* Release-notes trigger and unread badge. The icon button is the trigger; the badge is a small
   positioned span layered on top so we don't need a custom CFBadge variant. */
.cf-v2-app__release-notes-trigger[b-tuzda805lm] {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.cf-v2-app__release-notes-badge[b-tuzda805lm] {
    position: absolute;
    top: -4px;
    right: -6px;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    border-radius: var(--cf-radius-full, 9999px);
    background: var(--cf-color-accent-emphasis, #3b82f6);
    color: var(--cf-color-text-on-emphasis, #ffffff);
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 20px;
    text-align: center;
    pointer-events: none;
    /* Two-layer shadow: inner dark ring separates the badge from whatever sits behind it,
       outer animated ring is the attention pulse. The keyframes animate only the outer ring. */
    box-shadow:
        0 0 0 2px var(--cf-color-bg-emphasis, rgba(0, 0, 0, 0.65)),
        0 0 0 0 rgba(59, 130, 246, 0.55);
    animation: cf-v2-release-notes-pulse-b-tuzda805lm 2.4s ease-out infinite;
}

@keyframes cf-v2-release-notes-pulse-b-tuzda805lm {
    0% {
        box-shadow:
            0 0 0 2px var(--cf-color-bg-emphasis, rgba(0, 0, 0, 0.65)),
            0 0 0 0 rgba(59, 130, 246, 0.55);
    }
    70% {
        box-shadow:
            0 0 0 2px var(--cf-color-bg-emphasis, rgba(0, 0, 0, 0.65)),
            0 0 0 10px rgba(59, 130, 246, 0);
    }
    100% {
        box-shadow:
            0 0 0 2px var(--cf-color-bg-emphasis, rgba(0, 0, 0, 0.65)),
            0 0 0 0 rgba(59, 130, 246, 0);
    }
}

/* Subtle gentle glow on the whole trigger control, in sync with the badge halo, so the
   user's eye is drawn to the entire button area, not just the badge. The animation is
   applied to the trigger wrapper (a <div> declared directly in MainLayout.razor) so the
   Blazor-scoped CSS attribute actually matches — putting this rule on .cf-v2-app__release-notes-button
   would not work because that class is forwarded into CFIconButton, which renders the
   actual <button> in its own component scope. */
.cf-v2-app__release-notes-trigger[b-tuzda805lm] {
    animation: cf-v2-release-notes-button-glow-b-tuzda805lm 2.4s ease-in-out infinite;
    border-radius: var(--cf-radius-full, 9999px);
}

@keyframes cf-v2-release-notes-button-glow-b-tuzda805lm {
    0%, 100% {
        filter: none;
    }
    50% {
        filter: drop-shadow(0 0 6px rgba(59, 130, 246, 0.6));
    }
}

/* Respect users who have opted out of motion (V2 reactive-action-state rule). */
@media (prefers-reduced-motion: reduce) {
    .cf-v2-app__release-notes-badge[b-tuzda805lm],
    .cf-v2-app__release-notes-trigger[b-tuzda805lm] {
        animation: none;
    }
}

.cf-v2-app__content[b-tuzda805lm] {
    padding: var(--cf-space-md, 16px);
    min-height: 100%;
    box-sizing: border-box;
    min-width: 0;
}

@media (max-width: 960px) {
    .cf-v2-app__actions-label[b-tuzda805lm],
    .cf-v2-app__actions-shortcut[b-tuzda805lm] {
        display: none;
    }
}

/* Topbar swaps to mobile layout at 767px: Start slot is hidden (see
   CFTopBar.razor.css), so the desktop workspace picker goes with it and the
   compact End-slot copy takes over. */
@media (max-width: 767px) {
    .cf-v2-app__workspace-slot--desktop[b-tuzda805lm] {
        display: none;
    }

    .cf-v2-app__workspace-slot--mobile[b-tuzda805lm] {
        display: flex;
    }
}

@media (max-width: 640px) {
    .cf-v2-app__workspace-slot[b-tuzda805lm] {
        padding: 0 var(--cf-space-sm, 12px);
    }

    .cf-v2-app__content[b-tuzda805lm] {
        padding: var(--cf-space-sm, 12px);
    }
}

/* ==========================================================================
   Tenant-bootstrap failure recovery
   ==========================================================================
   Replaces the V1 container/card recovery panel. Fixed and full-viewport
   because it renders instead of the app shell, not inside it, so there is no
   layout underneath to inherit spacing from.
   ========================================================================== */

.cf-load-failed[b-tuzda805lm] {
    position: fixed;
    inset: 0;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--cf-space-4, 1rem);
}

.cf-load-failed__panel[b-tuzda805lm] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--cf-space-6, 1.5rem);
    width: 100%;
    max-width: 26rem;
}

.cf-load-failed__logo[b-tuzda805lm] {
    width: 250px;
    max-width: 100%;
}

/* CFCard's ChildContent adds no gap between stacked children. */
.cf-load-failed__body[b-tuzda805lm] {
    display: flex;
    flex-direction: column;
    gap: var(--cf-space-3, 0.75rem);
    text-align: center;
}
/* /Shared/QuickAccessLayout.razor.rz.scp.css */
/* ==========================================================================
   QuickAccessLayout
   ==========================================================================
   Frames the quick-access deep links opened from notification email. Replaces
   V1 layout / V1 main content / V1 container plus the V1 utility classes,
   which go away with the V1 stylesheet.
   ========================================================================== */

.cf-quick-access[b-da9lkvjn0e] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--cf-space-4, 1rem);
    /* The V1 large max-width was 1280px. */
    max-width: 1280px;
    margin: 0 auto;
    padding: var(--cf-space-4, 1rem);
}

.cf-quick-access__brand[b-da9lkvjn0e] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--cf-space-2, 0.5rem);
}

.cf-quick-access__logo[b-da9lkvjn0e] {
    width: 45px;
    height: auto;
}

.cf-quick-access__body[b-da9lkvjn0e] {
    display: flex;
    flex-direction: column;
    width: 100%;
}
/* /Shared/UserMenuV2.razor.rz.scp.css */
.cf-user-menu__trigger[b-1lk7yj5nvj] {
    display: inline-flex;
    align-items: center;
    cursor: pointer;
    border-radius: var(--cf-radius-full, 100px);
}

.cf-user-menu__trigger:focus-visible[b-1lk7yj5nvj] {
    outline: 2px solid var(--cf-color-ring, #2557F9);
    outline-offset: 2px;
}

.cf-user-menu__header[b-1lk7yj5nvj] {
    display: flex;
    align-items: center;
    gap: var(--cf-space-3, 0.75rem);
    padding: var(--cf-space-3, 0.75rem) var(--cf-space-4, 1rem);
    min-width: 240px;
}

.cf-user-menu__identity[b-1lk7yj5nvj] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.cf-user-menu__name[b-1lk7yj5nvj] {
    font-size: var(--cf-text-body, 0.875rem);
    font-weight: var(--cf-font-semibold, 600);
    color: var(--cf-text-primary, #FFFFFF);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cf-user-menu__email[b-1lk7yj5nvj] {
    font-size: var(--cf-text-body-sm, 0.75rem);
    color: var(--cf-text-secondary, #A2ABB2);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* /Shared/WelcomePage.razor.rz.scp.css */
/* ==========================================================================
   WelcomePage — footer assurance line under the sign-in panel
   ========================================================================== */

.cf-welcome__assurance[b-3ucdyabgat] {
    display: inline-flex;
    align-items: center;
    gap: var(--cf-space-1-5, 0.375rem);
    font-size: var(--cf-text-body-sm, 0.75rem);
    color: var(--cf-text-secondary, #a2abb2);
}
