/* Dark-mode compatibility for accounting documents and payroll.
   Uses the existing ERPPlus theme variables defined by app-theme-overrides.css. */

body.erpdb-dark .erp-page-reference .accounting-page,
body.erpdb-dark .erp-page-reference .payroll-page {
    color: var(--erp-theme-text, #f8fafc) !important;
    background: var(--erp-theme-bg, #020617) !important;
}

/* Accounting documents: structural surfaces */
body.erpdb-dark .erp-page-reference .accounting-page :is(.accounting-hero, .acc-card, .acc-summary),
body.erpdb-dark .erp-page-reference .accounting-page .acc-summary article {
    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, .24) !important;
}

body.erpdb-dark .erp-page-reference .accounting-page .accounting-hero {
    background:
        radial-gradient(circle at 12% 20%, rgba(var(--erp-primary-rgb, 37, 99, 235), .16), transparent 30%),
        linear-gradient(135deg, var(--erp-theme-surface, #0f172a), var(--erp-theme-surface-raised, #111c30)) !important;
}

body.erpdb-dark .erp-page-reference .accounting-page :is(
    .accounting-hero p,
    .acc-summary small,
    .acc-summary p,
    .acc-card-header span,
    .acc-state span,
    .acc-empty p,
    .date-cell small,
    .description-cell small,
    .page-size span,
    .page-info
) {
    color: var(--erp-theme-muted, #a8b3c7) !important;
}

body.erpdb-dark .erp-page-reference .accounting-page :is(.acc-card-header, .acc-toolbar) {
    border-color: var(--erp-theme-border, #2a394f) !important;
    background: var(--erp-theme-surface, #0f172a) !important;
}

body.erpdb-dark .erp-page-reference .accounting-page .acc-pagination {
    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 .accounting-page :is(.acc-search input, .acc-filter, .page-size select) {
    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 .accounting-page .acc-search > span {
    color: var(--erp-theme-muted, #a8b3c7) !important;
}

body.erpdb-dark .erp-page-reference .accounting-page :is(.acc-search input, .acc-filter):focus {
    color: var(--erp-theme-text, #f8fafc) !important;
    border-color: var(--erp-primary, #2563eb) !important;
    background: var(--erp-theme-surface-soft, #172033) !important;
    box-shadow: 0 0 0 4px rgba(var(--erp-primary-rgb, 37, 99, 235), .14) !important;
}

body.erpdb-dark .erp-page-reference .accounting-page :is(.acc-btn.secondary, .acc-btn.ghost, .action-btn, .page-buttons 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;
}

body.erpdb-dark .erp-page-reference .accounting-page .acc-table th {
    color: var(--erp-theme-text-soft, #dbe7f7) !important;
    border-color: var(--erp-theme-border, #2a394f) !important;
    background: var(--erp-theme-surface-soft, #172033) !important;
}

body.erpdb-dark .erp-page-reference .accounting-page .acc-table td {
    color: var(--erp-theme-text, #f8fafc) !important;
    border-color: var(--erp-theme-border-soft, #223047) !important;
    background: transparent !important;
}

body.erpdb-dark .erp-page-reference .accounting-page .acc-table tbody tr:hover {
    background: #17233a !important;
}

body.erpdb-dark .erp-page-reference .accounting-page .acc-skeleton {
    background: linear-gradient(90deg,
        var(--erp-theme-surface-raised, #111c30),
        var(--erp-theme-surface-soft, #172033),
        var(--erp-theme-surface-raised, #111c30)) !important;
    background-size: 200% 100% !important;
}

body.erpdb-dark .erp-page-reference .accounting-page :is(.result-count, .doc-number) {
    color: var(--erp-primary-ink, #93c5fd) !important;
}
body.erpdb-dark .erp-page-reference .accounting-page .result-count {
    background: rgba(var(--erp-primary-rgb, 37, 99, 235), .16) !important;
}

/* Accounting semantic badges retain meaning without light-mode pastel surfaces. */
body.erpdb-dark .erp-page-reference .accounting-page :is(.source-badge.manual, .source-badge.purchase) {
    color: #c4b5fd !important;
    background: rgba(var(--erp-accent-rgb, 124, 58, 237), .16) !important;
}
body.erpdb-dark .erp-page-reference .accounting-page :is(.source-badge.sale, .acc-status.ok, .posting-status.posted) {
    color: #6ee7b7 !important;
    background: rgba(16, 185, 129, .16) !important;
}
body.erpdb-dark .erp-page-reference .accounting-page :is(.source-badge.payment, .posting-status.draft) {
    color: #fbbf24 !important;
    background: rgba(245, 158, 11, .16) !important;
}
body.erpdb-dark .erp-page-reference .accounting-page .source-badge.receipt {
    color: #7dd3fc !important;
    background: rgba(14, 165, 233, .16) !important;
}
body.erpdb-dark .erp-page-reference .accounting-page .source-badge.other {
    color: var(--erp-theme-text-soft, #dbe7f7) !important;
    background: var(--erp-theme-surface-soft, #172033) !important;
}
body.erpdb-dark .erp-page-reference .accounting-page .acc-status.danger {
    color: #fca5a5 !important;
    background: rgba(239, 68, 68, .16) !important;
}
body.erpdb-dark .erp-page-reference .accounting-page .amount.debit { color: #93c5fd !important; }
body.erpdb-dark .erp-page-reference .accounting-page .amount.credit { color: #fbbf24 !important; }
body.erpdb-dark .erp-page-reference .accounting-page .action-btn.view { color: #a5b4fc !important; border-color: rgba(129, 140, 248, .45) !important; }
body.erpdb-dark .erp-page-reference .accounting-page .action-btn.edit { color: #7dd3fc !important; border-color: rgba(56, 189, 248, .45) !important; }
body.erpdb-dark .erp-page-reference .accounting-page .action-btn.post { color: #6ee7b7 !important; border-color: rgba(52, 211, 153, .45) !important; }
body.erpdb-dark .erp-page-reference .accounting-page .action-btn.delete { color: #fca5a5 !important; border-color: rgba(248, 113, 113, .45) !important; }
body.erpdb-dark .erp-page-reference .accounting-page .acc-btn.print { color: #7dd3fc !important; border-color: rgba(56, 189, 248, .45) !important; background: rgba(14, 165, 233, .12) !important; }
body.erpdb-dark .erp-page-reference .accounting-page .acc-btn.export { color: #6ee7b7 !important; border-color: rgba(52, 211, 153, .45) !important; background: rgba(16, 185, 129, .12) !important; }
body.erpdb-dark .erp-page-reference .accounting-page .action-message.success { color: #6ee7b7 !important; border-color: rgba(52, 211, 153, .45) !important; background: rgba(16, 185, 129, .14) !important; }
body.erpdb-dark .erp-page-reference .accounting-page :is(.action-message.error, .acc-state.error) { color: #fca5a5 !important; border-color: rgba(248, 113, 113, .45) !important; background: rgba(239, 68, 68, .14) !important; }

/* Payroll: page, cards and navigation */
body.erpdb-dark .erp-page-reference .payroll-page .payroll-hero {
    color: var(--erp-theme-text, #f8fafc) !important;
    border: 1px solid var(--erp-theme-border, #2a394f) !important;
    background: linear-gradient(135deg, var(--erp-theme-surface, #0f172a), var(--erp-theme-surface-raised, #111c30)) !important;
    box-shadow: 0 18px 45px rgba(0, 0, 0, .28) !important;
}
body.erpdb-dark .erp-page-reference .payroll-page .payroll-hero p {
    color: var(--erp-theme-muted, #a8b3c7) !important;
}
body.erpdb-dark .erp-page-reference .payroll-page :is(.payroll-summary article, .payroll-card, .payroll-loading) {
    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 16px 40px rgba(0, 0, 0, .22) !important;
}
body.erpdb-dark .erp-page-reference .payroll-page :is(.payroll-summary span, .payroll-summary small, .payroll-card-head span, .payroll-card-head small) {
    color: var(--erp-theme-muted, #a8b3c7) !important;
}
body.erpdb-dark .erp-page-reference .payroll-page .payroll-card-head {
    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(.payroll-btn.secondary, .payroll-tabs button, .row-actions button, .report-pager 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;
}
body.erpdb-dark .erp-page-reference .payroll-page .payroll-tabs button.active,
body.erpdb-dark .erp-page-reference .payroll-page .report-type-tabs button.active {
    color: var(--erp-on-brand, #fff) !important;
    border-color: var(--erp-primary, #2563eb) !important;
    background: linear-gradient(135deg, var(--erp-primary, #2563eb), var(--erp-accent, #7c3aed)) !important;
}

/* Payroll tables */
body.erpdb-dark .erp-page-reference .payroll-page .payroll-table-wrap {
    color: var(--erp-theme-text, #f8fafc) !important;
    background: var(--erp-theme-surface, #0f172a) !important;
}
body.erpdb-dark .erp-page-reference .payroll-page .payroll-table-wrap table {
    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 .payroll-table-wrap th {
    color: var(--erp-theme-text-soft, #dbe7f7) !important;
    border-color: var(--erp-theme-border, #2a394f) !important;
    background: var(--erp-theme-surface-soft, #172033) !important;
}
body.erpdb-dark .erp-page-reference .payroll-page .payroll-table-wrap td {
    color: var(--erp-theme-text, #f8fafc) !important;
    border-color: var(--erp-theme-border-soft, #223047) !important;
    background: transparent !important;
}
body.erpdb-dark .erp-page-reference .payroll-page .payroll-table-wrap td small {
    color: var(--erp-theme-muted, #a8b3c7) !important;
}
body.erpdb-dark .erp-page-reference .payroll-page .payroll-table-wrap tbody tr:hover {
    background: #17233a !important;
}

/* Payroll inputs, filters and form surfaces */
body.erpdb-dark .erp-page-reference .payroll-page :is(
    .payroll-card-head input,
    .form-grid input,
    .form-grid select,
    .form-grid textarea,
    .rate-grid input,
    .account-grid select,
    .payroll-table-wrap.calc input,
    .report-filters input,
    .report-filters select
) {
    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(
    .form-grid input,
    .form-grid select,
    .form-grid textarea,
    .rate-grid input,
    .account-grid select,
    .report-filters input,
    .report-filters select
):focus {
    border-color: var(--erp-primary, #2563eb) !important;
    background: var(--erp-theme-surface-soft, #172033) !important;
    box-shadow: 0 0 0 3px rgba(var(--erp-primary-rgb, 37, 99, 235), .14) !important;
}
body.erpdb-dark .erp-page-reference .payroll-page :is(.form-grid label, .rate-grid label, .account-grid label, .report-filters label) {
    color: var(--erp-theme-text-soft, #dbe7f7) !important;
}
body.erpdb-dark .erp-page-reference .payroll-page :is(.report-filters, .account-grid, .post-finalization-panel) {
    color: var(--erp-theme-text, #f8fafc) !important;
    border-color: var(--erp-theme-border, #2a394f) !important;
    background: var(--erp-theme-surface-raised, #111c30) !important;
}

/* Payroll dialogs and secondary cards */
body.erpdb-dark .erp-page-reference .payroll-page :is(.payroll-dialog, .dialog-head, .dialog-actions, .form-section, .checks label, .details-summary div, .posting-balance-strip > div, .account-group-card, .account-grid.professional, .account-grid.professional label) {
    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 .dialog-head button {
    color: var(--erp-theme-text-soft, #dbe7f7) !important;
    background: var(--erp-theme-surface-soft, #172033) !important;
}
body.erpdb-dark .erp-page-reference .payroll-page :is(.form-section h3, .post-finalization-head h3, .posting-balance-strip strong, .account-group-card > header h4) {
    color: var(--erp-theme-text, #f8fafc) !important;
}
body.erpdb-dark .erp-page-reference .payroll-page :is(.details-summary span, .post-finalization-head p, .posting-balance-strip span, .account-group-card > header span) {
    color: var(--erp-theme-muted, #a8b3c7) !important;
}
body.erpdb-dark .erp-page-reference .payroll-page .account-group-card > header {
    color: var(--erp-theme-text, #f8fafc) !important;
    border-color: var(--erp-theme-border, #2a394f) !important;
    background: var(--erp-theme-surface-soft, #172033) !important;
}

/* Payroll status/message badges */
body.erpdb-dark .erp-page-reference .payroll-page :is(.status.ok, .payroll-message.success, .row-actions button.success, .posting-balance-strip .balanced) {
    color: #6ee7b7 !important;
    border-color: rgba(52, 211, 153, .45) !important;
    background: rgba(16, 185, 129, .16) !important;
}
body.erpdb-dark .erp-page-reference .payroll-page :is(.status.warn, .posting-balance-strip .unbalanced, .required-note) {
    color: #fbbf24 !important;
    border-color: rgba(251, 191, 36, .45) !important;
    background: rgba(245, 158, 11, .16) !important;
}
body.erpdb-dark .erp-page-reference .payroll-page :is(.payroll-message.error, .form-error, .employee-form-error) {
    color: #fca5a5 !important;
    border-color: rgba(248, 113, 113, .45) !important;
    background: rgba(239, 68, 68, .16) !important;
}
body.erpdb-dark .erp-page-reference .payroll-page .status.off {
    color: var(--erp-theme-text-soft, #dbe7f7) !important;
    background: var(--erp-theme-surface-soft, #172033) !important;
}
body.erpdb-dark .erp-page-reference .payroll-page .posting-note {
    color: #93c5fd !important;
    border-color: rgba(96, 165, 250, .42) !important;
    background: rgba(37, 99, 235, .14) !important;
}

@media print {
    body.erpdb-dark .erp-page-reference .accounting-page,
    body.erpdb-dark .erp-page-reference .payroll-page,
    body.erpdb-dark .erp-page-reference .accounting-page *,
    body.erpdb-dark .erp-page-reference .payroll-page * {
        color: #000 !important;
        background: #fff !important;
        box-shadow: none !important;
    }
}