1!function(){const ee="cal-element-embed-light",O="cal-element-embed-dark",we=".cal-embed{border:0px;min-height:300px;margin:0 auto;width:100%;display:block!important;color-scheme:unset!important}",ve=({buttonText:o,buttonClasses:e,buttonColor:t,buttonTextColor:r})=>`<button class="z-999999999999 hidden fixed md:bottom-6 bottom-4 md:right-10 right-4 md:left-10 left-4 ${e.join(" ")} flex h-16 origin-center bg-red-50 transform cursor-pointer items-center 2rounded-full py-4 px-6 text-base outline-none drop-shadow-md transition focus:outline-none fo 3cus:ring-4 focus:ring-gray-600 focus:ring-opacity-50 active:scale-95" 4style="background-color:${t}; color:${r} z-index: 10001"> 5<div id="button-icon" class="flex items-center justify-center"> 6 <svg 7 class="h-7 w-7" 8 fill="none" 9 stroke="currentColor" 10 viewBox="0 0 24 24" 11 xmlns="http://www.w3.org/2000/svg"> 12 <path 13 strokeLinecap="round" 14 strokeLinejoin="round" 15 strokeWidth="2" 16 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> 17 </svg> 18</div> 19<div id="button" class="ml-3 font-semibold leading-5 antialiased">${o}</div> 20</button>`,xe=["data-button-text","data-hide-button-icon","data-button-position","data-button-color","data-button-text-color","data-toggle-off"];class A extends HTMLElement{static updatedClassString(e,t){return[t.replace(/hidden|md:right-10|md:left-10|left-4|right-4/g,""),e==="bottom-right"?"md:right-10 right-4":"md:left-10 left-4"].join(" ")}static get observedAttributes(){return xe}attributeChangedCallback(e,t,r){var l,c,d;const a=(l=this.shadowRoot)==null?void 0:l.querySelector("#button"),i=(c=this.shadowRoot)==null?void 0:c.querySelector("button"),n=(d=this.shadowRoot)==null?void 0:d.querySelector("#button-icon");if(!a)throw new Error("#button not found");if(!i)throw new Error("button element not found");if(!n)throw new Error("#button-icon not found");if(e==="data-button-text")a.textContent=r;else if(e==="data-hide-button-icon")n.style.display=r=="true"?"none":"block";else if(e==="data-button-position")i.className=A.updatedClassString(r,i.className);else if(e==="data-button-color")i.style.backgroundColor=r;else if(e==="data-button-text-color")i.style.color=r;else if(e==="data-toggle-off"){const h=r=="true";h&&(this.buttonWrapperStyleDisplay=i.style.display),i.style.display=h?"none":this.buttonWrapperStyleDisplay}else console.log("Unknown attribute changed",e,t,r)}assertHasShadowRoot(){if(!this.shadowRoot)throw new Error("No shadow root")}constructor(){super();const e=this.dataset,t=e.buttonText,r=e.buttonPosition,a=e.buttonColor,i=e.buttonTextColor,n=`<style>${window.Cal.__css}</style> ${ve({buttonText:t,buttonClasses:[A.updatedClassString(r,"")],buttonColor:a,buttonTextColor:i})}`;this.attachShadow({mode:"open"}),this.assertHasShadowRoot(),this.shadowRoot.innerHTML=n}}function te(){return window.innerHeight-100}function ye(o){return window.matchMedia(o).matches}function B({layout:o}){if(ye("(max-width: 768px)"))return"mobile";const t="month_view";return o==="mobile"?t:o??t}function ke(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function j(o){return o==="dark"?O:ee}function re(o){return o==="dark"||o==="light"}function Se({theme:o}){const e=ke();return re(o)?j(o):j(e)}let H=null;function ae(){return H||(H=window.matchMedia("(prefers-color-scheme: dark)")),H}function Ee(o){ae().addEventListener("change",o)}function Ce(o){var e;(e=ae())==null||e.removeEventListener("change",o)}var Le={};class oe extends HTMLElement{constructor(e){super(),this.skeletonContainerHeightTimer=null,Le.INTEGRATION_TEST_MODE&&Object.assign(this.dataset,e.dataset),this.isModal=e.isModal,this.layout=this.getLayout(),this.theme=this.dataset.theme,this.setTheme(this.theme),this.getSkeletonData=e.getSkeletonData,this.boundResizeHandler=this.resizeHandler.bind(this),this.boundPrefersDarkThemeChangedHandler=this.prefersDarkThemeChangedHandler.bind(this),this.boundEnsureContainerTakesSkeletonHeightWhenVisible=this.ensureContainerTakesSkeletonHeightWhenVisible.bind(this)}isSkeletonSupportedPageType(){return!!this.getPageType()}assertHasShadowRoot(){if(!this.shadowRoot)throw new Error("No shadow root")}getPageType(){return this.dataset.pageType}getLayout(){return B({layout:this.dataset.layout??null})}getSkeletonContainerElement(){this.assertHasShadowRoot();const e=this.shadowRoot.querySelector("#skeleton-container");if(!e)throw new Error("No skeleton container element");return e}getSkeletonElement(){this.assertHasShadowRoot();const e=this.shadowRoot.querySelector("#skeleton");if(!e)throw new Error("No skeleton element");return e}ensureContainerTakesSkeletonHeightWhenVisible(){const e=this.getSkeletonElement(),t=this.getSkeletonContainerElement(),r=this.isModal,a=parseFloat(getComputedStyle(e).height);if(r){const n=t;if(a)n.style.maxHeight=`${te()}px`,n.style.height=`${a}px`;else{n.style.height="",n.style.maxHeight="";return}}else{const n=t,c=a-300;if(a)c>0&&(n.style.height=`${c}px`);else{n.style.height="";return}}const i=requestAnimationFrame(this.boundEnsureContainerTakesSkeletonHeightWhenVisible);return this.skeletonContainerHeightTimer=i,i}getLoaderElement(){this.assertHasShadowRoot();const e=this.shadowRoot.querySelector(".loader");if(!e)throw new Error("No loader element");return e}toggleLoader(e){const t=this.getSkeletonElement(),r=this.getLoaderElement(),a=this.getSkeletonContainerElement();if(!this.isSkeletonSupportedPageType())r.style.display=e?"block":"none",t.style.display="none";else if(t.style.display=e?"block":"none",r.style.display="none",!this.isModal&&!e){const n=a;n.style.display="none"}this.ensureContainerTakesSkeletonHeightWhenVisible()}
20isSkeletonLoaderVisible(){return this.getSkeletonElement().style.display!=="none"}resizeHandler(){const e=B({layout:this.layout??null});if(e===this.layout||(this.layout=e,!this.isSkeletonLoaderVisible()))return;const{skeletonContent:t,skeletonContainerStyle:r,skeletonStyle:a}=this.getSkeletonData({layout:this.getLayout(),pageType:this.getPageType()??null}),i=this.getSkeletonContainerElement(),n=this.getSkeletonElement();i.setAttribute("style",r),n.setAttribute("style",a),n.innerHTML=t}setTheme(e){const t=[O,ee],r=Se({theme:e});r!==this.themeClass&&(this.themeClass=r,this.classList.remove(...t),this.classList.add(this.themeClass))}prefersDarkThemeChangedHandler(e){const t=e.matches;re(this.theme)||this.setTheme(t?"dark":"light")}connectedCallback(){this.toggleLoader(!0),window.addEventListener("resize",this.boundResizeHandler),Ee(this.boundPrefersDarkThemeChangedHandler)}disconnectedCallback(){this.skeletonContainerHeightTimer&&cancelAnimationFrame(this.skeletonContainerHeightTimer),window.removeEventListener("resize",this.boundResizeHandler),Ce(this.boundPrefersDarkThemeChangedHandler)}}const ie=({errorCode:o,errorMessage:e})=>{const t="Something went wrong.";return o==="404"?(e=e??"Cal Link seems to be wrong.",`Error Code: 404. ${e}`):o==="routerError"?(e=e??t,`Error Code: routerError. ${e}`):(e=e??t,`Error Code: ${o}. ${e}`)};function ne(o){const e={};if(o===null)return e;for(const[t,r]of o)if(e.hasOwnProperty(t)){let a=e[t];Array.isArray(a)||(a=[a]),a.push(r),e[t]=a}else e[t]=r;return e}function ze(){return["flag.coep","layout","ui.color-scheme","theme","cal.embed.pageType","ui.autoscroll"]}function E(o,e){return ze().includes(e)?o[e]??null:(console.warn(`Not reading unknown config prop: ${e}`),null)}function Te(o){return o.charAt(0).toLowerCase()+o.slice(1).replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}function Me(o){return o.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}function U(o){return Object.entries(o).filter(e=>!!e[1]).map(([e,t])=>`data-${Te(e)}="${Me(t)}"`).join(" ")}function Q(o){return new URL(o,"http://baseUrl.example").pathname==="/router"}function Re({bookingLinkPath1:o,bookingLinkPath2:e}){return o.replace(/^\/team\//,"/")===e.replace(/^\/team\//,"/")}function Pe({config:o,isHeadlessRouterPath:e,backgroundSlotsFetch:t}){return e&&(o["cal.queueFormResponse"]="true"),t||(o["cal.skipSlotsFetch"]="true"),{...o,prerender:"true"}}const se="@keyframes loader{0%{transform:rotate(0)}25%{transform:rotate(180deg)}50%{transform:rotate(180deg)}75%{transform:rotate(360deg)}to{transform:rotate(360deg)}}@keyframes loader-inner{0%{height:0%}25%{height:0%}50%{height:100%}75%{height:100%}to{height:0%}}.loader-inner{vertical-align:top;display:inline-block;width:100%;animation:loader-inner 2s infinite ease-in}.loader{display:block;width:30px;height:30px;position:relative;border-width:4px;border-style:solid;-webkit-animation:loader 2s infinite ease;animation:loader 2s infinite ease}.loader.modal-loader{margin:60px auto}",W=()=>` 21 <div class="relative z-10 p-6" data-testid="event-meta"> 22 <div style="opacity: 1; transform: none;"> 23 <ul class="flex items-center border-muted"> 24 <li class="-mr-1 inline-block"> 25 <span class="bg-emphasis relative inline-flex aspect-square items-center justify-center border align-top w-6 h-6 min-w-6 min-h-6 rounded-full overflow-hidden border-subtle"> 26 <div class="animate-pulse bg-emphasis w-full h-full"></div> 27 </span> 28 </li> 29 </ul> 30 <p class="text-subtle mt-2 text-sm font-semibold"> 31 <div class="animate-pulse bg-emphasis h-4 w-24 rounded-sm"></div> 32 </p> 33 <h1 data-testid="event-title" class="text-text text-xl font-semibold my-2 mb-4"> 34 <div class="animate-pulse bg-emphasis h-6 w-20 rounded-sm"></div> 35 </h1> 36 <div class="stack-y-3 font-medium"> 37 38 <div class="flex items-start justify-start text-sm text-text"> 39 <div class="animate-pulse bg-emphasis h-4 w-4 mr-2 rounded-full"></div> 40 <div class="animate-pulse bg-emphasis h-4 w-10 rounded-sm"></div> 41 </div> 42 <div class="flex items-start justify-start text-sm text-text"> 43 <div class="animate-pulse bg-emphasis h-4 w-4 mr-2 rounded-full"></div> 44 <div class="animate-pulse bg-emphasis h-4 w-20 rounded-sm mr-1"></div>
45 <div class="animate-pulse bg-emphasis h-4 w-4 rounded-sm"></div> 46 </div> 47 48 </div> 49 </div> 50 </div> 51 `,V=()=>{const o=Array(7).fill(0).map(()=>` 52 <div class="text-emphasis my-4 text-xs font-medium uppercase tracking-widest"> 53 <div class="animate-pulse bg-emphasis h-4 w-8 rounded-sm"></div> 54 </div> 55 `).join(""),e=new Date,t=new Date(e.getFullYear(),e.getMonth(),1),r=0,a=t.getDay(),i=new Date(e.getFullYear(),e.getMonth()+1,0).getDate(),n=(a-r+7)%7,c=42-n-i;let d="";for(let s=0;s<n;s++)d+=` 56 <div class="relative w-full pt-[100%]"></div>`;for(let s=1;s<=i;s++)d+=` 57 <div class="relative w-full pt-[100%]"> 58 <button class="bg-cal-muted text-muted absolute bottom-0 left-0 right-0 top-0 mx-auto flex w-full items-center justify-center rounded-sm border-transparent text-center font-medium opacity-90 transition" disabled=""> 59 <span class="font-size-0 bg-emphasis inline-block animate-pulse rounded-md empty:before:inline-block empty:before:content-[''] h-9 w-9"></span> 60 </button> 61 </div>`;for(let s=0;s<c;s++)d+=` 62 <div class="relative w-full pt-[100%]"></div>`;return` 63 <div> 64 <div class="mb-1 flex items-center justify-between text-xl"> 65 <span class="text-default w-1/2 text-base"> 66 <time datetime="${`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}`}" data-testid="selected-month-label"> 67 <span class="text-emphasis font-semibold"> 68 <div class="animate-pulse bg-emphasis h-4 w-20 rounded-sm"></div> 69 </span> 70 </time> 71 </span> 72 <div class="text-emphasis"> 73 <div class="flex"> 74 <button class="group whitespace-nowrap items-center font-medium relative rounded-[10px] disabled:cursor-not-allowed gap-1 flex justify-center text-subtle border border-transparent enabled:hover:bg-subtle enabled:hover:text-emphasis enabled:hover:border-subtle hover:border disabled:opacity-30 focus-visible:bg-subtle focus-visible:outline-none focus-visible:ring-0 focus-visible:border-subtle focus-visible:shadow-button-outline-gray-focused enabled:active:shadow-outline-gray-active duration-200 text-sm leading-none min-h-[36px] min-w-[36px] p-2! hover:border-default group p-1 opacity-70 transition hover:opacity-100 rtl:rotate-180" data-testid="decrementMonth" aria-label="View previous month" type="button" disabled> 75 <svg height="16" width="16" class="fill-transparent visible button-icon group-active:translate-y-[0.5px] h-4 w-4" data-name="start-icon" aria-hidden="true"> 76 <use href="#chevron-left"></use> 77 </svg> 78 <div class="contents visible group-active:translate-y-[0.5px]"></div> 79 </button> 80 <button class="group whitespace-nowrap items-center font-medium relative rounded-[10px] disabled:cursor-not-allowed gap-1 flex justify-center text-subtle border border-transparent enabled:hover:bg-subtle enabled:hover:text-emphasis enabled:hover:border-subtle hover:border disabled:opacity-30 focus-visible:bg-subtle focus-visible:outline-none focus-visible:ring-0 focus-visible:border-subtle focus-visible:shadow-button-outline-gray-focused enabled:active:shadow-outline-gray-active duration-200 text-sm leading-none min-h-[36px] min-w-[36px] p-2! hover:border-default group p-1 opacity-70 transition hover:opacity-100 rtl:rotate-180 undefined" data-testid="incrementMonth" aria-label="View next month" type="button"> 81 <svg height="16" width="16" class="fill-transparent visible button-icon group-active:translate-y-[0.5px] h-4 w-4" data-name="start-icon" aria-hidden="true"> 82 <use href="#chevron-right"></use> 83 </svg> 84 <div class="contents visible group-active:translate-y-[0.5px]"></div> 85 </button> 86 </div> 87 </div> 88 </div> 89 <div class="border-subtle mb-2 grid grid-cols-7 gap-4 border-b border-t text-center md:mb-0 md:border-0"> 90 ${o} 91 </div> 92 <div class="relative grid grid-cols-7 grid-rows-6 gap-1 text-center"> 93 ${d} 94 </div> 95 </div>`},G=({layout:o})=>o==="mobile"?` 96 <div 97 data-testid="booker-container" 98 class="[--booker-timeslots-width:240px] lg:[--booker-timeslots-width:280px] [--booker-main-width:480px] [--booker-meta-width:340px] lg:[--booker-meta-width:424px] bg-default dark:bg-cal-muted grid max-w-full items-start dark:scheme-d
98ark sm:transition-[width] sm:duration-300 sm:motion-reduce:transition-none md:flex-row border-subtle rounded-md" 99 style="grid-template-areas: "meta" "header" "main" "timeslots"; width: 100%; grid-template-columns: 100%; grid-template-rows: minmax(min-content, max-content) 1fr; min-height: 0px; height: auto;"> 100 <div 101 class="relative z-10 flex [grid-area:meta]"> 102 <div class="[grid-area:meta] max-w-screen flex w-full flex-col md:w-(--booker-meta-width)"> 103 ${W()} 104 <div class="mt-auto px-5 py-3"> 105 ${V()} 106 </div> 107 </div> 108 </div> 109 <div class="[grid-area:main] md:border-subtle -ml-px h-full shrink px-5 py-3 md:border-l lg:w-(--booker-main-width)" style="opacity: 1; transform: none;"> 110 </div> 111 </div> 112`:` 113 <div 114 data-testid="booker-container" 115 class="[--booker-timeslots-width:240px] lg:[--booker-timeslots-width:280px] [--booker-meta-width:240px] [--booker-main-width:480px] lg:[--booker-meta-width:280px] bg-default grid max-w-full items-start dark:scheme-dark sm:motion-reduce:transition-none md:flex-row rounded-md sm:transition-[width] sm:duration-300 border-subtle border undefined" 116 style="grid-template-areas: "meta main main" "meta main main"; width: calc(var(--booker-meta-width) + var(--booker-main-width)); grid-template-columns: var(--booker-meta-width) var(--booker-main-width); grid-template-rows: 1fr 0fr; min-height: 450px; height: auto;"> 117 <div 118 class="relative z-10 flex [grid-area:meta]" 119 style="position: sticky; top: 0px;"> 120 ${W()} 121 </div> 122 <div class="[grid-area:main] md:border-subtle -ml-px h-full shrink px-5 py-3 md:border-l lg:w-(--booker-main-width)" style="opacity: 1; transform: none;"> 123 ${V()} 124 </div> 125 </div> 126`,le=({layout:o="month_view",pageType:e})=>{const t=G({layout:o});return e&&(e==="user.event.booking.slots"||e==="team.event.booking.slots")?G({layout:o}):t};function ce(o){return o===O?"dark":"light"}const Ae=({layout:o="month_view",pageType:e,externalThemeClass:t})=>{const{skeletonContent:r,skeletonContainerStyle:a,skeletonStyle:i}=de({layout:o,pageType:e}),n=ce(t);return` 127<div id="skeleton-container" style="${a}" ${n?`class="${n}"`:""}> 128 <div id="skeleton" style="${i}" class="absolute z-highest"> 129 ${r} 130 </div> 131 <div id="wrapper" style="top:50%; left:50%; transform:translate(-50%,-50%)" class="absolute z-highest"> 132 <div class="loader border-brand-default dark:border-darkmodebrand"> 133 <span class="loader-inner bg-brand dark:bg-darkmodebrand"></span> 134 </div> 135 <div id="error" style="transform:translate(-50%,-50%)" class="hidden"> 136 Something went wrong. 137 </div> 138 </div> 139</div> 140<slot></slot> 141`},de=({layout:o,pageType:e})=>{const a=o==="mobile"?"width:100%;":"left:50%; transform:translate(-50%,0%)";return{skeletonContent:le({layout:o,pageType:e}),skeletonContainerStyle:"width:100%;",skeletonStyle:a}};class _e extends oe{static get observedAttributes(){return["loading"]}attributeChangedCallback(e,t,r){this.assertHasShadowRoot();const a=this.shadowRoot.querySelector("#error"),i=this.shadowRoot.querySelector("slot");if(!i||!a)throw new Error("One of loaderEl, slotEl or errorEl is missing");if(e==="loading"){if(r=="done")this.toggleLoader(!1);else if(r==="failed"){this.toggleLoader(!1),i.style.visibility="hidden",a.style.display="block";const n=ie({errorCode:this.dataset.errorCode,errorMessage:this.dataset.message});a.innerText=n}}}constructor(){super({isModal:!1,getSkeletonData:de}),this.attachShadow({mode:"open"}),this.assertHasShadowRoot(),this.shadowRoot.innerHTML=`<style>${window.Cal.__css}</style><style>${se}</style>${Ae({layout:this.layout,pageType:this.getPageType()??null,externalThemeClass:this.themeClass})}`}}function Ie(o){let e=o.parentElement;for(;e&&e!==document.documentElement;){const t=window.getComputedStyle(e),r=t.getPropertyValue("overflow-y"),a=t.getPropertyValue("overflow"),i=["auto","scroll"].includes(r)||["auto","scroll"].includes(a),n=e.scrollHeight>e.clientHeight;if(i&&n)return e;e=e.parentElement}return document.scrollingElement?document.scrollingElement:null}const De=o=>e=>{if(!o.inlineEl){console.warn("scrollBy event received but ignored as it isn't an inline embed");return}const t=e.detail.data.distance;o.scrollByDistance(t)};function $e(){return` 142 <style> 143 /* 144 Modal box is added as a child of the top-most element which is body(the container) 145 If the container has grid layout being used. Even if the cal-modal-box is visiblity:hidden, it causes it to take up space in the grid layout 146 It causes that space to keep on increasing as modal box is opened and closed repeatedly 147 We set position:absolute to move it out of the regular flow of the grid layout 148 */ 149 :host { 150 position: absolute; 151 } 152 153 .my-backdrop { 154 position:fixed; 155 width:100%; 156 height:100%; 157 top:0; 158 left:0; 159 z-index:999999999999; 160 display:block; 161 background-color:rgb(5,5,5, 0.8) 162 } 163
164 .modal-box { 165 margin:0 auto; 166 margin-top:20px; 167 margin-bottom:20px; 168 position:absolute; 169 width:100%; 170 top:50%; 171 left:50%; 172 transform: translateY(-50%) translateX(-50%); 173 overflow: auto; 174 } 175 176 .message-container { 177 min-height: 200px; 178 width: 600px; 179 } 180 181 .header { 182 position: relative; 183 float:right; 184 top: 10px; 185 } 186 .close { 187 font-size: 30px; 188 left: -20px; 189 position: relative; 190 color:white; 191 cursor: pointer; 192 } 193 /*Modal background is black only, so hardcode white */ 194 .loader { 195 --cal-brand:white; 196 } 197 </style> 198 `}const Fe=({layout:o="month_view",pageType:e,externalThemeClass:t})=>{const{skeletonContent:r,skeletonContainerStyle:a,skeletonStyle:i}=he({layout:o,pageType:e}),n=ce(t);return` 199${$e()} 200<div class="my-backdrop"> 201 <div class="header"> 202 <button type="button" class="close" aria-label="Close">×</button> 203 </div> 204 <div id="message-container" style="left: 50%; top: 50%; transform: translate(-50%, -50%);" class="message-container flex items-center p-24 justify-center dark:bg-cal-muted rounded-md border-subtle border bg-default text-default absolute z-highest"> 205 <div id="message"></div> 206 </div> 207 <div class="modal-box"> 208 <div class="body${n?" "+n:""}" id="skeleton-container" style="${a}"> 209 <div id="wrapper" class="z-999999999999 absolute flex w-full items-center"> 210 <div class="loader modal-loader border-brand-default dark:border-darkmodebrand"> 211 <span class="loader-inner bg-brand dark:bg-darkmodebrand"></span> 212 </div> 213 </div> 214 <div id="skeleton" style="${i}" class="absolute z-highest"> 215 ${r} 216 </div> 217 <slot></slot> 218 </div> 219 </div> 220 221</div>`},he=({layout:o,pageType:e})=>{const a=o==="mobile"?"width:100%;":"left:50%; transform:translate(-50%,0%)";return{skeletonContent:le({layout:o,pageType:e}),skeletonContainerStyle:"width:100%;",skeletonStyle:a}};class _ extends oe{constructor(){super({isModal:!0,getSkeletonData:he}),this.escHandler=t=>{t.key==="Escape"&&this.close()};const e=`<style>${window.Cal.__css}</style><style>${se}</style>${Fe({layout:this.getLayout(),pageType:this.getPageType()??null,externalThemeClass:this.themeClass})}`;this.attachShadow({mode:"open"}),_.htmlOverflow=document.body.style.overflow,document.body.style.overflow="hidden",this.open(),this.assertHasShadowRoot(),this.shadowRoot.innerHTML=e}static get observedAttributes(){return["state"]}show(e){this.assertHasShadowRoot(),this.shadowRoot.host.style.visibility=e?"visible":"hidden",e||(document.body.style.overflow=_.htmlOverflow)}open(){if(this.getAttribute("state")==="prerendering")return;this.show(!0);const e=new Event("open");this.dispatchEvent(e)}isLoaderRunning(){const e=this.getAttribute("state");return!e||e==="loading"}explicitClose(){this.show(!1);const e=new Event("close");this.dispatchEvent(e)}isShowingMessage(){const e=this.getAttribute("state");return e==="has-message"||e==="failed"}close(){this.isLoaderRunning()||this.isShowingMessage()||this.explicitClose()}collapseIframe(){const e=this.querySelector("iframe");e&&(e.style.display="none")}uncollapseIframe(){const e=this.querySelector("iframe");e&&(e.style.display="")}makeIframeInvisible(){const e=this.querySelector("iframe");e&&(e.style.visibility="hidden")}makeIframeVisible(){const e=this.querySelector("iframe");e&&(e.style.visibility="")}getMessageElement(){this.assertHasShadowRoot();const e=this.shadowRoot.querySelector("#message");if(!e)throw new Error("No message element");return e}getMessageContainerElement(){this.assertHasShadowRoot();const e=this.shadowRoot.querySelector("#message-container");if(!e)throw new Error("No message container element");return e}toggleMessageElement(e){const t=this.getMessageContainerElement();e?t.style.display="":t.style.display="none"}ensureIframeFullyVisible(){this.makeIframeVisible(),this.uncollapseIframe()}onStateLoaded(){this.toggleLoader(!1),this.toggleMessageElement(!1),this.open(),this.ensureIframeFullyVisible()}onStateFailedOrMessage(){this.toggleLoader(!1),this.toggleMessageElement(!0),this.collapseIframe();const e=this.dataset.message,r=(this.dataset.errorCode?ie({errorCode:this.dataset.errorCode,errorMessage:e}):null)||e;r&&(this.getMessageElement().innerText=r)}attributeChangedCallback(e,t,r){e==="state"&&(r==="loading"?(this.toggleLoader(!0),this.open(),this.uncollapseIframe(),this.toggleMessageElement(!1),this.makeIframeInvisible()):r=="loaded"?this.onStateLoaded():r=="closed"?this.explicitClose():r==="failed"||r==="has-message"?this.onStateFailedOrMessage():r==="prerendering"?this.explicitClose():r==="reopened"&&this.open())}connectedCallback(){super.connectedCallback(),this.assertHasShadowRoot();const e=this.shadowRoot.querySelector(".close");document.addEventListener("keydown",this.escHandler),this.shadowRoot.host.addEventListener("click",()=>{this.close()}),e&&(e.onclick=()=>{this.explicitClose()})}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("keydown",this.escHandler)}}function K(o,e){const t=new window.CustomEvent(o,{detail:e});window.dispatchEvent(t)}class pe{static parseAction(e){if(!e)return null;const[t,r,a]=e.split(":");return t!=="CAL"?null:{ns:r,type:a}}getFullActionName(e){return this.namespace?`CAL:${this.namespace}:${e}`:`CAL::${e}`}fire(e,t){const r=this.getFullActionName(e),a={type:e,namespace:this.namespace,fullType:r,data:t};K(r,a),K(this.getFullActionName("*"),a)}on(e,t){const r=this.getFullActionName(e);window.addEventListener(r,t)}off(e,t){const r=this.getFullActionName(e);window.removeEventListener(r,t)}constructor(e){e=e||"",this.namespace=e}}const He=`/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties;@layer theme,base,components,utilities;@layer theme{:root,:host{--font-sans: var(--font-sans);--color-red-50: oklch(97.1% .013 17.38);--color-red-400: oklch(70.4% .191 22.216);--color-red-500: oklch(63.7% .237 25.331);--color-red-700: oklch(50.5% .213 27.518);--color-orange-600: oklch(64.6% .222 41.116);--color-amber-400: oklch(82.8% .189 84.429);--color-amber-500: oklch(76.9% .188 70.08);--color-amber-700: oklch(55.5% .163 48.998);--color-emerald-400: oklch(76.5% .177 163.223);--color-emerald-500: oklch(69.6% .17 162.48);--color-emerald-700: oklch(50.8% .118 165.612);--color-teal-600: oklch(60% .118 184.704);--color-cyan-900: oklch(39.8% .07 227.392);--color-blue-400: oklch(70.7% .165 254.624);--color-blue-500: oklch(62.3% .214 259.815);--color-blue-700: oklch(48.8% .243 264.376);
221--color-purple-500: oklch(62.7% .265 303.9);--color-rose-500: oklch(64.5% .246 16.439);--color-gray-600: oklch(44.6% .03 256.802);--color-zinc-50: oklch(98.5% 0 0);--color-zinc-200: oklch(92% .004 286.32);--color-zinc-400: oklch(70.5% .015 286.067);--color-zinc-500: oklch(55.2% .016 285.938);--color-zinc-800: oklch(27.4% .006 286.033);--color-zinc-950: oklch(14.1% .005 285.823);--color-neutral-800: oklch(26.9% 0 0);--color-black: #111111;--color-white: #fff;--spacing: .25rem;--text-xs: .75rem;--text-xs--line-height: calc(1 / .75);--text-sm: .875rem;--text-sm--line-height: calc(1.25 / .875);--text-base: 1rem;--text-base--line-height: 1.5 ;--text-xl: 1.25rem;--text-xl--line-height: calc(1.75 / 1.25);--font-weight-medium: 500;--font-weight-semibold: 600;--tracking-widest: .1em;--radius-sm: var(--radius-sm);--radius-md: var(--radius-md);--radius-lg: var(--radius-lg);--radius-xl: var(--radius-xl);--radius-2xl: var(--radius-2xl);--radius-3xl: var(--radius-3xl);--drop-shadow-md: 0 3px 3px rgb(0 0 0 / .12);--animate-pulse: pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration: .15s;--default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);--default-font-family: var(--font-sans);--default-mono-font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--radius: var(--radius);--font-heading: var(--font-heading);--font-cal: var(--font-cal);--shadow-dropdown: var(--shadow-dropdown);--shadow-switch-thumb: var(--shadow-switch-thumb);--shadow-solid-gray-rested: var(--shadow-solid-gray-rested);--shadow-solid-gray-hover: var(--shadow-solid-gray-hover);--shadow-solid-gray-active: var(--shadow-solid-gray-active);--shadow-outline-gray-rested: var(--shadow-outline-gray-rested);--shadow-outline-gray-hover: var(--shadow-outline-gray-hover);--shadow-outline-gray-active: var(--shadow-outline-gray-active);--shadow-outline-gray-focused: var(--shadow-outline-gray-focused);--shadow-outline-red-rested: var(--shadow-outline-red-rested);--shadow-outline-red-hover: var(--shadow-outline-red-hover);--shadow-outline-red-active: var(--shadow-outline-red-active);--shadow-elevation-low: var(--shadow-elevation-low);--shadow-button-solid-brand-default: var(--shadow-button-solid-brand-default);--shadow-button-solid-brand-hover: var(--shadow-button-solid-brand-hover);--shadow-button-solid-brand-active: var(--shadow-button-solid-brand-active);--shadow-button-solid-brand-focused: var(--shadow-button-solid-brand-focused);--shadow-button-outline-red-focused: var(--shadow-button-outline-red-focused);--fill-emphasis: var(--fill-emphasis);--fill-default: var(--fill-default);--fill-subtle: var(--fill-subtle);--fill-muted: var(--fill-muted);--fill-inverted: var(--fill-inverted);--fill-info: var(--fill-info);--fill-success: var(--fill-success);--fill-attention: var(--fill-attention);--fill-error: var(--fill-error);--fill-brand: var(--fill-brand)}}@layer base{*,:after,:before,::backdrop,::file-selector-button{box-sizing:border-box;margin:0;padding:0;border:0 solid}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings, normal);font-variation-settings:var(--default-font-variation-settings, normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings, normal);font-variation-settings:var(--default-mono-font-variation-settings, normal);font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea,::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;border-radius:0;background-color:transparent;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px){
221::placeholder{color:currentcolor}@supports (color: color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]),::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.top-0{top:calc(var(--spacing) * 0)}.right-0{right:calc(var(--spacing) * 0)}.right-4{right:calc(var(--spacing) * 4)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-4{bottom:calc(var(--spacing) * 4)}.left-0{left:calc(var(--spacing) * 0)}.left-4{left:calc(var(--spacing) * 4)}.z-10{z-index:10}.z-999999999999{z-index:999999999999}.container{width:100%}@media(min-width:1600px){.container{max-width:1600px}}@media(min-width:2000px){.container{max-width:2000px}}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.my-2{margin-block:calc(var(--spacing) * 2)}.my-4{margin-block:calc(var(--spacing) * 4)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-auto{margin-top:auto}.stack-y-3>:not([hidden])~:not([hidden]){margin-top:calc(var(--spacing) * 3)}.-mr-1{margin-right:calc(var(--spacing) * -1)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.-ml-px{margin-left:-1px}.ml-3{margin-left:calc(var(--spacing) * 3)}.scrollbar{scrollbar-width:auto;scrollbar-color:var(--scrollbar-thumb, initial) var(--scrollbar-track, initial)}.scrollbar::-webkit-scrollbar-track{background-color:var(--scrollbar-track);border-radius:var(--scrollbar-track-radius)}.scrollbar::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb);border-radius:var(--scrollbar-thumb-radius)}.scrollbar::-webkit-scrollbar-corner{background-color:var(--scrollbar-corner);border-radius:var(--scrollbar-corner-radius)}.scrollbar::-webkit-scrollbar{display:block;width:var(--scrollbar-width, 16px);height:var(--scrollbar-height, 16px)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.aspect-square{aspect-ratio:1 / 1}.h-4{height:calc(var(--spacing) * 4)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-9{height:calc(var(--spacing) * 9)}.h-16{height:calc(var(--spacing) * 16)}.h-full{height:100%}.min-h-6{min-height:calc(var(--spacing) * 6)}.min-h-\\[36px\\]{min-height:36px}.w-1\\/2{width:50%}.w-4{width:calc(var(--spacing) * 4)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-full{width:100%}.max-w-full{max-width:100%}.max-w-screen{max-width:100vw}.min-w-6{min-width:calc(var(--spacing) * 6)}.min-w-\\[36px\\]{min-width:36px}.shrink{flex-shrink:1}.origin-center{transform-origin:center}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-rows-6{grid-template-rows:repeat(6,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-start{justify-content:flex-start}.gap-1{gap:calc(var(--spacing) * 1)}.gap-4{gap:calc(var(--spacing) * 4)}.overflow-hidden{overflow:hidden}.rounded-\\[10px\\]{border-radius:10px}.rounded-full{border-radius:calc(infinity * 1px)}.rounded-md{border-radius:var(--radius-md)}
221.rounded-sm{border-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-booker{border-color:var(--cal-border-booker)}.border-brand-default{border-color:var(--cal-brand)}.border-muted{border-color:var(--cal-border-muted)}.border-subtle{border-color:var(--cal-border-subtle)}.border-transparent{border-color:transparent}.bg-brand{background-color:var(--cal-brand)}.bg-cal-muted{background-color:var(--cal-bg-muted)}.bg-default{background-color:var(--cal-bg)}.bg-emphasis{background-color:var(--cal-bg-emphasis)}.bg-red-50{background-color:var(--color-red-50)}.fill-transparent{fill:transparent}.p-1{padding:calc(var(--spacing) * 1)}.p-2\\!{padding:calc(var(--spacing) * 2)!important}.p-6{padding:calc(var(--spacing) * 6)}.p-24{padding:calc(var(--spacing) * 24)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.pt-\\[100\\%\\]{padding-top:100%}.text-center{text-align:center}.align-top{vertical-align:top}.text-base{font-size:var(--text-base);line-height:var(--tw-leading, var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading, var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading, var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading, var(--text-xs--line-height))}.leading-5{--tw-leading: calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-none{--tw-leading: 1;line-height:1}.font-medium{--tw-font-weight: var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight: var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-widest{--tw-tracking: var(--tracking-widest);letter-spacing:var(--tracking-widest)}.whitespace-nowrap{white-space:nowrap}.text-default{color:var(--cal-text)}.text-emphasis{color:var(--cal-text-emphasis)}.text-muted{color:var(--cal-text-muted)}.text-subtle{color:var(--cal-text-subtle)}.uppercase{text-transform:uppercase}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-70{opacity:70%}.opacity-90{opacity:90%}
221.shadow{--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.drop-shadow-md{--tw-drop-shadow-size: drop-shadow(0 3px 3px var(--tw-drop-shadow-color, rgb(0 0 0 / .12)));--tw-drop-shadow: drop-shadow(var(--drop-shadow-md));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.duration-200{--tw-duration: .2s;transition-duration:.2s}.outline-none{--tw-outline-style: none;outline-style:none}.\\[--booker-main-width\\:480px\\]{--booker-main-width: 480px}.\\[--booker-meta-width\\:240px\\]{--booker-meta-width: 240px}.\\[--booker-meta-width\\:340px\\]{--booker-meta-width: 340px}.\\[--booker-timeslots-width\\:240px\\]{--booker-timeslots-width: 240px}.\\[grid-area\\:main\\]{grid-area:main}.\\[grid-area\\:meta\\]{grid-area:meta}.running{animation-play-state:running}.group-active\\:translate-y-\\[0\\.5px\\]:is(:where(.group):active *){--tw-translate-y: .5px;translate:var(--tw-translate-x) var(--tw-translate-y)}.empty\\:before\\:inline-block:empty:before{content:var(--tw-content);display:inline-block}.empty\\:before\\:content-\\[\\'\\'\\]:empty:before{--tw-content: "";content:var(--tw-content)}@media(hover:hover){.hover\\:border:hover{border-style:var(--tw-border-style);border-width:1px}}@media(hover:hover){.hover\\:border-default:hover{border-color:var(--cal-border)}}@media(hover:hover){.hover\\:opacity-100:hover{opacity:100%}}.focus\\:ring-gray-600:focus{--tw-ring-color: var(--color-gray-600)}.focus\\:outline-none:focus{--tw-outline-style: none;outline-style:none}.focus-visible\\:border-subtle:focus-visible{border-color:var(--cal-border-subtle)}.focus-visible\\:bg-subtle:focus-visible{background-color:var(--cal-bg-subtle)}.focus-visible\\:ring-0:focus-visible{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, rgb(59 130 246 / .5));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-sha
221dow)}.focus-visible\\:outline-none:focus-visible{--tw-outline-style: none;outline-style:none}.active\\:scale-95:active{--tw-scale-x: 95%;--tw-scale-y: 95%;--tw-scale-z: 95%;scale:var(--tw-scale-x) var(--tw-scale-y)}@media(hover:hover){.enabled\\:hover\\:border-subtle:enabled:hover{border-color:var(--cal-border-subtle)}}@media(hover:hover){.enabled\\:hover\\:bg-subtle:enabled:hover{background-color:var(--cal-bg-subtle)}}@media(hover:hover){.enabled\\:hover\\:text-emphasis:enabled:hover{color:var(--cal-text-emphasis)}}.enabled\\:active\\:shadow-outline-gray-active:enabled:active{--tw-shadow: var(--shadow-outline-gray-active);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:opacity-30:disabled{opacity:30%}@media(min-width:40rem){.sm\\:transition-\\[width\\]{transition-property:width;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}}@media(min-width:40rem){.sm\\:duration-300{--tw-duration: .3s;transition-duration:.3s}}@media(min-width:40rem){@media(prefers-reduced-motion:reduce){.sm\\:motion-reduce\\:transition-none{transition-property:none}}}@media(min-width:48rem){.md\\:right-10{right:calc(var(--spacing) * 10)}}@media(min-width:48rem){.md\\:bottom-6{bottom:calc(var(--spacing) * 6)}}@media(min-width:48rem){.md\\:left-10{left:calc(var(--spacing) * 10)}}@media(min-width:48rem){.md\\:mb-0{margin-bottom:calc(var(--spacing) * 0)}}@media(min-width:48rem){.md\\:w-\\(--booker-meta-width\\){width:var(--booker-meta-width)}}@media(min-width:48rem){.md\\:flex-row{flex-direction:row}}@media(min-width:48rem){.md\\:border-0{border-style:var(--tw-border-style);border-width:0px}}@media(min-width:48rem){.md\\:border-l{border-left-style:var(--tw-border-style);border-left-width:1px}}@media(min-width:48rem){.md\\:border-subtle{border-color:var(--cal-border-subtle)}}@media(min-width:64rem){.lg\\:w-\\(--booker-main-width\\){width:var(--booker-main-width)}}@media(min-width:64rem){.lg\\:\\[--booker-meta-width\\:280px\\]{--booker-meta-width: 280px}}@media(min-width:64rem){.lg\\:\\[--booker-meta-width\\:424px\\]{--booker-meta-width: 424px}}@media(min-width:64rem){.lg\\:\\[--booker-timeslots-width\\:280px\\]{--booker-timeslots-width: 280px}}.rtl\\:rotate-180:where(:dir(rtl),[dir=rtl],[dir=rtl] *){rotate:180deg}.dark\\:bg-cal-muted:is(.dark *){background-color:var(--cal-bg-muted)}
221.dark\\:scheme-dark:is(.dark *){color-scheme:dark}}:root{--radius: .625rem;--background: var(--color-white);--foreground: var(--color-zinc-800);--card: var(--color-white);--card-foreground: var(--color-zinc-800);--popover: var(--color-white);--popover-foreground: var(--color-zinc-800);--primary: var(--color-zinc-800);--primary-foreground: var(--color-zinc-50);--secondary: color-mix(in srgb, #111111 4%, transparent);--secondary-foreground: var(--color-zinc-800);--muted: color-mix(in srgb, #111111 4%, transparent);--muted-foreground: color-mix( in srgb, oklch(55.2% .016 285.938) 90%, #111111 );--accent: color-mix(in srgb, #111111 4%, transparent);--accent-foreground: var(--color-zinc-800);--destructive: var(--color-red-500);--destructive-foreground: var(--color-red-700);--info: var(--color-blue-500);--info-foreground: var(--color-blue-700);--success: var(--color-emerald-500);--success-foreground: var(--color-emerald-700);--warning: var(--color-amber-500);--warning-foreground: var(--color-amber-700);--border: color-mix(in srgb, #111111 12%, transparent);--input: color-mix(in srgb, #111111 12%, transparent);--ring: var(--color-zinc-400);--chart-1: var(--color-orange-600);--chart-2: var(--color-teal-600);--chart-3: var(--color-cyan-900);--chart-4: var(--color-amber-400);--chart-5: var(--color-amber-500);--sidebar: var(--color-zinc-50);--sidebar-foreground: oklch(27.4% .006 286.033);--sidebar-primary: var(--color-zinc-800);--sidebar-primary-foreground: var(--color-zinc-50);--sidebar-accent: color-mix(in srgb, #111111 4%, transparent);--sidebar-accent-foreground: var(--color-zinc-800);--sidebar-border: color-mix(in srgb, #111111 12%, transparent);--sidebar-ring: var(--color-zinc-400);--code: var(--color-white);--code-foreground: var(--foreground);--code-highlight: color-mix(in srgb, #111111 4%, transparent)}@supports (color: color-mix(in lab,red,red)){:root{--secondary: color-mix(in oklab, var(--color-black) 4%, transparent)}}@supports (color: color-mix(in lab,red,red)){:root{--muted: color-mix(in oklab, var(--color-black) 4%, transparent)}}@supports (color: color-mix(in lab,red,red)){:root{--muted-foreground: color-mix( in srgb, var(--color-zinc-500) 90%, var(--color-black) )}}@supports (color: color-mix(in lab,red,red)){:root{--accent: color-mix(in oklab, var(--color-black) 4%, transparent)}}@supports (color: color-mix(in lab,red,red)){:root{--border: color-mix(in oklab, var(--color-black) 12%, transparent)}}@supports (color: color-mix(in lab,red,red)){:root{--input: color-mix(in oklab, var(--color-black) 12%, transparent)}}@supports (color: color-mix(in lab,red,red)){:root{--sidebar-foreground: color-mix( in srgb, var(--color-zinc-800) 64%, var(--sidebar) )}}@supports (color: color-mix(in lab,red,red)){:root{--sidebar-accent: color-mix(in oklab, var(--color-black) 4%, transparent)}}@supports (color: color-mix(in lab,red,red)){:root{--sidebar-border: color-mix(in oklab, var(--color-black) 12%, transparent)}}@supports (color: color-mix(in lab,red,red)){:root{--code-highlight: color-mix(in oklab, var(--color-black) 4%, transparent)}}.dark{--background: color-mix( in srgb, oklch(14.1% .005 285.823) 98%, #fff );--foreground: var(--color-zinc-200);--card: var(--background);--card-foreground: var(--color-zinc-200);--popover: var(--background);--popover-foreground: var(--color-zinc-200);--primary: var(--color-zinc-200);--primary-foreground: var(--color-zinc-800);--secondary: color-mix(in srgb, #fff 6%, transparent);--secondary-foreground: var(--color-zinc-200);--muted: color-mix(in srgb, #fff 6%, transparent);--muted-foreground: color-mix( in srgb, oklch(55.2% .016 285.938) 90%, #fff );--accent: color-mix(in srgb, #fff 6%, transparent);--accent-foreground: var(--color-zinc-200);--destructive: var(--color-red-500);--destructive-foreground: var(--color-red-400);--info: var(--color-blue-500);--info-foreground: var(--color-blue-400);--success: var(--color-emerald-500);--success-foreground: var(--color-emerald-400);--warning: var(--color-amber-500);--warning-foreground: var(--color-amber-400);--border: color-mix(in srgb, #fff 12%, transparent);--input: color-mix(in srgb, #fff 12%, transparent);--ring: var(--color-zinc-500);--chart-1: var(--color-blue-700);--chart-2: var(--color-emerald-500);--chart-3: var(--color-amber-500);--chart-4: var(--color-purple-500);--chart-5: var(--color-rose-500);--sidebar: var(--color-zinc-950);--sidebar-foreground: oklch(92% .004 286.32);--sidebar-primary: var(--color-zinc-200);--sidebar-primary-foreground: var(--color-zinc-800);--sidebar-accent: color-mix(in srgb, #fff 6%, transparent);--sidebar-accent-foreground: var(--color-zinc-200);--sidebar-border: color-mix(in srgb, #fff 12%, transparent);--sidebar-ring: var(--color-zinc-400);--code: var(--background);
221--code-foreground: var(--foreground);--code-highlight: color-mix(in srgb, #fff 6%, transparent)}@supports (color: color-mix(in lab,red,red)){.dark{--background: color-mix( in srgb, var(--color-zinc-950) 98%, var(--color-white) )}}@supports (color: color-mix(in lab,red,red)){.dark{--card: color-mix(in srgb, var(--background) 98%, var(--color-white))}}@supports (color: color-mix(in lab,red,red)){.dark{--popover: color-mix(in srgb, var(--background) 96%, var(--color-white))}}@supports (color: color-mix(in lab,red,red)){.dark{--secondary: color-mix(in oklab, var(--color-white) 6%, transparent)}}@supports (color: color-mix(in lab,red,red)){.dark{--muted: color-mix(in oklab, var(--color-white) 6%, transparent)}}@supports (color: color-mix(in lab,red,red)){.dark{--muted-foreground: color-mix( in srgb, var(--color-zinc-500) 90%, var(--color-white) )}}@supports (color: color-mix(in lab,red,red)){.dark{--accent: color-mix(in oklab, var(--color-white) 6%, transparent)}}@supports (color: color-mix(in lab,red,red)){.dark{--border: color-mix(in oklab, var(--color-white) 12%, transparent)}}@supports (color: color-mix(in lab,red,red)){.dark{--input: color-mix(in oklab, var(--color-white) 12%, transparent)}}@supports (color: color-mix(in lab,red,red)){.dark{--sidebar-foreground: color-mix( in srgb, var(--color-zinc-200) 64%, var(--sidebar) )}}@supports (color: color-mix(in lab,red,red)){.dark{--sidebar-accent: color-mix(in oklab, var(--color-white) 6%, transparent)}}@supports (color: color-mix(in lab,red,red)){.dark{--sidebar-border: color-mix(in oklab, var(--color-white) 12%, transparent)}}@supports (color: color-mix(in lab,red,red)){.dark{--code: color-mix(in srgb, var(--background) 96%, var(--color-white))}}@supports (color: color-mix(in lab,red,red)){.dark{--code-highlight: color-mix(in oklab, var(--color-white) 6%, transparent)}}@layer base{*{border-color:var(--border);outline-color:var(--ring)}@supports (color: color-mix(in lab,red,red)){*{outline-color:color-mix(in oklab,var(--ring) 50%,transparent)}}}.backdrop-blur-sm{background-color:color-mix(in srgb,oklch(26.9% 0 0) 70%,transparent);--tw-backdrop-blur: ;-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}@supports (color: color-mix(in lab,red,red)){.backdrop-blur-sm{background-color:color-mix(in oklab,var(--color-neutral-800) 70%,transparent)}}@property --tw-animation-delay{syntax: "*"; inherits: false; initial-value: 0s;}@property --tw-animation-direction{syntax: "*"; inherits: false; initial-value: normal;}@property --tw-animation-duration{syntax: "*"; inherits: false;}@property --tw-animation-fill-mode{syntax: "*"; inherits: false; initial-value: none;}@property --tw-animation-iteration-count{syntax: "*"; inherits: false; initial-value: 1;}@property --tw-enter-blur{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-enter-opacity{syntax: "*"; inherits: false; initial-value: 1;}@property --tw-enter-rotate{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-enter-scale{syntax: "*"; inherits: false; initial-value: 1;}@property --tw-enter-translate-x{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-enter-translate-y{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-exit-blur{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-exit-opacity{syntax: "*"; inherits: false; initial-value: 1;}@property --tw-exit-rotate{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-exit-scale{syntax: "*"; inherits: false; initial-value: 1;}@property --tw-exit-translate-x{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-exit-translate-y{syntax: "*"; inherits: false; initial-value: 0;}:root,:host{--radius: .25rem;--radius-sm: .125rem;--radius-md: .375rem;--radius-lg: .5rem;--radius-xl: .75rem;--radius-2xl: 1rem;--radius-3xl: 1.5rem;--radius-none: 0px;--cal-bg-emphasis: hsla(220, 13%, 91%, 1);--cal-bg: hsla(0, 0%, 100%, 1);--cal-bg-subtle: hsla(220, 14%, 94%, 1);--cal-bg-muted: hsla(210, 20%, 97%, 1);--cal-bg-inverted: hsla(210, 30%, 4%, 1);--cal-bg-primary: hsla(214, 30%, 16%, 1);--cal-bg-primary-emphasis: hsla(220, 6%, 25%, 1);--cal-bg-primary-muted: hsla(220, 14%, 94%, 1);--cal-bg-brand: hsla(214, 30%, 16%, 1);--cal-bg-brand-emphasis: hsla(220, 6%, 25%, 1);--cal-bg-brand-muted: hsla(220, 14%, 94%, 1);--cal-bg-semantic-info-subtle: hsla(212, 88%, 97%, 1);--cal-bg-semantic-info-emphasis: hsla(236, 80%, 25%, 1);--cal-bg-semantic-success-subtle: hsla(167, 54%, 93%, 1);--cal-bg-semantic-success-emphasis: hsla(158, 74%, 38%, 1);
221--cal-bg-semantic-attention-subtle: hsla(34, 100%, 92%, 1);--cal-bg-semantic-attention-emphasis: hsla(15, 79%, 34%, 1);--cal-bg-semantic-error-subtle: hsla(0, 93%, 94%, 1);--cal-bg-semantic-error-emphasis: hsla(0, 63%, 24%, 1);--cal-bg-visualization-1-subtle: hsla(326, 78%, 95%, 1);--cal-bg-visualization-1-emphasis: hsla(330, 81%, 60%, 1);--cal-bg-visualization-2-subtle: hsla(256, 86%, 91%, 1);--cal-bg-visualization-2-emphasis: hsla(256, 85%, 57%, 1);--cal-bg-visualization-3-subtle: hsla(217, 87%, 91%, 1);--cal-bg-visualization-3-emphasis: hsla(235, 100%, 63%, 1);--cal-bg-visualization-4-subtle: hsla(167, 54%, 93%, 1);--cal-bg-visualization-4-emphasis: hsla(158, 74%, 38%, 1);--cal-bg-visualization-5-subtle: hsla(55, 97%, 88%, 1);--cal-bg-visualization-5-emphasis: hsla(45, 93%, 47%, 1);--cal-bg-visualization-6-subtle: hsla(34, 100%, 92%, 1);--cal-bg-visualization-6-emphasis: hsla(25, 95%, 53%, 1);--cal-bg-visualization-7-subtle: hsla(0, 96%, 89%, 1);--cal-bg-visualization-7-emphasis: hsla(0, 84%, 60%, 1);--cal-bg-info: hsla(221, 91%, 93%, 1);--cal-bg-success: hsla(142, 76%, 94%, 1);--cal-bg-attention: hsla(33, 100%, 92%, 1);--cal-bg-error: hsla(3, 66%, 93%, 1);--cal-bg-dark-error: hsla(2, 55%, 30%, 1);--cal-bg-launch-dark: hsla(242, 53%, 10%, 1);--cal-border-emphasis: hsla(218, 11%, 65%, 1);--cal-border: hsla(216, 12%, 84%, 1);--cal-border-subtle: hsla(220, 13%, 91%, 1);--cal-border-muted: hsla(220, 14%, 94%, 1);--cal-border-error: hsla(0, 96%, 89%, 1);--cal-border-semantic-error: hsla(0, 96%, 89%, 1);--cal-border-semantic-attention-subtle: hsla(32, 98%, 83%, 1);--cal-border-semantic-error-subtle: hsla(0, 96%, 89%, 1);--cal-border-booker: var(--cal-border-subtle);--cal-text-emphasis: hsla(210, 30%, 4%, 1);--cal-text: hsla(220, 6%, 25%, 1);--cal-text-subtle: hsla(220, 9%, 46%, 1);--cal-text-muted: hsla(218, 11%, 65%, 1);--cal-text-inverted: hsla(0, 0%, 100%, 1);--cal-text-semantic-info: hsla(236, 80%, 25%, 1);--cal-text-semantic-success: hsla(150, 84%, 22%, 1);--cal-text-semantic-attention: hsla(15, 79%, 34%, 1);--cal-text-semantic-error: hsla(0, 63%, 24%, 1);--cal-text-visualization-1: hsla(332, 79%, 25%, 1);--cal-text-visualization-2: hsla(270, 91%, 25%, 1);--cal-text-visualization-3: hsla(217, 91%, 25%, 1);--cal-text-visualization-4: hsla(142, 71%, 25%, 1);--cal-text-visualization-5: hsla(45, 93%, 25%, 1);--cal-text-visualization-6: hsla(24, 95%, 25%, 1);--cal-text-visualization-7: hsla(0, 84%, 25%, 1);--cal-text-info: hsla(225, 57%, 33%, 1);--cal-text-success: hsla(144, 34%, 24%, 1);--cal-text-attention: hsla(16, 62%, 28%, 1);--cal-text-error: hsla(0, 63%, 31%, 1);--cal-brand: hsla(221, 39%, 11%, 1);--cal-brand-emphasis: hsla(0, 0%, 6%, 1);--cal-brand-text: hsla(0, 0%, 100%, 1);--shadow-dropdown: 0px 5px 20px 0px rgba(0, 0, 0, .1), 0px 10px 40px 0px rgba(0, 0, 0, .03);--shadow-switch-thumb: 0px .8px .8px 0px rgba(0, 0, 0, .1), 0px .8px 3.2px 0px rgba(0, 0, 0, .08);--shadow-solid-gray-rested: 0px 2px 3px 0px rgba(0, 0, 0, .06), 0px 1px 1px 0px rgba(0, 0, 0, .08), 1px 4px 8px 0px rgba(0, 0, 0, .12), 0px 2px .4px 0px rgba(255, 255, 255, .16) inset, 0px -1.5px 2px 0px rgba(0, 0, 0, .4) inset;--shadow-solid-gray-hover: 0px 2px 3px 0px rgba(0, 0, 0, .06), 0px 1px 1px 0px rgba(0, 0, 0, .08), 1px 4px 8px 0px rgba(0, 0, 0, .12), 0px 2px .4px 0px rgba(255, 255, 255, .16) inset, 0px -2px 2px 0px rgba(0, 0, 0, .4) inset;--shadow-solid-gray-active: 0px 2px 3px 0px rgba(0, 0, 0, .4) inset, 0px 0px 2px 1px rgba(0, 0, 0, .4) inset;--shadow-outline-gray-rested: 0px 2px 3px 0px rgba(0, 0, 0, .03), 0px 2px 2px -1px rgba(0, 0, 0, .03);--shadow-outline-gray-hover: 0px 2px 3px 0px rgba(0, 0, 0, .03), 0px 2px 2px -1px rgba(0, 0, 0, .03);--shadow-outline-gray-active: 0px 2px 1px 0px rgba(0, 0, 0, .05) inset;--shadow-outline-gray-focused: 0px 0px 0px 1px rgba(255, 255, 255, .2), 0px 0px 0px 2px rgba(0, 0, 0, .1);--shadow-outline-red-rested: 0px 2px 3px 0px rgba(0, 0, 0, .03), 0px 2px 2px -1px rgba(0, 0, 0, .03);--shadow-outline-red-hover: 0px 1px 1px 0px rgba(0, 0, 0, .06), 0px 2px 3px 0px rgba(0, 0, 0, .08);--shadow-outline-red-active: 0px 1px 1px 0px rgba(127, 29, 29, .06), 0px 0px 3px 0px rgba(127, 29, 29, .08), 0px 2px 2px 1px rgba(127, 29, 29, .06) inset;
221--shadow-elevation-low: 0px 1px 1px 0px rgba(0, 0, 0, .07), 0px 1px 2px 0px rgba(0, 0, 0, .08), 0px 2px 2px 0px rgba(0, 0, 0, .1), 0px 0px 8px 0px rgba(0, 0, 0, .05);--shadow-button-solid-brand-default: 0px 2px 3px 0px rgba(0, 0, 0, .06), 0px 1px 1px 0px rgba(0, 0, 0, .08), 1px 4px 8px 0px rgba(0, 0, 0, .12), 0px 2px .4px 0px rgba(255, 255, 255, .12) inset, 0px -3px 2px 0px rgba(0, 0, 0, .04) inset;--shadow-button-solid-brand-hover: 0px 1px 1px 0px rgba(0, 0, 0, .1), 0px 2px 3px 0px rgba(0, 0, 0, .08), 1px 4px 8px 0px rgba(0, 0, 0, .12), 0px -3px 2px 0px rgba(0, 0, 0, .1) inset, 0px 2px .4px 0px rgba(255, 255, 255, .24) inset;--shadow-button-solid-brand-active: 0px 3px 1px 0px rgba(0, 0, 0, .1) inset, 0px 0px 2px 0px rgba(0, 0, 0, .1) inset;--shadow-button-solid-brand-focused: 0px 0px 0px 1px rgba(255, 255, 255, .4), 0px 0px 0px 2px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .1), 0px 2px 3px 0px rgba(0, 0, 0, .08), 1px 4px 8px 0px rgba(0, 0, 0, .12), 0px -3px 2px 0px rgba(0, 0, 0, .1) inset, 0px 2px .4px 0px rgba(255, 255, 255, .24) inset;--shadow-button-outline-red-focused: 0px 0px 0px 1px rgba(255, 255, 255, .32), 0px 0px 0px 2px rgba(220, 38, 38, .15);--fill-emphasis: var(--cal-text-emphasis, #111827);--fill-default: var(--cal-text, #374151);--fill-subtle: var(--cal-text-subtle, #6B7280);--fill-muted: var(--cal-text-muted, #9CA3AF);--fill-inverted: var(--cal-text-inverted, white);--fill-info: var(--cal-text-info, #253985);--fill-success: var(--cal-text-success, #285231);--fill-attention: var(--cal-text-attention, #73321B);--fill-error: var(--cal-text-error, #752522);--fill-brand: var(--cal-brand-text)}.dark{--cal-bg-emphasis: hsla(0, 0%, 25%, 1);--cal-bg: hsla(0, 0%, 6%, 1);--cal-bg-subtle: hsla(0, 0%, 15%, 1);--cal-bg-muted: hsla(0, 0%, 9%, 1);--cal-bg-inverted: hsla(0, 0%, 98%, 1);--cal-bg-primary: hsla(0, 0%, 96%, 1);--cal-bg-primary-emphasis: hsla(0, 0%, 64%, 1);--cal-bg-primary-muted: hsla(0, 0%, 15%, 1);--cal-bg-brand: hsla(0, 0%, 98%, 1);--cal-bg-brand-emphasis: hsla(0, 0%, 96%, 1);--cal-bg-brand-muted: hsla(0, 0%, 96%, 1);--cal-bg-semantic-info-subtle: hsla(236, 80%, 8%, 1);--cal-bg-semantic-info-emphasis: hsla(229, 90%, 74%, 1);--cal-bg-semantic-success-subtle: hsla(148, 88%, 16%, 1);--cal-bg-semantic-success-emphasis: hsla(158, 74%, 38%, 1);--cal-bg-semantic-attention-subtle: hsla(21, 86%, 8%, 1);--cal-bg-semantic-attention-emphasis: hsla(27, 96%, 61%, 1);--cal-bg-semantic-error-subtle: hsla(0, 70%, 8%, 1);--cal-bg-semantic-error-emphasis: hsla(0, 91%, 71%, 1);--cal-bg-visualization-1-subtle: hsla(336, 74%, 35%, 1);--cal-bg-visualization-1-emphasis: hsla(330, 81%, 60%, 1);--cal-bg-visualization-2-subtle: hsla(252, 83%, 23%, 1);--cal-bg-visualization-2-emphasis: hsla(256, 85%, 57%, 1);--cal-bg-visualization-3-subtle: hsla(236, 74%, 35%, 1);--cal-bg-visualization-3-emphasis: hsla(235, 100%, 63%, 1);--cal-bg-visualization-4-subtle: hsla(150, 84%, 22%, 1);--cal-bg-visualization-4-emphasis: hsla(158, 74%, 38%, 1);--cal-bg-visualization-5-subtle: hsla(28, 73%, 26%, 1);--cal-bg-visualization-5-emphasis: hsla(45, 93%, 47%, 1);--cal-bg-visualization-6-subtle: hsla(15, 75%, 23%, 1);--cal-bg-visualization-6-emphasis: hsla(25, 95%, 53%, 1);--cal-bg-visualization-7-subtle: hsla(0, 70%, 35%, 1);--cal-bg-visualization-7-emphasis: hsla(0, 84%, 60%, 1);--cal-bg-info: hsla(228, 56%, 33%, 1);--cal-bg-success: hsla(133, 34%, 24%, 1);--cal-bg-attention: hsla(16, 62%, 28%, 1);--cal-bg-error: hsla(2, 55%, 30%, 1);--cal-bg-dark-error: hsla(2, 55%, 30%, 1);--cal-bg-launch-dark: hsla(242, 53%, 10%, 1);--cal-border: hsla(0, 0%, 30%, 1);--cal-border-muted: hsla(0, 0%, 9%, 1);--cal-border-subtle: hsla(0, 0%, 15%, 1);--cal-border-emphasis: hsla(0, 0%, 45%, 1);--cal-border-semantic-error: hsla(0, 63%, 24%, 1);--cal-border-semantic-attention-subtle: hsla(15, 75%, 23%, 1);--cal-border-semantic-error-subtle: hsla(0, 63%, 24%, 1);--cal-border-error: hsla(0, 63%, 24%, 1);--cal-border-booker: var(--cal-border-subtle);--cal-text-emphasis: hsla(0, 0%, 98%, 1);--cal-text: hsla(0, 0%, 83%, 1);--cal-text-subtle: hsla(0, 0%, 64%, 1);--cal-text-muted: hsla(0, 0%, 64%, 1);--cal-text-inverted: hsla(0, 0%, 0%, 1);--cal-text-semantic-info: hsla(229, 90%, 74%, 1);--cal-text-semantic-success: hsla(161, 49%, 54%, 1);--cal-text-semantic-attention: hsla(27, 96%, 61%, 1);--cal-text-semantic-error: hsla(0, 91%, 71%, 1);--cal-text-semantic-info-emphasis: hsla(217, 91%, 25%, 1);--cal-text-semantic-success-emphasis: hsla(142, 71%, 25%, 1);--cal-text-semantic-attention-emphasis: hsla(24, 95%, 25%, 1);--cal-text-semantic-error-emphasis: hsla(0, 84%, 25%, 1);--cal-text-info: hsla(218, 83%, 93%, 1);--cal-text-success: hsla(134, 76%, 94%, 1);
221--cal-text-attention: hsla(37, 86%, 92%, 1);--cal-text-error: hsla(3, 66%, 93%, 1);--cal-brand: hsla(0, 0%, 100%, 1);--cal-brand-emphasis: hsla(218, 11%, 65%, 1);--cal-brand-text: hsla(0, 0%, 0%, 1);--fill-emphasis: var(--cal-text-emphasis);--fill-default: var(--cal-text);--fill-subtle: var(--cal-text-subtle);--fill-muted: var(--cal-text-muted);--fill-inverted: var(--cal-text-inverted);--fill-info: var(--cal-text-info);--fill-success: var(--cal-text-success);--fill-attention: var(--cal-text-attention);--fill-error: var(--cal-text-error);--fill-brand: var(--cal-brand-text)}@font-face{font-family:Cal Sans;src:url(https://cal.com/cal.ttf)}h1,h2,h3,h4,h5,h6{font-family:Cal Sans;font-weight:400;letter-spacing:normal}html,body,:host{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--tw-border-style: solid}@layer base{*{scrollbar-color:initial;scrollbar-width:initial}}@property --tw-rotate-x{syntax: "*"; inherits: false;}@property --tw-rotate-y{syntax: "*"; inherits: false;}@property --tw-rotate-z{syntax: "*"; inherits: false;}@property --tw-skew-x{syntax: "*"; inherits: false;}@property --tw-skew-y{syntax: "*"; inherits: false;}@property --tw-border-style{syntax: "*"; inherits: false; initial-value: solid;}@property --tw-leading{syntax: "*"; inherits: false;}@property --tw-font-weight{syntax: "*"; inherits: false;}@property --tw-tracking{syntax: "*"; inherits: false;}@property --tw-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: "*"; inherits: false;}@property --tw-shadow-alpha{syntax: "<percentage>"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: "*"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: "<percentage>"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: "*"; inherits: false;}@property --tw-ring-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: "*"; inherits: false;}@property --tw-inset-ring-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: "*"; inherits: false;}@property --tw-ring-offset-width{syntax: "<length>"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: "*"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-blur{syntax: "*"; inherits: false;}@property --tw-brightness{syntax: "*"; inherits: false;}@property --tw-contrast{syntax: "*"; inherits: false;}@property --tw-grayscale{syntax: "*"; inherits: false;}@property --tw-hue-rotate{syntax: "*"; inherits: false;}@property --tw-invert{syntax: "*"; inherits: false;}@property --tw-opacity{syntax: "*"; inherits: false;}@property --tw-saturate{syntax: "*"; inherits: false;}@property --tw-sepia{syntax: "*"; inherits: false;}@property --tw-drop-shadow{syntax: "*"; inherits: false;}@property --tw-drop-shadow-color{syntax: "*"; inherits: false;}@property --tw-drop-shadow-alpha{syntax: "<percentage>"; inherits: false; initial-value: 100%;}@property --tw-drop-shadow-size{syntax: "*"; inherits: false;}@property --tw-duration{syntax: "*"; inherits: false;}@property --tw-translate-x{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-translate-y{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-translate-z{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-content{syntax: "*"; initial-value: ""; inherits: false;}@property --tw-scale-x{syntax: "*"; inherits: false; initial-value: 1;}@property --tw-scale-y{syntax: "*"; inherits: false; initial-value: 1;}@property --tw-scale-z{syntax: "*"; inherits: false; initial-value: 1;}@property --tw-backdrop-blur{syntax: "*"; inherits: false;}@property --tw-backdrop-brightness{syntax: "*"; inherits: false;}@property --tw-backdrop-contrast{syntax: "*"; inherits: false;}@property --tw-backdrop-grayscale{syntax: "*"; inherits: false;}@property --tw-backdrop-hue-rotate{syntax: "*"; inherits: false;}@property --tw-backdrop-invert{syntax: "*"; inherits: false;}@property --tw-backdrop-opacity{syntax: "*"; inherits: false;}@property --tw-backdrop-saturate{syntax: "*"; inherits: false;}@property --tw-backdrop-sepia{syntax: "*"; inherits: false;}@keyframes pulse{50%{opacity:.5}}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x: initial;--tw-rotate-y: initial;--tw-rotate-z: initial;--tw-skew-x: initial;--tw-skew-y: initial;--tw-border-style: solid;--tw-leading: initial;--tw-font-weight: initial;--tw-tracking: initial;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000;--tw-blur: initial;--tw-brightness: initial;--tw-contrast: initial;--tw-grayscale: initial;--tw-hue-rotate: initial;--tw-invert: initial;--tw-opacity: initial;--tw-saturate: initial;--tw-sepia: initial;--tw-drop-shadow: initial;--tw-drop-shadow-color: initial;--tw-drop-shadow-alpha: 100%;--tw-drop-shadow-size: initial;--tw-duration: initial;--tw-translate-x: 0;--tw-translate-y: 0;--tw-translate-z: 0;--tw-content: "";--tw-scale-x: 1;--tw-scale-y: 1;--tw-scale-z: 1;--tw-backdrop-blur: initial;--tw-backdrop-brightness: initial;--tw-backdrop-contrast: initial;--tw-backdrop-grayscale: initial;--tw-backdrop-hue-rotate: initial;--tw-backdrop-invert: initial;--tw-backdrop-opacity: initial;--tw-backdrop-saturate: initial;--tw-backdrop-sepia: initial;--tw-animation-delay: 0s;--tw-animation-direction: normal;--tw-animation-duration: initial;--tw-animation-fill-mode: none;--tw-animation-iteration-count: 1;--tw-enter-blur: 0;--tw-enter-opacity: 1;--tw-enter-rotate: 0;--tw-enter-scale: 1;--tw-enter-translate-x: 0;--tw-enter-translate-y: 0;--tw-exit-blur: 0;--tw-exit-opacity: 1;--tw-exit-rotate: 0;--tw-exit-scale: 1;--tw-exit-translate-x: 0;--tw-exit-translate-y: 0}}}`;var Oe={};const qe="https://cal.pulsor.global";customElements.define("cal-modal-box",_);customElements.define("cal-floating-button",A);customElements.define("cal-inline",_e);const p=window.Cal;if(!p||!p.q)throw new Error("Cal is not defined. This shouldn't happen");Ue();document.head.appendChild(document.createElement("style")).innerHTML=we;function P(o,e){function t(a,i){return typeof i=="string"?typeof a==i:a instanceof i}function r(a){return typeof a>"u"}if(e.required&&r(o))throw new Error("Argument is required");for(const[a,i]of Object.entries(e.props||{})){if(i.required&&r(o[a]))throw new Error(`"${a}" is required`);let n=!0;if(i.type&&!r(o[a])&&(i.type instanceof Array?i.type.forEach(l=>{n=n||t(o[a],l)}):n=t(o[a],i.type)),!n)throw new Error(`"${a}" is of wrong type.Expected type "${i.type}"`)}}function ue(o){const e=getComputedStyle(o).colorScheme;return e==="dark"||e==="light"?e:null}function Y(o,e){if(!o["ui.color-scheme"]){const t=ue(e);t&&(o["ui.color-scheme"]=t)}return o}const Ne=(o,e)=>!![...["month","date","slot","rescheduleUid","bookingUid","duration","overlayCalendar"]].includes(o);class f{constructor(e,t){this.iframeDoQueue=[],this.commandsPersistAcrossIframeResets=["ui"],this.calLink=null,this.embedConfig=null,this.embedRenderStartTime=null,this.__config={calOrigin:qe},this.api=new I(this),this.namespace=e,this.actionManager=new pe(e),f.actionsManagers=f.actionsManagers||{},f.actionsManagers[e]=this.actionManager,this.processQueue(t),this.actionManager.on("__dimensionChanged",r=>{const{data:a}=r.detail,i=this.iframe;if(!i)return;const n="px";a.iframeHeight&&(i.style.height=a.iframeHeight+n),this.modalBox&&(i.style.maxHeight=`${te()}px`)}),this.actionManager.on("__iframeReady",r=>{this.iframeReady=!0,this.iframe&&!r.detail.data.isPrerendering&&(this.iframe.style.visibility=""),this.doInIframe({method:"parentKnowsIframeReady"}),this.iframeDoQueue.forEach(a=>{this.doInIframe(a)}),this.resetQueue()}),this.actionManager.on("__routeChanged",()=>
221{if(!this.inlineEl)return;const{top:r,height:a}=this.inlineEl.getBoundingClientRect();r<0&&Math.abs(r/a)>=.25&&this.inlineEl.scrollIntoView({behavior:"smooth"})}),this.actionManager.on("__scrollByDistance",De(this)),this.actionManager.on("linkReady",()=>{var r,a;this.isPrerendering||(this.iframe&&(this.iframe.style.visibility=""),(r=this.modalBox)==null||r.setAttribute("state","loaded"),(a=this.inlineEl)==null||a.setAttribute("loading","done"))}),this.actionManager.on("linkFailed",r=>{var i,n,l,c;this.iframe&&(this.isPrerendering||((i=this.inlineEl)==null||i.setAttribute("data-error-code",r.detail.data.code),(n=this.modalBox)==null||n.setAttribute("data-error-code",r.detail.data.code),(l=this.inlineEl)==null||l.setAttribute("loading","failed"),(c=this.modalBox)==null||c.setAttribute("state","failed")))})}static ensureGuestKey(e){return e=e||{},{...e,guest:e.guests??void 0}}processInstruction(e){const t=[].slice.call(e);if(typeof t[0]!="string"){t.forEach(i=>{this.processInstruction(i)});return}const[r,...a]=t;this.api[r]||Z(`Instruction ${r} not FOUND`);try{this.api[r](...a)}catch(i){Z("Instruction couldn't be executed",i)}return t}processQueue(e){e.forEach(t=>{this.processInstruction(t)}),e.splice(0),e.push=t=>{this.processInstruction(t)}}createIframe({calLink:e,config:t={},calOrigin:r}){const a=this.iframe=document.createElement("iframe");return a.className="cal-embed",a.name=`cal-embed=${this.namespace}`,a.title="Book a call",this.loadInIframe({calLink:e,config:t,calOrigin:r,iframe:a}),a}loadInIframe({calLink:e,config:t={},calOrigin:r,iframe:a}){g("Loading in iframe",e,"with config",JSON.stringify(t)),a.dataset.calLink=e;const i=this.getCalConfig(),{iframeAttrs:n,...l}=t;n&&n.id&&a.setAttribute("id",n.id),a.setAttribute("allow","payment");const c=this.buildFilteredQueryParams(l),d=(r||i.calOrigin||"").replace("https://cal.com","https://app.cal.com"),h=new URL(`${d}/${e}`);h.pathname.endsWith("embed")||(h.pathname=`${h.pathname}/embed`),h.searchParams.set("embed",this.namespace);const s=this.getQueryParamsFromPage();return(i.debug||s["cal.embed.logging"]==="1")&&h.searchParams.set("debug","true"),a.style.visibility="hidden",i.uiDebug&&(a.style.border="1px solid green"),c.forEach((u,m)=>{h.searchParams.append(m,u)}),this.iframeReset(),a.src===h.toString()&&h.searchParams.append("__cal.reloadTs",Date.now().toString()),a.src=h.toString(),a}getCalConfig(){return this.__config}doInIframe(e){if(!this.iframeReady){this.iframeDoQueue.push(e);return}if(!this.iframe)throw new Error("iframe doesn't exist. `createIframe` must be called before `doInIframe`");this.iframe.contentWindow&&this.iframe.contentWindow.postMessage({originator:"CAL",method:e.method,arg:e.arg},"*")}resetQueue(){this.iframeDoQueue=this.iframeDoQueue.filter(e=>this.commandsPersistAcrossIframeResets.includes(e.method))}iframeReset(){this.iframeReady=!1,this.resetQueue()}scrollByDistance(e){if(!this.iframe)return;const t=Ie(this.iframe);if(!t)return;const r=t.scrollTop+e;t.scrollTo({top:r,behavior:"smooth"})}filterParams(e){return Object.fromEntries(Object.entries(e).filter(([t,r])=>!Ne(t)))}getQueryParamsFromPage(){const e=Be();return this.filterParams(e)}buildFilteredQueryParams(e){var i;const r={...(i=p.config)!=null&&i.forwardQueryParams?this.getQueryParamsFromPage():{},...e},a=new URLSearchParams;for(const[n,l]of Object.entries(r))l!==void 0&&(l instanceof Array?l.forEach(c=>a.append(n,c)):a.set(n,l));return a}getNextActionForModal({modal:e,pathWithQueryToLoad:t,stateData:r}){const{embedConfig:a,previousEmbedConfig:i,isConnectionInitiated:n,previousEmbedRenderStartTime:l,embedRenderStartTime:c,prerenderOptions:d}=r,h=this.getCalConfig(),s=this.getLastLoadedLinkInframe(),u=(s==null?void 0:s.pathname)??null,m=new URL(t,h.calOrigin),v=document.querySelector(`cal-modal-box[uid="${e.uid}"]`),x=m.pathname,y=u&&Re({bookingLinkPath1:u,bookingLinkPath2:x}),w=s==null?void 0:s.searchParams.toString(),k=m.searchParams.toString(),b=w===k,S=i&&ge({embedConfig1:i,embedConfig2:a}),C=v&&v.getAttribute("state")==="failed",L=l?c-l:0,q=l?L>((d==null?void 0:d.iframeForceReloadThresholdMs)??9e5):!1,$=l?L>((d==null?void 0:d.slotsStaleTimeMs)??6e4):!1,be=!y||C||q,N=be?"fullReload":d!=null&&d.backgroundSlotsFetch&&!$?"connect-no-slots-fetch":!S||!b||!n||$?"connect":"noAction";return g("Next Modal Action:",{actionToTake:N,prerenderOptions:d},{path:{isSame:y,urlToLoadPath:x,lastLoadedPathInIframe:u},config:{isSame:S,previousEmbedConfig:i,embedConfig:a},queryParams:{isSame:b,lastLoadedUrlInIframeObjectSearchParams:w,urlToLoadObjectSearchParams:k},areSlotsStale:$,crossedReloadThreshold:q,isInFailedState:C,isConnectionInitiated:n}),N;function ge({embedConfig1:T,embedConfig2:F}){return Object.keys(T).length!==Object.keys(F).length?!1:Object.keys(T).every(M=>
221{if(typeof T[M]!=typeof F[M])return!1;const z=T[M],R=F[M];return z instanceof Array&&R instanceof Array?z.length===R.length&&z.every(fe=>R.includes(fe)):typeof z=="string"?z===R:!0})}}getLastLoadedLinkInframe(){if(!this.iframe||!this.iframe.dataset.calLink)return null;const e=this.iframe.dataset.calLink;if(!e)return null;const t=new URL(e,new URL(this.iframe.src).origin);return new URL(`${t.pathname}${t.search}`,t.origin)}recordUpdatedParamsForIframe(e){const t=this.getLastLoadedLinkInframe();if(!t||!this.iframe)return;const r=new URL(t.toString());for(const[a,i]of Object.entries(e))r.searchParams.set(a,i);this.iframe.dataset.calLink=`${r.pathname.replace(/^\//,"")}${r.search}`}canPrerenderLink({calLink:e,calOrigin:t,previousEmbedRenderStartTime:r}){const a=this.getLastLoadedLinkInframe();if((a==null?void 0:a.toString())===new URL(e,t).toString())return i()?(g("Threshold crossed, allowing repeat prerender"),!0):(g("Threshold not crossed, preventing repeat prerender"),!1);return!0;function i(){return r?Date.now()-r>=6e4:!1}}prepareForPrerender({calLink:e,calOrigin:t,previousEmbedRenderStartTime:r,prerenderOptions:a,isHeadlessRouterPath:i}){if(!this.canPrerenderLink({calLink:e,calOrigin:t,previousEmbedRenderStartTime:r}))return null;this.modalBox&&(g("Destroying previous prerendered modalbox"),this.modalBox.remove());const n=!!i,l=typeof a.backgroundSlotsFetch>"u"?n:a.backgroundSlotsFetch,c={...a,backgroundSlotsFetch:l};return this.api.prerenderOptions=c,this.isPrerendering=!0,{enrichedPrerenderOptions:c}}setModalRenderStartVariables({embedConfig:e,embedRenderStartTime:t}){this.embedConfig=e,this.embedRenderStartTime=t}getPreviousModalRenderStartVariables(){return{embedConfig:this.embedConfig,embedRenderStartTime:this.embedRenderStartTime}}connect({config:e,params:t}){this.recordUpdatedParamsForIframe(t),this.doInIframe({method:"connect",arg:{config:e,params:t}})}}const D=class D{constructor(e){this.cal=e}init(e,t={}){let r="";if(typeof e!="string"?t=e||{}:r=e,r!==this.cal.namespace)return;D.initializedNamespaces.push(this.cal.namespace);const{calOrigin:a,origin:i,...n}=t;this.cal.__config.calOrigin=a||i||this.cal.__config.calOrigin,this.cal.__config={...this.cal.__config,...n}}initNamespace(e){p.ns[e].instance=p.ns[e].instance||new f(e,p.ns[e].q)}inline({calLink:e,elementOrSelector:t,config:r}){if(P(arguments[0],{required:!0,props:{calLink:{required:!0,type:"string"},elementOrSelector:{required:!0,type:["string",HTMLElement]},config:{required:!1,type:Object}}}),this.cal.inlineEl&&document.body.contains(this.cal.inlineEl)){console.warn("Inline embed already exists. Ignoring this call");return}if(r=r||{},typeof r.iframeAttrs=="string"||r.iframeAttrs instanceof Array)throw new Error("iframeAttrs should be an object");const a=t instanceof HTMLElement?t:document.querySelector(t);if(!a)throw new Error("Element not found");r.embedType="inline";const i=this.cal.getCalConfig(),n=this.cal.createIframe({calLink:e,config:Y(f.ensureGuestKey(r),a),calOrigin:i.calOrigin});n.style.height="100%",n.style.width="100%",a.classList.add("cal-inline-container");const l=document.createElement("template"),c=E(r,"layout"),d=E(r,"cal.embed.pageType"),h=E(r,"theme");l.innerHTML=`<cal-inline 222 ${U({pageType:d,theme:h,layout:c})} 223 style="max-height:inherit;height:inherit;min-height:inherit;display:flex;position:relative;flex-wrap:wrap;width:100%"> 224 </cal-inline> 225 <style>.cal-inline-container::-webkit-scrollbar{display:none}.cal-inline-container{scrollbar-width:none}</style>`,this.cal.inlineEl=l.content.children[0],this.cal.inlineEl.appendChild(n),a.appendChild(l.content)}floatingButton({calLink:e,buttonText:t="Book my Cal",hideButtonIcon:r=!1,attributes:a,buttonPosition:i="bottom-right",buttonColor:n="rgb(0, 0, 0)",buttonTextColor:l="rgb(255, 255, 255)",calOrigin:c,config:d}){let h=null;a!=null&&a.id&&(h=document.getElementById(a.id));let s;h?s=h:(s=document.createElement("cal-floating-button"),s.dataset.calLink=e,s.dataset.calNamespace=this.cal.namespace,s.dataset.calOrigin=c??"",d&&(s.dataset.calConfig=JSON.stringify(d)),a!=null&&a.id&&(s.id=a.id),document.body.appendChild(s));const u=s.dataset;u.buttonText=t,u.hideButtonIcon=`${r}`,u.buttonPosition=`${i}`,u.buttonColor=`${n}`,u.buttonTextColor=`${l}`}async modal({calLink:e,config:t={},calOrigin:r,__prerender:a=!1,prerenderOptions:i={}}){var C;const n=!!a;if(typeof t.iframeAttrs=="string"||t.iframeAttrs instanceof Array)throw new Error("iframeAttrs should be an object");const l=document.body,c=this.cal.getCalConfig();t={...t},r=r||c.calOrigin;const d=new URL(e,r),h=d?Q(d.toString()):!1,{embedConfig:s,embedRenderStartTime:u}=this.cal.getPreviousModalRenderStartVariables();let m;const v=Y(f.ensureGuestKey({...t,embedType:"modal"}),l);let x;if(n){const L=this.cal.prepareForPrerender({calLink:e,calOrigin:r,previousEmbedRenderStartTime:u,prerenderOptions:i,isHeadlessRouterPath:h});if(!L)return g(`Prevented unnecessary repeat prerender for ${e}`),{status:"prerender-prevented"};x=L.enrichedPrerenderOptions,m=Pe({config:v,isHeadlessRouterPath:h,backgroundSlotsFetch:!!((C=this.prerenderOptions)!=null&&C.backgroundSlotsFetch)})}else this.cal.isPrerendering=!1,m=v;const w=this.modalUid||this.prerenderedModalUid||String(Date.now()),k=!!(this.modalUid&&this.prerenderedModalUid),b=Date.now(),S={embedConfig:m,previousEmbedConfig:s,embedRenderStartTime:b,previousEmbedRenderStartTime:u,isConnectionInitiated:k,prerenderOptions:x??this.prerenderOptions??null};return this.cal.setModalRenderStartVariables({embedConfig:m,embedRenderStartTime:b}),this.__modal({calLink:e,enrichedConfig:m,calOrigin:r,isPrerendering:n,stateData:S,uid:w,containerEl:l})}async __modal({uid:e,calLink:t,enrichedConfig:r,calOrigin:a,isPrerendering:i,stateData:n,containerEl:l}){var y;const c=new URL(t,a),d=c?Q(c.toString()):!1,h=document.querySelector(`cal-modal-box[uid="${e}"]`);if(h&&this.cal.iframe){g(`Trying to reuse modal ${e}`);const w=this.cal.getLastLoadedLinkInframe(),k=(y=w==null?void 0:w.pathname)==null?void 0:y.includes("/router");if(d&&!k)throw new Error("`prerender` instruction should have been fired with headless router path as calLink(i.e. router?form={FORM_ID}&PARAMS=VALUES)");{const b=this.cal.getNextActionForModal({modal:{uid:e},pathWithQueryToLoad:`${c.pathname}
225${c.search}`,stateData:n});if(b==="noAction"){if(i)return;g(`Reopening modal without any other action needed ${e}`),h.setAttribute("state","reopened");return}if(g("Attempting to load/connect regular booking link"),h.setAttribute("state","loading"),b==="fullReload")g("Initiating full page load"),this.cal.loadInIframe({calLink:t,calOrigin:a,iframe:this.cal.iframe,config:r}),this.cal.doInIframe({method:"__reloadInitiated",arg:{}});else if(b==="connect"||b==="connect-no-slots-fetch"){const S=ne(c.searchParams.entries());this.cal.connect({config:{...r,...b==="connect-no-slots-fetch"?{"cal.embed.noSlotsFetchOnConnect":"true"}:{}},params:S})}}this.modalUid=e;return}g(`Creating new modal ${e}`),i&&(this.prerenderedModalUid=e);let s=null;s||(s=this.cal.createIframe({calLink:t,config:r,calOrigin:a})),s.style.borderRadius="8px",s.style.height="100%",s.style.width="100%";const u=document.createElement("template"),m=E(r,"cal.embed.pageType"),v=E(r,"theme"),x=E(r,"layout");return u.innerHTML=`<cal-modal-box 226 ${U({pageType:m,theme:v,layout:x})} 227 uid="${e}"> 228 </cal-modal-box>`,this.cal.modalBox=u.content.children[0],this.cal.modalBox.appendChild(s),this.cal.modalBox.setAttribute("state","loading"),i&&this.cal.modalBox.setAttribute("state","prerendering"),this.handleClose(),l.appendChild(u.content),{status:"created"}}handleClose(){this.cal.actionManager.on("__closeIframe",()=>{var e;(e=this.cal.modalBox)==null||e.setAttribute("state","closed")})}on({action:e,callback:t}){P(arguments[0],{required:!0,props:{action:{required:!0,type:"string"},callback:{required:!0,type:Function}}}),this.cal.actionManager.on(e,t)}off({action:e,callback:t}){this.cal.actionManager.off(e,t)}closeModal(){if(this.cal.inlineEl&&!this.cal.modalBox)throw new Error("closeModal() is only supported for modal-based embeds (ModalBox and FloatingButton). It cannot be used with inline embeds.");this.cal.actionManager.fire("__closeIframe",{})}preload({calLink:e,type:t,options:r={},pageType:a,calOrigin:i}){P(arguments[0],{required:!0,props:{calLink:{type:"string",required:!0},type:{type:"string",required:!1},options:{type:Object,required:!1}}});let n=p;const l=this.cal.namespace;if(l&&(n=p.ns[l]),!n)throw new Error(`Namespace ${l} isn't defined`);const c=this.cal.getCalConfig(),{prerenderIframe:d,...h}=r;let s=d;if(t&&s===void 0&&(s=!0),!t&&s)throw new Error("You should provide 'type'");s?t==="modal"||t==="floatingButton"?(this.cal.isPrerendering=!0,this.modal({calLink:e,calOrigin:i||c.calOrigin,__prerender:!0,prerenderOptions:h,...a?{config:{"cal.embed.pageType":a}}:{}})):(console.warn("Ignoring - full preload for inline embed and instead preloading assets only"),J({calLink:e,config:c})):J({calLink:e,config:c})}prerender({calLink:e,type:t,pageType:r,calOrigin:a,options:i={}}){this.preload({calLink:e,type:t,pageType:r,calOrigin:a,options:i})}ui(e){P(e,{required:!0,props:{theme:{required:!1,type:"string"},styles:{required:!1,type:Object}}}),this.cal.doInIframe({method:"ui",arg:e})}};D.initializedNamespaces=[];let I=D;function Be(){const o=new URLSearchParams(window.location.search);return ne(o.entries())}const me="";p.instance=new f(me,p.q);for(const[o,e]of Object.entries(p.ns))e.instance=e.instance??new f(o,e.q);window.addEventListener("message",o=>{const e=o.data,t=e.fullType,r=pe.parseAction(t);if(!r)return;const a=f.actionsManagers[r.ns];if(p.__logQueue=p.__logQueue||[],p.__logQueue.push({...r,data:e.data}),!a)throw new Error(`Unhandled Action ${r}`);a.fire(r.type,e.data)});document.addEventListener("click",o=>{var h;const e=o.target,t=d(e),r=(h=t==null?void 0:t.dataset)==null?void 0:h.calLink;if(!r)return;const a=t.dataset.calNamespace,i=t.dataset.calConfig||"",n=t.dataset.calOrigin||"";let l;try{l=JSON.parse(i)}catch{l={}}let c=p;if(a&&(c=p.ns[a]),!c)throw new Error(`Namespace ${a} isn't defined`);c("modal",{calLink:r,config:l,calOrigin:n});function d(s){let u;return!(s instanceof HTMLElement)||(s!=null&&s.dataset.calLink?u=s:u=Array.from(document.querySelectorAll("[data-cal-link]")).find(m=>m.contains(s)),!(u instanceof HTMLElement))?null:u}});let X=null;(function(){setInterval(()=>{const e=ue(document.body);
228e&&e!==X&&(X=e,I.initializedNamespaces.forEach(t=>{je(t)("ui",{colorScheme:e})}))},50)})();function je(o){let e;return o===me?e=p:e=p.ns[o],e}function J({config:o,calLink:e}){const t=document.body.appendChild(document.createElement("iframe")),r=new URL(`${o.calOrigin}/${e}`);r.searchParams.set("preload","true"),t.src=r.toString(),t.style.width="0",t.style.height="0",t.style.display="none"}function Ue(){p.fingerprint="",p.version="1.5.3",p.__css=He,p.config||(p.config={}),p.config.forwardQueryParams=p.config.forwardQueryParams??!1}function g(...o){const e=location.search;p.__logQueue=p.__logQueue||[],p.__logQueue.push(o),(e.includes("cal.embed.logging=1")||Oe.INTEGRATION_TEST_MODE==="true")&&console.log("Parent:",...o)}function Z(...o){console.error(...o)} 229}()
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.