/* 90_feature.css  ─────────────────────────────────────────────
   Loaded last – use for “surgical” tweaks to individual parts
   of the app that Bootstrap + base sheet can’t handle.
───────────────────────────────────────────────────────────────*/

/* 5) Dynamic title styling */
.dyn-title {
    color: #555555;
    font-size: 14px;
}
/*── Add any future widget-level rules below this line ─────────*/

/* Tabs follow the shared neutral + blue underline system */
.nav-tabs .nav-link {
    color: var(--color-muted);
    background-color: transparent;
}

.nav-tabs .nav-link.active {
    color: var(--color-primary);
    background-color: transparent;
    border-bottom-color: var(--color-primary);
}

#project-ops-page .project-ops-tabs {
    padding-top: 0.35rem;
}

#project-ops-page .project-ops-tabs > .nav-tabs {
    margin: 0;
    padding: 0 1.5rem;
}

#project-ops-page .project-ops-tabs > .tab-content {
    margin: 0;
    padding: 0;
}

#project-ops-page .project-ops-tabs .tab-content > .tab-pane {
    padding: 0;
}

#project-ops-page .project-ops-tab-panel {
    padding-top: 1.1rem;
}

#project-ops-page .project-ops-tab-panel > .card:first-child {
    margin-top: 0;
}

#project-ops-page .project-ops-pane-inner {
    padding: 1.5rem 1.5rem 0;
}

#internal-management-shell .provisioning-company-row {
    align-items: stretch;
}

#internal-management-shell .provisioning-companies-col {
    display: flex;
}

#internal-management-shell .provisioning-companies-card {
    min-height: 100%;
}

#internal-management-shell .provisioning-project-row {
    margin-top: 0;
}

#internal-management-shell .table-responsive {
    overflow: visible;
}

#internal-management-shell td,
#internal-management-shell th {
    overflow: visible;
}

#internal-management-shell .provisioning-actions-menu {
    position: relative;
    z-index: 20;
}

#internal-management-shell .provisioning-actions-menu .dropdown-menu {
    z-index: 1080;
}

#internal-management-shell .provisioning-inline-actions {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

#internal-management-shell .provisioning-project-name-btn {
    font-size: inherit;
    line-height: inherit;
}

#internal-management-shell .provisioning-selected-row > td {
    background-color: #eef6ff;
    box-shadow: inset 0 1px 0 #d7e8ff, inset 0 -1px 0 #d7e8ff;
}

#internal-management-shell .provisioning-selected-row > td:first-child {
    border-left: 4px solid #2f80ed;
    padding-left: calc(var(--bs-table-cell-padding-x, 0.5rem) - 4px);
}

#internal-management-shell .provisioning-selected-company-row > td:first-child .btn-link,
#internal-management-shell .provisioning-selected-project-row > td:first-child .btn-link,
#internal-management-shell .provisioning-project-name-btn.is-selected-project {
    color: #155eef;
    font-weight: 700;
}

#internal-management-shell .table-hover > tbody > tr.provisioning-selected-row:hover > * {
    background-color: #e4f0ff;
}

#internal-management-shell .table-hover > tbody > tr:not(.provisioning-selected-row):hover > * {
    background-color: #f7faff;
}

#internal-management-shell .provisioning-selected-row .btn-link:focus-visible,
#internal-management-shell .provisioning-selected-row button:focus-visible {
    outline: 2px solid #7fb3ff;
    outline-offset: 2px;
    border-radius: 4px;
}

#internal-management-shell .provisioning-icon-btn {
    min-width: 2rem;
    height: 2rem;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--color-border);
    background-color: var(--color-surface);
    color: var(--color-text);
    line-height: 1;
    font-weight: 700;
}

#internal-management-shell .provisioning-icon-btn:hover,
#internal-management-shell .provisioning-icon-btn:focus {
    background-color: var(--color-bg-light);
    border-color: var(--color-border);
    color: var(--color-text);
    box-shadow: none;
}

#internal-management-shell .provisioning-status-select {
    min-width: 8.5rem;
    max-width: 10rem;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    line-height: 1.2;
}

#internal-management-shell .provisioning-status-select.is-running {
    background-color: #12b76a;
    border-color: #12b76a;
    color: #ffffff;
}

#internal-management-shell .provisioning-status-select.is-paused {
    background-color: #fdb022;
    border-color: #fdb022;
    color: #ffffff;
}

#internal-management-shell .provisioning-status-select:focus {
    box-shadow: none;
}

.arraylab-brand {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    white-space: nowrap;
}

.brand-delius {
    color: #000000;
    font-weight: 700;
}

.brand-io,
.brand-product {
    color: var(--primary-blue);
    font-weight: 700;
}

.brand-divider {
    color: var(--primary-blue);
    margin: 0 0.15rem;
}

.brand-admin-badge {
    color: var(--color-muted);
    font-size: 0.82rem;
    font-weight: 500;
    margin-left: 0.9rem;
}

/* Style for gear settings dropdown */
.settings-dropdown {
    position: relative;
}
.settings-dropdown .dropdown-menu {
    background-color: var(--color-bg-main);
    box-shadow: none !important;
    color: var(--primary-blue);
    z-index: 10001;                /* ensure menu stays above navbar */
    position: absolute;            /* prevent layout shift when shown */
    right: 0;
    top: 100%;
    margin-top: 0.5rem;            /* offset so it clears the toggle */
}

.settings-dropdown .dropdown-item {
    color: var(--primary-blue);
}

.settings-dropdown .dropdown-item:hover {
    background-color: var(--color-bg-light);
    color: var(--primary-blue);
}

.settings-dropdown .dropdown-toggle {
    background: var(--color-bg-main);
    border: 1px solid var(--app-nav-border);
    box-shadow: none !important;
    color: var(--app-nav-text);
    width: 2.2rem;
    height: 2.2rem;
    border-radius: var(--radius-full);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}

.settings-dropdown .dropdown-toggle:hover,
.settings-dropdown .dropdown-toggle:focus,
.settings-dropdown .dropdown-toggle.show {
    background: var(--color-bg-main);
    color: var(--color-primary);
    border-color: var(--app-nav-border);
}

.settings-dropdown .dropdown-toggle::after {
    display: none;
}

.settings-dropdown-signout,
.settings-dropdown-signout:hover,
.settings-dropdown-signout:focus {
    color: #b42318 !important;
}

/* Style for Select Data dropdowns */
.select-data-dropdown .dropdown-toggle {
    background-color: var(--primary-blue);
    color: white;
    border: 1px solid var(--primary-blue);
}

.select-data-dropdown .dropdown-toggle:hover,
.select-data-dropdown .dropdown-toggle:focus {
    background-color: var(--primary-blue-dark);
    color: white;
}

.select-data-dropdown .dropdown-menu {
    background-color: var(--color-bg-main);
    box-shadow: none !important;
    color: var(--primary-blue);
}

.select-data-dropdown .dropdown-item {
    color: var(--primary-blue);
}

.select-data-dropdown .dropdown-item:hover {
    background-color: var(--color-bg-light);
    color: var(--primary-blue);
}

/* Make checklist switches match navbar blue */
#settings-modal .form-check-input:checked {
    background-color: var(--primary-blue);
    border-color: var(--primary-blue);
}

#settings-modal .form-check-input:focus {
    box-shadow: 0 0 0 0.25rem rgba(37, 99, 235, 0.25);
    border-color: var(--primary-blue);
}

/* Reusable blue button style */
.nav-blue-btn {
    background-color: var(--primary-blue);
    color: white;
    border: none;
    padding: 0.35rem 0.75rem;
    border-radius: 0.25rem;
    box-shadow: none;
}

.nav-blue-btn.rounded-pill {
    border-radius: 50rem;
}

.nav-blue-btn:hover,
.nav-blue-btn:focus {
    background-color: var(--primary-blue-dark);
    color: white;
    box-shadow: none;
}

/* Reusable destructive action button style matching the primary action sizing */
.nav-danger-btn {
    background-color: #dc5c51;
    color: white;
    border: none;
    padding: 0.35rem 0.75rem;
    border-radius: 0.25rem;
    box-shadow: none;
}

.nav-danger-btn:hover,
.nav-danger-btn:focus {
    background-color: #c84a40;
    color: white;
    box-shadow: none;
}

/* Reusable black button style */
.nav-black-btn {
    background-color: var(--color-bg-main);
    color: white;
    border: none;
    padding: 0.35rem 0.75rem;
    border-radius: 0.25rem;
    box-shadow: none;
}

.nav-black-btn:hover,
.nav-black-btn:focus {
    background-color: var(--color-surface);
    color: white;
    box-shadow: none;
}

/* Reusable white button style with Delius blue text */
.btn.nav-white-blue-btn {
    background-color: var(--color-surface);
    color: var(--primary-blue);
    border: 1px solid var(--primary-blue);
    padding: 0.35rem 0.75rem;
    border-radius: 0.25rem;
    box-shadow: none;
}

.btn.nav-white-blue-btn:hover,
.btn.nav-white-blue-btn:focus {
    background-color: var(--color-bg-light);
    color: var(--primary-blue-dark);
    border-color: var(--primary-blue-dark);
    box-shadow: none;
}

.btn.nav-white-blue-btn:disabled,
.btn.nav-white-blue-btn.disabled {
    background-color: var(--color-surface);
    color: var(--primary-blue);
    border-color: var(--primary-blue);
    opacity: 0.65;
}

/* Reusable neutral button style for overlay/modal dismiss actions */
.overlay-neutral-btn {
    background-color: var(--color-surface);
    color: var(--color-text);
    border: 1px solid var(--color-border);
    padding: 0.35rem 0.75rem;
    border-radius: 0.25rem;
    box-shadow: none;
}

.overlay-neutral-btn:hover,
.overlay-neutral-btn:focus {
    background-color: var(--color-bg-light);
    color: var(--color-text);
    border-color: var(--color-border);
    box-shadow: none;
}

/* Let recall continue hydrating behind the modal without flashing crisp charts/tables. */
#project-loading-overlay {
    background-color: rgba(15, 23, 42, 0.28) !important;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}

/* Purpose-built cancel action for the busy overlay */
.btn.overlay-cancel-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    background-color: var(--color-surface);
    color: var(--color-text);
    border: 1px solid var(--color-border);
    padding: 0.5rem 1rem;
    border-radius: 999px;
    font-weight: 600;
    letter-spacing: 0.01em;
    line-height: 1.2;
    box-shadow: none;
    transition:
        background-color 0.18s ease,
        border-color 0.18s ease,
        color 0.18s ease;
}

.btn.overlay-cancel-btn:hover,
.btn.overlay-cancel-btn:focus {
    background-color: var(--color-bg-light);
    color: var(--color-text);
    border-color: var(--color-border);
    box-shadow: none;
}

.btn.overlay-cancel-btn:focus-visible {
    outline: 2px solid #7fb3ff;
    outline-offset: 2px;
}

.btn.overlay-cancel-btn:active {
    background-color: var(--color-bg-light);
    color: var(--color-text);
    border-color: var(--color-border);
    box-shadow: none;
}

.btn.overlay-cancel-btn:disabled,
.btn.overlay-cancel-btn.disabled,
.btn.overlay-cancel-btn[disabled] {
    background-color: var(--color-bg-light);
    color: var(--color-muted);
    border-color: var(--color-border);
    box-shadow: none;
    opacity: 1;
    cursor: wait;
    transform: none;
}

/* Outline style for navbar buttons */
.nav-white-outline-btn {
    background-color: transparent;
    color: white;
    border: 1px solid white;
    padding: 0.35rem 0.6rem;
    border-radius: 0.25rem;
    line-height: 1.2;
    white-space: normal;
    box-shadow: none;
}

.nav-white-outline-btn:hover,
.nav-white-outline-btn:focus {
    background-color: rgba(255, 255, 255, 0.15);
    color: white;
}

.navbar-btn-group .nav-white-outline-btn:disabled,
.navbar-btn-group .nav-white-outline-btn.disabled,
.navbar-btn-group .nav-white-outline-btn[disabled] {
    background-color: #495057 !important;
    border-color: #6c757d !important;
    color: rgba(255, 255, 255, 0.65) !important;
    box-shadow: none !important;
    cursor: not-allowed;
    opacity: 1;
}

.navbar-btn-group .nav-white-outline-btn:disabled:hover,
.navbar-btn-group .nav-white-outline-btn.disabled:hover,
.navbar-btn-group .nav-white-outline-btn[disabled]:hover {
    background-color: #495057 !important;
    color: rgba(255, 255, 255, 0.65) !important;
}

/* Hide the tab navigation headers when using custom navbar buttons */
.no-tab-nav.nav,
.no-tab-nav > .nav,
.no-tab-nav > ul.nav {
    display: none !important;
}

/* Lock navbar dimensions so mode toggles don't shift it */
.navbar {
    overflow: visible;
    display: flex;
    align-items: center;
}

/* Sticky layout variables for the As-Built mode control */
:root {
    --asbuilt-mode-toggle-height: 2.4rem;
    --sticky-stack-gap: 0.4rem;
    --tracker-sticky-inline-inset: var(--bs-card-spacer-x, 1rem);
    --asbuilt-toggle-right-nudge: 0.75rem;
}

/* Header showing the current section */
.section-header {
    text-align: left;
    color: var(--color-muted);
    background-color: transparent;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: var(--space-xs);
    padding: 0;
    margin: 0;
    border-top: 0;
    border-left: 0;
    border-right: 0;
    border-bottom: 1px solid var(--color-border);
    min-height: 1.6rem;
}

.section-tab-group {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

/* Buttons used as section tabs within the header */
.section-tab-btn {
    color: var(--color-muted);
    text-transform: none;
    font-weight: 400;
    letter-spacing: normal;
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    background-color: transparent;
    box-shadow: none;
    padding: 0.3rem 0.6rem;
}

.section-tab-btn:hover,
.section-tab-btn:focus {
    color: var(--color-primary);
    background-color: transparent;
    border-bottom-color: transparent;
}

.section-tab-btn.active {
    background-color: transparent;
    color: var(--color-primary);
    border-bottom-width: 1px;
    border-bottom-color: rgba(37, 99, 235, 0.7);
    font-weight: 500;
}


/* Keep only the outer shell framed to avoid double-boxing */
.dash-container {
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.container-fluid.main-wrap {
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}

/* Spacing and style tweaks for navbar buttons */

.navbar-btn-group {
    display: flex;
    gap: 0.5rem;
    justify-content: center;
    /* margin-left previously used to offset the button group based on
       brand width. This caused the branding to jump when certain
       modes toggled. The group now stays naturally centered. */
    flex-wrap: nowrap;
}


.navbar-btn-group .nav-blue-btn,
.navbar-btn-group .dropdown-toggle.nav-blue-btn,
.navbar-btn-group .nav-white-outline-btn,
.navbar-btn-group .dropdown-toggle.nav-white-outline-btn {
    padding: 0.4rem 1rem;
    font-size: 0.8rem;
    text-align: center;
    white-space: nowrap;
    flex: 0 0 auto;
    line-height: 1.2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 3rem;
}

/* Home button alongside project title */
#project-title-container {
    position: relative;
    padding-left: var(--gap-main-sides) !important;
    padding-right: var(--gap-main-sides) !important;
}

#project-title {
    display: none;
}


.home-btn {
    display: inline-flex !important;
}

#section-tabs.section-header {
    justify-content: space-between !important;
    align-items: center !important;
    padding-left: var(--gap-main-sides) !important;
    padding-right: var(--gap-main-sides) !important;
}

.section-breadcrumb {
    color: var(--color-muted);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    margin-right: 0.5rem;
    text-transform: uppercase;
}

.home-btn i {
    font-size: 1rem;
}

.home-btn.nav-blue-btn {
    background-color: var(--color-bg-main);
    color: var(--color-muted);
    border: 1px solid var(--color-border);
    box-shadow: none;
}

.home-btn.nav-blue-btn:hover,
.home-btn.nav-blue-btn:focus {
    background-color: var(--color-bg-light);
    color: var(--color-primary);
    border-color: var(--color-border);
    box-shadow: none;
}

#asbuilt-mode-toggle,
.mode-switch-shell {
    display: inline-flex;
    align-items: center;
}

.mode-switch-label {
    color: var(--color-muted);
    font-weight: 600;
}

.mode-switch-tooltip {
    color: var(--color-muted);
}

.bracket-mode-switch-shell {
    margin-right: var(--asbuilt-toggle-right-nudge);
}

#asbuilt-mode-toggle {
    position: fixed;
    top: calc(var(--navbar-height) + var(--sticky-stack-gap));
    right: calc(var(--gap-main-sides) + var(--tracker-sticky-inline-inset) + var(--asbuilt-toggle-right-nudge) + 0.2rem);
    margin-left: auto;
    padding: 0.2rem 0.55rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background-color: var(--color-bg-main);
    box-shadow: none;
    z-index: 1020;
}

#asbuilt-mode-toggle .form-check {
    margin-bottom: 0;
}


/* outline style for navbar buttons */
.nav-blue-outline-btn {
    background-color: transparent;
    color: var(--primary-blue);
    border: 1px solid var(--primary-blue);
    padding: 0.4rem 1rem;
    font-size: 0.8rem;
    border-radius: 0.25rem;
    box-shadow: none;
}

.nav-blue-outline-btn:hover,
.nav-blue-outline-btn:focus {
    background-color: var(--primary-blue);
    color: white;
    box-shadow: none;
}

.navbar-btn-group .dropdown-toggle.nav-blue-outline-btn {
    width: 100%;
}




/* Sticky filter bar for PV Tracker Viewer */
.pv-dropdown-sticky {
    position: sticky;
    top: calc(var(--navbar-height) + var(--asbuilt-mode-toggle-height) + (var(--sticky-stack-gap) * 2));
    /* Keep tracker controls below the fixed navbar so navbar menus can overlay cleanly. */
    z-index: 1030;
    background-color: var(--color-bg-main);
    margin-top: calc(var(--gap-main-tb) / 2);
    padding: calc(var(--gap-main-tb) / 2) 0;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: none !important;
    margin-bottom: var(--gap-main-tb);
}

.pv-dropdown-sticky .sticky-inner {
    padding-left: calc(var(--gap-main-tb) / 2);
    padding-right: calc(var(--gap-main-tb) / 2);
}

/* Ensure PV Tracker dropdowns remain above other content */
.pv-dropdown-sticky .Select,
.pv-dropdown-sticky .Select-menu,
.pv-dropdown-sticky .Select-menu-outer {
    z-index: 1100;
}

/* Sticky filter bar for As-Built Location Errors overview */
.asbuilt-dropdown-sticky {
    position: sticky;
    top: calc(var(--navbar-height) + var(--asbuilt-mode-toggle-height) + (var(--sticky-stack-gap) * 2));
    /* Keep tracker controls below the fixed navbar so navbar menus can overlay cleanly. */
    z-index: 1030;
    background-color: var(--color-bg-main);
    padding: calc(var(--gap-main-tb) / 2) 0;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: none !important;
    margin-bottom: var(--gap-main-tb);
}

.asbuilt-dropdown-sticky .sticky-inner {
    padding-left: calc(var(--gap-main-tb) / 2);
    padding-right: calc(var(--gap-main-tb) / 2);
}

.asbuilt-dropdown-sticky .Select,
.asbuilt-dropdown-sticky .Select-menu,
.asbuilt-dropdown-sticky .Select-menu-outer {
    z-index: 1100;
}

/* Header colour coding for Error Analysis table */
.ag-theme-balham .header-light-blue {
    background-color: #ADD8E6 !important;
}

.ag-theme-balham .header-light-green {
    background-color: #62d973 !important;
}

/* Header colour coding for Bracket Aligner Detailed Table */
.ag-theme-balham .header-bracket-horizontal {
    background-color: #6D8196 !important;
}

.ag-theme-balham .header-bracket-vertical {
    background-color: #A8C3BC !important;
}

/* Header colour coding for Calculations Detailed Table */
.ag-theme-balham .ag-header-group-cell.header-earthworks,
.ag-theme-balham .ag-header-cell.header-earthworks,
.ag-theme-balham .header-earthworks .ag-header-cell-label,
.ag-theme-balham .header-earthworks .ag-header-group-cell-label {
    background: #c8b6a6 !important;
    color: #1f1f1f;
    border-color: #c8b6a6 !important;
}
.ag-theme-balham .ag-header-group-cell.header-earthworks .ag-header-cell-text,
.ag-theme-balham .ag-header-group-cell.header-earthworks .ag-header-group-text,
.ag-theme-balham .ag-header-cell.header-earthworks .ag-header-cell-text {
    color: #1f1f1f;
}

.ag-theme-balham .ag-header-group-cell.header-terrain-follow,
.ag-theme-balham .ag-header-cell.header-terrain-follow,
.ag-theme-balham .header-terrain-follow .ag-header-cell-label,
.ag-theme-balham .header-terrain-follow .ag-header-group-cell-label {
    background: #A8C3BC !important;
    color: #1f1f1f;
    border-color: #A8C3BC !important;
}
.ag-theme-balham .ag-header-group-cell.header-terrain-follow .ag-header-cell-text,
.ag-theme-balham .ag-header-group-cell.header-terrain-follow .ag-header-group-text,
.ag-theme-balham .ag-header-cell.header-terrain-follow .ag-header-cell-text {
    color: #1f1f1f;
}


.ag-theme-balham .ag-header-group-cell.header-lobf,
.ag-theme-balham .ag-header-cell.header-lobf,
.ag-theme-balham .header-lobf .ag-header-cell-label,
.ag-theme-balham .header-lobf .ag-header-group-cell-label {
    background: #4052D6 !important;
    color: #FFFFFF !important;
    border-color: #4052D6 !important;
}
.ag-theme-balham .ag-header-group-cell.header-lobf .ag-header-cell-text,
.ag-theme-balham .ag-header-group-cell.header-lobf .ag-header-group-text,
.ag-theme-balham .ag-header-cell.header-lobf .ag-header-cell-text {
    color: #FFFFFF !important;
}
/* Dark grey styling for calculated fields in Error Analysis table */
.ag-theme-balham .dark-grey-cell {
    background-color: #333333 !important;
    color: #FFFFFF;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.ag-theme-balham .dark-grey-cell.disabled-cell {
    background-color: #4d4d4d !important;
    color: #dcdcdc;
    cursor: not-allowed;
    opacity: 0.8;
}

.ag-theme-balham .terrain-follow-status-cell.tf-status-disabled {
    opacity: 0.5;
    pointer-events: none;
    color: #CFCFCF;
}

.dark-grey-cell,
.terrain-follow-status-cell {
    padding: 4px !important;
}

.ag-theme-balham .editable-status-cell {
    background-color: #fff3cd !important;
    color: #212529 !important;
}

/* Red background for flagged error conditions */
.ag-theme-balham .error-flag-cell {
    background-color: #FF746C !important;
    color: #FFFFFF;
}

/* Generic center alignment for grid cells */
.ag-theme-balham .center-cell {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

/* Highlight rows in As-built summary grid based on % Available */
#asbuilt-summary-grid .available-complete {
    background-color: #62d973 !important;
    color: #006600 !important;
}

#asbuilt-summary-grid .available-partial {
    background-color: #FFEE8C !important;
    color: #665500 !important;
}

/* Bold text for pinned bottom summary row */
#asbuilt-summary-grid .ag-floating-bottom .ag-row,
#asbuilt-summary-grid .ag-floating-bottom-container .ag-row {
    font-weight: bold;
}

/* Use dark text when highlighted rows expose dark grey cells */
.ag-row-hover .dark-grey-cell,
.ag-row-hover .dark-grey-cell *,
.ag-row.ag-row-selected .dark-grey-cell,
.ag-row.ag-row-selected .dark-grey-cell * {
    color: #000000 !important;
}

.ag-row-hover .dark-grey-cell,
.ag-row.ag-row-selected .dark-grey-cell {
    background-color: transparent !important;
}

/* Center ΔX/ΔY/ΔZ cells and highlight tolerance breaches */
.ag-theme-balham .delta-cell {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.ag-theme-balham .delta-out-of-tolerance {
    color: #FF746C !important;
    background-color: #FFE5E0 !important;
    font-weight: 600;
}
.ag-theme-balham .delta-error {
    color: #FF746C !important;
    background-color: #FFE5E0 !important;
    font-weight: 600;
}

.ag-theme-balham .delta-oot-cell {
    color: #FF746C !important;
    font-weight: 700 !important;
}

.ag-theme-balham .block-bold-cell {
    color: #000000 !important;
    font-weight: 700 !important;
}

@keyframes upload-complete-auto-dismiss {
    0% {
        opacity: 1;
        visibility: visible;
    }
    100% {
        opacity: 0;
        visibility: hidden;
    }
}

/* Foundation import ledger */
.foundation-import-step {
    border: 1px solid #dee2e6;
    border-radius: 0.75rem;
    padding: 1rem;
    background-color: var(--color-bg-main);
}

.foundation-import-ledger-head,
.foundation-import-row {
    align-items: center;
}

.foundation-import-ledger-head {
    margin-top: 0.75rem;
    margin-bottom: 0.35rem;
}

.foundation-import-row {
    border: 1px solid #e6e6e6;
    border-radius: 0.6rem;
    padding: 0.75rem 1rem;
    background-color: var(--color-bg-main);
    transition: background-color 0.2s ease;
}

.foundation-import-row:hover {
    background-color: var(--color-bg-light);
}

.foundation-import-row--disabled {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
}

.foundation-import-action-link {
    color: var(--primary-blue);
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
}

.foundation-import-action-link:hover {
    text-decoration: underline;
}

.foundation-calc-overview-hint {
    font-size: 0.78rem;
    font-weight: 500;
    text-transform: none;
    letter-spacing: normal;
}

.foundation-import-toolbar {
    margin-top: 0.75rem;
    border: 1px solid #e6e6e6;
    border-radius: 0.6rem;
    padding: 0.75rem 1rem;
    background-color: var(--color-bg-main);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.foundation-import-toolbar--disabled {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
}

.snapshot-action-link {
    background: none;
    border: none;
    padding: 0;
    font: inherit;
}

.snapshot-action-link:focus,
.snapshot-action-link:focus-visible {
    text-decoration: underline;
}

.snapshot-action-icon {
    font-size: 0.85em;
}

.snapshot-asbuilt-filename {
    font-weight: 500;
}

.snapshot-pool-table-wrapper {
    max-height: 1000px;
    overflow: hidden;
    position: relative;
}

.snapshot-pool-table-wrapper .table-responsive {
    max-height: 1000px;
    overflow-y: auto;
}

.snapshot-pool-table-wrapper .table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background-color: var(--color-bg-main);
}

.snapshot-pool-table-wrapper .table tbody td {
    padding-top: 0.4rem;
    padding-bottom: 0.4rem;
}

.foundation-import-clear {
    min-width: 72px;
}

.foundation-import-template {
    color: var(--primary-blue);
    font-weight: 600;
}

.foundation-import-template:hover {
    text-decoration: underline;
}

.foundation-import-dropdown-toggle {
    color: var(--primary-blue);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    min-height: 2rem;
    font-size: 1.35rem;
    line-height: 1;
    font-weight: 700;
    padding: 0.125rem 0.375rem;
    border: none;
    border-radius: 0.375rem;
    background: transparent;
    cursor: pointer;
}

.foundation-import-dropdown-toggle:hover,
.foundation-import-dropdown-toggle:focus {
    color: var(--primary-blue);
    text-decoration: none;
    background: rgba(8, 108, 255, 0.08);
}

.foundation-import-dropdown .dropdown-menu .dropdown-item {
    font-weight: 500;
}

/* Storage Details modal layout */
.storage-details-modal .modal-dialog {
    max-width: 95vw;
    width: 95vw;
    height: 92vh;
}

.storage-details-modal .modal-content {
    height: 92vh;
}

.storage-details-body {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.storage-details-table-wrapper {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    position: relative;
}

.storage-details-table-wrapper .table-responsive {
    overflow-x: auto;
    overflow-y: visible;
}

.storage-details-table-wrapper .table th,
.storage-details-table-wrapper .table td {
    padding-top: 0.35rem;
    padding-bottom: 0.35rem;
}

.storage-details-table-wrapper .table thead {
    position: sticky;
    top: 0;
    z-index: 2;
}

.storage-details-table-wrapper .table thead th {
    position: sticky;
    top: 0;
    background-color: var(--color-bg-main);
    z-index: 2;
    box-shadow: none;
    background-clip: padding-box;
}


.storage-details-section-toggle {
    padding: 0;
    font-weight: 600;
    color: #1f2d3d;
    text-decoration: none;
}

.storage-details-section-toggle:hover,
.storage-details-section-toggle:focus {
    color: #0d6efd;
    text-decoration: none;
}

.storage-details-child-row {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.2rem 0 0.2rem 1.5rem;
}

.storage-details-child-label {
    color: #4a5568;
}

.storage-details-child-size {
    color: #4a5568;
    font-variant-numeric: tabular-nums;
}

.storage-details-table-wrapper .badge {
    font-size: 0.7rem;
    padding: 0.25rem 0.5rem;
}

.storage-summary-row {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    column-gap: 2rem;
    row-gap: 0.25rem;
}

.storage-summary-primary {
    font-size: 1.4rem;
    font-weight: 600;
    color: #2f3742;
    min-width: 10rem;
}

.storage-summary-metrics {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
}

.storage-summary-metric {
    font-size: 1rem;
    color: #3f4a56;
}


.asbuilt-block-summary-row .ag-cell {
  background-color: #f7fafc;
  font-weight: 600;
}

.asbuilt-pile-detail-row .ag-cell {
  background-color: var(--color-bg-main);
  padding-left: 16px;
}

/* Calculation Overview – Level 1 text colours */
#calculation-overview-grid .calc-overview-calculated-text {
  color: #2f8f2f;
  font-weight: 600;
}

#calculation-overview-grid .calc-overview-not-calculated-alert {
  color: #c62828;
  font-weight: 600;
}

#calculation-overview-grid .calc-overview-detail-row-calculated .ag-cell {
  background-color: #62d973 !important;
}

#calculation-overview-grid .calc-overview-detail-row-pending .ag-cell {
  background-color: #FFEE8C !important;
}

/* Ensure AG Grid column/filter menus are not clipped inside the card body */
#calculation-overview-grid .ag-root-wrapper {
  overflow: visible;
}


.ag-cell-edit-wrapper select,
.ag-cell-edit-wrapper .ag-select,
.ag-select {
  min-width: 180px !important;
}

/* Compact react-select controls for Utilities → Reporting block dropdowns */
#reporting-bracket-block-dropdown .Select-control,
#reporting-itr-block-dropdown .Select-control {
    min-height: 31px;
    height: 31px;
}

/* Keep Reporting dropdown menus above card/table overflow containers */
.reporting-table-wrapper,
.reporting-table-wrapper .table-responsive {
    overflow: visible;
}

#reporting-bracket-block-dropdown,
#reporting-itr-block-dropdown {
    position: relative;
}

#reporting-bracket-block-dropdown .Select,
#reporting-itr-block-dropdown .Select {
    position: relative;
    z-index: 1;
}

#reporting-bracket-block-dropdown .Select.is-open,
#reporting-itr-block-dropdown .Select.is-open {
    z-index: 1300;
}

#reporting-bracket-block-dropdown .Select-placeholder,
#reporting-bracket-block-dropdown .Select--single > .Select-control .Select-value,
#reporting-itr-block-dropdown .Select-placeholder,
#reporting-itr-block-dropdown .Select--single > .Select-control .Select-value {
    line-height: 29px;
}
.legal-acceptance-modal .modal-content {
  border-radius: 18px;
}

.legal-acceptance-modal .modal-body {
  padding-top: 1.25rem;
}

.legal-document-scroll {
  max-height: min(62vh, 720px);
  overflow-y: auto;
  padding-right: 0.5rem;
  overscroll-behavior: contain;
}

.legal-document-section {
  color: #16233a;
  line-height: 1.65;
}

.legal-document-section h1,
.legal-document-section h2,
.legal-document-section h3 {
  color: #16233a;
  font-weight: 700;
}

.legal-document-section h2 {
  margin-top: 1.5rem;
  margin-bottom: 0.75rem;
  font-size: 1.05rem;
}

.legal-document-section h3 {
  margin-top: 1.15rem;
  margin-bottom: 0.6rem;
  font-size: 0.98rem;
}

.legal-document-section p,
.legal-document-section ul,
.legal-document-section ol {
  margin-bottom: 0.85rem;
}

.legal-document-section ul,
.legal-document-section ol {
  padding-left: 1.3rem;
}

.legal-document-section hr {
  margin: 1.25rem 0;
}

.legal-inline-link,
.legal-document-section a {
  color: #1e90ff;
  text-decoration: underline;
  font-weight: inherit;
  font-family: inherit;
}

.legal-inline-link:hover,
.legal-document-section a:hover {
  color: #167fe2;
}
