Index: petify-frontend/src/views/ClinicApplicationView.vue
===================================================================
--- petify-frontend/src/views/ClinicApplicationView.vue	(revision ae836471908c8a67e8fc2a25ad6c445b1c867e48)
+++ 	(revision )
@@ -1,352 +1,0 @@
-<template>
-  <main class="application-page">
-    <section class="application-hero">
-      <div class="container hero-inner">
-        <div class="hero-copy">
-          <p class="eyebrow">Petify clinics</p>
-          <h1>Apply as a vet clinic</h1>
-          <p>
-            Send your clinic details to the Petify admins. Once approved, your clinic can manage appointments,
-            availability, cancellations, and client visit outcomes from the clinic dashboard.
-          </p>
-        </div>
-        <div class="review-note">
-          <span class="note-label">Admin review</span>
-          <strong>Applications start as pending</strong>
-          <p>Admins can approve or deny them from the Clinics tab.</p>
-        </div>
-      </div>
-    </section>
-
-    <section class="container application-body">
-      <div class="form-shell">
-        <div class="form-heading">
-          <h2>Clinic information</h2>
-          <p>Use details patients can recognize. Email or phone is required.</p>
-        </div>
-
-        <form class="application-form" @submit.prevent="submit">
-          <div class="form-grid">
-            <div class="form-group wide">
-              <label for="clinicName">Clinic name *</label>
-              <input
-                id="clinicName"
-                v-model.trim="form.name"
-                class="form-control"
-                type="text"
-                placeholder="Happy Paws Clinic"
-                required
-              />
-            </div>
-
-            <div class="form-group">
-              <label for="clinicEmail">Email</label>
-              <input
-                id="clinicEmail"
-                v-model.trim="form.email"
-                class="form-control"
-                type="email"
-                placeholder="clinic@example.com"
-              />
-            </div>
-
-            <div class="form-group">
-              <label for="clinicPhone">Phone</label>
-              <input
-                id="clinicPhone"
-                v-model.trim="form.phone"
-                class="form-control"
-                type="tel"
-                placeholder="+389 70 000 000"
-              />
-            </div>
-
-            <div class="form-group">
-              <label for="clinicCity">City *</label>
-              <input
-                id="clinicCity"
-                v-model.trim="form.city"
-                class="form-control"
-                type="text"
-                placeholder="Skopje"
-                required
-              />
-            </div>
-
-            <div class="form-group">
-              <label for="clinicAddress">Address *</label>
-              <input
-                id="clinicAddress"
-                v-model.trim="form.address"
-                class="form-control"
-                type="text"
-                placeholder="Partizanska 12"
-                required
-              />
-            </div>
-          </div>
-
-          <div v-if="errorMessage" class="alert alert-danger">
-            {{ errorMessage }}
-          </div>
-
-          <div v-if="successMessage" class="alert alert-success">
-            {{ successMessage }}
-          </div>
-
-          <div class="form-actions">
-            <button class="btn btn-primary" type="submit" :disabled="isSubmitting">
-              <span v-if="isSubmitting" class="spinner-border spinner-border-sm me-2"></span>
-              {{ isSubmitting ? 'Submitting...' : 'Submit application' }}
-            </button>
-            <button class="btn btn-outline-secondary" type="button" :disabled="isSubmitting" @click="resetForm">
-              Reset
-            </button>
-          </div>
-        </form>
-      </div>
-    </section>
-  </main>
-</template>
-
-<script setup lang="ts">
-import { ref } from 'vue'
-import { submitClinicApplication } from '../api/clinicApplications'
-
-const emptyForm = {
-  name: '',
-  email: '',
-  phone: '',
-  city: '',
-  address: '',
-}
-
-const form = ref({ ...emptyForm })
-const isSubmitting = ref(false)
-const errorMessage = ref('')
-const successMessage = ref('')
-
-function validateForm(): string {
-  if (!form.value.name.trim()) return 'Clinic name is required'
-  if (!form.value.city.trim()) return 'City is required'
-  if (!form.value.address.trim()) return 'Address is required'
-  if (!form.value.email.trim() && !form.value.phone.trim()) return 'Email or phone is required'
-  return ''
-}
-
-async function submit() {
-  const validationError = validateForm()
-  if (validationError) {
-    errorMessage.value = validationError
-    successMessage.value = ''
-    return
-  }
-
-  try {
-    isSubmitting.value = true
-    errorMessage.value = ''
-    successMessage.value = ''
-    const application = await submitClinicApplication(form.value)
-    successMessage.value = `Application submitted. Your status is ${application.status || 'PENDING'}.`
-    form.value = { ...emptyForm }
-  } catch (error) {
-    errorMessage.value = error instanceof Error ? error.message : 'Failed to submit application'
-  } finally {
-    isSubmitting.value = false
-  }
-}
-
-function resetForm() {
-  form.value = { ...emptyForm }
-  errorMessage.value = ''
-  successMessage.value = ''
-}
-</script>
-
-<style scoped>
-.application-page {
-  min-height: calc(100vh - 72px);
-  background: #f7f5f2;
-  color: #1f2933;
-}
-
-.application-hero {
-  background:
-    linear-gradient(135deg, rgba(31, 41, 51, 0.82), rgba(60, 78, 88, 0.68)),
-    url('https://images.unsplash.com/photo-1628009368231-7bb7cfcb0def?auto=format&fit=crop&w=1800&q=80');
-  background-position: center;
-  background-size: cover;
-  color: #ffffff;
-}
-
-.hero-inner {
-  min-height: 360px;
-  display: grid;
-  grid-template-columns: minmax(0, 1fr) 320px;
-  gap: 32px;
-  align-items: end;
-  padding-top: 72px;
-  padding-bottom: 46px;
-}
-
-.hero-copy {
-  max-width: 720px;
-}
-
-.eyebrow {
-  margin: 0 0 10px;
-  font-size: 0.78rem;
-  font-weight: 800;
-  letter-spacing: 0.08em;
-  text-transform: uppercase;
-  color: #fed7aa;
-}
-
-.hero-copy h1 {
-  margin: 0;
-  font-size: clamp(2.35rem, 5vw, 4.7rem);
-  line-height: 0.95;
-  font-weight: 850;
-}
-
-.hero-copy p {
-  margin: 20px 0 0;
-  max-width: 620px;
-  color: rgba(255, 255, 255, 0.9);
-  font-size: 1.04rem;
-  line-height: 1.65;
-}
-
-.review-note {
-  align-self: end;
-  padding: 18px;
-  border: 1px solid rgba(255, 255, 255, 0.24);
-  background: rgba(255, 255, 255, 0.11);
-  backdrop-filter: blur(12px);
-  border-radius: 8px;
-}
-
-.note-label {
-  display: inline-block;
-  margin-bottom: 10px;
-  color: #fed7aa;
-  font-size: 0.78rem;
-  font-weight: 800;
-  text-transform: uppercase;
-}
-
-.review-note strong {
-  display: block;
-  font-size: 1.05rem;
-}
-
-.review-note p {
-  margin: 8px 0 0;
-  color: rgba(255, 255, 255, 0.82);
-}
-
-.application-body {
-  padding-top: 34px;
-  padding-bottom: 64px;
-}
-
-.form-shell {
-  max-width: 940px;
-  margin: 0 auto;
-  background: #ffffff;
-  border: 1px solid #e5e7eb;
-  border-radius: 8px;
-  box-shadow: 0 18px 40px rgba(31, 41, 51, 0.08);
-  padding: 28px;
-}
-
-.form-heading {
-  display: flex;
-  justify-content: space-between;
-  gap: 24px;
-  border-bottom: 1px solid #edf0f2;
-  padding-bottom: 18px;
-  margin-bottom: 22px;
-}
-
-.form-heading h2 {
-  margin: 0;
-  font-size: 1.45rem;
-  font-weight: 800;
-}
-
-.form-heading p {
-  max-width: 340px;
-  margin: 0;
-  color: #667085;
-}
-
-.form-grid {
-  display: grid;
-  grid-template-columns: repeat(2, minmax(0, 1fr));
-  gap: 18px;
-}
-
-.form-group.wide {
-  grid-column: 1 / -1;
-}
-
-.form-group label {
-  display: block;
-  margin-bottom: 7px;
-  color: #344054;
-  font-weight: 700;
-  font-size: 0.92rem;
-}
-
-.form-control {
-  min-height: 46px;
-  border-radius: 8px;
-}
-
-.alert {
-  margin-top: 18px;
-}
-
-.form-actions {
-  display: flex;
-  gap: 12px;
-  margin-top: 22px;
-}
-
-.btn {
-  border-radius: 8px;
-  font-weight: 700;
-}
-
-.btn-primary {
-  background: #f97316;
-  border-color: #f97316;
-}
-
-.btn-primary:hover {
-  background: #ea580c;
-  border-color: #ea580c;
-}
-
-@media (max-width: 768px) {
-  .hero-inner {
-    grid-template-columns: 1fr;
-    min-height: auto;
-    padding-top: 48px;
-  }
-
-  .review-note {
-    max-width: 420px;
-  }
-
-  .form-heading,
-  .form-actions {
-    flex-direction: column;
-  }
-
-  .form-grid {
-    grid-template-columns: 1fr;
-  }
-}
-</style>
Index: petify-frontend/src/views/LoginView.vue
===================================================================
--- petify-frontend/src/views/LoginView.vue	(revision ae836471908c8a67e8fc2a25ad6c445b1c867e48)
+++ petify-frontend/src/views/LoginView.vue	(revision 92e7c7aeb21d4b882e2f8107b1676468ceb14aa7)
@@ -29,7 +29,4 @@
         <div v-if="error" class="alert alert-danger auth-alert" role="alert">
           <strong class="me-1">Oops.</strong>{{ error }}
-        </div>
-        <div v-if="forgotSuccess" class="alert alert-success auth-alert" role="alert">
-          {{ forgotSuccess }}
         </div>
 
@@ -116,8 +113,8 @@
           <!-- Remember me -->
           <div class="d-flex justify-content-between align-items-center mt-2 mb-3">
-            <span></span>
-            <button class="link-button small accent" type="button" @click="toggleForgotPassword">
-              Forgot password?
-            </button>
+
+
+            <!-- enable later if you implement route -->
+            <!-- <RouterLink class="link small accent" to="/forgot">Forgot password?</RouterLink> -->
           </div>
 
@@ -126,33 +123,4 @@
             <span v-if="loading" class="spinner-border spinner-border-sm me-2" aria-hidden="true"></span>
             {{ loading ? 'Logging in…' : 'Log in' }}
-          </button>
-        </form>
-
-        <form v-if="showForgotPassword" class="forgot-panel mt-4" @submit.prevent="submitForgotPassword">
-          <label class="form-label" for="forgot-identifier">Username or email</label>
-          <div class="input-group auth-input">
-            <span class="input-group-text">
-              <svg width="18" height="18" viewBox="0 0 24 24" fill="none">
-                <path
-                  d="M4 6.5A2.5 2.5 0 0 1 6.5 4h11A2.5 2.5 0 0 1 20 6.5v11a2.5 2.5 0 0 1-2.5 2.5h-11A2.5 2.5 0 0 1 4 17.5v-11Zm2.5-.5a.5.5 0 0 0-.5.5v.8l6 3.7 6-3.7v-.8a.5.5 0 0 0-.5-.5h-11Zm11.5 3.6-5.5 3.4a1 1 0 0 1-1 0L6 9.6v7.9a.5.5 0 0 0 .5.5h11a.5.5 0 0 0 .5-.5V9.6Z"
-                  fill="currentColor"
-                  opacity=".85"
-                />
-              </svg>
-            </span>
-            <input
-              id="forgot-identifier"
-              v-model.trim="forgotIdentifier"
-              class="form-control"
-              type="text"
-              autocomplete="username"
-              required
-              placeholder="username or email"
-            />
-          </div>
-          <div v-if="forgotError" class="text-danger small mt-2">{{ forgotError }}</div>
-          <button class="btn btn-outline-primary w-100 mt-3" type="submit" :disabled="forgotLoading">
-            <span v-if="forgotLoading" class="spinner-border spinner-border-sm me-2" aria-hidden="true"></span>
-            {{ forgotLoading ? 'Sending...' : 'Send temporary password' }}
           </button>
         </form>
@@ -176,5 +144,4 @@
 import { useRoute, useRouter } from 'vue-router'
 import { useAuthStore } from '../stores/auth'
-import { forgotPassword } from '../api/auth'
 
 const auth = useAuthStore()
@@ -186,9 +153,4 @@
 const loading = ref(false)
 const error = ref<string | null>(null)
-const forgotLoading = ref(false)
-const forgotError = ref<string | null>(null)
-const forgotSuccess = ref<string | null>(null)
-const showForgotPassword = ref(false)
-const forgotIdentifier = ref('')
 
 const showPassword = ref(false)
@@ -197,13 +159,4 @@
 function togglePassword() {
   showPassword.value = !showPassword.value
-}
-
-function toggleForgotPassword() {
-  showForgotPassword.value = !showForgotPassword.value
-  forgotError.value = null
-  forgotSuccess.value = null
-  if (showForgotPassword.value && !forgotIdentifier.value) {
-    forgotIdentifier.value = username.value
-  }
 }
 
@@ -222,18 +175,4 @@
   } finally {
     loading.value = false
-  }
-}
-
-async function submitForgotPassword() {
-  forgotError.value = null
-  forgotSuccess.value = null
-  forgotLoading.value = true
-  try {
-    forgotSuccess.value = await forgotPassword({ identifier: forgotIdentifier.value })
-    showForgotPassword.value = false
-  } catch (e) {
-    forgotError.value = e instanceof Error ? e.message : String(e)
-  } finally {
-    forgotLoading.value = false
   }
 }
@@ -337,9 +276,4 @@
 }
 
-.forgot-panel {
-  border-top: 1px solid rgba(31, 41, 55, 0.1);
-  padding-top: 1rem;
-}
-
 /* Input styling */
 .auth-input .input-group-text {
@@ -437,20 +371,4 @@
 }
 
-.link-button {
-  border: 0;
-  background: transparent;
-  padding: 0;
-  text-decoration: none;
-}
-
-.link-button.accent {
-  color: #ff7a18;
-  font-weight: 600;
-}
-
-.link-button.accent:hover {
-  color: #e76610;
-}
-
 /* Respect reduced motion */
 @media (prefers-reduced-motion: reduce) {
Index: petify-frontend/src/views/ProfileView.vue
===================================================================
--- petify-frontend/src/views/ProfileView.vue	(revision ae836471908c8a67e8fc2a25ad6c445b1c867e48)
+++ petify-frontend/src/views/ProfileView.vue	(revision 92e7c7aeb21d4b882e2f8107b1676468ceb14aa7)
@@ -94,72 +94,5 @@
               </button>
             </li>
-            <li class="nav-item" role="presentation">
-              <button
-                class="nav-link"
-                :class="{ active: activeTab === 'account' }"
-                @click="activeTab = 'account'"
-                type="button"
-                role="tab"
-              >
-                <i class="bi bi-shield-lock-fill"></i> Account
-              </button>
-            </li>
           </ul>
-
-          <!-- Account Tab -->
-          <div v-if="activeTab === 'account'" class="tab-content-section">
-            <h2 class="section-title">Account</h2>
-            <form class="password-form" @submit.prevent="submitPasswordChange">
-              <div v-if="passwordSuccess" class="alert alert-success" role="alert">
-                {{ passwordSuccess }}
-              </div>
-              <div v-if="passwordError" class="alert alert-danger" role="alert">
-                {{ passwordError }}
-              </div>
-
-              <div class="mb-3">
-                <label class="form-label" for="current-password">Current password</label>
-                <input
-                  id="current-password"
-                  v-model="passwordForm.currentPassword"
-                  class="form-control"
-                  type="password"
-                  autocomplete="current-password"
-                  required
-                />
-              </div>
-
-              <div class="mb-3">
-                <label class="form-label" for="new-password">New password</label>
-                <input
-                  id="new-password"
-                  v-model="passwordForm.newPassword"
-                  class="form-control"
-                  type="password"
-                  autocomplete="new-password"
-                  minlength="8"
-                  required
-                />
-              </div>
-
-              <div class="mb-4">
-                <label class="form-label" for="confirm-new-password">Confirm new password</label>
-                <input
-                  id="confirm-new-password"
-                  v-model="passwordForm.confirmPassword"
-                  class="form-control"
-                  type="password"
-                  autocomplete="new-password"
-                  minlength="8"
-                  required
-                />
-              </div>
-
-              <button class="btn btn-primary" type="submit" :disabled="isPasswordSubmitting">
-                <span v-if="isPasswordSubmitting" class="spinner-border spinner-border-sm me-2" aria-hidden="true"></span>
-                {{ isPasswordSubmitting ? 'Changing...' : 'Change password' }}
-              </button>
-            </form>
-          </div>
 
           <!-- Listings Tab -->
@@ -813,10 +746,9 @@
   type Review,
 } from '../api/reviews'
-import { changePassword } from '../api/auth'
 
 const router = useRouter()
 const auth = useAuthStore()
 
-const activeTab = ref<'listings' | 'pets' | 'create-listing' | 'favorites' | 'appointments' | 'account'>('listings')
+const activeTab = ref<'listings' | 'pets' | 'create-listing' | 'favorites' | 'appointments'>('listings')
 const listings = ref<any[]>([])
 const pets = ref<any[]>([])
@@ -850,13 +782,4 @@
 const petPhotoFile = ref<File | null>(null)
 const petPhotoPreview = ref('')
-const isPasswordSubmitting = ref(false)
-const passwordError = ref('')
-const passwordSuccess = ref('')
-
-const passwordForm = ref({
-  currentPassword: '',
-  newPassword: '',
-  confirmPassword: '',
-})
 
 const newListing = ref({
@@ -936,41 +859,4 @@
   // Fall back to petNameMap (from pets list)
   return petNameMap.value[animalId] || 'Unknown Pet'
-}
-
-async function submitPasswordChange() {
-  passwordError.value = ''
-  passwordSuccess.value = ''
-
-  if (!auth.user?.userId) {
-    passwordError.value = 'You need to be logged in to change your password.'
-    return
-  }
-  if (passwordForm.value.newPassword.length < 8) {
-    passwordError.value = 'New password must be at least 8 characters long.'
-    return
-  }
-  if (passwordForm.value.newPassword !== passwordForm.value.confirmPassword) {
-    passwordError.value = 'New passwords do not match.'
-    return
-  }
-
-  isPasswordSubmitting.value = true
-  try {
-    await changePassword({
-      userId: auth.user.userId,
-      currentPassword: passwordForm.value.currentPassword,
-      newPassword: passwordForm.value.newPassword,
-    })
-    passwordForm.value = {
-      currentPassword: '',
-      newPassword: '',
-      confirmPassword: '',
-    }
-    passwordSuccess.value = 'Password changed successfully.'
-  } catch (error: any) {
-    passwordError.value = error?.message || 'Failed to change password.'
-  } finally {
-    isPasswordSubmitting.value = false
-  }
 }
 
@@ -1784,8 +1670,4 @@
 }
 
-.password-form {
-  max-width: 520px;
-}
-
 @keyframes fadeIn {
   from {
