/* Targeted dark-mode compatibility for residual operational page surfaces.
   Uses the existing ERPPlus theme tokens; light mode and print layouts are unchanged. */

/* Suppliers: modal header/footer and controls still carried light scoped styles. */
body.erpdb-dark .erp-page-reference .supplier-dialog :is(
    .dialog-header,
    .dialog-body,
    .dialog-footer,
    .delete-content,
    .switch-field
) {
    color: var(--erp-theme-text, #f8fafc) !important;
    border-color: var(--erp-theme-border, #2a394f) !important;
    background: var(--erp-theme-surface, #0f172a) !important;
}

body.erpdb-dark .erp-page-reference .supplier-dialog :is(
    .field input,
    .field textarea,
    .dialog-close,
    .secondary-button
) {
    color: var(--erp-theme-text, #f8fafc) !important;
    border-color: var(--erp-theme-border, #2a394f) !important;
    background: var(--erp-theme-surface-raised, #111c30) !important;
}

body.erpdb-dark .erp-page-reference .supplier-dialog :is(
    .field > span,
    .switch-copy small,
    .delete-content small
) {
    color: var(--erp-theme-muted, #a8b3c7) !important;
}

body.erpdb-dark .erp-page-reference .supplier-dialog .dialog-header h2,
body.erpdb-dark .erp-page-reference .supplier-dialog .switch-copy strong {
    color: var(--erp-theme-text, #f8fafc) !important;
}

/* Product create: empty states and nested warranty/variant surfaces bypass the generic card rules. */
body.erpdb-dark .erp-page-reference .product-create-page :is(
    .variant-empty-state,
    .warranty-empty-state,
    .warranty-card
) {
    color: var(--erp-theme-muted, #a8b3c7) !important;
    border-color: var(--erp-theme-border, #2a394f) !important;
    background: var(--erp-theme-surface-raised, #111c30) !important;
}

body.erpdb-dark .erp-page-reference .product-create-page :is(
    .warranty-card-header,
    .warranty-card-footer
) {
    color: var(--erp-theme-text, #f8fafc) !important;
    border-color: var(--erp-theme-border-soft, #223047) !important;
    background: var(--erp-theme-surface, #0f172a) !important;
}

body.erpdb-dark .erp-page-reference .product-create-page :is(
    .warranty-empty-state strong,
    .warranty-card-header strong
) {
    color: var(--erp-theme-text, #f8fafc) !important;
}

body.erpdb-dark .erp-page-reference .product-create-page :is(
    .warranty-empty-state span,
    .warranty-card-header span
) {
    color: var(--erp-theme-muted, #a8b3c7) !important;
}

body.erpdb-dark .erp-page-reference .product-create-page :is(
    .hero-back-button,
    .secondary-button
) {
    color: var(--erp-theme-text-soft, #dbe7f7) !important;
    border-color: var(--erp-theme-border, #2a394f) !important;
    background: var(--erp-theme-surface-raised, #111c30) !important;
}

/* Inventory returns report: the page root itself is not a *-page class and retained a light canvas. */
body.erpdb-dark .erp-page-reference .inventory-return-report {
    color: var(--erp-theme-text, #f8fafc) !important;
    background: var(--erp-theme-bg, #020617) !important;
}

body.erpdb-dark .erp-page-reference .inventory-return-report :is(
    .report-header,
    .summary-grid article,
    .filters,
    .table-shell
) {
    color: var(--erp-theme-text, #f8fafc) !important;
    border-color: var(--erp-theme-border, #2a394f) !important;
    background: var(--erp-theme-surface, #0f172a) !important;
    box-shadow: 0 18px 48px rgba(0, 0, 0, .20) !important;
}

body.erpdb-dark .erp-page-reference .inventory-return-report :is(
    .filters input,
    .filters select,
    .report-btn.secondary
) {
    color: var(--erp-theme-text, #f8fafc) !important;
    border-color: var(--erp-theme-border, #2a394f) !important;
    background: var(--erp-theme-surface-raised, #111c30) !important;
}

body.erpdb-dark .erp-page-reference .inventory-return-report th {
    color: var(--erp-theme-text-soft, #dbe7f7) !important;
    border-color: var(--erp-theme-border-soft, #223047) !important;
    background: var(--erp-theme-surface-soft, #172033) !important;
}

body.erpdb-dark .erp-page-reference .inventory-return-report td {
    color: var(--erp-theme-text, #f8fafc) !important;
    border-color: var(--erp-theme-border-soft, #223047) !important;
}

body.erpdb-dark .erp-page-reference .inventory-return-report :is(
    .report-header p,
    .summary-grid span,
    .product-cell span
) {
    color: var(--erp-theme-muted, #a8b3c7) !important;
}

body.erpdb-dark .erp-page-reference .inventory-return-report .report-message:not(.error) {
    color: var(--erp-theme-text-soft, #dbe7f7) !important;
    border-color: var(--erp-theme-border, #2a394f) !important;
    background: var(--erp-theme-surface, #0f172a) !important;
}

/* Assets: the primary hero action was explicitly white in the scoped stylesheet. */
body.erpdb-dark .erp-page-reference .assets-page .assets-hero > button {
    color: var(--erp-on-brand, #ffffff) !important;
    border: 1px solid transparent !important;
    background: linear-gradient(135deg, var(--erp-primary, #2563eb), var(--erp-accent, #7c3aed)) !important;
    box-shadow: 0 10px 24px rgba(var(--erp-primary-rgb, 37, 99, 235), .22) !important;
}

/* Payroll: nested workflow/report/loan surfaces were not covered by the first compatibility pass. */
body.erpdb-dark .erp-page-reference .payroll-page :is(
    .workflow-strip,
    .report-type-tabs,
    .report-filters,
    .loan-summary,
    .payroll-analytics
) {
    color: var(--erp-theme-text, #f8fafc) !important;
    border-color: var(--erp-theme-border, #2a394f) !important;
    background: var(--erp-theme-surface, #0f172a) !important;
}

body.erpdb-dark .erp-page-reference .payroll-page :is(
    .workflow-strip > div,
    .loan-summary article,
    .payroll-analytics article,
    .details-summary > div
) {
    color: var(--erp-theme-text, #f8fafc) !important;
    border-color: var(--erp-theme-border, #2a394f) !important;
    background: var(--erp-theme-surface-raised, #111c30) !important;
}

body.erpdb-dark .erp-page-reference .payroll-page :is(
    .workflow-strip strong,
    .loan-summary article strong,
    .payroll-analytics article strong,
    .details-summary > div strong
) {
    color: var(--erp-theme-text, #f8fafc) !important;
}

body.erpdb-dark .erp-page-reference .payroll-page :is(
    .workflow-strip small,
    .loan-summary article small,
    .payroll-analytics span,
    .payroll-analytics small,
    .details-summary > div span
) {
    color: var(--erp-theme-muted, #a8b3c7) !important;
}

body.erpdb-dark .erp-page-reference .payroll-page .workflow-strip > div > span {
    color: #c4b5fd !important;
    background: rgba(var(--erp-accent-rgb, 124, 58, 237), .18) !important;
}

body.erpdb-dark .erp-page-reference .payroll-page :is(
    .report-type-tabs button:not(.active),
    .report-filters input,
    .report-filters select,
    .report-pager button,
    .payroll-btn.secondary,
    .row-actions button:not(.success):not(.danger)
) {
    color: var(--erp-theme-text-soft, #dbe7f7) !important;
    border-color: var(--erp-theme-border, #2a394f) !important;
    background: var(--erp-theme-surface-raised, #111c30) !important;
}

body.erpdb-dark .erp-page-reference .payroll-page .report-type-tabs button.active {
    color: var(--erp-on-brand, #ffffff) !important;
    border-color: var(--erp-primary, #2563eb) !important;
    background: var(--erp-primary, #2563eb) !important;
}

/* Electronic commercial books: keep the legal/print body untouched; only interactive toolbar controls change. */
body.erpdb-dark .erp-page-reference .ecb-page .ecb-toolbar {
    color: var(--erp-theme-text, #f8fafc) !important;
    border-color: var(--erp-theme-border, #2a394f) !important;
    background: var(--erp-theme-surface, #0f172a) !important;
}

body.erpdb-dark .erp-page-reference .ecb-page .ecb-toolbar :is(input, button:not(.primary)) {
    color: var(--erp-theme-text-soft, #dbe7f7) !important;
    border-color: var(--erp-theme-border, #2a394f) !important;
    background: var(--erp-theme-surface-raised, #111c30) !important;
}

/* Partners: the hero CTA and secondary action were fixed to white. */
body.erpdb-dark .erp-page-reference .partners-page .partners-hero > button {
    color: var(--erp-on-brand, #ffffff) !important;
    background: linear-gradient(135deg, var(--erp-primary, #2563eb), var(--erp-accent, #7c3aed)) !important;
    border: 1px solid transparent !important;
}

body.erpdb-dark .erp-page-reference .partners-page .partners-card button.secondary {
    color: var(--erp-theme-text-soft, #dbe7f7) !important;
    border-color: var(--erp-theme-border, #2a394f) !important;
    background: var(--erp-theme-surface-raised, #111c30) !important;
}

/* Issued cheques uses inline light styles; normalize non-semantic actions in dark mode. */
body.erpdb-dark .erp-page-reference .issued-page .issued-button:not(.primary):not(.danger):not(.delete) {
    color: var(--erp-theme-text-soft, #dbe7f7) !important;
    border-color: var(--erp-theme-border, #2a394f) !important;
    background: var(--erp-theme-surface-raised, #111c30) !important;
}

/* The framework reconnect/error strip is outside .erp-page-reference, so use existing body theme tokens. */
body.erpdb-dark #blazor-error-ui {
    color-scheme: dark !important;
    color: var(--erp-final-text, #f8fafc) !important;
    border-top: 1px solid var(--erp-final-border, #1e293b) !important;
    background: var(--erp-final-bg, #020617) !important;
    box-shadow: 0 -8px 24px rgba(0, 0, 0, .28) !important;
}

body.erpdb-dark #blazor-error-ui a,
body.erpdb-dark #blazor-error-ui .reload {
    color: #93c5fd !important;
}

/* Final residual theme bridge. Scoped to the authenticated application and screen only.
   It catches custom summary/metric surfaces and neutral action classes that component CSS
   still paints white. Print sheets/previews are intentionally excluded. */
@media screen {
    body.erpdb-dark .erp-page-reference :is(
        .barcode-print-page,
        .barcode-pro-page,
        .batch-label-page,
        .product-label-page,
        .label-designer-page
    ) {
        color-scheme: dark;
        color: var(--erp-theme-text, #f8fafc) !important;
        background: linear-gradient(180deg, #020617 0%, #07101f 48%, #020617 100%) !important;
    }

    body.erpdb-dark .erp-page-reference .barcode-print-page {
        --bp-text: var(--erp-theme-text, #f8fafc);
        --bp-muted: var(--erp-theme-muted, #a8b3c7);
        --bp-border: var(--erp-theme-border, #2a394f);
        --bp-soft: var(--erp-theme-border-soft, #223047);
    }

    body.erpdb-dark .erp-page-reference .barcode-pro-page {
        --bp-text: var(--erp-theme-text, #f8fafc);
        --bp-muted: var(--erp-theme-muted, #a8b3c7);
        --bp-border: var(--erp-theme-border, #2a394f);
        --bp-soft: var(--erp-theme-border-soft, #223047);
    }

    body.erpdb-dark .erp-page-reference .batch-label-page {
        --bl-text: var(--erp-theme-text, #f8fafc);
        --bl-muted: var(--erp-theme-muted, #a8b3c7);
        --bl-border: var(--erp-theme-border, #2a394f);
        --bl-soft: var(--erp-theme-border-soft, #223047);
    }

    body.erpdb-dark .erp-page-reference .product-label-page {
        --pl-text: var(--erp-theme-text, #f8fafc);
        --pl-muted: var(--erp-theme-muted, #a8b3c7);
        --pl-border: var(--erp-theme-border, #2a394f);
        --pl-soft: var(--erp-theme-border-soft, #223047);
    }

    body.erpdb-dark .erp-page-reference :is(
        .barcode-print-summary article,
        .batch-label-summary article,
        .product-label-summary article,
        [class$="-metrics"] > article,
        [class$="-kpis"] > article,
        [class$="-stats"] > article,
        [class$="-summary"] > article,
        [class$="-metric"],
        [class*="-metric "],
        [class$="-preset"],
        [class*="-preset "]
    ):not([class*="print"]):not([class*="preview"]):not([class*="paper"]):not([class*="sheet"]):not([class*="label"]) {
        color: var(--erp-theme-text, #f8fafc) !important;
        border-color: var(--erp-theme-border, #2a394f) !important;
        background: var(--erp-theme-surface, #0f172a) !important;
        box-shadow: 0 14px 36px rgba(0, 0, 0, .20) !important;
    }

    body.erpdb-dark .erp-page-reference :is(
        .barcode-print-item,
        .barcode-print-option-row label,
        .barcode-print-preview-toolbar,
        .barcode-print-zoom button,
        .barcode-print-zoom span,
        .batch-label-item,
        .batch-label-option-row label,
        .product-label-item,
        .product-label-option-row label,
        .label-panel,
        .template-item
    ) {
        color: var(--erp-theme-text-soft, #dbe7f7) !important;
        border-color: var(--erp-theme-border, #2a394f) !important;
        background: var(--erp-theme-surface-raised, #111c30) !important;
        box-shadow: none !important;
    }

    body.erpdb-dark .erp-page-reference :is(
        .barcode-print-item.selected,
        .batch-label-item.selected,
        .product-label-item.selected,
        .template-item.selected,
        .template-item.active
    ) {
        color: #f8fafc !important;
        border-color: #4f6f9f !important;
        background: #172a4a !important;
    }

    body.erpdb-dark .erp-page-reference :is(
        .barcode-print-field label,
        .batch-label-field label,
        .product-label-field label,
        .label-field label
    ) {
        color: var(--erp-theme-text-soft, #dbe7f7) !important;
    }

    body.erpdb-dark .erp-page-reference :is(
        .barcode-print-breadcrumb span,
        .batch-label-breadcrumb span,
        .product-label-breadcrumb span,
        .label-designer-breadcrumb span,
        .barcode-print-preview-toolbar span
    ) {
        color: var(--erp-theme-muted, #a8b3c7) !important;
        border-color: var(--erp-theme-border, #2a394f) !important;
        background: var(--erp-theme-surface-raised, #111c30) !important;
    }

    /* Neutral actions across operational forms should never retain a white scoped background. */
    body.erpdb-dark .erp-page-reference :is(
        button[class*="btn"],
        button[class*="button"],
        button[class*="action"],
        a[class*="btn"],
        a[class*="button"],
        a[class*="action"]
    ):not([class*="primary"]):not([class*="brand"]):not([class*="success"]):not([class*="danger"]):not([class*="delete"]):not([class*="warning"]):not([class*="active"]) {
        color: var(--erp-theme-text-soft, #dbe7f7) !important;
        border-color: #3a4960 !important;
        background: var(--erp-theme-surface-raised, #111c30) !important;
        box-shadow: none !important;
    }

    /* Semantic action colors remain semantic after the neutral bridge. */
    body.erpdb-dark .erp-page-reference :is(
        button[class*="primary"],
        a[class*="primary"]
    ):not([class*="danger"]):not([class*="delete"]) {
        color: var(--erp-on-brand, #ffffff) !important;
    }

    /* Physical label/barcode paper remains white on screen and in print. */
    body.erpdb-dark .erp-page-reference :is(
        .barcode-sheet,
        .barcode-label,
        .label-sheet,
        .label-paper,
        .print-sheet,
        .print-page
    ) {
        color-scheme: light;
        background: #ffffff !important;
    }
}
