/* /components/layout/MainLayout.razor.rz.scp.css */
.paip-app[b-db0m0go9rj] {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    /* The status bar is position: fixed over the bottom of the window, so it takes no room in the
       flow: without this, a page scrolled to its end ran its last 28px under the bar -- the page's
       24px bottom padding and 4px of content (a card's bottom border, a table's last rule). Reserved
       once here, for every page on both layouts. The fixed-height screens (working queue, claim
       review) already subtract --statusbar-h, so with this they are exactly one window tall. */
    padding-bottom: var(--statusbar-h);
    box-sizing: border-box;
}
/* /components/modules/admin/AdminNotifications.razor.rz.scp.css */
/* Amber alert bars mirroring the working queue's unassigned/unmapped alert (.paip-unassigned-bar,
   mock .orphanbar) — rounded here since these stand alone rather than sitting in a rail strip. */
.paip-admin-notices[b-keqfzkvqa3] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 20px;
}

.paip-admin-notice[b-keqfzkvqa3] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 16px;
    background: #FBEFE2;
    border: 1px solid #F2D9C0;
    border-radius: 9px;
    color: #9A4A1B;
    font-size: 12.5px;
    font-weight: 600;
}

.paip-admin-notice a[b-keqfzkvqa3] {
    font-family: var(--font-display);
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border: 1px solid var(--red);
    color: #9A4A1B;
    background: var(--white);
    border-radius: 7px;
    padding: 4px 10px;
    font-size: 11.5px;
    text-decoration: none;
    white-space: nowrap;
}

.paip-admin-notice a:hover[b-keqfzkvqa3] {
    background: #FBE4E4;
}
/* /components/modules/admin/agents/AgentToolChecklist.razor.rz.scp.css */
/* PAIP #500: the product headings inside the agent form's tool checklist. Scoped to this component,
   which renders every element these rules touch. */
.paip-agent-tools-group[b-y6d0e5pohu] {
    margin-top: 10px;
}

.paip-agent-tools-heading[b-y6d0e5pohu] {
    margin: 10px 0 4px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-muted);
}

.paip-agent-tools-stale[b-y6d0e5pohu] {
    margin-top: 8px;
}
/* /components/modules/admin/audit/AuditLogs.razor.rz.scp.css */
.paip-audit-filters[b-iruxco18v5] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    margin-bottom: var(--space-4);
}

.paip-audit-filters .paip-form-field[b-iruxco18v5] {
    flex: 1 1 200px;
    min-width: 180px;
    margin-bottom: 0;
}

/* #821: the "Member record access" chip. */
.paip-audit-chips[b-iruxco18v5] {
    display: flex;
    gap: var(--space-2);
    margin-bottom: var(--space-4);
}
/* /components/modules/admin/audit/AuditLogTable.razor.rz.scp.css */
/* #821: a member record access row is starred and tinted. Scoped here: a rule in another component's .razor.css never
   reaches this one. */
.paip-audit-highlight td[b-tud5h9is6b] {
    background: var(--surface-3, #f4f6f9);
}

.paip-audit-star[b-tud5h9is6b] {
    color: var(--amber, #b8740b);
    font-weight: 700;
    margin-right: 4px;
}
/* /components/modules/admin/audit/MemberAccess.razor.rz.scp.css */
/* Restated from AuditLogs.razor.css: scoped CSS does not reach another page's markup. */
.paip-ma-filters[b-tm78gt4lgw] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    margin-bottom: var(--space-4);
}

.paip-ma-filters .paip-form-field[b-tm78gt4lgw] {
    flex: 1 1 200px;
    min-width: 180px;
    margin-bottom: 0;
}

.paip-ma-lede[b-tm78gt4lgw] {
    color: var(--text-muted);
    margin: 0 0 var(--space-4);
    max-width: 72ch;
}

.paip-ma-empty[b-tm78gt4lgw] {
    color: var(--text-muted);
}
/* /components/modules/admin/audit/MemberAccessReport.razor.rz.scp.css */
/* Five tiles in one row (the shared .paip-da-kpis is four). */
.paip-ma-kpis[b-6310k0nx4k] {
    grid-template-columns: repeat(5, 1fr);
}

/* The missing-hash tile when it is not 0: the defect PR #870 fixed. */
.paip-ma-warn[b-6310k0nx4k] {
    border-color: var(--amber, #B86A00);
    background: #FFF6E5;
}

.paip-ma-warn .paip-da-kpi-v[b-6310k0nx4k],
.paip-ma-warn-text[b-6310k0nx4k] {
    color: var(--amber, #B86A00);
    font-weight: 600;
}

.paip-ma-num[b-6310k0nx4k] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.paip-ma-none[b-6310k0nx4k],
.paip-ma-muted[b-6310k0nx4k] {
    color: var(--text-muted);
}

@media (max-width: 900px) {
    .paip-ma-kpis[b-6310k0nx4k] {
        grid-template-columns: repeat(2, 1fr);
    }
}
/* /components/modules/admin/audit/SignInFailures.razor.rz.scp.css */
/* Restated from AuditLogs.razor.css: scoped CSS does not reach another page's markup. */
.paip-sif-filters[b-j05eoqjso1] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    margin-bottom: var(--space-4);
    align-items: flex-end;
}

.paip-sif-filters .paip-form-field[b-j05eoqjso1] {
    flex: 1 1 160px;
    min-width: 150px;
    margin-bottom: 0;
}

.paip-sif-filters .paip-sif-lookup[b-j05eoqjso1] {
    flex: 2 1 320px;
}

.paip-sif-lookup-row[b-j05eoqjso1] {
    display: flex;
    gap: var(--space-2);
}

.paip-sif-lookup-row input[b-j05eoqjso1] {
    flex: 1 1 auto;
    min-width: 0;
}

.paip-sif-lede[b-j05eoqjso1],
.paip-sif-empty[b-j05eoqjso1] {
    color: var(--text-muted);
    margin: 0 0 var(--space-4);
    max-width: 72ch;
}
/* /components/modules/admin/audit/SignInFailuresReport.razor.rz.scp.css */
.paip-sif-num[b-z6ay4q3lte] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.paip-sif-none[b-z6ay4q3lte] {
    color: var(--text-muted);
}

.paip-sif-notice[b-z6ay4q3lte] {
    margin: 0 0 var(--space-4);
    padding: var(--space-2) var(--space-3);
    border-left: 3px solid var(--teal-dim, #00A09A);
    background: var(--surface-muted, #F4F7FA);
}

/* Repeated addresses and clients side by side; one column on a narrow screen. */
.paip-sif-pair[b-z6ay4q3lte] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-4);
}

@media (max-width: 900px) {
    .paip-sif-pair[b-z6ay4q3lte] {
        grid-template-columns: 1fr;
    }

    .paip-sif-kpis[b-z6ay4q3lte] {
        grid-template-columns: repeat(2, 1fr);
    }
}
/* /components/modules/admin/DeployedBuilds.razor.rz.scp.css */
/* "Deployed builds" card (PAIP #592): one tile per service, the tag set large in the display face so
   it reads at a glance, the deploy time beneath it in the mono face. */
.paip-deployed-builds[b-635oy1b01m] {
    background: var(--surface-1);
    border: 1px solid var(--border);
    border-radius: var(--r-lg);
    box-shadow: var(--shadow-sm);
    padding: var(--space-4) var(--space-5);
    margin-bottom: var(--space-5);
}

.paip-deployed-builds h2[b-635oy1b01m] {
    margin: 0 0 var(--space-3);
    font-family: var(--font-display);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--text-muted);
}

/* PAIP #1067: the records predate this instance (DeployedBuildDisplay.IsRecordBehindThisInstance). */
.paip-deployed-builds-note[b-635oy1b01m] {
    margin: 0 0 var(--space-3);
    font-size: 12.5px;
    color: var(--amber);
}

.paip-deployed-builds dl[b-635oy1b01m] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: var(--space-3);
    margin: 0;
}

.paip-deployed-build[b-635oy1b01m] {
    background: var(--surface-2);
    border-left: 3px solid var(--teal);
    border-radius: var(--r-md);
    padding: var(--space-3) var(--space-4);
}

.paip-deployed-build-mismatch[b-635oy1b01m] {
    border-left-color: var(--amber);
}

.paip-deployed-build dt[b-635oy1b01m] {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-secondary);
}

.paip-deployed-build dd[b-635oy1b01m] {
    margin: 0;
}

.paip-deployed-build-tag[b-635oy1b01m] {
    font-family: var(--font-display);
    font-size: 26px;
    font-weight: 700;
    line-height: 1.2;
    color: var(--navy);
}

/* PAIP #829: the commit the image was built from, under the tag. */
.paip-deployed-build-commit code[b-635oy1b01m] {
    font-family: var(--font-mono);
    font-size: 11.5px;
    color: var(--text-secondary);
}

.paip-deployed-build-at[b-635oy1b01m] {
    font-family: var(--font-mono);
    font-size: 11.5px;
    color: var(--text-muted);
}

.paip-deployed-build dd.paip-deployed-build-warning[b-635oy1b01m] {
    margin-top: var(--space-2);
    font-size: 12px;
    font-weight: 600;
    color: var(--amber);
}
/* /components/modules/admin/exchange/ExchangeFleetTable.razor.rz.scp.css */
/* The fleet grid scrolls sideways rather than squeezing: a timestamp or a client id broken across
   lines is harder to compare down a column than one that stays whole. The scrolling is the shared
   paip-wide-scroll class (app.css, PAIP #1045), which keeps the scrollbar in view. */

.paip-exchange-name[b-vys4v2w1nt] {
    font-weight: 600;
    color: var(--text-primary);
}

.paip-exchange-client[b-vys4v2w1nt] {
    font-family: var(--font-mono);
    font-size: 11.5px;
    color: var(--text-secondary);
}

.paip-exchange-when[b-vys4v2w1nt] {
    white-space: nowrap;
}

.paip-exchange-muted[b-vys4v2w1nt] {
    font-size: 11.5px;
    color: var(--text-muted);
}

/* The one sentence the plan asks the page to say plainly. */
.paip-exchange-never[b-vys4v2w1nt] {
    font-style: italic;
    color: var(--amber);
}

.paip-exchange-open[b-vys4v2w1nt] {
    margin-left: 6px;
    font-size: 11.5px;
    font-weight: 600;
    color: var(--amber);
}

.paip-exchange-duplicate[b-vys4v2w1nt] {
    margin-top: 2px;
    font-size: 11.5px;
    font-weight: 600;
    color: var(--amber);
}

.paip-exchange-interval[b-vys4v2w1nt] {
    margin: 0;
}

.paip-exchange-interval select[b-vys4v2w1nt] {
    appearance: none;
    -webkit-appearance: none;
    background-color: var(--white);
    border: 1px solid var(--border);
    border-radius: 999px;
    padding: 4px 26px 4px 12px;
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 600;
    color: var(--text-secondary);
    cursor: pointer;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'><path d='M2 3.5L5 6.5L8 3.5' fill='none' stroke='%235A7080' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/></svg>");
    background-repeat: no-repeat;
    background-position: right 9px center;
}

.paip-exchange-interval select:hover[b-vys4v2w1nt] {
    border-color: var(--navy);
    color: var(--navy);
}
/* /components/modules/admin/jobs/JobsTable.razor.rz.scp.css */
/* Job status now uses the shared <StatusBadge> component (paip-status-badge). */
/* /components/modules/admin/settings/AdminApiClients.razor.rz.scp.css */
/* Page chrome for the admin API clients page.
 *
 * Blazor CSS isolation scopes every rule here to THIS page's own markup, so the sibling pages'
 * sheets never reach it even where class names match -- the tenant ApiClients page restates the
 * same chrome for exactly that reason. The fragments it renders (ApiClientsTable, ApiClientForm,
 * ApiClientSecretForm, ApiClientSecretReveal, ApiClientExpiryNotice) each carry their own scoped
 * sheet, so nothing below reaches into them except through ::deep, and ::deep appears only where
 * the target really is another component's markup.
 */

.paip-settings-grid[b-u2mlxwjn5c] {
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
    /* Full page width: eleven columns need it, and the grid scrolls inside its own card when even
       that is not enough (ApiClientsTable.razor.css). */
    max-width: none;
}

/* The banner above the panel. This page's own element, so no ::deep. */
.paip-rc-banner[b-u2mlxwjn5c] {
    background: var(--teal-soft);
    border: 1px solid rgba(0, 160, 154, 0.3);
    color: var(--teal-dim);
    border-radius: 9px;
    padding: 10px 14px;
    font-size: 12.5px;
    font-weight: 600;
}

.paip-rc-banner strong[b-u2mlxwjn5c] {
    color: var(--teal-dim);
    font-weight: 800;
}

/* "New admin API client". Written here rather than in PanelCard because it is passed INTO
   PanelCard's HeaderRight as a RenderFragment -- content declared in this file carries this page's
   scope, not the child's, which is why this one needs no ::deep. */
.paip-rc-panel-btn[b-u2mlxwjn5c] {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 12px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border: 1px solid var(--navy);
    background: var(--white);
    color: var(--navy);
    border-radius: 8px;
    padding: 7px 13px;
    cursor: pointer;
}

.paip-rc-panel-btn:hover[b-u2mlxwjn5c] {
    background: var(--surface-2);
}

/* The editor slot is htmx-swapped in; collapse the grid gap while it is empty. */
#paip-api-client-editor:empty[b-u2mlxwjn5c] {
    display: none;
}

/* ::deep: the notice is ApiClientExpiryNotice's own markup and carries THAT component's scope, so
   an unprefixed rule here would never match it. Only the outer spacing is this page's business --
   the notice keeps its own color and layout in its own sheet. */
#paip-admin-api-client-expiry[b-u2mlxwjn5c]  .paip-api-client-notices {
    margin: 0;
}

/* ::deep: same reason -- the editor slot's contents are whichever fragment the endpoint returned
   (the form, the secret form, or the one-time reveal), each with its own scope. */
#paip-api-client-editor[b-u2mlxwjn5c]  .paip-team-form {
    margin-top: 0;
}
/* /components/modules/admin/settings/AdminTerms.razor.rz.scp.css */
.paip-admin-terms-form[b-azyprzyt8l] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
    gap: 0.75rem 1rem;
    max-width: 60rem;
}

.paip-admin-terms-form label[b-azyprzyt8l] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.paip-admin-terms-text[b-azyprzyt8l] {
    grid-column: 1 / -1;
}

.paip-admin-terms-body[b-azyprzyt8l] {
    white-space: pre-wrap;   /* keep the author's line breaks; text is HTML-encoded by Razor */
    max-height: 20rem;
    overflow-y: auto;
    margin-top: 0.5rem;
}

.paip-admin-terms-status-scheduled[b-azyprzyt8l] {
    font-style: italic;
}

.paip-admin-terms-status-current[b-azyprzyt8l] {
    font-weight: 600;
}

[b-azyprzyt8l] .paip-admin-terms-error {
    color: var(--paip-danger, #b91c1c);
}
/* /components/modules/admin/settings/Settings.razor.rz.scp.css */
/* .paip-admin-section / -heading / -note moved to app.css — they are used by four components and
   a scoped sheet only ever reached this one. */

.paip-payer-form[b-g408aiz945] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.paip-payer-field[b-g408aiz945] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.85rem;
    color: var(--text-muted);
}

.paip-payer-field input[b-g408aiz945] {
    width: 5rem;
}

/* .paip-settings-note-inline is GLOBAL (wwwroot/css/app.css): the payer-days endpoint returns
   it as a raw htmx fragment, which carries no CSS scope attribute — a scoped rule here would
   never match it. */
/* /components/modules/admin/tenant/ListTenants.razor.rz.scp.css */
body[b-nqct2my23a] {
}
/* /components/modules/admin/tenant/TenantUsersTable.razor.rz.scp.css */
/* Inline role selector in the members table — compact, auto-submits on change. */
.paip-role-select[b-8yjzxay9z4] {
    font-family: var(--font-body);
    font-size: 12px;
    color: var(--text-primary);
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
    padding: 3px 8px;
    cursor: pointer;
}

.paip-role-select:hover[b-8yjzxay9z4]  { border-color: var(--teal); }
.paip-role-select:focus[b-8yjzxay9z4]  { outline: none; border-color: var(--teal); }
/* /components/modules/common/Callout.razor.rz.scp.css */
/* Explanatory prose set apart from the page body. Neutral by default; the tone variants tint the
   left rule and background the way the mockup's .hp-callout does. */
.paip-callout[b-m9ozksmz5n] {
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-left: 3px solid var(--teal);
    border-radius: var(--r-sm);
    padding: 12px 14px;
    margin: 0 0 16px;
    font-size: 12.5px;
    line-height: 1.55;
    color: var(--text-secondary);
}

.paip-callout strong[b-m9ozksmz5n] {
    color: var(--navy);
}

.paip-callout-amber[b-m9ozksmz5n] {
    border-left-color: var(--amber);
    background: rgba(184, 116, 11, 0.06);
}

.paip-callout-teal[b-m9ozksmz5n] {
    border-left-color: var(--teal);
    background: var(--teal-soft);
}

.paip-callout-red[b-m9ozksmz5n] {
    border-left-color: var(--red);
    background: rgba(192, 57, 43, 0.07);
}

.paip-callout-green[b-m9ozksmz5n] {
    border-left-color: var(--green);
    background: rgba(31, 138, 76, 0.08);
}
/* /components/modules/common/CausalChain/Chain.razor.rz.scp.css */
.paip-chain[b-s57ntwn0zj] {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--r-lg);
    padding: var(--space-5);
    margin-bottom: var(--space-4);
    box-shadow: var(--shadow-sm);
}

.paip-chain-header[b-s57ntwn0zj] {
    margin-bottom: var(--space-4);
}

.paip-chain-eyebrow[b-s57ntwn0zj] {
    font-family: var(--font-display);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--teal-dim);
    margin-bottom: 6px;
}

.paip-chain-title[b-s57ntwn0zj] {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 700;
    color: var(--navy);
    margin-bottom: 6px;
    line-height: 1.2;
}

.paip-chain-sub[b-s57ntwn0zj] {
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.55;
    max-width: 920px;
}

/* ── Pillar accents ───────────────────────────────────────────────────────────────────────────
   Each pillar's chain wears that pillar's color. The eyebrow is this component's own markup, so
   it needs no ::deep; everything below it (nodes, sub-chains, the anchor) is a CHILD component's
   markup carrying that child's scope attribute, which a plain descendant selector would never
   match -- hence ::deep, which leaves the descendant half of the selector unscoped.

   "revenue" is the default and is deliberately absent: it is what the base rules already draw. */

.paip-chain[data-paip-pillar="expense"] .paip-chain-eyebrow[b-s57ntwn0zj] { color: #B86A00; }
.paip-chain[data-paip-pillar="quality"] .paip-chain-eyebrow[b-s57ntwn0zj] { color: #1F8A4C; }
.paip-chain[data-paip-pillar="risk"]    .paip-chain-eyebrow[b-s57ntwn0zj] { color: var(--red); }

.paip-chain[data-paip-pillar="expense"][b-s57ntwn0zj]  .paip-chain-node { border-top-color: #B86A00; }
.paip-chain[data-paip-pillar="quality"][b-s57ntwn0zj]  .paip-chain-node { border-top-color: #1F8A4C; }
.paip-chain[data-paip-pillar="risk"][b-s57ntwn0zj]     .paip-chain-node { border-top-color: var(--red); }

.paip-chain[data-paip-pillar="expense"][b-s57ntwn0zj]  .paip-chain-node.terminal {
    background: rgba(184, 106, 0, 0.08);
    border-color: rgba(184, 106, 0, 0.30);
    border-top-color: #B86A00;
}

.paip-chain[data-paip-pillar="quality"][b-s57ntwn0zj]  .paip-chain-node.terminal {
    background: rgba(31, 138, 76, 0.08);
    border-color: rgba(31, 138, 76, 0.30);
    border-top-color: #1F8A4C;
}

.paip-chain[data-paip-pillar="risk"][b-s57ntwn0zj]  .paip-chain-node.terminal {
    background: rgba(192, 57, 43, 0.06);
    border-color: rgba(192, 57, 43, 0.30);
    border-top-color: var(--red);
}

.paip-chain[data-paip-pillar="expense"][b-s57ntwn0zj]  .paip-chain-node.has-sub::after { background: #B86A00; }
.paip-chain[data-paip-pillar="quality"][b-s57ntwn0zj]  .paip-chain-node.has-sub::after { background: #1F8A4C; }
.paip-chain[data-paip-pillar="risk"][b-s57ntwn0zj]     .paip-chain-node.has-sub::after { background: var(--red); }

.paip-chain[data-paip-pillar="expense"][b-s57ntwn0zj]  .paip-chain-subchain {
    background: linear-gradient(180deg, rgba(184, 106, 0, 0.05), rgba(184, 106, 0, 0.01));
    border-color: rgba(184, 106, 0, 0.35);
}

.paip-chain[data-paip-pillar="quality"][b-s57ntwn0zj]  .paip-chain-subchain {
    background: linear-gradient(180deg, rgba(31, 138, 76, 0.05), rgba(31, 138, 76, 0.01));
    border-color: rgba(31, 138, 76, 0.35);
}

.paip-chain[data-paip-pillar="risk"][b-s57ntwn0zj]  .paip-chain-subchain {
    background: linear-gradient(180deg, rgba(192, 57, 43, 0.04), rgba(192, 57, 43, 0.01));
    border-color: rgba(192, 57, 43, 0.35);
}

.paip-chain[data-paip-pillar="expense"][b-s57ntwn0zj]  .paip-chain-subchain-eyebrow { color: #B86A00; }
.paip-chain[data-paip-pillar="quality"][b-s57ntwn0zj]  .paip-chain-subchain-eyebrow { color: #1F8A4C; }
.paip-chain[data-paip-pillar="risk"][b-s57ntwn0zj]     .paip-chain-subchain-eyebrow { color: var(--red); }

.paip-chain[data-paip-pillar="expense"][b-s57ntwn0zj]  .paip-chain-anchor {
    background: rgba(184, 106, 0, 0.07);
    border-left-color: #B86A00;
}

.paip-chain[data-paip-pillar="quality"][b-s57ntwn0zj]  .paip-chain-anchor {
    background: rgba(31, 138, 76, 0.07);
    border-left-color: #1F8A4C;
}

.paip-chain[data-paip-pillar="risk"][b-s57ntwn0zj]  .paip-chain-anchor {
    background: rgba(192, 57, 43, 0.07);
    border-left-color: var(--red);
}

.paip-chain[data-paip-pillar="expense"][b-s57ntwn0zj]  .paip-chain-anchor-label { color: #B86A00; }
.paip-chain[data-paip-pillar="quality"][b-s57ntwn0zj]  .paip-chain-anchor-label { color: #1F8A4C; }
.paip-chain[data-paip-pillar="risk"][b-s57ntwn0zj]     .paip-chain-anchor-label { color: var(--red); }
/* /components/modules/common/CausalChain/ChainAnchor.razor.rz.scp.css */
.paip-chain-anchor[b-vr820zemp4] {
    background: rgba(0, 160, 154, 0.07);
    border-left: 4px solid var(--teal);
    border-radius: 0 var(--r-md) var(--r-md) 0;
    padding: 14px 18px;
    margin-top: var(--space-3);
    display: flex;
    align-items: center;
    gap: 18px;
}

.paip-chain-anchor-label[b-vr820zemp4] {
    font-family: var(--font-display);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--teal-dim);
    flex-shrink: 0;
    min-width: 130px;
}

.paip-chain-anchor-value[b-vr820zemp4] {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 700;
    color: var(--navy);
    flex-shrink: 0;
    min-width: 130px;
}

.paip-chain-anchor-text[b-vr820zemp4] {
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.5;
    flex: 1;
}

/* /components/modules/common/CausalChain/ChainArrow.razor.rz.scp.css */
.paip-chain-arrow[b-jfc6po0dv4] {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    padding: 0 2px;
}
/* /components/modules/common/CausalChain/ChainFlow.razor.rz.scp.css */
.paip-chain-flow[b-y6evpk8iw9] {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    gap: 4px;
    margin-bottom: var(--space-3);
    padding: var(--space-3) 0;
    flex-wrap: nowrap;
    overflow-x: auto;
}
/* /components/modules/common/CausalChain/ChainNarrative.razor.rz.scp.css */
.paip-claim-chain-narrative[b-erwiawxpjb] {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
    padding: 10px 14px;
    font-size: 12px;
    color: var(--text-secondary);
    line-height: 1.55;
}
/* /components/modules/common/CausalChain/ChainNode.razor.rz.scp.css */
.paip-chain-node[b-7bcv9j0bwj] {
    flex: 1 1 0;
    min-width: 132px;
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: var(--r-md);
    padding: 12px 10px 10px;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    position: relative;
    transition: transform 0.15s, box-shadow 0.15s, border-color 0.15s;
    border-top: 3px solid #0C1E48;
    /* The expandable variant is a <button>, which brings its own font and margin. */
    font: inherit;
    margin: 0;
}

/* Expandable node: the "+" in the corner is the affordance, and it flips to "−" while the
   sub-chain below is open. paipChainToggleSub drives aria-expanded, which selects both. */
.paip-chain-node.has-sub[b-7bcv9j0bwj] {
    cursor: pointer;
}

.paip-chain-node.has-sub:hover[b-7bcv9j0bwj] {
    border-color: var(--teal-dim);
    transform: translateY(-2px);
    box-shadow: 0 4px 10px rgba(12, 30, 72, 0.08);
}

.paip-chain-node.has-sub[b-7bcv9j0bwj]::after {
    content: '+';
    position: absolute;
    top: 6px;
    right: 8px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--teal);
    color: var(--white);
    font-size: 13px;
    font-weight: 700;
    line-height: 16px;
    text-align: center;
    font-family: var(--font-display);
}

.paip-chain-node.has-sub[aria-expanded="true"][b-7bcv9j0bwj]::after {
    content: '\2212';
}

.paip-chain-node.terminal[b-7bcv9j0bwj] {
    background: rgba(0, 160, 154, 0.06);
    border-color: rgba(0, 160, 154, 0.30);
    border-top: 3px solid #0C1E48;
}

.paip-chain-node.red[b-7bcv9j0bwj] {
    border-top: 3px solid var(--red);
    background: rgba(192, 85, 43, 0.04);
}

.paip-chain-node.green[b-7bcv9j0bwj] {
    border-top: 3px solid var(--green);
    background: rgba(0, 122, 117, 0.04);
}

.paip-chain-node-label[b-7bcv9j0bwj] {
    font-family: var(--font-display);
    font-size: 13px;
    font-weight: 700;
    color: var(--navy);
    line-height: 1.3;
    margin-bottom: 4px;
}

.paip-chain-node-stat[b-7bcv9j0bwj] {
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--text-secondary);
    line-height: 1.4;
    margin-bottom: 8px;
    letter-spacing: 0.02em;
}

.paip-chain-node-system[b-7bcv9j0bwj] {
    display: inline-block;
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-muted);
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 3px;
    padding: 2px 6px;
    margin: 0 auto;
    align-self: center;
}

.paip-chain-arrow[b-7bcv9j0bwj] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    min-width: 56px;
    padding: 0 4px;
    position: relative;
}

.paip-chain-rvalue[b-7bcv9j0bwj] {
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 700;
    color: var(--teal-dim);
    background: var(--white);
    padding: 1px 4px;
    border-radius: 3px;
    z-index: 2;
    position: relative;
}
/* /components/modules/common/CausalChain/ChainSubChain.razor.rz.scp.css */
.paip-chain-subchain[b-mkwjf3nr60] {
    margin: 8px 0 var(--space-3);
    padding: var(--space-3);
    background: linear-gradient(180deg, rgba(0, 160, 154, 0.04), rgba(0, 160, 154, 0.01));
    border: 1px dashed rgba(0, 160, 154, 0.35);
    border-radius: var(--r-md);
    animation: paipChainSubFade-b-mkwjf3nr60 0.25s ease-out;
}

/* [hidden] loses to the display the rule above would otherwise give it, so it is restated. */
.paip-chain-subchain[hidden][b-mkwjf3nr60] {
    display: none;
}

@keyframes paipChainSubFade-b-mkwjf3nr60 {
    from {
        opacity: 0;
        transform: translateY(-4px);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

.paip-chain-subchain-eyebrow[b-mkwjf3nr60] {
    font-family: var(--font-display);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--teal-dim);
    margin-bottom: 8px;
}

.paip-chain-subchain-flow[b-mkwjf3nr60] {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    gap: 4px;
    flex-wrap: nowrap;
    overflow-x: auto;
}
/* /components/modules/common/CausalChain/ChainSubNode.razor.rz.scp.css */
.paip-chain-subnode[b-prcgp9vmcv] {
    flex: 1 1 0;
    min-width: 110px;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
    padding: 10px 8px 8px;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.paip-chain-subnode-label[b-prcgp9vmcv] {
    font-family: var(--font-display);
    font-size: 11.5px;
    font-weight: 700;
    color: var(--navy);
    line-height: 1.3;
    margin-bottom: 4px;
}

.paip-chain-subnode-detail[b-prcgp9vmcv] {
    font-size: 11px;
    color: var(--text-secondary);
    line-height: 1.4;
    margin-bottom: 6px;
}

.paip-chain-subnode-system[b-prcgp9vmcv] {
    display: inline-block;
    font-family: var(--font-mono);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--text-muted);
    background: var(--surface-2);
    border-radius: 3px;
    padding: 1px 5px;
    align-self: center;
}

.paip-chain-subnode-arrow[b-prcgp9vmcv] {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    min-width: 28px;
    color: var(--teal-dim);
    font-size: 14px;
    font-weight: 700;
}
/* /components/modules/common/Chart/ChartCard.razor.rz.scp.css */
.paip-chart-card[b-v0ndi6k8mp] {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--r-md);
    padding: 14px;
    box-shadow: var(--shadow-sm);
}

.paip-chart-title[b-v0ndi6k8mp] {
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--navy);
    margin-bottom: 10px;
}

.paip-chart-box[b-v0ndi6k8mp] {
    height: 240px;
    position: relative;
}
/* /components/modules/common/Chart/ChartRow.razor.rz.scp.css */
.paip-charts-row[b-33lj3j7ibm] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-3);
    margin-bottom: var(--space-4);
}
/* /components/modules/common/Checkbox.razor.rz.scp.css */
.paip-checkbox[b-tci9dq1qiq] {
    display: block;
    position: relative;
    padding-left: 35px;
    margin-bottom: 12px;
    cursor: pointer;
    font-size: 22px;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.paip-checkbox input[b-tci9dq1qiq] {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
}

.paip-checkbox-checkmark[b-tci9dq1qiq] {
    position: absolute;
    top: 0;
    left: 0;
    height: 16px;
    width: 16px;
    background-color: #eee;
}

/*.paip-checkbox:hover input ~ .paip-checkbox-checkmark {
    background-color: #ccc;
}
*/
.paip-checkbox input:checked ~ .paip-checkbox-checkmark[b-tci9dq1qiq] {
    background-color: var(--teal);
}

.paip-checkbox-checkmark[b-tci9dq1qiq]:after {
    content: "";
    position: absolute;
    display: none;
}

.paip-checkbox input:checked ~ .paip-checkbox-checkmark[b-tci9dq1qiq]:after {
    display: block;
}

.paip-checkbox .paip-checkbox-checkmark[b-tci9dq1qiq]:after {
    left: 6px;
    top: 3px;
    width: 5px;
    height: 10px;
    border: solid white;
    border-width: 0 3px 3px 0;
    -webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg);
}
/* /components/modules/common/Claim/ClaimLineItems.razor.rz.scp.css */
.paip-claim-line-items[b-l74fgrcv2q] {
    margin-top: 12px;
}

.paip-claim-line-items-title[b-l74fgrcv2q] {
    font-size: 10px;
    font-weight: 600;
    color: var(--text-muted);
    letter-spacing: 1.5px;
    text-transform: uppercase;
    margin-bottom: 6px;
}

.paip-claim-line-items table[b-l74fgrcv2q] {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
    color: var(--text-primary);
}

.paip-claim-line-items th[b-l74fgrcv2q] {
    text-align: left;
    font-size: 10px;
    font-weight: 600;
    color: var(--text-muted);
    letter-spacing: 0.5px;
    text-transform: uppercase;
    padding: 4px 8px;
    border-bottom: 1px solid var(--border-strong);
    white-space: nowrap;
}

.paip-claim-line-items td[b-l74fgrcv2q] {
    padding: 6px 8px;
    border-bottom: 1px solid var(--border);
    vertical-align: top;
}

.paip-claim-line-items th.num[b-l74fgrcv2q],
.paip-claim-line-items td.num[b-l74fgrcv2q] {
    text-align: right;
    font-family: var(--font-mono);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.paip-claim-line-items tbody tr:last-child td[b-l74fgrcv2q] {
    border-bottom: none;
}

.paip-claim-line-items tr.is-denial td[b-l74fgrcv2q] {
    color: var(--red);
}
/* /components/modules/common/Claim/ClaimNotesSection.razor.rz.scp.css */
/* Scoped styles for the shared claim-notes section (WQ + CR cards). Uses the same design tokens as the
   rest of the RC cards; the modal frame mirrors WqSaveQueryModal so the two dialogs look identical. The
   section frame (.paip-claim-pane-card-section / -title) is global in app.css. */

.paip-notes-head[b-xqtgazjpmy] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 8px;
}

/* Small pill button, matching the card's other mini actions. */
.paip-notes-add-btn[b-xqtgazjpmy] {
    font-family: var(--font-display);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.02em;
    border: 1px solid var(--navy);
    background: var(--navy);
    color: var(--white);
    border-radius: 999px;
    padding: 4px 12px;
    cursor: pointer;
    transition: background 0.12s;
}

.paip-notes-add-btn:hover[b-xqtgazjpmy] {
    background: var(--navy-dim, #1f3a52);
}

.paip-notes-empty[b-xqtgazjpmy] {
    font-size: 12.5px;
    color: var(--text-muted);
    font-style: italic;
}

/* Note feed — a lighter cousin of the claim-record timeline. */
.paip-notes-list[b-xqtgazjpmy] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.paip-notes-item[b-xqtgazjpmy] {
    border-left: 2px solid var(--surface-3);
    padding: 2px 0 2px 12px;
}

.paip-notes-item-meta[b-xqtgazjpmy] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 2px;
}

.paip-notes-type[b-xqtgazjpmy] {
    font-family: var(--font-display);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--teal-ink, var(--navy));
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: 999px;
    padding: 1px 8px;
}

.paip-notes-time[b-xqtgazjpmy] {
    font-family: var(--font-mono);
    font-size: 10.5px;
    color: var(--text-muted);
}

.paip-notes-author[b-xqtgazjpmy] {
    font-size: 11.5px;
    color: var(--text-secondary);
    font-weight: 600;
}

.paip-notes-body[b-xqtgazjpmy] {
    font-size: 12.5px;
    color: var(--text-primary);
    line-height: 1.45;
    white-space: pre-wrap;   /* preserve the user's line breaks; text is HTML-encoded by Razor */
    word-break: break-word;
}

.paip-notes-more[b-xqtgazjpmy] {
    margin-top: 10px;
    border: none;
    background: none;
    color: var(--navy);
    font-family: var(--font-display);
    font-size: 11.5px;
    font-weight: 600;
    cursor: pointer;
    padding: 0;
}

.paip-notes-more:hover[b-xqtgazjpmy] {
    text-decoration: underline;
}

/* ---- Dialogs (add + show-all) — frame mirrors WqSaveQueryModal ---- */
.paip-notes-modal[b-xqtgazjpmy] {
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 0;
    width: 440px;
    max-width: calc(100vw - 32px);
    box-shadow: var(--shadow-md);
    background: var(--white);
    color: var(--text-primary);
}

.paip-notes-modal-wide[b-xqtgazjpmy] {
    width: 560px;
}

.paip-notes-modal[b-xqtgazjpmy]::backdrop {
    background: rgba(20, 30, 40, 0.45);
}

.paip-notes-modal-head[b-xqtgazjpmy] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 18px;
    border-bottom: 1px solid var(--border);
    background: var(--surface-2);
    border-radius: 12px 12px 0 0;
}

.paip-notes-modal-title[b-xqtgazjpmy] {
    font-family: var(--font-display);
    font-size: 14px;
    font-weight: 700;
    color: var(--navy);
}

.paip-notes-modal-x[b-xqtgazjpmy] {
    border: none;
    background: none;
    color: var(--text-muted);
    font-size: 13px;
    cursor: pointer;
    padding: 2px 6px;
    border-radius: 6px;
}

.paip-notes-modal-x:hover[b-xqtgazjpmy] {
    background: var(--white);
    color: var(--text-primary);
}

.paip-notes-modal-body[b-xqtgazjpmy] {
    padding: 18px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    max-height: min(60vh, 520px);
    overflow-y: auto;
}

.paip-notes-field[b-xqtgazjpmy] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.paip-notes-field span[b-xqtgazjpmy] {
    font-family: var(--font-display);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-secondary);
}

.paip-notes-field select[b-xqtgazjpmy],
.paip-notes-field textarea[b-xqtgazjpmy] {
    font-family: var(--font-body);
    font-size: 13px;
    border: 1px solid var(--border-strong);
    border-radius: 8px;
    padding: 8px 10px;
    color: var(--text-primary);
    background: var(--white);
    resize: vertical;
}

.paip-notes-field select:focus-visible[b-xqtgazjpmy],
.paip-notes-field textarea:focus-visible[b-xqtgazjpmy] {
    outline: none;
    border-color: var(--navy);
    box-shadow: 0 0 0 2px var(--surface-2);
}

.paip-notes-error[b-xqtgazjpmy] {
    font-size: 12.5px;
    color: var(--red);
    min-height: 0;
}

.paip-notes-error:empty[b-xqtgazjpmy] {
    display: none;
}

.paip-notes-modal-actions[b-xqtgazjpmy] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 0 18px 18px;
}

.paip-notes-cancel[b-xqtgazjpmy],
.paip-notes-submit[b-xqtgazjpmy] {
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.02em;
    border-radius: 8px;
    padding: 7px 14px;
    cursor: pointer;
    transition: all 0.12s;
}

.paip-notes-cancel[b-xqtgazjpmy] {
    border: 1px solid var(--border-strong);
    background: var(--white);
    color: var(--text-secondary);
}

.paip-notes-cancel:hover[b-xqtgazjpmy] {
    background: var(--surface-2);
}

.paip-notes-submit[b-xqtgazjpmy] {
    border: 1px solid var(--navy);
    background: var(--navy);
    color: var(--white);
}

.paip-notes-submit:hover[b-xqtgazjpmy] {
    background: var(--navy-dim, #1f3a52);
}
/* /components/modules/common/Claim/ClaimPaneCard.razor.rz.scp.css */
/* Card styling mirrors the working-queue mock's detail card (.card / .dhead / .dmeta / .sect / .note). */
.paip-claim-pane-card[b-62qkwtojmx] {
    flex: 1;
    min-width: 0;
    /* overflow:auto (both axes) so content clips to the rounded corners. */
    overflow: auto;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 11px;
    box-shadow: var(--shadow-md);
    padding: 0;
}

.paip-claim-pane-card.hidden[b-62qkwtojmx] {
    display: none;
}

.paip-claim-pane-card-body[b-62qkwtojmx] {
    /* Sections carry their own padding so the dividers run edge-to-edge, like the mock.
       Width is governed by the .paip-panes grid column (the card fills its cell). */
    padding: 0;
    width: 100%;
}

/* Sticky top bar: pinned to the top of the scrolling card. Claim id on the left, section nav right. */
.paip-claim-pane-card-topbar[b-62qkwtojmx] {
    position: sticky;
    top: 0;
    z-index: 5;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 9px 20px;
    background: var(--white);
    border-bottom: 1px solid var(--border);
}

.paip-claim-pane-card-topbar-id[b-62qkwtojmx] {
    font-family: var(--font-mono);
    font-size: 12.5px;
    font-weight: 600;
    color: var(--text-secondary);
    white-space: nowrap;
}

/* The host's section-nav wrapper (links styled in the host's scope). Wraps on narrow cards. */
.paip-claim-pane-card-nav[b-62qkwtojmx] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 2px 0;
    min-width: 0;
}

/* Header (.dhead): patient title, then the inline meta run. The claim id now lives in the top bar. */
.paip-claim-pane-card-head[b-62qkwtojmx] {
    padding: 16px 20px;
    border-bottom: 1px solid var(--border);
}

.paip-claim-pane-card-head-id[b-62qkwtojmx] {
    font-family: var(--font-mono);
    font-size: 12.5px;
    color: var(--text-muted);
}

.paip-claim-pane-card-head-title[b-62qkwtojmx] {
    font-family: var(--font-display);
    font-size: 21px;
    font-weight: 700;
    color: var(--navy);
    letter-spacing: 0.01em;
    margin: 3px 0 8px;
}

/* AI claim title demoted under the patient h2 (paip-only; the mock has no equivalent). */
.paip-claim-pane-card-head-sub[b-62qkwtojmx] {
    font-size: 12.5px;
    color: var(--text-secondary);
    margin: -4px 0 8px;
}

/* Inline "Label value" run (.dmeta): wraps, small, secondary text with bold values. */
.paip-claim-pane-card-meta[b-62qkwtojmx] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 20px;
    color: var(--text-secondary);
    font-size: 12.5px;
}

.paip-claim-pane-card-meta b[b-62qkwtojmx] {
    color: var(--text-primary);
    font-weight: 600;
}

/* Binding-deadline callout under the meta run (mock .note inside .dhead). */
.paip-claim-pane-card-note[b-62qkwtojmx] {
    font-size: 12.5px;
    color: var(--text-secondary);
    margin-top: 10px;
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 9px 11px;
    line-height: 1.45;
}

.paip-claim-pane-card-note[b-62qkwtojmx]  b,
.paip-claim-pane-card-note b[b-62qkwtojmx] {
    color: var(--text-primary);
}

/* Live day count trailing a deadline date: muted by default, colored as it nears/passes due. */
.paip-claim-pane-card-meta-days[b-62qkwtojmx] {
    color: var(--text-muted);
}

.paip-claim-pane-card-meta-days.paip-deadline-overdue[b-62qkwtojmx] {
    color: var(--red);
    font-weight: 600;
}

.paip-claim-pane-card-meta-days.paip-deadline-soon[b-62qkwtojmx] {
    color: var(--amber);
    font-weight: 600;
}

/* NOTE: the section frame (.paip-claim-pane-card-section / -title / -description), the
   .paip-disp-badge pill, and the paip-disp-* palette are GLOBAL (wwwroot/css/app.css) —
   sections are also rendered as ChildContent by host components (e.g. WqClaimDetail),
   whose elements carry the host's CSS scope, so scoped rules here would not reach them. */
/* /components/modules/common/ClaimAiPanel/ClaimAiPanel.razor.rz.scp.css */
.paip-ai[b-skk3uvjo9b] {
    display: block;
}

.paip-ai-clinical-bar[b-skk3uvjo9b] {
    margin-top: 14px;
}

.paip-ai-breakdown[b-skk3uvjo9b] {
    margin: 10px 0 4px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.paip-ai-bd-row[b-skk3uvjo9b] {
    display: grid;
    grid-template-columns: 150px 52px 1fr;
    align-items: baseline;
    gap: 8px;
    font-size: 12px;
}

.paip-ai-bd-label[b-skk3uvjo9b] {
    color: var(--text-secondary);
    font-weight: 600;
}

.paip-ai-bd-pts[b-skk3uvjo9b] {
    font-family: var(--font-display);
    font-weight: 700;
    text-align: right;
}

.paip-ai-bd-pts.green[b-skk3uvjo9b] { color: var(--green); }
.paip-ai-bd-pts.amber[b-skk3uvjo9b] { color: var(--amber); }
.paip-ai-bd-pts.red[b-skk3uvjo9b] { color: var(--red); }

.paip-ai-bd-reason[b-skk3uvjo9b] {
    color: var(--text-muted);
    line-height: 1.4;
}

.paip-ai-override[b-skk3uvjo9b] {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 6px;
    border-radius: 4px;
    background: rgba(192, 85, 43, 0.1);
    color: var(--red);
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .5px;
}

.paip-ai-divider[b-skk3uvjo9b] {
    height: 1px;
    background: rgba(0, 0, 0, 0.06);
    margin: 14px 0;
}

.paip-ai-section-title[b-skk3uvjo9b] {
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: var(--text-primary);
    margin-bottom: 8px;
}

.paip-ai-section-title.amber[b-skk3uvjo9b] { color: var(--amber); }
.paip-ai-section-title.green[b-skk3uvjo9b] { color: var(--green); }

.paip-ai-row[b-skk3uvjo9b] {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    margin-bottom: 6px;
    font-size: 13px;
    line-height: 1.45;
    color: var(--text-secondary);
}

.paip-ai-dot[b-skk3uvjo9b] {
    flex: 0 0 auto;
    width: 6px;
    height: 6px;
    margin-top: 6px;
    border-radius: 50%;
    background: var(--red);
}

.paip-ai-dot.green[b-skk3uvjo9b] {
    background: var(--green);
}

.paip-ai-text[b-skk3uvjo9b] {
    flex: 1;
}

.paip-ai-phrase-box[b-skk3uvjo9b] {
    background: rgba(184, 116, 11, 0.05);
    border: 1px solid rgba(184, 116, 11, 0.18);
    border-radius: 8px;
    padding: 10px 12px;
}

.paip-ai-phrase-row[b-skk3uvjo9b] {
    font-size: 12.5px;
    color: var(--amber);
    line-height: 1.7;
}

.paip-ai-ref-row[b-skk3uvjo9b] {
    font-size: 12.5px;
    color: var(--text-secondary);
    line-height: 1.5;
    margin-bottom: 6px;
}

.paip-ai-ref-link[b-skk3uvjo9b] {
    color: var(--teal-dim);
    word-break: break-all;
}

.paip-ai-empty[b-skk3uvjo9b] {
    font-size: 13px;
    color: var(--text-muted);
    font-style: italic;
    padding: 2px 0;
}

.paip-ai-empty.green[b-skk3uvjo9b] {
    color: var(--green);
    font-style: normal;
}

.paip-ai-summary[b-skk3uvjo9b] {
    background: rgba(12, 30, 72, 0.04);
    border-radius: 8px;
    padding: 12px;
    font-size: 13px;
    line-height: 1.55;
    color: var(--text-secondary);
}

.paip-ai-summary-label[b-skk3uvjo9b] {
    display: block;
    font-family: var(--font-display);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: var(--text-primary);
    margin-bottom: 4px;
}
/* /components/modules/common/ClaimSummaryHeader.razor.rz.scp.css */
.paip-claim-summary[b-rm12lx846b] {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 16px 20px;
    margin-bottom: 14px;
    display: flex;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
}

.paip-claim-summary-left[b-rm12lx846b] {
    flex: 1;
    min-width: 200px;
}

.paip-claim-summary-title[b-rm12lx846b] {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 700;
    color: var(--text-primary);
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.paip-claim-summary-meta[b-rm12lx846b] {
    font-size: 12px;
    color: var(--text-muted);
    margin-top: 3px;
}

.paip-claim-summary-stats[b-rm12lx846b] {
    display: flex;
    gap: 16px;
    flex-shrink: 0;
}
/* /components/modules/common/CtaCard.razor.rz.scp.css */
.paip-cta-card[b-8ehtfrethi] {
    background: linear-gradient(135deg, var(--white), var(--surface-2));
    border: 1px solid var(--border);
    border-left: 4px solid var(--teal);
    border-radius: var(--r-lg);
    padding: var(--space-5);
    display: flex;
    align-items: center;
    gap: var(--space-5);
    margin-bottom: var(--space-4);
    box-shadow: var(--shadow-sm);
}

.paip-cta-content[b-8ehtfrethi] {
    flex: 1;
}

.paip-cta-eyebrow[b-8ehtfrethi] {
    font-family: var(--font-display);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--teal-dim);
    margin-bottom: 6px;
}

.paip-cta-title[b-8ehtfrethi] {
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 700;
    color: var(--navy);
    margin-bottom: 8px;
    line-height: 1.25;
}

.paip-cta-body[b-8ehtfrethi] {
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.55;
    max-width: 720px;
}

.paip-cta-button[b-8ehtfrethi] {
    font-family: var(--font-display);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    background: var(--navy);
    color: var(--white);
    border: none;
    padding: 14px 24px;
    border-radius: var(--r-md);
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.15s;
    flex-shrink: 0;
}

.paip-cta-button:hover[b-8ehtfrethi] {
    background: var(--teal-dim);
}
/* /components/modules/common/Footer.razor.rz.scp.css */
.paip-statusbar[b-724q693zyr] {
    height: var(--statusbar-h);
    background: var(--navy-deep);
    border-top: 1px solid var(--border-on-navy);
    display: flex;
    align-items: center;
    /* The top bar's gutter, so the status text lines up under the brand instead of sitting 5px
       from the edge. Border-box: this bar is width 100%, so content-box padding made it wider than
       the window by twice the padding. */
    box-sizing: border-box;
    padding: 0 var(--space-5);
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--text-on-navy-muted);
    letter-spacing: 0.04em;
    gap: var(--space-4);
    margin-top: auto;
    z-index: 800;
    position: fixed;
    left: 0;
    bottom: 0;
    width: 100%;
}

.paip-status-item[b-724q693zyr] {
    display: flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
}

.paip-status-item .label[b-724q693zyr] {
    color: rgba(255, 255, 255, 0.4);
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.paip-status-item .value[b-724q693zyr] {
    color: var(--text-on-navy);
    font-weight: 500;
}

.paip-status-item .value a[b-724q693zyr]{
    color: var(--text-on-navy);
    font-weight: 500;
}

.paip-status-item .value a:visited a:hover[b-724q693zyr] {
    color: var(--text-on-navy);
    font-weight: 500;
}

.paip-status-divider[b-724q693zyr] {
    width: 1px;
    height: 14px;
    background: rgba(255, 255, 255, 0.12);
}

.paip-status-spacer[b-724q693zyr] {
    flex: 1;
}

.paip-status-dot[b-724q693zyr] {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--text-on-navy-muted);
    transition: all 0.2s;
}
/* /components/modules/common/Header/Header.razor.rz.scp.css */

.paip-topbar[b-die3jf0ofz] {
    height: var(--topbar-h);
    background: var(--navy);
    border-bottom: 1px solid var(--border-on-navy);
    display: flex;
    align-items: center;
    padding: 0 var(--space-5);
    position: sticky;
    top: 0;
    z-index: 1000;
    color: var(--text-on-navy);
    gap: var(--space-5);
}

/* Brand block ported from the WQ template's .brand/.logomark/.brandtext. */
.paip-brand[b-die3jf0ofz] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
    text-decoration: none;
    color: var(--text-on-navy);
}

.paip-logomark[b-die3jf0ofz] {
    width: 30px;
    height: 30px;
    border-radius: 7px;
    background: linear-gradient(135deg, #16356b, #0a1c44);
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.16);
}

/* The teal centre bar; the two white flanking bars are box-shadows. */
.paip-logomark span[b-die3jf0ofz] {
    width: 4px;
    height: 16px;
    background: var(--teal);
    border-radius: 2px;
    box-shadow: -5px 0 0 rgba(255, 255, 255, 0.55), 5px 0 0 rgba(255, 255, 255, 0.3);
}

.paip-brandtext[b-die3jf0ofz] {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 16px;
    letter-spacing: 0.02em;
    line-height: 1;
}

.paip-brandtext small[b-die3jf0ofz] {
    display: block;
    font-size: 9.5px;
    letter-spacing: 0.22em;
    color: rgba(255, 255, 255, 0.6);
    font-weight: 600;
}
/* /components/modules/common/Header/HeaderAssistant.razor.rz.scp.css */
/* Sits in the navy topbar beside the module badge, so it is styled for that surface rather than for
   a page. Square and icon-only: the topbar is a fixed 54px and everything next to it is compact --
   the badge it follows is 30px, and this matches. */
.paip-topbar-assistant[b-iyoe7bj9eo] {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 30px;
    height: 30px;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 7px;
    background: linear-gradient(135deg, #16356b, #0a1c44);
    color: var(--teal);
    font-size: 14px;
    line-height: 1;
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease;
}

.paip-topbar-assistant:hover[b-iyoe7bj9eo] {
    background: var(--teal-dim);
    color: var(--text-on-navy);
}

.paip-topbar-assistant:focus-visible[b-iyoe7bj9eo] {
    outline: 2px solid var(--teal);
    outline-offset: 2px;
}
/* /components/modules/common/Header/HeaderBreadcrumb.razor.rz.scp.css */
.paip-topbar-breadcrumb[b-w4ayv6b67a] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-family: var(--font-display);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--text-on-navy-muted);
    flex: 1;
    min-width: 0;
    /* PAIP #1067: crumbs that do not fit are cut at the breadcrumb's edge. Without it they ran on over
       the profile name beside it at tablet width (seen at 739px on HealthPlanAI). */
    overflow: hidden;
}

.paip-breadcrumb-link[b-w4ayv6b67a],
.paip-breadcrumb-item[b-w4ayv6b67a],
.paip-breadcrumb-current[b-w4ayv6b67a] {
    text-decoration: none;
    white-space: nowrap;
    text-transform: uppercase;
}

.paip-breadcrumb-link[b-w4ayv6b67a],
.paip-breadcrumb-item[b-w4ayv6b67a] {
    color: var(--text-on-navy-muted);
}

.paip-breadcrumb-link[b-w4ayv6b67a] {
    transition: color 0.15s ease;
}

.paip-breadcrumb-link:hover[b-w4ayv6b67a] {
    color: var(--text-on-navy);
}

/* Current page: highlighted, and the only crumb allowed to truncate when space is tight. */
.paip-breadcrumb-current[b-w4ayv6b67a] {
    color: var(--text-on-navy);
    font-weight: 700;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.paip-breadcrumb-sep[b-w4ayv6b67a] {
    color: var(--text-on-navy-muted);
    opacity: 0.5;
}
/* /components/modules/common/Header/HeaderDivider.razor.rz.scp.css */
.paip-topbar-divider[b-5g8se8rze7] {
    width: 1px;
    height: 24px;
    background: var(--border-on-navy);
    flex-shrink: 0;
}
/* /components/modules/common/Header/HeaderNotifications.razor.rz.scp.css */
/* Floating toast stack (bottom-right), independent of header layout. Toasts are htmx-swapped in,
   so they're reached with ::deep from the scoped stack container. Tones match the design tokens
   used by the status badges: success=green, info=yellow/amber, error=red. */
.paip-toast-stack[b-5f3kj1078q] {
    position: fixed;
    bottom: var(--space-5);
    right: var(--space-5);
    z-index: 1000;
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    max-width: 380px;
    pointer-events: none;
}

.paip-toast-stack[b-5f3kj1078q]  .paip-toast {
    pointer-events: auto;
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    background: var(--white);
    border-radius: var(--r-md);
    border-left: 4px solid var(--text-muted);
    box-shadow: 0 6px 20px rgba(12, 30, 72, 0.18);
    animation: paip-toast-in-b-5f3kj1078q 0.18s ease-out;
}

.paip-toast-stack[b-5f3kj1078q]  .paip-toast.paip-toast-out {
    animation: paip-toast-out-b-5f3kj1078q 0.3s ease-in forwards;
}

.paip-toast-stack[b-5f3kj1078q]  .paip-toast-success { border-left-color: var(--green); }
.paip-toast-stack[b-5f3kj1078q]  .paip-toast-info    { border-left-color: var(--amber); }
.paip-toast-stack[b-5f3kj1078q]  .paip-toast-error   { border-left-color: var(--red); }

.paip-toast-stack[b-5f3kj1078q]  .paip-toast-body { flex: 1; min-width: 0; }

.paip-toast-stack[b-5f3kj1078q]  .paip-toast-title {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 13px;
    color: var(--text-primary);
}

.paip-toast-stack[b-5f3kj1078q]  .paip-toast-message {
    font-size: 12px;
    color: var(--text-secondary);
    margin-top: 2px;
    overflow-wrap: anywhere;
}

.paip-toast-stack[b-5f3kj1078q]  .paip-toast-close {
    border: none;
    background: none;
    cursor: pointer;
    font-size: 18px;
    line-height: 1;
    color: var(--text-muted);
    padding: 0 2px;
}

.paip-toast-stack[b-5f3kj1078q]  .paip-toast-close:hover { color: var(--text-primary); }

@keyframes paip-toast-in-b-5f3kj1078q {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: none; }
}

@keyframes paip-toast-out-b-5f3kj1078q {
    to { opacity: 0; transform: translateX(16px); }
}
/* /components/modules/common/Header/HeaderProfile.razor.rz.scp.css */
.paip-user-profile[b-7w0640vjbn] {
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: 4px 10px 4px 4px;
    border-radius: var(--r-md);
    cursor: pointer;
    transition: background 0.15s;
}

.paip-user[b-7w0640vjbn] {
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: 4px 10px 4px 4px;
    border-radius: var(--r-md);
    cursor: pointer;
    transition: background 0.15s;
}

.paip-user-avatar[b-7w0640vjbn] {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--teal);
    color: var(--white);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 12px;
    flex-shrink: 0;
}

.paip-user-identity[b-7w0640vjbn] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.paip-user-name[b-7w0640vjbn] {
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 600;
    color: var(--text-on-navy);
    line-height: 1.1;
}

/* The signed-in role, under the name (#982): smaller and quieter than the name it qualifies. */
.paip-user-role[b-7w0640vjbn] {
    font-family: var(--font-body);
    font-size: 10px;
    font-weight: 500;
    color: var(--text-on-navy);
    opacity: 0.75;
    line-height: 1.1;
}


.paip-user-profile:hover .paip-user-profile-dropdown[b-7w0640vjbn] {
    display: block;
}

.paip-user-profile-dropdown[b-7w0640vjbn] {
    position: absolute;
    top: 100%;
    left: 0;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 0 0 var(--r-md) var(--r-md);
    min-width: 100%;
    box-shadow: var(--shadow-lg);
    display: none;
    overflow: hidden;
    z-index: 950;
}

.paip-user-profile-dropdown-header[b-7w0640vjbn] {
    padding: 8px 14px;
    font-family: var(--font-display);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--teal-dim);
    background: var(--surface-2);
    border-bottom: 1px solid var(--border);
}

/* The role again, inside the menu: on the phone layout the name and role under the avatar are hidden
   (app.css), so this is where a phone shows it. */
.paip-user-profile-dropdown-role[b-7w0640vjbn] {
    display: block;
    margin-top: 4px;
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
    color: var(--text-primary);
    white-space: nowrap;
}

.paip-user-profile-dropdown a[b-7w0640vjbn] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px;
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
    text-transform: none;
    letter-spacing: 0;
    border-bottom: 1px solid var(--border);
    transition: background 0.12s;
}

.paip-user-profile-dropdown a:hover[b-7w0640vjbn] {
    background: var(--teal-soft);
    color: var(--navy);
}

.paip-user-profile-dropdown-badge[b-7w0640vjbn] {
    font-family: var(--font-display);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 2px 7px;
    border-radius: 10px;
    background: var(--surface-3);
    color: var(--text-muted);
}

.paip-user-profile-dropdown-badge.live[b-7w0640vjbn] {
    background: rgba(0, 122, 117, 0.12);
    color: var(--green);
}

.paip-user-profile-dropdown a.disabled[b-7w0640vjbn] {
    color: var(--text-muted);
    cursor: not-allowed;
    pointer-events: none;
}

.paip-user-profile-dropdown-badge.soon[b-7w0640vjbn] {
    background: rgba(184, 116, 11, 0.12);
    color: var(--amber);
}

.paip-user-profile-dropdown-badge.build[b-7w0640vjbn] {
    background: rgba(0, 160, 154, 0.12);
    color: var(--teal-dim);
}
.paip-user-profile-dropdown-form[b-7w0640vjbn] {
    margin: 0;
}

.paip-user-profile-dropdown-button[b-7w0640vjbn] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 10px 14px;
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
    text-align: left;
    background: none;
    border: none;
    border-bottom: 1px solid var(--border);
    cursor: pointer;
    transition: background 0.12s;
}

.paip-user-profile-dropdown-button:hover[b-7w0640vjbn] {
    background: var(--teal-soft);
    color: var(--navy);
}
/* /components/modules/common/Header/HeaderSpecialty.razor.rz.scp.css */
.paip-topbar-specialty[b-e4mfd1v7m3] {
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.paip-topbar-specialty a[b-e4mfd1v7m3] {
    text-decoration: none;
    display: flex;
}
/* /components/modules/common/HeaderStat.razor.rz.scp.css */
.paip-header-stat[b-qwc8uwlwnx] {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.paip-header-stat-lbl[b-qwc8uwlwnx] {
    font-size: 10px;
    color: var(--text-muted);
    letter-spacing: 1px;
    text-transform: uppercase;
}

.paip-header-stat-val[b-qwc8uwlwnx] {
    font-family: var(--font-display);
    font-size: 14px;
    font-weight: 600;
    color: var(--text-primary);
    margin-top: 2px;
}
/* /components/modules/common/Hero.razor.rz.scp.css */
.paip-hero[b-vuavtkioqh] {
    text-align: center;
    padding: var(--space-4) var(--space-5) 0;
}

.paip-hero-tagline[b-vuavtkioqh] {
    font-family: var(--font-display);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--teal-dim);
    margin-bottom: 4px;
}

.paip-hero-title[b-vuavtkioqh] {
    font-family: var(--font-display);
    font-size: 28px;
    font-weight: 700;
    color: var(--navy);
    margin-bottom: 6px;
}

.paip-hero-subtitle[b-vuavtkioqh] {
    font-size: 14px;
    color: var(--text-secondary);
    max-width: 720px;
    margin: 0 auto 16px;
    line-height: 1.55;
}
/* /components/modules/common/Kpi/Kpi.razor.rz.scp.css */
.paip-kpi[b-dihkoruk89] {
    background: var(--white);
    border: 1px solid var(--border);
    border-left: 3px solid var(--teal);
    border-radius: var(--r-md);
    padding: 14px;
}

.paip-kpi-warn[b-dihkoruk89] {
    border-left-color: var(--amber);
}

.paip-kpi-alert[b-dihkoruk89] {
    border-left-color: var(--red);
}

.paip-kpi-label[b-dihkoruk89] {
    font-family: var(--font-display);
    font-size: 10px;
    font-weight: 700;
    color: var(--text-muted);
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.paip-kpi-val[b-dihkoruk89] {
    font-family: var(--font-display);
    font-size: 28px;
    font-weight: 700;
    line-height: 1.05;
    margin-top: 4px;
    color: var(--navy);
}

.paip-kpi-val-red[b-dihkoruk89] {
    color: var(--red);
}

.paip-kpi-val-amber[b-dihkoruk89] {
    color: var(--amber);
}

.paip-kpi-val-navy[b-dihkoruk89] {
    color: var(--navy);
    font-size: 17px;
    line-height: 1.25;
    padding-top: 4px;
}

/* Accent: the left rule's color, set by the Accent parameter. The HealthPlanAI screens color each
   tile by what it measures (the mockups' accent-*); the provider tiles leave it unset. */
.paip-kpi-accent-navy[b-dihkoruk89]  { border-left-color: var(--navy); }
.paip-kpi-accent-teal[b-dihkoruk89]  { border-left-color: var(--teal); }
.paip-kpi-accent-amber[b-dihkoruk89] { border-left-color: var(--amber); }
.paip-kpi-accent-green[b-dihkoruk89] { border-left-color: var(--green); }
.paip-kpi-accent-red[b-dihkoruk89]   { border-left-color: var(--red); }
.paip-kpi-accent-gold[b-dihkoruk89]  { border-left-color: var(--gold, #B8912F); }

/* A colored delta in the sub line — the mockups' "▲ 124 bps" — reads green when good, red when not. */
.paip-kpi-sub .up[b-dihkoruk89]   { color: var(--green); font-weight: 600; }
.paip-kpi-sub .down[b-dihkoruk89] { color: var(--red); font-weight: 600; }

/* #953: a tile that opens the screen behind its number. It reads as the same tile; the hover says it opens. */
.paip-kpi-link[b-dihkoruk89] {
    display: block;
    color: inherit;
    text-decoration: none;
    cursor: pointer;
}

.paip-kpi-link:hover[b-dihkoruk89] {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.10);
}

.paip-kpi-link:focus-visible[b-dihkoruk89] {
    outline: 2px solid var(--teal);
    outline-offset: 2px;
}
/* /components/modules/common/Kpi/KpiRow.razor.rz.scp.css */
.paip-kpi-row[b-7tumr7qeij] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: var(--space-3);
    margin-bottom: var(--space-4);
}
/* /components/modules/common/Modal.razor.rz.scp.css */

.paip-modal[b-udd6lnzmmi] {
    background: var(--white);
    border:none;
    border-radius: var(--r-lg);
    box-shadow: 0 20px 60px rgba(6, 21, 53, 0.4);
    max-width: 880px;
    max-height: calc(100vh - 100px);
    overflow: auto;
}

.paip-modal-header[b-udd6lnzmmi] {
    padding: 22px 28px 18px;
    border-bottom: 1px solid var(--border);
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    background: linear-gradient(135deg, var(--surface-2), var(--white));
}

.paip-modal-header-title[b-udd6lnzmmi] {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 700;
    color: var(--navy);
    margin-bottom: 4px;
    line-height: 1.2;
}

.paip-modal-header-sub[b-udd6lnzmmi] {
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.5;
}

.paip-modal-close[b-udd6lnzmmi] {
    background: var(--surface-2);
    border: 1px solid var(--border);
    width: 36px;
    height: 36px;
    border-radius: 50%;
    cursor: pointer;
    font-size: 14px;
    color: var(--text-secondary);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.18s;
    flex-shrink: 0;
}

.paip-modal-close:hover[b-udd6lnzmmi] {
    background: var(--red);
    color: white;
    border-color: transparent;
    transform: rotate(90deg);
}

.paip-modal-body[b-udd6lnzmmi] {
    padding: 22px 28px;
    overflow-y: auto;
    flex: 1;
}
/* /components/modules/common/ModuleBadge.razor.rz.scp.css */
/* Ported from the WQ template's .orthobadge (white pill, teal dot). Every module — OrthoAI,
   CardioAI, UroAI, HealthPlanAI, UTPAdmin — wears the identical badge; only the wordmark
   differs. There is no per-type asset: a new tenant type gets its badge from its wordmark. */
.paip-modulebadge[b-atg4c0dura] {
    background: var(--white);
    color: var(--navy);
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 12px;
    padding: 5px 10px;
    border-radius: 6px;
    letter-spacing: 0.02em;
    /* The wordmark keeps its own casing — the tenant-selector button it sits in is uppercased. */
    text-transform: none;
    display: flex;
    align-items: center;
    gap: 5px;
}

.paip-modulebadge b[b-atg4c0dura] {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--teal);
    display: inline-block;
}

/* Row scale, for the admin tenant list. Same pill and same teal dot — only the metrics change,
   matched to StatusBadge (11px / 2px 8px) so the Type cell sits level with Status and State
   beside it. inline-flex rather than the header's flex: in a table cell a flex span would
   stretch to the column width instead of hugging the wordmark. */
.paip-modulebadge-sm[b-atg4c0dura] {
    display: inline-flex;
    font-size: 11px;
    padding: 2px 8px;
    border-radius: var(--r-sm);
    gap: 4px;
}

.paip-modulebadge-sm b[b-atg4c0dura] {
    width: 5px;
    height: 5px;
}
/* /components/modules/common/Nav/BaseNav.razor.rz.scp.css */
/* The nav bar container. The items/dropdowns/links are rendered by the composed
   PaipNavItem / PaipNavLink components, so their CSS lives with those components
   (Blazor scoped CSS only reaches a component's own elements). */
.paip-nav[b-smrh2hzqgs] {
    height: var(--primary-nav-h);
    background: var(--white);
    border-bottom: 1px solid var(--border);
    display: flex;
    align-items: stretch;
    padding: 0 var(--space-5);
    position: sticky;
    top: var(--topbar-h);
    z-index: 900;
    box-shadow: var(--shadow-sm);
}

/* PAIP #1067: a nav whose items do not fit in one row wraps onto the next instead of widening the
   page. The admin nav's twelve items need about 1,340px in a row; at 739px the console scrolled
   sideways. Each row keeps the bar's height, so an item's active underline still sits at a row's
   foot. Full layout only: the phone layout turns the nav into a menu (app.css). */
html:not(.paip-mobile) .paip-nav.paip-nav-wrap[b-smrh2hzqgs] {
    flex-wrap: wrap;
    height: auto;
    min-height: var(--primary-nav-h);
}

html:not(.paip-mobile) .paip-nav.paip-nav-wrap[b-smrh2hzqgs]  .paip-nav-item {
    min-height: var(--primary-nav-h);
}

/* Tighter items below laptop width, so a 1,280-1,366px screen still holds the admin nav in one row. */
@media (max-width: 1440px) {
    html:not(.paip-mobile) .paip-nav.paip-nav-wrap[b-smrh2hzqgs]  .paip-nav-item {
        padding: 0 12px;
    }
}
/* /components/modules/common/Nav/PaipNavItem.razor.rz.scp.css */
/* Top-level nav item + its dropdown shell. These elements are rendered by PaipNavItem, so the
   structural nav CSS lives here and applies wherever the component is composed (ProviderNav, AdminNav…).
   The dropdown links/badges belong to PaipNavLink and are styled there. */
.paip-nav-item[b-lhq7k75ofn] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 0 16px;
    font-family: var(--font-display);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--text-secondary);
    text-transform: uppercase;
    position: relative;
    cursor: pointer;
    transition: color 0.15s;
    border-bottom: 3px solid transparent;
    margin-bottom: -1px;
    white-space: nowrap;
}

.paip-nav-item.active[b-lhq7k75ofn] {
    color: var(--navy);
    border-bottom-color: var(--teal);
}

.paip-nav-item.has-children[b-lhq7k75ofn]::after {
    content: '▾';
    margin-left: 4px;
    font-size: 9px;
    opacity: 0.6;
}

/* Hover opens the dropdown; so does keyboard focus on anything inside the item (#690), so a
   linked label (Tab lands on it) opens its menu and Tab walks on into the links. On a touch screen
   in the full layout, the first tap on a linked label adds .open instead of navigating
   (App.razor.js); the second tap follows the link. */
.paip-nav-item:hover .paip-nav-dropdown[b-lhq7k75ofn],
.paip-nav-item:focus-within .paip-nav-dropdown[b-lhq7k75ofn],
.paip-nav-item.open .paip-nav-dropdown[b-lhq7k75ofn] {
    display: block;
}

/* Closed once a choice is made, or on Escape (#982), even while the pointer is still over the item
   or the followed link still holds focus. App.razor.js sets .dismissed and clears it when the
   pointer or focus leaves the item or comes back into it. After the rules above, so it wins. */
.paip-nav-item.dismissed .paip-nav-dropdown[b-lhq7k75ofn] {
    display: none;
}

/* A label that is also a link keeps the nav item's color (navy when active) rather than the global
   anchor color. Only has-children items: the admin nav's plain link items are left exactly as they were. */
.paip-nav-item.has-children > a[b-lhq7k75ofn] {
    color: inherit;
}

/* A rule inside a dropdown, between an overview entry and the list it summarizes (PaipNavDivider). */
.paip-nav-dropdown[b-lhq7k75ofn]  .paip-nav-dropdown-divider {
    height: 0;
    border-top: 2px solid var(--border);
    margin: 0;
}

.paip-nav-dropdown[b-lhq7k75ofn] {
    position: absolute;
    top: 100%;
    left: 0;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 0 0 var(--r-md) var(--r-md);
    min-width: 260px;
    box-shadow: var(--shadow-lg);
    display: none;
    overflow: hidden;
    z-index: 950;
}

/* ::deep, and it has to be. This is a SCOPED stylesheet: without ::deep the rule compiles to
   `.paip-nav-dropdown-header[b-<item>]`, and that attribute is stamped only on elements PaipNavItem
   itself renders. PaipNavSection renders the second and subsequent headers, so its div carried a
   different scope -- none at all, having no stylesheet of its own -- and matched NOTHING. It
   inherited the nav font and the uppercase from .paip-nav-item and lost the size, the color, the
   background, the border and the padding.

   ::deep leaves the tail of the selector unscoped -- `.paip-nav-dropdown[b-<item>] .paip-nav-dropdown-header`
   -- so ONE rule dresses every header in the dropdown, whichever component rendered it. The
   alternative, a PaipNavSection.razor.css following PaipNavLink's own-your-markup convention, would
   copy nine declarations into a second file: two headers that must look identical, styled in two
   places, which is a drift waiting to happen. The dropdown shell is PaipNavItem's own element, so
   what the inside of it looks like is legitimately its business. */
.paip-nav-dropdown[b-lhq7k75ofn]  .paip-nav-dropdown-header {
    padding: 8px 14px;
    font-family: var(--font-display);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--teal-dim);
    background: var(--surface-2);
    border-bottom: 1px solid var(--border);
}
/* /components/modules/common/Nav/PaipNavLink.razor.rz.scp.css */
/* Dropdown link + status badge. PaipNavLink renders the <a> (and its badge <span>), so these are
   scoped to it; the .paip-nav-dropdown ancestor (rendered by PaipNavItem) is matched as a plain DOM
   ancestor, so no ::deep is needed. */
.paip-nav-dropdown a[b-0826v5wyeq] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px;
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
    text-transform: none;
    letter-spacing: 0;
    border-bottom: 1px solid var(--border);
    transition: background 0.12s;
}

.paip-nav-dropdown a:hover[b-0826v5wyeq] {
    background: var(--teal-soft);
    color: var(--navy);
}

.paip-nav-dropdown a.disabled[b-0826v5wyeq] {
    color: var(--text-muted);
    cursor: not-allowed;
    pointer-events: none;
}

.paip-nav-dropdown-badge[b-0826v5wyeq] {
    font-family: var(--font-display);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 2px 7px;
    border-radius: 10px;
    background: var(--surface-3);
    color: var(--text-muted);
}

.paip-nav-dropdown-badge.live[b-0826v5wyeq] {
    background: rgba(0, 122, 117, 0.12);
    color: var(--green);
}

.paip-nav-dropdown-badge.soon[b-0826v5wyeq] {
    background: rgba(184, 116, 11, 0.12);
    color: var(--amber);
}

.paip-nav-dropdown-badge.build[b-0826v5wyeq] {
    background: rgba(0, 160, 154, 0.12);
    color: var(--teal-dim);
}
/* /components/modules/common/Pane/PaneBody.razor.rz.scp.css */
/* Detail grid cell: flex so the claim card fills the column width and the container height,
   scrolling internally like the rail. min-width:0 lets the grid column shrink to its floor. */
.paip-pane-body[b-z7hlks4vqa] {
    display: flex;
    min-height: 0;
    min-width: 0;
}
/* /components/modules/common/Pane/PaneRail.razor.rz.scp.css */
/* Rail as a card (mock .card): width is governed by the .paip-panes grid column; overflow:auto so
   content clips to the rounded corners and the sticky header/group bars scroll within. */
.paip-pane-rail[b-0in8jvnu96] {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 11px;
    box-shadow: var(--shadow-md);
    overflow: auto;
    /* No reserved scrollbar gutter: reserving it left a constant empty strip on the right (the header
       rollup then sat gutter + padding in from the edge). The scrollbar takes its own space only when the
       list actually overflows; the small header shift when it appears/disappears is the accepted trade-off
       for a flush right edge. */
    min-height: 0;
}

.paip-pane-rail-header[b-0in8jvnu96] {
    /* Fixed height pinned to RailSort's `top: 38px` sticky offset. The sort bar sticks flush beneath
       this header; if the header's natural height (padding + border + line box) is any shorter, a
       sliver of scrolled content shows through the gap between them while scrolling. box-sizing keeps
       the 38px inclusive of the padding/border regardless of any global box-sizing. */
    height: 38px;
    box-sizing: border-box;
    padding: 10px 16px;
    background: var(--surface-2);
    border-bottom: 1px solid var(--border);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    position: sticky;
    top: 0;
    z-index: 3;   /* stays above the sort bar (2) and the group headers (1) */
}

/* Optional middle slot (e.g. the WQ saved-query bar) — flex so its controls sit inline. min-width:0 +
   overflow:hidden let it be the FIRST to give up space (clipping a long query name) when the header is
   tight, keeping the left label + right rollup fully visible and stopping the header from overflowing the
   rail — an overflow would leave the sticky header's background short of the right edge on horizontal
   scroll. Default flex-shrink (1) applies; left/right are pinned (flex:0), so the center absorbs the squeeze. */
.paip-pane-rail-header-center[b-0in8jvnu96] {
    display: flex;
    align-items: center;
    min-width: 0;
    overflow: hidden;
}

.paip-pane-rail-header-left[b-0in8jvnu96] {
    flex: 0 0 auto;   /* the "Queue" label never shrinks */
    white-space: nowrap;
    font-family: var(--font-display);
    font-size: 11px;
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.paip-pane-rail-header-right[b-0in8jvnu96] {
    flex: 0 0 auto;   /* the count + billed/expected rollup stays whole and flush-right */
    white-space: nowrap;
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--text-secondary);
    font-weight: 600;
}
/* /components/modules/common/Pane/PaneRailList.razor.rz.scp.css */
/* /components/modules/common/Pane/PaneRailListItem.razor.rz.scp.css */
/* Mock .qrow: 12/16 padding, hairline divider, hover + selected states. */
.paip-pane-rail-list-item[b-dczzs1nhav] {
    display: flex;
    gap: 10px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--border);
    cursor: pointer;
    transition: background 0.12s;
    position: relative;
}

.paip-pane-rail-list-item:hover[b-dczzs1nhav] {
    background: #F7FAFC;
}

/* Mock .qrow.sel: tinted background + inset teal edge (inset shadow, so no padding shift). */
.paip-pane-rail-list-item.active[b-dczzs1nhav] {
    background: #EEF5F4;
    box-shadow: inset 3px 0 0 var(--teal);
}

.paip-pane-rail-list-item.worked[b-dczzs1nhav] {
    opacity: 0.5;
}

.paip-pane-rail-list-item-checkbox[b-dczzs1nhav] {
    flex-shrink: 0;
    display: flex;
    align-items: flex-start;
    padding-top: 2px;
}

.paip-pane-rail-list-item-content[b-dczzs1nhav] {
    flex: 1;
    min-width: 0;
}

.paip-pane-rail-list-item-checkbox input[type="checkbox"][b-dczzs1nhav] {
    appearance: none;
    -webkit-appearance: none;
    width: 16px;
    height: 16px;
    cursor: pointer;
    accent-color: var(--teal);
}

.paip-pane-rail-list-item-checkbox input[type="checkbox"]:disabled[b-dczzs1nhav] {
    width: 16px;
    height: 16px;
    cursor: pointer;
    accent-color: var(--teal);
}

.paip-pane-rail-list-item-line1[b-dczzs1nhav] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 3px;
}

/* r1 (mock .clm / .amt): claim key + amount, both mono navy. */
.paip-pane-rail-list-item-line1-left[b-dczzs1nhav] {
    font-family: var(--font-mono);
    font-size: 13px;
    font-weight: 500;
    color: var(--navy);
}

.paip-pane-rail-list-item-line1-left.worked[b-dczzs1nhav] {
    text-decoration: line-through;
}

.paip-pane-rail-list-item-line1-right[b-dczzs1nhav] {
    font-family: var(--font-mono);
    font-size: 14px;
    font-weight: 500;
    color: var(--navy);
}

/* r2 (mock): "patient · payer" one inline run — patient bold primary, payer secondary. */
.paip-pane-rail-list-item-line2[b-dczzs1nhav] {
    font-size: 12.5px;
    color: var(--text-secondary);
    margin-top: 2px;
}

.paip-pane-rail-list-item-line2-left[b-dczzs1nhav] {
    color: var(--text-primary);
    font-weight: 600;
}

/* desc (mock): the denial reason, two-line clamp. */
.paip-pane-rail-list-item-line3[b-dczzs1nhav] {
    font-size: 12.5px;
    color: var(--text-secondary);
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin-top: 4px;
}

.paip-pane-rail-list-item-line3.worked[b-dczzs1nhav] {
    text-decoration: line-through;
}

/* dates (mock): mono muted run with slightly darker bold values. */
.paip-pane-rail-list-item-dates[b-dczzs1nhav] {
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 4px;
    letter-spacing: -0.1px;
}

.paip-pane-rail-list-item-dates[b-dczzs1nhav]  b,
.paip-pane-rail-list-item-dates b[b-dczzs1nhav] {
    color: var(--text-secondary);
    font-weight: 500;
}

/* r4 (mock): chip + assignee left, status right. */
.paip-pane-rail-list-item-line4[b-dczzs1nhav] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    margin-top: 6px;
    font-size: 11px;
}

/* Left slot + status slot each take an equal half so the disposition pill between them sits at the
   true row center (regardless of whether there's an overdue/assignee on the left). min-width:0 lets a
   long assignee shrink rather than shove the badge off-center. */
.paip-pane-rail-list-item-line4-left[b-dczzs1nhav] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex: 1;
    min-width: 0;
}

/* Status (mock .status + .st-*): uppercase eyebrow with a per-status color. */
.paip-pane-rail-list-item-status[b-dczzs1nhav] {
    font-family: var(--font-display);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    white-space: nowrap;
    /* Equal right half (mirrors the left slot) so the disposition pill between them is centered. */
    flex: 1;
    text-align: right;
}

.paip-st-Open[b-dczzs1nhav]            { color: var(--red); }
.paip-st-Assigned[b-dczzs1nhav]        { color: #27518F; }
.paip-st-ActionCompleted[b-dczzs1nhav] { color: #94670F; }
.paip-st-Resolved[b-dczzs1nhav]        { color: var(--teal-dim); }
.paip-st-Unassigned[b-dczzs1nhav]      { color: #A12B2B; }
/* The centered disposition-code badge in line 4 uses the GLOBAL .paip-disp-badge pill and
   paip-disp-* palette (wwwroot/css/app.css) — shared with the claim detail card. */

/* Assignee marker next to the date (mock .qrow .dos styling): mono, muted, compact. */
.paip-pane-rail-list-item-assignee[b-dczzs1nhav] {
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--text-muted);
    white-space: nowrap;
}

/* Deadline urgency chip (mock .due): pill-shaped, uppercase; .paip-due-past is the solid-red
   "past the deadline" variant. */
.paip-due-badge[b-dczzs1nhav] {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 10.5px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 2px 8px;
    border-radius: 20px;
    white-space: nowrap;
}

.paip-due-past[b-dczzs1nhav] {
    background: #A12B2B;
    color: var(--white);
}
/* /components/modules/common/Pane/Panes.razor.rz.scp.css */
/* Two-column layout mirroring the mock's .queue grid: a rail card + a detail card with a gutter,
   both flexible (min 440px) with the detail slightly wider, on the page's off-white background. */
.paip-panes[b-9h0u5slfeb] {
    display: grid;
    grid-template-columns: minmax(440px, 1.02fr) minmax(440px, 1.3fr);
    /* Without an explicit row track the implicit row is auto-sized: the rail/card would grow to
       their CONTENT height (overflowing the container) instead of stretching to fill it and
       scrolling internally. minmax(0, 1fr) pins the row to the container's height. */
    grid-template-rows: minmax(0, 1fr);
    gap: 12px;
    /* No inner padding: .paip-page-content already provides the page gutter — padding here
       double-inset the cards and cost content space. */
    padding: 0;
    flex: 1;
    min-height: 0;
    background: var(--off-white);
}

/* Narrow viewports: stack the rail above the detail (mock collapses .queue to one column). */
@media (max-width: 980px) {
    .paip-panes[b-9h0u5slfeb] {
        grid-template-columns: 1fr;
        /* Both stacked rows pinned, sharing the height. With only the one track above, the detail
           landed in an implicit auto row that took the whole container and the rail's row was 0px
           (measured at 739px, the width of a tablet in portrait: rows "0px 405.55px"). */
        grid-template-rows: minmax(0, 1fr) minmax(0, 1fr);
    }
}
/* /components/modules/common/Pane/RailSort.razor.rz.scp.css */
.paip-sort-bar[b-i1tf7h5ee3] {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 8px 12px;
    background: var(--white);
    border-bottom: 1px solid var(--border);
    flex-wrap: wrap;
    position: sticky;
    top: 38px;
    z-index: 2;   /* above the group headers that slide underneath it */
}

.paip-sort-label[b-i1tf7h5ee3] {
    font-family: var(--font-display);
    font-size: 9.5px;
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-right: 4px;
}

.paip-sort-chip[b-i1tf7h5ee3] {
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: 999px;
    padding: 3px 10px;
    font-family: var(--font-display);
    font-size: 11px;
    font-weight: 600;
    color: var(--text-secondary);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 3px;
    transition: all 0.12s;
    letter-spacing: 0.02em;
}

.paip-sort-chip.active[b-i1tf7h5ee3] {
    background: var(--navy);
    color: var(--white);
    border-color: var(--navy);
}
/* /components/modules/common/Panel/Panel.razor.rz.scp.css */
.paip-panel[b-vvua7hm86r] {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 10px;
    overflow: hidden;
}

.paip-panel-header[b-vvua7hm86r] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 11px 16px;
    cursor: pointer;
    user-select: none;
}

.paip-panel-header-ai[b-vvua7hm86r] {
    background: rgba(0, 122, 117, 0.05);
}

.paip-panel-header-claim[b-vvua7hm86r] {
    background: rgba(184, 116, 11, 0.05);
}

.paip-panel-header-ehr[b-vvua7hm86r] {
    background: rgba(12, 30, 72, 0.04);
}

.paip-panel-header-title[b-vvua7hm86r] {
    font-family: var(--font-display);
    font-size: 13px;
    font-weight: 700;
    color: var(--text-primary);
    letter-spacing: .5px;
    text-transform: uppercase;
    flex: 1;
}

.paip-panel-header-sub[b-vvua7hm86r] {
    font-size: 11px;
    color: var(--text-muted);
}

.paip-panel-body[b-vvua7hm86r] {
    display: block;
    padding: 14px 16px;
    max-height: 70vh;
    overflow-y: auto;
}
/* /components/modules/common/Panel/PanelFieldGroup.razor.rz.scp.css */
.paip-panel-field-group[b-ykwjbxjqwi] {
    margin-bottom: 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

.paip-panel-field-group-label[b-ykwjbxjqwi] {
    font-size: 10px;
    font-weight: 600;
    color: var(--text-muted);
    letter-spacing: 1.5px;
    text-transform: uppercase;
    margin-bottom: 4px;
}

.paip-panel-field-group-value[b-ykwjbxjqwi] {
    font-size: 13px;
    color: var(--text-primary);
    line-height: 1.5;
}

.paip-panel-field-group-value-narrative[b-ykwjbxjqwi] {
    line-height: 1.6;
    color: var(--text-secondary);
}

.paip-field-tone-red[b-ykwjbxjqwi] {
    color: var(--red);
    font-weight: 600;
}

.paip-field-tone-amber[b-ykwjbxjqwi] {
    color: var(--amber);
    font-weight: 600;
}

.paip-field-tone-green[b-ykwjbxjqwi] {
    color: var(--green);
    font-weight: 600;
}
/* /components/modules/common/Panel/Panels.razor.rz.scp.css */
.paip-panels[b-1odcf3cstg] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    align-items: start;
}
/* /components/modules/common/Pipeline/PipelineRunsTable.razor.rz.scp.css */
/* Run status uses the shared <StatusBadge> component (paip-status-badge). */

/* The sixteen-column history scrolls inside its card rather than wrapping cells or overflowing the
   page; the scrolling is the shared paip-wide-scroll class (app.css, PAIP #1045), which keeps the
   sideways scrollbar in view. Cells stay on one line so a narrow viewport reveals columns by
   scrolling, not by folding timestamps and dollar amounts. */
.paip-pipeline-runs-scroll[b-4htfyubwq3]  .paip-table-card-table th,
.paip-pipeline-runs-scroll[b-4htfyubwq3]  .paip-table-card-table td {
    white-space: nowrap;
}

.paip-run-status-error[b-4htfyubwq3] {
    margin-left: 6px;
    font-size: 12px;
    color: var(--red);
}

/* #949: a finished payer run's links to what it loaded (PaipLink renders the anchors, so ::deep). */
.paip-run-links[b-4htfyubwq3] {
    margin-left: 8px;
    font-size: 12px;
}

/* PAIP #1045: in the plain view the links have a column of their own, so no gap after a badge. */
.paip-run-links-plain[b-4htfyubwq3] {
    margin-left: 0;
}

.paip-run-links[b-4htfyubwq3]  a {
    margin-right: 8px;
    font-weight: 600;
}

/* Compact "View" button that opens the per-run analyzer modal (keeps rows short). */
.paip-analyzer-btn[b-4htfyubwq3] {
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: var(--r-sm, 6px);
    padding: 3px 12px;
    font-size: 12px;
    font-weight: 600;
    color: var(--navy);
    cursor: pointer;
    white-space: nowrap;
    transition: all 0.15s;
}

.paip-analyzer-btn:hover[b-4htfyubwq3] {
    background: var(--navy);
    color: var(--white);
    border-color: transparent;
}

/* Analyzer status grid inside the modal — two even columns. Each cell hovers to a
   plain-English description (see PipelineRunsTable.AnalyzerHover) so operators don't
   need to know the A-codes. */
.paip-analyzer-grid[b-4htfyubwq3] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 16px;
}

.paip-analyzer-item[b-4htfyubwq3] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 7px 12px;
    border: 1px solid var(--border);
    border-radius: var(--r-sm, 6px);
    background: var(--surface-2);
    cursor: default;
}

.paip-analyzer-id[b-4htfyubwq3] {
    font-family: var(--font-mono, ui-monospace, SFMono-Regular, monospace);
    font-weight: 700;
    font-size: 13px;
    color: var(--navy);
}

.paip-analyzer-empty[b-4htfyubwq3] {
    font-size: 13px;
    color: var(--text-secondary);
}
/* /components/modules/common/Report/ReportBlock.razor.rz.scp.css */
.paip-reports-block[b-syoa0d51rs] {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--r-md);
    padding: 16px;
    box-shadow: var(--shadow-sm);
    margin-bottom: var(--space-3);
}

.paip-reports-header[b-syoa0d51rs] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 12px;
}

.paip-reports-header-title[b-syoa0d51rs] {
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--navy);
    margin-bottom: 10px;
}

.paip-reports-header[b-syoa0d51rs] {
    font-size: 12px;
    color: var(--text-muted);
}
/* /components/modules/common/Report/ReportTile.razor.rz.scp.css */
.paip-report-tile[b-8tkrn8nnng] {
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: var(--r-md);
    padding: 14px;
    cursor: pointer;
    transition: all 0.18s ease;
    position: relative;
}

.paip-report-tile:hover[b-8tkrn8nnng] {
    background: var(--white);
    border-color: var(--teal);
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.paip-report-tile-icon[b-8tkrn8nnng] {
    font-size: 1.4rem;
    margin-bottom: 8px;
}

.paip-report-tile-name[b-8tkrn8nnng] {
    font-family: var(--font-display);
    font-size: 14px;
    font-weight: 700;
    color: var(--navy);
    margin-bottom: 2px;
}

.paip-report-tile-desc[b-8tkrn8nnng] {
    font-size: 12px;
    color: var(--text-secondary);
}

.paip-report-tile-badge[b-8tkrn8nnng] {
    display: inline-block;
    font-family: var(--font-display);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 3px 8px;
    border-radius: 10px;
    background: var(--surface-3);
    color: var(--text-muted);
    margin-top: 6px;
}

.paip-report-tile-badge.green[b-8tkrn8nnng] {
    background: rgba(0, 122, 117, 0.12);
    color: var(--green);
}

.paip-report-tile-badge.red[b-8tkrn8nnng] {
    background: rgba(192, 85, 43, 0.12);
    color: var(--red);
}

.paip-report-tile-badge.teal[b-8tkrn8nnng] {
    background: rgba(0, 160, 154, 0.12);
    color: var(--teal-dim);
}
/* /components/modules/common/Report/ReportTiles.razor.rz.scp.css */
.paip-report-tiles[b-9djshprgyw] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 10px;
}
/* /components/modules/common/RubricTable/RubricTable.razor.rz.scp.css */
.paip-rubric-section[b-zyitsnphh5] {
    margin-bottom: 24px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--border);
}

.paip-rubric-section-title[b-zyitsnphh5] {
    font-family: var(--font-display);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: var(--navy);
    margin-bottom: 6px;
}

.paip-rubric-section-desccripion[b-zyitsnphh5] {
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.55;
    margin-bottom: 12px;
}

.paip-rubric-table[b-zyitsnphh5] {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
}

.paip-rubric-table th[b-zyitsnphh5] {
    text-align: left;
    padding: 8px 10px;
    font-family: var(--font-display);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--text-muted);
    border-bottom: 2px solid var(--border);
    background: var(--surface-2);
}

[b-zyitsnphh5] .paip-rubric-table td {
    padding: 8px 10px;
    border-bottom: 1px solid var(--border);
    vertical-align: top;
}

[b-zyitsnphh5] .paip-rubric-table td:nth-child(2) {
    text-align: right;
    font-family: var(--font-mono);
    font-weight: 600;
    color: var(--navy);
}
/* /components/modules/common/ScoreBadge.razor.rz.scp.css */
.paip-score-badge[b-kh241kkmdf] {
    display:inline-block;
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    padding: 6px 14px;
    border-radius: 20px;
    flex-shrink: 0;
}

.paip-score-badge.compact[b-kh241kkmdf] {
    font-size: 9px;
    letter-spacing:  0.1em;
    text-transform: uppercase;
    padding: 3px 8px;
    border-radius: 10px;
}

.paip-score-badge.ready[b-kh241kkmdf] {
    background: rgba(0, 122, 117, 0.10);
    color: var(--green);
    border: 1px solid rgba(0, 122, 117, 0.35);
}

.paip-score-badge.review[b-kh241kkmdf] {
    background: rgba(0, 122, 117, 0.1);
    color: #007A75;
    border: 1px solid rgba(0, 122, 117, 0.35);
}

.paip-score-badge.medium[b-kh241kkmdf] {
    background: rgba(192, 85, 43, 0.1);
    color: var(--red);
    border: 1px solid rgba(192, 85, 43, 0.35);
}

.paip-score-badge.denied[b-kh241kkmdf] {
    background: rgba(192, 85, 43, 0.1);
    color: var(--red);
    border: 1px solid rgba(192, 85, 43, 0.35);
}
/* /components/modules/common/ScoreBar.razor.rz.scp.css */
.paip-score-bar[b-d205h6uwfz] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 5px;
    flex-wrap: wrap;
    gap: 4px;
}

.paip-score-bar-label[b-d205h6uwfz] {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-primary);
}

.paip-score-bar-value[b-d205h6uwfz] {
    font-size: 12px;
    font-weight: 600;
}

.paip-score-bar-track[b-d205h6uwfz] {
    height: 6px;
    background: rgba(0, 0, 0, 0.07);
    border-radius: 3px;
    overflow: hidden;
    margin-bottom: 10px;
}

.paip-score-bar-progress[b-d205h6uwfz] {
    height: 100%;
    border-radius: 3px;
}
/* /components/modules/common/ScoreCard/ScoreCard.razor.rz.scp.css */
.paip-scorecard[b-06jud8oelo] {
    padding: 12px;
    border-radius: var(--r-md);
    border: 1px solid var(--border);
    background: var(--surface-2);
}

.paip-scorecard.ready[b-06jud8oelo] {
    border-left: 3px solid var(--green);
}

.paip-scorecard.review[b-06jud8oelo] {
    border-left: 3px solid var(--teal);
}

.paip-scorecard.medium[b-06jud8oelo] {
    border-left: 3px solid var(--amber);
}

.paip-scorecard.denied[b-06jud8oelo] {
    border-left: 3px solid var(--red);
}

.paip-scorecard-band[b-06jud8oelo] {
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--text-muted);
    margin-bottom: 4px;
}

.paip-scorecard-label[b-06jud8oelo] {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 13px;
    margin-bottom: 6px;
    color: var(--navy);
}

.paip-scorecard-label.ready[b-06jud8oelo] {
    color: var(--green);
}
.paip-scorecard-label.review[b-06jud8oelo] {
    color: var(--teal);
}
.paip-scorecard-label.medium[b-06jud8oelo] {
    color: var(--amber);
}
.paip-scorecard-label.denied[b-06jud8oelo] {
    color: var(--red);
}

.paip-scorecard-description[b-06jud8oelo] {
    font-size: 11px;
    color: var(--text-secondary);
    line-height: 1.45;
}
/* /components/modules/common/ScoreCard/ScoreCardSection.razor.rz.scp.css */
.paip-scorecard-section[b-avelqrkpne] {
    margin-bottom: 24px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--border);
}

.paip-scorecard-section-title[b-avelqrkpne] {
    font-family: var(--font-display);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: var(--navy);
    margin-bottom: 6px;
}

.paip-scorecard-section-grid[b-avelqrkpne] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
    margin-top: 8px;
}
/* /components/modules/common/ScorePair.razor.rz.scp.css */
.paip-score-pair[b-jz1pakdjtz] {
    display: flex;
    align-items: center;
    background: rgba(0, 0, 0, 0.03);
    border: 1px solid var(--border);
    border-radius: 8px;
    overflow: hidden;
    flex-shrink: 0;
}

/* Divider between adjacent score blocks (works for any number of scores). */
[b-jz1pakdjtz] .paip-score-pair-block + .paip-score-pair-block {
    border-left: 1px solid var(--border);
}
/* /components/modules/common/ScorePairScore.razor.rz.scp.css */
.paip-score-pair-block[b-dowwb4rdny] {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 10px 18px;
}

.paip-score-pair-num[b-dowwb4rdny] {
    font-family: var(--font-display);
    font-size: 28px;
    font-weight: 700;
    line-height: 1;
}

.paip-score-pair-lbl[b-dowwb4rdny] {
    font-size: 9px;
    color: var(--text-muted);
    letter-spacing: .5px;
    text-transform: uppercase;
    text-align: center;
    margin-top: 2px;
    line-height: 1.3;
}
/* /components/modules/common/SlidePanel/SlidePanel.razor.rz.scp.css */
.paip-slide-panel[b-f1imdmojb0] {
    position: fixed;
    right: -720px;
    top: calc(var(--topbar-h) + var(--primary-nav-h));
    width: 680px;
    height: calc(100vh - var(--topbar-h) - var(--primary-nav-h) - var(--statusbar-h));
    background: var(--white);
    box-shadow: -16px 0 40px rgba(12, 30, 72, 0.18);
    transition: right 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 600;
    overflow-y: auto;
    border-left: 1px solid var(--border);
}

.paip-slide-panel.open[b-f1imdmojb0]{
    right:0;
}


.paip-slide-header[b-f1imdmojb0] {
    padding: 16px 20px;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 10px;
    border-bottom: 1px solid var(--border);
    position: sticky;
    top: 0;
    background: var(--white);
    z-index: 10;
}

.paip-slide-title[b-f1imdmojb0] {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 700;
    color: var(--text-primary);
}

.paip-slide-sub[b-f1imdmojb0] {
    font-size: 12px;
    color: var(--text-muted);
    margin-top: 2px;
}

.paip-slide-close[b-f1imdmojb0] {
    background: var(--surface-2);
    border: 1px solid var(--border);
    width: 32px;
    height: 32px;
    border-radius: 50%;
    cursor: pointer;
    font-size: 14px;
    color: var(--text-secondary);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
}

.paip-slide-close:hover[b-f1imdmojb0] {
    background: var(--red);
    color: white;
    border-color: transparent;
}

.paip-slide-body[b-f1imdmojb0] {
    padding: 18px 20px;
}
/* /components/modules/common/SlidePanel/SlidePanelCallout.razor.rz.scp.css */
.paip-slide-panel-callout[b-gdv9ga1p88] {
    background: var(--teal-soft);
    border-left: 3px solid var(--teal);
    padding: 10px 14px;
    border-radius: 0 var(--r-md) var(--r-md) 0;
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.55;
    margin-top: 8px;
}
/* /components/modules/common/SlidePanel/SlidePanelCascade.razor.rz.scp.css */
.paip-slide-section-cascade[b-rj9zj4o8fl] {
}
/* /components/modules/common/SlidePanel/SlidePanelCascadeStep.razor.rz.scp.css */
.paip-slide-panel-cascadestep[b-3y0viihgbm] {
    display: grid;
    grid-template-columns: 28px 1fr;
    gap: 10px;
    padding: 8px 0;
    border-bottom: 1px dashed var(--border);
}

.paip-slide-panel-cascadestep-num[b-3y0viihgbm] {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 700;
    color: var(--navy);
    text-align: center;
}

.paip-slide-panel-cascadestep-text[b-3y0viihgbm] {
    font-size: 13px;
    color: var(--text-primary);
    line-height: 1.5;
}
/* /components/modules/common/SlidePanel/SlidePanelRow.razor.rz.scp.css */
.paip-slide-panel-row[b-u70d7kjup3] {
    display: flex;
    justify-content: space-between;
    padding: 6px 0;
    font-size: 13px;
    color: var(--text-primary);
    border-bottom: 1px dashed var(--border);
}

.paip-slide-panel-row-val[b-u70d7kjup3] {
    font-family: var(--font-mono);
    font-weight: 600;
}

.paip-slide-panel-row-val.red[b-u70d7kjup3] {
    color: var(--red);
}

.paip-slide-panel-row-val.amber[b-u70d7kjup3] {
    color: var(--amber);
}
/* /components/modules/common/SlidePanel/SlidePanelSection.razor.rz.scp.css */
.paip-slide-section[b-3gefk0xi68] {
    margin-bottom: 18px;
}

.paip-slide-section-title[b-3gefk0xi68] {
    font-family: var(--font-display);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--teal-dim);
    margin-bottom: 8px;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--border);
}
/* /components/modules/common/SlidePanel/SlidePanelTable.razor.rz.scp.css */
.paip-slide-panel-table[b-4gjvsrc7bi] {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
}

[b-4gjvsrc7bi] .paip-slide-panel-table th {
    text-align: left;
    padding: 8px 10px;
    font-family: var(--font-display);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--text-muted);
    border-bottom: 2px solid var(--border);
    background: var(--surface-2);
}

[b-4gjvsrc7bi] .paip-slide-panel-table td {
    padding: 8px 10px;
    border-bottom: 1px solid var(--border);
    vertical-align: top;
}

[b-4gjvsrc7bi] .paip-slide-panel-table td:nth-child(2) {
    text-align: right;
    font-family: var(--font-mono);
    font-weight: 600;
    color: var(--navy);
}
/* /components/modules/common/StatusBadge.razor.rz.scp.css */
.paip-status-badge[b-pyyfft35ua] {
    display: inline-block;
    font-family: var(--font-display);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 2px 8px;
    border-radius: var(--r-sm);
    border: 1px solid var(--border);
    background: var(--surface-2);
    color: var(--text-secondary);
    white-space: nowrap;
}

.paip-status-badge-neutral[b-pyyfft35ua] {
    border-color: var(--border);
    background: var(--surface-2);
    color: var(--text-secondary);
}

.paip-status-badge-red[b-pyyfft35ua] {
    color: var(--red);
    background: rgba(192, 85, 43, 0.10);
    border-color: rgba(192, 85, 43, 0.30);
}

.paip-status-badge-amber[b-pyyfft35ua] {
    color: var(--amber);
    background: rgba(184, 116, 11, 0.10);
    border-color: rgba(184, 116, 11, 0.30);
}

.paip-status-badge-green[b-pyyfft35ua] {
    color: var(--green);
    background: rgba(0, 122, 117, 0.10);
    border-color: rgba(0, 122, 117, 0.30);
}

.paip-status-badge-teal[b-pyyfft35ua] {
    color: var(--teal-dim);
    background: var(--teal-soft);
    border-color: rgba(0, 160, 154, 0.30);
}
/* /components/modules/common/StripBanner.razor.rz.scp.css */
.paip-strip-banner[b-an3ji5g8gp] {
    background: linear-gradient(180deg, #FFFBEB 0%, #FEF3C7 100%);
    border-bottom: 1px solid #FDE68A;
    padding: 8px 24px;
    font-size: 11px;
    color: #78350F;
    display: flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
}

.paip-strip-banner-icon[b-an3ji5g8gp] {
    width: 16px;
    height: 16px;
    background: #B45309;
    color: white;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 700;
    flex-shrink: 0;
}

.paip-strip-banner-text strong[b-an3ji5g8gp]{
    font-weight: 700;
    color: #78350F;
}
/* /components/modules/common/Table/BarCell.razor.rz.scp.css */
/* Scoped, and it needs no ::deep: every element below is BarCell's own markup, so the component
   carries the scope the rules are compiled against. Metrics are the mockup's `.ds-bar-cell` block
   verbatim (orthoai_dashboard_ehr.html:2268-2287).

   `flex: none` on the track is the one addition. The mockup gets away without it because its cells
   are wide; a 60px track inside a flex row is otherwise shrinkable, and a bar that narrows with the
   column stops being comparable to the bar above it, which is the only thing it is for. */
.paip-bar-cell[b-fnwhdm4ks3] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}

.paip-bar[b-fnwhdm4ks3] {
    flex: none;
    width: 60px;
    height: 6px;
    background: var(--surface-3);
    border-radius: 3px;
    overflow: hidden;
}

.paip-bar-fill[b-fnwhdm4ks3] {
    height: 100%;
    background: var(--teal);
}

.paip-bar-fill.low[b-fnwhdm4ks3]  { background: var(--red); }
.paip-bar-fill.mid[b-fnwhdm4ks3]  { background: var(--amber); }
.paip-bar-fill.high[b-fnwhdm4ks3] { background: var(--green); }
/* /components/modules/common/Table/TableCard.razor.rz.scp.css */
/* The card itself. It had NO rule at all -- the class named the element and nothing dressed it, so
   every table in the product sat straight on the page background. The mockups put each table on a
   white card (`.pp-section`, orthoai_dashboard_ehr.html:1777) and the application already has the
   same surface under another name (`.paip-panel-card`, app.css:726), which is what these values are
   taken from; the padding and the bottom margin are the mockup's.

   Scoped with no ::deep, because this div is TableCard's own markup -- unlike the table inside it,
   which is why that half lives in app.css (see the note at the foot of this file).

   🔴 THIS MOVES EVERY TABLE IN THE PRODUCT: 115 <TableCard> usages across 71 files. That is the
   point -- they were all missing the same card -- but it is a product-wide change from one rule,
   and reverting it is deleting this block. */
.paip-table-card[b-hrlohyi5lo] {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--r-lg);
    padding: var(--space-5);
    box-shadow: var(--shadow-sm);
    margin-bottom: var(--space-4);
}

.paip-table-card-title[b-hrlohyi5lo] {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--navy);
    margin-bottom: 10px;
}

/* Title + optional inline header content (e.g. the A–Z filter) on one line. The wrapper carries the
   title's bottom margin so the row spacing matches a plain title card exactly. */
.paip-table-card-header[b-hrlohyi5lo] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin-bottom: 10px;
}

.paip-table-card-header .paip-table-card-title[b-hrlohyi5lo] {
    margin-bottom: 0;
}

/* The table styling (.paip-table-card-table) lives in the global app.css so the shared <Table>
   component is self-styled wherever it renders — inside a TableCard, inside a PanelCard, or as a
   raw htmx fragment — not only when nested under this card's CSS scope. */
/* /components/modules/home/TenantSelector.razor.rz.scp.css */
/* The tenant choices stack. Replaces a <br/> pair around each button: those keyed the spacing to
   the inherited line-height, and left the buttons full-width-agnostic in a way that fought the
   badge's left alignment. */
.paip-tenant-choices[b-j7iopmoikq] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-3);
}
/* /components/modules/payer/careplans/CarePlanBody.razor.rz.scp.css */
/* #824: one row per item -- the kind in its own column, the text and its citations hanging beside it -- with a plan's
   goals and their interventions on an indented rail under the problem they serve. */
.paip-care-plan-problem[b-zj6mgy8ylp] {
    padding: 14px 0;
    border-top: 1px solid var(--border);
}

.paip-care-plan-problem:first-of-type[b-zj6mgy8ylp] {
    padding-top: 0;
    border-top: 0;
}

.paip-care-plan-row[b-zj6mgy8ylp] {
    display: grid;
    grid-template-columns: 7rem minmax(0, 1fr);
    gap: 4px 12px;
    align-items: start;
}

.paip-care-plan-kind[b-zj6mgy8ylp] {
    justify-self: start;
    padding: 2px 8px;
    border: 1px solid var(--border-strong);
    border-radius: var(--r-sm);
    font-family: var(--font-display);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .1em;
    line-height: 1.6;
    text-transform: uppercase;
    color: var(--text-secondary);
}

.paip-care-plan-kind-problem[b-zj6mgy8ylp] {
    border-color: var(--navy);
    background: var(--navy);
    color: var(--white);
}

.paip-care-plan-text[b-zj6mgy8ylp] {
    margin: 0;
    line-height: 1.5;
}

.paip-care-plan-meta[b-zj6mgy8ylp] {
    margin: 4px 0 0;
    font-size: 12.5px;
    color: var(--text-secondary);
}

.paip-care-plan-children[b-zj6mgy8ylp] {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin: 12px 0 0 calc(3.5rem + 6px);
    padding-left: 16px;
    border-left: 2px solid var(--border-strong);
}

.paip-care-plan-cites[b-zj6mgy8ylp] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin: 6px 0 0;
}

.paip-care-plan-cites-label[b-zj6mgy8ylp] {
    font-size: 11px;
    color: var(--text-muted);
}

.paip-care-plan-tag[b-zj6mgy8ylp] {
    display: inline-block;
    padding: 1px 7px;
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
    background: var(--surface-3);
    font-size: 11px;
    line-height: 1.6;
    color: var(--text-secondary);
}

/* A phone: the kind sits above its text, and the rail indents less. */
@media (max-width: 600px) {
    .paip-care-plan-row[b-zj6mgy8ylp] {
        grid-template-columns: minmax(0, 1fr);
    }

    .paip-care-plan-children[b-zj6mgy8ylp] {
        margin-left: 4px;
        padding-left: 12px;
    }
}
/* /components/modules/payer/careplans/CarePlanStages.razor.rz.scp.css */
/* #1119: a care plan's four-stage tracker. Self-contained (CSS isolation). */
.paip-plan-tracker[b-ym68ah4sp5] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 0 0 var(--space-3, 12px);
}

.paip-plan-tracker-stages[b-ym68ah4sp5] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.paip-plan-tracker-stage[b-ym68ah4sp5] {
    padding: 4px 10px;
    border: 1px solid var(--border);
    border-radius: 999px;
    font-size: 12px;
    color: var(--ink-3, #6b7280);
}

.paip-plan-tracker-stage.done[b-ym68ah4sp5] {
    color: var(--ink-2, #374151);
    background: var(--surface-2, #f3f4f6);
}

.paip-plan-tracker-stage.current[b-ym68ah4sp5] {
    color: #fff;
    background: var(--teal, #0f766e);
    border-color: var(--teal, #0f766e);
    font-weight: 600;
}

.paip-plan-tracker-next[b-ym68ah4sp5] {
    margin: 0;
    font-size: 12.5px;
}
/* /components/modules/payer/executive/RiskCompliance.razor.rz.scp.css */
/* Risk & Compliance (#692): the mockup's screen-specific additions (.rc-*), renamed paip-rc-*. Tokens and the
   shared components come from the shell. Scoped to this page, so every class used here is defined here. */

.paip-rc-restricted[b-5m4py1hfel] { display: flex; gap: 12px; align-items: flex-start; }
.paip-rc-restricted-text[b-5m4py1hfel] { font-size: 12.5px; line-height: 1.5; }
.paip-rc-lock[b-5m4py1hfel] {
    font-family: var(--font-display); font-weight: 700; font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
    color: var(--white, #fff); background: var(--navy); padding: 3px 8px; border-radius: 3px; white-space: nowrap;
}

/* The page's buttons, after the work queue's (.hp-queue-btn): scoped there, so restated here. */
.paip-rc-btn[b-5m4py1hfel] {
    font-family: var(--font-display); font-weight: 600; font-size: 12px; letter-spacing: .04em; text-transform: uppercase;
    border: 1px solid var(--navy); background: var(--white, #fff); color: var(--navy); border-radius: 8px;
    padding: 7px 13px; cursor: pointer;
}
.paip-rc-btn-primary[b-5m4py1hfel] { background: var(--navy); color: var(--white, #fff); }
.paip-rc-btn-accent[b-5m4py1hfel] { border-color: var(--teal); background: var(--teal); color: var(--white, #fff); }

.paip-rc-small[b-5m4py1hfel] { font-size: 11.5px; line-height: 1.45; }
.paip-rc-note[b-5m4py1hfel] { font-size: 11px; margin-top: 8px; line-height: 1.45; }
.paip-rc-help[b-5m4py1hfel] { display: block; font-size: 11.5px; color: var(--text-muted); margin-top: 3px; line-height: 1.4; }
.paip-rc-source[b-5m4py1hfel] { font-size: 11.5px; line-height: 1.45; }
.paip-rc-na[b-5m4py1hfel] { opacity: .6; }
.paip-rc-gap[b-5m4py1hfel] { margin-top: 16px; }

.paip-rc-clock[b-5m4py1hfel] { font-weight: 700; font-variant-numeric: tabular-nums; }
.paip-rc-past[b-5m4py1hfel] { color: var(--red); }
.paip-rc-soon[b-5m4py1hfel] { color: var(--amber); }
.paip-rc-ok[b-5m4py1hfel] { color: var(--green); }
.paip-rc-better[b-5m4py1hfel] { color: var(--green); }
.paip-rc-worse[b-5m4py1hfel] { color: var(--red); }

.paip-rc-register[b-5m4py1hfel] { display: grid; grid-template-columns: 1.15fr 1fr; gap: var(--space-4, 16px); }
@media (max-width: 1100px) { .paip-rc-register[b-5m4py1hfel] { grid-template-columns: 1fr; } }
.paip-rc-filters[b-5m4py1hfel] { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.paip-rc-chip[b-5m4py1hfel] {
    border: 1px solid var(--border-strong); background: var(--white, #fff); color: var(--text-secondary);
    font-size: 11.5px; padding: 4px 10px; border-radius: 14px; text-decoration: none;
}
.paip-rc-chip.on[b-5m4py1hfel] { background: var(--navy); color: var(--white, #fff); border-color: var(--navy); }
.paip-rc-chip .n[b-5m4py1hfel] { opacity: .7; margin-left: 4px; }
.paip-rc-list[b-5m4py1hfel] { max-height: 560px; overflow: auto; border: 1px solid var(--border); border-radius: 6px; }
.paip-rc-sel[b-5m4py1hfel] { background: var(--teal-soft); }

.paip-rc-detail[b-5m4py1hfel] { border: 1px solid var(--border); border-radius: 6px; padding: 16px; background: var(--surface-2); min-height: 300px; min-width: 0; }
.paip-rc-detail-head[b-5m4py1hfel] { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; }
.paip-rc-title[b-5m4py1hfel] { font-family: var(--font-display); font-size: 18px; font-weight: 700; color: var(--navy); line-height: 1.2; margin-top: 2px; }

.paip-rc-steps[b-5m4py1hfel] { display: flex; gap: 0; margin: 12px 0 14px; padding: 0; list-style: none; }
.paip-rc-step[b-5m4py1hfel] { flex: 1; text-align: center; font-size: 10.5px; color: var(--text-muted); position: relative; padding-top: 16px; }
.paip-rc-step[b-5m4py1hfel]::before { content: ''; position: absolute; top: 5px; left: 0; right: 0; height: 2px; background: var(--surface-3); }
.paip-rc-step[b-5m4py1hfel]::after {
    content: ''; position: absolute; top: 1px; left: 50%; width: 10px; height: 10px; margin-left: -5px;
    border-radius: 50%; background: var(--surface-3);
}
.paip-rc-step.done[b-5m4py1hfel] { color: var(--text-secondary); }
.paip-rc-step.done[b-5m4py1hfel]::before, .paip-rc-step.done[b-5m4py1hfel]::after { background: var(--teal); }
.paip-rc-step.now[b-5m4py1hfel] { color: var(--navy); font-weight: 700; }
.paip-rc-step.now[b-5m4py1hfel]::after { background: var(--navy); box-shadow: 0 0 0 3px var(--teal-soft); }

.paip-rc-kv[b-5m4py1hfel] { display: grid; grid-template-columns: 130px 1fr; gap: 4px 10px; font-size: 12.5px; margin: 10px 0; }
.paip-rc-kv dt[b-5m4py1hfel] { color: var(--text-muted); }
.paip-rc-kv dd[b-5m4py1hfel] { margin: 0; min-width: 0; overflow-wrap: anywhere; }

.paip-rc-actions[b-5m4py1hfel] { display: flex; gap: 8px; flex-wrap: wrap; margin: 12px 0; align-items: flex-start; }
.paip-rc-disclosure > summary[b-5m4py1hfel] { cursor: pointer; font-size: 12px; color: var(--teal-dim, var(--teal)); }
.paip-rc-action[b-5m4py1hfel] { flex: 1 1 100%; }
.paip-rc-action > summary[b-5m4py1hfel] { list-style: none; display: inline-block; color: inherit; }
.paip-rc-action > summary[b-5m4py1hfel]::-webkit-details-marker { display: none; }
.paip-rc-action[open] > summary[b-5m4py1hfel] { margin-bottom: 8px; }
/* #881: an action's summary IS a button. The two summary rules above outrank .paip-rc-btn-* (0,1,1 against 0,1,0), so
   the primary Refer read navy on navy and Record resolution dark on teal. These restate the button at a specificity
   that wins, so each summary renders exactly as the page's <button>s. */
.paip-rc-action > summary.paip-rc-btn[b-5m4py1hfel] {
    font-family: var(--font-display); font-weight: 600; font-size: 12px; letter-spacing: .04em; text-transform: uppercase;
    border: 1px solid var(--navy); background: var(--white, #fff); color: var(--navy);
}
.paip-rc-action > summary.paip-rc-btn-primary[b-5m4py1hfel] { background: var(--navy); color: var(--white, #fff); }
.paip-rc-action > summary.paip-rc-btn-accent[b-5m4py1hfel] { border-color: var(--teal); background: var(--teal); color: var(--white, #fff); }
.paip-rc-form[b-5m4py1hfel] { background: var(--white, #fff); border: 1px solid var(--border); border-radius: 6px; padding: 12px 14px; }
.paip-rc-field[b-5m4py1hfel] { display: block; margin: 10px 0; border: 0; padding: 0; }
.paip-rc-field > span:first-child[b-5m4py1hfel], .paip-rc-field > legend[b-5m4py1hfel] {
    display: block; font-size: 11px; font-weight: 700; color: var(--text-secondary); text-transform: uppercase;
    letter-spacing: .08em; margin-bottom: 4px; font-family: var(--font-display);
}
.paip-rc-field input[type=date][b-5m4py1hfel], .paip-rc-field select[b-5m4py1hfel], .paip-rc-field textarea[b-5m4py1hfel] {
    width: 100%; box-sizing: border-box; border: 1px solid var(--border-strong); border-radius: 4px;
    padding: 7px 9px; font-family: inherit; font-size: 13px; color: var(--text-primary);
}
.paip-rc-field textarea[b-5m4py1hfel] { min-height: 70px; resize: vertical; }
.paip-rc-check[b-5m4py1hfel] { display: flex; gap: 8px; align-items: flex-start; font-size: 12.5px; margin: 5px 0; }

.paip-rc-accept[b-5m4py1hfel] { border: 1px solid var(--border); border-radius: 6px; padding: 10px 12px; background: var(--white, #fff); margin: 8px 0; }
.paip-rc-accept form[b-5m4py1hfel] { margin-top: 8px; }

.paip-rc-log[b-5m4py1hfel] { border-top: 1px solid var(--border); margin-top: 12px; padding-top: 10px; }
.paip-rc-log-title[b-5m4py1hfel] {
    font-size: 11px; font-weight: 700; color: var(--text-secondary); text-transform: uppercase; letter-spacing: .08em;
    margin-bottom: 4px; font-family: var(--font-display);
}
.paip-rc-log-row[b-5m4py1hfel] { font-size: 12px; padding: 6px 0; border-bottom: 1px dashed var(--border); overflow-wrap: anywhere; }

.paip-rc-howto ol[b-5m4py1hfel] { margin: 6px 0 0 18px; padding: 0; font-size: 12.5px; line-height: 1.55; }
.paip-rc-howto dl[b-5m4py1hfel] { font-size: 12.5px; margin: 10px 0 0; }
.paip-rc-howto dt[b-5m4py1hfel] { font-weight: 700; color: var(--navy); margin-top: 6px; }
.paip-rc-howto dd[b-5m4py1hfel] { margin: 0; color: var(--text-secondary); }

/* A sole officer's acceptance of their own evidence (CPO ruling 2026-10-14). */
.paip-rc-self[b-5m4py1hfel] { font-style: italic; }
.paip-rc-self-note[b-5m4py1hfel] { margin: 6px 0 0; padding: 6px 10px; border-left: 3px solid var(--amber, #b7791f); background: var(--surface-2); }
/* /components/modules/payer/hp/HpAccessLogTable.razor.rz.scp.css */
/* The Access Log's table (#821). Scoped here: a rule in another component's .razor.css never reaches this one. */
.paip-al-flagged td[b-fcflx5l35u] {
    background: var(--amber-50, #fff8e6);
}

.paip-al-small[b-fcflx5l35u] {
    font-size: 12px;
}

.paip-al-nowrap[b-fcflx5l35u] {
    white-space: nowrap;
}
/* /components/modules/payer/hp/HpBillingIntegrity.razor.rz.scp.css */
/* Billing Integrity (GitHub #692 phase 2), from executive/billing-integrity.html's screen-specific styles, renamed paip-bi-*.
   Scoped to this component: every class here is defined here, none borrowed from another component's .razor.css
   (CSS isolation would leave a borrowed one unstyled). The tables are the shared Table component, so their rows
   are reached with ::deep. */

.paip-bi-restricted[b-kmpnxfeez2] {
    display: flex;
    gap: 12px;
    align-items: flex-start;
}

.paip-bi-lock[b-kmpnxfeez2] {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 11px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--white, #fff);
    background: var(--navy);
    padding: 3px 8px;
    border-radius: 3px;
    white-space: nowrap;
}

.paip-bi-restricted-text[b-kmpnxfeez2] {
    font-size: 12.5px;
    line-height: 1.5;
}

.paip-bi-top[b-kmpnxfeez2] {
    margin-top: 16px;
}

.paip-bi-empty-title[b-kmpnxfeez2] {
    margin: 0 0 6px;
    color: var(--navy);
}

.paip-bi-code[b-kmpnxfeez2] {
    font-size: 10.5px;
}

.paip-bi-define[b-kmpnxfeez2] {
    font-size: 11px;
    margin-top: 2px;
    line-height: 1.45;
}

.paip-bi-note[b-kmpnxfeez2] {
    font-size: 11px;
    margin-top: 8px;
    line-height: 1.45;
}

.paip-bi-flag[b-kmpnxfeez2] {
    display: inline-block;
    font-size: 10.5px;
    padding: 2px 7px;
    border-radius: 10px;
    margin: 1px 3px 1px 0;
    background: rgba(184, 106, 0, 0.12);
    color: var(--amber);
    font-weight: 600;
    white-space: nowrap;
}

.paip-bi-na[b-kmpnxfeez2] {
    padding: 7px 0;
    border-bottom: 1px dashed var(--border);
    font-size: 12.5px;
}

.paip-bi-na-label[b-kmpnxfeez2] {
    color: var(--navy);
}

.paip-bi-na-reason[b-kmpnxfeez2] {
    font-size: 11.5px;
    margin-top: 2px;
    line-height: 1.45;
}

/* ── Provider review ─────────────────────────────────────────────────────────────────────────── */

.paip-bi-review[b-kmpnxfeez2] {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: var(--space-4, 16px);
}

.paip-bi-review > *[b-kmpnxfeez2] {
    min-width: 0;
}

@media (max-width: 1100px) {
    .paip-bi-review[b-kmpnxfeez2] {
        grid-template-columns: 1fr;
    }
}

.paip-bi-controls[b-kmpnxfeez2] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin-bottom: 10px;
}

.paip-bi-controls select[b-kmpnxfeez2],
.paip-bi-controls input[type=text][b-kmpnxfeez2] {
    border: 1px solid var(--border-strong, var(--border));
    border-radius: 4px;
    padding: 6px 8px;
    font-family: inherit;
    font-size: 12.5px;
    color: var(--text-primary, inherit);
    background: var(--white, #fff);
}

.paip-bi-controls label[b-kmpnxfeez2] {
    font-size: 12px;
    color: var(--text-secondary, inherit);
    display: flex;
    gap: 5px;
    align-items: center;
}

.paip-bi-chips[b-kmpnxfeez2] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 10px;
}

.paip-bi-chip[b-kmpnxfeez2] {
    border: 1px solid var(--border-strong, var(--border));
    background: var(--white, #fff);
    color: var(--text-secondary, inherit);
    font-size: 11.5px;
    padding: 4px 10px;
    border-radius: 14px;
    text-decoration: none;
}

.paip-bi-chip.on[b-kmpnxfeez2] {
    background: var(--navy);
    color: var(--white, #fff);
    border-color: var(--navy);
}

.paip-bi-chip .n[b-kmpnxfeez2] {
    opacity: .7;
    margin-left: 4px;
}

.paip-bi-list[b-kmpnxfeez2] {
    max-height: 600px;
    overflow: auto;
    border: 1px solid var(--border);
    border-radius: 6px;
}

.paip-bi-list[b-kmpnxfeez2]  tr.sel,
.paip-bi-specialties[b-kmpnxfeez2]  tr.sel {
    background: var(--teal-soft, rgba(0, 160, 154, 0.08));
}

.paip-bi-none[b-kmpnxfeez2] {
    padding: 14px;
}

.paip-bi-detail[b-kmpnxfeez2] {
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 16px;
    background: var(--surface-2, transparent);
    min-height: 320px;
}

.paip-bi-detail-head[b-kmpnxfeez2] {
    display: flex;
    justify-content: space-between;
    gap: 10px;
}

.paip-bi-name[b-kmpnxfeez2] {
    font-family: var(--font-display);
    font-size: 19px;
    font-weight: 700;
    color: var(--navy);
}

.paip-bi-volume[b-kmpnxfeez2] {
    text-align: right;
    font-size: 12px;
}

.paip-bi-actions[b-kmpnxfeez2] {
    display: flex;
    gap: 8px;
    margin: 12px 0 4px;
    flex-wrap: wrap;
    align-items: center;
}

.paip-bi-matter-note[b-kmpnxfeez2] {
    font-size: 11.5px;
}

.paip-bi-btn[b-kmpnxfeez2] {
    display: inline-block;
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 600;
    padding: 7px 14px;
    border-radius: 4px;
    border: 1px solid var(--navy);
    cursor: pointer;
    text-decoration: none;
}

.paip-bi-btn-primary[b-kmpnxfeez2] {
    background: var(--navy);
    color: var(--white, #fff);
}

.paip-bi-btn-secondary[b-kmpnxfeez2] {
    background: var(--white, #fff);
    color: var(--navy);
}

.paip-bi-btn:disabled[b-kmpnxfeez2] {
    opacity: .5;
    cursor: not-allowed;
}

.paip-bi-estimate[b-kmpnxfeez2] {
    margin: 10px 0 4px;
    padding: 8px 10px;
    border-left: 3px solid var(--amber);
    font-size: 12.5px;
}

.paip-bi-section[b-kmpnxfeez2] {
    margin-top: 14px;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .12em;
    font-family: var(--font-display);
    font-weight: 700;
    color: var(--navy);
}

.paip-bi-mrow[b-kmpnxfeez2] {
    padding: 8px 0;
    border-bottom: 1px dashed var(--border);
    font-size: 12.5px;
}

.paip-bi-mrow-top[b-kmpnxfeez2] {
    display: flex;
    justify-content: space-between;
    gap: 8px;
}

.paip-bi-count-line[b-kmpnxfeez2],
.paip-bi-level-code[b-kmpnxfeez2],
.paip-bi-level-peer[b-kmpnxfeez2] {
    font-size: 10.5px;
}

.paip-bi-meter[b-kmpnxfeez2] {
    position: relative;
    height: 8px;
    background: var(--surface-3, rgba(0, 0, 0, 0.06));
    border-radius: 4px;
    margin-top: 4px;
}

.paip-bi-meter .peer[b-kmpnxfeez2] {
    position: absolute;
    top: -3px;
    width: 2px;
    height: 14px;
    background: var(--navy);
}

.paip-bi-meter .you[b-kmpnxfeez2] {
    position: absolute;
    top: 0;
    height: 8px;
    border-radius: 4px;
    background: var(--teal);
}

.paip-bi-meter .you.hot[b-kmpnxfeez2] {
    background: var(--amber);
}

/* ── How to use ──────────────────────────────────────────────────────────────────────────────── */

.paip-bi-howto ol[b-kmpnxfeez2] {
    margin: 6px 0 0 18px;
    padding: 0;
    font-size: 12.5px;
    line-height: 1.55;
}

.paip-bi-howto dl[b-kmpnxfeez2] {
    font-size: 12.5px;
    margin: 10px 0 0;
}

.paip-bi-howto dt[b-kmpnxfeez2] {
    font-weight: 700;
    color: var(--navy);
    margin-top: 6px;
}

.paip-bi-howto dd[b-kmpnxfeez2] {
    margin: 0;
    color: var(--text-secondary, inherit);
}
/* /components/modules/payer/hp/HpEvidenceDownload.razor.rz.scp.css */
/* PAIP #1051: the full-evidence download beside a finding's citations. */
.hp-evidence-download[b-t4uqpdz4ia] {
    display: inline-block;
    margin: 0 0 6px;
    font-size: 12px;
}
/* /components/modules/payer/hp/HpEvidenceMore.razor.rz.scp.css */
/* PAIP #1051: the "Show all" / "Show more" control under a finding's citations. */
.hp-evidence-more[b-jdht722nyj] {
    margin-top: 8px;
}
/* /components/modules/payer/hp/HpEvidencePage.razor.rz.scp.css */
/* PAIP #1051: a page of citations appended under the ones already shown. */
.hp-evidence-page[b-ddf7c1i5i3] {
    margin-top: 6px;
    min-width: 0;
}

.hp-evidence-note[b-ddf7c1i5i3] {
    margin: 8px 0 0;
    font-size: 12px;
    color: var(--ink-3, #6b7280);
}
/* /components/modules/payer/hp/HpEvidenceReconciliation.razor.rz.scp.css */
/* PAIP #1051: the reconciliation sentence under a finding's evidence title. */
.hp-evidence-reconciliation[b-vyimge4h03] {
    margin: 0 0 6px;
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--ink-2, #4b5563);
}
/* /components/modules/payer/hp/HpPriorityLegend.razor.rz.scp.css */
/* PAIP #777: the priority legend (HpPriorityLegend), shared by every list that shows a priority. */
.hp-priority-legend[b-ug2z355mjg] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 14px;
    margin: 0 0 8px;
    font-size: 11.5px;
    color: var(--text-secondary);
}

.hp-priority-legend-label[b-ug2z355mjg] {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 10px;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.hp-priority-legend-item[b-ug2z355mjg] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    white-space: nowrap;
}

.hp-priority-legend-range[b-ug2z355mjg] {
    font-family: var(--font-mono, monospace);
}

.hp-priority-legend-how[b-ug2z355mjg] {
    flex-basis: auto;
}

.hp-priority-legend-how summary[b-ug2z355mjg] {
    cursor: pointer;
    color: var(--navy);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.hp-priority-legend-how[open][b-ug2z355mjg] {
    flex-basis: 100%;
}

.hp-priority-legend-how p[b-ug2z355mjg] {
    margin: 6px 0 0;
    max-width: 72ch;
    line-height: 1.5;
    color: var(--text-secondary);
}
/* /components/modules/payer/hp/HpQueuePanel.razor.rz.scp.css */
/* PAIP #778: the Work queue panel's live counts, each a link to the list it counts. */
.hp-queue-panel-head[b-q1ra65yqzr] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 10px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--border);
    color: inherit;
    text-decoration: none;
}

.hp-queue-panel-title[b-q1ra65yqzr] {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .12em;
    font-family: var(--font-display);
    font-weight: 700;
    margin-bottom: 4px;
}

.hp-queue-panel-row[b-q1ra65yqzr] {
    display: flex;
    justify-content: space-between;
    padding: 4px 0;
    font-size: 12px;
    color: inherit;
    text-decoration: none;
}

.hp-queue-panel-head:hover .paip-strong[b-q1ra65yqzr],
.hp-queue-panel-row:hover .paip-mono[b-q1ra65yqzr] {
    text-decoration: underline;
}
/* /components/modules/payer/hp/HpRefusedFiles.razor.rz.scp.css */
/* PAIP #1045: the refused files and the corrections collapse behind <details>. Scoped: every element
   styled here is this component's own markup (the tables inside are the shared Table, styled
   globally), so no ::deep and no class borrowed from another component's stylesheet. */
.paip-hp-disclosure > summary[b-kfu4um95zt] {
    cursor: pointer;
    font-size: 13px;
    font-weight: 600;
    color: var(--navy);
    padding: 4px 0;
}

.paip-hp-disclosure > summary:focus-visible[b-kfu4um95zt] {
    outline: 2px solid var(--navy);
    outline-offset: 2px;
}

.paip-hp-disclosure[open] > summary[b-kfu4um95zt] {
    margin-bottom: 8px;
}

.paip-hp-disclosure-note[b-kfu4um95zt] {
    margin: 0 0 10px;
    font-size: 12.5px;
}

.paip-hp-disclosure-nested[b-kfu4um95zt] {
    margin-top: 12px;
    padding-top: 8px;
    border-top: 1px solid var(--border);
}

.paip-hp-correction-run + .paip-hp-correction-run[b-kfu4um95zt] {
    margin-top: 6px;
    padding-top: 6px;
    border-top: 1px solid var(--border);
}

.paip-hp-correction-feeds[b-kfu4um95zt] {
    list-style: none;
    margin: 0 0 6px;
    padding: 0 0 0 16px;
}

.paip-hp-correction-feed > summary[b-kfu4um95zt] {
    font-weight: 500;
    color: var(--text-primary);
}
/* /components/modules/payer/hp/HpValueStrip.razor.rz.scp.css */
/* PAIP #782: the confidence-weighted tile's ⓘ. The disclosure opens on hover AND on keyboard focus (and on a tap,
   which focuses the button), never only on a click. Scoped here: these classes are used by this component alone. */

.paip-hp-value-info[b-8x93m403uv] {
    position: relative;
    display: inline-block;
    margin-top: 3px;
    font-size: 11px;
}

.paip-hp-value-info-trigger[b-8x93m403uv] {
    padding: 0;
    border: 0;
    background: none;
    font: inherit;
    color: var(--teal-dim);
    cursor: help;
    text-decoration: underline dotted;
}

.paip-hp-value-info-trigger:focus-visible[b-8x93m403uv] {
    outline: 2px solid var(--teal-dim);
    outline-offset: 2px;
}

.paip-hp-value-info-text[b-8x93m403uv] {
    display: none;
    position: absolute;
    left: 0;
    top: calc(100% + 4px);
    z-index: 20;
    width: min(340px, 80vw);
    padding: 8px 10px;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--white);
    color: var(--text-secondary);
    line-height: 1.45;
    box-shadow: 0 4px 14px rgba(12, 30, 72, 0.14);
}

.paip-hp-value-info:hover .paip-hp-value-info-text[b-8x93m403uv],
.paip-hp-value-info:focus-within .paip-hp-value-info-text[b-8x93m403uv] {
    display: block;
}
/* /components/modules/payer/reference/ScreenReferenceLink.razor.rz.scp.css */
/* PAIP #958: the Screen Reference "?". A round outlined button in the nav's navy, filled on hover and focus. Floating, it
   sits at the top right of the content and the page header (a flex box, so a block formatting context) narrows beside it
   rather than running under it. */
.paip-screen-ref[b-tymx1n11lo],
.paip-screen-ref:visited[b-tymx1n11lo] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: 1px solid var(--border-strong);
    background: var(--white);
    color: var(--navy);
    font-family: var(--font-display);
    font-size: 15px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    flex-shrink: 0;
    transition: background 0.12s, color 0.12s, border-color 0.12s;
}

.paip-screen-ref:hover[b-tymx1n11lo],
.paip-screen-ref:focus-visible[b-tymx1n11lo] {
    background: var(--navy);
    border-color: var(--navy);
    color: var(--white);
}

.paip-screen-ref-float[b-tymx1n11lo] {
    float: right;
    position: relative;
    z-index: 1;
    margin: 0 0 var(--space-2) var(--space-3);
}
/* /components/modules/payer/referrals/ReferralPage.razor.rz.scp.css */
/* A referral's page (#692). Scoped: every class used here is defined here. */
.paip-rf-kv[b-1pay0qzefp] { display: grid; grid-template-columns: 170px 1fr; gap: 6px 12px; font-size: 13px; margin: 0; }
.paip-rf-kv dt[b-1pay0qzefp] { color: var(--text-muted); }
.paip-rf-kv dd[b-1pay0qzefp] { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.paip-rf-small[b-1pay0qzefp] { font-size: 11.5px; }
.paip-rf-pad[b-1pay0qzefp] { padding: 12px 14px; }
.paip-rf-row[b-1pay0qzefp] { font-size: 12.5px; padding: 6px 0; border-bottom: 1px dashed var(--border); overflow-wrap: anywhere; }
.paip-rf-form[b-1pay0qzefp] { margin-top: 12px; }
.paip-rf-field[b-1pay0qzefp] { display: block; margin: 10px 0; }
.paip-rf-field > span[b-1pay0qzefp] {
    display: block; font-size: 11px; font-weight: 700; color: var(--text-secondary); text-transform: uppercase;
    letter-spacing: .08em; margin-bottom: 4px; font-family: var(--font-display);
}
.paip-rf-field textarea[b-1pay0qzefp] {
    width: 100%; box-sizing: border-box; border: 1px solid var(--border-strong); border-radius: 4px;
    padding: 7px 9px; font-family: inherit; font-size: 13px; min-height: 80px; resize: vertical;
}
.paip-rf-btn[b-1pay0qzefp] {
    font-family: var(--font-display); font-weight: 600; font-size: 12px; letter-spacing: .04em; text-transform: uppercase;
    border: 1px solid var(--navy); background: var(--navy); color: var(--white, #fff); border-radius: 8px;
    padding: 7px 13px; cursor: pointer;
}
@media (max-width: 640px) { .paip-rf-kv[b-1pay0qzefp] { grid-template-columns: 1fr; } }
/* /components/modules/payer/settings/CareProgramsPanel.razor.rz.scp.css */
/* Settings › Care Programs (#975). Every class here is this panel's own: none is styled in another component's scoped
   CSS, which would not reach this markup (the #470 lesson). */

/* The Change cell: Edit and Retire / Reactivate side by side. */
.paip-care-program-change[b-3g874853w2] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    white-space: nowrap;
}

.paip-care-program-change summary[b-3g874853w2] {
    cursor: pointer;
    font-weight: 600;
    color: var(--teal);
}

/* A program's edit form spans the table under its row, hidden until that row's Edit is open. A browser without :has()
   drops the rule and shows every form, never none. */
tr:not(:has(details[data-care-program-edit-toggle][open])) + .paip-care-program-edit-row[b-3g874853w2] {
    display: none;
}

.paip-care-program-edit-row > td[b-3g874853w2] {
    background: var(--surface-2);
    padding: var(--space-3) var(--space-4);
}

/* The four fields side by side at desktop width (about 330 px each at 1440 px); they wrap as the pane narrows. */
.paip-care-program-edit-fields[b-3g874853w2] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
    column-gap: var(--space-4);
}

.paip-care-program-edit-fields textarea[b-3g874853w2] {
    resize: vertical;
}

/* The category list opens at the select's width; in the full-width Add form that was the card's (about 1,340 px). */
.paip-form-field select[b-3g874853w2] {
    max-width: 24rem;
}
/* /components/modules/payer/settings/DataExportDatasetPicker.razor.rz.scp.css */
/* Self-contained (CSS isolation): the checklist rules mirror DataExports.razor.css, whose scoped
   rules do not reach a child component. */
.paip-team-options[b-4mgtvebmr3] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: var(--space-3);
    padding: var(--space-2) var(--space-3);
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
}

.paip-team-option[b-4mgtvebmr3] {
    display: flex;
    align-items: baseline;
    gap: 8px;
    font-size: 13px;
    color: var(--text-secondary);
    cursor: pointer;
}

.paip-team-option input[type="checkbox"][b-4mgtvebmr3] {
    margin: 0;
    position: relative;
    top: 1px;
}

.paip-team-option strong[b-4mgtvebmr3] {
    color: var(--text-primary);
    font-weight: 600;
}

.paip-team-option code[b-4mgtvebmr3] {
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--text-primary);
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
    padding: 0 4px;
}

/* "Select all" heads the checklist, set off from the datasets by a hairline. */
.paip-data-export-all[b-4mgtvebmr3] {
    padding-bottom: 6px;
    border-bottom: 1px solid var(--border);
}
/* /components/modules/payer/settings/DataExports.razor.rz.scp.css */
/* Self-contained (CSS isolation): the API clients and Teams pages define these classes in their own
   scoped files, which never reach this page even though the names match -- so the settings column,
   the banner, the panel button and the form chrome are restated here, as ApiClients.razor.css
   restates them from Teams.razor.css. The exports list (DataExportsTable) carries its own. */
.paip-settings-grid[b-dku2564di8] {
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
    max-width: none;
}

/* Scope banner above the panels (mock .scopebanner), as on the API clients page. */
.paip-rc-banner[b-dku2564di8] {
    background: var(--teal-soft);
    border: 1px solid rgba(0, 160, 154, 0.3);
    color: var(--teal-dim);
    border-radius: 9px;
    padding: 10px 14px;
    font-size: 12.5px;
    font-weight: 600;
}

.paip-rc-panel-btn[b-dku2564di8] {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 12px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border: 1px solid var(--navy);
    background: var(--white);
    color: var(--navy);
    border-radius: 8px;
    padding: 7px 13px;
    cursor: pointer;
}

.paip-rc-panel-btn:hover[b-dku2564di8] {
    background: var(--surface-2);
}

/* The request form, as ApiClientForm.razor.css. The retention forms are DataRetentionPanel's, styled in its own file. */
.paip-team-form[b-dku2564di8] {
    padding: var(--space-4);
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: var(--r-md);
    max-width: 720px;
}

.paip-settings-field[b-dku2564di8] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-bottom: var(--space-3);
}

.paip-settings-field-label[b-dku2564di8] {
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--navy);
}

.paip-settings-field-hint[b-dku2564di8] {
    font-size: 12px;
    color: var(--text-muted);
    margin-bottom: 4px;
}

/* Dataset checklist: one option per line. */
.paip-team-options[b-dku2564di8] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: var(--space-3);
    padding: var(--space-2) var(--space-3);
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
}

.paip-team-option[b-dku2564di8] {
    display: flex;
    align-items: baseline;
    gap: 8px;
    font-size: 13px;
    color: var(--text-secondary);
    cursor: pointer;
    margin-bottom: var(--space-3);
}

.paip-team-options .paip-team-option[b-dku2564di8] {
    margin-bottom: 0;
}

.paip-team-option input[type="checkbox"][b-dku2564di8],
.paip-team-option input[type="radio"][b-dku2564di8] {
    margin: 0;
    position: relative;
    top: 1px;
}

.paip-team-option strong[b-dku2564di8] {
    color: var(--text-primary);
    font-weight: 600;
}

.paip-team-option code[b-dku2564di8] {
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--text-primary);
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
    padding: 0 4px;
}
/* /components/modules/payer/settings/DataExportsTable.razor.rz.scp.css */
/* Self-contained (CSS isolation): the scroll wrapper, empty row and faded finished rows mirror
   ApiClientsTable.razor.css, whose scoped rules never reach this component; the row buttons mirror
   its "View" scopes button. */
/* The wrapper scrolls through the shared paip-wide-scroll class (app.css, PAIP #1045). */

.paip-team-empty[b-b1k82208gw] {
    color: var(--text-muted);
    font-style: italic;
}

/* Failed and expired exports: still listed, visibly not usable. */
.paip-api-client-revoked td[b-b1k82208gw] {
    opacity: 0.6;
}

/* "Files (n)" and ".zip" side by side, as compact as the row allows. */
.paip-data-export-actions[b-b1k82208gw] {
    display: flex;
    gap: 6px;
    white-space: nowrap;
}

.paip-data-export-btn[b-b1k82208gw] {
    display: inline-block;
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
    padding: 3px 12px;
    font-size: 12px;
    font-weight: 600;
    color: var(--navy);
    cursor: pointer;
    white-space: nowrap;
    text-decoration: none;
    transition: all 0.15s;
}

.paip-data-export-btn:hover[b-b1k82208gw] {
    background: var(--navy);
    color: var(--white);
}

/* The modal body: the zip action first, then one line per file. Authored here, so it carries this
   component's scope even inside <Modal>. */
.paip-data-export-modal-head[b-b1k82208gw] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    margin-bottom: var(--space-3);
    font-size: 12px;
}

.paip-data-export-files[b-b1k82208gw] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.paip-data-export-files li[b-b1k82208gw] {
    display: flex;
    align-items: baseline;
    gap: 0.75rem;
    white-space: nowrap;
}

.paip-data-export-files a[b-b1k82208gw] {
    font-family: var(--font-mono);
    font-size: 12px;
    color: var(--navy);
}

.paip-data-export-files .paip-muted[b-b1k82208gw] {
    font-size: 11.5px;
}
/* /components/modules/payer/settings/DataRetentionPanel.razor.rz.scp.css */
/* Self-contained (CSS isolation): DataExports.razor.css styles these class names for its own markup only, and its rules
   never reach a child component's elements -- so the form chrome, the field and the panel button are restated here. */
.paip-team-form[b-m9ven6bndp] {
    padding: var(--space-4);
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: var(--r-md);
    max-width: 720px;
}

.paip-team-form + .paip-team-form[b-m9ven6bndp] {
    margin-top: var(--space-3);
}

.paip-settings-field[b-m9ven6bndp] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-bottom: var(--space-3);
}

.paip-settings-field-label[b-m9ven6bndp] {
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--navy);
}

.paip-settings-field-hint[b-m9ven6bndp] {
    font-size: 12px;
    color: var(--text-muted);
    margin-bottom: 4px;
}

/* The retention fields: the text-input look, narrow, since each holds at most three digits. */
.paip-team-form input[type="number"][b-m9ven6bndp] {
    font-family: var(--font-body);
    font-size: 13px;
    color: var(--text-primary);
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
    padding: 6px 9px;
    width: 96px;
    box-sizing: border-box;
}

.paip-team-form input[type="number"]:focus[b-m9ven6bndp] {
    outline: none;
    border-color: var(--teal);
}

.paip-rc-panel-btn[b-m9ven6bndp] {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 12px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border: 1px solid var(--navy);
    background: var(--white);
    color: var(--navy);
    border-radius: 8px;
    padding: 7px 13px;
    cursor: pointer;
}

.paip-rc-panel-btn:hover[b-m9ven6bndp] {
    background: var(--surface-2);
}
/* /components/modules/payer/workflow/queue/QueueCampaignSource.razor.rz.scp.css */
/* PAIP #1048. Self-contained (CSS isolation): QueueItemSource's .hp-queue-* rules do not reach here. */
.hp-campaign-source[b-2o5hptug0h] {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    margin-bottom: var(--space-4);
}

.hp-campaign-facts[b-2o5hptug0h] {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 6px 18px;
    margin: 0;
    padding: var(--space-4);
    font-size: 13px;
}

.hp-campaign-facts dt[b-2o5hptug0h] {
    font-family: var(--font-display);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--ink-3, #6b7280);
}

.hp-campaign-facts dd[b-2o5hptug0h] {
    margin: 0;
}

.hp-campaign-note[b-2o5hptug0h] {
    padding: 0 var(--space-4);
    margin: 0 0 var(--space-3);
    font-size: 12.5px;
    line-height: 1.6;
}

.hp-campaign-download[b-2o5hptug0h] {
    display: inline-block;
    margin: 0 var(--space-4) var(--space-3);
    font-size: 12px;
}
/* /components/modules/payer/workflow/queue/QueueCarePlanApprovals.razor.rz.scp.css */
/* #1119: Queue Items' care plans to approve. Self-contained (CSS isolation). */
.paip-plan-approvals[b-hvmv213t7k] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    padding: var(--space-4);
    font-size: 12.5px;
}

.paip-plan-approvals-list[b-hvmv213t7k] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.paip-plan-approvals-row[b-hvmv213t7k] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 12px;
    align-items: baseline;
    padding: 6px 0;
    border-bottom: 1px solid var(--border);
}

.paip-plan-approvals-row:last-child[b-hvmv213t7k] {
    border-bottom: none;
}
/* /components/modules/payer/workflow/queue/QueueItemCarePlan.razor.rz.scp.css */
/* #1119: the item page's Care plans panel. Self-contained (CSS isolation): the Case panel's classes are scoped to it. */
.paip-case-plans[b-2hgi8bnm2l] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    padding: var(--space-4);
    font-size: 12.5px;
}

.paip-case-plans-start[b-2hgi8bnm2l] {
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 6px 12px;
    align-items: baseline;
    line-height: 1.5;
}

.paip-case-plans-list[b-2hgi8bnm2l] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.paip-case-plans-row[b-2hgi8bnm2l] {
    padding: 6px 0;
    border-bottom: 1px solid var(--border);
}

.paip-case-plans-row:last-child[b-2hgi8bnm2l] {
    border-bottom: none;
}

.paip-case-plans-row.this[b-2hgi8bnm2l] {
    background: var(--teal-soft, #e6f4f2);
    margin: 0 -8px;
    padding-left: 8px;
    padding-right: 8px;
    border-radius: 4px;
}

.paip-case-plans-head[b-2hgi8bnm2l] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: baseline;
}
/* /components/modules/payer/workflow/queue/QueueItemCase.razor.rz.scp.css */
/* #1041: the item page's Case panel. Self-contained (CSS isolation): the work panel's and Related's classes are scoped to them. */
.paip-case[b-1pc2pg7jal] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    padding: var(--space-4);
    font-size: 12.5px;
}

.paip-case-line[b-1pc2pg7jal] {
    margin: 0;
    line-height: 1.5;
}

/* One row per task: still being worked first, the lead first among them. */
.paip-case-tasks[b-1pc2pg7jal] {
    list-style: none;
    margin: var(--space-2) 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.paip-case-task[b-1pc2pg7jal] {
    padding: 8px 0;
    border-bottom: 1px solid var(--border);
}

.paip-case-task:last-child[b-1pc2pg7jal] {
    border-bottom: none;
}

.paip-case-task.done[b-1pc2pg7jal] {
    opacity: 0.75;
}

.paip-case-task.this[b-1pc2pg7jal] {
    background: var(--teal-soft, #e6f4f2);
    margin: 0 -8px;
    padding-left: 8px;
    padding-right: 8px;
    border-radius: 4px;
}

.paip-case-task-head[b-1pc2pg7jal] {
    display: flex;
    gap: 8px;
    align-items: baseline;
}

.paip-case-task.worked .paip-case-task-title[b-1pc2pg7jal] {
    font-weight: 600;
}

.paip-case-task-facts[b-1pc2pg7jal] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 12px;
    align-items: center;
    margin-top: 2px;
}

.paip-case-task-row[b-1pc2pg7jal] {
    margin-top: 2px;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.paip-case-task-label[b-1pc2pg7jal] {
    font-family: var(--font-display);
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--ink-3, #6b7280);
    margin-right: 6px;
}
/* /components/modules/payer/workflow/queue/QueueItemPage.razor.rz.scp.css */
/* Self-contained (CSS isolation), like QueueItemPanel.razor.css. The header's links (#688): where the
   item's finding is listed, each opening that page with the finding pinned. */
.hp-queue-links[b-coukoiocbc] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 6px;
}

.hp-queue-link[b-coukoiocbc] {
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 600;
    border: 1px solid var(--navy);
    border-radius: 999px;
    padding: 4px 12px;
    color: var(--navy);
    background: var(--white);
    text-decoration: none;
}

.hp-queue-link:hover[b-coukoiocbc] {
    background: var(--surface-2);
}

.hp-queue-link.quiet[b-coukoiocbc] {
    border-color: var(--border);
    font-weight: 500;
}

/* #946 (U-53): a header link drawn by PaipLink (the Causal chain link, hidden from a role without the trace) is
   PaipLink's markup, which this file's scope does not reach; ::deep from the nav does. */
.hp-queue-links[b-coukoiocbc]  a.hp-queue-link {
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 600;
    border: 1px solid var(--navy);
    border-radius: 999px;
    padding: 4px 12px;
    color: var(--navy);
    background: var(--white);
    text-decoration: none;
}

.hp-queue-links[b-coukoiocbc]  a.hp-queue-link:hover {
    background: var(--surface-2);
}
/* /components/modules/payer/workflow/queue/QueueItemPanel.razor.rz.scp.css */
/* Self-contained (CSS isolation): the settings pages' form classes are scoped to their own
   components and never reach this one, so the queue's form chrome is its own. */
.hp-queue-item[b-q2vmsgkryp] {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.hp-queue-error[b-q2vmsgkryp] {
    background: var(--red-soft, #fdecec);
    border: 1px solid rgba(200, 40, 40, 0.35);
    color: var(--red, #b42318);
    border-radius: 9px;
    padding: 10px 14px;
    font-size: 12.5px;
    font-weight: 600;
}

.hp-queue-facts[b-q2vmsgkryp] {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 6px 18px;
    margin: 0;
    padding: var(--space-4);
    font-size: 13px;
}

.hp-queue-facts dt[b-q2vmsgkryp] {
    font-family: var(--font-display);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--ink-3, #6b7280);
}

.hp-queue-facts dd[b-q2vmsgkryp] {
    margin: 0;
}

.hp-queue-form[b-q2vmsgkryp] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    padding: var(--space-4);
    max-width: 720px;
}

.hp-queue-inline[b-q2vmsgkryp] {
    flex-direction: row;
    align-items: flex-end;
    flex-wrap: wrap;
}

.hp-queue-field[b-q2vmsgkryp] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.hp-queue-label[b-q2vmsgkryp] {
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 700;
}

.hp-queue-field input[b-q2vmsgkryp],
.hp-queue-field select[b-q2vmsgkryp],
.hp-queue-field textarea[b-q2vmsgkryp] {
    font: inherit;
    font-size: 13px;
    border: 1px solid var(--border);
    border-radius: 7px;
    padding: 6px 9px;
    background: var(--white);
    min-width: 260px;
}

.hp-queue-hint[b-q2vmsgkryp] {
    font-size: 12px;
}

/* #1046: the rule's own action and its hint, under the action type. */
.hp-queue-rule-action[b-q2vmsgkryp] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-size: 12.5px;
}

.hp-queue-btn[b-q2vmsgkryp] {
    align-self: flex-start;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 12px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border: 1px solid var(--navy);
    background: var(--white);
    color: var(--navy);
    border-radius: 8px;
    padding: 7px 13px;
    cursor: pointer;
}

/* In a one-line form the button sits on the same baseline as the field beside it: .hp-queue-btn's own
   flex-start (right for the stacked forms) put it at the top of the row while the select sat at the bottom. */
.hp-queue-inline .hp-queue-btn[b-q2vmsgkryp] {
    align-self: auto;
}

.hp-queue-btn:hover[b-q2vmsgkryp] {
    background: var(--surface-2);
}

.hp-queue-empty[b-q2vmsgkryp] {
    padding: var(--space-4);
    font-size: 12.5px;
    margin: 0;
}

/* #781: a close form shows the fields its chosen disposition takes. Before one is chosen, and in a browser
   without :has(), every field shows; the command ignores whatever the disposition does not take and refuses
   what it is missing, so this is presentation only. */
.hp-queue-close:has(option[value="booked_recovery"]:checked) .hp-close-note[b-q2vmsgkryp],
.hp-queue-close:has(option[value="cost_avoided"]:checked) .hp-close-gl[b-q2vmsgkryp],
.hp-queue-close:has(option[value="root_cause_fixed"]:checked) .hp-close-dollars[b-q2vmsgkryp],
.hp-queue-close:has(option[value="root_cause_fixed"]:checked) .hp-close-gl[b-q2vmsgkryp],
.hp-queue-close:has(option[value="compliance_risk_mitigated"]:checked) .hp-close-dollars[b-q2vmsgkryp],
.hp-queue-close:has(option[value="compliance_risk_mitigated"]:checked) .hp-close-gl[b-q2vmsgkryp],
.hp-queue-close:has(option[value="validated_not_recoverable"]:checked) .hp-close-dollars[b-q2vmsgkryp],
.hp-queue-close:has(option[value="validated_not_recoverable"]:checked) .hp-close-gl[b-q2vmsgkryp],
.hp-queue-close:has(option[value="not_valid"]:checked) .hp-close-dollars[b-q2vmsgkryp],
.hp-queue-close:has(option[value="not_valid"]:checked) .hp-close-gl[b-q2vmsgkryp] {
    display: none;
}

/* #946: the item's trail, found to booked. A step not reached yet is muted and says "not yet". */
.hp-queue-trail[b-q2vmsgkryp] {
    list-style: none;
    margin: 0;
    padding: var(--space-4);
    display: grid;
    gap: 6px;
    font-size: 12.5px;
}

.hp-queue-trail-step[b-q2vmsgkryp] {
    display: grid;
    grid-template-columns: 84px 1fr;
    gap: 12px;
    align-items: baseline;
    color: var(--text-muted, #6b7280);
}

.hp-queue-trail-step.reached[b-q2vmsgkryp] {
    color: var(--text, inherit);
}

.hp-queue-trail-label[b-q2vmsgkryp] {
    font-family: var(--font-display);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.hp-queue-trail-step.reached .hp-queue-trail-label[b-q2vmsgkryp]::before {
    content: "✓ ";
    color: var(--green, #1a7f37);
}

/* #946 (U-35): the outcome card's link to the Value Tracker. */
.hp-queue-outcome-link[b-q2vmsgkryp] {
    margin: 0;
    padding: 0 var(--space-4) var(--space-4);
    font-size: 12.5px;
}

/* #956: the Validate step's three results, side by side; the latest result and the holder's flags in the Item card. */
.hp-queue-validate-buttons[b-q2vmsgkryp] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2, 8px);
}

.hp-queue-validate-buttons .hp-queue-btn[b-q2vmsgkryp] {
    align-self: auto;
}

.hp-queue-validate-buttons .hp-queue-btn[disabled][b-q2vmsgkryp] {
    opacity: 0.55;
    cursor: progress;
}

.hp-queue-validation-reason[b-q2vmsgkryp] {
    font-size: 12.5px;
    margin-top: 2px;
}

.hp-queue-flag[b-q2vmsgkryp] {
    margin-top: 4px;
    font-size: 12px;
}
/* /components/modules/payer/workflow/queue/QueueItemRelated.razor.rz.scp.css */
/* #956: the item page's Related panel. Self-contained (CSS isolation): the work panel's classes are scoped to it. */
.hp-related[b-tqtkuwleab] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    padding: var(--space-4);
    font-size: 12.5px;
}

.hp-related-label[b-tqtkuwleab] {
    font-family: var(--font-display);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--ink-3, #6b7280);
    margin-bottom: 4px;
}

.hp-related-text[b-tqtkuwleab] {
    margin: 0;
    line-height: 1.5;
}

/* #1039: one row per item, the most pressing first: link and title, then priority, dollars, owner and status. */
.hp-related-items[b-tqtkuwleab] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.hp-related-item[b-tqtkuwleab] {
    padding: 6px 0;
    border-bottom: 1px solid var(--border);
}

.hp-related-item:last-child[b-tqtkuwleab] {
    border-bottom: none;
}

.hp-related-item.done[b-tqtkuwleab] {
    opacity: 0.75;
}

.hp-related-item-head[b-tqtkuwleab] {
    display: flex;
    gap: 8px;
    align-items: baseline;
}

.hp-related-item.worked .hp-related-item-title[b-tqtkuwleab] {
    font-weight: 600;
}

.hp-related-item-facts[b-tqtkuwleab] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 12px;
    align-items: center;
    margin-top: 2px;
}

/* #1039: the line above the panel when another item about the same subject ranks above this one. */
.hp-related-outranks[b-tqtkuwleab] {
    margin: 0 0 var(--space-3);
    background: var(--amber-soft, #fdf4e3);
    border: 1px solid rgba(180, 120, 20, 0.35);
    border-radius: 9px;
    padding: 10px 14px;
    font-size: 13px;
    line-height: 1.45;
}
/* /components/modules/payer/workflow/queue/QueueItems.razor.rz.scp.css */
/* Self-contained (CSS isolation), like QueueItemPanel.razor.css. */
.hp-queue-filters[b-rxlejgwfgn] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: var(--space-3) 0 var(--space-4);
}

.hp-queue-filter[b-rxlejgwfgn] {
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 600;
    border: 1px solid var(--border);
    border-radius: 999px;
    padding: 5px 12px;
    color: var(--navy);
    background: var(--white);
    text-decoration: none;
}

.hp-queue-filter.active[b-rxlejgwfgn] {
    background: var(--navy);
    border-color: var(--navy);
    color: var(--white);
}

.hp-queue-filter.active .paip-muted[b-rxlejgwfgn] {
    color: inherit;
    opacity: 0.8;
}

.hp-queue-pickers[b-rxlejgwfgn] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 10px;
    margin: 0 0 var(--space-4);
    font-size: 12px;
}

.hp-queue-pickers label[b-rxlejgwfgn] {
    display: flex;
    flex-direction: column;
    gap: 3px;
    font-family: var(--font-display);
    font-weight: 600;
    color: var(--navy);
}

.hp-queue-pickers select[b-rxlejgwfgn] {
    font-size: 12.5px;
    padding: 5px 8px;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--white);
    max-width: 280px;
}

.hp-queue-search[b-rxlejgwfgn] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 10px;
    margin: 0 0 var(--space-3);
    font-size: 12px;
}

.hp-queue-search label[b-rxlejgwfgn] {
    display: flex;
    flex-direction: column;
    gap: 3px;
    flex: 1 1 320px;
    max-width: 520px;
    font-family: var(--font-display);
    font-weight: 600;
    color: var(--navy);
}

.hp-queue-search input[type=search][b-rxlejgwfgn] {
    font-size: 12.5px;
    padding: 6px 8px;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--white);
}

.hp-queue-search-clear[b-rxlejgwfgn] {
    font-size: 12px;
    align-self: center;
}

/* #779: the domain chip, under the filters. */
.hp-queue-chips[b-rxlejgwfgn] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0 0 var(--space-3);
}

/* #1003: the member chip -- the record link and its remove link, inside one chip. */
.hp-queue-member a[b-rxlejgwfgn] {
    color: inherit;
    text-decoration: none;
}

.hp-queue-member a + a[b-rxlejgwfgn] {
    margin-left: 8px;
}
/* /components/modules/payer/workflow/queue/QueueItemSource.razor.rz.scp.css */
/* Self-contained (CSS isolation), as the work panel's is: its .hp-queue-facts rules do not reach here. */
.hp-queue-source[b-tij52jadtq] {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    margin-bottom: var(--space-4);
}

.hp-queue-gone[b-tij52jadtq] {
    background: var(--amber-soft, #fdf4e3);
    border: 1px solid rgba(180, 120, 20, 0.35);
    color: var(--ink-2, #4b5563);
    border-radius: 9px;
    padding: 10px 14px;
    font-size: 12.5px;
}

.hp-queue-facts[b-tij52jadtq] {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 6px 18px;
    margin: 0;
    padding: var(--space-4);
    font-size: 13px;
}

.hp-queue-facts dt[b-tij52jadtq],
.hp-queue-label[b-tij52jadtq] {
    font-family: var(--font-display);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--ink-3, #6b7280);
}

.hp-queue-facts dd[b-tij52jadtq] {
    margin: 0;
}

.hp-queue-prose[b-tij52jadtq] {
    padding: 0 var(--space-4) var(--space-4);
    font-size: 13px;
    line-height: 1.6;
}

.hp-queue-prose p[b-tij52jadtq] {
    margin: 2px 0 12px;
}

/* The step the person working the item takes: set apart, so it is read before an action is recorded. */
.hp-queue-action[b-tij52jadtq] {
    border-left: 3px solid var(--teal, #0f766e);
    padding-left: 10px;
}

.hp-queue-cites[b-tij52jadtq] {
    padding: var(--space-4);
    min-width: 0;
}

.hp-queue-empty[b-tij52jadtq] {
    padding: var(--space-4);
    font-size: 12.5px;
    margin: 0;
}
/* /components/modules/payer/workflow/queue/QueueItemsResults.razor.rz.scp.css */
/* Self-contained (CSS isolation): the results panel the search form re-renders in place (#753). */
.hp-queue-legend[b-l3uxc1s95z] {
    padding: var(--space-3) var(--space-4) 0;
}

.hp-queue-empty[b-l3uxc1s95z] {
    padding: var(--space-4);
    font-size: 12.5px;
    margin: 0;
}

.hp-queue-notice[b-l3uxc1s95z] {
    padding: var(--space-3) var(--space-4) 0;
    font-size: 12.5px;
    margin: 0;
}

.hp-queue-pager[b-l3uxc1s95z] {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: var(--space-3) var(--space-4);
    border-top: 1px solid var(--border);
    font-size: 12.5px;
}

.hp-queue-pager a[rel=next][b-l3uxc1s95z] {
    margin-left: auto;
}

/* #779: the worklist grid. */
.hp-queue-bulkbar[b-l3uxc1s95z] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    padding: var(--space-3) var(--space-4);
    border-bottom: 1px solid var(--border);
    font-size: 12.5px;
}

.hp-queue-selected[b-l3uxc1s95z] {
    font-family: var(--font-display);
    font-weight: 600;
    color: var(--navy);
    margin-right: 4px;
}

.hp-queue-menu[b-l3uxc1s95z] {
    position: relative;
}

.hp-queue-menu > summary[b-l3uxc1s95z] {
    list-style: none;
    cursor: pointer;
}

.hp-queue-menu > summary[b-l3uxc1s95z]::-webkit-details-marker {
    display: none;
}

.hp-queue-menu-body[b-l3uxc1s95z] {
    position: absolute;
    z-index: 5;
    top: calc(100% + 4px);
    left: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 240px;
    padding: var(--space-3);
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 8px;
    box-shadow: 0 6px 18px rgba(20, 35, 58, 0.12);
}

.hp-queue-menu-body label[b-l3uxc1s95z] {
    display: flex;
    flex-direction: column;
    gap: 3px;
    font-family: var(--font-display);
    font-weight: 600;
    color: var(--navy);
}

.hp-queue-menu-body select[b-l3uxc1s95z],
.hp-queue-menu-body input[b-l3uxc1s95z] {
    font-size: 12.5px;
    padding: 5px 8px;
    border: 1px solid var(--border);
    border-radius: 6px;
}

.hp-queue-linkbutton[b-l3uxc1s95z] {
    all: unset;
    cursor: pointer;
    color: var(--teal, #0E6E6A);
    text-decoration: underline;
    font-size: 12.5px;
}

.hp-queue-linkbutton:focus-visible[b-l3uxc1s95z],
.hp-queue-sort:focus-visible[b-l3uxc1s95z] {
    outline: 2px solid var(--navy);
    outline-offset: 2px;
}

/* The grid's wrapper scrolls through the shared paip-wide-scroll class (app.css, PAIP #1045), which
   keeps its sideways scrollbar in view. */

.hp-queue-sort[b-l3uxc1s95z] {
    color: inherit;
    text-decoration: none;
    white-space: nowrap;
}

.hp-queue-sort:hover[b-l3uxc1s95z] {
    text-decoration: underline;
}

.hp-queue-check[b-l3uxc1s95z] {
    width: 28px;
}

.hp-queue-take[b-l3uxc1s95z] {
    padding: 3px 10px;
    font-size: 12px;
}

.hp-queue-late[b-l3uxc1s95z] {
    color: var(--red, #B42318);
    font-weight: 600;
}

.hp-queue-shown[b-l3uxc1s95z],
.hp-queue-footnote[b-l3uxc1s95z] {
    padding: var(--space-2, 8px) var(--space-4) 0;
    font-size: 12px;
    margin: 0;
}

.hp-queue-footnote[b-l3uxc1s95z] {
    padding-bottom: var(--space-3);
}

/* CPO ruling 2026-10-13: a due date that was moved is marked; the hover says from, to, who, when, why. */
.hp-queue-moved[b-l3uxc1s95z] {
    display: inline-block;
    margin-top: 3px;
    padding: 1px 7px;
    border: 1px dashed var(--amber, #B54708);
    border-radius: 999px;
    color: var(--amber, #B54708);
    font-size: 11px;
    font-weight: 600;
    cursor: help;
}

/* #1041: the member case a row's item is a task of. */
.paip-case-tag[b-l3uxc1s95z] {
    font-size: 11px;
    margin-top: 2px;
}
/* /components/modules/provider/pillars/PillarsHome.razor.rz.scp.css */
.paip-pillars-hero[b-bc7vtud5zy] {
    text-align: center;
    margin-bottom: var(--space-5);
}

.paip-pillars-tag[b-bc7vtud5zy] {
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--teal-dim);
    margin-bottom: 6px;
}

.paip-pillars-title[b-bc7vtud5zy] {
    font-family: var(--font-display);
    font-size: 30px;
    font-weight: 700;
    color: var(--navy);
    margin-bottom: 8px;
    line-height: 1.15;
}

.paip-pillars-description[b-bc7vtud5zy] {
    font-size: 14px;
    color: var(--text-secondary);
    max-width: 720px;
    margin: 0 auto;
    line-height: 1.55;
}

/* The progression strip's own rules are global (app.css); only the hover the mockup shows and
   the link reset are page-local, because nothing else uses the strip as links. */
.paip-progression-step[b-bc7vtud5zy] {
    display: block;
    text-decoration: none;
    color: inherit;
}

.paip-progression-step:hover[b-bc7vtud5zy] {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
    border-color: var(--teal);
}

.paip-pillars-grid[b-bc7vtud5zy] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-5);
    align-items: start;
}

.paip-pillar-card[b-bc7vtud5zy] {
    position: relative;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--r-lg);
    padding: var(--space-5);
    box-shadow: var(--shadow-sm);
    transition: box-shadow 0.2s ease;
    display: flex;
    flex-direction: column;
}

.paip-pillar-card:hover[b-bc7vtud5zy] {
    box-shadow: var(--shadow-md);
}

/* An open card spans the grid: its causal chain is a six-node row, which is unreadable in half
   the page width. Collapsed cards fall back to two-up. */
.paip-pillar-card:not(.collapsed)[b-bc7vtud5zy] {
    grid-column: 1 / -1;
}

.paip-pillar-header[b-bc7vtud5zy] {
    display: grid;
    grid-template-columns: auto auto 1fr;
    gap: 14px;
    align-items: start;
    margin-bottom: var(--space-4);
    padding-bottom: var(--space-3);
    border-bottom: 1px solid var(--border);
    /* A <button> spanning the card's header row -- these undo the UA button styling. */
    width: 100%;
    background: none;
    border-top: 0;
    border-left: 0;
    border-right: 0;
    padding-top: 0;
    padding-left: 0;
    padding-right: 0;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: margin 0.2s ease, padding 0.2s ease, border-color 0.2s ease;
}

/* The divider separates the header from the body. Collapsed there is no body, so it would be a
   rule drawn across the bottom of the card with nothing under it. */
.paip-pillar-card.collapsed .paip-pillar-header[b-bc7vtud5zy] {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom-color: transparent;
}

.paip-pillar-number[b-bc7vtud5zy] {
    font-family: var(--font-display);
    font-size: 36px;
    font-weight: 700;
    color: var(--teal);
    line-height: 1;
    letter-spacing: -0.02em;
}

.paip-pillar-icon[b-bc7vtud5zy] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: var(--r-md);
    background: var(--teal-soft);
    color: var(--teal-dim);
}

.paip-pillar-title-block[b-bc7vtud5zy] {
    display: block;
    /* Room for the chevron, which is absolutely placed over the card's top-right corner. */
    padding-right: 32px;
}

.paip-pillar-tag[b-bc7vtud5zy] {
    display: block;
    font-family: var(--font-display);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
}

.paip-pillar-title[b-bc7vtud5zy] {
    display: block;
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 700;
    color: var(--navy);
    line-height: 1.25;
    margin: 2px 0 6px;
}

.paip-pillar-description[b-bc7vtud5zy] {
    display: block;
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.5;
}

.paip-pillar-chevron[b-bc7vtud5zy] {
    position: absolute;
    top: 16px;
    right: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--surface-2);
    color: var(--teal-dim);
    font-size: 12px;
    transition: transform 0.3s ease;
    z-index: 5;
}

/* Collapsed is the default, so the glyph rests pointing DOWN ("opens downward") and rotates to
   point up while the card is open. */
.paip-pillar-card:not(.collapsed) .paip-pillar-chevron[b-bc7vtud5zy] {
    transform: rotate(180deg);
}

/* The open ceiling has to clear the tallest card's body -- 913px for Revenue, measured in the
   browser at 1400px wide, and the chain scrolls sideways rather than growing taller at narrow
   widths. Kept close to that: the transition animates max-height, so every pixel of headroom
   above the real height is dead time at the start of the collapse. */
.paip-pillar-collapse[b-bc7vtud5zy] {
    overflow: hidden;
    max-height: 1600px;
    opacity: 1;
    visibility: visible;
    transition: max-height 0.32s ease, opacity 0.2s ease, visibility 0s;
}

/* visibility, not just max-height: a zero-height body is still in the accessibility tree, and with
   every card closed at rest that is four full causal chains read out on a page that looks like four
   headings. Hiding it on the way OUT is delayed by the length of the collapse so the transition is
   still seen; on the way IN it flips immediately (0s, no delay) so the open body is never mute. */
.paip-pillar-card.collapsed .paip-pillar-collapse[b-bc7vtud5zy] {
    max-height: 0;
    opacity: 0;
    visibility: hidden;
    transition: max-height 0.32s ease, opacity 0.2s ease, visibility 0s linear 0.32s;
}

/* ── What feeds the pillar ────────────────────────────────────────────────────────────────── */

.paip-pillar-sources[b-bc7vtud5zy] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin-bottom: var(--space-4);
}

.paip-pillar-sources-label[b-bc7vtud5zy] {
    font-family: var(--font-display);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--text-muted);
    margin-right: 4px;
}

/* Color, border and background come from the markup: which system a chip stands for is data. */
.paip-pillar-source-badge[b-bc7vtud5zy] {
    font-family: var(--font-display);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    padding: 3px 8px;
    border: 1px solid;
    border-radius: 10px;
}

/* ── What the pillar contains ─────────────────────────────────────────────────────────────── */

.paip-pillar-subs-section[b-bc7vtud5zy] {
    background: var(--surface-2);
    border-radius: var(--r-md);
    padding: 12px 14px;
    margin-bottom: var(--space-3);
}

.paip-pillar-subs-label[b-bc7vtud5zy] {
    font-family: var(--font-display);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
    margin-bottom: 8px;
}

.paip-pillar-subs[b-bc7vtud5zy] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.paip-pillar-sub-link[b-bc7vtud5zy] {
    display: block;
    text-decoration: none;
    color: inherit;
}

.paip-pillar-sub[b-bc7vtud5zy] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--space-3);
    padding: 6px 8px;
    margin: 0 -8px;
    border-radius: var(--r-sm);
    border-bottom: 1px solid var(--border);
    transition: background 0.12s, border-color 0.12s;
}

.paip-pillar-subs > :last-child .paip-pillar-sub[b-bc7vtud5zy] {
    border-bottom: none;
}

.paip-pillar-sub-link:hover .paip-pillar-sub[b-bc7vtud5zy] {
    background: var(--white);
    border-color: var(--teal-dim);
}

.paip-pillar-sub-disabled[b-bc7vtud5zy] {
    opacity: 0.7;
}

.paip-pillar-sub-name[b-bc7vtud5zy] {
    font-size: 13px;
    color: var(--text-primary);
    font-weight: 500;
}

.paip-pillar-cta[b-bc7vtud5zy] {
    display: block;
    text-align: center;
    background: var(--navy);
    color: var(--white);
    text-decoration: none;
    padding: 10px 16px;
    border-radius: var(--r-md);
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 12px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    transition: background 0.2s ease;
}

.paip-pillar-cta:hover[b-bc7vtud5zy] {
    background: var(--navy-mid);
}

.paip-pillar-cta-disabled[b-bc7vtud5zy] {
    background: var(--surface-3);
    color: var(--text-muted);
    pointer-events: none;
}

/* ── The chain the pillar argues ──────────────────────────────────────────────────────────────
   ::deep: the chain is Chain/ChainFlow/ChainSubChain markup carrying THOSE components' scope
   attributes. The flow row is wider than a card at some widths, so it scrolls inside the card
   rather than stretching it. */
.paip-pillar-chain-section[b-bc7vtud5zy] {
    margin-top: var(--space-5);
}

.paip-pillar-chain-section[b-bc7vtud5zy]  .paip-chain {
    max-width: 100%;
    overflow: hidden;
    margin-bottom: 0;
}

.paip-pillar-chain-section[b-bc7vtud5zy]  .paip-chain-flow,
.paip-pillar-chain-section[b-bc7vtud5zy]  .paip-chain-subchain-flow {
    overflow-x: auto;
}

@media (max-width: 1100px) {
    .paip-pillars-grid[b-bc7vtud5zy] {
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    .paip-pillar-collapse[b-bc7vtud5zy],
    .paip-pillar-chevron[b-bc7vtud5zy] {
        transition: none;
    }
}
/* /components/modules/provider/ProviderHome.razor.rz.scp.css */
/* ── The hub and its spokes ───────────────────────────────────────────────────────────────────
   Placement is pure CSS off one custom property per spoke (--paip-hub-angle, written by the
   markup). The mockup measured the container in JavaScript and set left/top per node; doing it
   with transforms instead means the ring is right in the first painted frame of a static-SSR
   response, and resizing needs no re-layout pass.

   A spoke is two elements on purpose: .paip-hub-spoke does the placing and .paip-hub-system does
   the looks. Transforms do not compose, so if one element did both, the hover scale would have to
   restate the whole rotate/translate chain -- and would silently drift from it. */

.paip-hub-container[b-tb5n6fdysu] {
    --paip-hub-radius: 245px;
    position: relative;
    width: 100%;
    height: 660px;
    max-width: 1100px;
    margin: 0 auto;
}

.paip-hub-systems[b-tb5n6fdysu] {
    position: absolute;
    inset: 0;
}

.paip-hub-spoke[b-tb5n6fdysu] {
    position: absolute;
    left: 50%;
    top: 50%;
    /* Out along the spoke's angle, then back by the same angle so the tile stays upright. */
    transform: translate(-50%, -50%)
               rotate(var(--paip-hub-angle))
               translate(var(--paip-hub-radius))
               rotate(calc(-1 * var(--paip-hub-angle)));
}

.paip-hub-center[b-tb5n6fdysu] {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 190px;
    height: 190px;
    background: var(--white);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 0 32px rgba(0, 160, 154, 0.22), 0 8px 28px rgba(12, 30, 72, 0.18);
    z-index: 100;
    cursor: pointer;
    transition: transform 0.4s ease, box-shadow 0.4s ease;
    border: 3px solid var(--teal);
    padding: 18px;
    animation: paipHubPulse-b-tb5n6fdysu 3.5s ease-in-out infinite;
}

.paip-hub-center:hover[b-tb5n6fdysu] {
    transform: translate(-50%, -50%) scale(1.06);
}

.paip-hub-center img[b-tb5n6fdysu] {
    width: 100%;
    height: auto;
    display: block;
}

/* The text stand-in for a module with no hub artwork, in the OrthoAI logo's serif and two blues. */
.paip-hub-wordmark[b-tb5n6fdysu] {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 30px;
    line-height: 1;
    color: #0D4F80;
    border-bottom: 3px solid #8AA9C4;
    padding-bottom: 6px;
    white-space: nowrap;
}

.paip-hub-wordmark b[b-tb5n6fdysu] {
    font-weight: inherit;
    color: #8AA9C4;
}

@keyframes paipHubPulse-b-tb5n6fdysu {
    0%, 100% {
        box-shadow: 0 0 32px rgba(0, 160, 154, 0.22), 0 8px 28px rgba(12, 30, 72, 0.18);
    }

    50% {
        box-shadow: 0 0 48px rgba(0, 160, 154, 0.40), 0 8px 28px rgba(12, 30, 72, 0.18);
    }
}

/* The line runs from the hub outward, stopping short of the tile -- hence the 95px taken off the
   radius, which is the tile's half-diagonal plus a gap. */
.paip-hub-line[b-tb5n6fdysu] {
    position: absolute;
    left: 50%;
    top: 50%;
    height: 2px;
    width: calc(var(--paip-hub-radius) - 95px);
    margin-top: -1px;
    transform-origin: left center;
    transform: rotate(var(--paip-hub-angle));
    background: linear-gradient(90deg, transparent, rgba(0, 160, 154, 0.45), transparent);
    z-index: 1;
    animation: paipHubLineFade-b-tb5n6fdysu 3.5s ease-in-out infinite;
}

@keyframes paipHubLineFade-b-tb5n6fdysu {
    0%, 100% { opacity: 0.35; }
    50%      { opacity: 0.75; }
}

.paip-hub-system[b-tb5n6fdysu] {
    width: 142px;
    height: 142px;
    border-radius: var(--r-lg);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    padding: 12px;
    text-align: center;
    box-shadow: 0 6px 18px rgba(12, 30, 72, 0.18);
    color: var(--white);
    border: 1px solid rgba(255, 255, 255, 0.2);
    /* A <button>, so the keyboard reaches a tile; these undo the UA button styling. */
    font: inherit;
    margin: 0;
}

.paip-hub-system:hover[b-tb5n6fdysu] {
    transform: scale(1.08) translateY(-4px);
    box-shadow: 0 14px 36px rgba(12, 30, 72, 0.28);
}

.paip-hub-spoke:hover[b-tb5n6fdysu],
.paip-hub-spoke:focus-within[b-tb5n6fdysu] {
    z-index: 50;
}

.paip-hub-system-pm[b-tb5n6fdysu] {
    background: linear-gradient(135deg, #0C1E48, #1F3370);
}

.paip-hub-system-ehr[b-tb5n6fdysu] {
    background: linear-gradient(135deg, #00A09A, #007A75);
}

.paip-hub-system-scm[b-tb5n6fdysu] {
    background: linear-gradient(135deg, var(--amber), #8A5608);
}

.paip-hub-system-payroll[b-tb5n6fdysu] {
    background: linear-gradient(135deg, var(--green), #005955);
}

.paip-hub-system-po[b-tb5n6fdysu] {
    background: linear-gradient(135deg, #7A5BC9, #5A3FA0);
}

.paip-hub-system-gl[b-tb5n6fdysu] {
    background: linear-gradient(135deg, #3D5470, #27384E);
}

.paip-hub-system-mgma[b-tb5n6fdysu] {
    background: linear-gradient(135deg, var(--red), #93401F);
}

.paip-hub-system-icon[b-tb5n6fdysu] {
    margin-bottom: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 28px;
}

.paip-hub-system-title[b-tb5n6fdysu] {
    font-family: var(--font-display);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: 4px;
}

/* Below the ring's own diameter there is no ring to draw: the spokes become a plain grid and the
   connectors go, rather than overlapping the hub and each other. */
@media (max-width: 860px) {
    .paip-hub-container[b-tb5n6fdysu] {
        height: auto;
    }

    .paip-hub-systems[b-tb5n6fdysu] {
        position: static;
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(142px, 1fr));
        justify-items: center;
        gap: var(--space-4);
        margin-top: var(--space-5);
    }

    .paip-hub-spoke[b-tb5n6fdysu] {
        position: static;
        transform: none;
    }

    .paip-hub-line[b-tb5n6fdysu] {
        display: none;
    }

    .paip-hub-center[b-tb5n6fdysu] {
        position: static;
        transform: none;
        margin: 0 auto;
    }

    .paip-hub-center:hover[b-tb5n6fdysu] {
        transform: scale(1.06);
    }
}

@media (prefers-reduced-motion: reduce) {
    .paip-hub-center[b-tb5n6fdysu],
    .paip-hub-line[b-tb5n6fdysu] {
        animation: none;
    }
}

/* ── The detail panel a spoke opens ───────────────────────────────────────────────────────────
   Lives inside <SlidePanel>, which supplies the chrome (title = the system, sub = its vendors),
   so what follows is only the body the mockup shows beneath that. */

.paip-hub-detail-icon[b-tb5n6fdysu] {
    color: var(--teal-dim);
    margin-bottom: var(--space-3);
}

.paip-hub-detail-stats[b-tb5n6fdysu] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin-bottom: 18px;
}

.paip-hub-detail-stat[b-tb5n6fdysu] {
    background: var(--surface-2);
    padding: 12px;
    border-radius: var(--r-md);
    border-left: 3px solid var(--teal);
}

.paip-hub-detail-stat-value[b-tb5n6fdysu] {
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 700;
    color: var(--navy);
}

.paip-hub-detail-stat-label[b-tb5n6fdysu] {
    font-size: 10px;
    color: var(--text-muted);
    font-family: var(--font-display);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-weight: 700;
    margin-top: 2px;
}

/* ::deep: the card is ChartCard's markup and carries THAT component's scope attribute, which a
   plain descendant selector here would never match. The panel is narrower than a page, so the
   chart box is shorter than the card's default, and the card's title row is empty (the section
   heading above already names the chart) -- an empty row would still take its margin. */
.paip-hub-detail-chart[b-tb5n6fdysu]  .paip-chart-card {
    box-shadow: none;
    padding: 0;
    border: 0;
}

.paip-hub-detail-chart[b-tb5n6fdysu]  .paip-chart-title:empty {
    display: none;
}

.paip-hub-detail-chart[b-tb5n6fdysu]  .paip-chart-box {
    height: 180px;
}

.paip-hub-detail-insights[b-tb5n6fdysu] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.paip-hub-detail-insights li[b-tb5n6fdysu] {
    padding: 6px 0 6px 18px;
    font-size: 13px;
    color: var(--text-primary);
    line-height: 1.5;
    border-bottom: 1px solid rgba(0, 0, 0, 0.04);
    position: relative;
}

.paip-hub-detail-insights li[b-tb5n6fdysu]::before {
    content: '\2192';
    position: absolute;
    left: 0;
    color: var(--teal);
    font-weight: 700;
}

.paip-hub-detail-insights li:last-child[b-tb5n6fdysu] {
    border-bottom: none;
}

.paip-hub-detail-cta[b-tb5n6fdysu] {
    display: block;
    background: var(--navy);
    color: var(--white);
    text-decoration: none;
    padding: 10px 16px;
    border-radius: var(--r-md);
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 12px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    text-align: center;
    margin-top: 12px;
    transition: background 0.2s ease;
}

.paip-hub-detail-cta:hover[b-tb5n6fdysu] {
    background: var(--navy-mid);
}
/* /components/modules/provider/rc/ClaimReview.razor.rz.scp.css */
/* Fixed-height flex column (same model as the working queue): the header is a fixed strip and
   the layout fills the rest, so the rail and detail scroll internally instead of the page. */
main.paip-content[b-5bntguaajm] {
    display: flex;
    flex-direction: column;
    height: calc(100vh - var(--topbar-h) - var(--primary-nav-h) - var(--statusbar-h));
}

.paip-cr-header[b-5bntguaajm] {
    flex-shrink: 0;
    padding: var(--space-5) var(--space-5) 0;
    background: var(--off-white);
}

.paip-cr-layout[b-5bntguaajm] {
    display: grid;
    grid-template-columns: 360px 1fr;
    /* Pin the single row to the container height so the rail/detail stretch and scroll
       internally (an implicit auto row would size to content and overflow). */
    grid-template-rows: minmax(0, 1fr);
    gap: 0;
    background: var(--off-white);
    flex: 1;
    min-height: 0;
}

.paip-cr-detail[b-5bntguaajm] {
    overflow-y: auto;
    min-height: 0;
    padding: var(--space-5);
}

.paip-cr-main[b-5bntguaajm] {
    padding: 0;
}

/* .paip-mode-locked and the header mode toggle (.paip-mode-toggle*) are GLOBAL
   (wwwroot/css/app.css) — shared with the Working Queue header. */
/* /components/modules/provider/rc/CrClaimRow.razor.rz.scp.css */
.paip-cr-row[b-ncpt3n0o34] {
    display: grid;
    grid-template-columns: 4px 1fr;
    width: 100%;
    background: transparent;
    border: none;
    border-bottom: 1px solid var(--border);
    padding: 0;
    cursor: pointer;
    text-align: left;
    font-family: inherit;
    transition: background 0.12s;
}

.paip-cr-row.active[b-ncpt3n0o34] {
    background: rgba(0, 160, 154, 0.08);
}

.paip-cr-stripe[b-ncpt3n0o34] {
    background: var(--teal-dim) !important;
    width: 4px;
}

.paip-cr-stripe-red[b-ncpt3n0o34] {
    background: var(--red);
}

.paip-cr-row-body[b-ncpt3n0o34] {
    padding: 12px 14px;
}

.paip-cr-row-top[b-ncpt3n0o34] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 4px;
}

.paip-cr-clm-id[b-ncpt3n0o34] {
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 600;
    color: var(--text-muted);
    letter-spacing: 0.04em;
}

.paip-cr-scores[b-ncpt3n0o34] {
    font-family: var(--font-display);
    font-size: 13px;
    font-weight: 700;
}

.paip-cr-scores-red[b-ncpt3n0o34] {
    color: var(--red);
}

.paip-cr-patient[b-ncpt3n0o34] {
    font-family: var(--font-display);
    font-size: 14px;
    font-weight: 700;
    color: var(--navy);
    margin-bottom: 4px;
}

.paip-cr-row-bottom[b-ncpt3n0o34] {
    display: flex;
    justify-content: space-between;
    font-size: 11px;
    color: var(--text-muted);
    margin-bottom: 6px;
}

.paip-cr-payer[b-ncpt3n0o34] {
    font-family: var(--font-mono);
}

.paip-cr-charge[b-ncpt3n0o34] {
    font-family: var(--font-mono);
    font-weight: 600;
    color: var(--text-secondary);
}
/* /components/modules/provider/rc/CrQueueRail.razor.rz.scp.css */
/* Fills its grid cell (the .paip-cr-layout row is pinned to the container height) and scrolls
   internally — no viewport-height math or sticky positioning needed. */
.paip-cr-rail[b-uqtz48qxyq] {
    background: var(--white);
    border-right: 1px solid var(--border);
    overflow-y: auto;
    min-height: 0;
}

.paip-cr-rail-header[b-uqtz48qxyq] {
    position: sticky;
    top: 0;
    background: var(--white);
    padding: 16px 18px 10px;
    border-bottom: 1px solid var(--border);
    z-index: 5;
}

.paip-cr-rail-title[b-uqtz48qxyq] {
    font-family: var(--font-display);
    font-size: 16px;
    font-weight: 700;
    color: var(--navy);
}

.paip-cr-rail-meta[b-uqtz48qxyq] {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 4px;
    font-family: var(--font-mono);
    letter-spacing: 0.04em;
}

.paip-cr-scoring-btn[b-uqtz48qxyq] {
    margin-top: 10px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--white);
    border: 1px solid var(--border-strong);
    color: var(--teal-dim);
    padding: 6px 10px;
    border-radius: var(--r-sm);
    font-family: var(--font-display);
    font-size: 11px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.18s, color 0.18s;
}

.paip-cr-scoring-btn:hover[b-uqtz48qxyq] {
    background: var(--teal-soft);
    color: var(--teal-dim);
}

.paip-cr-scoring-icon[b-uqtz48qxyq] {
    display: inline-flex;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--teal-soft);
    color: var(--teal-dim);
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 700;
    font-style: italic;
    font-family: var(--font-display);
}

.paip-cr-rail-list[b-uqtz48qxyq] {
    padding: 8px 0;
}

/* Team scope bar in the review rail (mirrors the working-queue team bar). */
.paip-cr-rail-controls[b-uqtz48qxyq] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    background: var(--white);
    border-bottom: 1px solid var(--border);
    flex-wrap: wrap;
}

/* .paip-team-bar-label / .paip-team-label are GLOBAL (wwwroot/css/app.css) — shared with the
   Working Queue rail's team scope bar. */

.paip-cr-rail-controls select[b-uqtz48qxyq] {
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: 999px;
    padding: 3px 12px;
    font-family: var(--font-display);
    font-size: 11px;
    font-weight: 600;
    color: var(--text-secondary);
    cursor: pointer;
}

.paip-cr-rail-controls select:hover[b-uqtz48qxyq] { border-color: var(--navy); color: var(--navy); }

/* Free-text search bar — sits directly under the team + class controls, matching their surface so the
   two read as one stacked control strip. */
.paip-cr-search-bar[b-uqtz48qxyq] {
    display: flex;
    align-items: center;
    padding: 8px 14px;
    background: var(--white);
    border-bottom: 1px solid var(--border);
}

.paip-cr-search-input[b-uqtz48qxyq] {
    flex: 1 1 auto;
    min-width: 0;
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: 999px;
    padding: 5px 14px;
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 500;
    color: var(--text-primary);
    transition: all 0.12s;
}

.paip-cr-search-input[b-uqtz48qxyq]::placeholder { color: var(--text-muted); font-weight: 500; }
.paip-cr-search-input:hover[b-uqtz48qxyq] { border-color: var(--navy); }
.paip-cr-search-input:focus-visible[b-uqtz48qxyq] {
    outline: none;
    border-color: var(--navy);
    box-shadow: 0 0 0 2px var(--surface-2);
}

/* "Showing N of M" + Load more — pinned at the foot of the bounded review-rail window. */
.paip-cr-loadmore[b-uqtz48qxyq] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 14px;
    border-top: 1px solid var(--border);
    background: var(--surface-muted, #F7F5F1);
}

.paip-cr-loadmore-count[b-uqtz48qxyq] {
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--text-muted, #6B6459);
}

.paip-cr-loadmore-btn[b-uqtz48qxyq] {
    font-family: var(--font-display);
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    font-size: 11px;
    border: 1px solid var(--navy);
    color: var(--navy);
    background: var(--white);
    border-radius: 7px;
    padding: 6px 14px;
    cursor: pointer;
}

.paip-cr-loadmore-btn:hover[b-uqtz48qxyq] { background: var(--navy); color: var(--white); }
/* /components/modules/provider/rc/DaFilterBar.razor.rz.scp.css */
/* Filter bar (mock .controls): a wrapping row of scope selects under the page header. */
.paip-da-controls[b-uspv7t4v64] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 14px;
}

/* The selects use the shared global .paip-filter-select recipe (app.css). */
/* /components/modules/provider/rc/ProdFilterBar.razor.rz.scp.css */
/* Filter bar (mock .controls): group-by toggle on the left, team select pushed right. */
.paip-prod-controls[b-pgqp2h0myz] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 14px;
}

.paip-prod-controls-label[b-pgqp2h0myz] {
    font-size: 11.5px;
    color: var(--text-muted);
    margin-right: 6px;
}

.paip-prod-controls-spacer[b-pgqp2h0myz] {
    flex: 1;
}

/* Group-by tabs (mock .tabs): pill group, active = navy. */
.paip-prod-tabs[b-pgqp2h0myz] {
    display: flex;
    gap: 3px;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 3px;
}

.paip-prod-tab[b-pgqp2h0myz] {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 13px;
    letter-spacing: 0.03em;
    border: 0;
    background: transparent;
    color: var(--text-secondary);
    padding: 7px 14px;
    border-radius: 6px;
    text-transform: uppercase;
    cursor: pointer;
}

.paip-prod-tab.active[b-pgqp2h0myz] {
    background: var(--navy);
    color: var(--white);
}

/* The team select uses the shared global .paip-filter-select recipe (app.css). */
/* /components/modules/provider/rc/RcPhysicianScorecard.razor.rz.scp.css */
.paip-scorecard-note[b-kfw9rcz09p] {
    font-size: 12px;
    color: var(--text-muted);
    line-height: 1.55;
    margin: var(--space-3) 0 0;
    padding: 0 var(--space-4) var(--space-3);
}

.paip-scorecard-note code[b-kfw9rcz09p] {
    font-family: var(--font-mono);
    font-size: 11px;
}

/* Signed against the practice's own rate, so "worse" is above the book and "better" is below it.
   Color is a second channel on a value that already carries its sign -- it is not the only cue. */
.paip-scorecard-worse[b-kfw9rcz09p] {
    color: var(--red);
    font-weight: 600;
}

.paip-scorecard-better[b-kfw9rcz09p] {
    color: var(--green);
    font-weight: 600;
}
/* /components/modules/provider/rc/WorkingQueue.razor.rz.scp.css */
/* No page scrollbar on this screen: the page's <main> is pinned to exactly the viewport space
   left after the chrome (border-box, so its padding is INSIDE the height — the global
   .paip-page-content min-height is content-box and overflows by its own padding), and overflow
   is clipped. Only the rail and the claim card scroll. This <main> belongs to WorkingQueue.razor,
   so the scoped rule can't leak to other pages. */
main.paip-page-content[b-sglrsbb2d6] {
    box-sizing: border-box;
    height: calc(100vh - var(--topbar-h) - var(--primary-nav-h) - var(--statusbar-h));
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.paip-working-queue-container[b-sglrsbb2d6] {
    padding: 0;
    background: var(--off-white);
    display: flex;
    flex-direction: column;
    /* Fill main's content box exactly — no duplicated viewport math, no fixed floor (a floor
       would reintroduce the page scrollbar on short windows; the rail/card scroll internally). */
    flex: 1;
    min-height: 0;
}

/* Tighten the header's default bottom margin on this fixed-height page — every vertical pixel
   saved goes to the rail/card. (::deep: PageHeader is a child component.) */
.paip-working-queue-container[b-sglrsbb2d6]  .paip-page-header {
    margin-bottom: 10px;
}

/* .paip-mode-locked and the header mode toggle (.paip-mode-toggle*) are GLOBAL
   (wwwroot/css/app.css) — shared with the Claim Review header. */
/* /components/modules/provider/rc/WqClaimDetail.razor.rz.scp.css */
/* The card-section frame (.paip-claim-pane-card-section / -title) is global in app.css, so the
   sections rendered here (denial codes, findings, financials) pick it up without re-declaration.
   The Work + Claim-record sections moved to WqWorkSection / WqClaimRecord so a modify can OOB-swap
   just those; their scoped rules live in each component's own .razor.css (isolation scope follows
   the component that renders the elements), NOT here. */

/* Sticky-top-bar section nav (rendered into ClaimPaneCard's HeaderNav slot, so scoped here where the
   markup is authored). Link-styled buttons separated by a "|". */
.paip-claim-nav-link[b-gszrfy3q5a] {
    border: none;
    background: none;
    padding: 0 2px;
    font-family: var(--font-display);
    font-size: 11.5px;
    font-weight: 600;
    color: var(--text-muted);
    cursor: pointer;
    white-space: nowrap;
}

.paip-claim-nav-link:hover[b-gszrfy3q5a] {
    text-decoration: underline;
}

/* "|" between links (not before the first). display:inline-block so the hover underline on the link
   does NOT extend over the separator (an ancestor's text-decoration is not drawn on inline-block
   children); a darker gray than the link text. */
.paip-claim-nav-link:not(:first-child)[b-gszrfy3q5a]::before {
    content: "|";
    display: inline-block;
    margin: 0 8px 0 6px;
    color: var(--text-secondary);
    font-weight: 400;
    pointer-events: none;
}

/* Denial codes: mock .carcline — one full-width row per CARC (mono code, flexible middle,
   right-aligned tags). The precedence-picked primary gets the teal 'recommended' treatment
   plus the amber .carcchip. */
.paip-wq-carcline[b-gszrfy3q5a] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    border: 1px solid var(--border);
    border-radius: 9px;
    margin-bottom: 8px;
    background: var(--white);
}

.paip-wq-carcline-recommended[b-gszrfy3q5a] {
    border-color: var(--teal);
    background: var(--teal-soft);
}

/* Mock .carcline.reporting: the code carried into reporting gets a navy inset ring —
   independent of (and combinable with) the teal recommended state. */
.paip-wq-carcline-reporting[b-gszrfy3q5a] {
    box-shadow: 0 0 0 2px var(--navy) inset;
    border-color: var(--navy);
}

.paip-wq-carcline-code[b-gszrfy3q5a] {
    font-family: var(--font-mono);
    font-weight: 500;
    font-size: 14px;
    min-width: 58px;
    color: var(--navy);
}

.paip-wq-carcline-txt[b-gszrfy3q5a] {
    flex: 1;
    font-size: 13px;
    color: var(--text-primary);
}

/* Mock .carcline .txt small: the CARC's classification category under its descriptor. */
.paip-wq-carcline-txt small[b-gszrfy3q5a] {
    display: block;
    color: var(--text-muted);
    font-size: 11.5px;
    margin-top: 1px;
}

.paip-wq-carcline-tags[b-gszrfy3q5a] {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

/* Mock .tag-rec / .tag-rep: solid uppercase chips — teal for the pipeline recommendation,
   navy for the user-pinned reporting primary. */
.paip-wq-tag-rec[b-gszrfy3q5a],
.paip-wq-tag-rep[b-gszrfy3q5a] {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 10px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--white);
    padding: 3px 8px;
    border-radius: 5px;
    white-space: nowrap;
}

.paip-wq-tag-rec[b-gszrfy3q5a] {
    background: var(--teal-dim);
}

.paip-wq-tag-rep[b-gszrfy3q5a] {
    background: var(--navy);
}

/* Mock .mini: the Mark-as-primary button. */
.paip-wq-carcline-tags form[b-gszrfy3q5a] {
    margin: 0;
}

.paip-wq-mini[b-gszrfy3q5a] {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 11px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border: 1px solid var(--border-strong);
    background: var(--white);
    color: var(--navy);
    border-radius: 6px;
    padding: 4px 9px;
    white-space: nowrap;
    cursor: pointer;
}

.paip-wq-mini:hover[b-gszrfy3q5a] {
    background: var(--surface-2);
}

/* Mock .note: the recommendation / reconciliation callouts inside a card section. */
.paip-wq-note[b-gszrfy3q5a] {
    font-size: 12.5px;
    color: var(--text-secondary);
    margin-top: 6px;
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 9px 11px;
    line-height: 1.45;
}

.paip-wq-note b[b-gszrfy3q5a] {
    color: var(--text-primary);
}

/* Analyzer findings: one row per finding (severity chip + analyzer + title + dollars),
   citation trail as a compact list beneath. */
.paip-wq-finding[b-gszrfy3q5a] {
    padding: 8px 0;
    border-bottom: 1px solid var(--border);
}

.paip-wq-finding:last-child[b-gszrfy3q5a] {
    border-bottom: none;
}

.paip-wq-finding-head[b-gszrfy3q5a] {
    display: flex;
    align-items: baseline;
    gap: 8px;
    flex-wrap: wrap;
}

.paip-wq-finding-sev[b-gszrfy3q5a] {
    font-family: var(--font-display);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.06em;
    border-radius: 6px;
    padding: 2px 6px;
}

.paip-wq-sev-high[b-gszrfy3q5a]   { background: #F6E3E3; color: #A12B2B; }
.paip-wq-sev-medium[b-gszrfy3q5a] { background: #F6EFDD; color: #8A6A1B; }
.paip-wq-sev-low[b-gszrfy3q5a]    { background: var(--surface-2); color: var(--text-secondary); }

.paip-wq-finding-analyzer[b-gszrfy3q5a] {
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--text-muted);
}

.paip-wq-finding-title[b-gszrfy3q5a] {
    font-size: 12.5px;
    font-weight: 600;
    color: var(--text-primary);
    flex: 1;
    min-width: 200px;
}

.paip-wq-finding-dollar[b-gszrfy3q5a] {
    font-family: var(--font-mono);
    font-size: 12.5px;
    font-weight: 600;
    color: var(--navy);
}

/* PAIP #281. The review reason sits between the finding and its citations, and is deliberately
   quieter than the title and louder than a citation: it explains why this finding is in Review,
   which is context for the action rather than the action itself. #281's own ruling is that a
   withheld diagnosis must be visually distinct from the primary one -- "a biller must not read it
   as the thing to do first". */
.paip-wq-finding-review[b-gszrfy3q5a] {
    margin: 4px 0 0;
    padding-left: 8px;
    border-left: 2px solid var(--amber, #b7791f);
    font-size: 11.5px;
    font-style: italic;
    color: var(--text-secondary);
}

.paip-wq-finding-citations[b-gszrfy3q5a] {
    margin: 5px 0 0;
    padding-left: 18px;
    list-style: disc;
}

.paip-wq-finding-citations li[b-gszrfy3q5a] {
    font-size: 11.5px;
    color: var(--text-secondary);
}

.paip-wq-citation-source[b-gszrfy3q5a] {
    font-family: var(--font-mono);
    font-size: 10.5px;
    text-transform: uppercase;
    color: var(--teal-dim);
}

/* Financials: mock .fin — 4-up grid of eyebrow label + mono value. */
.paip-wq-fin-grid[b-gszrfy3q5a] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}

.paip-wq-fin-k[b-gszrfy3q5a] {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 10.5px;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.07em;
}

.paip-wq-fin-v[b-gszrfy3q5a] {
    font-family: var(--font-mono);
    font-size: 18px;
    font-weight: 500;
    color: var(--navy);
    margin-top: 3px;
}

.paip-wq-fin-green[b-gszrfy3q5a] {
    color: var(--teal-dim);
}

.paip-wq-fin-note[b-gszrfy3q5a] {
    font-size: 12.5px;
    color: var(--text-secondary);
    margin-top: 6px;             /* mock .note default (the dhead note alone uses 10px) */
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 9px 11px;
    line-height: 1.45;
}

/* In-flight feedback: dim + lock the Mark-as-primary control while its change is being saved. htmx
   puts .htmx-request on the posting form for the duration of the request, so the control reads as
   busy and can't be re-fired (no double writes) until the rail comes back. The status / disposition
   selects get the equivalent rule in WqWorkSection.razor.css (they render in that component now). */
form.htmx-request .paip-wq-mini[b-gszrfy3q5a] {
    opacity: 0.5;
    pointer-events: none;
    transition: opacity 0.12s ease;
}
/* /components/modules/provider/rc/WqClaimRecord.razor.rz.scp.css */
/* Scoped styles for the "Claim record" (task-history timeline) section. Live HERE (not in
   WqClaimDetail.razor.css) because Blazor CSS isolation stamps a component's scope only onto the
   elements it renders — the timeline is rendered by WqClaimRecord, so its rules must carry
   WqClaimRecord's scope to match. The section frame (.paip-claim-pane-card-section / -title) is
   global in app.css. */

/* Claim record timeline (mock .tl). */
.paip-wq-timeline[b-p7dqw8dfhb] {
    position: relative;
    padding-left: 6px;
    margin: 0;
    list-style: none;
}

.paip-wq-timeline li[b-p7dqw8dfhb] {
    position: relative;
    padding: 8px 0 8px 16px;
    border-left: 2px solid var(--surface-3);
}

.paip-wq-timeline li[b-p7dqw8dfhb]::before {
    content: "";
    position: absolute;
    left: -5px;
    top: 13px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--teal);
}

.paip-wq-timeline li.sys[b-p7dqw8dfhb]::before {
    background: var(--text-muted);
}

.paip-wq-tl-time[b-p7dqw8dfhb] {
    display: block;
    font-family: var(--font-mono);
    font-size: 10.5px;
    color: var(--text-muted);
}

.paip-wq-tl-event[b-p7dqw8dfhb] {
    display: block;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--text-primary);
}

.paip-wq-tl-by[b-p7dqw8dfhb] {
    display: block;
    font-size: 11.5px;
    color: var(--text-secondary);
}

.paip-wq-history-empty[b-p7dqw8dfhb] {
    font-size: 12.5px;
    color: var(--text-muted);
    font-style: italic;
}
/* /components/modules/provider/rc/WqMetricsBar.razor.rz.scp.css */
/* Compact config-gap strip: one slim card with inline label/value stats and a trailing action link.
   One strip PER GAP (routing, financial class), each independently gated, stacked when both apply. */
.paip-metrics-strip[b-qwzragno70] {
    display: flex;
    align-items: center;
    gap: 28px;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 11px;
    /* Red accent edge: this strip only shows while unmapped payers need attention. */
    box-shadow: inset 3px 0 0 #A12B2B, var(--shadow-md);
    padding: 7px 14px;
    margin-bottom: 10px;
    flex-shrink: 0;
    flex-wrap: wrap;
}

.paip-metrics-stat[b-qwzragno70] {
    display: inline-flex;
    align-items: baseline;
    gap: 8px;
    white-space: nowrap;
}

.paip-metrics-stat-label[b-qwzragno70] {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 10.5px;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--text-muted);
}

.paip-metrics-stat-value[b-qwzragno70] {
    font-family: var(--font-mono);
    font-size: 16px;
    font-weight: 500;
    color: var(--navy);
    letter-spacing: -0.3px;
}

.paip-metrics-alert .paip-metrics-stat-value[b-qwzragno70] {
    color: #A12B2B;
}

/* Financial-class gap: softer amber edge. Those claims DO reach a queue and get worked — they just
   report and filter as Unassigned — so it must not read as urgently as claims that route nowhere.
   Compound selector: Blazor scoped CSS stamps the same [b-*] attribute on both, so a single-class
   override would depend on source order. */
.paip-metrics-strip.paip-metrics-strip-warn[b-qwzragno70] {
    box-shadow: inset 3px 0 0 var(--amber), var(--shadow-md);
}

.paip-metrics-warn .paip-metrics-stat-value[b-qwzragno70] {
    color: var(--amber);
}

/* Trailing action: outlined pill linking to the Payer Coverage settings card. */
.paip-metrics-action[b-qwzragno70] {
    margin-left: auto;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 11px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--teal-dim);
    border: 1px solid var(--border-strong);
    background: var(--white);
    border-radius: 7px;
    padding: 4px 10px;
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.15s, color 0.15s;
}

.paip-metrics-action:hover[b-qwzragno70] {
    background: var(--teal-soft);
    color: var(--teal-dim);
}
/* /components/modules/provider/rc/WqQueueRail.razor.rz.scp.css */
/* Header-right rollup: claim count + total billed + total expected recovery, inline in the rail header
   (mono, inherited from .paip-pane-rail-header-right). "·" separators; muted "Billed"/"Allowed" keys. */
.paip-wq-rail-stat[b-tmfpdsl0a8] {
    white-space: nowrap;
}

.paip-wq-rail-stat + .paip-wq-rail-stat[b-tmfpdsl0a8]::before {
    content: "·";
    margin: 0 6px;
    color: var(--border-strong);
    font-weight: 400;
}

.paip-wq-rail-stat-k[b-tmfpdsl0a8] {
    color: var(--text-muted);
    font-weight: 500;
}

.paip-wq-rail-stat b[b-tmfpdsl0a8] {
    color: var(--text-primary);
    font-weight: 700;
}

/* Unassigned alert bar (mock .orphanbar): amber strip above the filters with an outlined
   "View unassigned" action. */
.paip-unassigned-bar[b-tmfpdsl0a8] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 9px 16px;
    background: #FBEFE2;
    border-bottom: 1px solid #F2D9C0;
    color: #9A4A1B;
    font-size: 12.5px;
    font-weight: 600;
}

.paip-unassigned-bar button[b-tmfpdsl0a8] {
    font-family: var(--font-display);
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border: 1px solid var(--red);
    color: #9A4A1B;
    background: var(--white);
    border-radius: 7px;
    padding: 4px 10px;
    font-size: 11.5px;
    cursor: pointer;
    white-space: nowrap;
}

.paip-unassigned-bar button:hover[b-tmfpdsl0a8] {
    background: #FBE4E4;
}

/* Team scope bar — sits directly above the sort bar in the queue rail. Styled to match
   RailSort's .paip-sort-bar so the two read as one stacked control strip. */
.paip-team-bar[b-tmfpdsl0a8] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 12px;
    background: var(--white);
    border-bottom: 1px solid var(--border);
    flex-wrap: wrap;
    /* Normal flow above the sticky sort bar — avoids re-tuning RailSort's sticky offset. */
}

/* .paip-team-bar-label / .paip-team-label are GLOBAL (wwwroot/css/app.css) — shared with the
   Claim Review rail's team scope bar. */

/* Multi-team case: a compact dropdown matching the sort chips' surface. */
.paip-team-bar select[b-tmfpdsl0a8] {
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: 999px;
    padding: 3px 26px 3px 12px;
    font-family: var(--font-display);
    font-size: 11px;
    font-weight: 600;
    color: var(--text-secondary);
    letter-spacing: 0.02em;
    cursor: pointer;
    transition: all 0.12s;
    /* native caret hidden in favor of a consistent chevron */
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'><path d='M2 3.5L5 6.5L8 3.5' fill='none' stroke='%235A7080' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/></svg>");
    background-repeat: no-repeat;
    background-position: right 9px center;
}

.paip-team-bar select:hover[b-tmfpdsl0a8] {
    border-color: var(--navy);
    color: var(--navy);
}

.paip-team-bar select:focus-visible[b-tmfpdsl0a8] {
    outline: none;
    border-color: var(--navy);
    box-shadow: 0 0 0 2px var(--surface-2);
}

/* "Assigned to me" filter — a styled checkbox pinned to the far right of the filter bar. */
.paip-assignee-toggle[b-tmfpdsl0a8] {
    margin-left: auto;              /* push to the far right of the flex team-bar */
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-display);
    font-size: 11px;
    font-weight: 600;
    color: var(--text-secondary);
    letter-spacing: 0.02em;
    white-space: nowrap;
    cursor: pointer;
    user-select: none;
}

.paip-assignee-toggle:hover[b-tmfpdsl0a8] {
    color: var(--navy);
}

/* Custom box: hide the native control and draw our own square + checkmark on :checked. */
.paip-assignee-toggle input[type="checkbox"][b-tmfpdsl0a8] {
    appearance: none;
    -webkit-appearance: none;
    width: 15px;
    height: 15px;
    margin: 0;
    border: 1px solid var(--border-strong);
    border-radius: 4px;
    background: var(--white);
    cursor: pointer;
    transition: all 0.12s;
}

.paip-assignee-toggle input[type="checkbox"]:hover[b-tmfpdsl0a8] {
    border-color: var(--navy);
}

.paip-assignee-toggle input[type="checkbox"]:checked[b-tmfpdsl0a8] {
    background-color: var(--navy);
    border-color: var(--navy);
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M2.5 6.2L4.8 8.6L9.5 3.4' fill='none' stroke='white' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>");
    background-repeat: no-repeat;
    background-position: center;
}

.paip-assignee-toggle input[type="checkbox"]:focus-visible[b-tmfpdsl0a8] {
    outline: none;
    border-color: var(--navy);
    box-shadow: 0 0 0 2px var(--surface-2);
}

/* Free-text search bar — sits between the filter (team) bar and the sort bar, matching their surface
   so the three read as one stacked control strip. Normal flow (like .paip-team-bar) so it scrolls
   away above the sticky sort bar rather than re-tuning its offset. */
.paip-search-bar[b-tmfpdsl0a8] {
    display: flex;
    align-items: center;
    padding: 6px 12px;
    background: var(--white);
    border-bottom: 1px solid var(--border);
}

.paip-search-input[b-tmfpdsl0a8] {
    flex: 1 1 auto;
    min-width: 0;
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: 999px;
    padding: 5px 14px;
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 500;
    color: var(--text-primary);
    letter-spacing: 0.01em;
    transition: all 0.12s;
}

.paip-search-input[b-tmfpdsl0a8]::placeholder {
    color: var(--text-muted);
    font-weight: 500;
}

.paip-search-input:hover[b-tmfpdsl0a8] {
    border-color: var(--navy);
}

.paip-search-input:focus-visible[b-tmfpdsl0a8] {
    outline: none;
    border-color: var(--navy);
    box-shadow: 0 0 0 2px var(--surface-2);
}

/* Work-queue group headers in the rail (disposition grouping) — full-bleed navy bar with the claim
   count and the queue's total expected recovery, matching the mock's .qgroup (padding 9/16, no margin/radius,
   contiguous segments; the rail card's border-radius clips the ends). */
.paip-wq-group-header[b-tmfpdsl0a8] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    padding: 9px 16px;
    background: var(--navy);
    color: var(--white);
    /* The claim list is the rail's scroll region now (the header/filters/search/sort are pinned above
       it), so group headers stick to the top of that scroller — top:0, not the old header+sort offset. */
    position: sticky;
    top: 0;
    z-index: 1;
}

.paip-wq-group-name[b-tmfpdsl0a8] {
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.paip-wq-group-stats[b-tmfpdsl0a8] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.paip-wq-group-count[b-tmfpdsl0a8] {
    font-family: var(--font-mono);
    font-size: 11px;
    color: rgba(255, 255, 255, 0.72);
}

.paip-wq-group-sum[b-tmfpdsl0a8] {
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 600;
    color: var(--teal);
}

/* "Showing N of M" + Load more — pinned at the foot of the bounded rail window. */
.paip-wq-loadmore[b-tmfpdsl0a8] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 16px;
    border-top: 1px solid var(--border, #E5E1DA);
    background: var(--surface-muted, #F7F5F1);
}

.paip-wq-loadmore-count[b-tmfpdsl0a8] {
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--text-muted, #6B6459);
}

.paip-wq-loadmore-btn[b-tmfpdsl0a8] {
    font-family: var(--font-display);
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    font-size: 11px;
    border: 1px solid var(--navy);
    color: var(--navy);
    background: var(--white);
    border-radius: 7px;
    padding: 6px 14px;
    cursor: pointer;
}

.paip-wq-loadmore-btn:hover[b-tmfpdsl0a8] {
    background: var(--navy);
    color: var(--white);
}
/* /components/modules/provider/rc/WqSavedQueryBar.razor.rz.scp.css */
/* Saved-query bar in the WQ page header — sits next to the mode toggle. Styled to read as one control
   strip with the mode buttons (compact, display font, navy accents). */

.paip-wq-query-empty[b-xlqzydpt5j] {
    font-family: var(--font-display);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--text-muted);
    font-style: italic;
}

#wq-query-select[b-xlqzydpt5j] {
    appearance: none;
    -webkit-appearance: none;
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: 999px;
    padding: 3px 22px 3px 10px;
    font-family: var(--font-display);
    font-size: 10.5px;
    font-weight: 600;
    color: var(--text-secondary);
    letter-spacing: 0.02em;
    cursor: pointer;
    /* Wide enough for longer query names; min-width:0 lets it shrink (truncating the option) when the
       rail is narrow so it never pushes the claim count off the header row. */
    min-width: 0;
    max-width: 200px;
    transition: all 0.12s;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'><path d='M2 3.5L5 6.5L8 3.5' fill='none' stroke='%235A7080' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/></svg>");
    background-repeat: no-repeat;
    background-position: right 9px center;
}

#wq-query-select:hover[b-xlqzydpt5j] {
    border-color: var(--navy);
    color: var(--navy);
}

#wq-query-select:focus-visible[b-xlqzydpt5j] {
    outline: none;
    border-color: var(--navy);
    box-shadow: 0 0 0 2px var(--surface-2);
}

.paip-wq-query-delform[b-xlqzydpt5j] {
    display: inline;
    margin: 0;
}

.paip-wq-query-del[b-xlqzydpt5j] {
    border: 1px solid var(--border);
    background: var(--white);
    color: var(--text-muted);
    border-radius: 999px;
    width: 20px;
    height: 20px;
    line-height: 1;
    font-size: 10px;
    cursor: pointer;
    transition: all 0.12s;
}

.paip-wq-query-del:hover[b-xlqzydpt5j] {
    border-color: var(--red);
    color: var(--red);
    background: #FBE4E4;
}

.paip-wq-query-save[b-xlqzydpt5j] {
    font-family: var(--font-display);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.03em;
    border: 1px solid var(--navy);
    background: var(--navy);
    color: var(--white);
    border-radius: 999px;
    padding: 3px 10px;
    cursor: pointer;
    white-space: nowrap;
    transition: all 0.12s;
}

.paip-wq-query-save:hover[b-xlqzydpt5j] {
    background: var(--navy-dim, #1f3a52);
}
/* /components/modules/provider/rc/WqSaveQueryModal.razor.rz.scp.css */
/* Save-query modal. Self-contained styling (dialog frame + backdrop + form) so it doesn't depend on
   the generic Modal component (whose method="dialog" form would nest with this hx-post form). */
.paip-wq-save-modal[b-ykt7mf82zl] {
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 0;
    width: 420px;
    max-width: calc(100vw - 32px);
    box-shadow: var(--shadow-md);
    background: var(--white);
    color: var(--text-primary);
}

.paip-wq-save-modal[b-ykt7mf82zl]::backdrop {
    background: rgba(20, 30, 40, 0.45);
}

.paip-wq-save-header[b-ykt7mf82zl] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 18px;
    border-bottom: 1px solid var(--border);
    background: var(--surface-2);
    border-radius: 12px 12px 0 0;
}

.paip-wq-save-title[b-ykt7mf82zl] {
    font-family: var(--font-display);
    font-size: 14px;
    font-weight: 700;
    color: var(--navy);
}

.paip-wq-save-x[b-ykt7mf82zl] {
    border: none;
    background: none;
    color: var(--text-muted);
    font-size: 13px;
    cursor: pointer;
    padding: 2px 6px;
    border-radius: 6px;
}

.paip-wq-save-x:hover[b-ykt7mf82zl] {
    background: var(--white);
    color: var(--text-primary);
}

.paip-wq-save-body[b-ykt7mf82zl] {
    padding: 18px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.paip-wq-save-field[b-ykt7mf82zl] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.paip-wq-save-field span[b-ykt7mf82zl] {
    font-family: var(--font-display);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-secondary);
}

.paip-wq-save-field input[type="text"][b-ykt7mf82zl] {
    font-family: var(--font-body);
    font-size: 13px;
    border: 1px solid var(--border-strong);
    border-radius: 8px;
    padding: 8px 10px;
    color: var(--text-primary);
    background: var(--white);
}

.paip-wq-save-field input[type="text"]:focus-visible[b-ykt7mf82zl] {
    outline: none;
    border-color: var(--navy);
    box-shadow: 0 0 0 2px var(--surface-2);
}

.paip-wq-save-default[b-ykt7mf82zl] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 12.5px;
    color: var(--text-secondary);
    line-height: 1.4;
    cursor: pointer;
}

.paip-wq-save-default input[type="checkbox"][b-ykt7mf82zl] {
    margin-top: 1px;
    accent-color: var(--navy);
}

/* Duplicate-name (or other) validation message from the server; empty by default. */
.paip-wq-save-error[b-ykt7mf82zl] {
    font-size: 12.5px;
    color: var(--red);
    min-height: 0;
}

.paip-wq-save-error:empty[b-ykt7mf82zl] {
    display: none;
}

.paip-wq-save-actions[b-ykt7mf82zl] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 0 18px 18px;
}

.paip-wq-save-cancel[b-ykt7mf82zl],
.paip-wq-save-submit[b-ykt7mf82zl] {
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.02em;
    border-radius: 8px;
    padding: 7px 14px;
    cursor: pointer;
    transition: all 0.12s;
}

.paip-wq-save-cancel[b-ykt7mf82zl] {
    border: 1px solid var(--border-strong);
    background: var(--white);
    color: var(--text-secondary);
}

.paip-wq-save-cancel:hover[b-ykt7mf82zl] {
    background: var(--surface-2);
}

.paip-wq-save-submit[b-ykt7mf82zl] {
    border: 1px solid var(--navy);
    background: var(--navy);
    color: var(--white);
}

.paip-wq-save-submit:hover[b-ykt7mf82zl] {
    background: var(--navy-dim, #1f3a52);
}
/* /components/modules/provider/rc/WqWorkSection.razor.rz.scp.css */
/* Scoped styles for the "Work this denial" section. These live HERE (not in WqClaimDetail.razor.css)
   because Blazor CSS isolation stamps each component's scope only onto the elements THAT component
   renders — the selects/labels are rendered by WqWorkSection, so their rules must carry WqWorkSection's
   scope to match. The section frame (.paip-claim-pane-card-section / -title) is global in app.css. */

/* Work this denial — labelled selects (mock .fld / .sel). */
.paip-wq-field[b-pcbr5rcrsu] {
    display: grid;
    grid-template-columns: 140px 1fr;
    gap: 10px;
    align-items: center;
    margin-bottom: 10px;
}

.paip-wq-field label[b-pcbr5rcrsu] {
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-secondary);
}

.paip-wq-field form[b-pcbr5rcrsu] {
    margin: 0;
}

.paip-wq-select[b-pcbr5rcrsu] {
    appearance: none;
    -webkit-appearance: none;
    width: 100%;
    font-family: var(--font-body);
    border: 1px solid var(--border-strong);
    background: var(--white);
    border-radius: 8px;
    padding: 7px 28px 7px 10px;
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
    cursor: pointer;
    background-image:
        linear-gradient(45deg, transparent 50%, var(--text-muted) 50%),
        linear-gradient(135deg, var(--text-muted) 50%, transparent 50%);
    background-position: calc(100% - 15px) 52%, calc(100% - 10px) 52%;
    background-size: 5px 5px, 5px 5px;
    background-repeat: no-repeat;
}

/* In-flight feedback: dim + lock a status / disposition control while its change is being saved.
   htmx puts .htmx-request on the posting form for the duration of the request, so the control reads
   as busy and can't be re-fired (no double writes) until the rail comes back. */
form.htmx-request .paip-wq-select[b-pcbr5rcrsu] {
    opacity: 0.5;
    pointer-events: none;
    transition: opacity 0.12s ease;
}

.paip-wq-assigned[b-pcbr5rcrsu] {
    font-size: 12.5px;
    color: var(--text-secondary);
    margin: 2px 0 6px 150px;
}

.paip-wq-assigned b[b-pcbr5rcrsu] {
    color: var(--text-primary);
    font-weight: 600;
}

.paip-wq-fieldnote[b-pcbr5rcrsu] {
    font-size: 11.5px;
    color: var(--text-muted);
    margin: -5px 0 11px 150px;   /* mock .fldnote */
}
/* /components/modules/provider/settings/ApiClientCertificateAdded.razor.rz.scp.css */
/* Self-contained (CSS isolation): the secret reveal's card and definition list, with a teal note
   rather than the amber warning -- nothing here is secret or shown only once; the note asks for a
   check, not a copy. */
.paip-team-form[b-0kv5rh1ddn] {
    margin-top: var(--space-4);
    padding: var(--space-4);
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: var(--r-md);
    max-width: 720px;
}

.paip-team-form h4[b-0kv5rh1ddn] {
    margin: 0 0 var(--space-3);
    font-family: var(--font-display);
    font-size: 14px;
    font-weight: 700;
    color: var(--navy);
}

.paip-api-client-certificate-check[b-0kv5rh1ddn] {
    margin: 0 0 var(--space-3);
    padding: var(--space-2) var(--space-3);
    font-size: 13px;
    line-height: 1.5;
    color: var(--text-primary);
    background: var(--white);
    border-left: 3px solid var(--teal);
    border-radius: var(--r-sm);
}

.paip-api-client-reveal-fields[b-0kv5rh1ddn] {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: var(--space-2) var(--space-4);
    margin: 0;
    align-items: baseline;
}

.paip-api-client-reveal-fields dt[b-0kv5rh1ddn] {
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--navy);
}

.paip-api-client-reveal-fields dd[b-0kv5rh1ddn] {
    margin: 0;
    font-size: 13px;
    color: var(--text-primary);
    min-width: 0;
}

.paip-api-client-reveal-fields code[b-0kv5rh1ddn] {
    display: inline-block;
    font-family: var(--font-mono);
    font-size: 12px;
    color: var(--text-primary);
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
    padding: 4px 8px;
    overflow-wrap: anywhere;
    user-select: all;
}

.paip-settings-actions[b-0kv5rh1ddn] {
    display: flex;
    gap: var(--space-3);
    margin-top: var(--space-4);
}
/* /components/modules/provider/settings/ApiClientCertificateForm.razor.rz.scp.css */
/* Self-contained (CSS isolation): the same card, label, hint, pill select and actions as
   ApiClientSecretForm.razor.css, plus a monospace textarea sized for a pasted PEM certificate. */
.paip-team-form textarea[b-oqi2yvf449] {
    font-family: var(--font-mono);
    font-size: 12px;
    color: var(--text-primary);
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
    padding: 6px 9px;
    width: 100%;
    box-sizing: border-box;
    resize: vertical;
}

.paip-team-form textarea:focus[b-oqi2yvf449] {
    outline: none;
    border-color: var(--teal);
}

.paip-settings-field-hint code[b-oqi2yvf449] {
    font-family: var(--font-mono);
    font-size: 11.5px;
}

.paip-team-form[b-oqi2yvf449] {
    margin-top: var(--space-4);
    padding: var(--space-4);
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: var(--r-md);
    max-width: 720px;
}

.paip-team-form h4[b-oqi2yvf449] {
    margin: 0 0 var(--space-3);
    font-family: var(--font-display);
    font-size: 14px;
    font-weight: 700;
    color: var(--navy);
}

.paip-settings-field[b-oqi2yvf449] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-bottom: var(--space-3);
}

.paip-settings-field-label[b-oqi2yvf449] {
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--navy);
}

.paip-settings-field-hint[b-oqi2yvf449] {
    font-size: 12px;
    color: var(--text-muted);
    margin-bottom: 4px;
}

.paip-settings-field select[b-oqi2yvf449] {
    appearance: none;
    -webkit-appearance: none;
    align-self: flex-start;
    background-color: var(--white);
    border: 1px solid var(--border);
    border-radius: 999px;
    padding: 6px 30px 6px 14px;
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 600;
    color: var(--text-secondary);
    letter-spacing: 0.02em;
    cursor: pointer;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'><path d='M2 3.5L5 6.5L8 3.5' fill='none' stroke='%235A7080' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/></svg>");
    background-repeat: no-repeat;
    background-position: right 11px center;
}

.paip-settings-field select:hover[b-oqi2yvf449] {
    border-color: var(--navy);
    color: var(--navy);
}

.paip-settings-actions[b-oqi2yvf449] {
    display: flex;
    gap: var(--space-3);
    margin-top: var(--space-4);
}

.paip-settings-actions button[type="button"][b-oqi2yvf449] {
    background: none;
    border: 1.5px solid var(--border-strong);
    border-radius: var(--r-sm);
    padding: 7px 14px;
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--text-secondary);
    cursor: pointer;
}

.paip-settings-actions button[type="button"]:hover[b-oqi2yvf449] {
    border-color: var(--teal);
    color: var(--teal-dim);
}
/* /components/modules/provider/settings/ApiClientExpiryNotice.razor.rz.scp.css */
/* Amber alert bar mirroring the admin home's notifications (AdminNotifications.razor.css), which in
   turn mirror the working queue's unassigned/unmapped alert. Restated here: CSS isolation. */
.paip-api-client-notices[b-amc8sfhysd] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.paip-api-client-notice[b-amc8sfhysd] {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 6px 10px;
    padding: 10px 16px;
    background: #FBEFE2;
    border: 1px solid #F2D9C0;
    border-radius: 9px;
    color: #9A4A1B;
    font-size: 12.5px;
    font-weight: 600;
}

.paip-api-client-notice-detail[b-amc8sfhysd] {
    font-weight: 500;
}
/* /components/modules/provider/settings/ApiClientForm.razor.rz.scp.css */
/* Self-contained (CSS isolation): the form chrome, field labels and hints, option checklist and
   action buttons mirror RcTeamForm.razor.css; the pill select mirrors the mode selects on the
   Teams page. Wider than the team form because each scope row carries a description. */
.paip-team-form[b-oul9ylg2m8] {
    margin-top: var(--space-4);
    padding: var(--space-4);
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: var(--r-md);
    max-width: 720px;
}

.paip-team-form h4[b-oul9ylg2m8] {
    margin: 0 0 var(--space-3);
    font-family: var(--font-display);
    font-size: 14px;
    font-weight: 700;
    color: var(--navy);
}

.paip-settings-field[b-oul9ylg2m8] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-bottom: var(--space-3);
}

.paip-settings-field-label[b-oul9ylg2m8] {
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--navy);
}

.paip-settings-field-hint[b-oul9ylg2m8] {
    font-size: 12px;
    color: var(--text-muted);
    margin-bottom: 4px;
}

.paip-team-form input[type="text"][b-oul9ylg2m8] {
    font-family: var(--font-body);
    font-size: 13px;
    color: var(--text-primary);
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
    padding: 6px 9px;
    width: 100%;
    max-width: 480px;
    box-sizing: border-box;
}

.paip-team-form input[type="text"]:focus[b-oul9ylg2m8] {
    outline: none;
    border-color: var(--teal);
}

/* Pill select, as the Working Queue / Claim Review mode selects on the Teams page. */
.paip-settings-field select[b-oul9ylg2m8] {
    appearance: none;
    -webkit-appearance: none;
    align-self: flex-start;
    background-color: var(--white);
    border: 1px solid var(--border);
    border-radius: 999px;
    padding: 6px 30px 6px 14px;
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 600;
    color: var(--text-secondary);
    letter-spacing: 0.02em;
    cursor: pointer;
    transition: border-color 0.12s ease, color 0.12s ease;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'><path d='M2 3.5L5 6.5L8 3.5' fill='none' stroke='%235A7080' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/></svg>");
    background-repeat: no-repeat;
    background-position: right 11px center;
}

.paip-settings-field select:hover[b-oul9ylg2m8] {
    border-color: var(--navy);
    color: var(--navy);
}

.paip-settings-field select:focus-visible[b-oul9ylg2m8] {
    outline: none;
    border-color: var(--navy);
    box-shadow: 0 0 0 2px var(--surface-2);
}

/* Scope and audience checklists: one option per line, since each carries a description. */
.paip-team-options[b-oul9ylg2m8] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: var(--space-3);
    padding: var(--space-2) var(--space-3);
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
}

.paip-team-option[b-oul9ylg2m8] {
    display: flex;
    align-items: baseline;
    gap: 8px;
    font-size: 13px;
    color: var(--text-secondary);
    cursor: pointer;
}

.paip-team-option input[type="checkbox"][b-oul9ylg2m8] {
    margin: 0;
    position: relative;
    top: 1px;
}

.paip-team-option strong[b-oul9ylg2m8] {
    color: var(--text-primary);
    font-weight: 600;
}

.paip-team-option code[b-oul9ylg2m8] {
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--text-primary);
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
    padding: 0 4px;
}

.paip-settings-actions[b-oul9ylg2m8] {
    display: flex;
    gap: var(--space-3);
    margin-top: var(--space-4);
}

/* The primary submit uses the global .paip-button; style the secondary Cancel here. */
.paip-settings-actions button[type="button"][b-oul9ylg2m8] {
    background: none;
    border: 1.5px solid var(--border-strong);
    border-radius: var(--r-sm);
    padding: 7px 14px;
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--text-secondary);
    cursor: pointer;
    transition: border-color 0.15s ease, color 0.15s ease;
}

.paip-settings-actions button[type="button"]:hover[b-oul9ylg2m8] {
    border-color: var(--teal);
    color: var(--teal-dim);
}
/* /components/modules/provider/settings/ApiClients.razor.rz.scp.css */
/* Page-level layout for the API clients page. Blazor CSS isolation means the Teams page's scoped
   rules (Teams.razor.css) never reach this page even though the class names match, so the page
   chrome is restated here: the settings column, the scope banner, the panel header action and
   the empty editor slot. The fragments (ApiClientsTable / ApiClientForm / ApiClientSecretReveal)
   carry their own scoped styles for the same reason. */
.paip-settings-grid[b-5brqule7y6] {
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
    /* Full page width: eleven columns need it, and the grid scrolls inside its card only when even
       that is not enough (ApiClientsTable.razor.css). */
    max-width: none;
}

/* Scope banner above the panel (mock .scopebanner), as on the Teams page. */
.paip-rc-banner[b-5brqule7y6] {
    background: var(--teal-soft);
    border: 1px solid rgba(0, 160, 154, 0.3);
    color: var(--teal-dim);
    border-radius: 9px;
    padding: 10px 14px;
    font-size: 12.5px;
    font-weight: 600;
}

/* "New API client" header action (mock .btn.ghost); passed into PanelCard's HeaderRight, so it
   renders with this page's CSS scope. */
.paip-rc-panel-btn[b-5brqule7y6] {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 12px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border: 1px solid var(--navy);
    background: var(--white);
    color: var(--navy);
    border-radius: 8px;
    padding: 7px 13px;
    cursor: pointer;
}

.paip-rc-panel-btn:hover[b-5brqule7y6] {
    background: var(--surface-2);
}

/* The editor slot is htmx-swapped in; hide the empty placeholder so the grid gap collapses. */
#paip-api-client-editor:empty[b-5brqule7y6] {
    display: none;
}
/* /components/modules/provider/settings/ApiClientSecretForm.razor.rz.scp.css */
/* Self-contained (CSS isolation): the same card, label, hint, pill select and actions as
   ApiClientForm.razor.css, for the one-field secret form. */
.paip-team-form[b-hly4qlq6pl] {
    margin-top: var(--space-4);
    padding: var(--space-4);
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: var(--r-md);
    max-width: 720px;
}

.paip-team-form h4[b-hly4qlq6pl] {
    margin: 0 0 var(--space-3);
    font-family: var(--font-display);
    font-size: 14px;
    font-weight: 700;
    color: var(--navy);
}

.paip-settings-field[b-hly4qlq6pl] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-bottom: var(--space-3);
}

.paip-settings-field-label[b-hly4qlq6pl] {
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--navy);
}

.paip-settings-field-hint[b-hly4qlq6pl] {
    font-size: 12px;
    color: var(--text-muted);
    margin-bottom: 4px;
}

.paip-settings-field select[b-hly4qlq6pl] {
    appearance: none;
    -webkit-appearance: none;
    align-self: flex-start;
    background-color: var(--white);
    border: 1px solid var(--border);
    border-radius: 999px;
    padding: 6px 30px 6px 14px;
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 600;
    color: var(--text-secondary);
    letter-spacing: 0.02em;
    cursor: pointer;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'><path d='M2 3.5L5 6.5L8 3.5' fill='none' stroke='%235A7080' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/></svg>");
    background-repeat: no-repeat;
    background-position: right 11px center;
}

.paip-settings-field select:hover[b-hly4qlq6pl] {
    border-color: var(--navy);
    color: var(--navy);
}

.paip-settings-actions[b-hly4qlq6pl] {
    display: flex;
    gap: var(--space-3);
    margin-top: var(--space-4);
}

.paip-settings-actions button[type="button"][b-hly4qlq6pl] {
    background: none;
    border: 1.5px solid var(--border-strong);
    border-radius: var(--r-sm);
    padding: 7px 14px;
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--text-secondary);
    cursor: pointer;
}

.paip-settings-actions button[type="button"]:hover[b-hly4qlq6pl] {
    border-color: var(--teal);
    color: var(--teal-dim);
}
/* /components/modules/provider/settings/ApiClientSecretReveal.razor.rz.scp.css */
/* Self-contained (CSS isolation): the same card chrome as the API client form, an amber warning
   because the secret cannot be shown again, and a definition list whose values are selectable
   monospace blocks that wrap rather than overflow the card. */
.paip-team-form[b-ze8d9o6ysj] {
    margin-top: var(--space-4);
    padding: var(--space-4);
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: var(--r-md);
    max-width: 720px;
}

.paip-team-form h4[b-ze8d9o6ysj] {
    margin: 0 0 var(--space-3);
    font-family: var(--font-display);
    font-size: 14px;
    font-weight: 700;
    color: var(--navy);
}

.paip-api-client-reveal-warning[b-ze8d9o6ysj] {
    margin: 0 0 var(--space-3);
    padding: var(--space-2) var(--space-3);
    font-size: 13px;
    line-height: 1.5;
    color: var(--text-primary);
    background: var(--white);
    border-left: 3px solid var(--amber);
    border-radius: var(--r-sm);
}

.paip-api-client-reveal-fields[b-ze8d9o6ysj] {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: var(--space-2) var(--space-4);
    margin: 0;
    align-items: baseline;
}

.paip-api-client-reveal-fields dt[b-ze8d9o6ysj] {
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--navy);
}

.paip-api-client-reveal-fields dd[b-ze8d9o6ysj] {
    margin: 0;
    font-size: 13px;
    color: var(--text-primary);
    min-width: 0;
}

.paip-api-client-reveal-fields code[b-ze8d9o6ysj] {
    display: inline-block;
    font-family: var(--font-mono);
    font-size: 12px;
    color: var(--text-primary);
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
    padding: 4px 8px;
    overflow-wrap: anywhere;
    user-select: all;
}

.paip-settings-actions[b-ze8d9o6ysj] {
    display: flex;
    gap: var(--space-3);
    margin-top: var(--space-4);
}
/* /components/modules/provider/settings/ApiClientsTable.razor.rz.scp.css */
/* Self-contained (CSS isolation): the row-action, empty-row and actions-column rules mirror
   RcTeamsTable.razor.css, plus the secret list and identifier styling this grid adds. */
.paip-team-row-actions[b-ljnx1mz9xo] {
    display: flex;
    gap: 10px;
    align-items: center;
    white-space: nowrap;
}

.paip-team-row-actions button[b-ljnx1mz9xo],
.paip-team-row-actions form button[b-ljnx1mz9xo] {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    font: inherit;
    font-size: 12px;
    font-weight: 600;
    color: var(--navy);
}

/* A hairline between the actions, so Edit / New secret / Revoke read as three controls. */
.paip-team-row-actions > * + *[b-ljnx1mz9xo] {
    border-left: 1px solid var(--border);
    padding-left: 10px;
}

.paip-team-row-actions button:hover[b-ljnx1mz9xo] {
    text-decoration: underline;
}

.paip-team-row-actions .paip-danger[b-ljnx1mz9xo] {
    color: var(--red);
}

.paip-team-row-actions form[b-ljnx1mz9xo] {
    display: inline;
    margin: 0;
}

.paip-team-empty[b-ljnx1mz9xo] {
    color: var(--text-muted);
    font-style: italic;
}

.paip-team-actions-col[b-ljnx1mz9xo] {
    width: 1%;
}

/* Eleven columns, several of them machine identifiers that must not break mid-token: when they do
   not fit, the grid scrolls inside the card rather than running over its border. The scrolling is
   the shared paip-wide-scroll class (app.css, PAIP #1045), which keeps the scrollbar in view. */

/* Client ids and secret hints are machine identifiers: monospace, no wrapping. */
code[b-ljnx1mz9xo] {
    font-family: var(--font-mono);
    font-size: 11.5px;
    color: var(--text-primary);
    white-space: nowrap;
}

/* One line per secret: hint, live/revoked badge, and the revoke link for live ones. */
.paip-api-client-secrets[b-ljnx1mz9xo] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.paip-api-client-secrets li[b-ljnx1mz9xo] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    white-space: nowrap;
}

.paip-api-client-secrets form[b-ljnx1mz9xo] {
    display: inline;
    margin: 0;
}

.paip-api-client-secrets form button[b-ljnx1mz9xo] {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    font: inherit;
    font-size: 12px;
    font-weight: 600;
    color: var(--red);
}

.paip-api-client-secrets form button:hover[b-ljnx1mz9xo] {
    text-decoration: underline;
}

/* The two restriction columns: an unrestricted value reads as a quiet default, not a setting. */
.paip-api-client-unrestricted[b-ljnx1mz9xo] {
    color: var(--text-muted);
}

.paip-api-client-ranges[b-ljnx1mz9xo] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

/* The expiry beside a secret's state: quiet, one token. */
/* A certificate credential (#365) sits in the same list as the secrets; this small caps label is
   the only thing that tells the two apart, since both show a four-character hint. */
.paip-api-client-credential-kind[b-ljnx1mz9xo] {
    font-family: var(--font-display);
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--navy);
}

.paip-api-client-secret-expiry[b-ljnx1mz9xo] {
    font-size: 11.5px;
    color: var(--text-muted);
    white-space: nowrap;
}

/* A timestamp is one token. */
.paip-api-client-lastused[b-ljnx1mz9xo] {
    white-space: nowrap;
}

/* One block per line, never broken across lines: the grid scrolls instead (Landon, 2026-09-09). */
.paip-api-client-ranges code[b-ljnx1mz9xo] {
    white-space: nowrap;
}

/* "View" opens the per-row scope modal; same compact button as the pipeline history's analyzers. */
.paip-api-client-view-btn[b-ljnx1mz9xo] {
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
    padding: 3px 12px;
    font-size: 12px;
    font-weight: 600;
    color: var(--navy);
    cursor: pointer;
    white-space: nowrap;
    transition: all 0.15s;
}

.paip-api-client-view-btn:hover[b-ljnx1mz9xo] {
    background: var(--navy);
    color: var(--white);
    border-color: transparent;
}

/* The scope list inside the modal. The list is this component's own markup (the modal only wraps
   it), so it carries this scope and plain selectors reach it. */
.paip-api-client-scope-list[b-ljnx1mz9xo] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.paip-api-client-scope[b-ljnx1mz9xo] {
    padding: 9px 12px;
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
    background: var(--surface-2);
}

/* Granted: the badge's green. Not granted: the grey card, dimmed, so the eye lands on what is on. */
.paip-api-client-scope-granted[b-ljnx1mz9xo] {
    background: rgba(0, 122, 117, 0.10);
    border-color: rgba(0, 122, 117, 0.30);
}

.paip-api-client-scope-absent[b-ljnx1mz9xo] {
    opacity: 0.7;
}

.paip-api-client-scope-head[b-ljnx1mz9xo] {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    color: var(--text-primary);
}

/* ::deep: the badge is StatusBadge's own markup, so it carries that component's scope, not this one. */
.paip-api-client-scope-head[b-ljnx1mz9xo]  .paip-status-badge {
    margin-left: auto;
}

.paip-api-client-scope-head code[b-ljnx1mz9xo] {
    font-family: var(--font-mono);
    font-size: 11.5px;
    color: var(--text-primary);
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
    padding: 0 5px;
}

.paip-api-client-scope-desc[b-ljnx1mz9xo] {
    margin-top: 3px;
    font-size: 12.5px;
    color: var(--text-secondary);
}

.paip-api-client-revoked td[b-ljnx1mz9xo] {
    opacity: 0.6;
}

/* PAIP #655: what the client did with each granted scope. "Not used" is the line an access review acts
   on, so it carries the warning color; "last used" stays quiet. */
.paip-api-client-scope-use[b-ljnx1mz9xo] {
    font-size: 11.5px;
    color: var(--text-muted);
    white-space: nowrap;
}

.paip-api-client-scope-unused[b-ljnx1mz9xo] {
    color: var(--amber);
    font-weight: 600;
}

.paip-api-client-calls[b-ljnx1mz9xo] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}
/* /components/modules/provider/settings/IngestRunsPanel.razor.rz.scp.css */
/* PAIP #1045: the run search on Ingest. The filter row reuses the global .paip-list-filters /
   .paip-list-filter (app.css), which style selects and search boxes but not date boxes or a
   checkbox; those are this component's own markup, so they are styled here, scoped. */
.paip-ingest-runs-filters[b-h00resrife] {
    margin-bottom: var(--space-3);
}

.paip-ingest-runs-filters input[type="date"][b-h00resrife] {
    font: inherit;
    font-size: 12px;
    letter-spacing: normal;
    text-transform: none;
    color: var(--text-primary);
    padding: 1px var(--space-1);
    border: 1px solid var(--border-strong);
    border-radius: 3px;
    background: var(--surface-1);
}

.paip-ingest-runs-technical[b-h00resrife] {
    cursor: pointer;
}

.paip-ingest-runs-foot[b-h00resrife] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3);
    margin-top: var(--space-3);
    font-size: 12px;
    color: var(--text-secondary);
}

.paip-ingest-runs-more[b-h00resrife] {
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: var(--r-sm, 6px);
    padding: 3px 12px;
    font-size: 12px;
    font-weight: 600;
    color: var(--navy);
    cursor: pointer;
}

.paip-ingest-runs-more:hover[b-h00resrife] {
    background: var(--navy);
    color: var(--white);
    border-color: transparent;
}
/* /components/modules/provider/settings/PayerCoverageTable.razor.rz.scp.css */
/* Persisted-metric stat strip above the coverage table: both config gaps (team routing and
   financial class), six stats. Wraps because six of them exceed the 880px settings grid — without
   it the tiles squeeze and their labels wrap mid-phrase at inconsistent points. */
.paip-coverage-stats[b-3d190596mk] {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 24px;
    padding: 10px 10px 12px;
    border-bottom: 1px solid var(--border);
    margin-bottom: 10px;
}

.paip-coverage-stat-label[b-3d190596mk] {
    display: block;
    font-family: var(--font-display);
    font-size: 10.5px;
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.07em;
}

.paip-coverage-stat-value[b-3d190596mk] {
    display: block;
    font-family: var(--font-mono);
    font-size: 18px;
    font-weight: 500;
    color: var(--navy);
    margin-top: 3px;
}

.paip-coverage-table[b-3d190596mk] {
    width: 100%;
    border-collapse: collapse;
    font-size: 12.5px;
}

.paip-coverage-table th[b-3d190596mk] {
    font-family: var(--font-display);
    font-size: 10.5px;
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    text-align: left;
    padding: 6px 10px;
    border-bottom: 1px solid var(--border);
}

.paip-coverage-table td[b-3d190596mk] {
    padding: 7px 10px;
    border-bottom: 1px solid var(--border);
    vertical-align: top;
}

.paip-coverage-table tr:last-child td[b-3d190596mk] {
    border-bottom: none;
}

.paip-coverage-payer[b-3d190596mk] {
    font-weight: 600;
    color: var(--text-primary);
    white-space: nowrap;
}

/* Per-payer financial-class picker. Posts on change; sized to the longest class label so the
   column doesn't jump as selections change. */
.paip-coverage-class-select[b-3d190596mk] {
    font-family: inherit;
    font-size: 12.5px;
    color: var(--text-primary);
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--r-sm, 6px);
    padding: 3px 8px;
    min-width: 140px;
    cursor: pointer;
}

.paip-coverage-class-select:hover[b-3d190596mk] {
    border-color: var(--navy);
}

/* Red badge for payers no non-catch-all team claims (mock .due-past palette). */
.paip-coverage-unmapped[b-3d190596mk] {
    display: inline-block;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 10.5px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 2px 8px;
    border-radius: 20px;
    background: #A12B2B;
    color: var(--white);
    white-space: nowrap;
}

/* Team chips: quiet pills matching the settings surface. */
.paip-coverage-team[b-3d190596mk] {
    display: inline-block;
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: 999px;
    padding: 2px 10px;
    font-size: 11.5px;
    font-weight: 600;
    color: var(--text-secondary);
    margin: 0 6px 4px 0;
}

/* A mapping team with no members: listed for context, but it provides no effective coverage. */
.paip-coverage-team-empty[b-3d190596mk] {
    color: var(--text-muted);
    border-style: dashed;
    background: var(--white);
    font-style: italic;
}

.paip-coverage-empty[b-3d190596mk] {
    font-size: 12.5px;
    color: var(--text-muted);
    font-style: italic;
}
/* /components/modules/provider/settings/RcTeamForm.razor.rz.scp.css */
/* Self-contained: scoped CSS only reaches this component's own elements, so the reused
   paip-settings-* class names are restyled here rather than inherited from Settings.razor.css. */
.paip-team-form[b-isflirosir] {
    margin-top: var(--space-4);
    padding: var(--space-4);
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: var(--r-md);
    max-width: 520px;
}

.paip-team-form h4[b-isflirosir] {
    margin: 0 0 var(--space-3);
    font-family: var(--font-display);
    font-size: 14px;
    font-weight: 700;
    color: var(--navy);
}

.paip-settings-field[b-isflirosir] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-bottom: var(--space-3);
}

.paip-settings-field-label[b-isflirosir] {
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--navy);
}

.paip-settings-field-hint[b-isflirosir] {
    font-size: 12px;
    color: var(--text-muted);
    margin-bottom: 4px;
}

.paip-settings-field-hint code[b-isflirosir] {
    font-family: var(--font-mono);
    font-size: 11px;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
    padding: 0 4px;
}

.paip-team-form input[type="text"][b-isflirosir],
.paip-team-form textarea[b-isflirosir] {
    font-family: var(--font-body);
    font-size: 13px;
    color: var(--text-primary);
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
    padding: 6px 9px;
    width: 100%;
    box-sizing: border-box;
}

.paip-team-form textarea[b-isflirosir] {
    resize: vertical;
}

.paip-team-form input[type="text"]:focus[b-isflirosir],
.paip-team-form textarea:focus[b-isflirosir] {
    outline: none;
    border-color: var(--teal);
}

.paip-team-check[b-isflirosir] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--text-secondary);
    margin-bottom: var(--space-3);
    cursor: pointer;
}

.paip-team-check input[type="checkbox"][b-isflirosir] {
    margin: 0;
}

.paip-settings-actions[b-isflirosir] {
    display: flex;
    gap: var(--space-3);
    margin-top: var(--space-4);
}

/* The primary submit uses the global .paip-button; style the secondary Cancel here. */
.paip-settings-actions button[type="button"][b-isflirosir] {
    background: none;
    border: 1.5px solid var(--border-strong);
    border-radius: var(--r-sm);
    padding: 7px 14px;
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--text-secondary);
    cursor: pointer;
    transition: border-color 0.15s ease, color 0.15s ease;
}

.paip-settings-actions button[type="button"]:hover[b-isflirosir] {
    border-color: var(--teal);
    color: var(--teal-dim);
}

/* Catch-all ignores the values, so the textarea is disabled — dim it as a cue. */
.paip-team-form textarea:disabled[b-isflirosir] {
    opacity: 0.5;
    cursor: not-allowed;
    background: var(--surface-2);
}

/* Payer-value suggestions derived from the tenant's data. */
.paip-team-options[b-isflirosir] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 14px;
    margin-bottom: var(--space-3);
    max-height: 168px;
    overflow-y: auto;
    padding: var(--space-2);
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
}

.paip-team-option[b-isflirosir] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: var(--text-secondary);
    cursor: pointer;
}

.paip-team-option input[type="checkbox"][b-isflirosir] { margin: 0; }

/* Catch-all ignores the values, so the whole checklist is disabled — dim it as a cue. */
.paip-team-options:has(input:disabled)[b-isflirosir] {
    opacity: 0.5;
    cursor: not-allowed;
}
/* /components/modules/provider/settings/RcTeamMembers.razor.rz.scp.css */
.paip-team-members[b-le062693z5] {
    margin-top: var(--space-4);
    padding: var(--space-4);
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: var(--r-md);
    max-width: 520px;
}

.paip-team-members h4[b-le062693z5] {
    margin: 0 0 var(--space-3);
    font-family: var(--font-display);
    font-size: 14px;
    font-weight: 700;
    color: var(--navy);
}

.paip-team-member-list[b-le062693z5] {
    list-style: none;
    margin: 0 0 var(--space-3);
    padding: 0;
    display: flex;
    flex-direction: column;
}

.paip-team-member-list li[b-le062693z5] {
    padding: 6px 0;
    border-bottom: 1px solid var(--border);
}

.paip-team-member-list li:last-child[b-le062693z5] {
    border-bottom: none;
}

.paip-team-member-list form[b-le062693z5] {
    margin: 0;
}

.paip-team-check[b-le062693z5] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--text-primary);
    cursor: pointer;
}

.paip-team-check input[type="checkbox"][b-le062693z5] {
    margin: 0;
}

.paip-team-check em[b-le062693z5] {
    color: var(--text-muted);
    font-style: normal;
    font-size: 12px;
    margin-left: 6px;
}

.paip-settings-actions[b-le062693z5] {
    margin-top: var(--space-3);
}

.paip-settings-actions button[b-le062693z5] {
    background: none;
    border: 1.5px solid var(--border-strong);
    border-radius: var(--r-sm);
    padding: 7px 14px;
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--text-secondary);
    cursor: pointer;
}
/* /components/modules/provider/settings/RcTeamsTable.razor.rz.scp.css */
/* Compact, link-style row actions for the RC teams grid. */
.paip-team-row-actions[b-021f9eesp1] {
    display: flex;
    gap: 10px;
    align-items: center;
    white-space: nowrap;
}

.paip-team-row-actions button[b-021f9eesp1],
.paip-team-row-actions form button[b-021f9eesp1] {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    font: inherit;
    font-size: 12px;
    font-weight: 600;
    color: var(--navy);
}

.paip-team-row-actions button:hover[b-021f9eesp1] {
    text-decoration: underline;
}

.paip-team-row-actions .paip-danger[b-021f9eesp1] {
    color: var(--red);
}

.paip-team-row-actions form[b-021f9eesp1] {
    display: inline;
    margin: 0;
}

.paip-team-empty[b-021f9eesp1] {
    color: var(--text-muted);
    font-style: italic;
}

.paip-team-actions-col[b-021f9eesp1] {
    width: 1%;
}
/* /components/modules/provider/settings/Settings.razor.rz.scp.css */
.paip-settings-grid[b-efcjkallop] {
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
    /* The column itself spans the page; each card keeps the reading width it had, except the run
       history, which takes the whole width (see .paip-settings-runs). ::deep because the cards are
       child components and do not carry this page's scope attribute. */
    max-width: none;
}

.paip-settings-grid[b-efcjkallop] >  * {
    max-width: 880px;
}

.paip-settings-grid > .paip-settings-runs[b-efcjkallop] {
    max-width: none;
}

.paip-settings-note[b-efcjkallop] {
    font-size: 14px;
    line-height: 1.55;
    color: var(--text-secondary);
    margin: 0 0 var(--space-4);
}

.paip-settings-note code[b-efcjkallop] {
    font-family: var(--font-mono);
    font-size: 12px;
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
    padding: 1px 5px;
    color: var(--text-primary);
}

/* Upload fields ----------------------------------------------------------- */
.paip-settings-fields[b-efcjkallop] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-3);
}

@media (max-width: 640px) {
    .paip-settings-fields[b-efcjkallop] { grid-template-columns: 1fr; }
}

.paip-settings-field[b-efcjkallop] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: var(--space-4);
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: var(--r-md);
}

.paip-settings-field-label[b-efcjkallop] {
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--navy);
}

.paip-settings-field-hint[b-efcjkallop] {
    font-size: 12px;
    color: var(--text-muted);
    margin-bottom: var(--space-3);
}

.paip-settings-field input[type="file"][b-efcjkallop] {
    font-family: var(--font-body);
    font-size: 13px;
    color: var(--text-secondary);
}

.paip-settings-field input[type="file"][b-efcjkallop]::file-selector-button {
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    background: var(--white);
    color: var(--navy);
    border: 1.5px solid var(--border-strong);
    border-radius: var(--r-sm);
    padding: 6px 12px;
    margin-right: var(--space-3);
    cursor: pointer;
    transition: border-color 0.15s ease, color 0.15s ease;
}

.paip-settings-field input[type="file"][b-efcjkallop]::file-selector-button:hover {
    border-color: var(--teal);
    color: var(--teal-dim);
}

.paip-settings-actions[b-efcjkallop] {
    margin-top: var(--space-4);
}

.paip-settings-result[b-efcjkallop] {
    margin-top: var(--space-3);
}

/* Result fragments swapped in via fetch (upload) / htmx (run). They render their own
   markup, so reach them with ::deep from the scoped result container. */
.paip-settings-result[b-efcjkallop]  p {
    margin: 0;
}

.paip-settings-result[b-efcjkallop]  .paip-settings-upload-ok,
.paip-settings-result[b-efcjkallop]  .paip-settings-run-ok {
    font-size: 13px;
    color: var(--text-primary);
    padding: var(--space-3) var(--space-4);
    background: var(--teal-soft);
    border-left: 3px solid var(--teal);
    border-radius: var(--r-sm);
}

.paip-settings-result[b-efcjkallop]  .paip-settings-upload-next {
    font-size: 12px;
    color: var(--text-muted);
    margin-top: var(--space-2);
}

.paip-settings-result[b-efcjkallop]  .paip-settings-upload-error {
    font-size: 13px;
    color: var(--red);
    padding: var(--space-3) var(--space-4);
    background: rgba(192, 85, 43, 0.08);
    border-left: 3px solid var(--red);
    border-radius: var(--r-sm);
}

.paip-settings-result[b-efcjkallop]  code {
    font-family: var(--font-mono);
    font-size: 12px;
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
    padding: 1px 5px;
}

/* ---- Curated ingest selection: the staged file list shown before upload. The review container
   and <ul> are declared in the .razor (scoped), but App.razor.js injects the <li> rows, so reach
   those with ::deep (same pattern as the result fragment above). ---- */
.paip-ingest-review[b-efcjkallop] {
    margin-top: var(--space-4);
    display: flex;
    flex-direction: column;
    gap: var(--space-2, 6px);
}

.paip-ingest-review-head[b-efcjkallop] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-3);
}

.paip-ingest-summary[b-efcjkallop] {
    margin: 0;
    font-size: 12px;
    color: var(--text-secondary);
}

.paip-ingest-clear[b-efcjkallop] {
    font-family: var(--font-display);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    background: none;
    border: none;
    color: var(--text-muted);
    cursor: pointer;
    padding: 2px 4px;
    transition: color 0.15s ease;
}

.paip-ingest-clear:hover[b-efcjkallop] {
    color: var(--teal-dim);
}

.paip-ingest-selected[b-efcjkallop] {
    list-style: none;
    margin: 0;
    padding: 0;
    max-height: 240px;
    overflow-y: auto;
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
}

.paip-ingest-selected[b-efcjkallop]  .paip-ingest-file {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: 6px var(--space-3);
    border-bottom: 1px solid var(--border);
}

.paip-ingest-selected[b-efcjkallop]  .paip-ingest-file:last-child {
    border-bottom: none;
}

.paip-ingest-selected[b-efcjkallop]  .paip-ingest-file-name {
    flex: 1 1 auto;
    min-width: 0;
    font-family: var(--font-mono);
    font-size: 12px;
    color: var(--text-primary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.paip-ingest-selected[b-efcjkallop]  .paip-ingest-file-size {
    flex: 0 0 auto;
    font-size: 11px;
    color: var(--text-muted);
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.paip-ingest-selected[b-efcjkallop]  .paip-ingest-file-remove {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    padding: 0;
    font-size: 16px;
    line-height: 1;
    background: none;
    border: none;
    border-radius: var(--r-sm);
    color: var(--text-muted);
    cursor: pointer;
    transition: color 0.15s ease, background 0.15s ease;
}

.paip-ingest-selected[b-efcjkallop]  .paip-ingest-file-remove:hover {
    color: var(--white);
    background: var(--danger, #c0392b);
}

/* ---- PAIP #644: ingest/ already holds files no run has taken; the uploader chooses. ---- */
.paip-ingest-staged[b-efcjkallop] {
    margin-top: var(--space-4);
    padding: var(--space-3);
    border: 1px solid var(--amber);
    border-radius: var(--r-sm);
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-size: 12.5px;
}

.paip-ingest-staged[hidden][b-efcjkallop] {
    display: none;
}

.paip-ingest-staged legend[b-efcjkallop] {
    font-weight: 700;
    padding: 0 4px;
}

/* The upload result is a fragment (IngestUploaded) swapped in by App.razor.js: ::deep, as above. */
.paip-settings-result[b-efcjkallop]  .paip-settings-upload-skipped {
    margin: 4px 0 0 18px;
    padding: 0;
    font-size: 12px;
    color: var(--text-secondary);
}

.paip-settings-result[b-efcjkallop]  .paip-settings-upload-archived {
    margin: 6px 0 0;
    font-size: 12px;
}
/* /components/modules/provider/settings/Teams.razor.rz.scp.css */
/* Page-level layout for the standalone Teams admin page. The fragment components
   (RcTeamsTable / RcTeamForm / RcTeamMembers) carry their own scoped styles. */
.paip-settings-grid[b-hmlyato5yc] {
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
    max-width: 880px;
}

.paip-team-back[b-hmlyato5yc] {
    margin: 0;
    font-size: 13px;
}

.paip-team-back a[b-hmlyato5yc] {
    color: var(--teal-dim);
    text-decoration: none;
    font-weight: 600;
}

.paip-team-back a:hover[b-hmlyato5yc] {
    text-decoration: underline;
}

.paip-team-note[b-hmlyato5yc] {
    font-size: 14px;
    line-height: 1.55;
    color: var(--text-secondary);
    margin: 0 0 var(--space-4);
}

.paip-team-admin[b-hmlyato5yc] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.paip-team-toolbar[b-hmlyato5yc] {
    margin-bottom: var(--space-2);
}

/* The editor slot is htmx-swapped in; hide the empty placeholder. */
#paip-team-editor:empty[b-hmlyato5yc] {
    display: none;
}

/* Working Queue mode setting: label + pill-style select (matches the team form), and the
   htmx-injected "Saved" confirmation (reached with ::deep — it has no scoped attribute). */
.paip-settings-field[b-hmlyato5yc] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-bottom: var(--space-3);
    max-width: 280px;
}

.paip-settings-field-label[b-hmlyato5yc] {
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--navy);
}

.paip-settings-field select[b-hmlyato5yc] {
    appearance: none;
    -webkit-appearance: none;
    background-color: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: 999px;
    padding: 6px 30px 6px 14px;
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 600;
    color: var(--text-secondary);
    letter-spacing: 0.02em;
    cursor: pointer;
    transition: border-color 0.12s ease, color 0.12s ease;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'><path d='M2 3.5L5 6.5L8 3.5' fill='none' stroke='%235A7080' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/></svg>");
    background-repeat: no-repeat;
    background-position: right 11px center;
}

.paip-settings-field select:hover[b-hmlyato5yc] {
    border-color: var(--navy);
    color: var(--navy);
}

.paip-settings-field select:focus-visible[b-hmlyato5yc] {
    outline: none;
    border-color: var(--navy);
    box-shadow: 0 0 0 2px var(--surface-2);
}

.paip-settings-actions[b-hmlyato5yc] {
    margin-top: var(--space-3);
}

.paip-settings-result[b-hmlyato5yc] {
    margin-top: var(--space-3);
}

.paip-settings-result[b-hmlyato5yc]  p {
    font-size: 13px;
    color: var(--text-primary);
    padding: var(--space-3) var(--space-4);
    background: var(--teal-soft);
    border-left: 3px solid var(--teal);
    border-radius: var(--r-sm);
    margin: 0;
}

/* Scope banner (mock .scopebanner) above the team-management panels. The panels themselves use
   the shared PanelCard component (global .paip-panel-card*); only this banner and the header
   action button below stay scoped to the page. */
.paip-rc-banner[b-hmlyato5yc] {
    background: var(--teal-soft);
    border: 1px solid rgba(0, 160, 154, 0.3);
    color: var(--teal-dim);
    border-radius: 9px;
    padding: 10px 14px;
    font-size: 12.5px;
    font-weight: 600;
}

/* "New team" header action (mock .btn.ghost); passed into PanelCard's HeaderRight, so it renders
   with this page's CSS scope. */
.paip-rc-panel-btn[b-hmlyato5yc] {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 12px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border: 1px solid var(--navy);
    background: var(--white);
    color: var(--navy);
    border-radius: 8px;
    padding: 7px 13px;
    cursor: pointer;
}

.paip-rc-panel-btn:hover[b-hmlyato5yc] {
    background: var(--surface-2);
}
/* /components/modules/terms/TermsAcceptance.razor.rz.scp.css */
.paip-terms[b-z2vagdyhe6] {
    max-width: 60rem;
}

.paip-terms-meta[b-z2vagdyhe6] {
    color: var(--paip-text-muted, #6b7280);
    margin-top: 0;
}

.paip-terms-body[b-z2vagdyhe6] {
    white-space: pre-wrap;   /* keep the author's line breaks; text is HTML-encoded by Razor */
    max-height: 60vh;
    overflow-y: auto;
    padding: 1rem;
    border: 1px solid var(--paip-border, #d1d5db);
    border-radius: 0.375rem;
}

.paip-terms-actions[b-z2vagdyhe6] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    margin-top: 1rem;
}

[b-z2vagdyhe6] .paip-terms-error {
    color: var(--paip-danger, #b91c1c);
}
