:root {
    /* --- Core Palette --- */
    --brand-bg: #fafaf6;
    --brand-text: #403E3E;
    --brand-primary: #6C674F;
    --brand-primary-hover: #56523F;
    --brand-primary-active: #403D2F;
    --brand-card-bg: #FFFFFF;
    
    /* --- Bootstrap Variable Overrides (The Magic) --- */
    
    /* Body & Text */
    --bs-body-bg: var(--brand-bg);
    --bs-body-bg-rgb: 250, 250, 246;
    
    --bs-body-color: var(--brand-text);
    --bs-body-color-rgb: 64, 62, 62;
    
    /* Primary Color (Olive) */
    --bs-primary: var(--brand-primary);
    --bs-primary-rgb: 108, 103, 79;
    --bs-primary-text-emphasis: #403D2F; 
    --bs-primary-bg-subtle: #F0EFE9;
    --bs-primary-border-subtle: #D8D4CE;
    
    /* Links */
    --bs-link-color: var(--brand-primary);
    --bs-link-hover-color: var(--brand-primary-hover);
    
    /* Fonts */
    --bs-font-sans-serif: 'Arial Nova', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    --bs-body-font-family: var(--bs-font-sans-serif);

    /* --- Custom Component Variables --- */
    --color-card-bg: var(--brand-card-bg);
    --color-card-bg-subtle: #FAF9F7;
    --color-border-subtle: #D8D4CE;

    /* --- Sub-Brand Colors --- */
    --brand-sinergy: #6C674F; /* Brown/Olive (Same as Primary) */
    --brand-sinergy-fg: #FFFFFF;
    --brand-academy: #215E9B; /* Corporate Blue */
    --brand-academy-fg: #FFFFFF;
    
    /* --- Feature Colors --- */
    --brand-visite: #a2c671; /* New Green */
    --brand-visite-hover: #86a858;
    --brand-visite-fg: #FFFFFF;

    --brand-corsi: #80b4e4; /* New Blue */
    --brand-corsi-hover: #6aa0d0;
    --brand-corsi-fg: #FFFFFF;

    --brand-consulenze: #bba7fa; /* New Purple */
    --brand-consulenze-hover: #a08ce0;
    --brand-consulenze-fg: #FFFFFF;
}

/* --- Global Reset --- */
body {
    background-color: var(--bs-body-bg) !important;
    color: var(--bs-body-color) !important;
    font-family: var(--bs-body-font-family) !important;
    -webkit-font-smoothing: antialiased;
}

/* --- Headings --- */
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
    color: var(--bs-primary);
    font-weight: 600;
}

/* --- Brand Utilities: Visite (#a2c671) --- */
.text-visite { color: var(--brand-visite) !important; }
.bg-visite { background-color: var(--brand-visite) !important; color: var(--brand-visite-fg) !important; }
.bg-visite-subtle { background-color: var(--brand-visite-light) !important; } 
.text-visite-emphasis { color: var(--brand-visite-dark) !important; }
.border-visite { border-color: var(--brand-visite) !important; }
.card-header-visite { background-color: var(--brand-header-visite) !important; color: var(--brand-header-visite-text, #ffffff) !important; }

/* Custom Button: Visite */
.btn-visite {
    background-color: var(--brand-visite);
    border-color: var(--brand-visite);
    color: var(--brand-visite-fg);
}
.btn-visite:hover, .btn-visite:focus, .btn-visite:active, .btn-visite.active {
    background-color: var(--brand-visite-hover) !important;
    border-color: var(--brand-visite-hover) !important;
    color: #FFFFFF !important;
}

/* Custom Outline Button: Visite */
.btn-outline-visite {
    color: var(--brand-visite);
    border-color: var(--brand-visite);
    background-color: transparent;
}
.btn-outline-visite:hover, .btn-outline-visite:focus, .btn-outline-visite:active, .btn-outline-visite.active {
    background-color: var(--brand-visite) !important;
    border-color: var(--brand-visite) !important;
    color: #FFFFFF !important;
}

/* --- Brand Utilities: Corsi (#80b4e4) --- */
.text-corsi { color: var(--brand-corsi) !important; }
.bg-corsi { background-color: var(--brand-corsi) !important; color: var(--brand-corsi-fg) !important; }
.bg-corsi-subtle { background-color: var(--brand-corsi-light) !important; }
.text-corsi-emphasis { color: var(--brand-corsi-dark) !important; }
.border-corsi { border-color: var(--brand-corsi) !important; }
.card-header-corsi { background-color: var(--brand-header-corsi) !important; color: var(--brand-header-corsi-text, #ffffff) !important; }
.card-header-corsi-step1 { background-color: var(--brand-header-corsi-step1) !important; color: var(--brand-header-corsi-step1-text, #ffffff) !important; }
.card-header-corsi-step2 { background-color: var(--brand-header-corsi-step2) !important; color: var(--brand-header-corsi-step2-text, #ffffff) !important; }
.card-header-corsi-step3 { background-color: var(--brand-header-corsi-step3) !important; color: var(--brand-header-corsi-step3-text, #ffffff) !important; }
.card-header-corsi-iscrizioni { background-color: var(--brand-header-corsi-iscrizioni) !important; color: var(--brand-header-corsi-iscrizioni-text, #ffffff) !important; }

/* Custom Button: Corsi */
.btn-corsi {
    background-color: var(--brand-corsi);
    border-color: var(--brand-corsi);
    color: var(--brand-corsi-fg);
}
.btn-corsi:hover, .btn-corsi:focus, .btn-corsi:active, .btn-corsi.active {
    background-color: var(--brand-corsi-hover) !important;
    border-color: var(--brand-corsi-hover) !important;
    color: #FFFFFF !important;
}

/* Custom Outline Button: Corsi */
.btn-outline-corsi {
    color: var(--brand-corsi);
    border-color: var(--brand-corsi);
    background-color: transparent;
}
.btn-outline-corsi:hover, .btn-outline-corsi:focus, .btn-outline-corsi:active, .btn-outline-corsi.active {
    background-color: var(--brand-corsi) !important;
    border-color: var(--brand-corsi) !important;
    color: #FFFFFF !important;
}

/* --- Brand Utilities: Consulenze (#bba7fa) --- */
.text-consulenze { color: var(--brand-consulenze) !important; }
.bg-consulenze { background-color: var(--brand-consulenze) !important; color: var(--brand-consulenze-fg) !important; }
.bg-consulenze-subtle { background-color: var(--brand-consulenze-light) !important; }
.text-consulenze-emphasis { color: var(--brand-consulenze-dark) !important; }
.border-consulenze { border-color: var(--brand-consulenze) !important; }
.card-header-consulenze { background-color: var(--brand-header-consulenze) !important; color: var(--brand-header-consulenze-text, #ffffff) !important; }

/* Custom Button: Consulenze */
.btn-consulenze {
    background-color: var(--brand-consulenze);
    border-color: var(--brand-consulenze);
    color: var(--brand-consulenze-fg);
}
.btn-consulenze:hover, .btn-consulenze:focus, .btn-consulenze:active, .btn-consulenze.active {
    background-color: var(--brand-consulenze-hover) !important;
    border-color: var(--brand-consulenze-hover) !important;
    color: #FFFFFF !important;
}

/* Custom Outline Button: Consulenze */
.btn-outline-consulenze {
    color: var(--brand-consulenze);
    border-color: var(--brand-consulenze);
    background-color: transparent;
}
.btn-outline-consulenze:hover, .btn-outline-consulenze:focus, .btn-outline-consulenze:active, .btn-outline-consulenze.active {
    background-color: var(--brand-consulenze) !important;
    border-color: var(--brand-consulenze) !important;
    color: #FFFFFF !important;
}

/* --- Brand Utilities: Target (#f5a623) --- */
.text-target { color: var(--brand-target) !important; }
.bg-target { background-color: var(--brand-target) !important; color: var(--brand-target-fg, #FFFFFF) !important; }
.bg-target-subtle { background-color: var(--brand-target-light) !important; }
.text-target-emphasis { color: var(--brand-target-dark) !important; }
.border-target { border-color: var(--brand-target) !important; }
.card-header-target { background-color: var(--brand-header-target) !important; color: var(--brand-header-target-text, #ffffff) !important; }

/* Custom Button: Target */
.btn-target {
    background-color: var(--brand-target);
    border-color: var(--brand-target);
    color: var(--brand-target-fg, #FFFFFF);
}
.btn-target:hover, .btn-target:focus, .btn-target:active, .btn-target.active {
    background-color: var(--brand-target-hover) !important;
    border-color: var(--brand-target-hover) !important;
    color: #FFFFFF !important;
}

/* Custom Outline Button: Target */
.btn-outline-target {
    color: var(--brand-target);
    border-color: var(--brand-target);
    background-color: transparent;
}
.btn-outline-target:hover, .btn-outline-target:focus, .btn-outline-target:active, .btn-outline-target.active {
    background-color: var(--brand-target) !important;
    border-color: var(--brand-target) !important;
    color: #FFFFFF !important;
}

/* --- Brand Utilities: Sinergy --- */
.text-sinergy { color: var(--brand-sinergy) !important; }
.bg-sinergy { background-color: var(--brand-sinergy) !important; color: var(--brand-sinergy-fg) !important; }
.badge-sinergy, .badge.sinergy { 
    background-color: var(--brand-sinergy) !important; 
    color: var(--brand-sinergy-fg) !important; 
    border: 1px solid var(--brand-sinergy) !important;
}

/* --- Brand Utilities: Academy --- */
.text-academy { color: var(--brand-academy) !important; }
.bg-academy { background-color: var(--brand-academy) !important; color: var(--brand-academy-fg) !important; }
.badge-academy, .badge.academy { 
    background-color: var(--brand-academy) !important; 
    color: var(--brand-academy-fg) !important;
    border: 1px solid var(--brand-academy) !important;
}

/* --- Legacy/Existing Component Overrides --- */

/* Badge Overrides based on context found in code */
/* Sinergy was often bg-primary (now covered by rebrand) but let's be explicit if class='sinergy' exists */
.badge.bg-primary-subtle.text-primary:has(+:contains("Sinergy")), /* Modern CSS select if possible, otherwise rely on PHP classes */
span.badge:contains("Sinergy") {
    background-color: var(--brand-sinergy) !important;
    color: #FFFFFF !important;
    border-color: var(--brand-sinergy) !important;
}

span.badge:contains("Academy") {
    background-color: var(--brand-academy) !important;
    color: #FFFFFF !important;
    border-color: var(--brand-academy) !important;
}

/* Gauge Cards & Summary Cards (from app.css/theme-enhanced.css analysis) */
.agent-summary-card.academy,
.gauge-card.academy,
.gauge-card.academy .gauge-header {
    border-color: var(--brand-academy) !important;
}

.gauge-card.academy .gauge-header {
    color: var(--brand-academy) !important;
    background-color: rgba(33, 94, 155, 0.05) !important; /* light blue bg */
}

.agent-summary-card.sinergy,
.gauge-card.sinergy,
.gauge-card.sinergy .gauge-header {
    border-color: var(--brand-sinergy) !important;
}

.gauge-card.sinergy .gauge-header {
    color: var(--brand-sinergy) !important;
    background-color: rgba(108, 103, 79, 0.05) !important;
}

/* Border left accents */
.brand-card[data-brand="academy"] { border-left-color: var(--brand-academy) !important; }
.brand-card[data-brand="sinergy"] { border-left-color: var(--brand-sinergy) !important; }
.brand-card[data-brand="visite"] { border-left-color: var(--brand-visite) !important; }
.brand-card[data-brand="corsi"] { border-left-color: var(--brand-corsi) !important; }
.brand-card[data-brand="consulenze"] { border-left-color: var(--brand-consulenze) !important; }

/* Text colors in reports */
.text-purple { color: var(--brand-academy) !important; } /* Overriding the purple used for Academy */

/* --- Bootstrap Button Overrides (Specific reinforcement) --- */
.btn-primary {
    --bs-btn-bg: var(--brand-primary);
    --bs-btn-border-color: var(--brand-primary);
    --bs-btn-hover-bg: var(--brand-primary-hover);
    --bs-btn-hover-border-color: var(--brand-primary-hover);
    --bs-btn-active-bg: var(--brand-primary-active);
    --bs-btn-active-border-color: var(--brand-primary-active);
}

.btn-outline-primary {
    --bs-btn-color: var(--brand-primary);
    --bs-btn-border-color: var(--brand-primary);
    --bs-btn-hover-bg: var(--brand-primary);
    --bs-btn-hover-border-color: var(--brand-primary);
    --bs-btn-active-bg: var(--brand-primary);
    --bs-btn-active-border-color: var(--brand-primary);
}

/* --- Bootstrap Card Overrides --- */
.card {
    --bs-card-bg: var(--brand-card-bg);
    --bs-card-border-color: var(--color-border-subtle);
    --bs-card-cap-bg: var(--color-card-bg-subtle);
    
    background-color: var(--bs-card-bg);
    border: 1px solid var(--bs-card-border-color);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.card-header {
    background-color: var(--bs-card-cap-bg);
    border-bottom: 1px solid var(--bs-card-border-color);
    color: var(--bs-primary);
    font-weight: 600;
}

/* --- Form Controls --- */
.form-control:focus, 
.form-select:focus {
    border-color: var(--brand-primary);
    box-shadow: 0 0 0 0.25rem rgba(108, 103, 79, 0.25);
}

/* --- Topbar Adaptation (If it uses .bg-body, it's fine now, but let's ensure contrast) --- */
.app-topbar {
    background-color: var(--brand-card-bg) !important; /* Make topbar White to stand out from Beige body */
    border-bottom-color: var(--color-border-subtle) !important;
}

/* --- Sidebar Adaptation --- */
.app-sidebar {
    background-color: var(--brand-card-bg); /* Or keep it body color? White sidebar looks cleaner on beige */
    border-right: 1px solid var(--color-border-subtle);
}

.app-sidebar .nav-link.active {
    background-color: var(--brand-primary-bg-subtle, #F0EFE9);
    color: var(--brand-primary);
}

.app-sidebar .nav-link {
    color: var(--brand-text);
}

.app-sidebar .nav-link:hover {
    background-color: rgba(108, 103, 79, 0.05);
    color: var(--brand-primary);
}