:root {
    /* Brand */
    --color-brand: 0, 146, 69; /* RGB base */
    --color-brand-hex: #009245;

    /* Variantes */
    --color-brand-hover: #19834a;
    --color-brand-light: #3cff98;
    --color-brand-light-hover: #97ffc8;

    /* Neutral */
    --color-bg-light: #e6e6e6;
    --color-bg-dark: #515151;

    /* Eco Green (alias global) */
    --eco-green: #009245;
    --eco-green-light: #e6f4ea;
    --eco-green-dark: #006837;
}

/* ═══════════════════════════════════════════
   DARK THEME
   ═══════════════════════════════════════════ */
body[data-theme="dark"] {
    --background-color: var(--color-bg-dark);

    /* Topbar */
    --topbar-bg: linear-gradient(180deg, #00000057 0%, transparent 100%);
    --topbar-text: var(--color-brand-light);

    /* Primary */
    --primary: var(--color-brand-light);
    --primary-hover: var(--color-brand-light-hover);
    --btn-hover-color: black;

    /* Text */
    --text-main: #f0f0f0;
    --text-muted: #a3a3a3;
    --text-heading: #ffffff;
    --text-secondary: #b0b0b0;

    /* Cards / Panels */
    --card-bg: rgba(255, 255, 255, 0.06);
    --card-border: rgba(255, 255, 255, 0.10);
    --card-shadow: rgba(0, 0, 0, 0.25);
    --glass-card-bg: rgba(255, 255, 255, 0.08);
    --glass-card-backdrop: blur(12px);

    --popup-glass-card-bg: rgba(80, 80, 80, 0.8);

    /* Sections */
    --section-bg: #3d3d3d;
    --section-bg-alt: #464646;
    --section-border-radius-bg: var(--section-bg-alt);

    /* Dropdowns */
    --dropdown-bg: #3a3a3a;
    --dropdown-border: rgba(255, 255, 255, 0.10);
    --dropdown-shadow: rgba(0, 0, 0, 0.35);
    --dropdown-item-text: #c8c8c8;
    --dropdown-item-hover-bg: var(--eco-green);
    --dropdown-item-hover-text: #ffffff;
    --dropdown-divider: rgba(255, 255, 255, 0.08);

    /* Inputs / Forms */
    --input-bg: transparent;
    --input-border: rgba(255, 255, 255, 0.15);
    --input-text: #e0e0e0;
    --input-placeholder: #808080;
    --input-focus-border: var(--color-brand-light);
    --input-disabled: rgb(73, 73, 73);

    /* Buttons */
    --btn-icon-bg: rgba(255, 255, 255, 0.08);
    --btn-icon-text: #a0a0a0;
    --btn-icon-hover-bg: rgba(255, 255, 255, 0.14);
    --btn-icon-hover-text: var(--color-brand-light);

    /* Actions Bar */
    --actions-bar-border: var(--color-brand-light);

    /* Badges */
    --badge-bg: rgba(60, 255, 152, 0.15);
    --badge-border: #3cff98;
    --badge-text: #ffffff;

    /* Contact / Info Cards */
    --info-card-bg: rgba(255, 255, 255, 0.06);
    --info-card-border: rgba(255, 255, 255, 0.08);
    --info-card-hover-bg: rgba(255, 255, 255, 0.10);
    --info-card-hover-border: var(--eco-green);
    --icon-circle-bg: rgba(255, 255, 255, 0.10);

    /* Marquee / Parceiros */
    --marquee-bg: rgba(255, 255, 255, 0.04);
    --marquee-fade-from: var(--section-bg);

    /* Hero Contato / Parceiros */
    --hero-gradient-start: rgba(0, 146, 69, 0.08);
    --hero-gradient-end: var(--section-bg);

    /* Profile */
    --profile-cover-border: rgba(255, 255, 255, 0.12);
    --avatar-border: var(--section-bg);

    /* Dot / Notification */
    --dot-border: var(--section-bg);

    /* Misc */
    --border-subtle: rgba(255, 255, 255, 0.08);
    --shadow-subtle: rgba(0, 0, 0, 0.20);

    /* Status Colors */
    --danger-color: #ef4444;
    --danger-color-light: #fef2f2;
    --success-color: #10b981;
    --success-color-light: #ecfdf5;
    --warning-color: #f59e0b;
    --warning-color-light: #fffbeb;
    --info-color: #3b82f6;
    --info-color-light: #eff6ff;

    --table-header-bg-color: #009245;
    --table-header-text-color: white;
    --table-cell-bg-color: transparent;
    --table-cell-text-color: #e2e2e2;
    --table-cell-border-color: #6f6f6f;
    --table-border-color: transparent;
    --table-box-shadow: 0 10px 15px -3px rgba(46, 41, 41, 0.04);

    --eco-green-light: #baffce !important
}

/* ═══════════════════════════════════════════
   LIGHT THEME (default fallback)
   ═══════════════════════════════════════════ */
body[data-theme="light"], body:not([data-theme]) {
    --background-color: var(--color-bg-light);

    /* Topbar */
    --topbar-bg: white;
    --topbar-text: var(--color-brand-hex);

    /* Primary */
    --primary: var(--color-brand-hex);
    --primary-hover: var(--color-brand-hover);

    /* Text */
    --text-main: #1e293b;
    --text-muted: #64748b;
    --text-heading: #0f172a;
    --text-secondary: #64748b;

    /* Cards / Panels */
    --card-bg: #ffffff;
    --card-border: #f1f5f9;
    --card-shadow: rgba(0, 0, 0, 0.04);
    --glass-card-bg: rgba(255, 255, 255, 0.9);
    --glass-card-backdrop: blur(10px);

    /* Sections */
    --section-bg: #f8fafc;
    --section-bg-alt: #f1f5f9;
    --section-border-radius-bg: var(--section-bg-alt);

    /* Dropdowns */
    --dropdown-bg: #ffffff;
    --dropdown-border: #e2e8f0;
    --dropdown-shadow: rgba(0, 0, 0, 0.10);
    --dropdown-item-text: #64748b;
    --dropdown-item-hover-bg: var(--eco-green);
    --dropdown-item-hover-text: #ffffff;
    --dropdown-divider: #f0f0f0;

    /* Inputs / Forms */
    --input-bg: #ffffff;
    --input-border: #e2e8f0;
    --input-text: #1e293b;
    --input-placeholder: #94a3b8;
    --input-focus-border: var(--eco-green);

    /* Buttons */
    --btn-icon-bg: #f8fafc;
    --btn-icon-text: #64748b;
    --btn-icon-hover-bg: #f1f5f9;
    --btn-icon-hover-text: var(--eco-green);

    /* Actions Bar */
    --actions-bar-border: #3cff98;

    /* Badges */
    --badge-bg: rgba(60, 255, 152, 0.24);
    --badge-border: #3cff98;
    --badge-text: #1e293b;

    /* Contact / Info Cards */
    --info-card-bg: var(--section-bg);
    --info-card-border: #f1f5f9;
    --info-card-hover-bg: #ffffff;
    --info-card-hover-border: var(--eco-green);
    --icon-circle-bg: #ffffff;

    /* Marquee / Parceiros */
    --marquee-bg: #ffffff;
    --marquee-fade-from: white;

    /* Hero Contato / Parceiros */
    --hero-gradient-start: var(--eco-green-light);
    --hero-gradient-end: #ffffff;

    /* Profile */
    --profile-cover-border: rgb(225, 225, 225);
    --avatar-border: #ffffff;

    /* Dot / Notification */
    --dot-border: #ffffff;

    /* Misc */
    --border-subtle: #f1f5f9;
    --shadow-subtle: rgba(0, 0, 0, 0.04);

    /* Status Colors */
    --danger-color: #ef4444;
    --danger-color-light: #fef2f2;
    --success-color: #10b981;
    --success-color-light: #ecfdf5;
    --warning-color: #f59e0b;
    --warning-color-light: #fffbeb;
    --info-color: #3b82f6;
    --info-color-light: #eff6ff;

    --table-header-bg-color: #009245;
    --table-header-text-color: white;
    --table-cell-bg-color: white;
    --table-cell-text-color: #475569;
    --table-cell-border-color: #f1f5f9;
    --table-border-color: transparent;
    --table-box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.04);
}

body[data-theme="light"], body:not([data-theme]) {
    .page-link {
        background-color: transparent !important;
    }

    .topbar-logo.dark-logo {
        display: none;
    }

    .topbar-logo.light-logo {
        display: block;
    }

    .bx.bx-success {
        background-color: #c5fad7;
        color: #15803d !important;

        &::before {
            background-color: #15803d;
        }
        
        & > * {
            color: inherit !important;
        }
    }

    .bx.bx-warning {
        background-color: #fef3c7;
        color: #b45309 !important;

        &::before {
            background-color: #b45309;
        }
        
        & > * {
            color: inherit !important;
        }
    }

    .bx.bx-danger {
        background-color: #fee2e2;
        color: #b91c1c !important;

        &::before {
            background-color: #b91c1c;
        }

        & > * {
            color: inherit !important;
        }
    }

    .bx.bx-info {
        background-color: #c2e5ff;
        color: #1490ad !important;

        &::before {
            background-color: #1490ad;
        }

        & > * {
            color: inherit !important;
        }
    }
}

/* ═══════════════════════════════════════════
   DARK MODE: Bootstrap Utility Overrides
   Classes do Bootstrap que forçam cores fixas 
   e precisam ser sobrescritas no dark mode.
   ═══════════════════════════════════════════ */
body[data-theme="dark"] {

    .topbar-logo.dark-logo {
        display: block;
    }

    .topbar-logo.light-logo {
        display: none;
    }

    .text-danger {
        filter: brightness(200%);
    }

    .bx.bx-success {
        background-color: #c5fad7;
        color: #15803d !important;

        &::before {
            background-color: #15803d;
        }
        
        & > * {
            color: inherit !important;
        }
    }

    .bx.bx-warning {
        background-color: #fef3c7;
        color: #b45309 !important;

        &::before {
            background-color: #b45309;
        }
        
        & > * {
            color: inherit !important;
        }
    }

    .bx.bx-danger {
        background-color: #fee2e2;
        color: #b91c1c !important;

        &::before {
            background-color: #b91c1c;
        }

        & > * {
            color: inherit !important;
        }
    }

    .bx.bx-info {
        background-color: #c2e5ff;
        color: #1490ad !important;

        &::before {
            background-color: #1490ad;
        }

        & > * {
            color: inherit !important;
        }
    }

    /* --- Textos --- */
    .text-dark {
        color: var(--text-main) !important;
    }

    .text-muted {
        color: var(--text-muted) !important;
    }

    .text-secondary {
        color: var(--text-secondary) !important;
    }

    .text-body {
        color: var(--text-main) !important;
    }

    .page-link {
        background-color: transparent !important;
    }

    .popup-window .glass-card, .popup-window .sidebar {
        background-color: var(--popup-glass-card-bg) !important;
    }

    /* Headings genéricos */
    h1, h2, h3, h4, h5, h6,
    .h1, .h2, .h3, .h4, .h5, .h6,
    .display-1, .display-2, .display-3, .display-4, .display-5, .display-6 {
        color: var(--text-heading);
    }

    /* Parágrafos, spans e labels */
    p, span, label, li, a:not(.btn):not(.text-eco):not(.dropdown-item):not(.page-link) {
        color: inherit;
    }

    /* fw-bold e fw-semibold que herdam preto */
    .fw-bold, .fw-semibold, .fw-bolder, .fw-black, .fw-medium {
        color: inherit;
    }

    /* --- Formulários & Inputs --- */
    .form-control, .form-select {
        background-color: var(--input-bg) !important;
        border-color: var(--input-border) !important;
        color: var(--input-text) !important;
    }

    .form-floating {
        border-color: var(--input-border) !important;
        & i, & .form-control:not(:placeholder-shown)~label, & label {
            color: var(--input-focus-border) !important;
        }
    }

    .form-floating > label {
        color: var(--text-muted) !important;
    }

    .form-floating > input,
    .form-floating > select,
    .form-floating > textarea {
        background-color: var(--input-bg) !important;
        color: var(--input-text) !important;
    }

    .form-floating:has(.form-control:focus),
    .form-floating:has(.form-control:active) {
        border-color: var(--input-focus-border) !important;
    }

    /* --- Modais --- */
    .modal-content,
    .modal-header,
    .modal-body,
    .modal-footer {
        background-color: var(--dropdown-bg) !important;
        color: var(--text-main) !important;
    }

    .modal-header {
        --title-color: var(--text-heading);
    }

    .modal-title {
        color: var(--text-heading) !important;
    }

    .btn-close {
        filter: invert(1) !important;
    }

    /* --- Bordas & Dividers --- */
    .border {
        border-color: var(--border-subtle) !important;
    }

    .border-top, .border-bottom {
        border-color: var(--border-subtle) !important;
    }

    hr, .dropdown-divider {
        border-color: var(--dropdown-divider);
        background-color: var(--dropdown-divider);
    }

    /* --- Backgrounds --- */
    .bg-white {
        background-color: var(--card-bg) !important;
    }

    .bg-light {
        background-color: var(--section-bg) !important;
    }

    /* --- Cards & Sections genéricas --- */
    .card {
        background-color: var(--card-bg) !important;
        border-color: var(--card-border) !important;
        color: var(--text-main) !important;
    }

    /* --- Tabelas --- */
    .table {
        color: var(--text-main);
    }

    .table > :not(caption) > * > * {
        background-color: transparent;
        color: var(--text-main);
    }

    /* --- Links genéricos --- */
    a {
        color: inherit;
    }

    /* --- Shadow overrides --- */
    .shadow-sm {
        box-shadow: 0 1px 3px var(--shadow-subtle) !important;
    }

    /* --- Tooltip --- */
    .tooltip-box > .tooltip-inner {
        background: rgba(60, 255, 152, 0.15);
        color: var(--text-main) !important;
    }
}