@import url('https://fonts.googleapis.com/css2?family=Inter:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');
/* charts styling */

body {
    font-family: "Inter", sans-serif !important;
}

/* Main Stylesheet for PVT Prediction App */
:root {
    --border-color: #E5E5E5;
    --text-color: #000000;
    --text-color-2: #FFFFFF;
    --background-color: #F2F2F2;
    --background-color-2: #FFFFFF;
    --pvt-shimmer-surface: #FFFFFF;
    --pvt-shimmer-body-1: #ECEFF3;
    --pvt-shimmer-body-2: #F5F7FA;
    --pvt-shimmer-header-1: #DDE1E6;
    --pvt-shimmer-header-2: #E8EBEF;
}

/* Shimmer Animation */
@keyframes shimmer {
    0% {
        background-position: -200% 0;
    }
    100% {
        background-position: 200% 0;
    }
}

.shimmer-placeholder {
    animation: shimmer 2s infinite linear;
    background: linear-gradient(
        90deg,
        var(--pvt-shimmer-body-1) 8%,
        var(--pvt-shimmer-body-2) 18%,
        var(--pvt-shimmer-body-1) 33%
    );
    background-size: 200% 100%;
    border-radius: 4px;
}

/* Shimmer for card headers */
.card-header.shimmer-placeholder {
    background: linear-gradient(
        90deg,
        var(--pvt-shimmer-header-1) 8%,
        var(--pvt-shimmer-header-2) 18%,
        var(--pvt-shimmer-header-1) 33%
    );
    background-size: 200% 100%;
}

/* General App Styling */
.app-container {
    width: 100%;
}

body {
    background-color: #F7F7F7 !important;
    font-family: 'Inter', sans-serif;
    transition: background-color 0.35s ease, color 0.35s ease !important;
}

/* Button Styles */
.btn-secondary {
    background-color: #717171 !important;
    border: none !important;
}
.btn-primary {
    background-color: #0E3D55 !important;
    transition: all 0.3s ease;
}

.btn-primary:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}

/* Card Styles */
.card {
    transition: box-shadow 0.3s ease;
    border-radius: 8px;
    max-height: 520px;
}

.oil-container
{
    height: auto !important;
    max-height: auto !important;
    padding: 12px;
    background-color: var(--background-color-2);
    border-radius: 8px;
    border: 1px solid rgba(0, 0, 0, 0.1);
    margin-bottom: 16px !important;
}

.card:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}


/* Modal Styles */
.modal-content {
    border-radius: 8px;
    border: none;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
}

.modal-header {
    border-top-left-radius: 8px;
    border-top-right-radius: 8px;
}

.modal-footer {
    border-bottom-left-radius: 8px;
    border-bottom-right-radius: 8px;
}

/* Progress Bar Styles */
.progress {
    height: 25px;
    border-radius: 4px;
    overflow: hidden;
}

.progress-bar {
    transition: width 0.6s ease;
}

/* Alert Styles */
.alert {
    border-radius: 6px;
    border: none;
}

.alert-dismissible .btn-close {
    padding: 0.75rem 1rem;
}

/* Loading Spinner */
.spinner-border {
    width: 3rem;
    height: 3rem;
    border-width: 0.3em;
}



/* Responsive Design */
@media (max-width: 768px) {
    .card {
        margin-bottom: 1rem;
    }
    
    .btn {
        width: 100%;
        margin-bottom: 0.5rem;
    }
}

/* Print Styles */
@media print {
    .no-print {
        display: none !important;
    }
    
    .card {
        break-inside: avoid;
    }
}

/* Smooth light/dark theme transitions (see dark-mode.css for extended rules) */
@media (prefers-reduced-motion: no-preference) {
    html,
    #app-root {
        transition: background-color 0.35s ease, color 0.35s ease !important;
    }
}

/* Custom Scrollbar (Light Mode) */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 4px;
}

::-webkit-scrollbar-thumb {
    background: #888;
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: #555;
}

/* Tab Styling - Matching first screenshot design */
.nav-tabs {
    border: 1px solid var(--border-color);
    background-color: var(--background-color-2);
    border-radius: 8px;
    overflow: hidden;
    padding: 4px;
    padding-right: 0px;
    gap: 8px;

}   

.manage-template-tabs {
    border: 1px solid var(--border-color);
    background-color: var(--background-color-2);
    border-radius: 8px;
    overflow: hidden;
    padding: 4px;
    gap: 8px;

} 

.no-padding-right {
    padding-right: 0px !important;
}

.no-padding-left {
    padding-left: 0px !important;
}

.padding-right-6 {
    padding-right: 12px !important;
}

.nav-tabs-container {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    border: none;
    background-color: var(--background-color-2);
    border-radius: 8px;
    overflow: hidden;
    padding: 4px;
    gap: 4px;
    height: 100%;
}

/* Result history: col-8 tabs + col-4 radios — prevent grid overflow from painting over the next column */
.result-plots-toolbar-row > [class*="col"] {
    min-width: 0;
}

.result-plots-tabs-col {
    min-width: 0;
    max-width: 100%;
}

.result-plots-toolbar-row .result-plots-tabs-col .nav-tabs {
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
}

.result-plots-toolbar-row .nav-tabs-container.plot-type-toolbar {
    overflow: visible;
    height: auto;
    min-height: 42px;
    align-items: center;
    flex-wrap: wrap;
    row-gap: 6px;
    column-gap: 8px;
}

.result-plots-radio-col {
    position: relative;
    z-index: 1;
    overflow: visible;
}

/* Toolbar must sit above the chart area: plots use negative margins so modebar can overlap this band */
.tabs-and-plot-type-container > .row.result-plots-toolbar-row {
    position: relative;
    z-index: 200;
    overflow: visible;
}

.tabs-and-plot-type-container > .plot-display-container {
    position: relative;
    z-index: 0;
}

.tabs-and-plot-type-container {
    overflow: visible;
}

#plot_type_radio_container > div {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: 4px 12px;
    max-width: 100%;
}

.nav-tabs .nav-link {
    min-width: 100px;
    color: #000000;
    border: none;
    padding: 0 8px;
    font-weight: 500;
    font-size: 14px;
    text-transform: capitalize;
    color: rgba(0, 0, 0, 0.8) !important;
    transition: all 0.3s ease;
    height: 32px;
    border-radius: 6px;
    -webkit-border-radius: 6px;
    -moz-border-radius: 6px;
    -ms-border-radius: 6px;
    -o-border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.nav-tabs .nav-link:hover {
    background-color: var(--background-color);
    color: var(--text-color);
}

.nav-tabs .nav-link.active {
    color: var(--text-color-2) !important;
    background-color: #071E2B !important;
}

/* Header Dropdowns Styling */
.d-inline-block {
    display: inline-block;
    vertical-align: middle;
}

/* Ensure header section is separate from card */
.header-section {
    padding: 12px;
    width: 100%;
    border-radius: 8px;
    border: 1px solid var(--border-color);
    background-color: var(--background-color-2);
    gap: 12px;
}

.template-header-section {
    padding: 6px;
    width: 100%;
    border-radius: 8px;
    border: 1px solid var(--border-color);
    background-color: var(--background-color-2);
    gap: 12px;
}

.result-history-header-controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 4px;
}

/* Ensure Fluid Analysis card is properly contained */
#result_history_info_box {
    position: relative;
    width: 100%;
}

/* Fluid Analysis header — room for absolutely positioned action buttons */
.fluid-analysis-header {
    position: relative;
    min-height: 52px;
}

.fluid-analysis-header .fluid-analysis-title {
    padding-right: 280px;
    margin-bottom: 0 !important;
}

/* Fluid Analysis header actions */
.fluid-analysis-header-actions {
    position: absolute;
    right: 12px;
    top: 12px;
    z-index: 10;
    display: flex;
    align-items: center;
    gap: 8px;
    pointer-events: auto;
}

#go_to_config_btn,
#manage_model_btn,
#manage_template_btn {
    font-weight: 500;
    font-size: 14px;
    padding: 6px 12px;
    border-radius: 6px;
    text-align: center;
    align-items: center;
    justify-content: center;
    display: flex;
}

#go_to_config_btn {
    background-color: #0E3D55;
    border: none;
}

#go_to_config_btn:hover {
    box-shadow: none;
    transform: none;
    background-color: #0E3D55;
}

#manage_template_btn {
    cursor: pointer;
    pointer-events: auto;
}

.manage-template-container {
    background-color: var(--background-color, #F7F7F7);
}

.manage-template-page {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.manage-template-top {
    width: 100%;
    padding: 12px 16px;
    background-color: var(--background-color-2);
    display: flex;
    align-items: center;
}

.manage-template-page-title {
    font-weight: 500;
    font-size: 20px;
    color: var(--text-color);
    margin-left: 6px;
}

.home-pvt-plots-panel
{
    min-height: 594px;
    overflow-x: hidden;
}

.home-page-container
{
    overflow-x: hidden;
}

.manage-template-page-header-row {
    width: 100%;
    justify-content: space-between;
}

.manage-template-page-header-row .manage-template-tabs {
    flex-shrink: 0;
    margin-left: auto;
}

.manage-template-tabs .nav-tabs {
    border-bottom: none;
    margin-bottom: 0;
    gap: 4px;
}

.manage-template-tabs .nav-link {
    font-size: 13.5px;
    font-weight: 500;
    padding: 8px 14px;
    border-radius: 6px;
    color: var(--text-color);
    border: none;
}

.manage-template-tabs .nav-link:hover {
    background-color: var(--background-color-3, #f0f0f0);
}

.manage-template-tabs .nav-link.active {
    background-color: #0E3D55;
    color: #fff;
}

.manage-template-field-label {
    font-weight: 500;
    margin-bottom: 6px;
}

.manage-template-upload-layout {
    max-width: 640px;
    margin: 0 auto;
    padding: 8px 4px 4px;
}

.manage-template-upload-form {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.manage-template-upload-section {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.manage-template-upload-input {
    max-width: 360px;
}

.manage-template-upload-dropzone {
    border: 1.5px dashed var(--border-color, #ccc);
    border-radius: 10px;
    padding: 32px 20px;
    text-align: center;
    background-color: var(--background-color-2, #fafafa);
    cursor: pointer;
    transition: border-color 0.2s ease, background-color 0.2s ease;
}

.manage-template-upload-dropzone:hover {
    border-color: #0E3D55;
    background-color: #f3f8fb;
}

.manage-template-upload-dropzone-title {
    font-size: 14px;
    font-weight: 500;
    color: var(--text-color);
    margin-bottom: 6px;
}

.manage-template-upload-dropzone-hint {
    font-size: 13px;
    color: var(--text-muted, #666);
}

.manage-template-upload-dropzone-types {
    font-size: 12px;
    color: var(--text-muted, #999);
    margin-top: 8px;
}

.manage-template-upload-link {
    color: #0E3D55;
    text-decoration: underline;
    font-weight: 500;
}

.manage-template-upload-actions {
    display: flex;
    justify-content: center;
    margin-top: 20px;
    padding-top: 4px;
}

.manage-template-upload-filename,
.manage-template-selected-file {
    font-size: 13px;
    color: var(--text-muted, #666);
    margin-top: 8px;
    min-height: 20px;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    max-width: 80%;
}

.manage-template-upload-alert:empty {
    display: none;
}

.manage-template-list-empty {
    color: var(--text-muted, #666);
    font-size: 14px;
    padding: 8px 4px;
}

.manage-template-list-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

.manage-template-list-th {
    font-weight: 600;
    font-size: 13px;
    color: #808080;
    padding: 10px 12px;
    border-bottom: 1px solid var(--border-color);
    background-color: var(--background-color-2);
}

.manage-template-list-th-status {
    width: 120px;
    text-align: center;
}

.manage-template-list-th-actions {
    width: 280px;
    text-align: right;
}

.manage-template-list-td-name {
    font-weight: 500;
    font-size: 14px;
    color: var(--text-color);
    vertical-align: middle;
    padding: 12px;
    border-bottom: 1px solid var(--border-color);
}

.manage-template-list-td-folder,
.manage-template-list-td-file,
.manage-template-list-td-created {
    font-size: 14px;
    color: #808080;
    vertical-align: middle;
    padding: 12px;
    border-bottom: 1px solid var(--border-color);
    max-width: 220px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.manage-template-list-td-status {
    vertical-align: middle;
    padding: 12px;
    border-bottom: 1px solid var(--border-color);
    text-align: center;
}

.manage-template-list-td-actions {
    text-align: right;
    vertical-align: middle;
    padding: 12px;
    white-space: nowrap;
    border-bottom: 1px solid var(--border-color);
}

.manage-template-list-table tbody tr:nth-child(odd) .manage-template-list-td-name,
.manage-template-list-table tbody tr:nth-child(odd) .manage-template-list-td-folder,
.manage-template-list-table tbody tr:nth-child(odd) .manage-template-list-td-file,
.manage-template-list-table tbody tr:nth-child(odd) .manage-template-list-td-status,
.manage-template-list-table tbody tr:nth-child(odd) .manage-template-list-td-created,
.manage-template-list-table tbody tr:nth-child(odd) .manage-template-list-td-actions {
    background-color: var(--background-color-2);
}

.manage-template-list-table tbody tr:nth-child(even) .manage-template-list-td-name,
.manage-template-list-table tbody tr:nth-child(even) .manage-template-list-td-folder,
.manage-template-list-table tbody tr:nth-child(even) .manage-template-list-td-file,
.manage-template-list-table tbody tr:nth-child(even) .manage-template-list-td-status,
.manage-template-list-table tbody tr:nth-child(even) .manage-template-list-td-created,
.manage-template-list-table tbody tr:nth-child(even) .manage-template-list-td-actions {
    background-color: var(--background-color, #fafafa);
}

.manage-template-status-badge {
    font-size: 11px;
    font-weight: 600;
    padding: 4px 10px;
}

.manage-template-action-btn {
    font-size: 13px;
    font-weight: 500;
    padding: 4px 10px;
    border-radius: 6px;
}

.manage-template-download-input-btn {
    background-color: var(--background-color-3, #f0f0f0);
    border: 1px solid var(--border-color);
    color: var(--text-color);
}

.manage-template-download-output-btn {
    background-color: #0E3D55;
    border: none;
    color: #fff;
}

.manage-template-list-error {
    color: #dc3545;
    max-width: 180px;
    white-space: normal;
}

.manage-template-panel-hint {
    color: var(--text-muted, #666);
    font-size: 14px;
    margin-bottom: 16px;
}

.config-required-asterisk {
    color: #dc3545;
    font-weight: 600;
}

.add-template-step-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    padding: 8px 10px;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    background-color: var(--background-color-2, #fafafa);
}

.add-template-step-indicator {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 12px;
    flex: 1;
    min-width: 0;
    padding: 0;
    border: none;
    border-radius: 0;
    background-color: transparent;
}

.add-template-step-item {
    font-size: 12px;
    font-weight: 500;
    color: var(--text-muted, #808080);
    padding: 4px 10px;
    border-radius: 6px;
    white-space: nowrap;
}

.add-template-step-item-active {
    background-color: #0E3D55;
    color: #fff;
}

.add-template-step-item-complete {
    color: #0E3D55;
}

.add-template-wizard-nav {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
    margin-top: 0;
    margin-left: auto;
}

.add-template-step-card {
    margin-bottom: 0;
}

.add-template-total-zi-value {
    font-weight: 600;
    color: var(--text-color);
}

.add-template-file-name-row {
    margin-bottom: 16px;
}

.add-template-composition-row {
    align-items: flex-start;
}

.add-template-composition-col,
.add-template-fluid-properties-panel {
    height: 100%;
}

.add-template-fluid-properties-panel {
    display: flex;
    flex-direction: column;
}

.add-template-property-group {
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 14px 16px;
    background-color: var(--background-color-2, #fafafa);
}

.add-template-property-group-title {
    font-size: 12px;
    font-weight: 600;
    color: #808080;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    margin-bottom: 10px;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--border-color);
}

.add-template-property-subtitle {
    font-size: 13px;
    font-weight: 500;
    color: var(--text-color);
}

.add-template-step-content {
    padding: 4px 2px;
}

.add-template-cce-full-wrap {
    max-height: 480px;
    overflow: auto;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    background-color: var(--background-color-2, #fafafa);
}

.add-template-cce-full-wrap .add-template-cce-full-table {
    margin-bottom: 0;
}

.add-template-cce-panel .add-template-property-group {
    background-color: transparent;
}

.add-template-composition-wrap {
    max-height: 480px;
    overflow: auto;
    border: 1px solid var(--border-color);
    border-radius: 8px;
}

.add-template-composition-table .add-template-comp-name {
    font-size: 13px;
    white-space: nowrap;
    padding: 6px 10px;
}

.add-template-composition-table .add-template-comp-input {
    padding: 4px 8px;
    min-width: 110px;
}

.add-template-total-zi-row {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    border-top: 1px solid var(--border-color);
    background-color: var(--background-color-2);
}

.add-template-cce-full-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

.add-template-cce-full-table th,
.add-template-cce-full-table td {
    padding: 6px 8px;
    border-bottom: 1px solid var(--border-color);
    vertical-align: middle;
}

.add-template-cce-full-table .add-template-field-input {
    min-width: 90px;
}

.add-template-cce-row-num {
    color: var(--text-muted, #666);
    font-size: 12px;
    width: 36px;
}

.manage-model-page {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.manage-model-main-container {
    padding: 16px !important;
}

.manage-model-header {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 12px 14px;
    margin-bottom: 0;
}

.manage-model-header-row-single {
    justify-content: space-between;
    gap: 16px;
}

.manage-model-header-left {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.manage-model-card-header {
    padding: 12px 16px;
    border-bottom: 1px solid var(--border-color);
}

.manage-model-header-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    width: 100%;
}

.manage-model-header-row-primary {
    justify-content: space-between;
}

.manage-model-header-row-secondary {
    justify-content: space-between;
    padding-top: 4px;
    border-top: 1px solid var(--border-color);
}

.manage-model-exp-type-group {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.manage-model-toolbar-label {
    font-size: 11px;
    font-weight: 600;
    color: #808080;
    white-space: nowrap;
    margin-bottom: 0;
}

.manage-model-exp-type-radio.common-selector {
    margin-bottom: 0;
}

.manage-model-progress-section {
    margin: 0 0 0 0 !important;
    width: 100% !important;
}


.manage-model-list-panel .manage-model-list-loading-wrap {
    min-height: auto;
    display: block;
}

.manage-model-split-layout {
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 100%;
}

.manage-model-split-active .manage-model-split-layout {
    flex-direction: row;
    align-items: stretch;
    gap: 16px;
}

.manage-model-split-active .manage-model-list-column {
    flex: 0 0 25%;
    max-width: 25%;
    min-width: 220px;
    overflow-x: auto;
}

.manage-model-split-active .manage-model-view-column {
    flex: 1 1 75%;
    min-width: 0;
    display: block !important;
}

.manage-model-list-column,
.manage-model-view-column {
    min-width: 0;
}

.manage-model-view-column {
    display: none;
}

.manage-model-view-card,
.manage-model-view-card-body {
    height: 100%;
}

.manage-model-view-panel-header {
    margin-bottom: 12px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--border-color);
}

.manage-model-list-table tbody tr.manage-model-list-row-expanded .manage-model-list-td-name,
.manage-model-list-table tbody tr.manage-model-list-row-expanded .manage-model-list-td-database,
.manage-model-list-table tbody tr.manage-model-list-row-expanded .manage-model-list-td-experiment-name,
.manage-model-list-table tbody tr.manage-model-list-row-expanded .manage-model-list-td-actions {
    background-color: rgba(34, 152, 213, 0.08);
}

.manage-model-list-td-database {
    font-size: 13px;
    color: var(--text-color);
    vertical-align: middle;
    padding: 12px;
    border-bottom: 1px solid var(--border-color);
}

.manage-model-database-heading {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-color);
}

@media (max-width: 991px) {
    .manage-model-split-active .manage-model-split-layout {
        flex-direction: column;
    }

    .manage-model-split-active .manage-model-list-column {
        flex: 1 1 auto;
        max-width: 100%;
    }

    .manage-model-header-row-secondary {
        flex-direction: column;
        align-items: flex-start;
    }
}

@media (max-width: 767px) {
    .manage-model-header-row-primary {
        flex-direction: column;
        align-items: stretch;
    }

    .manage-model-add-new-btn {
        width: 100%;
    }
}


.manage-model-top {
    width: 100%;
    padding: 12px 16px;
    background-color: var(--background-color-2);
    display: flex;
    align-items: center;
    margin-bottom: 16px;
    justify-content: space-between;
    gap: 15px;
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.no-padding {
    padding: 0px !important;
}

.height-100 {
    height: 100vh !important;
}

#manage_model_progress_section
{
    margin-left: 0 !important;
    width: 100% !important;
}

.manage-model-page-title {
    font-weight: 500;
    font-size: 20px;
    color: var(--text-color);
}

.manage-model-type-dropdown {
    max-width: 320px;
}

.manage-model-entry-btn {
    background-color: #0E3D55 !important;
    border: none !important;
    color: #fff !important;
    transition: all 0.2s ease;
}
.manage-model-list-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

.manage-model-list-th {
    font-weight: 600;
    font-size: 13px;
    color: #808080;
    padding: 10px 12px;
    border-bottom: 1px solid var(--border-color);
    background-color: var(--background-color-2);
}

.manage-model-list-th-actions {
    width: 340px;
    text-align: right;
}

.manage-model-list-td-name {
    font-weight: 500;
    font-size: 14px;
    color: var(--text-color);
    vertical-align: middle;
    padding: 12px;
    border-bottom: 1px solid var(--border-color);
}

.manage-model-list-name-wrap {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.manage-model-last-run-badge {
    display: inline-block;
    padding: 2px 8px;
    font-size: 11px;
    font-weight: 600;
    line-height: 1.4;
    color: #0E3D55;
    background-color: #D6EEF7;
    border: 1px solid #7EC8E3;
    border-radius: 999px;
    white-space: nowrap;
}

.manage-model-list-table tbody tr.manage-model-list-row-last-run .manage-model-list-td-name,
.manage-model-list-table tbody tr.manage-model-list-row-last-run .manage-model-list-td-experiment-name,
.manage-model-list-table tbody tr.manage-model-list-row-last-run .manage-model-list-td-last-run,
.manage-model-list-table tbody tr.manage-model-list-row-last-run .manage-model-list-td-actions {
    background-color: #F0F8FB;
}

.manage-model-list-th-last-run {
    width: 140px;
    text-align: center;
}

.manage-model-list-td-experiment-name {
    font-size: 14px;
    color: #808080;
    vertical-align: middle;
    padding: 12px;
    border-bottom: 1px solid var(--border-color);
}

.manage-model-list-td-last-run {
    font-size: 13px;
    vertical-align: middle;
    padding: 12px;
    border-bottom: 1px solid var(--border-color);
    text-align: center;
}

.manage-model-list-version-text {
    font-weight: 500;
    color: #0E3D55;
    white-space: nowrap;
}

.manage-model-list-last-run-empty {
    color: #808080;
}

.manage-model-list-td-actions {
    text-align: right;
    vertical-align: middle;
    padding: 12px;
    white-space: nowrap;
    border-bottom: 1px solid var(--border-color);
}

.manage-model-list-table tbody tr.manage-model-list-row-selected .manage-model-list-td-name,
.manage-model-list-table tbody tr.manage-model-list-row-selected .manage-model-list-td-experiment-name,
.manage-model-list-table tbody tr.manage-model-list-row-selected .manage-model-list-td-database,
.manage-model-list-table tbody tr.manage-model-list-row-selected .manage-model-list-td-last-run,
.manage-model-list-table tbody tr.manage-model-list-row-selected .manage-model-list-td-actions {
    background-color: var(--background-color) !important;
    border-bottom-color: var(--border-color) !important;
}

.manage-model-list-table tbody tr.manage-model-list-row-selected .manage-model-list-td-name {
    color: #0E3D55;
    font-weight: 600;
}

.manage-model-version-help {
    padding: 12px 16px;
    margin-bottom: 16px;
    border-radius: 8px;
    border: 1px solid #B8DAE8;
    background-color: #F0F8FB;
}

.manage-model-version-help-text {
    font-size: 13px;
    line-height: 1.5;
    color: #334155;
    margin: 0;
}

.manage-model-params-row {
    margin-bottom: 0;
}

.manage-model-params-row-runner {
    margin-top: 12px;
}

.manage-model-params-row .manage-model-param-col {
    display: flex;
}

.manage-model-params-row .manage-model-param-card {
    flex: 1;
    width: 100%;
    margin-bottom: 0 !important;
    background-color: var(--background-color);
}

.manage-model-action-btn {
    min-width: 72px;
    font-weight: 500;
    font-size: 13px;
}

.manage-model-view-btn {
    color: #0E3D55 !important;
    border-color: #0E3D55 !important;
    background-color: transparent !important;
    transition: none !important;
    box-shadow: none !important;
}

.manage-model-edit-btn {
    background-color: #0E3D55 !important;
    border: none !important;
    color: #fff !important;
}

.manage-model-run-btn {
    background-color: #198754 !important;
    border: none !important;
    color: #fff !important;
}

.manage-model-delete-btn {
    color: #dc3545 !important;
    border-color: #dc3545 !important;
    background-color: transparent !important;
    transition: none !important;
    box-shadow: none !important;
}

.manage-model-delete-btn:hover,
.manage-model-delete-btn:focus {
    color: #fff !important;
    background-color: #dc3545 !important;
    border-color: #dc3545 !important;
}

.manage-model-secondary-btn {
    font-weight: 500;
    transition: all 0.2s ease;
}


.manage-model-view-toolbar {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    padding: 12px 16px;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    background-color: var(--background-color-2);
}

.manage-model-page-header-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.manage-template-page-header-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;    
}

.manage-model-add-new-btn {
    font-weight: 500;
    white-space: nowrap;
}

.manage-model-view-title {
    font-weight: 500;
    font-size: 18px;
    color: var(--text-color);
}

.manage-model-rerun-settings {
    padding: 12px 16px;
    margin-bottom: 16px;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    background-color: var(--background-color);
}

.manage-model-rerun-settings-title {
    font-weight: 600;
    font-size: 14px;
    color: var(--text-color);
    margin-bottom: 10px;
}

.manage-model-rerun-settings-hint {
    font-size: 12px;
    color: #808080;
    margin: 8px 0 0;
}

.manage-model-version-label {
    font-weight: 500;
    font-size: 13px;
    color: var(--text-color);
    display: block;
    margin-bottom: 6px;
}

.manage-model-version-dropdown {
    width: 100%;
}

.manage-model-param-card {
    transition: box-shadow 0.2s ease
}

.margin-32px
{
    margin-bottom: 32px;
}
.manage-model-param-table-wrap {
    overflow-x: auto;
}

.manage-model-param-table {
    margin-bottom: 0;
}

.manage-model-param-th {
    font-size: 12px;
    font-weight: 600;
    color: #808080;
    width: 40%;
    padding: 8px 12px;
    border-bottom: 1px solid var(--border-color);
}

.manage-model-param-td-label {
    font-weight: 500;
    vertical-align: top;
    padding: 8px 12px;
    color: var(--text-color);
    border-bottom: 1px solid var(--border-color);
}

.manage-model-param-td-value {
    vertical-align: top;
    padding: 8px 12px;
    color: var(--text-color);
    word-break: break-word;
    border-bottom: 1px solid var(--border-color);
}

#manage_model_btn {
    cursor: pointer;
    pointer-events: auto;
}

.manage-model-tab-body {
    padding: 8px 0 0;
}

.manage-model-param-pre {
    max-height: 280px;
    overflow: auto;
    font-size: 12px;
    background-color: var(--background-color-2, #f8f9fa);
    border: 1px solid var(--border-color);
    border-radius: 6px;
    padding: 12px;
    margin: 0;
}

.manage-model-param-title {
    font-weight: 600;
    margin-bottom: 6px;
}

.save-build-config-btn {
    background-color: #0E3D55 !important;
    border: none !important;
    color: #fff !important;
    transition: all 0.2s ease;
}

.save-build-config-btn:hover {
    background-color: #0a3044 !important;
    box-shadow: 0 4px 8px rgba(14, 61, 85, 0.25);
}

.save-build-config-status {
    display: none !important;
}

/* Global bottom-right toast notifications */
.app-toast-container {
    position: fixed;
    top: auto;
    bottom: 16px;
    right: 16px;
    left: auto;
    z-index: 2000;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 8px;
    max-width: min(360px, calc(100vw - 32px));
    pointer-events: none;
}

.app-toast-container:not(:empty) {
    pointer-events: auto;
}

.app-toast-item {
    pointer-events: auto;
    animation: toastSlideIn 0.2s ease-out;
}

.app-toast-item .alert,
.app-toast-alert {
    padding: 8px 12px !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
    margin: 0 !important;
    box-shadow: 0 4px 14px rgba(16, 24, 40, 0.14);
    border-radius: 6px !important;
}

@keyframes toastSlideIn {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Shared panel empty states (home, manage model, manage template) */
.panel-empty-state,
.predicted-results-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0px;
    margin: 0;
    font-size: 13px;
    font-weight: 400;
    color: #667085;
    text-align: center;
    line-height: 1.55;
    background-color: transparent;
}

/* Config form shimmer */
.config-shimmer-wrap {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 4px 0;
}

.config-shimmer-block {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.config-shimmer-line {
    height: 32px;
    border-radius: 6px;
    animation: shimmer 2s infinite linear;
    background: linear-gradient(
        90deg,
        var(--pvt-shimmer-body-1) 8%,
        var(--pvt-shimmer-body-2) 18%,
        var(--pvt-shimmer-body-1) 33%
    );
    background-size: 200% 100%;
}

.config-shimmer-title {
    height: 18px;
    width: 42%;
    max-width: 200px;
}

.save-build-config-alert {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
    border-radius: 6px;
}

/* Fluid Analysis Card Styling */
.fluid-analysis-card {
    padding: 12px;
    width: 100%;
    border-radius: 8px;
    border: 1px solid var(--border-color);
    background-color: var(--background-color-2);
    gap: 12px;
}

.fluid-analysis-title, .oil-id-header {
    font-weight: 500;
    font-size: 18px;
    color: var(--text-color);
}

/* Fluid Analysis Card Content */
.fluid-analysis-content-container {
    height: auto;
    display: flex;
    flex-direction: row;
    gap: 24px;  
    align-items: center;
    justify-content: center;
}

.fluid-analysis-icon-container {
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.fluid-analysis-icon {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.fluid-analysis-content-item-container {
    width: 100%;
    gap: 16px;
}

.fluid-analysis-content-item-content {
    height: 24px;
    display: flex;
    flex-direction: row;
    gap: 24px;
    align-items: center;
}

.fluid-analysis-label {
    width: 10%;
    font-size: 14px;
    font-weight: 400;
    color: var(--text-color);
    height: auto;
    justify-content: flex-start;
    align-items: center;
    display: flex;
}

.fluid-analysis-value {
    width: 40%;
    font-weight: 400;
    font-size: 14px;
    background-color: var(--background-color);
    color: var(--text-color);
    padding: 8px;
    border-radius: 4px;
    -webkit-border-radius: 4px;
    -moz-border-radius: 4px;
    -ms-border-radius: 4px;
    -o-border-radius: 4px;
    height: 100%;
    justify-content: flex-start;
    align-items: center;
    display: flex;
}


/* Header Section */
.pca-components-header {
    font-weight: 500;
    color: #808080 !important;
    font-size: 12px;
}

/* Segmented Container */   
.header-dropdown-segmented-container {
    display: flex;
    align-items: center;
    background-color: var(--background-color);
    border: 1px solid var(--border-color);
    border-radius: 6px;
    flex: 1;
}

.result-view-mode-container {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 190px;
    padding: 4px 8px;
    border: 1px solid var(--border-color);
    border-radius: 4px;
    background-color: var(--background-color);
}

.result-view-mode-selector {
    margin: 0;
}

.result-view-mode-selector .form-check {
    margin-bottom: 0;
    margin-right: 12px;
}

.result-view-mode-selector .form-check:last-child {
    margin-right: 0;
}

.excel-sheet-table-scroll {
    width: 100%;
    overflow-x: auto;
}

.excel-sheet-table-scroll table {
    table-layout: auto;
    min-width: max-content;
}

.excel-sheet-table-scroll table th,
.excel-sheet-table-scroll table td {
    white-space: nowrap;
}

.header-dropdown-segmented-container .header-dropdown-first {
    border:none !important;
    background-color: transparent !important;
    width: 150px;
}

.header-dropdown-separator {
    margin-right: 8px;
    width: 2px;
    height: 24px;
    background-color: #DADADA;
}

.header-dropdown-segmented-container .header-dropdown-last-wrapper {
    width: 100%;
}

.header-dropdown-segmented-container .header-dropdown-last {
    width: 100%;
    border:none !important;
    background-color: transparent !important;
}

.header-dropdown-last.display-none {
    display: none !important;
}

.header-dropdown-last.display-inline-block {
    display: block !important;
}

.Select-control{
    background-color: var(--background-color) !important;
    border: none !important;
    border-radius: 6px !important;
    -webkit-border-radius: 6px !important;
    -moz-border-radius: 6px !important;
    -ms-border-radius: 6px !important;
    -o-border-radius: 6px !important;
}

.form-control
{
    background-color: var(--background-color) !important;
    border: none !important;
    color: var(--text-color) !important;
    font-weight: 400 !important;
    font-size: 12px !important;
    line-height: 16px !important;
    height: 36px !important;
    border-radius: 6px !important;
    -webkit-border-radius: 6px !important;
    -moz-border-radius: 6px !important;
    -ms-border-radius: 6px !important;
    -o-border-radius: 6px !important;
    padding: 0 12px !important;
    margin: 0 !important;
}

.form-control:focus {
    border-color: none !important;
    box-shadow: none !important;
}
.form-control::placeholder,.Select-placeholder{
    font-weight: 400 !important;
    font-size: 12px !important;
    align-items: center !important;
    justify-content: flex-start !important;
    display: flex !important;
}

.form-control:focus,.Select-control:focus{
    border-color: none !important;
    box-shadow: none !important;
}

/* Custom dropdown arrow using SVG */
.Select-arrow {
    border: none !important;
    width: 14px !important;
    height: 8px !important;
    background-image: url('down-arrow.svg') !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: contain !important;
    margin-top: -4px !important;
    position: relative !important;
}

.Select-arrow::before {
    display: none !important;
}

.Select-arrow::after {
    display: none !important;
}

label
{
    font-size: 14px !important;
    font-weight: 400 !important;
    color: var(--text-color) !important;
}

.form-check-input
{
    border-color: #667085;
}

.has-value.Select--single>.Select-control .Select-value .Select-value-label, .has-value.is-pseudo-focused.Select--single>.Select-control .Select-value .Select-value-label
    {
        color: var(--text-color) !important;
        font-weight: 400 !important;
        font-size: 12px !important;
        line-height: 16px !important;
    }

/* Display utilities */
.display-none {
    display: none !important;
}

.display-block {
    display: block !important;
}

.display-inline-block {
    display: inline-block !important;
}

/* Spacing utilities */
.margin-bottom-15 {
    margin-bottom: 15px;
}

/* Layout containers */
.main-container {
    padding: 16px;
    min-height: 100vh;
}

.result-history-container {
    height: 100vh;
    overflow-y: auto;
    overflow-x: hidden;
}

/* Home page — two-row toolbar and two-column panels */
.home-page-container {
    --home-toolbar-gap: 12px;
    --home-section-gap: 16px;
}

.home-main-section {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.home-top-toolbar {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 12px 14px;
    margin-bottom: 0;
}

.home-toolbar-row-single {
    flex-wrap: wrap;
    justify-content: space-between;
}

.home-toolbar-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
}

.home-input-upload-btn {
    white-space: nowrap;
}

.home-toolbar-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--home-toolbar-gap);
    width: 100%;
}

.dash-dropdown-wrapper
{
    width: 100%;
}

.home-toolbar-row-primary {
    justify-content: space-between;
}

.home-toolbar-group {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.home-toolbar-label,
.home-inline-label {
    font-size: 11px;
    font-weight: 600;
    color: #808080;
    white-space: nowrap;
    margin-bottom: 0;
    letter-spacing: 0.02em;
}

.home-toolbar-divider {
    width: 1px;
    align-self: stretch;
    min-height: 32px;
    background-color: var(--border-color);
    flex-shrink: 0;
}

.home-toolbar-model-db {
    flex: 1 1 280px;
    min-width: 240px;
    max-width: 520px;
    padding: 0px 8px;
    margin-bottom: 0;
}

.home-toolbar-model-db .home-inline-field {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1;
    min-width: 0;
}

.home-toolbar-model-db .home-inline-label {
    margin-left: 8px;
    flex-shrink: 0;
}

.home-toolbar-model-db .home-model-dropdown,
.home-toolbar-model-db .home-database-dropdown {
    flex: 1;
    min-width: 120px;
}

.home-toolbar-model-db .header-dropdown-first,
.home-toolbar-model-db .header-dropdown-last {
    width: 100%;
}

.home-ai-params-btn {
    white-space: nowrap;
    flex-shrink: 0;
    margin-left: 0;
    padding: 8px 16px !important;
    font-size: 13px !important;
    background-color: #0E3D55;
    color: #fff;
    border: none;
    border-radius: 6px;
    -webkit-border-radius: 6px;
    -moz-border-radius: 6px;
    -ms-border-radius: 6px;
    -o-border-radius: 6px;
    align-self: center;
}

.home-compact-selector.common-selector {
    margin-bottom: 0;
    height: 32px;
    min-width: fit-content;
    width: 250px;
}

.home-compact-selector.common-selector .form-check-label {
    padding: 6px 12px;
    font-size: 12.5px;
    line-height: 18px;
}

.home-chart-selector.common-selector {
    height: auto;
    min-height: 36px;
    margin-bottom: 0;
    padding: 3px;
    gap: 2px;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    background-color: var(--background-color-2);
    flex-wrap: nowrap;
    display: inline-flex;
    align-items: center;
    max-width: 100%;
}

.home-chart-selector.common-selector .form-check {
    flex: 0 0 auto;
    height: 32px;
    margin: 0;
}

.home-chart-selector.common-selector .form-check-label {
    padding: 6px 10px;
    font-size: 12px;
    line-height: 20px;
    white-space: nowrap;
}

.home-two-column-row {
    align-items: stretch;
}

.home-panel {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 12px;
    border-radius: 8px;
    border: 1px solid var(--border-color);
    background-color: var(--background-color-2);
    min-height: 420px;
}

.home-panel-header-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 12px;
}

.home-panel-title {
    font-size: 14px;
    font-weight: 700;
    color: var(--text-color);
    flex-shrink: 0;
}

.home-pvt-plots-display {
    flex: 1;
    min-height: 320px;
    overflow: hidden;
}

.home-model-performance-panel {
    gap: 0;
    max-height: 630px;
    overflow-y: auto;
    overflow-x: hidden;
}

.pvt-plot-grid-row .card
{
    max-height: 540px;
}

.home-model-performance-toolbar {
    flex-shrink: 0;
}

.home-performance-inline-controls {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: flex-end;
    flex: 1;
    min-width: 0;
}

.home-summary-plots-toggle {
    min-width: auto;
    padding: 0;
    border: none;
    background: transparent;
}

.home-summary-plots-toggle .common-selector {
    margin-bottom: 0;
}

.home-plot-type-toolbar {
    display: flex;
    align-items: center;
    flex: 1 1 280px;
    min-width: 0;
    justify-content: flex-end;
}

.home-performance-tabs-wrap {
    margin-bottom: 0;
    flex: 0 1 auto;
    min-width: 0;
}

/* Collapse empty Bootstrap tab markup (CCE/DL or before Viscosity tabs load). */
.home-performance-tabs-wrap:not(:has(.nav-item)) {
    display: none !important;
    flex: 0 0 0 !important;
    width: 0 !important;
    min-width: 0 !important;
    overflow: hidden !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
}

.home-model-performance-plots {
    flex: 1;
    padding-left: 8px;
    overflow-x: hidden;
    min-height: 0;
}

.home-excel-summary {
    flex: 1;
    overflow: auto;
}

.home-empty-state {
    margin-top: 0;
}

.home-empty-state-card {
    padding: 12px;
    margin-bottom: 0;
}

.home-empty-state-text {
    margin-bottom: 0 !important;
}

.home-no-experiments .panel-empty-state {
    background-color: var(--background-color-2);
    border: 1px solid var(--border-color);
    border-radius: 10px;
    padding: 12px;
}

.home-experiment-running {
    margin-top: 0;
}

.home-experiment-running-card {
    background-color: var(--background-color-2);
    border: 1px solid var(--border-color);
    border-radius: 10px;
    padding: 24px 20px;
    text-align: center;
}

.home-experiment-running-title {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--text-color);
}

.home-experiment-running-detail {
    font-size: 0.95rem;
    color: var(--text-color);
    margin-bottom: 0.5rem;
}

.home-experiment-running-hint {
    font-size: 0.85rem;
    color: var(--text-muted, #6c757d);
}

.home-performance-plot-controls-row .home-param-file-field {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 0 1 auto;
    min-width: 0;
}

.home-performance-plot-controls-row .home-param-file-field .home-inline-label {
    margin-bottom: 0;
    align-self: center;
}

.home-performance-plot-controls-row .home-param-file-dropdown {
    min-width: 180px;
    width: 230px;
}

.home-input-upload-section {
    padding: 12px 0;
}

#home_model_dropdown-value,
#home_database_dropdown-value {
    padding-left: 8px;
}

.home-pvt-plots-display .text-muted,
.home-model-performance-plots .text-muted {
    color: #808080 !important;
}

.home-page-container .home-performance-plot-tabs .nav-tabs {
    flex-wrap: nowrap;
    border: 1px solid var(--border-color);
    background-color: var(--background-color-2);
    border-radius: 8px;
    padding: 3px;
    gap: 2px;
    margin-bottom: 0;
}

.home-page-container .home-performance-plot-tabs .nav-link {
    min-width: auto;
    font-size: 12.5px;
    font-weight: 500;
    padding: 6px 14px;
    height: 32px;
    border-radius: 6px;
    border: 1px solid transparent;
    white-space: nowrap;
}

.home-page-container .home-performance-plot-tabs .nav-link.active {
    background-color: #0E3D55 !important;
    color: #fff !important;
    border-color: #0E3D55;
}

@media (max-width: 991px) {
    .home-toolbar-row-primary,
    .home-toolbar-row-secondary {
        flex-direction: column;
        align-items: stretch;
    }

    .home-toolbar-divider {
        display: none;
    }

    .home-toolbar-group {
        width: 100%;
        justify-content: space-between;
    }

    .home-toolbar-model-db {
        max-width: none;
    }

    .home-ai-params-btn {
        width: 100%;
    }

    .home-performance-inline-controls {
        justify-content: flex-start;
    }
}

@media (max-width: 767px) {
    .home-panel-header-row,
    .home-performance-header-row {
        flex-direction: column;
        align-items: flex-start;
    }

    .home-performance-inline-controls {
        width: 100%;
    }

    .home-plot-type-toolbar {
        width: 100%;
        justify-content: flex-start;
    }

    .home-chart-selector.common-selector {
        width: 100%;
    }
}

/* Plot display containers - initially hidden */
.plot-display-container {
    display: none;
}

.plot-display-container.visible {
    display: block;
}

/* Card styling - matching EDA project */
.card {
    padding: 12px;
    background: var(--background-color-2);
    border-radius: 8px;
    border: 1px solid rgba(0, 0, 0, 0.1);
    margin-bottom: 16px !important;
}

.card:hover {
    box-shadow: none;
}

#dv_experiment_dropdown-value, 
#viscosity_experiment_dropdown-value,
#cce_experiment_dropdown-value,
#manage_model_experiment_type_dropdown-value,
#manage_model_version_dropdown-value,
#manage_model_rerun_version_dropdown-value
{
    padding-left: 8px;
}
.card-header {
    padding: 8px;
    background-color: #2298D5;
    color: var(--text-color-2);
    border-radius: 4px !important;
    border: none !important;
    position: relative;
    z-index: 1;
}

/* Menus / dropdown panels above Plotly modebar, toolbar row, and card chrome */
.dash-dropdown-content {
    position: absolute;
    z-index: 12000 !important;
}

.result-history-container .Select-menu-outer,
.result-history-container .dash-dropdown-content,
.config-main-container .Select-menu-outer,
.config-main-container .dash-dropdown-content {
    z-index: 12000 !important;
}

.card-title {
    font-size: 18px;
    font-weight: 500;
    margin: 0;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    max-width: 80%;
}

.card-body {
    padding: 16px;
}

/* Inventory plot graph styling - matching EDA project */
.inventory-plot-graph {
    /* height: 60vh; */
    width: 100%;
    margin-bottom: -16px;
}

.oil-container .inventory-plot-graph .js-plotly-plot .plotly .main-svg {
    margin-top: -80px !important;
    background: transparent !important;
}
.inventory-plot-graph .js-plotly-plot .plotly .main-svg {
    margin-top: -60px !important;
    background: transparent !important;
}

/* Plotly modebar: above card-header (z-index 1) and chart surface; toolbar row (200) + menus (12k) stay on top */
.js-plotly-plot .plotly .modebar {
    position: absolute;
    margin-top: -54px !important;
    opacity: 1 !important;
    display: block !important;
    visibility: visible !important;
    z-index: 50 !important;
}




/* Make all modebar icons white with improved visibility */
.js-plotly-plot .plotly .modebar-btn path {
    fill: white !important;
    stroke: black !important;
    stroke-width: 0.3px !important;
}

/* Make modebar buttons more visible with dark background */
.js-plotly-plot .plotly .modebar-btn {
    border-radius: 4px;
    margin-left: 3px;
    opacity: 1 !important;
    background-color: #2298D5 !important;
}

/* Custom hover effect for modebar buttons - override the light blue */
.js-plotly-plot .plotly .modebar-btn:hover {
    background-color: #2298D5 !important;
}

/* Override any default hover styles */
.js-plotly-plot .plotly .modebar-btn:hover path {
    fill: #ffffff !important;
}

/* Remove any default hover background */
.js-plotly-plot .plotly .modebar-btn.active,
.js-plotly-plot .plotly .modebar-btn:hover {
    background-color: #2298D5 !important;
}

/* Force display of all modebar groups */
.js-plotly-plot .plotly .modebar-group {
    display: flex !important;
    opacity: 1 !important;
    background-color: transparent !important;
}

/* Main content area */
.config-main-container {
    padding: 0px;
    overflow-x: hidden;
    overflow-y: hidden;
}
.config-main-content {
    padding: 12px;
    padding-left: 24px !important;
    height: auto;
    overflow-y: hidden;
    gap: 12px;
}

.config-main-content-card {
    border-radius: 8px;
    border: 1px solid var(--border-color);
    background-color: var(--background-color-2);
    gap: 12px;
    margin: 12px;
    padding: 12px;
}

.header-section-margin {
    width: 98.5% !important;
    margin: 12px !important;
}

.config-main-content-card-header h5{
    font-weight: 500;
    font-size: 18px;
    color: var(--text-color);
    margin-bottom: 6px;
}

h6{
    font-size: 14px;
    font-weight: 500;
    color: var(--text-color);
}

.form-label
{
   font-size: 12px;
   font-weight: 500;
    color: #808080 !important;
    margin: 0;
    padding: 0;
}

/* Sidebar area */
.config-sidebar-area {
    overflow-y: auto;
    z-index: 1000;
}

/* Progress section */
.config-progress-section {
    display: none;
}

/* Allow inline styles to override - progress section visibility is controlled by callbacks */
.config-progress-section[style*="display: block"] {
    display: block !important;
}

.progress-section-card {
    width: 100%;
    background: #ffffff;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 14px 16px;
    box-sizing: border-box;
}

.progress-section-header {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px 16px;
    margin-bottom: 10px;
    flex-wrap: wrap;
}

.progress-section-label-left {
    font-size: 14px;
    font-weight: 500;
    color: var(--text-color);
    flex-shrink: 0;
}

.progress-section-label-right {
    text-align: right;
    flex: 1 1 auto;
    min-width: 0;
    font-size: 14px;
    font-weight: 500;
    color: #6c757d;
}

.progress-section-headline {
    display: inline-flex;
    align-items: baseline;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 2px 6px;
}

.progress-section-pct {
    color: #495057;
    font-weight: 600;
}

.progress-section-card .progress {
    height: 14px;
    border-radius: 6px;
}

.config-progress-bar {
    margin-bottom: 0;
}

.progress-section-detail {
    margin: 10px 0 0 0;
    font-size: 12px;
    line-height: 1.45;
    color: #6c757d;
    text-align: left;
}

.config-progress-text {
    text-align: center;
    margin-bottom: 10px;
}

.config-status-text {
    text-align: center;
    color: #666;
}

.config-note-text {
    text-align: center;
    color: #888;
    font-size: 0.9em;
    font-style: italic;
    margin-top: 10px;
}

/* Sidebar content styles */
.config-template-btn {
    text-align: left;
    width: 100%;
    background-color: #ffffff;
    border: 1px solid var(--border-color);
    border-radius: 6px;
    padding: 6px 12px;
    font-weight: 500;
    font-size: 14px;
    color: var(--text-color);
}

.config-template-btn:hover {
    background-color:var(--background-color);
    border: 1px solid var(--border-color);
    color: #ffffff;
    box-shadow: none;
    transform: none;
}

.config-template-locked-label {
    display: inline-block;
    width: 100%;
    padding: 8px 12px;
    font-weight: 500;
    font-size: 14px;
    color: var(--text-color);
    background-color: var(--background-color, #F7F7F7);
    border: 1px solid var(--border-color);
    border-radius: 6px;
    cursor: not-allowed;
    opacity: 0.85;
}

.btn-primary {
    background-color: #2298D5;
    color: var(--text-color-2);
    border: none;
}


.config-runner-radio {
    margin-bottom: 15px;
}

.config-runner-accordion {
    margin-bottom: 20px;
    border-radius: 0px !important;
    --bs-accordion-border-width: 0px !important;
    --bs-accordion-border-radius: 0px !important;
}

/* Hide accordion button like EDA sidebar */
.config-runner-accordion .accordion-button {
    display: none !important;
}

.config-runner-accordion .accordion-header {
    border-radius: 0px !important;
}

.config-runner-accordion .accordion-body {
    padding: 0px !important;
}

.config-current-selection-text {
    font-size: 14px;
    color: #333;
    margin-bottom: 2px;
}

.config-template-status {
    font-size: 12px;
}

.config-run-btn {
    width: 100%;
}

.config-view-history-btn {
    width: 100%;
}

/* Runner accordion item styles */
.config-analysis-type-dropdown {
    margin-bottom: 15px;
}

/* Individual Oils Tag Input Styles */
.config-individual-oils-wrapper {
    position: relative;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 0px 6px;
    min-height: 40px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    background-color: var(--background-color);
    cursor: text;
}

.config-individual-oils-wrapper:focus-within {
    border-color: #2298D5;
    outline: none;
}

.config-individual-oils-tags-container {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}

.dash-dropdown-value-item:not(:first-child)::before
{
    content: '';
}
.dash-dropdown-value
{
    display: flex !important;
    gap: 4px !important;
}

#columns_to_remove .dash-dropdown-value-item,
#individual_oil_id_filter-value .dash-dropdown-value-item,
.config-oil-tag {
    display: inline-flex;
    align-items: center;
    background-color: #0E3D55;
    color: #ffffff;
    padding: 4px 8px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
    gap: 6px;
}

.config-oil-tag-close {
    background: transparent;
    border: none;
    color: #ffffff;
    cursor: pointer;
    font-size: 16px;
    font-weight: bold;
    line-height: 1;
    padding: 0;
    margin: 0;
    width: 16px;
    height: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: background-color 0.2s;
}

.config-oil-tag-close:hover {
    background-color: rgba(255, 255, 255, 0.2);
}

.config-individual-oils-input {
    flex: 1;
    border: none;
    outline: none;
    padding: 4px 0;
    min-width: 150px;
    font-size: 12px;
    background: transparent;
}

.config-individual-oils-input::placeholder {
    color: #808080;
}

.config-individual-oils-input-wrapper {
    flex: 1;
    min-width: 150px;
}

.config-cce-oil-filter {
    width: 100%;
}

.config-cce-oil-filter .Select-control {
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
    min-height: 30px !important;
}

.config-cce-oil-filter .Select-placeholder {
    color: #808080;
    font-size: 12px;
    padding: 4px 0 !important;
}

.config-cce-oil-filter .Select-input {
    padding: 4px 0 !important;
}

.config-cce-oil-filter .Select-value-label {
    font-size: 12px !important;
    padding: 4px 0 !important;
}

.config-cce-oil-filter .Select-multi-value-wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}

.config-individual-oils-div {
    display: none;
    margin-bottom: 15px;
}

.config-param-header {
    font-size: 14px;
    font-weight: 500;
    color: #000000;
    margin-bottom: 4px;
}

.config-param-label {
    font-size: 12px;
}

.config-param-col {
    margin-bottom: 2px;
    padding-left: 6px !important;
    padding-right: 6px !important;
}

.config-dropdown-font {
    background-color: var(--background-color) !important;
    border: 1px solid var(--border-color) !important;
    font-size: 12px;
}

.assembler-config-dropdown,
#individual_oil_id_filter {
    background-color: var(--background-color) !important;
    border: 1px solid var(--border-color) !important;
    border-radius: 8px !important;
}
/* Hidden placeholder components */
.config-hidden-placeholders {
    display: none;
}

.config-param-header-container {
    border: 1px solid var(--border-color);
}

.config-param-header-container h6 {
    padding: 12px;  
    -webkit-border-radius-top-left: 8px !important;
    -webkit-border-radius-top-right: 8px !important;
    -moz-border-radius-top-left: 8px !important;
    -moz-border-radius-top-right: 8px !important;
    -ms-border-radius-top-left: 8px !important;
    -ms-border-radius-top-right: 8px !important;
    -o-border-radius-top-left: 8px !important;
    -o-border-radius-top-right: 8px !important;
    background-color: #717171;
    font-size: 18px;
    font-weight: 500;
    color: var(--text-color-2);
    margin: 0;
}

.config-param-header-container table {
    width: 100%;
    padding: 0px;
    border-collapse: collapse;
    overflow: hidden;
    margin: 0;
    border: none !important;
}
.table-bordered{
    border: 1px solid #EFEFEF;
}

.config-param-header-container table th, .config-param-header-container table td {
    font-size: 14px;
    border: 1px solid #EFEFEF;
    font-weight: 400;
    color: var(--text-color);
    text-align: left;
}

.config-param-header-container table th {
    margin: 0;
    background-color: #2298D5;
    color: var(--text-color-2);
}

/* Alternating row colors for table */
.config-param-header-container table tbody tr:nth-child(even) td {
    background-color: #F9F9F9;
}

.config-param-header-container table tbody tr:nth-child(odd) td {
    background-color: var(--background-color-2);
}

/* Fallback for tables without tbody */
.config-param-header-container table tr:nth-child(even) td {
    background-color: #F9F9F9;
}

.config-param-header-container table tr:nth-child(odd) td {
    background-color: var(--background-color-2);
}

/* Ensure header row (th) is not affected */
.config-param-header-container table tr:nth-child(even) th,
.config-param-header-container table tr:nth-child(odd) th {
    background-color: #2298D5;
}


.config-param-value-container {
    font-size: 12px;
    font-weight: 400;
    width: auto;
    background-color: #F2F2F2;
    color: var(--text-color);
    padding: 6px;
    border-radius: 4px;
    -webkit-border-radius: 4px;
    -moz-border-radius: 4px;
    -ms-border-radius: 4px;
    -o-border-radius: 4px;
}

.config-param-value-container 
{
    border-radius: 8px !important;
}

.config-sidebar-area
{
    padding: 12px !important;
    background-color: #ffffff;
}

.config-top {
    width: 100%;
    padding: 12px;
    background-color: var(--background-color-2);
    border-radius: 0px;
    border-bottom: 1px solid var(--border-color);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
}

.config-page-root {
    min-height: 100vh;
    background-color: var(--background-color, #F2F2F2);
}

.config-page-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    background-color: var(--background-color-2);
    border-bottom: 1px solid var(--border-color);
    box-shadow: 0 1px 3px rgba(16, 24, 40, 0.06);
}

.config-top-row-primary {
    border-bottom: none;
}

.config-top-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}

.config-exp-type-group {
    flex: 1;
    display: flex;
    justify-content: center;
}

.config-metadata-section,
.config-metadata-split {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr) auto;
    gap: 12px 20px;
    align-items: center;
    margin-bottom: 12px;
    flex-shrink: 0;
}

.config-metadata-field {
    display: flex;
    min-width: 0;
}

.config-metadata-field.config-metadata-inline {
    flex-direction: row;
    align-items: center;
    gap: 10px;
}

.config-metadata-label {
    flex: 0 0 auto;
    font-size: 12px;
    font-weight: 600;
    color: #475467;
    margin-bottom: 0;
    white-space: nowrap;
}

.config-metadata-input {
    flex: 1;
    min-width: 0;
    background-color: #ffffff !important;
    border: 1px solid #d0d5dd !important;
    border-radius: 6px !important;
    font-size: 14px !important;
    padding: 7px 10px !important;
    height: 36px;
}

.config-metadata-input:focus {
    border-color: #0E3D55 !important;
    box-shadow: 0 0 0 2px rgba(14, 61, 85, 0.12) !important;
    outline: none !important;
}

.config-metadata-dropdown {
    width: 200px;
    flex: 0 0 200px;
    font-size: 14px;
}

.config-metadata-db {
    justify-self: end;
}

.config-metadata-db.config-metadata-inline {
    flex: 0 0 auto;
}

.config-metadata-dropdown .Select-control {
    border-radius: 6px !important;
    border-color: #d0d5dd !important;
    min-height: 36px !important;
    height: 36px !important;
    background-color: #ffffff !important;
    box-shadow: none !important;
}

.config-metadata-dropdown .Select-value,
.config-metadata-dropdown .Select-placeholder {
    line-height: 34px !important;
}

.config-metadata-dropdown .Select-input {
    height: 34px !important;
}

.config-content-wrap {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

hr
{
    margin: 12px 0 8px 0 !important;
}
.config-main-row
{
    margin-top: 64px;
    padding: 16px 16px;
    height: calc(100vh - 56px);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    gap: 16px;
    box-sizing: border-box;
    background-color: var(--background-color, #F2F2F2);
}

.config-progress-full-width {
    flex-shrink: 0;
}

.config-two-column-layout {
    display: flex;
    flex: 1 1 auto;
    gap: 16px;
    min-height: 0;
    overflow: hidden;
}

.config-builder-column,
.config-right-column {
    flex: 1 1 50%;
    min-width: 0;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.config-panel {
    flex: 1 1 auto;
    background: var(--background-color-2);
    border: 1px solid var(--border-color);
    border-radius: 10px;
    padding: 12px;
    overflow-y: auto;
    overflow-x: hidden;
    min-height: 0;
    box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
}

.config-form-area,
.config-assembler-area,
.config-runner-area {
    min-width: 0;
}

.config-subsection {
    margin-bottom: 12px;
}

.config-subsection:last-child {
    margin-bottom: 0;
}

.config-subsection-title {
    font-size: 13px;
    font-weight: 600;
    color: #344054;
    margin: 0 0 10px 0;
    padding-bottom: 6px;
    border-bottom: 1px solid #eaecf0;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.config-subsection-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
    padding-bottom: 6px;
    border-bottom: 1px solid #eaecf0;
}

.config-subsection-header .config-subsection-title {
    border-bottom: none;
    padding-bottom: 0;
    margin-bottom: 0;
}

.config-runner-subsection {
    margin-top: 0;
}

.config-runner-subsection .config-subsection-header {
    margin-bottom: 8px;
    padding-bottom: 4px;
}

.config-param-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px 12px;
    align-items: start;
}

.config-param-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.config-param-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.config-param-grid-fit {
    grid-template-columns: repeat(auto-fit, minmax(108px, 1fr));
}

.config-grid-field[style*="grid-column: span 2"] {
    grid-column: span 2;
}

.config-grid-field {
    display: flex;
    flex-direction: column;
    gap: 5px;
    min-width: 0;
}

.config-grid-label {
    font-size: 11px;
    font-weight: 500;
    color: #667085;
    margin: 0;
    line-height: 1.3;
}

.config-grid-field input.form-control,
.config-grid-field .Select-control,
.config-grid-field .dash-dropdown {
    width: 100% !important;
    min-height: 32px;
    font-size: 13px;
    border-radius: 6px;
    border-color: #d0d5dd;
}

.config-checkbox-row {
    display: flex;
    flex-wrap: wrap;
    gap: 16px 24px;
    margin-top: 10px;
    align-items: center;
}

.config-grid-checkbox,
.config-grid-checkbox-slot {
    font-size: 13px;
}

.config-lump-stack {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.config-lump-inline-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 14px;
}

.config-inline-field-lump-scheme {
    flex: 0 1 auto;
    max-width: 320px;
}

.config-inline-field-lump-scheme .form-control {
    width: 150px;
    flex: 0 0 150px;
    min-width: 0;
}

.config-lump-inline-row .config-lump-checkbox.form-check {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    gap:8px;
    margin-bottom: 0;
    padding-left: 1.75em;
}

.config-lump-inline-row .config-lump-checkbox .form-check-input {
    margin-top: 0;
    float: none;
    width: 1em;
    height: 1em;
}

.config-lump-inline-row .config-lump-checkbox .form-check-label {
    line-height: 1.2;
    padding-top: 0;
    font-size: 13px;
    font-weight: 500;
    color: #344054;
}

.config-inline-field {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    min-width: 0;
    flex: 0 1 auto;
}

.config-inline-field-wide {
    flex: 1 1 220px;
    min-width: 180px;
}

.config-inline-label {
    flex: 0 0 auto;
    font-size: 12px;
    font-weight: 500;
    color: #344054;
    white-space: nowrap;
    margin: 0;
}

.config-inline-field .form-control {
    flex: 1;
    min-width: 100px;
}

.config-lump-checkbox {
    flex: 0 0 auto;
    white-space: nowrap;
    margin: 0;
    font-size: 13px;
}

.config-lump-checkbox-slot {
    flex: 0 0 auto;
}

.config-lump-preview {
    width: 100%;
    overflow: auto;
    position: relative;
    isolation: isolate;
}

.config-lump-preview .config-param-header-container {
    border-radius: 6px;
    overflow: hidden;
}

.config-assembler-area {
    padding-bottom: 14px;
    margin-bottom: 14px;
    border-bottom: 1px solid var(--border-color);
}

/* Assembler Configuration */
.config-assembler-sections {
    color: var(--text-color);
}

.config-assembler-sections .config-subsection-title {
    color: #344054;
    border-bottom-color: #eaecf0;
}

.config-assembler-sections .config-grid-field input.form-control {
    background-color: var(--background-color-2);
    border: 1px solid #d0d5dd;
    color: var(--text-color);
}

.config-assembler-sections .config-grid-field input.form-control::placeholder {
    color: #98a2b3;
}

.config-assembler-sections .assembler-config-dropdown,
.config-assembler-sections .assembler-config-dropdown .dash-dropdown-trigger {
    background-color: var(--background-color) !important;
    border: 1px solid var(--border-color) !important;
    border-radius: 8px !important;
    color: var(--text-color) !important;
}

.config-assembler-sections .assembler-config-dropdown .Select-control {
    background-color: var(--background-color) !important;
    border-color: var(--border-color) !important;
    color: var(--text-color) !important;
}

.config-assembler-sections .assembler-config-dropdown .Select-value-label,
.config-assembler-sections .assembler-config-dropdown .Select-placeholder {
    color: var(--text-color) !important;
}

.config-runner-area .config-runner-accordion {
    border: none;
    --bs-accordion-border-width: 0;
}

.config-runner-area .config-runner-accordion .accordion-item {
    border: none;
    background: transparent;
}

.config-runner-area .config-runner-accordion .accordion-header,
.config-runner-area .config-runner-accordion .accordion-button {
    display: none !important;
    height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden;
}

.config-runner-area .config-runner-accordion .accordion-body {
    padding: 0;
}

.config-runner-area .config-runner-accordion .accordion-body > * {
    margin-bottom: 8px;
}

.config-runner-area .config-runner-accordion .accordion-body > *:last-child {
    margin-bottom: 0;
}

.config-runner-area .config-individual-oils-div {
    margin-bottom: 8px;
}

/* Analysis Type is not exposed on Configure — hide before callbacks run */
.config-page-root .config-analysis-type-section,
.config-runner-area .config-analysis-type-section,
.config-page-root #hybrid_analysis_type_section,
.config-page-root #taylor_analysis_type_section,
.config-runner-area #hybrid_analysis_type_section,
.config-runner-area #taylor_analysis_type_section {
    display: none !important;
}

.config-analysis-type-dropdown {
    margin-bottom: 0;
}

.config-runner-area .config-param-header {
    font-size: 11px;
    font-weight: 600;
    color: #667085;
    margin: 6px 0 4px 0;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.config-runner-type-radio.common-selector {
    min-width: 168px;
    width: 168px;
    margin-bottom: 0;
    flex-shrink: 0;
}

.config-runner-type-radio {
    flex-shrink: 0;
}

.config-runner-area .config-param-header:first-of-type {
    margin-top: 0;
}

.config-runner-area .row {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 0;
}

.config-runner-area .config-param-col {
    width: 100% !important;
    max-width: none !important;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.config-runner-area .config-param-col .form-label,
.config-runner-area .config-param-col .config-param-label {
    font-size: 11px;
    font-weight: 500;
    color: #667085;
    margin: 0;
    white-space: normal;
}

.config-runner-area .config-param-col input.form-control,
.config-runner-area .config-param-col .Select-control {
    width: 100% !important;
    max-width: none !important;
    min-height: 32px;
    font-size: 13px;
    border-radius: 6px;
}

.config-builder-sections .config-main-content-card,
.config-assembler-sections .config-main-content-card {
    margin: 0;
    border: none;
    padding: 0;
    background: transparent;
}

@media (max-width: 1200px) {
    .config-param-grid,
    .config-param-grid-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .config-metadata-split {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    }

    .config-metadata-db {
        grid-column: 1 / -1;
        justify-self: stretch;
    }

    .config-metadata-db .config-metadata-dropdown {
        width: 100%;
        flex: 1;
        max-width: none;
    }
}

@media (max-width: 900px) {
    .config-param-grid,
    .config-param-grid-3 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .config-runner-area .row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .config-main-row {
        height: auto;
        min-height: calc(100vh - 56px);
        overflow-y: auto;
    }
}

@media (max-width: 1100px) {
    .config-two-column-layout {
        flex-direction: column;
        overflow-y: auto;
    }

    .config-metadata-split {
        grid-template-columns: 1fr;
    }

    .config-metadata-db {
        grid-column: auto;
    }

    .config-metadata-field.config-metadata-inline {
        flex-wrap: nowrap;
    }

    .config-metadata-file .config-metadata-label {
        white-space: normal;
        max-width: 42%;
        line-height: 1.2;
    }

    .config-lump-inline-row {
        gap: 8px 12px;
    }

    .config-inline-field-lump-scheme {
        max-width: 100%;
    }

    .config-inline-field-lump-scheme .form-control {
        width: 130px;
        flex: 0 0 130px;
    }

    .config-panel {
        overflow: auto;
        flex: 0 0 auto;
        max-height: none;
    }

    .config-param-grid,
    .config-runner-area .row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
.config-experiment-name-container {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 10px;
    justify-content: center;
    max-width: 400px;
    margin: 0 auto;
}

.config-experiment-name-label {
    margin-bottom: 0;
    white-space: nowrap;
    font-weight: 500;
}

.config-experiment-name-input {
    flex: 1;
    min-width: 200px;
    background-color: #FFFFFF !important;
    border: none !important;
    border-radius: 0px !important;
    border-bottom: 1px dashed var(--border-color) !important;
}

.config-experiment-name-input:focus {
    box-shadow: none !important;
    outline: none !important;
}

.run-complete-experiment-btn {
    font-weight: 500;
    font-size: 14px;
    padding: 6px 12px;
    background-color: #0E3D55;
    border: none;
    border-radius: 6px;
    text-align: center;
}

.run-complete-experiment-btn:hover {
    background-color: #0E3D55;
    box-shadow: none;
    transform: none;
}

.back-to-result-btn {
    font-weight: 600;
    font-size: 14px;
    text-align: center;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 2px solid #0E3D55;
    border-radius: 8px;
    background-color: #E8F4F8;
    color: #0E3D55;
    cursor: pointer;
    box-shadow: 0 1px 3px rgba(14, 61, 85, 0.12);
    transition: background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.back-to-result-btn:hover {
    background-color: #0E3D55;
    color: #FFFFFF;
    box-shadow: 0 2px 8px rgba(14, 61, 85, 0.25);
}

.back-to-result-btn-icon {
    width: 20px;
    height: 20px;
}

.back-to-result-btn:hover .back-to-result-btn-icon {
    filter: brightness(0) invert(1);
}

.back-to-result-btn-text {
    color: inherit;
    font-weight: 600;
}

/* Common radio button styling */
.common-selector {
    display: flex;
    text-align: left;
    margin-bottom: 10px;
    overflow: hidden;
    border: 1px solid #dee2e6;
    border-radius: 8px;
    height: 32px;
}

/* Style for the form-check in dbc RadioItems */
.common-selector .form-check {
    flex: 1;
    margin: 0;
    padding: 0;
    position: relative;
    border-right: 1px solid #dee2e6;
    height: 32px;
}

/* Remove border from last item */
.common-selector .form-check:last-child {
    border-right: none;
}

/* Style for the labels in dbc RadioItems */
.common-selector .form-check-label {
    width: 100%;
    padding: 8px 0;
    background-color: #ffffff;
    cursor: pointer;
    text-align: center;
    font-size: 13.5px;
    font-weight: 400;
    line-height: 16px;
    display: block;
}

/* Hide the actual radio input */
.common-selector .form-check-input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

/* Hover state */
.common-selector .form-check-label:hover {
    background-color: #0000000D;
}

/* Target the checked state directly */
.common-selector .form-check-input:checked + .form-check-label {
    background-color: #0000000D !important;
    color: #000000CC !important;
    font-weight: 500 !important;
}

.Select--multi .Select-value
{
    border: 1px solid var(--border-color) !important;
    border-radius: 6px !important;
}

.Select--multi .Select-value-icon
{
    border: none !important;
    color: var(--text-color) !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    background-color: #0000000D !important;
}

/* DASH SPECIFIC SELECTORS - Target the actual structure Dash creates */
/* This targets the label when its corresponding radio is checked */
.common-selector [type="radio"]:checked ~ label,
.common-selector label[data-checked="true"],
.common-selector .radio-checked {
    width: 100%;
    background-color: #0000000D !important;
    color: #000000CC !important;
    font-weight: 500 !important;
}

/* Target any element with checked attribute in the common-selector */
.common-selector [checked],
.common-selector [aria-checked="true"] {
    background-color: #0000000D !important;
    color: #000000CC !important;
    font-weight: 500 !important;
}

/* Target any element with the active class that Dash might be using */
[class*="RadioItem"][class*="active"],
[class*="radio"][class*="active"],
[class*="RadioItem--"][class*="checked"],
[class*="radio--"][class*="checked"] {
    background-color: #0000000D !important;
    color: #000000CC !important;
    font-weight: 500 !important;
}

/* Assembler Configuration Section - Dropdowns open upward */
/* Force all dropdown menus in assembler config section to open upward */
.assembler-config-section .Select-menu-outer {
    position: absolute !important;
    bottom: 100% !important;
    top: auto !important;
    margin-bottom: 2px !important;
    transform: none !important;
    max-height: 200px !important;
}

.assembler-config-section .Select-menu {
    max-height: 200px !important;
    overflow-y: auto !important;
}

/* Target dropdown container - similar to depth-x-dropdown-container pattern */
.assembler-config-dropdown-container .Select-menu-outer {
    position: absolute !important;
    bottom: 100% !important;
    top: auto !important;
    margin-bottom: 2px !important;
    transform: none !important;
    max-height: 200px !important;
}

.assembler-config-dropdown-container .Select-menu {
    max-height: 200px !important;
    overflow-y: auto !important;
}

/* Target dropdowns with the assembler-config-dropdown class */
.assembler-config-dropdown .Select-menu-outer {
    position: absolute !important;
    bottom: 100% !important;
    top: auto !important;
    margin-bottom: 2px !important;
    transform: none !important;
    max-height: 200px !important;
}

.assembler-config-dropdown .Select-menu {
    max-height: 200px !important;
    overflow-y: auto !important;
}

/* More aggressive selectors for assembler config dropdowns */
.assembler-config-section .Select-control .Select-menu-outer,
.assembler-config-section .Select.is-open .Select-menu-outer,
.assembler-config-dropdown-container .Select.is-open .Select-menu-outer {
    position: absolute !important;
    bottom: 100% !important;
    top: auto !important;
    margin-bottom: 2px !important;
    transform: none !important;
    max-height: 200px !important;
}

#individual_oil_filter_container {
    border: 1px solid var(--border-color);
    border-left: none;
    border-top-left-radius: 0px !important;
    border-bottom-left-radius: 0px !important;
    background-color: var(--background-color-2);
    border-radius: 8px;
    padding: 4px;
    height: 100%;
    display: flex;
    align-items: center;
    gap: 4px;
    overflow: visible;
    position: relative;
    z-index: 2;
}

#individual_oil_filter_container .form-label {
    margin: 0 !important;
    white-space: nowrap;
    flex-shrink: 0;
}

/* Constrain multi-select dropdown height to match nav-tabs-container */
#individual_oil_id_filter {
    flex: 1;
    min-width: 0;
    position: relative;
    z-index: 2;
}

#individual_oil_id_filter .dash-dropdown-content,
#individual_oil_id_filter .Select-menu-outer,
#individual_oil_id_filter.Select.is-open .Select-menu-outer,
#individual_oil_filter_container .Select-menu-outer {
    z-index: 12000 !important;
}

#individual_oil_id_filter .Select-control {
    height: 40px !important;
    max-height: 40px !important;
    min-height: 40px !important;
    overflow-y: auto !important;
    /* Do not clip "10100 (Tier 1)" — show full option label / selected value */
    overflow-x: auto !important;
    box-sizing: border-box !important;
}

#individual_oil_id_filter .Select-multi-value-wrapper {
    max-height: 32px !important;
    overflow-y: auto !important;
    overflow-x: auto !important;
    display: flex !important;
    flex-wrap: wrap !important;
    align-content: flex-start !important;
    align-items: center !important;
    gap: 4px !important;
    padding: 2px 0 !important;
}

/* Smooth scrolling for selected items */
#individual_oil_id_filter .Select-multi-value-wrapper::-webkit-scrollbar {
    width: 6px;
}

#individual_oil_id_filter .Select-multi-value-wrapper::-webkit-scrollbar-track {
    background: transparent;
}

#individual_oil_id_filter .Select-multi-value-wrapper::-webkit-scrollbar-thumb {
    background: var(--border-color);
    border-radius: 3px;
}

#individual_oil_id_filter .Select-multi-value-wrapper::-webkit-scrollbar-thumb:hover {
    background: var(--text-color);
}

/* Ensure individual value tags don't break layout; allow full "ID (Tier n)" string */
#individual_oil_id_filter .Select--multi .Select-value {
    margin: 2px 4px 2px 0 !important;
    max-width: none !important;
}
#individual_oil_id_filter .Select--multi .Select-value-label,
#individual_oil_id_filter .Select-menu-outer .Select-option {
    white-space: nowrap !important;
    text-overflow: clip !important;
    overflow: visible !important;
    max-width: none !important;
}


/* Keep input area visible and constrained */
#individual_oil_id_filter .Select-input {
    max-height: 32px !important;
    height: auto !important;
    flex-shrink: 0 !important;
    line-height: 32px !important;
}

/* Ensure the Select-control maintains fixed height even with many items */
#individual_oil_id_filter .Select--multi .Select-control {
    height: 40px !important;
    max-height: 40px !important;
    min-height: 40px !important;
}

#plot_type_radio {
    display: flex !important;
    flex-wrap: wrap !important;
    white-space: normal !important;
    justify-content: flex-end;
    align-items: center;
    gap: 4px 10px;
    max-width: 100%;
}

#plot_type_radio .form-check {
    flex-shrink: 0 !important;
    white-space: nowrap !important;
    margin-right: 4px;
}

#plot_type_radio .form-check:last-child {
    margin-right: 0;
}

#plot_type_radio .form-check-label {
    margin-left: -6px;
    white-space: nowrap !important;
    font-size: 12.5px;
    padding-left: 4px;
    padding-right: 4px;
}


.inventory-plot-graph .js-plotly-plot .plotly .user-select-none
{
    height: 520px !important;
}

.histogram-plot-graph {
    width: 100%;
}

.histogram-plot-graph .js-plotly-plot,
.histogram-plot-graph .js-plotly-plot .plotly,
.histogram-plot-graph .js-plotly-plot .plotly .user-select-none
{
    width: 100% !important;
}

.histogram-plot-graph .js-plotly-plot .plotly .user-select-none
{
    height: 450px !important;
}

.histogram-plot-col .card,
.histogram-plot-col .card-body {
    height: 100%;
}

.histogram-plot-col .card {
    max-height: 460px !important;
}

#curve_plots_display .histogram-plot-graph .js-plotly-plot .plotly .user-select-none
{
    height: 450px !important;
}

#curve_plots_display .inventory-plot-graph:not(.histogram-plot-graph) .js-plotly-plot .plotly .user-select-none
{
    height: 500px !important;
}

#curve_plots_display .inventory-plot-graph .js-plotly-plot .plotly .main-svg
{
    margin-top: -60px !important;
}

#result_history_plot_tabs
{
    padding: 4px !important;
    gap: 4px !important;
}

 .js-plotly-plot .plotly .svg-container .gtitle
{
  fill: white !important;
  color: white !important;
}   

#hybrid_cce_oil_filter 
{
    border: none !important;
    background-color: transparent !important;
}

.assembler-config-dropdown
{
    padding-top: 2px !important;
    padding-bottom: 2px !important;
}

#columns_to_remove .dash-dropdown-trigger
{
    padding: 0 4px 0 0 !important;
}

#individual_oil_id_filter .dash-dropdown-trigger
{
    padding: 0 4px 0 4px !important;
}

#experiment_type_dropdown .dash-dropdown-value-item,
#cce_experiment_dropdown-value .dash-dropdown-value-item
{
    padding: 0 12px !important;
}

#hybrid_weighting_mode-value,
#columns_to_remove-value{
    margin-left: 6px !important;
}


/* Manage Template — Story 4a / 4b */
.manage-template-main-container {
    padding: 16px !important;
}

.manage-template-top {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    padding: 12px 14px;
    margin-bottom: 12px;
}

.manage-template-tabs .nav-link {
    font-size: 13px;
    font-weight: 500;
}

.manage-template-model-config-section {
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid #eaecf0;
}

.manage-template-model-config-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin: 12px 0;
}

.mt-viz-toolbar {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 12px 14px;
    margin-bottom: 12px;
}

.mt-viz-toolbar-primary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px;
}

.mt-viz-toolbar-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

.mt-goto-predicted-btn {
    font-size: 13px;
    text-decoration: none !important;
    white-space: nowrap;
}

.predicted-results-toolbar {
    margin-bottom: 12px;
}

.predicted-results-table-scroll {
    overflow-x: auto;
}

.predicted-results-table {
    min-width: 900px;
    font-size: 13px;
}

.predicted-results-th {
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
}

.predicted-region-chip {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 12px;
    font-size: 11px;
    white-space: nowrap;
}

.predicted-region-trust {
    background: #c8e6c9;
    color: #1b5e20;
}

.predicted-region-sparse {
    background: #ffe0b2;
    color: #e65100;
}

.predicted-region-none {
    background: #ffcdd2;
    color: #b71c1c;
}

.predicted-region-unknown {
    background: #f2f2f2;
    color: #666;
}

.predicted-region-legend-chip {
    white-space: normal;
}

.predicted-results-legend {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 10px;
    font-size: 12px;
}

.predicted-results-legend-label {
    font-weight: 600;
    color: #475467;
}

.summary-region-legend {
    margin-bottom: 12px;
}

.page-transition-enter {
    animation: pageFadeIn 0.25s ease-out;
}

@keyframes pageFadeIn {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Unified page chrome */
.page-chrome {
    background-color: var(--background-color-2);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    overflow: hidden;
}

.page-chrome.header-section {
    padding: 0;
    gap: 0;
    overflow: visible;
}

.page-chrome-app-nav-row {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 12px;
    padding: 10px 16px;
    border-bottom: 1px solid var(--border-color);
    background-color: var(--background-color-2);
    position: relative;
    z-index: 30;
    overflow: visible;
}

.page-chrome-back-btn {
    font-size: 13.50px;
    font-weight: 500;
    line-height: 16px;
    color: #000000CC;
    text-decoration: none;
}

.page-chrome-action-link,
.page-chrome-back-link {
    display: inline-flex;
    text-decoration: none;
    color: inherit;
}

.page-chrome-main-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    position: relative;
    z-index: 11;
}

.page-chrome-action-btn {
    white-space: nowrap;
    min-height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 6px 12px !important;
    font-size: 12px !important;
    font-weight: 600;
    background-color: #0E3D55;
    color: #fff;
    border: none;
    border-radius: 6px;
    -webkit-border-radius: 6px;
    -moz-border-radius: 6px;
    -ms-border-radius: 6px;
    -o-border-radius: 6px;
    cursor: pointer;
}

.page-chrome-action-btn:hover {
    background-color: #071E2B;
}

.page-chrome-action-btn:click {
    background-color: #071E2B;
}


.home-predicted-results-btn {
    min-width: 124px;
}

.main-upload-nav-row {
    display: flex;
    align-items: stretch;
    flex-wrap: nowrap;
    gap: 16px;
    flex: 1;
    min-width: 0;
    width: 100%;
    position: relative;
    overflow: visible;
}

.main-upload-input-panel {
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 0 0 360px;
    min-width: 300px;
    max-width: 400px;
    overflow: visible;
}

.main-upload-input-stage {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.main-upload-input-stage .main-upload-input-box-wrap {
    flex: 1 1 auto;
    min-width: 0;
}

.main-upload-input-title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--text-color, #212529);
    line-height: 1.2;
}

.main-upload-input-box-wrap {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    border: 2px dashed var(--border-color, #ced4da);
    border-radius: 10px;
    padding: 14px 16px 12px;
    background: var(--background-color, #fff);
    min-height: auto;
    transition: border-color 0.2s ease, background-color 0.2s ease;
}

.main-upload-input-box-wrap--selected {
    border-color: var(--primary-color, #0d6efd);
    background: rgba(13, 110, 253, 0.04);
}

.main-upload-input-box-wrap--uploaded {
    border-color: #198754;
    border-style: solid;
    background: rgba(25, 135, 84, 0.05);
}

.main-upload-excel-preview {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    flex: 0 0 96px;
    width: 96px;
    height: 96px;
    min-height: 96px;
    max-height: 96px;
    aspect-ratio: 1 / 1;
    padding: 8px;
    border: 1px solid #d1d5db;
    border-radius: 10px;
    background: #f9fafb;
    color: #374151;
    cursor: pointer;
    box-sizing: border-box;
    transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.15s ease;
}

.main-upload-excel-preview:hover {
    background: #f3f4f6;
    border-color: #9ca3af;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.main-upload-excel-preview:active {
    transform: scale(0.98);
}

.main-upload-excel-img {
    display: block;
    width: 52px;
    height: 52px;
    object-fit: contain;
    pointer-events: none;
}

.main-upload-excel-hint {
    display: none;
    font-size: 0.68rem;
    font-weight: 600;
    line-height: 1.2;
    text-align: center;
    color: #0f5132;
}

.main-upload-excel-preview:hover .main-upload-excel-hint {
    display: block;
}

.main-upload-excel-preview:hover .main-upload-excel-name {
    display: none;
}

.main-upload-excel-name {
    width: 100%;
    font-size: 0.6rem;
    font-weight: 600;
    line-height: 1.25;
    text-align: center;
    word-break: break-word;
    overflow: hidden;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    display: -webkit-box;
    color: #4b5563;
}

.main-upload-input-dropzone {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 64px;
    cursor: pointer;
}

.main-upload-box-footer {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    flex-wrap: wrap;
    min-height: 0;
}

.main-upload-status-badge {
    flex: 1 1 auto;
    min-width: 0;
    text-align: center;
}

.main-upload-status-badge:empty {
    display: none;
}

.main-upload-uploaded-badge,
.main-upload-selected-badge {
    display: inline-block;
    max-width: 100%;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: top;
}

.main-upload-nav-upload-btn {
    flex: 0 0 auto;
    min-width: 96px;
}

.main-upload-dropzone-content {
    text-align: center;
    pointer-events: none;
}

.main-upload-drop-title {
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--text-color, #212529);
    margin-bottom: 4px;
}

.main-upload-drop-hint-row {
    font-size: 0.82rem;
    color: var(--muted-text-color, #6c757d);
}

.main-upload-drop-types {
    font-size: 0.75rem;
    color: var(--muted-text-color, #6c757d);
    margin-top: 4px;
}

.main-upload-nav-drop-link {
    color: var(--primary-color, #0d6efd);
    text-decoration: underline;
    pointer-events: none;
}

.main-upload-uploaded-badge {
    background: #d1e7dd;
    color: #0f5132;
}

.main-upload-selected-badge {
    background: #cfe2ff;
    color: #084298;
}

.main-upload-file-preview {
    font-size: 0.8rem;
    line-height: 1.35;
    min-height: 0;
}

.main-upload-file-preview:empty {
    display: none;
}

.main-upload-config-message {
    flex: 0 0 auto;
    width: 100%;
    min-height: 0;
}

.main-upload-config-message:empty {
    display: none;
}

.main-upload-inline-alert {
    font-size: 0.8rem;
    padding: 8px 12px;
    margin: 0;
}

.main-upload-nav-model-config {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: 10px;
    padding-top: 24px;
    position: relative;
    z-index: 31;
    overflow: visible;
    pointer-events: auto;
}

.main-upload-nav-model-body {
    display: grid;
    grid-template-columns: minmax(300px, 360px) minmax(0, 1fr) minmax(0, 1fr);
    grid-template-rows: auto auto;
    gap: 8px 12px;
    width: 100%;
    min-width: 0;
    align-items: center;
    position: relative;
    z-index: 32;
}

.main-upload-nav-field-model {
    grid-column: 1;
    grid-row: 1;
}

.main-upload-nav-field-database {
    grid-column: 1;
    grid-row: 2;
}

.main-upload-nav-field-cce {
    grid-column: 2;
    grid-row: 1;
}

.main-upload-nav-field-dl {
    grid-column: 2;
    grid-row: 2;
}

.main-upload-nav-field-visc {
    grid-column: 3;
    grid-row: 1;
}

.main-upload-nav-run-wrap {
    grid-column: 3;
    grid-row: 2;
    justify-self: end;
    align-self: center;
    flex: 0 0 auto;
}

.main-upload-nav-field-inline {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.main-upload-field-label {
    margin: 0;
    flex: 0 0 auto;
    min-width: 62px;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--text-color, #212529);
    line-height: 1.2;
    white-space: nowrap;
}

.main-upload-nav-field-inline .dash-dropdown,
.main-upload-nav-field-inline .Select {
    flex: 1 1 auto;
    min-width: 0;
}

.main-upload-nav-model-body .home-model-dropdown,
.main-upload-nav-model-body .home-database-dropdown,
.main-upload-nav-model-body .dash-dropdown,
.main-upload-nav-model-body .Select-control {
    width: 100% !important;
    min-height: 32px;
}

.main-upload-nav-model-body .Select.is-open,
.main-upload-nav-model-body .main-upload-nav-field-inline:focus-within {
    z-index: 40;
}

.main-upload-nav-model-body .Select-menu-outer,
.main-upload-nav-model-body .dash-dropdown-content,
.page-chrome-app-nav-row .main-upload-nav-model-body .Select-menu-outer,
.page-chrome-app-nav-row .main-upload-nav-model-body .dash-dropdown-content {
    z-index: 12050 !important;
}

.main-upload-nav-model-config-below {
    flex: 1 0 100%;
    max-width: 100%;
    margin-top: 4px;
}

.main-upload-nav-run-btn {
    flex: 0 0 auto;
    min-width: 72px;
}

@media (max-width: 1200px) {
    .main-upload-nav-row {
        flex-wrap: wrap;
    }

    .main-upload-input-panel {
        flex: 1 1 100%;
        max-width: none;
    }

    .main-upload-nav-model-config {
        flex: 1 1 100%;
        padding-top: 0;
    }

    .main-upload-nav-model-body {
        grid-template-columns: 1fr;
        grid-template-rows: auto;
    }

    .main-upload-nav-field-model,
    .main-upload-nav-field-database,
    .main-upload-nav-field-cce,
    .main-upload-nav-field-dl,
    .main-upload-nav-field-visc,
    .main-upload-nav-run-wrap {
        grid-column: 1;
        grid-row: auto;
    }

    .main-upload-nav-run-wrap {
        justify-self: end;
        width: 100%;
        display: flex;
        justify-content: flex-end;
    }
}

.manage-template-predicted-results-loading-wrap {
    display: block;
    position: relative;
    background-color: var(--pvt-shimmer-surface);
}

.mt-prediction-shimmer-active {
    min-height: 280px;
    padding: 8px 0;
    width: 100%;
    box-sizing: border-box;
}

.home-pvt-plots-display .mt-prediction-shimmer-active {
    width: 100%;
}

.mt-prediction-shimmer-grid--single,
.home-pvt-plots-display .mt-prediction-shimmer-grid {
    grid-template-columns: 1fr;
    width: 100%;
}

.app-global-upload-progress {
    margin: 0 0 12px;
}

.predicted-status-badge {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 0.75rem;
    font-weight: 600;
}

.predicted-status-pending {
    background: #fff3cd;
    color: #856404;
}

.predicted-status-running {
    background: #cce5ff;
    color: #004085;
}

.predicted-status-completed {
    background: #d4edda;
    color: #155724;
}

.predicted-status-failed {
    background: #f8d7da;
    color: #721c24;
}

.predicted-results-run-btn {
    min-width: 52px;
}

.predicted-results-run-modal-fields {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.predicted-results-run-modal-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 16px;
}

.predicted-results-run-modal-row:last-child {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.predicted-results-run-modal-fields .config-grid-field {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
    margin-bottom: 0;
}

.predicted-results-run-modal-fields .config-grid-label {
    margin-bottom: 0;
    font-size: 0.8rem;
}

.predicted-results-run-modal-fields .dash-dropdown,
.predicted-results-run-modal-fields .Select-control {
    width: 100% !important;
    min-height: 34px;
}

@media (max-width: 640px) {
    .predicted-results-run-modal-row,
    .predicted-results-run-modal-row:last-child {
        grid-template-columns: 1fr;
    }
}

.predicted-results-download-actions {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex-wrap: nowrap;
}

.predicted-results-download-btn {
    min-height: 31px;
    height: 31px;
    padding: 0.25rem 0.65rem;
    line-height: 1.2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    white-space: nowrap;
}

.predicted-results-delete-btn {
    min-height: 31px;
    height: 31px;
    padding: 0.25rem 0.65rem;
    line-height: 1.2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    white-space: nowrap;
}

.predicted-results-delete-checklist {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.predicted-results-sample-link {
    border: none;
    background: transparent;
    color: #0E3D55;
    font-weight: 600;
    padding: 0;
    text-align: left;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.predicted-results-sample-link:hover,
.predicted-results-sample-link:focus {
    color: #0a2d3f;
    text-decoration: underline;
}

.predicted-results-td-param {
    white-space: nowrap;
}

.predicted-results-row-expanded td {
    border-bottom: none;
}

.predicted-results-td-sample {
    white-space: nowrap;
}

.main-upload-progress-section {
    margin: 12px;
}

.page-chrome-template-row {
    padding: 8px 16px 6px;
    border-bottom: 1px solid var(--border-color);
    background-color: var(--background-color-2);
}

.page-chrome-template-row .manage-template-tabs .nav-tabs {
    border-bottom: none;
    margin-bottom: 0;
    gap: 4px;
}

.page-chrome-template-row .manage-template-tabs .nav-link {
    font-size: 13px;
    font-weight: 500;
    padding: 7px 14px;
    border-radius: 6px;
    color: var(--text-color);
    border: 1px solid transparent;
}

.page-chrome-template-row .manage-template-tabs .nav-link:hover {
    background-color: rgba(14, 61, 85, 0.06);
}

.page-chrome-template-row .manage-template-tabs .nav-link.active {
    background-color: #0E3D55;
    color: #fff;
    border-color: #0E3D55;
}

.page-chrome-toolbar-left {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    flex: 1 1 auto;
    min-width: 0;
}

.page-chrome-toolbar-divider {
    width: 1px;
    align-self: stretch;
    min-height: 32px;
    background-color: var(--border-color);
    flex-shrink: 0;
}

.page-chrome-toolbar-left .home-toolbar-model-db {
    flex: 1 1 280px;
    min-width: 220px;
    max-width: 460px;
    padding: 0;
    margin-bottom: 0;
}

.page-chrome-nav-wrap,
.page-chrome-template-tabs-left,
.page-chrome-nav-row {
    display: none;
}

.page-chrome-toolbar-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    background-color: transparent;
    border: none;
    border-radius: 0;
    padding: 10px 16px;
    position: relative;
    z-index: 10;
    overflow: visible;
}

.page-chrome-row-left,
.page-chrome-row-right {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.page-chrome-row-left {
    flex: 1 1 auto;
    min-width: 0;
}

.page-chrome-row-right {
    flex-shrink: 0;
    margin-left: auto;
}

/* Shared empty states */
.page-empty-state {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 200px;
    padding: 32px 24px;
    margin-top: 4px;
    background-color: var(--background-color-2);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    text-align: center;
}

.page-empty-state-compact {
    min-height: 120px;
    padding: 24px 20px;
    margin-top: 0;
    border: none;
    border-radius: 0;
    background-color: transparent;
    justify-content: flex-start;
    text-align: left;
}

.page-empty-state-title {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-color);
    margin: 0;
}

.page-empty-state-text {
    font-size: 13px;
    font-weight: 400;
    color: #667085;
    margin: 0;
    line-height: 1.5;
    max-width: 520px;
}

.page-content-panel {
    background-color: var(--background-color-2);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 16px;
}

.manage-model-list-panel.page-content-panel,
.manage-template-card.page-content-panel {
    padding: 0;
    overflow: hidden;
}

.manage-template-predicted-results-shimmer {
    min-height: auto;
    background-color: var(--pvt-shimmer-surface);
    width: 100%;
    box-sizing: border-box;
}

.mt-viz-performance-panel .plot-display-container.visible,
.mt-viz-performance-panel .plot-display-container:not(.display-none) {
    display: block;
}

.mt-viz-performance-panel .plot-display-container.display-none {
    display: none !important;
}

.mt-viz-performance-panel .panel-empty-state,
.mt-viz-performance-panel .mt-prediction-empty,
.home-pvt-plots-display .panel-empty-state,
.home-pvt-plots-display .mt-prediction-empty {
    min-height: 320px;
}

.mt-prediction-plots-body {
    min-height: 320px;
}

.mt-prediction-plots-loading-wrap {
    position: relative;
    width: 100%;
    min-height: 320px;
}

.manage-template-container .mt-prediction-plot-tabs .nav-tabs {
    flex-wrap: nowrap;
}

.manage-template-container .mt-prediction-plot-tabs .nav-link {
    white-space: nowrap;
}

.mt-viz-two-column .home-col-left,
.mt-viz-two-column .home-col-right {
    min-width: 0;
}

.mt-prediction-plots-loading-wrap ._dash-loading {
    position: relative;
    width: 100%;
    min-height: inherit;
}

.mt-prediction-plots-loading-wrap ._dash-loading-callback {
    position: absolute !important;
    inset: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    width: 100% !important;
    height: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    z-index: 1;
}

.mt-prediction-plots-loading-wrap ._dash-loading-callback > div {
    width: 100%;
}

.mt-prediction-tabs-wrap {
    position: relative;
    z-index: 3;
}

.mt-prediction-shimmer-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    width: 100%;
    box-sizing: border-box;
}

.mt-prediction-shimmer-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    border-radius: 8px;
    overflow: hidden;
    background: var(--background-color-2);
    border: 1px solid var(--border-color);
}

.mt-prediction-shimmer-header {
    height: 40px;
    flex-shrink: 0;
    border-radius: 0;
    margin: 0;
}

.mt-prediction-shimmer-body {
    height: 320px;
    flex: 1 1 auto;
    border-radius: 0;
    margin: 0;
}

@media (max-width: 767.98px) {
    .mt-prediction-shimmer-grid {
        grid-template-columns: 1fr;
    }
}

.manage-model-list-loading-wrap {
    width: 100%;
    position: relative;
    min-height: 280px;
    display: block;
    visibility: visible;
    background-color: var(--pvt-shimmer-surface);
}

.manage-model-list-content {
    padding: 16px;
    visibility: visible;
    min-height: auto;
    background-color: var(--pvt-shimmer-surface);
}

.manage-model-list-shimmer-active,
.manage-model-list-content.manage-model-list-shimmer-active {
    min-height: auto;
    background-color: var(--pvt-shimmer-surface);
}

.manage-model-list-loading-wrap ._dash-loading {
    position: relative;
    width: 100%;
    min-height: inherit;
    display: block;
    background-color: var(--pvt-shimmer-surface);
}

.manage-model-list-loading-wrap ._dash-loading-callback {
    position: absolute !important;
    inset: 0 !important;
    display: flex !important;
    align-items: stretch !important;
    justify-content: stretch !important;
    width: 100% !important;
    min-height: inherit !important;
    visibility: visible !important;
    opacity: 1 !important;
    background-color: var(--pvt-shimmer-surface) !important;
    z-index: 5;
}

.manage-model-list-loading-wrap ._dash-loading-callback > div {
    width: 100%;
    background-color: var(--pvt-shimmer-surface);
}

.manage-template-predicted-results-loading-wrap ._dash-loading {
    position: relative;
    width: 100%;
    min-height: inherit;
    display: block;
    background-color: var(--pvt-shimmer-surface);
}

.manage-template-predicted-results-loading-wrap ._dash-loading-callback {
    position: absolute !important;
    inset: 0 !important;
    display: flex !important;
    align-items: stretch !important;
    justify-content: stretch !important;
    width: 100% !important;
    min-height: inherit !important;
    visibility: visible !important;
    opacity: 1 !important;
    background-color: var(--pvt-shimmer-surface) !important;
    z-index: 5;
}

.manage-template-predicted-results-loading-wrap ._dash-loading-callback > div {
    width: 100%;
    background-color: var(--pvt-shimmer-surface);
}

.manage-template-predicted-results-content {
    background-color: var(--pvt-shimmer-surface);
}

/* Manage Model list shimmer */
.model-list-shimmer {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 8px 4px;
    width: 100%;
    background-color: var(--pvt-shimmer-surface);
    border-radius: 8px;
    box-sizing: border-box;
}

.model-list-shimmer-row {
    display: grid;
    grid-template-columns: 2fr 1fr 2fr 1.2fr;
    gap: 12px;
    align-items: center;
}

.model-list-shimmer-header .model-list-shimmer-cell {
    height: 14px;
    opacity: 0.85;
}

.model-list-shimmer-cell {
    height: 32px;
    border-radius: 6px;
    animation: shimmer 2s infinite linear;
    background: linear-gradient(
        90deg,
        var(--pvt-shimmer-body-1) 8%,
        var(--pvt-shimmer-body-2) 18%,
        var(--pvt-shimmer-body-1) 33%
    );
    background-size: 200% 100%;
}

.model-list-shimmer-cell-actions {
    max-width: 120px;
}

.manage-template-card.page-content-panel > .manage-template-visualization-panel,
.manage-template-card.page-content-panel > .manage-template-upload-panel,
.manage-template-card.page-content-panel > .manage-template-predicted-results-panel {
    padding: 16px;
}

.config-panel-assembler {
    flex-shrink: 0;
    margin-bottom: 12px;
}

.config-panel-assembler .config-assembler-area {
    padding-bottom: 0;
    margin-bottom: 0;
    border-bottom: none;
}

/* App nav — pill segmented control */
.app-page-nav.common-selector.app-nav-compact {
    margin-bottom: 0;
    height: auto;
    min-height: 36px;
    min-width: 0;
    padding: 3px;
    gap: 2px;
    border: 1px solid #e4e7ec;
    border-radius: 10px;
    background-color: #f2f4f7;
    overflow: visible;
}

.app-page-nav.common-selector .form-check {
    flex: 1 1 0;
    height: 32px;
    border-right: none;
    border-radius: 7px;
    overflow: hidden;
}

.app-page-nav.common-selector .form-check-label {
    width: 100%;
    height: 100%;
    padding: 6px 12px;
    font-size: 12.5px;
    line-height: 20px;
    font-weight: 500;
    color: #475467;
    white-space: nowrap;
    cursor: pointer;
    border-radius: 7px;
    background-color: transparent;
    transition: background-color 0.15s ease, color 0.15s ease;
}

.app-page-nav.common-selector .form-check-label:hover {
    background-color: rgba(14, 61, 85, 0.08);
    color: #0E3D55;
}

.app-page-nav.common-selector .form-check-input {
    position: absolute;
    opacity: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    cursor: pointer;
    z-index: 2;
}

.app-page-nav.common-selector .form-check-input:checked + .form-check-label {
    background-color: #0E3D55 !important;
    color: #fff !important;
    font-weight: 600 !important;
    box-shadow: 0 1px 2px rgba(16, 24, 40, 0.12);
}

/* Override generic common-selector checked fallbacks for app nav */
.app-page-nav.common-selector [type="radio"]:checked ~ label,
.app-page-nav.common-selector label[data-checked="true"],
.app-page-nav.common-selector .radio-checked,
.app-page-nav.common-selector [checked],
.app-page-nav.common-selector [aria-checked="true"] {
    background-color: transparent !important;
    color: inherit !important;
    font-weight: inherit !important;
}

.app-page-nav.common-selector .form-check-input:checked + .form-check-label,
.app-page-nav.common-selector label[data-checked="true"] {
    background-color: #0E3D55 !important;
    color: #fff !important;
    font-weight: 600 !important;
}

.mt-chrome-row-right {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.home-performance-plot-controls-row {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 10px 12px;
    margin-top: 8px;
    padding-top: 8px;
    padding-bottom: 12px;
    border-top: 1px solid var(--border-color);
    width: 100%;
    min-width: 0;
}

.home-performance-plot-controls-row .home-param-file-field {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
    min-width: 0;
}

.home-performance-plot-controls-row .home-param-file-field .home-inline-label {
    margin-bottom: 0;
    white-space: nowrap;
}

.home-performance-plot-controls-row .home-param-file-dropdown {
    min-width: 140px;
    width: 180px;
}

.home-performance-plot-controls-row .home-performance-tabs-wrap {
    flex: 1 1 auto;
    min-width: 0;
    overflow-x: auto;
}

.home-performance-plot-controls-row .home-plot-type-toolbar {
    flex: 0 0 auto;
    margin-left: auto;
    justify-content: flex-end;
}

@media (max-width: 1200px) {
    .home-performance-plot-controls-row {
        flex-wrap: wrap;
    }

    .home-performance-plot-controls-row .home-performance-tabs-wrap {
        flex: 1 1 100%;
        order: 2;
    }

    .home-performance-plot-controls-row .home-plot-type-toolbar {
        flex: 1 1 100%;
        order: 3;
        justify-content: flex-end;
        margin-left: 0;
    }

    .home-performance-plot-controls-row .home-param-file-field {
        order: 1;
    }
}

#plot_type_radio_container {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    min-width: 0;
}

#plot_type_radio_container > div {
    display: inline-flex;
    flex-wrap: nowrap;
    justify-content: flex-end;
    align-items: center;
    gap: 2px;
    max-width: 100%;
}

#plot_type_radio {
    flex-wrap: nowrap !important;
    white-space: nowrap !important;
}

#plot_type_radio .form-check {
    flex: 0 0 auto !important;
    white-space: nowrap !important;
    margin-right: 0;
}

#plot_type_radio .form-check-label {
    margin-left: 0;
    white-space: nowrap !important;
    font-size: 12px;
    padding: 6px 10px;
    line-height: 20px;
}

/* Manage model inline expand */
.manage-model-list-row-detail td {
    padding: 0 !important;
    border-bottom: 1px solid var(--border-color);
    background-color: var(--background-color, #f8fafc);
}

.manage-model-inline-detail {
    padding: 12px 16px 16px;
    border-top: 1px dashed var(--border-color);
}

.manage-model-inline-detail-title {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: #808080;
    text-transform: uppercase;
}

.manage-model-inline-columns {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-top: 10px;
}

.manage-model-inline-col {
    border-radius: 6px;
    padding: 10px;
    min-height: 120px;
    max-height: none;
    overflow: visible;
}

.manage-model-inline-col-body {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.manage-model-inline-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2px 12px;
}

.manage-model-inline-lump-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.manage-model-inline-lump-row {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.manage-model-inline-lump-label {
    font-size: 11px;
    font-weight: 600;
    color: #6b7280;
}

.manage-model-inline-lump-components {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.manage-model-inline-lump-components .config-param-value-container {
    font-size: 10px;
    padding: 2px 6px;
}

.manage-model-inline-lump-scale {
    margin-top: 4px;
}

.manage-model-inline-col-builder {
    background-color: #e8f5e9;
}

.manage-model-inline-col-lump {
    background-color: #fff8e1;
}

.manage-model-inline-col-runner {
    background-color: #e3f2fd;
}

.manage-model-inline-col-label {
    font-size: 12px;
    font-weight: 600;
    margin-bottom: 8px;
    color: #374151;
}

.manage-model-inline-field {
    font-size: 11px;
    line-height: 1.5;
    padding: 2px 0;
}

.manage-model-inline-field-label {
    font-weight: 600;
    color: #6b7280;
}

.manage-model-inline-block-title {
    font-size: 11px;
    font-weight: 600;
    margin-bottom: 4px;
    color: #374151;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding-bottom: 2px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.manage-model-inline-block-note {
    font-size: 10px;
    color: #9ca3af;
    margin-bottom: 6px;
}

.manage-model-action-btn.manage-model-clone-btn {
    color: white;
}

.manage-model-list-th-actions {
    width: 380px;
}

@media (max-width: 900px) {
    .manage-model-inline-columns {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 991px) {
    .page-chrome-app-nav-row {
        padding: 8px 12px;
    }

    .page-chrome-toolbar-left {
        width: 100%;
    }

    .page-chrome-toolbar-divider {
        display: none;
    }

    .page-chrome-toolbar-left .home-toolbar-model-db {
        max-width: none;
        width: 100%;
    }

    .page-chrome-row-right {
        width: 100%;
        margin-left: 0;
        justify-content: flex-end;
    }

    .app-page-nav.common-selector.app-nav-compact {
        min-width: 100%;
    }
}

@media (max-width: 900px) {
    .manage-template-model-config-grid {
        grid-template-columns: 1fr;
    }
}