/* Dual-neutral theme foundation for desktop customer pages */
:root {
    --gh-surface-dark: #E8E8DE;
    --gh-surface-light: #F3F3EE;
    --gh-surface-contrast: #DFDFD4;
    --gh-border-neutral: #D8D6C9;
    --gh-text-neutral: #1F2937;
    --gh-text-muted-neutral: #4B5563;
    --gh-focus-ring-neutral: rgba(31, 41, 55, 0.18);
}

/* Applied only to customer layouts where body gets dual-neutral-theme class */
body.dual-neutral-theme,
body.dual-neutral-theme #layout-wrapper,
body.dual-neutral-theme .main-content,
body.dual-neutral-theme .main-content .page-content,
body.dual-neutral-theme .main-content .page-content > .container-fluid {
    background: var(--gh-surface-dark) !important;
}

/* Generic page surfaces */
body.dual-neutral-theme .card,
body.dual-neutral-theme .section-card,
body.dual-neutral-theme .invoice-card,
body.dual-neutral-theme .table-card,
body.dual-neutral-theme .panel,
body.dual-neutral-theme .widget,
body.dual-neutral-theme .gh-glass,
body.dual-neutral-theme .hp-card,
body.dual-neutral-theme .mp-stat-card,
body.dual-neutral-theme .mp-summary-card,
body.dual-neutral-theme .mp-table-section,
body.dual-neutral-theme .stat-card {
    background: var(--gh-surface-light) !important;
    border-color: var(--gh-border-neutral) !important;
    color: var(--gh-text-neutral) !important;
}

/* Secondary contrast containers */
body.dual-neutral-theme .gh-mp-tab-bar,
body.dual-neutral-theme .gh-mp-tab-panel,
body.dual-neutral-theme .hp-app-showcase,
body.dual-neutral-theme .hp-promo-banner,
body.dual-neutral-theme .hp-invoice-cta,
body.dual-neutral-theme .mp-breakdown-item,
body.dual-neutral-theme .mp-expiry-bar,
body.dual-neutral-theme .billing-page,
body.dual-neutral-theme .billing-page .section-card .card-header {
    background: var(--gh-surface-dark) !important;
    border-color: var(--gh-border-neutral) !important;
}

/* Inputs/selects/dropdowns/tabs */
body.dual-neutral-theme input,
body.dual-neutral-theme select,
body.dual-neutral-theme textarea,
body.dual-neutral-theme .form-control,
body.dual-neutral-theme .form-select,
body.dual-neutral-theme .mp-filter-pill,
body.dual-neutral-theme .mp-tbl-search input,
body.dual-neutral-theme .gh-mp-tenure-sel,
body.dual-neutral-theme .pricing-dropdown-toggle {
    background: var(--gh-surface-light) !important;
    border-color: var(--gh-border-neutral) !important;
    color: var(--gh-text-neutral) !important;
}

body.dual-neutral-theme input:focus,
body.dual-neutral-theme select:focus,
body.dual-neutral-theme textarea:focus,
body.dual-neutral-theme .form-control:focus,
body.dual-neutral-theme .form-select:focus,
body.dual-neutral-theme .mp-filter-pill:focus,
body.dual-neutral-theme .mp-tbl-search input:focus {
    border-color: #9CA3AF !important;
    box-shadow: 0 0 0 3px var(--gh-focus-ring-neutral) !important;
}

/* Unified table rhythm */
body.dual-neutral-theme table thead tr,
body.dual-neutral-theme .table thead tr,
body.dual-neutral-theme .mp-data-table thead th,
body.dual-neutral-theme .subscription-table thead th {
    background: var(--gh-surface-dark) !important;
    border-color: var(--gh-border-neutral) !important;
}

body.dual-neutral-theme table tbody tr:hover,
body.dual-neutral-theme .table tbody tr:hover,
body.dual-neutral-theme .mp-data-table tbody tr:hover,
body.dual-neutral-theme .subscription-table tbody tr:hover {
    background: var(--gh-surface-dark) !important;
}

/* Text normalization */
body.dual-neutral-theme,
body.dual-neutral-theme p,
body.dual-neutral-theme .text-muted,
body.dual-neutral-theme .mp-stat-label,
body.dual-neutral-theme .mp-breakdown-lbl,
body.dual-neutral-theme .mp-pagination-info,
body.dual-neutral-theme .gh-section-head p,
body.dual-neutral-theme .hp-why-desc {
    color: var(--gh-text-muted-neutral);
}

body.dual-neutral-theme h1,
body.dual-neutral-theme h2,
body.dual-neutral-theme h3,
body.dual-neutral-theme h4,
body.dual-neutral-theme h5,
body.dual-neutral-theme h6,
body.dual-neutral-theme .card-title {
    color: var(--gh-text-neutral) !important;
}
