/**
 * BMN public dark mode — Harbor Night.
 *
 * A late semantic skin for the public theme. Page-family styles keep owning
 * layout; this file owns dark appearance, contrast, and surface hierarchy.
 */

@media (prefers-color-scheme: dark) {
    :root {
        color-scheme: dark;

        --bne-canvas: #0B1115;
        --bne-card: #121A20;
        --bne-raised: #1A252D;
        --bne-raised-strong: #22303A;
        --bne-night-text: #F7FAFC;
        --bne-night-secondary: #CBD5DC;
        --bne-night-muted: #9AA8B2;
        --bne-night-border: #34454F;
        --bne-night-border-strong: #4C606C;
        --bne-night-accent: #55D6E8;
        --bne-night-action: #0B7189;

        /* Re-map the theme's semantic legacy tokens. Raw white stays white
           because it is also used for labels on dark hero photography. */
        --bne-primary-blue: #0B7189;
        --bne-primary-blue-dark: #095D70;
        --bne-primary-blue-light: #55D6E8;
        --bne-primary-blue-50: rgba(85, 214, 232, 0.08);
        --bne-primary-blue-100: rgba(85, 214, 232, 0.14);
        --bne-primary-blue-200: rgba(85, 214, 232, 0.24);
        --bne-beige: #4C606C;
        --bne-beige-light: #1A252D;
        --bne-beige-dark: #60727D;
        --bne-dark-gray: #F7FAFC;
        --bne-light-gray: #1A252D;
        --bne-medium-gray: #9AA8B2;
        --bne-border-gray: #34454F;
        --bne-gray-50: #121A20;
        --bne-gray-100: #1A252D;
        --bne-gray-200: #34454F;
        --bne-gray-300: #4C606C;
        --bne-gray-400: #7E8E98;
        --bne-gray-500: #9AA8B2;
        --bne-gray-600: #B7C3CA;
        --bne-gray-700: #CBD5DC;
        --bne-gray-800: #E4EBEF;
        --bne-gray-900: #F7FAFC;
        --bne-accent-teal: #55D6E8;
        --bne-accent-blue: #60A5FA;
        --bne-gradient-glass: linear-gradient(135deg, rgba(18, 26, 32, 0.94), rgba(26, 37, 45, 0.9));
        --bne-glass-bg: rgba(18, 26, 32, 0.82);
        --bne-glass-bg-light: rgba(18, 26, 32, 0.92);
        --bne-glass-border: rgba(85, 214, 232, 0.2);
        --bne-shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.34);
        --bne-shadow-sm: 0 2px 5px rgba(0, 0, 0, 0.4);
        --bne-shadow-md: 0 5px 14px rgba(0, 0, 0, 0.46);
        --bne-shadow-lg: 0 10px 25px rgba(0, 0, 0, 0.5);
        --bne-shadow-xl: 0 18px 38px rgba(0, 0, 0, 0.54);
        --bne-shadow-primary: 0 8px 24px rgba(85, 214, 232, 0.16);

        /* Landing pages define these globally, so their semantic roles can
           be corrected once without duplicating every city/district rule. */
        --lp-primary: #163D49;
        --lp-primary-light: #235564;
        --lp-primary-dark: #0B1115;
        --lp-accent: #55D6E8;
        --lp-accent-light: #8BE5F0;
        --lp-text: #F7FAFC;
        --lp-text-light: #CBD5DC;
        --lp-text-muted: #9AA8B2;
        --lp-bg: #0B1115;
        --lp-bg-alt: #121A20;
        --lp-bg-dark: #081014;
        --lp-border: #34454F;
        --lp-shadow: 0 4px 12px rgba(0, 0, 0, 0.42);
        --lp-shadow-lg: 0 14px 34px rgba(0, 0, 0, 0.52);

        --people-ink: #F7FAFC;
        --people-ink-soft: #CBD5DC;
        --people-blue: #55D6E8;
        --people-teal: #55D6E8;
        --people-fog: #0B1115;
        --people-line: #34454F;
        --people-muted: #9AA8B2;
        --people-white: #121A20;
        --people-shadow: 0 20px 55px rgba(0, 0, 0, 0.48);
    }

    html,
    body,
    #page,
    .site,
    .site-content,
    .content-area,
    .site-main,
    .inside-article,
    .entry-content,
    .bne-main {
        color: var(--bne-night-text);
        background-color: var(--bne-canvas);
    }

    body {
        color-scheme: dark;
    }

    body :where(p, li, dd, figcaption) {
        border-color: var(--bne-night-border);
    }

    body :where(input, select, textarea) {
        color: var(--bne-night-text);
        border-color: var(--bne-night-border);
        background-color: var(--bne-raised);
    }

    body :where(input, textarea)::placeholder {
        color: var(--bne-night-muted);
        opacity: 1;
    }

    body :where(a):focus-visible,
    body :where(button, input, select, textarea):focus-visible {
        outline-color: var(--bne-night-accent);
    }

    .bne-section,
    .bne-section--white {
        color: var(--bne-night-text);
        background-color: var(--bne-canvas);
    }

    .bne-section--alt,
    .bne-section--beige {
        color: var(--bne-night-text);
        background-color: var(--bne-card);
    }

    .bne-btn--primary,
    .bne-contact-button--primary,
    .bne-error-button--primary {
        color: #FFFFFF;
        background: var(--bne-night-action);
    }

    .bne-btn--outline,
    .bne-contact-button--ghost,
    .bne-error-button--secondary {
        color: var(--bne-night-accent);
        border-color: var(--bne-night-border-strong);
        background: var(--bne-card);
    }

    /* Shared header, footer, navigation, menus, and profile controls. */
    body:not(.home) .bne-header,
    .bne-header.scrolled,
    .bne-mobile-drawer,
    .bne-profile__dropdown {
        color: var(--bne-night-text);
        border-color: var(--bne-night-border);
        background: rgba(11, 17, 21, 0.94);
    }

    .bne-footer {
        color: var(--bne-night-secondary);
        border-color: var(--bne-night-border);
        background: #081014;
    }

    .bne-footer :is(a:not(.bne-btn), .bne-footer__legal a) {
        color: var(--bne-night-secondary);
    }

    .bne-footer :is(a:not(.bne-btn), .bne-footer__legal a):hover {
        color: var(--bne-night-accent);
    }

    .bne-footer .bne-btn--primary {
        color: #FFFFFF;
        border-color: var(--bne-night-action);
        background: var(--bne-night-action);
    }

    .bne-profile__dropdown a:hover,
    .bne-mobile-drawer a:hover {
        background-color: var(--bne-raised);
    }

    /* Homepage: preserve photographic heroes, but give interactive search,
       data cards, and content bands clear night-time elevation. */
    .bne-hero-search,
    .bne-hero-search__autocomplete,
    .bne-autocomplete-dropdown,
    .bne-lead-modal__content,
    .bne-cma-form,
    .bne-mortgage-calc,
    .bne-team-card,
    .bne-testimonial-card,
    .bne-blog-card,
    .bne-service-card,
    .bne-feature-card,
    .bne-market-card {
        color: var(--bne-night-text);
        border-color: var(--bne-night-border);
        background-color: var(--bne-card);
        box-shadow: var(--bne-shadow-md);
    }

    .bne-hero-search__input,
    .bne-hero-search__select,
    .bne-lead-form input,
    .bne-lead-form select,
    .bne-lead-form textarea {
        color: var(--bne-night-text);
        border-color: var(--bne-night-border);
        background: var(--bne-raised);
    }

    .home .bne-hero-search__title {
        color: var(--bne-night-text) !important;
    }

    .home .bne-hero-search__label {
        color: var(--bne-night-secondary) !important;
    }

    .home :is(
        .bne-hero-search__eyebrow,
        .bne-hero-search__map-link
    ) {
        color: var(--bne-night-accent) !important;
    }

    .bne-autocomplete-item,
    .bne-hero-search__autocomplete-item {
        color: var(--bne-night-secondary);
        border-color: var(--bne-night-border);
    }

    .bne-autocomplete-item:hover,
    .bne-autocomplete-item--selected,
    .bne-hero-search__autocomplete-item:hover {
        color: var(--bne-night-text);
        background: var(--bne-raised-strong);
    }

    .bne-section-title,
    .bne-service-card__title,
    .bne-blog-card__title,
    .bne-team-card__name,
    .bne-mortgage-calc__result-value {
        color: var(--bne-night-text);
    }

    .bne-section-subtitle,
    .bne-service-card__description,
    .bne-blog-card__excerpt,
    .bne-team-card__role,
    .bne-mortgage-calc__label {
        color: var(--bne-night-secondary);
    }

    /* Homepage sections have page-qualified backgrounds that outrank the
       shared .bne-section rules. Preserve the editorial band rhythm while
       removing the remaining paper-white islands. */
    .home .bne-section.bne-services,
    .home .bne-section.bne-listings-section,
    .home .bne-section.bne-market-analytics,
    .home .bne-section.bne-team {
        color: var(--bne-night-text);
        background: var(--bne-card) !important;
    }

    .home .bne-section.bne-cities,
    .home .bne-section.bne-analytics {
        color: var(--bne-night-text);
        background: var(--bne-canvas) !important;
    }

    .home :is(
        .bne-services__supporting,
        .bne-analytics__card,
        .mld-market-summary-card,
        .mld-summary-stat,
        .mld-bed-card,
        .mld-premium-card,
        .bne-property-type-btn
    ) {
        color: var(--bne-night-text);
        border-color: var(--bne-night-border);
        background: var(--bne-raised);
        box-shadow: var(--bne-shadow-sm);
    }

    .home .bne-service-card__icon {
        color: var(--bne-night-accent) !important;
        background: #163D49 !important;
    }

    .home .bne-listing-card__type {
        color: #FFFFFF;
        border-color: rgba(85, 214, 232, 0.34);
        background: rgba(11, 17, 21, 0.9);
        backdrop-filter: blur(8px);
    }

    .home .bne-hero-portal__eyebrow {
        color: #0759B5 !important;
    }

    .home :is(
        .bne-section-title,
        .bne-services__supporting-heading > span,
        .bne-services__supporting-links span,
        .mld-summary-header h3,
        .mld-bed-price,
        .mld-premium-label
    ) {
        color: var(--bne-night-text) !important;
    }

    .home :is(
        .bne-section-eyebrow,
        .bne-service-card__link,
        .bne-analytics__stat-value,
        .bne-analytics__card-link,
        .mld-stat-value,
        .mld-bed-count,
        .bne-blog-card__read-more,
        .bne-footer__legal a
    ) {
        color: var(--bne-night-accent) !important;
    }

    .home :is(
        .bne-section-heading__copy,
        .bne-services__supporting-heading small,
        .mld-stat-label,
        .mld-bed-stats,
        .mld-premiums-desc,
        .mld-premium-confidence,
        .bne-two-col-layout .bne-col-content > p,
        .bne-benefits-list span,
        .bne-lead-form label,
        .bne-team-card__position
    ) {
        color: var(--bne-night-secondary) !important;
    }

    .home .bne-btn.bne-btn--outline {
        color: var(--bne-night-accent) !important;
        border-color: var(--bne-night-border-strong) !important;
        background: var(--bne-card) !important;
    }

    .home .bne-lead-section.bg-gradient {
        color: var(--bne-night-text);
        background: radial-gradient(circle at 12% 18%, rgba(85, 214, 232, 0.1), transparent 24rem), var(--bne-canvas) !important;
    }

    .home .bne-submit-btn {
        color: #FFFFFF !important;
        background: var(--bne-night-action) !important;
        background-image: none !important;
    }

    /* Homepage lead tools ship an older self-contained light palette with
       higher-specificity selectors. Skin the complete component family so
       alerts, tours, CMA, and mortgage controls keep one night hierarchy. */
    .home .bne-lead-section {
        color: var(--bne-night-text);
        background: var(--bne-canvas);
    }

    .home .bne-lead-section.bg-primary {
        background: linear-gradient(135deg, #163D49, #235564);
    }

    .home .bne-lead-section :is(
        .section-title,
        .bne-col-content h3,
        .bne-tour-type-card h4,
        .bne-legend-value,
        .bne-loan-info-value
    ) {
        color: var(--bne-night-text) !important;
    }

    .home .bne-lead-section :is(
        .section-subtitle,
        .bne-col-content p,
        .bne-benefits-list li,
        .bne-tour-type-card p,
        .bne-payment-label,
        .bne-payment-period,
        .bne-legend-label,
        .bne-loan-info-label
    ) {
        color: var(--bne-night-secondary) !important;
    }

    .home .bne-lead-section :is(
        .bne-glass-card,
        .bne-cma-form,
        .bne-mortgage-calc
    ) {
        color: var(--bne-night-text);
        border-color: var(--bne-night-border);
        background: var(--bne-card) !important;
        box-shadow: var(--bne-shadow-md);
    }

    .home .bne-lead-section :is(
        .bne-form-group label,
        .bne-calc-group label
    ) {
        color: var(--bne-night-secondary);
    }

    .home .bne-lead-section :is(
        .bne-form-group input,
        .bne-form-group select,
        .bne-form-group textarea
    ) {
        color: var(--bne-night-text);
        border-color: var(--bne-night-border);
        background: var(--bne-raised);
    }

    .home .bne-lead-section .bne-float-label label {
        color: var(--bne-night-muted);
        background: var(--bne-card);
    }

    .home .bne-lead-section .bne-float-label:is(.focused, .has-value) label,
    .home .bne-lead-section :is(
        .bne-min-price-display,
        .bne-max-price-display,
        .bne-calc-group .value-display,
        .bne-monthly-payment
    ) {
        color: var(--bne-night-accent);
    }

    .home .bne-lead-section :is(
        .bne-property-type-btn,
        .bne-tour-type-card,
        .bne-time-slot,
        .bne-term-btn,
        .bne-frequency-option label
    ) {
        color: var(--bne-night-secondary);
        border-color: var(--bne-night-border);
        background: var(--bne-raised);
    }

    .home .bne-lead-section :is(
        .bne-property-type-btn:hover,
        .bne-tour-type-card:hover,
        .bne-time-slot:hover,
        .bne-term-btn:hover,
        .bne-frequency-option label:hover
    ) {
        color: var(--bne-night-text);
        border-color: var(--bne-night-accent);
        background: var(--bne-raised-strong);
    }

    .home .bne-lead-section :is(
        .bne-property-type-btn.active,
        .bne-tour-type-card.selected,
        .bne-time-slot.selected,
        .bne-term-btn.active,
        .bne-frequency-option input:checked + label
    ) {
        color: #FFFFFF;
        border-color: var(--bne-night-accent);
        background: #163D49;
        background-image: none;
    }

    .home .bne-lead-section .bne-tour-type-card.selected :is(h4, p) {
        color: var(--bne-night-text) !important;
    }

    .home .bne-lead-section .bne-tour-type-card.selected p {
        color: var(--bne-night-secondary) !important;
    }

    .home .bne-lead-section .bne-frequency-option input:checked + label {
        color: var(--bne-night-text) !important;
    }

    .home .bne-lead-section :is(
        .bne-range-track input[type="range"],
        .bne-loan-info
    ) {
        border-color: var(--bne-night-border);
    }

    .home .bne-lead-section .bne-range-track input[type="range"] {
        background: var(--bne-raised-strong);
    }

    .home .bne-lead-section .bne-currency-input::before,
    .home .bne-lead-section .bne-percent-input::after {
        color: var(--bne-night-muted);
    }

    .home .bne-lead-section .bne-payment-chart::after {
        background: var(--bne-card);
    }

    .home .bne-lead-section .bne-form-group label .required {
        color: #FCA5A5;
    }

    .home .bne-lead-section .bne-form-feedback.success {
        color: #A7F3D0;
        border-color: rgba(110, 231, 183, 0.34);
        background: rgba(6, 78, 59, 0.55);
    }

    .home .bne-lead-section .bne-form-feedback.error {
        color: #FECACA;
        border-color: rgba(252, 165, 165, 0.34);
        background: rgba(127, 29, 29, 0.5);
    }

    .home #schedule-tour .bne-lead-form > div:last-child {
        border-color: var(--bne-night-border) !important;
    }

    .home #schedule-tour .bne-lead-form > div:last-child :is(p, a) {
        color: var(--bne-night-secondary) !important;
    }

    .home #schedule-tour .bne-lead-form > div:last-child a {
        color: var(--bne-night-accent) !important;
    }

    /* City, neighborhood, building, and alert families. */
    .bne-landing-page,
    .bldg-overview,
    .bldg-listings,
    .bldg-map,
    .bldg-faq,
    .bldg-city-nav,
    .bldg-index-grid {
        color: var(--bne-night-text);
        border-color: var(--bne-night-border);
        background-color: var(--bne-canvas);
    }

    .bldg-listings--pending,
    .bldg-unit-types,
    .bldg-sold,
    .bldg-nearby,
    .bldg-index-header {
        background-color: var(--bne-card);
    }

    .bne-listing-card,
    .bne-stat-card,
    .bne-nearby-card,
    .bne-local-guide-card,
    .bne-school-info-card,
    .bldg-table,
    .bldg-listing-card,
    .bldg-faq__item,
    .bldg-index-card,
    .bldg-nearby__card,
    .bldg-search__bar,
    .bldg-pagination__link,
    .bldg-progressive__more,
    .bne-location-alert-dialog,
    .bldg-alert-dialog {
        color: var(--bne-night-text);
        border-color: var(--bne-night-border);
        background-color: var(--bne-card);
        box-shadow: var(--bne-shadow-md);
    }

    .bne-location-alert-dialog__secondary,
    .bldg-btn--dialog-secondary,
    .bldg-btn--outline {
        color: var(--bne-night-accent);
        border-color: var(--bne-night-border-strong);
        background: var(--bne-raised);
    }

    .bldg-table th,
    .bldg-table td,
    .bldg-city-pill,
    .bldg-search__input {
        color: var(--bne-night-secondary);
        border-color: var(--bne-night-border);
    }

    /* Schools discovery, detail, methodology, and guide pages. */
    .bne-district-metrics,
    .bne-district-map,
    .bne-district-faq,
    .bne-school-demographics,
    .bne-school-features,
    .bne-school-navigation,
    .bne-related-schools,
    .bne-school-stats,
    .bne-guide-section--rankings,
    .bne-guide-section--platform,
    .bne-guide-section--faq {
        color: var(--bne-night-text);
        background-color: var(--bne-canvas);
    }

    .bne-districts-grid-section,
    .bne-district-schools,
    .bne-district-outcomes,
    .bne-district-safety,
    .bne-guide-section--intro,
    .bne-guide-section--prices {
        color: var(--bne-night-text);
        background-color: var(--bne-card);
    }

    .bne-grade-btn,
    .bne-district-card,
    .bne-school-card,
    .bne-nearby-district-card,
    .bne-outcome-card,
    .bne-listing-card,
    .bne-autocomplete-dropdown,
    .bne-mcas-card,
    .bne-mcas-history,
    .bne-demographics-card,
    .bne-demographics-split__item,
    .bne-demographics-population,
    .bne-sports-summary,
    .bne-sports-category,
    .bne-related-school-card,
    .bne-methodology-card,
    .bne-methodology-table-wrapper,
    .bne-grade-scale__item,
    .bne-source-card,
    .bne-update-item,
    .bne-limitation-item,
    .bne-guide-highlight,
    .bne-guide-callout,
    .bne-guide-table,
    .bne-guide-price-tier,
    .bne-guide-download__form,
    .bne-guide-testimonial,
    .bne-guide-popup,
    .bne-school-district-alert-dialog {
        color: var(--bne-night-text);
        border-color: var(--bne-night-border);
        background-color: var(--bne-card);
        box-shadow: var(--bne-shadow-sm);
    }

    .bne-guide-table th,
    .bne-mcas-history th,
    .bne-methodology-table-wrapper th {
        color: var(--bne-night-secondary);
        border-color: var(--bne-night-border);
        background: var(--bne-raised);
    }

    .bne-guide-table td,
    .bne-mcas-history td,
    .bne-methodology-table-wrapper td {
        color: var(--bne-night-secondary);
        border-color: var(--bne-night-border);
    }

    /* Calculators and long-form product guides. */
    body.bne-calculator-page {
        --calc-ink: #F7FAFC;
        --calc-navy: #CBD5DC;
        --calc-blue: #55D6E8;
        --calc-teal: #55D6E8;
        --calc-slate: #9AA8B2;
        --calc-line: #34454F;
        --calc-paper: #121A20;
        background: var(--bne-canvas);
    }

    body.bne-calculator-page :is(.calc-hub, .ma-calc, .seller-calc, .ipa-calc, .rvb-calc),
    body.bne-calculator-page :is(.calc-card, .calculator-card, .result-card, .calc-result),
    .adu-card,
    .adu-step,
    .adu-faq-item,
    .pm-card,
    .pm-plan,
    .pm-step,
    .pm-faq-item {
        color: var(--bne-night-text);
        border-color: var(--bne-night-border);
        background-color: var(--bne-card);
        box-shadow: var(--bne-shadow-sm);
    }

    body.bne-calculator-page .calc-hub :is(.calc-card, .cta-section),
    body.bne-calculator-page :is(.ma-calc, .seller-calc, .ipa-calc) .sum-card,
    body.bne-calculator-page :is(.ma-calc, .seller-calc, .ipa-calc, .rvb-calc) .section {
        color: var(--bne-night-text);
        border-color: var(--bne-night-border);
        background: var(--bne-card);
        box-shadow: var(--bne-shadow-sm);
    }

    body.bne-calculator-page .calc-hub :is(.card-title, h2, h3) {
        color: var(--bne-night-text);
    }

    body.bne-calculator-page .calc-hub :is(.card-subtitle, .card-desc, .card-features li, .intro p, .cta-section p) {
        color: var(--bne-night-secondary);
    }

    body.bne-calculator-page .calc-hub .calc-card :is(.card-btn, .card-btn:hover),
    body.bne-calculator-page .calc-hub :is(.card-btn, .cta-btn),
    body.bne-calculator-page .calc-valuation-card__action,
    body.bne-calculator-page :is(.ma-calc, .seller-calc, .ipa-calc, .rvb-calc) .btn {
        color: #FFFFFF;
        border-color: var(--bne-night-action);
        background: var(--bne-night-action);
    }

    body.bne-calculator-page :is(.ma-calc, .seller-calc, .ipa-calc) .sum-card:is(.primary, .accent, .hl, .ac),
    body.bne-calculator-page .rvb-calc .verdict-bar {
        color: #FFFFFF;
        border-color: var(--bne-night-action);
        background: var(--bne-night-action);
    }

    body.bne-calculator-page :is(.ma-calc, .seller-calc, .ipa-calc, .rvb-calc) .sec-header {
        color: var(--bne-night-text);
        border-color: var(--bne-night-border);
        background: var(--bne-raised);
    }

    body.bne-calculator-page :is(.ma-calc, .seller-calc, .ipa-calc, .rvb-calc) .field label {
        color: var(--bne-night-secondary);
    }

    body.bne-calculator-page :is(.ma-calc, .seller-calc, .ipa-calc, .rvb-calc) :is(input, select, textarea) {
        color: var(--bne-night-text);
        border-color: var(--bne-night-border-strong);
        background: var(--bne-raised);
        color-scheme: dark;
    }

    body.bne-calculator-page :is(.ma-calc, .seller-calc, .ipa-calc, .rvb-calc) :is(.results-display, .comparison-display, .breakdown, .chart-box, .table-box, .info-box, .disclosure) {
        color: var(--bne-night-secondary);
        border-color: var(--bne-night-border);
        background: var(--bne-card);
    }

    body.bne-calculator-page :is(.ma-calc, .seller-calc, .ipa-calc, .rvb-calc) :is(h2, h3, h4, h5, h6, strong) {
        color: var(--bne-night-text);
    }

    body.bne-calculator-page :is(.ma-calc, .seller-calc, .ipa-calc, .rvb-calc) :is(p, li, span, small) {
        color: var(--bne-night-secondary);
    }

    body.bne-calculator-page :is(.ma-calc, .seller-calc, .ipa-calc) .sum-card:is(.primary, .accent, .hl, .ac, .warn) > * {
        color: #FFFFFF;
    }

    body.bne-calculator-page :is(.ma-calc, .seller-calc, .ipa-calc, .rvb-calc) .btn.accent {
        color: #FFFFFF;
        border-color: var(--bne-night-action);
        background: var(--bne-night-action);
    }

    body.bne-calculator-page .rvb-calc {
        --rent: #C4B5FD;
        --buy: #55D6E8;
    }

    body.bne-calculator-page .rvb-calc :is(.rent-val, .renting) {
        color: #C4B5FD;
    }

    body.bne-calculator-page .rvb-calc :is(.buy-val, .buying) {
        color: var(--bne-night-accent);
    }

    body.bne-calculator-page .rvb-calc .metric {
        color: var(--bne-night-text);
        border-color: var(--bne-night-border);
        background: var(--bne-raised);
    }

    body.bne-calculator-page .rvb-calc .verdict-bar :is(.label, .value, .verdict-savings) {
        color: #FFFFFF !important;
    }

    body.bne-calculator-page .rvb-calc .verdict-bar .verdict-winner {
        color: #FFFFFF !important;
        border: 1px solid var(--bne-night-accent);
        background: var(--bne-card) !important;
    }

    body.bne-calculator-page .rvb-calc .metric :is(.label, .sub) {
        color: var(--bne-night-secondary) !important;
    }

    body.bne-calculator-page .rvb-calc .metric .value {
        color: var(--bne-night-text) !important;
    }

    body.bne-calculator-page .rvb-calc .breakdown .item {
        color: var(--bne-night-secondary);
    }

    .adu-guide {
        --adu-navy: #163D49;
        --adu-navy-2: #235564;
        --adu-dark: #0B1115;
        --adu-blue: #55D6E8;
        --adu-blue-dark: #0B7189;
        --adu-teal: #55D6E8;
        --adu-teal-ink: #8BE5F0;
        --adu-beige: #34454F;
        --adu-beige-light: #1A252D;
        --adu-ink: #F7FAFC;
        --adu-slate: #CBD5DC;
        --adu-mute: #9AA8B2;
        --adu-line: #34454F;
        --adu-gray-50: #121A20;
        color: var(--bne-night-text);
        background: var(--bne-canvas);
    }

    .bmn-pm {
        --pm-navy: #163D49;
        --pm-navy-2: #235564;
        --pm-dark: #0B1115;
        --pm-teal: #55D6E8;
        --pm-teal-ink: #8BE5F0;
        --pm-ink: #F7FAFC;
        --pm-slate: #CBD5DC;
        --pm-mute: #9AA8B2;
        --pm-line: #34454F;
        --pm-gray-50: #121A20;
        --pm-beige-light: #1A252D;
        color: var(--bne-night-text);
        background: var(--bne-canvas);
    }

    /* Editorial, contact, people, advisory, and system pages. */
    .bne-advisory {
        --advisory-ink: #F7FAFC;
        --advisory-ink-soft: #CBD5DC;
        --advisory-blue: #55D6E8;
        --advisory-teal: #55D6E8;
        --advisory-fog: #0B1115;
        --advisory-line: #34454F;
        --advisory-muted: #9AA8B2;
        --advisory-white: #121A20;
        background: var(--bne-canvas);
    }

    .bne-contact-page {
        --contact-ink: #F7FAFC;
        --contact-ink-2: #CBD5DC;
        --contact-blue: #55D6E8;
        --contact-blue-dark: #0B7189;
        --contact-teal: #55D6E8;
        --contact-text: #CBD5DC;
        --contact-muted: #9AA8B2;
        --contact-line: #34454F;
        --contact-soft: #1A252D;
        --contact-white: #121A20;
        background: radial-gradient(circle at 8% 18%, rgba(85, 214, 232, 0.08), transparent 25rem), var(--bne-canvas);
    }

    .bmn-blog-index {
        --editorial-ink: #F7FAFC;
        --editorial-ink-soft: #CBD5DC;
        --editorial-blue: #55D6E8;
        --editorial-teal: #55D6E8;
        --editorial-text: #CBD5DC;
        --editorial-muted: #9AA8B2;
        --editorial-line: #34454F;
        --editorial-paper: #0B1115;
        --editorial-white: #121A20;
    }

    /* The editorial palette historically uses "ink" for both masthead paint
       and body typography, so the dark theme separates those two jobs. */
    .bmn-blog-index .bmn-blog-masthead {
        color: var(--bne-night-text);
        background:
            radial-gradient(circle at 82% 12%, rgba(85, 214, 232, 0.14), transparent 28%),
            radial-gradient(circle at 68% 100%, rgba(14, 113, 137, 0.13), transparent 32%),
            var(--bne-canvas);
    }

    .bmn-blog-index .bmn-blog-masthead :is(.bmn-blog-h1, .bmn-blog-archive-mark strong) {
        color: var(--bne-night-text);
    }

    .bmn-blog-index .bmn-chip {
        color: var(--bne-night-secondary);
        border-color: var(--bne-night-border);
        background: var(--bne-raised);
    }

    .bmn-blog-index .bmn-chip:is(:hover, .is-active) {
        color: var(--bne-night-text);
        border-color: var(--bne-night-accent);
        background: rgba(85, 214, 232, 0.12);
    }

    .bmn-blog-index .bmn-card__cat {
        color: #FFFFFF;
    }

    .bmn-blog-index :is(.bmn-card__title, .bmn-card--lead .bmn-card__title, .bmn-card__title a, .bmn-card__image-fallback strong) {
        color: var(--bne-night-text);
    }

    .bmn-blog-index .bmn-card__image-fallback span {
        color: var(--bne-night-accent);
    }

    .bne-article-page,
    .bne-error-page,
    .bmn-page,
    .bne-people-page,
    .bne-agent-profile {
        color: var(--bne-night-text);
        background: var(--bne-canvas);
    }

    .bne-advisory__cards article,
    .bne-advisory__resources,
    .bne-contact-form-card,
    .bne-contact-intent,
    .bne-contact-direct,
    .bmn-card,
    .bmn-search-result,
    .bne-article-context,
    .bne-article-cta,
    .bne-error-card,
    .bne-people-principles article,
    .bne-people-team__rail,
    .bne-agent-rail,
    .bne-agent-listing-card {
        color: var(--bne-night-text);
        border-color: var(--bne-night-border);
        background-color: var(--bne-card);
        box-shadow: var(--bne-shadow-sm);
    }

    .bne-advisory__button--light,
    .bne-people-btn--light {
        color: #FFFFFF;
        border-color: var(--bne-night-action);
        background: var(--bne-night-action);
    }

    /* Schools guide: comparison, download, testimonials, and progressive
       disclosure are separate legacy surfaces from the discovery templates. */
    .bne-btn--outline {
        color: var(--bne-night-accent) !important;
        border-color: var(--bne-night-border-strong) !important;
        background: var(--bne-card) !important;
    }

    .bne-btn--outline:is(:hover, :focus-visible) {
        color: var(--bne-night-text) !important;
        border-color: var(--bne-night-accent) !important;
        background: var(--bne-raised) !important;
    }

    .bne-guide-comparison,
    .bne-guide-app-promo {
        color: var(--bne-night-secondary);
        border: 1px solid var(--bne-night-border);
        background: var(--bne-card);
    }

    .bne-guide-comparison__row {
        border-color: var(--bne-night-border);
    }

    .bne-guide-comparison__row--header {
        color: var(--bne-night-text);
        background: var(--bne-night-action);
    }

    .bne-guide-comparison__yes {
        color: #86EFAC;
    }

    .bne-guide-comparison__no {
        color: #FCA5A5;
    }

    .bne-guide-app-promo :is(h3, p, .bne-guide-app-promo__label) {
        color: var(--bne-night-secondary);
    }

    .bne-guide-section--testimonials,
    .bne-guide-section--cta {
        color: var(--bne-night-text);
        background: var(--bne-canvas);
    }

    .bne-guide-section :is(input, select, textarea),
    .bne-school-progressive__more {
        color: var(--bne-night-text) !important;
        border-color: var(--bne-night-border-strong) !important;
        background: var(--bne-raised) !important;
    }

    .bne-guide-section :is(input, textarea)::placeholder {
        color: var(--bne-night-muted);
        opacity: 1;
    }

    .bne-guide-page {
        color: var(--bne-night-secondary);
        background: var(--bne-canvas);
    }

    .bne-guide-page .bne-guide-section :is(h2, h3, h4, h5, h6),
    .bne-guide-page :is(.bne-guide-highlight__content strong, .bne-guide-table__rank, .bne-guide-table__district strong, .bne-guide-faq-item__question) {
        color: var(--bne-night-text);
    }

    .bne-guide-page :is(.bne-guide-lead, .bne-guide-section__intro, .bne-guide-highlight__content span, .bne-guide-callout p, .bne-guide-testimonial blockquote, .bne-guide-testimonial cite, .bne-guide-faq-item__answer p, .bne-guide-form__field label, .bne-guide-form__disclaimer, .bne-guide-final-cta p) {
        color: var(--bne-night-secondary);
    }

    .bne-guide-page .bne-guide-section a:not(.bne-btn) {
        color: var(--bne-night-accent);
    }

    .bne-guide-page .bne-guide-table .bne-btn--sm {
        min-height: 44px;
        color: var(--bne-night-accent);
        border: 1px solid var(--bne-night-border-strong);
        background: var(--bne-raised);
    }

    .bne-guide-page .bne-guide-price-tier .bne-btn--sm {
        min-height: 44px;
        color: #FFFFFF;
        border-color: var(--bne-night-action);
        background: var(--bne-night-action);
    }

    .bne-guide-page .bne-school-progressive__status {
        color: var(--bne-night-secondary);
    }

    .bne-guide-page :is(.bne-guide-section--team, .bne-guide-section--download) :is(h2, h3, h4, p, li, span, label) {
        color: #FFFFFF;
    }

    .bne-guide-page .bne-guide-price-tier__header :is(h3, span) {
        color: #FFFFFF;
    }

    .bne-guide-page :is(.bne-grade-badge--aplus, .bne-grade-badge--a) {
        color: #14532D;
    }

    .bne-guide-page .bne-grade-badge--aminus {
        color: #713F12;
    }

    .bne-guide-page .bne-guide-comparison__yes {
        color: #86EFAC;
    }

    .bne-guide-page .bne-guide-comparison__no {
        color: #FCA5A5;
    }

    .bne-school-progressive__more:is(:hover, :focus-visible) {
        color: var(--bne-night-text) !important;
        border-color: var(--bne-night-accent) !important;
    }

    /* Contact forms are rendered by the listings plugin after the theme's
       own stylesheet, so this page-scoped layer owns the final field skin. */
    .bne-contact-page .mld-contact-form,
    .bne-contact-page .mld-contact-form-wrapper,
    .bne-contact-form-unavailable {
        --mld-cf-bg-color: var(--bne-raised);
        --mld-cf-text-color: var(--bne-night-text);
        --mld-cf-label-color: var(--bne-night-secondary);
        --mld-cf-border-color: var(--bne-night-border-strong);
        color: var(--bne-night-text);
        border-color: var(--bne-night-border);
        background: var(--bne-card);
    }

    .bne-contact-page .mld-cf-field :is(input[type="text"], input[type="email"], input[type="tel"], input[type="date"], input[type="number"], input[type="url"], select, textarea) {
        color: var(--bne-night-text);
        border-color: var(--bne-night-border-strong);
        background: var(--bne-raised);
        color-scheme: dark;
    }

    .bne-contact-page .mld-cf-field :is(input, textarea)::placeholder {
        color: var(--bne-night-muted);
        opacity: 1;
    }

    .bne-contact-page .mld-cf-field :is(input, select, textarea):focus {
        color: var(--bne-night-text);
        border-color: var(--bne-night-accent);
        background: var(--bne-raised);
        box-shadow: 0 0 0 4px rgba(85, 214, 232, 0.16);
    }

    .bne-contact-page :is(.mld-cf-checkbox-label, .mld-cf-radio-label) {
        color: var(--bne-night-secondary);
    }

    .bne-contact-page .mld-cf-field > label {
        color: var(--bne-night-secondary);
    }

    .bne-contact-page :is(.mld-cf-submit, .mld-cf-next-step) {
        color: #FFFFFF;
        border-color: var(--bne-night-action);
        background: var(--bne-night-action);
        box-shadow: 0 10px 24px rgba(0, 0, 0, 0.28);
    }

    .bne-contact-page .mld-cf-prev-step {
        color: var(--bne-night-accent);
        border-color: var(--bne-night-border-strong);
        background: var(--bne-raised);
    }

    .bne-contact-explore {
        background: var(--bne-canvas);
    }

    .bne-contact-explore__links a {
        border-color: var(--bne-night-border);
        background: var(--bne-raised);
    }

    .bne-contact-note {
        color: var(--bne-night-secondary);
        border-color: var(--bne-night-border);
        background: var(--bne-raised);
    }

    .bne-contact-note :is(strong, p) {
        color: var(--bne-night-secondary);
    }

    .bne-contact-page .mld-cf-required {
        color: #FCA5A5;
    }

    /* Property management predates the shared surface system and uses one
       navy token for headings, buttons, and gradients. Keep readable accent
       typography while explicitly grounding filled controls in action teal. */
    .bmn-pm {
        --pm-navy: #8BE5F0;
        --pm-navy-2: #55D6E8;
        --pm-red: #FCA5A5;
        --pm-red-dark: #FECACA;
        --pm-paper: #0B1115;
        background: var(--bne-canvas);
    }

    .bmn-pm :is(.pm-section--tint, .pm-formband, .pm-team) {
        color: var(--bne-night-text);
        border-color: var(--bne-night-border);
        background: var(--bne-canvas);
    }

    .bmn-pm :is(.pm-service, .pm-portal .f, .pm-areas a, .pm-related, .pm-faq details, .pm-formwrap, .pm-agent, .pm-guides li a, .pm-disclaimer, .mld-contact-form, .mld-contact-form-wrapper) {
        color: var(--bne-night-text);
        border-color: var(--bne-night-border);
        background: var(--bne-card);
        box-shadow: var(--bne-shadow-sm);
    }

    .bmn-pm .mld-contact-form {
        --mld-cf-bg-color: var(--bne-raised);
        --mld-cf-text-color: var(--bne-night-text);
        --mld-cf-label-color: var(--bne-night-secondary);
        --mld-cf-border-color: var(--bne-night-border-strong);
    }

    .bmn-pm :is(.pm-keyfact, .pm-callout, .pm-service .pm-ic) {
        color: var(--bne-night-secondary);
        border-color: var(--bne-night-border);
        background: var(--bne-raised);
    }

    .bmn-pm :is(.pm-table tr:nth-child(even) td, .pm-sticky-cta) {
        color: var(--bne-night-secondary);
        border-color: var(--bne-night-border);
        background: var(--bne-raised);
    }

    .bmn-pm :is(.pm-hero, .pm-ctaband, .pm-inline-cta) {
        color: #FFFFFF;
        background:
            radial-gradient(circle at 90% 8%, rgba(85, 214, 232, 0.16), transparent 30%),
            linear-gradient(135deg, #0B1B25 0%, #123845 100%);
    }

    .bmn-pm :is(.pm-btn--navy, .pm-steps li::before, .pm-table th, .pm-agent .av) {
        color: #FFFFFF;
        border-color: var(--bne-night-action);
        background: var(--bne-night-action);
    }

    .bmn-pm .pm-btn--navy:hover {
        color: #FFFFFF;
        border-color: #0E86A0;
        background: #0E86A0;
    }

    .bmn-pm .pm-btn--primary {
        color: #FFFFFF;
        border-color: #9F2F3B;
        background: #9F2F3B;
    }

    .bmn-pm .pm-table .hi {
        color: #FCA5A5;
    }

    .bmn-pm .mld-cf-field :is(input[type="text"], input[type="email"], input[type="tel"], input[type="date"], input[type="number"], input[type="url"], select, textarea) {
        color: var(--bne-night-text);
        border-color: var(--bne-night-border-strong);
        background: var(--bne-raised);
        color-scheme: dark;
    }

    .bmn-pm .mld-cf-field > label {
        color: var(--bne-night-secondary);
    }

    .bmn-pm :is(a:not(.pm-btn), .mld-cf-step-title) {
        color: var(--bne-night-accent);
    }

    .bmn-pm .mld-cf-required {
        color: #FCA5A5;
    }

    .bmn-pm .mld-cf-field :is(input, textarea)::placeholder {
        color: var(--bne-night-muted);
        opacity: 1;
    }

    .bmn-pm .mld-cf-step-number {
        color: var(--bne-night-secondary);
        border-color: var(--bne-night-border-strong);
        background: var(--bne-raised);
    }

    .bmn-pm .mld-cf-step-indicator:is(.current, .completed) .mld-cf-step-number,
    .bmn-pm :is(.mld-cf-next-step, .mld-cf-submit) {
        color: #FFFFFF;
        border-color: var(--bne-night-action);
        background: var(--bne-night-action);
    }

    .bmn-pm .mld-cf-prev-step {
        color: var(--bne-night-accent);
        border-color: var(--bne-night-border-strong);
        background: var(--bne-raised);
    }

    /* WPI pages contain older !important declarations, so the late dark skin
       mirrors that specificity only inside the WPI root family. */
    .wpi-section--white,
    .wpi-hero,
    .wpi-section--dark {
        color: var(--bne-night-text) !important;
        background-color: var(--bne-canvas) !important;
    }

    .wpi-hero__stat,
    .wpi-metric,
    .wpi-property-card,
    .wpi-property-stat,
    .wpi-table-wrapper,
    .wpi-financials {
        color: var(--bne-night-text) !important;
        border-color: var(--bne-night-border) !important;
        background-color: var(--bne-card) !important;
        box-shadow: var(--bne-shadow-sm) !important;
    }

    table.wpi-table tbody tr:nth-child(odd),
    .wpi-ua-strip__item {
        color: var(--bne-night-secondary) !important;
        border-color: var(--bne-night-border) !important;
        background-color: var(--bne-raised) !important;
    }

    /* QR quiet zones and photography must remain visually unmodified. */
    .bne-guide-app-promo__qr {
        color-scheme: light;
        background: #FFFFFF;
    }
}
