/* /Components/AccessDrawer.razor.rz.scp.css */
/* Starts below the fixed app bar and stacks under it (sidebar 100 < 140 < preview banner 145, app bar 150,
   account menu 190+), so the bar and its open account menu stay visible and usable. */
.access-drawer-overlay[b-3gza2cfdu1] {
    position: fixed;
    inset: var(--v21-topbar) 0 0;
    z-index: 140;
    display: flex;
    justify-content: flex-end;
    background: var(--clv-color-overlay);
}

/* The preview banner adds a second 60px fixed bar, as in layout.css. */
.preview-active .access-drawer-overlay[b-3gza2cfdu1] {
    top: calc(var(--v21-topbar) + 60px);
}

.access-drawer[b-3gza2cfdu1] {
    display: flex;
    width: min(680px, 100vw);
    max-width: 680px;
    height: 100%;
    flex-direction: column;
    overflow: hidden;
    border-left: 1px solid var(--color-border);
    background: var(--color-white);
    box-shadow: var(--shadow-lg);
}

.access-drawer-header[b-3gza2cfdu1],
.access-drawer-footer[b-3gza2cfdu1] {
    display: flex;
    flex: 0 0 auto;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-4);
    padding: var(--space-4) var(--space-6);
    border-bottom: 1px solid var(--color-border-light);
}

.access-drawer-identity[b-3gza2cfdu1] {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: var(--space-3);
}

.access-drawer-header h3[b-3gza2cfdu1] {
    margin: 0;
    color: var(--color-navy);
    font-family: var(--font-heading);
    font-size: var(--text-title3);
    font-weight: var(--font-medium);
}

.access-drawer-header p[b-3gza2cfdu1] {
    margin: var(--space-1) 0 0;
    color: var(--color-service-grey);
    font-size: var(--text-subhead);
}

.access-drawer-close[b-3gza2cfdu1] {
    width: 44px;
    min-width: 44px;
    min-height: 44px;
    border-radius: var(--radius-md);
    color: var(--color-service-grey);
    font-size: var(--text-title3);
}

.access-drawer-close:hover[b-3gza2cfdu1] {
    background: var(--color-surface);
    color: var(--color-navy);
}

.access-drawer-close:focus-visible[b-3gza2cfdu1] {
    outline: none;
    box-shadow: var(--shadow-focus);
}

.access-drawer-body[b-3gza2cfdu1] {
    min-width: 0;
    flex: 1 1 auto;
    overflow-y: auto;
    padding: var(--space-6);
}

/* Inset, because the drawer's overflow: hidden clips an outer ring on this scroll region. */
.access-drawer-body:focus-visible[b-3gza2cfdu1] {
    outline: none;
    box-shadow: var(--shadow-focus) inset;
}

.access-drawer-footer[b-3gza2cfdu1] {
    align-items: center;
    justify-content: flex-end;
    border-top: 1px solid var(--color-border-light);
    border-bottom: 0;
    background: var(--color-white);
}

.access-drawer-footer[b-3gza2cfdu1]  .btn {
    min-height: 44px;
}

@media (max-width: 427px) {
    .access-drawer[b-3gza2cfdu1] {
        width: 100vw;
        max-width: 100vw;
        border-left: 0;
    }

    .access-drawer-header[b-3gza2cfdu1],
    .access-drawer-body[b-3gza2cfdu1],
    .access-drawer-footer[b-3gza2cfdu1] {
        padding-right: var(--space-4);
        padding-left: var(--space-4);
    }

    .access-drawer-footer[b-3gza2cfdu1] {
        align-items: stretch;
        flex-direction: column-reverse;
    }

    .access-drawer-footer[b-3gza2cfdu1]  .btn {
        width: 100%;
    }
}

.access-drawer-body[b-3gza2cfdu1]  h4 { margin: var(--space-6) 0 var(--space-3); font-weight: var(--font-medium); color: var(--clv-color-deep-teal); }
.access-drawer-body[b-3gza2cfdu1]  h4:first-child { margin-top: 0; }
.access-drawer-body[b-3gza2cfdu1]  .settings-detail-grid { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 0 var(--space-3); margin: 0 0 var(--space-4); }
.access-drawer-body[b-3gza2cfdu1]  .settings-detail-grid dt,
.access-drawer-body[b-3gza2cfdu1]  .settings-detail-grid dd { margin: 0; padding: var(--space-2) 0; border-bottom: 1px solid var(--clv-color-border); overflow-wrap: anywhere; }
.access-drawer-body[b-3gza2cfdu1]  .settings-detail-grid dt { color: var(--clv-color-text-link); }
.access-drawer-body[b-3gza2cfdu1]  .settings-detail-events { padding-left: 0; list-style: none; margin: 0; counter-reset: settings-event; }
/* A counter column keeps each number on its summary line whether the event disclosure is open or closed. */
.access-drawer-body[b-3gza2cfdu1]  .settings-detail-events li { display: grid; grid-template-columns: var(--space-8) minmax(0, 1fr); align-items: baseline; counter-increment: settings-event; }
.access-drawer-body[b-3gza2cfdu1]  .settings-detail-events li::before { content: counter(settings-event) "."; }
.access-drawer-body[b-3gza2cfdu1]  .settings-detail-event { min-width: 0; }
/* The 44px line keeps a touch-sized row without extra padding; the number is the only marker.
   The recorded detail truncates first so the event time always stays visible. */
.access-drawer-body[b-3gza2cfdu1]  .settings-detail-event-summary { display: flex; gap: var(--space-2); min-width: 0; line-height: 44px; white-space: nowrap; }
.access-drawer-body[b-3gza2cfdu1]  .settings-detail-event-text { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.access-drawer-body[b-3gza2cfdu1]  .settings-detail-event-summary time { flex: none; color: var(--clv-color-text-link); font-variant-numeric: tabular-nums; }
.access-drawer-body[b-3gza2cfdu1]  summary.settings-detail-event-summary { list-style: none; cursor: pointer; color: var(--clv-color-deep-teal); }
.access-drawer-body[b-3gza2cfdu1]  summary.settings-detail-event-summary::-webkit-details-marker { display: none; }
.access-drawer-body[b-3gza2cfdu1]  .settings-detail-event p { margin: 0 0 var(--space-2); white-space: normal; overflow-wrap: anywhere; color: var(--clv-color-text-link); }
.access-drawer-body[b-3gza2cfdu1]  .settings-technical-details { margin-top: var(--space-6); }
.access-drawer-body[b-3gza2cfdu1]  .settings-technical-details summary { cursor: pointer; min-height: 44px; color: var(--clv-color-text-link); }
.access-drawer-body[b-3gza2cfdu1]  code { font-family: var(--clv-font-mono); font-size: var(--text-caption1); word-break: normal; overflow-wrap: normal; display: block; overflow-x: auto; white-space: nowrap; }
/* /Components/AccessRoleDrawer.razor.rz.scp.css */
.access-form-field[b-ou3ucy7rou] {
    display: grid;
    gap: var(--space-2);
    margin-bottom: var(--space-5);
}

.access-form-field label[b-ou3ucy7rou] {
    color: var(--color-navy);
    font-size: var(--text-subhead);
    font-weight: var(--font-medium);
}

.access-form-field input[b-ou3ucy7rou],
.access-form-field textarea[b-ou3ucy7rou] {
    width: 100%;
    min-height: 44px;
    padding: var(--space-3) var(--space-4);
    border: 1.5px solid var(--color-control-border);
    border-radius: var(--radius-md);
    color: var(--color-navy);
    font: inherit;
}

.access-form-field textarea[b-ou3ucy7rou] {
    min-height: 88px;
    resize: vertical;
}

.access-form-field input:focus-visible[b-ou3ucy7rou],
.access-form-field textarea:focus-visible[b-ou3ucy7rou] {
    outline: none;
    border-color: var(--color-blue);
    box-shadow: var(--shadow-focus);
}

.access-field-error[b-ou3ucy7rou],
.access-inline-error[b-ou3ucy7rou] {
    color: var(--color-error);
    font-size: var(--text-footnote);
}

.access-inline-error[b-ou3ucy7rou] {
    margin-bottom: var(--space-4);
    padding: var(--space-3);
    border: 1px solid var(--color-error-tint-border);
    border-radius: var(--radius-md);
    background: var(--color-error-tint);
}

.access-search[b-ou3ucy7rou] {
    max-width: none;
}

.access-search input[b-ou3ucy7rou] {
    min-height: 44px;
}

.permission-count[b-ou3ucy7rou] {
    margin: var(--space-2) 0 var(--space-5);
    color: var(--color-service-grey);
    font-size: var(--text-caption1);
}

.permission-groups[b-ou3ucy7rou] {
    display: grid;
    gap: var(--space-6);
}

.access-choice-group[b-ou3ucy7rou] {
    display: grid;
    gap: var(--space-2);
    margin: 0;
    padding: 0;
    border: 0;
}

.access-choice-group legend[b-ou3ucy7rou] {
    margin-bottom: var(--space-3);
    color: var(--color-navy);
    font-family: var(--font-heading);
    font-size: var(--text-body);
    font-weight: var(--font-medium);
}

.access-choice[b-ou3ucy7rou] {
    display: flex;
    min-height: 44px;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-3);
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-md);
    cursor: pointer;
}

.access-choice:has(input:checked)[b-ou3ucy7rou] {
    border-color: var(--color-blue);
    background: var(--color-info-tint);
}

.access-choice input[b-ou3ucy7rou] {
    width: 18px;
    height: 18px;
    margin: var(--space-1) 0 0;
    accent-color: var(--color-navy);
}

.access-choice strong[b-ou3ucy7rou],
.access-choice small[b-ou3ucy7rou] {
    display: block;
}

.access-choice strong[b-ou3ucy7rou] {
    color: var(--color-navy);
    font-size: var(--text-subhead);
}

.access-choice small[b-ou3ucy7rou] {
    margin-top: var(--space-1);
    color: var(--color-service-grey);
    font-family: var(--font-mono);
    font-size: var(--text-caption1);
}
/* /Components/AlignmentEmissionPreview.razor.rz.scp.css */
/* Shared .btn is 40px tall; tablet touch targets need 44x44 at every width. */
.alignment-outcome-actions .btn[b-en3q1886b4],
.alignment-outcome-actions .alignment-outcome-cancel[b-en3q1886b4] {
    min-width: 2.75rem;
    min-height: 2.75rem;
}
/* /Components/AssignmentQueueTrack.razor.rz.scp.css */
/* Only the queue's own chrome lives here. The table, its rows, pager and expander are the shared
   AssignmentTable component and are styled by assignments.css under `.assignments-page` (R2-D1) —
   a rule for a `.aq-table*` selector reappearing here means the extraction regressed. */

.aq-clearance[b-1it5g7dgou] { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-1); padding: var(--space-1); border: 1px solid var(--v21-border); border-radius: var(--radius-lg); background: var(--v21-soft); }
.aq-clearance-label[b-1it5g7dgou] { padding: 0 var(--space-2); color: var(--v21-grey); font-size: var(--text-caption1); font-weight: var(--font-medium); }
.aq-clearance .rq-seg-btn:focus-visible[b-1it5g7dgou] { outline: none; box-shadow: var(--shadow-focus); }

.aq-reason-filter[b-1it5g7dgou] { min-height: 36px; border: 1px solid var(--v21-border); border-radius: var(--radius-full); background: var(--color-white); color: var(--v21-navy); padding: var(--space-1) var(--space-3); cursor: pointer; }

/* R3-1: the document bar — the drawer trigger plus the previous/next run through documents with
   outstanding work. One row, so "where am I in the queue" reads in one place. */
.aq-docbar[b-1it5g7dgou] { display: flex; align-items: stretch; gap: var(--space-3); margin: 0 0 var(--space-4); }
.aq-docbar[b-1it5g7dgou]  .asg-filter-trigger { flex: 1; min-width: 0; margin: 0; }
.aq-doc-nav[b-1it5g7dgou] { display: flex; align-items: center; gap: var(--space-2); padding: 0 var(--space-3); border: 1px solid var(--color-border); border-radius: 10px; background: var(--color-white); white-space: nowrap; }
.aq-doc-pos[b-1it5g7dgou] { color: var(--v21-navy); font-size: 13px; font-weight: 500; font-variant-numeric: tabular-nums; }

/* The scope line: how much of the current scope is left. Inset to the toolbar's own padding so the
   figure aligns with the search field rather than the card edge. */
.aq-scope[b-1it5g7dgou] { display: flex; align-items: center; gap: var(--space-4); flex-wrap: wrap; margin: var(--space-2) 0 var(--space-3); padding: 0 var(--space-2); color: var(--v21-grey); font-size: var(--text-caption1); }
.aq-scope-progress[b-1it5g7dgou] { display: flex; align-items: baseline; flex-wrap: wrap; gap: var(--space-2); }
.aq-scope-progress strong[b-1it5g7dgou] { color: var(--v21-navy); font-variant-numeric: tabular-nums; }

.aq-grain-note[b-1it5g7dgou] { margin-top: var(--space-2); color: var(--v21-grey); font-size: var(--text-caption1); font-variant-numeric: tabular-nums; }

.aq-alert[b-1it5g7dgou] { padding: 12px 14px; border: 1px solid var(--clv-color-error-light); border-radius: 6px; color: var(--color-error); background: var(--color-white); margin-bottom: 14px; }
.aq-info[b-1it5g7dgou] { padding: 12px 14px; border: 1px solid var(--color-info-tint-border); border-radius: 6px; color: var(--color-navy); background: var(--color-info-tint); margin-bottom: 14px; }

.rq-empty[b-1it5g7dgou] { text-align: center; padding: 54px 24px; border: 1px solid var(--v21-border-light); border-radius: 8px; background: var(--color-white); }
.rq-empty-ico[b-1it5g7dgou] { width: 42px; height: 42px; margin: 0 auto 13px; border-radius: 50%; display: grid; place-items: center; background: var(--v21-ice); color: var(--v21-blue); font-size: 20px; font-weight: 700; }
.rq-empty-title[b-1it5g7dgou] { font-family: var(--v21-head); font-size: 20px; font-weight: 600; color: var(--v21-navy); }
.rq-empty-sub[b-1it5g7dgou] { margin-top: 5px; color: var(--v21-grey); font-size: 13px; }
/* /Components/AssignmentTable.razor.rz.scp.css */
/* The shared .btn base is 40px; the tablet contract needs a 44px target (2.75rem). */
.asg-withdraw-btn[b-ka9liaa9co] {
    height: calc(var(--space-10) + var(--space-1));
}
/* /Components/BulkApproveConfirm.razor.rz.scp.css */
.asg-bulk-summary[b-2pd6q773eo] {
    margin: 0;
    font-size: var(--text-body);
    line-height: 1.45;
    color: var(--color-navy);
}

.asg-bulk-risk[b-2pd6q773eo] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--color-warning-tint-border);
    border-radius: var(--radius-sm);
    background: var(--color-warning-tint);
}

.asg-bulk-heading[b-2pd6q773eo] {
    font-size: var(--text-footnote);
    font-weight: var(--font-medium);
    color: var(--color-navy);
}
/* /Components/CapabilityRouteView.razor.rz.scp.css */
.access-route-loading[b-c2z78mlmbk],
.access-route-denied[b-c2z78mlmbk] {
    max-width: var(--container-xs);
    margin: var(--space-8) auto;
    padding: var(--space-8);
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-lg);
    background: var(--color-white);
}

.access-route-loading[b-c2z78mlmbk] {
    color: var(--color-service-grey);
}

.access-route-denied[b-c2z78mlmbk] {
    border-color: var(--color-warning);
}

.access-route-denied h1[b-c2z78mlmbk] {
    margin: 0 0 var(--space-2);
    color: var(--color-navy);
    font-family: var(--font-heading);
    font-size: var(--text-title3);
}

.access-route-denied p[b-c2z78mlmbk],
.access-route-loading p[b-c2z78mlmbk] {
    margin: 0;
}
/* /Components/ClearanceJevObservations.razor.rz.scp.css */
/* A grid item defaults to min-width: auto, so the table would widen the whole page instead of scrolling. */
.jev-observations[b-lzsyg5j661] {
    display: grid;
    gap: var(--space-3);
    min-width: 0;
}

.jev-observations h2[b-lzsyg5j661],
.jev-observations h3[b-lzsyg5j661],
.jev-observations p[b-lzsyg5j661] {
    margin: 0;
}

.jev-observations p[b-lzsyg5j661] {
    max-width: 76ch;
    color: var(--color-text-secondary);
}

/* The shared table styles only pad body td cells; the row header uses the same tokens. */
.jev-observations tbody th[b-lzsyg5j661] {
    padding: var(--space-3) var(--space-4);
    font-size: var(--text-subhead);
    font-weight: var(--font-medium);
    text-align: left;
}

/* No answer is the common case, so it reads quieter than an agreement or a disagreement. */
.jev-observations-no-answer[b-lzsyg5j661] {
    color: var(--color-text-secondary);
}
/* /Components/ClearanceReviewSamples.razor.rz.scp.css */
.clearance-review[b-t41j83h337] {
    display: grid;
    gap: var(--space-5);
    min-width: 0;
}

.clearance-review-header[b-t41j83h337],
.clearance-run-title[b-t41j83h337],
.clearance-sample-header[b-t41j83h337],
.clearance-selection-bar[b-t41j83h337],
.clearance-decision[b-t41j83h337] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-4);
}

.clearance-decision-actions[b-t41j83h337] {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: var(--space-3);
}

.clearance-review-header h1[b-t41j83h337],
.clearance-review-header p[b-t41j83h337],
.clearance-run-title h2[b-t41j83h337],
.clearance-run-title p[b-t41j83h337],
.clearance-sample-header h2[b-t41j83h337],
.clearance-sample-header p[b-t41j83h337],
.clearance-decision h2[b-t41j83h337],
.clearance-decision p[b-t41j83h337] {
    margin: 0;
}

.clearance-review-header > div[b-t41j83h337],
.clearance-sample-header > div[b-t41j83h337],
.clearance-decision > div[b-t41j83h337] {
    display: grid;
    gap: var(--space-1);
}

.clearance-review-header > div > p:last-child[b-t41j83h337] {
    max-width: 76ch;
    color: var(--color-text-secondary);
}

.clearance-review-kicker[b-t41j83h337] {
    color: var(--color-text-link);
    font-size: var(--text-caption1);
    font-weight: var(--font-medium);
    letter-spacing: .06em;
    text-transform: uppercase;
}

.clearance-policy-link[b-t41j83h337],
.clearance-text-button[b-t41j83h337] {
    border: 0;
    background: transparent;
    color: var(--color-text-link);
    font: inherit;
    font-weight: var(--font-medium);
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}

.clearance-policy-link[b-t41j83h337] {
    flex: none;
    padding: var(--space-2) 0;
}

.clearance-run-card[b-t41j83h337],
.clearance-review-work[b-t41j83h337],
.clearance-history[b-t41j83h337],
.clearance-decision[b-t41j83h337] {
    padding: var(--space-4);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-white);
}

.clearance-run-card[b-t41j83h337],
.clearance-review-work[b-t41j83h337] {
    display: grid;
    gap: var(--space-4);
}

.clearance-status[b-t41j83h337] {
    display: inline-flex;
    width: fit-content;
    padding: .2rem .55rem;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    color: var(--color-text-secondary);
    font-size: var(--text-caption1);
    font-weight: var(--font-medium);
    white-space: nowrap;
}

.clearance-status.is-current[b-t41j83h337] {
    border-color: var(--color-success);
    background: var(--color-success-light);
    color: var(--color-success);
}

.clearance-status.is-pending[b-t41j83h337] {
    border-color: var(--color-warning);
    background: var(--color-warning-light);
}

.clearance-status.is-error[b-t41j83h337] {
    border-color: var(--color-error);
    background: var(--color-error-light);
    color: var(--color-error);
}

.clearance-run-facts[b-t41j83h337] {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    margin: 0;
    border-top: 1px solid var(--color-border-light);
}

.clearance-run-facts > div[b-t41j83h337] {
    min-width: 0;
    padding: var(--space-3) var(--space-3) 0 0;
}

.clearance-run-facts dt[b-t41j83h337],
.clearance-run-facts dd[b-t41j83h337] {
    margin: 0;
}

.clearance-run-facts dt[b-t41j83h337] {
    color: var(--color-text-secondary);
    font-size: var(--text-caption1);
}

.clearance-run-facts dd[b-t41j83h337] {
    color: var(--color-text-primary);
    font-weight: var(--font-medium);
    overflow-wrap: anywhere;
}

.clearance-progress[b-t41j83h337],
.clearance-notice[b-t41j83h337],
.clearance-selection-bar[b-t41j83h337] {
    padding: var(--space-3);
    border-radius: var(--radius-md);
}

.clearance-progress[b-t41j83h337],
.clearance-notice[b-t41j83h337] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
}

.clearance-progress[b-t41j83h337] {
    border: 1px solid var(--color-info);
    background: var(--color-info-light);
}

.clearance-progress button[b-t41j83h337],
.clearance-notice button[b-t41j83h337] {
    margin-left: auto;
}

.clearance-notice.is-success[b-t41j83h337] {
    border: 1px solid var(--color-success);
    background: var(--color-success-light);
}

.clearance-notice.is-error[b-t41j83h337],
.clearance-field-error[b-t41j83h337] {
    border-color: var(--color-error);
    background: var(--color-error-light);
    color: var(--color-error);
}

.clearance-selection-bar[b-t41j83h337] {
    position: sticky;
    bottom: var(--space-3);
    z-index: 5;
    align-items: center;
    border: 1px solid var(--color-teal);
    background: var(--color-white);
    box-shadow: var(--shadow-md);
}

.clearance-selection-actions[b-t41j83h337] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: var(--space-3);
    margin-left: auto;
}

.clearance-select-column[b-t41j83h337] {
    width: 3rem;
    text-align: center;
}

.clearance-select-column input[b-t41j83h337] {
    width: 1.1rem;
    height: 1.1rem;
    accent-color: var(--color-teal);
}

.clearance-secondary[b-t41j83h337] {
    display: block;
    margin-top: var(--space-1);
    color: var(--color-text-secondary);
    font-size: var(--text-caption1);
}

.clearance-row-action[b-t41j83h337] {
    min-width: 10rem;
}

.clearance-row-action .btn[b-t41j83h337],
.clearance-row-action .clearance-text-button[b-t41j83h337] {
    min-height: 2.5rem;
    margin-right: var(--space-1);
}

.clearance-evidence-detail[b-t41j83h337] {
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(18rem, 2fr);
    gap: var(--space-5);
}

.clearance-evidence-detail h3[b-t41j83h337],
.clearance-evidence-detail p[b-t41j83h337],
.clearance-evidence-detail blockquote[b-t41j83h337] {
    margin-top: 0;
}

.clearance-evidence-detail dl[b-t41j83h337] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-2) var(--space-4);
    margin: 0;
}

.clearance-evidence-detail dl > div[b-t41j83h337] {
    padding-bottom: var(--space-2);
    border-bottom: 1px solid var(--color-border-light);
}

.clearance-evidence-detail dt[b-t41j83h337],
.clearance-evidence-detail dd[b-t41j83h337] {
    margin: 0;
}

.clearance-evidence-detail dt[b-t41j83h337] {
    color: var(--color-text-secondary);
    font-size: var(--text-caption1);
}

.clearance-evidence-detail blockquote[b-t41j83h337] {
    padding-left: var(--space-3);
    border-left: 3px solid var(--color-teal);
    color: var(--color-text-secondary);
}

.clearance-inline-false[b-t41j83h337] {
    display: grid;
    gap: var(--space-2);
    min-width: 13rem;
}

.clearance-inline-false .btn[b-t41j83h337] {
    width: 100%;
}

.clearance-inline-false label[b-t41j83h337],
.clearance-modal label[b-t41j83h337] {
    display: grid;
    gap: var(--space-1);
    font-weight: var(--font-medium);
}

.clearance-inline-false select[b-t41j83h337],
.clearance-inline-false textarea[b-t41j83h337],
.clearance-modal textarea[b-t41j83h337] {
    width: 100%;
    min-height: 2.75rem;
    padding: var(--space-2);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    background: var(--color-white);
    color: var(--color-text-primary);
    font: inherit;
}

.clearance-inline-false textarea[b-t41j83h337],
.clearance-modal textarea[b-t41j83h337] {
    min-height: 5rem;
    resize: vertical;
}

.clearance-decision[b-t41j83h337] {
    align-items: center;
    background: var(--color-surface);
}

.clearance-history summary[b-t41j83h337] {
    min-height: 2.75rem;
    align-content: center;
    color: var(--color-text-link);
    font-weight: var(--font-medium);
    cursor: pointer;
}

.clearance-history-list[b-t41j83h337] {
    display: grid;
    gap: 1px;
    margin-top: var(--space-3);
    background: var(--color-border-light);
}

.clearance-history-list button[b-t41j83h337] {
    display: flex;
    justify-content: space-between;
    gap: var(--space-4);
    padding: var(--space-3);
    border: 0;
    background: var(--color-white);
    color: var(--color-text-primary);
    text-align: left;
    cursor: pointer;
}

.clearance-history-list button span:last-child[b-t41j83h337] {
    color: var(--color-text-secondary);
}

.clearance-modal-overlay[b-t41j83h337] {
    position: fixed;
    inset: 0;
    z-index: 200;
    display: grid;
    place-items: center;
    padding: var(--space-4);
    background: color-mix(in srgb, var(--color-deep-navy) 45%, transparent);
}

.clearance-modal[b-t41j83h337] {
    width: min(34rem, 100%);
    overflow: hidden;
    border-radius: var(--radius-lg);
    background: var(--color-white);
    box-shadow: var(--shadow-lg);
}

.clearance-modal header[b-t41j83h337],
.clearance-modal footer[b-t41j83h337] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    padding: var(--space-4) var(--space-5);
}

.clearance-modal header[b-t41j83h337] {
    border-bottom: 1px solid var(--color-border-light);
}

.clearance-modal header h2[b-t41j83h337] {
    margin: 0;
    font-size: var(--text-title3);
}

.clearance-modal header button[b-t41j83h337] {
    min-width: 2.75rem;
    min-height: 2.75rem;
    border: 0;
    background: transparent;
    color: var(--color-text-secondary);
    font-size: 1.5rem;
    cursor: pointer;
}

.clearance-modal-body[b-t41j83h337] {
    display: grid;
    gap: var(--space-3);
    padding: var(--space-5);
}

.clearance-modal-body p[b-t41j83h337] {
    margin: 0;
}

.clearance-modal footer[b-t41j83h337] {
    justify-content: flex-end;
    border-top: 1px solid var(--color-border-light);
}

@media (max-width: 1100px) {
    .clearance-run-facts[b-t41j83h337] {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .clearance-sample-header[b-t41j83h337],
    .clearance-selection-bar[b-t41j83h337],
    .clearance-decision[b-t41j83h337] {
        align-items: stretch;
        flex-direction: column;
    }

    .clearance-decision-actions[b-t41j83h337] {
        justify-content: flex-start;
    }

    .clearance-primary[b-t41j83h337] {
        width: 100%;
    }

    .clearance-evidence-detail[b-t41j83h337] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 700px) {
    .clearance-review-header[b-t41j83h337] {
        flex-direction: column;
    }

    .clearance-run-facts[b-t41j83h337] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .clearance-progress[b-t41j83h337],
    .clearance-notice[b-t41j83h337],
    .clearance-history-list button[b-t41j83h337] {
        align-items: flex-start;
        flex-direction: column;
    }

    .clearance-progress button[b-t41j83h337],
    .clearance-notice button[b-t41j83h337] {
        margin-left: 0;
    }
}
/* /Components/ComparisonOpportunityLink.razor.rz.scp.css */
.comparison-from-opportunity[b-1sxk1qr405] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-1) var(--space-2);
    align-items: baseline;
    margin: 0;
    font-size: var(--text-footnote);
}

.comparison-from-label[b-1sxk1qr405] {
    color: var(--color-text-secondary);
}

.comparison-from-opportunity a[b-1sxk1qr405] {
    text-decoration: underline;
}
/* /Components/ConfirmDialog.razor.rz.scp.css */
.confirm-dialog-overlay[b-yciu48ggnp] { position: fixed; inset: 0; z-index: 400; display: grid; place-items: center; background: var(--clv-color-overlay); }
.confirm-dialog[b-yciu48ggnp] { display: flex; flex-direction: column; gap: var(--space-3); width: min(540px, 90vw); max-height: 80vh; overflow: auto; padding: var(--space-6); border: 1px solid var(--clv-color-slate-blue); border-radius: var(--radius-lg); background: var(--clv-color-white); color: var(--clv-color-deep-teal); }
.confirm-dialog h3[b-yciu48ggnp] { margin: 0; color: var(--color-navy); font-family: var(--font-heading); font-size: var(--text-body-lg); font-weight: var(--font-medium); }
.confirm-dialog p[b-yciu48ggnp] { margin: 0; }
.confirm-dialog ul[b-yciu48ggnp] { margin: 0; padding-left: var(--space-5); overflow-wrap: anywhere; }
.confirm-dialog-actions[b-yciu48ggnp] { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--space-3); margin-top: calc(var(--space-5) - var(--space-3)); }
.confirm-dialog-actions .btn[b-yciu48ggnp] { min-height: 44px; }
.btn-danger[b-yciu48ggnp] { background: var(--clv-color-dark-navy); border: 2px solid var(--clv-color-slate-blue); color: var(--clv-color-white); }
.btn-danger:hover[b-yciu48ggnp] { background: var(--clv-color-deep-navy); }
/* /Components/DocumentOnlyRolesPanel.razor.rz.scp.css */
.dor-summary[b-rk8f05js0y] {
    display: flex;
    justify-content: space-between;
    gap: var(--space-4);
    margin-bottom: var(--space-4);
    color: var(--color-navy);
    font-size: var(--text-body2);
}

.dor-summary span[b-rk8f05js0y] {
    display: block;
    margin-top: var(--space-1);
    color: var(--color-service-grey);
}

.dor-toolbar[b-rk8f05js0y] {
    justify-content: flex-start;
}

.dor-toolbar .search-field[b-rk8f05js0y] {
    width: min(420px, 100%);
}

.dor-table[b-rk8f05js0y]  .table-scroll-region > .data-table {
    min-width: 860px;
    table-layout: fixed;
}

/* The table scrolls sideways on narrow screens; the editors stay pinned to the visible width. */
.dor-table[b-rk8f05js0y]  .table-scroll-region {
    container-type: inline-size;
}

.dor-inline-edit[b-rk8f05js0y] {
    position: sticky;
    left: var(--space-6);
    box-sizing: border-box;
    max-width: calc(100cqw - 2 * var(--space-6));
    grid-template-columns: minmax(0, 1fr);
}

/* The shared accordion is a two-column grid; this detail reads as one column. */
.dor-table[b-rk8f05js0y]  .dor-detail {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.dor-assets[b-rk8f05js0y] {
    color: var(--color-navy);
    line-height: 1.4;
}

.dor-varies[b-rk8f05js0y] {
    font-style: italic;
}

.dor-detail-head[b-rk8f05js0y] {
    margin-bottom: var(--space-2);
    color: var(--color-service-grey);
    font-size: var(--text-caption1);
    font-weight: var(--font-medium);
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.dor-asset-table[b-rk8f05js0y] {
    min-width: 640px;
    table-layout: fixed;
    background: var(--color-white);
}

/* The shared accordion zeroes every td padding beneath .expandable-row; restore it for this nested table. */
.dor-asset-table td[b-rk8f05js0y] {
    padding: var(--space-3) var(--space-4) !important;
}

.dor-confirm[b-rk8f05js0y] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    padding: var(--space-3);
    border-radius: var(--radius-sm);
    background: var(--color-white);
    border: 1px solid var(--color-border);
    color: var(--color-navy);
    font-size: var(--text-body2);
}

.dor-confirm span[b-rk8f05js0y] {
    color: var(--color-service-grey);
}

.dor-role-name[b-rk8f05js0y] {
    color: var(--color-navy);
    font-weight: var(--font-medium);
}

.dor-secondary[b-rk8f05js0y] {
    display: block;
    margin-top: 2px;
    color: var(--color-service-grey);
    font-size: var(--text-caption1);
}

.dor-notes[b-rk8f05js0y] {
    display: -webkit-box;
    max-width: 340px;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    color: var(--color-service-grey);
    line-height: 1.35;
}

.dor-edit[b-rk8f05js0y] {
    border: 0;
    background: transparent;
    cursor: pointer;
}

.dor-edit:focus-visible[b-rk8f05js0y],
.dor-inline-actions button:focus-visible[b-rk8f05js0y] {
    outline: none;
    box-shadow: var(--shadow-focus);
}

.dor-action-cell[b-rk8f05js0y] {
    text-align: center;
    white-space: nowrap;
}

.dor-action-cell .action-btn[b-rk8f05js0y] {
    display: inline-flex;
    vertical-align: middle;
}

.dor-page[b-rk8f05js0y] {
    align-self: center;
    color: var(--color-service-grey);
    font-size: var(--text-caption1);
}

.btn-cancel[b-rk8f05js0y] {
    padding: 8px 16px;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-white);
    color: var(--color-navy);
    font: inherit;
    cursor: pointer;
}

.btn-cancel:hover[b-rk8f05js0y] {
    background: var(--color-surface);
}


.dor-inline-edit[b-rk8f05js0y] {
    display: grid;
    gap: var(--space-4);
    padding: var(--space-4) var(--space-5);
    border: 1px solid var(--color-border-light);
    background: var(--color-white);
    box-shadow: inset 3px 0 0 var(--color-blue);
}

.dor-inline-edit-head[b-rk8f05js0y] {
    display: flex;
    align-items: baseline;
    gap: var(--space-2);
    color: var(--color-service-grey);
    font-size: var(--text-caption1);
}

.dor-inline-edit-head strong[b-rk8f05js0y] {
    color: var(--color-navy);
    font-family: var(--font-heading);
    font-size: var(--text-body2);
    font-weight: var(--font-medium);
}

.dor-fields[b-rk8f05js0y] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-4);
}

.dor-fields label[b-rk8f05js0y] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    min-width: 0;
}

.dor-fields label > span[b-rk8f05js0y] {
    color: var(--color-navy);
    font-family: var(--font-heading);
    font-size: var(--text-caption1);
    font-weight: var(--font-medium);
}

.dor-fields select[b-rk8f05js0y],
.dor-fields input[b-rk8f05js0y],
.dor-fields textarea[b-rk8f05js0y] {
    width: 100%;
    min-height: 40px;
    border: 1px solid var(--color-control-border);
    border-radius: var(--radius-sm);
    background: var(--color-white);
    color: var(--color-navy);
    font: inherit;
    padding: 8px 10px;
}

.dor-fields textarea[b-rk8f05js0y] {
    resize: vertical;
}

.dor-fields select:focus-visible[b-rk8f05js0y],
.dor-fields input:focus-visible[b-rk8f05js0y],
.dor-fields textarea:focus-visible[b-rk8f05js0y] {
    outline: none;
    box-shadow: var(--shadow-focus);
}

.dor-notes-field[b-rk8f05js0y],
.dor-error[b-rk8f05js0y] {
    grid-column: 1 / -1;
}

.dor-inline-actions[b-rk8f05js0y] {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: var(--space-3);
}

.dor-error[b-rk8f05js0y] {
    padding: var(--space-3);
    border-radius: var(--radius-sm);
    background: var(--color-error-tint);
    color: var(--color-error);
    font-size: var(--text-body2);
}

@media (max-width: 1200px) {
    .dor-edit[b-rk8f05js0y] {
        min-width: 44px;
        min-height: 44px;
    }

    .dor-inline-actions button[b-rk8f05js0y] {
        min-height: 44px;
    }
}

@media (max-width: 640px) {
    .dor-edit[b-rk8f05js0y] {
        width: 44px;
        height: 44px;
    }

    .dor-fields[b-rk8f05js0y] {
        grid-template-columns: 1fr;
    }

    .dor-notes-field[b-rk8f05js0y],
    .dor-error[b-rk8f05js0y] {
        grid-column: auto;
    }

    .dor-inline-edit-head[b-rk8f05js0y] {
        align-items: flex-start;
        flex-direction: column;
        gap: var(--space-1);
    }
}
/* /Components/DocumentProfilePanel.razor.rz.scp.css */
.dp-quiet[b-7dgfaybvuc] {
    margin: 0 0 var(--space-5);
    font-size: 13px;
    color: var(--color-text-secondary);
}

.dp-note[b-7dgfaybvuc],
.dp-none[b-7dgfaybvuc] {
    font-size: 12px;
    color: var(--color-text-secondary);
}

.dp-facts[b-7dgfaybvuc] {
    display: grid;
    gap: var(--space-3);
    margin: 0 0 var(--space-5);
}

.dp-facts > div[b-7dgfaybvuc] {
    display: grid;
    grid-template-columns: 140px minmax(0, 1fr);
    gap: var(--space-4);
}

.dp-facts dt[b-7dgfaybvuc] {
    font-size: 12px;
    font-weight: 600;
    color: var(--color-text-secondary);
}

.dp-facts dd[b-7dgfaybvuc] {
    margin: 0;
    font-size: 13px;
    line-height: 1.55;
    color: var(--color-navy);
}

.dp-tags[b-7dgfaybvuc] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-1);
}

.dp-h[b-7dgfaybvuc] {
    margin: var(--space-5) 0 var(--space-2);
    font-size: 13px;
    font-weight: 600;
    color: var(--color-navy);
}

.dp-framework[b-7dgfaybvuc] {
    margin-bottom: var(--space-4);
}

.dp-framework h5[b-7dgfaybvuc] {
    margin: 0 0 var(--space-2);
    font-size: 12px;
    font-weight: 600;
    color: var(--color-text-secondary);
}

.dp-outline[b-7dgfaybvuc]  .dp-detail {
    grid-template-columns: minmax(0, 1fr);
}

.dp-section-summary[b-7dgfaybvuc] {
    margin: 0;
    font-size: 13px;
    line-height: 1.55;
    color: var(--color-navy);
}

.dp-placements[b-7dgfaybvuc] {
    min-width: 640px;
}

.dp-span[b-7dgfaybvuc] {
    display: inline-block;
    padding: 2px 8px;
    border-radius: var(--radius-full);
    font-size: 11.5px;
    font-weight: 600;
    white-space: nowrap;
}

.dp-span-main[b-7dgfaybvuc] {
    background: var(--color-navy);
    color: var(--color-white);
}

.dp-span-also[b-7dgfaybvuc] {
    background: var(--color-surface);
    color: var(--color-text-secondary);
}

.dp-conf[b-7dgfaybvuc] {
    display: inline-block;
    min-width: 36px;
    margin-right: var(--space-2);
    font-variant-numeric: tabular-nums;
    color: var(--color-navy);
}

.dp-sections[b-7dgfaybvuc] {
    margin-top: var(--space-1);
    font-size: 12px;
    color: var(--color-text-secondary);
}
/* /Components/DocumentWorkCard.razor.rz.scp.css */
/* The record column is a grid track with an automatic minimum, so an unbreakable value in this
   card would widen the column and every card in it. Inline-size containment keeps the card at the
   track width; anything still too wide scrolls inside .table-scroll-region. */
.dwc-card[b-zxonh0daff] { min-width: 0; contain: inline-size; }

/* Subsection headings sit below the 15px card title in the hierarchy. */
h4[b-zxonh0daff] { font-size: var(--text-subhead); margin: 0 0 var(--space-3); }
.msb-asg-count + .dwc-next-section[b-zxonh0daff] { margin-top: var(--space-6); }

/* Plain row links, as on /assignments, with a 44px target. Long comparison names wrap in the cell. */
.dwc-link[b-zxonh0daff] { display: inline-flex; align-items: center; min-height: 44px; white-space: normal; text-align: start; overflow-wrap: anywhere; }

.dwc-nowrap[b-zxonh0daff] { white-space: nowrap; }

/* Blazor trims the whitespace between the status text and the badge. A wrapping flex row spaces
   them only when they share a line, so a wrapped badge starts flush with the status text. */
.dwc-status[b-zxonh0daff] { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: var(--space-2); }
/* /Components/HiddenRolesPanel.razor.rz.scp.css */
.hr-summary[b-6v9ythno7s] {
    margin-bottom: var(--space-4);
    color: var(--color-navy);
    font-size: var(--text-body2);
}

.hr-summary span[b-6v9ythno7s] {
    display: block;
    margin-top: var(--space-1);
    color: var(--color-service-grey);
}

.hr-toolbar[b-6v9ythno7s] {
    justify-content: flex-start;
}

/* Toolbar controls are 44px tall across the app (ui-profile, canonical chrome). */
.hr-toolbar .filter-select[b-6v9ythno7s] {
    height: 44px;
}

.hr-table[b-6v9ythno7s] {
    min-width: 1080px;
    table-layout: fixed;
}

.hr-role-name[b-6v9ythno7s] {
    color: var(--color-navy);
    font-weight: var(--font-medium);
    overflow-wrap: anywhere;
}

.hr-wrap[b-6v9ythno7s] {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    color: var(--color-navy);
    line-height: 1.4;
    overflow-wrap: anywhere;
}

.hr-num[b-6v9ythno7s] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.hr-date[b-6v9ythno7s] {
    white-space: nowrap;
}

.hr-action-cell[b-6v9ythno7s] {
    text-align: center;
}

.hr-restore[b-6v9ythno7s] {
    border: 0;
    background: transparent;
    cursor: pointer;
}

.hr-restore-note[b-6v9ythno7s] {
    color: var(--color-service-grey);
    font-size: var(--text-body2);
    line-height: 1.45;
}

.hr-error[b-6v9ythno7s] {
    padding: var(--space-3);
    border-radius: var(--radius-sm);
    background: var(--color-error-tint);
    color: var(--color-error);
    font-size: var(--text-body2);
}
/* /Components/IntegrationDocumentMapView.razor.rz.scp.css */
/* Layout only: the strip, table, accordion, badges and fields are shared chrome. */

/* Six treatment tiles, then ours-with-no-counterpart set apart: it counts our documents, not a treatment of theirs. */
.integration-map-triage[b-9su2zxs0jx] {
    grid-template-columns: repeat(6, minmax(0, 1fr)) minmax(0, 1.5fr);
}

/* The shared sub-line is one truncated line; these two carry the count a reviewer must act on, so they wrap. */
.integration-tile-sub[b-9su2zxs0jx] {
    white-space: normal;
}

.integration-reverse-tile[b-9su2zxs0jx] {
    margin-left: var(--space-3);
}

.integration-map-toolbar h2[b-9su2zxs0jx] {
    margin-right: auto;
}

.integration-map-note[b-9su2zxs0jx] {
    margin: 0;
    padding: 0 var(--space-5) var(--space-4);
    color: var(--clv-color-text-link);
    font-size: var(--text-caption1);
}

.integration-group-count[b-9su2zxs0jx],
.integration-muted[b-9su2zxs0jx] {
    color: var(--clv-color-text-link);
    font-size: var(--text-caption1);
}

.integration-group-count[b-9su2zxs0jx] {
    margin-left: var(--space-2);
}

.integration-doc-code[b-9su2zxs0jx] {
    display: block;
    white-space: nowrap;
    color: var(--clv-color-deep-teal);
    font-weight: var(--font-medium);
}

.integration-doc-title[b-9su2zxs0jx] {
    display: block;
    color: var(--clv-color-text-link);
    font-size: var(--text-caption1);
}

.integration-suggestion-line[b-9su2zxs0jx],
.integration-status[b-9su2zxs0jx] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-1) var(--space-2);
}

.integration-status[b-9su2zxs0jx] {
    margin-top: var(--space-1);
}

.integration-editor-counterparts[b-9su2zxs0jx],
.integration-editor-fields[b-9su2zxs0jx] {
    display: grid;
    align-content: start;
    gap: var(--space-3);
    min-width: 0;
}

.integration-editor-counterparts p[b-9su2zxs0jx] {
    margin: 0;
}

.integration-chosen[b-9su2zxs0jx] {
    display: grid;
    gap: var(--space-2);
    margin: 0;
    padding: 0;
    list-style: none;
}

.integration-chosen li[b-9su2zxs0jx] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
}

.integration-picker[b-9su2zxs0jx] {
    background: var(--clv-color-white);
}
/* /Components/IntegrationDocumentPicker.razor.rz.scp.css */
/* Layout only: the card, toolbar, table and controls are the comparisons list chrome. */
.integration-picker-foot[b-ptlh7aaxe9] {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-end;
    gap: var(--space-3);
    padding: var(--space-4) var(--space-5);
    border-top: 1px solid var(--color-border-light);
    /* Stays in view while a long list scrolls: it holds the step's only way forward. */
    position: sticky;
    bottom: 0;
    background: var(--color-white);
    border-radius: 0 0 var(--radius-lg) var(--radius-lg);
}

.integration-save-error[b-ptlh7aaxe9] {
    margin: 0 auto 0 0;
    color: var(--color-error);
}

.integration-doc-code[b-ptlh7aaxe9] {
    display: block;
    white-space: nowrap;
    color: var(--clv-color-deep-teal);
    font-weight: var(--font-medium);
}

.integration-doc-title[b-ptlh7aaxe9] {
    display: block;
    color: var(--clv-color-text-link);
    font-size: var(--text-caption1);
}

.integration-picker-note[b-ptlh7aaxe9] {
    margin: 0;
    padding: 0 var(--space-5) var(--space-3);
    color: var(--clv-color-text-link);
    font-size: var(--text-caption1);
}

/* One row at every width: the buttons keep their size and the hint takes what is left, wrapping inside itself. */
.integration-picker-foot[b-ptlh7aaxe9]  .btn {
    flex: 0 0 auto;
    white-space: nowrap;
}

.integration-picker-hint[b-ptlh7aaxe9] {
    flex: 1 1 12rem;
    margin: 0;
    min-width: 0;
    text-align: right;
    color: var(--clv-color-text-link);
    font-size: var(--text-caption1);
}

/* A long title is cut with its full text on hover, so a row stays one code and one line. */
.integration-doc-title[b-ptlh7aaxe9] {
    max-width: 32rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* /Components/IntegrationSaveStatus.razor.rz.scp.css */
.integration-save[b-0sgsnwbqg6] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0 var(--space-2);
    margin-top: var(--space-1);
    color: var(--clv-color-text-link);
    font-size: var(--text-caption1);
}

.integration-save-problem[b-0sgsnwbqg6] {
    color: var(--color-error);
}
/* /Components/ManagementFramework.razor.rz.scp.css */
/* The asset select renders from this component into the matrix's toolbar, so its label takes this scope. */
.map-labelled-select[b-j8ry5bf19y] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    white-space: nowrap;
}

.map-labelled-select .field-label[b-j8ry5bf19y] {
    font-size: var(--text-caption1);
    color: var(--color-text-secondary);
}
/* /Components/MapHint.razor.rz.scp.css */
.map-hint[b-hv8he9vb60] {
    position: relative;
    cursor: help;
    text-decoration: underline dotted;
    text-underline-offset: 3px;
}

.map-hint:hover[b-hv8he9vb60]::after,
.map-hint:focus-visible[b-hv8he9vb60]::after {
    content: attr(data-hint);
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    z-index: 30;
    width: max-content;
    max-width: 16rem;
    padding: var(--space-2) var(--space-3);
    border-radius: var(--radius-sm);
    background: var(--color-navy);
    color: var(--color-white);
    font-size: var(--text-caption1);
    font-weight: normal;
    letter-spacing: normal;
    line-height: 1.4;
    text-align: left;
    text-transform: none;
    white-space: normal;
}

/* A list hint: one entry per line, wide enough that a line breaks in its title, never inside a document code. */
.map-hint-lines:hover[b-hv8he9vb60]::after,
.map-hint-lines:focus-visible[b-hv8he9vb60]::after {
    max-width: 32rem;
    white-space: pre-line;
}

/* A hint low in a table row opens upwards, so the table's scroll region cannot cut it off below the last row. */
.map-hint-up:hover[b-hv8he9vb60]::after,
.map-hint-up:focus-visible[b-hv8he9vb60]::after {
    top: auto;
    bottom: calc(100% + 6px);
}
/* /Components/MapMemberCodes.razor.rz.scp.css */
.map-member-codes[b-eg8klc7lov] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.map-member-code[b-eg8klc7lov] {
    font-family: var(--font-mono, monospace);
    font-size: 0.8125rem;
    white-space: nowrap;
}

.map-count[b-eg8klc7lov] {
    display: block;
    white-space: nowrap;
}

.map-muted[b-eg8klc7lov] {
    font-size: var(--text-caption1);
    color: var(--color-text-secondary);
}
/* /Components/MapPager.razor.rz.scp.css */
.map-pagination[b-rvlbaza9eu] {
    gap: var(--space-4);
}

.map-pagination .table-pagination-right[b-rvlbaza9eu] {
    display: flex;
    align-items: center;
    gap: var(--space-4);
}

.map-pagination .table-pagination-right label[b-rvlbaza9eu] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    white-space: nowrap;
}
/* /Components/MemberInvitation.razor.rz.scp.css */
.invitation-field[b-zrimmaij3y] { display: flex; flex-direction: column; gap: var(--space-2); margin-bottom: var(--space-4); }
.invitation-field input[b-zrimmaij3y], .invitation-field select[b-zrimmaij3y] { width: 100%; min-height: 44px; }
.invitation-notice[b-zrimmaij3y] { color: var(--clv-color-deep-teal); overflow-wrap: anywhere; }
.btn[b-zrimmaij3y] { min-height: 44px; }
[b-zrimmaij3y] .access-drawer { max-width: 100vw; }
[b-zrimmaij3y] .access-drawer-header { overflow-wrap: anywhere; }
/* /Components/MemberRoleDrawer.razor.rz.scp.css */
.access-inline-error[b-dnun5sdjwg] {
    margin-bottom: var(--space-4);
    padding: var(--space-3);
    border: 1px solid var(--color-error-tint-border);
    border-radius: var(--radius-md);
    background: var(--color-error-tint);
    color: var(--color-error);
    font-size: var(--text-subhead);
}

.access-choice-group[b-dnun5sdjwg] {
    display: grid;
    gap: var(--space-2);
    margin: 0;
    padding: 0;
    border: 0;
}

.access-choice-group legend[b-dnun5sdjwg],
.effective-access h4[b-dnun5sdjwg] {
    margin: 0 0 var(--space-3);
    color: var(--color-navy);
    font-family: var(--font-heading);
    font-size: var(--text-body);
    font-weight: var(--font-medium);
}

.access-choice[b-dnun5sdjwg] {
    display: flex;
    min-height: 44px;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-2) 0;
    cursor: pointer;
}

.access-choice:has(input:checked)[b-dnun5sdjwg] {
    color: var(--clv-color-deep-teal);
}

.access-choice input[b-dnun5sdjwg] {
    width: 18px;
    height: 18px;
    margin: var(--space-1) 0 0;
    accent-color: var(--color-navy);
}

.access-choice strong[b-dnun5sdjwg],
.access-choice small[b-dnun5sdjwg] {
    display: block;
}

.access-choice strong[b-dnun5sdjwg] {
    color: var(--color-navy);
    font-size: var(--text-subhead);
}

.access-choice small[b-dnun5sdjwg] {
    margin-top: var(--space-1);
    color: var(--color-service-grey);
    font-size: var(--text-caption1);
}

.effective-access[b-dnun5sdjwg] {
    margin-top: var(--space-6);
    padding-top: var(--space-5);
    border-top: 1px solid var(--color-border-light);
}

.effective-access > p[b-dnun5sdjwg],
.effective-access li[b-dnun5sdjwg] {
    color: var(--color-service-grey);
    font-size: var(--text-subhead);
}

.member-access-actions[b-dnun5sdjwg] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin-top: var(--space-3);
}


.access-choice-group > p[b-dnun5sdjwg] { margin: 0; color: var(--color-text-secondary); }
.member-access-facts[b-dnun5sdjwg] { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--space-2) var(--space-4); font-size: var(--text-subhead); }
.member-access-facts dt[b-dnun5sdjwg] { color: var(--color-text-secondary); }
.effective-access .member-access-note[b-dnun5sdjwg] { margin: var(--space-3) 0 0; }
/* A locked role stays disabled but keeps a readable box; the Settings shell otherwise fades it to 40%. */
.access-choice-group .access-choice input[type="checkbox"]:disabled[b-dnun5sdjwg] { opacity: 1; cursor: not-allowed; }
.access-choice-group .access-choice input[type="checkbox"]:disabled:not(:checked)[b-dnun5sdjwg]::before { border-color: var(--clv-color-control-border); background: var(--clv-color-surface); }
/* Above 1194px the box is native, so the outline is painted on the input itself; below, the shell's ::before draws it. */
@media (min-width: 1195px) {
    .access-choice-group .access-choice input[type="checkbox"]:disabled:not(:checked)[b-dnun5sdjwg] { appearance: none; box-sizing: border-box; flex: none; border: 1.5px solid var(--clv-color-control-border); border-radius: var(--radius-sm); background: var(--clv-color-surface); }
}
.member-access-facts dd[b-dnun5sdjwg] { margin: 0; overflow-wrap: anywhere; }
.member-access-actions .btn[b-dnun5sdjwg] { min-height: 44px; }
.member-danger[b-dnun5sdjwg] { color: var(--clv-color-error-light); border-color: var(--clv-color-error-light); }
.member-danger:hover[b-dnun5sdjwg] { color: var(--clv-color-error-light); background: var(--clv-tint-error); }
/* /Components/MembersNotice.razor.rz.scp.css */
/* The surface is the shared .members-notice in components.css; this only lays out its text and action. */
.members-notice-split[b-niulz85dk9] { font-size: var(--text-body); }
.members-notice-action[b-niulz85dk9] { margin-top: var(--space-2); }
@media (min-width: 1280px) {
    .members-notice-split[b-niulz85dk9] { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); }
    .members-notice-text[b-niulz85dk9] { min-width: 0; }
    .members-notice-action[b-niulz85dk9] { flex: none; margin-top: 0; }
}
/* /Components/NotARoleFlow.razor.rz.scp.css */
/* The dialog shell (.rm-modal*), blast grid (.mc-blast*) and result bar (.mp-bulkbar*) are the shared
   role-workspace chrome in roles.css. Only the content this flow adds is styled here. */
/* Keeps the title, close and footer on screen on a short viewport; only the body scrolls. */
.nar-modal[b-n98bdp4lhc] {
    display: flex;
    flex-direction: column;
    max-height: calc(100dvh - 2 * var(--space-4));
}

.nar-modal .rm-modal-head[b-n98bdp4lhc],
.nar-modal .rm-modal-foot[b-n98bdp4lhc] {
    flex-shrink: 0;
}

.nar-modal .rm-modal-body[b-n98bdp4lhc] {
    min-height: 0;
    overflow-y: auto;
}

.nar-name[b-n98bdp4lhc] {
    color: var(--color-navy);
    font-size: var(--text-body);
    font-weight: var(--font-medium);
    overflow-wrap: anywhere;
}

.nar-lead[b-n98bdp4lhc] {
    margin: var(--space-2) 0 0;
    color: var(--color-service-grey);
    font-size: var(--text-body2);
    line-height: 1.45;
}

.nar-covers[b-n98bdp4lhc] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: var(--space-2) var(--space-4);
    margin: 0;
    font-size: var(--text-body2);
}

.nar-covers dt[b-n98bdp4lhc] {
    color: var(--color-service-grey);
}

.nar-covers dd[b-n98bdp4lhc] {
    margin: 0;
    color: var(--color-navy);
    overflow-wrap: anywhere;
}

.nar-loading[b-n98bdp4lhc] {
    color: var(--color-service-grey);
    font-size: var(--text-body2);
}

.nar-field[b-n98bdp4lhc] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.nar-field > span[b-n98bdp4lhc] {
    color: var(--color-navy);
    font-family: var(--font-heading);
    font-size: var(--text-caption1);
    font-weight: var(--font-medium);
}

.nar-field select[b-n98bdp4lhc],
.nar-field textarea[b-n98bdp4lhc] {
    width: 100%;
    min-height: 40px;
    border: 1px solid var(--color-control-border);
    border-radius: var(--radius-sm);
    background: var(--color-white);
    color: var(--color-navy);
    font: inherit;
    padding: 8px 10px;
}

.nar-field textarea[b-n98bdp4lhc] {
    resize: vertical;
}

.nar-field select:focus-visible[b-n98bdp4lhc],
.nar-field textarea:focus-visible[b-n98bdp4lhc] {
    outline: none;
    box-shadow: var(--shadow-focus);
}

.nar-error[b-n98bdp4lhc] {
    padding: var(--space-3);
    border-radius: var(--radius-sm);
    background: var(--color-error-tint);
    color: var(--color-error);
    font-size: var(--text-body2);
}

.nar-session-expired[b-n98bdp4lhc] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-2);
    flex-shrink: 0;
}

.nar-session-expired p[b-n98bdp4lhc] {
    margin: 0;
}

/* Sits above the mappings selection bar and its applied-batch bar, so none of the three overlap. */
.nar-done[b-n98bdp4lhc] {
    bottom: 112px;
    max-width: calc(100vw - 2 * var(--space-4));
    flex-wrap: wrap;
}

.nar-done strong[b-n98bdp4lhc] {
    white-space: normal;
}
/* /Components/OnboardingNextStep.razor.rz.scp.css */
.onboarding-next-step[b-hv5tmikjlp] {
    margin: 0;
    color: var(--clv-color-text-heading);
    font-size: var(--text-subhead);
    line-height: 1.5;
}

.onboarding-next-step strong[b-hv5tmikjlp] {
    font-weight: var(--font-semibold);
}

.onboarding-next-step a[b-hv5tmikjlp] {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    color: var(--clv-color-text-link);
    font-weight: var(--font-medium);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.onboarding-next-step a:hover[b-hv5tmikjlp] {
    color: var(--clv-color-text-link-hover);
}

.onboarding-next-step a:focus-visible[b-hv5tmikjlp] {
    outline: none;
    box-shadow: var(--clv-focus-ring);
}
/* /Components/OpportunityComparisons.razor.rz.scp.css */
.map-comparisons[b-ihbcuu7a5v] {
    display: grid;
    gap: var(--space-2);
    margin: 0;
    padding: 0;
    font-size: var(--text-subhead);
    list-style: none;
}

.map-comparisons li[b-ihbcuu7a5v] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-1) var(--space-3);
    align-items: baseline;
}

.map-comparisons a[b-ihbcuu7a5v] {
    text-decoration: underline;
}
/* /Components/OpportunityLaunchFailure.razor.rz.scp.css */
.map-action-error[b-po1bc6l771] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2) var(--space-3);
    align-items: center;
    margin: 0;
    color: var(--color-error);
    font-size: var(--text-caption1);
}

.map-action-error a[b-po1bc6l771] {
    text-decoration: underline;
}
/* /Components/PolicyRulesTable.razor.rz.scp.css */
.policy-rules-table th[b-1fy8g7wi6b],
.policy-rules-table td[b-1fy8g7wi6b] {
    font-size: var(--text-body);
}

/* A fixed condition column keeps the Rule column aligned across the Policies pages. */
.policy-rules-table th:first-child[b-1fy8g7wi6b] {
    width: 55%;
}

.policy-rule-lock[b-1fy8g7wi6b] {
    display: inline-flex;
    vertical-align: top;
    align-items: center;
    gap: var(--space-2);
    color: var(--clv-color-text-heading);
}

.policy-rule-lock svg[b-1fy8g7wi6b] {
    flex: none;
}
/* /Components/RoleMappingsPanel.razor.rz.scp.css */
/* Role Mappings view — ported from the v37 prototype (specs/045-v37-ui-parity/reference/role-mappings.css:
   mp-table tweaks + the mpx-* expanded-detail rules) on the earlier v14 base. The app shares the same
   vendored brand tokens, so the prototype values port directly. */

.mp-toolbar-check[b-8klzpkmyh2] { display: inline-flex; align-items: center; gap: 6px; font-size: var(--text-caption1); color: var(--color-navy); cursor: pointer; white-space: nowrap; }
.mp-toolbar-check input[b-8klzpkmyh2] { accent-color: var(--color-navy); width: 14px; height: 14px; cursor: pointer; }

/* Toolbar: filters on the first row, status chips on the second. */
.mp-filter-row[b-8klzpkmyh2], .mp-status-row[b-8klzpkmyh2] { display: flex; align-items: center; gap: var(--space-3); flex-wrap: wrap; width: 100%; }
.mp-status-row[b-8klzpkmyh2] { justify-content: space-between; margin-top: var(--space-3); }
.mp-status-row .export-csv-btn:disabled[b-8klzpkmyh2] { opacity: .5; cursor: default; }
.mp-filter-row .search-field[b-8klzpkmyh2] { flex: 1 1 240px; min-width: 190px; }
.mp-filter-row .filter-select[b-8klzpkmyh2] { flex: 0 0 auto; }
.mapped-role-filter-btn[b-8klzpkmyh2] { display: inline-flex; align-items: center; gap: 7px; height: 36px; padding: 0 12px; border: 1.5px solid var(--color-control-border); border-radius: var(--radius-md); background: var(--color-white); color: var(--color-navy); font: inherit; font-size: var(--text-subhead); cursor: pointer; white-space: nowrap; }
.mapped-role-filter-btn:hover[b-8klzpkmyh2], .mapped-role-filter-btn.active[b-8klzpkmyh2] { border-color: var(--color-blue); background: var(--color-surface); }
.mapped-role-filter-btn svg[b-8klzpkmyh2] { width: 15px; height: 15px; flex: 0 0 auto; }
.mapped-role-chip[b-8klzpkmyh2] { display: inline-flex; align-items: center; height: 30px; padding: 0 10px; border: 1px solid color-mix(in srgb, var(--color-teal) 45%, transparent); border-radius: var(--radius-full); background: color-mix(in srgb, var(--color-teal) 12%, transparent); color: var(--color-navy); font: inherit; font-size: var(--text-caption1); cursor: pointer; white-space: nowrap; }
.mapped-role-chip:hover[b-8klzpkmyh2] { background: color-mix(in srgb, var(--color-teal) 20%, transparent); }

/* Toolbar: multi-asset scope toggle + quick-chip filters */
.mp-scope-toggle[b-8klzpkmyh2] { display: flex; align-items: center; }
.scope-label[b-8klzpkmyh2] { display: flex; align-items: center; gap: 6px; font-size: var(--text-caption1); color: var(--color-navy); cursor: pointer; padding: 0 4px; white-space: nowrap; }
.scope-label input[b-8klzpkmyh2] { accent-color: var(--color-navy); width: 14px; height: 14px; cursor: pointer; }
.chip-group-label[b-8klzpkmyh2] { font-size: var(--text-caption1); color: var(--color-service-grey); padding: 0 4px; align-self: center; }
.quick-chips[b-8klzpkmyh2] { display: flex; gap: 6px; margin-left: auto; align-items: center; flex-wrap: wrap; }
.quick-chip[b-8klzpkmyh2] { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; font-size: 13px; background: var(--color-white); border: 1.5px solid var(--color-control-border); border-radius: 999px; color: var(--color-text-secondary); cursor: pointer; transition: all .12s; }
.quick-chip:hover[b-8klzpkmyh2] { border-color: var(--color-blue); color: var(--color-navy); }
.quick-chip.active[b-8klzpkmyh2] { background: var(--color-navy); color: var(--color-white); border-color: var(--color-navy); }
.qc-num[b-8klzpkmyh2] { font-size: 11px; background: color-mix(in srgb, var(--color-deep-navy) 12%, transparent); border-radius: 999px; padding: 0 6px; }
.quick-chip.active .qc-num[b-8klzpkmyh2] { background: color-mix(in srgb, var(--color-white) 25%, transparent); }

/* v55: slightly tighter cell gutters than the 16px data-table default so all nine columns fit a
   13" viewport without the inner horizontal scroll clipping the Actions header. (Selector depth
   beats the global ".tbl-scroll .data-table thead th" padding rule in components.css.) The thead-th
   half of this rule moved to roles.css (055): the headers are now the shared SortableTh component,
   whose markup never carries this component's scope attribute. */
.tbl-scroll .data-table.mp-table tbody td[b-8klzpkmyh2] { padding-left: 12px; padding-right: 12px; }

/* Rows — v37: every row is clickable/expandable */
.mp-row[b-8klzpkmyh2] { cursor: pointer; }
.mp-row:hover[b-8klzpkmyh2] { background: var(--color-surface); }
.mp-table .grp-row[b-8klzpkmyh2] { cursor: pointer; background: rgba(43, 122, 120, .035); }
.mp-table .grp-row:hover[b-8klzpkmyh2] { background: rgba(43, 122, 120, .07); }
.mp-table .grp-row.open[b-8klzpkmyh2] { background: rgba(43, 122, 120, .09); }
.mp-table .grp-row > td[b-8klzpkmyh2] { border-bottom: 1px solid var(--color-border-light); }

.rl-name[b-8klzpkmyh2] { font-size: var(--text-subhead); color: var(--color-navy); line-height: 1.3; }
.rl-acr[b-8klzpkmyh2] { font-size: var(--text-caption1); color: var(--color-service-grey); margin-left: 6px; }
.grp-name-wrap[b-8klzpkmyh2] { display: flex; align-items: flex-start; gap: 8px; }
/* v55: SVG chevron (the old 11px "▸" text glyph read as a stray bullet before every role name). */
.mp-caret[b-8klzpkmyh2] { display: inline-flex; align-items: center; color: var(--color-service-grey); margin-top: 2px; padding: 2px; flex: 0 0 auto; border: 0; border-radius: 2px; background: transparent; cursor: pointer; }
.mp-caret svg[b-8klzpkmyh2] { width: 13px; height: 13px; transition: transform .18s ease; }
.mp-caret.open svg[b-8klzpkmyh2] { transform: rotate(90deg); }
.mp-caret:focus-visible[b-8klzpkmyh2] { outline: none; box-shadow: var(--shadow-focus); }
.mp-caret.hidden[b-8klzpkmyh2] { visibility: hidden; }
.grp-name[b-8klzpkmyh2] { font-weight: var(--font-medium); display: flex; align-items: center; flex-wrap: wrap; gap: 0; }
/* .grp-applies / .grp-assets / .grp-assign moved to components.css: AppliesCell emits them from a
   C# RenderFragment, which never receives the scoped-CSS attribute, so rules here cannot reach
   them (the stacked two-line layout silently never applied). */
.fan-pill[b-8klzpkmyh2] { font-size: 9.5px; font-family: var(--font-heading); letter-spacing: .05em; text-transform: uppercase; background: color-mix(in srgb, var(--color-teal) 30%, transparent); color: var(--color-navy); border-radius: 3px; padding: 2px 6px; margin-left: 8px; vertical-align: middle; font-weight: 500; }
.candidate-pill[b-8klzpkmyh2] { background: var(--color-warning-tint); color: var(--color-warning); }

.map-arrow[b-8klzpkmyh2] { color: var(--color-service-grey); font-weight: 600; }
.map-arrow.dim[b-8klzpkmyh2] { color: var(--color-text-secondary); }
/* In the mappings table the mapped-to target is plain text, not a control (v37 .mp-table override). */
.mp-table .mapped-to-select[b-8klzpkmyh2] { display: inline; height: auto; padding: 0; border: none; border-radius: 0; background: none; color: var(--color-navy); font-size: var(--text-subhead); font-weight: var(--font-medium); cursor: default; }
.mp-table .mapped-to-select[b-8klzpkmyh2]::after { display: none; }
.mapped-to-select.multi-mapped[b-8klzpkmyh2] { color: var(--color-service-grey); font-style: italic; font-weight: var(--font-regular); }
.no-target[b-8klzpkmyh2] { color: var(--color-text-secondary); }

/* v37 column behaviour: long names wrap instead of stretching the row. */
.mp-table td .rl-name[b-8klzpkmyh2] { white-space: normal; word-break: break-word; }
.mp-table td .mapped-to-select[b-8klzpkmyh2] { white-space: normal; word-break: break-word; }
/* (th:nth-child moved to roles.css with the header padding — see the v55 note above.)
   Indexes count the v55 leading checkbox column: 3 = Documented Role, 5 = Mapped To. */
.mp-table td:nth-child(5)[b-8klzpkmyh2] { min-width: 230px; }
.mp-table td:nth-child(3)[b-8klzpkmyh2] { min-width: 160px; }
.mp-table.mp-readonly td:nth-child(4)[b-8klzpkmyh2] { min-width: 230px; }
.mp-table.mp-readonly td:nth-child(5)[b-8klzpkmyh2] { min-width: 90px; }

/* v55 follow-up: multi-select. The td/th shells are literal markup (scoped); the row checkbox
   input itself is fragment-emitted, so its rule lives in components.css. */
.mp-table .mp-cbcell[b-8klzpkmyh2] { width: 34px; min-width: 34px; text-align: center; padding-left: 8px !important; padding-right: 0 !important; }


/* Bulk confirm modal: the role list above the shared blast-radius grid. */
.mp-bulk-list[b-8klzpkmyh2] { list-style: none; margin: 0 0 14px; padding: 0; display: flex; flex-direction: column; gap: 6px; max-height: 180px; overflow-y: auto; }
.mp-bulk-list li[b-8klzpkmyh2] { font-size: 13px; }
.mp-bulk-more[b-8klzpkmyh2] { color: var(--color-service-grey); font-style: italic; }
/* Sits on the edit-modal layer so the fixed bulk and result bars (900) cannot cover its footer. */
.rm-modal-overlay.rm-bulk-overlay[b-8klzpkmyh2] { z-index: 9000; }
.rm-bulk-modal[b-8klzpkmyh2] { display: flex; flex-direction: column; max-height: calc(100dvh - 2 * var(--space-4)); }
.rm-bulk-modal .rm-modal-body[b-8klzpkmyh2] { overflow-y: auto; min-height: 0; }
.rm-bulk-modal .rm-modal-head[b-8klzpkmyh2], .rm-bulk-modal .rm-modal-foot[b-8klzpkmyh2] { flex-shrink: 0; }
.rm-bulk-modal .mp-bulk-list[b-8klzpkmyh2] { flex-shrink: 0; }
.mp-bulk-kinds[b-8klzpkmyh2] { display: flex; flex-direction: column; gap: var(--space-3); }
.mp-bulk-kinds .mc-kind-field[b-8klzpkmyh2] { margin-top: 0; min-width: 0; overflow-wrap: anywhere; }
.mp-bulk-kinds select[b-8klzpkmyh2] { min-height: 44px; width: 100%; }

@media (max-width: 640px) {
    .mp-bulkbar[b-8klzpkmyh2] { width: calc(100% - 2 * var(--space-4)); flex-wrap: wrap; justify-content: center; gap: var(--space-2); }
    .mp-bulkbar button[b-8klzpkmyh2] { min-height: 44px; height: auto; }
    .rm-bulk-modal .modal-x[b-8klzpkmyh2] { min-width: 44px; min-height: 44px; }
    .rm-bulk-modal .rm-modal-foot button[b-8klzpkmyh2] { min-height: 44px; }
}

/* The match-type / role-type pills, attention badge, kind pill and edit-action
   hover are rendered from C# RenderFragment builders, which Blazor scoped CSS cannot reach, so they live
   in the global components.css. Only classes written as literal markup in this component stay here. */
.mp-row-err[b-8klzpkmyh2] { color: var(--color-error); font-size: var(--text-subhead); margin-top: 4px; }

/* Expanded detail row: example assignments are the primary evidence; candidate and fan-out rows add
   their real mapping controls and per-asset breakdown inside the same panel. */
.mp-exp td[b-8klzpkmyh2] { padding: 0 !important; border: none !important; }
.mp-exp-inner[b-8klzpkmyh2] { max-height: 0; overflow: hidden; transition: max-height var(--duration-base) var(--ease-default); background: var(--color-surface); }
.mp-exp-inner.open[b-8klzpkmyh2] { max-height: 820px; padding: var(--space-3) var(--space-5); }
.mpx-detail[b-8klzpkmyh2] { display: flex; flex-direction: column; gap: var(--space-3); }
.mpx-grid[b-8klzpkmyh2] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 18px; }
.mpx-field[b-8klzpkmyh2] { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.mpx-label[b-8klzpkmyh2] { font-size: 11px; color: var(--color-service-grey); }
.mpx-val[b-8klzpkmyh2] { font-size: 13px; color: var(--color-navy); overflow-wrap: break-word; }
.mpx-notes[b-8klzpkmyh2] { color: var(--color-service-grey); font-size: 12px; line-height: 1.4; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.example-assignments[b-8klzpkmyh2] { background: var(--color-white); border: 1px solid color-mix(in srgb, var(--color-teal) 28%, var(--color-border-light)); border-radius: var(--radius-sm); padding: 12px 14px; }
.example-assignments-head[b-8klzpkmyh2] { color: var(--color-navy); font-size: 12px; font-weight: var(--font-medium); margin-bottom: 8px; }
.example-assignments-loading[b-8klzpkmyh2] { color: var(--color-service-grey); font-size: 13px; padding: 8px 0; }
.example-assignment-line[b-8klzpkmyh2] { padding: 8px 0; border-top: 1px solid var(--color-border-light); }
.example-assignment-quote[b-8klzpkmyh2] { color: var(--color-navy); font-size: 13px; line-height: 1.45; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.example-assignment-meta[b-8klzpkmyh2] { display: flex; align-items: center; gap: 8px; margin-top: 3px; color: var(--color-service-grey); font-size: 11px; }
.example-assignment-meta > span:first-child[b-8klzpkmyh2] { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.example-assignment-status[b-8klzpkmyh2] { flex: 0 0 auto; padding: 2px 6px; border-radius: var(--radius-full); background: var(--color-surface); color: var(--color-service-grey); }
.example-assignments-link[b-8klzpkmyh2] { display: inline-block; margin-top: 8px; color: var(--color-text-link); font-size: 12px; text-decoration: none; }
.example-assignments-link:hover[b-8klzpkmyh2] { color: var(--color-text-link-hover); text-decoration: underline; }

/* Fan-out target-role chips (rendered inside the expanded detail) */
.fanout-head[b-8klzpkmyh2] { font-size: var(--text-caption1); color: var(--color-service-grey); margin-bottom: var(--space-3); }
.fanout-head strong[b-8klzpkmyh2] { color: var(--color-navy); font-weight: var(--font-medium); }
.fo-role-chips[b-8klzpkmyh2] { display: flex; flex-wrap: wrap; gap: 6px; }
.fo-role-chip[b-8klzpkmyh2] { display: inline-flex; align-items: center; padding: 3px 10px; background: color-mix(in srgb, var(--color-teal) 18%, transparent); border: 1px solid color-mix(in srgb, var(--color-teal) 40%, transparent); border-radius: var(--radius-full); font-size: var(--text-caption1); color: var(--color-navy); font-weight: var(--font-medium); }

/* Competing candidate mappings (#243): visible together, but each is an explicit choose-one action. */
.candidate-head[b-8klzpkmyh2] { font-size: var(--text-caption1); color: var(--color-service-grey); }
.candidate-list[b-8klzpkmyh2] { display: flex; flex-direction: column; gap: 6px; }
.candidate-option[b-8klzpkmyh2] { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); padding: 9px 12px; background: var(--color-white); border: 1px solid var(--color-border-light); border-radius: var(--radius-sm); }
.candidate-option > div[b-8klzpkmyh2] { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.candidate-option strong[b-8klzpkmyh2] { color: var(--color-navy); font-size: var(--text-subhead); }
.candidate-option span[b-8klzpkmyh2] { color: var(--color-service-grey); font-size: var(--text-caption1); }
.candidate-choose[b-8klzpkmyh2] { flex: 0 0 auto; border: 1px solid var(--color-navy); background: var(--color-white); color: var(--color-navy); border-radius: var(--radius-sm); padding: 6px 12px; cursor: pointer; font: inherit; font-size: var(--text-caption1); }
.candidate-choose:hover[b-8klzpkmyh2] { background: var(--color-navy); color: var(--color-white); }

/* Client-side paging (#263) bounds table DOM work while keeping the full filtered export in memory. */
.rm-page-size[b-8klzpkmyh2] { display: inline-flex; align-items: center; gap: 7px; margin-left: auto; color: var(--color-service-grey); white-space: nowrap; }
.rm-page-size select[b-8klzpkmyh2] { height: 30px; padding: 0 24px 0 8px; border: 1px solid var(--color-control-border); border-radius: var(--radius-sm); background: var(--color-white); color: var(--color-navy); font: inherit; font-weight: var(--font-medium); cursor: pointer; }

/* Mapped-role filter slide-over */
.mapped-role-filter-overlay[b-8klzpkmyh2] { position: fixed; inset: 0; z-index: 9100; background: color-mix(in srgb, var(--color-deep-navy) 35%, transparent); }
.mapped-role-filter-panel[b-8klzpkmyh2] { position: absolute; top: 0; right: 0; bottom: 0; width: 340px; max-width: 92vw; background: var(--color-white); box-shadow: var(--shadow-lg); display: flex; flex-direction: column; animation: mapped-role-filter-in-b-8klzpkmyh2 .16s ease-out; }
@keyframes mapped-role-filter-in-b-8klzpkmyh2 { from { transform: translateX(100%); } to { transform: translateX(0); } }
.mapped-role-filter-head[b-8klzpkmyh2] { display: flex; align-items: center; justify-content: space-between; padding: var(--space-4) var(--space-5); border-bottom: 1px solid var(--color-border-light); }
.mapped-role-filter-title[b-8klzpkmyh2] { color: var(--color-navy); font-size: var(--text-body); font-weight: var(--font-medium); }
.mapped-role-filter-close[b-8klzpkmyh2] { border: 0; background: none; color: var(--color-service-grey); font-size: 22px; line-height: 1; cursor: pointer; padding: 0 4px; }
.mapped-role-filter-close:hover[b-8klzpkmyh2] { color: var(--color-navy); }
.mapped-role-filter-body[b-8klzpkmyh2] { display: flex; flex-direction: column; gap: 16px; padding: var(--space-4) var(--space-5); overflow-y: auto; }
.mapped-role-filter-search[b-8klzpkmyh2] { width: 100%; box-sizing: border-box; height: 36px; padding: 0 10px; border: 1px solid var(--color-control-border); border-radius: var(--radius-sm); color: var(--color-navy); font: inherit; }
.mapped-role-filter-search:focus[b-8klzpkmyh2] { outline: none; border-color: var(--color-control-border); box-shadow: var(--shadow-focus); }
.mapped-role-filter-group[b-8klzpkmyh2] { display: flex; flex-direction: column; gap: 2px; }
.mapped-role-filter-group-title[b-8klzpkmyh2] { margin-bottom: 4px; color: var(--color-service-grey); font-size: 11px; font-weight: var(--font-medium); letter-spacing: .05em; text-transform: uppercase; }
.mapped-role-filter-option[b-8klzpkmyh2] { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; padding: 8px 10px; border: 0; border-radius: 6px; background: none; color: var(--color-navy); font: inherit; font-size: 13px; text-align: left; cursor: pointer; }
.mapped-role-filter-option:hover[b-8klzpkmyh2] { background: var(--color-surface); }
.mapped-role-filter-name[b-8klzpkmyh2] { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mapped-role-filter-count[b-8klzpkmyh2] { flex: 0 0 auto; color: var(--color-service-grey); font-size: 12px; }

.mc-map[b-8klzpkmyh2] { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; font-size: var(--text-body); }
.mc-from[b-8klzpkmyh2] { font-weight: var(--font-medium); color: var(--color-navy); }
.mc-arrow[b-8klzpkmyh2] { color: var(--color-service-grey); }
.mc-to[b-8klzpkmyh2] { font-weight: var(--font-medium); color: var(--color-navy); background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: 4px 12px; }
.mc-kind-field[b-8klzpkmyh2] { display: flex; flex-direction: column; gap: 6px; margin-top: var(--space-4); color: var(--color-navy); font-size: var(--text-caption1); font-weight: var(--font-medium); }
.mc-kind-field select[b-8klzpkmyh2] { min-height: 40px; border: 1px solid var(--color-control-border); border-radius: var(--radius-sm); background: var(--color-white); color: var(--color-navy); font: inherit; padding: 8px 10px; }
.mc-kind-field small[b-8klzpkmyh2] { color: var(--color-service-grey); font-weight: var(--font-regular); }

/* Edit (manual remap) modal */
.edit-modal-overlay[b-8klzpkmyh2] { position: fixed; inset: 0; background: color-mix(in srgb, var(--color-deep-navy) 45%, transparent); z-index: 9000; display: flex; align-items: center; justify-content: center; padding: var(--space-4); }
.edit-modal[b-8klzpkmyh2] { background: var(--color-white); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); width: 680px; max-width: 96vw; max-height: 88vh; display: flex; flex-direction: column; overflow: hidden; }
.edit-modal-head[b-8klzpkmyh2] { display: flex; align-items: center; justify-content: space-between; padding: var(--space-4) var(--space-5); border-bottom: 1px solid var(--color-border-light); }
.edit-modal-title[b-8klzpkmyh2] { font-size: var(--text-body); font-weight: var(--font-medium); color: var(--color-navy); }
.edit-modal-close[b-8klzpkmyh2] { background: none; border: none; font-size: 20px; color: var(--color-service-grey); cursor: pointer; padding: 2px 6px; line-height: 1; }
.edit-modal-raw[b-8klzpkmyh2] { display: flex; align-items: center; gap: 10px; padding: var(--space-3) var(--space-5); background: var(--color-surface); border-bottom: 1px solid var(--color-border-light); }
.edit-raw-label[b-8klzpkmyh2] { font-size: var(--text-caption1); color: var(--color-service-grey); white-space: nowrap; }
.edit-raw-name[b-8klzpkmyh2] { font-size: var(--text-subhead); color: var(--color-navy); font-weight: var(--font-medium); }
.ce-mode-row[b-8klzpkmyh2] { display: flex; align-items: center; gap: 12px; padding: var(--space-3) var(--space-5); border-bottom: 1px solid var(--color-border-light); flex-wrap: wrap; }
/* Plain-text mode toggle (the prototype leaves these unstyled; a subtle active state keeps it usable). */
.ce-mode-toggle[b-8klzpkmyh2] { display: inline-flex; gap: 2px; }
.ce-mode-opt[b-8klzpkmyh2] { padding: 4px 10px; font-size: 13px; background: none; border: none; color: var(--color-service-grey); cursor: pointer; border-radius: 6px; font-family: inherit; }
.ce-mode-opt:hover[b-8klzpkmyh2] { color: var(--color-navy); }
.ce-mode-opt.active[b-8klzpkmyh2] { color: var(--color-navy); font-weight: 600; background: var(--color-surface); }
.ce-mode-hint[b-8klzpkmyh2] { font-size: var(--text-caption1); color: var(--color-service-grey); }
.ce-new-role-field[b-8klzpkmyh2] { display: flex; flex-direction: column; gap: 5px; padding: var(--space-3) var(--space-5); border-bottom: 1px solid var(--color-border-light); }
.ce-new-role-field label[b-8klzpkmyh2] { font-size: var(--text-caption1); color: var(--color-navy); font-weight: var(--font-medium); }
.ce-new-role-field label span[b-8klzpkmyh2] { color: var(--color-service-grey); font-weight: var(--font-regular); }
.ce-new-role-field input[b-8klzpkmyh2],
.ce-new-role-field select[b-8klzpkmyh2] { width: 100%; box-sizing: border-box; min-height: 38px; padding: 7px 10px; border: 1px solid var(--color-control-border); border-radius: var(--radius-sm); background: var(--color-white); font: inherit; color: var(--color-navy); }
.ce-new-role-field input:focus[b-8klzpkmyh2],
.ce-new-role-field select:focus[b-8klzpkmyh2] { outline: none; border-color: var(--color-control-border); box-shadow: var(--shadow-focus); }
.ce-field-hint[b-8klzpkmyh2] { font-size: 11px; color: var(--color-service-grey); }
.edit-modal-body[b-8klzpkmyh2] { display: flex; flex-direction: column; flex: 1; overflow: hidden; min-height: 0; }
.ce-maps-to[b-8klzpkmyh2] { padding: var(--space-3) var(--space-5); border-bottom: 1px solid var(--color-border-light); }
.ce-maps-to .edit-raw-label[b-8klzpkmyh2] { display: block; margin-bottom: 8px; }
.mr-chips[b-8klzpkmyh2] { display: flex; flex-wrap: wrap; gap: 6px; min-height: 28px; align-items: center; }
.mr-chip[b-8klzpkmyh2] { display: inline-flex; align-items: center; gap: 4px; padding: 3px 6px 3px 10px; background: color-mix(in srgb, var(--color-teal) 20%, transparent); border: 1px solid color-mix(in srgb, var(--color-teal) 50%, transparent); border-radius: var(--radius-full); font-size: var(--text-caption1); color: var(--color-navy); font-weight: var(--font-medium); }
.mr-chip-rm[b-8klzpkmyh2] { border: none; background: none; color: var(--color-navy); cursor: pointer; padding: 0 2px; font-size: 13px; line-height: 1; opacity: .7; }
.mr-chip-rm:hover[b-8klzpkmyh2] { opacity: 1; }
.mr-chips-empty[b-8klzpkmyh2] { font-size: var(--text-caption1); color: var(--color-service-grey); font-style: italic; }
.ce-picker[b-8klzpkmyh2] { display: flex; flex-direction: column; gap: 8px; padding: var(--space-3) var(--space-5); min-height: 240px; overflow: hidden; flex: 1; }
.ce-picker-controls[b-8klzpkmyh2] { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.ce-picker-check[b-8klzpkmyh2] { display: inline-flex; align-items: center; gap: 6px; font-size: var(--text-caption1); color: var(--color-navy); cursor: pointer; }
.ce-picker-check input[b-8klzpkmyh2] { accent-color: var(--color-navy); }
.ce-picker-controls select[b-8klzpkmyh2] { height: 28px; padding: 0 24px 0 8px; border: 1px solid var(--color-control-border); border-radius: var(--radius-sm); background: var(--color-white); color: var(--color-navy); font: inherit; font-size: 11px; }
.edit-search[b-8klzpkmyh2] { width: 100%; padding: 7px 10px; border: 1px solid var(--color-control-border); border-radius: var(--radius-sm); font-size: var(--text-subhead); outline: none; box-sizing: border-box; }
.edit-search:focus[b-8klzpkmyh2] { border-color: var(--color-control-border); box-shadow: var(--shadow-focus); }
.edit-role-list[b-8klzpkmyh2] { flex: 1; overflow-y: auto; display: flex; flex-direction: column; gap: 2px; padding-right: 2px; }
/* justify-content:flex-start defeats the global button rule (justify-content:center) that otherwise
   centres the checkbox+name in each row; font-weight 500 matches the prototype. */
.ce-opt[b-8klzpkmyh2] { display: flex; align-items: center; justify-content: flex-start; gap: 10px; width: 100%; text-align: left; padding: 8px 10px; border: none; border-radius: 8px; background: none; cursor: pointer; font-family: inherit; font-size: var(--text-subhead); font-weight: 500; color: var(--color-navy); }
.ce-opt:hover[b-8klzpkmyh2] { background: var(--color-surface); }
.ce-opt.on[b-8klzpkmyh2] { background: color-mix(in srgb, var(--color-teal) 18%, transparent); }
.ce-opt.on .ce-opt-name[b-8klzpkmyh2] { font-weight: var(--font-medium); color: var(--color-navy); }
.ce-opt-copy[b-8klzpkmyh2] { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.ce-opt-meta[b-8klzpkmyh2] { display: flex; align-items: center; flex-wrap: wrap; gap: 4px; }
.ce-role-source[b-8klzpkmyh2], .ce-role-chip[b-8klzpkmyh2] { display: inline-flex; align-items: center; padding: 1px 6px; border-radius: var(--radius-full); font-size: 10px; font-weight: var(--font-regular); white-space: nowrap; }
.ce-role-source[b-8klzpkmyh2] { background: color-mix(in srgb, var(--color-service-grey) 12%, transparent); color: var(--color-service-grey); }
.ce-role-source.org[b-8klzpkmyh2] { background: color-mix(in srgb, var(--color-teal) 18%, transparent); color: var(--color-navy); }
.ce-role-source.documented[b-8klzpkmyh2] { background: color-mix(in srgb, var(--color-blue) 10%, transparent); color: color-mix(in srgb, var(--color-blue) 70%, var(--color-navy)); }
.ce-role-chip[b-8klzpkmyh2] { background: var(--color-surface); color: var(--color-service-grey); }
.ce-box[b-8klzpkmyh2] { flex-shrink: 0; width: 18px; height: 18px; border: 1.5px solid var(--color-control-border); border-radius: 5px; display: inline-flex; align-items: center; justify-content: center; color: var(--color-white); background: var(--color-white); transition: background .12s, border-color .12s; }
.ce-box svg[b-8klzpkmyh2] { width: 12px; height: 12px; }
.ce-opt.on .ce-box[b-8klzpkmyh2] { background: var(--color-blue); border-color: var(--color-blue); }
.edit-dep-warn[b-8klzpkmyh2] { background: var(--color-warning-tint); border: 1px solid var(--color-warning-tint-border); border-radius: var(--radius-sm); padding: 10px 14px; font-size: var(--text-caption1); color: var(--color-warning); margin: 0 var(--space-5) var(--space-3); }
.edit-modal-foot[b-8klzpkmyh2] { display: flex; justify-content: flex-end; gap: var(--space-2); padding: var(--space-3) var(--space-5); border-top: 1px solid var(--color-border-light); }
.edit-cancel-btn[b-8klzpkmyh2] { padding: 7px 16px; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: var(--color-white); color: var(--color-navy); font-size: var(--text-subhead); cursor: pointer; }
.edit-save-btn[b-8klzpkmyh2] { padding: 7px 16px; border: none; border-radius: var(--radius-sm); background: var(--color-navy); color: var(--color-white); font-size: var(--text-subhead); font-weight: var(--font-medium); cursor: pointer; }
.edit-save-btn:hover[b-8klzpkmyh2] { background: var(--color-blue); }
.edit-save-btn:focus-visible[b-8klzpkmyh2] { outline: 2px solid var(--color-blue); outline-offset: 2px; }
.edit-save-btn:disabled[b-8klzpkmyh2] { opacity: .55; cursor: default; }

/* Feature 054: blast-radius warning when re-mapping a documented role that shares an amalgamated
   PDF-only role. Deliberately loud — splitting a group silently is the failure this exists to stop. */
.remap-warn[b-8klzpkmyh2] {
    margin: 0 20px 4px;
    padding: 12px 14px;
    border: 1px solid var(--color-warning-tint-border);
    border-left: 3px solid var(--color-warning);
    border-radius: 6px;
    background: var(--color-warning-tint);
}

.remap-warn-head[b-8klzpkmyh2] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--color-warning);
}

.remap-warn-icon[b-8klzpkmyh2] {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--color-warning);
    color: var(--color-white);
    font-weight: 700;
    font-size: 12px;
    line-height: 18px;
    text-align: center;
}

.remap-warn-body[b-8klzpkmyh2] {
    margin: 8px 0 0;
    font-size: 12px;
    line-height: 1.5;
    color: var(--color-text-secondary);
}

.remap-warn-list[b-8klzpkmyh2] {
    margin: 8px 0 0;
    padding: 0 0 0 18px;
    max-height: 96px;
    overflow-y: auto;
    font-size: 12px;
    color: var(--color-text-secondary);
}

.remap-warn-name[b-8klzpkmyh2] {
    font-weight: 600;
    color: var(--color-text-primary);
}

.remap-warn-count[b-8klzpkmyh2] {
    color: var(--color-text-secondary);
}

.remap-warn-choice[b-8klzpkmyh2] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
    font-size: 13px;
    font-weight: 600;
    color: var(--color-text-primary);
    cursor: pointer;
}

.remap-warn-note[b-8klzpkmyh2] {
    margin: 6px 0 0 24px;
    font-size: 12px;
    color: var(--color-text-secondary);
}
.mp-assets[b-8klzpkmyh2] { color: var(--color-navy); font-size: 13px; line-height: 1.35; overflow-wrap: break-word; }
/* /Components/ScLandscapePanel.razor.rz.scp.css */
/* Extracted SC landscape panel (feature 051 issue 7). Tier colours mirror the CNOOC SC Definitions
   (SC-5 red → SC-0 grey). Scoped to this component; used on Change Control + the Safety Criticality view. */
.scl[b-4w15ecc0ef] {
    background: var(--v21-white, #fff);
    border: 1px solid var(--v21-border, #e2e8f0);
    border-radius: 10px;
    padding: 20px 22px;
    margin-bottom: 24px;
}

.scl-head[b-4w15ecc0ef] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px 16px;
    margin-bottom: 14px;
}

.scl-title[b-4w15ecc0ef] {
    font-family: var(--font-heading, inherit);
    font-size: 1.05rem;
    font-weight: var(--font-medium, 500);
    color: var(--color-navy, #0f2942);
    margin: 0;
}

.scl-stats[b-4w15ecc0ef] {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    font-size: 13px;
    color: var(--color-service-grey, #64748b);
}

.scl-stat strong[b-4w15ecc0ef] {
    color: var(--color-navy, #0f2942);
    font-weight: var(--font-medium, 600);
}

.scl-stat.muted strong[b-4w15ecc0ef] {
    color: var(--color-service-grey, #64748b);
}

.scl-bars[b-4w15ecc0ef] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.scl-row[b-4w15ecc0ef] {
    display: grid;
    grid-template-columns: 52px minmax(120px, 1fr) minmax(0, 3fr) 44px;
    align-items: center;
    gap: 12px;
}

.scl-pill[b-4w15ecc0ef] {
    font-size: 11px;
    font-weight: 700;
    color: var(--color-dark-bg);
    text-align: center;
    padding: 2px 0;
    border-radius: 5px;
    letter-spacing: .02em;
}

.scl-tier[b-4w15ecc0ef] {
    font-size: 13px;
    color: var(--color-navy, #0f2942);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.scl-track[b-4w15ecc0ef] {
    height: 14px;
    background: var(--v21-soft, #f1f5f9);
    border-radius: 7px;
    overflow: hidden;
}

.scl-fill[b-4w15ecc0ef] {
    height: 100%;
    border-radius: 7px;
    min-width: 2px;
    transition: width 200ms ease;
}

.scl-count[b-4w15ecc0ef] {
    font-size: 13px;
    font-weight: var(--font-medium, 600);
    color: var(--color-navy, #0f2942);
    text-align: right;
}

/* Tier palette — CNOOC SC Definitions. */
.sc-5[b-4w15ecc0ef] { background: #F87171; }
.sc-4[b-4w15ecc0ef] { background: #FB923C; }
.sc-3[b-4w15ecc0ef] { background: #FBBF24; }
.sc-2[b-4w15ecc0ef] { background: #34D399; }
.sc-1[b-4w15ecc0ef] { background: #60A5FA; }
.sc-0[b-4w15ecc0ef] { background: #9CA3AF; }

@media (max-width: 640px) {
    .scl-row[b-4w15ecc0ef] {
        grid-template-columns: 48px minmax(0, 2fr) 40px;
    }
    .scl-tier[b-4w15ecc0ef] {
        display: none;
    }
}
/* /Components/SettingsActivity.razor.rz.scp.css */
.settings-activity[b-ukfylsyohv] { min-width: 0; container-type: inline-size; }
.settings-activity-layout[b-ukfylsyohv] { min-width: 0; position: relative; }
.settings-activity-card[b-ukfylsyohv] { min-width: 0; }
/* Inside the table card a state panel is card content, not a second rounded panel. Error and denied keep
   their tone as a left accent and light tint, as the deck's error banner. */
.settings-activity-card[b-ukfylsyohv]  .settings-tab-frame-state { border: 0; border-radius: 0; }
.settings-activity-card[b-ukfylsyohv]  .settings-tab-frame-error { border-left: 2px solid var(--clv-color-error-light); background: color-mix(in srgb, var(--clv-color-error-light) 5%, var(--clv-color-white)); }
.settings-activity-card[b-ukfylsyohv]  .settings-tab-frame-denied { border-left: 2px solid var(--clv-color-warning-light); background: color-mix(in srgb, var(--clv-color-warning-light) 5%, var(--clv-color-white)); }
.settings-activity-scroll[b-ukfylsyohv] { max-height: 60vh; overflow: auto; }
.settings-activity-table[b-ukfylsyohv] { table-layout: fixed; min-width: 720px; width: 100%; }
.settings-activity-table thead th[b-ukfylsyohv] { position: sticky; top: 0; z-index: 1; background: var(--clv-color-deep-teal); color: var(--clv-color-white); }
.settings-activity-table th button[b-ukfylsyohv] { display: block; width: 100%; min-height: 24px; height: 24px; color: inherit; text-align: left; }
.settings-column-action[b-ukfylsyohv] { width: 24%; }
.settings-activity-table th[b-ukfylsyohv] { padding: var(--space-3) var(--space-4); }
.settings-activity-table td[b-ukfylsyohv] { vertical-align: top; padding: var(--space-2) var(--space-4); }
.settings-activity-table .settings-activity-toggle[b-ukfylsyohv] { width: 44px; padding: var(--space-2) 0; }
.settings-activity-cell[b-ukfylsyohv],
.settings-activity-sub[b-ukfylsyohv] { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.settings-activity-sub[b-ukfylsyohv] { font-size: 12px; color: var(--color-service-grey); }
.settings-activity-table .settings-activity-row-action[b-ukfylsyohv] { max-width: 100%; padding: 0; height: 24px; min-height: 24px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; text-align: left; }
.settings-operation-row td[b-ukfylsyohv] { background: var(--clv-color-ice-blue); }
.settings-operation-events td[b-ukfylsyohv] { background: var(--clv-color-surface); }
.settings-operation-events td:nth-child(2)[b-ukfylsyohv] { padding-left: var(--space-8); }
.settings-activity-warning[b-ukfylsyohv] { padding: var(--space-3) var(--space-4); color: var(--clv-color-deep-teal); background: var(--clv-color-surface); border-left: 2px solid var(--clv-color-slate-blue); }
/* Narrow layouts keep the shared overlay and scrim; only wide containers dock the drawer beside the table. */
.settings-activity-drawer[b-ukfylsyohv]  .access-drawer { width: min(440px, 100vw); }
@media (min-width: 1441px) {
    @container (min-width: 1240px) {
        .settings-activity-layout.has-drawer[b-ukfylsyohv] { display: grid; grid-template-columns: minmax(720px, 1fr) 440px; gap: var(--space-4); }
        .settings-activity-drawer[b-ukfylsyohv]  .access-drawer-overlay { position: static; height: 75vh; background: transparent; }
        .settings-activity-drawer[b-ukfylsyohv]  .access-drawer { height: 100%; width: 100%; box-shadow: none; border: 1px solid var(--clv-color-border); }
    }
}

.settings-activity-toggle .asg-row-toggle[b-ukfylsyohv] { width: 44px; min-width: 44px; height: 44px; min-height: 44px; padding: 0; color: var(--clv-color-deep-teal); }
.settings-cell-skeleton[b-ukfylsyohv] { display: block; width: 85%; height: 12px; margin: var(--space-2) 0; border-radius: var(--radius-sm); background: var(--clv-color-border); }

.settings-activity-table thead th[b-ukfylsyohv] { font-size: var(--text-subhead); font-weight: var(--font-medium); text-transform: none; letter-spacing: normal; }
.settings-activity-table th button[b-ukfylsyohv] { font: inherit; text-transform: none; letter-spacing: normal; font-weight: var(--font-medium); }

.settings-activity-system-events[b-ukfylsyohv] { display: flex; align-items: center; gap: var(--space-2); min-height: 44px; cursor: pointer; white-space: nowrap; }
/* The input owns a 44px hit area at every width and paints a centred 20px teal box. The extra
   input[type] keeps this ahead of the Settings shell's 1194px checkbox rule, which draws an 18px glyph. */
.settings-activity-system-events input.asg-cb[type="checkbox"][b-ukfylsyohv] { appearance: none; position: relative; flex: 0 0 calc(var(--space-10) + var(--space-1)); width: calc(var(--space-10) + var(--space-1)); height: calc(var(--space-10) + var(--space-1)); margin: 0; padding: 0; border: 0; background: transparent; cursor: pointer; }
.settings-activity-system-events input.asg-cb[type="checkbox"][b-ukfylsyohv]::before { content: ''; position: absolute; top: 50%; left: 50%; width: var(--space-5); height: var(--space-5); box-sizing: border-box; transform: translate(-50%, -50%); border: 1.5px solid var(--clv-color-control-border); border-radius: var(--radius-sm); background: var(--clv-color-white); }
.settings-activity-system-events input.asg-cb[type="checkbox"]:checked[b-ukfylsyohv]::before { border-color: var(--clv-color-deep-teal); background: var(--clv-color-deep-teal); }
.settings-activity-system-events input.asg-cb[type="checkbox"]:checked[b-ukfylsyohv]::after { content: '✓'; position: absolute; inset: 0; display: grid; place-items: center; color: var(--clv-color-white); font-size: var(--text-footnote); }
.settings-activity-recovery[b-ukfylsyohv] { padding: 0 var(--space-4) var(--space-4); border-left: 2px solid var(--clv-color-warning-light); background: color-mix(in srgb, var(--clv-color-warning-light) 5%, var(--clv-color-white)); }
/* /Components/SettingsAiUsage.razor.rz.scp.css */
.settings-ai-usage[b-wxxxjdefsr] { min-width: 0; }
.settings-ai-usage[b-wxxxjdefsr]  .settings-tab-frame-denied { padding: 0; border: 0; background: none; }
.settings-ai-usage[b-wxxxjdefsr]  .settings-tab-frame-error { padding: var(--space-4); color: var(--clv-color-error-light); background: var(--clv-tint-error); border: 1px solid var(--clv-color-error-light); }
.settings-ai-usage[b-wxxxjdefsr]  .settings-tab-frame-state :is(h2, h3) { font-size: var(--text-body); }
.settings-ai-usage[b-wxxxjdefsr]  .settings-tab-frame-error :is(h2, h3, p) { color: var(--clv-color-error-light); }
.ai-usage-summary[b-wxxxjdefsr] { margin-bottom: var(--space-8); }
.ai-usage-summary p[b-wxxxjdefsr] { margin: 0 0 var(--space-3); overflow-wrap: anywhere; }
.ai-usage-summary .btn[b-wxxxjdefsr] { min-height: calc(var(--space-10) + var(--space-1)); }
.ai-usage-spend-label[b-wxxxjdefsr] { font-size: var(--text-footnote); color: var(--color-text-secondary); font-weight: 500; }
.ai-usage-spend-row[b-wxxxjdefsr] { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-2) var(--space-4); margin-bottom: var(--space-3); }
.ai-usage-spend[b-wxxxjdefsr] { font-family: var(--clv-font-heading); font-size: var(--text-title2); font-weight: 500; line-height: 1.2; font-variant-numeric: tabular-nums; }
.ai-usage-budget-label[b-wxxxjdefsr] { color: var(--color-text-secondary); }
.ai-usage-remaining[b-wxxxjdefsr] { margin-left: auto; font-weight: 500; }
.ai-usage-remaining.is-over[b-wxxxjdefsr] { color: var(--clv-color-warning-light); }
.ai-usage-subline[b-wxxxjdefsr] { color: var(--color-text-secondary); font-size: var(--text-caption1); }
.ai-usage-forecast-line[b-wxxxjdefsr] { color: var(--clv-color-deep-teal); font-size: var(--text-subhead); }
.ai-budget-meter[b-wxxxjdefsr] { margin: var(--space-3) 0; }
.ai-budget-progress[b-wxxxjdefsr] { position: relative; height: var(--space-3); border: 1px solid var(--clv-color-border); background: var(--clv-color-surface); border-radius: var(--radius-sm); overflow: hidden; }
.ai-budget-fill[b-wxxxjdefsr], .ai-budget-forecast[b-wxxxjdefsr] { position: absolute; inset: 0 auto 0 0; }
.ai-budget-fill[b-wxxxjdefsr] { background: var(--clv-color-deep-teal); }
.ai-budget-forecast[b-wxxxjdefsr] { background: var(--clv-color-ice-blue); }
.ai-budget-marker[b-wxxxjdefsr] { position: absolute; inset-block: 0; width: 2px; margin-left: -1px; background: var(--clv-color-deep-navy); }
.ai-usage-cost-notice[b-wxxxjdefsr] { font-size: var(--text-footnote); color: var(--clv-color-deep-teal); }
.ai-usage-summary-skeleton[b-wxxxjdefsr] { display: grid; gap: var(--space-4); }
.ai-usage-summary-skeleton span[b-wxxxjdefsr] { height: var(--space-6); background: var(--clv-color-border); border-radius: var(--radius-sm); }
.ai-usage-summary-skeleton span:first-child[b-wxxxjdefsr] { width: 60%; }
.ai-usage-summary-skeleton span:nth-child(2)[b-wxxxjdefsr] { height: var(--space-3); }

.ai-usage-months[b-wxxxjdefsr] { border-top: 1px solid var(--clv-color-border); padding-top: var(--space-6); }
.ai-usage-months h2[b-wxxxjdefsr] { font-size: var(--text-body); margin: 0 0 var(--space-3); }
.ai-usage-months th[scope="row"][b-wxxxjdefsr] { text-align: left; font-family: inherit; font-size: var(--text-subhead); padding: var(--space-3) var(--space-4); font-weight: 400; letter-spacing: inherit; background: inherit; color: var(--clv-color-deep-teal); text-transform: none; }
.ai-usage-months th[scope="row"].is-current[b-wxxxjdefsr] { font-weight: 500; }
.ai-usage-months .ai-usage-number[b-wxxxjdefsr] { text-align: right; font-variant-numeric: tabular-nums; }
/* /Components/SettingsArchived.razor.rz.scp.css */
.settings-archived[b-zpu6c9n5de] {
    min-width: 0;
}

.settings-archived-header[b-zpu6c9n5de] {
    margin-bottom: var(--space-4);
}

.settings-archived-summary p[b-zpu6c9n5de] {
    margin: 0;
    color: var(--color-service-grey);
}

.settings-archived-summary[b-zpu6c9n5de] {
    padding: var(--space-8);
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-lg);
    background: var(--color-white);
}

.settings-archived-summary[b-zpu6c9n5de] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-6);
}

.settings-archived-summary strong[b-zpu6c9n5de] {
    display: block;
    margin-bottom: var(--space-2);
    color: var(--color-navy);
    font-size: var(--text-title3);
}

.settings-archived-summary .btn[b-zpu6c9n5de] {
    min-width: 44px;
    min-height: 44px;
}

@media (max-width: 700px) {
    .settings-archived-summary[b-zpu6c9n5de] {
        align-items: flex-start;
        flex-direction: column;
    }
}
/* /Components/SettingsAutoApproval.razor.rz.scp.css */
.auto-approval-settings[b-v18znqr21m] {
    display: grid;
    gap: 0;
    min-width: 0;
}

.auto-approval-heading[b-v18znqr21m],
.auto-approval-title-row[b-v18znqr21m] {
    display: grid;
    gap: var(--space-1);
}

.auto-approval-title-row[b-v18znqr21m] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-2) var(--space-3);
}
.auto-approval-tabs[b-v18znqr21m] {
    margin-bottom: var(--space-8);
}

.auto-approval-tabs .tab-btn[b-v18znqr21m] {
    min-height: 2.75rem;
    color: var(--clv-color-text-link);
    text-decoration: none;
}

.auto-approval-tabs .tab-btn.active[b-v18znqr21m] {
    color: var(--clv-color-text-heading);
}

/* The assignment policy uses the same card chrome as the mapping policy above it. */
.auto-approval-settings[b-v18znqr21m]  .clearance-settings {
    padding: var(--space-4);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--clv-color-white);
}

.auto-approval-settings[b-v18znqr21m]  .rp-edit {
    max-width: none;
}

.auto-approval-settings[b-v18znqr21m]  .auto-approval-history,
.auto-approval-settings[b-v18znqr21m]  .auto-approval-support-card,
.auto-approval-settings[b-v18znqr21m]  .auto-approval-confirm {
    display: grid;
    gap: var(--space-3);
    min-width: 0;
    padding: var(--space-4);
    border: 1px solid var(--clv-color-border);
    border-radius: var(--radius-lg);
    background: var(--clv-color-white);
}

.auto-approval-settings[b-v18znqr21m]  .auto-approval-history h2,
.auto-approval-settings[b-v18znqr21m]  .auto-approval-history h4,
.auto-approval-settings[b-v18znqr21m]  .auto-approval-history p,
.auto-approval-settings[b-v18znqr21m]  .auto-approval-support-card h3,
.auto-approval-settings[b-v18znqr21m]  .auto-approval-support-card p {
    margin: 0;
}

.auto-approval-settings[b-v18znqr21m]  .auto-approval-history > header,
.auto-approval-settings[b-v18znqr21m]  .auto-approval-support-card > header {
    display: grid;
    gap: var(--space-1);
}

.auto-approval-settings[b-v18znqr21m]  .auto-approval-history > header p,
.auto-approval-settings[b-v18znqr21m]  .auto-approval-support-card p,
.auto-approval-settings[b-v18znqr21m]  .auto-approval-readonly {
    color: var(--clv-color-text-link);
}

.auto-approval-settings[b-v18znqr21m]  .auto-approval-support-card .btn {
    justify-self: start;
}

.auto-approval-settings[b-v18znqr21m]  .auto-approval-notice {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2) var(--space-3);
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-md);
}

.auto-approval-settings[b-v18znqr21m]  .auto-approval-notice.is-warning {
    border: 1px solid var(--clv-tint-warning-border);
    background: var(--clv-tint-warning);
}

.auto-approval-settings[b-v18znqr21m]  .auto-approval-notice.is-error {
    border: 1px solid var(--clv-tint-error-border);
    background: var(--clv-tint-error);
}

.auto-approval-settings[b-v18znqr21m]  .auto-approval-notice .btn {
    margin-left: auto;
}

.auto-approval-settings[b-v18znqr21m]  .auto-approval-confirm-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: var(--space-2) var(--space-3);
}

.auto-approval-settings[b-v18znqr21m]  .auto-approval-nowrap {
    white-space: nowrap;
}

.auto-approval-settings[b-v18znqr21m]  .auto-approval-action-cell .badge {
    margin-top: var(--space-1);
}

.auto-approval-settings[b-v18znqr21m]  .auto-approval-evidence {
    white-space: normal;
    overflow-wrap: break-word;
}

/* An expanded global sidebar at tablet width leaves the history table about 634px. Let the date and
   headers wrap there so both row actions stay inside the region; wider containers keep one-line rows. */
.auto-approval-settings[b-v18znqr21m]  .auto-approval-history .table-scroll-region {
    container-type: inline-size;
}

@container (max-width: 760px) {
    .auto-approval-settings[b-v18znqr21m]  .auto-approval-history-table th,
    .auto-approval-settings[b-v18znqr21m]  .auto-approval-history-table .auto-approval-nowrap {
        white-space: normal;
    }
}

/* Read-only impact check shared by both policy editors. */
.auto-approval-settings[b-v18znqr21m]  .mapping-approval-impact {
    display: grid;
    gap: var(--space-3);
    padding-top: var(--space-4);
    border-top: 1px solid var(--clv-color-border);
}

.auto-approval-settings[b-v18znqr21m]  .mapping-approval-impact > .btn,
.auto-approval-settings[b-v18znqr21m]  .rp-summary > .btn {
    justify-self: start;
}

.auto-approval-settings[b-v18znqr21m]  .auto-approval-impact {
    display: grid;
    gap: var(--space-3);
    min-width: 0;
    padding: var(--space-3);
    border: 1px solid var(--clv-color-border);
    border-radius: var(--radius-md);
    background: var(--clv-color-surface);
}

.auto-approval-settings[b-v18znqr21m]  .auto-approval-impact h5,
.auto-approval-settings[b-v18znqr21m]  .auto-approval-impact p {
    margin: 0;
}

.auto-approval-settings[b-v18znqr21m]  .auto-approval-impact-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
    gap: var(--space-3);
    margin: 0;
}

.auto-approval-settings[b-v18znqr21m]  .auto-approval-impact-grid div {
    min-width: 0;
    padding: var(--space-2);
    border: 1px solid var(--clv-color-border);
    border-radius: var(--radius-sm);
    background: var(--clv-color-white);
}

.auto-approval-settings[b-v18znqr21m]  .auto-approval-impact-grid dt {
    color: var(--clv-color-text-link);
    font-size: var(--text-caption1);
}

.auto-approval-settings[b-v18znqr21m]  .auto-approval-impact-grid dd {
    margin: var(--space-1) 0 0;
}

.auto-approval-settings[b-v18znqr21m]  .auto-approval-history h2 { font-size: var(--text-body); }
/* /Components/SettingsBudget.razor.rz.scp.css */
.settings-budget[b-lc070l905o] { min-width: 0; }
.budget-layout[b-lc070l905o] { max-width: var(--container-mid); }
.budget-form[b-lc070l905o] { display: grid; gap: var(--space-4); align-content: start; }
.budget-form p[b-lc070l905o] { margin: 0; }
.budget-form h2[b-lc070l905o] { font-size: var(--text-body); margin: var(--space-4) 0 0; padding-top: var(--space-8); border-top: 1px solid var(--clv-color-border); }
.budget-fields[b-lc070l905o] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
.budget-form label[b-lc070l905o] { display: grid; gap: var(--space-2); min-width: 0; }
.budget-form input[b-lc070l905o] { width: 100%; min-width: 0; height: 44px; }
.budget-amount[b-lc070l905o] { position: relative; display: block; }
.budget-currency[b-lc070l905o] { position: absolute; top: 50%; left: var(--space-3); transform: translateY(-50%); color: var(--color-text-secondary); font-size: var(--text-subhead); pointer-events: none; }
.budget-form .budget-amount input[b-lc070l905o] { padding-left: var(--space-6); font-variant-numeric: tabular-nums; }
.budget-actions[b-lc070l905o] { display: flex; gap: var(--space-3); align-items: center; }
.budget-actions .btn[b-lc070l905o] { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; }
.budget-link[b-lc070l905o] { justify-self: start; color: var(--clv-color-text-link); font-weight: var(--font-medium); text-decoration: underline; text-underline-offset: 2px; }
.budget-link:hover[b-lc070l905o] { color: var(--clv-color-text-link-hover); }
.settings-budget[b-lc070l905o]  .settings-tab-frame-loading,
.settings-budget[b-lc070l905o]  .settings-tab-frame-error,
.settings-budget[b-lc070l905o]  .settings-tab-frame-denied { max-width: var(--container-mid); }
/* Read-only facts sit where a field would, label above value, with no control to suggest a choice. */
.budget-fact[b-lc070l905o] { display: grid; gap: var(--space-2); align-content: start; margin: 0; min-width: 0; }
.budget-fact dd[b-lc070l905o] { display: flex; align-items: center; min-height: 44px; margin: 0; color: var(--clv-color-deep-teal); }
/* Amount, its validation message and the repeat note stack as one field; the message sits directly under the input. */
.budget-field[b-lc070l905o] { display: grid; gap: var(--space-2); align-content: start; min-width: 0; }
.budget-form .budget-amount input[aria-invalid="true"][b-lc070l905o] { border-color: var(--color-error); }
.budget-form .budget-error[b-lc070l905o] { color: var(--color-error); font-size: var(--text-caption1); font-weight: var(--font-medium); }
.budget-form .budget-hint[b-lc070l905o] { color: var(--color-text-secondary); font-size: var(--text-caption1); }
/* Save failure reuses the shared error banner; the budget card is square, so the banner is too. */
.budget-form .reg-banner-error[b-lc070l905o] { border-radius: 0; font-size: var(--text-subhead); }
.settings-budget[b-lc070l905o]  .settings-tab-frame-state :is(h2, h3, p) { color: var(--clv-color-dark-navy); }

.settings-budget[b-lc070l905o]  .settings-tab-frame-state { padding: 0; }
.settings-budget[b-lc070l905o]  .settings-tab-frame-state :is(h2, h3) { font-size: var(--text-body); }
/* /Components/SettingsChangeApproval.razor.rz.scp.css */
.change-approval-settings[b-e3hc465tnp] {
    min-width: 0;
}

.change-approval-header[b-e3hc465tnp] {
    display: grid;
    gap: var(--space-1);
}

.change-approval-rules-heading[b-e3hc465tnp] {
    margin: 0 0 var(--space-4);
    font-size: var(--text-body);
}
/* /Components/SettingsClearance.razor.rz.scp.css */
.clearance-settings[b-b9x85fy0v6] {
    display: grid;
    gap: var(--space-4);
    min-width: 0;
}

.clearance-heading-row[b-b9x85fy0v6],
.clearance-runs[b-b9x85fy0v6],
.clearance-sample[b-b9x85fy0v6] {
    display: grid;
    gap: var(--space-3);
}

.clearance-sample[b-b9x85fy0v6] {
    min-width: 0;
}

.clearance-heading-row[b-b9x85fy0v6] {
    gap: var(--space-1);
}

.clearance-runs h3[b-b9x85fy0v6],
.clearance-sample h3[b-b9x85fy0v6],
.clearance-summary[b-b9x85fy0v6] {
    margin: 0;
}



/* Import auto-approval */

.rp-header[b-b9x85fy0v6] {
    display: grid;
    gap: var(--space-1);
}

.rp-title-row[b-b9x85fy0v6],
.rp-rules-head[b-b9x85fy0v6],
.rp-actions[b-b9x85fy0v6] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2) var(--space-3);
}

.rp-title-row h3[b-b9x85fy0v6],
.rp-rules-head h4[b-b9x85fy0v6],
.rp-summary h4[b-b9x85fy0v6],
.rp-purpose[b-b9x85fy0v6],
.rp-line[b-b9x85fy0v6] {
    margin: 0;
}

.rp-rules-head[b-b9x85fy0v6] {
    justify-content: space-between;
}

.rp-purpose[b-b9x85fy0v6] {
    padding: 0;
    color: var(--clv-color-text-link);
    font-size: var(--text-subhead);
}

.rp-mode[b-b9x85fy0v6] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2) var(--space-3);
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--clv-tint-success-border);
    border-radius: var(--radius-md);
    background: var(--clv-tint-success);
    color: var(--clv-color-text-heading);
}

.rp-mode.is-off[b-b9x85fy0v6],
.rp-mode.is-unknown[b-b9x85fy0v6] {
    border-color: var(--clv-tint-warning-border);
    background: var(--clv-tint-warning);
}

.rp-mode-dot[b-b9x85fy0v6] {
    flex: none;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background: currentColor;
}

.rp-mode-text[b-b9x85fy0v6] {
    flex: 1 1 24rem;
    min-width: 0;
}

.rp-mode-detail[b-b9x85fy0v6] {
    color: var(--clv-color-text-link);
    font-size: var(--text-footnote);
}

.rp-link-button[b-b9x85fy0v6] {
    min-height: 2.75rem;
    padding: 0 var(--space-2);
    border: 0;
    background: transparent;
    color: var(--clv-color-text-link);
    text-decoration: underline;
    cursor: pointer;
}

.rp-link-button:focus-visible[b-b9x85fy0v6] {
    outline: none;
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow-focus);
}

.rp-notice[b-b9x85fy0v6],
.rp-notice.is-info[b-b9x85fy0v6] {
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--clv-tint-info-border);
    border-radius: var(--radius-md);
    background: var(--clv-tint-info);
    color: var(--clv-color-text-heading);
}

.rp-notice.is-error[b-b9x85fy0v6],
.rp-validation[b-b9x85fy0v6] {
    border: 1px solid var(--clv-tint-error-border);
    background: var(--clv-tint-error);
    color: var(--clv-color-text-heading);
}

.rp-notice:focus-visible[b-b9x85fy0v6],
.rp-validation:focus-visible[b-b9x85fy0v6] {
    outline: none;
    box-shadow: var(--shadow-focus);
}

/* 90rem matches the deck's --container-wide cap on the edit form. */
.rp-edit[b-b9x85fy0v6] {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(16rem, 1fr);
    align-items: start;
    gap: var(--space-5);
    max-width: 90rem;
}

.rp-form[b-b9x85fy0v6],
.rp-summary[b-b9x85fy0v6] {
    display: grid;
    gap: var(--space-3);
    min-width: 0;
}

.rp-form > h4[b-b9x85fy0v6],
.rp-reason[b-b9x85fy0v6] {
    margin: 0;
    display: grid;
    gap: var(--space-1);
    font-weight: var(--font-medium);
}

.rp-reason textarea[b-b9x85fy0v6] {
    width: 100%;
    min-height: 2.75rem;
    padding: var(--space-2);
    border: 1px solid var(--clv-color-border);
    border-radius: var(--radius-sm);
    background: var(--clv-color-surface);
    color: var(--clv-color-text-heading);
    font: inherit;
}

.rp-reason textarea[b-b9x85fy0v6] {
    min-height: 5.5rem;
    resize: vertical;
}

.rp-reason textarea:focus-visible[b-b9x85fy0v6] {
    outline: none;
    box-shadow: var(--shadow-focus);
}

.rp-reason small[b-b9x85fy0v6] {
    color: var(--clv-color-text-link);
    font-weight: normal;
}

.rp-form[b-b9x85fy0v6]  .policy-rules-table td:has(.filter-select) {
    padding-block: var(--space-1);
}

.rp-form[b-b9x85fy0v6]  .filter-select {
    width: min(100%, 16rem);
    background-color: var(--clv-color-white);
}

.rp-rule-control[b-b9x85fy0v6] {
    display: grid;
    gap: var(--space-1);
}

.rp-rule-control small[b-b9x85fy0v6] {
    color: var(--clv-color-text-link);
    font-weight: normal;
}

.rp-validation[b-b9x85fy0v6] {
    margin: 0;
    padding: var(--space-3) var(--space-3) var(--space-3) var(--space-6);
    border-radius: var(--radius-md);
}

.rp-summary[b-b9x85fy0v6] {
    padding: var(--space-4);
    border: 1px solid var(--clv-color-border-default);
    border-radius: var(--radius-md);
    background: var(--clv-color-surface);
}

.rp-summary p[b-b9x85fy0v6] {
    margin: 0;
}

.rp-diff[b-b9x85fy0v6] {
    display: grid;
    margin: 0;
}

.rp-diff > div[b-b9x85fy0v6] {
    display: grid;
    gap: var(--space-1);
    padding: var(--space-2) 0;
    border-bottom: 1px solid var(--clv-color-border-default);
}

.rp-diff dt[b-b9x85fy0v6] {
    color: var(--clv-color-text-heading);
    font-weight: var(--font-medium);
}

.rp-diff dd[b-b9x85fy0v6] {
    margin: 0;
    overflow-wrap: anywhere;
}

.rp-from[b-b9x85fy0v6] {
    color: var(--clv-color-text-link);
}

.rp-line[b-b9x85fy0v6] {
    color: var(--clv-color-text-link);
}


/* Review samples */

.clearance-layout[b-b9x85fy0v6] {
    display: grid;
    grid-template-columns: minmax(15rem, 20rem) minmax(0, 1fr);
    gap: var(--space-5);
    align-items: start;
}

.clearance-run-list[b-b9x85fy0v6] {
    display: grid;
    gap: var(--space-2);
}

.clearance-run[b-b9x85fy0v6] {
    display: grid;
    gap: var(--space-1);
    width: 100%;
    padding: var(--space-3);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-surface);
    color: var(--color-text-primary);
    text-align: left;
    cursor: pointer;
}

.clearance-run:hover[b-b9x85fy0v6],
.clearance-run.is-selected[b-b9x85fy0v6] {
    border-color: var(--color-navy);
}

.clearance-run.is-selected[b-b9x85fy0v6] {
    box-shadow: inset var(--space-1) 0 0 var(--color-navy);
}

.clearance-run-main[b-b9x85fy0v6] {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: var(--space-2);
}

.clearance-run-failure[b-b9x85fy0v6],
.clearance-notice[b-b9x85fy0v6] {
    color: var(--color-error);
}

.clearance-summary[b-b9x85fy0v6] {
    font-weight: var(--font-medium);
}

.clearance-table[b-b9x85fy0v6] {
    min-width: 64rem;
}

.clearance-sample .table-scroll-region[b-b9x85fy0v6] {
    width: 100%;
    max-width: 100%;
}

.clearance-verdict-cell[b-b9x85fy0v6] {
    position: sticky;
    right: 0;
    min-width: 15rem;
    border-left: 1px solid var(--color-border);
    background: var(--color-white);
}

.clearance-table thead .clearance-verdict-cell[b-b9x85fy0v6] {
    z-index: 2;
}

.clearance-table tbody .clearance-verdict-cell[b-b9x85fy0v6] {
    z-index: 1;
}

.clearance-assignment-text[b-b9x85fy0v6] {
    min-width: 18rem;
}

.clearance-verdict-editor[b-b9x85fy0v6],
.clearance-verdict-editor label[b-b9x85fy0v6] {
    display: grid;
    gap: var(--space-2);
}

.clearance-verdict-editor[b-b9x85fy0v6] {
    min-width: 14rem;
}

.clearance-verdict-actions[b-b9x85fy0v6] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.clearance-verdict-editor select[b-b9x85fy0v6],
.clearance-verdict-editor input[b-b9x85fy0v6] {
    min-height: 2.75rem;
    padding: var(--space-2);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    background: var(--color-surface);
    color: var(--color-text-primary);
}

.clearance-change[b-b9x85fy0v6] {
    min-height: 2.75rem;
    padding: 0 var(--space-2);
    border: 0;
    background: transparent;
    color: var(--color-text-link);
    text-decoration: underline;
    cursor: pointer;
}

.clearance-change:focus-visible[b-b9x85fy0v6] {
    outline: none;
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow-focus);
}

@media (max-width: 74.75rem) {
    .clearance-layout[b-b9x85fy0v6],
    .rp-edit[b-b9x85fy0v6] {
        grid-template-columns: 1fr;
    }

    .clearance-verdict-button[b-b9x85fy0v6],
    .clearance-save-button[b-b9x85fy0v6] {
        min-height: 2.75rem;
    }
}

/* Matches the role mapping master switch above it (SettingsMappingApproval .mapping-approval-master). */
.rp-enable[b-b9x85fy0v6] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    min-height: 2.75rem;
    font-weight: var(--font-medium);
}

.rp-enable input[type="checkbox"][b-b9x85fy0v6] {
    width: 1.5rem;
    height: 1.5rem;
    margin: 0;
    accent-color: var(--color-navy);
}
/* /Components/SettingsFeatures.razor.rz.scp.css */
.settings-features[b-3gu8ljou2t] {
    min-width: 0;
    max-width: var(--container-mid);
}

.settings-features-header[b-3gu8ljou2t] {
    margin-bottom: 0;
}

.features-notice[b-3gu8ljou2t] {
    margin-bottom: var(--space-4);
    padding: var(--space-3);
    border: 1px solid var(--color-control-border);
    border-radius: var(--radius-sm);
    color: var(--color-text-primary);
    font-size: var(--text-subhead);
}

/* Bounded, not full width: on a wide monitor a space-between row leaves the switch several hundred
   pixels from the sentence that says what it does, and the eye stops connecting the two. */
.features-row[b-3gu8ljou2t] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-5);
    max-width: var(--container-mid);
    padding: var(--space-4) 0;
    border-top: 1px solid var(--color-control-border);
}

/* The description is prose, so it stops well short of the panel width; a setting explained across
   the full width of a 30" monitor is unreadable regardless of what the grid allows. */
.features-row-text[b-3gu8ljou2t] {
    max-width: 46rem;
}

.features-row-text h2[b-3gu8ljou2t] {
    margin: 0 0 var(--space-1);
    color: var(--color-navy);
    font-size: var(--text-body);
    font-weight: var(--font-medium);
}

.features-row-text p[b-3gu8ljou2t] {
    margin: 0;
    color: var(--color-service-grey);
    font-size: var(--text-subhead);
}

.features-toggle[b-3gu8ljou2t] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    min-height: 44px;
    color: var(--color-text-primary);
    font-size: var(--text-subhead);
    white-space: nowrap;
}

.features-toggle input[b-3gu8ljou2t] {
    inline-size: 1.5rem;
    block-size: 1.5rem;
    accent-color: var(--color-navy);
}
/* /Components/SettingsJobs.razor.rz.scp.css */
.settings-jobs[b-e3nzog95kn] { min-width: 0; container-type: inline-size; }
.settings-cell-skeleton[b-e3nzog95kn] { display: block; width: 85%; height: 12px; margin: var(--space-2) 0; border-radius: var(--radius-sm); background: var(--clv-color-border); }
.settings-jobs-card.is-denied[b-e3nzog95kn] { margin-top: var(--space-4); }
/* Inside the table card a state panel is card content, not a second rounded panel. Error and denied keep
   their tone as a left accent and light tint, as the deck's error banner. */
.settings-jobs-card[b-e3nzog95kn]  .settings-tab-frame-state { border: 0; border-radius: 0; }
.settings-jobs-card[b-e3nzog95kn]  .settings-tab-frame-error { border-left: 2px solid var(--clv-color-error-light); background: color-mix(in srgb, var(--clv-color-error-light) 5%, var(--clv-color-white)); }
.settings-jobs-card[b-e3nzog95kn]  .settings-tab-frame-denied { border-left: 2px solid var(--clv-color-warning-light); background: color-mix(in srgb, var(--clv-color-warning-light) 5%, var(--clv-color-white)); }
.settings-jobs-layout[b-e3nzog95kn] { min-width: 0; position: relative; }
.settings-jobs-card[b-e3nzog95kn] { min-width: 0; container-type: inline-size; }
.settings-jobs-scroll[b-e3nzog95kn] { max-height: 60vh; overflow: auto; }
.settings-jobs-table[b-e3nzog95kn] { table-layout: fixed; min-width: 720px; width: 100%; }
.settings-jobs-table[b-e3nzog95kn]  thead th { position: sticky; top: 0; z-index: 1; background: var(--clv-color-deep-teal); color: var(--clv-color-white); }
.settings-jobs-table[b-e3nzog95kn]  th button { display: block; width: 100%; min-height: 24px; height: 24px; color: inherit; text-align: left; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.settings-jobs-table[b-e3nzog95kn]  th { padding: var(--space-3) var(--space-4); overflow: hidden; text-overflow: ellipsis; }
.settings-jobs-table td[b-e3nzog95kn] { vertical-align: top; padding: var(--space-2) var(--space-4); }
.settings-jobs-cell[b-e3nzog95kn], .settings-jobs-sub[b-e3nzog95kn] { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.settings-jobs-cell-wrap[b-e3nzog95kn] { white-space: normal; overflow-wrap: anywhere; }
.settings-jobs-sub[b-e3nzog95kn] { font-size: 12px; color: var(--clv-color-text-link); }
.settings-jobs-table .settings-jobs-target[b-e3nzog95kn] { display: block; max-width: 100%; padding: 0; min-height: 24px; height: 24px; text-align: left; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.settings-jobs-table .btn-secondary[b-e3nzog95kn] { height: 44px; min-height: 44px; white-space: nowrap; }
/* The shared button padding is wider than the 6rem Actions column; the count lives in the accessible name. */
.settings-jobs-table td.settings-jobs-actions[b-e3nzog95kn] { padding-inline: var(--space-2); }
.settings-jobs-table .settings-jobs-retry[b-e3nzog95kn] { max-width: 100%; padding: 0 var(--space-2); overflow: hidden; text-overflow: ellipsis; }
/* Actions stays pinned to the right edge when optional columns make the table scroll sideways. Rows get an
   opaque fill so the pinned cell can inherit it. A control-border edge and a soft deep-teal shade mark where
   scrolled columns pass underneath; the header keeps the lighter edge that reads on deep teal. The shade is a
   pseudo-element because Chromium does not paint an outer box-shadow on these sticky cells. */
.settings-jobs-table tbody tr[b-e3nzog95kn] { background-color: var(--clv-color-white); }
.data-table.settings-jobs-table tbody tr:hover[b-e3nzog95kn] { background-color: color-mix(in srgb, var(--clv-color-muted-sage) 8%, var(--clv-color-white)); }
.settings-jobs-table.has-actions[b-e3nzog95kn]  thead th:last-child,
.settings-jobs-table td.settings-jobs-actions[b-e3nzog95kn] { position: sticky; right: 0; box-shadow: inset 1px 0 0 var(--settings-jobs-edge, var(--clv-color-border)); }
.settings-jobs-table.has-actions[b-e3nzog95kn]  thead th:last-child::before,
.settings-jobs-table td.settings-jobs-actions[b-e3nzog95kn]::before { content: ""; position: absolute; top: 0; bottom: 0; right: 100%; width: var(--space-2); background: linear-gradient(to left, color-mix(in srgb, var(--clv-color-deep-teal) 18%, transparent), transparent); pointer-events: none; }
/* Header cells clip for their ellipsis, which also clipped this shade. The short, fixed Actions label never
   truncates, so its cell alone may paint outside; a dark navy shade is what reads on the deep-teal header. */
.settings-jobs-table.has-actions[b-e3nzog95kn]  thead th:last-child { z-index: 2; overflow: visible; }
.settings-jobs-table.has-actions[b-e3nzog95kn]  thead th:last-child::before { background: linear-gradient(to left, color-mix(in srgb, var(--clv-color-dark-navy) 70%, transparent), transparent); }
.settings-jobs-table td.settings-jobs-actions[b-e3nzog95kn] { --settings-jobs-edge: var(--clv-color-control-border); background-color: inherit; }
.settings-jobs-table .settings-jobs-running[b-e3nzog95kn] { border: 1px solid var(--clv-color-info-light); }
.settings-jobs-warning[b-e3nzog95kn] { padding: var(--space-3) var(--space-4); color: var(--clv-color-deep-teal); background: var(--clv-color-surface); border-left: 2px solid var(--clv-color-slate-blue); }
/* Narrow layouts keep the shared overlay and scrim; only wide containers dock the drawer beside the table. */
.settings-jobs-drawer[b-e3nzog95kn]  .access-drawer { width: min(440px, 100vw); }
@media (min-width: 1441px) {
    @container (min-width: 1240px) {
        .settings-jobs-layout.has-drawer[b-e3nzog95kn] { display: grid; grid-template-columns: minmax(720px, 1fr) 440px; align-items: start; gap: var(--space-4); }
        .settings-jobs-drawer[b-e3nzog95kn]  .access-drawer-overlay { position: static; height: 75vh; background: transparent; }
        .settings-jobs-drawer[b-e3nzog95kn]  .access-drawer { height: 100%; width: 100%; box-shadow: none; border: 1px solid var(--clv-color-border); }
    }
}
/* The queue and requested header widths read these properties (see ColumnWidth). In a narrow container they
   give way until Job type + target keeps at least 200px with the default columns beside full Actions. The card,
   not the whole Settings area, is the container, so a docked drawer that narrows the card also narrows them. */
@container (max-width: 960px) {
    .settings-jobs-table[b-e3nzog95kn] { --settings-jobs-progress-width: 10rem; --settings-jobs-when-width: 9rem; }
}

.settings-jobs-cell[title="Not recorded"][b-e3nzog95kn] { color: var(--clv-color-text-link); }
.settings-jobs-table[b-e3nzog95kn]  thead th { font-size: var(--text-subhead); font-weight: var(--font-medium); text-transform: none; letter-spacing: normal; line-height: 24px; }
.settings-jobs-table[b-e3nzog95kn]  th button { text-transform: none; letter-spacing: normal; font-weight: var(--font-medium); }
.settings-jobs-table[b-e3nzog95kn]  th button:disabled { opacity: 1; cursor: default; }
/* The shared header hides inactive arrows until hover; Settings tables keep sortability visible, as on Activity. */
.settings-jobs-table[b-e3nzog95kn]  .sort-th:not(.sorted) .sort-arrow { opacity: .65; }
.settings-jobs-table[b-e3nzog95kn]  .sort-th .sort-arrow { font-size: inherit; }

.settings-jobs-group th[b-e3nzog95kn] { padding: var(--space-2) var(--space-4); background: var(--clv-color-surface); color: var(--clv-color-text-link); font-weight: var(--font-medium); text-align: left; }
/* /Components/SettingsJoining.razor.rz.scp.css */
.settings-joining[b-rt46v2167t] { min-width: 0; }
.joining-card[b-rt46v2167t] { max-width: var(--container-mid); padding: 0; border: 0; border-radius: 0; background: none; }
.joining-layout[b-rt46v2167t] { display: flex; gap: var(--space-8); align-items: flex-start; }
.joining-form[b-rt46v2167t] { flex: 1; min-width: 0; }
.joining-form fieldset[b-rt46v2167t] { border: 0; padding: 0; margin: 0 0 var(--space-6); }
.joining-form legend[b-rt46v2167t] { font-size: var(--text-body); margin-bottom: var(--space-3); max-width: 100%; overflow-wrap: anywhere; }
.joining-choice[b-rt46v2167t] { display: flex; align-items: flex-start; gap: var(--space-3); min-height: 44px; padding: var(--space-3); border: 1px solid var(--clv-color-border); margin-bottom: var(--space-2); }
.joining-choice.selected[b-rt46v2167t] { border-color: var(--clv-color-deep-teal); background: var(--clv-color-surface); }
.joining-choice input[b-rt46v2167t], .joining-authority input[b-rt46v2167t] { width: 24px; height: 24px; margin: 0; flex-shrink: 0; accent-color: var(--clv-color-deep-teal); }
.joining-choice small[b-rt46v2167t] { display: block; color: var(--color-text-secondary); margin-top: var(--space-1); }
.joining-authority[b-rt46v2167t] { display: flex; gap: var(--space-3); align-items: center; min-height: 44px; }
.joining-role[b-rt46v2167t] { display: flex; flex-direction: column; gap: var(--space-2); margin-bottom: var(--space-4); }
.joining-role select[b-rt46v2167t] { width: 360px; min-height: 44px; max-width: 100%; }
.joining-notice[b-rt46v2167t] { margin-bottom: var(--space-4); }
.joining-review[b-rt46v2167t] { width: 36%; min-width: 280px; padding-left: var(--space-6); border-left: 1px solid var(--clv-color-border); overflow-wrap: anywhere; }
.joining-review h3[b-rt46v2167t] { font-size: var(--text-body); margin-top: 0; }
.joining-review dl[b-rt46v2167t] { margin: 0; }
.joining-review dl > div[b-rt46v2167t] { display: flex; justify-content: space-between; gap: var(--space-4); padding: var(--space-3) 0; border-bottom: 1px solid var(--clv-color-border); }
.joining-review dd[b-rt46v2167t] { margin: 0; text-align: right; }
.joining-review dt[b-rt46v2167t] { flex-shrink: 0; }
.joining-review p[b-rt46v2167t] { margin: var(--space-3) 0 var(--space-4); }
.joining-actions[b-rt46v2167t] { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--space-2); margin-top: var(--space-4); }
.btn[b-rt46v2167t] { min-height: 44px; }
/* The outer card is the only surface: loading, denied and error states sit directly in it. */
.joining-card[b-rt46v2167t]  .settings-tab-frame-state { padding: 0; border: 0; border-radius: 0; background: none; }
/* Below 1280px the side panel would squeeze Back and Save onto two rows, so it moves under the form. */
@media (max-width: 1279px) { .joining-layout[b-rt46v2167t] { flex-direction: column; align-items: stretch; } .joining-review[b-rt46v2167t] { width: auto; min-width: 0; padding: var(--space-4) 0 0; border-left: 0; border-top: 1px solid var(--clv-color-border); } }
/* /Components/SettingsJoiningList.razor.rz.scp.css */
.settings-joining-list[b-4yt0m6i2or] { min-width: 0; }
.joining-list-header[b-4yt0m6i2or] { display: flex; justify-content: space-between; gap: var(--space-4); align-items: flex-start; }
.joining-toolbar[b-4yt0m6i2or] { align-items: flex-end; margin: 0; }
.joining-toolbar > label[b-4yt0m6i2or] { display: flex; flex-direction: column; gap: var(--space-1); font-size: var(--text-body); color: var(--clv-color-deep-teal); }
.joining-toolbar .search-field[b-4yt0m6i2or] { width: min(360px, 100%); }
.joining-toolbar .search-field input[b-4yt0m6i2or] { min-height: 44px; }
.joining-toolbar-end[b-4yt0m6i2or] { display: flex; gap: var(--space-2); margin-left: auto; }
/* + Filter and Columns are disclosure toggles: they keep the secondary outline on hover and read as a selected tab while open. */
.joining-toolbar .btn-secondary[aria-expanded]:hover[b-4yt0m6i2or] { background: var(--clv-color-surface); color: var(--clv-color-deep-teal); }
.joining-toolbar .btn-secondary[aria-expanded="true"][b-4yt0m6i2or],
.joining-toolbar .btn-secondary[aria-expanded="true"]:hover[b-4yt0m6i2or] { background: var(--clv-color-ice-blue); color: var(--clv-color-deep-teal); }
.joining-columns[b-4yt0m6i2or] { display: flex; flex-wrap: wrap; gap: var(--space-4); padding: var(--space-3) var(--space-4); }
.joining-columns label[b-4yt0m6i2or] { display: flex; align-items: center; gap: var(--space-2); min-height: 44px; }
.joining-columns input[b-4yt0m6i2or] { width: 24px; height: 24px; accent-color: var(--clv-color-deep-teal); }
/* Visually icon-sized so the chip stays compact; the transparent ::before keeps a 44px hit area.
   z-index lifts that area above the sticky table header (z-index 1), which otherwise takes its lower edge. */
.applied-filter-remove[b-4yt0m6i2or] { position: relative; z-index: 2; display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; padding: 0; border: 0; border-radius: var(--radius-full); background: none; color: var(--color-service-grey); font-size: 14px; line-height: 1; cursor: pointer; }
.applied-filter-remove[b-4yt0m6i2or]::before { content: ""; position: absolute; inset: -14px; }
.applied-filter-remove:hover[b-4yt0m6i2or] { color: var(--clv-color-dark-navy); }
.applied-filter-remove:focus-visible[b-4yt0m6i2or] { outline: 2px solid var(--clv-color-deep-teal); outline-offset: 1px; }
.joining-scroll[b-4yt0m6i2or] { max-height: 60vh; overflow: auto; }
.joining-table[b-4yt0m6i2or] { min-width: 820px; table-layout: fixed; width: 100%; }
.joining-table th[b-4yt0m6i2or] { position: sticky; top: 0; z-index: 1; background: var(--clv-color-deep-teal); color: var(--clv-color-white); padding: var(--space-3); }
.joining-table th button[b-4yt0m6i2or] { width: 100%; min-height: 24px; color: inherit; text-align: left; display: flex; align-items: center; justify-content: flex-start; }
/* Named, not positional, so widths hold when columns are hidden. Identity has no width and takes the rest.
   At the 856px table (1194 viewport) these leave identity about 180px of text, enough for an ordinary email. */
.joining-table th.joining-col-role[b-4yt0m6i2or] { width: 152px; }
.joining-table th.joining-col-date[b-4yt0m6i2or] { width: 168px; }
.joining-table th.joining-col-status[b-4yt0m6i2or] { width: 84px; }
/* Fits both 44px action buttons on one row: about 219px of buttons plus 24px of cell padding. */
.joining-table th.joining-col-actions[b-4yt0m6i2or] { width: 248px; text-transform: none; letter-spacing: normal; }
.joining-table td[b-4yt0m6i2or] { padding: var(--space-2) var(--space-3); vertical-align: top; }
.joining-table td strong[b-4yt0m6i2or], .joining-table td span[b-4yt0m6i2or] { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* Matches the Members name type (the member link's button size and weight) without making the row look clickable. */
.joining-table td.joining-col-identity[b-4yt0m6i2or] { font-size: var(--text-subhead); font-weight: var(--font-medium); }
.joining-table td time[b-4yt0m6i2or] { white-space: nowrap; }
.joining-row-actions[b-4yt0m6i2or] { display: flex; flex-wrap: nowrap; justify-content: flex-start; gap: var(--space-2); }

.joining-link[b-4yt0m6i2or] { display: flex; flex-direction: column; gap: var(--space-2); }
.joining-link input[b-4yt0m6i2or] { width: 100%; min-height: 44px; }
.joining-settings-link[b-4yt0m6i2or] { text-decoration: underline; }
/* Empty, denied and error states sit directly in the list card instead of drawing a second card. */
.settings-joining-list[b-4yt0m6i2or]  .settings-tab-frame-state { border: 0; border-radius: 0; background: none; }
.btn[b-4yt0m6i2or] { min-height: 44px; }
/* /Components/SettingsLongValue.razor.rz.scp.css */
/* A value that fits on one line keeps its actions on that line; a longer one takes the full width, so its actions wrap below. */
.settings-long-value[b-wvoe2376qh] { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-1) var(--space-2); min-width: 0; }
.settings-long-value-text[b-wvoe2376qh] { flex: 0 1 auto; min-width: 0; overflow-wrap: anywhere; }
.settings-long-value-text.is-clamped[b-wvoe2376qh] { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; }
.settings-long-value-actions[b-wvoe2376qh] { display: flex; flex-wrap: wrap; gap: var(--space-2); }
/* The negative block margin keeps the 44px target without making the value's line taller than its label's. */
.settings-long-value-actions .btn[b-wvoe2376qh] { min-height: 44px; padding: 0 var(--space-2); margin: -10px 0 -10px calc(-1 * var(--space-2)); }
.settings-long-value-actions .btn + .btn[b-wvoe2376qh] { margin-left: 0; }
.settings-long-value-status[b-wvoe2376qh] { flex-basis: 100%; padding-top: var(--space-2); color: var(--clv-color-text-link); font-size: var(--text-caption1); }
/* /Components/SettingsMappingApproval.razor.rz.scp.css */
.mapping-approval-settings[b-1h2uuu7avi],
.mapping-approval-card[b-1h2uuu7avi],
.mapping-approval-runs[b-1h2uuu7avi],
.mapping-approval-runs > header[b-1h2uuu7avi] {
    display: grid;
    gap: var(--space-3);
}
.mapping-approval-card h3[b-1h2uuu7avi],
.mapping-approval-card p[b-1h2uuu7avi],
.mapping-approval-runs h3[b-1h2uuu7avi],
.mapping-approval-runs p[b-1h2uuu7avi],
.mapping-approval-card h4[b-1h2uuu7avi],
.mapping-pending-groups p[b-1h2uuu7avi],
.mapping-reverse-confirm h3[b-1h2uuu7avi],
.mapping-reverse-confirm p[b-1h2uuu7avi] {
    margin: 0;
}

.mapping-approval-card-header p[b-1h2uuu7avi],
.mapping-approval-runs > header p[b-1h2uuu7avi],
.mapping-approval-readonly[b-1h2uuu7avi],
.mapping-run-sources[b-1h2uuu7avi],
.mapping-pending-semantics[b-1h2uuu7avi],
.mapping-pending-status[b-1h2uuu7avi] {
    color: var(--color-text-secondary);
}

.mapping-approval-card[b-1h2uuu7avi],
.mapping-approval-runs[b-1h2uuu7avi],
.mapping-reverse-confirm[b-1h2uuu7avi] {
    padding: var(--space-4);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--clv-color-white);
}

.mapping-approval-card-header[b-1h2uuu7avi],
.mapping-reverse-confirm[b-1h2uuu7avi],
.mapping-reverse-actions[b-1h2uuu7avi],
.mapping-pending-error[b-1h2uuu7avi] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3);
}

.mapping-approval-card-header[b-1h2uuu7avi],
.mapping-reverse-confirm[b-1h2uuu7avi] {
    justify-content: space-between;
}

.mapping-approval-master[b-1h2uuu7avi] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-2);
    min-height: 2.75rem;
}

.mapping-approval-master span[b-1h2uuu7avi],
.mapping-run-sources[b-1h2uuu7avi] {
    display: grid;
}

.mapping-approval-master input[type="checkbox"][b-1h2uuu7avi] {
    width: 1.5rem;
    height: 1.5rem;
    margin: 0;
    accent-color: var(--color-navy);
}

.mapping-approval-master small[b-1h2uuu7avi],
.mapping-run-sources[b-1h2uuu7avi] {
    font-size: var(--text-caption1);
}

.mapping-approval-notice[b-1h2uuu7avi],
.mapping-reverse-confirm[b-1h2uuu7avi] {
    padding: var(--space-3);
    border-radius: var(--radius-md);
}

.mapping-approval-ownership[b-1h2uuu7avi] {
    color: var(--color-text-secondary);
    font-size: var(--text-caption1);
}

.mapping-approval-actions[b-1h2uuu7avi] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    padding-top: var(--space-4);
    border-top: 1px solid var(--color-border);
}

.mapping-approval-actions .btn[b-1h2uuu7avi] {
    margin-left: auto;
}

.mapping-approval-ownership .mapping-approval-readonly[b-1h2uuu7avi] {
    display: block;
    color: var(--color-text-primary);
    font-weight: var(--font-medium);
}

.mapping-approval-notice.is-success[b-1h2uuu7avi] {
    border: 1px solid var(--color-success);
    background: var(--color-success-light);
}

.mapping-approval-retry[b-1h2uuu7avi] {
    margin-left: var(--space-2);
}

.mapping-approval-notice.is-error[b-1h2uuu7avi] {
    border: 1px solid var(--color-error);
    background: var(--color-error-light);
    color: var(--color-error);
}

.mapping-approval-notice.is-warning[b-1h2uuu7avi] {
    border: 1px solid var(--clv-tint-warning-border);
    background: var(--clv-tint-warning);
}

.mapping-pending-semantics[b-1h2uuu7avi],
.mapping-pending-status[b-1h2uuu7avi],
.mapping-pending-error p[b-1h2uuu7avi] {
    font-size: var(--text-caption1);
}

.mapping-pending-groups[b-1h2uuu7avi] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-3);
}

.mapping-pending-groups section[b-1h2uuu7avi] {
    padding: var(--space-3);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
}

.mapping-pending-groups h4[b-1h2uuu7avi] {
    font-size: var(--text-body);
}

.mapping-pending-groups ul[b-1h2uuu7avi] {
    display: grid;
    gap: var(--space-2);
    margin: var(--space-2) 0 0;
    padding: 0;
    list-style: none;
}

.mapping-pending-groups li[b-1h2uuu7avi] {
    display: flex;
    justify-content: space-between;
    gap: var(--space-2);
}

.mapping-pending-error[b-1h2uuu7avi] {
    justify-content: space-between;
}

.mapping-reverse-confirm[b-1h2uuu7avi] {
    border-color: var(--clv-tint-warning-border);
    background: var(--clv-tint-warning);
}

@media (max-width: 720px) {
    .mapping-pending-groups[b-1h2uuu7avi] {
        grid-template-columns: 1fr;
    }
}

/* A 44px tier select plus the standard cell padding would make editable rows taller than the locked rows. */
.mapping-approval-card[b-1h2uuu7avi]  .policy-rules-table td:has(> select) {
    padding-block: var(--space-1);
}
/* /Components/SettingsMembers.razor.rz.scp.css */
.settings-members[b-2oc3hsx6sx] { min-width: 0; }
.members-layout[b-2oc3hsx6sx] { position: relative; min-width: 0; }
.joining-settings-link[b-2oc3hsx6sx] { text-decoration: underline; }
.users-toolbar[b-2oc3hsx6sx] { align-items: center; margin: 0; min-height: 68px; padding: var(--space-3) var(--space-4); }
.users-toolbar .btn[b-2oc3hsx6sx], .users-toolbar .filter-select[b-2oc3hsx6sx], .users-search input[b-2oc3hsx6sx] { min-height: 44px; }
.users-search[b-2oc3hsx6sx] { width: min(280px, 100%); }
.members-toolbar-end[b-2oc3hsx6sx], .members-clear[b-2oc3hsx6sx] { margin-left: auto; }
.users-table-wrap[b-2oc3hsx6sx] { max-height: 60vh; overflow: auto; }
.users-table[b-2oc3hsx6sx] { width: 100%; table-layout: fixed; }
.users-table thead th[b-2oc3hsx6sx] { position: sticky; top: 0; z-index: 1; background: var(--clv-color-deep-teal); color: var(--clv-color-white); }
.users-table th button[b-2oc3hsx6sx] { display: block; width: 100%; min-height: 44px; color: inherit; text-align: left; }
.users-table td[b-2oc3hsx6sx] { vertical-align: middle; }
/* The 44px header buttons set the header height; the shell's 1194px selection padding would add 16px more. */
.settings-members .users-table.sticky-head > thead > tr > th[b-2oc3hsx6sx],
.settings-members .users-table.sticky-head > thead > tr > th.members-selection[b-2oc3hsx6sx] { padding-top: 0; padding-bottom: 0; }
.users-table .members-selection[b-2oc3hsx6sx] { width: 60px; padding: var(--space-2); }
.members-check[b-2oc3hsx6sx] { display: grid; place-items: center; width: 44px; height: 44px; }
.members-selection input[b-2oc3hsx6sx] { width: 24px; height: 24px; margin: 0; accent-color: var(--clv-color-deep-teal); }
.users-table th .members-select-all[b-2oc3hsx6sx] { display: grid; place-items: center; width: 44px; height: 44px; }
.members-select-all span[b-2oc3hsx6sx] { display: grid; place-items: center; width: 18px; height: 18px; border: 1px solid var(--clv-color-control-border); border-radius: var(--radius-sm); background: var(--clv-color-white); color: var(--clv-color-deep-teal); }
/* Fixed date columns fit one line of the longest organisation timestamp; Member and Roles share the rest. */
.users-table .members-column-member[b-2oc3hsx6sx] { width: 30%; }
.users-table .members-column-active[b-2oc3hsx6sx] { width: 176px; }
.users-table .members-column-added[b-2oc3hsx6sx] { width: 124px; }
.users-table td.members-column-active[b-2oc3hsx6sx], .users-table td.members-column-added[b-2oc3hsx6sx] { white-space: nowrap; }
.users-table .members-actions[b-2oc3hsx6sx] { width: 52px; }
.settings-members .users-table.sticky-head > thead > tr > th.members-actions[b-2oc3hsx6sx],
.settings-members .users-table.sticky-head > tbody > tr > td.members-actions[b-2oc3hsx6sx] { padding-right: var(--space-1); padding-left: var(--space-1); }
.members-actions .btn[b-2oc3hsx6sx] { box-sizing: border-box; width: 44px; min-width: 44px; min-height: 44px; padding-right: 0; padding-left: 0; }
.member-link[b-2oc3hsx6sx] { display: flex; align-items: center; justify-content: flex-start; gap: var(--space-3); width: 100%; max-width: 100%; padding: 0; min-height: 44px; color: var(--clv-color-text-link); text-align: left; overflow: hidden; white-space: nowrap; }
.member-text[b-2oc3hsx6sx] { display: grid; min-width: 0; }
.member-text > strong[b-2oc3hsx6sx], .member-text > .user-email[b-2oc3hsx6sx] { display: block; overflow: hidden; text-overflow: ellipsis; }
.member-status[b-2oc3hsx6sx] { display: inline-block; margin-left: var(--space-2); padding: 0 var(--space-1); border: 1px solid var(--clv-color-control-border); border-radius: var(--radius-sm); color: var(--color-text-secondary); background: var(--clv-color-surface); font-size: var(--text-caption1); font-weight: var(--font-regular); }
/* Cells repaint the row tint so striping and hover never hide a selected or open member. */
.settings-members .users-table > tbody > tr.members-selected[b-2oc3hsx6sx],
.settings-members .users-table > tbody > tr.members-selected > td[b-2oc3hsx6sx],
.settings-members .users-table > tbody > tr.members-selected:hover > td[b-2oc3hsx6sx] { background: var(--clv-color-ice-blue); }
.members-bulk[b-2oc3hsx6sx] { background: var(--clv-color-ice-blue); color: var(--clv-color-deep-teal); }
.members-refused[b-2oc3hsx6sx]  .members-notice { margin: var(--space-3) var(--space-4); border: 1px solid var(--color-error-tint-border); border-radius: var(--radius-md); background: var(--color-error-tint); color: var(--color-error); }
.members-drawer[b-2oc3hsx6sx]  .access-drawer-overlay { pointer-events: none; background: transparent; }
.members-drawer[b-2oc3hsx6sx]  .btn { min-height: 44px; }
.members-drawer[b-2oc3hsx6sx]  .access-drawer-header { overflow-wrap: anywhere; }
.members-drawer[b-2oc3hsx6sx]  .access-drawer { width: min(440px, 100vw); pointer-events: auto; }
.settings-members[b-2oc3hsx6sx]  .settings-tab-frame-empty { border: 0; border-radius: 0; }
.member-role-operation[b-2oc3hsx6sx] { display: flex; gap: var(--space-2); margin-bottom: var(--space-3); }
.member-role-operation .btn[b-2oc3hsx6sx] { min-height: 44px; }
.member-role-operation [aria-pressed="true"][b-2oc3hsx6sx] { background: var(--clv-color-deep-teal); color: var(--clv-color-white); }
.member-role-preview[b-2oc3hsx6sx] { margin-top: var(--space-4); }
.member-role-preview td[b-2oc3hsx6sx] { overflow-wrap: anywhere; }
.member-role-unchanged[b-2oc3hsx6sx] { color: var(--color-text-secondary); }
@media (min-width: 1920px) {
    /* The docked drawer takes its own column beside the header, tabs and table, so it never covers Invite.
       The last row is flexible so a tall drawer adds space below the table, never between the header and tabs. */
    .settings-members:has(.members-drawer)[b-2oc3hsx6sx] { display: grid; grid-template-columns: minmax(0, 1fr) 440px; grid-template-rows: auto auto auto 1fr; column-gap: var(--space-4); align-items: start; }
    .members-layout.has-drawer[b-2oc3hsx6sx] { display: contents; }
    .settings-members > p[b-2oc3hsx6sx] { margin-top: 0; }
    .members-layout.has-drawer > .data-table-wrapper[b-2oc3hsx6sx] { grid-column: 1; grid-row: 4; }
    /* It starts level with the Members header and sticks there, so its viewport cap never reaches past the screen. */
    .members-drawer[b-2oc3hsx6sx] { grid-column: 2; grid-row: 1 / -1; position: sticky; top: calc(var(--v21-topbar) + var(--space-10)); }
    .members-layout .members-drawer[b-2oc3hsx6sx]  .access-drawer-overlay { position: static; display: block; height: auto; }
    .members-drawer[b-2oc3hsx6sx]  .access-drawer { width: 100%; max-width: none; height: auto; max-height: calc(100vh - var(--v21-topbar) - var(--space-10) - var(--space-6)); box-shadow: none; border: 1px solid var(--clv-color-border); }
    .preview-active .members-drawer[b-2oc3hsx6sx] { top: calc(var(--v21-topbar) + 60px + var(--space-10)); }
    .preview-active .members-drawer[b-2oc3hsx6sx]  .access-drawer { max-height: calc(100vh - var(--v21-topbar) - 60px - var(--space-10) - var(--space-6)); }
}

.members-role-list[b-2oc3hsx6sx] { list-style: none; margin: 0; padding: var(--space-2); text-align: left; }
.members-role-list li[b-2oc3hsx6sx] { padding: var(--space-1) 0; }
.users-table .access-role-chips[b-2oc3hsx6sx] { align-items: center; }
/* The button keeps a 44px hit area; only the inner pill, sized like its neighbouring chips, is painted. */
.users-table .access-role-chip-count[b-2oc3hsx6sx] { position: relative; isolation: isolate; display: grid; place-items: center; min-width: 44px; min-height: 44px; padding: 0 var(--space-2); border: 0; background: transparent; color: var(--color-text-secondary); cursor: pointer; }
.users-table .access-role-chip-count[b-2oc3hsx6sx]::before { content: ""; position: absolute; inset: var(--space-2) var(--space-1); z-index: -1; border: 1px solid var(--clv-color-border); border-radius: var(--radius-full); background: var(--clv-color-surface); }

.members-role-more[b-2oc3hsx6sx] { display: flex; flex: none; }
.members-role-tooltip[b-2oc3hsx6sx] { display: none; position: fixed; inset: auto; top: anchor(bottom); left: anchor(left); margin-top: var(--space-1); z-index: 5; padding: var(--space-2); border: 1px solid var(--clv-color-control-border); border-radius: var(--radius-md); background: var(--clv-color-white); color: var(--clv-color-deep-teal); box-shadow: var(--shadow-lg); }
.members-role-more:hover .members-role-tooltip[b-2oc3hsx6sx],
.members-role-more:focus-within .members-role-tooltip[b-2oc3hsx6sx],
.members-role-tooltip.open[b-2oc3hsx6sx] { display: block; }
/* Escape or a second tap overrides hover and focus until the pointer re-enters or focus returns. */
.members-role-more .members-role-tooltip.dismissed[b-2oc3hsx6sx] { display: none; }

.members-confirm[b-2oc3hsx6sx]  .btn-danger { color: var(--clv-color-error-light); background: var(--clv-color-white); border-color: var(--clv-color-error-light); }
.members-confirm[b-2oc3hsx6sx]  .btn-danger:hover { background: var(--clv-tint-error); }
/* /Components/SettingsModules.razor.rz.scp.css */
.settings-modules[b-xrsgkp1zh5] {
    min-width: 0;
    max-width: var(--container-mid);
}

.settings-modules-header[b-xrsgkp1zh5] {
    margin-bottom: var(--space-5);
}

.modules-notice[b-xrsgkp1zh5] {
    margin-bottom: var(--space-4);
    padding: var(--space-3);
    border: 1px solid var(--color-control-border);
    border-radius: var(--radius-sm);
    color: var(--color-text-primary);
    font-size: var(--text-subhead);
}

.modules-row[b-xrsgkp1zh5] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-5);
    max-width: var(--container-mid);
    padding: var(--space-4) 0;
    border-top: 1px solid var(--color-control-border);
}

.modules-row-text[b-xrsgkp1zh5] {
    max-width: 46rem;
}

.modules-row-text h2[b-xrsgkp1zh5] {
    margin: 0 0 var(--space-1);
    color: var(--color-navy);
    font-size: var(--text-body);
    font-weight: var(--font-medium);
}

.modules-row-text p[b-xrsgkp1zh5] {
    margin: 0;
    color: var(--color-service-grey);
    font-size: var(--text-subhead);
}

.modules-toggle[b-xrsgkp1zh5] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    min-height: 44px;
    color: var(--color-text-primary);
    font-size: var(--text-subhead);
    white-space: nowrap;
}

.modules-toggle input[b-xrsgkp1zh5] {
    inline-size: 1.5rem;
    block-size: 1.5rem;
    accent-color: var(--color-navy);
}
/* /Components/SettingsNav.razor.rz.scp.css */
.settings-nav[b-74c26n3ieb] {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 0;
}

.settings-nav-group[b-74c26n3ieb],
.settings-nav-list[b-74c26n3ieb] {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 0;
}

.settings-nav-label[b-74c26n3ieb] {
    margin: 0;
    padding: var(--space-4) var(--space-3) var(--space-1);
    color: var(--color-service-grey);
    font-family: var(--font-primary);
    font-size: var(--text-caption2);
    font-weight: var(--font-medium);
    letter-spacing: .1em;
    text-transform: uppercase;
}

.settings-nav-item[b-74c26n3ieb] {
    display: flex;
    width: 100%;
    min-width: 0;
    min-height: var(--space-10);
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-3);
    border: 0;
    border-radius: var(--radius-md);
    background: none;
    color: var(--clv-color-deep-teal);
    cursor: pointer;
    font-family: var(--font-primary);
    font-size: var(--text-subhead);
    font-weight: 400;
    text-align: left;
    text-decoration: none;
    transition: background var(--duration-fast), color var(--duration-fast);
}

.settings-nav-item:hover[b-74c26n3ieb] {
    background: var(--color-surface);
    color: var(--color-navy);
}

.settings-nav-item.active[b-74c26n3ieb] {
    background: var(--clv-color-ice-blue);
    color: var(--color-navy);
    font-weight: 500;
}

.settings-nav-item:focus-visible[b-74c26n3ieb] {
    outline: none;
    box-shadow: var(--shadow-focus);
}

@media (max-width: 900px) {
    .settings-nav[b-74c26n3ieb] {
        flex-direction: row;
        gap: 0;
        overflow-x: auto;
        overscroll-behavior-x: contain;
        border-bottom: 1px solid var(--color-border-light);
        scrollbar-width: thin;
    }

    .settings-nav-group[b-74c26n3ieb],
    .settings-nav-list[b-74c26n3ieb] {
        display: contents;
    }

    .settings-nav-label[b-74c26n3ieb] {
        display: none;
    }

    .settings-nav-item[b-74c26n3ieb] {
        width: auto;
        min-height: var(--space-10);
        flex: 0 0 auto;
        border-radius: 0;
        white-space: nowrap;
    }

    .settings-nav-item.active[b-74c26n3ieb] {
        background: none;
        box-shadow: inset 0 -2px 0 var(--color-blue);
    }

    .settings-nav-item.active:focus-visible[b-74c26n3ieb] {
        outline: 2px solid var(--color-blue);
        outline-offset: -4px;
        box-shadow: inset 0 -2px 0 var(--color-blue);
    }
}

.settings-nav-item.no-access[b-74c26n3ieb] {
    color: var(--color-text-secondary);
    cursor: not-allowed;
}

.settings-nav-item.no-access:hover[b-74c26n3ieb] {
    background: none;
    color: var(--color-text-secondary);
}

.settings-nav-heading[b-74c26n3ieb] { display: flex; align-items: center; min-height: var(--space-10); margin: 0; padding: 0 var(--space-3); font-family: var(--font-heading); font-size: var(--text-body); font-weight: var(--font-medium); color: var(--color-navy); }

.settings-nav-item svg[b-74c26n3ieb] { flex: 0 0 calc(var(--space-4) + 2px); }

.settings-nav-item > span[b-74c26n3ieb] { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

@media (min-width: 901px) and (max-width: 1194px) {
    .settings-nav-item[b-74c26n3ieb] { min-height: calc(var(--space-10) + var(--space-1)); }
}
/* /Components/SettingsNotifications.razor.rz.scp.css */
.settings-notifications[b-fyafglkmqz] { max-width: var(--container-mid); min-width: 0; }
.notifications-note[b-fyafglkmqz] { margin: var(--space-6) 0 var(--space-4); font-size: var(--text-subhead); color: var(--clv-color-text-link); }
/* ui-reuse-allow: f1 explicitly uses the light matrix header; extend the canonical data-table. */
.settings-notifications .data-table.notifications-matrix > thead > tr > th[b-fyafglkmqz] { background: var(--clv-color-ice-blue); color: var(--clv-color-deep-teal); font-family: var(--clv-font-body); font-size: var(--text-subhead); font-weight: var(--font-medium); letter-spacing: normal; text-transform: none; padding: var(--space-3) var(--space-4); }
.notifications-matrix tbody th[b-fyafglkmqz] { text-align: left; padding: var(--space-3) var(--space-4); font-size: var(--text-subhead); }
.notifications-matrix tbody td[b-fyafglkmqz] { padding: var(--space-3) var(--space-4); }
.notifications-matrix strong[b-fyafglkmqz] { font-weight: var(--font-medium); }
.notifications-matrix small[b-fyafglkmqz] { display: block; margin-top: var(--space-1); color: var(--clv-color-text-link); font-size: var(--text-footnote); font-weight: var(--font-regular); }
.notifications-matrix .notifications-channel[b-fyafglkmqz] { text-align: center; width: calc(var(--space-10) * 3); }
.notifications-tick[b-fyafglkmqz] { display: inline-flex; align-items: center; justify-content: center; min-width: calc(var(--space-10) + var(--space-1)); min-height: calc(var(--space-10) + var(--space-1)); cursor: pointer; }
.notifications-tick input[b-fyafglkmqz] { width: var(--space-4); height: var(--space-4); accent-color: var(--clv-color-deep-teal); cursor: pointer; }
.notifications-unavailable[b-fyafglkmqz] { color: var(--clv-color-text-link); white-space: nowrap; }
.notifications-actions[b-fyafglkmqz] { display: flex; align-items: center; gap: var(--space-3); margin-top: var(--space-6); }
.notifications-actions .btn[b-fyafglkmqz] { min-height: calc(var(--space-10) + var(--space-1)); }
.notifications-reset[b-fyafglkmqz] { margin-left: auto; padding-right: 0; text-decoration: underline; }
.notifications-error[b-fyafglkmqz] { padding: var(--space-3) var(--space-4); background: var(--clv-tint-error); color: var(--clv-color-error-light); border: 1px solid var(--clv-tint-error-border); border-radius: var(--radius-md); margin: var(--space-4) 0 0; }
.notifications-saved[b-fyafglkmqz] { margin: var(--space-4) 0 0; color: var(--clv-color-text-link); }
/* f2: read-error, denied and empty states sit on the content left edge at body size, not as a padded, centred panel. */
.settings-notifications[b-fyafglkmqz]  .settings-tab-frame-state { padding: var(--space-6) 0 0; text-align: left; }
.settings-notifications[b-fyafglkmqz]  .settings-tab-frame-state h2 { font-size: var(--text-body); font-weight: var(--font-medium); }
.settings-notifications[b-fyafglkmqz]  .settings-tab-frame-state p { font-size: var(--text-body); }
/* /Components/SettingsRegulatory.razor.rz.scp.css */
.settings-regulatory[b-4108re01ev] { min-width: 0; max-width: var(--container-mid); }
.reg-settings-card h2[b-4108re01ev] { margin: 0; color: var(--color-navy); font-family: var(--font-heading); font-weight: var(--font-medium); }
.reg-settings-card h2[b-4108re01ev] { font-size: var(--text-body); }
.reg-settings-card p[b-4108re01ev] { margin: var(--space-1) 0 0; color: var(--color-service-grey); font-size: var(--text-subhead); line-height: 1.55; }
.reg-settings-notice[b-4108re01ev] { padding: var(--space-3); border: 1px solid var(--color-control-border); border-radius: var(--radius-sm); background: var(--color-white); color: var(--color-text-primary); font-size: var(--text-subhead); }
.reg-settings-card[b-4108re01ev] { display: grid; gap: var(--space-4); padding: 0; border: 0; border-radius: 0; background: none; }
.reg-settings-card-head[b-4108re01ev] { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.reg-settings-list[b-4108re01ev] { display: grid; gap: 10px; }
.reg-settings-row[b-4108re01ev] { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; }
.reg-settings-add[b-4108re01ev] { display: grid; gap: 7px; max-width: 700px; }
.reg-settings-add label[b-4108re01ev] { color: var(--color-text-primary); font-weight: var(--font-semibold); }
.reg-settings-actions[b-4108re01ev] { display: flex; justify-content: space-between; gap: var(--space-3); border-top: 1px solid var(--color-control-border); padding-top: var(--space-4); }
@media (max-width: 640px) {
    .reg-settings-card-head[b-4108re01ev], .reg-settings-actions[b-4108re01ev] { align-items: stretch; flex-direction: column; }
    .reg-settings-row[b-4108re01ev] { grid-template-columns: 1fr; }
}
/* /Components/SettingsRoles.razor.rz.scp.css */
.settings-roles[b-2u7rxfqrtl] {
    min-width: 0;
}

.settings-roles-header[b-2u7rxfqrtl] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-5);
    margin-bottom: 0;
}

.roles-table-card[b-2u7rxfqrtl] {
    overflow: hidden;
}

.roles-table-wrap[b-2u7rxfqrtl] {
    border: 0;
    border-radius: 0;
}

.roles-table[b-2u7rxfqrtl] {
    width: 100%;
    min-width: 680px;
}

.roles-table > thead > tr > th:first-child[b-2u7rxfqrtl],
.roles-table > tbody > tr:not(.expandable-row) > td:first-child[b-2u7rxfqrtl] {
    width: 52px;
    padding-right: var(--space-2);
    padding-left: var(--space-2);
    text-align: center;
}

.roles-table > tbody > tr:not(.expandable-row):hover[b-2u7rxfqrtl] {
    background: var(--color-surface);
}

.roles-table > thead > tr > th.role-actions-heading[b-2u7rxfqrtl],
.roles-table > tbody > tr:not(.expandable-row) > td.role-actions-cell[b-2u7rxfqrtl] {
    min-width: 170px;
    text-align: right;
}

.roles-table .access-role-actions[b-2u7rxfqrtl] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: var(--space-2);
}

.roles-table .access-role-actions .btn[b-2u7rxfqrtl] {
    min-height: 44px;
}

.role-name-cell[b-2u7rxfqrtl] {
    min-width: 0;
}

.role-title-row[b-2u7rxfqrtl] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
}

.role-title-row strong[b-2u7rxfqrtl] {
    color: var(--color-navy);
    font-weight: var(--font-medium);
    overflow-wrap: anywhere;
}

.role-name-cell .secondary[b-2u7rxfqrtl] {
    display: block;
    margin-top: var(--space-1);
    overflow-wrap: anywhere;
    white-space: normal;
}

.access-role-kind[b-2u7rxfqrtl],
.access-role-archived[b-2u7rxfqrtl] {
    display: inline-flex;
    padding: var(--space-1) var(--space-3);
    border-radius: var(--radius-full);
    background: var(--color-info-tint);
    color: var(--color-info);
    font-size: var(--text-caption1);
    white-space: nowrap;
}

.access-role-archived[b-2u7rxfqrtl] {
    background: var(--color-draft-tint);
    color: var(--color-service-grey);
}

.role-detail[b-2u7rxfqrtl] {
    align-items: start;
}

.role-expansion.open[b-2u7rxfqrtl] {
    max-height: none;
}

.role-detail h3[b-2u7rxfqrtl] {
    display: flex;
    align-items: baseline;
    gap: var(--space-2);
    margin: 0 0 var(--space-3);
    color: var(--color-navy);
}

.role-detail-count[b-2u7rxfqrtl] {
    color: var(--color-service-grey);
    font-size: var(--text-caption1);
    font-weight: var(--font-regular);
}

.capabilities[b-2u7rxfqrtl] {
    display: grid;
    gap: var(--space-2);
    margin: 0;
    padding: 0;
    list-style: none;
}

.capabilities li[b-2u7rxfqrtl] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-3);
    padding: var(--space-2) 0;
    border-bottom: 1px solid var(--color-border-light);
    color: var(--color-navy);
    overflow-wrap: anywhere;
}

.capability-key[b-2u7rxfqrtl] {
    flex: 0 1 auto;
    color: var(--color-service-grey);
    font-size: var(--text-caption1);
    overflow-wrap: anywhere;
}

.role-detail-status[b-2u7rxfqrtl],
.role-members-status[b-2u7rxfqrtl] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin: 0;
    color: var(--color-service-grey);
}

.role-detail-status.error[b-2u7rxfqrtl],
.role-members-status.error[b-2u7rxfqrtl] {
    color: var(--color-error);
}

.role-detail-status .btn[b-2u7rxfqrtl],
.role-members-status .btn[b-2u7rxfqrtl],
.role-members-link[b-2u7rxfqrtl] {
    min-height: 44px;
}

.role-members-scroll[b-2u7rxfqrtl] {
    max-height: 256px;
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-gutter: stable;
}

.role-members-table[b-2u7rxfqrtl] {
    width: 100%;
}

.role-members-table thead[b-2u7rxfqrtl] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

.role-member-copy[b-2u7rxfqrtl] {
    min-width: 0;
    padding: var(--space-2) var(--space-3);
    overflow-wrap: anywhere;
    white-space: normal;
}

.role-member-copy strong[b-2u7rxfqrtl],
.role-member-copy .secondary[b-2u7rxfqrtl] {
    display: block;
    overflow-wrap: anywhere;
    white-space: normal;
}

.role-members-link[b-2u7rxfqrtl] {
    display: inline-flex;
    align-items: center;
    margin-top: var(--space-3);
    text-decoration: none;
}

.settings-roles-header .btn[b-2u7rxfqrtl],
.roles-archived-toggle[b-2u7rxfqrtl] {
    min-height: 44px;
}

.roles-archived-toggle[b-2u7rxfqrtl] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    margin-bottom: var(--space-4);
    color: var(--color-navy);
    font-size: var(--text-subhead);
    cursor: pointer;
}

.roles-archived-toggle input[b-2u7rxfqrtl] {
    width: 18px;
    height: 18px;
    accent-color: var(--color-navy);
}

.roles-notice[b-2u7rxfqrtl] {
    margin-bottom: var(--space-4);
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--color-error-tint-border);
    border-radius: var(--radius-md);
    background: var(--color-error-tint);
    color: var(--color-error);
}

.access-confirm-overlay[b-2u7rxfqrtl] {
    position: fixed;
    inset: 0;
    z-index: 310;
    display: grid;
    place-items: center;
    padding: var(--space-4);
    background: var(--clv-color-overlay);
}

.access-confirm[b-2u7rxfqrtl] {
    width: min(480px, 100%);
    padding: var(--space-6);
    border-radius: var(--radius-xl);
    background: var(--color-white);
    box-shadow: var(--shadow-lg);
}

.access-confirm h3[b-2u7rxfqrtl] {
    margin: 0 0 var(--space-3);
    color: var(--color-navy);
    font-size: var(--text-title3);
}

.access-confirm p[b-2u7rxfqrtl] {
    margin: 0;
    color: var(--color-service-grey);
}

.access-confirm-actions[b-2u7rxfqrtl] {
    display: flex;
    justify-content: flex-end;
    gap: var(--space-3);
    margin-top: var(--space-6);
}

.access-confirm-actions .btn[b-2u7rxfqrtl] {
    min-height: 44px;
}

.btn-danger[b-2u7rxfqrtl] {
    border: 2px solid var(--color-blue);
    background: var(--color-deep-navy);
    color: var(--color-white);
}

.btn-danger:hover[b-2u7rxfqrtl] {
    background: var(--color-navy);
}

@media (max-width: 427px) {
    .settings-roles-header[b-2u7rxfqrtl] {
        align-items: stretch;
        flex-direction: column;
    }

    .access-confirm-actions[b-2u7rxfqrtl] {
        align-items: stretch;
        flex-direction: column-reverse;
    }

    .settings-roles-header .btn[b-2u7rxfqrtl],
    .access-confirm-actions .btn[b-2u7rxfqrtl] {
        width: 100%;
    }
}

@media (max-width: 760px) {
    .roles-table[b-2u7rxfqrtl] {
        min-width: 0;
    }

    .role-detail[b-2u7rxfqrtl] {
        display: block;
    }

    .role-members-panel[b-2u7rxfqrtl] {
        margin-top: var(--space-5);
    }

    .capabilities li[b-2u7rxfqrtl] {
        align-items: flex-start;
        flex-direction: column;
    }
}
/* /Components/SettingsSectionHeader.razor.rz.scp.css */
.settings-section-header[b-vfn1aa3yjg] {
    min-width: 0;
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: var(--space-4);
    margin-bottom: var(--space-6);
}

.settings-section-title[b-vfn1aa3yjg] {
    margin: 0;
    color: var(--color-navy);
    font-family: var(--font-heading);
    font-size: var(--text-title3);
    font-weight: var(--font-medium);
    line-height: 1.25;
}

.settings-section-help[b-vfn1aa3yjg] {
    max-width: 52rem;
    margin: var(--space-1) 0 0;
    color: var(--color-service-grey);
    font-size: var(--text-subhead);
    line-height: 1.5;
}

.settings-section-copy[b-vfn1aa3yjg] { min-width: 0; flex: 1; }
.settings-section-actions[b-vfn1aa3yjg] { display: flex; flex-shrink: 0; flex-wrap: wrap; gap: var(--space-3); }

.settings-section-actions[b-vfn1aa3yjg]  .btn { min-height: calc(var(--space-10) + var(--space-1)); }
/* /Components/SettingsShell.razor.rz.scp.css */
.settings-shell-grid[b-dzjy7tc558] {
    font-size: var(--text-subhead);
    font-weight: var(--font-regular);
    line-height: 1.5;
    display: grid;
    grid-template-columns: var(--settings-nav-width) minmax(0, 1fr);
    align-items: start;
    gap: var(--space-6);
}

.settings-shell-content[b-dzjy7tc558] {
    min-width: 0;
    max-width: var(--container-wide);
}

/* Usage & budget leaf only, including its page-level denied state: 44px nav targets. */
.settings-shell-grid:has(> .settings-shell-content[aria-label="Usage & budget settings"])[b-dzjy7tc558]  .settings-nav-item {
    min-height: calc(var(--space-10) + var(--space-1));
}

@media (max-width: 900px) {
    .settings-shell-grid[b-dzjy7tc558] {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--space-6);
    }
}

/* Settings shares the r5 scale without changing the rest of the application. */
.settings-shell-content[b-dzjy7tc558]  .data-table > thead > tr > th {
    background: var(--clv-color-deep-teal);
    font-family: var(--font-primary);
    font-size: var(--text-subhead);
    font-weight: var(--font-medium);
    letter-spacing: normal;
    text-transform: none;
}

.settings-shell-content[b-dzjy7tc558]  .data-table > tbody > tr:not(.expandable-row) > td,
.settings-shell-content[b-dzjy7tc558]  .data-table > thead > tr > th {
    padding: var(--space-3) var(--space-4);
}

.settings-shell-content[b-dzjy7tc558]  .data-table th button {
    font: inherit;
}

.settings-shell-content[b-dzjy7tc558]  label,
.settings-shell-content[b-dzjy7tc558]  input:not([type="checkbox"]):not([type="radio"]),
.settings-shell-content[b-dzjy7tc558]  select,
.settings-shell-content[b-dzjy7tc558]  textarea {
    font-size: var(--text-subhead);
}

.settings-shell-content[b-dzjy7tc558]  .btn-danger {
    color: var(--clv-color-error-light);
    border-color: var(--clv-color-error-light);
    background: var(--clv-color-white);
}

.settings-shell-content[b-dzjy7tc558]  .btn-danger:hover {
    background: var(--clv-tint-error);
}

@media (max-width: 1194px) {
    .settings-shell-content[b-dzjy7tc558]  .asg-row-toggle,
    .settings-shell-content[b-dzjy7tc558]  .applied-filter-chip button,
    .settings-shell-content[b-dzjy7tc558]  .access-drawer-close,
    .settings-shell-content[b-dzjy7tc558]  .mud-icon-button,
    .settings-shell-content[b-dzjy7tc558]  button:has(> svg),
    .settings-shell-content[b-dzjy7tc558]  button[aria-label^="Remove"] {
        min-width: calc(var(--space-10) + var(--space-1));
        min-height: calc(var(--space-10) + var(--space-1));
    }

    /* The input owns the whole hit area; only its 18px glyph is painted. */
    .settings-shell-content[b-dzjy7tc558]  input[type="checkbox"] {
        appearance: none;
        position: relative;
        flex: 0 0 calc(var(--space-10) + var(--space-1));
        width: calc(var(--space-10) + var(--space-1));
        height: calc(var(--space-10) + var(--space-1));
        margin: 0;
        padding: 0;
        border: 0;
        background: transparent;
        cursor: pointer;
    }

    .settings-shell-content[b-dzjy7tc558]  input[type="checkbox"]::before {
        content: '';
        position: absolute;
        width: calc(var(--space-4) + 2px);
        height: calc(var(--space-4) + 2px);
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        border: 1.5px solid var(--clv-color-control-border);
        border-radius: var(--radius-sm);
        background: var(--clv-color-white);
    }

    .settings-shell-content[b-dzjy7tc558]  input[type="checkbox"]:checked::before {
        border-color: var(--clv-color-deep-teal);
        background: var(--clv-color-deep-teal);
    }

    .settings-shell-content[b-dzjy7tc558]  input[type="checkbox"]:checked::after {
        content: '✓';
        position: absolute;
        inset: 0;
        display: grid;
        place-items: center;
        color: var(--clv-color-white);
        font-size: var(--text-subhead);
    }

    .settings-shell-content[b-dzjy7tc558]  input[type="checkbox"]:disabled {
        cursor: not-allowed;
        opacity: .4;
    }

    .settings-shell-content[b-dzjy7tc558]  .members-selection {
        width: calc(var(--space-10) + var(--space-5));
    }

    .settings-shell-content[b-dzjy7tc558]  .data-table > thead > tr > th.members-selection,
    .settings-shell-content[b-dzjy7tc558]  .data-table > tbody > tr > td.members-selection {
        padding: var(--space-2);
    }
}
/* /Components/SettingsTabFrame.razor.rz.scp.css */
.settings-tab-frame[b-e3glkuxjm6] {
    min-width: 0;
}

.settings-tab-frame-loading[b-e3glkuxjm6] {
    display: grid;
    gap: var(--space-3);
}

.settings-tab-frame-loading span[b-e3glkuxjm6] {
    height: 4rem;
    border-radius: var(--radius-sm);
    background: linear-gradient(90deg, var(--color-surface), var(--color-ice-blue), var(--color-surface));
    background-size: 200% 100%;
    animation: settings-tab-frame-pulse-b-e3glkuxjm6 1.4s ease-in-out infinite;
}

.settings-tab-frame-state[b-e3glkuxjm6] {
    padding: var(--space-8);
    border: 0;
    border-radius: 0;
    background: none;
}

.settings-tab-frame-state h2[b-e3glkuxjm6],
.settings-tab-frame-state h3[b-e3glkuxjm6] {
    margin: 0 0 var(--space-2);
    color: var(--color-navy);
    font-size: var(--text-title3);
}

.settings-tab-frame-state p[b-e3glkuxjm6] {
    margin: 0 0 var(--space-4);
    color: var(--color-service-grey);
}

.settings-tab-frame-state p:last-child[b-e3glkuxjm6] {
    margin-bottom: 0;
}

.settings-tab-frame-state .btn[b-e3glkuxjm6],
.settings-tab-frame-pager .btn[b-e3glkuxjm6] {
    min-width: 44px;
    min-height: 44px;
}

.settings-tab-frame-denied[b-e3glkuxjm6] {
    border-color: var(--color-warning);
}

.settings-tab-frame-error[b-e3glkuxjm6] {
    border-color: var(--color-error);
}

.settings-tab-frame-empty[b-e3glkuxjm6] {
    text-align: center;
}

.settings-tab-frame-pager[b-e3glkuxjm6] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--space-3);
    margin-top: var(--space-4);
    color: var(--color-service-grey);
    font-size: var(--text-caption1);
}

@keyframes settings-tab-frame-pulse-b-e3glkuxjm6 {
    from {
        background-position: 100% 0;
    }

    to {
        background-position: -100% 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .settings-tab-frame-loading span[b-e3glkuxjm6] {
        animation: none;
    }
}
/* /Components/SettingsTableControls.razor.rz.scp.css */
.settings-table-toolbar[b-mjc8854xl0] { flex-wrap: wrap; align-items: end; padding: var(--space-4); }
.settings-table-toolbar label[b-mjc8854xl0],
.settings-table-filters label[b-mjc8854xl0],
.settings-table-dates label[b-mjc8854xl0] { display: flex; flex-direction: column; gap: var(--space-1); color: var(--clv-color-deep-teal); }
.settings-table-search-label[b-mjc8854xl0] { flex: 1 1 240px; max-width: 360px; min-width: 0; }
.search-field[b-mjc8854xl0] { width: 100%; }
.search-field input[b-mjc8854xl0] { width: 100%; height: 44px; }
.filter-select[b-mjc8854xl0] { max-width: 100%; height: 44px; }
.settings-table-toolbar .btn[b-mjc8854xl0],
.settings-table-dates .btn[b-mjc8854xl0] { min-height: 44px; }
.settings-table-toolbar-end[b-mjc8854xl0] { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-left: auto; }
.settings-table-dates[b-mjc8854xl0],
.settings-table-filters[b-mjc8854xl0] { flex-wrap: wrap; align-items: end; padding: var(--space-4); }
.settings-table-chips[b-mjc8854xl0] { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); padding: var(--space-3) var(--space-4); }
.settings-table-count[b-mjc8854xl0] { margin-left: auto; color: var(--clv-color-text-link); font-size: 12px; }
.settings-table-columns label[b-mjc8854xl0] { display: flex; align-items: center; gap: var(--space-2); min-height: 44px; }
.applied-filter-chip[b-mjc8854xl0] { display: inline-flex; align-items: center; gap: var(--space-1); max-width: 100%; padding: 2px var(--space-2); border: 1px solid var(--clv-color-border); border-radius: var(--radius-full); background: var(--clv-color-surface); color: var(--clv-color-deep-teal); font-size: 12px; overflow-wrap: anywhere; }
.applied-filter-chip button[b-mjc8854xl0] { min-width: 24px; min-height: 24px; color: var(--color-service-grey); }

/* Native popovers provide outside-click and Escape dismissal without a shared API change. */
.settings-filter-trigger[b-mjc8854xl0] { anchor-name: --settings-filter; }
.settings-columns-trigger[b-mjc8854xl0] { anchor-name: --settings-columns; }
.settings-dates-trigger[b-mjc8854xl0] { anchor-name: --settings-dates; }
.settings-table-popover[b-mjc8854xl0] { margin: 0; inset: auto; position: fixed; top: anchor(bottom); margin-top: var(--space-2); padding: var(--space-4); border: 1px solid var(--clv-color-control-border); border-radius: var(--radius-md); background: var(--clv-color-white); color: var(--clv-color-deep-teal); box-shadow: var(--shadow-lg); max-width: calc(100vw - var(--space-8)); }
.settings-table-filters[b-mjc8854xl0] { position-try-fallbacks: flip-block; }
.settings-table-columns[b-mjc8854xl0] { position-try-fallbacks: --settings-columns-above; }
.settings-table-filters[b-mjc8854xl0] { position-anchor: --settings-filter; left: anchor(left); width: 280px; }
.settings-table-columns[b-mjc8854xl0] { position-anchor: --settings-columns; right: anchor(right); width: 260px; }
.settings-table-dates[b-mjc8854xl0] { position-anchor: --settings-dates; right: anchor(right); width: 420px; }
.settings-table-popover:popover-open[b-mjc8854xl0] { display: flex; flex-direction: column; align-items: stretch; gap: var(--space-3); }
.settings-table-columns label[b-mjc8854xl0] { flex-direction: row; }
/* Bound each placement to the available viewport space so longer lists remain scrollable.
   The fallback aligns its natural height to the trigger instead of the viewport's top edge. */
.settings-table-columns:popover-open[b-mjc8854xl0] { bottom: var(--space-4); height: auto; max-height: max-content; overflow-y: auto; }
@position-try --settings-columns-above {
    top: var(--space-4); bottom: anchor(top); margin-top: 0; margin-bottom: var(--space-2); align-self: end;
}
.settings-table-columns .asg-cb[b-mjc8854xl0] { appearance: none; width: 24px; height: 24px; margin: 0; flex: 0 0 24px; border: 1.5px solid var(--clv-color-control-border); border-radius: var(--radius-sm); background: var(--clv-color-white); }
.settings-table-columns .asg-cb:checked[b-mjc8854xl0] { background: var(--clv-color-deep-teal); border-color: var(--clv-color-deep-teal); }
.settings-table-columns .asg-cb:checked[b-mjc8854xl0]::after { content: '✓'; display: block; color: var(--clv-color-white); text-align: center; line-height: 21px; }
.settings-table-columns .asg-cb:disabled[b-mjc8854xl0] { opacity: .4; }
.settings-date-presets[b-mjc8854xl0] { display: flex; flex-wrap: wrap; gap: var(--space-1); }

/* MudBlazor wraps the day grid into seven columns only inside its native 310px calendar container, so the
   picker keeps library dimensions. The scoped "> *" rule below never reaches a child component's root, so
   the picker opts out of flex shrinking here; otherwise a short window collapses the month to nothing. */
.settings-table-dates[b-mjc8854xl0]  .mud-picker,
.settings-table-dates[b-mjc8854xl0]  .mud-picker-static { box-shadow: none; flex: none; align-self: flex-start; }

.settings-date-inputs[b-mjc8854xl0] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); }
/* One vertical column: the band rule's wrap would push the calendar sideways. The bottom inset stretches
   the box to the viewport edge and max-height trims it back to its content, so a short window scrolls
   vertically instead of clipping below the fold. height: auto overrides the popover default of
   fit-content, which otherwise ignores the bottom inset. */
.settings-table-dates:popover-open[b-mjc8854xl0] { flex-wrap: nowrap; bottom: var(--space-4); height: auto; max-height: 42rem; overflow-x: hidden; overflow-y: auto; }
.settings-table-dates > *[b-mjc8854xl0] { flex-shrink: 0; }
.settings-table-dates > h4[b-mjc8854xl0] { margin: 0; font-size: var(--text-body); font-weight: var(--font-medium); }
.settings-table-dates > .btn[b-mjc8854xl0] { align-self: flex-start; }
.settings-dates-hint[b-mjc8854xl0] { align-self: center; max-width: 18rem; color: var(--clv-color-deep-teal); font-size: var(--text-footnote); }

/* The approved Activity and Jobs frames keep the primary facets visible above the rows. */
/* Four 8rem fields, the system-events label and the 44px Columns icon fit the ~856px card at 1194px. */
.settings-table-toolbar-inline[b-mjc8854xl0] { gap: var(--space-2); align-items: center; padding: var(--space-2) var(--space-4); }
.settings-table-toolbar-inline .settings-table-search-label[b-mjc8854xl0] { flex: 1 1 8rem; min-width: 0; max-width: 14rem; }
.settings-table-toolbar-inline .search-field[b-mjc8854xl0] { min-width: 0; }
.settings-table-toolbar-inline > label:not(.settings-table-search-label)[b-mjc8854xl0] { flex: 0 1 8rem; width: 8rem; min-width: 0; }
.settings-table-toolbar-inline .filter-select[b-mjc8854xl0] { width: 100%; min-width: 0; }
.settings-table-toolbar-inline .settings-table-toolbar-end[b-mjc8854xl0] { flex: none; flex-wrap: nowrap; align-items: center; margin-left: auto; }
.settings-table-toolbar-inline .settings-columns-icon[b-mjc8854xl0] { display: inline-grid; place-items: center; width: calc(var(--space-10) + var(--space-1)); min-width: calc(var(--space-10) + var(--space-1)); height: calc(var(--space-10) + var(--space-1)); padding: 0; }
.settings-table-columns label[b-mjc8854xl0] { min-height: 44px; align-items: center; }
/* /Components/SettingsTablePager.razor.rz.scp.css */
.settings-table-pager[b-emhi5mugja] { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--space-3); padding: var(--space-3) var(--space-4); border-top: 1px solid var(--clv-color-border); color: var(--color-service-grey); font-size: 12px; }
.settings-table-pager > div[b-emhi5mugja] { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-2); }
.settings-table-pager label[b-emhi5mugja] { display: flex; align-items: center; gap: var(--space-2); }
.settings-table-pager .btn[b-emhi5mugja],
.settings-table-pager .filter-select[b-emhi5mugja] { min-height: 44px; }
/* /Components/SubjectMapAcquisition.razor.rz.scp.css */
.map-decision-note[b-800l3hzn5a] {
    margin: 0;
    max-width: 75ch;
    color: var(--color-text-secondary);
}

.map-decision-actions[b-800l3hzn5a] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

/* ui-reuse-allow: the toolbar's checkbox chip, given the decision options' width and height */
.map-decision-confirm[b-800l3hzn5a] {
    max-width: 36rem;
    min-height: 44px;
    height: auto;
}

.map-muted[b-800l3hzn5a] {
    color: var(--color-text-secondary);
}

.map-action-error[b-800l3hzn5a] {
    margin: 0;
    font-size: var(--text-caption1);
    color: var(--color-error);
}

.data-table td.map-docs-code[b-800l3hzn5a] {
    font-family: var(--font-mono, monospace);
    white-space: nowrap;
}

.map-decision-recorded[b-800l3hzn5a],
.map-decision-superseded[b-800l3hzn5a] {
    margin: 0;
    max-width: 75ch;
}

.map-decision-superseded[b-800l3hzn5a] {
    font-size: var(--text-caption1);
    color: var(--color-text-secondary);
}

.map-decision-label[b-800l3hzn5a] {
    margin-right: var(--space-2);
    font-size: var(--text-caption1);
    font-weight: 600;
    color: var(--color-text-secondary);
}

.map-plan-link[b-800l3hzn5a] {
    color: var(--clv-color-text-link);
    text-decoration: underline;
    text-underline-offset: 3px;
    white-space: nowrap;
}

.map-plan-link:hover[b-800l3hzn5a] {
    color: var(--clv-color-text-link-hover);
}

.map-code-whole[b-800l3hzn5a] {
    white-space: nowrap;
}
/* /Components/SubjectMapAspects.razor.rz.scp.css */
/* Up to four documents share the width equally (fr, never pixels), so four fit at 1194 without scrolling sideways.
   Five or more get a fixed column each: a flexible track sized to max-content would grow to the longest summary on
   one line. */
.map-aspects[b-ta4v0mt13u] {
    display: grid;
    grid-template-columns: minmax(7rem, 0.55fr) repeat(var(--map-aspect-columns), minmax(0, 1fr));
    border: 1px solid var(--clv-color-border);
    border-radius: var(--radius-md);
    background: var(--color-white);
    font-size: var(--text-caption1);
    overflow: hidden;
}

.map-aspects-wide[b-ta4v0mt13u] {
    grid-template-columns: 9rem repeat(var(--map-aspect-columns), 17rem);
    width: max-content;
    min-width: 100%;
    /* clip, not hidden: hidden would make the grid the sticky column's scroll container. */
    overflow: clip;
}

/* The aspect names stay in view while the documents scroll sideways. */
.map-aspects-wide .map-aspects-row > span:first-child[b-ta4v0mt13u] {
    position: sticky;
    left: 0;
    z-index: 1;
    background: var(--color-white);
    box-shadow: inset -1px 0 0 var(--color-border-light);
}

.map-aspects-wide .map-aspects-head > span:first-child[b-ta4v0mt13u] {
    background: var(--color-surface);
}

.map-aspects-cue[b-ta4v0mt13u] {
    margin: 0;
}

.map-aspects-region[b-ta4v0mt13u] {
    overflow-x: auto;
}

.map-aspects-row[b-ta4v0mt13u] {
    display: contents;
}

.map-aspects-row > span[b-ta4v0mt13u] {
    padding: var(--space-2) var(--space-3);
    border-top: 1px solid var(--color-border-light);
    min-width: 0;
    overflow-wrap: break-word;
}

.map-aspects-head > span[b-ta4v0mt13u] {
    border-top: none;
    background: var(--color-surface);
}

.map-aspects-doc[b-ta4v0mt13u] {
    display: grid;
    gap: 2px;
}

.map-aspects-code[b-ta4v0mt13u] {
    justify-self: start;
    max-width: 100%;
    /* The 24px minimum target. A block line box, not flex, so the ellipsis still applies. */
    min-height: var(--space-6);
    line-height: var(--space-6);
    font-family: var(--font-mono, monospace);
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: var(--clv-color-text-link);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.map-aspects-code:hover[b-ta4v0mt13u] {
    color: var(--clv-color-text-link-hover);
}

.map-aspects-doc[b-ta4v0mt13u]  .map-aspects-mark {
    justify-self: start;
}

/* A long summary is cut to about four lines; the row's own control shows it in full. */
.map-aspects-clamp > span[b-ta4v0mt13u] {
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.map-aspects-more[b-ta4v0mt13u] {
    display: block;
    margin-top: var(--space-1);
    padding: 0;
    /* The 24px minimum target. */
    min-height: var(--space-6);
    line-height: var(--space-6);
    font-weight: 400;
    text-align: left;
}

.map-aspects-doc-title[b-ta4v0mt13u] {
    color: var(--color-text-secondary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.map-aspects-label[b-ta4v0mt13u] {
    font-weight: 600;
    margin: 0;
}

.map-muted[b-ta4v0mt13u] {
    font-size: var(--text-caption1);
    color: var(--color-text-secondary);
}

.map-detail-block[b-ta4v0mt13u] {
    display: grid;
    gap: var(--space-2);
    align-content: start;
    min-width: 0;
}

.map-detail-heading[b-ta4v0mt13u] {
    margin: 0;
    font-size: var(--text-subhead);
    font-weight: 600;
}

/* The write-up's own relationship sits under the aspect name, so the label column keeps its width. */
.map-aspects-ai[b-ta4v0mt13u] {
    display: block;
    justify-self: start;
    width: max-content;
    margin-top: var(--space-1);
    font-weight: 400;
}

/* Spec 1461 Amendment 5: a document's most-shared sections, under its shared-text figure. */
.map-aspects-sections[b-ta4v0mt13u] {
    margin: var(--space-1) 0 0;
    padding-left: var(--space-4);
}
/* /Components/SubjectMapDecision.razor.rz.scp.css */
.map-decision-choices[b-z5ea3lx94x] {
    display: grid;
    gap: var(--space-2);
    margin: 0;
    padding: 0;
    border: none;
}

.map-decision-legend[b-z5ea3lx94x] {
    margin-bottom: var(--space-2);
    padding: 0;
    font-size: var(--text-subhead);
    color: var(--color-text-secondary);
}

/* The target question reads like the reason prompt (.field-label), at two documents and at six. */
.map-decision-target-legend[b-z5ea3lx94x] {
    margin-bottom: var(--space-2);
    padding: 0;
}

/* One option per line, the whole line a target, as in the comparison workbench's decision options. */
.map-decision-choice[b-z5ea3lx94x] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    min-height: 44px;
    padding: var(--space-2) var(--space-3);
    border: 1px solid var(--clv-color-border);
    border-radius: var(--radius-sm);
    cursor: pointer;
    max-width: 36rem;
    font-size: var(--text-subhead);
}

/* The native radio meets the 24px target minimum on its own, for the decision and the target alike. */
.map-decision-choice input[type="radio"][b-z5ea3lx94x] {
    flex-shrink: 0;
    width: var(--space-6);
    height: var(--space-6);
}

.map-decision-choice.selected[b-z5ea3lx94x] {
    border-color: var(--color-text-link);
    box-shadow: inset 0 0 0 1px var(--color-text-link);
}

.map-decision-field[b-z5ea3lx94x] {
    max-width: 36rem;
}

.map-decision-actions[b-z5ea3lx94x] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.map-decision-recorded[b-z5ea3lx94x],
.map-decision-reason[b-z5ea3lx94x],
.map-decision-note[b-z5ea3lx94x] {
    margin: 0;
    max-width: 75ch;
}

.map-decision-label[b-z5ea3lx94x] {
    margin-right: var(--space-2);
    font-size: var(--text-caption1);
    font-weight: 600;
    color: var(--color-text-secondary);
}

.map-decision-note[b-z5ea3lx94x] {
    font-size: var(--text-caption1);
    color: var(--color-text-secondary);
}

/* ui-reuse-allow: the toolbar's checkbox chip, given the decision options' width and height */
.map-decision-confirm[b-z5ea3lx94x] {
    max-width: 36rem;
    min-height: 44px;
    height: auto;
}

/* The toolbar chip's 14px box is under the 24px minimum target. */
.map-decision-confirm input[b-z5ea3lx94x] {
    flex-shrink: 0;
    width: var(--space-6);
    height: var(--space-6);
}

.map-action-error[b-z5ea3lx94x] {
    margin: 0;
    font-size: var(--text-caption1);
    color: var(--color-error);
}

.map-decision-choice-text[b-z5ea3lx94x] {
    display: grid;
    gap: 2px;
}

.map-decision-help[b-z5ea3lx94x] {
    font-size: var(--text-caption1);
    color: var(--color-text-secondary);
}

/* Under .comparisons-page, ".field select" sets font: inherit, which would read larger than the choices above. */
.map-decision-field .map-decision-select[b-z5ea3lx94x] {
    max-width: 36rem;
    min-height: 44px;
    font-size: var(--text-subhead);
}

.map-decision-target-code[b-z5ea3lx94x] {
    font-weight: 600;
}
/* /Components/SubjectMapMatrix.razor.rz.scp.css */
/* The matrix's cells, document entries and side panels are child components; ::deep reaches them from the card. */

.map-framework[b-z3eqo8rhmx] {
    /* One grid line weight for the whole matrix, lighter than a table's row rule: the cells carry the reading. */
    --map-grid-line: color-mix(in srgb, var(--color-border-light) 70%, transparent);
    --map-code-column: 3.25rem;
}

/* The page's organisation and asset selects, in the card's toolbar beside the heading. */
.map-matrix-scope[b-z3eqo8rhmx] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.map-framework-legend[b-z3eqo8rhmx] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2) var(--space-4);
    margin: 0 0 0 auto;
    padding: 0;
    list-style: none;
    font-size: var(--text-caption1);
    color: var(--color-text-secondary);
}

.map-framework-legend li[b-z3eqo8rhmx] {
    display: inline-flex;
    gap: var(--space-1);
    align-items: center;
}

/* Proportional columns, set on each col from the data (FrameworkMatrix): never fixed pixels. */
.map-framework-table[b-z3eqo8rhmx] {
    table-layout: fixed;
}

/* The level headers stay in view down a long matrix, below the fixed top bar. The table never overflows
   (fixed layout, percentage columns), so the region need not scroll, and a scrolling region would pin
   the headers to itself instead of the page. */
.map-framework .table-scroll-region[b-z3eqo8rhmx] {
    overflow: visible;
}

.data-table.sticky-head.map-framework-table thead th[b-z3eqo8rhmx] {
    top: var(--v21-topbar);
}

.data-table.map-framework-table thead th[b-z3eqo8rhmx] {
    white-space: normal;
    vertical-align: bottom;
    padding: var(--space-3);
    line-height: 1.3;
}

.map-level-head[b-z3eqo8rhmx] {
    display: flex;
    flex-direction: column;
}

.map-level-name[b-z3eqo8rhmx] {
    hyphens: manual;
    overflow-wrap: normal;
}

/* No zebra and no hover tint: the grid lines lead the eye, and striping would fight the group rows. */
.data-table.map-framework-table tbody tr:nth-child(n)[b-z3eqo8rhmx],
.data-table.map-framework-table tbody tr:hover[b-z3eqo8rhmx] {
    background: var(--color-white);
    border-bottom-color: var(--map-grid-line);
}

/* One padding for every cell and row header, so codes in neighbouring cells start on the same line. */
.map-framework-table tbody th[b-z3eqo8rhmx],
.map-framework-table td.map-cell[b-z3eqo8rhmx] {
    padding: var(--space-2) var(--space-3);
    vertical-align: top;
}

.map-framework-table td.map-cell[b-z3eqo8rhmx] {
    border-left: 1px solid var(--map-grid-line);
}

.map-framework-table tbody th[scope="row"][b-z3eqo8rhmx] {
    font-size: var(--text-subhead);
    line-height: 1.35;
    font-weight: normal;
    text-align: left;
}

/* Row header: the code in a narrow column, the name on one line, cut short (the title attribute has it all). */
.map-row-head[b-z3eqo8rhmx] {
    display: grid;
    grid-template-columns: var(--map-code-column) minmax(0, 1fr);
    align-items: baseline;
    min-height: 24px;
    color: var(--color-text-primary);
}

/* Element names wrap in full: their last words are often what tells two elements apart. */
.map-row-name[b-z3eqo8rhmx] {
    overflow-wrap: normal;
}

.map-framework .map-code[b-z3eqo8rhmx],
.map-framework[b-z3eqo8rhmx]  .map-code {
    font-family: var(--font-mono, monospace);
    font-size: var(--text-caption1);
    color: var(--color-text-secondary);
}

/* Group rows (EI focus areas, IOGP elements): a quiet band, the same code column as the rows under it. */
.map-framework-table .map-focus-row th[b-z3eqo8rhmx] {
    padding-top: var(--space-2);
    padding-bottom: var(--space-2);
    background: var(--color-surface);
    font-size: var(--text-caption1);
    font-weight: var(--font-medium);
    text-align: left;
}

.data-table.map-framework-table tbody tr.map-focus-row:nth-child(n)[b-z3eqo8rhmx] {
    background: var(--color-surface);
}

.map-focus-row .map-row-head[b-z3eqo8rhmx] {
    min-height: 0;
    color: var(--color-text-secondary);
}

/* An element no document covers stays on the map, quietly: muted and short, at the same size as the rest so the
   names still read as one column. */
.map-framework-table tr.map-row-empty th[scope="row"][b-z3eqo8rhmx] {
    padding-top: 2px;
    padding-bottom: 2px;
}

.map-framework-table tr.map-row-empty td.map-cell[b-z3eqo8rhmx] {
    padding-top: 0;
    padding-bottom: 0;
}

.map-row-empty .map-row-head[b-z3eqo8rhmx] {
    min-height: 0;
    color: var(--color-text-secondary);
}

/* Entries line up in three columns inside a cell: organisation mark, code, title. The list holds the columns
   and each entry and its button take them over (subgrid), so every code in a cell starts at one edge. */
.map-framework[b-z3eqo8rhmx]  .map-cell-body {
    container-type: inline-size;
}

.map-framework[b-z3eqo8rhmx]  .map-cell-docs,
.map-framework[b-z3eqo8rhmx]  .map-panel-docs {
    display: grid;
    grid-template-columns: auto auto minmax(0, 1fr);
    column-gap: var(--space-2);
    margin: 0;
    padding: 0;
    list-style: none;
}

.map-framework[b-z3eqo8rhmx]  .map-panel-docs {
    row-gap: var(--space-1);
    margin-top: var(--space-4);
}

.map-framework[b-z3eqo8rhmx]  .map-cell-doc {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: subgrid;
    min-width: 0;
    font-size: var(--text-caption1);
    line-height: 1.35;
}

.map-framework[b-z3eqo8rhmx]  .map-cell-doc-full {
    font-size: var(--text-subhead);
}

.map-framework[b-z3eqo8rhmx]  .map-cell-doc-button {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: subgrid;
    align-items: baseline;
    min-height: 24px;
    min-width: 0;
    padding: 0;
    border: 0;
    background: none;
    color: var(--color-text-primary);
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.map-framework[b-z3eqo8rhmx]  .map-cell-doc-button:hover .map-cell-title {
    color: var(--color-text-link-hover);
    text-decoration: underline;
}

/* Without an organisation mark the first column is empty and takes no room. */
.map-framework[b-z3eqo8rhmx]  .map-cell-code {
    grid-column: 2;
    font-family: var(--font-mono, monospace);
    font-size: var(--text-caption2);
    color: var(--color-text-secondary);
    white-space: nowrap;
}

.map-framework[b-z3eqo8rhmx]  .map-cell-title {
    grid-column: 3;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.map-framework[b-z3eqo8rhmx]  .map-cell-doc-full .map-cell-title {
    white-space: normal;
}

/* A column too narrow for code and title together puts the title under its code, rather than squeezing it
   to a few letters. The code stays on one line: it is how a reader knows a document. */
@container (max-width: 13rem) {
    .map-framework[b-z3eqo8rhmx]  .map-cell-docs {
        grid-template-columns: auto minmax(0, 1fr);
        row-gap: 2px;
    }

    .map-framework[b-z3eqo8rhmx]  .map-cell-code {
        grid-column: 2;
    }

    .map-framework[b-z3eqo8rhmx]  .map-cell-title {
        grid-column: 2;
    }
}

/* "+N more" is a quiet text button under the entries, aligned with their codes. */
.map-framework[b-z3eqo8rhmx]  .map-cell-more {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    margin-top: var(--space-1);
    padding: 0;
    border: 0;
    background: none;
    color: var(--color-text-link);
    font-size: var(--text-caption1);
    cursor: pointer;
}

.map-framework[b-z3eqo8rhmx]  .map-cell-more:hover {
    color: var(--color-text-link-hover);
    text-decoration: underline;
}

.map-framework[b-z3eqo8rhmx]  .map-panel-search {
    max-width: none;
}

/* The document panel: a back link when it came from a list, the facts as two columns, then its opportunities. */
.map-framework[b-z3eqo8rhmx]  .map-panel-back {
    display: inline-flex;
    gap: var(--space-1);
    align-items: center;
    min-height: 24px;
    margin-bottom: var(--space-3);
    padding: 0;
    border: 0;
    background: none;
    color: var(--color-text-link);
    font-size: var(--text-subhead);
    cursor: pointer;
}

.map-framework[b-z3eqo8rhmx]  .map-panel-back:hover {
    color: var(--color-text-link-hover);
    text-decoration: underline;
}

.map-framework[b-z3eqo8rhmx]  .map-doc-facts {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: var(--space-2) var(--space-4);
    margin: 0;
    font-size: var(--text-subhead);
}

.map-framework[b-z3eqo8rhmx]  .map-doc-facts dt {
    color: var(--color-text-secondary);
}

.map-framework[b-z3eqo8rhmx]  .map-doc-facts dd {
    margin: 0;
}

.map-framework[b-z3eqo8rhmx]  .map-doc-facts .map-code {
    margin-right: var(--space-2);
}

.map-framework[b-z3eqo8rhmx]  .map-doc-summary {
    margin: var(--space-4) 0 0;
    font-size: var(--text-subhead);
    line-height: 1.5;
}

.map-framework[b-z3eqo8rhmx]  .map-doc-heading {
    margin: var(--space-6) 0 var(--space-2);
    font-size: var(--text-subhead);
    font-weight: var(--font-medium);
}

.map-framework[b-z3eqo8rhmx]  .map-doc-none {
    margin: 0;
    font-size: var(--text-subhead);
    color: var(--color-text-secondary);
}

/* Each opportunity: its title as a link to its page on one line, then its situation and state, quieter, beneath. */
.map-framework[b-z3eqo8rhmx]  .map-doc-opportunities {
    display: grid;
    gap: var(--space-3);
    margin: 0 0 var(--space-4);
    padding: 0;
    list-style: none;
}

.map-framework[b-z3eqo8rhmx]  .map-doc-opportunities li {
    display: grid;
    gap: var(--space-1);
    min-width: 0;
    font-size: var(--text-subhead);
}

.map-framework[b-z3eqo8rhmx]  .map-doc-opportunity-title {
    min-width: 0;
    overflow: hidden;
    color: var(--color-text-link);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.map-framework[b-z3eqo8rhmx]  .map-doc-opportunity-title:hover {
    color: var(--color-text-link-hover);
    text-decoration: underline;
}

.map-framework[b-z3eqo8rhmx]  .map-doc-opportunity-chips {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-1);
}

.map-framework[b-z3eqo8rhmx]  .map-doc-placeholder {
    margin-left: var(--space-1);
    vertical-align: middle;
    font-size: var(--text-caption1);
    font-weight: normal;
}

.map-framework[b-z3eqo8rhmx]  .map-doc-state {
    white-space: nowrap;
}

/* Organisation marks: the same tone on every document of one organisation, keyed in the legend. */
.map-framework[b-z3eqo8rhmx]  .map-org,
.map-framework .map-org[b-z3eqo8rhmx] {
    display: inline-flex;
    flex: none;
    align-items: center;
    justify-content: center;
    min-width: 1.5rem;
    height: 1.125rem;
    padding: 0 var(--space-1);
    border-radius: var(--radius-sm);
    font-size: var(--text-caption2);
    font-weight: var(--font-medium);
}

.map-framework[b-z3eqo8rhmx]  .map-cell-doc .map-org {
    grid-column: 1;
}

/* The tints are translucent, so each sits over white: an overlap cell's tint must not lower the mark's contrast. */
.map-framework[b-z3eqo8rhmx]  .map-org-0 { background: linear-gradient(var(--color-info-tint), var(--color-info-tint)), var(--color-white); color: var(--color-info); }
.map-framework[b-z3eqo8rhmx]  .map-org-1 { background: linear-gradient(var(--color-warning-tint), var(--color-warning-tint)), var(--color-white); color: var(--color-warning); }
.map-framework[b-z3eqo8rhmx]  .map-org-2 { background: linear-gradient(var(--color-success-tint), var(--color-success-tint)), var(--color-white); color: var(--color-success); }
.map-framework[b-z3eqo8rhmx]  .map-org-3 { background: linear-gradient(var(--color-draft-tint), var(--color-draft-tint)), var(--color-white); color: var(--color-text-secondary); }

/* A cell holding two or more documents is an overlap: a light tint and a count. Hover or focus lists its documents
   and the opportunities formed among them, beside the cell; the last three columns open it leftwards, so it stays on a 1194px page. */
.map-framework-table td.map-cell-overlap[b-z3eqo8rhmx] {
    position: relative;
    background: color-mix(in srgb, var(--color-info-tint) 45%, var(--color-white));
}

.map-framework[b-z3eqo8rhmx]  .map-overlap-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    min-height: 24px;
    margin-bottom: var(--space-1);
    padding: 0 var(--space-1);
    border: 1px solid var(--color-info);
    border-radius: 999px;
    background: var(--color-white);
    color: var(--color-info);
    font-size: var(--text-caption1);
    font-weight: var(--font-medium);
    cursor: pointer;
}

.map-framework[b-z3eqo8rhmx]  .map-overlap-popover {
    position: absolute;
    top: var(--space-2);
    left: calc(100% - var(--space-2));
    z-index: 5;
    display: none;
    width: 20rem;
    padding: var(--space-3);
    border: 1px solid var(--clv-color-border);
    border-radius: var(--radius-md);
    background: var(--color-white);
    box-shadow: var(--shadow-md);
    font-size: var(--text-caption1);
    text-align: left;
}

.map-framework-table td.map-cell-overlap:nth-last-child(-n + 3)[b-z3eqo8rhmx]  .map-overlap-popover {
    right: calc(100% - var(--space-2));
    left: auto;
}

.map-framework-table td.map-cell-overlap:hover[b-z3eqo8rhmx]  .map-overlap-popover,
.map-framework-table td.map-cell-overlap:focus-within[b-z3eqo8rhmx]  .map-overlap-popover {
    display: block;
}

.map-framework-table td.map-cell-overlap[b-z3eqo8rhmx]  [data-overlap-hidden] .map-overlap-popover {
    display: none;
}

.map-framework[b-z3eqo8rhmx]  .map-overlap-docs,
.map-framework[b-z3eqo8rhmx]  .map-overlap-opportunities {
    display: grid;
    gap: var(--space-1);
    margin: 0;
    padding: 0;
    list-style: none;
}

.map-framework[b-z3eqo8rhmx]  .map-overlap-heading {
    margin: var(--space-3) 0 var(--space-1);
    font-size: var(--text-caption1);
    font-weight: var(--font-medium);
    color: var(--color-text-secondary);
}

.map-framework[b-z3eqo8rhmx]  .map-overlap-opportunities a {
    color: var(--color-text-link);
}

.map-framework[b-z3eqo8rhmx]  .map-overlap-opportunities a:hover {
    color: var(--color-text-link-hover);
    text-decoration: underline;
}

.map-framework[b-z3eqo8rhmx]  .map-overlap-more {
    display: inline-block;
    margin-top: var(--space-2);
    color: var(--color-text-link);
}

.map-framework[b-z3eqo8rhmx]  .map-overlap-more:hover {
    color: var(--color-text-link-hover);
    text-decoration: underline;
}

.map-framework-note[b-z3eqo8rhmx] {
    margin: 0;
    padding: var(--space-2) var(--space-6);
    font-size: var(--text-caption1);
    color: var(--color-text-secondary);
}
/* /Components/SubjectMapMenu.razor.rz.scp.css */
/* The shared comparison-kebab-menu drops below its trigger; near the foot of a scrolling table that would be clipped. */
.map-menu-up .comparison-kebab-menu[b-1xvsuz7g2q] {
    top: auto;
    bottom: 38px;
}
/* /Components/SubjectMapOpportunities.razor.rz.scp.css */
.map-opportunity-toolbar[b-1489l4oj31] {
    flex-wrap: wrap;
}

.map-search input[b-1489l4oj31] {
    height: 44px;
}

.map-opportunity-toolbar[b-1489l4oj31]  .filter-select {
    height: 44px;
}

/* Active, Done and Archived sit above the table, apart from the filters, because they change what the list is. */
.map-state-bar[b-1489l4oj31] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: var(--space-4);
    padding: var(--space-3) var(--space-6) 0;
}

/* Document families is another page, not a fourth state, so it sits at the far end of the bar. */
.map-families-link[b-1489l4oj31] {
    margin-left: auto;
    min-height: 44px;
    align-self: center;
}

.comparison-list-card[b-1489l4oj31]  th .map-hint {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
}

/* Similarity leads each row: the number for reading, the bar for scanning down the column. */
.map-similarity[b-1489l4oj31] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    white-space: nowrap;
}

.map-similarity-value[b-1489l4oj31] {
    min-width: 2.75rem;
    font-variant-numeric: tabular-nums;
}

.map-similarity-bar[b-1489l4oj31] {
    display: inline-block;
    width: 4rem;
    height: 6px;
    overflow: hidden;
    border-radius: 3px;
    background: var(--color-border-light);
}

.map-similarity-bar > span[b-1489l4oj31] {
    display: block;
    height: 100%;
    background: var(--color-navy);
}

/* Spec 1461 Amendment 5: the shared-text range sits under the similarity bar. */
.map-shared-range[b-1489l4oj31] {
    display: block;
    margin-top: var(--space-1);
    white-space: nowrap;
}

/* The state chip names who has the row, so it never splits "In progress · you" over two lines. */
.map-state-chip[b-1489l4oj31] {
    white-space: nowrap;
}

/* A label and its select wrap together, never the label at one end of a line and its select on the next. */
.map-labelled-select[b-1489l4oj31] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    white-space: nowrap;
}

.map-labelled-select .field-label[b-1489l4oj31] {
    font-size: var(--text-caption1);
    color: var(--color-text-secondary);
}

.map-active-filters[b-1489l4oj31] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-6);
    border-bottom: 1px solid var(--color-border-light);
}

/* Chips are built in code, so they carry no scope attribute. */
.map-active-filters[b-1489l4oj31]  .filter-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.map-done-outcome[b-1489l4oj31] {
    display: inline-flex;
    font-size: var(--text-caption1);
}

/* A title wraps and stops at two lines, with the whole title on hover, so a long one never sets the table's width and
   pushes Open and the row menu off the card. */
.map-opportunity-cell[b-1489l4oj31] {
    min-width: 14rem;
    max-width: 24rem;
}

.map-opportunity-title[b-1489l4oj31] {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    overflow-wrap: anywhere;
    font-weight: 600;
    margin-bottom: var(--space-1);
}

/* A long title or chip must wrap, or it alone pushes Open off a 1194px screen. */
.comparison-list-card[b-1489l4oj31]  .merge-chip:not(.map-state-chip) {
    white-space: normal;
}

/* The neutral chip shares the striped row's surface colour, so it needs an edge to stay visible. */
.comparison-list-card[b-1489l4oj31]  .merge-chip-neutral {
    background: var(--color-white);
    box-shadow: inset 0 0 0 1px var(--color-border);
}

/* The shared accordion is two columns; the detail lays out its own blocks. */
.comparison-list-card[b-1489l4oj31]  .expandable-inner.map-opportunity-detail {
    display: block;
}

/* An expanded row can run past the shared accordion's 900px cap: a series lists ten documents and its answers. */
.comparison-list-card[b-1489l4oj31]  .expandable-content.open:has(> .map-opportunity-detail) {
    max-height: none;
}

.map-muted[b-1489l4oj31] {
    font-size: var(--text-caption1);
    color: var(--color-text-secondary);
}

.map-list-status[b-1489l4oj31] {
    margin: 0;
    padding: var(--space-3) var(--space-6);
    font-size: var(--text-caption1);
}

.map-list-error[b-1489l4oj31] {
    margin: 0;
    padding: var(--space-3) var(--space-6);
    font-size: var(--text-caption1);
    color: var(--color-error);
}
/* /Components/SubjectMapOpportunityDetail.razor.rz.scp.css */
.map-detail[b-w8dxt4mmzn] {
    display: grid;
    gap: var(--space-5);
    min-width: 0;
}

.map-muted[b-w8dxt4mmzn] {
    font-size: var(--text-caption1);
    color: var(--color-text-secondary);
}

.map-action-error[b-w8dxt4mmzn] {
    margin: 0;
    font-size: var(--text-caption1);
    color: var(--color-error);
}

.map-detail-coverage[b-w8dxt4mmzn] {
    margin: 0;
}

/* The write-up's notices (waiting, failed, part read, rejected) carry the page notice's treatment, so they read the
   same in the list's quick look as on the page. */
.map-writeup-notice[b-w8dxt4mmzn] {
    margin: 0;
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--color-warning);
    border-left-width: 4px;
    border-radius: var(--radius-md);
    background: var(--color-white);
    color: var(--color-text-primary);
    max-width: 75ch;
}

.map-writeup-verdict[b-w8dxt4mmzn] {
    margin: 0;
    font-weight: 600;
}

.map-writeup-verdict > span[b-w8dxt4mmzn] {
    font-weight: 400;
}

.map-writeup-text[b-w8dxt4mmzn] {
    margin: 0;
    max-width: 75ch;
}

ul.map-writeup-text[b-w8dxt4mmzn] {
    padding-left: var(--space-5);
}

/* ui-reuse-allow: no shared size modifier exists for .text-button; this mirrors the comparison cards' scoped
   44px touch target (comparisons.css .two-document-theme-card .text-button) for the citation source action. */
ul.map-writeup-text .text-button[b-w8dxt4mmzn] {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
}

.map-writeup-earlier > summary[b-w8dxt4mmzn] {
    cursor: pointer;
    font-weight: 600;
}

/* The write-up section shares the side-by-side section's heading treatment; scoped CSS cannot reach across components. */
.map-detail-block[b-w8dxt4mmzn] {
    display: grid;
    gap: var(--space-2);
    align-content: start;
    min-width: 0;
}

.map-detail-heading[b-w8dxt4mmzn] {
    margin: 0;
    font-size: var(--text-subhead);
    font-weight: 600;
}

.map-writeup-earlier > .map-detail-block[b-w8dxt4mmzn] {
    margin-top: var(--space-3);
}
/* /Components/SubjectMapPairingPicker.razor.rz.scp.css */
.map-picker[b-9r2o4pv48d] {
    display: grid;
    gap: var(--space-3);
    padding: var(--space-4) var(--space-6);
    border-bottom: 1px solid var(--clv-color-border);
}

.map-picker-head[b-9r2o4pv48d] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--space-2) var(--space-4);
}

.map-picker-title[b-9r2o4pv48d] {
    margin: 0;
    font-size: var(--text-subhead);
    font-weight: 600;
}

.map-picker-hint[b-9r2o4pv48d] {
    margin: 0;
    font-size: var(--text-caption1);
    color: var(--color-text-secondary);
}

.map-picker-toolbar[b-9r2o4pv48d] {
    padding: 0;
    border-bottom: none;
}

.map-picker-chosen[b-9r2o4pv48d] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.map-picker-chosen .filter-chip[b-9r2o4pv48d] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.map-search input[b-9r2o4pv48d] {
    height: 44px;
}

/* A code never breaks mid-token; a long title is cut with its full text on hover. */
.map-picker-code[b-9r2o4pv48d] {
    font-family: var(--font-mono, monospace);
    font-size: var(--text-caption1);
    white-space: nowrap;
}

.map-picker-foot[b-9r2o4pv48d] {
    position: sticky;
    bottom: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3);
    margin: 0 calc(-1 * var(--space-6)) calc(-1 * var(--space-4));
    padding: var(--space-3) var(--space-6);
    border-top: 1px solid var(--color-border-light);
    background: var(--color-white);
    border-radius: 0 0 var(--radius-lg) var(--radius-lg);
}

.map-picker-error[b-9r2o4pv48d] {
    flex-basis: 100%;
}

.map-picker-actions[b-9r2o4pv48d] {
    display: flex;
    gap: var(--space-2);
    margin-left: auto;
}

.map-picker-actions .btn[b-9r2o4pv48d] {
    min-height: 44px;
}

.map-picker-name[b-9r2o4pv48d] {
    max-width: 28rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.map-picker-option[b-9r2o4pv48d] {
    cursor: pointer;
}

.map-picker-warning[b-9r2o4pv48d],
.map-picker-error[b-9r2o4pv48d] {
    margin: 0;
    font-size: var(--text-caption1);
}

.map-picker-warning[b-9r2o4pv48d] {
    color: var(--color-text-secondary);
}

.map-picker-error[b-9r2o4pv48d] {
    color: var(--color-error);
}

.map-picker-lead[b-9r2o4pv48d] {
    font-size: var(--text-caption1);
    color: var(--color-text-secondary);
    white-space: nowrap;
}
/* /Components/WholeCodes.razor.rz.scp.css */
.whole-code[b-kseycyjtbn] {
    white-space: nowrap;
}
/* /Pages/DocumentFamilies.razor.rz.scp.css */
.document-families .family-editor[b-jireru4fy7] { margin-top: var(--space-6); }
/* The shared header zeroes its margin for the page grid; the editor is a block section, so it
   needs its own gap before the context line. */
.document-families .family-editor-header[b-jireru4fy7] { margin-bottom: var(--space-3); }
/* The shared .btn is 40px; every action on this page meets the 44px touch target. */
.document-families .btn[b-jireru4fy7] { min-height: 44px; }
.document-families .family-toolbar[b-jireru4fy7] { align-items: end; flex-wrap: wrap; gap: var(--space-3); }
.document-families label[b-jireru4fy7] { display: flex; flex-direction: column; gap: var(--space-1); min-width: 0; }
.document-families .filter-select[b-jireru4fy7] { height: 44px; max-width: 100%; min-width: 16rem; }
.document-families .search-field input[b-jireru4fy7] { height: 44px; }
.document-families .family-actions[b-jireru4fy7] { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.document-families .family-context[b-jireru4fy7] { max-width: 65ch; }
/* Search results and members are separate tables; each section opens with its own heading and gap. */
.document-families .family-section-heading[b-jireru4fy7] { margin: var(--space-6) 0 var(--space-3); }
.document-families .family-delete[b-jireru4fy7] { margin-top: var(--space-6); }
/* The neutral chip shares the striped row's surface colour, so it needs an edge to stay visible. */
.document-families .merge-chip-neutral[b-jireru4fy7] { background: var(--color-white); box-shadow: inset 0 0 0 1px var(--color-border); }
/* /Pages/DocumentWorkMap.razor.rz.scp.css */
/* The matrix and the side-by-side grid can be wider than the page. Without a sized track the grid grows to the
   table's width and the whole page scrolls sideways; this keeps the scrolling inside the table's own region. */
.comparisons-page[b-ogazc4ioyu] {
    grid-template-columns: minmax(0, 1fr);
}

/* Back to the framework tab a document link came from: quiet, above the opportunities card. */
.map-back-link[b-ogazc4ioyu] {
    display: inline-block;
    margin-bottom: var(--space-3);
    font-size: var(--text-footnote);
    color: var(--color-text-link);
    text-decoration: none;
}

.map-back-link:hover[b-ogazc4ioyu] {
    text-decoration: underline;
}

/* The organisation and asset filters render from this page, so their labels take this page's scope. */
.map-labelled-select[b-ogazc4ioyu] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    white-space: nowrap;
}

.map-labelled-select .field-label[b-ogazc4ioyu] {
    font-size: var(--text-caption1);
    color: var(--color-text-secondary);
}

/* EI process safety and IOGP 510 sit under Framework mapping, as its sub-tabs. */
.map-framework-bar[b-ogazc4ioyu] {
    margin: var(--space-3) 0;
}
/* /Pages/Home.razor.rz.scp.css */
.home-page[b-zucn9zu3xq] {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.home-page-header[b-zucn9zu3xq] {
    gap: var(--space-2);
}

.home-asof[b-zucn9zu3xq],
.home-row-meta[b-zucn9zu3xq],
.home-empty p[b-zucn9zu3xq],
.home-intro p[b-zucn9zu3xq] {
    color: var(--clv-color-text-link);
}

.home-asof[b-zucn9zu3xq] {
    margin: 0;
    font-size: 0.8125rem;
}

.home-asof-skeleton[b-zucn9zu3xq] {
    width: min(30rem, 70%);
    height: var(--space-4);
    border-radius: var(--radius-full);
    background: var(--clv-color-surface);
}

.home-skeletons[b-zucn9zu3xq] {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
}

.home-skeleton[b-zucn9zu3xq] {
    width: 100%;
    border: 1px solid var(--clv-color-border-default);
    border-radius: var(--radius-lg);
    background: var(--clv-color-white);
}

.home-skeleton-resume[b-zucn9zu3xq] {
    height: 22rem;
}

.home-skeleton-review[b-zucn9zu3xq] {
    height: 13rem;
}

.home-skeleton-actions[b-zucn9zu3xq] {
    height: 7rem;
}

.home-skeleton-estate[b-zucn9zu3xq] {
    height: 42rem;
}

.home-skeleton-intro[b-zucn9zu3xq] {
    height: 10rem;
}

.home-block[b-zucn9zu3xq],
.home-empty[b-zucn9zu3xq],
.home-intro[b-zucn9zu3xq] {
    width: 100%;
    min-width: 0;
    margin: 0 0 var(--space-6);
    padding: var(--space-6);
    border: 1px solid var(--clv-color-border-default);
    border-radius: var(--radius-lg);
    background: var(--clv-color-white);
}

.home-estate[b-zucn9zu3xq] {
    width: 100%;
    min-width: 0;
}

.home-block h2[b-zucn9zu3xq],
.home-empty h2[b-zucn9zu3xq],
.home-estate > h2[b-zucn9zu3xq],
.home-intro h2[b-zucn9zu3xq] {
    margin: 0;
    color: var(--clv-color-text-heading);
    font-family: var(--clv-font-heading);
    font-size: 1.125rem;
    font-weight: 500;
}

.home-estate > h2[b-zucn9zu3xq] {
    margin-bottom: var(--space-4);
}

.home-section-heading[b-zucn9zu3xq] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-4);
    margin-bottom: var(--space-4);
}

.home-section-heading a[b-zucn9zu3xq],
.home-text-action[b-zucn9zu3xq] {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    flex-shrink: 0;
    padding: 0;
    border: 0;
    background: none;
    color: var(--clv-color-text-link);
    font: inherit;
    font-size: 0.8125rem;
    font-weight: 500;
    white-space: nowrap;
    cursor: pointer;
}

.home-section-heading a:hover[b-zucn9zu3xq],
.home-text-action:hover[b-zucn9zu3xq] {
    color: var(--clv-color-text-link-hover);
    text-decoration: underline;
}

.home-section-heading a:focus-visible[b-zucn9zu3xq],
.home-text-action:focus-visible[b-zucn9zu3xq],
.home-row:focus-visible[b-zucn9zu3xq] {
    outline: none;
    box-shadow: var(--clv-focus-ring);
}

.home-triage[b-zucn9zu3xq] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(34rem, 100%), 1fr));
    column-gap: var(--space-6);
    align-items: start;
}

.home-rows[b-zucn9zu3xq] {
    border-top: 1px solid var(--clv-color-border-default);
}

.home-row[b-zucn9zu3xq] {
    display: flex;
    width: 100%;
    min-width: 0;
    min-height: 3.5rem;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    padding: var(--space-3) var(--space-2);
    border-bottom: 1px solid var(--clv-color-border-default);
    border-radius: var(--radius-sm);
    color: var(--clv-color-text-heading);
    text-decoration: none;
    cursor: pointer;
}

.home-row[b-zucn9zu3xq]::after {
    flex-shrink: 0;
    color: var(--clv-color-text-muted);
    content: "›";
    font-size: 1.25rem;
    line-height: 1;
}

.home-row:hover[b-zucn9zu3xq] {
    background: var(--v21-soft);
}

.home-resume-row[b-zucn9zu3xq] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: var(--space-4);
    row-gap: var(--space-1);
}

.home-resume-row[b-zucn9zu3xq]::after {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: center;
}

.home-review-row[b-zucn9zu3xq] {
    min-height: 3rem;
}
.home-review-track[b-zucn9zu3xq]{display:block}.home-review-breakdown[b-zucn9zu3xq]{padding:0 14px 10px;color:var(--v21-grey);font-size:12px}.home-review-breakdown a[b-zucn9zu3xq]{color:var(--v21-blue);text-decoration:none}.home-review-breakdown a:hover[b-zucn9zu3xq]{text-decoration:underline}.home-review-footnote[b-zucn9zu3xq]{margin:10px 14px 0;color:var(--v21-grey);font-size:12px;line-height:1.5}.home-estate-projection[b-zucn9zu3xq]{margin:-8px 0 16px;color:var(--v21-grey);font-size:13px}

.home-row-title[b-zucn9zu3xq] {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-weight: 500;
}

.home-row-meta[b-zucn9zu3xq] {
    font-size: 0.75rem;
}

.home-row-count[b-zucn9zu3xq] {
    flex-shrink: 0;
    font-family: var(--clv-font-heading);
    font-variant-numeric: tabular-nums;
}

.home-start h2[b-zucn9zu3xq] {
    margin-bottom: var(--space-4);
}

.home-actions[b-zucn9zu3xq] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
}

.home-empty p[b-zucn9zu3xq],
.home-intro p[b-zucn9zu3xq] {
    max-width: 76ch;
    margin: var(--space-3) 0 var(--space-5);
    line-height: 1.55;
}

.home-empty .home-empty-permission[b-zucn9zu3xq] {
    margin-bottom: 0;
}

.home-intro p[b-zucn9zu3xq] {
    margin-bottom: 0;
}

@media (max-width: 42rem) {
    .home-section-heading[b-zucn9zu3xq] {
        align-items: flex-start;
        flex-direction: column;
        gap: var(--space-2);
    }

    .home-actions .btn[b-zucn9zu3xq] {
        width: 100%;
    }
}

/* ---- Reconciliation scorecards inside the estate snapshot. Card, label, figure and bar chrome
   come from insights.css; these rules add the figure/denominator row and the split bar only. ---- */
.home-scorecards[b-zucn9zu3xq] {
    margin-bottom: var(--space-6);
}

.home-scorecards-head[b-zucn9zu3xq] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-4);
    margin-bottom: var(--space-3);
}

.home-scorecards-title[b-zucn9zu3xq] {
    margin: 0;
    color: var(--clv-color-text-heading);
    font-family: var(--clv-font-heading);
    font-size: 0.9375rem;
    font-weight: 500;
}

/* The lower half's heading sits in the existing toolbar, left of its view toggle. */
.home-estate .ins-toolbar .home-scorecards-title[b-zucn9zu3xq] {
    margin-right: auto;
}

.home-scorecards-scope[b-zucn9zu3xq],
.home-scorecards-note[b-zucn9zu3xq] {
    margin: 0;
    color: var(--clv-color-text-link);
    font-size: 0.8125rem;
}

.home-scorecards-note[b-zucn9zu3xq] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.home-score .home-score-figure[b-zucn9zu3xq] {
    display: flex;
    align-items: baseline;
    gap: var(--space-2);
    margin-bottom: var(--space-3);
}

.home-score .home-score-of[b-zucn9zu3xq] {
    color: var(--clv-color-text-link);
    font-size: 0.8125rem;
    font-variant-numeric: tabular-nums;
}

.home-score .ins-bar[b-zucn9zu3xq] {
    margin-bottom: var(--space-3);
}

/* The composition bar is a make-up of the figure above it, not progress towards a target, so it is
   drawn as two separated segments. It does not reuse .ins-bar: that class is an ID-scoped rule with
   one absolutely positioned fill, which would stack both segments at the same origin. */
.home-score .home-score-split[b-zucn9zu3xq] {
    display: flex;
    gap: 2px;
    height: 9px;
    margin-bottom: var(--space-3);
}

.home-score .home-score-split > span[b-zucn9zu3xq] {
    flex: 0 0 auto;
    border-radius: 5px;
    background: var(--clv-color-accent-blue);
}

.home-score .home-score-split > span.home-score-seg-2[b-zucn9zu3xq] {
    background: var(--clv-color-accent);
}

/* Legend for the composition bar, so its second segment is not read as remaining work. */
.home-score .home-score-key[b-zucn9zu3xq] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-1) var(--space-4);
}

.home-score .home-score-dot[b-zucn9zu3xq] {
    display: inline-block;
    width: 8px;
    height: 8px;
    margin-right: var(--space-2);
    border-radius: var(--radius-full);
    background: var(--clv-color-accent-blue);
}

.home-score .home-score-dot-2[b-zucn9zu3xq] {
    background: var(--clv-color-accent);
}

/* Two lines of label space so the figures share a baseline when a label wraps at a narrow width. */
.home-score .k-lbl[b-zucn9zu3xq] {
    min-height: 2.2em;
}

.home-score .home-score-action[b-zucn9zu3xq] {
    margin-top: var(--space-2);
}

.home-score .home-score-action a[b-zucn9zu3xq] {
    /* inline-flex with a 24px box: the gate's minimum target size, which a bare inline link fails. */
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    color: var(--clv-color-text-link);
    font-weight: 500;
    text-decoration: none;
}

.home-score .home-score-action a:hover[b-zucn9zu3xq] {
    color: var(--clv-color-text-link-hover);
    text-decoration: underline;
}

.home-score .home-score-action a:focus-visible[b-zucn9zu3xq] {
    outline: none;
    border-radius: var(--radius-sm);
    box-shadow: var(--clv-focus-ring);
}
/* /Pages/Import.razor.rz.scp.css */
/* The upload dialog's management system choice. The rest of the page is styled in wwwroot/css/import.css. */
.imp-system-choice[b-jggsnnlxet] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2) var(--space-3);
    margin-bottom: var(--space-4);
    color: var(--color-text-primary);
    font-weight: var(--font-medium);
}

.imp-system-choice-error[b-jggsnnlxet] {
    margin: 0 0 var(--space-4);
    color: var(--color-error);
}
/* /Pages/Integrations.razor.rz.scp.css */
/* Layout only: keeps the fictional-data badge apart from the system's link. */
.integration-system-name[b-bnejxue86h] {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
}

.integration-compare-pointer[b-bnejxue86h] {
    margin: var(--space-4) 0 0;
    color: var(--clv-color-text-heading);
    font-size: var(--text-subhead);
}

/* Underlined so the link reads as a link without relying on colour alone. */
.integration-compare-pointer a[b-bnejxue86h] {
    color: var(--clv-color-text-link);
    text-decoration: underline;
}

/* Layout only: the summary sits where the section toolbar's heading does in the card above. */
.integration-archived > summary[b-bnejxue86h] {
    padding: var(--space-4) var(--space-5);
    color: var(--color-navy);
    font-family: var(--font-heading);
    font-size: var(--text-subhead);
    font-weight: var(--font-medium);
    cursor: pointer;
}
/* /Pages/IntegrationStart.razor.rz.scp.css */
/* Layout only: the card, toolbar, fields and buttons are the comparisons page chrome. */
.integration-start-form[b-1svhhzg03i] {
    display: grid;
    gap: var(--space-4);
    max-width: 36rem;
    padding: 0 var(--space-5) var(--space-5);
}

.integration-short-code[b-1svhhzg03i] {
    max-width: 12rem;
}

.integration-start-error[b-1svhhzg03i] {
    margin: 0;
    color: var(--color-error);
}

.integration-start-actions[b-1svhhzg03i] {
    display: flex;
    gap: var(--space-3);
}
/* /Pages/IntegrationWorkspace.razor.rz.scp.css */
/* Layout only: tables, tabs, tiles, cards and fields are the shared chrome. */
.integration-workspace[b-48h8aithd6] {
    width: 100%;
    min-width: 0;
}

/* The page column already spaces its children; the tab strip's own margin doubled the gap below it. */
.integration-workspace[b-48h8aithd6]  .tabs-bordered {
    margin-bottom: 0;
}

.integration-facts[b-48h8aithd6] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2) var(--space-4);
    margin: var(--space-1) 0 0;
}

.integration-header-actions[b-48h8aithd6] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
}

.integration-panel[b-48h8aithd6] {
    display: grid;
    gap: var(--space-5);
}

/* The map panel stays mounted while Overview shows; display: grid would otherwise override hidden. */
.integration-panel[hidden][b-48h8aithd6] {
    display: none;
}

.integration-roles[b-48h8aithd6] {
    display: grid;
    gap: var(--space-3);
    justify-items: start;
    padding: 0 var(--space-5) var(--space-5);
}

.integration-roles p[b-48h8aithd6] {
    margin: 0;
}

.integration-roles .duty-triage[b-48h8aithd6] {
    width: 100%;
    margin-bottom: 0;
}

/* Layout only: the card, toolbar, fields and buttons are the shared chrome; this mirrors Start a merge's name form. */
.integration-rename-form[b-48h8aithd6] {
    display: grid;
    gap: var(--space-4);
    max-width: 36rem;
    padding: 0 var(--space-5) var(--space-5);
}

.integration-rename-short-code[b-48h8aithd6] {
    max-width: 12rem;
}

.integration-rename-actions[b-48h8aithd6] {
    display: flex;
    gap: var(--space-3);
}

.integration-lifecycle-error[b-48h8aithd6] {
    margin: 0;
    color: var(--color-error);
}

/* An archived or view-only workspace must not look editable: the controls are disabled, so they read that way. */
.integration-workspace[b-48h8aithd6]  input:disabled,
.integration-workspace[b-48h8aithd6]  select:disabled,
.integration-workspace[b-48h8aithd6]  textarea:disabled {
    border-color: var(--color-border);
    opacity: .6;
    cursor: not-allowed;
}
/* /Pages/Joining.razor.rz.scp.css */
.joining-status[b-dm0ug0yqmx] {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    margin: var(--space-8) auto;
}

.joining-status-brand[b-dm0ug0yqmx] {
    display: flex;
    align-items: center;
}

/* FocusOnNavigate focuses the h1 on arrival; it is not interactive, so match MainLayout's .page-title:focus. */
.joining-status h1:focus[b-dm0ug0yqmx] {
    outline: none;
}

.joining-status-card[b-dm0ug0yqmx] {
    padding: var(--space-8);
}

.joining-status-card h2[b-dm0ug0yqmx] {
    margin: 0 0 var(--space-2);
    color: var(--color-navy);
    font-size: var(--text-title3);
}

.joining-status-card p[b-dm0ug0yqmx] {
    margin: 0 0 var(--space-6);
    color: var(--color-service-grey);
}

.joining-status-card .btn[b-dm0ug0yqmx] {
    min-width: 44px;
    min-height: 44px;
}
/* /Pages/OnboardingProgress.razor.rz.scp.css */
/* Feature modifiers only. The cards, table and scroll region are the app's shared chrome
   (ins-kpi, data-table, table-scroll-region); this file adds layout and the muted zero row. */

.progress-page[b-zboox6wu77] {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.progress-page .page-header[b-zboox6wu77] {
    align-items: flex-start;
    gap: var(--space-2);
}

.progress-asof[b-zboox6wu77] {
    margin: 0;
    color: var(--clv-color-text-link);
    font-size: 0.8125rem;
}

.progress-next-step[b-zboox6wu77] {
    max-width: 72ch;
    margin: var(--space-3) 0 0;
}

.progress-section-heading[b-zboox6wu77] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-4);
    margin-bottom: var(--space-3);
}

.progress-section-heading h2[b-zboox6wu77] {
    margin: 0;
    color: var(--clv-color-text-heading);
    font-family: var(--clv-font-heading);
    font-size: 0.9375rem;
    font-weight: 500;
}

.progress-section-scope[b-zboox6wu77] {
    margin: 0;
    color: var(--clv-color-text-link);
    font-size: 0.8125rem;
}

/* The overlap sentence is the one thing on this screen that stops the reason column being read as a
   partition of the held total, so it is set as body copy, not as the caption beside it. */
.progress-note[b-zboox6wu77] {
    max-width: 68ch;
    margin: 0 0 var(--space-4);
    color: var(--clv-color-text-heading);
    font-size: var(--text-subhead);
    line-height: 1.5;
}

.progress-blockers[b-zboox6wu77],
.progress-outcome[b-zboox6wu77],
.progress-regulatory[b-zboox6wu77] {
    margin-top: var(--space-6);
}

/* insights.css gives .ins-kpis four columns for the four funnel stages. The outcome band has three
   cards; without this it renders as a funnel row missing its last stage. */
#page-insights .progress-outcome[b-zboox6wu77] {
    grid-template-columns: repeat(3, 1fr);
}

/* This section has two workstreams, so use the same KPI cards without leaving a four-column
   grid half-empty at desktop widths. */
#page-insights .progress-regulatory-kpis[b-zboox6wu77] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-bottom: 0;
}

@media (max-width: 1080px) {
    #page-insights .progress-outcome[b-zboox6wu77] {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 560px) {
    #page-insights .progress-regulatory-kpis[b-zboox6wu77] {
        grid-template-columns: 1fr;
    }
}

.progress-figure[b-zboox6wu77] {
    display: flex;
    align-items: baseline;
    gap: var(--space-2);
    margin-bottom: var(--space-3);
}

#page-insights .ins-bar[b-zboox6wu77] {
    margin-bottom: var(--space-3);
}

.progress-of[b-zboox6wu77] {
    color: var(--clv-color-text-link);
    font-size: 0.8125rem;
}

.progress-action[b-zboox6wu77] {
    margin-top: var(--space-2);
}

.progress-action a[b-zboox6wu77] {
    /* inline-flex with a 24px box: the gate's minimum target size, which a bare inline link fails. */
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    color: var(--clv-color-text-link);
    font-weight: 500;
    text-decoration: none;
}

.progress-action a:hover[b-zboox6wu77] {
    color: var(--clv-color-text-link-hover);
    text-decoration: underline;
}

.progress-action a:focus-visible[b-zboox6wu77] {
    outline: none;
    box-shadow: var(--clv-focus-ring);
}

/* insights.css paints .ins-bar's fill blue from an id-scoped rule; the cleared bar needs the same
   success green the shared ProgressBar uses, so it has to match on #page-insights too. */
#page-insights .progress-bar-success > span[b-zboox6wu77] {
    background: var(--color-success);
}

/* Each row is headed by its reason code, so the first cell is a th. components.css styles
   `tbody td` but has no `tbody th` rule, which leaves the UA's bold centred default; match the
   body cells instead. */
.progress-blockers .data-table tbody th[b-zboox6wu77] {
    padding: var(--space-3) var(--space-4);
    font-size: var(--text-subhead);
    font-weight: var(--font-medium);
    text-align: left;
    vertical-align: middle;
}

/* The last column is the way out of each reason. Bare inline anchors inherit the cell's colour and
   weight, so at rest nothing distinguishes them from the sentence beside them. */
.progress-blockers .data-table tbody a[b-zboox6wu77] {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    color: var(--clv-color-text-link);
    font-weight: var(--font-medium);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.progress-blockers .data-table tbody a:hover[b-zboox6wu77] {
    color: var(--clv-color-text-link-hover);
}

.progress-blockers .data-table tbody a:focus-visible[b-zboox6wu77] {
    outline: none;
    border-radius: var(--radius-sm);
    box-shadow: var(--clv-focus-ring);
}

.progress-num[b-zboox6wu77] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

/* A reason at zero stays on the table: it is muted, never hidden. */
.progress-zero td[b-zboox6wu77],
.progress-zero th[b-zboox6wu77] {
    color: var(--clv-color-text-link);
}

.progress-zero a[b-zboox6wu77] {
    color: var(--clv-color-text-link);
}

@media (max-width: 900px) {
    .progress-section-heading[b-zboox6wu77] {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--space-2);
    }
}
/* /Pages/Opportunity.razor.rz.scp.css */
/* The side-by-side grid can be wider than the page; keep its scrolling inside its own region. */
.comparisons-page[b-i50l89cwfh] {
    grid-template-columns: minmax(0, 1fr);
}

/* Title and its marks on the left, the page's actions on the right, as on the regulatory pages. */
.map-page-header[b-i50l89cwfh] {
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-6);
}

.map-page-header > :last-child[b-i50l89cwfh] {
    flex: none;
}

.map-page-chips[b-i50l89cwfh] {
    align-items: center;
    margin-top: var(--space-2);
}

/* The neutral chip shares the page's surface colour, so it needs an edge to stay visible, as on the map. */
.map-page-chips .merge-chip-neutral[b-i50l89cwfh] {
    background: var(--color-white);
    box-shadow: inset 0 0 0 1px var(--clv-color-border);
}

/* Similarity, confidence and the document count read as one line of facts under the title, not as chips. */
.map-page-facts[b-i50l89cwfh] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-1) var(--space-4);
    margin: var(--space-2) 0 0;
    padding: 0;
    list-style: none;
    font-size: var(--text-subhead);
    color: var(--color-text-secondary);
}

.map-page-facts strong[b-i50l89cwfh] {
    color: var(--color-text-primary);
    font-weight: var(--font-medium);
}

.map-page-actions[b-i50l89cwfh] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: var(--space-2);
}

.map-page-buttons[b-i50l89cwfh] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: flex-end;
    gap: var(--space-2);
}

/* The reason Compare is disabled: a block under the whole button row, so the buttons stay together. */
.map-compare-why[b-i50l89cwfh] {
    max-width: 22rem;
    margin: 0;
    color: var(--color-text-secondary);
    font-size: var(--text-footnote);
    text-align: right;
}

/* Go to decision lands with the card's heading in view, not under the top bar. */
.map-page-decision[b-i50l89cwfh] {
    scroll-margin-top: var(--space-8, 4rem);
}

[b-i50l89cwfh] .map-page-card {
    display: grid;
    gap: var(--space-3);
    padding: var(--space-4) var(--space-6);
}

[b-i50l89cwfh] .map-page-heading {
    margin: 0;
    font-size: var(--text-headline);
    font-weight: 600;
}

.map-page-note[b-i50l89cwfh] {
    margin: 0;
    max-width: 75ch;
    color: var(--color-text-secondary);
}

/* The inline reopen action must read as an action, not more notice text. */
.map-page-note .text-button[b-i50l89cwfh] {
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Back to the framework tab that linked here: quiet, as on the map. */
.map-back-link[b-i50l89cwfh] {
    justify-self: start;
    font-size: var(--text-footnote);
    color: var(--color-text-link);
    text-decoration: none;
}

.map-back-link:hover[b-i50l89cwfh] {
    text-decoration: underline;
}

.map-page-notice[b-i50l89cwfh] {
    margin: 0;
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--color-warning);
    border-left-width: 4px;
    border-radius: var(--radius-md);
    background: var(--color-white);
    color: var(--color-text-primary);
}

.map-page-notice .text-button[b-i50l89cwfh] {
    margin-left: var(--space-2);
}

.map-history[b-i50l89cwfh] {
    display: grid;
    gap: var(--space-2);
    margin: 0;
    padding: 0;
    font-size: var(--text-subhead);
    list-style: none;
}

.map-history li[b-i50l89cwfh] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-1) var(--space-3);
    align-items: baseline;
}

.map-history-what[b-i50l89cwfh] {
    color: var(--color-text-primary);
    font-weight: var(--font-medium);
}

.map-history-reason[b-i50l89cwfh] {
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    flex-basis: 100%;
    color: var(--color-text-secondary);
}

.map-muted[b-i50l89cwfh] {
    color: var(--color-text-secondary);
}

.map-related-link[b-i50l89cwfh] {
    color: var(--clv-color-text-link);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.map-related-link:hover[b-i50l89cwfh] {
    color: var(--clv-color-text-link-hover);
}

/* Here "+N" sits towards the right of the card, so its list opens leftwards and stays inside the viewport. */
.map-related-card[b-i50l89cwfh]  .map-hint-lines:hover::after,
.map-related-card[b-i50l89cwfh]  .map-hint-lines:focus-visible::after {
    left: auto;
    right: 0;
    max-width: min(32rem, calc(100vw - 32px));
}
/* /Pages/ReactAssignments.razor.rz.scp.css */
/* Page-owned frame sizing; all table and control chrome lives in the isolated shared-UI document. */
/* The page fills the shell's content height, so the frame takes the rest without a parent scroll.
   Block padding mirrors .main-content in layout.css (default, <=1512px) and components.css (<=1280px).
   --space-* is the parent document's scale; --clv-space-* is defined only inside the frame. */
.react-assignments-page[b-j5477pp1bm] {
    display: flex;
    flex-direction: column;
    min-height: calc(100vh - var(--v21-topbar) - var(--space-10) - var(--space-12));
}

@media (max-width: 1512px) {
    .react-assignments-page[b-j5477pp1bm] { min-height: calc(100vh - var(--v21-topbar) - var(--space-6) - var(--space-10)); }
}

@media (max-width: 1280px) {
    .react-assignments-page[b-j5477pp1bm] { min-height: calc(100vh - var(--v21-topbar) - var(--space-6) - var(--space-6)); }
}

.react-assignments-frame[b-j5477pp1bm] {
    display: block;
    flex: 1;
    width: 100%;
    min-height: 32rem;
    border: 0;
}
/* /Pages/ReactLibrary.razor.rz.scp.css */
/* Page-owned frame sizing; all table and control chrome lives in the isolated shared-UI document. */
/* The page fills the shell's content height, so the frame takes the rest without a parent scroll.
   Block padding mirrors .main-content in layout.css (default, <=1512px) and components.css (<=1280px).
   --space-* is the parent document's scale; --clv-space-* is defined only inside the frame. */
.react-assignments-page[b-9xleyl8biq] {
    display: flex;
    flex-direction: column;
    min-height: calc(100vh - var(--v21-topbar) - var(--space-10) - var(--space-12));
}

@media (max-width: 1512px) {
    .react-assignments-page[b-9xleyl8biq] { min-height: calc(100vh - var(--v21-topbar) - var(--space-6) - var(--space-10)); }
}

@media (max-width: 1280px) {
    .react-assignments-page[b-9xleyl8biq] { min-height: calc(100vh - var(--v21-topbar) - var(--space-6) - var(--space-6)); }
}

.react-assignments-frame[b-9xleyl8biq] {
    display: block;
    flex: 1;
    width: 100%;
    min-height: 32rem;
    border: 0;
}

@media print {
    .react-assignments-page[b-9xleyl8biq] { display: block; }
    .react-assignments-frame[b-9xleyl8biq] { height: auto; min-height: 100vh; }
}
/* /Pages/ReviewQueue.razor.rz.scp.css */
/* Review Queue v5's shared doc/sc styles remain global because @code render fragments need them.
   These selectors cover only the route-level track controls introduced by this page. */
.rq-track-strip[b-guopgpg45t]{display:flex;margin-bottom:18px;overflow-x:auto;padding-bottom:2px}
.rq-track-count[b-guopgpg45t]{font-variant-numeric:tabular-nums}
.rq-readonly[b-guopgpg45t]{margin:-4px 0 16px;padding:10px 13px;border:1px solid var(--rq-border-light);border-radius:6px;background:var(--rq-surface);color:var(--rq-grey);font-size:13px}
/* /Pages/Settings.razor.rz.scp.css */
.tabs[b-f2e20ory40] {
    flex-wrap: wrap;
}
