/**
 * Global Theme Engine — catch-all token enforcement (loads last).
 * Maps common hardcoded patterns to CSS variables site-wide + admin.
 */

/* ── Site shell ── */
body:not(.admin),
body:not(.admin) main.page,
body:not(.admin) .page,
body:not(.admin) .dash-page {
    background: var(--bg-primary, var(--page-shell-bg, var(--dash-bg, var(--background-color)))) !important;
    color: var(--text-primary, var(--page-shell-text, var(--dash-text, var(--text-color-token)))) !important;
}

body.admin,
body.admin main.page,
body.admin .admin-content,
body.admin .page-box {
    background: var(--bg-primary, var(--admin-bg)) !important;
    color: var(--text-primary, var(--admin-text)) !important;
}

/* ── Cards & panels ── */
.card,
.page-box,
.panel,
.dash-card,
.product-card,
.category-section-card,
.wallet-card,
.auth-card,
.modal-content,
.popup-content,
.overlay-box,
.admin-table-wrap,
.bulk-categories-panel,
.delete-all-modal-box {
    background: var(--card-bg, var(--bg-card, var(--card-color, var(--dash-card)))) !important;
    color: var(--text-primary, var(--text-color, var(--dash-text, var(--text-color-token)))) !important;
    border-color: var(--card-border, var(--border-color, var(--dash-card-border, var(--border-color-token)))) !important;
}

/* ── Buttons ── */
.button--primary,
.dash-btn--primary,
.btn-primary,
button[type="submit"].button--primary {
    background: var(--button-bg, var(--theme-gradient-primary, var(--button-color, var(--primary-color)))) !important;
    color: var(--button-text, #fff) !important;
    border-color: transparent !important;
}

.button--ghost,
.dash-btn--ghost {
    background: transparent !important;
    color: var(--primary-color, var(--dash-blue)) !important;
    border-color: var(--border-color, var(--border-color-token)) !important;
}

/* ── Forms ── */
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),
select,
textarea,
.search-input,
.form-field input,
.form-field select,
.form-field textarea {
    background: var(--theme-input-bg, var(--auth-input-bg, var(--w-input))) !important;
    border-color: var(--theme-input-border, var(--auth-input-border, var(--w-input-border))) !important;
    color: var(--text-color, var(--dash-text, var(--text-color-token))) !important;
}

/* ── Tables ── */
table,
.admin-table,
.dash-table {
    background: var(--dash-card, var(--card-color)) !important;
    color: var(--dash-text, var(--text-color-token)) !important;
}

.admin-table th {
    background: var(--dash-bg-subtle, var(--dash-bg-elevated, var(--page-shell-bg))) !important;
    color: var(--dash-heading, var(--theme-heading)) !important;
}

.admin-table td,
.admin-table th {
    border-color: var(--dash-card-border, var(--border-color-token)) !important;
}

/* ── Navigation ── */
.topbar,
header.global-header,
.topbar--guest,
.topbar--user,
.dash-header {
    background: var(--chrome-bg-top, var(--topbar-bg, var(--page-shell-bg))) !important;
    color: var(--chrome-fg, var(--page-shell-text, var(--dash-text))) !important;
}

.sidebar,
.admin-sidebar,
.dash-sidebar {
    background: var(--sidebar-bg, var(--admin-sidebar-bg, var(--admin-bg))) !important;
    color: var(--sidebar-text, var(--admin-sidebar-text, var(--admin-text))) !important;
}

/* ── Alerts & notes ── */
.note,
.alert,
.flash-message,
.error-list,
.success-message,
.admin-flash {
    border-color: var(--border-color-token) !important;
}

/* ── Links ── */
body:not(.admin) a:not(.button):not(.dash-btn):not(.brand__logo) {
    color: var(--link-color, var(--primary-color));
}

/* ── Modals & popups ── */
.modal,
.modal-overlay .modal,
.popup,
.site-post-popup,
#purchaseModal,
.purchase-modal {
    background: var(--card-color, var(--dash-card)) !important;
    color: var(--text-color-token, var(--dash-text)) !important;
}

/* ── Auth pages ── */
.auth-page,
.page-login .auth-page,
.page-register .auth-page {
    background: var(--auth-bg) !important;
    color: var(--auth-text) !important;
}

.auth-card,
.auth-form {
    background: var(--auth-card) !important;
    border-color: var(--auth-card-border, var(--border-color-token)) !important;
}

/* ── Wallet ── */
.wallet-page--neo,
.wallet-page,
.page-wallet main.page {
    background: var(--w-bg) !important;
    color: var(--w-text) !important;
}

.wallet-page--neo .wallet-card,
.w-card {
    background: var(--w-card) !important;
    border-color: var(--w-border) !important;
}

/* ── Admin shell ── */
body.admin {
    background: var(--admin-bg, var(--page-shell-bg)) !important;
    color: var(--admin-text, var(--dash-text)) !important;
}

body.admin .page-box,
body.admin .card,
body.admin .section,
body.admin .admin-settings-section {
    background: var(--admin-card, var(--dash-card)) !important;
    color: var(--admin-text) !important;
}

body.admin .admin-sidebar__item.active,
body.admin .admin-sidebar__link.is-active,
body.admin .sidebar a.active {
    background: var(--admin-sidebar-active-bg, var(--admin-sidebar-active, var(--sidebar-active, var(--primary-color)))) !important;
    color: var(--admin-sidebar-active-text, var(--admin-heading, var(--admin-text))) !important;
    border-color: var(--admin-sidebar-active-border, transparent) !important;
}

body.admin .admin-sidebar__item.active .admin-sidebar__icon {
    color: var(--admin-accent-light, var(--admin-accent)) !important;
}

/* ── Product cards ── */
.product-card,
.product-card__name,
.card__title {
    color: var(--product-name-color, var(--text-color)) !important;
}

.product-card {
    background: var(--product-card-bg, var(--bg-card)) !important;
}

/* ── Shamcash / pay pages (override hardcoded) ── */
.sc-pay-page,
.binance-pay-page,
.wallet-pay-page {
    background: var(--sc-pay-bg, var(--pay-bg, var(--w-bg))) !important;
    color: var(--sc-pay-text, var(--pay-text)) !important;
}

.sc-pay-card,
.pay-card {
    background: var(--sc-pay-card, var(--pay-card, var(--w-card))) !important;
}

/* ── Status colors ── */
.text-success, .status-success { color: var(--success-color, var(--success)) !important; }
.text-danger, .status-error { color: var(--danger-color, var(--error)) !important; }
.text-warning { color: var(--warning-color, var(--warning)) !important; }

.bg-success { background: var(--dash-green-bg, var(--w-success-bg)) !important; }
.bg-danger { background: var(--dash-red-bg) !important; }
.bg-warning { background: var(--dash-amber-bg) !important; }
