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

/* /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/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/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: 250px;
    background: var(--cpd-surface-0);
}
@media (max-width: 640.98px) {
    .sidebar[b-godiwx8sp7] { width: 100%; height: auto; }
}

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

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

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

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

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

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

@media (min-width: 641px) {
    .page[b-godiwx8sp7]     {
        flex-direction: row;
        height: 100vh;
        overflow: hidden;
    }
    .sidebar[b-godiwx8sp7]  {
        width: 250px;
        flex-shrink: 0;
        height: 100vh;
        overflow: hidden;
    }
    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; }
    .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); }

.navbar-toggler[b-sni3sudt4l] {
    position: absolute;
    top: .5rem; right: 1rem;
    width: 3.5rem; height: 2.5rem;
    appearance: none; cursor: pointer;
    border: 1px solid var(--cpd-border-strong);
    background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") no-repeat center/1.75rem rgba(var(--cpd-contrast-rgb), 0.1);
    z-index: 1001;
}

.navbar-toggler:checked[b-sni3sudt4l] { background: rgba(var(--cpd-contrast-rgb), 0.25); }
@media (min-width: 641px) { .navbar-toggler[b-sni3sudt4l] { display: none; } }

.nav-scrollable[b-sni3sudt4l]       { display: none; }
.navbar-toggler:checked ~ .nav-scrollable[b-sni3sudt4l] { display: block; }
@media (min-width: 641px) {
    .nav-scrollable[b-sni3sudt4l] {
        display: block;
        height: calc(100vh - 3.5rem);
        overflow-y: auto;
    }
}

.nav-list[b-sni3sudt4l]    { list-style: none; margin: 0; padding: var(--cpd-space-lg) 0; }
.nav-list li[b-sni3sudt4l] { padding: var(--cpd-space-xs) 1.25rem; }

.nav-list li[b-sni3sudt4l]  .nav-link {
    display: flex; align-items: center; gap: .75rem;
    height: 3rem;
    border-radius: var(--cpd-radius-sm);
    background: none; border: none;
    color: var(--cpd-text);
    width: 100%;
    font-weight: 500;
}
.nav-list li[b-sni3sudt4l]  .nav-link:hover {
    background: rgba(var(--cpd-contrast-rgb), 0.10);
    color: var(--cpd-gold);
}
.nav-list li[b-sni3sudt4l]  .nav-link.active {
    background: rgba(var(--cpd-gold-rgb), 0.25);
    color: var(--cpd-gold);
}

.nav-list:has(.nav-link:hover:not(.active))[b-sni3sudt4l]  .nav-link.active,
.nav-list:has(.nav-link:focus:not(.active))[b-sni3sudt4l]  .nav-link.active {
    background: transparent;
    color: var(--cpd-text);
}
/* /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/PageDescription/PageRenderer.razor.rz.scp.css */
.page-tile-header[b-py0y6088jl] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 0.75rem;
}

.page-tile-header-controls[b-py0y6088jl] {
    display: flex;
    gap: 0.5rem;
}

.page-tile-pane-layout[b-py0y6088jl] {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
}

.page-tile-pane-left[b-py0y6088jl] {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.page-tile-pane-right[b-py0y6088jl] {
    flex: 0 0 280px;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

[b-py0y6088jl] .page-description-error {
    border: 1px dashed var(--mud-palette-error, #d32f2f);
    color: var(--mud-palette-error, #d32f2f);
    padding: 0.5rem 0.75rem;
    border-radius: 4px;
    font-weight: 600;
}

[b-py0y6088jl] .page-key-values-row {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
}

[b-py0y6088jl] .page-field-select {
    min-width: 220px;
}

/* Body.ControlGroup is a short field set (a Designation pane's three fields, a Details pane's
   legal name + recovery rate) — it had no CSS at all, so its MudTextField/MudSelect/MudNumericField
   children stacked one per line like a long form instead of sitting together as the short row they
   are. A wrapping flex row is the fix everywhere at once: fields sit side by side on a normal
   desktop width, and drop to their own line only when the row genuinely runs out of room, rather
   than every page hand-rolling its own MudStack/MudGrid wrapper for this. This is now the layout
   contract for every form section in the app — no per-page CSS should be needed on top of it. */
[b-py0y6088jl] .page-control-group {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 1rem;
}

/* flex-basis 220px matches .page-field-select's own min-width so a select's longest option still
   fits before the row wraps; the 320px cap stops a lone short field (a numeric recovery rate) from
   stretching to fill whatever space the row has left, which read as "the field is broken", not
   "the field is short". */
[b-py0y6088jl] .page-control-group > * {
    flex: 1 1 220px;
    max-width: 320px;
}

[b-py0y6088jl] .page-grid {
    width: 100%;
    border-collapse: collapse;
}

[b-py0y6088jl] .page-grid-row-nav {
    cursor: pointer;
}

/* The row's icon buttons are a single horizontal cluster, never a stack. Without this they are
   inline-blocks that wrap inside the (narrow, content-sized) sticky column — on Trades/View, whose
   rows carry three lens links plus a hedge link, they stacked one-per-line and quadrupled every
   row's height. nowrap makes the column size to the cluster instead of the cluster to the column. */
[b-py0y6088jl] .page-grid-row-controls {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.125rem;
}

/* A sticky column floats over the cells it covers, so it needs its own opaque background or the
   scrolled-under text shows through the lens icons. MudBlazor's own sticky styling assumes the
   default surface colour; this app themes the grid darker, hence the explicit surface token. The
   left border is what tells you the column is pinned rather than merely last.

   Specificity, not just source order: MudBlazor ships its own
   `.mud-data-grid .mud-table-cell.sticky-left, .mud-data-grid .mud-table-cell.sticky-right`
   rule (3 classes = 0,3,0) setting `background-color: var(--mud-palette-background-gray)` — its
   dark-theme default grey (#27272f), which clashes with this app's navy `--mud-palette-surface`.
   A plain `.page-grid-controls-header`/`.page-grid-controls-cell` selector (0,2,0) LOSES to that
   rule regardless of source order, so the pinned actions column rendered as a grey band on the
   Trades list and inside the hedge Composition pane. Repeating MudBlazor's own selector shape here
   plus our own marker class (0,4,0) beats it on specificity instead of relying on cascade order,
   which a future "simplify this selector" pass could silently break. Don't shorten this back to
   `.page-grid-controls-header`/`.page-grid-controls-cell` alone. */
[b-py0y6088jl] .mud-data-grid .mud-table-cell.sticky-right.page-grid-controls-header,
[b-py0y6088jl] .mud-data-grid .mud-table-cell.sticky-right.page-grid-controls-cell {
    background-color: var(--mud-palette-surface);
    border-left: 1px solid var(--mud-palette-table-lines);
}

[b-py0y6088jl] .mud-table-row:hover .mud-table-cell.sticky-right.page-grid-controls-cell {
    background-color: var(--mud-palette-table-hover);
}

[b-py0y6088jl] .tone-good {
    color: var(--mud-palette-success, #2e7d32);
}

[b-py0y6088jl] .tone-attention {
    color: var(--mud-palette-warning, #ed6c02);
}

[b-py0y6088jl] .tone-bad {
    color: var(--mud-palette-error, #d32f2f);
}

[b-py0y6088jl] .tone-neutral {
    color: inherit;
}
/* /Components/Pages/Analytics/Recon.razor.rz.scp.css */
.recon-card[b-1c2nyoxpjp] {
    animation: fadeUp-b-1c2nyoxpjp 0.3s cubic-bezier(0.16, 1, 0.3, 1) both 0.04s;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.recon-detail-card[b-0v1qksw7cd] {
    background: linear-gradient(135deg, rgba(var(--cpd-dark-rgb), 0.95) 0%, rgba(var(--cpd-panel-sheen-rgb), 0.95) 100%);
    border: 1px solid var(--cpd-gold-strong);
    border-radius: var(--cpd-radius-xl);
    padding: var(--cpd-space-lg) 1.25rem;
    box-shadow: var(--cpd-shadow-card);
    overflow-x: auto;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.recon-warn strong[b-0v1qksw7cd] { color: var(--cpd-gold); }
.recon-warn-detail[b-0v1qksw7cd] { color: rgba(var(--cpd-contrast-rgb), calc(0.55 * var(--cpd-text-alpha-scale))); }
/* /Components/Pages/CPStudioBasePage.razor.rz.scp.css */
/* Scoped styles for CPStudioBasePage's own template (header, loading overlay).
   Page-level layout primitives (.page-container, .page-title, .summary-*,
   buttons) live in wwwroot/common-page-styles.css so child pages can share
   them. */

.page-container[b-ukz8m5i10g] {
    position: relative;
}

.loading-overlay[b-ukz8m5i10g] {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(var(--cpd-dark-rgb), 0.95);
    backdrop-filter: blur(10px);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
}

.loading-content[b-ukz8m5i10g] {
    text-align: center;
}

.spinner-container[b-ukz8m5i10g] {
    margin-bottom: var(--cpd-space-2xl);
}

.spinner[b-ukz8m5i10g] {
    width: 60px;
    height: 60px;
    border: 4px solid rgba(var(--cpd-gold-rgb), 0.2);
    border-top-color: var(--cpd-gold);
    border-radius: 50%;
    animation: spin-b-ukz8m5i10g 1s linear infinite;
    margin: 0 auto;
}

.loading-text[b-ukz8m5i10g] {
    color: var(--cpd-text);
    font-size: 1.1rem;
}

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

.option-select[b-ukz8m5i10g] {
    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);
}

.option-select:focus[b-ukz8m5i10g] {
    outline: none;
    border-color: var(--cpd-gold);
    background: var(--cpd-surface-3);
    box-shadow: 0 0 0 3px var(--cpd-gold-ring);
}
/* /Components/Pages/Market/CurveAccordionNode.razor.rz.scp.css */
.curve-section[b-s94zkyzmml] {
    border: 1px solid rgba(var(--cpd-gold-rgb), 0.18);
    border-radius: var(--cpd-radius-xl);
    padding: 0.85rem;
    margin-bottom: 0.75rem;
    box-shadow: 0 6px 22px rgba(0, 0, 0, 0.22);
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.axis-label[b-g4b1u0c3l0] {
    fill: var(--cpd-accent);
    font-size: 0.72rem;
}
/* /Components/Pages/Market/InstrumentQuoteChart.razor.rz.scp.css */
.quote-chart[b-jbqd1bd4iu] {
    min-height: 18rem;
    border: 1px solid var(--cpd-gold-strong);
    border-radius: var(--cpd-radius-xl);
    background: linear-gradient(135deg, rgba(var(--cpd-dark-rgb), 0.92), rgba(var(--cpd-panel-sheen-rgb), 0.92));
    padding: var(--cpd-space-md);
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.quote-instances[b-px2e1n7tcd]  tbody td {
    vertical-align: middle !important;
}
/* /Components/Pages/Market/MarketRailTabs.razor.rz.scp.css */
.market-rail-tabs[b-djjralgkr6] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-bottom: var(--cpd-space-xl);
    border-bottom: 1px solid var(--cpd-border);
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    white-space: nowrap;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.trade-ref-input[b-qkiqfh3wuv],
.trade-val-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 var(--cpd-border);
    border-radius: var(--cpd-radius-md);
    padding: 5px 10px;
    color-scheme: var(--cpd-color-scheme);
    outline: none;
    transition: border-color 0.15s, background 0.15s;
}

.trade-ref-input[b-qkiqfh3wuv] { width: 160px; }
.trade-val-input[b-qkiqfh3wuv] { width: 150px; }

.trade-ref-input:focus[b-qkiqfh3wuv],
.trade-val-input:focus[b-qkiqfh3wuv] {
    border-color: rgba(246, 212, 107, 0.5);
    background: rgba(var(--cpd-contrast-rgb), 0.05);
}

.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: 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;
    width: 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: 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: 180px;
    text-align: right;
    outline: none;
}

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

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

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

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

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

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

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

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

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

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

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


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

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


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

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

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


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

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

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


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

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

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

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

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

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

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

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

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

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

.extension-select[b-gi218g99rb] {
    max-width: 120px;
    background: var(--cpd-surface-2);
    color: var(--cpd-text);
    border-color: var(--cpd-border-strong);
}

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

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

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

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

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

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

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

.schema-example[b-gi218g99rb] {
    margin-top: var(--cpd-space-sm);
    margin-bottom: 0;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.output-failed-item-header[b-gi218g99rb] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--cpd-space-sm);
}
/* /Components/Tiles/DetailPane.razor.rz.scp.css */
/* Heading / inner-container look lifted from XvaSection.razor.css. */
.detail-pane[b-2peu3nosu3] {
    margin-bottom: 24px;
}

.detail-pane-header[b-2peu3nosu3] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.detail-pane-title[b-2peu3nosu3] {
    font-size: 14px;
    font-weight: 600;
    color: rgba(var(--cpd-contrast-rgb), calc(0.8 * var(--cpd-text-alpha-scale)));
    margin: 0 0 4px;
}

.detail-pane-subtitle[b-2peu3nosu3] {
    font-size: 11px;
    color: rgba(var(--cpd-contrast-rgb), calc(0.35 * var(--cpd-text-alpha-scale)));
    margin: 0;
}

.detail-pane-header-actions[b-2peu3nosu3] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
}

.detail-pane-close[b-2peu3nosu3] {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 1px solid rgba(var(--cpd-contrast-rgb), 0.12);
    border-radius: var(--cpd-radius-lg);
    color: rgba(var(--cpd-contrast-rgb), calc(0.5 * var(--cpd-text-alpha-scale)));
    cursor: pointer;
    transition: color 0.15s, border-color 0.15s, background 0.15s;
}

.detail-pane-close:hover[b-2peu3nosu3] {
    color: var(--cpd-contrast);
    border-color: rgba(var(--cpd-contrast-rgb), 0.25);
    background: rgba(var(--cpd-contrast-rgb), 0.04);
}

/* min-width:0 + overflow-x lets wide MudDataGrids scroll instead of stretching the column. */
.detail-pane-body[b-2peu3nosu3] {
    min-width: 0;
    overflow-x: auto;
    background: rgba(var(--cpd-contrast-rgb), 0.02);
    border: 1px solid rgba(var(--cpd-contrast-rgb), 0.07);
    border-radius: var(--cpd-radius-lg);
    padding: var(--cpd-space-lg);
}
/* /Components/Tiles/MissingMarketData.razor.rz.scp.css */
.missing-data-msg[b-it22sywbzv] {
    font-size: 12px;
    color: var(--cpd-text-subtle);
}

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

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

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

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

.missing-data-items[b-it22sywbzv] {
    font-family: var(--cpd-font-mono);
    color: rgba(var(--cpd-contrast-rgb), calc(0.55 * var(--cpd-text-alpha-scale)));
}
/* /Components/Tiles/SummaryTile.razor.rz.scp.css */
/* Card base lifted from Capture's .results-card; hover + chevron from XvaTile.
   The gold left border is the active-tile indicator. */
.summary-tile[b-vzwbg2q27b] {
    background: rgba(var(--cpd-contrast-rgb), 0.03);
    border: 1px solid rgba(var(--cpd-contrast-rgb), 0.07);
    border-left: 3px solid transparent;
    border-radius: var(--cpd-radius-lg);
    padding: var(--cpd-space-lg);
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
    user-select: none;
}

.summary-tile:hover[b-vzwbg2q27b] {
    background: rgba(var(--cpd-contrast-rgb), 0.06);
    border-color: rgba(var(--cpd-contrast-rgb), 0.14);
}

/* Declared after :hover so the gold left border persists while hovering. */
.summary-tile.active[b-vzwbg2q27b] {
    border-left-color: var(--cpd-gold);
}

.summary-tile-header[b-vzwbg2q27b] {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.summary-tile-title[b-vzwbg2q27b] {
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: var(--cpd-text-subtle);
}

.summary-tile-chevron[b-vzwbg2q27b] {
    font-size: 12px;
    color: rgba(var(--cpd-contrast-rgb), calc(0.3 * var(--cpd-text-alpha-scale)));
    transition: transform 0.2s;
}

.summary-tile-chevron.active[b-vzwbg2q27b] {
    transform: rotate(180deg);
}

.summary-tile-body[b-vzwbg2q27b] {
    margin-top: 12px;
}

/* Optional header controls (e.g. XvaTile's simulation-settings gear), sitting between the title and
   the chevron. `margin-left: auto` keeps the title left and this cluster hard against the chevron
   even though the header is a space-between flex row. Carries no padding of its own, so a caller
   that renders nothing into the slot leaves the header pixel-identical. */
.summary-tile-actions[b-vzwbg2q27b] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    margin-left: auto;
}
/* /Components/Trades/CashFlowGrid.razor.rz.scp.css */
.history-table-container[b-ft3v6cmhvz] {
    margin: 2rem 0;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.pricing-ccy-table td.date-cell[b-sbyzjgm4a0] { white-space: nowrap; }
/* /Components/Trades/SensitivitySection.razor.rz.scp.css */
/* Sensitivities risk-ladder body: measure selector + per-curve tables + skipped-curve
   notes. DetailPane provides the surrounding heading and card. */

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

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

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

.results-table td[b-atw80945f3] {
    padding: 5px 6px;
    color: rgba(var(--cpd-contrast-rgb), calc(0.65 * var(--cpd-text-alpha-scale)));
    border-bottom: 1px solid rgba(var(--cpd-contrast-rgb), 0.03);
    font-family: var(--cpd-font-mono);
    font-size: 11px;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.sensitivity-missing-msg[b-atw80945f3] {
    font-size: 12px;
    color: var(--cpd-text-subtle);
}
/* /Components/Trades/SensitivityTile.razor.rz.scp.css */
/* Card / header / chevron styling now lives in SummaryTile; this file styles only the
   Sensitivities tile body. Mirrors XvaTile.razor.css's stat-grid so sibling summary
   tiles share the same visual language (scoped CSS can't be shared across components). */

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

.sensitivity-stat-grid[b-7evcjp4pbd] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

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

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

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

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

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

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

    border: 1px solid var(--cpd-gold-border);
    border-radius: var(--cpd-radius-lg);
    background: rgba(var(--cpd-contrast-rgb), 0.03);
    padding: 0.6rem;
    margin-top: 16px;
    margin-bottom: 16px;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.xva-profile-table td:first-child[b-avsf6qhfdm] {
    text-align: left;
    font-family: inherit;
    color: rgba(var(--cpd-contrast-rgb), calc(0.45 * var(--cpd-text-alpha-scale)));
}
/* /Components/Trades/XvaSimSettingsDialog.razor.rz.scp.css */
/* "Simulation settings" — design handoff §5. The dialog shell and fields are MudBlazor; only the
   disclosed accrual-rule panel (a plain JsonComponent, not Mud) still needs its own styling. */

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

/* StoppingRuleCaption is injected as raw HTML via @((MarkupString)...), so it never gets this
   file's scope attribute — ::deep drops the scoping restriction to reach it anyway. */
[b-tqfij6yk8f] .sim-caption-value {
    font-family: var(--cpd-font-mono);
    font-weight: 600;
    color: var(--cpd-gold);
}
/* /Components/Trades/XvaTile.razor.rz.scp.css */
/* Card / header / chevron styling now lives in SummaryTile; this file styles only the
   XVA tile body (stat grid + parties). */

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

.xva-stat-grid[b-zgkw83p25b] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

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

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

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

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

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

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

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

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

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