PageSourceSearch

https://book.unseenfields.com/embed.js

js unseenfields.com collected 2026-10-04 08:10:09 UTC 87,475 bytes, 229 lines download raw bytes

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,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#39;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}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: &quot;meta&quot; &quot;header&quot; &quot;main&quot; &quot;timeslots&quot;; 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: &quot;meta main main&quot; &quot;meta main main&quot;; 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">&times;</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.