body {
    font-family: 'Poppins', sans-serif;
    background-color: #f1f5f9;
}

.stat-card {
    transition: all 0.3s ease;
}

.stat-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}

.chart-container {
    transition: all 0.3s ease;
}

.chart-container:hover {
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}

.menu-link {
    position: relative;
    transition: all 0.3s ease;
}

.menu-link.active::after {
    content: '';
    position: absolute;
    bottom: -5px;
    left: 0;
    width: 100%;
    height: 3px;
    background-color: #0072ce;
    border-radius: 2px;
}

.menu-link:hover:not(.active) {
    color: #0072ce;
}

.menu-link:hover:not(.active)::after {
    content: '';
    position: absolute;
    bottom: -5px;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: #b3d4fc;
    border-radius: 2px;
}

@media (min-width: 1280px) {
    .container {
        max-width: 80% !important;
    }
}

/* Estilos para o mapa do Brasil */
.brazil-map {
    max-width: 100%;
    height: auto;
}

.region {
    stroke: #fff;
    stroke-width: 0.5px;
    cursor: pointer;
    transition: all 0.3s ease;
}

.region:hover {
    stroke: #000;
    stroke-width: 2px;
    filter: brightness(1.1);
}

.region.active {
    fill: #0072ce;
}

.region.selected {
    fill: #11bf7d !important;
    stroke: #000;
    stroke-width: 2px;
    filter: drop-shadow(0 0 5px rgba(17, 191, 125, 0.7));
}

.region-info {
    position: absolute;
    background: white;
    border-radius: 8px;
    padding: 10px;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
    z-index: 100;
    max-width: 250px;
    border-left: 4px solid #0072ce;
    pointer-events: none;
    opacity: 0;
}

/* Animações */
@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.animate-fade-in {
    animation: fadeIn 0.5s ease forwards;
}

.progress-ring {
    transition: stroke-dashoffset 0.5s ease;
}

/* Tooltip personalizado */
.custom-tooltip {
    position: absolute;
    background: white;
    border-radius: 8px;
    padding: 10px;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
    z-index: 100;
    display: none;
    max-width: 250px;
    border-left: 4px solid #0072ce;
}

/* Login page styles */
.login-container {
    background: linear-gradient(135deg, #b3d4fc 0%, #0072ce 100%);
}

.login-form {
    backdrop-filter: blur(10px);
    background: rgba(255, 255, 255, 0.95);
}

.login-input:focus {
    transform: scale(1.02);
    transition: all 0.2s ease;
}

/* Botão de logout styles */
.logout-btn {
    transition: all 0.2s ease;
}

.logout-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(239, 68, 68, 0.3);
}

/* Fallback utilitário caso Tailwind CDN não aplique config custom (garante cores) */
.text-primary { color: #0072ce !important; }
.text-primary-dark { color: #003865 !important; }
.text-primary-light { color: #b3d4fc !important; }
.bg-primary { background-color: #0072ce !important; }
.bg-primary-dark { background-color: #003865 !important; }
.bg-primary-light { background-color: #b3d4fc !important; }
.text-secondary { color: #11bf7d !important; }
.text-secondary-dark { color: #0a8c5a !important; }
.text-secondary-light { color: #e6f7ff !important; }
.bg-secondary { background-color: #11bf7d !important; }
.bg-secondary-dark { background-color: #0a8c5a !important; }
.bg-secondary-light { background-color: #e6f7ff !important; }
.text-neutral { color: #64748b !important; }
.text-neutral-dark { color: #334155 !important; }
.text-neutral-light { color: #f8fafc !important; }
.bg-neutral { background-color: #64748b !important; }
.bg-neutral-dark { background-color: #334155 !important; }
.bg-neutral-light { background-color: #f8fafc !important; }