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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.capture-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/Ftp/FtpCustomRunoff.razor.rz.scp.css */
.ftp-runoff-dropzone[b-7zikuk2yph] {
    position: relative;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    white-space: nowrap;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.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],
.saved-script-select[b-gi218g99rb] {
    background: var(--cpd-surface-2);
    color: var(--cpd-text);
    border-color: var(--cpd-border-strong);
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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