(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,74355,e=>{"use strict";var a=e.i(43476),r=e.i(37902),s=e.i(71645),t=e.i(84515),o=e.i(57951),i=e.i(18566),n=e.i(57688);function l(e,a){return(e.effectiveBasePrice??e.base_price)+Math.max(0,a-2)*(e.extra_guest_price??0)}function d(e,a,r,s){for(let t=0;te.id===i.id).length<2))for(let e=2;e<=Math.min(i.max_guests,a-2);e++){let t=a-e;if(t>=2&&t<=n.max_guests){let a=[{roomId:i.id,roomName:i.name,guests:e,pricePerNight:l(i,e),maxGuests:i.max_guests},{roomId:n.id,roomName:n.name,guests:t,pricePerNight:l(n,t),maxGuests:n.max_guests}],o=a.map(e=>`${e.roomId}-${e.guests}`).sort().join("|");s.has(o)||(s.add(o),r.push(a))}}}if(e.length>=3&&a>=6)for(let t=0;t=2&&u<=n.max_guests&&h>=2&&h<=d.max_guests&&m>=2&&m<=c.max_guests){let e=[{roomId:n.id,roomName:n.name,guests:u,pricePerNight:l(n,u),maxGuests:n.max_guests},{roomId:d.id,roomName:d.name,guests:h,pricePerNight:l(d,h),maxGuests:d.max_guests},{roomId:c.id,roomName:c.name,guests:m,pricePerNight:l(c,m),maxGuests:c.max_guests}],a=e.map(e=>`${e.roomId}-${e.guests}`).sort().join("|");s.has(a)||(s.add(a),r.push(e))}}}function c(){let{user:e}=(0,o.useAuth)(),c=(0,i.useRouter)(),[m,f]=(0,s.useState)([]),[u,h]=(0,s.useState)([]),[p,g]=(0,s.useState)([]),[x,b]=(0,s.useState)([]),[j,k]=(0,s.useState)([]),[y,N]=(0,s.useState)(!1),[v,w]=(0,s.useState)(""),[_,I]=(0,s.useState)(!1),[z,C]=(0,s.useState)(!1),P=(0,s.useRef)(null),S=(0,s.useRef)(null),[O,$]=(0,s.useState)({name:"",email:"",phone:"",checkIn:"",checkOut:"",guests:1}),[D,E]=(0,s.useState)({name:"",email:"",phone:"",checkIn:"",checkOut:"",guests:""}),T=(0,s.useMemo)(()=>new Date().toISOString().split("T")[0],[]),R=(0,s.useMemo)(()=>{let e=new Date;return e.setDate(e.getDate()+1),e.toISOString().split("T")[0]},[]),Y=(0,s.useCallback)(()=>{P.current&&P.current.disconnect(),P.current=new IntersectionObserver(e=>{e.forEach(e=>{e.isIntersecting&&(e.target.style.setProperty("--revealed","1"),e.target.classList.add("in-view"),P.current?.unobserve(e.target))})},{threshold:.08,rootMargin:"0px 0px -40px 0px"}),document.querySelectorAll(".reveal").forEach(e=>P.current?.observe(e))},[]);(0,s.useEffect)(()=>{let e,a;return e=requestAnimationFrame(()=>{a=setTimeout(Y,50)}),()=>{cancelAnimationFrame(e),clearTimeout(a)}},[u,x,Y]),(0,s.useEffect)(()=>{if(!window.Razorpay){let e=document.createElement("script");e.src="https://checkout.razorpay.com/v1/checkout.js",e.async=!0,document.body.appendChild(e)}},[]),(0,s.useEffect)(()=>{let e=!0;return t.supabase.from("rooms").select("id, name, base_price, max_guests, extra_guest_price, pricing_tiers, description, images, amenities, is_hall, room_type").then(({data:a})=>{a&&e&&f(a)}),()=>{e=!1}},[]),(0,s.useEffect)(()=>{let e=!0;return(async()=>{try{var a;let r,[s,o]=await Promise.all([t.supabase.from("bookings").select("check_in, check_out").eq("status","confirmed"),t.supabase.from("blocked_dates").select("date")]);if(!e)return;let i=new Set;s.data&&(a=s.data,r=[],a.forEach(e=>{let a=new Date(e.check_in),s=new Date(e.check_out);for(;ai.add(e)),o.data&&o.data.forEach(e=>i.add(e.date)),k(Array.from(i))}catch(e){}})(),()=>{e=!1}},[]),(0,s.useEffect)(()=>()=>{P.current&&P.current.disconnect()},[]);let A=(0,s.useMemo)(()=>O.checkIn&&O.checkOut?Math.ceil((new Date(O.checkOut).getTime()-new Date(O.checkIn).getTime())/864e5):0,[O.checkIn,O.checkOut]);(0,s.useMemo)(()=>p.reduce((e,a)=>e+a.pricePerNight*A,0),[p,A]);let B=e=>e.trim()?e.trim().length<2?"Name must be at least 2 characters":/^[a-zA-Z\s]+$/.test(e)?"":"Name should only contain letters and spaces":"Full name is required",M=e=>e.trim()?/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)?"":"Please enter a valid email address":"Email is required",q=e=>{let a=e.replace(/\D/g,"");return e.trim()?10!==a.length?"Phone number must be exactly 10 digits":/^[6-9]/.test(a)?"":"Phone number must start with 6, 7, 8, or 9":"Phone number is required"},G=e=>e?ee?a?e<=a?"Check-out must be after check-in date":"":"Please select check-in date first":"Check-out date is required",F=e=>!e||e<1?"At least 1 guest is required":e>50?"Maximum 50 guests allowed":"",U=()=>{let e={name:B(O.name),email:M(O.email),phone:q(O.phone),checkIn:G(O.checkIn),checkOut:L(O.checkOut,O.checkIn),guests:F(O.guests)};return E(e),!Object.values(e).some(e=>""!==e)},H=(0,s.useCallback)(async()=>{if(!U())return void w("Please fix the errors before checking availability");w(""),h([]),g([]),b([]),N(!0);try{let{data:e}=await t.supabase.from("bookings").select("room_id").eq("status","confirmed").lt("check_in",O.checkOut).gt("check_out",O.checkIn),a=e?.map(e=>e.room_id)||[],r=m.filter(e=>!a.includes(e.id));if(0===r.length)return void w("No rooms available for selected dates.");let{data:s}=await t.supabase.from("room_rate_overrides").select("room_id, price").in("room_id",r.map(e=>e.id)).gte("date",O.checkIn).lt("date",O.checkOut),o={};(s||[]).forEach(e=>{o[e.room_id]||(o[e.room_id]={sum:0,count:0}),o[e.room_id].sum+=e.price,o[e.room_id].count+=1});let i=r.map(e=>{let a=o[e.id];return a?{...e,effectiveBasePrice:Math.round(a.sum/a.count)}:e});h(i);let n=function(e,a){let r=[],s=new Set,t=e.filter(e=>!e.is_hall&&"hall"!==e.room_type),o=e.filter(e=>e.is_hall||"hall"===e.room_type),i=t.reduce((e,a)=>e+a.max_guests,0);if(a>i&&o.length>0){for(let e of o){let s=t.map(e=>({roomId:e.id,roomName:e.name,guests:e.max_guests,pricePerNight:l(e,e.max_guests),maxGuests:e.max_guests})),o=a-i;o>0&&o<=e.max_guests&&(s.push({roomId:e.id,roomName:e.name,guests:o,pricePerNight:l(e,o),maxGuests:e.max_guests}),r.push(s))}for(let e of o)e.max_guests>=a&&r.push([{roomId:e.id,roomName:e.name,guests:a,pricePerNight:l(e,a),maxGuests:e.max_guests}]);return r.sort((e,a)=>{let r=e.length===t.length+1,s=a.length===t.length+1;return r&&!s?-1:!r&&s?1:e.reduce((e,a)=>e+a.pricePerNight,0)-a.reduce((e,a)=>e+a.pricePerNight,0)})}if(a>=11){for(let e of o)e.max_guests>=a&&r.push([{roomId:e.id,roomName:e.name,guests:a,pricePerNight:l(e,a),maxGuests:e.max_guests}]);return d(t,a,r,s),r.sort((a,r)=>{let s=1===a.length&&(e.find(e=>e.id===a[0].roomId)?.is_hall||e.find(e=>e.id===a[0].roomId)?.room_type==="hall"),t=1===r.length&&(e.find(e=>e.id===r[0].roomId)?.is_hall||e.find(e=>e.id===r[0].roomId)?.room_type==="hall");return s&&!t?-1:!s&&t?1:a.reduce((e,a)=>e+a.pricePerNight,0)-r.reduce((e,a)=>e+a.pricePerNight,0)}).slice(0,6)}for(let e of t)e.max_guests>=a&&r.push([{roomId:e.id,roomName:e.name,guests:a,pricePerNight:l(e,a),maxGuests:e.max_guests}]);return a<4?r.sort((e,a)=>e.reduce((e,a)=>e+a.pricePerNight,0)-a.reduce((e,a)=>e+a.pricePerNight,0)):(d(t,a,r,s),r.sort((e,a)=>e.reduce((e,a)=>e+a.pricePerNight,0)-a.reduce((e,a)=>e+a.pricePerNight,0)).slice(0,6))}(i,O.guests);b(n),0===n.length?w(`Sorry, we cannot accommodate ${O.guests} guests with available rooms.`):w(`${n.length} option${n.length>1?"s":""} available for ${O.guests} guest${O.guests>1?"s":""}!`)}catch(e){w("Error checking availability. Please try again.")}finally{N(!1)}},[O,j,m,U]),W=(0,s.useCallback)(a=>{(g(a),U())?e?K(a):C(!0):alert("Please fill all required fields correctly")},[O,e]),K=(0,s.useCallback)(async a=>{let r=a.reduce((e,a)=>e+a.pricePerNight*A,0),s=crypto.randomUUID();try{let o=a.map(r=>t.supabase.from("bookings").insert({user_id:e.id,room_id:r.roomId,customer_name:O.name.trim(),email:O.email.trim(),phone:O.phone.replace(/\D/g,""),check_in:O.checkIn,check_out:O.checkOut,guests:r.guests,total_amount:r.pricePerNight*A,advance_amount:r.pricePerNight*A,status:"pending",payment_status:"pending",is_multi_room:a.length>1,booking_group_id:s,room_ids:a.map(e=>e.roomId),rooms_count:a.length}).select().single()),i=(await Promise.all(o)).map(e=>e.data.id),n=await fetch("/api/create-order",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({amount:r})}),l=await n.json(),d={key:"rzp_live_SNV637sPC5zmKb",amount:l.amount,currency:"INR",name:"Sukhakarta Holiday Home",description:`Booking ${a.length} room${a.length>1?"s":""} - ${A} night${A>1?"s":""}`,order_id:l.id,notes:{booking_ids:i.join(","),booking_group_id:s,room_count:a.length},handler:async function(e){await Promise.all(i.map(a=>t.supabase.from("bookings").update({status:"confirmed",payment_status:"completed",payment_id:e.razorpay_payment_id}).eq("id",a)));try{await fetch("/api/send-notifications",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({booking_ids:i,booking_group_id:s,customer_name:O.name.trim(),customer_email:O.email.trim(),customer_phone:O.phone.replace(/\D/g,""),rooms:a,check_in:O.checkIn,check_out:O.checkOut,total_guests:O.guests,total_amount:r})})}catch(e){}I(!0),setTimeout(()=>c.push("/user/dashboard"),3e3)},prefill:{name:O.name,email:O.email,contact:O.phone.replace(/\D/g,"")},theme:{color:"#f97316"}};new window.Razorpay(d).open()}catch(e){alert("Failed to initiate payment. Please try again.")}},[O,e,A,c]),V=(0,s.useCallback)(e=>{let a=e.target.value;$(e=>({...e,name:a})),E(e=>({...e,name:B(a)}))},[]),J=(0,s.useCallback)(e=>{let a=e.target.value;$(e=>({...e,email:a})),E(e=>({...e,email:M(a)}))},[]),Z=(0,s.useCallback)(e=>{let a=e.target.value.replace(/\D/g,"").slice(0,10);$(e=>({...e,phone:a})),E(e=>({...e,phone:q(a)}))},[]),Q=(0,s.useCallback)(e=>{let a=e.target.value;$(e=>({...e,checkIn:a})),E(e=>({...e,checkIn:G(a),checkOut:L(e.checkOut,a)})),h([]),g([]),b([]),a&&setTimeout(()=>{S.current?.focus(),S.current?.showPicker?.()},150)},[O.checkOut,j,T]),X=(0,s.useCallback)(e=>{let a=e.target.value;$(e=>{let r={...e,checkOut:a};return E(e=>({...e,checkOut:L(a,r.checkIn)})),r}),h([]),g([]),b([])},[]),ee=(0,s.useCallback)(e=>{let a=Number(e.target.value);$(e=>({...e,guests:a})),E(e=>({...e,guests:F(a)})),h([]),g([]),b([])},[]);return(0,a.jsxs)("div",{className:"jsx-891729685f67edd5 booking-page",children:[(0,a.jsxs)("div",{"aria-hidden":"true",className:"jsx-891729685f67edd5 bg-mesh",children:[(0,a.jsx)("div",{className:"jsx-891729685f67edd5 mesh-layer-1"}),(0,a.jsx)("div",{className:"jsx-891729685f67edd5 mesh-layer-2"}),(0,a.jsx)("div",{className:"jsx-891729685f67edd5 grid-overlay"})]}),(0,a.jsx)("section",{className:"jsx-891729685f67edd5 hero",children:(0,a.jsxs)("div",{className:"jsx-891729685f67edd5 hero-content",children:[(0,a.jsx)("div",{className:"jsx-891729685f67edd5 hero-badge",children:"✦ Reserve Your Stay ✦"}),(0,a.jsx)("h1",{className:"jsx-891729685f67edd5 hero-title",children:"Book Your Stay"}),(0,a.jsx)("p",{className:"jsx-891729685f67edd5 hero-subtitle",children:"Create unforgettable memories at Sukhakarta Holiday Home"}),!e&&(0,a.jsx)("div",{className:"jsx-891729685f67edd5 login-notice reveal",children:(0,a.jsxs)("p",{className:"jsx-891729685f67edd5",children:["Already have an account?"," ",(0,a.jsx)("a",{href:"/user/login",className:"jsx-891729685f67edd5",children:"Login"})," or"," ",(0,a.jsx)("a",{href:"/user/register",className:"jsx-891729685f67edd5",children:"Register"})]})})]})}),(0,a.jsxs)("div",{className:"jsx-891729685f67edd5 container",children:[(0,a.jsxs)("div",{style:{"--delay":"0ms"},className:"jsx-891729685f67edd5 trust-bar reveal",children:[(0,a.jsxs)("div",{className:"jsx-891729685f67edd5 trust-item",children:[(0,a.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:"jsx-891729685f67edd5",children:(0,a.jsx)("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z",className:"jsx-891729685f67edd5"})}),(0,a.jsx)("span",{className:"jsx-891729685f67edd5",children:"SSL Secured"})]}),(0,a.jsxs)("div",{className:"jsx-891729685f67edd5 trust-item",children:[(0,a.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:"jsx-891729685f67edd5",children:[(0,a.jsx)("rect",{x:"1",y:"4",width:"22",height:"16",rx:"2",className:"jsx-891729685f67edd5"}),(0,a.jsx)("line",{x1:"1",y1:"10",x2:"23",y2:"10",className:"jsx-891729685f67edd5"})]}),(0,a.jsx)("span",{className:"jsx-891729685f67edd5",children:"UPI · Cards · Wallets"})]}),(0,a.jsxs)("div",{className:"jsx-891729685f67edd5 trust-item",children:[(0,a.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor",stroke:"none",className:"jsx-891729685f67edd5",children:(0,a.jsx)("path",{d:"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z",className:"jsx-891729685f67edd5"})}),(0,a.jsx)("a",{href:"https://wa.me/918087541496",target:"_blank",rel:"noopener noreferrer",className:"jsx-891729685f67edd5",children:"WhatsApp Support 24/7"})]}),(0,a.jsxs)("div",{className:"jsx-891729685f67edd5 trust-item",children:[(0,a.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:"jsx-891729685f67edd5",children:[(0,a.jsx)("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z",className:"jsx-891729685f67edd5"}),(0,a.jsx)("polyline",{points:"9 12 11 14 15 10",className:"jsx-891729685f67edd5"})]}),(0,a.jsx)("span",{className:"jsx-891729685f67edd5",children:"Instant Confirmation"})]})]}),(0,a.jsxs)("div",{className:"jsx-891729685f67edd5 booking-grid",children:[(0,a.jsxs)("div",{className:"jsx-891729685f67edd5 form-section reveal",children:[(0,a.jsx)("h2",{className:"jsx-891729685f67edd5",children:"Reservation Details"}),(0,a.jsx)("p",{className:"jsx-891729685f67edd5 form-subtitle",children:"All fields are mandatory"}),(0,a.jsxs)("div",{className:"jsx-891729685f67edd5 form-group",children:[(0,a.jsx)("label",{className:"jsx-891729685f67edd5",children:"Full Name *"}),(0,a.jsx)("input",{placeholder:"Your full name",value:O.name,onChange:V,onBlur:()=>E(e=>({...e,name:B(O.name)})),className:`jsx-891729685f67edd5 input ${D.name?"error":""}`}),D.name&&(0,a.jsx)("span",{className:"jsx-891729685f67edd5 error-text",children:D.name})]}),(0,a.jsxs)("div",{className:"jsx-891729685f67edd5 form-row",children:[(0,a.jsxs)("div",{className:"jsx-891729685f67edd5 form-group",children:[(0,a.jsx)("label",{className:"jsx-891729685f67edd5",children:"Email *"}),(0,a.jsx)("input",{type:"email",placeholder:"Enter Your Email",value:O.email,onChange:J,onBlur:()=>E(e=>({...e,email:M(O.email)})),className:`jsx-891729685f67edd5 input ${D.email?"error":""}`}),D.email&&(0,a.jsx)("span",{className:"jsx-891729685f67edd5 error-text",children:D.email})]}),(0,a.jsxs)("div",{className:"jsx-891729685f67edd5 form-group",children:[(0,a.jsx)("label",{className:"jsx-891729685f67edd5",children:"Phone *"}),(0,a.jsx)("input",{type:"tel",placeholder:"Your 10-digit number",value:O.phone,onChange:Z,maxLength:10,onBlur:()=>E(e=>({...e,phone:q(O.phone)})),className:`jsx-891729685f67edd5 input ${D.phone?"error":""}`}),D.phone&&(0,a.jsx)("span",{className:"jsx-891729685f67edd5 error-text",children:D.phone})]})]}),(0,a.jsxs)("div",{className:"jsx-891729685f67edd5 form-row",children:[(0,a.jsxs)("div",{className:"jsx-891729685f67edd5 form-group",children:[(0,a.jsx)("label",{className:"jsx-891729685f67edd5",children:"Check-in Date *"}),(0,a.jsx)("input",{type:"date",value:O.checkIn,onChange:Q,min:T,className:`jsx-891729685f67edd5 input ${D.checkIn?"error":""}`}),D.checkIn&&(0,a.jsx)("span",{className:"jsx-891729685f67edd5 error-text",children:D.checkIn})]}),(0,a.jsxs)("div",{className:"jsx-891729685f67edd5 form-group",children:[(0,a.jsx)("label",{className:"jsx-891729685f67edd5",children:"Check-out Date *"}),(0,a.jsx)("input",{ref:S,type:"date",value:O.checkOut,onChange:X,min:O.checkIn||R,disabled:!O.checkIn,className:`jsx-891729685f67edd5 input ${D.checkOut?"error":""}`}),D.checkOut&&(0,a.jsx)("span",{className:"jsx-891729685f67edd5 error-text",children:D.checkOut})]})]}),(0,a.jsxs)("div",{className:"jsx-891729685f67edd5 form-group",children:[(0,a.jsx)("label",{className:"jsx-891729685f67edd5",children:"Number of Guests *"}),(0,a.jsx)("input",{type:"number",min:1,max:50,value:O.guests,onChange:ee,className:`jsx-891729685f67edd5 input ${D.guests?"error":""}`}),D.guests&&(0,a.jsx)("span",{className:"jsx-891729685f67edd5 error-text",children:D.guests})]}),O.guests>0&&m.length>0&&(0,a.jsxs)("div",{className:"jsx-891729685f67edd5 price-preview-section",children:[(0,a.jsx)("p",{className:"jsx-891729685f67edd5 price-preview-label",children:"Estimated starting price"}),(0,a.jsx)("div",{className:"jsx-891729685f67edd5 price-preview-range",children:(()=>{let e=m.filter(e=>!e.is_hall&&"hall"!==e.room_type);if(!e.length)return null;let r=Math.min(...e.map(e=>l(e,O.guests)));return(0,a.jsxs)("span",{className:"jsx-891729685f67edd5 price-from",children:["From ",(0,a.jsxs)("strong",{className:"jsx-891729685f67edd5",children:["₹",r.toLocaleString()]}),"/night",O.checkIn&&O.checkOut&&A>0&&(0,a.jsxs)("span",{className:"jsx-891729685f67edd5 price-nights",children:[" · ₹",(r*A).toLocaleString()," for ",A," night",A>1?"s":""]})]})})()})]}),(0,a.jsxs)("div",{className:"jsx-891729685f67edd5 cancel-hint",children:[(0,a.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:"jsx-891729685f67edd5",children:[(0,a.jsx)("circle",{cx:"12",cy:"12",r:"10",className:"jsx-891729685f67edd5"}),(0,a.jsx)("line",{x1:"12",y1:"8",x2:"12",y2:"12",className:"jsx-891729685f67edd5"}),(0,a.jsx)("line",{x1:"12",y1:"16",x2:"12.01",y2:"16",className:"jsx-891729685f67edd5"})]}),"Free cancellation 7+ days before check-in · 50% refund 3–6 days · See"," ",(0,a.jsx)("a",{href:"/cancellation-policy",target:"_blank",rel:"noopener noreferrer",className:"jsx-891729685f67edd5",children:"cancellation policy"})]}),(0,a.jsx)("button",{onClick:H,disabled:y,className:"jsx-891729685f67edd5 check-btn",children:y?(0,a.jsx)("span",{className:"jsx-891729685f67edd5 loader",children:"Checking Availability..."}):"Check Availability"}),v&&(0,a.jsx)("div",{className:`jsx-891729685f67edd5 message ${x.length>0?"success":"error-msg"}`,children:v})]}),(0,a.jsxs)("div",{style:{"--delay":"120ms"},className:"jsx-891729685f67edd5 summary-section reveal",children:[(0,a.jsx)("h2",{className:"jsx-891729685f67edd5",children:"Available Options"}),0===x.length&&!v&&(0,a.jsx)("div",{className:"jsx-891729685f67edd5 empty-state",children:(0,a.jsx)("p",{className:"jsx-891729685f67edd5",children:'Fill in the details and click "Check Availability" to see available rooms'})}),x.length>0&&(0,a.jsx)("div",{className:"jsx-891729685f67edd5 suggestions-list",children:x.map((e,r)=>{let s=e.reduce((e,a)=>e+a.pricePerNight,0)*A,t=p.length>0&&p.every(a=>e.some(e=>e.roomId===a.roomId&&e.guests===a.guests)),o=m.filter(e=>!e.is_hall&&"hall"!==e.room_type).length,i=e.some(e=>{let a=m.find(a=>a.id===e.roomId);return a?.is_hall||a?.room_type==="hall"}),l=e.length===o+1&&i;return(0,a.jsxs)("div",{className:`jsx-891729685f67edd5 combo-card ${t?"selected":""}`,children:[(0,a.jsxs)("div",{className:"jsx-891729685f67edd5 combo-header",children:[(0,a.jsxs)("div",{className:"jsx-891729685f67edd5 combo-title-row",children:[(0,a.jsxs)("strong",{className:"jsx-891729685f67edd5",children:["Option ",r+1]}),l&&(0,a.jsx)("span",{className:"jsx-891729685f67edd5 combo-badge-special",children:"Complete Floor"}),!l&&e.length>1&&(0,a.jsxs)("span",{className:"jsx-891729685f67edd5 combo-badge",children:[e.length," Rooms"]})]}),(0,a.jsxs)("div",{className:"jsx-891729685f67edd5 combo-price-col",children:[(0,a.jsxs)("span",{className:"jsx-891729685f67edd5 combo-price-total",children:["₹",s.toLocaleString()]}),(0,a.jsxs)("span",{className:"jsx-891729685f67edd5 combo-price-label",children:["for ",A," night",A>1?"s":""]})]})]}),(0,a.jsx)("div",{className:"jsx-891729685f67edd5 combo-breakdown",children:e.map((e,r)=>{let s=m.find(a=>a.id===e.roomId),t=s?.is_hall||s?.room_type==="hall",o=s?.images?.[0]||"/placeholder-room.jpg",i=u.find(a=>a.id===e.roomId),l=i?.effectiveBasePrice!==void 0;return(0,a.jsxs)("div",{className:"jsx-891729685f67edd5 allocation-row",children:[(0,a.jsxs)("div",{className:"jsx-891729685f67edd5 allocation-room-preview",children:[(0,a.jsxs)("div",{className:"jsx-891729685f67edd5 allocation-img-wrap",children:[(0,a.jsx)("div",{style:{backgroundImage:`url(${o})`},"aria-hidden":"true",className:"jsx-891729685f67edd5 allocation-img-bg"}),(0,a.jsx)(n.default,{src:o,alt:e.roomName,fill:!0,sizes:"100px",style:{objectFit:"contain",zIndex:1}})]}),(0,a.jsxs)("div",{className:"jsx-891729685f67edd5 allocation-info",children:[(0,a.jsxs)("span",{className:"jsx-891729685f67edd5 allocation-name",children:[e.roomName,t&&(0,a.jsx)("span",{className:"jsx-891729685f67edd5 hall-badge",children:"Hall"}),l&&(0,a.jsx)("span",{className:"jsx-891729685f67edd5 override-badge",children:"Special Rate"})]}),(0,a.jsxs)("span",{className:"jsx-891729685f67edd5 allocation-guests",children:[e.guests," guest",e.guests>1?"s":""]})]})]}),(0,a.jsxs)("span",{className:"jsx-891729685f67edd5 allocation-price",children:["₹",e.pricePerNight.toLocaleString(),"/night"]})]},r)})}),l&&(0,a.jsx)("div",{className:"jsx-891729685f67edd5 combo-highlight",children:"Entire Floor booked for your exclusive use"}),(0,a.jsxs)("button",{onClick:()=>W(e),className:"jsx-891729685f67edd5 select-combo-btn",children:["Select & Pay ₹",s.toLocaleString()]})]},r)})})]})]})]}),z&&(0,a.jsx)("div",{onClick:()=>C(!1),className:"jsx-891729685f67edd5 modal",children:(0,a.jsxs)("div",{onClick:e=>e.stopPropagation(),className:"jsx-891729685f67edd5 modal-content",children:[(0,a.jsx)("h3",{className:"jsx-891729685f67edd5",children:"Login Required"}),(0,a.jsx)("p",{className:"jsx-891729685f67edd5",children:"Please login or create an account to complete your booking"}),(0,a.jsxs)("div",{className:"jsx-891729685f67edd5 modal-actions",children:[(0,a.jsx)("button",{onClick:()=>c.push("/user/login"),className:"jsx-891729685f67edd5 action-btn primary",children:"Login"}),(0,a.jsx)("button",{onClick:()=>c.push("/user/register"),className:"jsx-891729685f67edd5 action-btn secondary",children:"Register"}),(0,a.jsx)("button",{onClick:()=>C(!1),className:"jsx-891729685f67edd5 action-btn tertiary",children:"Cancel"})]})]})}),_&&(0,a.jsx)("div",{className:"jsx-891729685f67edd5 modal",children:(0,a.jsxs)("div",{className:"jsx-891729685f67edd5 modal-content",children:[(0,a.jsx)("div",{className:"jsx-891729685f67edd5 success-icon",children:"✓"}),(0,a.jsx)("h3",{className:"jsx-891729685f67edd5",children:"Booking Confirmed!"}),(0,a.jsx)("p",{className:"jsx-891729685f67edd5",children:"Thank you for choosing Sukhakarta Holiday Home"}),p.length>1&&(0,a.jsxs)("p",{className:"jsx-891729685f67edd5 modal-subtext",children:["You've booked ",p.length," rooms for your stay"]}),(0,a.jsx)("p",{className:"jsx-891729685f67edd5 modal-subtext",children:"Redirecting to your dashboard..."})]})}),(0,a.jsx)(r.default,{id:"891729685f67edd5",children:".booking-page{color:#f8fafc;min-height:100vh;font-family:var(--font-outfit),system-ui,sans-serif;background:#04070f;position:relative;overflow-x:hidden}.bg-mesh{z-index:0;pointer-events:none;contain:strict;position:fixed;inset:0}.mesh-layer-1{background:radial-gradient(80% 60% at 100% 0,#f973162e 0%,#0000 60%),radial-gradient(70% 50% at 0 100%,#0ea5e926 0%,#0000 60%),linear-gradient(160deg,#04070f 0%,#0b1220 50%,#04070f 100%);position:absolute;inset:0}.mesh-layer-2{will-change:opacity;background:radial-gradient(40% 40%,#f973160d 0%,#0000 70%);animation:8s ease-in-out infinite alternate mesh-pulse;position:absolute;inset:0}@keyframes mesh-pulse{0%{opacity:.4}to{opacity:1}}.grid-overlay{background-image:linear-gradient(#f973160a 1px,#0000 1px),linear-gradient(90deg,#f973160a 1px,#0000 1px);background-size:60px 60px;position:absolute;inset:0}.reveal{opacity:0;transition:opacity .65s cubic-bezier(.22,1,.36,1)var(--delay,0s),transform .65s cubic-bezier(.22,1,.36,1)var(--delay,0s);will-change:opacity,transform;contain:layout style;transform:translateY(32px)}.reveal.in-view{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;contain:none;transition:none;transform:none}.mesh-layer-2{animation:none}}.hero{z-index:1;text-align:center;padding:9rem 1.5rem 4rem;position:relative}.hero-badge{letter-spacing:.25em;text-transform:uppercase;color:#f97316;background:#f9731614;border:1px solid #f9731666;border-radius:100px;margin-bottom:2rem;padding:.5rem 1.25rem;font-size:.75rem;font-weight:500;animation:.7s ease-out both fadeInDown;display:inline-block}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}.hero-title{font-family:var(--font-cormorant),Georgia,serif;letter-spacing:-.02em;-webkit-text-fill-color:transparent;background:linear-gradient(140deg,#fff 0%,#f4d5b8 50%,#f97316 100%);-webkit-background-clip:text;background-clip:text;margin:0 0 1.25rem;font-size:max(2.8rem,min(7vw,5rem));font-weight:700;line-height:1.05;animation:.8s ease-out .15s both fadeInUp}.hero-subtitle{color:#f0f4f8cc;margin:0 0 2rem;font-size:max(1rem,min(2.5vw,1.4rem));font-weight:300;animation:.8s ease-out .3s both fadeInUp}@keyframes fadeInUp{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}.login-notice{background:#3b82f61a;border:1px solid #3b82f64d;border-radius:12px;margin-top:1.5rem;padding:1rem;display:inline-block}.login-notice p{margin:0;font-size:1rem}.login-notice a{color:#60a5fa;font-weight:600;text-decoration:none}.login-notice a:hover{color:#93c5fd}.container{z-index:1;max-width:1400px;margin:0 auto;padding:0 1.5rem 5rem;position:relative}.booking-grid{grid-template-columns:1.2fr 1fr;gap:3rem;display:grid}.trust-bar{color:#94a3b8;background:#22c55e0f;border:1px solid #22c55e33;border-radius:12px;flex-wrap:wrap;justify-content:center;gap:1.5rem;margin-bottom:2rem;padding:.875rem 1.5rem;font-size:.82rem;display:flex}.trust-item{align-items:center;gap:.4rem;display:inline-flex}.trust-item svg{color:#22c55e;flex-shrink:0}.trust-item a{color:#22c55e;font-weight:600;text-decoration:none}.trust-item a:hover{text-decoration:underline}.trust-item strong{color:#f8fafc}.form-section,.summary-section{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff0d;border:1px solid #f9731633;border-radius:24px;padding:2.5rem}h2{-webkit-text-fill-color:transparent;background:linear-gradient(135deg,#fff,#f97316);-webkit-background-clip:text;margin-bottom:.5rem;font-size:2rem}.form-subtitle{color:#94a3b8;margin-bottom:2rem;font-size:.95rem}.form-group{margin-bottom:1.5rem}.form-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}label{color:#cbd5e1;margin-bottom:.5rem;font-size:.9rem;font-weight:500;display:block}.input{color:#f8fafc;width:100%;font-size:1rem;font-family:var(--font-outfit),system-ui,sans-serif;background:#ffffff14;border:1px solid #f973164d;border-radius:12px;padding:1rem;transition:border-color .2s,background .2s,box-shadow .2s}.input:focus{background:#ffffff21;border-color:#f97316;outline:none;box-shadow:0 0 0 3px #f973161a}.input.error{background:#ef444414;border-color:#ef4444}.input.error:focus{box-shadow:0 0 0 3px #ef44441a}.input::placeholder{color:#64748b}.input:disabled{opacity:.5;cursor:not-allowed}input[type=date]::-webkit-calendar-picker-indicator{filter:invert()opacity(.5);cursor:pointer}.error-text{color:#fca5a5;margin-top:.5rem;font-size:.85rem;display:block}.cancel-hint{color:#64748b;background:#ffffff08;border-radius:8px;align-items:flex-start;gap:.4rem;margin-bottom:1.5rem;padding:.75rem 1rem;font-size:.8rem;line-height:1.5;display:flex}.cancel-hint svg{color:#f97316;flex-shrink:0;margin-top:2px}.cancel-hint a{color:#f97316;text-decoration:none}.cancel-hint a:hover{text-decoration:underline}.check-btn{color:#fff;cursor:pointer;will-change:transform;width:100%;font-size:1.1rem;font-weight:600;font-family:var(--font-outfit),system-ui,sans-serif;background:linear-gradient(135deg,#f97316,#ea580c);border:none;border-radius:12px;padding:1.2rem 2rem;transition:transform .25s cubic-bezier(.22,1,.36,1),box-shadow .25s;box-shadow:0 10px 30px #f9731666}.check-btn:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 15px 40px #f9731699}.check-btn:disabled{opacity:.7;cursor:not-allowed}.loader{animation:1.5s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.message{text-align:center;border-radius:12px;margin-top:1.5rem;padding:1rem;font-weight:500}.message.error-msg{color:#fca5a5;background:#ef444426;border:1px solid #ef444466}.message.success{color:#86efac;background:#22c55e26;border:1px solid #22c55e66}.empty-state{text-align:center;color:#94a3b8;padding:4rem 2rem}.suggestions-list{flex-direction:column;gap:1rem;display:flex}.combo-card{cursor:pointer;background:#ffffff0a;border:2px solid #f9731633;border-radius:16px;padding:1.25rem;transition:transform .3s cubic-bezier(.22,1,.36,1),border-color .2s,box-shadow .3s}.combo-card:hover{border-color:#f9731680;transform:translateY(-4px);box-shadow:0 10px 30px #f9731633}.combo-card.selected{background:#f9731614;border-color:#f97316;box-shadow:0 12px 35px #f973164d}.combo-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.combo-title-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.combo-title-row strong{color:#f8fafc;font-size:1.1rem}.combo-badge{color:#60a5fa;background:#3b82f626;border:1px solid #3b82f64d;border-radius:100px;padding:.25rem .75rem;font-size:.75rem;font-weight:600}.combo-badge-special{color:#f97316;text-transform:uppercase;letter-spacing:.03em;background:linear-gradient(135deg,#f9731633,#ea580c33);border:1px solid #f9731680;border-radius:100px;padding:.25rem .75rem;font-size:.75rem;font-weight:700}.combo-price-col{text-align:right;flex-shrink:0}.combo-price-total{color:#f97316;font-size:1.75rem;font-weight:700;line-height:1;display:block}.combo-price-label{color:#64748b;margin-top:.25rem;font-size:.75rem;display:block}.combo-breakdown{background:#0003;border-radius:10px;margin-bottom:1rem;padding:.875rem}.allocation-row{border-bottom:1px solid #ffffff0d;justify-content:space-between;align-items:center;padding:.75rem 0;display:flex}.allocation-row:last-child{border-bottom:none}.allocation-room-preview{flex:1;align-items:center;gap:.75rem;min-width:0;display:flex}.allocation-img-wrap{background:#04070f;border:1px solid #f9731633;border-radius:8px;flex-shrink:0;width:80px;height:60px;position:relative;overflow:hidden}.allocation-img-bg{z-index:0;filter:blur(8px)brightness(.4)saturate(.7);background-position:50%;background-size:cover;position:absolute;inset:0;transform:scale(1.1)}.allocation-info{flex-direction:column;flex:1;gap:.25rem;min-width:0;display:flex}.allocation-name{color:#f8fafc;flex-wrap:wrap;align-items:center;gap:.4rem;font-size:.95rem;font-weight:600;display:flex}.allocation-guests{color:#94a3b8;font-size:.8rem}.allocation-price{color:#f97316;flex-shrink:0;font-size:.9rem;font-weight:600}.hall-badge{color:#fff;text-transform:uppercase;letter-spacing:.05em;background:linear-gradient(135deg,#f97316,#ea580c);border-radius:4px;padding:.15rem .5rem;font-size:.65rem;font-weight:700;display:inline-block}.override-badge{color:#22c55e;text-transform:uppercase;letter-spacing:.05em;background:#22c55e26;border:1px solid #22c55e59;border-radius:4px;padding:.15rem .5rem;font-size:.65rem;font-weight:700;display:inline-block}.combo-highlight{text-align:center;color:#f97316;background:linear-gradient(135deg,#f973161a,#ea580c1a);border:1px solid #f973164d;border-radius:8px;margin-bottom:1rem;padding:.75rem;font-size:.85rem;font-weight:600}.select-combo-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#f97316,#ea580c);border:none;border-radius:10px;width:100%;padding:1rem 1.5rem;font-family:inherit;font-size:1rem;font-weight:700;transition:transform .25s cubic-bezier(.22,1,.36,1),box-shadow .25s;box-shadow:0 6px 20px #f9731659}.select-combo-btn:hover{transform:translateY(-2px);box-shadow:0 10px 30px #f9731680}.modal{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:1000;background:#0f172af2;justify-content:center;align-items:center;padding:2rem;animation:.3s ease-out fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);text-align:center;background:linear-gradient(135deg,#1e293bfa,#0f172afa);border:2px solid #f973164d;border-radius:24px;width:100%;max-width:500px;padding:3rem;animation:.4s cubic-bezier(.22,1,.36,1) scaleIn}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}.success-icon{color:#fff;background:#22c55e;border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;margin:0 auto 1.5rem;font-size:3rem;animation:.6s cubic-bezier(.22,1,.36,1) bounce;display:flex}@keyframes bounce{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.modal-content h3{color:#22c55e;margin-bottom:.5rem;font-size:2rem}.modal-content p{color:#cbd5e1;margin-bottom:.5rem}.modal-subtext{color:#94a3b8;font-size:.9rem}.modal-actions{flex-direction:column;gap:1rem;margin-top:2rem;display:flex}.action-btn{cursor:pointer;will-change:transform;font-size:1rem;font-weight:600;font-family:var(--font-outfit),system-ui,sans-serif;border-radius:12px;padding:1rem 2rem;transition:transform .25s cubic-bezier(.22,1,.36,1),box-shadow .25s}.action-btn:hover{transform:translateY(-2px)}.action-btn.primary{color:#fff;background:linear-gradient(135deg,#f97316,#ea580c);border:none;box-shadow:0 8px 24px #f9731659}.action-btn.primary:hover{box-shadow:0 12px 32px #f9731680}.action-btn.secondary{color:#60a5fa;background:#3b82f626;border:1px solid #3b82f64d}.action-btn.tertiary{color:#94a3b8;background:0 0;border:1px solid #94a3b84d}@media (width<=968px){.booking-grid,.form-row{grid-template-columns:1fr}}@media (width<=768px){.hero{padding:6rem 1rem 3rem}.container{padding:0 1rem 4rem}.form-section,.summary-section{padding:1.5rem}.combo-header{flex-direction:column;align-items:flex-start}.combo-price-col{text-align:left}.allocation-img-wrap{width:70px;height:52px}.allocation-row{padding:.65rem 0}.trust-bar{gap:1rem;padding:.75rem 1rem;font-size:.78rem}}@media (width<=480px){.allocation-img-wrap{width:60px;height:45px}.allocation-name{font-size:.85rem}.allocation-guests{font-size:.75rem}.allocation-price{font-size:.85rem}.combo-breakdown{padding:.65rem}.trust-bar{flex-direction:column;align-items:flex-start;gap:.65rem}}.price-preview-section{background:#f973160f;border:1px solid #f9731633;border-radius:12px;margin-bottom:1.25rem;padding:1rem}.price-preview-label{color:#64748b;margin:0 0 .3rem;font-size:.78rem}.price-from{color:#f8fafc;font-size:1rem}.price-from strong{color:#f97316;font-size:1.25rem}.price-nights{color:#94a3b8;font-size:.85rem}"})]})}(0,s.memo)(({room:e,isSelected:r,onSelect:t,guestCount:o})=>{let i=(0,s.useCallback)(()=>t(e),[e,t]),d=l(e,o);return(0,a.jsxs)("div",{onClick:i,className:`room-option reveal ${r?"selected":""}`,children:[e.images&&e.images.length>0&&(0,a.jsxs)("div",{className:"room-thumbnail",children:[(0,a.jsx)(n.default,{src:e.images[0],alt:e.name,width:120,height:80,style:{objectFit:"cover",borderRadius:"8px"}}),e.images.length>1&&(0,a.jsxs)("span",{className:"image-count-badge",children:["+",e.images.length-1]})]}),(0,a.jsxs)("div",{className:"room-info",children:[(0,a.jsx)("h3",{children:e.name}),e.description&&(0,a.jsxs)("p",{className:"room-desc",children:[e.description.slice(0,60),"..."]}),(0,a.jsx)("div",{className:"room-details",children:(0,a.jsxs)("span",{children:["Max ",e.max_guests," Guests"]})}),e.amenities&&e.amenities.length>0&&(0,a.jsx)("div",{className:"amenities-mini",children:e.amenities.slice(0,3).map((e,r)=>(0,a.jsxs)("span",{className:"amenity-mini",children:["✓ ",e]},r))})]}),(0,a.jsxs)("div",{className:"room-price",children:[(0,a.jsxs)("span",{className:"price",children:["₹",d.toLocaleString()]}),(0,a.jsx)("span",{className:"price-label",children:"/ night"})]})]})}).displayName="RoomOption",e.s(["default",()=>c])}]);