@import '_content/Blazored.Toast/Blazored.Toast.bundle.scp.css';

/* /Components/Account/Pages/Login.razor.rz.scp.css */
/* Only the placement: LegalLinks owns how the links themselves look. */
.login-legal[b-utp3cmngff] {
    margin-top: var(--cpd-space-xl);
    display: flex;
    justify-content: center;
}
/* /Components/Errors/BoundaryAlert.razor.rz.scp.css */
.cpd-boundary-alert .cpd-boundary-copy-row[b-whttqk5z4t] {
    display: flex;
    align-items: center;
    gap: var(--cpd-space-sm);
    margin: var(--cpd-space-sm) 0;
}

.cpd-boundary-alert .token-copied-flash[b-whttqk5z4t] {
    min-width: 4.5rem;
    font-size: 0.85rem;
    color: var(--cpd-success);
}

.cpd-boundary-alert .token-copied-flash[data-state="err"][b-whttqk5z4t] {
    color: var(--cpd-error);
}

.cpd-boundary-trace[b-whttqk5z4t] {
    width: 100%;
    min-height: 12rem;
    max-height: 40vh;
    resize: vertical;
    font-family: var(--cpd-font-mono);
    font-size: 0.85rem;
    white-space: pre;
}
/* /Components/Errors/ErrorDetailsHost.razor.rz.scp.css */
.cpd-error-modal-meta[b-hxak4tajux] {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.25rem var(--cpd-space-md);
    margin-bottom: var(--cpd-space-lg);
}

.cpd-error-modal-meta dt[b-hxak4tajux] {
    font-weight: 600;
    opacity: 0.7;
}

.cpd-error-modal-meta dd[b-hxak4tajux] {
    margin: 0;
}

.cpd-error-modal-copy-row[b-hxak4tajux] {
    display: flex;
    align-items: center;
    gap: var(--cpd-space-sm);
    margin-bottom: var(--cpd-space-sm);
}

.cpd-error-modal-copy-row .token-copied-flash[b-hxak4tajux] {
    min-width: 4.5rem;
    font-size: 0.85rem;
    color: var(--cpd-success);
}

.cpd-error-modal-copy-row .token-copied-flash[data-state="err"][b-hxak4tajux] {
    color: var(--cpd-error);
}

.cpd-error-modal-trace[b-hxak4tajux] {
    width: 100%;
    min-height: 20rem;
    max-height: 50vh;
    resize: vertical;
    font-family: var(--cpd-font-mono);
    font-size: 0.85rem;
    white-space: pre;
    background: rgba(var(--cpd-contrast-rgb), 0.06);
    border: 1px solid rgba(var(--cpd-contrast-rgb), 0.18);
    border-radius: var(--cpd-radius-md);
    color: inherit;
    padding: var(--cpd-space-md);
}
/* /Components/Errors/ErrorToast.razor.rz.scp.css */
.cpd-error-toast[b-fmqt7omnit] {
    min-width: 18rem;
    max-width: 26rem;
    padding: var(--cpd-space-sm) 0;
}

.cpd-error-toast-header[b-fmqt7omnit] {
    display: flex;
    align-items: center;
    gap: var(--cpd-space-sm);
    font-weight: 600;
    margin-bottom: 0.3rem;
}

.cpd-error-toast-header .bi[b-fmqt7omnit] {
    color: var(--cpd-error);
}

.cpd-error-toast-message[b-fmqt7omnit] {
    margin: 0 0 var(--cpd-space-sm);
    opacity: 0.9;
    overflow-wrap: anywhere;
}

.cpd-error-toast-details[b-fmqt7omnit] {
    color: inherit;
    border-color: rgba(var(--cpd-contrast-rgb), 0.4);
}
/* /Components/Ftp/FtpCurveChart.razor.rz.scp.css */
.ftp-curve-chart[b-cr0a4vo3vn] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    width: 100%;
    min-width: 0;
}

.ftp-curve-chart-header[b-cr0a4vo3vn] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--cpd-space-lg);
    font-weight: 600;
    font-size: 0.75rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--cpd-gold);
}

.ftp-curve-chart-legend[b-cr0a4vo3vn] {
    display: flex;
    gap: 0.85rem;
    font-size: 0.62rem;
    text-transform: none;
    letter-spacing: 0;
}

.ftp-curve-chart-legend-item[b-cr0a4vo3vn] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    color: var(--cpd-text-muted);
}

.ftp-curve-chart-swatch[b-cr0a4vo3vn] {
    width: 10px;
    height: 2px;
    display: inline-block;
}

.ftp-curve-chart-swatch-hedge[b-cr0a4vo3vn] { background: var(--token-date); }
.ftp-curve-chart-swatch-liquidity[b-cr0a4vo3vn] { background: var(--token-rate); }
.ftp-curve-chart-swatch-allin[b-cr0a4vo3vn] { background: var(--cpd-gold); }

.ftp-curve-chart-empty[b-cr0a4vo3vn] {
    padding: var(--cpd-space-xl) 0;
    text-align: center;
    color: var(--cpd-text-subtle);
    font-size: 0.8rem;
}

.ftp-curve-chart-body[b-cr0a4vo3vn] {
    display: flex;
    align-items: stretch;
    gap: 6px;
    width: 100%;
}

.ftp-curve-chart-gutter[b-cr0a4vo3vn] {
    position: relative;
    width: 46px;
    flex: none;
}

.ftp-curve-chart-y-label[b-cr0a4vo3vn] {
    position: absolute;
    right: 0;
    transform: translateY(-50%);
    font-family: var(--cpd-font-mono);
    font-size: 0.6rem;
    color: var(--cpd-text-subtle);
    white-space: nowrap;
}

.ftp-curve-chart-plot[b-cr0a4vo3vn] {
    position: relative;
    flex: 1;
    min-width: 0;
    padding-bottom: 20px;
}

.ftp-curve-chart-svg[b-cr0a4vo3vn] {
    display: block;
    width: 100%;
    height: auto;
    overflow: visible;
    font-family: var(--cpd-font-mono);
}

.ftp-curve-chart-gridline-h[b-cr0a4vo3vn] {
    stroke: rgba(var(--cpd-light-rgb), 0.06);
    stroke-width: 1;
}

.ftp-curve-chart-gridline-v[b-cr0a4vo3vn] {
    stroke: rgba(var(--cpd-light-rgb), 0.04);
    stroke-width: 1;
}

.ftp-curve-chart-baseline[b-cr0a4vo3vn] {
    stroke: rgba(var(--cpd-light-rgb), 0.18);
    stroke-width: 1;
}

.ftp-curve-chart-band[b-cr0a4vo3vn] {
    stroke: none;
}

.ftp-curve-chart-band-liquidity[b-cr0a4vo3vn] { fill: var(--token-rate-bg); }
.ftp-curve-chart-band-allin[b-cr0a4vo3vn] { fill: var(--cpd-gold-soft); }

.ftp-curve-chart-line[b-cr0a4vo3vn] {
    fill: none;
    stroke-width: 2;
    stroke-linejoin: round;
}

.ftp-curve-chart-line-hedge[b-cr0a4vo3vn] { stroke: var(--token-date); }
.ftp-curve-chart-line-liquidity[b-cr0a4vo3vn] { stroke: var(--token-rate); }
.ftp-curve-chart-line-allin[b-cr0a4vo3vn] { stroke: var(--cpd-gold); stroke-width: 2.5; }

.ftp-curve-chart-pillar-group[b-cr0a4vo3vn] {
    cursor: default;
}

.ftp-curve-chart-pillar[b-cr0a4vo3vn] {
    opacity: 0;
    transition: opacity var(--cpd-transition-fast);
}

.ftp-curve-chart-pillar-group:hover .ftp-curve-chart-pillar[b-cr0a4vo3vn] {
    opacity: 1;
}

.ftp-curve-chart-pillar-hedge[b-cr0a4vo3vn] { fill: var(--token-date); }
.ftp-curve-chart-pillar-liquidity[b-cr0a4vo3vn] { fill: var(--token-rate); }
.ftp-curve-chart-pillar-allin[b-cr0a4vo3vn] { fill: var(--cpd-gold); }

.ftp-curve-chart-marker-line[b-cr0a4vo3vn] {
    stroke: rgba(var(--cpd-light-rgb), 0.45);
    stroke-width: 1;
    stroke-dasharray: 3 3;
}

.ftp-curve-chart-marker-dot[b-cr0a4vo3vn] {
    fill: var(--cpd-gold);
}

.ftp-curve-chart-x-label[b-cr0a4vo3vn] {
    position: absolute;
    transform: translateX(-50%);
    font-family: var(--cpd-font-mono);
    font-size: 0.6rem;
    color: var(--cpd-text-subtle);
    white-space: nowrap;
    pointer-events: none;
}

.ftp-curve-chart-callout[b-cr0a4vo3vn] {
    position: absolute;
    transform: translate(-50%, -160%);
    background: var(--cpd-surface-dialog);
    border: 1px solid var(--cpd-gold-border);
    border-radius: var(--cpd-radius-md);
    padding: 3px 8px;
    font-family: var(--cpd-font-mono);
    font-size: 0.62rem;
    color: var(--cpd-gold);
    white-space: nowrap;
    pointer-events: none;
    box-shadow: var(--cpd-shadow-soft);
}
/* /Components/Ftp/FtpPaymentBarsChart.razor.rz.scp.css */
.ftp-bars-chart[b-3xpw980n3q] {
    display: flex;
    flex-direction: column;
    width: 100%;
    min-width: 0;
}

.ftp-bars-chart-legend[b-3xpw980n3q] {
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
    font-size: 0.62rem;
    margin-bottom: 0.5rem;
}

.ftp-bars-chart-legend-item[b-3xpw980n3q] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    color: var(--cpd-text-muted);
}

.ftp-bars-chart-swatch[b-3xpw980n3q] {
    width: 8px;
    height: 8px;
    display: inline-block;
    border-radius: var(--cpd-radius-sm);
}

.ftp-bars-chart-swatch-principal[b-3xpw980n3q] { background: var(--token-position); }
.ftp-bars-chart-swatch-interest[b-3xpw980n3q] { background: var(--token-rate); }

.ftp-bars-chart-empty[b-3xpw980n3q] {
    padding: var(--cpd-space-xl) 0;
    text-align: center;
    color: var(--cpd-text-subtle);
    font-size: 0.8rem;
}

.ftp-bars-chart-body[b-3xpw980n3q] {
    display: flex;
    gap: 6px;
    align-items: stretch;
}

.ftp-bars-chart-gutter[b-3xpw980n3q] {
    position: relative;
    width: 104px;
    flex: none;
    font-family: var(--cpd-font-mono);
    font-size: 0.6rem;
    color: var(--cpd-text-subtle);
}

.ftp-bars-chart-y-label[b-3xpw980n3q] {
    position: absolute;
    right: 0;
}

.ftp-bars-chart-y-label-top[b-3xpw980n3q] { top: 0; }
.ftp-bars-chart-y-label-bottom[b-3xpw980n3q] { bottom: 22px; }

.ftp-bars-chart-plot[b-3xpw980n3q] {
    flex: 1;
    min-width: 0;
}

.ftp-bars-chart-svg[b-3xpw980n3q] {
    display: block;
    width: 100%;
    height: auto;
}

.ftp-bars-chart-holiday-band[b-3xpw980n3q] {
    fill: var(--cpd-gold-soft);
}

.ftp-bars-chart-rect-interest[b-3xpw980n3q] { fill: var(--token-rate); }
.ftp-bars-chart-rect-principal[b-3xpw980n3q] { fill: var(--token-position); }

.ftp-bars-chart-baseline[b-3xpw980n3q] {
    stroke: rgba(var(--cpd-light-rgb), 0.18);
    stroke-width: 1;
}

.ftp-bars-chart-x-labels[b-3xpw980n3q] {
    display: flex;
    justify-content: space-between;
    font-family: var(--cpd-font-mono);
    font-size: 0.6rem;
    color: var(--cpd-text-subtle);
    margin-top: 4px;
}

.ftp-bars-chart-caption[b-3xpw980n3q] {
    margin-top: 0.5rem;
    font-size: 0.66rem;
    color: var(--cpd-text-muted);
    opacity: 0.55;
    line-height: 1.5;
}
/* /Components/Ftp/FtpRateBuildUp.razor.rz.scp.css */
.ftp-buildup[b-98cfc1wiev] {
    display: flex;
    flex-direction: column;
    width: 100%;
    min-width: 0;
}

.ftp-buildup-header[b-98cfc1wiev] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--cpd-space-lg);
    font-weight: 600;
    font-size: 0.75rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--cpd-gold);
    margin-bottom: var(--cpd-space-lg);
}

.ftp-buildup-subtitle[b-98cfc1wiev] {
    font-size: 0.65rem;
    color: var(--cpd-text-muted);
    text-transform: none;
    letter-spacing: 0;
    font-family: var(--cpd-font-mono);
}

.ftp-buildup-empty[b-98cfc1wiev] {
    padding: var(--cpd-space-xl) 0;
    text-align: center;
    color: var(--cpd-text-subtle);
    font-size: 0.8rem;
}

.ftp-buildup-rows[b-98cfc1wiev] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* PricingDetail.razor's row grammar, re-declared here because Blazor CSS isolation scopes
   .razor.css rules to their own component — the class names match so both components read as one
   visual language, but the rules themselves cannot be shared at runtime. */
.pricing-row[b-98cfc1wiev] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    padding: 4px 0;
}

.pricing-row-emphasis[b-98cfc1wiev] {
    margin-top: 4px;
    padding-top: 10px;
    border-top: 1px solid var(--cpd-border);
}

.pricing-label[b-98cfc1wiev] {
    font-size: 11px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--cpd-text-subtle);
}

.pricing-value[b-98cfc1wiev] {
    font-family: var(--cpd-font-mono);
    font-size: 1.1rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

/* The bar-behind-row treatment: an absolutely positioned span sitting behind the row's own
   label/value text, sized by the caller's SpanStart/SpanWidth fractions. */
.ftp-buildup-row[b-98cfc1wiev] {
    position: relative;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
}

.ftp-buildup-bar[b-98cfc1wiev] {
    position: absolute;
    top: 2px;
    bottom: 2px;
    background: var(--cpd-gold-soft);
    border-radius: var(--cpd-radius-sm);
    z-index: 0;
}

.ftp-buildup-fg[b-98cfc1wiev] {
    position: relative;
    z-index: 1;
}

.ftp-buildup-footer[b-98cfc1wiev] {
    margin-top: 0.85rem;
    padding-top: 0.85rem;
    border-top: 1px solid var(--cpd-border);
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.ftp-buildup-footer-row[b-98cfc1wiev] {
    display: flex;
    justify-content: space-between;
    font-size: 0.8rem;
}

.ftp-buildup-footer-row-emphasis[b-98cfc1wiev] {
    padding-top: 0.5rem;
    border-top: 1px dashed var(--cpd-border);
}

.ftp-buildup-footer-label[b-98cfc1wiev] {
    color: var(--cpd-text-muted);
}

.ftp-buildup-footer-value[b-98cfc1wiev] {
    font-family: var(--cpd-font-mono);
    color: var(--cpd-text);
}

.ftp-buildup-footer-value-emphasis[b-98cfc1wiev] {
    color: var(--cpd-error);
}

.ftp-buildup-note[b-98cfc1wiev] {
    margin-top: 0.85rem;
    font-size: 0.68rem;
    color: var(--cpd-text-muted);
    opacity: 0.55;
    line-height: 1.5;
}
/* /Components/Ftp/FtpRunoffChart.razor.rz.scp.css */
.ftp-runoff-chart[b-gcqi9f0p7m] {
    display: flex;
    flex-direction: column;
    width: 100%;
    min-width: 0;
}

.ftp-runoff-chart-empty[b-gcqi9f0p7m] {
    padding: var(--cpd-space-xl) 0;
    text-align: center;
    color: var(--cpd-text-subtle);
    font-size: 0.8rem;
}

.ftp-runoff-chart-body[b-gcqi9f0p7m] {
    display: flex;
    gap: 6px;
    align-items: stretch;
}

.ftp-runoff-chart-gutter[b-gcqi9f0p7m] {
    position: relative;
    width: 104px;
    flex: none;
    font-family: var(--cpd-font-mono);
    font-size: 0.6rem;
    color: var(--cpd-text-subtle);
}

.ftp-runoff-chart-y-label[b-gcqi9f0p7m] {
    position: absolute;
    right: 0;
}

.ftp-runoff-chart-y-label-top[b-gcqi9f0p7m] { top: 0; }
.ftp-runoff-chart-y-label-bottom[b-gcqi9f0p7m] { bottom: 22px; }

.ftp-runoff-chart-plot[b-gcqi9f0p7m] {
    flex: 1;
    min-width: 0;
}

.ftp-runoff-chart-svg[b-gcqi9f0p7m] {
    display: block;
    width: 100%;
    height: auto;
}

.ftp-runoff-chart-holiday-band[b-gcqi9f0p7m] {
    fill: var(--cpd-gold-soft);
}

.ftp-runoff-chart-area[b-gcqi9f0p7m] {
    fill: var(--token-notional-bg);
}

.ftp-runoff-chart-line[b-gcqi9f0p7m] {
    fill: none;
    stroke: var(--token-notional);
    stroke-width: 2;
}

.ftp-runoff-chart-baseline[b-gcqi9f0p7m] {
    stroke: rgba(var(--cpd-light-rgb), 0.18);
    stroke-width: 1;
}

.ftp-runoff-chart-x-labels[b-gcqi9f0p7m] {
    display: flex;
    justify-content: space-between;
    font-family: var(--cpd-font-mono);
    font-size: 0.6rem;
    color: var(--cpd-text-subtle);
    margin-top: 4px;
}

.ftp-runoff-chart-caption[b-gcqi9f0p7m] {
    margin-top: 0.5rem;
    font-size: 0.66rem;
    color: var(--cpd-text-muted);
    opacity: 0.55;
    line-height: 1.5;
}
/* /Components/HistoryTable.razor.rz.scp.css */
.date-range[b-i2criiyi23] {
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

.date-separator[b-i2criiyi23] {
    color: var(--cpd-accent);
}

.status-cell[b-i2criiyi23] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.status-indicator[b-i2criiyi23] {
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-size: 0.85rem;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
    animation: pulse-b-i2criiyi23 2s infinite;
}

@keyframes pulse-b-i2criiyi23 {
    0% { box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2); }
    50% { box-shadow: 0 2px 12px rgba(246, 212, 107, 0.3); }
    100% { box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2); }
}

.status-indicator.status-completed[b-i2criiyi23] {
    background: linear-gradient(135deg, rgba(39, 174, 96, 0.3) 0%, rgba(39, 174, 96, 0.2) 100%);
    color: var(--cpd-success);
    border: 1px solid rgba(39, 174, 96, 0.4);
}

.status-indicator.status-failed[b-i2criiyi23] {
    background: linear-gradient(135deg, rgba(231, 76, 60, 0.3) 0%, rgba(231, 76, 60, 0.2) 100%);
    color: var(--cpd-error);
    border: 1px solid rgba(231, 76, 60, 0.4);
}

.status-indicator.status-processing[b-i2criiyi23] {
    background: linear-gradient(135deg, rgba(246, 212, 107, 0.3) 0%, rgba(246, 212, 107, 0.2) 100%);
    color: var(--cpd-gold);
    border: 1px solid rgba(246, 212, 107, 0.4);
    animation: spin-b-i2criiyi23 2s linear infinite;
}

@keyframes spin-b-i2criiyi23 {
    to { transform: rotate(360deg); }
}

.history-table-container[b-i2criiyi23]  .action-badge {
    display: inline-block;
    padding: 0.25rem 0.75rem;
    background: rgba(246, 212, 107, 0.1);
    border: 1px solid rgba(246, 212, 107, 0.3);
    border-radius: 4px;
    color: var(--cpd-gold);
    font-size: 0.85rem;
    font-weight: 500;
}

.date-cell[b-i2criiyi23] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.date-primary[b-i2criiyi23] {
    color: var(--cpd-contrast);
    font-weight: 500;
}

.date-secondary[b-i2criiyi23] {
    color: var(--cpd-accent);
    font-size: 0.85rem;
}

.duration-badge[b-i2criiyi23] {
    display: inline-block;
    padding: 0.3rem 0.6rem;
    background: linear-gradient(135deg, rgba(var(--cpd-contrast-rgb), 0.08) 0%, rgba(var(--cpd-contrast-rgb), 0.05) 100%);
    border: 1px solid rgba(var(--cpd-contrast-rgb), 0.15);
    border-radius: 6px;
    color: var(--cpd-accent);
    font-size: 0.85rem;
    font-weight: 500;
}

.action-buttons[b-i2criiyi23] {
    display: flex;
    gap: 0.5rem;
}

.btn-icon[b-i2criiyi23] {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 1px solid rgba(var(--cpd-contrast-rgb), 0.1);
    border-radius: 6px;
    color: var(--cpd-accent);
    cursor: pointer;
    transition: all 0.3s ease;
}

.btn-icon:hover[b-i2criiyi23] {
    background: rgba(246, 212, 107, 0.1);
    border-color: var(--cpd-gold);
    color: var(--cpd-gold);
}

.text-muted[b-i2criiyi23] {
    color: var(--cpd-accent);
    opacity: 0.5;
}


.history-table[b-i2criiyi23] {
    width: auto;
}

.history-table-container[b-i2criiyi23] {
    background: linear-gradient(135deg, rgba(var(--cpd-dark-rgb), 0.95) 0%, rgba(var(--cpd-panel-sheen-rgb), 0.95) 100%);
    border: 1px solid var(--cpd-gold-strong);
    border-radius: var(--cpd-radius-xl);
    overflow-x: auto;
    overflow-y: visible;
    box-shadow: var(--cpd-shadow-card);
    padding: var(--cpd-space-md);
}

/* Pager Styling */
.history-table-container[b-i2criiyi23]  .pagination {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    margin-top: 1rem;
    padding: 0.5rem 0;
}

/* Page buttons */
.history-table-container[b-i2criiyi23]  .page-item .page-link {
    background: transparent !important;
    border: 1px solid rgba(var(--cpd-gold-rgb), 0.4) !important;
    color: var(--cpd-gold) !important;
    font-weight: 500 !important;
    border-radius: var(--cpd-radius-lg) !important;
    padding: 0.4rem 0.8rem !important;
    transition: all 0.2s ease-in-out;
}

/* Hover effect */
.history-table-container[b-i2criiyi23]  .page-item .page-link:hover {
    background: var(--cpd-gold-ring) !important;
    border-color: var(--cpd-gold) !important;
    color: var(--cpd-contrast) !important;
}

/* Active page */
.history-table-container[b-i2criiyi23]  .page-item.active .page-link {
    background: var(--cpd-gold) !important;
    border-color: var(--cpd-gold) !important;
    color: var(--cpd-dark) !important;
    font-weight: 600 !important;
}

/* Disabled buttons */
.history-table-container[b-i2criiyi23]  .page-item.disabled .page-link {
    opacity: 0.4 !important;
    cursor: not-allowed !important;
}
/* CRITICAL FIX: Apply padding directly to table cells */
.history-table-container[b-i2criiyi23]  td,
.history-table-container[b-i2criiyi23]  th {
    padding: 0.75rem 1rem !important;
    border: none !important;
}

/* Add extra padding to first and last columns for better edge spacing */
.history-table-container[b-i2criiyi23]  td:first-child,
.history-table-container[b-i2criiyi23]  th:first-child {
    padding-left: 1.25rem !important;
}

.history-table-container[b-i2criiyi23]  td:last-child,
.history-table-container[b-i2criiyi23]  th:last-child {
    padding-right: 1.25rem !important;
}

/* Style the header cells */
.history-table-container[b-i2criiyi23]  thead th {
    background: rgba(var(--cpd-gold-rgb), 0.05) !important;
    color: var(--cpd-gold) !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    font-size: 0.9rem !important;
    letter-spacing: 0.5px !important;
    border-bottom: 2px solid var(--cpd-gold-border) !important;
    padding-top: 0.85rem !important;
    padding-bottom: 0.85rem !important;
}

/* Style the body cells */
.history-table-container[b-i2criiyi23]  tbody td {
    color: var(--cpd-text) !important;
    background: transparent !important;
    border-bottom: 1px solid var(--cpd-border-subtle) !important;
    padding-top: 0.7rem !important;
    padding-bottom: 0.7rem !important;
}

/* Add hover effect to rows */
.history-table-container[b-i2criiyi23]  tbody tr:hover td {
    background: rgba(var(--cpd-gold-rgb), 0.05) !important;
}

/* Ensure table takes full width and has minimum width for readability */
.history-table-container[b-i2criiyi23]  table {
    width: 100% !important;
    min-width: 900px !important;
}

/* Ensure no text wrapping in date columns */
.history-table-container[b-i2criiyi23]  td:nth-child(3),
.history-table-container[b-i2criiyi23]  th:nth-child(3),
.history-table-container[b-i2criiyi23]  td:nth-child(4),
.history-table-container[b-i2criiyi23]  th:nth-child(4) {
    white-space: nowrap !important;
}

/* Add visual separator between columns for clarity */
.history-table-container[b-i2criiyi23]  td:not(:last-child),
.history-table-container[b-i2criiyi23]  th:not(:last-child) {
    border-right: 1px solid var(--cpd-border-subtle) !important;
    padding-right: 1rem !important;
}

/* Ensure action buttons have proper spacing */
.history-table-container[b-i2criiyi23]  .action-buttons {
    display: flex !important;
    gap: 0.5rem !important;
}

/* Override any Bootstrap table compact styles that might reduce padding */
.history-table-container[b-i2criiyi23]  .table-sm > :not(caption) > * > * {
    padding: 0.75rem 1rem !important;
}

/* Force spacing even if Grid component uses divs instead of table elements */
.history-table-container[b-i2criiyi23]  .bb-grid-row > div,
.history-table-container[b-i2criiyi23]  .grid-row > div {
    padding: 0.75rem 1rem !important;
}

/* Target BlazorBootstrap's specific table classes */
.history-table-container[b-i2criiyi23]  .bb-grid table td,
.history-table-container[b-i2criiyi23]  .bb-grid table th {
    padding: 0.75rem 1rem !important;
}
/* /Components/Inputs/InputSelector.razor.rz.scp.css */
.dark-dropdown option[b-aqlnx5arux] {
    background-color: #1b2631;
    color: #e0e6ed;
}

.input-field[b-aqlnx5arux] {
    display: flex;
    flex-direction: column;
}

.input-field label[b-aqlnx5arux] {
    display: block;
    color: var(--cpd-text);
    font-weight: 600;
    margin-bottom: var(--cpd-space-sm);
    font-size: 0.9rem;
}

.form-input[b-aqlnx5arux] {
    width: 100%;
    padding: 0.6rem 0.8rem;
    background: var(--cpd-surface-2);
    border: 1px solid var(--cpd-border-strong);
    border-radius: var(--cpd-radius-md);
    color: var(--cpd-text);
    font-size: 0.9rem;
    transition: all var(--cpd-transition-slow);
}

.form-input:focus[b-aqlnx5arux] {
    outline: none;
    border-color: var(--cpd-gold);
    background: var(--cpd-surface-3);
    box-shadow: 0 0 0 3px var(--cpd-gold-ring);
}
/* /Components/Layout/LegalLayout.razor.rz.scp.css */
.legal-shell[b-owyl33gj74] {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    background: var(--cpd-surface-0);
    color: var(--cpd-text);
}

.legal-header[b-owyl33gj74] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--cpd-space-lg);
    padding: var(--cpd-space-lg) var(--cpd-space-2xl);
    border-bottom: 1px solid var(--cpd-border);
}

/* .brand and .btn-link carry the colours; this only sets the size, which differs from the
   landing header's. */
.legal-back[b-owyl33gj74] { font-size: 0.9375rem; }

/* The document column: flex:1 so the footer sits at the bottom on short pages. */
.legal-main[b-owyl33gj74] {
    flex: 1;
    padding: var(--cpd-space-3xl) var(--cpd-space-2xl);
}

/* ~70 characters per line, which is what makes a long document readable. */
.legal-document[b-owyl33gj74] {
    max-width: 46rem;
    margin: 0 auto;
    line-height: 1.7;
}

@media (max-width: 640.98px) {
    .legal-header[b-owyl33gj74] { padding: var(--cpd-space-lg); }
    .legal-main[b-owyl33gj74]   { padding: var(--cpd-space-xl) var(--cpd-space-lg); }
}

/* Document typography. ::deep because the prose is rendered by the page component nested in
   @Body, not by this layout, so plain scoped selectors would not reach it. Keeping it here
   means Terms and Disclaimer share one set of rules instead of each carrying a copy. */
.legal-document[b-owyl33gj74]  h1 {
    font-size: 2.25rem;
    font-weight: 600;
    margin-bottom: var(--cpd-space-sm);
}

.legal-document[b-owyl33gj74]  .legal-meta {
    color: var(--cpd-text-muted);
    font-size: 0.875rem;
    margin-bottom: var(--cpd-space-2xl);
}

.legal-document[b-owyl33gj74]  h2 {
    font-size: 1.25rem;
    font-weight: 600;
    margin-top: var(--cpd-space-2xl);
    margin-bottom: var(--cpd-space-sm);
}

.legal-document[b-owyl33gj74]  p {
    margin-bottom: var(--cpd-space-lg);
    color: var(--cpd-text);
}

.legal-document[b-owyl33gj74]  .legal-placeholder {
    color: var(--cpd-text-muted);
    font-style: italic;
}

.legal-document[b-owyl33gj74]  a {
    color: var(--cpd-gold);
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
.page[b-godiwx8sp7] { display: flex; flex-direction: column; min-height: 100vh; }
main[b-godiwx8sp7]  { flex: 1; }

.sidebar[b-godiwx8sp7] {
    width: var(--cpd-sidebar-w);
    background: var(--cpd-surface-0);
}
@media (max-width: 640.98px) {
    .sidebar[b-godiwx8sp7] { width: 100%; height: auto; }
}

.top-row[b-godiwx8sp7] {
    height: 3.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--cpd-space-md);
    padding: 0 var(--cpd-space-xl);
    background: var(--cpd-surface-0);
    border-bottom: 1px solid rgba(var(--cpd-contrast-rgb), 0.08);
}

.top-row[b-godiwx8sp7]  .claims-line {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
    flex: 1 1 auto;
    color: var(--cpd-text);
}

.top-row[b-godiwx8sp7]  .valuation-date-bar {
    flex-shrink: 0;
    width: 160px;
}

/* Narrower than the date beside it: the widest option is three characters, where a date is ten. */
.top-row[b-godiwx8sp7]  .reporting-currency-bar {
    flex-shrink: 0;
    width: 110px;
}

.top-row[b-godiwx8sp7]  .notification-bell-btn {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0;
    border: none;
    background: transparent;
    line-height: 1;
}

.top-row[b-godiwx8sp7]  .notification-bell-btn .bi {
    font-size: 1.5rem;
    line-height: 1;
}
.top-row a[b-godiwx8sp7] {
    margin-left: var(--cpd-space-xl);
    font-weight: 500;
    color: var(--cpd-text);
}
.top-row a:hover[b-godiwx8sp7] { color: var(--cpd-gold); }

@media (max-width: 640.98px) {
    .top-row[b-godiwx8sp7] { justify-content: space-between; padding: 0 var(--cpd-space-lg); }
    .top-row a[b-godiwx8sp7] { margin-left: 0; }
}

@media (min-width: 641px) {
    .page[b-godiwx8sp7]     {
        flex-direction: row;
        height: 100vh;
        overflow: hidden;
    }
    .sidebar[b-godiwx8sp7]  {
        width: var(--cpd-sidebar-w);
        flex-shrink: 0;
        height: 100vh;
        overflow: hidden;
    }

    /* Compact rail (html[data-cpd-nav="compact"], see navMode.js). The aside stays at the
       compact width in the flex row; when it expands its children widen to --cpd-sidebar-w and
       overflow OVER the page rather than pushing it, so the content never shifts.

       Expanded means hovered, OR focus somewhere inside it, OR the mode picker's popover open
       (.nav-picker-open, set by NavMenu) - see the matching rules in NavMenu.razor's style block.
       :focus-within is what lets a keyboard user open the rail at all.

       z-index 1050 puts the overlay above the page's own stacking (the trade topbar at 5, sticky
       table headers at 10) while staying below MudBlazor's chrome - drawer/appbar at 1100 and
       popovers at 1200 - so an open dialog or the picker's own popover still paints over it. */
    html[data-cpd-nav="compact"] .sidebar[b-godiwx8sp7] {
        width: var(--cpd-sidebar-compact-w);
        position: relative;
        z-index: 1050;
    }
    html[data-cpd-nav="compact"] .sidebar:is(:hover, :focus-within, :has(.nav-picker-open))[b-godiwx8sp7] {
        overflow: visible;
    }
    main[b-godiwx8sp7] {
        flex: 1;
        min-width: 0;
        display: flex;
        flex-direction: column;
        min-height: 0;
        height: 100vh;
    }
    .top-row[b-godiwx8sp7]  { flex-shrink: 0; z-index: 1; }
    article[b-godiwx8sp7]   { flex: 1; min-width: 0; overflow: auto; }

    /* ::deep because the <footer> is rendered by SiteFooter, not by this component, so a
       plain scoped selector would not reach it. flex-shrink:0 keeps it at its own height
       instead of being squeezed out by article's flex:1 in this 100vh column. */
    main[b-godiwx8sp7]  .site-footer { flex-shrink: 0; }
    .top-row[b-godiwx8sp7],
    article[b-godiwx8sp7]   { padding-left: var(--cpd-space-2xl) !important; padding-right: var(--cpd-space-xl) !important; }
}
/* /Components/Layout/NavMenu.razor.rz.scp.css */
.brand-bar[b-sni3sudt4l] {
    height: 3.5rem;
    display: flex;
    align-items: center;
    background: var(--cpd-surface-0);
    padding: 0 var(--cpd-space-lg);
    border-bottom: 1px solid var(--cpd-border-subtle);
}
.navbar-brand[b-sni3sudt4l] {
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--cpd-text);
}
.logo-accent[b-sni3sudt4l] { color: var(--cpd-gold); }
/* /Components/Layout/ReportingCurrencyBar.razor.rz.scp.css */
/* The native <select> is styled to read as MudBlazor's dense outlined field, so the top bar looks
   like one row of controls rather than one Mud control beside a browser default. Why it is native
   at all is in the razor's comment: a popover-backed control in the shell is invisible on every
   WebAssembly page.

   The option list itself is drawn by the browser and cannot be styled beyond colour, which is why
   --cpd-surface-raised exists (app.css names the three other files that hardcoded a raised surface
   for exactly this): an option popup needs an OPAQUE background, and the composed
   rgba(var(--cpd-contrast-rgb), …) surfaces would let the page show through. */
.reporting-currency-bar[b-xzyatt90i5] {
    position: relative;
    display: flex;
    align-items: center;
}

/* Sits on the border like Mud's floating label, with a slab of the top bar's own background behind
   it so the border appears to break around the text. --cpd-surface-0 rather than transparent
   because the border runs underneath. */
.reporting-currency-label[b-xzyatt90i5] {
    position: absolute;
    top: -7px;
    left: 10px;
    padding: 0 4px;
    background: var(--cpd-surface-0);
    font-size: 11px;
    line-height: 1;
    color: var(--cpd-text-muted);
    pointer-events: none;
}

.reporting-currency-select[b-xzyatt90i5] {
    width: 100%;
    height: 40px;
    padding: 0 28px 0 12px;
    border: 1px solid var(--cpd-border-strong);
    border-radius: var(--cpd-radius-lg);
    background-color: transparent;
    color: var(--cpd-text);
    font-family: inherit;
    font-size: 14px;
    cursor: pointer;

    /* The chevron, drawn rather than imported: an inline data: URI keeps it a background image with
       no extra request and no icon font, and currentColor is not available inside one, so the stroke
       is the muted text colour spelled out. */
    appearance: none;
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d0d7e4' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 6px center;
    background-size: 16px 16px;
    transition: border-color 0.15s;
}

.reporting-currency-select:hover[b-xzyatt90i5] {
    border-color: var(--cpd-text);
}

.reporting-currency-select:focus-visible[b-xzyatt90i5] {
    outline: none;
    border-color: var(--cpd-gold);
    box-shadow: 0 0 0 3px var(--cpd-gold-ring);
}

/* The browser draws this list itself; only the colours are ours. Opaque by necessity — see the
   header comment. */
.reporting-currency-select option[b-xzyatt90i5] {
    background-color: var(--cpd-surface-raised);
    color: var(--cpd-text);
}
/* /Components/Layout/SiteFooter.razor.rz.scp.css */
.site-footer[b-i88miqisrg] {
    border-top: 1px solid var(--cpd-border);
    background: var(--cpd-surface-0);
    padding: var(--cpd-space-lg) var(--cpd-space-2xl);
}

.site-footer-inner[b-i88miqisrg] {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--cpd-space-lg);
    flex-wrap: wrap;
}

.site-footer-copy[b-i88miqisrg] {
    color: var(--cpd-text-muted);
    font-size: 0.8125rem;
}

@media (max-width: 640.98px) {
    .site-footer[b-i88miqisrg] { padding: var(--cpd-space-lg); }
    .site-footer-inner[b-i88miqisrg] { justify-content: center; text-align: center; }
}

/* Compact: in the app shell the footer is chrome, not a destination. Horizontal padding
   matches .top-row/article (see MainLayout.razor.css) so the links line up with the content
   above, and the centred max-width is dropped because app content is left-aligned rather
   than a centred document column. */
.site-footer-compact[b-i88miqisrg] {
    padding: var(--cpd-space-sm) var(--cpd-space-xl) var(--cpd-space-sm) var(--cpd-space-2xl);
}

.site-footer-compact .site-footer-inner[b-i88miqisrg] {
    max-width: none;
    margin: 0;
}
/* /Components/Market/Capture/CurveCaptureDialog.razor.rz.scp.css */
.capture-header[b-bijiyomxgj] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.capture-key-chip[b-bijiyomxgj] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-family: var(--cpd-font-mono);
    font-size: 0.69rem;
    color: rgba(78, 205, 196, 0.75);
    background: rgba(78, 205, 196, 0.06);
    border: 1px solid rgba(78, 205, 196, 0.2);
    border-radius: var(--cpd-radius-sm);
    padding: 2px 8px;
}

.capture-key-lock[b-bijiyomxgj] {
    font-size: 0.8rem;
    opacity: 0.7;
}

.capture-key-caption[b-bijiyomxgj] {
    font-size: 0.66rem;
    color: rgba(var(--cpd-contrast-rgb), calc(0.3 * var(--cpd-text-alpha-scale)));
}

.capture-generator-chip[b-bijiyomxgj] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.66rem;
    color: var(--cpd-gold);
    background: rgba(var(--cpd-gold-rgb), 0.08);
    border: 1px solid rgba(var(--cpd-gold-rgb), 0.25);
    border-radius: var(--cpd-radius-sm);
    padding: 2px 8px;
}

.capture-body[b-bijiyomxgj] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    min-width: 0;
}

.capture-field[b-bijiyomxgj] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.capture-field-label[b-bijiyomxgj] {
    font-size: 0.66rem;
    color: var(--cpd-accent);
}

.capture-composite[b-bijiyomxgj] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.capture-convention-row[b-bijiyomxgj] {
    align-items: center;
}

.capture-segmented .mud-toggle-item[b-bijiyomxgj] {
    font-size: 0.72rem;
}

.capture-gold-btn[b-bijiyomxgj] {
    color: var(--cpd-gold);
    border-color: rgba(var(--cpd-gold-rgb), 0.5);
    font-size: 0.66rem;
    align-self: flex-start;
}

.capture-footer-note[b-bijiyomxgj] {
    font-size: 0.69rem;
    color: var(--cpd-text-subtle);
}
/* /Components/Market/Capture/CurveChart.razor.rz.scp.css */
.curve-chart[b-juxd2062mp] {
    display: flex;
    align-items: stretch;
    gap: 6px;
    width: 100%;
}

.curve-chart-gutter[b-juxd2062mp] {
    position: relative;
    width: 56px;
    flex: none;
}

.curve-chart-y-label[b-juxd2062mp] {
    position: absolute;
    right: 0;
    transform: translateY(-50%);
    font-family: var(--cpd-font-mono);
    font-size: 0.6rem;
    color: rgba(var(--cpd-contrast-rgb), calc(0.42 * var(--cpd-text-alpha-scale)));
    white-space: nowrap;
}

.curve-chart-plot[b-juxd2062mp] {
    position: relative;
    flex: 1;
    min-width: 0;
}

.curve-chart-svg[b-juxd2062mp] {
    display: block;
    width: 100%;
    height: auto;
    overflow: visible;
    font-family: var(--cpd-font-mono);
}

.curve-chart-extrap-region[b-juxd2062mp] {
    fill: var(--cpd-gold-faint);
}

.curve-chart-extrap-split[b-juxd2062mp] {
    stroke: rgba(var(--cpd-gold-rgb), 0.35);
    stroke-width: 1;
    stroke-dasharray: 3 3;
}

.curve-chart-gridline-h[b-juxd2062mp] {
    stroke: rgba(var(--cpd-contrast-rgb), 0.06);
    stroke-width: 1;
}

.curve-chart-gridline-v[b-juxd2062mp] {
    stroke: rgba(var(--cpd-contrast-rgb), 0.04);
    stroke-width: 1;
}

.curve-chart-baseline[b-juxd2062mp] {
    stroke: rgba(var(--cpd-contrast-rgb), 0.18);
    stroke-width: 1;
}

.curve-chart-line[b-juxd2062mp] {
    fill: none;
    stroke: var(--cpd-gold);
    stroke-width: 2;
    stroke-linejoin: round;
}

.curve-chart-line-tail[b-juxd2062mp] {
    stroke-dasharray: 5 4;
}

.curve-chart-pillar[b-juxd2062mp] {
    fill: var(--cpd-dark);
    stroke: var(--cpd-gold);
    stroke-width: 1.6;
}

.curve-chart-crosshair-v[b-juxd2062mp] {
    stroke: rgba(var(--cpd-contrast-rgb), 0.45);
    stroke-width: 1;
}

.curve-chart-crosshair-h[b-juxd2062mp] {
    stroke: rgba(var(--cpd-contrast-rgb), 0.2);
    stroke-width: 1;
    stroke-dasharray: 2 3;
}

.curve-chart-hover-dot[b-juxd2062mp] {
    fill: var(--cpd-gold);
}

.curve-chart-extrap-label[b-juxd2062mp] {
    position: absolute;
    top: 2px;
    font-family: var(--cpd-font-mono);
    font-size: 0.56rem;
    letter-spacing: 0.08em;
    color: rgba(var(--cpd-gold-rgb), 0.6);
    white-space: nowrap;
    pointer-events: none;
}

.curve-chart-x-label[b-juxd2062mp] {
    position: absolute;
    transform: translateX(-50%);
    font-family: var(--cpd-font-mono);
    font-size: 0.6rem;
    color: rgba(var(--cpd-contrast-rgb), calc(0.42 * var(--cpd-text-alpha-scale)));
    white-space: nowrap;
    pointer-events: none;
}

.curve-chart-readout[b-juxd2062mp] {
    position: absolute;
    top: 16px;
    transform: translateX(-50%);
    display: flex;
    gap: 10px;
    align-items: baseline;
    background: var(--cpd-surface-dialog);
    border: 1px solid rgba(var(--cpd-gold-rgb), 0.35);
    border-radius: var(--cpd-radius-md);
    padding: 5px 10px;
    font-family: var(--cpd-font-mono);
    font-size: 0.69rem;
    white-space: nowrap;
    pointer-events: none;
    box-shadow: var(--cpd-shadow-soft);
}

.curve-chart-readout-date[b-juxd2062mp] {
    color: rgba(var(--cpd-contrast-rgb), calc(0.55 * var(--cpd-text-alpha-scale)));
}

.curve-chart-readout-tenor[b-juxd2062mp] {
    color: rgba(var(--cpd-contrast-rgb), calc(0.35 * var(--cpd-text-alpha-scale)));
}

.curve-chart-readout-value[b-juxd2062mp] {
    color: var(--cpd-gold);
    font-weight: 600;
}
/* /Components/Market/Capture/CurveLeaf.razor.rz.scp.css */
.leaf-body[b-eo2x7bxo7p] {
    display: grid;
    grid-template-columns: 300px 1fr;
    gap: 1.25rem;
}

.leaf-rail[b-eo2x7bxo7p] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.leaf-main[b-eo2x7bxo7p] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    min-width: 0;
}

.leaf-section-label[b-eo2x7bxo7p] {
    font-family: var(--cpd-font-mono);
    font-size: 0.6rem;
    letter-spacing: 0.14em;
    color: rgba(var(--cpd-contrast-rgb), calc(0.35 * var(--cpd-text-alpha-scale)));
    text-transform: uppercase;
}

.leaf-field[b-eo2x7bxo7p] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.leaf-field-label[b-eo2x7bxo7p] {
    font-size: 0.66rem;
    color: var(--cpd-accent);
}

.leaf-field-caption[b-eo2x7bxo7p] {
    font-size: 0.62rem;
    color: var(--cpd-text-subtle);
    line-height: 1.45;
}

.leaf-field-extrap .mud-select .mud-input-outlined[b-eo2x7bxo7p] {
    border-color: rgba(var(--cpd-gold-rgb), 0.35);
}

.leaf-caption[b-eo2x7bxo7p] {
    font-size: 0.62rem;
    color: rgba(var(--cpd-contrast-rgb), calc(0.35 * var(--cpd-text-alpha-scale)));
}

.leaf-segmented .mud-toggle-item[b-eo2x7bxo7p] {
    font-size: 0.72rem;
}

.leaf-gold-btn[b-eo2x7bxo7p] {
    color: var(--cpd-gold);
    border-color: rgba(var(--cpd-gold-rgb), 0.5);
    font-size: 0.66rem;
}

.leaf-chart-box[b-eo2x7bxo7p] {
    background: var(--cpd-surface-inset);
    border: 1px solid var(--cpd-border);
    border-radius: var(--cpd-radius-lg);
    padding: 0.7rem 0.6rem 0.35rem;
}

.leaf-hint-chip[b-eo2x7bxo7p] {
    font-size: 0.6rem;
    color: rgba(var(--cpd-contrast-rgb), calc(0.5 * var(--cpd-text-alpha-scale)));
    background: rgba(var(--cpd-contrast-rgb), 0.05);
    border-radius: var(--cpd-radius-sm);
    padding: 3px 8px;
}

.leaf-grid-container[b-eo2x7bxo7p] {
    border: 1px solid rgba(var(--cpd-gold-rgb), 0.25);
    border-radius: var(--cpd-radius-lg);
    max-height: 260px;
    overflow: auto;
}

table.leaf-grid[b-eo2x7bxo7p] {
    width: 100%;
    border-collapse: collapse;
    font-family: var(--cpd-font-mono);
    font-size: 0.72rem;
}

table.leaf-grid th[b-eo2x7bxo7p] {
    position: sticky;
    top: 0;
    text-align: left;
    padding: 7px 12px;
    background: var(--cpd-surface-table-header);
    color: var(--cpd-gold);
    font-size: 0.6rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    border-bottom: 2px solid rgba(var(--cpd-gold-rgb), 0.3);
}

table.leaf-grid td[b-eo2x7bxo7p] {
    padding: 4px 12px;
    border-bottom: 1px solid rgba(var(--cpd-contrast-rgb), 0.05);
}

table.leaf-grid .leaf-grid-derived[b-eo2x7bxo7p] {
    color: rgba(var(--cpd-contrast-rgb), calc(0.45 * var(--cpd-text-alpha-scale)));
}

table.leaf-grid tr.leaf-grid-split-row td[b-eo2x7bxo7p] {
    color: var(--cpd-gold);
}
/* /Components/Market/MarketDataRequirements.razor.rz.scp.css */
.status-ok[b-c3mawdkb9w],
.status-missing[b-c3mawdkb9w] {
    font-size: 10px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 2px 8px;
    border-radius: 10px;
}

.status-ok[b-c3mawdkb9w] {
    color: var(--token-rate);
    background: var(--token-rate-bg);
}

.status-missing[b-c3mawdkb9w] {
    color: var(--token-position);
    background: var(--token-position-bg);
}
/* /Components/Pages/Ftp/FtpCustomRunoff.razor.rz.scp.css */
.ftp-runoff-dropzone[b-7zikuk2yph] {
    position: relative;
}

.ftp-runoff-dropzone-input[b-7zikuk2yph] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}

.ftp-runoff-dropzone-label[b-7zikuk2yph] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    padding: 2rem 1rem;
    border: 2px dashed var(--cpd-border, #ccc);
    border-radius: var(--cpd-radius-sm, 6px);
    text-align: center;
    cursor: pointer;
    transition: border-color 150ms ease, background 150ms ease;
}

.ftp-runoff-dropzone-label:hover[b-7zikuk2yph] {
    border-color: var(--cpd-gold, #b8860b);
    background: var(--cpd-surface-3, rgba(0, 0, 0, 0.02));
}

.ftp-runoff-dropzone-icon[b-7zikuk2yph] {
    font-size: 2rem;
    opacity: 0.7;
}

.ftp-runoff-dropzone-title[b-7zikuk2yph] {
    font-weight: 600;
}

.ftp-runoff-dropzone-hint[b-7zikuk2yph] {
    font-size: 0.8rem;
    opacity: 0.7;
    max-width: 28rem;
}

.ftp-runoff-dropzone-status[b-7zikuk2yph] {
    font-size: 0.8rem;
    font-weight: 600;
    margin-top: 0.25rem;
}

.ftp-runoff-dropzone-status-ok[b-7zikuk2yph] {
    color: var(--cpd-success, #2e7d32);
}

.ftp-runoff-dropzone-status-error[b-7zikuk2yph] {
    color: var(--cpd-danger, #c62828);
}
/* /Components/Pages/Market/CurveAccordionNode.razor.rz.scp.css */
.curve-section[b-s94zkyzmml] {
    border: 1px solid rgba(var(--cpd-gold-rgb), 0.18);
    border-radius: var(--cpd-radius-xl);
    padding: 0.85rem;
    margin-bottom: 0.75rem;
    box-shadow: 0 6px 22px rgba(0, 0, 0, 0.22);
}

.curve-section.level-0[b-s94zkyzmml] {
    background: linear-gradient(135deg, rgba(var(--cpd-dark-rgb), 0.96), rgba(var(--cpd-nest-1-rgb), 0.96));
}

.curve-section.level-1[b-s94zkyzmml] {
    background: linear-gradient(135deg, rgba(var(--cpd-nest-1-rgb), 0.96), rgba(var(--cpd-nest-3-rgb), 0.96));
    margin-left: 0.75rem;
}

.curve-section.level-2[b-s94zkyzmml] {
    background: linear-gradient(135deg, rgba(var(--cpd-nest-2-rgb), 0.96), rgba(var(--cpd-nest-6-rgb), 0.96));
    margin-left: 1.5rem;
}

.curve-section.level-3[b-s94zkyzmml] {
    background: linear-gradient(135deg, rgba(var(--cpd-nest-4-rgb), 0.96), rgba(var(--cpd-nest-7-rgb), 0.96));
    margin-left: 2.25rem;
}

@media (max-width: 767.98px) {
    .curve-section.level-1[b-s94zkyzmml],
    .curve-section.level-2[b-s94zkyzmml],
    .curve-section.level-3[b-s94zkyzmml] {
        margin-left: 0;
    }
}

[b-s94zkyzmml] .curve-accordion {
    margin-top: 0.75rem;
}

[b-s94zkyzmml] .curve-accordion .accordion-item {
    background: rgba(var(--cpd-nest-1-rgb), 0.95) !important;
    border: 1px solid rgba(var(--cpd-gold-rgb), 0.22) !important;
    border-radius: 10px !important;
    overflow: hidden;
    margin-bottom: 0.5rem;
}

[b-s94zkyzmml] .curve-accordion .accordion-header {
    background: rgba(var(--cpd-nest-5-rgb), 0.96) !important;
}

[b-s94zkyzmml] .curve-accordion .accordion-button {
    background: rgba(var(--cpd-nest-5-rgb), 0.96) !important;
    color: var(--cpd-gold) !important;
    font-weight: 600;
    padding: 0.55rem 0.8rem;
}

[b-s94zkyzmml] .curve-accordion .accordion-button:not(.collapsed) {
    background: rgba(var(--cpd-nest-8-rgb), 0.98) !important;
    color: var(--cpd-gold) !important;
    box-shadow: none !important;
}

[b-s94zkyzmml] .curve-accordion .accordion-body {
    background: rgba(var(--cpd-dark-rgb), 0.95) !important;
    color: var(--cpd-text);
    padding: 0.65rem;
}
/* /Components/Pages/Market/CurveSummary.razor.rz.scp.css */
.curve-summary[b-repg2piqdw] {
    margin-top: 0.4rem;
}

.curve-summary-heading[b-repg2piqdw] {
    color: var(--cpd-contrast);
    font-size: 0.95rem;
    font-weight: 600;
    margin: 0 0 0.5rem;
}

.curve-summary-grid[b-repg2piqdw] {
    display: grid;
    grid-template-columns: minmax(18rem, 0.9fr) minmax(20rem, 1.1fr);
    gap: 0.55rem;
    align-items: start;
}

.curve-summary-grid.single-panel[b-repg2piqdw] {
    grid-template-columns: minmax(0, 1fr);
}

.history-table[b-repg2piqdw] {
    width: auto;
}

.history-table-container[b-repg2piqdw] {
    background: linear-gradient(135deg, rgba(var(--cpd-dark-rgb), 0.95) 0%, rgba(var(--cpd-panel-sheen-rgb), 0.95) 100%);
    border: 1px solid var(--cpd-gold-strong);
    border-radius: var(--cpd-radius-lg);
    overflow-x: auto;
    overflow-y: auto;
    box-shadow: var(--cpd-shadow-card);
    padding: 0.35rem;
    max-height: 24rem;
}

.history-table-container[b-repg2piqdw]  td,
.history-table-container[b-repg2piqdw]  th {
    padding: 0.32rem 0.48rem !important;
    border: none !important;
    white-space: nowrap !important;
}

.history-table-container[b-repg2piqdw]  thead th {
    background: var(--cpd-gold-faint) !important;
    color: var(--cpd-gold) !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    font-size: 0.72rem !important;
    letter-spacing: 0.5px !important;
    border-bottom: 2px solid var(--cpd-gold-border) !important;
}

.history-table-container[b-repg2piqdw]  tbody td {
    color: var(--cpd-text) !important;
    background: transparent !important;
    border-bottom: 1px solid var(--cpd-border-subtle) !important;
}

.history-table-container[b-repg2piqdw]  tbody tr:hover td {
    background: var(--cpd-gold-faint) !important;
}

.history-table-container[b-repg2piqdw]  table {
    width: 100% !important;
    min-width: max-content !important;
}

.history-table-container[b-repg2piqdw]  td:not(:last-child),
.history-table-container[b-repg2piqdw]  th:not(:last-child) {
    border-right: 1px solid var(--cpd-border-subtle) !important;
}

.curve-properties-container[b-repg2piqdw]  td:last-child {
    min-width: 14rem;
    white-space: normal !important;
}

.curve-values-container[b-repg2piqdw] {
    max-height: 28rem;
}

@media (max-width: 991.98px) {
    .curve-summary-grid[b-repg2piqdw] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/Market/CurveValueChart.razor.rz.scp.css */
.curve-value-chart[b-g4b1u0c3l0] {
    border: 1px solid var(--cpd-gold-border);
    border-radius: var(--cpd-radius-lg);
    background: rgba(var(--cpd-contrast-rgb), 0.03);
    padding: 0.6rem;
    margin-bottom: 0.6rem;
}

.curve-value-chart svg[b-g4b1u0c3l0] {
    display: block;
    width: 100%;
    height: auto;
}

.axis[b-g4b1u0c3l0] {
    stroke: var(--cpd-border-strong);
    stroke-width: 1;
}

.curve-line[b-g4b1u0c3l0] {
    fill: none;
    stroke: var(--cpd-gold);
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.curve-point[b-g4b1u0c3l0] {
    fill: var(--cpd-dark);
    stroke: var(--cpd-gold);
    stroke-width: 1.8;
}

.axis-label[b-g4b1u0c3l0] {
    fill: var(--cpd-accent);
    font-size: 0.72rem;
}
/* /Components/Pages/Market/MarketRailTabs.razor.rz.scp.css */
.market-rail-tabs[b-djjralgkr6] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-bottom: var(--cpd-space-xl);
    border-bottom: 1px solid var(--cpd-border);
}

.rail-tab[b-djjralgkr6] {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    min-height: 2.4rem;
    border: none;
    border-bottom: 3px solid transparent;
    background: transparent;
    color: var(--cpd-accent);
    padding: 0.45rem 0.65rem;
}

.rail-tab:hover[b-djjralgkr6],
.rail-tab.active[b-djjralgkr6] {
    border-bottom-color: var(--cpd-gold);
    color: var(--cpd-gold);
}

.rail-count[b-djjralgkr6] {
    color: inherit;
    font-size: 0.75rem;
    opacity: 0.75;
}

.rail-tab:focus-visible[b-djjralgkr6] {
    outline: 2px solid var(--cpd-gold);
    outline-offset: 2px;
}
/* /Components/Pages/Market/MarketView.razor.rz.scp.css */
.border-block[b-2bj7ocpcb9] {
    background: var(--cpd-surface-1);
    border: 1px solid var(--cpd-gold-border);
    border-radius: var(--cpd-radius-lg);
    padding: var(--cpd-space-md);
    transition: border-color var(--cpd-transition), background var(--cpd-transition);
    margin-bottom: var(--cpd-space-xl);
}

.border-block:hover[b-2bj7ocpcb9] {
    border-color: rgba(var(--cpd-gold-rgb), 0.5);
    background: var(--cpd-surface-2);
}

.history-table[b-2bj7ocpcb9] {
    width: auto;
}

.history-table-container[b-2bj7ocpcb9] {
    background: linear-gradient(135deg, rgba(var(--cpd-dark-rgb), 0.95) 0%, rgba(var(--cpd-panel-sheen-rgb), 0.95) 100%);
    border: 1px solid var(--cpd-gold-strong);
    border-radius: var(--cpd-radius-xl);
    overflow-x: auto;
    overflow-y: visible;
    box-shadow: var(--cpd-shadow-card);
    padding: var(--cpd-space-md);
}

.history-table-container[b-2bj7ocpcb9]  .pagination {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    margin-top: 1rem;
    padding: 0.5rem 0;
}

.history-table-container[b-2bj7ocpcb9]  .page-item .page-link {
    background: transparent !important;
    border: 1px solid rgba(var(--cpd-gold-rgb), 0.4) !important;
    color: var(--cpd-gold) !important;
    font-weight: 500 !important;
    border-radius: var(--cpd-radius-lg) !important;
    padding: 0.4rem 0.8rem !important;
    transition: all 0.2s ease-in-out;
}

.history-table-container[b-2bj7ocpcb9]  .page-item .page-link:hover {
    background: var(--cpd-gold-ring) !important;
    border-color: var(--cpd-gold) !important;
    color: var(--cpd-contrast) !important;
}

.history-table-container[b-2bj7ocpcb9]  .page-item.active .page-link {
    background: var(--cpd-gold) !important;
    border-color: var(--cpd-gold) !important;
    color: var(--cpd-dark) !important;
    font-weight: 600 !important;
}

.history-table-container[b-2bj7ocpcb9]  .page-item.disabled .page-link {
    opacity: 0.4 !important;
    cursor: not-allowed !important;
}

.history-table-container[b-2bj7ocpcb9]  td,
.history-table-container[b-2bj7ocpcb9]  th {
    padding: 0.75rem 1rem !important;
    border: none !important;
}

.history-table-container[b-2bj7ocpcb9]  td:first-child,
.history-table-container[b-2bj7ocpcb9]  th:first-child {
    padding-left: 1.25rem !important;
}

.history-table-container[b-2bj7ocpcb9]  td:last-child,
.history-table-container[b-2bj7ocpcb9]  th:last-child {
    padding-right: 1.25rem !important;
}

.history-table-container[b-2bj7ocpcb9]  thead th {
    background: var(--cpd-gold-faint) !important;
    color: var(--cpd-gold) !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    font-size: 0.9rem !important;
    letter-spacing: 0.5px !important;
    border-bottom: 2px solid var(--cpd-gold-border) !important;
    padding-top: 0.85rem !important;
    padding-bottom: 0.85rem !important;
}

.history-table-container[b-2bj7ocpcb9]  tbody td {
    color: var(--cpd-text) !important;
    background: transparent !important;
    border-bottom: 1px solid var(--cpd-border-subtle) !important;
    padding-top: 0.7rem !important;
    padding-bottom: 0.7rem !important;
}

.history-table-container[b-2bj7ocpcb9]  tbody tr:hover td {
    background: var(--cpd-gold-faint) !important;
}

.history-table-container[b-2bj7ocpcb9]  table {
    width: 100% !important;
    min-width: 32rem !important;
}

.history-table-container[b-2bj7ocpcb9]  td:not(:last-child),
.history-table-container[b-2bj7ocpcb9]  th:not(:last-child) {
    border-right: 1px solid var(--cpd-border-subtle) !important;
    padding-right: 1rem !important;
}

.history-table-container[b-2bj7ocpcb9]  .table-sm > :not(caption) > * > * {
    padding: 0.75rem 1rem !important;
}

.history-table-container[b-2bj7ocpcb9]  .bb-grid-row > div,
.history-table-container[b-2bj7ocpcb9]  .grid-row > div {
    padding: 0.75rem 1rem !important;
}

.history-table-container[b-2bj7ocpcb9]  .bb-grid table td,
.history-table-container[b-2bj7ocpcb9]  .bb-grid table th {
    padding: 0.75rem 1rem !important;
}

.history-table-container[b-2bj7ocpcb9]  .bb-grid-filter.btn-light {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.35rem !important;
    min-height: 2rem !important;
    border: 1px solid var(--cpd-gold-border) !important;
    border-radius: var(--cpd-radius-md) !important;
    background: rgba(var(--cpd-dark-rgb), 0.82) !important;
    color: var(--cpd-gold) !important;
    box-shadow: none !important;
    padding: 0.25rem 0.55rem !important;
}

.history-table-container[b-2bj7ocpcb9]  .bb-grid-filter.btn-light:hover,
.history-table-container[b-2bj7ocpcb9]  .bb-grid-filter.btn-light:focus {
    border-color: var(--cpd-gold) !important;
    background: var(--cpd-gold-ring) !important;
    color: var(--cpd-contrast) !important;
}

.history-table-container[b-2bj7ocpcb9]  .bb-grid-filter.btn-light::after {
    margin-left: 0.25rem !important;
}

.history-table-container[b-2bj7ocpcb9]  .dropdown-menu {
    border: 1px solid var(--cpd-gold-border) !important;
    border-radius: var(--cpd-radius-lg) !important;
    background: rgba(var(--cpd-dark-rgb), 0.98) !important;
    box-shadow: var(--cpd-shadow-card) !important;
    color: var(--cpd-text) !important;
}

.history-table-container[b-2bj7ocpcb9]  .dropdown-item {
    color: var(--cpd-text) !important;
}

.history-table-container[b-2bj7ocpcb9]  .dropdown-item:hover,
.history-table-container[b-2bj7ocpcb9]  .dropdown-item:focus {
    background: var(--cpd-gold-faint) !important;
    color: var(--cpd-gold) !important;
}

.button-strip[b-2bj7ocpcb9] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    width: 100%;
}

.button-strip .my-button[b-2bj7ocpcb9] {
    flex: 0 0 auto;
    min-width: 11rem;
    padding: 0.55rem 0.9rem;

    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;

    white-space: nowrap;
}

.button-strip .badge[b-2bj7ocpcb9],
.button-strip .category-count[b-2bj7ocpcb9] {
    background-color: #2f3e4e;
    color: var(--cpd-gold);
    border: 1px solid rgba(var(--cpd-contrast-rgb), 0.14);
}

.button-strip .my-button .badge[b-2bj7ocpcb9] {
    font-size: 0.75rem;
    padding: 0.25rem 0.5rem;
}

.border-block.category-frame[b-2bj7ocpcb9] {
    width: fit-content;
    max-width: 100%;
    margin: 0 auto var(--cpd-space-xl) auto;
}

.button-strip.category-strip[b-2bj7ocpcb9] {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.5rem;
    width: fit-content;
    max-width: 100%;
}

.button-strip.category-strip .my-button[b-2bj7ocpcb9] {
    flex: 0 0 auto;
    min-width: unset;
    width: auto;
    padding: 0.5rem 0.75rem;
    justify-content: center;
}

.button-strip.category-strip .my-button.active[b-2bj7ocpcb9],
.button-strip.category-strip .my-button[aria-pressed="true"][b-2bj7ocpcb9] {
    box-shadow: 0 0 0 2px var(--cpd-gold-ring);
}

.button-strip.category-strip .my-button:focus-visible[b-2bj7ocpcb9] {
    outline: 2px solid var(--cpd-gold);
    outline-offset: 2px;
}

.stoch-section[b-2bj7ocpcb9] {
    display: flex;
    flex-direction: column;
    gap: var(--cpd-space-xl);
}

.stoch-panel[b-2bj7ocpcb9] {
    background: linear-gradient(135deg, rgba(var(--cpd-dark-rgb), 0.95) 0%, rgba(var(--cpd-panel-sheen-rgb), 0.95) 100%);
    border: 1px solid var(--cpd-gold-strong);
    border-radius: var(--cpd-radius-xl);
    padding: var(--cpd-space-lg);
    box-shadow: var(--cpd-shadow-card);
}

.stoch-panel-title[b-2bj7ocpcb9] {
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: var(--cpd-gold);
    margin-bottom: var(--cpd-space-md);
}

.stoch-form[b-2bj7ocpcb9] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--cpd-space-md);
    align-items: flex-end;
}

.stoch-field[b-2bj7ocpcb9] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 130px;
}

.stoch-field.stoch-action[b-2bj7ocpcb9] {
    justify-content: flex-end;
}

.stoch-label[b-2bj7ocpcb9] {
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: var(--cpd-text-subtle);
}

.stoch-table[b-2bj7ocpcb9] {
    width: 100%;
    border-collapse: collapse;
    margin-top: var(--cpd-space-lg);
    font-size: 12px;
    font-variant-numeric: tabular-nums;
}

.stoch-table th[b-2bj7ocpcb9] {
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--cpd-gold);
    padding: 6px 12px;
    border-bottom: 1px solid var(--cpd-gold-border);
    text-align: left;
}

.stoch-table td[b-2bj7ocpcb9] {
    padding: 5px 12px;
    color: rgba(var(--cpd-contrast-rgb), calc(0.65 * var(--cpd-text-alpha-scale)));
    border-bottom: 1px solid rgba(var(--cpd-contrast-rgb), 0.04);
    font-family: var(--cpd-font-mono);
}
/* /Components/Pages/Market/ScheduledImports.razor.rz.scp.css */
/* MudSimpleTable's dense mode still pads cells looser than the compact
   file-listing look this page needs. Keep the 4px padding Bootstrap's
   table-sm used to give us, and restore the table's bottom margin now
   that MudBlazor renders the table inside its own container div. */
.table-responsive[b-zvel6fey5d]  .sandbox-files-table th,
.table-responsive[b-zvel6fey5d]  .sandbox-files-table td {
    padding: 4px;
}

/* Bootstrap's .table gave th font-weight 700; MudSimpleTable uses 500. These are
   dense file listings where bold headers carry the scan, so hold the old weight. */
.table-responsive[b-zvel6fey5d]  .sandbox-files-table th {
    font-weight: 700;
}

.table-responsive[b-zvel6fey5d]  .sandbox-files-table {
    margin-bottom: var(--cpd-space-lg);
}
/* /Components/Pages/Schedule Based History.razor.rz.scp.css */
.filters-section[b-glmn19ezdl] {
    display: flex;
    gap: var(--cpd-space-lg);
    align-items: flex-end;
    margin-bottom: var(--cpd-space-xl);
    padding: var(--cpd-space-lg);
    background: var(--cpd-surface-1);
    border: 1px solid var(--cpd-border-subtle);
    border-radius: var(--cpd-radius-xl);
    flex-wrap: wrap;
}

.filter-group[b-glmn19ezdl] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.filter-label[b-glmn19ezdl] {
    color: var(--cpd-text-muted);
    font-size: 0.9rem;
    font-weight: 500;
}

.filter-select[b-glmn19ezdl],
.filter-input[b-glmn19ezdl] {
    padding: var(--cpd-space-sm) var(--cpd-space-lg);
    background: var(--cpd-surface-2);
    border: 1px solid var(--cpd-border-strong);
    border-radius: var(--cpd-radius-md);
    color: var(--cpd-text);
    min-width: 150px;
    transition: all var(--cpd-transition-slow);
}

.filter-select:focus[b-glmn19ezdl],
.filter-input:focus[b-glmn19ezdl] {
    outline: none;
    border-color: var(--cpd-gold);
    background: var(--cpd-surface-3);
    box-shadow: 0 0 0 3px var(--cpd-gold-ring);
}

@media (max-width: 768px) {
    .simm-history-container[b-glmn19ezdl] {
        padding: var(--cpd-space-sm);
    }

    .filters-section[b-glmn19ezdl] {
        padding: var(--cpd-space-md);
        gap: var(--cpd-space-md);
    }
}
/* /Components/Pages/SIMM History.razor.rz.scp.css */
/* SIMM History.razor.css - Component-specific styles with CSS isolation */

.filters-section[b-kvmtkgapr7] {
    display: flex;
    gap: var(--cpd-space-lg);
    align-items: flex-end;
    margin-bottom: var(--cpd-space-xl);
    padding: var(--cpd-space-lg);
    background: var(--cpd-surface-1);
    border: 1px solid var(--cpd-border-subtle);
    border-radius: var(--cpd-radius-xl);
    flex-wrap: wrap;
}

.filter-group[b-kvmtkgapr7] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.filter-label[b-kvmtkgapr7] {
    color: var(--cpd-text-muted);
    font-size: 0.9rem;
    font-weight: 500;
}

.filter-select[b-kvmtkgapr7],
.filter-input[b-kvmtkgapr7] {
    padding: var(--cpd-space-sm) var(--cpd-space-lg);
    background: var(--cpd-surface-2);
    border: 1px solid var(--cpd-border-strong);
    border-radius: var(--cpd-radius-md);
    color: var(--cpd-text);
    min-width: 150px;
    transition: all var(--cpd-transition-slow);
}

.filter-select:focus[b-kvmtkgapr7],
.filter-input:focus[b-kvmtkgapr7] {
    outline: none;
    border-color: var(--cpd-gold);
    background: var(--cpd-surface-3);
    box-shadow: 0 0 0 3px var(--cpd-gold-ring);
}

@media (max-width: 768px) {
    .filters-section[b-kvmtkgapr7] {
        padding: var(--cpd-space-md);
        gap: var(--cpd-space-md);
    }
}
/* /Components/Pages/Trades/Capture.razor.rz.scp.css */
.trade-topbar[b-qkiqfh3wuv] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
    gap: 12px;
    flex-wrap: wrap;
    position: sticky;
    top: 0;
    z-index: 5;
    background: var(--cpd-surface-0);
    padding: 8px 0;
}

.trade-title-group[b-qkiqfh3wuv] {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 32px;
}

.trade-page-title[b-qkiqfh3wuv] {
    font-size: 20px;
    font-weight: 700;
    color: var(--cpd-text);
    letter-spacing: -0.03em;
}

.trade-badge[b-qkiqfh3wuv] {
    font-family: var(--cpd-font-mono);
    font-size: 12px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    color: var(--cpd-text-subtle);
    padding: 3px 8px;
    background: rgba(var(--cpd-contrast-rgb), 0.03);
    border: 1px solid rgba(var(--cpd-contrast-rgb), 0.10);
    border-radius: 4px;
}

.trade-type-switcher[b-qkiqfh3wuv] {
    display: inline-flex;
    gap: 1px;
    padding: 2px;
    background: rgba(var(--cpd-contrast-rgb), 0.03);
    border: 1px solid rgba(var(--cpd-contrast-rgb), 0.08);
    border-radius: 6px;
}

.trade-type-btn[b-qkiqfh3wuv] {
    font-family: var(--cpd-font-mono);
    font-size: 12px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--cpd-text-subtle);
    padding: 4px 12px;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 4px;
    cursor: pointer;
    transition: background 0.1s, color 0.1s, border-color 0.1s;
}

.trade-type-btn:hover[b-qkiqfh3wuv] {
    color: rgba(var(--cpd-contrast-rgb), calc(0.6 * var(--cpd-text-alpha-scale)));
}

.trade-type-btn.active[b-qkiqfh3wuv] {
    color: var(--cpd-contrast);
    background: rgba(var(--cpd-contrast-rgb), 0.06);
    border-color: rgba(var(--cpd-contrast-rgb), 0.10);
}

.trade-meta-group[b-qkiqfh3wuv] {
    display: flex;
    gap: 8px;
    align-items: center;
}

.trade-btn-go[b-qkiqfh3wuv] {
    flex: 1;
    height: 44px;
    border-radius: 8px;
    background: var(--cpd-gold);
    border: none;
    font-family: inherit;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--cpd-dark);
    cursor: pointer;
    transition: background 0.15s, box-shadow 0.15s, transform 0.1s;
    box-shadow: 0 2px 12px rgba(246, 212, 107, 0.15);
    position: relative;
    overflow: hidden;
}

/* Gloss sheen on the gold Go button. Deliberately a literal white, NOT
   rgba(var(--cpd-contrast-rgb), …) like every other overlay in this file: the
   button's background is --cpd-gold, which is the same gold in both themes, so
   the highlight has to lighten it in both. The contrast token would flip to a
   dark overlay in light mode and shade the button instead of glossing it. */
.trade-btn-go[b-qkiqfh3wuv]::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.10) 0%, transparent 55%);
    pointer-events: none;
}

.trade-btn-go:hover[b-qkiqfh3wuv] {
    background: #fad96f;
    box-shadow: 0 4px 20px rgba(246, 212, 107, 0.30);
    transform: translateY(-1px);
}

.trade-btn-go:active[b-qkiqfh3wuv] {
    transform: scale(0.99);
}

.trade-btn-save[b-qkiqfh3wuv] {
    height: 44px;
    padding: 0 18px;
    border-radius: 8px;
    background: transparent;
    border: 1px solid rgba(var(--cpd-contrast-rgb), 0.12);
    font-family: inherit;
    font-size: 12px;
    font-weight: 500;
    color: rgba(var(--cpd-contrast-rgb), calc(0.6 * var(--cpd-text-alpha-scale)));
    cursor: pointer;
    transition: background 0.12s, border-color 0.12s, color 0.12s;
    white-space: nowrap;
}

.trade-btn-save:hover[b-qkiqfh3wuv] {
    background: rgba(var(--cpd-contrast-rgb), 0.04);
    border-color: rgba(var(--cpd-contrast-rgb), 0.22);
    color: var(--cpd-contrast);
}

@media (prefers-reduced-motion: reduce) {
    *[b-qkiqfh3wuv], *[b-qkiqfh3wuv]::before, *[b-qkiqfh3wuv]::after {
        animation: none !important;
        transition: none !important;
    }
}

.parties-group[b-qkiqfh3wuv] {
    display: flex;
    gap: 8px;
    align-items: center;
}

.party-input[b-qkiqfh3wuv] {
    font-family: var(--cpd-font-mono);
    font-size: 13px;
    color: var(--cpd-text);
    background: rgba(var(--cpd-contrast-rgb), 0.03);
    border: 1px solid rgba(var(--cpd-contrast-rgb), 0.10);
    border-radius: 6px;
    padding: 5px 10px;
    outline: none;
    width: clamp(105px, 9.7vw, 140px);
    transition: border-color 0.15s;
}

.party-input:focus[b-qkiqfh3wuv] {
    border-color: rgba(var(--cpd-contrast-rgb), 0.3);
}

.party-input[b-qkiqfh3wuv]::placeholder {
    color: rgba(var(--cpd-contrast-rgb), calc(0.2 * var(--cpd-text-alpha-scale)));
}

/* The .trade-form-card block that used to sit here — every rule styling the JsonComponent
   tree inside the card — moved to wwwroot/json-form-card.css. It was scoped css applying to
   this page alone, and CurveSpecDetail renders the same markup contract. See that file. */

/* The "Trade" tile's collapsed preview: the colourised compact-grammar repr text (Phase 9 B7).
   Colours come from the global repr.css token classes; this wrapper only sets the typography. */
.trade-summary-repr[b-qkiqfh3wuv] {
    font-family: var(--cpd-font-mono);
    font-size: 0.8rem;
    line-height: 1.4;
    overflow-wrap: anywhere;
}
/* /Components/Pages/Trades/Import.razor.rz.scp.css */

/* MudSimpleTable's dense mode still pads cells looser than the compact
   file-listing look this page needs. Keep the 4px padding Bootstrap's
   table-sm used to give us, and restore the table's bottom margin now
   that MudBlazor renders the table inside its own container div. */
.table-responsive[b-gi218g99rb]  .sandbox-files-table th,
.table-responsive[b-gi218g99rb]  .sandbox-files-table td {
    padding: 4px;
}

/* Bootstrap's .table gave th font-weight 700; MudSimpleTable uses 500. These are
   dense file listings where bold headers carry the scan, so hold the old weight. */
.table-responsive[b-gi218g99rb]  .sandbox-files-table th {
    font-weight: 700;
}

.table-responsive[b-gi218g99rb]  .sandbox-files-table {
    margin-bottom: var(--cpd-space-lg);
}

.import-kind-row[b-gi218g99rb] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--cpd-space-sm);
    margin-top: var(--cpd-space-md);
}

.import-kind-button[b-gi218g99rb] {
    border: 1px solid var(--cpd-border-strong);
    background: var(--cpd-surface-2);
    color: var(--cpd-text);
    border-radius: var(--cpd-radius-pill);
    padding: 0.45rem 0.9rem;
    transition: border-color var(--cpd-transition-fast), background var(--cpd-transition-fast), color var(--cpd-transition-fast);
}

.import-kind-button:hover:not(:disabled)[b-gi218g99rb] {
    border-color: var(--cpd-gold);
    background: var(--cpd-gold-tint);
}

.import-kind-button:disabled[b-gi218g99rb] {
    opacity: 0.5;
    cursor: not-allowed;
}

.import-kind-button-selected[b-gi218g99rb] {
    border-color: var(--cpd-gold);
    background: var(--cpd-gold-soft);
    color: var(--cpd-gold);
}

.extension-select[b-gi218g99rb],
.saved-script-select[b-gi218g99rb] {
    background: var(--cpd-surface-2);
    color: var(--cpd-text);
    border-color: var(--cpd-border-strong);
}

.extension-select[b-gi218g99rb] {
    max-width: 120px;
}

.extension-select:focus[b-gi218g99rb],
.saved-script-select:focus[b-gi218g99rb] {
    background: var(--cpd-surface-3);
    color: var(--cpd-text);
}

.extension-select option[b-gi218g99rb],
.saved-script-select option[b-gi218g99rb] {
    background: rgba(6, 18, 33);
    color: var(--cpd-text);
}

.schema-collapsible[b-gi218g99rb] {
    margin-top: var(--cpd-space-sm);
    border: 1px solid var(--cpd-border-strong);
    border-radius: var(--cpd-radius-md);
    background: var(--cpd-surface-2);
}

.schema-collapsible summary[b-gi218g99rb] {
    cursor: pointer;
    padding: 0.5rem 0.75rem;
    color: var(--cpd-text-muted);
    font-weight: 600;
    user-select: none;
}

.schema-collapsible summary:hover[b-gi218g99rb] {
    color: var(--cpd-text);
}

.schema-collapsible-body[b-gi218g99rb] {
    border-top: 1px solid var(--cpd-border-subtle);
    padding: 0.6rem 0.75rem;
}

.schema-collapsible-body a[b-gi218g99rb] {
    word-break: break-word;
}

/* .sandbox-output paints --cpd-surface-2, the same colour .schema-collapsible paints, so inside this
   block the example needs the inset surface to read as a document rather than as more panel. */
.schema-example[b-gi218g99rb] {
    margin-top: 0;
    margin-bottom: 0;
    background: var(--cpd-surface-inset);
    font-family: var(--cpd-font-mono);
}

.schema-example-label[b-gi218g99rb] {
    margin: var(--cpd-space-sm) 0 0.25rem;
    color: var(--cpd-text-muted);
    font-family: var(--cpd-font-mono);
    font-size: 0.78rem;
}

.schema-caption[b-gi218g99rb] {
    margin: 0 0 var(--cpd-space-sm);
    color: var(--cpd-text-muted);
    font-size: 0.85rem;
}

.schema-actions[b-gi218g99rb] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--cpd-space-sm);
}

.schema-action[b-gi218g99rb] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    text-decoration: none;
}

/* The clipboard helper copies the value of the element data-copy-target names, and only an input or
   textarea has one. This carries the same text as the <pre> beside it and is never seen or focused. */
.schema-example-source[b-gi218g99rb] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    border: 0;
    opacity: 0;
    overflow: hidden;
    pointer-events: none;
}

.python-script-hero[b-gi218g99rb] {
    border: 1px solid rgba(var(--cpd-gold-rgb), 0.4);
    background: linear-gradient(180deg, rgba(var(--cpd-gold-rgb), 0.14) 0%, rgba(var(--cpd-gold-rgb), 0.03) 100%);
    box-shadow: 0 0 0 1px rgba(var(--cpd-gold-rgb), 0.15), 0 12px 26px rgba(0, 0, 0, 0.18);
}

.python-script-hero > label[b-gi218g99rb] {
    font-size: 1.06rem;
}

.btn-execute-hero[b-gi218g99rb] {
    padding: 0.65rem 1.2rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    border-color: rgba(var(--cpd-gold-rgb), 0.8);
    box-shadow: 0 0 0 1px rgba(var(--cpd-gold-rgb), 0.25);
}

.output-collapse-toggle[b-gi218g99rb] {
    margin-top: var(--cpd-space-sm);
    margin-bottom: var(--cpd-space-sm);
}

.output-tabs[b-gi218g99rb] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--cpd-space-sm);
    margin-bottom: var(--cpd-space-sm);
}

.output-tab-button[b-gi218g99rb] {
    border: 1px solid var(--cpd-border-strong);
    background: var(--cpd-surface-2);
    color: var(--cpd-text);
    border-radius: var(--cpd-radius-pill);
    padding: 0.4rem 0.8rem;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.output-tab-button-selected[b-gi218g99rb] {
    border-color: var(--cpd-gold);
    background: var(--cpd-gold-soft);
    color: var(--cpd-gold);
}

.output-tab-pill[b-gi218g99rb] {
    width: 1rem;
    height: 1rem;
    border-radius: 50%;
    font-size: 0.7rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.output-tab-pill-error[b-gi218g99rb] {
    background: rgba(var(--cpd-error-rgb), 0.9);
    color: #fff;
}

.output-summary[b-gi218g99rb] {
    border: 1px solid var(--cpd-border-strong);
    border-radius: var(--cpd-radius-md);
    background: var(--cpd-surface-2);
    padding: 0.65rem 0.8rem;
    margin-bottom: var(--cpd-space-sm);
}

.output-summary-title[b-gi218g99rb] {
    color: var(--cpd-text);
}

.output-summary-counts[b-gi218g99rb] {
    color: var(--cpd-text-muted);
    margin-top: 0.2rem;
}

.output-summary-messages[b-gi218g99rb] {
    margin: 0.45rem 0 0 1rem;
    color: var(--cpd-text);
}

.output-failed-list[b-gi218g99rb] {
    display: flex;
    flex-direction: column;
    gap: var(--cpd-space-sm);
}

.output-failed-item[b-gi218g99rb] {
    border: 1px solid rgba(var(--cpd-error-rgb), 0.35);
    border-radius: var(--cpd-radius-md);
    background: rgba(var(--cpd-error-rgb), 0.08);
    padding: 0.55rem 0.7rem;
}

.output-failed-item-header[b-gi218g99rb] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--cpd-space-sm);
}

/* The saved-script picker (#71). It shares .extension-select's dark treatment above; what differs
   is width - a script name needs far more room than that control's 120px file-extension cap, and
   both the picker and the name field should take the row's slack rather than leave the buttons
   floating. */
.saved-script-row[b-gi218g99rb] {
    margin-top: var(--cpd-space-md);
}

.saved-script-select[b-gi218g99rb],
.saved-script-name[b-gi218g99rb] {
    flex: 1 1 18rem;
    min-width: 12rem;
    max-width: 32rem;
}
/* /Components/Shared/LegalLinks.razor.rz.scp.css */
.legal-links[b-nrd2l1wpio] {
    display: flex;
    gap: var(--cpd-space-xl);
    flex-wrap: wrap;
}

.legal-links-vertical[b-nrd2l1wpio] {
    flex-direction: column;
    gap: 0.35rem;
}

/* Muted until hover: these are reference documents, and on every surface they appear on they
   are secondary to whatever the primary action is (signing in, navigating the app). */
.legal-links a[b-nrd2l1wpio] {
    color: var(--cpd-text-muted);
    font-size: 0.8125rem;
    text-decoration: none;
    transition: color var(--cpd-transition);
}

.legal-links a:hover[b-nrd2l1wpio],
.legal-links a:focus-visible[b-nrd2l1wpio] {
    color: var(--cpd-gold);
    text-decoration: underline;
}
/* /Components/Trades/CashFlowGrid.razor.rz.scp.css */
.history-table-container[b-ft3v6cmhvz] {
    margin: 2rem 0;
}

.history-table-container[b-ft3v6cmhvz]  .pagination {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    margin-top: 1rem;
    padding: 0.5rem 0;
}

.history-table-container[b-ft3v6cmhvz]  .page-item .page-link {
    background: transparent !important;
    border: 1px solid rgba(var(--cpd-gold-rgb), 0.4) !important;
    color: var(--cpd-gold) !important;
    font-weight: 500 !important;
    border-radius: var(--cpd-radius-lg) !important;
    padding: 0.4rem 0.8rem !important;
    transition: all 0.2s ease-in-out;
}

.history-table-container[b-ft3v6cmhvz]  .page-item .page-link:hover {
    background: var(--cpd-gold-ring) !important;
    border-color: var(--cpd-gold) !important;
    color: var(--cpd-contrast) !important;
}

.history-table-container[b-ft3v6cmhvz]  .page-item.active .page-link {
    background: var(--cpd-gold) !important;
    border-color: var(--cpd-gold) !important;
    color: var(--cpd-dark) !important;
    font-weight: 600 !important;
}

.history-table-container[b-ft3v6cmhvz]  .page-item.disabled .page-link {
    opacity: 0.4 !important;
    cursor: not-allowed !important;
}

.history-table-container[b-ft3v6cmhvz]  td,
.history-table-container[b-ft3v6cmhvz]  th {
    padding: 0.75rem 1rem !important;
    border: none !important;
}

.history-table-container[b-ft3v6cmhvz]  td:first-child,
.history-table-container[b-ft3v6cmhvz]  th:first-child {
    padding-left: 1.25rem !important;
}

.history-table-container[b-ft3v6cmhvz]  td:last-child,
.history-table-container[b-ft3v6cmhvz]  th:last-child {
    padding-right: 1.25rem !important;
}

.history-table-container[b-ft3v6cmhvz]  thead th {
    background: var(--cpd-dark) !important;
    color: var(--cpd-gold) !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    font-size: 0.9rem !important;
    letter-spacing: 0.5px !important;
    border-bottom: 2px solid var(--cpd-gold-border) !important;
    padding-top: 0.85rem !important;
    padding-bottom: 0.85rem !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 10 !important;
}

.history-table-container[b-ft3v6cmhvz]  tbody td {
    color: var(--cpd-text) !important;
    background: transparent !important;
    border-bottom: 1px solid var(--cpd-border-subtle) !important;
    padding-top: 0.2rem !important;
    padding-bottom: 0.2rem !important;
}

.history-table-container[b-ft3v6cmhvz]  tbody tr:hover td {
    background: rgba(var(--cpd-gold-rgb), 0.05) !important;
}

.history-table-container[b-ft3v6cmhvz]  table {
    width: 100% !important;
    min-width: 900px !important;
}

.history-table-container[b-ft3v6cmhvz]  td:nth-child(3),
.history-table-container[b-ft3v6cmhvz]  th:nth-child(3),
.history-table-container[b-ft3v6cmhvz]  td:nth-child(4),
.history-table-container[b-ft3v6cmhvz]  th:nth-child(4) {
    white-space: nowrap !important;
}

.history-table-container[b-ft3v6cmhvz]  td:not(:last-child),
.history-table-container[b-ft3v6cmhvz]  th:not(:last-child) {
    border-right: 1px solid var(--cpd-border-subtle) !important;
    padding-right: 1rem !important;
}

.history-table-container[b-ft3v6cmhvz]  .action-buttons {
    display: flex !important;
    gap: 0.5rem !important;
}

.history-table-container[b-ft3v6cmhvz]  .table-sm > :not(caption) > * > * {
    padding: 0.75rem 1rem !important;
}

.history-table-container[b-ft3v6cmhvz]  .bb-grid-row > div,
.history-table-container[b-ft3v6cmhvz]  .grid-row > div {
    padding: 0.75rem 1rem !important;
}

.history-table-container[b-ft3v6cmhvz]  .bb-grid table td,
.history-table-container[b-ft3v6cmhvz]  .bb-grid table th {
    padding: 0.75rem 1rem !important;
}
/* /Components/Trades/PricingDetail.razor.rz.scp.css */
.pricing-rows[b-sbyzjgm4a0] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.pricing-row[b-sbyzjgm4a0] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    padding: 4px 0;
}

.pricing-row-emphasis[b-sbyzjgm4a0] {
    margin-top: 4px;
    padding-top: 10px;
    border-top: 1px solid rgba(var(--cpd-contrast-rgb), 0.08);
}

.pricing-label[b-sbyzjgm4a0] {
    font-size: 11px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--cpd-text-subtle);
}

.pricing-value[b-sbyzjgm4a0] {
    font-family: var(--cpd-font-mono);
    font-size: 1.1rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.val-positive[b-sbyzjgm4a0] { color: var(--token-rate); }
.val-negative[b-sbyzjgm4a0] { color: var(--token-position); }

.pricing-ccy-table[b-sbyzjgm4a0] {
    width: 100%;
    border-collapse: collapse;
    font-variant-numeric: tabular-nums;
    margin-top: 20px;
    font-size: 11px;
}

.pricing-ccy-table th[b-sbyzjgm4a0] {
    font-size: 9px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: rgba(var(--cpd-contrast-rgb), calc(0.35 * var(--cpd-text-alpha-scale)));
    padding: 5px 8px;
    border-bottom: 1px solid rgba(var(--cpd-contrast-rgb), 0.08);
    text-align: right;
}

.pricing-ccy-table th:first-child[b-sbyzjgm4a0] { text-align: left; }

.pricing-ccy-table td[b-sbyzjgm4a0] {
    padding: 4px 8px;
    color: rgba(var(--cpd-contrast-rgb), calc(0.65 * var(--cpd-text-alpha-scale)));
    border-bottom: 1px solid rgba(var(--cpd-contrast-rgb), 0.03);
    font-family: var(--cpd-font-mono);
    text-align: right;
}

.pricing-ccy-table td.ccy-cell[b-sbyzjgm4a0] {
    text-align: left;
    color: rgba(var(--cpd-contrast-rgb), calc(0.45 * var(--cpd-text-alpha-scale)));
}

.pricing-ccy-table td.date-cell[b-sbyzjgm4a0] { white-space: nowrap; }
/* /Components/Trades/SensitivityTile.razor.rz.scp.css */
/* Card / header / chevron styling now lives in SummaryTile; this file styles only the
   Sensitivities tile body. Mirrors XvaTile.razor.css's stat-grid so sibling summary
   tiles share the same visual language (scoped CSS can't be shared across components). */

.val-positive[b-7evcjp4pbd] { color: var(--token-rate); }
.val-negative[b-7evcjp4pbd] { color: var(--token-position); }

.sensitivity-stat-grid[b-7evcjp4pbd] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    /* 10px by design, NOT var(--cpd-tile-gap) - see XvaTile.razor.css's stat grid. */
    gap: 10px;
}

/* Mirrors XvaTile's: one column once the containing .summary-tile is under ~240px wide. */
/* A figure that owns a whole row of the two-column grid (the adjusted price, the no-bucket note).
   A class rather than an inline style so the one-column rule below can take the span back:
   an inline `grid-column: span 2` would win the cascade and force an implicit second column. */
.sensitivity-stat-wide[b-7evcjp4pbd] { grid-column: span 2; }

@container (max-width: 239.98px) {
    .sensitivity-stat-grid[b-7evcjp4pbd] { grid-template-columns: 1fr; }
    .sensitivity-stat-wide[b-7evcjp4pbd] { grid-column: auto; }
}

.sensitivity-stat[b-7evcjp4pbd] {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.sensitivity-stat-label[b-7evcjp4pbd] {
    font-size: 9px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: rgba(var(--cpd-contrast-rgb), calc(0.35 * var(--cpd-text-alpha-scale)));
}

.sensitivity-stat-value[b-7evcjp4pbd] {
    font-family: var(--cpd-font-mono);
    font-size: 15px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.sensitivity-missing-msg[b-7evcjp4pbd] {
    font-size: 12px;
    color: var(--cpd-text-subtle);
}
/* /Components/Trades/XvaSimSettingsDialog.razor.rz.scp.css */
/* "Simulation settings" — design handoff §5. The dialog shell and fields are MudBlazor; only the
   disclosed accrual-rule panel (a plain JsonComponent, not Mud) still needs its own styling. */

.sim-rule-panel[b-tqfij6yk8f] {
    /* Indented past the checkbox so the rule reads as that row's detail. */
    margin-left: 25px;
    padding: 12px;
    background: var(--cpd-surface-inset);
    border: 1px solid var(--cpd-border);
    border-radius: var(--cpd-radius-sm);
}

/* StoppingRuleCaption is injected as raw HTML via @((MarkupString)...), so it never gets this
   file's scope attribute — ::deep drops the scoping restriction to reach it anyway. */
[b-tqfij6yk8f] .sim-caption-value {
    font-family: var(--cpd-font-mono);
    font-weight: 600;
    color: var(--cpd-gold);
}
