/**
 * BMWFS — Theme contrast fixes (links, text, controls)
 * Loaded last to override Bootstrap + module CSS
 */

/* ── Bootstrap tokens (theme-aware) ── */
html[data-theme="dark"] {
    --bs-body-color: #FFFFFF;
    --bs-body-bg: #0B0B0B;
    --bs-emphasis-color: #FFFFFF;
    --bs-secondary-color: #A1A1A1;
    --bs-tertiary-color: #6B7280;
    --bs-heading-color: #FFFFFF;
    --bs-link-color: #D4AF37;
    --bs-link-hover-color: #E8C96A;
    --bs-border-color: #2A2A2A;
}

html[data-theme="light"] {
    --bs-body-color: #111111;
    --bs-body-bg: #F8F8F8;
    --bs-emphasis-color: #111111;
    --bs-secondary-color: #666666;
    --bs-tertiary-color: #9CA3AF;
    --bs-heading-color: #111111;
    --bs-link-color: #B8860B;
    --bs-link-hover-color: #8B6914;
    --bs-border-color: #E5E5E5;
}

/* ── Base text on admin shell ── */
.bmwfs-admin,
.bmwfs-admin .bmwfs-content,
.bmwfs-admin .admin-content {
    color: var(--text-primary);
}

.bmwfs-admin p,
.bmwfs-admin li,
.bmwfs-admin td,
.bmwfs-admin th,
.bmwfs-admin label,
.bmwfs-admin .form-label,
.bmwfs-admin .card-text,
.bmwfs-admin .list-group-item {
    color: inherit;
}

.bmwfs-admin h1, .bmwfs-admin h2, .bmwfs-admin h3,
.bmwfs-admin h4, .bmwfs-admin h5, .bmwfs-admin h6,
.bmwfs-admin .h1, .bmwfs-admin .h2, .bmwfs-admin .h3 {
    color: var(--text-primary);
}

/* ── Links (default Bootstrap blue / black fix) ── */
.bmwfs-admin a:not(.btn):not(.nav-link):not(.page-link):not(.dropdown-item) {
    color: var(--gold);
    text-decoration: none;
}

.bmwfs-admin a:not(.btn):not(.nav-link):not(.page-link):not(.dropdown-item):hover {
    color: #E8C96A;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.bmwfs-admin .table a:not(.btn) {
    color: var(--gold) !important;
    font-weight: 500;
}

.bmwfs-admin .table a:not(.btn):hover {
    color: #E8C96A !important;
}

.bmwfs-admin a.text-dark,
.bmwfs-admin .text-dark,
.bmwfs-admin .text-dark a {
    color: var(--text-primary) !important;
}

.bmwfs-admin .text-muted,
.bmwfs-admin small.text-muted,
.bmwfs-admin .form-text {
    color: var(--text-secondary) !important;
}

.bmwfs-admin .text-body,
.bmwfs-admin .text-secondary {
    color: var(--text-secondary) !important;
}

.bmwfs-admin .text-black {
    color: var(--text-primary) !important;
}

/* ── Buttons outline-dark (both themes) ── */
.bmwfs-admin .btn-outline-dark {
    --bs-btn-color: var(--text-primary);
    --bs-btn-border-color: var(--border);
    --bs-btn-hover-color: var(--text-primary);
    --bs-btn-hover-bg: var(--gold-soft);
    --bs-btn-hover-border-color: var(--gold);
    --bs-btn-active-color: var(--text-primary);
    --bs-btn-active-bg: var(--gold-soft);
    --bs-btn-active-border-color: var(--gold);
    color: var(--text-primary) !important;
    border-color: var(--border) !important;
    background: transparent !important;
}

.bmwfs-admin .btn-outline-dark:hover,
.bmwfs-admin .btn-outline-dark:focus {
    color: var(--text-primary) !important;
    background: var(--gold-soft) !important;
    border-color: var(--gold) !important;
}

html[data-theme="light"] .bmwfs-admin .btn-outline-dark {
    color: #111111 !important;
    border-color: #666 !important;
}

html[data-theme="light"] .bmwfs-admin .btn-outline-dark:hover {
    color: #111111 !important;
}

/* ── btn-link, close ── */
.bmwfs-admin .btn-link {
    color: var(--gold) !important;
}

.bmwfs-admin .btn-close {
    filter: none;
}

html[data-theme="dark"] .bmwfs-admin .btn-close {
    filter: invert(1) grayscale(100%) brightness(200%);
}

/* ── Code & pre ── */
.bmwfs-admin code,
.bmwfs-admin .serial-display {
    color: var(--gold) !important;
    background: var(--gold-soft) !important;
    border: 1px solid rgba(212, 175, 55, 0.25);
    padding: 0.15em 0.4em;
    border-radius: 4px;
}

.bmwfs-admin pre {
    background: var(--bg-elevated);
    color: var(--text-primary);
    border: 1px solid var(--border);
}

/* ── Forms ── */
.bmwfs-admin .form-check-label {
    color: var(--text-secondary);
}

.bmwfs-admin .form-control::placeholder,
.bmwfs-admin .form-select::placeholder {
    color: var(--text-muted);
    opacity: 1;
}

.bmwfs-admin .input-group-text {
    background: var(--bg-elevated);
    border-color: var(--border);
    color: var(--text-secondary);
}

/* ── Dropdowns ── */
.bmwfs-admin .dropdown-item {
    color: var(--text-primary);
}

.bmwfs-admin .dropdown-item:hover,
.bmwfs-admin .dropdown-item:focus {
    background: var(--gold-soft);
    color: var(--text-primary);
}

.bmwfs-admin .dropdown-item-text {
    color: var(--text-secondary) !important;
}

.bmwfs-admin .dropdown-divider {
    border-color: var(--border);
}

/* ── Breadcrumb ── */
.bmwfs-admin .breadcrumb-item a {
    color: var(--gold);
}

.bmwfs-admin .breadcrumb-item.active,
.bmwfs-admin .breadcrumb-item + .breadcrumb-item::before {
    color: var(--text-secondary);
}

/* ── Pagination ── */
.bmwfs-admin .page-link {
    color: var(--text-primary) !important;
    background: var(--bg-card) !important;
    border-color: var(--border) !important;
}

.bmwfs-admin .page-link:hover {
    background: var(--gold-soft) !important;
    border-color: var(--gold) !important;
    color: var(--text-primary) !important;
}

.bmwfs-admin .page-item.active .page-link {
    background: var(--gold) !important;
    border-color: var(--gold) !important;
    color: #0B0B0B !important;
}

.bmwfs-admin .page-item.disabled .page-link {
    color: var(--text-muted) !important;
    background: var(--bg-elevated) !important;
}

/* ── DataTables ── */
.bmwfs-admin .dataTables_wrapper,
.bmwfs-admin .dataTables_info,
.bmwfs-admin .dataTables_length label,
.bmwfs-admin .dataTables_filter label {
    color: var(--text-secondary) !important;
}

.bmwfs-admin .dataTables_wrapper .dataTables_filter input,
.bmwfs-admin .dataTables_wrapper .dataTables_length select {
    background: var(--bg-input) !important;
    border-color: var(--border) !important;
    color: var(--text-primary) !important;
}

.bmwfs-admin table.dataTable thead th {
    color: var(--text-secondary) !important;
}

/* ── Nav tabs (module pages) ── */
.bmwfs-admin .nav-tabs .nav-link {
    color: var(--text-secondary);
    border-color: transparent;
}

.bmwfs-admin .nav-tabs .nav-link:hover {
    color: var(--text-primary);
    border-color: var(--border);
}

.bmwfs-admin .nav-tabs .nav-link.active {
    color: var(--gold) !important;
    background: var(--bg-card) !important;
    border-color: var(--border) var(--border) var(--bg-card) !important;
}

/* ── Badges on dark bg (keep readable) ── */
.bmwfs-admin .badge.bg-secondary {
    color: var(--text-primary) !important;
}

.bmwfs-admin .badge.bg-dark {
    color: var(--text-primary) !important;
    background: var(--bg-elevated) !important;
    border: 1px solid var(--border);
}

.bmwfs-admin .badge.bg-gold,
.bmwfs-admin .badge.bg-warning.text-dark {
    color: #0B0B0B !important;
}

/* ── List group ── */
.bmwfs-admin .list-group-item {
    background: var(--bg-card);
    border-color: var(--border);
    color: var(--text-primary);
}

/* ── Modals ── */
.bmwfs-admin .modal-header,
.bmwfs-admin .modal-footer {
    border-color: var(--border);
}

.bmwfs-admin .modal-title {
    color: var(--text-primary);
}

/* ── SweetAlert2 theme ── */
html[data-theme="dark"] .swal2-popup {
    background: var(--bg-card) !important;
    color: var(--text-primary) !important;
}

html[data-theme="dark"] .swal2-title,
html[data-theme="dark"] .swal2-html-container {
    color: var(--text-primary) !important;
}

/* ── Auth page ── */
.bmwfs-auth-page {
    color: var(--text-primary);
}

.bmwfs-auth-page a:not(.btn) {
    color: var(--gold);
}

.bmwfs-auth-page a:not(.btn):hover {
    color: #E8C96A;
}

.bmwfs-auth-page .form-check-label {
    color: var(--text-secondary);
}

.bmwfs-auth-page .form-floating > label {
    color: var(--text-secondary);
}

.bmwfs-auth-page .form-floating > .form-control:focus ~ label,
.bmwfs-auth-page .form-floating > .form-control:not(:placeholder-shown) ~ label {
    color: var(--gold);
}

/* Card headers / small text in modules */
.bmwfs-admin .admin-card-header,
.bmwfs-admin .bmwfs-card-header {
    color: var(--text-primary);
}

.bmwfs-admin .admin-card-header .text-muted,
.bmwfs-admin p.text-muted,
.bmwfs-admin span.text-muted {
    color: var(--text-secondary) !important;
}

/* Alert links */
.bmwfs-admin .alert a {
    color: var(--gold) !important;
    font-weight: 600;
}

/* Select2 / option elements if any */
.bmwfs-admin option {
    background: var(--bg-card);
    color: var(--text-primary);
}

/* ── Public verification ── */
.verify-body {
    color: var(--text-primary);
}

.verify-body a:not(.btn) {
    color: var(--gold);
}

.verify-result-message {
    color: var(--text-secondary) !important;
}

.verify-details .text-muted {
    color: var(--text-secondary) !important;
}

.verify-details .fw-semibold {
    color: var(--text-primary) !important;
}

/* ── Settings module (override hardcoded colors in settings.css) ── */
.settings-sidebar-title { color: var(--gold) !important; }
.settings-nav .nav-link { color: var(--text-secondary) !important; }
.settings-nav .nav-link:hover { color: var(--text-primary) !important; background: var(--gold-soft) !important; }
.settings-nav .nav-link.active { color: var(--gold) !important; }
.setting-desc { color: var(--text-muted) !important; }

/* ── Reports module ── */
.reports-nav .btn-outline-dark { color: var(--text-primary) !important; }
.executive-kpi span { color: var(--text-secondary) !important; }
.executive-kpi h4 { color: var(--text-primary) !important; }
.today-widget { color: var(--text-primary) !important; }
.today-widget span { color: var(--gold) !important; }
.today-widget small { color: var(--text-secondary) !important; }
.reconciliation-pipeline .pipeline-step { color: var(--text-secondary) !important; }
.reconciliation-pipeline .pipeline-step strong { color: var(--text-primary) !important; }

/* ── Stat cards ── */
.stat-icon.dark {
    color: var(--text-secondary) !important;
}

.stat-label {
    color: var(--text-secondary) !important;
}

/* ── Footer ── */
.bmwfs-footer .text-muted {
    color: var(--text-muted) !important;
}

/* ── Cards & panels ── */
.bmwfs-admin .card,
.bmwfs-admin .card-body,
.bmwfs-admin .card-header,
.bmwfs-admin .card-footer,
.bmwfs-admin .card-title,
.bmwfs-admin .card-subtitle {
    color: var(--text-primary);
    background-color: var(--bg-card);
    border-color: var(--border);
}

.bmwfs-admin .card-header {
    background: var(--bg-elevated);
}

.bmwfs-admin .card .text-muted,
.bmwfs-admin .card small {
    color: var(--text-secondary) !important;
}

/* Bootstrap link utilities */
.bmwfs-admin .link-dark,
.bmwfs-admin .link-body-emphasis,
.bmwfs-admin a.link-dark {
    color: var(--text-primary) !important;
}

.bmwfs-admin .link-secondary {
    color: var(--text-secondary) !important;
}

.bmwfs-admin a.text-muted:not(.btn) {
    color: var(--text-secondary) !important;
}

.bmwfs-admin a.text-muted:not(.btn):hover {
    color: var(--gold) !important;
}

/* Accordion / offcanvas */
.bmwfs-admin .accordion-item,
.bmwfs-admin .accordion-button,
.bmwfs-admin .offcanvas {
    background: var(--bg-card);
    color: var(--text-primary);
    border-color: var(--border);
}

.bmwfs-admin .accordion-button:not(.collapsed) {
    background: var(--gold-soft);
    color: var(--gold);
}

html[data-theme="dark"] .bmwfs-admin .accordion-button::after {
    filter: invert(1);
}

/* Auth muted links */
.bmwfs-auth-page a.text-muted,
.bmwfs-auth-page .text-muted a {
    color: var(--text-secondary) !important;
}

.bmwfs-auth-page a.text-muted:hover,
.bmwfs-auth-page .text-muted a:hover {
    color: var(--gold) !important;
}

.bmwfs-auth-page h1,
.bmwfs-auth-page .alert {
    color: var(--text-primary);
}
