1import{b as S,p as R,r as N}from"./chunk-ZQUNXJZ7.js";import{a as I,b as Y}from"./chunk-BIJF6HQH.js";import{I as D,K as Q}from"./chunk-LR7MOASQ.js";import{a as P,i as U}from"./chunk-GF4XG3LH.js";import"./chunk-VRO7LARE.js";import{o as V,v as G}from"./chunk-TPMOPAJA.js";import"./chunk-QZLCDTFI.js";import"./chunk-4SWY45Q4.js";import{D as L,K as $}from"./chunk-TX5W4VZ4.js";import{Ac as o,Bc as n,Cc as O,Ga as y,Gc as h,Hb as l,Jc as d,Kc as s,Md as w,Pb as u,Qa as m,Ra as p,Rd as T,Sa as v,Ta as E,Wb as B,Yc as a,Zc as b,_c as M,ac as C,bb as F,mc as f,oc as k,vc as _,yc as z,zc as A}from"./chunk-RQ5WQXLP.js";import{f as j}from"./chunk-37EQZ6M3.js";function q(r,g){if(r&1){let t=h();o(0,"div",21)(1,"div",33)(2,"span",34),a(3,"\u2713"),n(),o(4,"span",35),a(5),n()(),o(6,"button",36),d("click",function(){m(t);let e=s();return p(e.successMessage.set(null))}),a(7,"\xD7"),n()()}if(r&2){let t=s();l(5),b(t.successMessage())}}function K(r,g){if(r&1){let t=h();o(0,"div",22)(1,"div",33)(2,"span",37),a(3,"\u26A0"),n(),o(4,"span",38),a(5),n()(),o(6,"button",39),d("click",function(){m(t);let e=s();return p(e.error.set(null))}),a(7,"\xD7"),n()()}if(r&2){let t=s();l(5),b(t.error())}}function J(r,g){r&1&&(o(0,"div",29)(1,"div",40),v(),o(2,"svg",41),O(3,"circle",42)(4,"path",43),n(),E(),o(5,"p",44),a(6,"Loading bookings..."),n()()())}function W(r,g){if(r&1){let t=h();o(0,"div",30)(1,"span",45),a(2,"\u26A0\uFE0F"),n(),o(3,"p",46),a(4),n(),o(5,"button",47),d("click",function(){m(t);let e=s();return p(e.loadBookings())}),a(6," Retry "),n()()}if(r&2){let t=s();l(4),b(t.error())}}function X(r,g){r&1&&(o(0,"p",49),a(1,"Try adjusting your filters"),n())}function Z(r,g){r&1&&(o(0,"p",49),a(1,"No bookings have been made yet"),n())}function tt(r,g){if(r&1&&(o(0,"div",30)(1,"span",45),a(2,"\u{1F4ED}"),n(),o(3,"h3",48),a(4,"No bookings found"),n(),C(5,X,2,0,"p",49)(6,Z,2,0,"p",49),n()),r&2){let t=s();l(5),_(t.statusFilter()!=="all"||t.searchQuery()?5:6)}}function et(r,g){if(r&1&&(o(0,"span",58),a(1),n()),r&2){let t=s().$implicit;l(),b(t.guest_timezone)}}function nt(r,g){if(r&1&&(o(0,"span",9),a(1),n()),r&2){let t=s().$implicit;l(),b(t.guest_phone)}}function ot(r,g){if(r&1&&(o(0,"span",9),a(1),n()),r&2){let t=s().$implicit,i=s(2);l(),M(" Local: ",i.formatDate(t.scheduled_start_local)," ")}}
1function it(r,g){r&1&&(v(),o(0,"svg",69),O(1,"circle",42)(2,"path",43),n())}function at(r,g){r&1&&a(0," \u2713 Approve ")}function rt(r,g){if(r&1){let t=h();o(0,"button",68),d("click",function(e){m(t);let c=s().$implicit,x=s(2);return p(x.approveBooking(c,e))}),C(1,it,3,0,":svg:svg",69)(2,at,1,0),n()}if(r&2){let t=s().$implicit,i=s(2);f("disabled",i.isApprovingBooking(t.id)),l(),_(i.isApprovingBooking(t.id)?1:2)}}function lt(r,g){if(r&1){let t=h();o(0,"button",70),d("click",function(e){m(t);let c=s().$implicit,x=s(2);return p(x.openCancelModal(c,e))}),a(1," Cancel "),n()}}function st(r,g){if(r&1){let t=h();o(0,"button",71),d("click",function(e){m(t);let c=s().$implicit,x=s(2);return p(x.showCancellationReason(c.cancellation_reason,e))}),a(1," View Reason "),n()}}function ct(r,g){if(r&1){let t=h();o(0,"tr",54)(1,"td",55)(2,"div",56)(3,"span",57),a(4),n(),C(5,et,2,1,"span",58),n()(),o(6,"td",55)(7,"div",59)(8,"div",60)(9,"span",61),a(10),n(),o(11,"button",62),d("click",function(e){let c=m(t).$implicit,x=s(2);return p(x.copyEmail(c.guest_email,e))}),a(12," \u{1F4CB} "),n()(),C(13,nt,2,1,"span",9),n()(),o(14,"td",55)(15,"div",56)(16,"span",63),a(17),n(),C(18,ot,2,1,"span",9),n()(),o(19,"td",55)(20,"span",64),a(21),n()(),o(22,"td",55)(23,"span",61),a(24),n()(),o(25,"td",55)(26,"div",19),C(27,rt,3,2,"button",65)(28,lt,2,0,"button",66)(29,st,2,0,"button",67),n()()()}if(r&2){let t=g.$implicit,i=s(2);l(4),b(t.guest_name),l(),_(t.guest_timezone?5:-1),l(5),b(t.guest_email),l(3),_(t.guest_phone?13:-1),l(4),b(i.formatDate(t.scheduled_start)),l(),_(t.scheduled_start_local?18:-1),l(2),k("bg-green-100",t.status==="confirmed")("text-green-700",t.status==="confirmed")("dark:bg-green-900",t.status==="confirmed")("dark:text-green-300",t.status==="confirmed")("bg-yellow-100",t.status==="pending")("text-yellow-700",t.status==="pending")("dark:bg-yellow-900",t.status==="pending")("dark:text-yellow-300",t.status==="pending")("bg-red-100",t.status==="cancelled")("text-red-700",t.status==="cancelled")("dark:bg-red-900",t.status==="cancelled")("dark:text-red-300",t.status==="cancelled"),l(),M(" ",i.getStatusDisplay(t.status)," "),l(3),b(i.formatDate(t.created_at)),l(3),_(t.status==="pending"?27:-1),l(),_(t.status==="confirmed"||t.status==="pending"?28:-1),l(),_(t.status==="cancelled"&&t.cancellation_reason?29:-1)}}function dt(r,g){if(r&1&&(o(0,"div",31)(1,"table",50)(2,"thead",51)(3,"tr")(4,"th",52),a(5,"Guest"),n(),o(6,"th",52),a(7,"Contact"),n(),o(8,"th",52),a(9,"Scheduled Time"),n(),o(10,"th",52),a(11,"Status"),n(),o(12,"th",52),a(13,"Created"),n(),o(14,"th",52),a(15,"Actions"),n()()(),o(16,"tbody",53),z(17,ct,30,35,"tr",54,H),n()()()),r&2){let t=s();l(17),A(t.filteredBookings())}}function gt(r,g){if(r&1&&(o(0,"div",78)(1,"p",85)(2,"strong"),a(3,"Guest:"),n(),a(4),n(),o(5,"p",85)(6,"strong"),a(7,"Email:"),n(),a(8),n(),o(9,"p",85)(10,"strong"),a(11,"Time:"),n(),a(12),n()()),r&2){let t=s(2);l(4),M(" ",t.bookingToCancel().guest_name,""),l(4),M(" ",t.bookingToCancel().guest_email,""),l(4),M(" ",t.formatDate(t.bookingToCancel().scheduled_start),"")}}function mt(r,g){if(r&1){let t=h();o(0,"div",72),d("click",function(){m(t);let e=s();return p(e.closeCancelModal())}),o(1,"div",73),d("click",function(e){return m(t),p(e.stopPropagation())}),o(2,"div",74)(3,"h3",75),a(4,"Cancel Booking"),n(),o(5,"button",76),d("click",function(){m(t);let e=s();return p(e.closeCancelModal())}),a(6,"\xD7"),n()(),o(7,"div",77),C(8,gt,13,3,"div",78),o(9,"div")(10,"label",79),a(11,"Cancellation Reason (Optional)"),n(),o(12,"textarea",80),d("input",function(e){m(t);let c=s();return p(c.updateCancellationReason(e))}),n(),o(13,"p",81),a(14,"This will be sent to the guest via email."),n()()(),o(15,"div",82)(16,"button",83),d("click",function(){m(t);let e=s();return p(e.closeCancelModal())}),a(17," Keep Booking "),n(),o(18,"button",84),d("click",function(){m(t);let e=s();return p(e.confirmCancelBooking())}),a(19," Confirm Cancellation "),n()()()()}if(r&2){let t=s();l(8),_(t.bookingToCancel()?8:-1),l(4),f("value",t.cancellationReason())}}function pt(r,g){if(r&1){let t=h();o(0,"div",72),d("click",function(){m(t);let e=s();return p(e.closeCancellationReasonModal())}),o(1,"div",73),d("click",function(e){return m(t),p(e.stopPropagation())}),o(2,"div",74)(3,"h3",75),a(4,"Cancellation Reason"),n(),o(5,"button",76),d("click",function(){m(t);let e=s();return p(e.closeCancellationReasonModal())}),a(6,"\xD7"),n()(),o(7,"div",77)(8,"p",85),a(9),n()(),o(10,"div",82)(11,"button",83),d("click",function(){m(t);let e=s();return p(e.closeCancellationReasonModal())}),a(12," Close "),n()()()()}if(r&2){let t=s();l(9),b(t.selectedCancellationReason())}}var H,yt,_t=j(()=>{T();U();$();Q();G();Y();N();T();H=(r,g)=>
1g.id;yt=(()=>{class r{constructor(){this.appointmentApi=y(I),this.router=y(V),this.id=F.required(),this.bookings=u([]),this.filteredBookings=w(()=>{let t=this.statusFilter(),i=this.searchQuery().toLowerCase(),e=this.bookings();return t!=="all"&&(e=e.filter(c=>c.status===t)),i&&(e=e.filter(c=>c.guest_name.toLowerCase().includes(i)||c.guest_email.toLowerCase().includes(i))),e}),this.isLoading=u(!1),this.error=u(null),this.statusFilter=u("all"),this.searchQuery=u(""),this.approvingBookingId=u(null),this.successMessage=u(null),this.showCancelModal=u(!1),this.bookingToCancel=u(null),this.cancellationReason=u(""),this.stats=w(()=>{let t=this.bookings();return{total:t.length,confirmed:t.filter(i=>i.status==="confirmed").length,pending:t.filter(i=>i.status==="pending").length,cancelled:t.filter(i=>i.status==="cancelled").length}}),this.selectedCancellationReason=u(null)}get calendarBasePath(){let t=this.router.url.match(/^(\/lead-titan\/calendar|\/calendar)/);return t?t[1]:"/calendar"}get scheduleId(){return this.id()}ngOnInit(){this.loadBookings()}goBack(){this.router.navigate([`${this.calendarBasePath}/appointments/schedules`])}loadBookings(){this.isLoading.set(!0),this.error.set(null),this.successMessage.set(null);let t={};
1this.appointmentApi.getScheduleBookings(this.scheduleId,t).subscribe({next:i=>{this.bookings.set(i.results),this.isLoading.set(!1)},error:i=>{P(i,{tags:{component:"appointment-booking-list",op:"loadBookings"},extra:{status:i?.status}});let e=i.error?.detail||i.message||"Failed to load bookings";this.error.set(e),this.isLoading.set(!1)}})}approveBooking(t,i){i.stopPropagation(),this.approvingBookingId.set(t.id),this.error.set(null),this.successMessage.set(null),this.appointmentApi.approveBooking(t.id).subscribe({next:e=>{this.bookings.update(c=>c.map(x=>x.id===e.data.id?e.data:x)),this.approvingBookingId.set(null),this.successMessage.set(e.data.email_sent?`Booking for ${t.guest_name} approved. Guest has been notified via email.`:`Booking for ${t.guest_name} approved. The guest could NOT be emailed \u2014 connect Gmail, Outlook, SendGrid or Mailchimp to send appointment emails.`),setTimeout(()=>this.successMessage.set(null),5e3)},error:e=>{P(e,{tags:{component:"appointment-booking-list",op:"approveBooking"},extra:{status:e?.status}});let c=e.error?.message||e.message||"Failed to approve booking";this.error.set(`Failed to approve booking: ${c}`),this.approvingBookingId.set(null)}})}openCancelModal(t,i){i.stopPropagation(),this.bookingToCancel.set(t),this.cancellationReason.set(""),this.showCancelModal.set(!0),this.error.set(null),this.successMessage.set(null)}closeCancelModal(){this.showCancelModal.set(!1),this.bookingToCancel.set(null),this.cancellationReason.set("")}updateCancellationReason(t){let i=t.target;this.cancellationReason.set(i.value)}confirmCancelBooking(){let t=this.bookingToCancel();if(!t)return;let i=this.cancellationReason().trim();this.appointmentApi.cancelBooking(t.id,{cancellation_reason:i||void 0}).subscribe({next:e=>{this.bookings.update(c=>c.map(x=>x.id===e.id?e:x)),this.closeCancelModal(),this.successMessage.set(`Booking for ${t.guest_name} canceled successfully.`),setTimeout(()=>this.successMessage.set(null),5e3)},error:e=>{P(e,{tags:{component:"appointment-booking-list",op:"cancelBooking"},extra:{status:e?.status}});let c=e.error?.detail||e.error?.message||e.message||"Failed to cancel booking";this.error.set(`Failed to cancel booking: ${c}`),this.closeCancelModal()}})}isApprovingBooking(t){return this.approvingBookingId()===t}exportBookings(){this.error.set(null),this.successMessage.set(null),this.appointmentApi.exportScheduleBookings(this.scheduleId).subscribe({next:t=>{let i=window.URL.createObjectURL(t),e=document.createElement("a");e.href=i,e.download=`bookings-${this.scheduleId}-${S(new Date,"yyyy-MM-dd")}.csv`,e.click(),window.URL.revokeObjectURL(i),this.successMessage.set("Bookings exported successfully!"),setTimeout(()=>this.successMessage.set(null),3e3)},error:t=>{P(t,{tags:{component:"appointment-booking-list",op:"exportBookings"},extra:{status:t?.status}});let i=t.error?.detail||t.message||"Failed to export bookings";this.error.set(`Export failed: ${i}`)}})}setStatusFilter(t){this.statusFilter.set(t)}updateSearch(t){let i=t.target;this.searchQuery.set(i.value)}formatDate(t){try{return S(R(t),"MMM d, yyyy h:mm a")}catch{return t}}getStatusClass(t){return{confirmed:"status-confirmed",pending:"status-pending",cancelled:"status-cancelled",rescheduled:"status-rescheduled",completed:"status-completed"}[t]||""}getStatusDisplay(t){return{confirmed:"Confirmed",pending:"Pending",cancelled:"Cancelled",rescheduled:"Rescheduled",completed:"Completed"}[t]||t}copyEmail(t,i){i.stopPropagation(),navigator.clipboard.writeText(t).then(()=>{this.successMessage.set("Email copied to clipboard!"),setTimeout(()=>this.successMessage.set(null),3e3)}).catch(()=>{this.error.set("Failed to copy email to clipboard")})}showCancellationReason(t,i){i.stopPropagation(),this.selectedCancellationReason.set(t)}closeCancellationReasonModal(){this.selectedCancellationReason.set(null)}static{this.\u0275fac=function(i){return new(i||r)}}static{this.\u0275cmp=B({type:r,selectors:[["app-appointment-booking-list"]],inputs:{id:[1,"id"]},decls:64,vars:87,consts:[[1,"h-full","bg-mt-bg-secondary","text-mt-text","rounded-[16px]","md:rounded-[32px]","flex","flex-col","overflow-hidden"],[1,"p-3","md:p-4","h-full","flex","flex-col"],[1,"flex","flex-col","lg:flex-row","lg:justify-between","lg:items-start","gap-4","mb-6"],[1,"flex","items-center","gap-3","mb-4"],["title","Back to Schedules",1,"w-10","h-10","flex","items-center","justify-center","bg-gray-100","dark:bg-mt-card","text-mt-text-secondary","rounded-lg","hover:bg-gray-200","dark:hover:bg-mt-bg-tertiary","transition-colors",3,"click"],[1,"fa-solid","fa-arrow-left"],[1,"text-2xl","font-bold","text-gray-900","dark:text-gray-100"],[1,"flex","flex-wrap","gap-3"],[1,"bg-gray-100","dark:bg-mt-card","rounded-lg","px-4","py-2"],[1,"text-xs","text-mt-text-muted"],[1,"bg-green-100","dark:bg-green-900","rounded-lg","px-4","py-2"],[1,"text-2xl","font-bold","text-green-700","dark:text-green-300"],[1,"text-xs","text-green-600","dark:text-green-400"],[1,"bg-yellow-100","dark:bg-yellow-900","rounded-lg","px-4","py-2"],[1,"text-2xl","font-bold","text-yellow-700","dark:text-yellow-300"],[1,"text-xs","text-yellow-600","dark:text-yellow-400"],[1,"bg-red-100","dark:bg-red-900","rounded-lg","px-4","py-2"],[1,"text-2xl","font-bold","text-red-700","dark:text-red-300"],[1,"text-xs","text-red-600","dark:text-red-400"],[1,"flex","gap-2"],[1,"px-4","py-2","bg-gray-100","dark:bg-mt-card","text-mt-text-secondary","rounded-lg","hover:bg-gray-200","dark:hover:bg-mt-bg-tertiary","transition-colors","disabled:opacity-50","disabled:cursor-not-allowed","flex","items-center","gap-2",3,"click","disabled"],[1,"mb-4","p-4","bg-green-100","dark:bg-green-900/30","border","border-green-200","dark:border-green-800","rounded-lg","flex","items-center","justify-between"],[1,"mb-4","p-4","bg-red-100","dark:bg-red-900/30","border","border-red-200","dark:border-red-800","rounded-lg","flex","items-center","justify-between"],[1,"flex","flex-col","md:flex-row","gap-4","mb-6"],[1,"flex-1"],[1,"block","text-sm","font-medium","text-mt-text-secondary","mb-2"],[1,"flex","flex-wrap","gap-2"],[1,"px-4","py-2","rounded-lg","text-sm","font-medium","transition-colors",3,"click"],["type","text","placeholder","Search by name or email...",1,"w-full","px-4","py-2","bg-mt-card","border","border-gray-300","dark:border-mt-border","rounded-lg","text-gray-900","dark:text-gray-100","placeholder-gray-500","dark:placeholder-gray-400","focus:outline-none","focus:ring-2","focus:ring-mt-coral","focus:border-transparent",3,"input","value"],[1,"flex","justify-center","items-center","p-12"],[1,"flex","flex-col","items-center","justify-center","p-12","text-center"],[1,"overflow-x-auto","flex-1"],[1,"fixed","inset-0","bg-black","bg-opacity-50","flex","items-center","justify-center","z-50"],[1,"flex","items-center","gap-3"],[1,"text-green-600","dark:text-green-400","text-xl"],[1,"text-green-700","dark:text-green-300"],[1,"text-green-700","dark:text-green-300","hover:text-green-900","dark:hover:text-green-100","text-2xl","leading-none",3,"click"],[1,"text-red-600","dark:text-red-400","text-xl"],[1,"text-red-700","dark:text-red-300"],[1,"text-red-700","dark:text-red-300","hover:text-red-900","dark:hover:text-red-100","text-2xl","leading-none",3,"click"],[1,"flex","flex-col","items-center"],["xmlns","http://www.w3.org/2000/svg","fill","none","viewBox","0 0 24 24",1,"animate-spin","h-8","w-8","text-mt-coral"],["cx","12","cy","12","r","10","stroke","currentColor","stroke-width","4",1,"opacity-25"],["fill","currentColor","d","M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z",1,"opacity-75"],[1,"mt-2","text-gray-600","dark:text-gray-300"],[1,"text-6xl","mb-4"],[1,"text-mt-text-secondary","mb-4"],[1,"px-4","py-2","bg-mt-coral","text-mt-text","rounded-lg","hover:bg-orange-600","transition-colors",3,"click"],[1,"text-xl","font-semibold","text-gray-900","dark:text-gray-100","mb-2"],[1,"text-mt-text-muted"],[1,"w-full"],[1,"bg-gray-100","dark:bg-mt-card","border-b","border-mt-border"],[1,"px-4","py-3","text-left","text-xs","font-medium","text-mt-text-secondary","uppercase","tracking-wider"],[1,"divi
1de-y","divide-gray-200","dark:divide-gray-700"],[1,"hover:bg-gray-50","dark:hover:bg-mt-card/50","transition-colors"],[1,"px-4","py-3"],[1,"flex","flex-col"],[1,"font-medium","text-gray-900","dark:text-gray-100"],[1,"text-xs","text-gray-500","dark:text-mt-text-muted"],[1,"flex","flex-col","gap-1"],[1,"flex","items-center","gap-2"],[1,"text-sm","text-mt-text-secondary"],["title","Copy email",1,"text-gray-500","hover:text-gray-700","dark:text-mt-text-muted","dark:hover:text-gray-200","transition-colors",3,"click"],[1,"text-sm","text-gray-900","dark:text-gray-100"],[1,"inline-flex","px-2","py-1","text-xs","font-medium","rounded"],["title","Approve booking",1,"px-3","py-1","bg-green-500","text-mt-text","rounded","text-sm","hover:bg-green-600","transition-colors","disabled:opacity-50","disabled:cursor-not-allowed","flex","items-center","gap-1",3,"disabled"],["title","Cancel booking",1,"px-3","py-1","bg-red-500","text-mt-text","rounded","text-sm","hover:bg-red-600","transition-colors"],["title","View cancellation reason",1,"px-3","py-1","bg-gray-500","text-mt-text","rounded","text-sm","hover:bg-gray-600","transition-colors"],["title","Approve booking",1,"px-3","py-1","bg-green-500","text-mt-text","rounded","text-sm","hover:bg-green-600","transition-colors","disabled:opacity-50","disabled:cursor-not-allowed","flex","items-center","gap-1",3,"click","disabled"],["xmlns","http://www.w3.org/2000/svg","fill","none","viewBox","0 0 24 24",1,"animate-spin","h-4","w-4"],["title","Cancel booking",1,"px-3","py-1","bg-red-500","text-mt-text","rounded","text-sm","hover:bg-red-600","transition-colors",3,"click"],["title","View cancellation reason",1,"px-3","py-1","bg-gray-500","text-mt-text","rounded","text-sm","hover:bg-gray-600","transition-colors",3,"click"],[1,"fixed","inset-0","bg-black","bg-opacity-50","flex","items-center","justify-center","z-50",3,"click"],[1,"bg-mt-card","rounded-lg","shadow-xl","max-w-md","w-full","mx-4",3,"click"],[1,"flex","justify-between","items-center","p-6","border-b","border-mt-border"],[1,"text-xl","font-semibold","text-gray-900","dark:text-gray-100"],[1,"text-gray-400","hover:text-gray-600","dark:hover:text-gray-200","text-2xl","leading-none",3,"click"],[1,"p-6"],[1,"mb-4","p-3","bg-gray-100","dark:bg-mt-surface","rounded-lg","space-y-1","text-sm"],["for","cancellation-reason",1,"block","text-sm","font-medium","text-mt-text-secondary","mb-2"],["id","cancellation-reason","placeholder","Enter reason for cancellation...","rows","4",1,"w-full","px-3","py-2","bg-mt-card","border","border-gray-300","dark:border-mt-border","rounded-lg","text-gray-900","dark:text-gray-100","placeholder-gray-500","dark:placeholder-gray-400","focus:outline-none","focus:ring-2","focus:ring-mt-coral","focus:border-transparent",3,"input","value"],[1,"mt-1","text-xs","text-gray-500","dark:text-mt-text-muted"],[1,"flex","gap-3","p-6","border-t","border-mt-border"],[1,"flex-1","px-4","py-2","bg-mt-card","text-mt-text-secondary","rounded-lg","hover:bg-gray-300","dark:hover:bg-mt-card","transition-colors",3,"click"],[1,"flex-1","px-4","py-2","bg-red-500","text-mt-text","rounded-lg","hover:bg-red-600","transition-colors",3,"click"],[1,"text-mt-text-secondary"]],template:function(i,e){i&1&&(o(0,"div",0)(1,"div",1)(2,"div",2)(3,"div")(4,"div",3)(5,"button",4),d("click",function(){return e.goBack()}),O(6,"i",5),n(),o(7,"h2",6),a(8,"Bookings"),n()(),o(9,"div",7)(10,"div",8)(11,"div",6),a(12),n(),o(13,"div",9),a(14,"Total"),n()(),o(15,"div",10)(16,"div",11),a(17),n(),o(18,"div",12),a(19,"Confirmed"),n()(),o(20,"div",13)(21,"div",14),a(22),n(),o(23,"div",15),a(24,"Pending"),n()(),o(25,"div",16)(26,"div",17),a(27),n(),o(28,"div",18),a(29,"Canceled"),n()()()(),o(30,"div",19)(31,"button",20),d("click",function(){return e.exportBookings()}),o(32,"span"),a(33,"\u{1F4E5}"),n(),a(34," Export CSV "),n(),o(35,"button",20),d("click",function(){return e.loadBookings()}),o(36,"span"),a(37,"\u{1F504}"),n(),a(38," Refresh "),n()()(),C(39,q,8,1,"div",21)(40,K,8,1,"div",22),o(41,"div",23)(42,"div",24)(43,"label",25),a(44,"Status:"),n(),o(45,"div",26)(46,"button",27),d("click",function(){return e.setStatusFilter("all")}),a(47," All "),n(),o(48,"button",27),d("click",function(){return e.setStatusFilter("confirmed")}),a(49," Confirmed "),n(),o(50,"button",27),d("click",function(){return e.setStatusFilter("pending")}),a(51," Pending "),n(),o(52,"button",27),d("click",function(){return e.setStatusFilter("cancelled")}),a(53," Canceled "),n()()(),o(54,"div",24)(55,"label",25),a(56,"Search:"),n(),o(57,"input",28),d("input",function(x){return e.updateSearch(x)}
1),n()()(),C(58,J,7,0,"div",29)(59,W,7,1,"div",30)(60,tt,7,1,"div",30)(61,dt,19,0,"div",31)(62,mt,20,2,"div",32)(63,pt,13,1,"div",32),n()()),i&2&&(l(12),b(e.stats().total),l(5),b(e.stats().confirmed),l(5),b(e.stats().pending),l(5),b(e.stats().cancelled),l(4),f("disabled",e.bookings().length===0),l(4),f("disabled",e.isLoading()),l(4),_(e.successMessage()?39:-1),l(),_(e.error()&&!e.isLoading()?40:-1),l(6),k("bg-mt-coral",e.statusFilter()==="all")("text-mt-text",e.statusFilter()==="all")("bg-gray-200",e.statusFilter()!=="all")("dark:bg-mt-surface",e.statusFilter()!=="all")("text-gray-700",e.statusFilter()!=="all")("dark:text-gray-300",e.statusFilter()!=="all")("hover:bg-mt-orange-dark",e.statusFilter()==="all")("hover:bg-gray-300",e.statusFilter()!=="all")("dark:hover:bg-mt-card",e.statusFilter()!=="all"),l(2),k("bg-mt-coral",e.statusFilter()==="confirmed")("text-mt-text",e.statusFilter()==="confirmed")("bg-gray-200",e.statusFilter()!=="confirmed")("dark:bg-mt-surface",e.statusFilter()!=="confirmed")("text-gray-700",e.statusFilter()!=="confirmed")("dark:text-gray-300",e.statusFilter()!=="confirmed")("hover:bg-mt-orange-dark",e.statusFilter()==="confirmed")("hover:bg-gray-300",e.statusFilter()!=="confirmed")("dark:hover:bg-mt-card",e.statusFilter()!=="confirmed"),l(2),k("bg-mt-coral",e.statusFilter()==="pending")("text-mt-text",e.statusFilter()==="pending")("bg-gray-200",e.statusFilter()!=="pending")("dark:bg-mt-surface",e.statusFilter()!=="pending")("text-gray-700",e.statusFilter()!=="pending")("dark:text-gray-300",e.statusFilter()!=="pending")("hover:bg-mt-orange-dark",e.statusFilter()==="pending")("hover:bg-gray-300",e.statusFilter()!=="pending")("dark:hover:bg-mt-card",e.statusFilter()!=="pending"),l(2),k("bg-mt-coral",e.statusFilter()==="cancelled")("text-mt-text",e.statusFilter()==="cancelled")("bg-gray-200",e.statusFilter()!=="cancelled")("dark:bg-mt-surface",e.statusFilter()!=="cancelled")("text-gray-700",e.statusFilter()!=="cancelled")("dark:text-gray-300",e.statusFilter()!=="cancelled")("hover:bg-mt-orange-dark",e.statusFilter()==="cancelled")("hover:bg-gray-300",e.statusFilter()!=="cancelled")("dark:hover:bg-mt-card",e.statusFilter()!=="cancelled"),l(5),f("value",e.searchQuery()),l(),_(e.isLoading()?58:-1),l(),_(e.error()?59:-1),l(),_(!e.isLoading()&&!e.error()&&e.filteredBookings().length===0?60:-1),l(),_(!e.isLoading()&&!e.error()&&e.filteredBookings().length>0?61:-1),l(),_(e.showCancelModal()?62:-1),l(),_(e.selectedCancellationReason()?63:-1))},dependencies:[L,D],styles:["[_nghost-%COMP%]{--bg-primary: #0F1A2E;--bg-primary-rgb: 15 26 46;--bg-secondary: #1A2233;--bg-secondary-rgb: 26 34 51;--bg-tertiary: #212B3F;--bg-tertiary-rgb: 33 43 63;--bg-card: #131A28;--bg-card-rgb: 19 26 40;--bg-card-hover: #1A2233;--bg-card-hover-rgb: 26 34 51;--bg-inset: #0D1420;--bg-inset-rgb: 13 20 32;--border-color: #24304A;--border-color-rgb: 36 48 74;--border-subtle: rgba(255, 255, 255, .06);--text-primary: #F1F5F9;--text-secondary: #94A3B8;--text-muted: #8091A8;--mt-cal-surface-0: var(--bg-primary);--mt-cal-surface-1: var(--bg-card);--mt-cal-surface-2: var(--bg-secondary);--mt-cal-surface-3: var(--bg-tertiary);--mt-cal-border-1: var(--border-subtle);--mt-cal-border-2: var(--border-color);--mt-cal-border-3: var(--border-color);--mt-cal-text-1: var(--text-primary);--mt-cal-text-2: var(--text-secondary);--mt-cal-text-3: var(--text-muted);--mt-cal-text-4: var(--text-muted)}html.light[_nghost-%COMP%], html.light [_nghost-%COMP%], [data-mode=light][_nghost-%COMP%], [data-mode=light] [_nghost-%COMP%]{--bg-primary: #F7F9FC;--bg-primary-rgb: 247 249 252;--bg-secondary: #FFFFFF;--bg-secondary-rgb: 255 255 255;--bg-tertiary: #EEF2F8;--bg-tertiary-rgb: 238 242 248;--bg-card: #FFFFFF;--bg-card-rgb: 255 255 255;--bg-card-hover: #F7F9FC;--bg-card-hover-rgb: 247 249 252;--bg-inset: #F2F5FA;--bg-inset-rgb: 242 245 250;--border-color: #DCE3ED;--border-color-rgb: 220 227 237;--border-subtle: rgba(15, 24, 38, .08);--text-primary: #0F1826;--text-secondary: #42536B;--text-muted: #5A6B85}html.light[_nghost-%COMP%] .text-gray-100, html.light [_nghost-%COMP%] .text-gray-100, html.light[_nghost-%COMP%] .text-gray-200, html.light [_nghost-%COMP%] .text-gray-200, html.light[_nghost-%COMP%] .text-slate-100, html.light [_nghost-%COMP%] .text-slate-100, html.light[_nghost-%COMP%] .text-slate-200, html.light [_nghost-%COMP%] .text-slate-200, html.light[_nghost-%COMP%] .text-zinc-100, html.light [_nghost-%COMP%] .text-zinc-100, html.light[_nghost-%COMP%] .text-zinc-200, html.light [_nghost-%COMP%] .text-zinc-200, [data-mode=light][_nghost-%COMP%] .text-gray-100, [data-mode=light] [_nghost-%COMP%] .text-gray-100, [data-mode=light][_nghost-%COMP%] .text-gray-200, [data-mode=light] [_nghost-%COMP%] .text-gray-200, [data-mode=light][_nghost-%COMP%] .text-slate-100, [data-mode=light] [_nghost-%COMP%] .text-slate-100, [data-mode=light][_nghost-%COMP%] .text-slate-200, [data-mode=light] [_nghost-%COMP%] .text-slate-200, [data-mode=light][_nghost-%COMP%] .text-zinc-100, [data-mode=light] [_nghost-%COMP%] .text-zinc-100, [data-mode=light][_nghost-%COMP%] .text-zinc-200, [data-mode=light] [_nghost-%COMP%] .text-zinc-200{color:#0f1826!important}html.light[_nghost-%COMP%] .text-gray-300, html.light [_nghost-%COMP%] .text-gray-300, html.light[_nghost-%COMP%] .text-slate-300, html.light [_nghost-%COMP%] .text-slate-300, html.light[_nghost-%COMP%] .text-zinc-300, html.light [_nghost-%COMP%] .text-zinc-300, [data-mode=light][_nghost-%COMP%] .text-gray-300, [data-mode=light] [_nghost-%COMP%] .text-gray-300, [data-mode=light][_nghost-%COMP%] .text-slate-300, [data-mode=light] [_nghost-%COMP%] .text-slate-300, [data-mode=light][_nghost-%COMP%] .text-zinc-300, [data-mode=light] [_nghost-%COMP%] .text-zinc-300{color:#2b3a50!important}html.light[_nghost-%COMP%] .text-gray-400, html.light [_nghost-%COMP%] .text-gray-400, html.light[_nghost-%COMP%] .text-gray-500, html.light [_nghost-%COMP%] .text-gray-500, html.light[_nghost-%COMP%] .text-slate-400, html.light [_nghost-%COMP%] .text-slate-400, html.light[_nghost-%COMP%] .text-slate-500, html.light [_nghost-%COMP%] .text-slate-500, html.light[_nghost-%COMP%] .text-zinc-400, html.light [_nghost-%COMP%] .text-zinc-400, html.light[_nghost-%COMP%] .text-zinc-500, html.light [_nghost-%COMP%] .text-zinc-500, [data-mode=light][_nghost-%COMP%] .text-gray-400, [data-mode=light] [_nghost-%COMP%] .text-gray-400, [data-mode=light][_nghost-%COMP%] .text-gray-500, [data-mode=light] [_nghost-%COMP%] .text-gray-500, [data-mode=light][_nghost-%COMP%] .text-slate-400, [data-mode=light] [_nghost-%COMP%] .text-slate-400, [data-mode=light][_nghost-%COMP%] .text-slate-500, [data-mode=light] [_nghost-%COMP%] .text-slate-500, [data-mode=light][_nghost-%COMP%] .text-zinc-400, [data-mode=light] [_nghost-%COMP%] .text-zinc-400, [data-mode=light][_nghost-%COMP%] .text-zinc-500, [data-mode=light] [_nghost-%COMP%] .text-zinc-500{color:#42536b!important}html.light[_nghost-%COMP%] .opacity-30, html.light [_nghost-%COMP%] .opacity-30, [data-mode=light][_nghost-%COMP%] .opacity-30, [data-mode=light] [_nghost-%COMP%] .opacity-30{opacity:.55!important}html.dark[_nghost-%COMP%] .dark\\:text-gray-400, html.dark [_nghost-%COMP%] .dark\\:text-gray-400, html.dark[_nghost-%COMP%] .dark\\:text-slate-400, html.dark [_nghost-%COMP%] .dark\\:text-slate-400, html.dark[_nghost-%COMP%] .dark\\:text-zinc-400, html.dark [_nghost-%COMP%] .dark\\:text-zinc-400, html.dark[_nghost-%COMP%] .dark\\:text-gray-500, html.dark [_nghost-%COMP%] .dark\\:text-gray-500, html.dark[_nghost-%COMP%] .dark\\:text-slate-500, html.dark [_nghost-%COMP%] .dark\\:text-slate-500, html.dark[_nghost-%COMP%] .dark\\:text-zinc-500, html.dark [_nghost-%COMP%] .dark\\:text-zinc-500, html.dark[_nghost-%COMP%] .text-gray-400, html.dark [_nghost-%COMP%] .text-gray-400, html.dark[_nghost-%COMP%] .text-slate-400, html.dark [_nghost-%COMP%] .text-slate-400, html.dark[_nghost-%COMP%] .text-zinc-400, html.dark [_nghost-%COMP%] .text-zinc-400, [data-mode=dark][_nghost-%COMP%] .dark\\:text-gray-400, [data-mode=dark] [_nghost-%COMP%] .dark\\:text-gray-400, [data-mode=dark][_nghost-%COMP%] .dark\\:text-slate-400, [data-mode=dark] [_nghost-%COMP%] .dark\\:text-slate-400, [data-mode=dark][_nghost-%COMP%] .dark\\:text-zinc-400, [data-mode=dark] [_nghost-%COMP%] .dark\\:text-zinc-400, [data-mode=dark][_nghost-%COMP%] .dark\\:text-gray-500, [data-mode=dark] [_nghost-%COMP%] .dark\\:text-gray-500, [data-mode=dark][_nghost-%COMP%] .dark\\:text-slate-500, [data-mode=dark] [_nghost-%COMP%] .dark\\:text-slate-500, [data-mode=dark][_nghost-%COMP%] .dark\\:text-zinc-500, [data-mode=dark] [_nghost-%COMP%] .dark\\:text-zinc-500, [data-mode=dark][_nghost-%COMP%] .text-gray-400, [data-mode=dark] [_nghost-%COMP%] .text-gray-400, [data-mode=dark][_nghost-%COMP%] .text-slate-400, [data-mode=dark] [_nghost-%COMP%] .text-slate-400, [data-mode=dark][_nghost-%COMP%] .text-zinc-400, [data-mode=dark] [_nghost-%COMP%] .text-zinc-400{color:#cbd5e1!important}html.dark[_nghost-%COMP%] .dark\\:text-gray-600, html.dark [_nghost-%COMP%] .dark\\:text-gray-600, html.dark[_nghost-%COMP%] .dark\\:text-slate-600, html.dark [_nghost-%COMP%] .dark\\:text-slate-600, html.dark[_nghost-%COMP%] .dark\\:text-zinc-600, html.dark [_nghost-%COMP%] .dark\\:text-zinc-600, [data-mode=dark][_nghost-%COMP%] .dark\\:text-gray-600, [data-mode=dark] [_nghost-%COMP%] .dark\\:text-gray-600, [data-mode=dark][_nghost-%COMP%] .dark\\:text-slate-600, [data-mode=dark] [_nghost-%COMP%] .dark\\:text-slate-600, [data-mode=dark][_nghost-%COMP%] .dark\\:text-zinc-600, [data-mode=dark] [_nghost-%COMP%] .dark\\:text-zinc-600{color:#94a3b8!important}[_nghost-%COMP%] .bg-mt-card.rounded-xl, [_nghost-%COMP%] .dark\\:bg-mt-card.rounded-xl, [_nghost-%COMP%] .bg-mt-card.rounded-lg.shadow-sm{border:.5px solid var(--border-color, #24304A)!important;border-left:3px solid var(--accent-teal, #00bcd4)!important}[_nghost-%COMP%] .bg-mt-card:has(table), [_nghost-%COMP%] .dark\\:bg-mt-card:has(table){border:.5px solid var(--border-color, #24304A)!important;border-left:1px solid var(--accent-coral, #f97066)!important}[_nghost-%COMP%] .grid-cols-2>.bg-mt-card.rounded-xl, [_nghost-%COMP%] .grid-cols-2>.dark\\:bg-mt-card.rounded-xl, [_nghost-%COMP%] .grid-cols-3>.bg-mt-card.rounded-xl, [_nghost-%COMP%] .grid-cols-3>.dark\\:bg-mt-card.rounded-xl, [_nghost-%COMP%] .grid-cols-4>.bg-mt-card.rounded-xl, [_nghost-%COMP%] .grid-cols-4>.dark\\:bg-mt-card.rounded-xl{border-left:.5px solid var(--border-color, #24304A)!important;border-top:3px solid var(--accent-teal, #00bcd4)!important}[_nghost-%COMP%] thead tr{background:rgba(var(--accent-teal-rgb, 0 188 212)/.1)!important;border-bottom:2px solid rgba(var(--accent-teal-rgb, 0 188 212)/.35)!important}[_nghost-%COMP%] thead th{color:var(--accent-teal, #00bcd4)!important}.appointment-booking-list[_ngcontent-%COMP%]{padding:1.5rem;width:100%}.list-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;gap:2rem}.list-header[_ngcontent-%COMP%] .header-left[_ngcontent-%COMP%]{flex:1}.list-header[_ngcontent-%COMP%] .header-left[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{font-size:1.75rem;font-weight:600;margin:0 0 1rem;color:var(--text-primary)}.list-header[_ngcontent-%COMP%] .header-right[_ngcontent-%COMP%]{display:flex;gap:.75rem}.stats[_ngcontent-%COMP%]{display:flex;gap:1.5rem}.stats[_ngcontent-%COMP%] .stat[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;padding:.75rem 1.25rem;background:var(--bg-secondary);border-radius:8px;border:1px solid #dee2e6}.stats[_ngcontent-%COMP%] .stat[_ngcontent-%COMP%] .stat-value[_ngcontent-%COMP%]{font-size:1.5rem;font-weight:600;color:var(--text-primary)}.stats[_ngcontent-%COMP%] .stat[_ngcontent-%COMP%] .stat-label[_ngcontent-%COMP%]{font-size:.75rem;color:var(--text-secondary);margin-top:.25rem}.stats[_ngcontent-%COMP%] .stat.stat-confirmed[_ngcontent-%COMP%]{background:rgba(var(--accent-green-rgb, 16 185 129)/.15);border-color:var(--accent-green, #10b981)}.stats[_ngcontent-%COMP%] .stat.stat-confirmed[_ngcontent-%COMP%] .stat-value[_ngcontent-%COMP%]{color:var(--accent-green, #065f46)}.stats[_ngcontent-%COMP%] .stat.stat-pending[_ngcontent-%COMP%]{background:rgba(var(--accent-orange-rgb, 245 158 11)/.15);border-color:var(--accent-orange, #f59e0b)}.stats[_ngcontent-%COMP%] .stat.stat-pending[_ngcontent-%COMP%] .stat-value[_ngcontent-%COMP%]{color:var(--text-primary)}.stats[_ngcontent-%COMP%] .stat.stat-cancelled[_ngcontent-%COMP%]{background:rgba(var(--accent-coral-rgb, 239 68 68)/.1);border-color:var(--accent-coral, #ef4444)}.stats[_ngcontent-%COMP%] .stat.stat-cancelled[_ngcontent-%COMP%] .stat-value[_ngcontent-%COMP%]{color:var(--accent-coral, #991b1b)}.btn-export[_ngcontent-%COMP%], .btn-refresh[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;background:var(--bg-secondary);border:1px solid #dee2e6;border-radius:6px;cursor:pointer;font-size:.875rem;transition:all .2s}.btn-export[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%], .btn-refresh[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{font-size:1rem}.btn-export[_ngcontent-%COMP%]:hover:not(:disabled), .btn-refresh[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--bg-tertiary, #e9ecef)}.btn-export[_ngcontent-%COMP%]:disabled, .btn-refresh[_ngcontent-%COMP%]:disabled{opacity:.6;cursor:not-allowed}.btn-export[_ngcontent-%COMP%]{background:var(--accent-cyan, var(--accent-teal, #3b82f6));color:var(--text-primary);border-color:var(--accent-cyan, var(--accent-teal, #3b82f6))}.btn-export[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--accent-cyan, #2563eb)}.alert[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-radius:8px;margin-bottom:1.5rem;animation:_ngcontent-%COMP%_slideDown .3s ease-out}.alert[_ngcontent-%COMP%] .alert-content[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem}.alert[_ngcontent-%COMP%] .alert-icon[_ngcontent-%COMP%]{font-size:1.25rem;font-weight:700}.alert[_ngcontent-%COMP%] .alert-message[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500}.alert[_ngcontent-%COMP%] .alert-close[_ngcontent-%COMP%]{background:none;border:none;font-size:1.5rem;cursor:pointer;opacity:.6;transition:opacity .2s;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.alert[_ngcontent-%COMP%] .alert-close[_ngcontent-%COMP%]:hover{opacity:1}.alert.alert-success[_ngcontent-%COMP%]{background:rgba(var(--accent-green-rgb, 16 185 129)/.15);border:1px solid #10b981;color:var(--accent-green, #065f46)}.alert.alert-success[_ngcontent-%COMP%] .alert-icon[_ngcontent-%COMP%]{color:var(--accent-green, #10b981)}.alert.alert-error[_ngcontent-%COMP%]{background:rgba(var(--accent-coral-rgb, 239 68 68)/.1);border:1px solid #ef4444;color:var(--accent-coral, #991b1b)}.alert.alert-error[_ngcontent-%COMP%] .alert-icon[_ngcontent-%COMP%]{color:var(--accent-coral, #ef4444)}@keyframes _ngcontent-%COMP%_slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.modal-overlay[_ngcontent-%COMP%]{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:_ngcontent-%COMP%_fadeIn .2s ease-out}.modal-content[_ngcontent-%COMP%]{background:var(--bg-card);border-radius:12px;width:90%;max-width:500px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;animation:_ngcontent-%COMP%_slideUp .3s ease-out}.modal-content.modal-small[_ngcontent-%COMP%]{max-width:400px}.modal-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px soli
1d #e9ecef}.modal-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:0;font-size:1.25rem;font-weight:600;color:var(--text-primary)}.modal-header[_ngcontent-%COMP%] .modal-close[_ngcontent-%COMP%]{background:none;border:none;font-size:2rem;cursor:pointer;color:var(--text-secondary);padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.modal-header[_ngcontent-%COMP%] .modal-close[_ngcontent-%COMP%]:hover{background:var(--bg-secondary);color:var(--text-primary)}.modal-body[_ngcontent-%COMP%]{padding:1.5rem}.modal-body[_ngcontent-%COMP%] .reason-text[_ngcontent-%COMP%]{margin:0;padding:1rem;background:var(--bg-secondary);border-radius:6px;font-size:.875rem;color:var(--text-secondary);line-height:1.6;white-space:pre-wrap}.booking-info[_ngcontent-%COMP%]{background:var(--bg-secondary);padding:1rem;border-radius:8px;margin-bottom:1.5rem}.booking-info[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:.5rem 0;font-size:.875rem;color:var(--text-secondary)}.booking-info[_ngcontent-%COMP%] p[_ngcontent-%COMP%]:first-child{margin-top:0}.booking-info[_ngcontent-%COMP%] p[_ngcontent-%COMP%]:last-child{margin-bottom:0}.booking-info[_ngcontent-%COMP%] p[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--text-primary);font-weight:600}.form-group[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{display:block;font-size:.875rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.form-group[_ngcontent-%COMP%] .form-textarea[_ngcontent-%COMP%]{width:100%;padding:.75rem;border:1px solid #dee2e6;border-radius:6px;font-size:.875rem;font-family:inherit;resize:vertical;transition:border-color .2s,box-shadow .2s}.form-group[_ngcontent-%COMP%] .form-textarea[_ngcontent-%COMP%]:focus{outline:none;border-color:var(--accent-cyan, var(--accent-teal, #3b82f6));box-shadow:0 0 0 3px #3b82f61a}.form-group[_ngcontent-%COMP%] .form-hint[_ngcontent-%COMP%]{margin-top:.5rem;font-size:.75rem;color:var(--text-secondary)}.modal-footer[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;gap:.75rem;padding:1.5rem;border-top:1px solid #e9ecef}.btn-modal[_ngcontent-%COMP%]{padding:.625rem 1.25rem;border:none;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-modal.btn-secondary[_ngcontent-%COMP%]{background:var(--bg-secondary);color:var(--text-secondary);border:1px solid #dee2e6}.btn-modal.btn-secondary[_ngcontent-%COMP%]:hover{background:var(--bg-tertiary, #e9ecef)}.btn-modal.btn-danger[_ngcontent-%COMP%]{background:var(--accent-coral, #dc3545);color:var(--text-primary)}.btn-modal.btn-danger[_ngcontent-%COMP%]:hover{background:var(--accent-coral, #c82333)}@keyframes _ngcontent-%COMP%_fadeIn{0%{opacity:0}to{opacity:1}}@keyframes _ngcontent-%COMP%_slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.filters[_ngcontent-%COMP%]{display:flex;gap:2rem;margin-bottom:1.5rem;padding:1rem;background:var(--bg-secondary);border-radius:8px}.filters[_ngcontent-%COMP%] .filter-group[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem}.filters[_ngcontent-%COMP%] .filter-group[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:600;color:var(--text-primary);white-space:nowrap}.filters[_ngcontent-%COMP%] .filter-buttons[_ngcontent-%COMP%]{display:flex;gap:.5rem}.filters[_ngcontent-%COMP%] .filter-buttons[_ngcontent-%COMP%] .filter-btn[_ngcontent-%COMP%]{padding:.5rem 1rem;background:var(--bg-card);border:1px solid #dee2e6;border-radius:6px;cursor:pointer;font-size:.875rem;transition:all .2s}.filters[_ngcontent-%COMP%] .filter-buttons[_ngcontent-%COMP%] .filter-btn[_ngcontent-%COMP%]:hover{background:var(--bg-tertiary, #e9ecef)}.filters[_ngcontent-%COMP%] .filter-buttons[_ngcontent-%COMP%] .filter-btn.active[_ngcontent-%COMP%]{background:var(--accent-cyan, var(--accent-teal, #3b82f6));color:var(--text-primary);border-color:var(--accent-cyan, var(--accent-teal, #3b82f6))}.filters[_ngcontent-%COMP%] .search-input[_ngcontent-%COMP%]{padding:.5rem 1rem;border:1px solid #dee2e6;border-radius:6px;font-size:.875rem;min-width:300px}.filters[_ngcontent-%COMP%] .search-input[_ngcontent-%COMP%]:focus{outline:none;border-color:var(--accent-cyan, var(--accent-teal, #3b82f6));box-shadow:0 0 0 3px #3b82f61a}.loading-state[_ngcontent-%COMP%], .error-state[_ngcontent-%COMP%], .empty-state[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;text-align:center}.loading-state[_ngcontent-%COMP%] .spinner[_ngcontent-%COMP%]{width:40px;height:40px;border:3px solid #f3f3f3;border-top:3px solid var(--accent-teal, #3b82f6);border-radius:50%;animation:_ngcontent-%COMP%_spin 1s linear infinite;margin-bottom:1rem}.loading-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{color:var(--text-secondary);font-size:.875rem}@keyframes _ngcontent-%COMP%_spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-state[_ngcontent-%COMP%]{color:var(--accent-coral, #dc3545)}.error-state[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{font-size:3rem;margin-bottom:1rem}.error-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin-bottom:1rem;font-size:.875rem}.error-state[_ngcontent-%COMP%] .btn-retry[_ngcontent-%COMP%]{padding:.5rem 1.5rem;background:var(--accent-coral, #dc3545);color:var(--text-primary);border:none;border-radius:6px;cursor:pointer;font-size:.875rem;transition:background .2s}.error-state[_ngcontent-%COMP%] .btn-retry[_ngcontent-%COMP%]:hover{background:var(--accent-coral, #c82333)}.empty-state[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{font-size:4rem;margin-bottom:1rem}.empty-state[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{font-size:1.25rem;font-weight:600;margin-bottom:.5rem;color:var(--text-primary)}.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{color:var(--text-secondary);font-size:.875rem}.booking-table[_ngcontent-%COMP%]{background:var(--bg-card);border:1px solid #dee2e6;border-radius:8px;overflow:hidden}.booking-table[_ngcontent-%COMP%] table[_ngcontent-%COMP%]{width:100%;border-collapse:collapse}.booking-table[_ngcontent-%COMP%] table[_ngcontent-%COMP%] thead[_ngcontent-%COMP%]{background:var(--bg-secondary)}.booking-table[_ngcontent-%COMP%] table[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{padding:1rem;text-align:left;font-size:.8125rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #dee2e6}.booking-table[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]{border-bottom:1px solid #e9ecef;transition:background .2s}.booking-table[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover{background:var(--bg-secondary)}.booking-table[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr.status-cancelled[_ngcontent-%COMP%]{opacity:.6}.booking-table[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:1rem;font-size:.875rem}.guest-info[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{display:block;color:var(--text-primary);margin-bottom:.25rem}.guest-info[_ngcontent-%COMP%] .timezone[_ngcontent-%COMP%]{display:inline-block;padding:.125rem .5rem;background:var(--bg-tertiary, #e9ecef);border-radius:4px;font-size:.75rem;color:var(--text-secondary)}.contact-info[_ngcontent-%COMP%] .email[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;color:var(--text-primary);margin-bottom:.25rem}.contact-info[_ngcontent-%COMP%] .phone[_ngcontent-%COMP%]{color:var(--text-secondary);font-size:.8125rem}.contact-info[_ngcontent-%COMP%] .btn-copy-small[_ngcontent-%COMP%]{background:none;border:none;cursor:pointer;font-size:.875rem;padding:.125rem;opacity:.6;transition:opacity .2s}.contact-info[_ngcontent-%COMP%] .btn-copy-small[_ngcontent-%COMP%]:hover{opacity:1}.time-info[_ngcontent-%COMP%] .datetime[_ngcontent-%COMP%]{color:var(--text-primary);font-weight:500;margin-bottom:.25rem}
1.time-info[_ngcontent-%COMP%] .local-time[_ngcontent-%COMP%]{color:var(--text-secondary);font-size:.8125rem}.status-badge[_ngcontent-%COMP%]{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600}.status-badge.status-confirmed[_ngcontent-%COMP%]{background:rgba(var(--accent-green-rgb, 16 185 129)/.15);color:var(--accent-green, #065f46)}.status-badge.status-pending[_ngcontent-%COMP%]{background:rgba(var(--accent-orange-rgb, 245 158 11)/.15);color:var(--text-primary)}.status-badge.status-cancelled[_ngcontent-%COMP%]{background:rgba(var(--accent-coral-rgb, 239 68 68)/.1);color:var(--accent-coral, #991b1b)}.status-badge.status-rescheduled[_ngcontent-%COMP%]{background:#dbeafe;color:#1e40af}.status-badge.status-completed[_ngcontent-%COMP%]{background:var(--bg-tertiary, #e9ecef);color:var(--text-secondary)}.created-info[_ngcontent-%COMP%]{color:var(--text-secondary);font-size:.8125rem}.actions[_ngcontent-%COMP%]{display:flex;gap:.5rem}.actions[_ngcontent-%COMP%] .btn-action[_ngcontent-%COMP%]{padding:.375rem .75rem;border:1px solid #dee2e6;border-radius:6px;cursor:pointer;font-size:.8125rem;transition:all .2s;background:var(--bg-card);display:flex;align-items:center;gap:.25rem}.actions[_ngcontent-%COMP%] .btn-action[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--bg-secondary)}.actions[_ngcontent-%COMP%] .btn-action[_ngcontent-%COMP%]:disabled{opacity:.6;cursor:not-allowed}.actions[_ngcontent-%COMP%] .btn-action.btn-approve[_ngcontent-%COMP%]{color:var(--accent-green, #10b981);border-color:var(--accent-green, #10b981);font-weight:600}.actions[_ngcontent-%COMP%] .btn-action.btn-approve[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--accent-green, #10b981);color:var(--text-primary)}.actions[_ngcontent-%COMP%] .btn-action.btn-approve[_ngcontent-%COMP%] .spinner[_ngcontent-%COMP%]{width:14px;height:14px;border:2px solid #f3f3f3;border-top:2px solid #10b981;border-radius:50%;animation:_ngcontent-%COMP%_spin .8s linear infinite}.actions[_ngcontent-%COMP%] .btn-action.btn-cancel[_ngcontent-%COMP%]{color:var(--accent-coral, #dc3545);border-color:var(--accent-coral, #dc3545)}.actions[_ngcontent-%COMP%] .btn-action.btn-cancel[_ngcontent-%COMP%]:hover{background:var(--accent-coral, #dc3545);color:var(--text-primary)}.actions[_ngcontent-%COMP%] .btn-action.btn-info[_ngcontent-%COMP%]{color:var(--accent-cyan, var(--accent-teal, #3b82f6));border-color:var(--accent-cyan, var(--accent-teal, #3b82f6))}.actions[_ngcontent-%COMP%] .btn-action.btn-info[_ngcontent-%COMP%]:hover{background:var(--accent-cyan, var(--accent-teal, #3b82f6));color:var(--text-primary)}"],changeDetection:0})}}return r})()});_t();export{yt as AppointmentBookingListComponent};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.