/* --- Widgets do Dashboard --- */
.dashboard-widgets {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 25px;
}
.widget {
    background-color: #ffffff;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    padding: 25px;
    box-shadow: 0 4px 8px rgba(0,0,0,0.05);
    transition: box-shadow 0.3s ease;
}
.widget:hover { box-shadow: 0 6px 12px rgba(0,0,0,0.08); }
.widget h3 { margin-top: 0; margin-bottom: 20px; color: #34495e; font-size: 1.25em; border-bottom: 1px solid #f0f0f0; padding-bottom: 10px; }
.widget .quick-action-btn { display: block; width: 100%; padding: 12px; background-color: #3498db; color: white; text-align: center; text-decoration: none; border: none; border-radius: 5px; font-weight: bold; margin-top: 15px; box-sizing: border-box; cursor: pointer; transition: background-color 0.3s; }
.widget .quick-action-btn:hover { background-color: #2980b9; }
.widget .quick-action-btn.danger { background-color: #e74c3c; }
.widget .quick-action-btn.danger:hover { background-color: #c0392b; }
.widget .statistic { font-size: 2.8em; font-weight: 700; color: #2c3e50; margin-top: 10px; }
.widget .statistic-label { font-size: 0.95em; color: #7f8c8d; }
/* Estilo para o canvas do gráfico */
.gender-split { display: flex; justify-content: space-around; margin-top: 15px; font-size: 0.9em; }
.gender-split div { text-align: center; }
.gender-split .gender-label { color: #7f8c8d; }
.gender-split .gender-count { font-weight: bold; color: #2c3e50; }
.sub-stat-single {
    text-align: center;
    margin-top: 15px;
    padding-top: 15px;
    border-top: 1px solid #f0f0f0;
}
.dashboard-filter {
    background-color: #fff;
    padding: 15px 20px;
    border-radius: 8px;
    box-shadow: 0 4px 8px rgba(0,0,0,0.05);
    margin-bottom: 25px;
    display: flex; align-items: center; gap: 15px;
}
.widget-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid #f0f0f0;
    padding-bottom: 10px;
    margin-bottom: 20px;
}
.widget-header h3 { margin: 0; border-bottom: none; padding-bottom: 0; }
.expand-btn { cursor: pointer; color: #7f8c8d; font-size: 1.1em; }
.expand-btn:hover { color: #3498db; }

/* Estilos do Modal */
.modal {
    display: none; 
    position: fixed; 
    z-index: 1000; 
    left: 0;
    top: 0;
    width: 100%; 
    height: 100%; 
    overflow: auto; 
    background-color: rgba(0,0,0,0.6);
}
.modal-content {
    background-color: #fefefe;
    margin: 5% auto;
    padding: 20px;
    border: 1px solid #888;
    width: 80%;
    max-width: 900px;
    border-radius: 8px;
    position: relative;
}
.close-modal { color: #aaa; position: absolute; top: 10px; right: 25px; font-size: 28px; font-weight: bold; }
.close-modal:hover, .close-modal:focus { color: black; text-decoration: none; cursor: pointer; }
.widget canvas { max-height: 200px; margin-top: 15px; }

/* Links em Widgets */
.widget-link { text-decoration: none; }
.widget-link .widget { transition: transform 0.2s ease, box-shadow 0.2s ease; }
.widget-link:hover .widget { transform: translateY(-5px); box-shadow: 0 8px 15px rgba(0,0,0,0.1); }