/* --- Estilos do Dashboard --- */
.dashboard-metrics {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-bottom: 30px;
    flex-wrap: wrap; /* Padrão seguro */
}

.chart-container h3 {
    text-align: center;
    margin-bottom: 20px;
    color: var(--text-color);
    flex-shrink: 0;
    transition: color 0.3s;
}

.canvas-wrapper {
    position: relative;
    flex-grow: 1;
    min-height: 350px; /* Garante uma altura mínima para o gráfico */
}

.dashboard-charts-grid {
    display: grid;
    grid-template-columns: 1fr; /* Força um gráfico por linha */
    gap: 30px;
    margin-top: 30px;
}

/* --- Cards de Métricas e Filtros --- */
.metrics {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    margin-bottom: 30px;
}

.metric-card {
    background-color: var(--content-bg-color);
    color: var(--text-color);
    padding: 20px;
    border-radius: 8px;
    text-align: center;
    box-shadow: 0 4px 8px var(--box-shadow-color);
    transition: transform 0.2s, box-shadow 0.2s, background-color 0.3s;
    border: 3px solid transparent;
    flex: 1 1 290px;
}

.metric-card h3 { margin: 0 0 10px 0; font-size: 1em; pointer-events: none; }
.metric-card p { margin: 0; font-size: 2em; font-weight: bold; pointer-events: none; }
.metric-card[data-filter] { cursor: pointer; }
.metric-card[data-filter]:not([data-filter="credits-spent"]):hover { transform: translateY(-5px); box-shadow: 0 8px 16px rgba(0,0,0,0.2); }
.metric-card.active { border-color: transparent; box-shadow: 0 0 15px rgba(52, 152, 219, 0.9); transform: translateY(-5px); }

/* --- Cores Específicas dos Cards --- */
#receita-mes, #receita-mes.active { background-color: var(--success-color); color: var(--text-light-color); }
#totais, #totais.active { background-color: var(--primary-color); color: var(--text-light-color); }
#to-do-card, #to-do-card.active { background-color: var(--orange-color); color: var(--text-light-color); }
#vencendo, #vencendo.active { background-color: var(--warning-color); color: var(--text-light-color); }
#vencidos, #vencidos.active { background-color: var(--danger-color); color: var(--text-light-color); }
#app-expiring-card, #app-expiring-card.active { background-color: var(--purple-color); color: var(--text-light-color); }

/* --- Lógica de Layout (4 vs 5 Colunas) --- */
main#client-content .metrics {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}

/* Layout PADRÃO (4 cards por linha) */
main#client-content .metrics:not(.layout-nine-cards) .metric-card {
    flex-grow: 1;
    flex-basis: calc(25% - 20px);
    min-width: 180px;
}

/* Layout ALTERNATIVO (5 cards por linha) */
main#client-content .metrics.layout-nine-cards .metric-card {
    flex-grow: 1;
    flex-basis: calc(20% - 20px);
    min-width: 160px;
}

/* --- Correção para Celular (Dashboard) --- */
@media (max-width: 768px) {
    /* Ajusta a base para ter 2 cards por linha no celular */
    main#client-content .metric-card {
       flex-basis: calc(50% - 10px);
    }
    
    .metrics .metric-card:last-child:nth-child(odd) {
        grid-column: 1 / -1;
    }

    .metric-card { padding: 10px; }
    
    .metrics {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }
    
    .metric-card h3 { font-size: 0.75em; margin-bottom: 5px; }
    .metric-card p { font-size: 1.5em; }
}

/* ==== CORREÇÃO: ALINHAR 5 CARDS DO DASHBOARD GERAL ==== */
#dashboard-content .dashboard-metrics {
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  gap: 20px;
}

#dashboard-content .dashboard-metrics .metric-card {
  flex: 1 1 calc(20% - 20px);
  min-width: 160px;
}

@media (max-width: 1024px) {
  #dashboard-content .dashboard-metrics { flex-wrap: wrap; }
  #dashboard-content .dashboard-metrics .metric-card { flex: 1 1 calc(50% - 10px); }
}

@media (max-width: 600px) {
  #dashboard-content .dashboard-metrics .metric-card { flex: 1 1 100%; }
}

/* --- Filtros de Data do Dashboard --- */
.dashboard-filter-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    align-items: center;
    padding: 15px;
    background-color: var(--content-bg-color);
    border-radius: 8px;
    margin-bottom: 20px;
}
.date-filter-group { display: flex; align-items: center; gap: 8px; }
.date-filter-group label { font-weight: bold; }
.date-filter-group input[type="date"] {
    padding: 8px;
    border: 1px solid var(--input-border-color);
    border-radius: 5px;
    background-color: var(--background-color);
    color: var(--text-color);
}

.btn-action.filter-active {
    background-color: #c0392b !important; /* Vermelho escuro para indicar alerta/filtro ativo */
    color: white;
    border: 2px solid #e74c3c;
    box-shadow: inset 0 0 5px rgba(0,0,0,0.5);
}