Index: c/main/java/mk/ukim/finki/synergymed/config/RoleResolver.java
===================================================================
--- src/main/java/mk/ukim/finki/synergymed/config/RoleResolver.java	(revision 79f84952634205e193ff09d1633fabe70edf6ce9)
+++ 	(revision )
@@ -1,36 +1,0 @@
-package mk.ukim.finki.synergymed.config;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.synergymed.repositories.AdminRepository;
-import mk.ukim.finki.synergymed.repositories.PharmacistRepository;
-import mk.ukim.finki.synergymed.repositories.ClientRepository;
-import org.springframework.security.core.authority.SimpleGrantedAuthority;
-import org.springframework.stereotype.Component;
-
-import java.util.ArrayList;
-import java.util.List;
-
-@Component
-@RequiredArgsConstructor
-public class RoleResolver {
-
-    private final AdminRepository adminRepo;
-    private final PharmacistRepository pharmacistRepo;
-    private final ClientRepository clientRepo;
-
-    // Returns raw roles: e.g., ["ADMIN","PHARMACIST","CLIENT"]
-    public List<String> rolesForUser(Integer userId) {
-        List<String> roles = new ArrayList<>();
-        if (adminRepo.existsById(userId)) roles.add("ADMIN");
-        if (pharmacistRepo.existsById(userId)) roles.add("PHARMACIST");
-        if (clientRepo.existsById(userId)) roles.add("CLIENT");
-        return roles;
-    }
-
-    public List<SimpleGrantedAuthority> authoritiesForUser(Integer userId) {
-        List<String> roles = rolesForUser(userId);
-        return roles.stream()
-                .map(r -> new SimpleGrantedAuthority("ROLE_" + r))
-                .toList();
-    }
-}
Index: src/main/java/mk/ukim/finki/synergymed/config/SecurityConfig.java
===================================================================
--- src/main/java/mk/ukim/finki/synergymed/config/SecurityConfig.java	(revision 79f84952634205e193ff09d1633fabe70edf6ce9)
+++ src/main/java/mk/ukim/finki/synergymed/config/SecurityConfig.java	(revision bff4de4501a84df4baa63f77008ecf7f5550d1bb)
@@ -18,6 +18,9 @@
                 .csrf(AbstractHttpConfigurer::disable)
                 .authorizeHttpRequests(reg -> reg
-                        .requestMatchers("/", "/login", "/register", "/error", "/css/**", "/js/**", "/images/**").permitAll()
-                        .anyRequest().authenticated()
+                        .requestMatchers("/", "/login", "/register", "/error", "/css/**", "/js/**", "/uploads/**", "/logo.png", "catalog").permitAll()
+                        .requestMatchers("/admin/branded-medicines/**").hasAnyRole("ADMIN","PHARMACIST")
+                        .requestMatchers("/admin/**").hasRole("ADMIN")
+                                .requestMatchers("/pharmacist/**").hasRole("PHARMACIST")
+                        .anyRequest().permitAll()
                 )
                 .formLogin(login -> login
Index: src/main/java/mk/ukim/finki/synergymed/models/enumerations/CompanyRoleType.java
===================================================================
--- src/main/java/mk/ukim/finki/synergymed/models/enumerations/CompanyRoleType.java	(revision 79f84952634205e193ff09d1633fabe70edf6ce9)
+++ src/main/java/mk/ukim/finki/synergymed/models/enumerations/CompanyRoleType.java	(revision bff4de4501a84df4baa63f77008ecf7f5550d1bb)
@@ -6,5 +6,4 @@
     MANUFACTURER,
     PHARMACY,
-
-    DELIVERYCOMPANY
+    DELIVERY_COMPANY
 }
Index: src/main/java/mk/ukim/finki/synergymed/service/CompanyOrchestrationService.java
===================================================================
--- src/main/java/mk/ukim/finki/synergymed/service/CompanyOrchestrationService.java	(revision 79f84952634205e193ff09d1633fabe70edf6ce9)
+++ src/main/java/mk/ukim/finki/synergymed/service/CompanyOrchestrationService.java	(revision bff4de4501a84df4baa63f77008ecf7f5550d1bb)
@@ -1,2 +1,3 @@
+// src/main/java/.../service/CompanyOrchestrationService.java
 package mk.ukim.finki.synergymed.service;
 
@@ -7,9 +8,7 @@
 
 public interface CompanyOrchestrationService {
-    Company createCompanyWithRoles(
-            String companyName,
-            String description,
-            String registrationNumber,
-            List<CompanyRoleType> roles
-    );
+    Company createCompanyWithRoles(String companyName, String description, String registrationNumber,
+                                   List<CompanyRoleType> roles);
+    void updateCompanyAndRoles(Integer companyId, String companyName, String description,
+                               String registrationNumber, List<CompanyRoleType> roles);
 }
Index: src/main/java/mk/ukim/finki/synergymed/service/impl/ClubCardServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/synergymed/service/impl/ClubCardServiceImpl.java	(revision 79f84952634205e193ff09d1633fabe70edf6ce9)
+++ src/main/java/mk/ukim/finki/synergymed/service/impl/ClubCardServiceImpl.java	(revision bff4de4501a84df4baa63f77008ecf7f5550d1bb)
@@ -21,4 +21,5 @@
         Clubcard card = new Clubcard();
         card.setUser(client);
+        card.setClubProgram(program);
         card.setPoints(0);
         return clubcardRepository.save(card);
Index: src/main/java/mk/ukim/finki/synergymed/service/impl/CompanyOrchestrationServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/synergymed/service/impl/CompanyOrchestrationServiceImpl.java	(revision 79f84952634205e193ff09d1633fabe70edf6ce9)
+++ src/main/java/mk/ukim/finki/synergymed/service/impl/CompanyOrchestrationServiceImpl.java	(revision bff4de4501a84df4baa63f77008ecf7f5550d1bb)
@@ -1,13 +1,19 @@
+// src/main/java/.../service/impl/CompanyOrchestrationServiceImpl.java
 package mk.ukim.finki.synergymed.service.impl;
 
+import lombok.RequiredArgsConstructor;
 import mk.ukim.finki.synergymed.models.Company;
 import mk.ukim.finki.synergymed.models.enumerations.CompanyRoleType;
 import mk.ukim.finki.synergymed.service.*;
+import org.springframework.dao.DataIntegrityViolationException;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.EnumSet;
 import java.util.List;
+import java.util.Set;
 
 @Service
+@RequiredArgsConstructor
 public class CompanyOrchestrationServiceImpl implements CompanyOrchestrationService {
 
@@ -16,34 +22,71 @@
     private final ManufacturerService manufacturerService;
     private final PharmacyService pharmacyService;
-
-    public  CompanyOrchestrationServiceImpl(CompanyService companyService,
-                                    DistributorService distributorService,
-                                    ManufacturerService manufacturerService,
-                                    PharmacyService pharmacyService) {
-        this.companyService = companyService;
-        this.distributorService = distributorService;
-        this.manufacturerService = manufacturerService;
-        this.pharmacyService = pharmacyService;
-    }
+    private final DeliveryCompanyService deliveryCompanyService;
 
     @Override
     @Transactional
-    public Company createCompanyWithRoles(
-            String companyName,
-            String description,
-            String registrationNumber,
-            List<CompanyRoleType> roles
-    ) {
-        Company company = companyService.save(companyName, description, registrationNumber);
-        if (roles != null) {
-            for (CompanyRoleType role : roles) {
-                switch (role) {
-                    case DISTRIBUTOR -> distributorService.create(company.getId());
-                    case MANUFACTURER -> manufacturerService.create(company.getId());
-                    case PHARMACY -> pharmacyService.create(company.getId());
+    public Company createCompanyWithRoles(String companyName, String description, String registrationNumber,
+                                          List<CompanyRoleType> roles) {
+        Company c = companyService.save(companyName, description, registrationNumber);
+        for (CompanyRoleType r : roles) {
+            try {
+                switch (r) {
+                    case DISTRIBUTOR      -> distributorService.create(c.getId());
+                    case MANUFACTURER     -> manufacturerService.create(c.getId());
+                    case PHARMACY         -> pharmacyService.create(c.getId());
+                    case DELIVERY_COMPANY -> deliveryCompanyService.create(c.getId());
+                }
+            } catch (DataIntegrityViolationException ignore) {
+                // idempotent add if another request just created the row under a unique/PK constraint
+            }
+        }
+        return c;
+    } // service-level transaction boundary covers the whole use case [1][6]
+
+    @Override
+    @Transactional
+    public void updateCompanyAndRoles(Integer companyId, String companyName, String description,
+                                      String registrationNumber, List<CompanyRoleType> requestedRoles) {
+
+        companyService.update(companyId, companyName, description, registrationNumber);
+
+        Set<CompanyRoleType> current = EnumSet.noneOf(CompanyRoleType.class);
+        if (distributorService.findById(companyId).isPresent())      current.add(CompanyRoleType.DISTRIBUTOR);
+        if (manufacturerService.findById(companyId).isPresent())     current.add(CompanyRoleType.MANUFACTURER);
+        if (pharmacyService.findById(companyId).isPresent())         current.add(CompanyRoleType.PHARMACY);
+        if (deliveryCompanyService.findById(companyId).isPresent())  current.add(CompanyRoleType.DELIVERY_COMPANY);
+
+        Set<CompanyRoleType> requested = EnumSet.noneOf(CompanyRoleType.class);
+        requested.addAll(requestedRoles);
+
+        if (current.equals(requested)) return; // no-op on unchanged roles
+
+        // Adds
+        for (CompanyRoleType r : requested) {
+            if (!current.contains(r)) {
+                try {
+                    switch (r) {
+                        case DISTRIBUTOR      -> distributorService.create(companyId);
+                        case MANUFACTURER     -> manufacturerService.create(companyId);
+                        case PHARMACY         -> pharmacyService.create(companyId);
+                        case DELIVERY_COMPANY -> deliveryCompanyService.create(companyId);
+                    }
+                } catch (DataIntegrityViolationException ignore) {
+                    // safe duplicate under unique/PK
                 }
             }
         }
-        return company;
+
+        // Removes
+        for (CompanyRoleType r : current) {
+            if (!requested.contains(r)) {
+                switch (r) {
+                    case DISTRIBUTOR      -> distributorService.deleteById(companyId);
+                    case MANUFACTURER     -> manufacturerService.deleteById(companyId);
+                    case PHARMACY         -> pharmacyService.deleteById(companyId);
+                    case DELIVERY_COMPANY -> deliveryCompanyService.deleteById(companyId);
+                }
+            }
+        }
     }
 }
Index: src/main/java/mk/ukim/finki/synergymed/web/BrandedMedicineController.java
===================================================================
--- src/main/java/mk/ukim/finki/synergymed/web/BrandedMedicineController.java	(revision 79f84952634205e193ff09d1633fabe70edf6ce9)
+++ src/main/java/mk/ukim/finki/synergymed/web/BrandedMedicineController.java	(revision bff4de4501a84df4baa63f77008ecf7f5550d1bb)
@@ -39,5 +39,5 @@
     }
 
-    @GetMapping("/branded-medicines/new")
+    @GetMapping("/new")
     public String createForm(Model model) {
         model.addAttribute("manufacturers", manufacturerService.findAll());
@@ -46,5 +46,5 @@
     }
 
-    @GetMapping("/branded-medicines/{id}/edit")
+    @GetMapping("/{id}/edit")
     public String editForm(@PathVariable Integer id, Model model) {
         Brandedmedicine bm = brandedMedicineService.findById(id)
@@ -59,5 +59,5 @@
     }
 
-    @PostMapping("/branded-medicines/save")
+    @PostMapping("/save")
     public String save(
             @RequestParam(required = false) Integer id,
@@ -90,5 +90,5 @@
 
 
-    @PostMapping("/branded-medicines/{id}/delete")
+    @PostMapping("/{id}/delete")
     public String deleteBrandedMedicine(@PathVariable Integer id) throws IOException {
         brandedMedicineService.deleteById(id);
Index: src/main/java/mk/ukim/finki/synergymed/web/CompanyController.java
===================================================================
--- src/main/java/mk/ukim/finki/synergymed/web/CompanyController.java	(revision 79f84952634205e193ff09d1633fabe70edf6ce9)
+++ src/main/java/mk/ukim/finki/synergymed/web/CompanyController.java	(revision bff4de4501a84df4baa63f77008ecf7f5550d1bb)
@@ -1,4 +1,6 @@
+// src/main/java/.../web/CompanyController.java
 package mk.ukim.finki.synergymed.web;
 
+import lombok.RequiredArgsConstructor;
 import mk.ukim.finki.synergymed.models.Company;
 import mk.ukim.finki.synergymed.models.enumerations.CompanyRoleType;
@@ -7,5 +9,4 @@
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
 import java.util.*;
@@ -13,4 +14,5 @@
 @Controller
 @RequestMapping("/admin/companies")
+@RequiredArgsConstructor
 public class CompanyController {
 
@@ -22,19 +24,4 @@
     private final DeliveryCompanyService deliveryCompanyService;
 
-    public CompanyController(CompanyService companyService,
-                             CompanyOrchestrationService companyOrchestrationService,
-                             DistributorService distributorService,
-                             ManufacturerService manufacturerService,
-                             PharmacyService pharmacyService,
-                             DeliveryCompanyService deliveryCompanyService) {
-        this.companyService = companyService;
-        this.companyOrchestrationService = companyOrchestrationService;
-        this.distributorService = distributorService;
-        this.manufacturerService = manufacturerService;
-        this.pharmacyService = pharmacyService;
-        this.deliveryCompanyService = deliveryCompanyService;
-    }
-
-    // Grid of companies
     @GetMapping
     public String index(Model model) {
@@ -42,52 +29,43 @@
         Map<Integer, List<CompanyRoleType>> rolesByCompany = new HashMap<>();
         for (Company c : companies) {
+            Integer id = c.getId();
             List<CompanyRoleType> roles = new ArrayList<>();
-            if (distributorService.findById(c.getId()).isPresent()) roles.add(CompanyRoleType.DISTRIBUTOR);
-            if (manufacturerService.findById(c.getId()).isPresent()) roles.add(CompanyRoleType.MANUFACTURER);
-            if (pharmacyService.findById(c.getId()).isPresent()) roles.add(CompanyRoleType.PHARMACY);
-            try {
-                if (deliveryCompanyService.findById(c.getId()).isPresent()) {
-                    roles.add(CompanyRoleType.valueOf("DELIVERYCOMPANY"));
-                }
-            } catch (IllegalArgumentException ignored) {}
-            rolesByCompany.put(c.getId(), roles);
+            if (distributorService.findById(id).isPresent())  roles.add(CompanyRoleType.DISTRIBUTOR);
+            if (manufacturerService.findById(id).isPresent()) roles.add(CompanyRoleType.MANUFACTURER);
+            if (pharmacyService.findById(id).isPresent())     roles.add(CompanyRoleType.PHARMACY);
+            if (deliveryCompanyService.findById(id).isPresent()) roles.add(CompanyRoleType.DELIVERY_COMPANY);
+            rolesByCompany.put(id, roles);
         }
         model.addAttribute("companies", companies);
         model.addAttribute("rolesByCompany", rolesByCompany);
         return "companies";
-    }
+    } // thin controller; business logic stays in services [7][1]
 
-    // Create form
     @GetMapping("/new")
     public String createForm(Model model) {
-        model.addAttribute("roleTypes", CompanyRoleType.values()); // checkboxes shown only on create
+        model.addAttribute("roleTypes", CompanyRoleType.values());
         model.addAttribute("mode", "create");
         return "company-form";
-    }
+    } // uses enum values for consistent binding [5][2]
 
-    // Create with roles
     @PostMapping
     public String create(@RequestParam String companyName,
                          @RequestParam(required = false) String description,
                          @RequestParam String registrationNumber,
-                         @RequestParam(name = "roles", required = false) List<CompanyRoleType> roles,
-                         RedirectAttributes ra) {
-        Company saved = companyOrchestrationService.createCompanyWithRoles(
+                         @RequestParam(name = "roles", required = false) List<CompanyRoleType> roles) {
+        companyOrchestrationService.createCompanyWithRoles(
                 companyName, description, registrationNumber, roles == null ? List.of() : roles
         );
-        ra.addFlashAttribute("message", "Company created: " + saved.getCompanyName());
         return "redirect:/admin/companies";
-    }
+    } // delegates creation and role adds to service [1][6]
 
-    // GET /companies/{id}/edit — pre-check roles using current DB state
     @GetMapping("/{id}/edit")
     public String editForm(@PathVariable Integer id, Model model) {
         Company c = companyService.findById(id).orElseThrow();
         Set<CompanyRoleType> selectedRoles = new HashSet<>();
-        if (distributorService.findById(id).isPresent()) selectedRoles.add(CompanyRoleType.DISTRIBUTOR);
+        if (distributorService.findById(id).isPresent())  selectedRoles.add(CompanyRoleType.DISTRIBUTOR);
         if (manufacturerService.findById(id).isPresent()) selectedRoles.add(CompanyRoleType.MANUFACTURER);
-        if (pharmacyService.findById(id).isPresent()) selectedRoles.add(CompanyRoleType.PHARMACY);
-        try { if (deliveryCompanyService.findById(id).isPresent()) selectedRoles.add(CompanyRoleType.valueOf("DELIVERYCOMPANY")); }
-        catch (IllegalArgumentException ignored) {}
+        if (pharmacyService.findById(id).isPresent())     selectedRoles.add(CompanyRoleType.PHARMACY);
+        if (deliveryCompanyService.findById(id).isPresent()) selectedRoles.add(CompanyRoleType.DELIVERY_COMPANY);
 
         model.addAttribute("company", c);
@@ -96,7 +74,6 @@
         model.addAttribute("mode", "edit");
         return "company-form";
-    }
+    } // pre-checks include delivery subtype [5][4]
 
-    // POST /companies/{id}/update — simple update + role reset
     @PostMapping("/{id}/update")
     public String update(@PathVariable Integer id,
@@ -104,41 +81,15 @@
                          @RequestParam(required = false) String description,
                          @RequestParam String registrationNumber,
-                         @RequestParam(name = "roles", required = false) List<CompanyRoleType> roles,
-                         RedirectAttributes ra) {
-        // 1) Update core fields (your existing simple update)
-        companyService.update(id, companyName, description, registrationNumber);
+                         @RequestParam(name = "roles", required = false) List<CompanyRoleType> roles) {
+        companyOrchestrationService.updateCompanyAndRoles(
+                id, companyName, description, registrationNumber, roles == null ? List.of() : roles
+        );
+        return "redirect:/admin/companies";
+    } // thin endpoint; service owns @Transactional set-diff [1][6]
 
-        // 2) Reset roles: remove all, then add only the submitted ones
-        distributorService.deleteById(id);
-        manufacturerService.deleteById(id);
-        pharmacyService.deleteById(id);
-        try { deliveryCompanyService.deleteById(id); } catch (Exception ignored) {}
-
-        if (roles != null) {
-            for (CompanyRoleType r : roles) {
-                switch (r) {
-                    case DISTRIBUTOR -> distributorService.create(id);
-                    case MANUFACTURER -> manufacturerService.create(id);
-                    case PHARMACY -> pharmacyService.create(id);
-                    default -> {
-                        if ("DELIVERYCOMPANY".equals(r.name())) {
-                            deliveryCompanyService.create(id);
-                        }
-                    }
-                }
-            }
-        }
-
-        ra.addFlashAttribute("message", "Company updated: " + companyName);
+    @PostMapping("/{id}/delete")
+    public String delete(@PathVariable Integer id) {
+        companyService.deleteById(id);
         return "redirect:/admin/companies";
-    }
-
-
-    // Delete (FKs should cascade from company to roles in DB)
-    @PostMapping("/{id}/delete")
-    public String delete(@PathVariable Integer id, RedirectAttributes ra) {
-        companyService.deleteById(id);
-        ra.addFlashAttribute("message", "Company deleted");
-        return "redirect:/admin/companies";
-    }
+    } // deletion outside the role logic [1][6]
 }
Index: src/main/java/mk/ukim/finki/synergymed/web/HealthProfileController.java
===================================================================
--- src/main/java/mk/ukim/finki/synergymed/web/HealthProfileController.java	(revision 79f84952634205e193ff09d1633fabe70edf6ce9)
+++ src/main/java/mk/ukim/finki/synergymed/web/HealthProfileController.java	(revision bff4de4501a84df4baa63f77008ecf7f5550d1bb)
@@ -17,5 +17,5 @@
 
 @Controller
-@RequestMapping("/admin/health-profile")
+@RequestMapping("/pharmacist/health-profile")
 @RequiredArgsConstructor
 public class HealthProfileController {
@@ -71,9 +71,9 @@
                     "Health profile created successfully.");
 
-            return "redirect:/admin/health-profile/create";
+            return "redirect:/pharmacist/health-profile/create";
 
         } catch (Exception e) {
             redirectAttributes.addFlashAttribute("error", "Failed to create health profile: " + e.getMessage());
-            return "redirect:/admin/health-profile/create";
+            return "redirect:/pharmacist/health-profile/create";
         }
     }
Index: src/main/java/mk/ukim/finki/synergymed/web/MedicineInteractionController.java
===================================================================
--- src/main/java/mk/ukim/finki/synergymed/web/MedicineInteractionController.java	(revision 79f84952634205e193ff09d1633fabe70edf6ce9)
+++ src/main/java/mk/ukim/finki/synergymed/web/MedicineInteractionController.java	(revision bff4de4501a84df4baa63f77008ecf7f5550d1bb)
@@ -13,5 +13,5 @@
 
 @Controller
-@RequestMapping("/medicine/interactions")
+@RequestMapping("/pharmacist/medicine/interactions")
 @RequiredArgsConstructor
 public class MedicineInteractionController {
Index: src/main/java/mk/ukim/finki/synergymed/web/SupplyOrderController.java
===================================================================
--- src/main/java/mk/ukim/finki/synergymed/web/SupplyOrderController.java	(revision 79f84952634205e193ff09d1633fabe70edf6ce9)
+++ src/main/java/mk/ukim/finki/synergymed/web/SupplyOrderController.java	(revision bff4de4501a84df4baa63f77008ecf7f5550d1bb)
@@ -17,5 +17,5 @@
 @Controller
 @RequiredArgsConstructor
-@RequestMapping("/admin/supply-orders")
+@RequestMapping("/pharmacist/supply-orders")
 public class SupplyOrderController {
 
@@ -62,5 +62,5 @@
                 pharmacyId, facilityId, distributorId, medicineIds, quantities
         );
-        return "redirect:/admin/supply-orders/" + id;
+        return "redirect:/pharmacist/supply-orders/" + id;
     }
         @GetMapping
Index: src/main/java/mk/ukim/finki/synergymed/web/VerificationController.java
===================================================================
--- src/main/java/mk/ukim/finki/synergymed/web/VerificationController.java	(revision 79f84952634205e193ff09d1633fabe70edf6ce9)
+++ src/main/java/mk/ukim/finki/synergymed/web/VerificationController.java	(revision bff4de4501a84df4baa63f77008ecf7f5550d1bb)
@@ -11,5 +11,5 @@
 
 @Controller
-@RequestMapping("/admin/verification")
+@RequestMapping("/pharmacist/verification")
 @RequiredArgsConstructor
 public class VerificationController {
@@ -33,5 +33,5 @@
     public String approve(@PathVariable Integer id) {
         reviewService.approve(id);
-        return "redirect:/admin/verification";
+        return "redirect:/pharmacist/verification";
     }
 
@@ -39,5 +39,5 @@
     public String deny(@PathVariable Integer id) {
         reviewService.deny(id);
-        return "redirect:/admin/verification";
+        return "redirect:/pharmacist/verification";
     }
 }
Index: src/main/resources/application.properties
===================================================================
--- src/main/resources/application.properties	(revision 79f84952634205e193ff09d1633fabe70edf6ce9)
+++ src/main/resources/application.properties	(revision bff4de4501a84df4baa63f77008ecf7f5550d1bb)
@@ -2,7 +2,7 @@
 
 # Database connection
-spring.datasource.url=jdbc:postgresql://localhost:5432/synergymed
+spring.datasource.url=jdbc:postgresql://localhost:5432/SynergyMed
 spring.datasource.username=postgres
-spring.datasource.password=postgres
+spring.datasource.password=1234
 spring.jpa.properties.hibernate.default_schema=synergymed
 spring.datasource.driver-class-name=org.postgresql.Driver
Index: src/main/resources/templates/add-medicine-interaction.html
===================================================================
--- src/main/resources/templates/add-medicine-interaction.html	(revision 79f84952634205e193ff09d1633fabe70edf6ce9)
+++ src/main/resources/templates/add-medicine-interaction.html	(revision bff4de4501a84df4baa63f77008ecf7f5550d1bb)
@@ -111,5 +111,5 @@
         <div class="card-header">Интеракции</div>
         <div class="card-body">
-            <form th:action="@{/medicine/interactions/add}" method="post">
+            <form th:action="@{/pharmacist/medicine/interactions/add}" method="post">
 
                 <div class="form-group">
Index: src/main/resources/templates/branded-medicine-form.html
===================================================================
--- src/main/resources/templates/branded-medicine-form.html	(revision 79f84952634205e193ff09d1633fabe70edf6ce9)
+++ src/main/resources/templates/branded-medicine-form.html	(revision bff4de4501a84df4baa63f77008ecf7f5550d1bb)
@@ -105,5 +105,5 @@
 
         <div class="card-body">
-            <form th:action="@{/branded-medicines/save}" method="post" enctype="multipart/form-data" id="saveForm">
+            <form th:action="@{/admin/branded-medicines/save}" method="post" enctype="multipart/form-data" id="saveForm">
                 <input type="hidden" name="id" th:if="${mode=='edit'}" th:value="${bm.id}"/>
 
@@ -191,5 +191,5 @@
                 <div class="actions">
                     <button class="btn btn-primary" type="submit">Зачувај</button>
-                    <a class="btn btn-secondary" th:href="@{/}">Откажи</a>
+                    <a class="btn btn-secondary" th:href="@{/admin/branded-medicines}">Откажи</a>
                 </div>
             </form>
Index: src/main/resources/templates/catalog.html
===================================================================
--- src/main/resources/templates/catalog.html	(revision 79f84952634205e193ff09d1633fabe70edf6ce9)
+++ src/main/resources/templates/catalog.html	(revision bff4de4501a84df4baa63f77008ecf7f5550d1bb)
@@ -46,5 +46,5 @@
         <div class="card-header">
             <span>Производи</span>
-            <a sec:authorize="hasRole('ADMIN')" class="btn btn-primary" th:href="@{/catalog/edit}">Измени ги достапните производи</a>
+            <a sec:authorize="hasAnyRole('PHARMACIST','ADMIN')" class="btn btn-primary" th:href="@{/catalog/edit}">Измени ги достапните производи</a>
         </div>
         <div class="card-body">
@@ -62,5 +62,5 @@
                         <form th:action="@{/cart/add/{id}(id=${m.id})}" method="post" style="display:inline;">
                             <input type="hidden" th:if="${_csrf != null}" th:name="${_csrf.parameterName}" th:value="${_csrf.token}">
-                            <button type="submit" class="btn-outline add-to-cart-btn" th:data-name="${m.name}">Додај во кошничка</button>
+                            <button type="submit" sec:authorize="hasRole('CLIENT')" class="btn-outline add-to-cart-btn" th:data-name="${m.name}">Додај во кошничка</button>
                         </form>
                     </div>
Index: src/main/resources/templates/companies.html
===================================================================
--- src/main/resources/templates/companies.html	(revision 79f84952634205e193ff09d1633fabe70edf6ce9)
+++ src/main/resources/templates/companies.html	(revision bff4de4501a84df4baa63f77008ecf7f5550d1bb)
@@ -1,2 +1,3 @@
+<!-- src/main/resources/templates/companies.html -->
 <!DOCTYPE html>
 <html xmlns:th="http://www.thymeleaf.org" lang="en">
@@ -5,8 +6,5 @@
     <title>SynergyMed – Компании</title>
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
-
-    <!-- Header styles -->
     <th:block th:replace="fragments/header :: headerStyles"></th:block>
-
     <style>
         :root {
@@ -26,21 +24,21 @@
         }
 
-        /* Full-width global header - FIXED STYLING */
+        /* Global sticky header: force square corners here to override any rounded styles from fragments */
         .site-header{
             position:sticky;
-            top:0;
-            left:0;
-            right:0;
+            top:0; left:0; right:0;
             width:100%;
-            border-radius:0;
-            margin:0;
             z-index:1000;
-            background:white !important; /* Force white background */
-            box-shadow:0 2px 10px rgba(0,0,0,0.1); /* Add subtle shadow */
+            background:white !important;
+            box-shadow:0 2px 10px rgba(0,0,0,0.1);
+            border-radius:0 !important;                 /* ensure no rounding */
+            border-top-left-radius:0 !important;        /* defend against logical/longhand corner rules */
+            border-top-right-radius:0 !important;
+            border-bottom-left-radius:0 !important;
+            border-bottom-right-radius:0 !important;
         }
 
         .page{width:100%; max-width:1200px; padding:28px; margin:0 auto}
 
-        /* Card wrapper */
         .card{
             background:var(--card);
@@ -63,6 +61,5 @@
         .btn{
             display:inline-block; border:none; cursor:pointer; text-decoration:none;
-            padding:12px 16px; border-radius:12px; font-weight:600;
-            letter-spacing:.5px; transition:.2s ease;
+            padding:12px 16px; border-radius:12px; font-weight:600; letter-spacing:.5px; transition:.2s ease;
         }
         .btn-primary{
@@ -112,17 +109,11 @@
         .row{display:flex;justify-content:space-between;align-items:center;margin-top:12px}
 
-        /* Clickable card cursor */
-        .clickable { cursor: pointer; }
-
-        @media (max-width:560px){.page{padding:16px}}
+        .clickable{cursor:pointer}
     </style>
 </head>
 <body>
-
-<!-- Global header -->
 <th:block th:replace="fragments/header :: siteHeader('companies')"></th:block>
 
 <div class="page">
-    <!-- Companies card -->
     <div class="card">
         <div class="card-header">
@@ -156,5 +147,4 @@
             </div>
 
-            <!-- Click navigation script -->
             <script>
                 document.addEventListener('DOMContentLoaded', function () {
@@ -162,8 +152,5 @@
                         const href = card.getAttribute('data-href');
                         if (!href) return;
-                        card.addEventListener('click', function () {
-                            window.location.assign(href);
-                        });
-                        // Prevent inner interactive elements from triggering card click
+                        card.addEventListener('click', function () { window.location.assign(href); });
                         card.querySelectorAll('a, button, input, select, textarea, label, form').forEach(function (el) {
                             el.addEventListener('click', function (e) { e.stopPropagation(); });
@@ -176,5 +163,4 @@
 </div>
 
-<!-- Dropdown script -->
 <th:block th:replace="fragments/header :: headerScripts"></th:block>
 </body>
Index: src/main/resources/templates/company-form.html
===================================================================
--- src/main/resources/templates/company-form.html	(revision 79f84952634205e193ff09d1633fabe70edf6ce9)
+++ src/main/resources/templates/company-form.html	(revision bff4de4501a84df4baa63f77008ecf7f5550d1bb)
@@ -1,2 +1,3 @@
+<!-- src/main/resources/templates/company-form.html -->
 <!DOCTYPE html>
 <html xmlns:th="http://www.thymeleaf.org" lang="en">
@@ -6,148 +7,95 @@
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 
-    <!-- Shared global header styles -->
+    <!-- Shared header styles first -->
     <th:block th:replace="fragments/header :: headerStyles"></th:block>
 
     <style>
-        :root {
-            --teal-1:#20b2aa;
-            --teal-2:#48d1cc;
-            --muted:#6c757d;
-            --shadow:0 20px 40px rgba(0,0,0,.1);
-        }
+        :root { --teal-1:#20b2aa; --teal-2:#48d1cc; --muted:#6c757d; --shadow:0 20px 40px rgba(0,0,0,.1); }
         * { margin:0; padding:0; box-sizing:border-box; }
-        body {
-            font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif;
-            min-height:100vh;
-            background:linear-gradient(135deg,#a4ecba 0%,#fefeff 100%);
+        body { font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif; min-height:100vh; background:linear-gradient(135deg,#a4ecba 0%,#fefeff 100%); }
+
+        /* Page-level override: make header look like the “medicines” page */
+        .site-header{
+            position: sticky;
+            top: 0; left: 0; right: 0;
+            width: 100%;
+            z-index: 1000;
+            background: #fff !important;           /* replace gradient with solid white */
+            box-shadow: 0 2px 10px rgba(0,0,0,.1); /* consistent subtle shadow */
+            border-radius: 0 !important;           /* remove rounding on all corners */
+            border-top-left-radius: 0 !important;
+            border-top-right-radius: 0 !important;
+            border-bottom-left-radius: 0 !important;
+            border-bottom-right-radius: 0 !important;
         }
 
-        .content-wrapper {
-            padding:24px;
-        }
-
-        /* Full-width global header - FIXED STYLING */
-        .site-header {
-            position:sticky;
-            top:0;
-            left:0;
-            right:0;
-            width:100%;
-            border-radius:0;
-            margin:0;
-            z-index:1000;
-            background:white !important; /* Force white background */
-            box-shadow:0 2px 10px rgba(0,0,0,0.1); /* Add subtle shadow */
-        }
-
-        .wrap {
-            width:100%;
-            max-width:720px;
-            margin:40px auto;
-            background:#fff;
-            border-radius:20px;
-            overflow:hidden;
-            box-shadow:var(--shadow);
-        }
-        .head {
-            background:linear-gradient(135deg,var(--teal-1),var(--teal-2));
-            color:#fff;
-            padding:26px 24px;
-        }
-        .body { padding:26px 24px; }
-        .row { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
-        .row-1 { display:grid; grid-template-columns:1fr; gap:16px; margin-bottom:6px; }
-        label { display:block; margin-bottom:8px; color:#334155; font-weight:600; font-size:.95rem; }
-        input,textarea {
-            width:100%; padding:14px 12px;
-            border:2px solid #e6ebf0;
-            border-radius:12px;
-            background:#f8fafc;
-            transition:.2s ease;
-            font-size:1rem;
-        }
-        textarea { min-height:110px; }
-        input:focus,textarea:focus {
-            outline:none; border-color:var(--teal-1);
-            background:#fff;
-            box-shadow:0 0 0 3px rgba(32,178,170,.12);
-        }
-        .hint { color:var(--muted); font-size:.86rem; margin-top:4px; }
-        .roles { display:flex; flex-wrap:wrap; gap:10px; margin-top:6px; }
-        .chip {
-            display:inline-flex; align-items:center; gap:6px;
-            border:2px solid rgba(32,178,170,.25);
-            border-radius:999px;
-            padding:8px 12px;
-            background:#fff;
-        }
-        .actions { display:flex; gap:12px; padding:0 24px 24px 24px; }
-        .btn { border:none; padding:12px 16px; border-radius:12px; cursor:pointer; font-weight:700; letter-spacing:.4px; }
-        .btn-primary {
-            background:linear-gradient(135deg,var(--teal-1),var(--teal-2));
-            color:#fff;
-            box-shadow:0 10px 20px rgba(32,178,170,.25);
-        }
-        .btn-secondary {
-            background:#fff; color:#111;
-            border:2px solid rgba(32,178,170,.25);
-        }
+        .wrap{ width:100%; max-width:720px; margin:40px auto; background:#fff; border-radius:20px; overflow:hidden; box-shadow:var(--shadow); }
+        .head{ background:linear-gradient(135deg,var(--teal-1),var(--teal-2)); color:#fff; padding:26px 24px; }
+        .body{ padding:26px 24px; }
+        .row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
+        .row-1{ display:grid; grid-template-columns:1fr; gap:16px; margin-bottom:6px; }
+        label{ display:block; margin-bottom:8px; color:#334155; font-weight:600; font-size:.95rem; }
+        input,textarea{ width:100%; padding:14px 12px; border:2px solid #e6ebf0; border-radius:12px; background:#f8fafc; font-size:1rem; }
+        textarea{ min-height:110px; }
+        .roles{ display:flex; flex-wrap:wrap; gap:10px; margin-top:6px; }
+        .chip{ display:inline-flex; align-items:center; gap:6px; border:2px solid rgba(32,178,170,.25); border-radius:999px; padding:8px 12px; background:#fff; }
+        .actions{ display:flex; gap:12px; padding:0 24px 24px 24px; }
+        .btn{ border:none; padding:12px 16px; border-radius:12px; cursor:pointer; font-weight:700; }
+        .btn-primary{ background:linear-gradient(135deg,var(--teal-1),var(--teal-2)); color:#fff; }
+        .btn-secondary{ background:#fff; border:2px solid rgba(32,178,170,.25); }
     </style>
 </head>
 <body>
 
-<!-- Global sticky header (white, full width) -->
-<th:block th:replace="fragments/header :: siteHeader(${null} )"></th:block>
+<!-- Pass the active page name so the nav highlights “Компании” -->
+<th:block th:replace="fragments/header :: siteHeader('Компании')"></th:block>
 
-<div class="content-wrapper">
-    <div class="wrap">
-        <div class="head">
-            <h2 th:text="${mode=='create' ? 'Креирај компанија' : 'Уреди компанија'}">Компанија</h2>
-        </div>
+<div class="wrap">
+    <div class="head">
+        <h2 th:text="${mode=='create' ? 'Креирај компанија' : 'Уреди компанија'}">Компанија</h2>
+    </div>
 
-        <div class="body">
-            <form th:action="${mode=='create'} ? @{/admin/companies} : @{/companies/{id}/update(id=${company.id})}" method="post">
+    <div class="body">
+        <form th:action="${mode=='create'} ? @{/admin/companies} : @{/admin/companies/{id}/update(id=${company.id})}" method="post">
+            <div class="row">
+                <div>
+                    <label>Име на компанија</label>
+                    <input type="text" name="companyName" th:value="${mode=='edit' ? company.companyName : ''}" required>
+                </div>
+                <div>
+                    <label>Регистрациски број</label>
+                    <input type="text" name="registrationNumber" th:value="${mode=='edit' ? company.registrationNumber : ''}" required>
+                </div>
+            </div>
 
-                <div class="row">
-                    <div>
-                        <label>Име на компанија</label>
-                        <input type="text" name="companyName" th:value="${mode=='edit' ? company.companyName : ''}" required>
-                    </div>
-                    <div>
-                        <label>Регистрациски број</label>
-                        <input type="text" name="registrationNumber" th:value="${mode=='edit' ? company.registrationNumber : ''}" required>
+            <div class="row-1">
+                <div>
+                    <label>Опис</label>
+                    <textarea name="description" th:text="${mode=='edit' ? company.description : ''}"></textarea>
+                </div>
+            </div>
+
+            <div class="row-1">
+                <div>
+                    <label>Тип на компанија</label>
+                    <div class="roles">
+                        <label class="chip" th:each="rt : ${roleTypes}">
+                            <input type="checkbox" name="roles" th:value="${rt}"
+                                   th:checked="${selectedRoles != null and selectedRoles.contains(rt)}">
+                            <span th:text="${rt}">УЛОГА</span>
+                        </label>
                     </div>
                 </div>
+            </div>
 
-                <div class="row-1">
-                    <div>
-                        <label>Опис</label>
-                        <textarea name="description" th:text="${mode=='edit' ? company.description : ''}"></textarea>
-                    </div>
-                </div>
+            <div class="actions">
+                <button class="btn btn-primary" type="submit" th:text="${mode=='create' ? 'Креирај' : 'Измени'}">Зачувај</button>
+                <a class="btn btn-secondary" th:href="@{/admin/companies}">Откажи</a>
+            </div>
+        </form>
+    </div>
+</div>
 
-                <div class="row-1">
-                    <div>
-                        <label>Тип на компанија</label>
-                        <div class="roles">
-                            <label class="chip" th:each="rt : ${roleTypes}">
-                                <input type="checkbox" name="roles" th:value="${rt}"
-                                       th:checked="${mode=='edit' and selectedRoles != null and selectedRoles.contains(rt)}">
-                                <span th:text="${rt}">УЛОГА</span>
-                            </label>
-                        </div>
-                    </div>
-                </div>
-
-                <div class="actions">
-                    <button class="btn btn-primary" type="submit" th:text="${mode=='create' ? 'Креирај' : 'Измени'}">Зачувај</button>
-                    <a class="btn btn-secondary" th:href="@{/admin/companies}">Откажи</a>
-                </div>
-            </form>
-        </div>
-    </div>
-
-    <!-- Scripts for dropdown etc. -->
-    <th:block th:replace="fragments/header :: headerScripts"></th:block>
+<th:block th:replace="fragments/header :: headerScripts"></th:block>
 </body>
 </html>
Index: src/main/resources/templates/create-health-profile.html
===================================================================
--- src/main/resources/templates/create-health-profile.html	(revision 79f84952634205e193ff09d1633fabe70edf6ce9)
+++ src/main/resources/templates/create-health-profile.html	(revision bff4de4501a84df4baa63f77008ecf7f5550d1bb)
@@ -154,6 +154,5 @@
         <div class="nav-links">
             <a href="/admin/dashboard" class="nav-link">Табла</a>
-            <a href="/admin/clients" class="nav-link">Управување со клиенти</a>
-            <a href="/admin/health-profile/create" class="nav-link active">Креирај здравствен профил</a>
+            <a href="/pharmacist/health-profile/create" class="nav-link active">Креирај здравствен профил</a>
             <a href="/profile" class="nav-link">Назад кон профил</a>
         </div>
@@ -170,5 +169,5 @@
             <div class="card-body">
                 <!-- Search -->
-                <form class="search-form" th:action="@{/admin/health-profile/create}" method="get">
+                <form class="search-form" th:action="@{/pharmacist/health-profile/create}" method="get">
                     <input type="text" name="searchTerm" class="search-input"
                            placeholder="Пребарај клиенти по име или презиме..."
@@ -196,5 +195,5 @@
 
                 <!-- Form -->
-                <form th:action="@{/admin/health-profile/create}" method="post" id="createProfileForm">
+                <form th:action="@{/pharmacist/health-profile/create}" method="post" id="createProfileForm">
                     <input type="hidden" name="clientId" id="selectedClientId">
                     <div id="selectedClientInfo" class="selected-client-info" style="display:none;">
Index: src/main/resources/templates/facilities.html
===================================================================
--- src/main/resources/templates/facilities.html	(revision 79f84952634205e193ff09d1633fabe70edf6ce9)
+++ src/main/resources/templates/facilities.html	(revision bff4de4501a84df4baa63f77008ecf7f5550d1bb)
@@ -27,14 +27,8 @@
         }
 
-        /* Full-width global header - FIXED STYLING */
+        /* Full-width global header */
         .site-header{
-            position:sticky;
-            top:0;
-            left:0;
-            right:0;
-            width:100%;
-            border-radius:0;
-            margin:0;
-            z-index:1000;
+            position:sticky; top:0; left:0; right:0; width:100%;
+            border-radius:0; margin:0; z-index:1000;
             background:white !important;
             box-shadow:0 2px 10px rgba(0,0,0,0.1);
@@ -100,5 +94,16 @@
         }
         .btn-outline:hover{border-color:#20b2aa;box-shadow:0 6px 14px rgba(32,178,170,.18)}
-        .row{display:flex;justify-content:space-between;align-items:center;margin-top:12px}
+
+        /* Three-column action row: left / center / right */
+        .row{
+            display:grid;
+            grid-template-columns: 1fr auto 1fr; /* left fills, middle auto, right fills */
+            align-items:center; /* center vertically */
+            gap:8px;
+            margin-top:12px;
+        }
+        .row > .left   { justify-self:start; }   /* left button aligns to start of col 1 */
+        .row > .middle { justify-self:center; } /* middle button perfectly centered */
+        .row > .right  { justify-self:end; }    /* right delete aligns to end of col 3 */
 
         /* Clickable card cursor */
@@ -117,5 +122,4 @@
         <div class="card-header">
             <span th:text="${'Објекти — ' + company.companyName}">Објекти</span>
-            <!-- Always show Add New -->
             <a class="btn btn-primary"
                th:href="@{/admin/companies/{cid}/facilities/new(cid=${company.id})}">
@@ -134,18 +138,24 @@
                         <div class="muted" th:text="${'Код: ' + f.code}">Код</div>
 
-                        <div class="row" style="margin-top:12px;">
-                            <div>
-                                <a class="btn-outline"
-                                   th:href="@{/admin/companies/{cid}/facilities/{id}/edit(cid=${company.id}, id=${f.id})}"
-                                   style="margin-right:8px;">Уреди</a>
+                        <div class="row">
+                            <!-- Left: Edit -->
+                            <a class="btn-outline left"
+                               th:href="@{/admin/companies/{cid}/facilities/{id}/edit(cid=${company.id}, id=${f.id})}">
+                                Уреди
+                            </a>
 
-                                <a class="btn-outline"
-                                   th:href="@{/admin/companies/{cid}/facilities/{id}/contacts(cid=${company.id}, id=${f.id})}"
-                                   style="margin-right:8px;">Контакт податоци</a>
-                            </div>
+                            <!-- Middle: Contact (centered) -->
+                            <a class="btn-outline middle"
+                               th:href="@{/admin/companies/{cid}/facilities/{id}/contacts(cid=${company.id}, id=${f.id})}">
+                                Контакт
+                            </a>
 
-                            <form th:action="@{/admin/companies/{cid}/facilities/{id}/delete(cid=${company.id}, id=${f.id})}"
+                            <!-- Right: Delete -->
+                            <form class="right"
+                                  th:action="@{/admin/companies/{cid}/facilities/{id}/delete(cid=${company.id}, id=${f.id})}"
                                   method="post" style="display:inline">
-                                <button type="submit" class="btn-outline" style="color:#b3261e;border-color:#f0caca">Избриши</button>
+                                <button type="submit" class="btn-outline" style="color:#b3261e;border-color:#f0caca">
+                                    Избриши
+                                </button>
                             </form>
                         </div>
@@ -179,5 +189,5 @@
 </div>
 
-<!-- Dropdown script -->
+<!-- Scripts -->
 <th:block th:replace="fragments/header :: headerScripts"></th:block>
 </body>
Index: src/main/resources/templates/facility-inventory.html
===================================================================
--- src/main/resources/templates/facility-inventory.html	(revision 79f84952634205e193ff09d1633fabe70edf6ce9)
+++ src/main/resources/templates/facility-inventory.html	(revision bff4de4501a84df4baa63f77008ecf7f5550d1bb)
@@ -127,5 +127,5 @@
 
                     <div>
-                        <div class="muted">Последно дополнување</div>
+                        <div class="muted">Последно сменето</div>
                         <div th:text="${#temporals.format(it.lastChanged, 'dd MMM yyyy')}">01 Jan 2025</div>
                     </div>
Index: src/main/resources/templates/fragments/header.html
===================================================================
--- src/main/resources/templates/fragments/header.html	(revision 79f84952634205e193ff09d1633fabe70edf6ce9)
+++ src/main/resources/templates/fragments/header.html	(revision bff4de4501a84df4baa63f77008ecf7f5550d1bb)
@@ -135,6 +135,10 @@
             <a class="nav-btn" sec:authorize="hasRole('ADMIN')" th:href="@{/admin/companies}"
                th:classappend="${activePage}=='Компании' ? ' active'">Компании</a>
-            <a class="nav-btn" sec:authorize="hasRole('PHARMACIST')" th:href="@{/admin/verification}"
+            <a class="nav-btn" sec:authorize="hasAnyRole('PHARMACIST','ADMIN')" th:href="@{/admin/branded-medicines}"
+               th:classappend="${activePage}=='Брендирани лекови' ? ' active'">Брендирани лекови</a>
+            <a class="nav-btn" sec:authorize="hasRole('PHARMACIST')" th:href="@{/pharmacist/verification}"
                th:classappend="${activePage}=='Верификација' ? ' active'">Верификација</a>
+            <a class="nav-btn" sec:authorize="hasRole('PHARMACIST')" th:href="@{/pharmacist/supply-orders}"
+               th:classappend="${activePage}=='Нарачка на роба' ? ' active'">Нарачки на роба</a>
         </nav>
 
@@ -151,6 +155,6 @@
                 <div class="dropdown" id="userDropdown" role="menu" aria-labelledby="userButton">
                     <a class="dropdown-item" th:href="@{/profile}" role="menuitem">Подесувања за профилот</a>
-                    <a class="dropdown-item" th:href="@{/orders}" role="menuitem">Мои нарачки</a>
-                    <a class="dropdown-item" th:href="@{/cart}" role="menuitem">Кошничка 🛒</a>
+                    <a class="dropdown-item" sec:authorize="hasRole('CLIENT') "th:href="@{/orders}" role="menuitem">Мои нарачки</a>
+                    <a class="dropdown-item" sec:authorize="hasRole('CLIENT')" th:href="@{/cart}" role="menuitem">Кошничка 🛒</a>
                     <form th:action="@{/logout}" method="post" style="margin:0">
                         <input type="hidden" th:name="${_csrf?.parameterName}" th:value="${_csrf?.token}">
Index: src/main/resources/templates/index.html
===================================================================
--- src/main/resources/templates/index.html	(revision 79f84952634205e193ff09d1633fabe70edf6ce9)
+++ src/main/resources/templates/index.html	(revision bff4de4501a84df4baa63f77008ecf7f5550d1bb)
@@ -231,5 +231,5 @@
         <h2>Брендирани лекови</h2>
         <div class="header-buttons">
-            <a class="btn btn-primary" th:href="@{/branded-medicines/new}">Креирај</a>
+            <a class="btn btn-primary" th:href="@{/admin/branded-medicines/new}">Креирај</a>
         </div>
     </div>
@@ -249,5 +249,5 @@
 
                     <div class="button-group">
-                        <a class="btn-outline" th:href="@{/branded-medicines/{id}/edit(id=${bm.id})}">Уреди</a>
+                        <a class="btn-outline" th:href="@{/admin/branded-medicines/{id}/edit(id=${bm.id})}">Уреди</a>
                     </div>
                 </div>
Index: src/main/resources/templates/login.html
===================================================================
--- src/main/resources/templates/login.html	(revision 79f84952634205e193ff09d1633fabe70edf6ce9)
+++ src/main/resources/templates/login.html	(revision bff4de4501a84df4baa63f77008ecf7f5550d1bb)
@@ -6,196 +6,38 @@
   <title>SynergyMed - Најава</title>
   <style>
-    * {
-      margin: 0;
-      padding: 0;
-      box-sizing: border-box;
-    }
-
+    * { margin: 0; padding: 0; box-sizing: border-box; }
     body {
       font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
       background: linear-gradient(135deg, #a4ecba 0%, #fefeff 100%);
-      min-height: 100vh;
-      display: flex;
-      align-items: center;
-      justify-content: center;
-      padding: 20px;
+      min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 20px;
     }
-
-    .login-container {
-      background: white;
-      border-radius: 20px;
-      box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
-      overflow: hidden;
-      width: 100%;
-      max-width: 400px;
-      backdrop-filter: blur(10px);
-    }
-
-    .login-header {
-      background: linear-gradient(135deg, #20b2aa, #48d1cc);
-      padding: 40px 30px;
-      text-align: center;
-      color: white;
-    }
-
-    .login-header h1 {
-      font-size: 2rem;
-      font-weight: 300;
-      margin-bottom: 8px;
-    }
-
-    .login-header p {
-      opacity: 0.9;
-      font-size: 0.9rem;
-    }
-
-    .login-form {
-      padding: 40px 30px;
-    }
-
-    .form-group {
-      margin-bottom: 25px;
-      position: relative;
-    }
-
-    .form-group label {
-      display: block;
-      margin-bottom: 8px;
-      color: #555;
-      font-weight: 500;
-      font-size: 0.9rem;
-    }
-
-    .form-control {
-      width: 100%;
-      padding: 15px 20px;
-      border: 2px solid #e1e5e9;
-      border-radius: 12px;
-      font-size: 1rem;
-      transition: all 0.3s ease;
-      background: #f8f9fa;
-    }
-
-    .form-control:focus {
-      outline: none;
-      border-color: #20b2aa;
-      background: white;
-      box-shadow: 0 0 0 3px rgba(32, 178, 170, 0.1);
-    }
-
-    .btn-login {
-      width: 100%;
-      padding: 15px;
-      background: linear-gradient(135deg, #20b2aa, #48d1cc);
-      color: white;
-      border: none;
-      border-radius: 12px;
-      font-size: 1rem;
-      font-weight: 600;
-      cursor: pointer;
-      transition: all 0.3s ease;
-      text-transform: uppercase;
-      letter-spacing: 1px;
-    }
-
-    .btn-login:hover {
-      transform: translateY(-2px);
-      box-shadow: 0 10px 20px rgba(32, 178, 170, 0.3);
-    }
-
-    .btn-login:active {
-      transform: translateY(0);
-    }
-
-    .alert {
-      padding: 15px;
-      border-radius: 8px;
-      margin-bottom: 20px;
-      font-size: 0.9rem;
-    }
-
-    .alert-danger {
-      background-color: #fee;
-      color: #c33;
-      border: 1px solid #fcc;
-    }
-
-    .alert-success {
-      background-color: #efe;
-      color: #363;
-      border: 1px solid #cfc;
-    }
-
-    .forgot-password {
-      text-align: center;
-      margin-top: 20px;
-    }
-
-    .forgot-password a {
-      color: #20b2aa;
-      text-decoration: none;
-      font-size: 0.9rem;
-      transition: color 0.3s ease;
-    }
-
-    .forgot-password a:hover {
-      color: #1a9999;
-      text-decoration: underline;
-    }
-
-    .loading {
-      display: none;
-      position: relative;
-    }
-
-    .loading::after {
-      content: '';
-      position: absolute;
-      width: 20px;
-      height: 20px;
-      margin: auto;
-      border: 2px solid transparent;
-      border-top-color: #ffffff;
-      border-radius: 50%;
-      animation: spin 1s linear infinite;
-      top: 50%;
-      left: 50%;
-      transform: translate(-50%, -50%);
-    }
-
-    @keyframes spin {
-      0% { transform: translate(-50%, -50%) rotate(0deg); }
-      100% { transform: translate(-50%, -50%) rotate(360deg); }
-    }
-
-    .form-footer {
-      text-align: center;
-      padding: 20px 30px;
-      background-color: #f8f9fa;
-      border-top: 1px solid #e9ecef;
-    }
-
-    .form-footer p {
-      color: #6c757d;
-      font-size: 0.85rem;
-    }
-
+    .login-container { background: white; border-radius: 20px; box-shadow: 0 20px 40px rgba(0,0,0,0.1); overflow: hidden; width: 100%; max-width: 400px; backdrop-filter: blur(10px); }
+    .login-header { background: linear-gradient(135deg, #20b2aa, #48d1cc); padding: 40px 30px; text-align: center; color: white; }
+    .login-header h1 { font-size: 2rem; font-weight: 300; margin-bottom: 8px; }
+    .login-header p { opacity: 0.9; font-size: 0.9rem; }
+    .login-form { padding: 40px 30px; }
+    .form-group { margin-bottom: 25px; position: relative; }
+    .form-group label { display: block; margin-bottom: 8px; color: #555; font-weight: 500; font-size: 0.9rem; }
+    .form-control { width: 100%; padding: 15px 20px; border: 2px solid #e1e5e9; border-radius: 12px; font-size: 1rem; transition: all 0.3s ease; background: #f8f9fa; }
+    .form-control:focus { outline: none; border-color: #20b2aa; background: white; box-shadow: 0 0 0 3px rgba(32,178,170,0.1); }
+    .btn-login { width: 100%; padding: 15px; background: linear-gradient(135deg, #20b2aa, #48d1cc); color: white; border: none; border-radius: 12px; font-size: 1rem; font-weight: 600; cursor: pointer; transition: all 0.3s ease; text-transform: uppercase; letter-spacing: 1px; }
+    .btn-login:hover { transform: translateY(-2px); box-shadow: 0 10px 20px rgba(32,178,170,0.3); }
+    .btn-login:active { transform: translateY(0); }
+    .alert { padding: 15px; border-radius: 8px; margin-bottom: 20px; font-size: 0.9rem; }
+    .alert-danger { background-color: #fee; color: #c33; border: 1px solid #fcc; }
+    .alert-success { background-color: #efe; color: #363; border: 1px solid #cfc; }
+    .forgot-password { text-align: center; margin-top: 20px; }
+    .forgot-password a { color: #20b2aa; text-decoration: none; font-size: 0.9rem; transition: color 0.3s ease; }
+    .forgot-password a:hover { color: #1a9999; text-decoration: underline; }
+    .loading { display: none; position: relative; }
+    .loading::after { content: ''; position: absolute; width: 20px; height: 20px; margin: auto; border: 2px solid transparent; border-top-color: #ffffff; border-radius: 50%; animation: spin 1s linear infinite; top: 50%; left: 50%; transform: translate(-50%, -50%); }
+    @keyframes spin { 0% { transform: translate(-50%,-50%) rotate(0deg); } 100% { transform: translate(-50%,-50%) rotate(360deg); } }
+    .form-footer { text-align: center; padding: 20px 30px; background-color: #f8f9fa; border-top: 1px solid #e9ecef; }
+    .form-footer p { color: #6c757d; font-size: 0.85rem; }
     @media (max-width: 480px) {
-      .login-container {
-        margin: 10px;
-        border-radius: 15px;
-      }
-
-      .login-header {
-        padding: 30px 20px;
-      }
-
-      .login-form {
-        padding: 30px 20px;
-      }
-
-      .login-header h1 {
-        font-size: 1.7rem;
-      }
+      .login-container { margin: 10px; border-radius: 15px; }
+      .login-header { padding: 30px 20px; }
+      .login-form { padding: 30px 20px; }
+      .login-header h1 { font-size: 1.7rem; }
     }
   </style>
@@ -209,10 +51,15 @@
 
   <div class="login-form">
-    <!-- Error message -->
+    <!-- Bad credentials (Spring Security redirects to /login?error) -->
+    <div th:if="${param.error}" class="alert alert-danger">
+      <span>Неточни корисничко име или лозинка.</span>
+    </div>
+
+    <!-- Error message from server-side model (optional, existing) -->
     <div th:if="${error}" class="alert alert-danger">
       <span th:text="${error}">Неточни креденцијали</span>
     </div>
 
-    <!-- Success message -->
+    <!-- Success message (e.g., from registration or logout) -->
     <div th:if="${message}" class="alert alert-success">
       <span th:text="${message}">Порака за успех</span>
@@ -222,21 +69,12 @@
       <div class="form-group">
         <label for="username">Корисничко име</label>
-        <input type="text"
-               id="username"
-               name="username"
-               class="form-control"
-               th:value="${username}"
-               placeholder="Внесете корисничко име"
-               required>
+        <input type="text" id="username" name="username" class="form-control"
+               th:value="${username}" placeholder="Внесете корисничко име" required>
       </div>
 
       <div class="form-group">
         <label for="password">Лозинка</label>
-        <input type="password"
-               id="password"
-               name="password"
-               class="form-control"
-               placeholder="Внесете лозинка"
-               required>
+        <input type="password" id="password" name="password" class="form-control"
+               placeholder="Внесете лозинка" required>
       </div>
 
@@ -262,5 +100,4 @@
     const btnText = btn.querySelector('.btn-text');
     const loading = btn.querySelector('.loading');
-
     btnText.style.display = 'none';
     loading.style.display = 'block';
@@ -268,15 +105,7 @@
   });
 
-  // Add input focus animations
   document.querySelectorAll('.form-control').forEach(input => {
-    input.addEventListener('focus', function() {
-      this.parentElement.classList.add('focused');
-    });
-
-    input.addEventListener('blur', function() {
-      if (!this.value) {
-        this.parentElement.classList.remove('focused');
-      }
-    });
+    input.addEventListener('focus', function() { this.parentElement.classList.add('focused'); });
+    input.addEventListener('blur', function() { if (!this.value) { this.parentElement.classList.remove('focused'); } });
   });
 </script>
Index: src/main/resources/templates/medicine-interactions.html
===================================================================
--- src/main/resources/templates/medicine-interactions.html	(revision 79f84952634205e193ff09d1633fabe70edf6ce9)
+++ src/main/resources/templates/medicine-interactions.html	(revision bff4de4501a84df4baa63f77008ecf7f5550d1bb)
@@ -134,5 +134,5 @@
         <div class="card-header">Пребарај интеракции на лекови</div>
         <div class="card-body">
-            <form th:action="@{/medicine/interactions/search}" method="post" class="search-form">
+            <form th:action="@{/pharmacist/medicine/interactions/search}" method="post" class="search-form">
                 <div class="form-group search-input">
                     <input type="text"
Index: src/main/resources/templates/order-detail.html
===================================================================
--- src/main/resources/templates/order-detail.html	(revision 79f84952634205e193ff09d1633fabe70edf6ce9)
+++ src/main/resources/templates/order-detail.html	(revision bff4de4501a84df4baa63f77008ecf7f5550d1bb)
@@ -1,40 +1,27 @@
-<!-- templates/orders.html -->
 <!DOCTYPE html>
-<html xmlns:th="http://www.thymeleaf.org" lang="en">
+<html lang="en" xmlns:th="http://www.thymeleaf.org">
 <head>
     <meta charset="UTF-8">
-    <title>SynergyMed – Нарачки</title>
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title th:text="${'Order #' + order.id + ' – Details'}">Order Details</title>
 
     <th:block th:replace="fragments/header :: headerStyles"></th:block>
 
     <style>
-        :root {
-            --teal-1:#20b2aa; --teal-2:#48d1cc;
-            --bg:#fefeff; --card:#ffffff;
-            --muted:#6c757d; --text:#1f2937;
-            --shadow:0 20px 40px rgba(0,0,0,0.10);
-            --shadow-sm:0 6px 18px rgba(0,0,0,0.08);
-            --green:#16a34a; --yellow:#ca8a04;
-            --green-bg:rgba(22,163,74,.12); --yellow-bg:rgba(202,138,4,.12);
+        * { margin:0; padding:0; box-sizing:border-box; }
+        body {
+            font-family:'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
+            background:linear-gradient(135deg, #a4ecba 0%, #f7f7f8 100%);
+            min-height:100vh;
         }
-        *{margin:0;padding:0;box-sizing:border-box}
-        body{font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif;min-height:100vh;background:linear-gradient(135deg,#a4ecba 0%,#fefeff 100%);color:var(--text)}
-        .site-header{position:sticky;top:0;left:0;right:0;width:100%;border-radius:0;margin:0;z-index:1000;background:white !important;box-shadow:0 2px 10px rgba(0,0,0,.1)}
-        .page{width:100%; max-width:1200px; padding:28px; margin:0 auto}
-        .card{background:var(--card);border-radius:18px;box-shadow:var(--shadow);margin-bottom:28px;overflow:hidden}
-        .card-header{background:linear-gradient(135deg,var(--teal-1),var(--teal-2));color:#fff;padding:20px 24px;display:flex;justify-content:space-between;align-items:center;font-size:1.3rem;font-weight:600}
-        .card-body{padding:22px}
-        .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:22px}
-        .company-card{background:var(--card);border-radius:18px;box-shadow:var(--shadow-sm);overflow:hidden;display:flex;flex-direction:column}
-        .content{padding:16px 18px}
-        .title{font-weight:700;margin:6px 0 2px}
-        .muted{color:var(--muted);font-size:.92rem}
-        .badge{display:inline-block;padding:4px 10px;border-radius:999px;font-size:.80rem;font-weight:700}
-        .badge-green{background:var(--green-bg);color:var(--green)}
-        .badge-yellow{background:var(--yellow-bg);color:var(--yellow)}
-        .row{display:flex;justify-content:space-between;align-items:center;margin-top:12px}
-        .clickable{cursor:pointer}
-        @media (max-width:560px){.page{padding:16px}}
+        .site-header { position:sticky; top:0; left:0; right:0; width:100%; border-radius:0; z-index:1000; }
+        .container { max-width:800px; margin:0 auto; padding:20px; }
+        .card { background:white; border-radius:20px; box-shadow:0 10px 30px rgba(0,0,0,.1); overflow:hidden; margin-top:50px; text-align:center; }
+        .card-header { background:linear-gradient(135deg,#20b2aa,#48d1cc); color:white; padding:30px; font-size:1.8rem; font-weight:600; }
+        .card-body { padding:40px 30px; }
+        .card-body p { margin-bottom:14px; font-size:1rem; color:#333; }
+        .success-icon { font-size:4rem; color:#20b2aa; margin-bottom:20px; }
+        .btn-back { display:inline-block; margin-top:25px; padding:12px 25px; background:linear-gradient(135deg,#20b2aa,#48d1cc); color:white; border-radius:12px; font-weight:600; text-decoration:none; transition:.3s; }
+        .btn-back:hover { transform:translateY(-2px); box-shadow:0 10px 20px rgba(32,178,170,.3); }
     </style>
 </head>
@@ -43,50 +30,25 @@
 <th:block th:replace="fragments/header :: siteHeader('orders')"></th:block>
 
-<div class="page">
+<div class="container">
     <div class="card">
-        <div class="card-header">
-            <span>Нарачки</span>
-        </div>
+        <div class="card-header" th:text="${'Order #' + order.id}">Order #123</div>
         <div class="card-body">
+            <div class="success-icon">✔</div>
 
-            <!-- Empty state -->
-            <div th:if="${#lists.isEmpty(orders)}" class="muted">Немате направено ниту една нарачка.</div>
+            <p><strong>Date:</strong> <span th:text="${order.orderDate}">2025-08-30</span></p>
+            <p><strong>Status:</strong> <span th:text="${order.status}">во тек</span></p>
+            <p><strong>Total Paid:</strong> <span th:text="${order.totalPrice + ' ден.'}">0 ден.</span></p>
+            <p><strong>Expected Arrival:</strong> <span th:text="${order.expectedArrivalDate}">2025-09-05</span></p>
 
-            <!-- Orders grid -->
-            <div class="grid" th:if="${!#lists.isEmpty(orders)}">
-                <div class="company-card clickable"
-                     th:each="o : ${orders}"
-                     th:attr="data-href=@{/orders/{oid}(oid=${o.id})}">
-                    <div class="content">
-                        <div class="title" th:text="${'Нарачка • ' + o.orderDate}">Нарачка • 2025-08-30</div>
-                        <div class="muted" th:text="${'Вкупно: ' + o.totalPrice + ' ден.'}">Вкупно</div>
+            <p><strong>Delivery Company:</strong>
+                <span th:text="${deliveryCompany.company != null ? deliveryCompany.company.companyName : 'N/A'}">Courier</span>
+            </p>
 
-                        <div style="margin-top:8px;">
-                          <span class="badge"
-                                th:text="${o.status}"
-                                th:classappend="${o.status == 'испорачана'} ? ' badge-green' : (${o.status == 'во тек'} ? ' badge-yellow' : '')">
-                            Статус
-                          </span>
-                        </div>
+            <p><strong>Payment Status:</strong> <span th:text="${payment.status}">COMPLETED</span></p>
+            <p><strong>Payment Method:</strong>
+                <span th:text="${payment.paymentMethod != null ? payment.paymentMethod.methodName : '—'}">CARD</span>
+            </p>
 
-                        <div class="row">
-                            <div class="muted" th:text="${'Очекувано: ' + o.expectedArrivalDate}">Очекувано</div>
-                            <div class="muted" th:text="${'#' + o.id}">#ИД</div>
-                        </div>
-                    </div>
-                </div>
-            </div>
-
-            <script>
-                document.addEventListener('DOMContentLoaded', function () {
-                    document.querySelectorAll('.company-card.clickable').forEach(function (card) {
-                        const href = card.getAttribute('data-href');
-                        if (!href) return;
-                        card.addEventListener('click', function () { window.location.assign(href); });
-                        card.querySelectorAll('a, button, input, select, textarea, label, form')
-                            .forEach(function (el) { el.addEventListener('click', function (e) { e.stopPropagation(); }); });
-                    });
-                });
-            </script>
+            <a class="btn-back" th:href="@{/orders}">Back to Orders</a>
         </div>
     </div>
Index: src/main/resources/templates/profile-clubcard.html
===================================================================
--- src/main/resources/templates/profile-clubcard.html	(revision 79f84952634205e193ff09d1633fabe70edf6ce9)
+++ src/main/resources/templates/profile-clubcard.html	(revision bff4de4501a84df4baa63f77008ecf7f5550d1bb)
@@ -72,7 +72,8 @@
 
         /* Ensure logout looks identical to examples */
-        .logout-btn {
+        .logout-btn{
             margin-left:auto;
-            background:linear-gradient(135deg,#ff6b6b,#ee5a24);
+            background-color:#ee5a24;
+            background-image:linear-gradient(135deg,#ff6b6b,#ee5a24);
             color:#fff;
             padding:10px 20px;
@@ -81,9 +82,9 @@
             font-weight:600;
             border:none;
-            box-shadow: 0 5px 15px rgba(238,90,36,.30);
-            transition: transform .2s ease, box-shadow .2s ease;
-            display:inline-flex; align-items:center; justify-content:center;
-        }
-        .logout-btn:hover { transform:translateY(-2px); box-shadow:0 10px 20px rgba(238,90,36,.35); }
+            box-shadow:0 5px 15px rgba(238,90,36,.30);
+            transition:.2s;
+            display:inline-flex; align-items:center;
+        }
+        .logout-btn:hover{ transform:translateY(-2px); box-shadow:0 10px 20px rgba(238,90,36,.35); }
 
         .main-content { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
@@ -153,9 +154,9 @@
         <div class="nav-links">
             <a th:href="@{/profile}" class="nav-link" th:classappend="${activeTab}=='profile' ? ' active'">Профил</a>
-            <a th:href="@{/profile/prescriptions}" class="nav-link" th:classappend="${activeTab}=='prescriptions' ? ' active'">Рецепти</a>
-            <a th:href="@{/profile/clubcard}" class="nav-link" th:classappend="${activeTab}=='clubcard' ? ' active'">Клуб-картичка</a>
-            <a th:href="@{/allergies/manage}" class="nav-link">Управување со алергии</a>
-            <a th:href="@{/profile/contacts}" class="nav-link" th:classappend="${activeTab}=='contacts' ? ' active'">Контакт податоци</a>
-            <a th:href="@{/logout}" class="logout-btn">Одјава</a>
+            <a th:href="@{/profile/prescriptions}" sec:authorize="hasRole('CLIENT')" class="nav-link" th:classappend="${activeTab}=='prescriptions' ? ' active'">Рецепти</a>
+            <a th:href="@{/profile/clubcard}" sec:authorize="hasRole('CLIENT')" class="nav-link" th:classappend="${activeTab}=='clubcard' ? ' active'">Клуб-картичка</a>
+            <a th:href="@{/allergies/manage}" sec:authorize="hasRole('CLIENT')"  class="nav-link">Управување со алергии</a>
+            <a th:href="@{/profile/contacts}"  class="nav-link" th:classappend="${activeTab}=='contacts' ? ' active'">Контакт податоци</a>
+            <a th:href="@{/logout}" class="logout-btn">Одјави се</a>
         </div>
     </div>
@@ -203,8 +204,8 @@
                             <select id="program" name="program" required>
                                 <!-- keep values in English to match backend; show text in Macedonian -->
-                                <option value="Default Loyalty Program" selected>Стандардна лојалти програма</option>
-                                <option value="Silver Rewards">Сребрени награди</option>
-                                <option value="Gold Rewards">Златни награди</option>
-                                <option value="Platinum Elite">Платинум елит</option>
+                                <option value="Зегин Basic" selected>Зегин Basic</option>
+                                <option value="Зегин Bronze">Зегин Bronze</option>
+                                <option value="Зегин Silver">Зегин Silver</option>
+                                <option value="Зегин Gold">Зегин Gold</option>
                             </select>
                         </div>
Index: src/main/resources/templates/profile-contacts.html
===================================================================
--- src/main/resources/templates/profile-contacts.html	(revision 79f84952634205e193ff09d1633fabe70edf6ce9)
+++ src/main/resources/templates/profile-contacts.html	(revision bff4de4501a84df4baa63f77008ecf7f5550d1bb)
@@ -60,8 +60,9 @@
         .nav-link:hover, .nav-link.active { background:linear-gradient(135deg,#20b2aa,#48d1cc); color:white; }
 
-        /* Ensure logout looks identical to profile */
-        .logout-btn {
+        /* Logout button */
+        .logout-btn{
             margin-left:auto;
-            background:linear-gradient(135deg,#ff6b6b,#ee5a24);
+            background-color:#ee5a24;
+            background-image:linear-gradient(135deg,#ff6b6b,#ee5a24);
             color:#fff;
             padding:10px 20px;
@@ -70,9 +71,9 @@
             font-weight:600;
             border:none;
-            box-shadow: 0 5px 15px rgba(238,90,36,.30);
-            transition: transform .2s ease, box-shadow .2s ease;
+            box-shadow:0 5px 15px rgba(238,90,36,.30);
+            transition:.2s;
             display:inline-flex; align-items:center; justify-content:center;
         }
-        .logout-btn:hover { transform:translateY(-2px); box-shadow:0 10px 20px rgba(238,90,36,.35); }
+        .logout-btn:hover{ transform:translateY(-2px); box-shadow:0 10px 20px rgba(238,90,36,.35); }
 
         .main-content { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
@@ -97,6 +98,16 @@
         label { font-weight:600; color:#374151; min-width:120px; }
         input[type=text] { padding:10px 12px; border:1px solid #e5e7eb; border-radius:10px; flex:1; }
-        .actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:16px; }
-        .btn { display:inline-block; padding:10px 16px; border-radius:10px; border:1px solid #e5e7eb; background:#fff; font-weight:600; cursor:pointer; }
+
+        /* New: single flex row for both actions */
+        .actions-row{
+            display:flex;
+            align-items:center;  /* vertical alignment on same baseline */
+            gap:12px;            /* space between the two buttons/forms */
+            margin-top:16px;
+        }
+        .actions-row form{ margin:0; } /* remove default margins */
+
+        /* Buttons baseline consistency */
+        .btn{ display:inline-flex; align-items:center; justify-content:center; padding:10px 16px; border-radius:10px; border:1px solid #e5e7eb; background:#fff; font-weight:600; cursor:pointer; }
         .btn-primary { background:linear-gradient(135deg,#20b2aa,#48d1cc); color:#fff; border:none; }
         .btn-danger { color:#b3261e; border-color:#f0caca; }
@@ -133,12 +144,11 @@
         <div class="nav-links">
             <a th:href="@{/profile}" class="nav-link" th:classappend="${activeTab}=='profile' ? ' active'">Профил</a>
-            <a th:href="@{/profile/prescriptions}" class="nav-link" th:classappend="${activeTab}=='prescriptions' ? ' active'">Рецепти</a>
-            <a th:href="@{/profile/clubcard}" class="nav-link" th:classappend="${activeTab}=='clubcard' ? ' active'">Клуб-картичка</a>
-            <a th:href="@{/allergies/manage}" class="nav-link">Управување со алергии</a>
-            <a th:href="@{/profile/contacts}" class="nav-link" th:classappend="${activeTab}=='contacts' ? ' active'">Контакт податоци</a>
-            <a th:href="@{/logout}" class="logout-btn">Одјава</a>
+            <a th:href="@{/profile/prescriptions}" sec:authorize="hasRole('CLIENT')" class="nav-link" th:classappend="${activeTab}=='prescriptions' ? ' active'">Рецепти</a>
+            <a th:href="@{/profile/clubcard}" sec:authorize="hasRole('CLIENT')" class="nav-link" th:classappend="${activeTab}=='clubcard' ? ' active'">Клуб-картичка</a>
+            <a th:href="@{/allergies/manage}" sec:authorize="hasRole('CLIENT')"  class="nav-link">Управување со алергии</a>
+            <a th:href="@{/profile/contacts}"  class="nav-link" th:classappend="${activeTab}=='contacts' ? ' active'">Контакт податоци</a>
+            <a th:href="@{/logout}" class="logout-btn">Одјави се</a>
         </div>
     </div>
-
 
     <!-- Main Content -->
@@ -159,10 +169,10 @@
         </div>
 
-        <!-- Right: Contact Information (two editable fields; create/update in one form) -->
+        <!-- Right: Contact Information (create/update + delete) -->
         <div class="card">
             <div class="card-header">Контакт податоци</div>
             <div class="card-body">
-                <!-- Save form (create or update) -->
-                <form th:action="@{/profile/contacts/save}" method="post" style="display:inline;">
+                <!-- Save form holds inputs (no button inside) -->
+                <form id="saveContactForm" th:action="@{/profile/contacts/save}" method="post">
                     <input type="hidden" name="id" th:if="${contact != null}" th:value="${contact.id}">
                     <div class="row">
@@ -178,17 +188,21 @@
                                placeholder="Улица, Град">
                     </div>
-                    <div class="actions" style="align-items:center;">
-                        <button type="submit" class="btn btn-primary"
-                                th:text="${contact != null} ? 'Ажурирај' : 'Креирај'">Креирај</button>
-                    </div>
                 </form>
 
-                <!-- Delete form (separate to avoid nested forms) -->
-                <form th:if="${contact != null}"
-                      th:action="@{/profile/contacts/delete}"
-                      method="post" style="display:inline;">
-                    <input type="hidden" name="id" th:value="${contact.id}">
-                    <button type="submit" class="btn btn-danger" style="margin-left:12px;">Избриши</button>
-                </form>
+                <!-- Side-by-side actions -->
+                <div class="actions-row">
+                    <!-- Submit outside form using form attribute -->
+                    <button type="submit" class="btn btn-primary"
+                            form="saveContactForm"
+                            th:text="${contact != null} ? 'Ажурирај' : 'Креирај'">Креирај</button>
+
+                    <!-- Delete form -->
+                    <form th:if="${contact != null}"
+                          th:action="@{/profile/contacts/delete}"
+                          method="post">
+                        <input type="hidden" name="id" th:value="${contact.id}">
+                        <button type="submit" class="btn btn-danger">Избриши</button>
+                    </form>
+                </div>
 
                 <!-- Optional helper when creating -->
Index: src/main/resources/templates/profile-prescriptions.html
===================================================================
--- src/main/resources/templates/profile-prescriptions.html	(revision 79f84952634205e193ff09d1633fabe70edf6ce9)
+++ src/main/resources/templates/profile-prescriptions.html	(revision bff4de4501a84df4baa63f77008ecf7f5550d1bb)
@@ -48,9 +48,19 @@
         .nav-link { color:#20b2aa; text-decoration:none; padding:10px 20px; border-radius:25px; transition:.3s; font-weight:500; }
         .nav-link:hover, .nav-link.active { background:linear-gradient(135deg,#20b2aa,#48d1cc); color:white; }
-        .logout-btn {
-            margin-left:auto; background:linear-gradient(135deg,#ff6b6b,#ee5а24); color:white; padding:10px 20px; border-radius:25px;
-            text-decoration:none; font-weight:600; border:none; box-shadow:0 5px 15px rgba(238,90,36,.30); transition:.2s; display:inline-flex; align-items:center;
+        .logout-btn{
+            margin-left:auto;
+            background-color:#ee5a24;
+            background-image:linear-gradient(135deg,#ff6b6b,#ee5a24);
+            color:#fff;
+            padding:10px 20px;
+            border-radius:25px;
+            text-decoration:none;
+            font-weight:600;
+            border:none;
+            box-shadow:0 5px 15px rgba(238,90,36,.30);
+            transition:.2s;
+            display:inline-flex; align-items:center;
         }
-        .logout-btn:hover { transform:translateY(-2px); box-shadow:0 10px 20px rgba(238,90,36,.35); }
+        .logout-btn:hover{ transform:translateY(-2px); box-shadow:0 10px 20px rgba(238,90,36,.35); }
 
         .main-content { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
@@ -105,10 +115,10 @@
     <div class="nav-bar">
         <div class="nav-links">
-            <a th:href="@{/profile}" class="nav-link">Профил</a>
-            <a th:href="@{/profile/prescriptions}" class="nav-link active">Рецепти</a>
-            <a th:href="@{/profile/clubcard}" class="nav-link" th:classappend="${activeTab}=='clubcard' ? ' active'">Клуб-картичка</a>
-            <a th:href="@{/allergies/manage}" class="nav-link">Управување со алергии</a>
-            <a th:href="@{/profile/contacts}" class="nav-link">Контакт податоци</a>
-            <a th:href="@{/logout}" class="logout-btn">Одјава</a>
+            <a th:href="@{/profile}" class="nav-link" th:classappend="${activeTab}=='profile' ? ' active'">Профил</a>
+            <a th:href="@{/profile/prescriptions}" sec:authorize="hasRole('CLIENT')" class="nav-link" th:classappend="${activeTab}=='prescriptions' ? ' active'">Рецепти</a>
+            <a th:href="@{/profile/clubcard}" sec:authorize="hasRole('CLIENT')" class="nav-link" th:classappend="${activeTab}=='clubcard' ? ' active'">Клуб-картичка</a>
+            <a th:href="@{/allergies/manage}" sec:authorize="hasRole('CLIENT')"  class="nav-link">Управување со алергии</a>
+            <a th:href="@{/profile/contacts}"  class="nav-link" th:classappend="${activeTab}=='contacts' ? ' active'">Контакт податоци</a>
+            <a th:href="@{/logout}" class="logout-btn">Одјави се</a>
         </div>
     </div>
Index: src/main/resources/templates/profile.html
===================================================================
--- src/main/resources/templates/profile.html	(revision 79f84952634205e193ff09d1633fabe70edf6ce9)
+++ src/main/resources/templates/profile.html	(revision bff4de4501a84df4baa63f77008ecf7f5550d1bb)
@@ -103,9 +103,19 @@
         .no-data-icon { font-size: 4rem; margin-bottom: 20px; opacity: .3; }
 
-        .logout-btn {
-            margin-left:auto; background:linear-gradient(135deg,#ff6b6b,#ee5a24);
-            color:white; padding:10px 20px; border-radius:25px; text-decoration:none; font-weight:500; transition:.3s;
-        }
-        .logout-btn:hover { transform:translateY(-2px); box-shadow:0 5px 15px rgba(238,90,36,.4); }
+        .logout-btn{
+            margin-left:auto;
+            background-color:#ee5a24;
+            background-image:linear-gradient(135deg,#ff6b6b,#ee5a24);
+            color:#fff;
+            padding:10px 20px;
+            border-radius:25px;
+            text-decoration:none;
+            font-weight:600;
+            border:none;
+            box-shadow:0 5px 15px rgba(238,90,36,.30);
+            transition:.2s;
+            display:inline-flex; align-items:center;
+        }
+        .logout-btn:hover{ transform:translateY(-2px); box-shadow:0 10px 20px rgba(238,90,36,.35); }
 
         @media(max-width: 992px) {
@@ -142,9 +152,9 @@
         <div class="nav-links">
             <a th:href="@{/profile}" class="nav-link" th:classappend="${activeTab}=='profile' ? ' active'">Профил</a>
-            <a th:href="@{/profile/prescriptions}" class="nav-link" th:classappend="${activeTab}=='prescriptions' ? ' active'">Рецепти</a>
-            <a th:href="@{/profile/clubcard}" class="nav-link" th:classappend="${activeTab}=='clubcard' ? ' active'">Клуб-картичка</a>
-            <a th:href="@{/allergies/manage}" class="nav-link">Управување со алергии</a>
+            <a th:href="@{/profile/prescriptions}" sec:authorize="hasRole('CLIENT')" class="nav-link" th:classappend="${activeTab}=='prescriptions' ? ' active'">Рецепти</a>
+            <a th:href="@{/profile/clubcard}" sec:authorize="hasRole('CLIENT')" class="nav-link" th:classappend="${activeTab}=='clubcard' ? ' active'">Клуб-картичка</a>
+            <a th:href="@{/allergies/manage}" sec:authorize="hasRole('CLIENT')"  class="nav-link">Управување со алергии</a>
             <a th:href="@{/profile/contacts}" class="nav-link" th:classappend="${activeTab}=='contacts' ? ' active'">Контакт податоци</a>
-            <a th:href="@{/logout}" class="logout-btn">Одјава</a>
+            <a th:href="@{/logout}" class="logout-btn">Одјави се</a>
         </div>
     </div>
@@ -169,5 +179,5 @@
 
         <!-- Health Profile -->
-        <div class="card">
+        <div class="card" sec:authorize="hasRole('CLIENT')">
             <div class="card-header">Здравствен профил</div>
             <div class="card-body">
Index: src/main/resources/templates/supplyorder-details.html
===================================================================
--- src/main/resources/templates/supplyorder-details.html	(revision 79f84952634205e193ff09d1633fabe70edf6ce9)
+++ src/main/resources/templates/supplyorder-details.html	(revision bff4de4501a84df4baa63f77008ecf7f5550d1bb)
@@ -72,6 +72,6 @@
 
       <div class="actions">
-        <a class="btn" th:href="@{/admin/supply-orders}">Сите набавки</a>
-        <a class="btn" th:href="@{/admin/supply-orders/new}">Нова набавка</a>
+        <a class="btn" th:href="@{/pharmacist/supply-orders}">Сите набавки</a>
+        <a class="btn" th:href="@{/pharmacist/supply-orders/new}">Нова набавка</a>
       </div>
     </div>
Index: src/main/resources/templates/supplyorder-list.html
===================================================================
--- src/main/resources/templates/supplyorder-list.html	(revision 79f84952634205e193ff09d1633fabe70edf6ce9)
+++ src/main/resources/templates/supplyorder-list.html	(revision bff4de4501a84df4baa63f77008ecf7f5550d1bb)
@@ -38,5 +38,5 @@
             <div class="row-top">
                 <div class="muted">Прикажани се сите досега креирани набавки.</div>
-                <a class="btn" th:href="@{/admin/supply-orders/new}">+ Нова набавка</a>
+                <a class="btn" th:href="@{/pharmacist/supply-orders/new}">+ Нова набавка</a>
             </div>
 
@@ -63,5 +63,5 @@
                     <td th:text="${o.expectedArrivalDate}">2025-09-10</td>
                     <td th:text="${o.status}">во тек</td>
-                    <td><a class="btn" th:href="@{|/admin/supply-orders/${o.id}|}">Преглед</a></td>
+                    <td><a class="btn" th:href="@{|/pharmacist/supply-orders/${o.id}|}">Преглед</a></td>
                 </tr>
                 <tr th:if="${#lists.isEmpty(orders)}">
Index: src/main/resources/templates/supplyorder.html
===================================================================
--- src/main/resources/templates/supplyorder.html	(revision 79f84952634205e193ff09d1633fabe70edf6ce9)
+++ src/main/resources/templates/supplyorder.html	(revision bff4de4501a84df4baa63f77008ecf7f5550d1bb)
@@ -62,5 +62,5 @@
         <div class="card-header">Креирај набавка</div>
         <div class="card-body">
-            <form th:action="@{/admin/supply-orders}" method="post" id="orderForm">
+            <form th:action="@{/phramacist/supply-orders}" method="post" id="orderForm">
                 <input type="hidden" th:if="${_csrf != null}" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
 
Index: src/main/resources/templates/verification-approval.html
===================================================================
--- src/main/resources/templates/verification-approval.html	(revision 79f84952634205e193ff09d1633fabe70edf6ce9)
+++ src/main/resources/templates/verification-approval.html	(revision bff4de4501a84df4baa63f77008ecf7f5550d1bb)
@@ -10,4 +10,17 @@
         *{margin:0;padding:0;box-sizing:border-box}
         body{font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif;min-height:100vh;background:linear-gradient(135deg,#a4ecba 0%,#fefeff 100%);color:#1f2937}
+
+        .site-header{
+            position: sticky;
+            top:0; left:0; right:0;
+            width:100%;
+            border-radius:0;
+            margin:0;
+            z-index:1000;
+            background:#fff !important;
+            box-shadow:0 2px 10px rgba(0,0,0,.1);
+        }
+        .after-site-header{ height:16px; }
+
         .page{width:100%;max-width:900px;padding:28px;margin:0 auto}
         .card{background:#fff;border-radius:18px;box-shadow:0 20px 40px rgba(0,0,0,.10);overflow:hidden;margin-bottom:28px}
@@ -26,4 +39,5 @@
 <body>
 <th:block th:replace="fragments/header :: siteHeader('verification')"></th:block>
+<div class="after-site-header"></div>
 
 <div class="page">
@@ -43,11 +57,11 @@
 
             <div class="actions">
-                <form th:action="@{/admin/verification/{id}/approve(id=${item.id})}" method="post">
+                <form th:action="@{/pharmacist/verification/{id}/approve(id=${item.id})}" method="post">
                     <button type="submit" class="btn btn-primary">Одобри</button>
                 </form>
-                <form th:action="@{/admin/verification/{id}/deny(id=${item.id})}" method="post">
+                <form th:action="@{/pharmacist/verification/{id}/deny(id=${item.id})}" method="post">
                     <button type="submit" class="btn btn-danger">Одби</button>
                 </form>
-                <a class="btn" th:href="@{/admin/verification}">Назад</a>
+                <a class="btn" th:href="@{/pharmacist/verification}">Назад</a>
             </div>
         </div>
Index: src/main/resources/templates/verification-list.html
===================================================================
--- src/main/resources/templates/verification-list.html	(revision 79f84952634205e193ff09d1633fabe70edf6ce9)
+++ src/main/resources/templates/verification-list.html	(revision bff4de4501a84df4baa63f77008ecf7f5550d1bb)
@@ -10,4 +10,18 @@
         *{margin:0;padding:0;box-sizing:border-box}
         body{font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif;min-height:100vh;background:linear-gradient(135deg,#a4ecba 0%,#fefeff 100%);color:#1f2937}
+
+        /* Make the global site header stick to the very top, edge-to-edge */
+        .site-header{
+            position: sticky;
+            top:0; left:0; right:0;
+            width:100%;
+            border-radius:0;
+            margin:0;
+            z-index:1000;
+            background:#fff !important;
+            box-shadow:0 2px 10px rgba(0,0,0,.1);
+        }
+        .after-site-header{ height:16px; }
+
         .page{width:100%;max-width:1200px;padding:28px;margin:0 auto}
         .card{background:#fff;border-radius:18px;box-shadow:0 20px 40px rgba(0,0,0,.10);overflow:hidden;margin-bottom:28px}
@@ -23,4 +37,5 @@
 <body>
 <th:block th:replace="fragments/header :: siteHeader('verification')"></th:block>
+<div class="after-site-header"></div>
 
 <div class="page">
@@ -30,8 +45,7 @@
             <div th:if="${#lists.isEmpty(pending)}" class="muted">Нема барања на чекање во моментов.</div>
             <div class="grid" th:if="${!#lists.isEmpty(pending)}">
-                <!-- Iterate pending rows with th:each -->
                 <div class="tile"
                      th:each="p : ${pending}"
-                     th:attr="data-href=@{/admin/verification/{id}(id=${p.id})}">
+                     th:attr="data-href=@{/pharmacist/verification/{id}(id=${p.id})}">
                     <div class="name" th:text="${p.client.users.firstName + ' ' + p.client.users.lastName}">Име на клиент</div>
                 </div>
