@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;
}

.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/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-body[b-bijiyomxgj] {
    display: grid;
    grid-template-columns: 300px 1fr;
    gap: 1.25rem;
}

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

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

.capture-section-label[b-bijiyomxgj] {
    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;
}

.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-field-caption[b-bijiyomxgj] {
    font-size: 0.62rem;
    color: var(--cpd-text-subtle);
    line-height: 1.45;
}

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

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

.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;
}

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

.capture-hint-chip[b-bijiyomxgj] {
    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;
}

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

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

table.capture-grid th[b-bijiyomxgj] {
    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.capture-grid td[b-bijiyomxgj] {
    padding: 4px 12px;
    border-bottom: 1px solid rgba(var(--cpd-contrast-rgb), 0.05);
}

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

table.capture-grid tr.capture-grid-split-row td[b-bijiyomxgj] {
    color: var(--cpd-gold);
}

.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/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/Analytics/Recon.razor.rz.scp.css */
.recon-card[b-1c2nyoxpjp] {
    animation: fadeUp-b-1c2nyoxpjp 0.3s cubic-bezier(0.16, 1, 0.3, 1) both 0.04s;
}

@keyframes fadeUp-b-1c2nyoxpjp {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: translateY(0); }
}

.recon-topbar[b-1c2nyoxpjp] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
    gap: 12px;
    flex-wrap: wrap;
}

.recon-title-group[b-1c2nyoxpjp] {
    display: flex;
    align-items: center;
    gap: 14px;
    min-height: 32px;
    flex-wrap: wrap;
}

.recon-title-block[b-1c2nyoxpjp] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.recon-page-title[b-1c2nyoxpjp] {
    font-size: 20px;
    font-weight: 700;
    color: var(--cpd-contrast);
    letter-spacing: -0.03em;
}

/* Matches the secondary-coloured subtitle every Page-DU analytics lens gets for free from
   PageRenderer's Typo.body2/Color.Secondary title row — this file already uses the same
   rgba(255, 255, 255, *) scale for muted text elsewhere (.recon-date-label, .recon-empty-hint), so
   this follows that established convention rather than introducing a new token. */
.recon-page-subtitle[b-1c2nyoxpjp] {
    font-size: 13px;
    color: rgba(var(--cpd-contrast-rgb), calc(0.55 * var(--cpd-text-alpha-scale)));
}

.recon-status-chip[b-1c2nyoxpjp] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    background: rgba(var(--cpd-gold-rgb, 246, 212, 107), 0.06);
    border: 1px solid rgba(var(--cpd-gold-rgb, 246, 212, 107), 0.25);
    border-radius: 6px;
    font-family: var(--cpd-font-mono);
    font-size: 12px;
    color: var(--cpd-contrast);
}

.recon-status-chip i[b-1c2nyoxpjp] {
    color: var(--cpd-gold);
    font-size: 13px;
}

.recon-status-count[b-1c2nyoxpjp] {
    color: rgba(var(--cpd-contrast-rgb), calc(0.5 * var(--cpd-text-alpha-scale)));
}

.recon-scope-clear[b-1c2nyoxpjp] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: none;
    color: inherit;
    opacity: 0.6;
    cursor: pointer;
    padding: 0;
    margin-left: 2px;
    font-size: 11px;
}

.recon-scope-clear:hover[b-1c2nyoxpjp] {
    opacity: 1;
    color: var(--cpd-gold);
}

.recon-meta-group[b-1c2nyoxpjp] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.recon-date-label[b-1c2nyoxpjp] {
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: rgba(var(--cpd-contrast-rgb), calc(0.45 * var(--cpd-text-alpha-scale)));
    margin: 0;
}

.recon-tolerance-group[b-1c2nyoxpjp] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 0 6px 0 0;
    border-right: 1px solid rgba(var(--cpd-contrast-rgb), 0.08);
    margin-right: 2px;
}

.recon-tolerance-value[b-1c2nyoxpjp] {
    background: rgba(var(--cpd-contrast-rgb), 0.04);
    border: 1px solid rgba(var(--cpd-contrast-rgb), 0.12);
    color: var(--cpd-contrast);
    border-radius: 6px;
    padding: 6px 8px;
    font-family: var(--cpd-font-mono);
    font-size: 13px;
    width: 90px;
}

.recon-tolerance-mode[b-1c2nyoxpjp] {
    background: rgba(var(--cpd-contrast-rgb), 0.04);
    border: 1px solid rgba(var(--cpd-contrast-rgb), 0.12);
    color: var(--cpd-contrast);
    border-radius: 6px;
    padding: 6px 8px;
    font-family: var(--cpd-font-mono);
    font-size: 13px;
}

.recon-tolerance-value:focus[b-1c2nyoxpjp],
.recon-tolerance-mode:focus[b-1c2nyoxpjp] {
    outline: none;
    border-color: var(--cpd-gold);
    box-shadow: 0 0 0 2px rgba(var(--cpd-gold-rgb, 246, 212, 107), 0.15);
}

.recon-date-select[b-1c2nyoxpjp] {
    background: rgba(var(--cpd-contrast-rgb), 0.04);
    border: 1px solid rgba(var(--cpd-contrast-rgb), 0.12);
    color: var(--cpd-contrast);
    border-radius: 6px;
    padding: 6px 10px;
    font-family: var(--cpd-font-mono);
    font-size: 13px;
    min-width: 160px;
}

.recon-date-select:focus[b-1c2nyoxpjp] {
    outline: none;
    border-color: var(--cpd-gold);
    box-shadow: 0 0 0 2px rgba(var(--cpd-gold-rgb, 246, 212, 107), 0.15);
}

.recon-table-card[b-1c2nyoxpjp] {
    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);
    box-shadow: var(--cpd-shadow-card);
    padding: 0.5rem 0;
    overflow-x: auto;
}

.recon-table[b-1c2nyoxpjp] {
    width: 100%;
    border-collapse: collapse;
    font-variant-numeric: tabular-nums;
}

.recon-table thead th[b-1c2nyoxpjp] {
    background: rgba(var(--cpd-gold-rgb, 246, 212, 107), 0.05);
    color: var(--cpd-gold);
    font-weight: 600;
    text-transform: uppercase;
    font-size: 0.78rem;
    letter-spacing: 0.5px;
    border-bottom: 2px solid var(--cpd-gold-border);
    padding: 0;
    white-space: nowrap;
    text-align: left;
}

.recon-table thead th:first-child[b-1c2nyoxpjp] { padding-left: 0.4rem; }
.recon-table thead th:last-child[b-1c2nyoxpjp]  { padding-right: 0.4rem; }

.recon-sort-btn[b-1c2nyoxpjp] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    width: 100%;
    padding: 0.7rem 0.85rem;
    background: transparent;
    border: none;
    color: inherit;
    font: inherit;
    text-transform: inherit;
    letter-spacing: inherit;
    cursor: pointer;
    text-align: left;
}

.recon-sort-btn.num[b-1c2nyoxpjp] {
    justify-content: flex-end;
    text-align: right;
}

/* ::deep is required here. The sort icon is rendered from Recon.razor.cs rather than
   from this component's .razor markup, so it never receives the scope attribute that
   scoped CSS rewrites these selectors to expect — without ::deep these three rules
   match nothing, which is why the sort indicators were previously unstyled.
   Sizing is width/height rather than font-size because the icon is now inline SVG. */
.recon-sort-btn:hover[b-1c2nyoxpjp]  .recon-sort-icon {
    color: var(--cpd-gold);
    opacity: 1;
}

.recon-sort-btn[b-1c2nyoxpjp]  .recon-sort-icon {
    width: 14px;
    height: 14px;
    color: var(--cpd-gold);
    opacity: 0.85;
}

.recon-sort-btn[b-1c2nyoxpjp]  .recon-sort-icon.recon-sort-idle {
    opacity: 0.25;
}

.recon-table tbody td[b-1c2nyoxpjp] {
    color: var(--cpd-text);
    background: transparent;
    border-bottom: 1px solid var(--cpd-border-subtle);
    padding: 0.55rem 0.85rem;
    font-family: var(--cpd-font-mono);
    font-size: 13px;
}

.recon-table tbody tr:hover td[b-1c2nyoxpjp] {
    background: var(--cpd-gold-faint);
}

.recon-table tbody td:first-child[b-1c2nyoxpjp],
.recon-table thead th:first-child[b-1c2nyoxpjp] { padding-left: 1.25rem; }

.recon-table tbody td:last-child[b-1c2nyoxpjp],
.recon-table thead th:last-child[b-1c2nyoxpjp]  { padding-right: 1.25rem; }

.recon-table .col-text[b-1c2nyoxpjp]  { width: 1%; white-space: nowrap; }
.recon-table .col-date[b-1c2nyoxpjp]  { width: 1%; white-space: nowrap; }
.recon-table .col-ccy[b-1c2nyoxpjp]   { width: 1%; white-space: nowrap; }
.recon-table .col-action[b-1c2nyoxpjp]{ width: 1%; white-space: nowrap; text-align: right; }
.recon-table .num[b-1c2nyoxpjp]       { text-align: right; white-space: nowrap; }

.recon-ccy-cell[b-1c2nyoxpjp] {
    font-family: var(--cpd-font-mono);
    font-size: 12px;
    letter-spacing: 0.05em;
    color: rgba(var(--cpd-contrast-rgb), calc(0.7 * var(--cpd-text-alpha-scale)));
}

.recon-ccy-cell.ccy-multi[b-1c2nyoxpjp] {
    color: var(--cpd-gold);
    cursor: help;
    border-bottom: 1px dotted rgba(var(--cpd-gold-rgb, 246, 212, 107), 0.4);
}

.recon-chevron-btn[b-1c2nyoxpjp] {
    background: transparent;
    border: 1px solid rgba(var(--cpd-contrast-rgb), 0.10);
    color: rgba(var(--cpd-contrast-rgb), calc(0.5 * var(--cpd-text-alpha-scale)));
    width: 28px;
    height: 28px;
    border-radius: 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background .15s, color .15s, border-color .15s;
}

.recon-chevron-btn:hover[b-1c2nyoxpjp] {
    background: rgba(var(--cpd-gold-rgb, 246, 212, 107), 0.10);
    border-color: rgba(var(--cpd-gold-rgb, 246, 212, 107), 0.5);
    color: var(--cpd-gold);
}

.recon-table tfoot tr.recon-total-foot td[b-1c2nyoxpjp] {
    border-top: 2px solid var(--cpd-gold-border);
    background: rgba(var(--cpd-gold-rgb, 246, 212, 107), 0.05);
    color: var(--cpd-contrast);
    font-family: var(--cpd-font-mono);
    font-size: 14px;
    font-weight: 600;
    padding: 0.85rem 0.85rem;
}

.recon-table tfoot tr.recon-total-foot + tr.recon-total-foot td[b-1c2nyoxpjp] {
    border-top: 1px solid var(--cpd-gold-border);
}

.recon-table tfoot td.recon-total-label[b-1c2nyoxpjp] {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--cpd-gold);
}

.recon-empty-row td[b-1c2nyoxpjp] {
    padding: 0 !important;
}

.recon-empty-state[b-1c2nyoxpjp] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 3rem 1rem;
    text-align: center;
}

.recon-empty-icon[b-1c2nyoxpjp] {
    font-size: 32px;
    color: rgba(var(--cpd-gold-rgb, 246, 212, 107), 0.35);
}

.recon-empty-title[b-1c2nyoxpjp] {
    font-size: 15px;
    font-weight: 600;
    color: var(--cpd-contrast);
}

.recon-empty-hint[b-1c2nyoxpjp] {
    font-size: 13px;
    color: rgba(var(--cpd-contrast-rgb), calc(0.45 * var(--cpd-text-alpha-scale)));
    max-width: 480px;
}

.recon-error[b-1c2nyoxpjp] {
    margin-bottom: 14px;
    padding: 10px 14px;
    background: var(--token-position-bg);
    border: 1px solid var(--token-position-border);
    border-radius: 8px;
    color: var(--token-position);
    font-size: 13px;
}

.recon-error-cell[b-1c2nyoxpjp] {
    font-family: var(--cpd-font-sans);
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--token-position);
    padding: 2px 8px;
    background: var(--token-position-bg);
    border-radius: 10px;
    border: 1px solid var(--token-position-border);
    cursor: help;
}

.recon-total-note[b-1c2nyoxpjp] {
    margin-top: 10px;
    padding: 8px 14px;
    font-size: 12px;
    color: rgba(var(--cpd-contrast-rgb), calc(0.55 * var(--cpd-text-alpha-scale)));
    border-left: 2px solid rgba(var(--cpd-gold-rgb, 246, 212, 107), 0.3);
    background: rgba(var(--cpd-contrast-rgb), 0.02);
    border-radius: 4px;
}

.recon-total-note strong[b-1c2nyoxpjp] {
    color: var(--cpd-contrast);
    font-weight: 600;
}

.val-zero[b-1c2nyoxpjp]          { color: rgba(var(--cpd-contrast-rgb), calc(0.45 * var(--cpd-text-alpha-scale))); }
.val-within-tolerance[b-1c2nyoxpjp] { color: rgba(var(--cpd-contrast-rgb), calc(0.55 * var(--cpd-text-alpha-scale))); }
.val-breach[b-1c2nyoxpjp]        { color: var(--token-position); font-weight: 600; }
.val-neutral[b-1c2nyoxpjp]       { color: rgba(var(--cpd-contrast-rgb), calc(0.45 * var(--cpd-text-alpha-scale))); }
/* /Components/Pages/Analytics/ReconTrade.razor.rz.scp.css */
.recon-card[b-0v1qksw7cd] {
    animation: fadeUp-b-0v1qksw7cd 0.3s cubic-bezier(0.16, 1, 0.3, 1) both 0.04s;
}

@keyframes fadeUp-b-0v1qksw7cd {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: translateY(0); }
}

.recon-topbar[b-0v1qksw7cd] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
    gap: 12px;
    flex-wrap: wrap;
}

.recon-title-group[b-0v1qksw7cd] {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 32px;
}

.recon-page-title[b-0v1qksw7cd] {
    font-size: 20px;
    font-weight: 700;
    color: var(--cpd-contrast);
    letter-spacing: -0.03em;
}

.recon-back-link[b-0v1qksw7cd] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 6px;
    background: rgba(var(--cpd-contrast-rgb), 0.04);
    border: 1px solid rgba(var(--cpd-contrast-rgb), 0.10);
    color: rgba(var(--cpd-contrast-rgb), calc(0.55 * var(--cpd-text-alpha-scale)));
    font-size: 14px;
    text-decoration: none;
    transition: background .15s, color .15s, border-color .15s;
}

.recon-back-link:hover[b-0v1qksw7cd] {
    background: var(--cpd-gold-ring);
    border-color: rgba(var(--cpd-gold-rgb), 0.5);
    color: var(--cpd-gold);
}

.recon-meta-group[b-0v1qksw7cd] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.recon-chip[b-0v1qksw7cd] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px;
    background: rgba(var(--cpd-contrast-rgb), 0.03);
    border: 1px solid rgba(var(--cpd-contrast-rgb), 0.10);
    border-radius: 8px;
}

.recon-chip-label[b-0v1qksw7cd] {
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--cpd-text-subtle);
}

.recon-chip-value[b-0v1qksw7cd] {
    font-family: var(--cpd-font-mono);
    font-size: 13px;
    font-weight: 500;
    color: var(--cpd-contrast);
}

.recon-date-input[b-0v1qksw7cd] {
    background: transparent;
    border: none;
    color: var(--cpd-contrast);
    padding: 0;
    font-family: var(--cpd-font-mono);
    font-size: 13px;
}

.recon-date-input:focus[b-0v1qksw7cd] {
    outline: none;
}

.recon-detail-card[b-0v1qksw7cd] {
    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) 1.25rem;
    box-shadow: var(--cpd-shadow-card);
    overflow-x: auto;
}

.recon-table[b-0v1qksw7cd] {
    width: 100%;
    border-collapse: collapse;
    font-variant-numeric: tabular-nums;
}

.recon-table thead th[b-0v1qksw7cd] {
    background: rgba(var(--cpd-gold-rgb), 0.05);
    color: var(--cpd-gold);
    font-weight: 600;
    text-transform: uppercase;
    font-size: 0.85rem;
    letter-spacing: 0.5px;
    border-bottom: 2px solid var(--cpd-gold-border);
    padding: 0.85rem var(--cpd-space-lg);
    text-align: left;
}

.recon-table th.num[b-0v1qksw7cd],
.recon-table td.num[b-0v1qksw7cd] {
    text-align: right;
    white-space: nowrap;
}

.recon-table tbody td[b-0v1qksw7cd] {
    padding: 0.7rem 1rem;
    color: var(--cpd-contrast);
    border-bottom: 1px solid rgba(var(--cpd-contrast-rgb), 0.05);
    font-family: var(--cpd-font-mono);
    font-size: 13px;
}

.recon-table tbody tr:hover td[b-0v1qksw7cd] {
    background: var(--cpd-gold-faint);
}

.recon-table .col-date[b-0v1qksw7cd] { white-space: nowrap; width: 1%; }
.recon-table .col-match[b-0v1qksw7cd] { white-space: nowrap; width: 1%; }
.recon-table .col-ccy[b-0v1qksw7cd] { white-space: nowrap; width: 1%; color: rgba(var(--cpd-contrast-rgb), calc(0.6 * var(--cpd-text-alpha-scale))); letter-spacing: 0.05em; }

.recon-empty[b-0v1qksw7cd] {
    text-align: center;
    padding: 2.5rem 1rem;
    color: rgba(var(--cpd-contrast-rgb), calc(0.35 * var(--cpd-text-alpha-scale)));
    font-style: italic;
    font-family: inherit;
}

.recon-total-foot td[b-0v1qksw7cd] {
    padding: 0.85rem var(--cpd-space-lg);
    border-top: 2px solid var(--cpd-gold-border);
    background: var(--cpd-gold-faint);
    color: var(--cpd-text);
    font-family: var(--cpd-font-mono);
    font-size: 14px;
    font-weight: 600;
}

.recon-total-foot td.num[b-0v1qksw7cd] {
    text-align: right;
}

.recon-total-foot-diff[b-0v1qksw7cd] {
    margin-right: 12px;
}

.recon-total-foot-label[b-0v1qksw7cd] {
    font-family: var(--cpd-font-sans);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--cpd-gold);
}

.val-positive[b-0v1qksw7cd] { color: var(--token-rate); }
.val-negative[b-0v1qksw7cd] { color: var(--token-position); }
.val-neutral[b-0v1qksw7cd]  { color: rgba(var(--cpd-contrast-rgb), calc(0.45 * var(--cpd-text-alpha-scale))); }
.val-zero[b-0v1qksw7cd]          { color: rgba(var(--cpd-contrast-rgb), calc(0.45 * var(--cpd-text-alpha-scale))); }
.val-within-tolerance[b-0v1qksw7cd] { color: rgba(var(--cpd-contrast-rgb), calc(0.55 * var(--cpd-text-alpha-scale))); }
.val-breach[b-0v1qksw7cd]        { color: var(--token-position); font-weight: 600; }

.recon-view-trade-link[b-0v1qksw7cd] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    background: rgba(var(--cpd-gold-rgb, 246, 212, 107), 0.06);
    border: 1px solid rgba(var(--cpd-gold-rgb, 246, 212, 107), 0.25);
    border-radius: 6px;
    color: var(--cpd-contrast);
    font-size: 12px;
    text-decoration: none;
    transition: background .15s, border-color .15s, color .15s;
}

.recon-view-trade-link:hover[b-0v1qksw7cd] {
    background: rgba(var(--cpd-gold-rgb, 246, 212, 107), 0.12);
    border-color: var(--cpd-gold);
    color: var(--cpd-gold);
}

.recon-view-trade-link i[b-0v1qksw7cd] {
    font-size: 12px;
    color: var(--cpd-gold);
}

.recon-tolerance-group[b-0v1qksw7cd] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    background: rgba(var(--cpd-contrast-rgb), 0.03);
    border: 1px solid rgba(var(--cpd-contrast-rgb), 0.10);
    border-radius: 8px;
}

.recon-tolerance-value[b-0v1qksw7cd] {
    background: rgba(var(--cpd-contrast-rgb), 0.04);
    border: 1px solid rgba(var(--cpd-contrast-rgb), 0.12);
    color: var(--cpd-contrast);
    border-radius: 6px;
    padding: 4px 8px;
    font-family: var(--cpd-font-mono);
    font-size: 13px;
    width: 80px;
}

.recon-tolerance-mode[b-0v1qksw7cd] {
    background: rgba(var(--cpd-contrast-rgb), 0.04);
    border: 1px solid rgba(var(--cpd-contrast-rgb), 0.12);
    color: var(--cpd-contrast);
    border-radius: 6px;
    padding: 4px 8px;
    font-family: var(--cpd-font-mono);
    font-size: 13px;
}

.recon-tolerance-value:focus[b-0v1qksw7cd],
.recon-tolerance-mode:focus[b-0v1qksw7cd] {
    outline: none;
    border-color: var(--cpd-gold);
    box-shadow: 0 0 0 2px rgba(var(--cpd-gold-rgb, 246, 212, 107), 0.15);
}

.recon-fuzzy-banner[b-0v1qksw7cd] {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-bottom: 14px;
    padding: 10px 14px;
    background: rgba(var(--cpd-gold-rgb, 246, 212, 107), 0.06);
    border: 1px solid rgba(var(--cpd-gold-rgb, 246, 212, 107), 0.3);
    border-radius: 8px;
    color: var(--cpd-contrast);
    font-size: 13px;
}

.recon-fuzzy-banner i[b-0v1qksw7cd] {
    color: var(--cpd-gold);
    font-size: 14px;
}

.recon-fuzzy-banner strong[b-0v1qksw7cd] {
    color: var(--cpd-gold);
}

.recon-fuzzy-banner-hint[b-0v1qksw7cd] {
    color: rgba(var(--cpd-contrast-rgb), calc(0.55 * var(--cpd-text-alpha-scale)));
}

.recon-date-stack[b-0v1qksw7cd] {
    display: inline-flex;
    flex-direction: column;
    line-height: 1.25;
}

.recon-date-stack .recon-date-stored[b-0v1qksw7cd] {
    font-size: 12px;
    color: rgba(var(--cpd-contrast-rgb), calc(0.55 * var(--cpd-text-alpha-scale)));
}

.recon-date-stack .recon-date-live[b-0v1qksw7cd] {
    font-size: 13px;
    color: var(--cpd-contrast);
}

.match-exact[b-0v1qksw7cd],
.match-fuzzy[b-0v1qksw7cd],
.match-stored[b-0v1qksw7cd],
.match-live[b-0v1qksw7cd] {
    display: inline-block;
    font-family: var(--cpd-font-sans);
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 2px 8px;
    border-radius: 10px;
    border: 1px solid transparent;
}

.match-exact[b-0v1qksw7cd]   { color: var(--token-rate);     background: var(--token-rate-bg);     border-color: var(--token-rate-border); }
.match-fuzzy[b-0v1qksw7cd]   { color: var(--cpd-gold);       background: var(--cpd-gold-soft); border-color: var(--cpd-gold-border); }
.match-stored[b-0v1qksw7cd]  { color: rgba(var(--cpd-contrast-rgb), calc(.55 * var(--cpd-text-alpha-scale))); background: rgba(var(--cpd-contrast-rgb),.04);    border-color: rgba(var(--cpd-contrast-rgb),.10); }
.match-live[b-0v1qksw7cd]    { color: var(--token-position); background: var(--token-position-bg); border-color: var(--token-position-border); }

.recon-error[b-0v1qksw7cd] {
    margin-bottom: 14px;
    padding: 10px 14px;
    background: var(--token-position-bg);
    border: 1px solid var(--token-position-border);
    border-radius: 8px;
    color: var(--token-position);
    font-size: 13px;
}

.recon-warn[b-0v1qksw7cd] {
    margin-bottom: 14px;
    padding: 10px 14px;
    background: var(--cpd-gold-soft);
    border: 1px solid var(--cpd-gold-border);
    border-radius: var(--cpd-radius-lg);
    color: var(--cpd-text);
    font-size: 13px;
}

.recon-warn strong[b-0v1qksw7cd] { color: var(--cpd-gold); }
.recon-warn-detail[b-0v1qksw7cd] { color: rgba(var(--cpd-contrast-rgb), calc(0.55 * var(--cpd-text-alpha-scale))); }
/* /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/InstrumentQuoteChart.razor.rz.scp.css */
.quote-chart[b-jbqd1bd4iu] {
    min-height: 18rem;
    border: 1px solid var(--cpd-gold-strong);
    border-radius: var(--cpd-radius-xl);
    background: linear-gradient(135deg, rgba(var(--cpd-dark-rgb), 0.92), rgba(var(--cpd-panel-sheen-rgb), 0.92));
    padding: var(--cpd-space-md);
}

.quote-chart svg[b-jbqd1bd4iu] {
    display: block;
    width: 100%;
    height: auto;
}

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

.quote-line[b-jbqd1bd4iu] {
    fill: none;
    stroke: var(--cpd-gold);
    stroke-width: 2.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.quote-point[b-jbqd1bd4iu] {
    fill: var(--cpd-dark);
    stroke: var(--cpd-gold);
    stroke-width: 2;
}

.axis-label[b-jbqd1bd4iu] {
    fill: var(--cpd-accent);
    font-size: 0.75rem;
}

.chart-empty[b-jbqd1bd4iu] {
    min-height: 15rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    color: var(--cpd-accent);
}

.chart-empty i[b-jbqd1bd4iu] {
    color: var(--cpd-gold);
}
/* /Components/Pages/Market/InstrumentSwitchOptions.razor.rz.scp.css */
.instrument-switch-options[b-3zbw9gqc2v] {
    display: flex;
    flex-direction: column;
    gap: var(--cpd-space-md);
    margin-bottom: var(--cpd-space-xl);
}

.instrument-switch-card[b-3zbw9gqc2v] {
    background: linear-gradient(135deg, rgba(var(--cpd-dark-rgb), 0.94), rgba(var(--cpd-panel-sheen-rgb), 0.94));
    border: 1px solid var(--cpd-gold-border);
    border-radius: var(--cpd-radius-lg);
    padding: var(--cpd-space-md);
}

.switch-label[b-3zbw9gqc2v] {
    display: block;
    color: var(--cpd-accent);
    font-size: 0.76rem;
    font-weight: 600;
    margin-bottom: var(--cpd-space-xs);
    text-transform: uppercase;
}

.hero-select[b-3zbw9gqc2v] {
    display: grid;
    grid-template-columns: minmax(12rem, 1fr) minmax(16rem, 24rem);
    gap: var(--cpd-space-md);
    align-items: center;
    border-left: 4px solid var(--cpd-gold);
}

.switch-copy[b-3zbw9gqc2v] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.switch-copy strong[b-3zbw9gqc2v] {
    color: var(--cpd-contrast);
    font-size: 1.15rem;
}

.switch-copy span:last-child[b-3zbw9gqc2v] {
    color: var(--cpd-gold);
    font-size: 0.85rem;
}

.instrument-select[b-3zbw9gqc2v] {
    width: 100%;
    min-height: 2.6rem;
    border: 1px solid var(--cpd-gold-border);
    border-radius: var(--cpd-radius-md);
    background: rgba(var(--cpd-dark-rgb), 0.88);
    color: var(--cpd-contrast);
    padding: 0.45rem 0.65rem;
}

.instrument-select-hero[b-3zbw9gqc2v] {
    border-color: var(--cpd-gold);
    box-shadow: 0 0 0 3px var(--cpd-gold-ring);
}

.instrument-select:focus-visible[b-3zbw9gqc2v] {
    outline: 2px solid var(--cpd-gold);
    outline-offset: 2px;
}

@media (max-width: 767.98px) {
    .hero-select[b-3zbw9gqc2v] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/Market/InstrumentView.razor.rz.scp.css */
.history-table[b-px2e1n7tcd] {
    width: auto;
}

.history-table-container[b-px2e1n7tcd] {
    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-px2e1n7tcd]  .pagination {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    margin-top: 1rem;
    padding: 0.5rem 0;
}

.history-table-container[b-px2e1n7tcd]  .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;
}

.history-table-container[b-px2e1n7tcd]  .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-px2e1n7tcd]  .page-item.active .page-link {
    background: var(--cpd-gold) !important;
    border-color: var(--cpd-gold) !important;
    color: var(--cpd-dark) !important;
}

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

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

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

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

.history-table-container[b-px2e1n7tcd]  table {
    width: 100% !important;
    min-width: 72rem !important;
}

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

.history-table-container[b-px2e1n7tcd]  .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-px2e1n7tcd]  .bb-grid-filter.btn-light:hover,
.history-table-container[b-px2e1n7tcd]  .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-px2e1n7tcd]  .bb-grid-filter.btn-light::after {
    margin-left: 0.25rem !important;
}

.history-table-container[b-px2e1n7tcd]  .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-px2e1n7tcd]  .dropdown-item {
    color: var(--cpd-text) !important;
}

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

.quote-value[b-px2e1n7tcd] {
    display: block;
    white-space: nowrap;
}

.quote-kind[b-px2e1n7tcd] {
    display: inline-block;
    margin-top: 0.2rem;
    padding: 0.15rem 0.4rem;
    border: 1px solid var(--cpd-gold-border);
    border-radius: var(--cpd-radius-sm);
    color: var(--cpd-gold);
    font-size: 0.72rem;
}

.instrument-detail[b-px2e1n7tcd] {
    padding: var(--cpd-space-lg);
}

.detail-header[b-px2e1n7tcd] {
    display: flex;
    justify-content: space-between;
    gap: var(--cpd-space-md);
    align-items: flex-start;
    margin-bottom: var(--cpd-space-md);
}

.detail-title[b-px2e1n7tcd] {
    color: var(--cpd-contrast);
    font-weight: 600;
}

.detail-subtitle[b-px2e1n7tcd] {
    color: var(--cpd-accent);
    font-size: 0.85rem;
}

.detail-pill[b-px2e1n7tcd] {
    color: var(--cpd-gold);
    border: 1px solid var(--cpd-gold-border);
    background: var(--cpd-gold-faint);
    border-radius: var(--cpd-radius-sm);
    padding: 0.25rem 0.5rem;
    font-size: 0.8rem;
}

.quote-instances[b-px2e1n7tcd] {
    margin-top: var(--cpd-space-md);
}

.quote-instances[b-px2e1n7tcd]  table {
    min-width: 24rem !important;
}

.quote-instances[b-px2e1n7tcd]  .instance-table {
    width: 100%;
}

.quote-instances[b-px2e1n7tcd]  td,
.quote-instances[b-px2e1n7tcd]  th {
    padding: 0.6rem 0.8rem !important;
}

.quote-instances[b-px2e1n7tcd]  tbody td {
    vertical-align: middle !important;
}
/* /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)));
}

.trade-form-card[b-qkiqfh3wuv] {
    background: rgba(var(--cpd-contrast-rgb), 0.025);
    border: 1px solid rgba(var(--cpd-contrast-rgb), 0.06);
    border-radius: 10px;
    overflow: hidden;
    margin-top: 6px;
    padding: 6px 0;
    min-width: 0;
}

.trade-form-card[b-qkiqfh3wuv]  .json-token {
    min-width: 0;
}

.trade-form-card[b-qkiqfh3wuv]  .json-component-row {
    min-width: 0;
}

.trade-form-card[b-qkiqfh3wuv]  > .json-component-row > .json-token,
.trade-form-card[b-qkiqfh3wuv]  .json-component-row > .json-token.mode-full,
.trade-form-card[b-qkiqfh3wuv]  .json-component-row > .json-token.mode-detailed,
.trade-form-card[b-qkiqfh3wuv]  .json-component-row > .json-token.mode-compact {
    background: transparent;
    border: none;
    box-shadow: none;
    padding: 4px 12px;
    border-radius: 0;
}

.trade-form-card[b-qkiqfh3wuv]  .json-component-row > .json-token.mode-full:hover,
.trade-form-card[b-qkiqfh3wuv]  .json-component-row > .json-token.mode-detailed:hover,
.trade-form-card[b-qkiqfh3wuv]  .json-component-row > .json-token.mode-compact:hover {
    border: none;
    box-shadow: none;
}

.trade-form-card[b-qkiqfh3wuv]  .json-component-row > .json-token > .token-label-row {
    border-bottom: 1px solid rgba(var(--cpd-contrast-rgb), 0.06);
    padding: 8px 8px 6px;
    margin: 0 -4px 6px;
}

.trade-form-card[b-qkiqfh3wuv]  .json-component-row > .json-token > .token-label-row > .token-label {
    font-family: var(--cpd-font-mono);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: rgba(var(--cpd-contrast-rgb), calc(0.45 * var(--cpd-text-alpha-scale)));
    opacity: 1;
}

.trade-form-card[b-qkiqfh3wuv]  .json-token .form-input,
.trade-form-card[b-qkiqfh3wuv]  .json-token .detail-spin,
.trade-form-card[b-qkiqfh3wuv]  .json-token .detail-select,
.trade-form-card[b-qkiqfh3wuv]  .json-token select {
    font-family: var(--cpd-font-mono);
    font-size: 16px;
    color-scheme: var(--cpd-color-scheme);
}

.trade-form-card[b-qkiqfh3wuv]  .json-token .token-label-row .token-repr-summary {
    display: none;
}

.trade-form-card[b-qkiqfh3wuv]  .json-token.mode-detailed .json-token.mode-compact > .token-label-row > .token-label {
    font-size: 12px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    opacity: 0.75;
}

.trade-form-card[b-qkiqfh3wuv]  .json-token .form-input:focus,
.trade-form-card[b-qkiqfh3wuv]  .json-token .detail-spin:focus,
.trade-form-card[b-qkiqfh3wuv]  .json-token .detail-select:focus,
.trade-form-card[b-qkiqfh3wuv]  .json-token select:focus {
    outline: none;
    border-color: var(--token-color, var(--cpd-gold));
    box-shadow: 0 0 0 2px rgba(246, 212, 107, 0.10);
}

.trade-form-card[b-qkiqfh3wuv]  .json-token.mode-detailed > .child-flow {
    padding: 10px 8px 12px;
    gap: 0.6rem;
    flex-wrap: wrap;
    overflow: visible;
}

.trade-form-card[b-qkiqfh3wuv]  .json-token.mode-detailed > .child-flow > .json-token {
    flex: 0 1 auto;
    min-width: 0;
}

.trade-form-card[b-qkiqfh3wuv]  .json-component-row > .json-token.mode-compact {
    padding: 14px 16px;
}

.trade-form-card[b-qkiqfh3wuv]  .json-component-row > .json-token.mode-compact .repr-overlay-wrapper > .repr-overlay {
    padding: 0.65rem 0.9rem;
    font-size: 16px;
    letter-spacing: 0.01em;
    line-height: 1.4;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 6px;
}


.trade-form-card[b-qkiqfh3wuv]  .json-token.mode-full > .child-flow {
    flex-direction: column;
    gap: 0;
}

.trade-form-card[b-qkiqfh3wuv]  .json-token.mode-full > .child-flow > .json-token {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding: 4px 20px;
    min-height: 52px;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    border-bottom: 1px solid rgba(var(--cpd-contrast-rgb), 0.06);
    border-radius: 0;
    border-left: none;
    border-right: none;
    border-top: none;
    background: transparent;
    position: relative;
    transition: background 0.1s;
}

.trade-form-card[b-qkiqfh3wuv]  .json-token.mode-full > .child-flow > .json-token:last-child {
    border-bottom: none;
}

.trade-form-card[b-qkiqfh3wuv]  .json-token.mode-full > .child-flow > .json-token:focus-within {
    background: rgba(var(--cpd-contrast-rgb), 0.02);
}


.trade-form-card[b-qkiqfh3wuv]  .json-token.mode-full > .child-flow > .json-token::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 20px;
    right: 20px;
    height: 1px;
    background: var(--token-color);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.trade-form-card[b-qkiqfh3wuv]  .json-token.mode-full > .child-flow > .json-token:focus-within::after {
    transform: scaleX(1);
}

.trade-form-card[b-qkiqfh3wuv]  .json-token.mode-full > .child-flow > .json-token:hover {
    box-shadow: none;
}


.trade-form-card[b-qkiqfh3wuv]  .json-token.mode-full > .child-flow > .json-token > .token-label-row {
    border-bottom: none;
    padding-bottom: 0;
    margin-bottom: 0;
}

.trade-form-card[b-qkiqfh3wuv]  .json-token.mode-full > .child-flow > .json-token > .token-label-row > .token-label {
    font-family: var(--cpd-font-mono);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.07em;
    color: var(--token-color, rgba(var(--cpd-contrast-rgb), calc(0.4 * var(--cpd-text-alpha-scale))));
    opacity: 0.7;
    flex-shrink: 0;
    /* A label COLUMN: every child row in a mode-full token uses this one rule, so they stay
       aligned with each other at any width - which is the reason it is a clamp on one shared
       selector rather than a per-row width. The clamp FLOOR is 90px rather than 75: 7vw is
       89.6px on a 1280px panel, and the longest labels here ("Adjustment Rule", "Basis
       Currency") need every pixel of that.

       These labels WRAP rather than truncate, deliberately. An earlier revision clipped them
       with an ellipsis to keep every row one line tall; in the browser that turned "FORWARD
       RATE INDEX" into "FORWARD RA...", which hides which field the row is. A label that
       becomes two short lines is still readable and still says what it names, so the extra row
       height is the cheaper cost. */
    width: clamp(90px, 7vw, 100px);
    transition: opacity 0.15s;
}

.trade-form-card[b-qkiqfh3wuv]  .json-token.mode-full > .child-flow > .json-token:focus-within > .token-label-row > .token-label {
    opacity: 1;
}


.trade-form-card[b-qkiqfh3wuv]  .json-token.mode-full > .child-flow > .json-token .property-detail-row {
    padding-top: 0;
    gap: 6px;
    justify-content: flex-end;
    flex: 1;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
}

.trade-form-card[b-qkiqfh3wuv]  .json-token.mode-full > .child-flow > .json-token .property-detail-row > * {
    max-width: 100%;
    min-width: 0;
}


.trade-form-card[b-qkiqfh3wuv]  .json-token.mode-full > .child-flow > .json-token .form-input,
.trade-form-card[b-qkiqfh3wuv]  .json-token.mode-full > .child-flow > .json-token .detail-spin,
.trade-form-card[b-qkiqfh3wuv]  .json-token.mode-full > .child-flow > .json-token .detail-select {
    background: var(--token-bg, rgba(var(--cpd-contrast-rgb), 0.05));
    border: 1px solid var(--token-border, rgba(var(--cpd-contrast-rgb), 0.12));
    border-radius: 6px;
    font-family: var(--cpd-font-mono);
    font-size: 16px;
    color: var(--cpd-contrast);
    padding: 7px 12px;
    transition: border-color 0.15s, background 0.15s;
}

.trade-form-card[b-qkiqfh3wuv]  .json-token.mode-full > .child-flow > .json-token .form-input:focus,
.trade-form-card[b-qkiqfh3wuv]  .json-token.mode-full > .child-flow > .json-token .detail-spin:focus,
.trade-form-card[b-qkiqfh3wuv]  .json-token.mode-full > .child-flow > .json-token .detail-select:focus {
    border-color: var(--token-color, rgba(var(--cpd-contrast-rgb), 0.22));
    box-shadow: 0 0 0 2px var(--token-bg, rgba(var(--cpd-contrast-rgb), 0.04));
    background: rgba(var(--cpd-contrast-rgb), 0.06);
}


.trade-form-card[b-qkiqfh3wuv]  .json-token.mode-full [data-role="rate"] {
    min-height: 68px;
}

.trade-form-card[b-qkiqfh3wuv]  .json-token.mode-full [data-role="rate"] .detail-spin {
    font-size: 22px;
    font-weight: 300;
    letter-spacing: -0.03em;
    width: clamp(68px, 6.25vw, 90px);
    max-width: 100%;
    text-align: right;
    background: transparent;
    border: none;
    padding: 0;
    color: var(--token-color);
}

.trade-form-card[b-qkiqfh3wuv]  .json-token.mode-full [data-role="rate"] .detail-suffix {
    font-family: var(--cpd-font-mono);
    font-size: 16px;
    font-weight: 300;
    color: var(--token-color);
    opacity: 0.6;
}


.trade-form-card[b-qkiqfh3wuv]  .json-token.mode-full [data-role="notional"] {
    min-height: 76px;
    align-items: flex-start;
    padding-top: 14px;
    padding-bottom: 10px;
}

.trade-form-card[b-qkiqfh3wuv]  .notional-detail {
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
    flex: 1;
    min-width: 0;
}

.trade-form-card[b-qkiqfh3wuv]  .notional-detail > .notional-readout,
.trade-form-card[b-qkiqfh3wuv]  .notional-detail > .notional-edit-input {
    align-self: flex-end;
}

.trade-form-card[b-qkiqfh3wuv]  .notional-slider-wrap {
    width: 85%;
    align-self: flex-end;
}

.trade-form-card[b-qkiqfh3wuv]  .notional-readout {
    font-family: var(--cpd-font-mono);
    font-size: 24px;
    font-weight: 300;
    letter-spacing: -0.03em;
    color: var(--token-color);
    line-height: 1;
    user-select: none;
    cursor: text;
}

.trade-form-card[b-qkiqfh3wuv]  .notional-readout:hover {
    opacity: 0.8;
}

.trade-form-card[b-qkiqfh3wuv]  .notional-edit-input {
    font-family: var(--cpd-font-mono);
    font-size: 22px;
    font-weight: 300;
    letter-spacing: -0.03em;
    color: var(--token-color);
    background: rgba(var(--cpd-contrast-rgb), 0.05);
    border: 1px solid var(--token-border);
    border-radius: 6px;
    padding: 4px 8px;
    width: clamp(135px, 12.5vw, 180px);
    text-align: right;
    outline: none;
}

.trade-form-card[b-qkiqfh3wuv]  .notional-edit-input:focus {
    border-color: var(--token-color);
    box-shadow: 0 0 0 2px var(--token-bg);
}

.trade-form-card[b-qkiqfh3wuv]  .notional-slider-wrap {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.trade-form-card[b-qkiqfh3wuv]  .notional-slider {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    height: 6px;
    background: rgba(var(--cpd-contrast-rgb), 0.10);
    border-radius: 3px;
    outline: none;
    cursor: pointer;
    margin: 0;
}

.trade-form-card[b-qkiqfh3wuv]  .notional-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--token-notional);
    border: 2px solid var(--token-notional);
    box-shadow: 0 0 6px rgba(201, 148, 26, 0.35);
    cursor: grab;
    transition: box-shadow 0.15s, transform 0.1s;
}

.trade-form-card[b-qkiqfh3wuv]  .notional-slider::-webkit-slider-thumb:hover {
    box-shadow: 0 0 12px rgba(201, 148, 26, 0.5);
    transform: scale(1.15);
}

.trade-form-card[b-qkiqfh3wuv]  .notional-slider::-webkit-slider-thumb:active {
    cursor: grabbing;
    transform: scale(1.05);
}

.trade-form-card[b-qkiqfh3wuv]  .notional-slider::-moz-range-thumb {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--token-notional);
    border: 2px solid var(--token-notional);
    box-shadow: 0 0 6px rgba(201, 148, 26, 0.35);
    cursor: grab;
}

.trade-form-card[b-qkiqfh3wuv]  .notional-slider::-moz-range-track {
    height: 6px;
    background: rgba(var(--cpd-contrast-rgb), 0.10);
    border-radius: 3px;
    border: none;
}

.trade-form-card[b-qkiqfh3wuv]  .notional-slider-labels {
    display: flex;
    justify-content: space-between;
    padding: 0 2px;
}

/* Notional slider tick labels (1K … 10B). 0.3 measured 2.7:1 in dark mode —
   a pre-existing shortfall, not something the light-mode work introduced, but
   the same 10px-caption problem and the same one-line fix. 0.35 clears 3:1 in
   dark and, scaled, ~3.6:1 in light. */
.trade-form-card[b-qkiqfh3wuv]  .notional-slider-labels span {
    font-family: var(--cpd-font-mono);
    font-size: 10px;
    color: rgba(var(--cpd-contrast-rgb), calc(0.35 * var(--cpd-text-alpha-scale)));
    user-select: none;
}

.trade-form-card[b-qkiqfh3wuv]  .json-token.mode-full .detail-suffix {
    color: var(--token-color, rgba(var(--cpd-contrast-rgb), calc(0.5 * var(--cpd-text-alpha-scale))));
    opacity: 0.6;
    font-size: 0.8rem;
}


.trade-form-card[b-qkiqfh3wuv]  .json-token.mode-full [data-role="type"] .token-control {
    flex: 1;
    display: flex;
    justify-content: flex-end;
}

.trade-form-card[b-qkiqfh3wuv]  .json-token.mode-full [data-role="type"] .token-control select {
    background: var(--token-bg, rgba(var(--cpd-contrast-rgb), 0.05));
    border: 1px solid var(--token-border, rgba(var(--cpd-contrast-rgb), 0.12));
    border-radius: 6px;
    padding: 7px 24px 7px 12px;
    color: var(--cpd-contrast);
    font-family: var(--cpd-font-mono);
    font-size: 16px;
    -webkit-appearance: none;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M1 1l3 3 3-3' stroke='%236b7487' stroke-width='1.4' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 6px center;
}


.trade-form-card[b-qkiqfh3wuv]  .json-token.mode-full [data-role="position"] .property-detail-row {
    justify-content: flex-end;
}

.trade-form-card[b-qkiqfh3wuv]  .json-token.mode-full [data-role="position"] .detail-select {
    min-width: 0;
    width: auto;
    max-width: 100%;
    padding: 6px 28px 6px 12px;
    border-radius: 6px;
    font-weight: 500;
    font-size: 16px;
}

.trade-form-card[b-qkiqfh3wuv]  select option {
    background-color: var(--cpd-surface-raised);
    color: var(--cpd-text);
}


.trade-form-card[b-qkiqfh3wuv]  .json-token.mode-full [data-role="instrument"] {
    min-height: auto;
    padding-top: 12px;
    padding-bottom: 12px;
}

.trade-form-card[b-qkiqfh3wuv]  .json-token.mode-full [data-role="instrument"] .child-flow {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 4px;
    align-items: center;
    justify-content: flex-end;
}

.trade-form-card[b-qkiqfh3wuv]  .json-token.mode-full [data-role="instrument"] .input-field > label {
    font-size: 9px;
    opacity: 0.5;
    color: var(--cpd-text-subtle);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}


.trade-form-card[b-qkiqfh3wuv]  .json-separator {
    display: none;
}

/* 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] {
    max-width: 120px;
    background: var(--cpd-surface-2);
    color: var(--cpd-text);
    border-color: var(--cpd-border-strong);
}

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

.extension-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);
}
/* /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/Tiles/MissingMarketData.razor.rz.scp.css */
.missing-data-msg[b-it22sywbzv] {
    font-size: 12px;
    color: var(--cpd-text-subtle);
}

.missing-data-title[b-it22sywbzv] {
    margin-bottom: 8px;
}

.missing-data-list[b-it22sywbzv] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.missing-data-list li[b-it22sywbzv] {
    display: flex;
    gap: 8px;
}

.missing-data-tag[b-it22sywbzv] {
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: rgba(var(--cpd-contrast-rgb), calc(0.35 * var(--cpd-text-alpha-scale)));
    white-space: nowrap;
}

.missing-data-items[b-it22sywbzv] {
    font-family: var(--cpd-font-mono);
    color: rgba(var(--cpd-contrast-rgb), calc(0.55 * var(--cpd-text-alpha-scale)));
}
/* /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/SensitivitySection.razor.rz.scp.css */
/* Sensitivities risk-ladder body: measure selector + per-curve tables + skipped-curve
   notes. DetailPane provides the surrounding heading and card. */

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

/* .results-table / .results-empty are TradeAnalysisPanel.razor.css conventions; scoped
   CSS doesn't cross component boundaries, so the rules are duplicated here verbatim. */
.results-table[b-atw80945f3] {
    width: 100%;
    border-collapse: collapse;
    font-variant-numeric: tabular-nums;
}

.results-table th[b-atw80945f3] {
    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 6px;
    border-bottom: 1px solid rgba(var(--cpd-contrast-rgb), 0.08);
    text-align: left;
}

.results-table td[b-atw80945f3] {
    padding: 5px 6px;
    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);
    font-size: 11px;
}

.results-table .date-cell[b-atw80945f3] { white-space: nowrap; }

.results-empty[b-atw80945f3] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 40px 16px;
    text-align: center;
}

.results-empty-icon[b-atw80945f3] {
    font-size: 28px;
    color: rgba(var(--cpd-contrast-rgb), calc(0.15 * var(--cpd-text-alpha-scale)));
}

.results-empty-text[b-atw80945f3] {
    font-size: 13px;
    color: rgba(var(--cpd-contrast-rgb), calc(0.3 * var(--cpd-text-alpha-scale)));
}

.sensitivity-measure-switcher[b-atw80945f3] {
    margin-bottom: var(--cpd-space-lg);
    width: fit-content;
}

/* .trade-mode-btn (trade-mode-switcher.css, global) is a fixed 28x28px square — sized for the
   single-glyph icon buttons it was built for (Capture's Full/Detailed/Compact/undo/redo cluster).
   This switcher reuses the same class for text labels ("Zero (exact)", "Par"), so the fixed square
   clipped "Zero (exact)" outright. Auto width/height + horizontal padding + no-wrap lets each
   button size to its own label at any viewport width, without touching the shared icon-button
   sizing other switchers still depend on. */
.sensitivity-measure-switcher .trade-mode-btn[b-atw80945f3] {
    width: auto;
    height: auto;
    min-height: 28px;
    padding: 5px 12px;
    font-size: 11px;
    white-space: nowrap;
}

.sensitivity-group[b-atw80945f3] {
    margin-bottom: 20px;
}

.sensitivity-group:last-child[b-atw80945f3] {
    margin-bottom: 0;
}

.sensitivity-group-title[b-atw80945f3] {
    font-size: 11px;
    font-weight: 600;
    color: rgba(var(--cpd-contrast-rgb), calc(0.5 * var(--cpd-text-alpha-scale)));
    margin: 0 0 8px;
}

.sensitivity-table th.num[b-atw80945f3],
.sensitivity-table td.num[b-atw80945f3] {
    text-align: right;
}

.sensitivity-magnitude-value[b-atw80945f3] {
    font-size: 10px;
    color: var(--cpd-text-subtle);
    margin-right: 6px;
    vertical-align: middle;
}

.sensitivity-bar-track[b-atw80945f3] {
    display: inline-block;
    width: 80px;
    height: 6px;
    background: rgba(var(--cpd-contrast-rgb), 0.06);
    border-radius: 3px;
    overflow: hidden;
    vertical-align: middle;
}

.sensitivity-bar-fill[b-atw80945f3] {
    height: 100%;
    border-radius: 3px;
    background: currentcolor;
}

.sensitivity-skipped[b-atw80945f3] {
    margin-top: 20px;
    padding-top: 12px;
    border-top: 1px solid rgba(var(--cpd-contrast-rgb), 0.06);
}

.sensitivity-skipped-list[b-atw80945f3] {
    margin: 0;
    padding-left: 18px;
    font-size: 11px;
    color: rgba(var(--cpd-contrast-rgb), calc(0.35 * var(--cpd-text-alpha-scale)));
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.sensitivity-missing-msg[b-atw80945f3] {
    font-size: 12px;
    color: var(--cpd-text-subtle);
}
/* /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/XvaExposureChart.razor.rz.scp.css */
/* Series colours for the EE/EPE/ENE exposure profile.
   Kept as channel triplets rather than hexes so the solid strokes and the
   0.4-alpha error bars/whiskers derive from one value each — the previous
   version spelled every colour twice (#a78bfa and rgba(167, 139, 250, …)) and
   the two had to be kept in step by hand.

   Both themes are written out because these are different colours, not a flip
   of one: the dark set is the pastel Tailwind-400 family, which lands at
   1.7:1–2.6:1 against the ivory light background (--cpd-dark in light mode) and
   reads as barely-there wash. The light set is the -700 family, 4.6:1–5.6:1.
   3:1 is the floor for graphical objects, so the dark set is not merely
   unattractive in light mode, it's below contrast minimum.

   These are local to this component on purpose — no other chart in the app
   uses this palette (checked), so there's nothing to share with. */
.xva-chart[b-80su8eslie] {
    --xva-ee-rgb: 167, 139, 250;
    --xva-epe-rgb: 52, 211, 153;
    --xva-ene-rgb: 248, 113, 113;

    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-top: 16px;
    margin-bottom: 16px;
}

:root[data-cpd-theme="light"] .xva-chart[b-80su8eslie] {
    --xva-ee-rgb: 109, 40, 217;
    --xva-epe-rgb: 4, 120, 87;
    --xva-ene-rgb: 185, 28, 28;
}

.xva-chart svg[b-80su8eslie] {
    display: block;
    width: 100%;
    height: auto;
}

.axis[b-80su8eslie] {
    stroke: rgba(var(--cpd-contrast-rgb), 0.12);
    stroke-width: 1;
}

.zero-line[b-80su8eslie] {
    stroke: rgba(var(--cpd-contrast-rgb), 0.15);
    stroke-width: 1;
    stroke-dasharray: 4 4;
}

.series-line[b-80su8eslie] {
    fill: none;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.series-line.ee[b-80su8eslie] { stroke: rgb(var(--xva-ee-rgb)); }
.series-line.epe[b-80su8eslie] { stroke: rgb(var(--xva-epe-rgb)); }
.series-line.ene[b-80su8eslie] { stroke: rgb(var(--xva-ene-rgb)); }

.err-bar[b-80su8eslie] {
    stroke-width: 1;
}

.err-bar.ee[b-80su8eslie] { stroke: rgba(var(--xva-ee-rgb), 0.4); }
.err-bar.epe[b-80su8eslie] { stroke: rgba(var(--xva-epe-rgb), 0.4); }
.err-bar.ene[b-80su8eslie] { stroke: rgba(var(--xva-ene-rgb), 0.4); }

.err-whisker[b-80su8eslie] {
    stroke-width: 1;
}

.err-whisker.ee[b-80su8eslie] { stroke: rgba(var(--xva-ee-rgb), 0.4); }
.err-whisker.epe[b-80su8eslie] { stroke: rgba(var(--xva-epe-rgb), 0.4); }
.err-whisker.ene[b-80su8eslie] { stroke: rgba(var(--xva-ene-rgb), 0.4); }

.series-pt[b-80su8eslie] {
    fill: var(--cpd-dark, #0f1117);
    stroke-width: 1.5;
}

.series-pt.ee[b-80su8eslie] { stroke: rgb(var(--xva-ee-rgb)); }
.series-pt.epe[b-80su8eslie] { stroke: rgb(var(--xva-epe-rgb)); }
.series-pt.ene[b-80su8eslie] { stroke: rgb(var(--xva-ene-rgb)); }

/* Cum-flow markers (left limit V(tᵢ⁻)) are filled to distinguish them from the hollow ex-flow points. */
.series-pt.cum.ee[b-80su8eslie] { fill: rgb(var(--xva-ee-rgb)); }
.series-pt.cum.epe[b-80su8eslie] { fill: rgb(var(--xva-epe-rgb)); }
.series-pt.cum.ene[b-80su8eslie] { fill: rgb(var(--xva-ene-rgb)); }

.axis-label[b-80su8eslie] {
    fill: rgba(var(--cpd-contrast-rgb), calc(0.35 * var(--cpd-text-alpha-scale)));
    font-size: 0.65rem;
}

.legend-swatch[b-80su8eslie] {
    rx: 2;
}

.legend-swatch.ee[b-80su8eslie] { fill: rgb(var(--xva-ee-rgb)); }
.legend-swatch.epe[b-80su8eslie] { fill: rgb(var(--xva-epe-rgb)); }
.legend-swatch.ene[b-80su8eslie] { fill: rgb(var(--xva-ene-rgb)); }

.legend-label[b-80su8eslie] {
    fill: rgba(var(--cpd-contrast-rgb), calc(0.5 * var(--cpd-text-alpha-scale)));
    font-size: 0.65rem;
}
/* /Components/Trades/XvaSection.razor.rz.scp.css */
/* Chart + table only; DetailPane provides the surrounding heading and card. */
.val-negative[b-avsf6qhfdm] { color: var(--token-position); }

.xva-missing-msg[b-avsf6qhfdm] {
    font-size: 12px;
    color: var(--cpd-text-subtle);
}

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

.xva-profile-table th[b-avsf6qhfdm] {
    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;
}

.xva-profile-table th:first-child[b-avsf6qhfdm] { text-align: left; }

.xva-profile-table td[b-avsf6qhfdm] {
    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;
}

.xva-profile-table td:first-child[b-avsf6qhfdm] {
    text-align: left;
    font-family: inherit;
    color: rgba(var(--cpd-contrast-rgb), calc(0.45 * var(--cpd-text-alpha-scale)));
}
/* /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);
}
/* /Components/Trades/XvaTile.razor.rz.scp.css */
/* Card / header / chevron styling now lives in SummaryTile; this file styles only the
   XVA tile body (stat grid + parties). */

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

.xva-stat-grid[b-zgkw83p25b] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    /* 10px by design, NOT var(--cpd-tile-gap): these are paired figures inside one readout, not
       separate cards, and 16px between them read as two lists. */
    gap: 10px;
}

/* Two 15px mono figures plus their labels stop fitting side by side once the tile is under about
   240px wide - the compact right rail (--cpd-pane-rail-w 240px, less the tile's own padding) is
   exactly there. The container is SummaryTile's root .summary-tile, which declares
   `container-type: inline-size`; unnamed, so this resolves to that nearest ancestor container
   whichever tile the body is rendered into. */
/* 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. */
.xva-stat-wide[b-zgkw83p25b] { grid-column: span 2; }

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

.xva-stat[b-zgkw83p25b] {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.xva-stat-label[b-zgkw83p25b] {
    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)));
}

.xva-stat-value[b-zgkw83p25b] {
    font-family: var(--cpd-font-mono);
    font-size: 15px;
    font-weight: 600;
}

/* The "± 8" Monte Carlo standard error under each figure. 0.3 measured 2.7:1 in
   dark mode; 0.35 is the lowest rung that clears 3:1 in both themes, and is the
   tier the other 10px captions use. */
.xva-stat-se[b-zgkw83p25b] {
    font-family: var(--cpd-font-mono);
    font-size: 10px;
    color: rgba(var(--cpd-contrast-rgb), calc(0.35 * var(--cpd-text-alpha-scale)));
}

.xva-missing-msg[b-zgkw83p25b] {
    font-size: 12px;
    color: var(--cpd-text-subtle);
}

.xva-tile-parties[b-zgkw83p25b] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 10px;
    padding-top: 8px;
    border-top: 1px solid rgba(var(--cpd-contrast-rgb), 0.05);
}

.xva-party-label[b-zgkw83p25b] {
    font-size: 10px;
    font-family: var(--cpd-font-mono);
    color: rgba(var(--cpd-contrast-rgb), calc(0.35 * var(--cpd-text-alpha-scale)));
}

/* The "↔" between the two party names. It was 0.2, which measured 2.1:1 in light
   and 2.0:1 in dark — too faint in both, not just under the new light-mode
   scale. Raised to the same 0.35 rung as the labels either side of it and
   .xva-stat-se above: 0.3 still fell short of 3:1 in dark (2.7:1), and the
   hierarchy this was reaching for is already carried by the glyph being a bare
   arrow between two mono-cased names. */
.xva-party-sep[b-zgkw83p25b] {
    font-size: 10px;
    color: rgba(var(--cpd-contrast-rgb), calc(0.35 * var(--cpd-text-alpha-scale)));
}

/* Handoff §7 open question 1: this readout is a 95% interval (1.96σ). The simulation-settings dialog
   now states its accuracy target at a user-selected threshold defaulting to the same 95%, so the two
   agree by default — and both say which basis they are on, so a non-default threshold can't be
   silently mistaken for this one. */
.xva-stat-se-basis[b-zgkw83p25b] {
    font-size: 0.75em;
    letter-spacing: 0.03em;
    opacity: 0.6;
}
