Index: src/main/java/apps/spring/reportium/entity/DTOs/ReportFilterDTO.java
===================================================================
--- src/main/java/apps/spring/reportium/entity/DTOs/ReportFilterDTO.java	(revision ce73f820bfb4b153597989970f1c9b0a60da5200)
+++ src/main/java/apps/spring/reportium/entity/DTOs/ReportFilterDTO.java	(revision 1f801d0f975258c5ba9a6c0e43a5fb5dd70fc128)
@@ -48,5 +48,5 @@
     @Enumerated(EnumType.STRING)
     private PunishmentType punishment_type;//FINE, PRISON
-    private Integer punishment_fine;//if a punishment type is fine (euros)
+    private Double punishment_fine;//if a punishment type is fine (euros)
     private Integer punishment_years;//if a punishment type is prison (years)
     /*MEDICAL REPORT FIELDS*/
Index: src/main/java/apps/spring/reportium/specifications/ReportFilterSpecificationBuilder.java
===================================================================
--- src/main/java/apps/spring/reportium/specifications/ReportFilterSpecificationBuilder.java	(revision ce73f820bfb4b153597989970f1c9b0a60da5200)
+++ src/main/java/apps/spring/reportium/specifications/ReportFilterSpecificationBuilder.java	(revision 1f801d0f975258c5ba9a6c0e43a5fb5dd70fc128)
@@ -32,11 +32,13 @@
         return (root, query, cb) -> {
             //global things
-            query.distinct(true);
+            query.distinct(false);
             LocalDate now = LocalDate.now();
             List<Predicate> predicates = new ArrayList<>();
+            Join<Report, Person> report_on_person_join = root.join("person", JoinType.LEFT);
+            //PERSON PART FILTERS
+            //proof of concept 1 -> Person Join Filters
+            /* Person */
+            //ALL TESTED!
             if (filter.getFilter_selected().equals(SelectedFilterSection.PERSON)) {
-                //proof of concept 1 -> Person Join Filters
-                /* Person */
-                Join<Report, Person> report_on_person_join = root.join("person", JoinType.LEFT);
                 // predicate that checks if there exists a person with the string provided in the name
                 if (filter.getPerson_name_string() != null && !filter.getPerson_name_string().isBlank()) {
@@ -80,7 +82,9 @@
                 }
             }
+            //EMPLOYMENT PART FILTERS
+            //proof of concept 2 -> Employment Report Join Filters
+            /* Employment Report */
+            //ALL TESTED!
             if (filter.getFilter_selected().equals(SelectedFilterSection.EMPLOYMENT)) {
-                //proof of concept 2 -> Employment Report Join Filters
-                /* Employment Report */
                 Join<Report, EmploymentReport> employment_report_join = root.join("employmentReport", JoinType.LEFT);
                 //predicate for income check (more,less,equal)
@@ -109,7 +113,9 @@
                 }
             }
+            //ACADEMIC PART FILTERS
+            //proof of concept 3 -> Academic Report Join Filters
+            /* Academic Report */
+            //ALL TESTED!
             if (filter.getFilter_selected().equals(SelectedFilterSection.ACADEMIC)) {
-                //proof of concept 3 -> Academic Report Join Filters
-                /* Academic Report */
                 Join<Report, AcademicReport> academic_report_join = root.join("academicReport", JoinType.LEFT);
                 //predicate for field of study
@@ -123,37 +129,42 @@
                 }
             }
+            //MEDICAL PART FILTERS
+            //proof of concept 4 -> Medical Report Join Filters
+            /* Medical Report */
+            //ALL TESTED!
             if (filter.getFilter_selected().equals(SelectedFilterSection.MEDICAL)) {
-                //proof of concept 4 -> Medical Report Join Filters
-                /* Medical Report */
-                Join<Report, MedicalReport> medical_report_join = root.join("medicalReport", JoinType.LEFT);
-                Join<MedicalReport, Doctor> medical_report_doctor_join = medical_report_join.join("doctor", JoinType.LEFT);
-                //predicate for has next control
-                if (filter.getHas_next_control()) {
-                    predicates.add(cb.isNotNull(medical_report_join.get("nextControlDate")));
+                // Join to MedicalReport and Doctor
+                Join<Report, MedicalReport> medicalReportJoin = root.join("medicalReport", JoinType.LEFT);
+                Join<MedicalReport, Doctor> doctorJoin = medicalReportJoin.join("doctor", JoinType.LEFT);
+                Join<MedicalReport, MedicalReportDiagnosis> diagnosisLinkJoin = medicalReportJoin.join("medicalReportDiagnoses", JoinType.LEFT);
+                Join<MedicalReportDiagnosis, Diagnosis> diagnosisJoin = diagnosisLinkJoin.join("diagnosis", JoinType.LEFT);
+                // Has Next Medical Control
+                if (Boolean.TRUE.equals(filter.getHas_next_control())) {
+                    predicates.add(cb.isNotNull(medicalReportJoin.get("nextControlDate")));
                 } else {
-                    predicates.add(cb.isNull(medical_report_join.get("nextControlDate")));
+                    predicates.add(cb.isNull(medicalReportJoin.get("nextControlDate")));
                 }
-                //predicate for doctor name
+                // Doctor Name
                 if (filter.getDoctor_name_string() != null && !filter.getDoctor_name_string().isBlank()) {
-                    predicates.add(cb.like(cb.lower(medical_report_doctor_join.get("name")), "%" + filter.getDoctor_name_string().toLowerCase() + "%"));
+                    predicates.add(cb.like(cb.lower(doctorJoin.get("name")), "%" + filter.getDoctor_name_string().toLowerCase() + "%"));
                 }
-                //predicate for doctor surname
+                // Doctor Surname
                 if (filter.getDoctor_surname_string() != null && !filter.getDoctor_surname_string().isBlank()) {
-                    predicates.add(cb.like(cb.lower(medical_report_doctor_join.get("surname")), "%" + filter.getDoctor_surname_string().toLowerCase() + "%"));
+                    predicates.add(cb.like(cb.lower(doctorJoin.get("surname")), "%" + filter.getDoctor_surname_string().toLowerCase() + "%"));
                 }
-                //predicate for specialization
+                // Specialization
                 if (filter.getSpecialization() != null) {
-                    predicates.add(cb.equal(medical_report_doctor_join.get("specialization"), filter.getSpecialization()));
+                    predicates.add(cb.equal(doctorJoin.get("specialization"), filter.getSpecialization()));
                 }
-                Join<MedicalReport, MedicalReportDiagnosis> mrd_join = medical_report_join.join("medicalReportDiagnoses", JoinType.INNER);
-                Join<MedicalReportDiagnosis, Diagnosis> diagnosis_join = mrd_join.join("diagnosis", JoinType.INNER);
-                //predicate for if the illness is chronic
+                // Chronic diagnosis
                 if (filter.getIs_chronic() != null) {
-                    predicates.add(cb.equal(diagnosis_join.get("isChronic"), filter.getIs_chronic()));
+                    predicates.add(cb.equal(diagnosisJoin.get("isChronic"), filter.getIs_chronic()));
                 }
             }
+            //FIXME
+            //CRIMINAL PART FILTERS
+            //proof of concept 5 -> Criminal Report Join Filters
+            /* Criminal Report */
             if (filter.getFilter_selected().equals(SelectedFilterSection.CRIMINAL)) {
-                //proof of concept 5 -> Criminal Report Join Filters
-                /* Criminal Report */
                 Join<Report, CriminalReport> criminal_report_join = root.join("criminalReport", JoinType.LEFT);
                 Join<CriminalReport, CrimeType> crime_type_join = criminal_report_join.join("crimeType", JoinType.LEFT);
@@ -183,6 +194,4 @@
                 }
             }
-
-
             return cb.and(predicates.toArray(new Predicate[0]));
         };
Index: src/main/java/apps/spring/reportium/web/AdvancedFilterController.java
===================================================================
--- src/main/java/apps/spring/reportium/web/AdvancedFilterController.java	(revision ce73f820bfb4b153597989970f1c9b0a60da5200)
+++ src/main/java/apps/spring/reportium/web/AdvancedFilterController.java	(revision 1f801d0f975258c5ba9a6c0e43a5fb5dd70fc128)
@@ -49,4 +49,10 @@
         System.out.println("Selected filter: " + filter.getFilter_selected());
         List<Report> filteredReports = reportService.getReportsByAdvancedFilter(filter);
+
+        System.out.println("Results: " + filteredReports.size());
+        for (Report r : filteredReports) {
+            System.out.println("Report ID: " + r.getReportId() + ", Summary: " + r.getSummary());
+        }
+
         model.addAttribute("results", filteredReports);
         model.addAttribute("filter", filter);
Index: src/main/resources/templates/filter_panel.html
===================================================================
--- src/main/resources/templates/filter_panel.html	(revision ce73f820bfb4b153597989970f1c9b0a60da5200)
+++ src/main/resources/templates/filter_panel.html	(revision 1f801d0f975258c5ba9a6c0e43a5fb5dd70fc128)
@@ -258,5 +258,5 @@
                         <label for="punishment_fine" class="form-label fw-bold">Punishment Fine (euros)</label>
                         <input type="number" id="punishment_fine" th:field="*{punishment_fine}" class="form-control"
-                               min="0">
+                               min="0" step="0.01">
                     </div>
 
@@ -349,5 +349,4 @@
         });
     }
-
 
 
@@ -414,11 +413,19 @@
     }
 
-    window.onload = function () {
+    document.addEventListener("DOMContentLoaded", function () {
         selectFilterArea();
         updateAgeRange();
         togglePunishment();
-        toggleActiveBadge();
         disableAgeFilters();
-    };
+
+        document.getElementById("filter_type").addEventListener("change", selectFilterArea);
+        document.getElementById("age_start").addEventListener("input", updateAgeRange);
+        document.getElementById("age_end").addEventListener("input", updateAgeRange);
+        document.getElementById("correct_age").addEventListener("input", updateAgeRange);
+        document.getElementById("punishmentFineRadio").addEventListener("click", togglePunishment);
+        document.getElementById("punishmentYearsRadio").addEventListener("click", togglePunishment);
+        document.getElementById("is_alive").addEventListener("change", disableAgeFilters);
+    });
+
 </script>
 
Index: src/main/resources/templates/filtered_results.html
===================================================================
--- src/main/resources/templates/filtered_results.html	(revision ce73f820bfb4b153597989970f1c9b0a60da5200)
+++ src/main/resources/templates/filtered_results.html	(revision 1f801d0f975258c5ba9a6c0e43a5fb5dd70fc128)
@@ -1,4 +1,4 @@
 <!DOCTYPE html>
-<html lang="en">
+<html lang="en" xmlns:sec="http://www.w3.org/1999/xhtml">
 <head>
     <meta charset="UTF-8">
@@ -11,8 +11,38 @@
 
 <div class="container py-5">
+    <nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top mb-4">
+        <div class="container-fluid">
+            <a class="navbar-brand fw-bold px-3 py-2 rounded-2 text-white"
+               th:href="@{/}"
+               style="background: linear-gradient(to right, #003366, #004080);
+          border-left: 5px solid #FFD700;
+          font-size: 1.5rem;
+          box-shadow: 0 0 5px rgba(0,0,0,0.2);
+          letter-spacing: 1px;">
+                <span style="color: #FFD700;">R</span>eportium
+            </a>
 
-    <h2 class="text-center mb-4 text-primary fw-bold">Filtered Reports</h2>
-
-    <div class="table-responsive shadow-sm rounded">
+            <button class="navbar-toggler" type="button" data-bs-toggle="collapse"
+                    data-bs-target="#navbarContent" aria-controls="navbarContent"
+                    aria-expanded="false" aria-label="Toggle navigation">
+                <span class="navbar-toggler-icon"></span>
+            </button>
+            <div class="collapse navbar-collapse justify-content-end" id="navbarContent">
+                <ul class="navbar-nav mb-2 mb-lg-0">
+                    <li class="nav-item">
+                        <a class="nav-link" th:href="@{/reports}">All Reports</a>
+                    </li>
+                    <li class="nav-item" sec:authorize="hasRole('ROLE_ADMIN')">
+                        <a class="nav-link text-info" th:href="@{/profiles}">Users</a>
+                    </li>
+                    <li class="nav-item">
+                        <a class="nav-link text-danger" th:href="@{/logout}">Logout</a>
+                    </li>
+                </ul>
+            </div>
+        </div>
+    </nav>
+    <h2 class="text-center my-4 text-primary fw-bold">Filtered Reports</h2>
+    <div class="table-responsive shadow-sm rounded mt-5">
         <table class="table table-striped table-bordered align-middle">
             <thead class="table-dark text-center">
