2026-02-16 23:01:00 -05:00

420 lines
28 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Book Appointment - Scheduling Platform</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
<script src="https://cdn.tailwindcss.com"></script>
<style>
body { font-family: 'Inter', sans-serif; }
.step-indicator { transition: all 0.3s ease; }
.service-card:hover { transform: translateY(-2px); }
</style>
</head>
<body class="bg-gray-50">
<div class="min-h-screen flex flex-col">
<!-- Header -->
<header class="bg-white border-b border-gray-200">
<div class="max-w-4xl mx-auto px-6 py-6">
<div class="flex items-center justify-between">
<div>
<h1 class="text-2xl font-bold text-gray-900">Sarah's Wellness Studio</h1>
<p class="text-sm text-gray-600 mt-1">Book your appointment</p>
</div>
<div class="w-12 h-12 rounded-full bg-gradient-to-br from-blue-500 to-purple-600"></div>
</div>
</div>
</header>
<!-- Progress Steps -->
<div class="bg-white border-b border-gray-200">
<div class="max-w-4xl mx-auto px-6 py-6">
<div class="flex items-center justify-between">
<!-- Step 1 - Completed -->
<div class="flex items-center flex-1">
<div class="flex items-center">
<div class="w-10 h-10 rounded-full bg-blue-600 flex items-center justify-center">
<svg class="w-6 h-6 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path>
</svg>
</div>
<div class="ml-3">
<div class="text-sm font-medium text-gray-900">Select Service</div>
</div>
</div>
<div class="flex-1 h-1 bg-blue-600 mx-4"></div>
</div>
<!-- Step 2 - Active -->
<div class="flex items-center flex-1">
<div class="flex items-center">
<div class="w-10 h-10 rounded-full bg-blue-600 flex items-center justify-center">
<span class="text-white font-semibold">2</span>
</div>
<div class="ml-3">
<div class="text-sm font-medium text-blue-600">Choose Time</div>
</div>
</div>
<div class="flex-1 h-1 bg-gray-200 mx-4"></div>
</div>
<!-- Step 3 - Pending -->
<div class="flex items-center flex-1">
<div class="flex items-center">
<div class="w-10 h-10 rounded-full bg-gray-200 flex items-center justify-center">
<span class="text-gray-600 font-semibold">3</span>
</div>
<div class="ml-3">
<div class="text-sm font-medium text-gray-600">Your Details</div>
</div>
</div>
<div class="flex-1 h-1 bg-gray-200 mx-4"></div>
</div>
<!-- Step 4 - Pending -->
<div class="flex items-center">
<div class="w-10 h-10 rounded-full bg-gray-200 flex items-center justify-center">
<span class="text-gray-600 font-semibold">4</span>
</div>
<div class="ml-3">
<div class="text-sm font-medium text-gray-600">Payment</div>
</div>
</div>
</div>
</div>
</div>
<!-- Main Content -->
<div class="flex-1 max-w-6xl mx-auto px-6 py-8 w-full">
<div class="grid grid-cols-1 lg:grid-cols-3 gap-8">
<!-- Left Column - Selection Area -->
<div class="lg:col-span-2">
<!-- Selected Service Recap -->
<div class="bg-blue-50 border border-blue-200 rounded-lg p-4 mb-6">
<div class="flex items-center justify-between">
<div class="flex items-center">
<div class="w-12 h-12 rounded-lg bg-blue-600 flex items-center justify-center">
<svg class="w-6 h-6 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4.318 6.318a4.5 4.5 0 000 6.364L12 20.364l7.682-7.682a4.5 4.5 0 00-6.364-6.364L12 7.636l-1.318-1.318a4.5 4.5 0 00-6.364 0z"></path>
</svg>
</div>
<div class="ml-4">
<div class="font-semibold text-gray-900">Personal Training Session</div>
<div class="text-sm text-gray-600 mt-1">60 minutes · $75.00</div>
</div>
</div>
<button class="text-blue-600 hover:text-blue-700 text-sm font-medium">Change</button>
</div>
</div>
<!-- Date Selection -->
<div class="bg-white rounded-lg shadow-sm border border-gray-200 p-6 mb-6">
<h2 class="text-xl font-semibold text-gray-900 mb-4">Select Date</h2>
<!-- Month/Year Header -->
<div class="flex items-center justify-between mb-6">
<button class="p-2 hover:bg-gray-100 rounded-lg">
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 19l-7-7 7-7"></path>
</svg>
</button>
<h3 class="text-lg font-semibold text-gray-900">January 2025</h3>
<button class="p-2 hover:bg-gray-100 rounded-lg">
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path>
</svg>
</button>
</div>
<!-- Calendar Grid -->
<div class="grid grid-cols-7 gap-2">
<div class="text-center text-xs font-medium text-gray-500 py-2">SUN</div>
<div class="text-center text-xs font-medium text-gray-500 py-2">MON</div>
<div class="text-center text-xs font-medium text-gray-500 py-2">TUE</div>
<div class="text-center text-xs font-medium text-gray-500 py-2">WED</div>
<div class="text-center text-xs font-medium text-gray-500 py-2">THU</div>
<div class="text-center text-xs font-medium text-gray-500 py-2">FRI</div>
<div class="text-center text-xs font-medium text-gray-500 py-2">SAT</div>
<!-- Empty cells for alignment -->
<div></div><div></div><div></div>
<!-- Days -->
<div class="aspect-square flex items-center justify-center rounded-lg hover:bg-gray-100 cursor-pointer">
<span class="text-sm text-gray-400">1</span>
</div>
<div class="aspect-square flex items-center justify-center rounded-lg hover:bg-gray-100 cursor-pointer">
<span class="text-sm text-gray-900">2</span>
</div>
<div class="aspect-square flex items-center justify-center rounded-lg hover:bg-gray-100 cursor-pointer">
<span class="text-sm text-gray-900">3</span>
</div>
<div class="aspect-square flex items-center justify-center rounded-lg hover:bg-gray-100 cursor-pointer">
<span class="text-sm text-gray-900">4</span>
</div>
<div class="aspect-square flex items-center justify-center rounded-lg hover:bg-gray-100 cursor-pointer">
<span class="text-sm text-gray-900">5</span>
</div>
<div class="aspect-square flex items-center justify-center rounded-lg hover:bg-gray-100 cursor-pointer">
<span class="text-sm text-gray-900">6</span>
</div>
<div class="aspect-square flex items-center justify-center rounded-lg hover:bg-gray-100 cursor-pointer">
<span class="text-sm text-gray-900">7</span>
</div>
<div class="aspect-square flex items-center justify-center rounded-lg hover:bg-gray-100 cursor-pointer">
<span class="text-sm text-gray-900">8</span>
</div>
<div class="aspect-square flex items-center justify-center rounded-lg hover:bg-gray-100 cursor-pointer">
<span class="text-sm text-gray-900">9</span>
</div>
<div class="aspect-square flex items-center justify-center rounded-lg hover:bg-gray-100 cursor-pointer">
<span class="text-sm text-gray-900">10</span>
</div>
<div class="aspect-square flex items-center justify-center rounded-lg hover:bg-gray-100 cursor-pointer">
<span class="text-sm text-gray-900">11</span>
</div>
<div class="aspect-square flex items-center justify-center rounded-lg hover:bg-gray-100 cursor-pointer">
<span class="text-sm text-gray-900">12</span>
</div>
<div class="aspect-square flex items-center justify-center rounded-lg hover:bg-gray-100 cursor-pointer">
<span class="text-sm text-gray-900">13</span>
</div>
<div class="aspect-square flex items-center justify-center rounded-lg hover:bg-gray-100 cursor-pointer">
<span class="text-sm text-gray-900">14</span>
</div>
<div class="aspect-square flex items-center justify-center rounded-lg bg-blue-600 cursor-pointer">
<span class="text-sm text-white font-semibold">15</span>
</div>
<div class="aspect-square flex items-center justify-center rounded-lg hover:bg-gray-100 cursor-pointer">
<span class="text-sm text-gray-900">16</span>
</div>
<div class="aspect-square flex items-center justify-center rounded-lg hover:bg-gray-100 cursor-pointer">
<span class="text-sm text-gray-900">17</span>
</div>
<div class="aspect-square flex items-center justify-center rounded-lg hover:bg-gray-100 cursor-pointer">
<span class="text-sm text-gray-900">18</span>
</div>
<div class="aspect-square flex items-center justify-center rounded-lg hover:bg-gray-100 cursor-pointer">
<span class="text-sm text-gray-900">19</span>
</div>
<div class="aspect-square flex items-center justify-center rounded-lg hover:bg-gray-100 cursor-pointer">
<span class="text-sm text-gray-900">20</span>
</div>
<div class="aspect-square flex items-center justify-center rounded-lg hover:bg-gray-100 cursor-pointer">
<span class="text-sm text-gray-900">21</span>
</div>
<div class="aspect-square flex items-center justify-center rounded-lg hover:bg-gray-100 cursor-pointer">
<span class="text-sm text-gray-900">22</span>
</div>
<div class="aspect-square flex items-center justify-center rounded-lg hover:bg-gray-100 cursor-pointer">
<span class="text-sm text-gray-900">23</span>
</div>
<div class="aspect-square flex items-center justify-center rounded-lg hover:bg-gray-100 cursor-pointer">
<span class="text-sm text-gray-900">24</span>
</div>
<div class="aspect-square flex items-center justify-center rounded-lg hover:bg-gray-100 cursor-pointer">
<span class="text-sm text-gray-900">25</span>
</div>
<div class="aspect-square flex items-center justify-center rounded-lg bg-gray-100 cursor-not-allowed">
<span class="text-sm text-gray-400">26</span>
</div>
<div class="aspect-square flex items-center justify-center rounded-lg hover:bg-gray-100 cursor-pointer">
<span class="text-sm text-gray-900">27</span>
</div>
<div class="aspect-square flex items-center justify-center rounded-lg hover:bg-gray-100 cursor-pointer">
<span class="text-sm text-gray-900">28</span>
</div>
<div class="aspect-square flex items-center justify-center rounded-lg hover:bg-gray-100 cursor-pointer">
<span class="text-sm text-gray-900">29</span>
</div>
<div class="aspect-square flex items-center justify-center rounded-lg hover:bg-gray-100 cursor-pointer">
<span class="text-sm text-gray-900">30</span>
</div>
<div class="aspect-square flex items-center justify-center rounded-lg hover:bg-gray-100 cursor-pointer">
<span class="text-sm text-gray-900">31</span>
</div>
</div>
</div>
<!-- Time Slots -->
<div class="bg-white rounded-lg shadow-sm border border-gray-200 p-6">
<h2 class="text-xl font-semibold text-gray-900 mb-4">Available Times - Wednesday, Jan 15</h2>
<!-- Morning -->
<div class="mb-6">
<h3 class="text-sm font-medium text-gray-700 mb-3">Morning</h3>
<div class="grid grid-cols-4 gap-3">
<button class="px-4 py-3 text-sm font-medium text-gray-900 border-2 border-gray-200 rounded-lg hover:border-blue-600 hover:bg-blue-50 transition-all">
9:00 AM
</button>
<button class="px-4 py-3 text-sm font-medium text-gray-900 border-2 border-gray-200 rounded-lg hover:border-blue-600 hover:bg-blue-50 transition-all">
9:30 AM
</button>
<button class="px-4 py-3 text-sm font-medium text-white bg-blue-600 border-2 border-blue-600 rounded-lg shadow-sm">
10:00 AM
</button>
<button class="px-4 py-3 text-sm font-medium text-gray-900 border-2 border-gray-200 rounded-lg hover:border-blue-600 hover:bg-blue-50 transition-all">
10:30 AM
</button>
<button class="px-4 py-3 text-sm font-medium text-gray-900 border-2 border-gray-200 rounded-lg hover:border-blue-600 hover:bg-blue-50 transition-all">
11:00 AM
</button>
<button class="px-4 py-3 text-sm font-medium text-gray-900 border-2 border-gray-200 rounded-lg hover:border-blue-600 hover:bg-blue-50 transition-all">
11:30 AM
</button>
</div>
</div>
<!-- Afternoon -->
<div class="mb-6">
<h3 class="text-sm font-medium text-gray-700 mb-3">Afternoon</h3>
<div class="grid grid-cols-4 gap-3">
<button class="px-4 py-3 text-sm font-medium text-gray-400 bg-gray-100 border-2 border-gray-100 rounded-lg cursor-not-allowed">
12:00 PM
</button>
<button class="px-4 py-3 text-sm font-medium text-gray-900 border-2 border-gray-200 rounded-lg hover:border-blue-600 hover:bg-blue-50 transition-all">
12:30 PM
</button>
<button class="px-4 py-3 text-sm font-medium text-gray-900 border-2 border-gray-200 rounded-lg hover:border-blue-600 hover:bg-blue-50 transition-all">
1:00 PM
</button>
<button class="px-4 py-3 text-sm font-medium text-gray-900 border-2 border-gray-200 rounded-lg hover:border-blue-600 hover:bg-blue-50 transition-all">
1:30 PM
</button>
<button class="px-4 py-3 text-sm font-medium text-gray-900 border-2 border-gray-200 rounded-lg hover:border-blue-600 hover:bg-blue-50 transition-all">
2:00 PM
</button>
<button class="px-4 py-3 text-sm font-medium text-gray-400 bg-gray-100 border-2 border-gray-100 rounded-lg cursor-not-allowed">
2:30 PM
</button>
<button class="px-4 py-3 text-sm font-medium text-gray-900 border-2 border-gray-200 rounded-lg hover:border-blue-600 hover:bg-blue-50 transition-all">
3:00 PM
</button>
<button class="px-4 py-3 text-sm font-medium text-gray-900 border-2 border-gray-200 rounded-lg hover:border-blue-600 hover:bg-blue-50 transition-all">
3:30 PM
</button>
</div>
</div>
<!-- Evening -->
<div>
<h3 class="text-sm font-medium text-gray-700 mb-3">Evening</h3>
<div class="grid grid-cols-4 gap-3">
<button class="px-4 py-3 text-sm font-medium text-gray-900 border-2 border-gray-200 rounded-lg hover:border-blue-600 hover:bg-blue-50 transition-all">
4:00 PM
</button>
<button class="px-4 py-3 text-sm font-medium text-gray-900 border-2 border-gray-200 rounded-lg hover:border-blue-600 hover:bg-blue-50 transition-all">
4:30 PM
</button>
<button class="px-4 py-3 text-sm font-medium text-gray-900 border-2 border-gray-200 rounded-lg hover:border-blue-600 hover:bg-blue-50 transition-all">
5:00 PM
</button>
<button class="px-4 py-3 text-sm font-medium text-gray-400 bg-gray-100 border-2 border-gray-100 rounded-lg cursor-not-allowed">
5:30 PM
</button>
</div>
</div>
</div>
</div>
<!-- Right Column - Booking Summary -->
<div class="lg:col-span-1">
<div class="bg-white rounded-lg shadow-sm border border-gray-200 p-6 sticky top-6">
<h3 class="text-lg font-semibold text-gray-900 mb-4">Booking Summary</h3>
<!-- Service Details -->
<div class="mb-6 pb-6 border-b border-gray-200">
<div class="flex items-start mb-4">
<svg class="w-5 h-5 text-gray-400 mr-3 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path>
</svg>
<div>
<div class="text-sm font-medium text-gray-900">Personal Training Session</div>
<div class="text-xs text-gray-600 mt-1">60 minutes</div>
</div>
</div>
<div class="flex items-start mb-4">
<svg class="w-5 h-5 text-gray-400 mr-3 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"></path>
</svg>
<div>
<div class="text-sm font-medium text-gray-900">Wednesday, Jan 15</div>
<div class="text-xs text-gray-600 mt-1">2025</div>
</div>
</div>
<div class="flex items-start">
<svg class="w-5 h-5 text-gray-400 mr-3 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"></path>
</svg>
<div>
<div class="text-sm font-medium text-gray-900">10:00 AM - 11:00 AM</div>
<div class="text-xs text-gray-600 mt-1">EST</div>
</div>
</div>
</div>
<!-- Price Breakdown -->
<div class="mb-6 pb-6 border-b border-gray-200">
<div class="flex items-center justify-between mb-3">
<span class="text-sm text-gray-600">Service Fee</span>
<span class="text-sm font-medium text-gray-900">$75.00</span>
</div>
<div class="flex items-center justify-between mb-3">
<span class="text-sm text-gray-600">Processing Fee</span>
<span class="text-sm font-medium text-gray-900">$2.50</span>
</div>
<div class="flex items-center justify-between pt-3 border-t border-gray-200">
<span class="text-base font-semibold text-gray-900">Total</span>
<span class="text-xl font-bold text-gray-900">$77.50</span>
</div>
</div>
<!-- Cancellation Policy -->
<div class="mb-6">
<div class="bg-amber-50 border border-amber-200 rounded-lg p-3">
<div class="flex">
<svg class="w-5 h-5 text-amber-600 mr-2 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"></path>
</svg>
<div>
<div class="text-xs font-medium text-amber-900">Cancellation Policy</div>
<div class="text-xs text-amber-700 mt-1">Free cancellation up to 24 hours before appointment</div>
</div>
</div>
</div>
</div>
<!-- CTA Button -->
<button class="w-full px-6 py-3 bg-blue-600 text-white font-semibold rounded-lg hover:bg-blue-700 shadow-sm transition-all">
Continue to Details
</button>
<div class="mt-4 text-center">
<button class="text-sm text-gray-600 hover:text-gray-900">← Back to Services</button>
</div>
</div>
</div>
</div>
</div>
<!-- Footer -->
<footer class="bg-white border-t border-gray-200 mt-auto">
<div class="max-w-4xl mx-auto px-6 py-6">
<div class="flex items-center justify-between text-sm text-gray-600">
<div>© 2025 Sarah's Wellness Studio</div>
<div class="flex space-x-6">
<a href="#" class="hover:text-gray-900">Privacy Policy</a>
<a href="#" class="hover:text-gray-900">Terms of Service</a>
<a href="#" class="hover:text-gray-900">Contact</a>
</div>
</div>
</div>
</footer>
</div>
</body>
</html>