/*
 * Afra dark theme compatibility layer.
 * Light mode remains governed by the existing styles; every rule here is dark-only.
 */
[data-bs-theme="dark"] {
    color-scheme: dark;
    --afra-page: #08111f;
    --afra-bg: #08111f;
    --afra-bg-soft: #0c1626;
    --afra-surface: #111c2e;
    --afra-surface-strong: #162338;
    --afra-surface-2: #17263a;
    --afra-surface-raised: #17263a;
    --afra-surface-soft: #1d2d43;
    --afra-border-dark: #2d415b;
    --afra-border: rgba(148, 178, 214, .18);
    --afra-border-strong: rgba(148, 178, 214, .28);
    --afra-text-dark: #edf4fc;
    --afra-text: #edf4fc;
    --afra-muted-dark: #a8b8cc;
    --afra-text-soft: #a8b8cc;
    --afra-muted: #91a4bc;
    --afra-accent: #39d1b4;
    --afra-accent-rgb: 57, 209, 180;
    --afra-accent-2: #5a9ee8;
    --afra-topbar: rgba(12, 22, 38, .97);
    --afra-topbar-border: rgba(148, 178, 214, .17);
    --afra-sidebar-start: #10283d;
    --afra-sidebar-end: #173950;
    --afra-shadow-sm: 0 8px 20px rgba(0, 0, 0, .2);
    --afra-shadow: 0 18px 46px rgba(0, 0, 0, .3);
    --afra-shadow-lg: 0 28px 70px rgba(0, 0, 0, .38);

    --vz-body-bg: var(--afra-page);
    --vz-body-color: var(--afra-text-dark);
    --vz-body-color-rgb: 229, 237, 247;
    --vz-secondary-bg: var(--afra-surface);
    --vz-secondary-bg-rgb: 17, 24, 39;
    --vz-tertiary-bg: var(--afra-surface-soft);
    --vz-border-color: var(--afra-border-dark);
    --vz-light: var(--afra-surface-soft);
    --vz-light-rgb: 30, 41, 59;
    --vz-dark: #f1f5f9;
    --vz-dark-rgb: 241, 245, 249;
    --vz-theme-color: var(--afra-surface);
    --vz-theme-header-color: rgba(15, 23, 42, .96);
    --vz-theme--nav-color: var(--afra-text-dark);

    --bs-body-bg: var(--afra-page);
    --bs-body-color: var(--afra-text-dark);
    --bs-secondary-bg: var(--afra-surface);
    --bs-tertiary-bg: var(--afra-surface-soft);
    --bs-border-color: var(--afra-border-dark);
}

[data-bs-theme="dark"] body,
[data-bs-theme="dark"] .page-content,
[data-bs-theme="dark"] .main-content,
[data-bs-theme="dark"] .app-container {
    background-color: var(--afra-page) !important;
    color: var(--afra-text-dark);
}

[data-bs-theme="dark"] body {
    background-image:
        radial-gradient(circle at 14% 0, rgba(57, 209, 180, .07), transparent 28%),
        radial-gradient(circle at 92% 16%, rgba(90, 158, 232, .055), transparent 24%) !important;
}

/* Shared surfaces */
[data-bs-theme="dark"] :is(.card, .modal-content, .dropdown-menu, .offcanvas, .list-group-item,
    .accordion-item, .toast, .popover, .folderviewcontainer, .folderTreeContainer,
    .email-reading-pane, .email-list-pane, .email-folders-pane, .chat-main, .chat-footer,
    .chat-sidebar, .signin-card, .module-panel, .panel, .well) {
    background: var(--afra-surface) !important;
    color: var(--afra-text-dark) !important;
    border-color: var(--afra-border-dark) !important;
}

[data-bs-theme="dark"] :is(.card-header, .card-footer, .modal-header, .modal-footer,
    .dropdown-header, .accordion-header, .accordion-button, .list-group-item-action:hover,
    .list-group-item-action:focus, .table-light, thead, .bg-light, .bg-white) {
    background: var(--afra-surface-raised) !important;
    color: var(--afra-text-dark) !important;
    border-color: var(--afra-border-dark) !important;
}

[data-bs-theme="dark"] .card > .card-body {
    background: var(--afra-surface) !important;
    color: var(--afra-text-dark) !important;
}


    [data-bs-theme="dark"] .module-comments-pane .comment-list-toolbar {
        border-bottom:none !important;
    }
/* Payment Order read-only payment details use literal light surfaces in the
   module view, so map the entire block back onto the dark-theme palette. */
[data-bs-theme="dark"] #viewPaymentInfos .po-payment-view {
    background: var(--afra-surface-raised) !important;
    color: var(--afra-text-dark) !important;
    border-color: var(--afra-border-dark) !important;
}

[data-bs-theme="dark"] #viewPaymentInfos .detail-kv label {
    background: rgba(var(--afra-accent-rgb), .09) !important;
    color: var(--afra-muted-dark) !important;
}

[data-bs-theme="dark"] #viewPaymentInfos :is(.detail-kv span, strong, th, td, .po-payment-outcome) {
    color: var(--afra-text-dark) !important;
}

[data-bs-theme="dark"] #viewPaymentInfos .table-responsive {
    background: var(--afra-surface) !important;
    border-color: var(--afra-border-dark) !important;
}

/* PreInvoice tab navigation and content panels define their own light palette. */
[data-bs-theme="dark"] #piHeaderCard .pi-tabs.nav-tabs .nav-link {
    background: var(--afra-surface-raised) !important;
    color: var(--afra-text-dark) !important;
    border-color: var(--afra-border-dark) !important;
}
[data-bs-theme="dark"] #piHeaderCard .pi-tabs.nav-tabs .nav-link:hover {
    background: var(--afra-surface-soft) !important;
    color: #fff !important;
    border-color: rgba(var(--afra-accent-rgb), .45) !important;
}
[data-bs-theme="dark"] #piHeaderCard .pi-tabs.nav-tabs .nav-link.active {
    background: var(--afra-accent) !important;
    color: #07131f !important;
    border-color: var(--afra-accent) !important;
}
[data-bs-theme="dark"] #preInvoiceTabsContent .pi-tab-panel {
    background: linear-gradient(180deg, var(--afra-surface) 0%, var(--afra-surface-raised) 100%) !important;
    color: var(--afra-text-dark) !important;
    border-color: var(--afra-border-dark) !important;
}

/* Shared record vocabulary. Many modules use detail-kv with light-only label
   colors, so make its dark rendering consistent everywhere. */
[data-bs-theme="dark"] .detail-kv label {
    background: rgba(var(--afra-accent-rgb), .09) !important;
    color: var(--afra-muted-dark) !important;
}
[data-bs-theme="dark"] .detail-kv :is(span, strong) { color: var(--afra-text-dark) !important; }

/* Module pages that still define literal white surfaces locally. Keeping the
   mapping here prevents each view from developing a separate dark palette. */
[data-bs-theme="dark"] :is(
    .project-hub-stat, .project-hub-filters, .project-card, .project-empty,
    .search-stat, .search-section, .search-result-card, .search-load-more,
    .recycle-filter, .recycle-table-wrap,
    .kpi-card, .kpi-tpl-card, .kpi-item-row, .kpi-wd, .kpi-ic, .kpi-stat,
    .pr-kpi, .pr-report-panel, .pr-chart-card, .pr-tabs, .pr-section,
    .ai-single, .ai-section, .ai-report-address,
    .payment-order-loading-box, .po-payment-info-card, .pr-loading-box,
    .dcc-package-summary, .dcc-revision-option, .dcc-issued-documents article,
    .fm-tree-search, .fm-content-search, .fm-item,
    .popup-container, .custom-button .button-text,
    .attendance-policy-note, .afra-timeline .tl-card,
    .revision-item, .flow-palette, .flow-stage, .flow-card, .flow-modal-section,
    .flow-tool, .flow-stats div, .flow-issue, .flow-modal .modal-body,
    .flow-modal .modal-footer, .pm-section,
    .kanban-task-card, .kanban-more-toggle, .kanban-reminder-action,
    .sab-summary, .sab-toolbar, .sab-project, .sab-activity, .sab-empty,
    .sab-table-wrap, .sab-table td, .sab-comment-button,
    #myTable tr.selected-row, #loader
) {
    background: var(--afra-surface) !important;
    color: var(--afra-text-dark) !important;
    border-color: var(--afra-border-dark) !important;
}

[data-bs-theme="dark"] :is(
    .project-filter, .project-status-badge,
    .search-result-card:hover,
    .recycle-table thead th,
    .kpi-group-head span, .kpi-progress-bar, .kpi-reset-bar, .kpi-ring-hole,
    .kpi-period-badge, .kpi-chip,
    .pr-kpi-icon, .pr-attention-row:hover, .pr-report-table thead th,
    .dcc-summary-project, .dcc-summary-stats div, .dcc-revision-tags em,
    .dcc-issued-meta span, .flow-card-type, .flow-chip,
    .fm-tree-count, .fm-stats div, .kanban-card-meta span,
    .sab-project-head, .sab-deadline, .sab-activity-order,
    .sab-table th, .sab-table .sab-project-column, .sab-table .sab-project-cell,
    .tc-progress-track
) {
    background: var(--afra-surface-raised) !important;
    color: var(--afra-text-dark) !important;
    border-color: var(--afra-border-dark) !important;
}

[data-bs-theme="dark"] :is(.project-hub-hero, .search-hero, .sab-hero) {
    background: linear-gradient(135deg, rgba(var(--afra-accent-rgb), .12), #142238 55%, #101c2e) !important;
    color: var(--afra-text-dark) !important;
    border-color: rgba(var(--afra-accent-rgb), .28) !important;
}

[data-bs-theme="dark"] :is(
    .project-hub-hero h2, .project-hub-stat span, .project-card h3,
    .project-card-meta-grid strong,
    .kpi-group-head h5, .kpi-card-titles h6, .kpi-tpl-head h5,
    .kpi-edit-bar h3, .kpi-stat b, .kpi-ring-hole strong,
    .sab-hero h2, .sab-project-title h3, .sab-activity-copy strong,
    .kanban-card-title, .kanban-assignee-name,
    #myTable .ticket-box a, #myTable .table-dark th
) { color: var(--afra-text-dark) !important; }

[data-bs-theme="dark"] :is(
    .project-hub-hero p, .project-hub-stat label, .project-card-meta-grid label,
    .project-card-summary, .project-empty, .project-loader,
    .recycle-kicker, .recycle-header p, .recycle-total span,
    .item-reference, .recycle-table small,
    .kpi-card-titles small, .kpi-progress-meta, .kpi-reset small,
    .kpi-recent-label, .kpi-tpl-desc, .kpi-tpl-stats, .kpi-tpl-creator,
    .kpi-item-row .form-label, .kpi-stat span, .kpi-table th,
    .kpi-card .kpi-label,
    .dcc-step-heading small, .dcc-summary-project label, .dcc-summary-stats span,
    .dcc-autosave, .dcc-revision-content small, .dcc-issued-kv small,
    .dcc-issued-documents article > div:first-child span,
    .dcc-timeline span, .dcc-timeline small,
    .sab-hero p, .sab-summary span, .sab-project-title small,
    .sab-ticket-meta span, .sab-activity-copy p, .sab-activity-log,
    .sab-activity-status, .sab-project-meta small,
    .kanban-card-meta span, .kanban-muted-label
) { color: var(--afra-muted-dark) !important; }

[data-bs-theme="dark"] :is(.flow-node-circle, .flow-card-type, .approval-timeline-avatar-wrap) {
    background-color: var(--afra-surface-raised) !important;
}

[data-bs-theme="dark"] :is(.approval-timeline-title, .approval-timeline-name,
    .kpi-card .kpi-value, .pr-chart-card h6, .pr-section h6) {
    color: var(--afra-text-dark) !important;
}
[data-bs-theme="dark"] .approval-timeline-mark { border-color: var(--afra-surface-raised) !important; }
[data-bs-theme="dark"] :is(.pr-tabs .nav-link.active, .pr-page-link.active, .pr-page-link:hover) {
    color: #fff !important;
}
[data-bs-theme="dark"] :is(.pr-step-tl .pr-step-item::before, .dcc-timeline i) {
    background: var(--afra-surface-raised) !important;
}
[data-bs-theme="dark"] .popup-container .close-button { color: var(--afra-muted-dark) !important; }
[data-bs-theme="dark"] :is(.pr-loading-overlay, .payment-order-loading-overlay) {
    background: rgba(8, 17, 31, .82) !important;
}

[data-bs-theme="dark"] :is(.flow-palette-title, .flow-stats strong, .flow-node-label,
    .flow-section-title, .revision-title) { color: var(--afra-text-dark) !important; }
[data-bs-theme="dark"] :is(.flow-stats span, .revision-meta) { color: var(--afra-muted-dark) !important; }

/* Preserve state meaning after the shared surface overrides above. */
[data-bs-theme="dark"] :is(.project-filter.active, .recycle-filter.active) {
    background: var(--afra-accent) !important;
    color: #07131f !important;
    border-color: var(--afra-accent) !important;
}
[data-bs-theme="dark"] .dcc-revision-option:has(input:checked) {
    background: rgba(var(--afra-accent-rgb), .11) !important;
    border-color: var(--afra-accent) !important;
}
[data-bs-theme="dark"] :is(.kpi-card.is-done, .sab-activity.is-done) {
    background: rgba(34, 197, 94, .09) !important;
    border-color: rgba(74, 222, 128, .38) !important;
}
[data-bs-theme="dark"] .sab-activity.is-started {
    background: rgba(59, 130, 246, .09) !important;
    border-color: rgba(96, 165, 250, .4) !important;
}
[data-bs-theme="dark"] .sab-activity.is-skipped {
    background: rgba(148, 163, 184, .08) !important;
    border-color: rgba(148, 163, 184, .28) !important;
}
[data-bs-theme="dark"] .kanban-card-highlight {
    background: linear-gradient(180deg, rgba(245, 158, 11, .12), var(--afra-surface) 76%) !important;
    border-color: rgba(245, 158, 11, .38) !important;
}
[data-bs-theme="dark"] .kanban-card-completed {
    background: linear-gradient(180deg, rgba(34, 197, 94, .1), var(--afra-surface) 72%) !important;
    border-color: rgba(74, 222, 128, .34) !important;
}
[data-bs-theme="dark"] .kanban-avatar { border-color: var(--afra-surface-raised) !important; }
[data-bs-theme="dark"] .task-index-page .task-items-table tr {
    background: var(--afra-surface) !important;
    color: var(--afra-text-dark) !important;
    border-color: var(--afra-border-dark) !important;
}
[data-bs-theme="dark"] :is(.project-warning, .flow-issue.danger) {
    background: rgba(248, 113, 113, .11) !important;
    color: #fca5a5 !important;
    border-color: rgba(248, 113, 113, .3) !important;
}
[data-bs-theme="dark"] .flow-issue.warning {
    background: rgba(245, 158, 11, .11) !important;
    color: #fbbf24 !important;
    border-color: rgba(245, 158, 11, .3) !important;
}

[data-bs-theme="dark"] #myTable :is(th, td) {
    color: var(--afra-text-dark) !important;
    border-color: var(--afra-border-dark) !important;
}

/* Full-screen task pages are loaded in an iframe. Remove every desktop sidebar
   offset inside that embedded document so no empty strip remains in RTL. */
[data-bs-theme="dark"].iframe-embedded .main-content,
[data-bs-theme="dark"].iframe-embedded body .main-content {
    margin-inline: 0 !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    width: 100% !important;
    max-width: none !important;
}
[data-bs-theme="dark"].iframe-embedded .page-content,
[data-bs-theme="dark"].iframe-embedded .app-container {
    margin-inline: 0 !important;
    width: 100% !important;
    max-width: none !important;
    border-radius: 0 !important;
}

[data-bs-theme="dark"] :is(h1, h2, h3, h4, h5, h6, .card-title, .modal-title,
    .dropdown-item, .nav-link, label, legend, .folderlist a) {
    color: var(--afra-text-dark) !important;
}
[data-bs-theme="dark"] .bg-light.text-dark { color: var(--afra-text-dark) !important; }

[data-bs-theme="dark"] :is(.text-muted, .form-text, .text-secondary) {
    color: var(--afra-muted-dark) !important;
}

[data-bs-theme="dark"] :is(.border, .border-top, .border-bottom, .border-start, .border-end,
    hr, .dropdown-divider) {
    border-color: var(--afra-border-dark) !important;
}

[data-bs-theme="dark"] a:not(.btn):not(.nav-link):not(.dropdown-item) { color: #70dfca; }
[data-bs-theme="dark"] a:not(.btn):not(.nav-link):not(.dropdown-item):hover { color: #9aeadb; }

/* Top bar and navigation */
[data-bs-theme="dark"] #page-topbar,
[data-bs-theme="dark"] #page-topbar .layout-width,
[data-bs-theme="dark"] .topbar-shell,
[data-bs-theme="dark"] .navbar-header {
    background: var(--afra-topbar) !important;
    border-color: var(--afra-border-dark) !important;
    box-shadow: 0 8px 28px rgba(0, 0, 0, .28) !important;
}

[data-bs-theme="dark"] #page-topbar .layout-width {
    outline: 1px solid rgba(255, 255, 255, .025);
}

[data-bs-theme="dark"] .topbar-inline-history-shell {
    background: rgba(23, 38, 58, .82) !important;
    border-color: var(--afra-border-dark) !important;
    box-shadow: inset 0 1px rgba(255, 255, 255, .025) !important;
}

[data-bs-theme="dark"] :is(.topbar-shortcut-card, .topbar-history-empty) {
    background: #1d2c41 !important;
    color: var(--afra-text-dark) !important;
    border-color: #354b66 !important;
    box-shadow: none !important;
}
[data-bs-theme="dark"] .topbar-shortcut-card span { color: var(--afra-text-dark) !important; }
[data-bs-theme="dark"] .topbar-shortcut-card strong,
[data-bs-theme="dark"] .topbar-history-empty { color: var(--afra-muted-dark) !important; }
[data-bs-theme="dark"] .topbar-shortcut-card:hover {
    background: #233750 !important;
    border-color: rgba(var(--afra-accent-rgb), .42) !important;
}

[data-bs-theme="dark"] .topbar-logo-link img {
    filter: brightness(1.65) saturate(.9) drop-shadow(0 2px 8px rgba(0, 0, 0, .2));
}

[data-bs-theme="dark"] :is(.btn-topbar, .header-item, .user-name-text, .user-name-sub-text) {
    color: var(--afra-text-dark) !important;
}

[data-bs-theme="dark"] .btn-topbar:hover { background: var(--afra-surface-soft) !important; }
[data-bs-theme="dark"] .afra-theme-toggle [data-afra-theme-icon] { color: #fbbf24 !important; }
[data-bs-theme="dark"] .auth-theme-toggle {
    color: #fbbf24 !important;
    background: rgba(17, 24, 39, .9) !important;
    border-color: var(--afra-border-dark) !important;
}
[data-bs-theme="dark"] .topbar-search-input,
[data-bs-theme="dark"] .afra-sidebar-search { color: var(--afra-text-dark) !important; }

/* Forms and controls */
[data-bs-theme="dark"] .form-hub-hero {
    background: linear-gradient(135deg, rgba(var(--afra-accent-rgb), .12) 0%, #142238 52%, #101c2e 100%) !important;
    color: var(--afra-text-dark) !important;
    border-color: rgba(var(--afra-accent-rgb), .28) !important;
    box-shadow: inset 0 1px rgba(255, 255, 255, .025), 0 12px 30px rgba(0, 0, 0, .16) !important;
}
[data-bs-theme="dark"] .form-hub-hero h2 { color: #f1f6fc !important; }
[data-bs-theme="dark"] .form-hub-hero p { color: #aabbd0 !important; }

[data-bs-theme="dark"] .list-hub-hero {
    background: linear-gradient(135deg, rgba(var(--afra-accent-rgb), .12) 0%, #142238 52%, #101c2e 100%) !important;
    color: var(--afra-text-dark) !important;
    border-color: rgba(var(--afra-accent-rgb), .28) !important;
    box-shadow: inset 0 1px rgba(255, 255, 255, .025), 0 12px 30px rgba(0, 0, 0, .16) !important;
}
[data-bs-theme="dark"] .list-hub-hero h2 { color: #f1f6fc !important; }
[data-bs-theme="dark"] .list-hub-hero p { color: #aabbd0 !important; }
[data-bs-theme="dark"] .list-hub-kicker { color: #6fdcc8 !important; }
[data-bs-theme="dark"] .list-hub-stat {
    background: #192940 !important;
    color: var(--afra-text-dark) !important;
    border-color: #354b66 !important;
    box-shadow: inset 0 1px rgba(255, 255, 255, .025) !important;
}
[data-bs-theme="dark"] .list-hub-stat span { color: #f1f6fc !important; }
[data-bs-theme="dark"] .list-hub-stat label { color: #aabbd0 !important; }
[data-bs-theme="dark"] .list-hub-stat.danger span { color: #fb8d8d !important; }
[data-bs-theme="dark"] .list-hub-stat.action span { color: #6fdcc8 !important; }

[data-bs-theme="dark"] .form-section {
    background: #111d30 !important;
    color: var(--afra-text-dark) !important;
    border-color: #30445e !important;
    box-shadow: 0 12px 30px rgba(0, 0, 0, .16) !important;
}

[data-bs-theme="dark"] .afra-actionbar {
    background: rgba(17, 29, 48, .92) !important;
    color: var(--afra-text-dark) !important;
    border-color: #354b66 !important;
    box-shadow: 0 -10px 28px rgba(0, 0, 0, .3) !important;
}

[data-bs-theme="dark"] :is(.form-control, .form-select, .input-group-text, .form-check-input,
    textarea, select, input:not([type]), input[type="text"], input[type="search"],
    input[type="email"], input[type="password"], input[type="number"], input[type="tel"], input[type="url"]) {
    background-color: var(--afra-surface-raised) !important;
    color: var(--afra-text-dark) !important;
    border-color: #35445b !important;
}

[data-bs-theme="dark"] :is(.form-control, .form-select, textarea, input)::placeholder {
    color: #7789a1 !important;
    opacity: 1;
}

[data-bs-theme="dark"] :is(.form-control, .form-select, textarea, select, input:not([type]),
    input[type="text"], input[type="search"], input[type="email"], input[type="password"],
    input[type="number"], input[type="tel"], input[type="url"]):focus {
    border-color: var(--afra-accent) !important;
    box-shadow: 0 0 0 .2rem rgba(var(--afra-accent-rgb), .13) !important;
}

[data-bs-theme="dark"] .btn-light {
    background: var(--afra-surface-soft) !important;
    border-color: #3a4960 !important;
    color: var(--afra-text-dark) !important;
}

[data-bs-theme="dark"] :is(.btn-outline-secondary, .btn-soft-primary, .list-filter,
    .k-button-flat, .k-button-outline) {
    background: rgba(29, 45, 67, .9) !important;
    border-color: #405570 !important;
    color: #d7e3f1 !important;
}
[data-bs-theme="dark"] :is(.btn-outline-secondary, .btn-soft-primary, .list-filter,
    .k-button-flat, .k-button-outline):hover {
    background: rgba(var(--afra-accent-rgb), .13) !important;
    border-color: rgba(var(--afra-accent-rgb), .48) !important;
    color: #f4fffd !important;
}
[data-bs-theme="dark"] .btn-outline-primary {
    background: rgba(90, 158, 232, .08) !important;
    border-color: rgba(109, 177, 247, .56) !important;
    color: #8ec5ff !important;
}
[data-bs-theme="dark"] .btn-outline-danger {
    background: rgba(248, 113, 113, .07) !important;
    border-color: rgba(248, 113, 113, .58) !important;
    color: #fca5a5 !important;
}
[data-bs-theme="dark"] .btn:disabled,
[data-bs-theme="dark"] .btn.disabled { opacity: .55; }

[data-bs-theme="dark"] .btn-close { filter: invert(1) grayscale(100%) brightness(180%); }
[data-bs-theme="dark"] .form-control:disabled,
[data-bs-theme="dark"] .form-control[readonly] { background-color: #0f172a !important; opacity: .75; }

/* Shared rich editor: draft toolbar, CKEditor chrome, content iframe and AI menu. */
[data-bs-theme="dark"] :is(.editor, .cke_chrome, .cke_top, .cke_bottom, .cke_contents,
    .cke_toolgroup, .cke_combo_button) {
    background: #17263a !important;
    background-image: none !important;
    color: #dce7f3 !important;
    border-color: #3a506b !important;
}
[data-bs-theme="dark"] :is(.cke_button_label, .cke_combo_text, .cke_path_item) { color: #dce7f3 !important; }
[data-bs-theme="dark"] :is(.cke_button_icon, .cke_combo_arrow) { filter: invert(.86) hue-rotate(170deg); }
[data-bs-theme="dark"] :is(.cke_button:hover, .cke_button:focus, .cke_combo_button:hover) {
    background: #253a55 !important;
    box-shadow: none !important;
}
[data-bs-theme="dark"] iframe.cke_wysiwyg_frame { background: #111d30 !important; }
[data-bs-theme="dark"] [id^="mic-"] {
    background: #203149 !important;
    color: #dce7f3 !important;
    border-color: #3b516c !important;
}
[data-bs-theme="dark"] [id^="ai-menu-"] {
    background: #17263a !important;
    color: #dce7f3 !important;
    border-color: #3a506b !important;
    box-shadow: 0 14px 34px rgba(0, 0, 0, .38) !important;
}
[data-bs-theme="dark"] [id^="ai-menu-"] .ai-item { color: #dce7f3 !important; }
[data-bs-theme="dark"] [id^="ai-menu-"] .ai-item:hover { background: #253a55 !important; }
[data-bs-theme="dark"] [id^="ai-menu-"] hr { border-color: #3a506b !important; }
[data-bs-theme="dark"] :is(.k-upload, .k-dropzone, .k-upload-dropzone, .k-upload-files, .k-file) {
    background: #17263a !important;
    color: #dce7f3 !important;
    border-color: #3a506b !important;
}

/* Tables */
[data-bs-theme="dark"] .table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--afra-text-dark);
    --bs-table-border-color: var(--afra-border-dark);
    --bs-table-striped-bg: rgba(255, 255, 255, .025);
    --bs-table-striped-color: var(--afra-text-dark);
    --bs-table-hover-bg: rgba(var(--afra-accent-rgb), .065);
    --bs-table-hover-color: #fff;
    --vz-table-bg: transparent;
    --vz-table-color: var(--afra-text-dark);
    --vz-table-border-color: var(--afra-border-dark);
    color: var(--afra-text-dark) !important;
}

[data-bs-theme="dark"] .table > :not(caption) > * > * {
    background-color: transparent;
    color: inherit;
    border-color: var(--afra-border-dark);
}

/* Select2 */
[data-bs-theme="dark"] :is(.select2-container--default .select2-selection--single,
    .select2-container--default .select2-selection--multiple, .select2-dropdown,
    .select2-search__field, .select2-results__option) {
    background: var(--afra-surface-raised) !important;
    color: var(--afra-text-dark) !important;
    border-color: #35445b !important;
}

[data-bs-theme="dark"] .select2-container--default .select2-selection--single .select2-selection__rendered {
    color: var(--afra-text-dark) !important;
}
[data-bs-theme="dark"] .select2-container--default .select2-results__option--highlighted[aria-selected] {
    background: rgba(var(--afra-accent-rgb), .22) !important;
}

/* Kendo UI */
[data-bs-theme="dark"] :is(.k-widget, .k-window, .k-dialog, .k-popup, .k-menu, .k-list,
    .k-listview, .k-grid, .k-grid-header, .k-grid-content, .k-toolbar, .k-input,
    .k-picker, .k-dropdownlist, .k-textbox, .k-upload, .k-editor, .k-content) {
    background-color: var(--afra-surface) !important;
    background-image: none !important;
    color: var(--afra-text-dark) !important;
    border-color: var(--afra-border-dark) !important;
}

[data-bs-theme="dark"] :is(.k-table-th, .k-grid-header th, .k-header, .k-list-header,
    .k-window-titlebar, .k-toolbar, .k-pager-wrap, .k-grid-footer) {
    background: var(--afra-surface-raised) !important;
    color: var(--afra-text-dark) !important;
    border-color: var(--afra-border-dark) !important;
}

[data-bs-theme="dark"] :is(.k-table-td, .k-grid td, .k-grid tr, .k-list-item, .k-input-inner,
    .k-button, .k-link, .k-calendar td, .k-calendar th) {
    color: var(--afra-text-dark) !important;
    border-color: var(--afra-border-dark) !important;
}

[data-bs-theme="dark"] :is(.k-alt, .k-table-alt-row) { background: rgba(255, 255, 255, .025) !important; }
[data-bs-theme="dark"] :is(.k-hover, .k-list-item:hover, .k-grid tr:hover) { background: rgba(var(--afra-accent-rgb), .07) !important; }

/* AG Grid (the application uses the legacy material theme). */
[data-bs-theme="dark"] .ag-theme-material {
    --ag-background-color: var(--afra-surface);
    --ag-foreground-color: var(--afra-text-dark);
    --ag-header-background-color: var(--afra-surface-raised);
    --ag-header-foreground-color: var(--afra-text-dark);
    --ag-odd-row-background-color: rgba(255, 255, 255, .025);
    --ag-border-color: var(--afra-border-dark);
    --ag-row-hover-color: rgba(var(--afra-accent-rgb), .07);
    --ag-input-focus-border-color: var(--afra-accent);
    background: var(--afra-surface) !important;
    color: var(--afra-text-dark) !important;
}

[data-bs-theme="dark"] .ag-theme-material :is(.ag-root-wrapper, .ag-root, .ag-header,
    .ag-row, .ag-cell, .ag-paging-panel, .ag-menu, .ag-popup, .ag-filter) {
    background-color: var(--afra-surface) !important;
    color: var(--afra-text-dark) !important;
    border-color: var(--afra-border-dark) !important;
}
[data-bs-theme="dark"] .ag-theme-material .ag-header { background: var(--afra-surface-raised) !important; }
[data-bs-theme="dark"] .ag-theme-material .ag-row-odd { background: rgba(255, 255, 255, .025) !important; }

/* Form.io, editors and date pickers */
[data-bs-theme="dark"] :is(.formio-form, .formio-component, .choices__inner, .choices__list,
    .choices__list--dropdown, .quill, .ql-toolbar, .ql-container, .note-editor,
    .datepicker-plot-area, .ui-datepicker, .ui-widget-content, .ui-widget-header) {
    background-color: var(--afra-surface) !important;
    color: var(--afra-text-dark) !important;
    border-color: var(--afra-border-dark) !important;
}
[data-bs-theme="dark"] :is(.ql-editor, .ql-picker, .ql-stroke, .datepicker-plot-area *,
    .ui-datepicker *, .ui-widget-content a) { color: var(--afra-text-dark) !important; }
[data-bs-theme="dark"] .ql-stroke { stroke: var(--afra-text-dark) !important; }
[data-bs-theme="dark"] .ql-fill { fill: var(--afra-text-dark) !important; }

/* Dashboard inbox */
[data-bs-theme="dark"] .inbox-shell {
    --inbox-border: var(--afra-border-dark);
    --inbox-muted: var(--afra-muted-dark);
    color: var(--afra-text-dark) !important;
}
[data-bs-theme="dark"] .inbox-hero {
    background: linear-gradient(135deg, #13243a, #101c2f 58%, #0d1929) !important;
    border-color: rgba(var(--afra-accent-rgb), .24) !important;
    box-shadow: inset 0 1px rgba(255, 255, 255, .02);
}
[data-bs-theme="dark"] :is(.inbox-stat, .inbox-side, .inbox-category, .inbox-item, .inbox-bulkbar) {
    background: #111d2f !important;
    color: var(--afra-text-dark) !important;
    border-color: var(--afra-border-dark) !important;
}
[data-bs-theme="dark"] :is(.inbox-hero h1, .inbox-side-title,
    .inbox-category > strong, .inbox-item h2, .inbox-item.is-unread h2, .inbox-subtitle,
    .inbox-bulk-select, .inbox-group-sep) { color: var(--afra-text-dark) !important; }
[data-bs-theme="dark"] .inbox-stat { background: #101a2b !important; }
[data-bs-theme="dark"] .inbox-stat strong { color: #f3f7fc !important; }
[data-bs-theme="dark"] .inbox-stat.unread strong,
[data-bs-theme="dark"] .inbox-stat.action strong { color: #56dbc1 !important; }
[data-bs-theme="dark"] .inbox-stat.danger strong { color: #fb8d8d !important; }
[data-bs-theme="dark"] .inbox-stat.information strong { color: #82b7f4 !important; }
[data-bs-theme="dark"] .inbox-stat.followup strong { color: #f0b76a !important; }
[data-bs-theme="dark"] .inbox-stat span { color: var(--afra-muted-dark) !important; }
[data-bs-theme="dark"] .inbox-side { background: #101c2d !important; }
[data-bs-theme="dark"] .inbox-category:hover { background: #17283d !important; }
[data-bs-theme="dark"] .inbox-category.active {
    background: linear-gradient(135deg, rgba(30, 114, 120, .82), rgba(26, 87, 105, .9)) !important;
    border-color: rgba(var(--afra-accent-rgb), .62) !important;
}
[data-bs-theme="dark"] .inbox-bulkbar { background: rgba(15, 26, 43, .96) !important; }
[data-bs-theme="dark"] .inbox-item {
    background: #111d30 !important;
    box-shadow: 0 5px 16px rgba(0, 0, 0, .14) !important;
}
[data-bs-theme="dark"] .inbox-item:hover {
    background: #142238 !important;
    border-color: #3b536f !important;
    box-shadow: 0 10px 25px rgba(0, 0, 0, .22) !important;
}
[data-bs-theme="dark"] .inbox-item.is-selected { background: rgba(var(--afra-accent-rgb), .07) !important; }
[data-bs-theme="dark"] .inbox-badge.new {
    background: rgba(52, 211, 153, .15) !important;
    color: #86efac !important;
    border: 1px solid rgba(52, 211, 153, .22);
}
[data-bs-theme="dark"] .inbox-badge.overdue {
    background: rgba(248, 113, 113, .14) !important;
    color: #fca5a5 !important;
    border: 1px solid rgba(248, 113, 113, .22);
}
[data-bs-theme="dark"] .inbox-group-sep::after { background: var(--afra-border-dark) !important; }
[data-bs-theme="dark"] .inbox-skeleton-card {
    background: linear-gradient(100deg, #182235 30%, #233148 50%, #182235 70%) !important;
    background-size: 200% 100% !important;
    border-color: var(--afra-border-dark) !important;
}
[data-bs-theme="dark"] .inbox-involved img { border-color: var(--afra-surface) !important; background: var(--afra-surface-soft) !important; }

/* Sidebar content is always dark, but dark mode needs a little more secondary contrast. */
[data-bs-theme="dark"] .navbar-menu #navbar-nav .nav-link { color: #b6c5d7 !important; }
[data-bs-theme="dark"] .navbar-menu #navbar-nav .nav-sm .nav-link,
[data-bs-theme="dark"] .navbar-menu #navbar-nav .menu-dropdown .nav-link { color: #9fb1c6 !important; }
[data-bs-theme="dark"] .navbar-menu #navbar-nav .nav-link:hover { color: #f2f7fc !important; }
[data-bs-theme="dark"] .side-icon { color: #a9bbcf !important; }
[data-bs-theme="dark"] .navbar-menu #navbar-nav .nav-link.active,
[data-bs-theme="dark"] .navbar-menu #navbar-nav .nav-link.is-navigating,
[data-bs-theme="dark"] .navbar-menu #navbar-nav .nav-item.mm-active > .nav-link[data-bs-toggle="collapse"] { color: #fff !important; }
[data-bs-theme="dark"] .navbar-menu #navbar-nav .nav-link.active .side-icon,
[data-bs-theme="dark"] .navbar-menu #navbar-nav .nav-link.is-navigating .side-icon,
[data-bs-theme="dark"] .navbar-menu #navbar-nav .nav-item.mm-active > .nav-link[data-bs-toggle="collapse"] .side-icon { color: var(--afra-accent) !important; }

/* Project-control modules and reports */
[data-bs-theme="dark"] :is(.pc-nav a, .pc-table td, .pc-document-choice, .pc-report-table th,
    .pc-report-table td, .pcr-table th, .pcr-table td, .pcr-pager) {
    background: var(--afra-surface-raised) !important;
    color: var(--afra-text-dark) !important;
    border-color: var(--afra-border-dark) !important;
}
[data-bs-theme="dark"] :is(.pc-title, .pc-report-link, .pcr-main-link, .pcr-evidence) {
    color: var(--afra-text-dark) !important;
}
[data-bs-theme="dark"] .pc-progress { background: #2a3950 !important; }
[data-bs-theme="dark"] :is(.pc-doc, .pc-pill.muted, .pcr-weight) {
    background: #29384c !important;
    color: #c4d0df !important;
}

/* Gamification is rendered in shared modals and has its own light palette. */
[data-bs-theme="dark"] .afra-game-modal {
    --game-ink: var(--afra-text-dark);
    --game-muted: var(--afra-muted-dark);
}
[data-bs-theme="dark"] :is(.appreciation-panel, .game-footer, .person-card, .winners-panel,
    .leaderboard-row, .current-appreciation, .game-search) {
    background: var(--afra-surface) !important;
    color: var(--afra-text-dark) !important;
    border-color: var(--afra-border-dark) !important;
}
[data-bs-theme="dark"] .appreciation-hero::after { background: var(--afra-surface) !important; }
[data-bs-theme="dark"] .person-card.selected,
[data-bs-theme="dark"] .current-appreciation {
    background: linear-gradient(150deg, #25203c, #2c1d35) !important;
}
[data-bs-theme="dark"] .winners-panel {
    background: radial-gradient(circle at 50% -20%, rgba(229, 165, 10, .16), transparent 38%), var(--afra-surface) !important;
}
[data-bs-theme="dark"] :is(.person-avatar img, .current-appreciation img, .podium-medal) { border-color: var(--afra-surface) !important; }

/* Record/profile pages and approval-flow cards */
[data-bs-theme="dark"] .user-profile-page .card {
    background: #111d30 !important;
    border-color: #30445e !important;
    box-shadow: 0 14px 34px rgba(0, 0, 0, .22) !important;
}
[data-bs-theme="dark"] .user-profile-page .card-header {
    background: linear-gradient(135deg, #18283d, #142237) !important;
    border-bottom-color: #30445e !important;
}
[data-bs-theme="dark"] .user-profile-page .card-footer {
    background: #17263a !important;
    border-top-color: #30445e !important;
}
[data-bs-theme="dark"] .user-profile-page .detail-kv > div {
    padding: 9px 11px;
    border: 1px solid rgba(148, 178, 214, .12);
    border-radius: 12px;
    background: rgba(7, 16, 29, .24);
}
[data-bs-theme="dark"] .user-profile-page .detail-kv label { color: #a9bad0 !important; }
[data-bs-theme="dark"] .user-profile-page .detail-kv span { color: #f0f6fd !important; }
[data-bs-theme="dark"] .flowheader,
[data-bs-theme="dark"] .flowuser { color: var(--afra-text-dark) !important; }
[data-bs-theme="dark"] .flowstatus {
    background: rgba(var(--afra-accent-rgb), .08) !important;
    color: #c7d5e5 !important;
    border-top: 1px solid rgba(var(--afra-accent-rgb), .12);
}
[data-bs-theme="dark"] .flowicon {
    background: linear-gradient(135deg, #0fa8be, #18b8a1) !important;
    box-shadow: 0 7px 18px rgba(13, 180, 181, .25) !important;
}

/* Shared comment thread */
[data-bs-theme="dark"] .comment-component-root {
    --comment-surface: linear-gradient(145deg, #142238 0%, #111d30 100%);
    --comment-border: rgba(148, 178, 214, .2);
    --comment-shadow: 0 12px 28px rgba(0, 0, 0, .2);
}
[data-bs-theme="dark"] .comment-component-root > .card,
[data-bs-theme="dark"] .comment-component-root > .card > .card-body {
    background: #0f1a2b !important;
    border-color: #30445e !important;
}
[data-bs-theme="dark"] .comment-card {
    background: var(--comment-surface) !important;
    border-color: var(--comment-border) !important;
    box-shadow: var(--comment-shadow) !important;
}
[data-bs-theme="dark"] .comment-card:hover {
    background: linear-gradient(145deg, #182942, #132136) !important;
    border-color: #405a78 !important;
    box-shadow: 0 17px 38px rgba(0, 0, 0, .28) !important;
}
[data-bs-theme="dark"] .comment-body { color: #d9e4f1 !important; }
[data-bs-theme="dark"] .comment-header,
[data-bs-theme="dark"] .comment-header h5 { color: var(--afra-text-dark) !important; }
[data-bs-theme="dark"] .comment-header .comment-author { color: #70dfca !important; }
[data-bs-theme="dark"] .comment-meta,
[data-bs-theme="dark"] .comment-task-actions-label { color: #9fb1c7 !important; }
[data-bs-theme="dark"] .comment-card.comment-log {
    background: linear-gradient(135deg, #172337, #131e30) !important;
    border-color: #3a4c64 !important;
}
[data-bs-theme="dark"] .comment-log-icon,
[data-bs-theme="dark"] .comment-log-badge {
    background: #24364d !important;
    color: #b9c9dc !important;
    border-color: #3b516d !important;
}
[data-bs-theme="dark"] .comment-thread-reply { border-color: rgba(var(--afra-accent-rgb), .55) !important; }
[data-bs-theme="dark"] .comment-focus {
    background: linear-gradient(145deg, #2b291d, #172134 72%) !important;
    border-color: rgba(245, 158, 11, .62) !important;
}
[data-bs-theme="dark"] .comment-task-actions { border-top-color: #344963 !important; }
[data-bs-theme="dark"] .comment-component-root .alert-light {
    background: #1a283b !important;
    color: #cbd8e7 !important;
    border-color: #3a4f69 !important;
}

/* New-comment modal has a complete light palette of its own. */
[data-bs-theme="dark"] #CommentModal .modal-content,
[data-bs-theme="dark"] #CommentModal .modal-body {
    background: #0d1727 !important;
    color: var(--afra-text-dark) !important;
}
[data-bs-theme="dark"] #CommentModal .modal-header {
    background: linear-gradient(135deg, #087f83, #126e82 55%, #365f9c) !important;
    color: #fff !important;
}
[data-bs-theme="dark"] #CommentModal :is(.modal-title, .cm-subtitle) { color: #fff !important; }
[data-bs-theme="dark"] #CommentModal .cm-section {
    background: #142238 !important;
    border-color: #30455f !important;
    box-shadow: 0 5px 16px rgba(0, 0, 0, .16) !important;
}
[data-bs-theme="dark"] #CommentModal .cm-section-header,
[data-bs-theme="dark"] #CommentModal .cm-options-row { border-color: #30455f !important; }
[data-bs-theme="dark"] #CommentModal :is(.cm-section-title, .form-label) { color: #eaf2fb !important; }
[data-bs-theme="dark"] #CommentModal :is(.cm-section-hint, .cm-footer-hint) { color: #9fb1c7 !important; }
[data-bs-theme="dark"] #CommentModal :is(.cm-option-chip, .cm-diary-hours) {
    background: #1b2c43 !important;
    color: #dce7f3 !important;
    border-color: #3a506b !important;
}
[data-bs-theme="dark"] #CommentModal .cm-option-chip:hover { background: #223750 !important; }
[data-bs-theme="dark"] #CommentModal .modal-footer-bar {
    background: #111d30 !important;
    border-top-color: #30455f !important;
}
[data-bs-theme="dark"] #CommentModal .cm-cancel-btn {
    background: #203149 !important;
    color: #dce7f3 !important;
    border-color: #3b516c !important;
}
[data-bs-theme="dark"] #CommentModal .cm-cancel-btn:hover { background: #293d58 !important; }
[data-bs-theme="dark"] #CommentModal :is(.editor, .cke_chrome, .cke_top, .cke_bottom,
    .cke_contents, .cke_toolgroup, .cke_combo_button, .k-upload, .k-dropzone) {
    background: #17263a !important;
    background-image: none !important;
    color: #dce7f3 !important;
    border-color: #3a506b !important;
}
[data-bs-theme="dark"] #CommentModal :is(.cke_button_icon, .cke_combo_arrow) { filter: invert(.86) hue-rotate(170deg); }
[data-bs-theme="dark"] #CommentModal :is(.cke_button_label, .cke_combo_text, .cke_path_item) { color: #dce7f3 !important; }
[data-bs-theme="dark"] #CommentModal :is(.cke_button:hover, .cke_button:focus, .cke_combo_button:hover) {
    background: #253a55 !important;
    box-shadow: none !important;
}
[data-bs-theme="dark"] #CommentModal iframe.cke_wysiwyg_frame { background: #111d30 !important; }
[data-bs-theme="dark"] #CommentModal #mic-editor {
    background: #203149 !important;
    color: #dce7f3 !important;
    border-color: #3b516c !important;
}

/* Full-screen task modal and loader */
[data-bs-theme="dark"] #KanbanModal .modal-content,
[data-bs-theme="dark"] #KanbanModal .kanban-modal-body { background: #08111f !important; }
[data-bs-theme="dark"] #KanbanModal .kanban-modal-loader {
    background: rgba(8, 17, 31, .94) !important;
    color: var(--afra-text-dark) !important;
}
[data-bs-theme="dark"] #KanbanModal .kanban-modal-loader-text { color: #b8c8da !important; }
[data-bs-theme="dark"] #KanbanModal #kanbanframe { display: block; border: 0; background: #08111f; }

/* Ticket/task module workspace */
[data-bs-theme="dark"] :is(.ticket-surface, .ticket-work-panel, .module-comments-card,
    .module-comments-header, .module-comments-body, .tc-section, .tc-list, .tc-row,
    .tc-modal-content, .tc-modal-status, .tc-file, .tc-file-picker) {
    background: #111d30 !important;
    color: var(--afra-text-dark) !important;
    border-color: #30445e !important;
}
[data-bs-theme="dark"] .module-comments-title { color: var(--afra-text-dark) !important; }
[data-bs-theme="dark"] .ticket-surface-header {
    background: linear-gradient(135deg, #1b2c42, #17263a) !important;
    color: var(--afra-text-dark) !important;
    border-color: #30445e !important;
}
[data-bs-theme="dark"].iframe-embedded .page-content {
    background: #08111f !important;
    background-image: none !important;
    box-shadow: none !important;
}
[data-bs-theme="dark"] :is(.ticket-work-panel, .module-comments-header, .module-comments-body,
    .tc-modal-status, .tc-file-picker) { background: #16263b !important; }
[data-bs-theme="dark"] .tc-row:hover { background: #192b42 !important; }
[data-bs-theme="dark"] .tc-row.is-complete { background: rgba(var(--afra-accent-rgb), .065) !important; }
[data-bs-theme="dark"] :is(.tc-name strong, .tc-modal-status strong, .tc-files-heading strong) {
    color: #eaf2fb !important;
}
[data-bs-theme="dark"] :is(.tc-copy p, .tc-meta, .tc-modal-description,
    .tc-modal-status small, .tc-files-heading small, .tc-empty-files) { color: #9fb1c7 !important; }
[data-bs-theme="dark"] .tc-name > span,
[data-bs-theme="dark"] .tc-files-heading > span { background: #24364d !important; color: #c5d3e3 !important; }
[data-bs-theme="dark"] .tc-progress-track { background: #293b52 !important; }
[data-bs-theme="dark"] .module-comments-card { box-shadow: 0 18px 42px rgba(0, 0, 0, .28) !important; }

/* Email hub */
[data-bs-theme="dark"] .email-shell { background: #2b3b50 !important; border-color: #30445e !important; }
[data-bs-theme="dark"] :is(.email-folders-pane, .email-list-pane, .email-reading-pane,
    .email-list-toolbar, .reading-header, .reading-toolbar, .reading-thread-bar,
    .reading-attachments, .compose-body, .compose-footer, .compose-row) {
    background: #111d30 !important;
    color: var(--afra-text-dark) !important;
    border-color: #30445e !important;
}
[data-bs-theme="dark"] :is(.email-row, .email-list-header, .email-empty, .reading-empty) {
    background: #142238 !important;
    color: var(--afra-text-dark) !important;
    border-color: #30445e !important;
}
[data-bs-theme="dark"] .email-row:hover { background: #192b42 !important; }
[data-bs-theme="dark"] .email-row.is-active {
    background: rgba(var(--afra-accent-rgb), .1) !important;
    box-shadow: inset 3px 0 0 var(--afra-accent) !important;
}
[data-bs-theme="dark"] .email-row.is-selected { background: rgba(245, 158, 11, .11) !important; }
[data-bs-theme="dark"] :is(.email-icon-btn:hover, .reading-details-toggle:hover,
    .reading-actions .btn:hover) { background: #263950 !important; color: #edf4fc !important; }
[data-bs-theme="dark"] :is(.email-attachments-list li a, .compose-chip,
    .compose-fwd-attach .form-check, #paneProjectResults) {
    background: #1b2c43 !important;
    color: #dce7f3 !important;
    border-color: #3a506b !important;
}
[data-bs-theme="dark"] .email-folders-pane .k-treeview .k-in:hover,
[data-bs-theme="dark"] .email-folders-pane .k-treeview .k-state-focused {
    background: rgba(var(--afra-accent-rgb), .1) !important;
    color: #ddf8f3 !important;
}

/* Charts, tooltips and code blocks */
[data-bs-theme="dark"] :is(.apexcharts-text, .apexcharts-legend-text, .apexcharts-title-text,
    .apexcharts-xaxis-label, .apexcharts-yaxis-label) {
    fill: var(--afra-muted-dark) !important;
    color: var(--afra-muted-dark) !important;
}
[data-bs-theme="dark"] :is(.apexcharts-gridline, .apexcharts-xaxis-tick, .apexcharts-yaxis-tick) {
    stroke: var(--afra-border-dark) !important;
}
[data-bs-theme="dark"] :is(.apexcharts-tooltip, .apexcharts-xaxistooltip, .tooltip-inner,
    pre, code, .hljs) {
    background: #0b1220 !important;
    color: var(--afra-text-dark) !important;
    border-color: var(--afra-border-dark) !important;
}

/* Legacy module surfaces with literal light backgrounds. Restrict overrides to
   elements that actually declare a light color, avoiding images and semantic badges. */
[data-bs-theme="dark"] [style*="background: white" i],
[data-bs-theme="dark"] [style*="background:white" i],
[data-bs-theme="dark"] [style*="background-color: white" i],
[data-bs-theme="dark"] [style*="background-color:white" i],
[data-bs-theme="dark"] [style*="background: #fff" i],
[data-bs-theme="dark"] [style*="background-color: #fff" i],
[data-bs-theme="dark"] [style*="background: rgb(255, 255, 255)" i] {
    background-color: var(--afra-surface) !important;
    color: var(--afra-text-dark);
    border-color: var(--afra-border-dark) !important;
}

[data-bs-theme="dark"] [style*="color: black" i],
[data-bs-theme="dark"] [style*="color:black" i],
[data-bs-theme="dark"] [style*="color: #000" i],
[data-bs-theme="dark"] [style*="color:#000" i] { color: var(--afra-text-dark) !important; }

/* Decorative animation should stay subtle on a dark canvas. */
[data-bs-theme="dark"] .area { opacity: .22; }
[data-bs-theme="dark"] ::selection { background: rgba(var(--afra-accent-rgb), .32); color: #fff; }

@media (prefers-reduced-motion: reduce) {
    [data-bs-theme="dark"] *, [data-bs-theme="dark"] *::before, [data-bs-theme="dark"] *::after {
        transition-duration: .01ms !important;
    }
}
