1import{r as t,a2 as St,u as se,j as e,a as le,a3 as Le}from"./index-6iznneeq.js";import{u as U}from"./useQuery-DFbnK9yN.js";import{u as ae}from"./useMutation-CYp8f-YE.js";import{I as xe}from"./input-GIPW9QDl.js";import{p as O,s as Oe,n as At,c as Ht}from"./Lock.es-DYX0rupd.js";import{u as Fe}from"./use-dismissed-tips-D1tOxQNv.js";import{L as k0}from"./LoginScreen-BIDxzLUk.js";import{u as Et}from"./use-reduced-motion-IFBlsqs0.js";import{A as Vt}from"./index-BiMPFahA.js";import{m as re}from"./proxy-CJ39Nw63.js";import"./utils-km2FGkQ4.js";import"./shared-dtdOnJhz.js";const Ge="Pacific/Auckland";function ge(){return new Intl.DateTimeFormat("en-CA",{timeZone:Ge,year:"numeric",month:"2-digit",day:"2-digit"}).format(new Date)}function Ye(){const n=new Intl.DateTimeFormat("en-US",{timeZone:Ge,weekday:"short"}).formatToParts(new Date).find(u=>u.type==="weekday")?.value;return{Sun:0,Mon:1,Tue:2,Wed:3,Thu:4,Fri:5,Sat:6}[n??"Sun"]??0}function Zt(){const a=ge(),p=(Ye()+6)%7,g=new Date(a+"T00:00:00Z").getTime()-p*864e5,x=g+6*864e5,N=new Date(g).toISOString().slice(0,10),h=new Date(x).toISOString().slice(0,10);return{weekStart:N,weekEnd:h}}const Mt=new Map([["bold",t.createElement(t.Fragment,null,t.createElement("path",{d:"M244,56v48a12,12,0,0,1-12,12H184a12,12,0,1,1,0-24H201.1l-19-17.38c-.13-.12-.26-.24-.38-.37A76,76,0,1,0,127,204h1a75.53,75.53,0,0,0,52.15-20.72,12,12,0,0,1,16.49,17.45A99.45,99.45,0,0,1,128,228h-1.37A100,100,0,1,1,198.51,57.06L220,76.72V56a12,12,0,0,1,24,0Z"}))],["duotone",t.createElement(t.Fragment,null,t.createElement("path",{d:"M216,128a88,88,0,1,1-88-88A88,88,0,0,1,216,128Z",opacity:"0.2"}),t.createElement("path",{d:"M240,56v48a8,8,0,0,1-8,8H184a8,8,0,0,1,0-16H211.4L184.81,71.64l-.25-.24a80,80,0,1,0-1.67,114.78,8,8,0,0,1,11,11.63A95.44,95.44,0,0,1,128,224h-1.32A96,96,0,1,1,195.75,60L224,85.8V56a8,8,0,1,1,16,0Z"}))],["fill",t.createElement(t.Fragment,null,t.createElement("path",{d:"M240,56v48a8,8,0,0,1-8,8H184a8,8,0,0,1-5.66-13.66l17-17-10.55-9.65-.25-.24a80,80,0,1,0-1.67,114.78,8,8,0,1,1,11,11.63A95.44,95.44,0,0,1,128,224h-1.32A96,96,0,1,1,195.75,60l10.93,10L226.34,50.3A8,8,0,0,1,240,56Z"}))],["light",t.createElement(t.Fragment,null,t.createElement("path",{d:"M238,56v48a6,6,0,0,1-6,6H184a6,6,0,0,1,0-12h32.55l-30.38-27.8c-.06-.06-.12-.13-.19-.19a82,82,0,1,0-1.7,117.65,6,6,0,0,1,8.24,8.73A93.46,93.46,0,0,1,128,222h-1.28A94,94,0,1,1,194.37,61.4L226,90.35V56a6,6,0,1,1,12,0Z"}))],["regular",t.createElement(t.Fragment,null,t.createElement("path",{d:"M240,56v48a8,8,0,0,1-8,8H184a8,8,0,0,1,0-16H211.4L184.81,71.64l-.25-.24a80,80,0,1,0-1.67,114.78,8,8,0,0,1,11,11.63A95.44,95.44,0,0,1,128,224h-1.32A96,96,0,1,1,195.75,60L224,85.8V56a8,8,0,1,1,16,0Z"}))],["thin",t.createElement(t.Fragment,null,t.createElement("path",{d:"M236,56v48a4,4,0,0,1-4,4H184a4,4,0,0,1,0-8h37.7L187.53,68.69l-.13-.12a84,84,0,1,0-1.75,120.51,4,4,0,0,1,5.5,5.82A91.43,91.43,0,0,1,128,220h-1.26A92,92,0,1,1,193,62.84l35,32.05V56a4,4,0,1,1,8,0Z"}))]]),Ct=new Map([["bold",t.createElement(t.Fragment,null,t.createElement("path",{d:"M244,116V88a20,20,0,0,0-20-20H208V64a20,20,0,0,0-20-20H164a20,20,0,0,0-20,20v52H112V64A20,20,0,0,0,92,44H68A20,20,0,0,0,48,64v4H32A20,20,0,0,0,12,88v28a12,12,0,0,0,0,24v28a20,20,0,0,0,20,20H48v4a20,20,0,0,0,20,20H92a20,20,0,0,0,20-20V140h32v52a20,20,0,0,0,20,20h24a20,20,0,0,0,20-20v-4h16a20,20,0,0,0,20-20V140a12,12,0,0,0,0-24ZM36,164V92H48v72Zm52,24H72V68H88Zm96,0H168V68h16Zm36-24H208V92h12Z"}))],["duotone",t.createElement(t.Fragment,null,t.createElement("path",{d:"M96,64V192a8,8,0,0,1-8,8H64a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H88A8,8,0,0,1,96,64Zm96-8H168a8,8,0,0,0-8,8V192a8,8,0,0,0,8,8h24a8,8,0,0,0,8-8V64A8,8,0,0,0,192,56Z",opacity:"0.2"}),t.createElement("path",{d:"M248,120h-8V88a16,16,0,0,0-16-16H208V64a16,16,0,0,0-16-16H168a16,16,0,0,0-16,16v56H104V64A16,16,0,0,0,88,48H64A16,16,0,0,0,48,64v8H32A16,16,0,0,0,16,88v32H8a8,8,0,0,0,0,16h8v32a16,16,0,0,0,16,16H48v8a16,16,0,0,0,16,16H88a16,16,0,0,0,16-16V136h48v56a16,16,0,0,0,16,16h24a16,16,0,0,0,16-16v-8h16a16,16,0,0,0,16-16V136h8a8,8,0,0,0,0-16ZM32,168V88H48v80Zm56,24H64V64H88V192Zm104,0H168V64h24V175.83c0,.06,0,.11,0,.17s0,.12,0,.17V192Zm32-24H208V88h16Z"}))],["fill",t.createElement(t.Fragment,null,t.createElement("path",{d:"M200,64V192a16,16,0,0,1-16,16H168a16,16,0,0,1-16-16V136H104v56a16,16,0,0,1-16,16H72a16,16,0,0,1-16-16V64A16,16,0,0,1,72,48H88a16,16,0,0,1,16,16v56h48V64a16,16,0,0,1,16-16h16A16,16,0,0,1,200,64ZM36,72H32A16,16,0,0,0,16,88v32H8.27A8.18,8.18,0,0,0,0,127.47,8,8,0,0,0,8,136h8v32a16,16,0,0,0,16,16h4a4,4,0,0,0,4-4V76A4,4,0,0,0,36,72Zm220,55.47a8.18,8.18,0,0,0-8.25-7.47H240V88a16,16,0,0,0-16-16h-4a4,4,0,0,0-4,4V180a4,4,0,0,0,4,4h4a16,16,0,0,0,16-16V136h8A8,8,0,0,0,256,127.47Z"}))],["light",t.createElement(t.Fragment,null,t.createElement("path",{d:"M248,122H238V88a14,14,0,0,0-14-14H206V64a14,14,0,0,0-14-14H168a14,14,0,0,0-14,14v58H102V64A14,14,0,0,0,88,50H64A14,14,0,0,0,50,64V74H32A14,14,0,0,0,18,88v34H8a6,6,0,0,0,0,12H18v34a14,14,0,0,0,14,14H50v10a14,14,0,0,0,14,14H88a14,14,0,0,0,14-14V134h52v58a14,14,0,0,0,14,14h24a14,14,0,0,0,14-14V182h18a14,14,0,0,0,14-14V134h10a6,6,0,0,0,0-12ZM32,170a2,2,0,0,1-2-2V88a2,2,0,0,1,2-2H50v84Zm58,22a2,2,0,0,1-2,2H64a2,2,0,0,1-2-2V64a2,2,0,0,1,2-2H88a2,2,0,0,1,2,2Zm104,0a2,2,0,0,1-2,2H168a2,2,0,0,1-2-2V64a2,2,0,0,1,2-2h24a2,2,0,0,1,2,2Zm32-24a2,2,0,0,1-2,2H206V86h18a2,2,0,0,1,2,2Z"}))],["regular",t.createElement(t.Fragment,null,t.createElement("path",{d:"M248,120h-8V88a16,16,0,0,0-16-16H208V64a16,16,0,0,0-16-16H168a16,16,0,0,0-16,16v56H104V64A16,16,0,0,0,88,48H64A16,16,0,0,0,48,64v8H32A16,16,0,0,0,16,88v32H8a8,8,0,0,0,0,16h8v32a16,16,0,0,0,16,16H48v8a16,16,0,0,0,16,16H88a16,16,0,0,0,16-16V136h48v56a16,16,0,0,0,16,16h24a16,16,0,0,0,16-16v-8h16a16,
116,0,0,0,16-16V136h8a8,8,0,0,0,0-16ZM32,168V88H48v80Zm56,24H64V64H88V192Zm104,0H168V64h24V175.82c0,.06,0,.12,0,.18s0,.12,0,.18V192Zm32-24H208V88h16Z"}))],["thin",t.createElement(t.Fragment,null,t.createElement("path",{d:"M248,124H236V88a12,12,0,0,0-12-12H204V64a12,12,0,0,0-12-12H168a12,12,0,0,0-12,12v60H100V64A12,12,0,0,0,88,52H64A12,12,0,0,0,52,64V76H32A12,12,0,0,0,20,88v36H8a4,4,0,0,0,0,8H20v36a12,12,0,0,0,12,12H52v12a12,12,0,0,0,12,12H88a12,12,0,0,0,12-12V132h56v60a12,12,0,0,0,12,12h24a12,12,0,0,0,12-12V180h20a12,12,0,0,0,12-12V132h12a4,4,0,0,0,0-8ZM32,172a4,4,0,0,1-4-4V88a4,4,0,0,1,4-4H52v88Zm60,20a4,4,0,0,1-4,4H64a4,4,0,0,1-4-4V64a4,4,0,0,1,4-4H88a4,4,0,0,1,4,4Zm104,0a4,4,0,0,1-4,4H168a4,4,0,0,1-4-4V64a4,4,0,0,1,4-4h24a4,4,0,0,1,4,4Zm32-24a4,4,0,0,1-4,4H204V84h20a4,4,0,0,1,4,4Z"}))]]),Lt=new Map([["bold",t.createElement(t.Fragment,null,t.createElement("path",{d:"M184,28H72A20,20,0,0,0,52,48V224a12,12,0,0,0,18.36,10.18l57.63-36,57.65,36A12,12,0,0,0,204,224V48A20,20,0,0,0,184,28Zm-4,24V154.35l-45.65-28.53a12,12,0,0,0-12.72,0L76,154.35V52ZM134.35,173.82a12,12,0,0,0-12.72,0L76,202.35v-19.7l52-32.5,52,32.5v19.7Z"}))],["duotone",t.createElement(t.Fragment,null,t.createElement("path",{d:"M192,176v48l-64-40L64,224V176l64-40Z",opacity:"0.2"}),t.createElement("path",{d:"M184,32H72A16,16,0,0,0,56,48V224a8,8,0,0,0,12.24,6.78L128,193.43l59.77,37.35A8,8,0,0,0,200,224V48A16,16,0,0,0,184,32Zm0,16V161.57l-51.77-32.35a8,8,0,0,0-8.48,0L72,161.56V48ZM132.23,177.22a8,8,0,0,0-8.48,0L72,209.57V180.43l56-35,56,35v29.14Z"}))],["fill",t.createElement(t.Fragment,null,t.createElement("path",{d:"M184,32H72A16,16,0,0,0,56,48V224a8,8,0,0,0,12.24,6.78L128,193.43l59.77,37.35A8,8,0,0,0,200,224V48A16,16,0,0,0,184,32ZM132.23,177.22a8,8,0,0,0-8.48,0L72,209.57V180.43l56-35,56,35v29.14Z"}))],["light",t.createElement(t.Fragment,null,t.createElement("path",{d:"M184,34H72A14,14,0,0,0,58,48V224a6,6,0,0,0,9.18,5.09l60.81-38,60.83,38A6,6,0,0,0,198,224V48A14,14,0,0,0,184,34ZM72,46H184a2,2,0,0,1,2,2V165.18l-54.83-34.27a6,6,0,0,0-6.36,0L70,165.17V48A2,2,0,0,1,72,46Zm59.17,132.91a6,6,0,0,0-6.36,0L70,213.17V179.33l58-36.25,58,36.25v33.84Z"}))],["regular",t.createElement(t.Fragment,null,t.createElement("path",{d:"M184,32H72A16,16,0,0,0,56,48V224a8,8,0,0,0,12.24,6.78L128,193.43l59.77,37.35A8,8,0,0,0,200,224V48A16,16,0,0,0,184,32Zm0,16V161.57l-51.77-32.35a8,8,0,0,0-8.48,0L72,161.56V48ZM132.23,177.22a8,8,0,0,0-8.48,0L72,209.57V180.43l56-35,56,35v29.14Z"}))],["thin",t.createElement(t.Fragment,null,t.createElement("path",{d:"M184,36H72A12,12,0,0,0,60,48V224a4,4,0,0,0,6.12,3.39L128,188.72l61.89,38.67A4,4,0,0,0,192,228a4.06,4.06,0,0,0,1.94-.5A4,4,0,0,0,196,224V48A12,12,0,0,0,184,36ZM72,44H184a4,4,0,0,1,4,4V168.78l-57.89-36.17a4,4,0,0,0-4.24,0L68,168.78V48A4,4,0,0,1,72,44Zm58.11,136.61a4,4,0,0,0-4.24,0L68,216.78V178.22l60-37.5,60,37.5v38.56Z"}))]]),Ft=new Map([["bold",t.createElement(t.Fragment,null,t.createElement("path",{d:"M184,28H72A20,20,0,0,0,52,48V224a12,12,0,0,0,18.36,10.18l57.63-36,57.65,36A12,12,0,0,0,204,224V48A20,20,0,0,0,184,28Zm-4,174.35-45.65-28.53a12,12,0,0,0-12.72,0L76,202.35V52H180Z"}))],["duotone",t.createElement(t.Fragment,null,t.createElement("path",{d:"M192,48V224l-64-40L64,224V48a8,8,0,0,1,8-8H184A8,8,0,0,1,192,48Z",opacity:"0.2"}),t.createElement("path",{d:"M184,32H72A16,16,0,0,0,56,48V224a8,8,0,0,0,12.24,6.78L128,193.43l59.77,37.35A8,8,0,0,0,200,224V48A16,16,0,0,0,184,32Zm0,177.57-51.77-32.35a8,8,0,0,0-8.48,0L72,209.57V48H184Z"}))],["fill",t.createElement(t.Fragment,null,t.createElement("path",{d:"M184,32H72A16,16,0,0,0,56,48V224a8,8,0,0,0,12.24,6.78L128,193.43l59.77,37.35A8,8,0,0,0,200,224V48A16,16,0,0,0,184,32Z"}))],["light",t.createElement(t.Fragment,null,t.createElement("path",{d:"M184,34H72A14,14,0,0,0,58,48V224a6,6,0,0,0,9.18,5.09l60.81-38,60.83,38A6,6,0,0,0,198,224V48A14,14,0,0,0,184,34Zm2,179.17-54.83-34.26a6,6,0,0,0-6.36,0L70,213.17V48a2,2,0,0,1,2-2H184a2,2,0,0,1,2,2Z"}))],["regular",t.createElement(t.Fragment,null,t.createElement("path",{d:"M184,32H72A16,16,0,0,0,56,48V224a8,8,0,0,0,12.24,6.78L128,193.43l59.77,37.35A8,8,0,0,0,200,224V48A16,16,0,0,0,184,32Zm0,177.57-51.77-32.35a8,8,0,0,0-8.48,0L72,209.57V48H184Z"}))],["thin",t.createElement(t.Fragment,null,t.createElement("path",{d:"M184,36H72A12,12,0,0,0,60,48V224a4,4,0,0,0,6.12,3.39L128,188.72l61.89,38.67A4,4,0,0,0,192,228a4.06,4.06,0,0,0,1.94-.5A4,4,0,0,0,196,224V48A12,12,0,0,0,184,36Zm4,180.78-57.89-36.17a4,4,0,0,0-4.24,0L68,216.78V48a4,4,0,0,1,4-4H184a4,4,0,0,1,4,4Z"}))]]),$t=new Map([["bold",t.createElement(t.Fragment,null,t.createElement("path",{d:"M208,28H188V24a12,12,0,0,0-24,0v4H92V24a12,12,0,0,0-24,0v4H48A20,20,0,0,0,28,48V208a20,20,0,0,0,20,20H208a20,20,0,0,0,20-20V48A20,20,0,0,0,208,28ZM68,52a12,12,0,0,0,24,0h72a12,12,0,0,0,24,0h16V76H52V52ZM52,204V100H204V204Z"}))],["duotone",t.createElement(t.Fragment,null,t.createElement("path",{d:"M216,48V88H40V48a8,8,0,0,1,8-8H208A8,8,0,0,1,216,48Z",opacity:"0.2"}),t.createElement("path",{d:"M208,32H184V24a8,8,0,0,0-16,0v8H88V24a8,8,0,0,0-16,0v8H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM72,48v8a8,8,0,0,0,16,0V48h80v8a8,8,0,0,0,16,0V48h24V80H48V48ZM208,208H48V96H208V208Z"}))],["fill",t.createElement(t.Fragment,null,t.createElement("path",{d:"M208,32H184V24a8,8,0,0,0-16,0v8H88V24a8,8,0,0,0-16,0v8H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32Zm0,48H48V48H72v8a8,8,0,0,0,16,0V48h80v8a8,8,0,0,0,16,0V48h24Z"}))],["light",t.createElement(t.Fragment,null,t.createElement("path",{d:"M208,34H182V24a6,6,0,0,0-12,0V34H86V24a6,6,0,0,0-12,0V34H48A14,14,0,0,0,34,48V208a14,14,0,0,0,14,14H208a14,14,0,0,0,14-14V48A14,14,0,0,0,208,34ZM48,46H74V56a6,6,0,0,0,12,0V46h84V56a6,6,0,0,0,12,0V46h26a2,2,0,0,1,2,2V82H46V48A2,2,0,0,1,48,46ZM208,210H48a2,2,0,0,1-2-2V94H210V208A2,2,0,0,1,208,210Z"}))],["regular",t.createElement(t.Fragment,null,t.createElement("path",{d:"M208,32H184V24a8,8,0,0,0-16,0v8H88V24a8,8,0,0,0-16,0v8H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM72,48v8a8,8,0,0,0,16,0V48h80v8a8,8,0,0,0,16,0V48h24V80H48V48ZM208,208H48V96H208V208Z"}))],["thin",t.createElement(t.Fragment,null,t.createElement("path",{d:"M208,36H180V24a4,4,0,0,0-8,0V36H84V24a4,4,0,0,0-8,0V36H48A12,12,0,0,0,36,48V208a12,12,0,0,0,12,12H208a12,12,0,0,0,12-12V48A12,12,0,0,0,208,36ZM48,44H76V56a4,4,0,0,0,8,0V44h88V56a4,4,0,0,0,8,0V44h28a4,4,0,0,1,4,4V84H44V48A4,4,0,0,1,48,44ZM208,212H48a4,4,0,0,1-4-4V92H212V208A4,4,0,0,1,208,212Z"}))]]),zt=new Map([["bold",t.createElement(t.Fragment,null,t.createElement("path",{d:"M172,164a12,12,0,0,1-12,12H96a12,12,0,0,1,0-24h64A12,12,0,0,1,172,164Zm-12-52H96a12,12,0,0,0,0,24h64a12,12,0,0,0,0-24Zm60-64V216a20,20,0,0,1-20,20H56a20,20,0,0,1-20-20V48A20,20,0,0,1,56,28H90.53a51.88,51.88,0,0,1,74.94,0H200A20,20,0,0,1,220,48ZM100.29,60h55.42a28,28,0,0,0-55.42,0ZM196,52H178.59A52.13,52.13,0,0,1,180,64v8a12,12,0,0,1-12,12H88A12,12,0,0,1,76,72V64a52.13,52.13,0,0,1,1.41-12H60V212H196Z"}))],["duotone",t.createElement(t.Fragment,null,t.createElement("path",{d:"M208,48V216a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H96a39.83,39.83,0,0,0-8,24v8h80V64a39.83,39.83,0,0,0-8-24h40A8,8,0,0,1,208,48Z",opacity:"0.2"}),t.createElement("path",{d:"M168,152a8,8,0,0,1-8,8H96a8,8,0,0,1,0-16h64A8,8,0,0,1,168,152Zm-8-40H96a8,8,0,0,0,0,16h64a8,8,0,0,0,0-16Zm56-64V216a16,16,0,0,1-16,16H56a16,16,0,0,1-16-16V48A16,16,0,0,1,56,32H92.26a47.92,47.92,0,0,1,71.48,0H200A16,16,0,0,1,216,48ZM96,64h64a32,32,0,0,0-64,0ZM200,48H173.25A47.93,47.93,0,0,1,176,64v8a8,8,0,0,1-8,8H88a8,8,0,0,1-8-8V64a47.93,47.93,0,0,1,2.75-16H56V216H200Z"}))],["fill",t.createElement(t.Fragment,null,t.createElement("path",{d:"M200,32H163.74a47.92,47.92,0,0,0-71.48,0H56A16,16,0,0,0,40,48V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V48A16,16,0,0,0,200,32Zm-72,0a32,32,0,0,1,32,32H96A32,32,0,0,1,128,32Zm32,128H96a8,8,0,0,1,0-16h64a8,8,0,0,1,0,16Zm0-32H96a8,8,0,0,1,0-16h64a8,8,0,0,1,0,16Z"}))],["light",t.createElement(t.Fragment,null,t.createElement("path",{d:"M166,152a6,6,0,0,1-6,6H96a6,
16,0,0,1,0-12h64A6,6,0,0,1,166,152Zm-6-38H96a6,6,0,0,0,0,12h64a6,6,0,0,0,0-12Zm54-66V216a14,14,0,0,1-14,14H56a14,14,0,0,1-14-14V48A14,14,0,0,1,56,34H93.17a45.91,45.91,0,0,1,69.66,0H200A14,14,0,0,1,214,48ZM94,64v2h68V64a34,34,0,0,0-68,0ZM202,48a2,2,0,0,0-2-2H170.33A45.77,45.77,0,0,1,174,64v8a6,6,0,0,1-6,6H88a6,6,0,0,1-6-6V64a45.77,45.77,0,0,1,3.67-18H56a2,2,0,0,0-2,2V216a2,2,0,0,0,2,2H200a2,2,0,0,0,2-2Z"}))],["regular",t.createElement(t.Fragment,null,t.createElement("path",{d:"M168,152a8,8,0,0,1-8,8H96a8,8,0,0,1,0-16h64A8,8,0,0,1,168,152Zm-8-40H96a8,8,0,0,0,0,16h64a8,8,0,0,0,0-16Zm56-64V216a16,16,0,0,1-16,16H56a16,16,0,0,1-16-16V48A16,16,0,0,1,56,32H92.26a47.92,47.92,0,0,1,71.48,0H200A16,16,0,0,1,216,48ZM96,64h64a32,32,0,0,0-64,0ZM200,48H173.25A47.93,47.93,0,0,1,176,64v8a8,8,0,0,1-8,8H88a8,8,0,0,1-8-8V64a47.93,47.93,0,0,1,2.75-16H56V216H200Z"}))],["thin",t.createElement(t.Fragment,null,t.createElement("path",{d:"M164,152a4,4,0,0,1-4,4H96a4,4,0,0,1,0-8h64A4,4,0,0,1,164,152Zm-4-36H96a4,4,0,0,0,0,8h64a4,4,0,0,0,0-8Zm52-68V216a12,12,0,0,1-12,12H56a12,12,0,0,1-12-12V48A12,12,0,0,1,56,36H94.08a44,44,0,0,1,67.84,0H200A12,12,0,0,1,212,48ZM92,64v4h72V64a36,36,0,0,0-72,0ZM204,48a4,4,0,0,0-4-4H167.17A43.71,43.71,0,0,1,172,64v8a4,4,0,0,1-4,4H88a4,4,0,0,1-4-4V64a43.71,43.71,0,0,1,4.83-20H56a4,4,0,0,0-4,4V216a4,4,0,0,0,4,4H200a4,4,0,0,0,4-4Z"}))]]),Tt=new Map([["bold",t.createElement(t.Fragment,null,t.createElement("path",{d:"M128,20A108,108,0,1,0,236,128,108.12,108.12,0,0,0,128,20Zm0,192a84,84,0,1,1,84-84A84.09,84.09,0,0,1,128,212Zm68-84a12,12,0,0,1-12,12H128a12,12,0,0,1-12-12V72a12,12,0,0,1,24,0v44h44A12,12,0,0,1,196,128Z"}))],["duotone",t.createElement(t.Fragment,null,t.createElement("path",{d:"M224,128a96,96,0,1,1-96-96A96,96,0,0,1,224,128Z",opacity:"0.2"}),t.createElement("path",{d:"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm64-88a8,8,0,0,1-8,8H128a8,8,0,0,1-8-8V72a8,8,0,0,1,16,0v48h48A8,8,0,0,1,192,128Z"}))],["fill",t.createElement(t.Fragment,null,t.createElement("path",{d:"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm56,112H128a8,8,0,0,1-8-8V72a8,8,0,0,1,16,0v48h48a8,8,0,0,1,0,16Z"}))],["light",t.createElement(t.Fragment,null,t.createElement("path",{d:"M128,26A102,102,0,1,0,230,128,102.12,102.12,0,0,0,128,26Zm0,192a90,90,0,1,1,90-90A90.1,90.1,0,0,1,128,218Zm62-90a6,6,0,0,1-6,6H128a6,6,0,0,1-6-6V72a6,6,0,0,1,12,0v50h50A6,6,0,0,1,190,128Z"}))],["regular",t.createElement(t.Fragment,null,t.createElement("path",{d:"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm64-88a8,8,0,0,1-8,8H128a8,8,0,0,1-8-8V72a8,8,0,0,1,16,0v48h48A8,8,0,0,1,192,128Z"}))],["thin",t.createElement(t.Fragment,null,t.createElement("path",{d:"M128,28A100,100,0,1,0,228,128,100.11,100.11,0,0,0,128,28Zm0,192a92,92,0,1,1,92-92A92.1,92.1,0,0,1,128,220Zm60-92a4,4,0,0,1-4,4H128a4,4,0,0,1-4-4V72a4,4,0,0,1,8,0v52h52A4,4,0,0,1,188,128Z"}))]]),Rt=new Map([["bold",t.createElement(t.Fragment,null,t.createElement("path",{d:"M100,28H64A20,20,0,0,0,44,48V208a20,20,0,0,0,20,20h36a20,20,0,0,0,20-20V48A20,20,0,0,0,100,28ZM96,204H68V52H96ZM192,28H156a20,20,0,0,0-20,20V208a20,20,0,0,0,20,20h36a20,20,0,0,0,20-20V48A20,20,0,0,0,192,28Zm-4,176H160V52h28Z"}))],["duotone",t.createElement(t.Fragment,null,t.createElement("path",{d:"M112,48V208a8,8,0,0,1-8,8H64a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8h40A8,8,0,0,1,112,48Zm80-8H152a8,8,0,0,0-8,8V208a8,8,0,0,0,8,8h40a8,8,0,0,0,8-8V48A8,8,0,0,0,192,40Z",opacity:"0.2"}),t.createElement("path",{d:"M104,32H64A16,16,0,0,0,48,48V208a16,16,0,0,0,16,16h40a16,16,0,0,0,16-16V48A16,16,0,0,0,104,32Zm0,176H64V48h40ZM192,32H152a16,16,0,0,0-16,16V208a16,16,0,0,0,16,16h40a16,16,0,0,0,16-16V48A16,16,0,0,0,192,32Zm0,176H152V48h40Z"}))],["fill",t.createElement(t.Fragment,null,t.createElement("path",{d:"M120,48V208a16,16,0,0,1-16,16H64a16,16,0,0,1-16-16V48A16,16,0,0,1,64,32h40A16,16,0,0,1,120,48Zm72-16H152a16,16,0,0,0-16,16V208a16,16,0,0,0,16,16h40a16,16,0,0,0,16-16V48A16,16,0,0,0,192,32Z"}))],["light",t.createElement(t.Fragment,null,t.createElement("path",{d:"M104,34H64A14,14,0,0,0,50,48V208a14,14,0,0,0,14,14h40a14,14,0,0,0,14-14V48A14,14,0,0,0,104,34Zm2,174a2,2,0,0,1-2,2H64a2,2,0,0,1-2-2V48a2,2,0,0,1,2-2h40a2,2,0,0,1,2,2ZM192,34H152a14,14,0,0,0-14,14V208a14,14,0,0,0,14,14h40a14,14,0,0,0,14-14V48A14,14,0,0,0,192,34Zm2,174a2,2,0,0,1-2,2H152a2,2,0,0,1-2-2V48a2,2,0,0,1,2-2h40a2,2,0,0,1,2,2Z"}))],["regular",t.createElement(t.Fragment,null,t.createElement("path",{d:"M104,32H64A16,16,0,0,0,48,48V208a16,16,0,0,0,16,16h40a16,16,0,0,0,16-16V48A16,16,0,0,0,104,32Zm0,176H64V48h40ZM192,32H152a16,16,0,0,0-16,16V208a16,16,0,0,0,16,16h40a16,16,0,0,0,16-16V48A16,16,0,0,0,192,32Zm0,176H152V48h40Z"}))],["thin",t.createElement(t.Fragment,null,t.createElement("path",{d:"M104,36H64A12,12,0,0,0,52,48V208a12,12,0,0,0,12,12h40a12,12,0,0,0,12-12V48A12,12,0,0,0,104,36Zm4,172a4,4,0,0,1-4,4H64a4,4,0,0,1-4-4V48a4,4,0,0,1,4-4h40a4,4,0,0,1,4,4ZM192,36H152a12,12,0,0,0-12,12V208a12,12,0,0,0,12,12h40a12,12,0,0,0,12-12V48A12,12,0,0,0,192,36Zm4,172a4,4,0,0,1-4,4H152a4,4,0,0,1-4-4V48a4,4,0,0,1,4-4h40a4,4,0,0,1,4,4Z"}))]]),Bt=new Map([["bold",t.createElement(t.Fragment,null,t.createElement("path",{d:"M216.49,79.52l-56-56A12,12,0,0,0,152,20H56A20,20,0,0,0,36,40V216a20,20,0,0,0,20,20H200a20,20,0,0,0,20-20V88A12,12,0,0,0,216.49,79.52ZM160,57l23,23H160ZM60,212V44h76V92a12,12,0,0,0,12,12h48V212Zm100.49-60.49a12,12,0,0,1,0,17l-24,24a12,12,0,0,1-17,0l-24-24a12,12,0,0,1,17-17L116,155V124a12,12,0,0,1,24,0v31l3.51-3.52A12,12,0,0,1,160.49,151.51Z"}))],["duotone",t.createElement(t.Fragment,null,t.createElement("path",{d:"M208,88H152V32Z",opacity:"0.2"}),t.createElement("path",{d:"M213.66,82.34l-56-56A8,8,0,0,0,152,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V88A8,8,0,0,0,213.66,82.34ZM160,51.31,188.69,80H160ZM200,216H56V40h88V88a8,8,0,0,0,8,8h48V216
1Zm-42.34-61.66a8,8,0,0,1,0,11.32l-24,24a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L120,164.69V120a8,8,0,0,1,16,0v44.69l10.34-10.35A8,8,0,0,1,157.66,154.34Z"}))],["fill",t.createElement(t.Fragment,null,t.createElement("path",{d:"M213.66,82.34l-56-56A8,8,0,0,0,152,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V88A8,8,0,0,0,213.66,82.34Zm-56,83.32-24,24a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L120,164.69V120a8,8,0,0,1,16,0v44.69l10.34-10.35a8,8,0,0,1,11.32,11.32ZM152,88V44l44,44Z"}))],["light",t.createElement(t.Fragment,null,t.createElement("path",{d:"M212.24,83.76l-56-56A6,6,0,0,0,152,26H56A14,14,0,0,0,42,40V216a14,14,0,0,0,14,14H200a14,14,0,0,0,14-14V88A6,6,0,0,0,212.24,83.76ZM158,46.48,193.52,82H158ZM200,218H56a2,2,0,0,1-2-2V40a2,2,0,0,1,2-2h90V88a6,6,0,0,0,6,6h50V216A2,2,0,0,1,200,218Zm-43.76-62.24a6,6,0,0,1,0,8.48l-24,24a6,6,0,0,1-8.48,0l-24-24a6,6,0,0,1,8.48-8.48L122,169.51V120a6,6,0,0,1,12,0v49.51l13.76-13.75A6,6,0,0,1,156.24,155.76Z"}))],["regular",t.createElement(t.Fragment,null,t.createElement("path",{d:"M213.66,82.34l-56-56A8,8,0,0,0,152,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V88A8,8,0,0,0,213.66,82.34ZM160,51.31,188.69,80H160ZM200,216H56V40h88V88a8,8,0,0,0,8,8h48V216
1Zm-42.34-61.66a8,8,0,0,1,0,11.32l-24,24a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L120,164.69V120a8,8,0,0,1,16,0v44.69l10.34-10.35A8,8,0,0,1,157.66,154.34Z"}))],["thin",t.createElement(t.Fragment,null,t.createElement("path",{d:"M210.83,85.17l-56-56A4,4,0,0,0,152,28H56A12,12,0,0,0,44,40V216a12,12,0,0,0,12,12H200a12,12,0,0,0,12-12V88A4,4,0,0,0,210.83,85.17ZM156,41.65,198.34,84H156ZM200,220H56a4,4,0,0,1-4-4V40a4,4,0,0,1,4-4h92V88a4,4,0,0,0,4,4h52V216A4,4,0,0,1,200,220Zm-45.17-62.83a4,4,0,0,1,0,5.66l-24,24a4,4,0,0,1-5.66,0l-24-24a4,4,0,0,1,5.66-5.66L124,174.34V120a4,4,0,0,1,8,0v54.34l17.17-17.17A4,4,0,0,1,154.83,157.17Z"}))]]),It=new Map([["bold",t.createElement(t.Fragment,null,t.createElement("path",{d:"M216.49,79.52l-56-56A12,12,0,0,0,152,20H56A20,20,0,0,0,36,40V216a20,20,0,0,0,20,20H200a20,20,0,0,0,20-20V88A12,12,0,0,0,216.49,79.52ZM160,57l23,23H160ZM60,212V44h76V92a12,12,0,0,0,12,12h48V212Zm112-80a12,12,0,0,1-12,12H96a12,12,0,0,1,0-24h64A12,12,0,0,1,172,132Zm0,40a12,12,0,0,1-12,12H96a12,12,0,0,1,0-24h64A12,12,0,0,1,172,172Z"}))],["duotone",t.createElement(t.Fragment,null,t.createElement("path",{d:"M208,88H152V32Z",opacity:"0.2"}),t.createElement("path",{d:"M213.66,82.34l-56-56A8,8,0,0,0,152,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V88A8,8,0,0,0,213.66,82.34ZM160,51.31,188.69,80H160ZM200,216H56V40h88V88a8,8,0,0,0,8,8h48V216
1Zm-32-80a8,8,0,0,1-8,8H96a8,8,0,0,1,0-16h64A8,8,0,0,1,168,136Zm0,32a8,8,0,0,1-8,8H96a8,8,0,0,1,0-16h64A8,8,0,0,1,168,168Z"}))],["fill",t.createElement(t.Fragment,null,t.createElement("path",{d:"M213.66,82.34l-56-56A8,8,0,0,0,152,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V88A8,8,0,0,0,213.66,82.34ZM160,176H96a8,8,0,0,1,0-16h64a8,8,0,0,1,0,16Zm0-32H96a8,8,0,0,1,0-16h64a8,8,0,0,1,0,16Zm-8-56V44l44,44Z"}))],["light",t.createElement(t.Fragment,null,t.createElement("path",{d:"M212.24,83.76l-56-56A6,6,0,0,0,152,26H56A14,14,0,0,0,42,40V216a14,14,0,0,0,14,14H200a14,14,0,0,0,14-14V88A6,6,0,0,0,212.24,83.76ZM158,46.48,193.52,82H158ZM200,218H56a2,2,0,0,1-2-2V40a2,2,0,0,1,2-2h90V88a6,6,0,0,0,6,6h50V216A2,2,0,0,1,200,218Zm-34-82a6,6,0,0,1-6,6H96a6,6,0,0,1,0-12h64A6,6,0,0,1,166,136Zm0,32a6,6,0,0,1-6,6H96a6,6,0,0,1,0-12h64A6,6,0,0,1,166,168Z"}))],["regular",t.createElement(t.Fragment,null,t.createElement("path",{d:"M213.66,82.34l-56-56A8,8,0,0,0,152,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V88A8,8,0,0,0,213.66,82.34ZM160,51.31,188.69,80H160ZM200,216H56V40h88V88a8,8,0,0,0,8,8h48V216
1Zm-32-80a8,8,0,0,1-8,8H96a8,8,0,0,1,0-16h64A8,8,0,0,1,168,136Zm0,32a8,8,0,0,1-8,8H96a8,8,0,0,1,0-16h64A8,8,0,0,1,168,168Z"}))],["thin",t.createElement(t.Fragment,null,t.createElement("path",{d:"M210.83,85.17l-56-56A4,4,0,0,0,152,28H56A12,12,0,0,0,44,40V216a12,12,0,0,0,12,12H200a12,12,0,0,0,12-12V88A4,4,0,0,0,210.83,85.17ZM156,41.65,198.34,84H156ZM200,220H56a4,4,0,0,1-4-4V40a4,4,0,0,1,4-4h92V88a4,4,0,0,0,4,4h52V216A4,4,0,0,1,200,220Zm-36-84a4,4,0,0,1-4,4H96a4,4,0,0,1,0-8h64A4,4,0,0,1,164,136Zm0,32a4,4,0,0,1-4,4H96a4,4,0,0,1,0-8h64A4,4,0,0,1,164,168Z"}))]]),Wt=new Map([["bold",t.createElement(t.Fragment,null,t.createElement("path",{d:"M248.23,112.31A20,20,0,0,0,232,104H220V88a20,20,0,0,0-20-20H132L105.34,48a20.12,20.12,0,0,0-12-4H40A20,20,0,0,0,20,64V208a12,12,0,0,0,12,12H211.1a12,12,0,0,0,11.33-8l28.49-81.47.06-.17A20,20,0,0,0,248.23,112.31ZM92,68l28.8,21.6A12,12,0,0,0,128,92h68v12H69.77a20,20,0,0,0-18.94,13.58L44,137.15V68ZM202.59,196H48.89l23.72-68H226.37Z"}))],["duotone",t.createElement(t.Fragment,null,t.createElement("path",{d:"M208,88v24H69.77a8,8,0,0,0-7.59,5.47L32,208V64a8,8,0,0,1,8-8H93.33a8,8,0,0,1,4.8,1.6L128,80h72A8,8,0,0,1,208,88Z",opacity:"0.2"}),t.createElement("path",{d:"M245,110.64A16,16,0,0,0,232,104H216V88a16,16,0,0,0-16-16H130.67L102.94,51.2a16.14,16.14,0,0,0-9.6-3.2H40A16,16,0,0,0,24,64V208a8,8,0,0,0,8,8H211.1a8,8,0,0,0,7.59-5.47l28.49-85.47A16.05,16.05,0,0,0,245,110.64ZM93.34,64,123.2,86.4A8,8,0,0,0,128,88h72v16H69.77a16,16,0,0,0-15.18,10.94L40,158.7V64Zm112,136H43.1l26.67-80H232Z"}))],["fill",t.createElement(t.Fragment,null,t.createElement("path",{d:"M245,110.64A16,16,0,0,0,232,104H216V88a16,16,0,0,0-16-16H130.67L102.94,51.2a16.14,16.14,0,0,0-9.6-3.2H40A16,16,0,0,0,24,64V208h0a8,8,0,0,0,8,8H211.1a8,8,0,0,0,7.59-5.47l28.49-85.47A16.05,16.05,0,0,0,245,110.64ZM93.34,64,123.2,86.4A8,8,0,0,0,128,88h72v16H69.77a16,16,0,0,0-15.18,10.94L40,158.7V64Z"}))],["light",t.createElement(t.Fragment,null,t.createElement("path",{d:"M243.36,111.81A14,14,0,0,0,232,106H214V88a14,14,0,0,0-14-14H130L101.74,52.8a14.06,14.06,0,0,0-8.4-2.8H40A14,14,0,0,0,26,64V208a6,6,0,0,0,6,6H211.1a6,6,0,0,0,5.69-4.1l28.49-85.47A14,14,0,0,0,243.36,111.81ZM40,62H93.34a2,2,0,0,1,1.2.4L124.4,84.8A6,6,0,0,0,128,86h72a2,2,0,0,1,2,2v18H69.77a14,14,0,0,0-13.28,9.57L38,171V64A2,2,0,0,1,40,62Zm193.9,58.63L206.78,202H40.33l27.54-82.63a2,2,0,0,1,1.9-1.37H232a2,2,0,0,1,1.9,2.63Z"}))],["regular",t.createElement(t.Fragment,null,t.createElement("path",{d:"M245,110.64A16,16,0,0,0,232,104H216V88a16,16,0,0,0-16-16H130.67L102.94,51.2a16.14,16.14,0,0,0-9.6-3.2H40A16,16,0,0,0,24,64V208h0a8,8,0,0,0,8,8H211.1a8,8,0,0,0,7.59-5.47l28.49-85.47A16.05,16.05,0,0,0,245,110.64ZM93.34,64,123.2,86.4A8,8,0,0,0,128,88h72v16H69.77a16,16,0,0,0-15.18,10.94L40,158.7V64Zm112,136H43.1l26.67-80H232Z"}))],["thin",t.createElement(t.Fragment,null,t.createElement("path",{d:"M241.72,113a11.88,11.88,0,0,0-9.73-5H212V88a12,12,0,0,0-12-12H129.33l-28.8-21.6a12.05,12.05,0,0,0-7.2-2.4H40A12,12,0,0,0,28,64V208a4,4,0,0,0,4,4H211.09a4,4,0,0,0,3.79-2.74l28.49-85.47A11.86,11.86,0,0,0,241.72,113ZM40,60H93.33a4,4,0,0,1,2.4.8L125.6,83.2a4,4,0,0,0,2.4.8h72a4,4,0,0,1,4,4v20H69.76a12,12,0,0,0-11.38,8.21L36,183.35V64A4,4,0,0,1,40,60Zm195.78,61.26L208.2,204H37.55L66,118.74A4,4,0,0,1,69.76,116H232a4,4,0,0,1,3.79,5.26Z"}))]]),Dt=new Map([["bold",t.createElement(t.Fragment,null,t.createElement("path",{d:"M68,88V40a12,12,0,0,1,24,0V88a12,12,0,0,1-24,0ZM220,40V224a12,12,0,0,1-24,0V180H152a12,12,0,0,1-12-12,273.23,273.23,0,0,1,7.33-57.82C157.42,68.42,176.76,40.33,203.27,29A12,12,0,0,1,220,40ZM196,62.92C182.6,77,175,98,170.77,115.38A254.41,254.41,0,0,0,164.55,156H196ZM128,39A12,12,0,0,0,104,41l4,47.46a28,28,0,0,1-56,0L56,41A12,12,0,1,0,32,39L28,87c0,.34,0,.67,0,1a52.1,52.1,0,0,0,40,50.59V224a12,12,0,0,0,24,0V138.59A52.1,52.1,0,0,0,132,88c0-.33,0-.66,0-1Z"}))],["duotone",t.createElement(t.Fragment,null,t.createElement("path",{d:"M208,40V168H152S152,64,208,40Z",opacity:"0.2"}),t.createElement("path",{d:"M72,88V40a8,8,0,0,1,16,0V88a8,8,0,0,1-16,0ZM216,40V224a8,8,0,0,1-16,0V176H152a8,8,0,0,1-8-8,268.75,268.75,0,0,1,7.22-56.88c9.78-40.49,28.32-67.63,53.63-78.47A8,8,0,0,1,216,40ZM200,53.9c-32.17,24.57-38.47,84.42-39.7,106.1H200ZM119.89,38.69a8,8,0,1,0-15.78,2.63L112,88.63a32,32,0,0,1-64,0l7.88-47.31a8,8,0,1,0-15.78-2.63l-8,48A8.17,8.17,0,0,0,32,88a48.07,48.07,0,0,0,40,47.32V224a8,8,0,0,0,16,0V135.32A48.07,48.07,0,0,0,128,88a8.17,8.17,0,0,0-.11-1.31Z"}))],["fill",t.createElement(t.Fragment,null,t.createElement("path",{d:"M216,40V224a8,8,0,0,1-16,0V176H152a8,8,0,0,1-8-8,268.75,268.75,0,0,1,7.22-56.88c9.78-40.49,28.32-67.63,53.63-78.47A8,8,0,0,1,216,40Zm-96.11-1.31a8,8,0,1,0-15.78,2.63L111.89,88H88V40a8,8,0,0,0-16,0V88H48.11l7.78-46.68a8,8,0,1,0-15.78-2.63l-8,48A8.17,8.17,0,0,0,32,88a48.07,48.07,0,0,0,40,47.32V224a8,8,0,0,0,16,0V135.32A48.07,48.07,0,0,0,128,88a8.17,8.17,0,0,0-.11-1.31Z"}))],["light",t.createElement(t.Fragment,null,t.createElement("path",{d:"M74,88V40a6,6,0,0,1,12,0V88a6,6,0,0,1-12,0ZM214,40V224a6,6,0,0,1-12,0V174H152a6,6,0,0,1-6-6c0-4.41.68-108.25,59.64-133.51A6,6,0,0,1,214,40ZM202,50c-36.79,24.29-42.82,91.48-43.81,112H202ZM117.92,39a6,6,0,1,0-11.84,2L114,88.48a34,34,0,0,1-68,0L53.92,41a6,6,0,0,0-11.84-2l-8,48A6.61,6.61,0,0,0,34,88a46.06,46.06,0,0,0,40,45.
16V224a6,6,0,0,0,12,0V133.6A46.06,46.06,0,0,0,126,88a6.61,6.61,0,0,0-.08-1Z"}))],["regular",t.createElement(t.Fragment,null,t.createElement("path",{d:"M72,88V40a8,8,0,0,1,16,0V88a8,8,0,0,1-16,0ZM216,40V224a8,8,0,0,1-16,0V176H152a8,8,0,0,1-8-8,268.75,268.75,0,0,1,7.22-56.88c9.78-40.49,28.32-67.63,53.63-78.47A8,8,0,0,1,216,40ZM200,53.9c-32.17,24.57-38.47,84.42-39.7,106.1H200ZM119.89,38.69a8,8,0,1,0-15.78,2.63L112,88.63a32,32,0,0,1-64,0l7.88-47.31a8,8,0,1,0-15.78-2.63l-8,48A8.17,8.17,0,0,0,32,88a48.07,48.07,0,0,0,40,47.32V224a8,8,0,0,0,16,0V135.32A48.07,48.07,0,0,0,128,88a8.17,8.17,0,0,0-.11-1.31Z"}))],["thin",t.createElement(t.Fragment,null,t.createElement("path",{d:"M76,88V40a4,4,0,0,1,8,0V88a4,4,0,0,1-8,0ZM212,40V224a4,4,0,0,1-8,0V172H152a4,4,0,0,1-4-4,264.27,264.27,0,0,1,7.11-55.94c9.47-39.22,27.21-65.41,51.31-75.74A4,4,0,0,1,212,40Zm-8,6.46C162.25,70.33,156.81,145.75,156.1,164H204Zm-88-7.12a4,4,0,0,0-7.9,1.32l8,47.66a36,36,0,0,1-72,0l8-47.66a4,4,0,0,0-7.9-1.32l-8,48A4.89,4.89,0,0,0,36,88a44.06,44.06,0,0,0,40,43.81V224a4,4,0,0,0,8,0V131.81A44.06,44.06,0,0,0,124,88a4.89,4.89,0,0,0,0-.66Z"}))]]),Pt=new Map([["bold",t.createElement(t.Fragment,null,t.createElement("path",{d:"M128,76a52,52,0,1,0,52,52A52.06,52.06,0,0,0,128,76Zm0,80a28,28,0,1,1,28-28A28,28,0,0,1,128,156Zm113.86-49.57A12,12,0,0,0,236,98.34L208.21,82.49l-.11-31.31a12,12,0,0,0-4.25-9.12,116,116,0,0,0-38-21.41,12,12,0,0,0-9.68.89L128,37.27,99.83,21.53a12,12,0,0,0-9.7-.9,116.06,116.06,0,0,0-38,21.47,12,12,0,0,0-4.24,9.1l-.14,31.34L20,98.35a12,12,0,0,0-5.85,8.11,110.7,110.7,0,0,0,0,43.11A12,12,0,0,0,20,157.66l27.82,15.85.11,31.31a12,12,0,0,0,4.25,9.12,116,116,0,0,0,38,21.41,12,12,0,0,0,9.68-.89L128,218.73l28.14,15.74a12,12,0,0,0,9.7.9,116.06,116.06,0,0,0,38-21.47,12,12,0,0,0,4.24-9.1l.14-31.34,27.81-15.81a12,12,0,0,0,5.85-8.11A110.7,110.7,0,0,0,241.86,106.43Zm-22.63,33.18-26.88,15.28a11.94,11.94,0,0,0-4.55,4.59c-.54,1-1.11,1.93-1.7,2.88a12,12,0,0,0-1.83,6.31L184.13,199a91.83,91.83,0,0,1-21.07,11.87l-27.15-15.19a12,12,0,0,0-5.86-1.53h-.29c-1.14,0-2.3,0-3.44,0a12.08,12.08,0,0,0-6.14,1.51L93,210.82A92.27,92.27,0,0,1,71.88,199l-.11-30.24a12,12,0,0,0-1.83-6.32c-.58-.94-1.16-1.91-1.7-2.88A11.92,11.92,0,0,0,63.7,155L36.8,139.63a86.53,86.53,0,0,1,0-23.24l26.88-15.28a12,12,0,0,0,4.55-4.58c.54-1,1.11-1.94,1.7-2.89a12,12,0,0,0,1.83-6.31L71.87,57A91.83,91.83,0,0,1,92.94,45.17l27.15,15.19a11.92,11.92,0,0,0,6.15,1.52c1.14,0,2.3,0,3.44,0a12.08,12.08,0,0,0,6.14-1.51L163,45.18A92.27,92.27,0,0,1,184.12,57l.11,30.24a12,12,0,0,0,1.83,6.32c.58.94,1.16,1.91,1.7,2.88A11.92,11.92,0,0,0,192.3,101l26.9,15.33A86.53,86.53,0,0,1,219.23,139.61Z"}))],["duotone",t.createElement(t.Fragment,null,t.createElement("path",{d:"M230.1,108.76,198.25,90.62c-.64-1.16-1.31-2.29-2-3.41l-.12-36A104.61,104.61,0,0,0,162,32L130,49.89c-1.34,0-2.69,0-4,0L94,32A104.58,104.58,0,0,0,59.89,51.25l-.16,36c-.7,1.12-1.37,2.26-2,3.41l-31.84,18.1a99.15,99.15,0,0,0,0,38.46l31.85,18.14c.64,1.16,1.31,2.29,2,3.41l.12,36A104.61,104.61,0,0,0,94,224l32-17.87c1.34,0,2.69,0,4,0L162,224a104.58,104.58,0,0,0,34.08-19.25l.16-36c.7-1.12,1.37-2.26,2-3.41l31.84-18.1A99.15,99.15,0,0,0,230.1,108.76ZM128,168a40,40,0,1,1,40-40A40,40,0,0,1,128,168Z",opacity:"0.2"}),t.createElement("path",{d:"M128,80a48,48,0,1,0,48,48A48.05,48.05,0,0,0,128,80Zm0,80a32,32,0,1,1,32-32A32,32,0,0,1,128,160Zm109.94-52.79a8,8,0,0,0-3.89-5.4l-29.83-17-.12-33.62a8,8,0,0,0-2.83-6.08,111.91,111.91,0,0,0-36.72-20.67,8,8,0,0,0-6.46.59L128,41.85,97.88,25a8,8,0,0,0-6.47-.6A111.92,111.92,0,0,0,54.73,45.15a8,8,0,0,0-2.83,6.07l-.15,33.65-29.83,17a8,8,0,0,0-3.89,5.4,106.47,106.47,0,0,0,0,41.56,8,8,0,0,0,3.89,5.4l29.83,17,.12,33.63a8,8,0,0,0,2.83,6.08,111.91,111.91,0,0,0,36.72,20.67,8,8,0,0,0,6.46-.59L128,214.15,158.12,231a7.91,7.91,0,0,0,3.9,1,8.09,8.09,0,0,0,2.57-.42,112.1,112.1,0,0,0,36.68-20.73,8,8,0,0,0,2.83-6.07l.15-33.65,29.83-17a8,8,0,0,0,3.89-5.4A106.47,106.47,0,0,0,237.94,107.21Zm-15,34.91-28.57,16.25a8,8,0,0,0-3,3c-.58,1-1.19,2.06-1.81,3.06a7.94,7.94,0,0,0-1.22,4.21l-.15,32.25a95.89,95.89,0,0,1-25.37,14.3L134,199.13a8,8,0,0,0-3.91-1h-.19c-1.21,0-2.43,0-3.64,0a8.1,8.1,0,0,0-4.1,1l-28.84,16.1A96,96,0,0,1,67.88,201l-.11-32.2a8,8,0,0,0-1.22-4.22c-.62-1-1.23-2-1.8-3.06a8.09,8.09,0,0,0-3-3.06l-28.6-16.29a90.49,90.49,0,0,1,0-28.26L61.67,97.63a8,8,0,0,0,3-3c.58-1,1.19-2.06,1.81-3.06a7.94,7.94,0,0,0,1.22-4.21l.15-32.25a95.89,95.89,0,0,1,25.37-14.3L122,56.87a8,8,0,0,0,4.1,1c1.21,0,2.43,0,3.64,0a8,8,0,0,0,4.1-1l28.84-16.1A96,96,0,0,1,188.12,55l.11,32.2a8,8,0,0,0,1.22,4.22c.62,1,1.23,2,1.8,3.06a8.09,8.09,0,0,0,3,3.06l28.6,16.29A90.49,90.49,0,0,1,222.9,142.12Z"}))],["fill",t.createElement(t.Fragment,null,t.createElement("path",{d:"M237.94,107.21a8,8,0,0,0-3.89-5.4l-29.83-17-.12-33.62a8,8,0,0,0-2.83-6.08,111.91,111.91,0,0,0-36.72-20.67,8,8,0,0,0-6.46.59L128,41.85,97.88,25a8,8,0,0,0-6.47-.6A111.92,111.92,0,0,0,54.73,45.15a8,8,0,0,0-2.83,6.07l-.15,33.65-29.83,17a8,8,0,0,0-3.89,5.4,106.47,106.47,0,0,0,0,41.56,8,8,0,0,0,3.89,5.4l29.83,17,.12,33.63a8,8,0,0,0,2.83,6.08,111.91,111.91,0,0,0,36.72,20.67,8,8,0,0,0,6.46-.59L128,214.15,158.12,231a7.91,7.91,0,0,0,3.9,1,8.09,8.09,0,0,0,2.57-.42,112.1,112.1,0,0,0,36.68-20.73,8,8,0,0,0,2.83-6.07l.15-33.65,29.83-17a8,8,0,0,0,3.89-5.4A106.47,106.47,0,0,0,237.94,107.21ZM128,168a40,40,0,1,1,40-40A40,40,0,0,1,128,168Z"}))],["light",t.createElement(t.Fragment,null,t.createElement("path",{d:"M128,82a46,46,0,1,0,46,46A46.06,46.06,0,0,0,128,82Zm0,80a34,34,0,1,1,34-34A34,34,0,0,1,128,162Zm108-54.4a6,6,0,0,0-2.92-4L202.64,86.22l-.42-.71L202.1,51.2A6,6,0,0,0,200,46.64a110.12,110.12,0,0,0-36.07-20.31,6,6,0,0,0-4.84.45L128.46,43.86h-1L96.91,26.76a6,6,0,0,0-4.86-.44A109.92,109.92,0,0,0,56,46.68a6,6,0,0,0-2.12,4.55l-.16,34.34c-.14.23-.28.47-.41.71L22.91,103.57A6,6,0,0,0,20,107.62a104.81,104.81,0,0,0,0,40.78,6,6,0,0,0,2.92,4l30.42,17.33.42.71.12,34.31A6,6,0,0,0,56,209.36a110.12,110.12,0,0,0,36.07,20.31,6,6,0,0,0,4.84-.45l30.61-17.08h1l30.56,17.1A6.09,6.09,0,0,0,162,230a5.83,5.83,0,0,0,1.93-.32,109.92,109.92,0,0,0,36-20.36,6,6,0,0,0,2.12-4.55l.16-34.34c.14-.23.28-.47.41-.71l30.42-17.29a6,6,0,0,0,2.92-4.05A104.81,104.81,0,0,0,236,107.6Zm-11.25,35.79L195.32,160.1a6.07,6.07,0,0,0-2.28,2.3c-.59,1-1.21,2.11-1.86,3.14a6,6,0,0,0-.91,3.16l-.16,33.21a98.15,98.15,0,0,1-27.52,15.53L133,200.88a6,6,0,0,0-2.93-.77h-.14c-1.24,0-2.5,0-3.74,0a6,
16,0,0,0-3.07.76L93.45,217.43a98,98,0,0,1-27.56-15.49l-.12-33.17a6,6,0,0,0-.91-3.16c-.64-1-1.27-2.08-1.86-3.14a6,6,0,0,0-2.27-2.3L31.3,143.4a93,93,0,0,1,0-30.79L60.68,95.9A6.07,6.07,0,0,0,63,93.6c.59-1,1.21-2.11,1.86-3.14a6,6,0,0,0,.91-3.16l.16-33.21A98.15,98.15,0,0,1,93.41,38.56L123,55.12a5.81,5.81,0,0,0,3.07.76c1.24,0,2.5,0,3.74,0a6,6,0,0,0,3.07-.76l29.65-16.56a98,98,0,0,1,27.56,15.49l.12,33.17a6,6,0,0,0,.91,3.16c.64,1,1.27,2.08,1.86,3.14a6,6,0,0,0,2.27,2.3L224.7,112.6A93,93,0,0,1,224.73,143.39Z"}))],["regular",t.createElement(t.Fragment,null,t.createElement("path",{d:"M128,80a48,48,0,1,0,48,48A48.05,48.05,0,0,0,128,80Zm0,80a32,32,0,1,1,32-32A32,32,0,0,1,128,160Zm109.94-52.79a8,8,0,0,0-3.89-5.4l-29.83-17-.12-33.62a8,8,0,0,0-2.83-6.08,111.91,111.91,0,0,0-36.72-20.67,8,8,0,0,0-6.46.59L128,41.85,97.88,25a8,8,0,0,0-6.47-.6A112.1,112.1,0,0,0,54.73,45.15a8,8,0,0,0-2.83,6.07l-.15,33.65-29.83,17a8,8,0,0,0-3.89,5.4,106.47,106.47,0,0,0,0,41.56,8,8,0,0,0,3.89,5.4l29.83,17,.12,33.62a8,8,0,0,0,2.83,6.08,111.91,111.91,0,0,0,36.72,20.67,8,8,0,0,0,6.46-.59L128,214.15,158.12,231a7.91,7.91,0,0,0,3.9,1,8.09,8.09,0,0,0,2.57-.42,112.1,112.1,0,0,0,36.68-20.73,8,8,0,0,0,2.83-6.07l.15-33.65,29.83-17a8,8,0,0,0,3.89-5.4A106.47,106.47,0,0,0,237.94,107.21Zm-15,34.91-28.57,16.25a8,8,0,0,0-3,3c-.58,1-1.19,2.06-1.81,3.06a7.94,7.94,0,0,0-1.22,4.21l-.15,32.25a95.89,95.89,0,0,1-25.37,14.3L134,199.13a8,8,0,0,0-3.91-1h-.19c-1.21,0-2.43,0-3.64,0a8.08,8.08,0,0,0-4.1,1l-28.84,16.1A96,96,0,0,1,67.88,201l-.11-32.2a8,8,0,0,0-1.22-4.22c-.62-1-1.23-2-1.8-3.06a8.09,8.09,0,0,0-3-3.06l-28.6-16.29a90.49,90.49,0,0,1,0-28.26L61.67,97.63a8,8,0,0,0,3-3c.58-1,1.19-2.06,1.81-3.06a7.94,7.94,0,0,0,1.22-4.21l.15-32.25a95.89,95.89,0,0,1,25.37-14.3L122,56.87a8,8,0,0,0,4.1,1c1.21,0,2.43,0,3.64,0a8.08,8.08,0,0,0,4.1-1l28.84-16.1A96,96,0,0,1,188.12,55l.11,32.2a8,8,0,0,0,1.22,4.22c.62,1,1.23,2,1.8,3.06a8.09,8.09,0,0,0,3,3.06l28.6,16.29A90.49,90.49,0,0,1,222.9,142.12Z"}))],["thin",t.createElement(t.Fragment,null,t.createElement("path",{d:"M128,84a44,44,0,1,0,44,44A44.05,44.05,0,0,0,128,84Zm0,80a36,36,0,1,1,36-36A36,36,0,0,1,128,164Zm106-56a4,4,0,0,0-2-2.7l-30.89-17.6q-.47-.82-1-1.62L200.1,51.2a3.94,3.94,0,0,0-1.42-3,107.8,107.8,0,0,0-35.41-19.94,4,4,0,0,0-3.23.29L129,45.87h-2l-31-17.36a4,4,0,0,0-3.23-.3,108.05,108.05,0,0,0-35.39,20,4,4,0,0,0-1.41,3l-.16,34.9-1,1.62L23.9,105.3A4,4,0,0,0,22,108a102.76,102.76,0,0,0,0,40,4,4,0,0,0,1.95,2.7l30.89,17.6q.47.83,1,1.62l.12,34.87a3.94,3.94,0,0,0,1.42,3,107.8,107.8,0,0,0,35.41,19.94,4,4,0,0,0,3.23-.29L127,210.13h2l31,17.36a4,4,0,0,0,3.23.3,108.05,108.05,0,0,0,35.39-20,4,4,0,0,0,1.41-3l.16-34.9,1-1.62L232.1,150.7a4,4,0,0,0,2-2.71A102.76,102.76,0,0,0,234,108Zm-7.48,36.67L196.3,161.84a4,4,0,0,0-1.51,1.53c-.61,1.09-1.25,2.17-1.91,3.24a3.92,3.92,0,0,0-.61,2.1l-.16,34.15a99.8,99.8,0,0,1-29.7,16.77l-30.4-17a4.06,4.06,0,0,0-2-.51H130c-1.28,0-2.57,0-3.84,0a4.1,4.1,0,0,0-2.05.51l-30.45,17A100.23,100.23,0,0,1,63.89,202.9l-.12-34.12a3.93,3.93,0,0,0-.61-2.11c-.66-1-1.3-2.14-1.91-3.23a4,4,0,0,0-1.51-1.53L29.49,144.68a94.78,94.78,0,0,1,0-33.34L59.7,94.16a4,4,0,0,0,1.51-1.53c.61-1.09,1.25-2.17,1.91-3.23a4,4,0,0,0,.61-2.11l.16-34.15a99.8,99.8,0,0,1,29.7-16.77l30.4,17a4.1,4.1,0,0,0,2.05.51c1.28,0,2.57,0,3.84,0a4,4,0,0,0,2.05-.51l30.45-17A100.23,100.23,0,0,1,192.11,53.1l.12,34.12a3.93,3.93,0,0,0,.61,2.11c.66,1,1.3,2.14,1.91,3.23a4,4,0,0,0,1.51,1.53l30.25,17.23A94.78,94.78,0,0,1,226.54,144.66Z"}))]]),Ot=new Map([["bold",t.createElement(t.Fragment,null,t.createElement("path",{d:"M178,36c-20.09,0-37.92,7.93-50,21.56C115.92,43.93,98.09,36,78,36a66.08,66.08,0,0,0-66,66c0,72.34,105.81,130.14,110.31,132.57a12,12,0,0,0,11.38,0C138.19,232.14,244,174.34,244,102A66.08,66.08,0,0,0,178,36Zm-5.49,142.36A328.69,328.69,0,0,1,128,210.16a328.69,328.69,0,0,1-44.51-31.8C61.82,159.77,36,131.42,36,102A42,42,0,0,1,78,60c17.8,0,32.7,9.4,38.89,24.54a12,12,0,0,0,22.22,0C145.3,69.4,160.2,60,178,60a42,42,0,0,1,42,42C220,131.42,194.18,159.77,172.51,178.36Z"}))],["duotone",t.createElement(t.Fragment,null,t.createElement("path",{d:"M232,102c0,66-104,122-104,122S24,168,24,102A54,54,0,0,1,78,48c22.59,0,41.94,12.31,50,32,8.06-19.69,27.41-32,50-32A54,54,0,0,1,232,102Z",opacity:"0.2"}),t.createElement("path",{d:"M178,40c-20.65,0-38.73,8.88-50,23.89C116.73,48.88,98.65,40,78,40a62.07,62.07,0,0,0-62,62c0,70,103.79,126.66,108.21,129a8,8,0,0,0,7.58,0C136.21,228.66,240,172,240,102A62.07,62.07,0,0,0,178,40ZM128,214.8C109.74,204.16,32,155.69,32,102A46.06,46.06,0,0,1,78,56c19.45,0,35.78,10.36,42.6,27a8,8,0,0,0,14.8,0c6.82-16.67,23.15-27,42.6-27a46.06,46.06,0,0,1,46,46C224,155.61,146.24,204.15,128,214.8Z"}))],["fill",t.createElement(t.Fragment,null,t.createElement("path",{d:"M240,102c0,70-103.79,126.66-108.21,129a8,8,0,0,1-7.58,0C119.79,228.66,16,172,16,102A62.07,62.07,0,0,1,78,40c20.65,0,38.73,8.88,50,23.89C139.27,48.88,157.35,40,178,40A62.07,62.07,0,0,1,240,102Z"}))],["light",t.createElement(t.Fragment,null,t.createElement("path",{d:"M178,42c-21,0-39.26,9.47-50,25.34C117.26,51.47,99,42,78,42a60.07,60.07,0,0,0-60,60c0,29.2,18.2,59.59,54.1,90.31a334.68,334.68,0,0,0,53.06,37,6,6,0,0,0,5.68,0,334.68,334.68,0,0,0,53.06-37C219.8,161.59,238,131.2,238,102A60.07,60.07,0,0,0,178,42ZM128,217.11C111.59,207.64,30,157.72,30,102A48.05,48.05,0,0,1,78,54c20.28,0,37.31,10.83,44.45,28.27a6,6,0,0,0,11.1,0C140.69,64.83,157.72,54,178,54a48.05,48.05,0,0,1,48,48C226,157.72,144.41,207.64,128,217.11Z"}))],["regular",t.createElement(t.Fragment,null,t.createElement("path",{d:"M178,40c-20.65,0-38.73,8.88-50,23.89C116.73,48.88,98.65,40,78,40a62.07,62.07,0,0,0-62,62c0,70,103.79,126.66,108.21,129a8,8,0,0,0,7.58,0C136.21,228.66,240,172,240,102A62.07,62.07,0,0,0,178,40ZM128,214.8C109.74,204.16,32,155.69,32,102A46.06,46.06,0,0,1,78,56c19.45,0,35.78,10.36,42.6,27a8,8,0,0,0,14.8,0c6.82-16.67,23.15-27,42.6-27a46.06,46.06,0,0,1,46,46C224,155.61,146.24,204.15,128,214.8Z"}))],["thin",t.createElement(t.Fragment,null,t.createElement("path",{d:"M178,44c-21.44,0-39.92,10.19-50,27.07C117.92,54.19,99.44,44,78,44a58.07,58.07,0,0,0-58,58c0,28.59,18,58.47,53.4,88.79a333.81,333.81,0,0,0,52.7,36.73,4,4,0,0,0,3.8,0,333.81,333.81,0,0,0,52.7-36.73C218,160.47,236,130.59,236,102A58.07,58.07,0,0,0,178,44ZM128,219.42c-14-8-100-59.35-100-117.42A50.06,50.06,0,0,1,78,52c21.11,0,38.85,11.31,46.3,29.51a4,4,0,0,0,7.4,0C139.15,63.3
11,156.89,52,178,52a50.06,50.06,0,0,1,50,50C228,160,142,211.46,128,219.42Z"}))]]),Gt=new Map([["bold",t.createElement(t.Fragment,null,t.createElement("path",{d:"M144,96a16,16,0,1,1,16,16A16,16,0,0,1,144,96Zm92-40V200a20,20,0,0,1-20,20H40a20,20,0,0,1-20-20V56A20,20,0,0,1,40,36H216A20,20,0,0,1,236,56ZM44,60v79.72l33.86-33.86a20,20,0,0,1,28.28,0L147.31,147l17.18-17.17a20,20,0,0,1,28.28,0L212,149.09V60Zm0,136H162.34L92,125.66l-48,48Zm168,0V183l-33.37-33.37L164.28,164l32,32Z"}))],["duotone",t.createElement(t.Fragment,null,t.createElement("path",{d:"M224,56V178.06l-39.72-39.72a8,8,0,0,0-11.31,0L147.31,164,97.66,114.34a8,8,0,0,0-11.32,0L32,168.69V56a8,8,0,0,1,8-8H216A8,8,0,0,1,224,56Z",opacity:"0.2"}),t.createElement("path",{d:"M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40Zm0,16V158.75l-26.07-26.06a16,16,0,0,0-22.63,0l-20,20-44-44a16,16,0,0,0-22.62,0L40,149.37V56ZM40,172l52-52,80,80H40Zm176,28H194.63l-36-36,20-20L216,181.38V200ZM144,100a12,12,0,1,1,12,12A12,12,0,0,1,144,100Z"}))],["fill",t.createElement(t.Fragment,null,t.createElement("path",{d:"M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40ZM156,88a12,12,0,1,1-12,12A12,12,0,0,1,156,88Zm60,112H40V160.69l46.34-46.35a8,8,0,0,1,11.32,0h0L165,181.66a8,8,0,0,0,11.32-11.32l-17.66-17.65L173,138.34a8,8,0,0,1,11.31,0L216,170.07V200Z"}))],["light",t.createElement(t.Fragment,null,t.createElement("path",{d:"M216,42H40A14,14,0,0,0,26,56V200a14,14,0,0,0,14,14H216a14,14,0,0,0,14-14V56A14,14,0,0,0,216,42ZM40,54H216a2,2,0,0,1,2,2V163.57L188.53,134.1a14,14,0,0,0-19.8,0l-21.42,21.42L101.9,110.1a14,14,0,0,0-19.8,0L38,154.2V56A2,2,0,0,1,40,54ZM38,200V171.17l52.58-52.58a2,2,0,0,1,2.84,0L176.83,202H40A2,2,0,0,1,38,200Zm178,2H193.8l-38-38,21.41-21.42a2,2,0,0,1,2.83,0l38,38V200A2,2,0,0,1,216,202ZM146,100a10,10,0,1,1,10,10A10,10,0,0,1,146,100Z"}))],["regular",t.createElement(t.Fragment,null,t.createElement("path",{d:"M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40Zm0,16V158.75l-26.07-26.06a16,16,0,0,0-22.63,0l-20,20-44-44a16,16,0,0,0-22.62,0L40,149.37V56ZM40,172l52-52,80,80H40Zm176,28H194.63l-36-36,20-20L216,181.38V200ZM144,100a12,12,0,1,1,12,12A12,12,0,0,1,144,100Z"}))],["thin",t.createElement(t.Fragment,null,t.createElement("path",{d:"M216,44H40A12,12,0,0,0,28,56V200a12,12,0,0,0,12,12H216a12,12,0,0,0,12-12V56A12,12,0,0,0,216,44ZM40,52H216a4,4,0,0,1,4,4V168.4l-32.89-32.89a12,12,0,0,0-17,0l-22.83,22.83-46.82-46.83a12,12,0,0,0-17,0L36,159V56A4,4,0,0,1,40,52ZM36,200V170.34l53.17-53.17a4,4,0,0,1,5.66,0L181.66,204H40A4,4,0,0,1,36,200Zm180,4H193l-40-40,22.83-22.83a4,4,0,0,1,5.66,0L220,179.71V200A4,4,0,0,1,216,204ZM148,100a8,8,0,1,1,8,8A8,8,0,0,1,148,100Z"}))]]),Yt=new Map([["bold",t.createElement(t.Fragment,null,t.createElement("path",{d:"M108,84a16,16,0,1,1,16,16A16,16,0,0,1,108,84Zm128,44A108,108,0,1,1,128,20,108.12,108.12,0,0,1,236,128Zm-24,0a84,84,0,1,0-84,84A84.09,84.09,0,0,0,212,128Zm-72,36.68V132a20,20,0,0,0-20-20,12,12,0,0,0-4,23.32V168a20,20,0,0,0,20,20,12,12,0,0,0,4-23.32Z"}))],["duotone",t.createElement(t.Fragment,null,t.createElement("path",{d:"M224,128a96,96,0,1,1-96-96A96,96,0,0,1,224,128Z",opacity:"0.2"}),t.createElement("path",{d:"M144,176a8,8,0,0,1-8,8,16,16,0,0,1-16-16V128a8,8,0,0,1,0-16,16,16,0,0,1,16,16v40A8,8,0,0,1,144,176Zm88-48A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128ZM124,96a12,12,0,1,0-12-12A12,12,0,0,0,124,96Z"}))],["fill",t.createElement(t.Fragment,null,t.createElement("path",{d:"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm-4,48a12,12,0,1,1-12,12A12,12,0,0,1,124,72Zm12,112a16,16,0,0,1-16-16V128a8,8,0,0,1,0-16,16,16,0,0,1,16,16v40a8,8,0,0,1,0,16Z"}))],["light",t.createElement(t.Fragment,null,t.createElement("path",{d:"M142,176a6,6,0,0,1-6,6,14,14,0,0,1-14-14V128a2,2,0,0,0-2-2,6,6,0,0,1,0-12,14,14,0,0,1,14,14v40a2,2,0,0,0,2,2A6,6,0,0,1,142,176ZM124,94a10,10,0,1,0-10-10A10,10,0,0,0,124,94Zm106,34A102,102,0,1,1,128,26,102.12,102.12,0,0,1,230,128Zm-12,0a90,90,0,1,0-90,90A90.1,90.1,0,0,0,218,128Z"}))],["regular",t.createElement(t.Fragment,null,t.createElement("path",{d:"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm16-40a8,8,0,0,1-8,8,16,16,0,0,1-16-16V128a8,8,0,0,1,0-16,16,16,0,0,1,16,16v40A8,8,0,0,1,144,176ZM112,84a12,12,0,1,1,12,12A12,12,0,0,1,112,84Z"}))],["thin",t.createElement(t.Fragment,null,t.createElement("path",{d:"M140,176a4,4,0,0,1-4,4,12,12,0,0,1-12-12V128a4,4,0,0,0-4-4,4,4,0,0,1,0-8,12,12,0,0,1,12,12v40a4,4,0,0,0,4,4A4,4,0,0,1,140,176ZM124,92a8,8,0,1,0-8-8A8,8,0,0,0,124,92Zm104,36A100,100,0,1,1,128,28,100.11,100.11,0,0,1,228,128Zm-8,0a92,92,0,1,0-92,92A92.1,92.1,0,0,0,220,128Z"}))]]),qt=new Map([["bold",t.createElement(t.Fragment,null,t.createElement("path",{d:"M144,180a16,16,0,1,1-16-16A16,16,0,0,1,144,180Zm92-52A108,108,0,1,1,128,20,108.12,108.12,0,0,1,236,128Zm-24,0a84,84,0,1,0-84,84A84.09,84.09,0,0,0,212,128ZM128,64c-24.26,0-44,17.94-44,40v4a12,12,0,0,0,24,0v-4c0-8.82,9-16,20-16s20,7.18,20,16-9,16-20,16a12,12,0,0,0-12,12v8a12,12,0,0,0,23.73,2.56C158.31,137.88,172,122.37,172,104,172,81.94,152.26,64,128,64Z"}))],["duotone",t.createElement(t.Fragment,null,t.createElement("path",{d:"M224,128a96,96,0,1,1-96-96A96,96,0,0,1,224,128Z",opacity:"0.2"}),t.createElement("path",{d:"M140,180a12,12,0,1,1-12-12A12,12,0,0,1,140,180ZM128,72c-22.06,0-40,16.15-40,36v4a8,8,0,0,0,16,0v-4c0-11,10.77-20,24-20s24,9,24,20-10.77,20-24,20a8,8,0,0,0-8,8v8a8,8,0,0,0,16,0v-.72c18.24-3.35,32-17.9,32-35.28C168,88.15,150.06,72,128,72Zm104,56A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128Z"}))],["fill",t.createElement(t.Fragment,null,t.createElement("path",{d:"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,168a12,12,0,1,1,12-12A12,12,0,0,1,128,192Zm8-48.72V144a8,8,0,0,1-16,0v-8a8,8,0,0,1,8-8c13.23,0,24
1-9,24-20s-10.77-20-24-20-24,9-24,20v4a8,8,0,0,1-16,0v-4c0-19.85,17.94-36,40-36s40,16.15,40,36C168,125.38,154.24,139.93,136,143.28Z"}))],["light",t.createElement(t.Fragment,null,t.createElement("path",{d:"M138,180a10,10,0,1,1-10-10A10,10,0,0,1,138,180ZM128,74c-21,0-38,15.25-38,34v4a6,6,0,0,0,12,0v-4c0-12.13,11.66-22,26-22s26,9.87,26,22-11.66,22-26,22a6,6,0,0,0-6,6v8a6,6,0,0,0,12,0v-2.42c18.11-2.58,32-16.66,32-33.58C166,89.25,149,74,128,74Zm102,54A102,102,0,1,1,128,26,102.12,102.12,0,0,1,230,128Zm-12,0a90,90,0,1,0-90,90A90.1,90.1,0,0,0,218,128Z"}))],["regular",t.createElement(t.Fragment,null,t.createElement("path",{d:"M140,180a12,12,0,1,1-12-12A12,12,0,0,1,140,180ZM128,72c-22.06,0-40,16.15-40,36v4a8,8,0,0,0,16,0v-4c0-11,10.77-20,24-20s24,9,24,20-10.77,20-24,20a8,8,0,0,0-8,8v8a8,8,0,0,0,16,0v-.72c18.24-3.35,32-17.9,32-35.28C168,88.15,150.06,72,128,72Zm104,56A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128Z"}))],["thin",t.createElement(t.Fragment,null,t.createElement("path",{d:"M136,180a8,8,0,1,1-8-8A8,8,0,0,1,136,180ZM128,76c-19.85,0-36,14.36-36,32v4a4,4,0,0,0,8,0v-4c0-13.23,12.56-24,28-24s28,10.77,28,24-12.56,24-28,24a4,4,0,0,0-4,4v8a4,4,0,0,0,8,0v-4.2c18-1.77,32-15.36,32-31.8C164,90.36,147.85,76,128,76Zm100,52A100,100,0,1,1,128,28,100.11,100.11,0,0,1,228,128Zm-8,0a92,92,0,1,0-92,92A92.1,92.1,0,0,0,220,128Z"}))]]),Ut=new Map([["bold",t.createElement(t.Fragment,null,t.createElement("path",{d:"M124,216a12,12,0,0,1-12,12H48a12,12,0,0,1-12-12V40A12,12,0,0,1,48,28h64a12,12,0,0,1,0,24H60V204h52A12,12,0,0,1,124,216Zm108.49-96.49-40-40a12,12,0,0,0-17,17L195,116H112a12,12,0,0,0,0,24h83l-19.52,19.51a12,12,0,0,0,17,17l40-40A12,12,0,0,0,232.49,119.51Z"}))],["duotone",t.createElement(t.Fragment,null,t.createElement("path",{d:"M224,56V200a16,16,0,0,1-16,16H48V40H208A16,16,0,0,1,224,56Z",opacity:"0.2"}),t.createElement("path",{d:"M120,216a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h64a8,8,0,0,1,0,16H56V208h56A8,8,0,0,1,120,216Zm109.66-93.66-40-40a8,8,0,0,0-11.32,11.32L204.69,120H112a8,8,0,0,0,0,16h92.69l-26.35,26.34a8,8,0,0,0,11.32,11.32l40-40A8,8,0,0,0,229.66,122.34Z"}))],["fill",t.createElement(t.Fragment,null,t.createElement("path",{d:"M120,216a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h64a8,8,0,0,1,0,16H56V208h56A8,8,0,0,1,120,216Zm109.66-93.66-40-40A8,8,0,0,0,176,88v32H112a8,8,0,0,0,0,16h64v32a8,8,0,0,0,13.66,5.66l40-40A8,8,0,0,0,229.66,122.34Z"}))],["light",t.createElement(t.Fragment,null,t.createElement("path",{d:"M118,216a6,6,0,0,1-6,6H48a6,6,0,0,1-6-6V40a6,6,0,0,1,6-6h64a6,6,0,0,1,0,12H54V210h58A6,6,0,0,1,118,216Zm110.24-92.24-40-40a6,6,0,0,0-8.48,8.48L209.51,122H112a6,6,0,0,0,0,12h97.51l-29.75,29.76a6,6,0,1,0,8.48,8.48l40-40A6,6,0,0,0,228.24,123.76Z"}))],["regular",t.createElement(t.Fragment,null,t.createElement("path",{d:"M120,216a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h64a8,8,0,0,1,0,16H56V208h56A8,8,0,0,1,120,216Zm109.66-93.66-40-40a8,8,0,0,0-11.32,11.32L204.69,120H112a8,8,0,0,0,0,16h92.69l-26.35,26.34a8,8,0,0,0,11.32,11.32l40-40A8,8,0,0,0,229.66,122.34Z"}))],["thin",t.createElement(t.Fragment,null,t.createElement("path",{d:"M116,216a4,4,0,0,1-4,4H48a4,4,0,0,1-4-4V40a4,4,0,0,1,4-4h64a4,4,0,0,1,0,8H52V212h60A4,4,0,0,1,116,216Zm110.83-90.83-40-40a4,4,0,0,0-5.66,5.66L214.34,124H112a4,4,0,0,0,0,8H214.34l-33.17,33.17a4,4,0,0,0,5.66,5.66l40-40A4,4,0,0,0,226.83,125.17Z"}))]]),Kt=new Map([["bold",t.createElement(t.Fragment,null,t.createElement("path",{d:"M100,36H56A20,20,0,0,0,36,56v44a20,20,0,0,0,20,20h44a20,20,0,0,0,20-20V56A20,20,0,0,0,100,36ZM96,96H60V60H96ZM200,36H156a20,20,0,0,0-20,20v44a20,20,0,0,0,20,20h44a20,20,0,0,0,20-20V56A20,20,0,0,0,200,36Zm-4,60H160V60h36Zm-96,40H56a20,20,0,0,0-20,20v44a20,20,0,0,0,20,20h44a20,20,0,0,0,20-20V156A20,20,0,0,0,100,136Zm-4,60H60V160H96Zm104-60H156a20,20,0,0,0-20,20v44a20,20,0,0,0,20,20h44a20,20,0,0,0,20-20V156A20,20,0,0,0,200,136Zm-4,60H160V160h36Z"}))],["duotone",t.createElement(t.Fragment,null,t.createElement("path",{d:"M112,56v48a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8V56a8,8,0,0,1,8-8h48A8,8,0,0,1,112,56Zm88-8H152a8,8,0,0,0-8,8v48a8,8,0,0,0,8,8h48a8,8,0,0,0,8-8V56A8,8,0,0,0,200,48Zm-96,96H56a8,8,0,0,0-8,8v48a8,8,0,0,0,8,8h48a8,8,0,0,0,8-8V152A8,8,0,0,0,104,144Zm96,0H152a8,8,0,0,0-8,8v48a8,8,0,0,0,8,8h48a8,8,0,0,0,8-8V152A8,8,0,0,0,200,144Z",opacity:"0.2"}),t.createElement("path",{d:"M200,136H152a16,16,0,0,0-16,16v48a16,16,0,0,0,16,16h48a16,16,0,0,0,16-16V152A16,16,0,0,0,200,136Zm0,64H152V152h48v48ZM104,40H56A16,16,0,0,0,40,56v48a16,16,0,0,0,16,16h48a16,16,0,0,0,16-16V56A16,16,0,0,0,104,40Zm0,64H56V56h48v48Zm96-64H152a16,16,0,0,0-16,16v48a16,16,0,0,0,16,16h48a16,16,0,0,0,16-16V56A16,16,0,0,0,200,40Zm0,64H152V56h48v48Zm-96,32H56a16,16,0,0,0-16,16v48a16,16,0,0,0,16,16h48a16,16,0,0,0,16-16V152A16,16,0,0,0,104,136Zm0,64H56V152h48v48Z"}))],["fill",t.createElement(t.Fragment,null,t.createElement("path",{d:"M120,56v48a16,16,0,0,1-16,16H56a16,16,0,0,1-16-16V56A16,16,0,0,1,56,40h48A16,16,0,0,1,120,56Zm80-16H152a16,16,0,0,0-16,16v48a16,16,0,0,0,16,16h48a16,16,0,0,0,16-16V56A16,16,0,0,0,200,40Zm-96,96H56a16,16,0,0,0-16,16v48a16,16,0,0,0,16,16h48a16,16,0,0,0,16-16V152A16,16,0,0,0,104,136Zm96,0H152a16,16,0,0,0-16,16v48a16,16,0,0,0,16,16h48a16,16,0,0,0,16-16V152A16,16,0,0,0,200,136Z"}))],["light",t.createElement(t.Fragment,null,t.createElement("path",{d:"M104,42H56A14,14,0,0,0,42,56v48a14,14,0,0,0,14,14h48a14,14,0,0,0,14-14V56A14,14,0,0,0,104,42Zm2,62a2,2,0,0,1-2,2H56a2,2,0,0,1-2-2V56a2,2,0,0,1,2-2h48a2,2,0,0,1,2,2Zm94-62H152a14,14,0,0,0-14,14v48a14,14,0,0,0,14,14h48a14,14,0,0,0,14-14V56A14,14,0,0,0,200,42Zm2,62a2,2,0,0,1-2,2H152a2,2,0,0,1-2-2V56a2,2,0,0,1,2-2h48a2,2,0,0,1,2,2Zm-98,34H56a14,14,0,0,0-14,14v48a14,14,0,0,0,14,14h48a14,14,0,0,0,14-14V152A14,14,0,0,0,104,138Zm2,62a2,2,0,0,1-2,2H56a2,2,0,0,1-2-2V152a2,2,0,0,1,2-2h48a2,2,0,0,1,2,2Zm94-62H152a14,14,0,0,0-14,14v48a14,14,0,0,0,14,14h48a14,14,0,0,0,14-14V152A14,14,0,0,0,200,138Zm2,62a2,2,0,0,1-2,2H152a2,2,0,0,1-2-2V152a2,2,0,0,1,2-2h48a2,2,0,0,1,2,2Z"}))],["regular",t.createElement(t.Fragment,null,t.createElement("path",{d:"M104,40H56A16,16,0,0,0,40,56v48a16,16,0,0,0,16,16h48a16,16,0,0,0,16-16V56A16,16,0,0,0,104,40Zm0,64H56V56h48v48Zm96-64H152a16,16,0,0,0-16,16v48a16,16,0,0,0,16,16h48a16,16,0,0,0,16-16V56A16,16,0,0,0,200,40Zm0,64H152V56h48v48Zm-96,32H56a16,16,0,0,0-16,16v48a16,16,0,0,0,16,16h48a16,16,0,0,0,16-16V152A16,16,0,0,0,104,136Zm0,64H56V152h48v48Zm96-64H152a16,16,0,0,0-16,16v48a16,16,0,0,0,16,16h48a16,16,0,0,0,16-16V152A16,16,0,0,0,200,136Zm0,64H152V152h48v48Z"}))],["thin",t.createElement(t.Fragment,null,t.createElement("path",{d:"M104,44H
156A12,12,0,0,0,44,56v48a12,12,0,0,0,12,12h48a12,12,0,0,0,12-12V56A12,12,0,0,0,104,44Zm4,60a4,4,0,0,1-4,4H56a4,4,0,0,1-4-4V56a4,4,0,0,1,4-4h48a4,4,0,0,1,4,4Zm92-60H152a12,12,0,0,0-12,12v48a12,12,0,0,0,12,12h48a12,12,0,0,0,12-12V56A12,12,0,0,0,200,44Zm4,60a4,4,0,0,1-4,4H152a4,4,0,0,1-4-4V56a4,4,0,0,1,4-4h48a4,4,0,0,1,4,4ZM104,140H56a12,12,0,0,0-12,12v48a12,12,0,0,0,12,12h48a12,12,0,0,0,12-12V152A12,12,0,0,0,104,140Zm4,60a4,4,0,0,1-4,4H56a4,4,0,0,1-4-4V152a4,4,0,0,1,4-4h48a4,4,0,0,1,4,4Zm92-60H152a12,12,0,0,0-12,12v48a12,12,0,0,0,12,12h48a12,12,0,0,0,12-12V152A12,12,0,0,0,200,140Zm4,60a4,4,0,0,1-4,4H152a4,4,0,0,1-4-4V152a4,4,0,0,1,4-4h48a4,4,0,0,1,4,4Z"}))]]),_t=new Map([["bold",t.createElement(t.Fragment,null,t.createElement("path",{d:"M229.26,90.4a108,108,0,0,1-177.63,114A108,108,0,0,1,195.41,43.63l20.1-20.11a12,12,0,0,1,17,17l-96,96a12,12,0,1,1-17-17l24-24a36,36,0,1,0,19.76,39.65,12,12,0,0,1,23.53,4.74,60,60,0,1,1-25.73-62L178.3,60.74a84,84,0,1,0,28.46,38,12,12,0,1,1,22.5-8.35Z"}))],["duotone",t.createElement(t.Fragment,null,t.createElement("path",{d:"M176,128a48,48,0,1,1-48-48A48,48,0,0,1,176,128Z",opacity:"0.2"}),t.createElement("path",{d:"M221.87,83.16A104.1,104.1,0,1,1,195.67,49l22.67-22.68a8,8,0,0,1,11.32,11.32l-96,96a8,8,0,0,1-11.32-11.32l27.72-27.72a40,40,0,1,0,17.87,31.09,8,8,0,1,1,16-.9,56,56,0,1,1-22.38-41.65L184.3,60.39a87.88,87.88,0,1,0,23.13,29.67,8,8,0,0,1,14.44-6.9Z"}))],["fill",t.createElement(t.Fragment,null,t.createElement("path",{d:"M221.87,83.16A104.1,104.1,0,1,1,195.67,49l22.67-22.68a8,8,0,0,1,11.32,11.32L167.6,99.71h0l-37.71,37.71-23.95,23.95a40,40,0,0,0,62-35.67,8,8,0,1,1,16-.9,56,56,0,0,1-95.5,42.79h0a56,56,0,0,1,73.13-84.43L184.3,60.39a87.88,87.88,0,1,0,23.13,29.67,8,8,0,0,1,14.44-6.9Z"}))],["light",t.createElement(t.Fragment,null,t.createElement("path",{d:"M220.06,84a102.06,102.06,0,1,1-24.31-32.27l24-24a6,6,0,0,1,8.48,8.49l-96,96a6,6,0,1,1-8.48-8.49l29.39-29.4a42,42,0,1,0,16.78,31.24,6,6,0,1,1,12-.68A54,54,0,1,1,161.7,85.83l25.54-25.55a89.91,89.91,0,1,0,22,28.93A6,6,0,1,1,220.06,84Z"}))],["regular",t.createElement(t.Fragment,null,t.createElement("path",{d:"M221.87,83.16A104.1,104.1,0,1,1,195.67,49l22.67-22.68a8,8,0,0,1,11.32,11.32l-96,96a8,8,0,0,1-11.32-11.32l27.72-27.72a40,40,0,1,0,17.87,31.09,8,8,0,1,1,16-.9,56,56,0,1,1-22.38-41.65L184.3,60.39a87.88,87.88,0,1,0,23.13,29.67,8,8,0,0,1,14.44-6.9Z"}))],["thin",t.createElement(t.Fragment,null,t.createElement("path",{d:"M218.26,84.89a100.16,100.16,0,1,1-22.44-30.37l25.35-25.35a4,4,0,1,1,5.66,5.66l-96,96a4,4,0,0,1-5.66-5.66l31-31a44,44,0,1,0,15.78,31.3,4,4,0,0,1,8-.46,52,52,0,1,1-18.1-36.51l28.34-28.33A92,92,0,0,0,63,193.05,92,92,0,0,0,211,88.33a4,4,0,1,1,7.22-3.44Z"}))]]),Qt=new Map([["bold",t.createElement(t.Fragment,null,t.createElement("path",{d:"M244,128v64a12,12,0,0,1-12,12H168a12,12,0,0,1,0-24h35l-67-67-31.51,31.52a12,12,0,0,1-17,0l-72-72a12,12,0,0,1,17-17L96,119l31.51-31.52a12,12,0,0,1,17,0L220,163V128a12,12,0,0,1,24,0Z"}))],["duotone",t.createElement(t.Fragment,null,t.createElement("path",{d:"M232,128v64H168Z",opacity:"0.2"}),t.createElement("path",{d:"M235.06,120.61a8,8,0,0,0-8.72,1.73L200,148.69,141.66,90.34a8,8,0,0,0-11.32,0L96,124.69,29.66,58.34A8,8,0,0,0,18.34,69.66l72,72a8,8,0,0,0,11.32,0L136,107.31,188.69,160l-26.35,26.34A8,8,0,0,0,168,200h64a8,8,0,0,0,8-8V128A8,8,0,0,0,235.06,120.61ZM224,184H187.31L224,147.31Z"}))],["fill",t.createElement(t.Fragment,null,t.createElement("path",{d:"M240,128v64a8,8,0,0,1-8,8H168a8,8,0,0,1-5.66-13.66L188.69,160,136,107.31l-34.34,34.35a8,8,0,0,1-11.32,0l-72-72A8,8,0,0,1,29.66,58.34L96,124.69l34.34-34.35a8,8,0,0,1,11.32,0L200,148.69l26.34-26.35A8,8,0,0,1,240,128Z"}))],["light",t.createElement(t.Fragment,null,t.createElement("path",{d:"M238,128v64a6,6,0,0,1-6,6H168a6,6,0,0,1,0-12h49.52L136,104.49l-35.76,35.75a6,6,0,0,1-8.48,0l-72-72a6,6,0,0,1,8.48-8.48L96,127.51l35.76-35.75a6,6,0,0,1,8.48,0L226,177.52V128a6,6,0,0,1,12,0Z"}))],["regular",t.createElement(t.Fragment,null,t.createElement("path",{d:"M240,128v64a8,8,0,0,1-8,8H168a8,8,0,0,1,0-16h44.69L136,107.31l-34.34,34.35a8,8,0,0,1-11.32,0l-72-72A8,8,0,0,1,29.66,58.34L96,124.69l34.34-34.35a8,8,0,0,1,11.32,0L224,172.69V128a8,8,0,0,1,16,0Z"}))],["thin",t.createElement(t.Fragment,null,t.createElement("path",{d:"M236,128v64a4,4,0,0,1-4,4H168a4,4,0,0,1,0-8h54.34L136,101.66,98.83,138.83a4,4,0,0,1-5.66,0l-72-72a4,4,0,0,1,5.66-5.66L96,130.34l37.17-37.17a4,4,0,0,1,5.66,0L228,182.34V128a4,4,0,0,1,8,0Z"}))]]),Jt=new Map([["bold",t.createElement(t.Fragment,null,t.createElement("path",{d:"M244,56v64a12,12,0,0,1-24,0V85l-75.51,75.52a12,12,0,0,1-17,0L96,129,32.49,192.49a12,12,0,0,1-17-17l72-72a12,12,0,0,1,17,0L136,135l67-67H168a12,12,0,0,1,0-24h64A12,12,0,0,1,244,56Z"}))],["duotone",t.createElement(t.Fragment,null,t.createElement("path",{d:"M232,56v64L168,56Z",o
1pacity:"0.2"}),t.createElement("path",{d:"M232,48H168a8,8,0,0,0-5.66,13.66L188.69,88,136,140.69l-34.34-34.35a8,8,0,0,0-11.32,0l-72,72a8,8,0,0,0,11.32,11.32L96,123.31l34.34,34.35a8,8,0,0,0,11.32,0L200,99.31l26.34,26.35A8,8,0,0,0,240,120V56A8,8,0,0,0,232,48Zm-8,52.69L187.31,64H224Z"}))],["fill",t.createElement(t.Fragment,null,t.createElement("path",{d:"M240,56v64a8,8,0,0,1-13.66,5.66L200,99.31l-58.34,58.35a8,8,0,0,1-11.32,0L96,123.31,29.66,189.66a8,8,0,0,1-11.32-11.32l72-72a8,8,0,0,1,11.32,0L136,140.69,188.69,88,162.34,61.66A8,8,0,0,1,168,48h64A8,8,0,0,1,240,56Z"}))],["light",t.createElement(t.Fragment,null,t.createElement("path",{d:"M238,56v64a6,6,0,0,1-12,0V70.48l-85.76,85.76a6,6,0,0,1-8.48,0L96,120.49,28.24,188.24a6,6,0,0,1-8.48-8.48l72-72a6,6,0,0,1,8.48,0L136,143.51,217.52,62H168a6,6,0,0,1,0-12h64A6,6,0,0,1,238,56Z"}))],["regular",t.createElement(t.Fragment,null,t.createElement("path",{d:"M240,56v64a8,8,0,0,1-16,0V75.31l-82.34,82.35a8,8,0,0,1-11.32,0L96,123.31,29.66,189.66a8,8,0,0,1-11.32-11.32l72-72a8,8,0,0,1,11.32,0L136,140.69,212.69,64H168a8,8,0,0,1,0-16h64A8,8,0,0,1,240,56Z"}))],["thin",t.createElement(t.Fragment,null,t.createElement("path",{d:"M236,56v64a4,4,0,0,1-8,0V65.66l-89.17,89.17a4,4,0,0,1-5.66,0L96,117.66,26.83,186.83a4,4,0,0,1-5.66-5.66l72-72a4,4,0,0,1,5.66,0L136,146.34,222.34,60H168a4,4,0,0,1,0-8h64A4,4,0,0,1,236,56Z"}))]]),Xt=new Map([["bold",t.createElement(t.Fragment,null,t.createElement("path",{d:"M188,184a16,16,0,1,1,16-16A16,16,0,0,1,188,184Zm36-68H180a12,12,0,0,0,0,24h40v56H36V140H76a12,12,0,0,0,0-24H32a20,20,0,0,0-20,20v64a20,20,0,0,0,20,20H224a20,20,0,0,0,20-20V136A20,20,0,0,0,224,116ZM88.49,80.49,116,53v75a12,12,0,0,0,24,0V53l27.51,27.52a12,12,0,1,0,17-17l-48-48a12,12,0,0,0-17,0l-48,48a12,12,0,1,0,17,17Z"}))],["duotone",t.createElement(t.Fragment,null,t.createElement("path",{d:"M232,136v64a8,8,0,0,1-8,8H32a8,8,0,0,1-8-8V136a8,8,0,0,1,8-8H224A8,8,0,0,1,232,136Z",opacity:"0.2"}),t.createElement("path",{d:"M240,136v64a16,16,0,0,1-16,16H32a16,16,0,0,1-16-16V136a16,16,0,0,1,16-16H80a8,8,0,0,1,0,16H32v64H224V136H176a8,8,0,0,1,0-16h48A16,16,0,0,1,240,136ZM85.66,77.66,120,43.31V128a8,8,0,0,0,16,0V43.31l34.34,34.35a8,8,0,0,0,11.32-11.32l-48-48a8,8,0,0,0-11.32,0l-48,48A8,8,0,0,0,85.66,77.66ZM200,168a12,12,0,1,0-12,12A12,12,0,0,0,200,168Z"}))],["fill",t.createElement(t.Fragment,null,t.createElement("path",{d:"M74.34,77.66a8,8,0,0,1,0-11.32l48-48a8,8,0,0,1,11.32,0l48,48a8,8,0,0,1-11.32,11.32L136,43.31V128a8,8,0,0,1-16,0V43.31L85.66,77.66A8,8,0,0,1,74.34,77.66ZM240,136v64a16,16,0,0,1-16,16H32a16,16,0,0,1-16-16V136a16,16,0,0,1,16-16h68a4,4,0,0,1,4,4v3.46c0,13.45,11,24.79,24.46,24.54A24,24,0,0,0,152,128v-4a4,4,0,0,1,4-4h68A16,16,0,0,1,240,136Zm-40,32a12,12,0,1,0-12,12A12,12,0,0,0,200,168Z"}))],["light",t.createElement(t.Fragment,null,t.createElement("path",{d:"M238,136v64a14,14,0,0,1-14,14H32a14,14,0,0,1-14-14V136a14,14,0,0,1,14-14H80a6,6,0,0,1,0,12H32a2,2,0,0,0-2,2v64a2,2,0,0,0,2,2H224a2,2,0,0,0,2-2V136a2,2,0,0,0-2-2H176a6,6,0,0,1,0-12h48A14,14,0,0,1,238,136ZM84.24,76.24,122,38.49V128a6,6,0,0,0,12,0V38.49l37.76,37.75a6,6,0,0,0,8.48-8.48l-48-48a6,6,0,0,0-8.48,0l-48,48a6,6,0,0,0,8.48,8.48ZM198,168a10,10,0,1,0-10,10A10,10,0,0,0,198,168Z"}))],["regular",t.createElement(t.Fragment,null,t.createElement("path",{d:"M240,136v64a16,16,0,0,1-16,16H32a16,16,0,0,1-16-16V136a16,16,0,0,1,16-16H80a8,8,0,0,1,0,16H32v64H224V136H176a8,8,0,0,1,0-16h48A16,16,0,0,1,240,136ZM85.66,77.66,120,43.31V128a8,8,0,0,0,16,0V43.31l34.34,34.35a8,8,0,0,0,11.32-11.32l-48-48a8,8,0,0,0-11.32,0l-48,48A8,8,0,0,0,85.66,77.66ZM200,168a12,12,0,1,0-12,12A12,12,0,0,0,200,168Z"}))],["thin",t.createElement(t.Fragment,null,t.createElement("path",{d:"M236,136v64a12,12,0,0,1-12,12H32a12,12,0,0,1-12-12V136a12,12,0,0,1,12-12H80a4,4,0,0,1,0,8H32a4,4,0,0,0-4,4v64a4,4,0,0,0,4,4H224a4,4,0,0,0,4-4V136a4,4,0,0,0-4-4H176a4,4,0,0,1,0-8h48A12,12,0,0,1,236,136ZM82.83,74.83,124,33.66V128a4,4,0,0,0,8,0V33.66l41.17,41.17a4,4,0,1,0,5.66-5.66l-48-48a4,4,0,0,0-5.66,0l-48,48a4,4,0,0,0,5.66,5.66ZM196,168a8,8,0,1,0-8,8A8,8,0,0,0,196,168Z"}))]]),ea=new Map([["bold",t.createElement(t.Fragment,null,t.createElement("path",{d:"M208.49,191.51a12,12,0,0,1-17,17L128,145,64.49,208.49a12,12,0,0,1-17-17L111,128,47.51,64.49a12,12,0,0,1,17-17L128,111l63.51-63.52a12,12,0,0,1,17,17L145,128Z"}))],["duotone",t.createElement(t.Fragment,null,t.createElement("path",{d:"M216,56V200a16,16,0,0,1-16,16H56a16,16,0,0,1-16-16V56A16,16,0,0,1,56,40H200A16,16,0,0,1,216,56Z",opacity:"0.2"}),t.createElement("path",{d:"M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z"}))],["fill",t.createElement(t.Fragment,null,t.createElement("path",{d:"M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM181.66,170.34a8,8,0,0,1-11.32,11.32L128,139.31,85.66,181.66a8,8,0,0,1-11.32-11.32L116.69,128,74.34,85.66A8,8,0,0,1,85.66,74.34L128,116.69l42.34-42.35a8,8,0,0,1,11.32,11.32L139.31,128Z"}))],["light",t.createElement(t.Fragment,null,t.createElement("path",{d:"M204.24,195.76a6,6,0,1,1-8.48,8.48L128,136.49,60.24,204.24a6,6,0,0,1-8.48-8.48L119.51,128,51.76,60.24a6,6,0,0,1,8.48-8.48L128,119.51l67.76-67.75a6,6,0,0,1,8.48,8.48L136.49,128Z"}))],["regular",t.createElement(t.Fragment,null,t.createElement("path",{d:"M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z"}))],["thin",t.createElement(t.Fragment,null,t.createElement("path",{d:"M202.83,197.17a4,4,0,0,1-5.66,5.66L128,133.66,58.83,202.83a4,4,0,0,1-5.66-5.66L122.34,128,53.17,58.83a4,4,0,0,1,5.66-5.66L128,122.34l69.17-69.17a4,4,0,1,1,5.66,5.66L133.66,128Z"}))]]),qe=t.forwardRef((a,n)=>t.createElement(O,{ref:n,...a,weights:Mt}));qe.displayName="ArrowClockwiseIcon";const ta=qe,Ue=t.forwardRef((a,n)=>t.createElement(O,{ref:n,...a,weights:Ct}));Ue.displayName="BarbellIcon";const Ke=Ue,_e=t.forwardRef((a,n)=>t.createElement(O,{ref:n,...a,weights:Lt}));_e.displayName="BookmarkIcon";const aa=_e,Qe=t.forwardRef((a,n)=>t.createElement(O,{ref:n,...a,weights:Ft}));Qe.displayName="BookmarkSimpleIcon";const ra=Qe,Je=t.forwardRef((a,n)=>t.createElement(O,{ref:n,...a,weights:$t}));
1Je.displayName="CalendarBlankIcon";const sa=Je,Xe=t.forwardRef((a,n)=>t.createElement(O,{ref:n,...a,weights:zt}));Xe.displayName="ClipboardTextIcon";const na=Xe,et=t.forwardRef((a,n)=>t.createElement(O,{ref:n,...a,weights:Tt}));et.displayName="ClockIcon";const tt=et,at=t.forwardRef((a,n)=>t.createElement(O,{ref:n,...a,weights:Rt}));at.displayName="ColumnsIcon";const ia=at,rt=t.forwardRef((a,n)=>t.createElement(O,{ref:n,...a,weights:Bt}));rt.displayName="FileArrowDownIcon";const oa=rt,st=t.forwardRef((a,n)=>t.createElement(O,{ref:n,...a,weights:It}));st.displayName="FileTextIcon";const la=st,nt=t.forwardRef((a,n)=>t.createElement(O,{ref:n,...a,weights:Wt}));nt.displayName="FolderOpenIcon";const da=nt,it=t.forwardRef((a,n)=>t.createElement(O,{ref:n,...a,weights:Dt}));it.displayName="ForkKnifeIcon";const ca=it,ot=t.forwardRef((a,n)=>t.createElement(O,{ref:n,...a,weights:Pt}));ot.displayName="GearSixIcon";const pa=ot,lt=t.forwardRef((a,n)=>t.createElement(O,{ref:n,...a,weights:Ot}));lt.displayName="HeartIcon";const ga=lt,dt=t.forwardRef((a,n)=>t.createElement(O,{ref:n,...a,weights:Gt}));dt.displayName="ImageIcon";const ma=dt,ct=t.forwardRef((a,n)=>t.createElement(O,{ref:n,...a,weights:Yt}));ct.displayName="InfoIcon";const ha=ct,pt=t.forwardRef((a,n)=>t.createElement(O,{ref:n,...a,weights:qt}));pt.displayName="QuestionIcon";const xa=pt,gt=t.forwardRef((a,n)=>t.createElement(O,{ref:n,...a,weights:Ut}));gt.displayName="SignOutIcon";const ua=gt,mt=t.forwardRef((a,n)=>t.createElement(O,{ref:n,...a,weights:Kt}));mt.displayName="SquaresFourIcon";const ba=mt,ht=t.forwardRef((a,n)=>t.createElement(O,{ref:n,...a,weights:_t}));ht.displayName="TargetIcon";const fa=ht,xt=t.forwardRef((a,n)=>t.createElement(O,{ref:n,...a,weights:Qt}));xt.displayName="TrendDownIcon";const ya=xt,ut=t.forwardRef((a,n)=>t.createElement(O,{ref:n,...a,weights:Jt}));ut.displayName="TrendUpIcon";const va=ut,bt=t.forwardRef((a,n)=>t.createElement(O,{ref:n,...a,weights:Xt}));bt.displayName="UploadIcon";const wa=bt,ft=t.forwardRef((a,n)=>t.createElement(O,{ref:n,...a,weights:ea}));ft.displayName="XIcon";const ja=ft,ka=a=>e.jsx(ba,{weight:"light",...a}),$e=a=>e.jsx(fa,{weight:"light",...a}),yt=a=>e.jsx(ua,{weight:"light",...a}),Na=a=>e.jsx(pa,{weight:"light",...a}),ne=a=>e.jsx(ja,{weight:"light",...a}),Ve=a=>e.jsx(da,{weight:"light",...a}),Sa=a=>e.jsx(wa,{weight:"light",...a}),Aa=a=>e.jsx(ma,{weight:"light",...a}),Ha=a=>e.jsx(la,{weight:"light",...a}),me=a=>e.jsx(ca,{weight:"light",...a}),Ea=a=>e.jsx(ta,{weight:"light",...a}),Se=a=>e.jsx(aa,{weight:"light",...a}),Va=a=>e.jsx(ra,{weight:"fill",...a}),Ze=a=>e.jsx(ia,{weight:"light",...a}),ze=a=>e.jsx(na,{weight:"light",...a}),Ie=a=>e.jsx(oa,{weight:"light",...a}),We=a=>e.jsx(Ke,{weight:"light",...a}),De=a=>e.jsx(ga,{weight:"light",...a}),Me=a=>e.jsx(Ht,{weight:"light",...a}),Za=a=>e.jsx(At,{weight:"light",...a}),ye=a=>e.jsx(va,{weight:"light",...a}),Ma=a=>e.jsx(ya,{weight:"light",...a}),vt=a=>e.jsx(sa,{weight:"light",...a}),Ca=a=>e.jsx(tt,{weight:"light",...a}),wt=a=>e.jsx(xa,{weight:"light",...a}),La=a=>e.jsx(ha,{weight:"light",...a});function ce(a){return"templateBased"in a&&a.templateBased===!0}const s="#FFD34E",oe="#ff7a1a",J="#6fa6b8",K="111,166,184",Fa=s,$a="#ffd866",za=oe,Ta="#050505",ve="forged_admin_view_token",Ra=fetch;function Ba(a,n){return null}function B(a,n){const p=Ba();if(p)return Promise.resolve(p);const u=sessionStorage.getItem(ve),x={...n,headers:{...u?{"X-Admin-View-Token":u}:{},...n?.headers}};return Ra(a,x).then(N=>(N.status===401&&a.startsWith("/api/forged-portal/")&&!a.endsWith("/login")&&window.dispatchEvent(new CustomEvent("portal-session-expired")),N))}function we(a){const n=sessionStorage.getItem(ve),p=`/api/forged-portal/uploads/${a}/download`;return n?`${p}?adminToken=${encodeURIComponent(n)}`:p}function Te(){return` 2 @import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Geist:wght@300;400;500;600;700;800&family=Geist+Mono:wght@400;500;700&display=swap'); 3 .portal-page { 4 --primary: 44 100% 65%; 5 --ring: 44 100% 65%; 6 font-family: 'Geist', system-ui, sans-serif; 7 background: ${Ta}; 8 color: #fff; 9 min-height: 100vh; 10 position: relative; 11 scrollbar-color: rgba(255,211,78,0.52) #0a0a0a; 12 } 13 .portal-page ::selection { background: rgba(255,211,78,0.3); color: #fff; } 14 .portal-page::before { 15 content: ''; 16 position: fixed; 17 inset: 0; 18 z-index: 0; 19 background: 20 radial-gradient(circle at 72% 10%, rgba(255,211,78,0.034) 0, transparent 24%), 21 radial-gradient(circle at 7% 72%, rgba(255,211,78,0.018) 0, transparent 31%), 22 #050505; 23 background-size: auto, auto, auto; 24 pointer-events: none; 25 } 26 .portal-page::after { 27 content: ''; 28 position: fixed; 29 inset: 0; 30 z-index: 0; 31 background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='250' height='250'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='250' height='250' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E"); 32 background-size: 200px 200px; 33 opacity: 0.028; 34 mix-blend-mode: overlay; 35 pointer-events: none; 36 } 37 .portal-content { position: relative; z-index: 1; min-width: 0; } 38 .portal-heading { font-family: 'Geist', system-ui, sans-serif; letter-spacing: -0.04em; font-weight: 700; } 39 .portal-label { font-family: 'Geist', system-ui, sans-serif; font-size: 10px; font-weight: 700; letter-spacing: 0.16em; line-height: 1.25; text-transform: uppercase; color: ${s}; } 40 .portal-loading-screen { 41 display: flex; 42 min-height: 100svh; 43 align-items: center; 44 justify-content: center; 45 overflow: hidden; 46 background: #050505; 47 } 48 .portal-loading-mark { 49 position: relative; 50 z-index: 2; 51 display: flex; 52 width: min(280px, calc(100vw - 48px)); 53 flex-direction: column; 54 align-items: center; 55 animation: portal-loading-in 600ms cubic-bezier(0.16,1,0.3,1) both; 56 } 57 .portal-loading-mark img { 58 width: 168px; 59 height: auto; 60 filter: drop-shadow(0 18px 30px rgba(0,0,0,0.45)); 61 } 62 .portal-loading-track { 63 width: 100%; 64 height: 2px; 65 margin-top: 28px; 66 overflow: hidden; 67 border-radius: 999px; 68 background: rgba(255,255,255,0.09); 69 } 70 .portal-loading-track span { 71 display: block; 72 width: 42%; 73 height: 100%; 74 border-radius: inherit; 75 background: ${s}; 76 box-shadow: 0 0 16px rgba(255,211,78,0.44); 77 animation: portal-loading-sweep 1.25s ease-in-out infinite; 78 } 79 .portal-loading-mark p { 80 margin-top: 14px; 81 color: rgba(255,255,255,0.46); 82 font-size: 9px; 83 font-weight: 800; 84 letter-spacing: 0.18em; 85 text-transform: uppercase; 86 }
87 @keyframes portal-loading-in { 88 from { opacity: 0; transform: translateY(10px); } 89 to { opacity: 1; transform: translateY(0); } 90 } 91 @keyframes portal-loading-sweep { 92 from { transform: translateX(-120%); } 93 to { transform: translateX(340%); } 94 } 95 .premium-shell { 96 min-width: 0; 97 border-radius: 26px; 98 padding: 1px; 99 background: 100 linear-gradient(145deg, rgba(255,255,255,0.2), rgba(255,255,255,0.055) 45%, rgba(255,211,78,0.12) 100%); 101 box-shadow: 102 0 18px 58px rgba(0,0,0,0.3), 103 inset 0 0 0 1px rgba(255,255,255,0.05); 104 position: relative; 105 overflow: hidden; 106 animation: portal-rise 900ms cubic-bezier(0.16, 1, 0.3, 1) both; 107 } 108 .premium-core { 109 min-width: 0; 110 height: 100%; 111 border-radius: 25px; 112 background: 113 radial-gradient(circle at 16% 0%, rgba(255,255,255,0.07), transparent 29%), 114 linear-gradient(145deg, rgba(255,255,255,0.045), rgba(255,255,255,0.012) 52%, rgba(255,255,255,0.028)), 115 rgba(10,10,9,0.97); 116 box-shadow: 117 inset 0 1px 0 rgba(255,255,255,0.12), 118 inset 0 -1px 0 rgba(255,255,255,0.04); 119 overflow: hidden; 120 position: relative; 121 } 122 .premium-core::before { 123 content: ''; 124 position: absolute; 125 inset: 0; 126 pointer-events: none; 127 background: 128 linear-gradient(115deg, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0.025) 24%, transparent 45%), 129 radial-gradient(circle at 82% 8%, rgba(255,255,255,0.09), transparent 18%); 130 opacity: 0.32; 131 mix-blend-mode: screen; 132 } 133 .premium-core::after { 134 content: ''; 135 position: absolute; 136 inset: 1px; 137 pointer-events: none; 138 border-radius: 24px; 139 box-shadow: 140 inset 0 0 0 1px rgba(255,255,255,0.04), 141 inset 0 0 24px rgba(255,255,255,0.018); 142 } 143 @keyframes portal-rise { 144 from { opacity: 0; transform: translateY(18px) scale(0.992); filter: blur(5px); } 145 to { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); } 146 } 147 @media (prefers-reduced-motion: reduce) { 148 .premium-shell { animation: none; } 149 .portal-loading-mark, 150 .portal-loading-track span { animation: none; } 151 } 152 .premium-core > * { 153 position: relative; 154 z-index: 1; 155 } 156 .premium-pill { 157 display: inline-flex; 158 align-items: center; 159 gap: 16px; 160 border-radius: 999px; 161 background: ${s}; 162 color: #050505; 163 padding: 8px 8px 8px 24px; 164 font-weight: 800; 165 font-size: 14px; 166 transition: transform 700ms cubic-bezier(0.32,0.72,0,1), box-shadow 700ms cubic-bezier(0.32,0.72,0,1); 167 box-shadow: 0 0 0 1px rgba(255,211,78,0.38), 0 12px 28px rgba(255,211,78,0.16); 168 } 169 .premium-pill:hover { transform: translateY(-1px); box-shadow: 0 0 0 1px rgba(255,211,78,0.6), 0 18px 46px rgba(255,211,78,0.28); } 170 .premium-pill:active { transform: scale(0.98); } 171 .premium-pill-icon { 172 width: 38px; 173 height: 38px; 174 border-radius: 999px; 175 background: #050505; 176 color: ${s}; 177 display: inline-flex; 178 align-items: center; 179 justify-content: center; 180 transition: transform 700ms cubic-bezier(0.32,0.72,0,1); 181 } 182 .premium-pill:hover .premium-pill-icon { transform: translateX(3px) translateY(-1px) scale(1.04); } 183 .portal-icon-btn { 184 width: 44px; 185 height: 44px; 186 border-radius: 999px; 187 border: 1px solid rgba(255,255,255,0.11); 188 background: rgba(255,255,255,0.035); 189 color: rgba(255,255,255,0.64); 190 display: inline-flex; 191 align-items: center; 192 justify-content: center; 193 transition: transform 700ms cubic-bezier(0.32,0.72,0,1), border-color 700ms cubic-bezier(0.32,0.72,0,1), color 700ms cubic-bezier(0.32,0.72,0,1); 194 } 195 .portal-icon-btn:hover { 196 transform: translateY(-1px); 197 border-color: rgba(255,211,78,0.32); 198 color: ${s}; 199 } 200 .dashboard-kicker-row { 201 display: inline-flex; 202 align-items: center; 203 gap: 10px; 204 width: fit-content; 205 max-width: 100%; 206 border-radius: 999px; 207 border: 1px solid rgba(255,255,255,0.13); 208 background: rgba(5,5,5,0.68); 209 box-shadow: 210 inset 0 1px 0 rgba(255,255,255,0.14), 211 0 14px 34px rgba(0,0,0,0.2); 212 padding: 8px 10px 8px 14px; 213 } 214 .dashboard-kicker-row .portal-label { 215 line-height: 1.25; 216 white-space: nowrap; 217 } 218 .dashboard-week-pill { 219 border-radius: 999px; 220 border: 1px solid rgba(255,255,255,0.12); 221 background: rgba(255,255,255,0.08); 222 padding: 5px 10px; 223 color: rgba(255,255,255,0.76); 224 font-size: 12px; 225 font-weight: 800; 226 line-height: 1; 227 white-space: nowrap; 228 } 229 .focus-kicker { 230 display: inline-flex; 231 align-items: center; 232 gap: 10px; 233 width: fit-content; 234 max-width: 100%; 235 border-radius: 999px; 236 border: 1px solid rgba(255,255,255,0.1); 237 background: rgba(255,255,255,0.045); 238 padding: 8px 14px 8px 8px; 239 } 240 .focus-kicker-icon { 241 display: inline-flex; 242 width: 26px;
243 height: 26px; 244 align-items: center; 245 justify-content: center; 246 border-radius: 999px; 247 border: 1px solid rgba(255,211,78,0.24); 248 color: ${s}; 249 background: rgba(255,211,78,0.06); 250 flex-shrink: 0; 251 } 252 .focus-kicker .portal-label { 253 line-height: 1.25; 254 white-space: nowrap; 255 } 256 .dashboard-photo-panel::before { 257 content: ''; 258 position: absolute; 259 inset: 0; 260 background: 261 linear-gradient(90deg, rgba(5,5,5,0.88) 0%, rgba(5,5,5,0.72) 42%, rgba(5,5,5,0.52) 100%), 262 linear-gradient(180deg, rgba(5,5,5,0.48) 0%, rgba(5,5,5,0.28) 38%, rgba(5,5,5,0.78) 100%), 263 radial-gradient(circle at 68% 44%, rgba(255,211,78,0.16), transparent 25%); 264 z-index: 1; 265 pointer-events: none; 266 } 267 .dashboard-photo-panel::after { 268 content: '40'; 269 position: absolute; 270 right: 28px; 271 bottom: 18px; 272 z-index: 2; 273 font-size: 110px; 274 line-height: 0.8; 275 font-weight: 800; 276 letter-spacing: -0.08em; 277 color: rgba(255,255,255,0.065); 278 pointer-events: none; 279 } 280 .dashboard-photo { 281 position: absolute; 282 inset: 0; 283 background: 284 linear-gradient(0deg, rgba(0,0,0,0.28), rgba(0,0,0,0.28)), 285 url('/images/forged-portal-rowing-wide.webp') center / cover; 286 filter: saturate(0.76) contrast(1.12) brightness(0.72); 287 transform: scale(1.02); 288 } 289 .dashboard-hero-stat { 290 display: inline-flex; 291 flex-direction: column; 292 width: min(100%, 650px); 293 border-radius: 24px; 294 border: 1px solid rgba(255,255,255,0.16); 295 background: 296 linear-gradient(145deg, rgba(5,5,5,0.72), rgba(5,5,5,0.46)), 297 rgba(5,5,5,0.62); 298 box-shadow: 299 inset 0 1px 0 rgba(255,255,255,0.16), 300 0 18px 48px rgba(0,0,0,0.28); 301 } 302 .dashboard-mini-rail { 303 background: linear-gradient(180deg, rgba(8,8,8,0.72), rgba(8,8,8,0.52)); 304 box-shadow: inset 0 1px 0 rgba(255,255,255,0.12); 305 } 306 @media (max-width: 1024px) { 307 .dashboard-photo-panel::before { 308 background: 309 linear-gradient(180deg, rgba(5,5,5,0.88) 0%, rgba(5,5,5,0.68) 38%, rgba(5,5,5,0.9) 100%), 310 linear-gradient(90deg, rgba(5,5,5,0.84) 0%, rgba(5,5,5,0.46) 100%); 311 } 312 .dashboard-photo-panel::after { 313 font-size: 82px; 314 } 315 } 316 @media (max-width: 640px) { 317 .dashboard-photo { 318 background: 319 linear-gradient(0deg, rgba(0,0,0,0.36), rgba(0,0,0,0.36)), 320 url('/images/forged-portal-bike-close.webp') 48% center / cover; 321 } 322 } 323 .gold-glow { } 324 .portal-card { 325 background: linear-gradient(135deg, rgba(255,255,255,0.08) 0%, rgba(255,255,255,0.03) 50%, rgba(255,255,255,0.06) 100%); 326 border-radius: 16px; 327 border: 1px solid rgba(255,255,255,0.12); 328 box-shadow: 0 4px 24px rgba(0,0,0,0.25); 329 position: relative; 330 overflow: hidden; 331 } 332 .portal-card:hover { 333 border-color: rgba(255,211,78,0.25); 334 box-shadow: 0 8px 32px rgba(0,0,0,0.3); 335 } 336 .portal-input { background: rgba(255,255,255,0.06) !important; border: 1px solid rgba(255,255,255,0.14) !important; border-radius: 12px !important; color: #fff !important; height: 52px !important; font-family: 'Geist', system-ui, sans-serif !important; } 337 .portal-input:focus { border-color: ${s} !important; box-shadow: 0 0 0 2px rgba(255,211,78,0.15) !important; } 338 .portal-input::placeholder { color: rgba(255,255,255,0.5) !important; } 339 input[type="range"].portal-range { -webkit-appearance: none; appearance: none; width: 100%; height: 6px; border-radius: 3px; background: linear-gradient(to right, ${s} var(--fill-pct, 0%), rgba(255,255,255,0.15) var(--fill-pct, 0%)); outline: none; } 340 input[type="range"].portal-range::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 20px; height: 20px; border-radius: 50%; background: ${s}; cursor: pointer; box-shadow: none; border: 2px solid rgba(0,0,0,0.4); } 341 input[type="range"].portal-range::-moz-range-thumb { width: 20px; height: 20px; border-radius: 50%; background: ${s}; cursor: pointer; border: 2px solid rgba(0,0,0,0.4); box-shadow: none; } 342 input[type="range"].portal-range::-moz-range-track { height: 6px; border-radius: 3px; background: rgba(255,255,255,0.15); } 343 input[type="range"].portal-range::-moz-range-progress { height: 6px; border-radius: 3px; background: ${s}; } 344 .portal-btn { background: linear-gradient(135deg, ${s} 0%, #fff0b0 100%); color: #000; font-family: 'Geist', system-ui, sans-serif; font-weight: 700; font-size: 14px; letter-spacing: -0.01em; border: none; border-radius: 999px; padding: 14px 28px; cursor: pointer; transition: transform 400ms cubic-bezier(0.32,0.72,0,1), box-shadow 400ms cubic-bezier(0.32,0.72,0,1); box-shadow: 0 16px 40px -8px rgba(255,211,78,0.28), 0 4px 12px rgba(0,0,0,0.4); } 345 .portal-btn:hover { transform: translateY(-2px); box-shadow: 0 24px 56px -8px rgba(255,211,78,0.38), 0 8px 20px rgba(0,0,0,0.5); } 346 .portal-btn:active { transform: scale(0.97); box-shadow: 0 8px 24px -4px rgba(255,211,78,0.22), 0 2px 8px rgba(0,0,0,0.4); } 347 .portal-btn:disabled { opacity: 0.5;
347 cursor: not-allowed; transform: none; box-shadow: none; } 348 .portal-btn-outline { background: transparent; border: 1px solid ${s}; color: ${s}; } 349 .portal-btn-outline::before { display: none; } 350 .portal-btn-outline:hover { background: rgba(255,211,78,0.08); } 351 352 .hero-card { 353 background: linear-gradient(135deg, rgba(255,211,78,0.1) 0%, rgba(255,211,78,0.03) 60%, rgba(255,255,255,0.02) 100%); 354 border: 1px solid rgba(255,211,78,0.22); 355 border-radius: 20px; 356 box-shadow: 0 8px 32px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.06); 357 position: relative; 358 overflow: hidden; 359 } 360 .hero-card:hover { 361 border-color: rgba(255,211,78,0.35); 362 box-shadow: 0 14px 44px rgba(0,0,0,0.45), inset 0 1px 0 rgba(255,255,255,0.08); 363 } 364 365 .secondary-card { 366 background: linear-gradient(160deg, rgba(255,255,255,0.07) 0%, rgba(255,255,255,0.02) 50%, rgba(255,255,255,0.05) 100%); 367 border-radius: 16px; 368 border: 1px solid rgba(255,255,255,0.08); 369 border-top: 2px solid rgba(255,211,78,0.2); 370 box-shadow: 0 4px 20px rgba(0,0,0,0.3); 371 position: relative; 372 overflow: hidden; 373 } 374 .secondary-card:hover { 375 border-color: rgba(255,255,255,0.15); 376 box-shadow: 0 6px 28px rgba(0,0,0,0.35); 377 } 378 379 .atmosphere-bg { 380 position: absolute; 381 top: 0; left: 0; right: 0; bottom: 0; 382 pointer-events: none; 383 overflow: hidden; 384 } 385 386 .ember-particle { 387 position: absolute; 388 width: 2px; height: 2px; 389 background: rgba(255,211,78,0.4); 390 border-radius: 50%; 391 animation: float-up 6s ease-in-out infinite; 392 filter: blur(0.5px); 393 } 394 @keyframes float-up { 395 0% { transform: translateY(0) scale(1); opacity: 0; } 396 15% { opacity: 0.8; } 397 50% { opacity: 0.4; } 398 100% { transform: translateY(-100px) scale(0.3); opacity: 0; } 399 } 400 401 402 .login-bg { 403 position: fixed; 404 inset: 0; 405 z-index: 0; 406 background: #141414; 407 } 408 .login-bg::before { 409 content: ''; 410 position: absolute; 411 inset: 0; 412 background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='250' height='250'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='250' height='250' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E"); 413 background-size: 200px 200px; 414 opacity: 0.05; 415 mix-blend-mode: overlay; 416 } 417 .login-bg::after { 418 content: ''; 419 position: absolute; 420 bottom: 0; left: 0; right: 0; 421 height: 40%; 422 background: linear-gradient(to top, rgba(232,101,26,0.06) 0%, transparent 100%); 423 } 424 425 426 .stat-value { 427 font-family: 'Geist Mono', 'Geist', system-ui, sans-serif; 428 font-weight: 600; 429 letter-spacing: -0.02em; 430 } 431 432 .progress-bar-glow { 433 position: relative; 434 overflow: hidden; 435 border-radius: 6px; 436 } 437 .progress-bar-glow::after { 438 content: ''; 439 position: absolute; 440 top: 0; right: 0; bottom: 0; 441 width: 20px; 442 background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2)); 443 border-radius: 0 6px 6px 0; 444 } 445 446 .portal-shell { 447 display: flex; 448 min-height: 100vh; 449 } 450 .portal-sidebar { 451 width: 240px; 452 flex-shrink: 0; 453 position: fixed; 454 left: 12px; top: 12px; bottom: 12px; 455 z-index: 40; 456 background: 457 radial-gradient(circle at 50% 0%, rgba(255,211,78,0.075), transparent 28%), 458 linear-gradient(180deg, rgba(20,20,18,0.98), rgba(8,8,8,0.98)); 459 border: 1px solid rgba(255,255,255,0.11); 460 border-radius: 28px; 461 box-shadow: inset 0 1px 0 rgba(255,255,255,0.1), 0 22px 70px rgba(0,0,0,0.42); 462 display: flex; 463 flex-direction: column; 464 overflow-y: auto; 465 scrollbar-width: none; 466 } 467 .portal-sidebar::-webkit-scrollbar { display: none; } 468 .portal-sidebar-inner { 469 display: flex; 470 flex: 1 0 auto; 471 flex-direction: column; 472 padding: 14px 12px 12px; 473 } 474 .portal-sidebar-brand { 475 display: flex; 476 align-items: center; 477 gap: 12px; 478 padding: 8px 8px 18px; 479 border-bottom: 1px solid rgba(255,255,255,0.075); 480 } 481 .portal-sidebar-logo { 482 display: block; 483 width: 90px; 484 height: auto; 485 filter: drop-shadow(0 9px 16px rgba(0,0,0,0.32)); 486 } 487 .portal-sidebar-brand-copy { 488 display: flex; 489 min-width: 0; 490 flex-direction: column; 491 gap: 3px; 492 } 493 .portal-sidebar-brand-copy strong { 494 color: rgba(255,255,255,0.78); 495 font-size: 9px; 496 font-weight: 800; 497 letter-spacing: 0.14em; 498 text-transform: uppercase; 499 } 500 .portal-sidebar-brand-copy span { 501 color: ${s}; 502 font-size: 8px; 503 font-weight: 850; 504 letter-spacing: 0.14em; 505 text-transform: uppercase; 506 } 507 .portal-sidebar-member { 508 display: flex; 509 min-width: 0; 510 align-items: center; 511 gap: 11px; 512 margin: 16px 2px 18px; 513 border: 1px solid rgba(255,211,78,0.14); 514 border-radius: 16px; 515 background: linear-gradient(135deg, rgba(255,211,78,0.075), rgba(255,255,255,0.025)); 516 padding: 10px; 517 } 518 .portal-sidebar-avatar { 519 display: inline-flex; 520 width: 38px; 521 height: 38px; 522 flex: 0 0 auto; 523 align-items: center; 524 justify-content: center; 525 border: 1px solid rgba(255,211,78,0.3); 526 border-radius: 12px; 527 background: rgba(255,211,78,0.1); 528 color: ${s}; 529 font-family: 'Geist Mono', monospace; 530 font-size: 14px; 531 font-weight: 800; 532 } 533 .portal-sidebar-member p { 534 color: rgba(255,255,255,0.46); 535 font-size: 8px; 536 font-weight: 750; 537 letter-spacing: 0.15em; 538 text-transform: uppercase; 539 } 540 .portal-sidebar-member strong { 541 display: block; 542 overflow: hidden; 543 margin-top: 2px; 544 color: #f5f0e8; 545 font-size: 13px; 546 font-weight: 650; 547 letter-spacing: -0.02em; 548 text-overflow: ellipsis; 549 white-space: nowrap; 550 } 551 .portal-sidebar-online { 552 width: 7px; 553 height: 7px; 554 margin-left: auto; 555 flex: 0 0 auto; 556 border-radius: 50%; 557 background: #80bf6e; 558 box-shadow: 0 0 0 3px rgba(128,191,110,0.1), 0 0 12px rgba(128,191,110,0.45); 559 } 560 .portal-sidebar-nav-label { 561 margin: 0 10px 8px; 562 color: rgba(255,255,255,0.34); 563 font-size: 8px; 564 font-weight: 800; 565 letter-spacing: 0.18em; 566 text-transform: uppercase; 567 } 568 .portal-main { 569 flex: 1; 570 min-width: 0; 571 margin-left: 264px; 572 display: flex; 573 flex-direction: column; 574 min-height: 100vh; 575 } 576 .portal-main-full-height { 577 overflow: hidden; 578 height: 100vh; 579 height: 100dvh; 580 } 581 .sidebar-nav-item { 582 display: flex; 583 align-items: center; 584 gap: 10px; 585 min-height: 44px; 586 padding: 7px 9px; 587 border-radius: 12px; 588 font-family: 'Geist', system-ui, sans-serif; 589 font-size: 12px; 590 font-weight: 600; 591 color: rgba(255,255,255,0.62); 592 border: none; 593 background: none; 594 cursor: pointer; 595 transition: transform 700ms cubic-bezier(0.32,0.72,0,1), background 700ms cubic-bezier(0.32,0.72,0,1), color 700ms cubic-bezier(0.32,0.72,0,1); 596 width: 100%; 597 text-align: left; 598 letter-spacing: 0.02em; 599 } 600 .sidebar-nav-item svg { flex-shrink: 0; } 601 .sidebar-nav-icon { 602 display: inline-flex; 603 width: 30px; 604 height: 30px; 605 flex: 0 0 auto; 606 align-items: center; 607 justify-content: center; 608 border: 1px solid transparent; 609 border-radius: 9px; 610 background: rgba(255,255,255,0.025); 611 transition: background 300ms ease, border-color 300ms ease; 612 } 613 .portal-page :is(button, a, input, select, textarea):focus-visible { 614 outline: 2px solid ${s}; 615 outline-offset: 3px; 616 } 617 .sidebar-nav-item:hover { 618 color: rgba(255,255,255,0.86); 619 background: rgba(255,255,255,0.045); 620 transform: translateX(2px); 621 } 622 .sidebar-nav-item.active { 623 color: #080808; 624 background: ${s}; 625 box-shadow: 0 10px 24px rgba(255,211,78,0.14), inset 0 1px 0 rgba(255,255,255,0.38); 626 } 627 .sidebar-nav-item.active svg { 628 opacity: 1; 629 } 630 .sidebar-nav-item.active .sidebar-nav-icon { 631 border-color: rgba(5,5,5,0.12); 632 background: rgba(5,5,5,0.09); 633 } 634 .sidebar-status-dot { 635 display: inline-flex; 636 width: 17px; 637 height: 17px; 638 flex: 0 0 auto; 639 align-items: center; 640 justify-content: center; 641 border-radius: 50%; 642 background: rgba(255,211,78,0.14); 643 color: ${s}; 644 font-size: 10px; 645 font-weight: 800; 646 line-height: 1; 647 } 648 .sidebar-nav-item.active .sidebar-status-dot { 649 background: rgba(5,5,5,0.13); 650 color: #050505; 651 } 652 .portal-sidebar-footer { 653 margin-top: 20px; 654 border-top: 1px solid rgba(255,255,255,0.075); 655 padding-top: 12px; 656 } 657 .portal-sidebar-copyright { 658 padding: 10px 8px 2px; 659 text-align: center; 660 } 661 .portal-sidebar-copyright p { 662 color: rgba(255,255,255,0.42); 663 font-size: 9px; 664 letter-spacing: 0.06em; 665 } 666 .portal-topbar { 667 position: sticky; 668 top: 0; 669 z-index: 30; 670 display: flex; 671 min-height: 72px; 672 align-items: center; 673 justify-content: space-between; 674 gap: 18px; 675 border-bottom: 1px solid rgba(255,255,255,0.07); 676 background: rgba(5,5,5,0.82); 677 padding: 10px 32px; 678 backdrop-filter: blur(20px) saturate(1.2); 679 } 680 .portal-topbar-context, 681 .portal-topbar-actions { 682 display: flex; 683 min-width: 0; 684 align-items: center; 685 gap: 10px; 686 } 687 .portal-topbar-actions { flex: 0 0 auto; } 688 .portal-topbar-title { min-width: 0; } 689 .portal-topbar-title p { 690 color: rgba(255,255,255,0.38); 691 font-size: 8px; 692 font-weight: 800; 693 letter-spacing: 0.17em; 694 text-transform: uppercase; 695 } 696 .portal-topbar-title strong { 697 display: block; 698 overflow: hidden; 699 margin-top: 3px; 700 color: rgba(255,255,255,0.86); 701 font-size: 14px; 702 font-weight: 650; 703 letter-spacing: -0.02em; 704 text-overflow: ellipsis; 705 white-space: nowrap; 706 } 707 .portal-topbar-points { 708 display: inline-flex; 709 min-height: 44px; 710 align-items: center; 711 gap: 7px; 712 border: 1px solid rgba(255,211,78,0.18); 713 border-radius: 12px; 714 background: rgba(255,211,78,0.055); 715 padding: 8px 13px; 716 } 717 .portal-topbar-points-label { 718 color: rgba(255,255,255,0.42); 719 font-size: 9px; 720 font-weight: 700; 721 letter-spacing: 0.1em; 722 text-transform: uppercase; 723 } 724 .portal-topbar-icon-btn, 725 .portal-topbar-logout, 726 .hamburger-btn { 727 display: inline-flex; 728 min-width: 44px; 729 min-height: 44px; 730 align-items: center; 731 justify-content: center; 732 border: 1px solid rgba(255,255,255,0.1); 733 border-radius: 12px; 734 background: rgba(255,255,255,0.035); 735 color: rgba(255,255,255,0.58); 736 cursor: pointer; 737 transition: border-color 250ms ease, color 250ms ease, background 250ms ease; 738 } 739 .portal-topbar-icon-btn:hover, 740 .portal-topbar-logout:hover, 741 .hamburger-btn:hover { 742 border-color: rgba(255,211,78,0.23); 743 background: rgba(255,211,78,0.045); 744 color: ${s}; 745 } 746 .portal-topbar-logout { 747 gap: 8px; 748 padding: 8px 13px; 749 font-size: 10px; 750 font-weight: 750; 751 letter-spacing: 0.08em; 752 text-transform: uppercase; 753 } 754 .sidebar-overlay { 755 display: none; 756 } 757 .hamburger-btn { display: none; } 758 @media (max-width: 1023.98px) { 759 .portal-sidebar { 760 transform: translateX(-100%); 761 visibility: hidden; 762 transition: transform 0.25s ease; 763 width: min(288px, calc(100vw - 48px)); 764 left: 0; 765 top: 0; 766 bottom: 0; 767 border-radius: 0 28px 28px 0; 768 z-index: 50; 769 } 770 .portal-sidebar.open { 771 transform: translateX(0); 772 visibility: visible; 773 box-shadow: 4px 0 40px rgba(0,0,0,0.6); 774 } 775 .portal-main { 776 margin-left: 0; 777 } 778 .sidebar-overlay { 779 display: block; 780 position: fixed; 781 inset: 0; 782 z-index: 49; 783 background: rgba(0,0,0,0.55); 784 } 785 .hamburger-btn { 786 display: flex; 787 } 788 .portal-topbar { padding-inline: 18px; } 789 } 790 @media (max-width: 560px) { 791 .portal-topbar { 792 min-height: 64px; 793 gap: 8px; 794 padding: 9px 12px; 795 } 796 .portal-topbar-title p { display: none; } 797 .portal-topbar-title strong { margin-top: 0; font-size: 13px; } 798 .portal-topbar-points { min-height: 44px; padding-inline: 10px; } 799 .portal-topbar-points-label, 800 .portal-topbar-logout span { display: none; } 801 .portal-topbar-logout { width: 44px; padding: 0; } 802 } 803 804 .motivational-text { 805 animation: fade-in 0.8s ease-out; 806 }
807 @keyframes fade-in { 808 0% { opacity: 0; transform: translateY(4px); } 809 100% { opacity: 1; transform: translateY(0); } 810 } 811 812 .section-page-bg { 813 position: relative; 814 } 815 816 /* ââ Mobile content layout âââââââââââââââââââââââââââââââ */ 817 .portal-mobile-copyright { 818 display: none; 819 } 820 @media (max-width: 1023.98px) { 821 .portal-mobile-copyright { 822 display: block; 823 text-align: center; 824 padding: 12px 16px 20px; 825 font-size: 10px; 826 color: rgba(255,255,255,0.6); 827 letter-spacing: 0.05em; 828 } 829 .portal-mobile-copyright p { 830 margin: 0; 831 } 832 } 833 834 /* ââ Chapter marker dividers âââââââââââââââââââââââââââââââ */ 835 .chapter-marker { 836 display: flex; 837 align-items: center; 838 gap: 12px; 839 margin-bottom: 20px; 840 margin-top: 36px; 841 } 842 .chapter-marker-label { 843 font-family: 'Geist', system-ui, sans-serif; 844 font-size: 9px; 845 letter-spacing: 0.22em; 846 color: rgba(245,240,232,0.3); 847 white-space: nowrap; 848 flex-shrink: 0; 849 line-height: 1; 850 text-transform: uppercase; 851 } 852 .chapter-marker-line { 853 flex: 1; 854 height: 1px; 855 background: rgba(245,240,232,0.08); 856 } 857 858 /* ââ Zone wash wrappers âââââââââââââââââââââââââââââââââââââ */ 859 .zone-journey { 860 position: relative; 861 border-radius: 20px; 862 margin-bottom: 8px; 863 padding: 2px 0; 864 } 865 .zone-journey::before { 866 content: ''; 867 position: absolute; 868 inset: -8px; 869 background: radial-gradient(ellipse at 50% 0%, rgba(180,200,230,0.05) 0%, transparent 65%); 870 pointer-events: none; 871 z-index: 0; 872 border-radius: 24px; 873 } 874 .zone-training { 875 position: relative; 876 border-radius: 20px; 877 margin-bottom: 8px; 878 padding: 2px 0; 879 } 880 .zone-training::before { 881 content: ''; 882 position: absolute; 883 inset: -8px; 884 background: radial-gradient(ellipse at 50% 30%, rgba(232,101,26,0.07) 0%, transparent 65%); 885 pointer-events: none; 886 z-index: 0; 887 border-radius: 24px; 888 } 889 .zone-mission { 890 position: relative; 891 border-radius: 20px; 892 margin-bottom: 8px; 893 padding: 2px 0; 894 } 895 .zone-mission::before { 896 content: ''; 897 position: absolute; 898 inset: -8px; 899 background: radial-gradient(ellipse at 50% 0%, rgba(255,211,78,0.06) 0%, transparent 60%); 900 pointer-events: none; 901 z-index: 0; 902 border-radius: 24px; 903 } 904 905 /* ââ Mission pullquote ââââââââââââââââââââââââââââââââââââââ */ 906 .mission-pullquote { 907 position: relative; 908 padding-left: 20px; 909 margin-bottom: 20px; 910 } 911 .mission-pullquote::before { 912 content: ''; 913 position: absolute; 914 left: 0; 915 top: 0; 916 bottom: 0; 917 width: 5px; 918 border-radius: 3px; 919 background: linear-gradient(180deg, ${s} 0%, rgba(255,211,78,0.4) 100%); 920 } 921 922 /* ââ Steel plate day tiles ââââââââââââââââââââââââââââââââââ */ 923 .steel-plate { 924 flex: 1; 925 aspect-ratio: 1; 926 min-width: 0; 927 border-radius: 6px; 928 display: flex; 929 flex-direction: column; 930 align-items: center; 931 justify-content: center; 932 gap: 4px; 933 cursor: default; 934 transition: all 0.2s; 935 position: relative; 936 } 937 .steel-plate-label { 938 font-family: 'Geist', system-ui, sans-serif; 939 font-weight: 700; 940 font-size: 12px; 941 letter-spacing: 0.12em; 942 line-height: 1; 943 } 944 .steel-plate-dot { 945 width: 5px; 946 height: 5px; 947 border-radius: 50%; 948 } 949 950 /* Hydration tracker buttons â comfortable tap target on mobile */ 951 .water-step-btn { 952 width: 28px; 953 height: 28px; 954 border-radius: 50%; 955 display: flex; 956 align-items: center; 957 justify-content: center; 958 font-size: 1rem; 959 font-weight: 700; 960 transition: opacity 0.15s; 961 flex-shrink: 0; 962 } 963 @media (max-width: 480px) { 964 .water-step-btn { 965 width: 40px; 966 height: 40px; 967 font-size: 1.15rem; 968 } 969 970 /* Dashboard card grid â single column below sm */ 971 .dashboard-cards-grid { 972 grid-template-columns: 1fr !important; 973 } 974 975 /* Challenge timeline â slightly tighter gap on very small screens */ 976 .challenge-timeline-track { 977 gap: 4px !important; 978 } 979 980 /* Files upload area â stack controls below each other */ 981 .files-upload-controls { 982 flex-direction: column !important; 983 align-items: stretch !important; 984 } 985 .files-upload-controls > * { 986 width: 100%; 987 } 988 .files-upload-controls select { 989 width: 100% !important; 990 } 991 992 /* Ensure page sections don't overflow */ 993 .portal-content { 994 max-width: 100%; 995 } 996 } 997 998 /* One page gutter shared by section tips, headings, and content. */ 999 .portal-workspace { 1000 box-sizing: border-box; 1001 width: 100%; 1002 min-width: 0; 1003 max-width: 1304px; 1004 margin-inline: auto; 1005 padding: 32px 32px 48px; 1006 } 1007 .portal-workspace:is([data-section="goals"], [data-section="programme"], [data-section="files"], [data-section="settings"], [data-section="group-
1007pt"]) { 1008 max-width: 864px; 1009 } 1010 .portal-section-body { min-width: 0; width: 100%; } 1011 .portal-workspace :is(h1, h2, h3) { overflow-wrap: anywhere; } 1012 .portal-section-intro { 1013 margin-bottom: 24px; 1014 padding: 16px; 1015 border: 1px solid rgba(255,211,78,0.12); 1016 border-radius: 12px; 1017 } 1018 .portal-section-intro > button { min-width: 32px; min-height: 32px; justify-content: center; } 1019 .portal-empty-state { padding: 40px 32px; text-align: center; } 1020 .portal-drawer-close { display: none; } 1021 @media (max-width: 1023.98px) { 1022 .portal-workspace { padding: 28px 24px 40px; } 1023 .portal-drawer-close { 1024 display: flex; 1025 align-items: center; 1026 justify-content: center; 1027 flex-shrink: 0; 1028 align-self: flex-end; 1029 width: 44px; 1030 height: 44px; 1031 margin: 8px 8px 0; 1032 color: rgba(255,255,255,0.8); 1033 } 1034 } 1035 @media (max-width: 640px) { 1036 .portal-workspace { padding: 24px 16px 32px; } 1037 .portal-section-intro { gap: 8px; padding: 12px; } 1038 .portal-empty-state { padding: 28px 20px; } 1039 .portal-workspace .premium-shell { border-radius: 22px; } 1040 .portal-workspace .premium-core { border-radius: 20px; } 1041 /* AI coach STAT block â 2 columns instead of 3 on mobile */ 1042 .coach-stat-grid { 1043 grid-template-columns: repeat(2, 1fr) !important; 1044 } 1045 } 1046 @media (prefers-reduced-motion: reduce) { 1047 .portal-sidebar { transition: none; } 1048 } 1049 `}const ue="forgedPortalHadSession",Ia="forged_returning";function v0(){const[a,n]=t.useState(null),[p,u]=t.useState(!0),[,g]=St(),{toast:x}=se(),N=t.useRef(null);return N.current=a,t.useEffect(()=>{const h=new URLSearchParams(window.location.search),y=h.get("vtk");if(y){sessionStorage.setItem(ve,y),h.delete("vtk");const w=h.toString();window.history.replaceState(null,"",window.location.pathname+(w?`?${w}`:""))}B("/api/forged-portal/me",{credentials:"include"}).then(async w=>{if(w.ok){const M=await w.json();n(M)}else localStorage.getItem(ue)==="true"&&localStorage.removeItem(ue)}).catch(()=>{}).finally(()=>u(!1))},[]),t.useEffect(()=>{const h=()=>{N.current&&(localStorage.removeItem(ue),n(null),x({title:"Session expired",description:"Please log in again to continue.",variant:"destructive"}),g("/forged-portal/login?redirect=/forged-portal",{replace:!0}))};return window.addEventListener("portal-session-expired",h),()=>window.removeEventListener("portal-session-expired",h)},[g,x]),t.useEffect(()=>{if(!p&&!a){const h=encodeURIComponent(window.location.pathname+window.location.search);g(`/forged-portal/login?redirect=${h}`,{replace:!0})}},[p,a,g]),p||!a?e.jsxs("div",{className:"portal-page portal-loading-screen",children:[e.jsx("style",{children:Te()}),e.jsxs("div",{className:"portal-loading-mark",children:[e.jsx("img",{src:"/ludus-magnus-logo.png",alt:"Ludus Magnus"}),e.jsx("div",{className:"portal-loading-track","aria-hidden":"true",children:e.jsx("span",{})}),e.jsx("p",{children:"Opening your Forge 40 portal"})]})]}):e.jsx(Da,{member:a,onLogout:async()=>{try{if(!(await B("/api/forged-portal/logout",{method:"POST",credentials:"include"})).ok)throw new Error("Logout failed")}catch{x({title:"Logout failed",description:"Could not end your session. Please try again.",variant:"destructive"});return}localStorage.removeItem(ue),sessionStorage.removeItem(ve),n(null),g("/forged-portal/login?loggedOut=true",{replace:!0})}})}const Ae="welcome-tour",be=[{section:"goals",label:"Goals",icon:$e,description:"Start here â set your primary goals, body stats, training frequency, and dietary preferences. Your coach uses these to build your personalised programme and nutrition plan."},{section:"nutrition",label:"Nutrition",icon:me,description:"View your personalised daily macro targets and AI-generated meal suggestions, all tailored to your goals and preferences."},{section:"programme",label:"My Programme",icon:ze,description:"Review the recommended 6-week plan built from your goals, metrics, and nutrition guide. Log weights, reps, and notes as you train."},{section:"progress",label:"Weekly Challenge Results",icon:ye,description:"Track your body measurements and upload check-in photos week by week so you can see exactly how far you've come."}];function Wa({member:a,onNavigate:n}){const{isDismissed:p,dismiss:u}=Fe(),[g,x]=t.useState(0);if(localStorage.getItem(Ia)==="true"||p(Ae))return null;const h=be[g],y=h.icon,w=g===be.length-1,M=()=>{n(h.section),w?u(Ae):x(v=>v+1)},E=()=>{u(Ae)};return e.jsx("div",{style:{position:"fixed",inset:0,zIndex:200,background:"rgba(0,0,0,0.72)",display:"flex",alignItems:"center",justifyContent:"center",padding:"16px",backdropFilter:"blur(4px)"},"data-testid":"welcome-tour-overlay",children:e.jsxs("div",{style:{width:"100%",maxWidth:420,background:"linear-gradient(160deg, rgba(26,24,20,0.98) 0%, rgba(20,20,20,0.99) 100%)",border:"1px solid rgba(255,211,78,0.28)",borderRadius:20,boxSh
1049adow:"0 24px 64px rgba(0,0,0,0.6), 0 0 0 1px rgba(255,211,78,0.08)",overflow:"hidden",fontFamily:"'Geist', system-ui, sans-serif"},"data-testid":"welcome-tour-modal",children:[e.jsxs("div",{style:{background:"linear-gradient(135deg, rgba(255,211,78,0.14) 0%, rgba(232,101,26,0.08) 100%)",borderBottom:"1px solid rgba(255,211,78,0.15)",padding:"20px 24px 16px"},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:10},children:[e.jsxs("span",{style:{fontSize:10,letterSpacing:"0.25em",color:"rgba(255,211,78,0.7)",textTransform:"uppercase"},"data-testid":"tour-step-label",children:["Welcome, ",a.firstName," â Step ",g+1," of ",be.length]}),e.jsx("button",{onClick:E,style:{background:"none",border:"none",cursor:"pointer",color:"rgba(255,255,255,0.35)",padding:4,display:"flex",alignItems:"center"},"data-testid":"tour-skip-btn","aria-label":"Skip tour",children:e.jsx(ne,{size:15})})]}),e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10},children:[e.jsx("div",{style:{width:40,height:40,borderRadius:12,background:"rgba(255,211,78,0.15)",border:"1px solid rgba(255,211,78,0.25)",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:e.jsx("span",{style:{color:s,display:"flex"},children:e.jsx(y,{size:20})})}),e.jsx("h2",{className:"portal-heading",style:{color:s,fontSize:26,lineHeight:1,margin:0},"data-testid":"tour-step-title",children:h.label.toUpperCase()})]})]}),e.jsxs("div",{style:{padding:"20px 24px 24px"},children:[e.jsx("p",{style:{color:"rgba(255,255,255,0.75)",fontSize:14,lineHeight:1.65,marginBottom:24},"data-testid":"tour-step-description",children:h.description}),e.jsx("div",{style:{display:"flex",gap:6,marginBottom:20},children:be.map((v,A)=>e.jsx("div",{style:{flex:A===g?2:1,height:4,borderRadius:2,background:A<=g?s:"rgba(255,255,255,0.12)",transition:"all 0.3s ease"},"data-testid":`tour-progress-dot-${A}`},A))}),e.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:10},children:[e.jsx("button",{onClick:E,style:{background:"none",border:"none",cursor:"pointer",color:"rgba(255,255,255,0.4)",fontSize:13,padding:"8px 4px",fontFamily:"'Geist', system-ui, sans-serif"},"data-testid":"tour-skip-link",children:"Skip tour"}),e.jsx("button",{onClick:M,className:"portal-btn",style:{fontSize:14,padding:"11px 24px",borderRadius:10},"data-testid":"tour-next-btn",children:w?"LET'S GO â":`EXPLORE ${h.label.toUpperCase()} â`})]})]})]})})}function Da({member:a,onLogout:n}){const[p,u]=t.useState("home"),[g,x]=t.useState(!1),[N,h]=t.useState(!1),{resetAll:y}=Fe(),w=t.useRef(null),M=Et();t.useEffect(()=>{if(!g)return;const i=window.matchMedia("(min-width: 1024px)"),m=document.activeElement,d=document.body.style.overflow;document.body.style.overflow="hidden",w.current?.querySelector("button")?.focus();const f=()=>{i.matches&&x(!1)},T=V=>{if(V.key==="Escape"&&x(!1),V.key!=="Tab")return;const L=Array.from(w.current?.querySelectorAll("button, a[href]")??[]).filter(G=>G.getClientRects().length>0),k=L[0],C=L[L.length-1];V.shiftKey&&document.activeElement===k?(V.preventDefault(),C?.focus()):!V.shiftKey&&document.activeElement===C&&(V.preventDefault(),k?.focus())};return document.addEventListener("keydown",T),i.addEventListener("change",f),()=>{document.body.style.overflow=d,document.removeEventListener("keydown",T),i.removeEventListener("change",f),m?.focus({preventScroll:!0})}},[g]);const{data:E}=U({queryKey:["/api/forged-portal/goals"],queryFn:async()=>{const m=await(await B("/api/forged-portal/goals")).json();if(!m)return null;const d=m.primaryGoal;return m.primaryGoal=Array.isArray(d)?d.flat(1/0).filter(f=>typeof f=="string"):typeof d=="string"?[d]:[],m}}),{data:v}=U({queryKey:["/api/forged-portal/nutrition"],queryFn:async()=>(await B("/api/forged-portal/nutrition")).json()}),{data:A,isLoading:W}=U({queryKey:["/api/forged-portal/programme"],queryFn:async()=>(await B("/api/forged-portal/programme")).json()}),{data:D}=U({queryKey:["/api/portal/me/points"],queryFn:async()=>{const i=await B("/api/portal/me/points");
1049return i.ok?i.json():{total:0}}}),H={goals:!!E,programme:!!A&&!A.pending},I=i=>{u(i),x(!1),window.scrollTo({top:0,behavior:"instant"})},Y=()=>{switch(p){case"goals":return e.jsxs(e.Fragment,{children:[e.jsx(ie,{id:"goals",text:"Define your 40-day targets here â primary goals, training frequency, body stats, and dietary preferences. Your coach uses these to build your personalised programme and nutrition plan."}),e.jsx(a0,{})]});case"nutrition":return e.jsxs(e.Fragment,{children:[e.jsx(ie,{id:"nutrition",text:"Your personalised macro targets and AI-generated meal ideas, tailored to your goals and preferences. Check the Suggestions tab for daily meal ideas."}),e.jsx(e0,{nutritionPlan:v??null})]});case"programme":return e.jsxs(e.Fragment,{children:[e.jsx(ie,{id:"programme",text:"Your recommended 6-week plan is built from your goals, body metrics, training target, and nutrition guide. Use this page to see which Ludus classes to book each week."}),e.jsx(t0,{programme:A??null,programmeLoading:W,goals:E??null,nutritionPlan:v??null,onNavigateToNutrition:()=>u("nutrition"),onNavigateToGoals:()=>u("goals"),member:a})]});case"progress":return e.jsxs(e.Fragment,{children:[e.jsx(ie,{id:"progress",text:"Track your benchmark exercise scores over the 40 days. Log a new result each time you test a benchmark to see your improvement chart."}),e.jsx(Ga,{}),e.jsx(Ya,{})]});case"files":return e.jsxs(e.Fragment,{children:[e.jsx(ie,{id:"files",text:"Upload your progress photos and body scan PDFs here. Files are stored privately and are only visible to you and your coach."}),e.jsx(i0,{})]});case"settings":return e.jsxs(e.Fragment,{children:[e.jsx(ie,{id:"settings",text:"Manage your privacy and consent settings. You can update your social media consent preference at any time."}),e.jsx(o0,{member:a})]});case"group-pt":return e.jsxs(e.Fragment,{children:[e.jsx(ie,{id:"group-
1049pt",text:"Book a small group personal training session with friends or training partners. Select your group size, pick an available time slot, and pay a 50% deposit to secure your booking."}),e.jsx(l0,{member:a})]});default:return e.jsx(Ja,{member:a,onNavigate:I,programme:A,programmeLoading:W})}};return e.jsxs("div",{className:"portal-page portal-shell",children:[e.jsx("style",{children:Te()}),g&&e.jsx("div",{className:"sidebar-overlay",onClick:()=>x(!1),"data-testid":"sidebar-overlay"}),e.jsxs("aside",{ref:w,id:"portal-navigation",className:`portal-sidebar${g?" open":""}`,"data-testid":"portal-sidebar",children:[e.jsx("button",{type:"button",className:"portal-drawer-close",onClick:()=>x(!1),"aria-label":"Close navigation",children:e.jsx(ne,{size:20})}),e.jsx(Ka,{member:a,activeSection:p,onNavigate:I,onLogout:n,sidebarStatus:H})]}),e.jsxs("div",{className:"portal-main portal-content",children:[e.jsx(_a,{onHamburger:()=>x(i=>!i),sidebarOpen:g,onLogout:n,totalPoints:D?.total,onHelp:()=>h(!0),activeSection:p,memberName:a.firstName}),e.jsx(Vt,{mode:"wait",children:e.jsx(re.div,{className:"portal-workspace","data-section":p,initial:M?!1:{opacity:0,y:10},animate:{opacity:1,y:0},exit:{opacity:0},transition:{duration:M?0:.28,ease:[.32,.72,0,1]},children:Y()},p)}),e.jsx("div",{className:"portal-mobile-copyright","data-testid":"mobile-copyright",children:e.jsxs("p",{children:["© ",new Date().getFullYear()," Forged by Joe"]})})]}),e.jsx(qa,{open:N,onClose:()=>h(!1),onResetTips:()=>{y()}}),e.jsx(Wa,{member:a,onNavigate:I})]})}const Pa=[{id:"aussie-pull-ups",name:"Aussie Pull Ups",hasWeight:!1,hint:"Bodyweight rows under a fixed bar",regressionPlaceholder:"e.g. Banded rows à 10"},{id:"push-ups",name:"Push Ups",hasWeight:!1,hint:"Standard floor push ups",regressionPlaceholder:"e.g. Knee push-ups à 15"},{id:"db-kb-jerks",name:"DB / KB Jerks",hasWeight:!0,hint:"Dumbbell or kettlebell jerks",regressionPlaceholder:"e.g. Shoulder press 6 kg à 8"},{id:"db-kb-squats",name:"DB / KB Squats",hasWeight:!0,hint:"Goblet or double dumbbell squats",regressionPlaceholder:"e.g. Bodyweight squats à 20"}],fe=[{week:1,phase:"Opening",title:"Opening Fitness Test",type:"Fitness test",dayLabel:"Day 1",description:"Your opening baseline. Every score you log here becomes the benchmark everything else is measured against.",instruction:"Your coach will run this test in class. Log each result immediately after so your baseline is locked in.",exercises:[],exercisesTbc:!0},{week:3,phase:"Mid-Challenge",title:"Mid-Challenge Fitness Test",type:"Fitness test",dayLabel:"Day 20",description:"Halfway check-in. Compare your scores against Day 1 and see where the work is paying off.",instruction:"Log your results after the test on Day 20. Use the notes field to flag any scaling or conditions.",exercises:[],exercisesTbc:!0},{week:6,phase:"Final",title:"End-of-Challenge Fitness Test",type:"Fitness test",dayLabel:"Day 40",description:"The full picture. Final scores set against your opening baseline â this is where 40 days of work shows up.",instruction:"Log everything after the final test. Upload any final scan results or photos in My Files.",exercises:[],exercisesTbc:!0}],Oa=[{key:"weightKg",label:"Weight",divisor:10,dp:1,unit:"kg",lowerIsBetter:!0},{key:"bodyFatPct",label:"Body Fat",divisor:10,dp:1,unit:"%",lowerIsBetter:!0},{key:"muscleMassKg",label:"Muscle Mass",divisor:10,dp:1,unit:"kg",lowerIsBetter:!1},{key:"visceralFatLevel",label:"Visceral Fat",divisor:1,dp:0,unit:"",lowerIsBetter:!0},{key:"bmi",label:"BMI",divisor:10,dp:1,unit:"",lowerIsBetter:!0},{key:"boneMassKg",label:"Bone Mass",divisor:10,dp:1,unit:"kg",lowerIsBetter:!1},{key:"metabolicAge",label:"Metabolic Age",divisor:1,dp:0,unit:"yr",lowerIsBetter:!0}];function Ga(){const{data:a,isLoading:n}=U({queryKey:["/api/portal/body-scans"],queryFn:async()=>{const h=await B("/api/portal/body-scans"),y=await h.json();if(!h.ok)throw new Error(y.error??"Failed to load");return Array.isArray(y)?y:[]},staleTime:6e4});if(n)return e.jsx("div",{style:{background:"rgba(255,255,255,0.02)",border:"1px solid rgba(255,255,255,0.07)",borderRadius:12,padding:"20px 24px",marginBottom:24},children:e.jsx("div",{style:{height:12,width:160,background:"rgba(255,255,255,0.06)",borderRadius:6}})});if(!a||a.length===0)return null;const p=a[0],u=a[a.length-1],g=a.length>=2,x=h=>new Date(h).toLocaleDateString("en-NZ",{day:"numeric",month:"short",year:"numeric"}),N=Oa.filter(h=>p[h.key]!=null||u[h.key]!=null);return e.jsxs("div",{style:{background:"rgba(255,211,78,0.03)",border:"1px solid rgba(255,211,78,0.12)",borderRadius:12,padding:"20px 24px",marginBottom:28},"data-testid":"portal-scan-analysis",children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:16,flexWrap:"wrap",gap:8},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[e.jsx("div",{style:{width:28,height:28,borderRadius:8,background:"rgba(255,211,78,0.1)",display:"flex",alignItems:"center",justifyContent:"center"},children:e.jsx(ye,{size:14,style:{color:s}})}),e.jsxs("div",{children:[e.jsx("p",{style:{fontSize:13,fontWeight:700,color:"#fff",letterSpacing:"-0.01em",lineHeight:1.2},children:"Body Composition"}),g&&e.jsxs("p",{style:{fontSize:11,color:"rgba(255,255,255,0.35)",marginTop:1},children:[x(p.scanDate)," â ",x(u.scanDate)," · ",a.length," scan",a.length!==1?"s":""]}),!g&&e.jsxs("p",{style:{fontSize:11,color:"rgba(255,255,255,0.35)",marginTop:1},children:["Baseline scan · ",x(p.scanDate)]})]})]}
1049),g&&e.jsx("div",{style:{fontSize:10,color:"rgba(255,255,255,0.3)",background:"rgba(255,255,255,0.04)",border:"1px solid rgba(255,255,255,0.08)",borderRadius:6,padding:"4px 8px",letterSpacing:"0.04em",textTransform:"uppercase",fontWeight:600},children:"Î = change since baseline"})]}),e.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(120px, 1fr))",gap:8},children:N.map(h=>{const y=p[h.key],w=u[h.key],M=y!=null?y/h.divisor:null,E=w!=null?w/h.divisor:null,v=g&&M!=null&&E!=null?E-M:null,A=v!=null?h.lowerIsBetter?v<0:v>0:null,W=v===0,D=v==null||W?"rgba(255,255,255,0.35)":A?"#4ade80":"#f87171",H=v!=null&&v>0?"+":"";return e.jsxs("div",{style:{background:"rgba(255,255,255,0.03)",border:"1px solid rgba(255,255,255,0.07)",borderRadius:8,padding:"10px 12px"},"data-testid":`portal-scan-metric-${h.key}`,children:[e.jsx("p",{style:{fontSize:9,color:"rgba(255,255,255,0.35)",textTransform:"uppercase",letterSpacing:"0.1em",fontWeight:700,marginBottom:4},children:h.label}),e.jsx("p",{style:{fontSize:16,fontWeight:700,color:"#fff",letterSpacing:"-0.02em",lineHeight:1},children:E!=null?`${E.toFixed(h.dp)}${h.unit}`:"â"}),v!=null&&!W&&e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:3,marginTop:4},children:[A?e.jsx(Ma,{size:10,style:{color:D}}):e.jsx(ye,{size:10,style:{color:D}}),e.jsxs("p",{style:{fontSize:10,fontWeight:600,color:D,letterSpacing:"-0.01em"},children:[H,v.toFixed(h.dp),h.unit]})]}),v===0&&e.jsx("p",{style:{fontSize:10,color:"rgba(255,255,255,0.25)",marginTop:4},children:"no change"}),v==null&&M!=null&&e.jsx("p",{style:{fontSize:10,color:"rgba(255,255,255,0.25)",marginTop:4},children:"baseline"})]},h.key)})}),!g&&e.jsx("p",{style:{fontSize:11,color:"rgba(255,255,255,0.25)",marginTop:12,lineHeight:1.5},children:"Complete a second scan to see your progress comparison."})]})}function Ya(){const{toast:a}=se(),n=le(),[p,u]=t.useState({}),[g,x]=t.useState(null),{data:N,isLoading:h}=U({queryKey:["/api/forged-portal/exercise-logs"],queryFn:async()=>{const i=await B("/api/forged-portal/exercise-logs"),m=await i.json();if(!i.ok)throw new Error(m.error??"Failed to load");return Array.isArray(m)?m:[]}}),y=t.useMemo(()=>Array.isArray(N)?N:[],[N]),{data:w}=U({queryKey:["/api/forged-portal/me"],queryFn:async()=>{const i=await B("/api/forged-portal/me"),m=await i.json();if(!i.ok)throw new Error(m.error??"Failed to load member");return m},staleTime:1/0}),M=(()=>{const i=w?.challengeStartDate??"2026-04-20",m=new Date(i),f=Math.floor((new Date().getTime()-m.getTime())/(1e3*60*60*24));return f<0||f<20?1:f<40?3:6})();t.useEffect(()=>{x(i=>i??M)},[M]),t.useEffect(()=>{y.length&&u(i=>{const m={...i};return y.forEach(d=>{const f=`${d.exercise}:${d.weekNumber}`;m[f]||(m[f]={reps:d.reps!=null?String(d.reps):"",weight:d.weight??"",regression:d.regression??"",breaks:d.breaks!=null?String(d.breaks):"",saveStatus:"idle"})}),m})},[y]);const E=(i,m)=>p[`${i}:${m}`]??{reps:"",weight:"",regression:"",breaks:"",saveStatus:"idle"},v=(i,m,d)=>{const f=`${i}:${m}`;u(T=>({...T,[f]:{...E(i,m),...d}}))},A=async(i,m)=>{const d=E(i,m);if(d.reps!==""||d.weight!==""||d.regression!==""||d.breaks!==""){v(i,m,{saveStatus:"saving"});try{if(!(await B("/api/forged-portal/exercise-logs",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({exercise:i,weekNumber:m,reps:d.reps!==""?Number(d.reps):null,weight:d.weight||null,regression:d.regression||null,breaks:d.breaks!==""?Number(d.breaks):null})})).ok)throw new Error("Failed to save");v(i,m,{saveStatus:"saved"}),n.invalidateQueries({queryKey:["/api/forged-portal/exercise-logs"]}),setTimeout(()=>v(i,m,{saveStatus:"idle"}),1800)}catch{v(i,m,{saveStatus:"error"}),a({title:"Save failed",description:"Please try again",variant:"destructive"})}}},W=i=>y.filter(m=>m.weekNumber===i),D=i=>i.reps!==""||i.weight!==""||i.regression!==""||i.breaks!=="",H=fe.filter(i=>y.some(m=>m.weekNumber===i.week)).length,I=y.filter(i=>i.exercise==="push-ups"&&i.reps!=null).reduce((i,m)=>i==null||(m.reps??0)>i?m.reps:i,null),Y=y.reduce((i,m)=>Math.max(i,m.weekNumber),0);return h?e.jsx("div",{className:"portal-content portal-section-body",children:e.jsx("div",{className:"portal-card p-8 text-center text-sm text-white/55",children:"Loading results..."})}):e.jsxs("div",{className:"portal-content portal-section-body","data-testid":"section-progress",children:[e.jsxs("div",{className:"mb-7 grid gap-4 lg:grid-cols-[1.25fr_0.75fr]",children:[e.jsx("div",{className:"premium-shell",children:e.jsxs("div",{className:"premium-core p-5 sm:p-6 lg:p-7",children:[e.jsx("p",{className:"portal-label mb-4",children:"Fitness Tests"}),e.jsx("h1",{className:"max-w-[760px] text-[34px] font-extrabold leading-[1.12] tracking-[-0.045em] text-white md:text-[54px]",children:"Three tests. One transformation."}),e.jsx("p",{className:"mt-5 max-w-[680px] text-sm leading-relaxed text-white/55 md:text-base",children:"Your coach runs a fitness test at the opening, mid-point, and end of the challenge. Log your results after each test and watch the numbers move across 40 days."})]})}),e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-3 lg:grid-cols-1",children:[{label:"Current Phase",value:fe.find(i=>i.week===M)?.phase??"Opening"},{label:"Completed",value:`${H}/3`},{label:"Best Push Ups",value:I==null?"-":String(I)}].map(i=>e.jsx("div",{className:"premium-shell",children:e.jsxs("div",{className:"premium-core p-5",children:[e.jsx("p",{className:"portal-label mb-2 text-[9px]",children:i.label}),e.jsx("p",{className:"text-2xl font-extrabold tracking-[-0.05em] text-white",children:i.value})]})},i.label))})]}),e.jsx("div",{className:"mb-6 grid gap-3 md:grid-cols-3",children:fe.map(i=>{const m=W(i.week).length,d=i.week===M,f=g===i.week;return e.jsxs("button",{type:"button",onClick:()=>x(i.week),className:"rounded-2xl border px-4 py-4 text-left transition-transform duration-700 ease-[
1049cubic-bezier(0.32,0.72,0,1)] hover:translate-y-[-1px]",style:{borderColor:f?"rgba(255,211,78,0.55)":"rgba(255,255,255,0.1)",background:f?"rgba(255,211,78,0.12)":"rgba(255,255,255,0.035)"},"data-testid":`button-progress-phase-${i.week}`,children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsx("span",{className:"text-xs font-black uppercase tracking-[0.12em] text-[#ffd34e]",children:i.phase}),d&&e.jsx("span",{className:"h-2 w-2 rounded-full bg-[#ffd34e]"})]}),e.jsx("p",{className:"mt-2 text-xs font-bold text-white/80",children:i.dayLabel}),e.jsx("p",{className:"mt-1 text-[10px] text-white/38",children:m>0?`${m} entries`:"Not yet logged"})]},i.week)})}),e.jsx("div",{className:"space-y-5",children:fe.map(i=>{if(g!==i.week)return null;const m=W(i.week).length;return e.jsx("div",{className:"premium-shell","data-testid":`panel-phase-${i.week}`,children:e.jsxs("div",{className:"premium-core",children:[e.jsxs("div",{className:"flex flex-col gap-4 border-b border-white/8 p-6 md:flex-row md:items-start md:justify-between md:p-7",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[e.jsxs("span",{className:"portal-label",children:[i.phase," â ",i.dayLabel]}),e.jsx("span",{className:"rounded-full border border-white/10 bg-white/[0.04] px-3 py-1 text-[11px] font-bold text-white/60",children:i.type}),i.week===Y&&m>0&&e.jsx("span",{className:"rounded-full bg-[#ffd34e] px-3 py-1 text-[11px] font-black text-black",children:"Latest logged"})]}),e.jsx("h2",{className:"mt-3 text-3xl font-extrabold tracking-[-0.055em] text-white",children:i.title}),e.jsx("p",{className:"mt-2 max-w-[680px] text-sm leading-relaxed text-white/50",children:i.description}),!i.exercisesTbc&&e.jsxs("div",{className:"mt-4 rounded-2xl border border-[#ffd34e]/22 bg-[#ffd34e]/[0.07] p-4",children:[e.jsx("p",{className:"portal-label mb-2 text-[9px]",children:"How to log it"}),e.jsx("p",{className:"text-sm leading-relaxed text-white/62",children:i.instruction})]})]}),e.jsxs("div",{className:"rounded-2xl border border-white/10 bg-white/[0.035] px-4 py-3 text-right",children:[e.jsx("p",{className:"text-[10px] font-black uppercase tracking-[0.16em] text-white/35",children:"Logged"}),e.jsx("p",{className:"mt-1 text-2xl font-black text-[#ffd34e]",children:m})]})]}),i.exercisesTbc?e.jsxs("div",{className:"flex flex-col items-center gap-3 p-8 text-center",children:[e.jsx("span",{className:"rounded-full border border-white/10 bg-white/[0.035] px-4 py-1.5 text-[11px] font-black uppercase tracking-[0.14em] text-white/40",children:"Exercises TBC"}),e.jsx("p",{className:"max-w-[420px] text-sm leading-relaxed text-white/38",children:"Your coach will confirm the exercises for this test closer to the date. Check back here to log your results after the session."})]}):e.jsx("div",{className:"grid gap-3 p-5 md:grid-cols-2 md:p-7 xl:grid-cols-3",children:i.exercises.map(d=>{const f=E(d.id,i.week),T=D(f),V=f.saveStatus==="saved",L=f.saveStatus==="saving",k=f.saveStatus==="error";return e.jsxs("div",{className:"rounded-2xl border border-white/10 bg-black/22 p-4","data-testid":`result-card-${i.week}-${d.id}`,children:[e.jsxs("div",{className:"mb-4 flex items-start justify-between gap-3",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-extrabold text-white",children:d.name}),e.jsx("p",{className:"mt-1 text-xs leading-relaxed text-white/38",children:d.hint??d.unit??"Record result"})]}),e.jsx("div",{className:"min-w-[54px] text-right text-[10px] font-bold text-white/42",children:L?"Saving":V?"Saved":k?"Error":""})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[d.fields.includes("reps")&&e.jsxs("label",{className:"block",children:[e.jsx("span",{className:"mb-1 block text-[10px] font-black uppercase tracking-[0.14em] text-[#ffd34e]",children:"Score"}),e.jsx("input",{type:"number",min:0,value:f.reps,onChange:C=>v(d.id,i.week,{reps:C.target.value,saveStatus:"idle"}),onBlur:()=>A(d.id,i.week),className:"w-full rounded-xl border border-white/12 bg-white/[0.055] px-3 py-2 text-sm text-white outline-none",placeholder:"0","data-testid":`input-result-reps-${i.week}-${d.id}`})]}),d.fields.includes("weight")&&e.jsxs("label",{className:"block",children:[e.jsx("span",{className:"mb-1 block text-[10px] font-black uppercase tracking-[0.14em] text-[#ffd34e]",children:"Weight"}),e.jsx("input",{type:"text",value:f.weight,onChange:C=>v(d.id,i.week,{weight:C.target.value,saveStatus:"idle"}),onBlur:()=>A(d.id,i.week),className:"w-full rounded-xl border border-white/12 bg-white/[0.055] px-3 py-2 text-sm text-white outline-none",placeholder:"kg","data-testid":`input-result-weight-${i.week}-${d.id}`})]}),d.fields.includes("breaks")&&e.jsxs("label",{className:"block",children:[e.jsx("span",{className:"mb-1 block text-[10px] font-black uppercase tracking-[0.14em] text-[#ffd34e]",children:"Breaks"}),e.jsx("input",{type:"number",min:0,value:f.breaks,onChange:C=>v(d.id,i.week,{breaks:C.target.value,saveStatus:"idle"}),onBlur:()=>A(d.id,i.week),className:"w-full rounded-xl border border-white/12 bg-white/[0.055] px-3 py-2 text-sm text-white outline-none",placeholder:"0","data-testid":`input-result-breaks-${i.week}-${d.id}`})]}),d.fields.includes("regression")&&e.jsxs("label",{className:"col-span-2 block",children:[e.jsx("span",{className:"mb-1 block text-[10px] font-black uppercase tracking-[0.14em] text-[#ffd34e]",children:"Scaling / Notes"}),e.jsx("input",{type:"text",value:f.regression,onChange:C=>v(d.id,i.week,{regression:C.target.value,saveStatus:"idle"}),onBlur:()=>A(d.id,i.week),className:"w-full rounded-xl border border-white/12 bg-white/[0.055] px-3 py-2 text-sm text-white outline-none",placeholder:"e.g. band assisted","data-testid":`input-result-regression-${i.week}-${d.id}`})]})]}),T&&e.jsx("button",{type:"button",onClick:()=>A(d.id,i.week),disabled:L,className:"mt-4 inline-flex items-center gap-2 rounded-full bg-[#ffd34e] px-4 py-2 text-xs font-black text-black transition-transform duration-700 ease-[
1049cubic-bezier(0.32,0.72,0,1)] hover:translate-y-[-1px] disabled:opacity-50","data-testid":`button-save-result-${i.week}-${d.id}`,children:L?"Saving...":V?"Saved":"Save result"})]},`${i.week}-${d.id}`)})})]})},i.week)})}),e.jsx("div",{className:"mt-6 rounded-3xl border border-white/10 bg-white/[0.035] p-5",children:e.jsxs("div",{className:"flex flex-col gap-3 md:flex-row md:items-center md:justify-between",children:[e.jsxs("div",{children:[e.jsx("p",{className:"portal-label mb-2",children:"Benchmark Trail"}),e.jsx("p",{className:"text-sm text-white/48",children:"Your old benchmark records still save against the same exercise log system."})]}),e.jsx("div",{className:"flex flex-wrap gap-2",children:Pa.map(i=>{const m=y.filter(d=>d.exercise===i.id&&d.reps!=null).reduce((d,f)=>d==null||(f.reps??0)>d?f.reps:d,null);return e.jsxs("span",{className:"rounded-full border border-white/10 bg-black/20 px-3 py-2 text-xs text-white/55",children:[i.name,": ",e.jsx("strong",{className:"text-[#ffd34e]",children:m??"-"})]},i.id)})})]})})]})}const jt=[{key:"home",label:"Dashboard",icon:ka},{key:"goals",label:"Goals",icon:$e},{key:"nutrition",label:"Nutrition",icon:me},{key:"programme",label:"My Programme",icon:ze},{key:"progress",label:"Fitness Tests",icon:ye},{key:"group-pt",label:"Book Group PT",icon:Ke},{key:"files",label:"My Files",icon:Ve},{key:"settings",label:"Settings",icon:Na}];function ie({id:a,text:n}){const{isDismissed:p,dismiss:u}=Fe();return p(`portal-intro-${a}`)?null:e.jsxs("div",{className:"portal-section-intro",style:{background:"rgba(255,211,78,0.05)",display:"flex",alignItems:"flex-start",gap:10},"data-testid":`portal-intro-${a}`,children:[e.jsx(La,{size:13,style:{color:`${s}80`,flexShrink:0,marginTop:2}}),e.jsx("p",{style:{flex:1,color:"rgba(255,255,255,0.6)",fontSize:13,lineHeight:1.6,fontFamily:"'Geist', system-ui, sans-serif"},children:n}),e.jsx("button",{onClick:()=>u(`portal-intro-${a}`),style:{color:"rgba(255,255,255,0.25)",background:"none",border:"none",cursor:"pointer",flexShrink:0,padding:2,display:"flex",alignItems:"center"},"data-testid":`dismiss-portal-intro-${a}`,"aria-label":"Dismiss",children:e.jsx(ne,{size:13})})]})}function qa({open:a,onClose:n,onResetTips:p}){if(!a)return null;const u=[{section:"Dashboard",desc:"Your daily home â challenge timeline, upcoming classes, quick stats, and a motivational quote."},{section:"Goals",desc:"Set your primary goals, body stats, and weekly session target. Your coach uses these to build your personalised programme and nutrition plan."},{section:"Nutrition",desc:"Your personalised macro targets and AI-generated meal ideas tailored to your goals and dietary preferences."},{section:"My Programme",desc:"Your recommended 6-week class plan, built from your goals, metrics, and nutrition guide. Use it to book the right Ludus classes each week."},{section:"Fitness Tests",desc:"Log your results from the Opening, Mid-Challenge, and Final fitness tests. Exercises are confirmed by your coach before each test."},{section:"My Files",desc:"Upload and view your progress photos and body scan PDFs â stored privately."},{section:"Settings",desc:"Manage your privacy settings including social media consent."}];return e.jsxs("div",{style:{position:"fixed",inset:0,zIndex:100,display:"flex",justifyContent:"flex-end"},"data-testid":"portal-help-panel-overlay",children:[e.jsx("div",{style:{position:"fixed",inset:0,background:"rgba(0,0,0,0.6)"},onClick:n}),e.jsxs("div",{style:{position:"relative",zIndex:1,width:300,height:"100%",background:"#0e0c0a",borderLeft:"1px solid rgba(255,255,255,0.08)",padding:"24px 20px",overflowY:"auto"},"data-testid":"portal-help-panel",children:[e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:20},children:[e.jsx("p",{className:"portal-heading text-lg",style:{color:s},children:"PORTAL GUIDE"}),e.jsx("button",{onClick:n,style:{color:"rgba(255,255,255,0.5)",background:"none",border:"none",cursor:"pointer",padding:4,display:"flex"},"data-testid":"button-portal-help-close","aria-label":"Close guide",children:e.jsx(ne,{size:18})})]}),u.map(({section:g,desc:x})=>e.jsxs("div",{style:{marginBottom:18},children:[e.jsx("p",{style:{color:s,fontSize:11,fontWeight:700,textTransform:"uppercase",letterSpacing:"0.12em",marginBottom:4,fontFamily:"'Geist', system-ui, sans-serif"},children:g}),e.jsx("p",{style:{color:"rgba(255,255,255,0.55)",fontSize:12,lineHeight:1.6,fontFamily:"'Geist', system-ui, sans-serif"},children:x})]},g)),e.jsx("div",{style:{borderTop:"1px solid rgba(255,255,255,0.06)",paddingTop:16,marginTop:8},children:e.jsx("button",{onClick:()=>{p(),n()},style:{background:"none",border:"none",cursor:"pointer",color:"rgba(255,255,255,0.35)",fontSize:11,fontFamily:"'Geist', system-ui, sans-serif",padding:0},"data-testid":"button-portal-reset-tips",children:"⺠Show all section tips again"})})]})]})}const Ua={goals:"goals",programme:"programme"};function Ka({member:a,activeSection:n,onNavigate:p,onLogout:u,sidebarStatus:g}){return e.jsxs("div",{className:"portal-sidebar-inner",children:[e.jsxs("div",{className:"portal-sidebar-brand",children:[e.jsx("img",{src:"/ludus-magnus-logo.png",alt:"Ludus Magnus",className:"portal-sidebar-logo","data-testid":"portal-sidebar-logo"}),e.jsxs("div",{className:"portal-sidebar-brand-copy",children:[e.jsx("strong",{children:"Forge 40 portal"}),e.jsx("span",{children:"Challenge hub"})]})]}),e.jsxs("div",{className:"portal-sidebar-member",children:[e.jsx("span",{className:"portal-sidebar-avatar","aria-hidden":"true",children:a.firstName.slice(0,1).toUpperCase()}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("p",{children:"Welcome back"}),e.jsx("strong",{"data-testid":"sidebar-member-name",children:a.firstName})]}),e.jsx("span",{className:"portal-sidebar-online","aria-label":"Forge 40 portal online"})]}),e.jsx("p",{className:"portal-sidebar-nav-label",children:"Your training"}),e.jsx("nav",{className:"flex flex-col gap-1 flex-1","data-testid":"sidebar-nav",children:jt.map(x=>{const N=x.icon,h=Ua[x.key],y=h!==void 0&&g[h];return e.jsxs("button",{onClick:()=>p(x.key),"aria-current":n===x.key?"page":void 0,className:`sidebar-nav-item${n===x.key?" active":""}`,"data-testid":`sidebar-nav-${x.key}`,children:[e.jsx("span",{className:"sidebar-nav-icon",children:e.jsx(N,{size:17})}),e.jsx("span",{style:{flex:1},children:x.label}),y&&e.jsx("span",{className:"sidebar-status-dot","data-testid":`sidebar-status-${x.key}`,"aria-label":"Data saved",children:"â"})]},x.key)})}),e.jsx("div",{className:"portal-sidebar-footer",children:e.jsxs("button",{onClick:u,className:"sidebar-nav-item","data-testid":"sidebar-logout",children:[e.jsx("span",{className:"sidebar-nav-icon",children:e.jsx(yt,{size:17})}),"Log out"]})}),e.jsx("div",{className:"portal-sidebar-copyright","data-testid":"sidebar-copyright",children:e.jsxs("p",{children:["© ",new Date().getFullYear()," Forged by Joe"]})})]})}function _a({onHamburger:a,sidebarOpen:n,onLogout:p,totalPoints:u,onHelp:g,activeSection:x,memberName:N}){const h=jt.find(y=>y.key===x)?.label??"Dashboard";return e.jsxs("header",{className:"portal-topbar",children:[e.jsxs("div",{className:"portal-topbar-context",children:[e.jsx("button",{onClick:a,className:"hamburger-btn","aria-label":"Toggle navigation","aria-controls":"portal-navigation","aria-expanded":n,"data-testid":"button-hamburger",children:e.jsxs("svg",{width:"16",height:"12",viewBox:"0 0 16 12",fill:"none",children:[e.jsx("rect",{y:"0",width:"16",height:"2",rx:"1",fill:"rgba(255,255,255,0.6)"}),e.jsx("rect",{y:"5",width:"12",height:"2",rx:"1",fill:"rgba(255,255,255,0.6)"}),e.jsx("rect",{y:"10",width:"16",height:"2",rx:"1",fill:"rgba(255,255,255,0.6)"})]})}),e.jsxs("div",{className:"portal-topbar-title",children:[e.jsxs("p",{children:[N,"âs Forge 40"]}),e.jsx("strong",{children:h})]})]}),e.jsxs("div",{className:"portal-topbar-actions",children:[u!==void 0&&e.jsxs("div",{className:"portal-topbar-points","data-testid":"badge-header-points",children:[e.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none","aria-hidden":"true",children:e.jsx("path",{d:"M6 1L7.545 4.13L11 4.635L8.5 7.07L9.09 10.5L6 8.885L2.91 10.5L3.5 7.07L1 4.635L4.455 4.13L6 1Z",fill:s})}),e.jsx("span",{className:"portal-heading text-sm leading-none tabular-nums",style:{color:s},"data-testid":"text-header-points-total",children:u.toLocaleStr
1049ing()}),e.jsx("span",{className:"portal-topbar-points-label",children:"points"})]}),g&&e.jsx("button",{onClick:g,className:"portal-topbar-icon-btn","data-testid":"button-portal-help","aria-label":"Open portal guide",children:e.jsx(wt,{size:17})}),e.jsxs("button",{onClick:p,className:"portal-topbar-logout","aria-label":"Log out","data-testid":"button-logout",children:[e.jsx(yt,{size:16}),e.jsx("span",{children:"Log out"})]})]})]})}function He({children:a,className:n="",coreClassName:p="",testId:u,style:g}){return e.jsx("div",{className:`premium-shell ${n}`,"data-testid":u,style:g,children:e.jsx("div",{className:`premium-core ${p}`,children:a})})}function Qa({member:a,onNavigate:n,currentWeek:p,currentDay:u,challengeProgressPercent:g,pointsTotal:x,pointsThisWeek:N,todayClasses:h,todayClassesLoading:y,programmeWeekProgress:w,programmeReady:M,programmeLoading:E}){const v=le(),[A,W]=t.useState(null),{data:D}=U({queryKey:["/api/forged-portal/scan-config"],queryFn:async()=>{const k=await fetch("/api/forged-portal/scan-config",{credentials:"include"});if(!k.ok)throw new Error("Failed to load scan schedule");return k.json()}}),{data:H,isLoading:I}=U({queryKey:["/api/forged-portal/booking"],queryFn:async()=>{const k=await fetch("/api/forged-portal/booking",{credentials:"include"});return k.ok?await k.json()??null:null}}),{data:Y=[],isLoading:i}=U({queryKey:["/api/book-scan/slots"],queryFn:async()=>{const k=await fetch("/api/book-scan/slots");if(!k.ok)throw new Error("Failed to load slots");return k.json()},enabled:H===null}),m=ae({mutationFn:async k=>{const C=await fetch("/api/forged-portal/book",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({slotTime:k})}),G=await C.json();if(!C.ok)throw new Error(G.error||"Failed to book");return G},onSuccess:()=>{W(null),v.invalidateQueries({queryKey:["/api/forged-portal/booking"]}),v.invalidateQueries({queryKey:["/api/book-scan/slots"]})}}),d=ae({mutationFn:async k=>{if(!(await fetch(`/api/forged-portal/booking/${k}/cancel`,{method:"PATCH",credentials:"include"})).ok)throw new Error("Failed to cancel")},onSuccess:()=>{v.invalidateQueries({queryKey:["/api/forged-portal/booking"]}),v.invalidateQueries({queryKey:["/api/book-scan/slots"]})}}),f=k=>{const[C,G]=k.split(":"),b=parseInt(C),c=b>=12?"PM":"AM";return`${b>12?b-12:b}:${G} ${c}`},T=Math.max(p,1),V=u>0?`Day ${u}`:"Day 1",L=T===4?{label:"Next weekly challenge",title:"Midpoint retest and scan check-in.",detail:"Week 4 is your checkpoint: record the challenge result first, then upload or book your scan.",action:"Open weekly results",section:"progress"}:T>=6?{label:"Final challenge step",title:"Final results, photos, and Ludus Games.",detail:"Log the final challenge scores, upload your final proof, and check Ludus Games details.",action:"Log final results",section:"progress"}:M?{label:"This week's next step",title:"Book your recommended classes.",detail:"Check the class mix for this week, book in, then come back to log challenge results after class.",action:"Open programme",section:"programme"}:{label:"Set-up next step",title:"Finish goals and metrics to unlock the plan.",detail:"Your programme and nutrition guide are built from those details.",action:"Open goals",section:"goals"};return e.jsxs("div",{className:"relative portal-section-body",children:[e.jsxs(re.section,{className:"dashboard-photo-panel relative mb-6 min-h-[450px] overflow-hidden rounded-[34px] border border-white/14 bg-[#0a0a0a] shadow-[0_30px_90px_rgba(0,0,0,0.42)]",initial:{opacity:0,y:18},animate:{opacity:1,y:0},transition:{ease:[.16,1,.3,1],duration:.72},children:[e.jsx("div",{className:"dashboard-photo","aria-hidden":"true"}),e.jsxs("div",{className:"relative z-10 flex min-h-[450px] flex-col p-5 sm:p-7 lg:p-9",children:[e.jsxs("div",{className:"dashboard-kicker-row",children:[e.jsx("p",{className:"portal-label",children:"Member dashboard"}),e.jsxs("span",{className:"dashboard-week-pill",children:["Week ",T," of 6"]})]}),e.jsxs("div",{className:"mt-8 max-w-[720px] lg:mt-10",children:[e.jsxs("h1",{className:"text-[54px] font-semibold uppercase leading-[0.86] tracking-[-0.045em] text-white sm:text-[72px] lg:text-[92px]",style:{fontFamily:"'Zuume', 'Bebas Neue', sans-serif"},"data-testid":"text-dashboard-welcome",children:["Morning,",e.jsx("br",{}),e.jsxs("span",{style:{color:s},children:[a.firstName,"."]})]}),e.jsx("p",{className:"mt-5 max-w-xl text-sm leading-relaxed text-white/70 sm:text-base",children:"Your next move is clear. Keep your training, progress, points, and plan moving in one place."})]}),e.jsxs("div",{className:"mt-auto grid gap-3 pt-8 xl:grid-cols-[minmax(0,1fr)_auto] xl:items-end",children:[e.jsxs("div",{className:"dashboard-hero-stat p-5 sm:p-6",children:[e.jsxs("div",{className:"focus-kicker",children:[e.jsx("span",{className:"focus-kicker-icon",children:e.jsx(Me,{size:14})}),e.jsx("p",{className:"portal-label",children:L.label})]}),e.jsx("h2",{className:"mt-4 max-w-xl text-[27px] font-extrabold uppercase leading-[0.98] tracking-[-0.035em] text-white sm:text-[34px]",children:L.title}),e.jsx("p",{className:"mt-3 max-w-xl text-sm leading-relaxed text-white/62",children:L.detail}),e.jsxs("button",{type:"button",onClick:()=>n(L.section),className:"premium-pill mt-5","data-testid":"button-dashboard-next-step",children:[e.jsx("span",{children:L.action}),e.jsx("span",{className:"premium-pill-icon","aria-hidden":"true",children:"â"})]})]}),e.jsx(re.div,{className:"dashboard-mini-rail grid grid-cols-3 overflow-hidden rounded-[24px] border border-white/14 backdrop-blur-xl xl:w-[420px]",variants:{show:{transition:{staggerChildren:.07}}},initial:"hidden",animate:"show",children:[{label:"Progress",value:V,detail:`${Math.round(g)}% done`}
1049,{label:"Points",value:x.toLocaleString(),detail:N>0?`+${N} this week`:"Start scoring"},{label:"Plan",value:M?"Ready":"Set up",detail:w?`${w.completed}/${w.total} logged`:"Your programme"}].map((k,C)=>e.jsxs(re.div,{className:`min-w-0 p-4 sm:p-5 ${C>0?"border-l border-white/10":""}`,variants:{hidden:{opacity:0,y:10},show:{opacity:1,y:0,transition:{ease:[.32,.72,0,1],duration:.4}}},children:[e.jsx("p",{className:"portal-label text-[8px]",children:k.label}),e.jsx("p",{className:"mt-3 truncate text-xl font-semibold tracking-[-0.04em] text-white sm:text-2xl",children:k.value}),e.jsx("p",{className:"mt-1 truncate text-[10px] text-white/48 sm:text-xs",children:k.detail})]},k.label))})]})]})]}),e.jsxs(re.div,{className:"grid grid-cols-12 gap-5 2xl:gap-6",variants:{show:{transition:{staggerChildren:.1}}},initial:"hidden",animate:"show",children:[e.jsx(re.div,{className:"col-span-12 xl:col-span-5 min-w-0",variants:{hidden:{opacity:0,y:16},show:{opacity:1,y:0,transition:{ease:[.32,.72,0,1],duration:.45}}},children:e.jsxs(He,{className:"h-full",coreClassName:"p-5 sm:p-6 lg:p-7 flex flex-col h-full",style:{borderColor:`rgba(${K},0.22)`},children:[e.jsx("div",{className:"portal-label mb-5",style:{color:J},children:"Today's Classes"}),e.jsxs("div",{className:"flex flex-1 items-start gap-3 sm:gap-4",children:[e.jsx("div",{className:"flex h-12 w-12 sm:h-14 sm:w-14 shrink-0 items-center justify-center rounded-2xl border text-white shadow-[inset_0_1px_0_rgba(255,255,255,0.12)]",style:{borderColor:`rgba(${K},0.42)`,background:`rgba(${K},0.08)`},children:e.jsx(vt,{size:23})}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("h3",{className:"text-[24px] font-semibold tracking-[-0.045em] text-white",children:y?"Loading timetable":h.length>0?`${h.length} class${h.length===1?"":"es"} today`:"No classes listed today"}),e.jsxs("div",{className:"mt-3 space-y-2",children:[h.slice(0,4).map(k=>e.jsxs("p",{className:"flex flex-wrap items-center gap-x-2 gap-y-1 text-sm text-white/58",children:[e.jsx(Ca,{size:14,className:"shrink-0",style:{color:J}}),e.jsx("span",{className:"font-semibold text-white/82",children:k.className}),e.jsxs("span",{children:[k.startTime," - ",k.endTime]})]},k.id)),!y&&h.length===0&&e.jsx("p",{className:"text-sm leading-relaxed text-white/48",children:"Check the booking timetable for the next available Ludus class."})]})]})]}),e.jsxs("button",{type:"button",onClick:()=>window.location.assign("/member-portal"),className:"mt-8 flex w-full items-center justify-between rounded-full border px-5 py-3 text-sm font-semibold text-white transition-transform duration-700 ease-[cubic-bezier(0.32,0.72,0,1)] hover:translate-y-[-1px]",style:{borderColor:`rgba(${K},0.32)`,background:`rgba(${K},0.08)`},"data-testid":"button-view-schedule",children:["Open member bookings ",e.jsx("span",{style:{color:J},children:"â"})]})]})}),e.jsx(re.div,{className:"col-span-12 xl:col-span-7 min-w-0",variants:{hidden:{opacity:0,y:16},show:{opacity:1,y:0,transition:{ease:[.32,.72,0,1],duration:.45}}},children:e.jsx(He,{className:"h-full",coreClassName:"p-5 sm:p-6 lg:p-7 flex flex-col justify-center h-full",children:e.jsxs("div",{className:"flex flex-col gap-5 md:flex-row md:items-center md:justify-between",children:[e.jsxs("div",{children:[e.jsx("div",{className:"portal-label mb-3",children:"My Programme"}),e.jsx("h3",{className:"text-[24px] font-semibold tracking-[-0.055em] text-white",children:M?w?`Week ${w.week} recommended plan is active`:"Your recommended plan is ready":E?"Building your recommended plan":"Set your goals to unlock your plan"}),e.jsx("p",{className:"mt-2 text-sm text-white/50",children:w?`Week ${w.week} class recommendations are ready`:"Built from your goals, metrics, weekly training target, and nutrition guide."})]}),e.jsx("button",{onClick:()=>n("programme"),className:"shrink-0 rounded-full border border-white/12 bg-white/[0.04] px-5 py-3 text-sm font-semibold text-white transition-transform duration-700 ease-[cubic-bezier(0.32,0.72,0,1)] hover:translate-y-[-1px]",children:"Open programme"})]})})})]}),e.jsx(re.div,{className:"mt-5",initial:{opacity:0,y:16}
1049,animate:{opacity:1,y:0,transition:{ease:[.32,.72,0,1],duration:.45,delay:.25}},children:e.jsxs(He,{coreClassName:"p-5 sm:p-6 lg:p-7",children:[e.jsxs("div",{className:"mb-6 flex flex-col gap-4 sm:flex-row sm:items-start sm:justify-between",children:[e.jsxs("div",{children:[e.jsx("div",{className:"portal-label mb-3",style:{color:J},children:"Final Body Scan"}),e.jsx("h3",{className:"text-[24px] font-semibold tracking-[-0.045em] text-white",children:I?"Loading your bookingâ¦":H?"Your scan slot is confirmed":"Book your final body scan"}),e.jsx("p",{className:"mt-1.5 text-sm text-white/50",children:D?`${D.scanDate} · ${D.scanStart} â ${D.scanEnd} · ${D.slotMinutes}-minute slots`:"Saturday 12th September 2026 · 7:00 AM â 9:00 AM · 6-minute slots"})]}),H&&e.jsxs("div",{className:"flex shrink-0 items-center gap-3 rounded-2xl border px-5 py-3",style:{borderColor:`rgba(${K},0.35)`,background:`rgba(${K},0.07)`},children:[e.jsx(Oe,{size:20,weight:"fill",style:{color:J}}),e.jsxs("div",{children:[e.jsx("p",{className:"text-[10px] uppercase tracking-widest text-white/45",children:"Booked for"}),e.jsx("p",{className:"text-xl font-semibold tabular-nums text-white",style:{fontFamily:"'Geist Mono', monospace"},children:f(H.slotTime)})]})]})]}),I?null:H?e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("p",{className:"text-sm text-white/45",children:"Need to change your time?"}),e.jsx("button",{onClick:()=>d.mutate(H.id),disabled:d.isPending,className:"text-sm text-white/40 underline underline-offset-2 transition-colors hover:text-white/70","data-testid":"button-cancel-scan-booking",children:d.isPending?"Cancellingâ¦":"Cancel booking"})]}):i?e.jsx("p",{className:"text-sm text-white/35",children:"Loading available slotsâ¦"}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"grid grid-cols-3 gap-2 sm:grid-cols-6 xl:grid-cols-9",children:Y.map(k=>e.jsxs("button",{disabled:k.booked,onClick:()=>W(k.time===A?null:k.time),className:`rounded-xl border py-2.5 text-xs font-semibold transition-all ${k.booked?"cursor-not-allowed border-white/5 bg-white/[0.02] text-white/20":A===k.time?"border-white/30 bg-white/[0.12] text-white":"border-white/10 bg-white/[0.04] text-white/60 hover:border-white/20 hover:text-white/90"}`,"data-testid":`slot-${k.time}`,children:[f(k.time),k.booked&&e.jsx("span",{className:"mt-0.5 block text-[9px] text-white/25",children:"Taken"})]},k.time))}),A&&e.jsxs("div",{className:"mt-5 flex flex-wrap items-center gap-4 border-t border-white/8 pt-5",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-[10px] uppercase tracking-widest text-white/45",children:"Selected"}),e.jsx("p",{className:"text-xl font-semibold text-white",style:{fontFamily:"'Geist Mono', monospace"},children:f(A)})]}),e.jsx("button",{onClick:()=>m.mutate(A),disabled:m.isPending,className:"ml-auto rounded-full border px-6 py-3 text-sm font-semibold text-white transition-transform duration-700 ease-[cubic-bezier(0.32,0.72,0,1)] hover:translate-y-[-1px]",style:{borderColor:`rgba(${K},0.35)`,background:`rgba(${K},0.08)`},"data-testid":"button-confirm-scan-booking",children:m.isPending?"Bookingâ¦":"Confirm this slot"})]}),m.isError&&e.jsx("p",{className:"mt-3 text-sm text-red-400",children:m.error.message})]})]})})]})}function Ja({member:a,onNavigate:n,programme:p,programmeLoading:u}){const{data:g}=U({queryKey:["/api/portal/me/points"],queryFn:async()=>{const d=await B("/api/portal/me/points");return d.ok?d.json():{total:0,dailyBreakdown:[]}}}),x=(()=>{const d=a.challengeStartDate??"2026-04-20",f=ge(),T=new Date(d+"T00:00:00Z").getTime(),V=new Date(f+"T00:00:00Z").getTime(),L=Math.floor((V-T)/(1e3*60*60*24));return L<0?0:Math.min(6,Math.floor(L/7)+1)})(),N=(()=>{const d=a.challengeStartDate??"2026-04-20",f=ge(),T=new Date(d+"T00:00:00Z").getTime(),V=new Date(f+"T00:00:00Z").getTime(),L=Math.floor((V-T)/(1e3*60*60*24));return L<0?0:Math.min(40,L+1)})(),h=(()=>
1049{if(!p||p.pending||!ce(p.content))return 0;const d=p.approvedAt?new Date(p.approvedAt).toISOString().split("T")[0]:a.challengeStartDate??"2026-04-20",f=ge(),T=new Date(d+"T00:00:00Z").getTime(),V=new Date(f+"T00:00:00Z").getTime(),L=Math.floor((V-T)/(1e3*60*60*24));return L<0?1:Math.min(6,Math.floor(L/7)+1)})(),y=p&&!p.pending?p.id:null,w=!!(p&&!p.pending&&ce(p.content)),M=U({queryKey:["/api/forged-portal/programme/exercise-logs",y],queryFn:async()=>{if(!y)return[];const d=await B(`/api/forged-portal/programme/exercise-logs?programmeId=${y}`);return d.ok?d.json():[]},enabled:w&&!!y}),E=(()=>{if(!p||p.pending||!ce(p.content)||h<1)return null;const d=p.content.weeks.find(V=>V.week===h);if(!d)return null;const f=d.days.reduce((V,L)=>V+L.exercises.length,0),T=(M.data??[]).filter(V=>V.weekNumber===h&&V.completed).length;return{week:h,completed:T,total:f}})(),{data:v=[],isLoading:A}=U({queryKey:["/api/schedule"],queryFn:async()=>{const d=await B("/api/schedule",{credentials:"include"});return d.ok?d.json():[]}}),W=v.filter(d=>d.isActive&&d.dayOfWeek===Ye()).slice().sort((d,f)=>d.startTime.localeCompare(f.startTime)),{weekStart:D,weekEnd:H}=Zt(),Y=g?.dailyBreakdown.filter(d=>d.date>=D&&d.date<=H)?.reduce((d,f)=>d+(f.total??0),0)??0,i=N<=0?0:Math.min(100,N/40*100),m=!!p&&!p.pending;return e.jsx(Qa,{member:a,onNavigate:n,currentWeek:x,currentDay:N,challengeProgressPercent:i,pointsTotal:g?.total??0,pointsThisWeek:Y,todayClasses:W,todayClassesLoading:A,programmeWeekProgress:E,programmeReady:m,programmeLoading:u})}const Xa=["No Restrictions","Vegetarian","Vegan","Gluten-Free","Dairy-Free","Halal","Kosher","Low-Carb","Low-Fat","Nut-Free"];function e0({nutritionPlan:a}){const{toast:n}=se(),p=le(),[u,g]=t.useState("suggestions"),[x,N]=t.useState(null),[h,y]=t.useState(!1),[w,M]=t.useState([]),{data:E}=U({queryKey:["/api/forged-portal/goals"],queryFn:async()=>{const l=await(await B("/api/forged-portal/goals")).json();return l||null}});t.useEffect(()=>{E?M(E.dietaryPreferences??a?.dietaryPreferences??[]):a?.dietaryPreferences&&M(a.dietaryPreferences)},[E,a]);const v=ae({mutationFn:async()=>{const l=await(await B("/api/forged-portal/goals")).json(),o=await B("/api/forged-portal/goals",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({primaryGoal:l?.primaryGoal??[],currentWeight:l?.currentWeight??null,goalWeight:l?.goalWeight??null,weeklySessionsTarget:l?.weeklySessionsTarget??4,personalStatement:l?.personalStatement??null,sex:l?.sex??null,age:l?.age??null,height:l?.height??null,activityLevel:l?.activityLevel??null,dailyMovement:l?.dailyMovement??null,dietaryPreferences:w})});if(!o.ok){const F=await o.json().catch(()=>({}));throw new Error(F.error??"Failed to save preferences")}const S=await B("/api/forged-portal/nutrition/meal-suggestions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({manual:!0})}),Z=await S.json();if(!S.ok)throw new Error(Z.error??"Failed to rebuild suggestions");return Z},onSuccess:r=>{p.setQueryData(["/api/forged-portal/nutrition/meal-suggestions"],r),p.invalidateQueries({queryKey:["/api/forged-portal/goals"]}),p.invalidateQueries({queryKey:["/api/forged-portal/nutrition"]}),y(!1),n({title:"Suggestions rebuilt!",description:"Your meal ideas reflect your updated preferences."})},onError:r=>n({title:"Error",description:r.message,variant:"destructive"})}),A=a?.calculatorExtras?.calcResult,W=A?.mealSplit,D=[{key:"breakfast",label:"Breakfast"},{key:"lunch",label:"Lunch"},{key:"snack",label:"Snack"},{key:"dinner",label:"Dinner"}],{data:H,isLoading:I,isError:Y,error:i}=U({queryKey:["/api/forged-portal/nutrition/meal-suggestions"],queryFn:async()=>{const r=await B("/api/forged-portal/nutrition/meal-suggestions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({manual:!1})}),l=await r.json();if(!r.ok)throw new Error(l.error??"Failed to load meal suggestions");return l},enabled:!!a&&!a.pending,staleTime:300*1e3}),{data:m=[],isLoading:d}=U({queryKey:["/api/forged-portal/saved-meals"],queryFn:async()=>{const r=await B("/api/forged-portal/saved-meals"),l=await r.json();if(!r.ok)throw new Error(l.error??"Failed to load saved meals");return l},enabled:!a?.pending}),f=new Set(m.map(r=>r.name)),T=ae({mutationFn:async()=>{const r=await B("/api/forged-portal/nutrition/meal-suggestions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({manual:!0})}),l=await r.json();if(!r.ok)throw new Error(l.error??"Failed to refresh meal suggestions");return l},onSuccess:r=>{p.setQueryData(["/api/forged-portal/nutrition/meal-suggestions"],r),n({title:"Refreshed!",description:"Your meal suggestions have been updated."})},onError:r=>n({title:"Error",description:r.message,variant:"destructive"})}),V=ae({mutationFn:async({slot:r,name:l,description:o})=>{const S=await B("/api/forged-portal/saved-meals",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({slot:r,name:l,description:o})}),Z=await S.json();if(!S.ok)throw new Error(Z.error??"Failed to save meal");return Z},onSuccess:()=>{p.invalidateQueries({queryKey:["/api/forged-portal/saved-meals"]}),n({title:"Saved!",description:"Meal added to your favourites."})},onError:r=>n({title:"Error",description:r.message,variant:"destructive"}),onSettled:()=>N(null)}),L=ae({mutationFn:async r=>{const l=await B(`/api/forged-portal/saved-meals/${r}/archive`,{method:"PATCH"});if(!l.ok){const o=await l.json();throw new Error(o.error??"Failed to remove meal")}},onSuccess:()=>{p.invalidateQueries({queryKey:["/api/forged-portal/saved-meals"]}),n({title:"Removed",description:"Meal removed from your favourites."})},onError:r=>n({title:"Error",description:r.message,variant:"destructive"})});if(a?.pending)return e.jsxs("div",{className:"section-page-bg portal-content portal-section-body","data-testid":"section-nutrition-
1049pending",children:[e.jsx("style",{children:Te()}),e.jsxs("div",{className:"max-w-2xl mx-auto flex flex-col items-center justify-center min-h-[60vh] text-center gap-6",children:[e.jsx("div",{className:"w-16 h-16 rounded-full flex items-center justify-center",style:{background:"rgba(255,211,78,0.12)",border:"1px solid rgba(255,211,78,0.25)"},children:e.jsx(me,{className:"w-7 h-7",style:{color:"#FFD34E"}})}),e.jsxs("div",{children:[e.jsx("h2",{className:"portal-heading text-3xl mb-3",style:{color:"#FFD34E"},"data-testid":"text-nutrition-pending-title",children:"YOUR NUTRITION PLAN IS BEING PREPARED"}),e.jsx("p",{className:"text-white/60 text-base leading-relaxed","data-testid":"text-nutrition-pending-message",children:a.message??"Your coach is calculating your personalised macro targets based on your goals, body stats, and dietary preferences."}),e.jsx("p",{className:"text-white/40 text-sm mt-4 max-w-md mx-auto leading-relaxed",children:"Make sure your Goals profile is fully filled in â your daily calorie and protein targets are calculated from your body stats, training frequency, and primary goals. You'll be notified once your plan is ready."})]})]})]});const k=(r,l)=>{const o=`${r}:${l.name}`;N(o),V.mutate({slot:r,name:l.name,description:l.description})},C={breakfast:"Breakfast",lunch:"Lunch",snack:"Snack",dinner:"Dinner"},G=typeof A?.hydrationLitres=="number"?`${A.hydrationLitres.toFixed(1)}L`:"2.5L",b=a&&!a.pending?a.proteinGrams+a.carbsGrams+a.fatGrams:0,c=a&&!a.pending?[{label:"Protein",value:a.proteinGrams,unit:"g",color:Fa},{label:"Carbs",value:a.carbsGrams,unit:"g",color:$a},{label:"Fat",value:a.fatGrams,unit:"g",color:za}]:[];return e.jsxs("div",{className:"portal-content portal-section-body",children:[e.jsxs("div",{className:"mb-7 grid gap-4 lg:grid-cols-[1.25fr_0.75fr]",children:[e.jsx("div",{className:"premium-shell",children:e.jsx("div",{className:"premium-core p-5 sm:p-6 lg:p-7",children:e.jsxs("div",{className:"flex flex-col gap-5 md:flex-row md:items-start md:justify-between",children:[e.jsxs("div",{children:[e.jsx("p",{className:"portal-label mb-4",children:"Nutrition Guide"}),e.jsx("h2",{className:"max-w-[720px] text-[34px] font-extrabold leading-[1.12] tracking-[-0.045em] text-white md:text-[54px]","data-testid":"text-section-my-nutrition",children:"Fuel the training, not the guesswork."}),e.jsx("p",{className:"mt-5 max-w-[660px] text-sm leading-relaxed text-white/55 md:text-base",children:"Your targets are built from your goals, metrics, activity level, and weekly class target. Use the meal ideas as practical options, then save the ones you would actually eat."})]}),a&&u==="suggestions"&&e.jsxs("button",{onClick:()=>T.mutate(),disabled:T.isPending||I,className:"inline-flex shrink-0 items-center justify-center gap-2 rounded-full border border-white/12 bg-white/[0.04] px-5 py-3 text-sm font-bold text-[#ffd34e] transition-transform duration-700 ease-[cubic-bezier(0.32,0.72,0,1)] hover:translate-y-[-1px] disabled:opacity-50","data-testid":"button-refresh-meal-suggestions",title:"Refresh meal suggestions",children:[e.jsx(Ea,{size:14,className:T.isPending?"animate-spin":""}),"Refresh meals"]})]})})}),e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsx("div",{className:"premium-shell col-span-2",children:e.jsxs("div",{className:"premium-core p-5",children:[e.jsx("p",{className:"portal-label mb-2 text-[9px]",children:"Daily Target"}),e.jsxs("p",{className:"text-4xl font-extrabold tracking-[-0.06em] text-white",children:[a&&!a.pending?a.dailyCalories:"-",e.jsx("span",{className:"ml-2 text-sm font-bold tracking-[-0.02em] text-white/42",children:"cal"})]})]})}),e.jsx("div",{className:"premium-shell",children:e.jsxs("div",{className:"premium-core p-5",children:[e.jsx("p",{className:"portal-label mb-2 text-[9px]",children:"Protein"}),e.jsxs("p",{className:"text-2xl font-extrabold tracking-[-0.04em] text-white",children:[a&&!a.pending?a.proteinGrams:"-","g"]})]})}),e.jsx("div",{className:"premium-shell",children:e.jsxs("div",{className:"premium-core p-5",children:[e.jsx("p",{className:"portal-label mb-2 text-[9px]",children:"Hydration"}),e.jsx("p",{className:"text-2xl font-extrabold tracking-[-0.04em] text-white",children:G})]})})]})]}),a&&!a.pending&&e.jsxs("div",{className:"mb-6 grid gap-4 lg:grid-cols-[0.9fr_1.1fr]",children:[e.jsx("div",{className:"premium-shell",children:e.jsxs("div",{className:"premium-core p-6",children:[e.jsx("p",{className:"portal-label mb-5",children:"Macro Split"}),e.jsx("div",{className:"space-y-4",children:c.map(r=>{const l=b>0?Math.round(r.value/b*100):0;return e.jsxs("div",{children:[e.jsxs("div",{className:"mb-2 flex items-center justify-between gap-3",children:[e.jsx("span",{className:"text-sm font-bold text-white/80",children:r.label}),e.jsxs("span",{className:"text-sm font-extrabold",style:{color:r.color},children:[r.value,r.unit]})]}),e.jsx("div",{className:"h-2 overflow-hidden rounded-full bg-white/[0.07]",children:e.jsx("div",{className:"h-full rounded-full",style:{width:`${l}%`,background:r.color}})})]},r.label)})})]})}),e.jsx("div",{className:"premium-shell",children:e.jsxs("div",{className:"premium-core p-6",children:[e.jsx("p",{className:"portal-label mb-5",children:"Meal Rhythm"}),e.jsx("div",{className:"grid grid-cols-2 gap-3",children:[["breakfast","Breakfast"],["lunch","Lunch"],["snack","Snack"],["dinner","Dinner"]].map(([r,l])=>e.jsxs("div",{className:"rounded-2xl border border-white/10 bg-white/[0.035] p-4",children:[e.jsx("p",{className:"text-[10px] font-black uppercase tracking-[0.16em] text-white/38",children:l}),e.jsxs("p",{className:"mt-2 text-xl font-extrabold tracking-[-0.045em] text-white",children:[W?.[r]??"-"," kcal"]})]},r))})]})})]}),a&&!a.pending&&e.jsxs("div",{className:"mb-6 rounded-3xl p-5",style:{background:"rgba(255,255,255,0.035)",border:"1px solid rgba(255,255,255,0.09)"},"data-testid":"section-nutrition-disclaimer",children:[e.jsxs("p",{className:"text-xs leading-relaxed mb-2",style:{color:"rgba(255,255,255,0.65)"},"data-testid":"text-nutrition-disclaimer",children:["Calorie and macro targets are estimates based on your goals and body metrics â they are not professional nutritional advice. Individual needs vary. If you would like personalised guid
1049ance,"," ",e.jsx("a",{href:"mailto:[email protected]",className:"underline transition-colors",style:{color:`${s}80`},"data-testid":"link-nutritionist-contact",children:"get in touch"})," ","to be connected with the nutritionist our gym works with."]}),e.jsx("p",{className:"text-[10px] uppercase tracking-widest font-semibold mb-2 mt-3",style:{color:`${s}60`},"data-testid":"text-guidelines-heading",children:"Basic Nutrition Guidelines"}),e.jsx("ul",{className:"space-y-1.5","data-testid":"list-nutrition-guidelines",children:["Cut out sugar and processed food","Lower overall carbs; avoid carbs after 4pm if your goal is weight loss","Drink plenty of water","Eat a good protein source within an hour of training","Read labels â fewer ingredients is better"].map((r,l)=>e.jsxs("li",{className:"flex items-start gap-2 text-xs",style:{color:"rgba(255,255,255,0.65)"},"data-testid":`text-guideline-${l}`,children:[e.jsx("span",{className:"mt-1 w-1.5 h-1.5 rounded-full shrink-0",style:{background:`${s}55`}}),r]},l))})]}),e.jsxs("div",{className:"flex gap-1 mb-6 p-1 rounded-lg",style:{background:"rgba(255,255,255,0.04)",border:"1px solid rgba(255,255,255,0.07)"},children:[e.jsx("button",{onClick:()=>g("suggestions"),className:"flex-1 text-xs py-2 px-3 rounded-md font-semibold transition-all",style:u==="suggestions"?{background:s,color:"#000"}:{color:`${s}70`},"data-testid":"tab-meal-suggestions",children:"Suggestions"}),e.jsxs("button",{onClick:()=>g("saved"),className:"flex-1 flex items-center justify-center gap-1.5 text-xs py-2 px-3 rounded-md font-semibold transition-all",style:u==="saved"?{background:s,color:"#000"}:{color:`${s}70`},"data-testid":"tab-saved-meals",children:[e.jsx(Se,{size:11}),"Saved",m.length>0&&e.jsx("span",{className:"rounded-full px-1.5 py-0.5 text-[9px] font-bold leading-none",style:u==="saved"?{background:"rgba(0,0,0,0.25)",color:"#000"}:{background:`${s}25`,color:s},"data-testid":"badge-saved-meals-count",children:m.length})]})]}),u==="suggestions"&&a&&!a.pending&&e.jsx("div",{className:"mb-5 rounded-xl px-4 py-3",style:{background:"rgba(255,255,255,0.04)",border:"1px solid rgba(255,255,255,0.07)"},"data-testid":"section-dietary-prefs",children:h?e.jsxs("div",{"data-testid":"section-dietary-prefs-editor",children:[e.jsx("p",{className:"text-[10px] uppercase tracking-widest font-semibold mb-3",style:{color:`${s}80`},children:"Dietary Preference"}),e.jsx("div",{className:"grid grid-cols-2 gap-2 mb-4",children:Xa.map(r=>{const l=w.includes(r);return e.jsx("button",{onClick:()=>M(o=>o.includes(r)?o.filter(S=>S!==r):[...o,r]),className:"rounded-lg px-3 py-2 text-xs font-semibold text-left transition-all",style:l?{background:`${s}18`,border:`1px solid ${s}55`,color:s}:{background:"rgba(255,255,255,0.04)",border:"1px solid rgba(255,255,255,0.08)",color:"rgba(255,255,255,0.65)"},"data-testid":`button-pref-${r.toLowerCase().replace(/[\s-]/g,"-")}`,children:r},r)})}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("button",{onClick:()=>v.mutate(),disabled:v.isPending,className:"flex-1 text-xs font-semibold py-2 px-3 rounded-lg transition-all",style:{background:oe,color:"#fff",opacity:v.isPending?.7:1},"data-testid":"button-rebuild-suggestions",children:v.isPending?"Rebuildingâ¦":"Rebuild suggestions"}),e.jsx("button",{onClick:()=>{y(!1),M(E?.dietaryPreferences??a?.dietaryPreferences??[])},disabled:v.isPending,className:"text-xs font-semibold py-2 px-3 rounded-lg transition-all",style:{background:"rgba(255,255,255,0.07)",color:"rgba(255,255,255,0.6)"},"data-testid":"button-cancel-dietary-prefs",children:"Cancel"})]})]}):e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("span",{className:"text-[10px] uppercase tracking-widest font-semibold shrink-0",style:{color:`${s}80`},children:"Diet"}),e.jsx("div",{className:"flex flex-wrap gap-1.5 flex-1 min-w-0",children:(w.length===0?["No Restrictions"]:w).map(r=>e.jsx("span",{className:"text-[10px] px-2 py-0.5 rounded-full font-semibold",style:{background:`${s}18`,color:s,border:`1px solid ${s}30`},"data-testid":`pill-dietary-pref-${r.toLowerCase().replace(/[\s-]/g,"-")}`,children:r},r))}),e.jsx("button",{onClick:()=>y(!0),className:"shrink-0 text-[10px] font-semibold transition-colors",style:{color:"rgba(255,255,255,0.65)"},"data-testid":"button-edit-dietary-prefs",children:"Edit"})]})}),u==="suggestions"&&e.jsx(e.Fragment,{children:a?I?e.jsx(Ce,{}):Y?e.jsxs("div",{className:"portal-card p-6 text-center","data-testid":"text-meal-suggestions-error",children:[e.jsx("p",{className:"text-white/60 text-sm",children:i?.message??"Could not load meal suggestions. Please try again."}),e.jsx("button",{onClick:()=>T.mutate(),disabled:T.isPending,className:"mt-4 portal-btn text-sm px-4 py-2","data-testid":"button-retry-meal-suggestions",children:"Try again"})]}):e.jsxs("div",{className:"space-y-6","data-testid":"section-meal-suggestions",children:[D.map(({key:r,label:l})=>{const o=H?.suggestions[r]??[],S=W?.[r];return e.jsxs("div",{"data-testid":`section-meal-slot-${r}`,children:[e.jsxs("div",{className:"flex items-baseline gap-2 mb-3",children:[e.jsx("h3",{className:"text-[10px] uppercase tracking-[0.3em] font-semibold",style:{color:`${s}80`},"data-testid":`text-meal-slot-label-${r}`,children:l}),S!==void 0&&e.jsxs("span",{className:"text-[10px] tracking-wide",style:{color:`${s}55`},"data-testid":`text-meal-slot-target-${r}`,children:["target: ",S," kcal"]})]}),e.jsx("div",{className:"space-y-2",children:o.map((Z,F)=>{const q=f.has(Z.name),te=x===`${r}:${Z.name}`;return e.jsxs("div",{className:"rounded-xl px-4 py-3",style:{background:"rgba(255,255,255,0.04)",border:"1px solid rgba(255,255,255,0.07)"},"data-testid":`card-meal-suggestion-${r}-${F}`,children:[e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsx("p",{className:"text-white/85 text-sm font-semibold leading-snug","data-testid":`text-meal-name-${r}-${F}`,children:Z.name}),e.jsxs("div",{className:"shrink-0 flex items-start gap-2",children:[e.jsxs("div",{className:"text-right",children:[e.jsxs("span",{className:"text-xs font-semibold",style:{color:s},"data-testid":`text-meal-calories-${r}-${F}`,children:[Z.estimatedCalories," kcal"]}),e.jsxs("span",{className:"text-[10px] text-white/60 block","data-testid":`text-meal-protein-${r}-${F}`,children:[Z.estimatedProtein,"g protein"]})]}),e.jsx("button",{onClick:()=>!q&&k(r,Z),disabled:q||te,title:q?"Already saved":"Save to favourites",className:"mt-0.5 transition-colors",style:{color:q?s:`${s}45`,cursor:q?"default":"pointer"},"data-testid":`button-save-meal-${r}-${F}`,children:q?e.jsx(Va,{size:15}):e.jsx(Se,{size:15})})]})]}),e.jsx("p",{className:"text-white/60 text-xs mt-1 leading-relaxed","data-testid":`text-meal-desc-${r}-${F}`,children:Z.description})]},F)})})]},r)}),H?.updatedAt&&e.jsxs("p",{className:"text-white/60 text-[10px] text-center pt-2","data-testid":"text-meal-suggestions-updated-at",children:["Updated"," ",new Date(H.updatedAt).toLocaleDateString("en-NZ",{day:"numeric",month:"short",year:"numeric"})]})]}):e.jsxs("div",{className:"portal-card p-6 text-center","data-testid":"text-no-nutrition-
1049plan",children:[e.jsx(me,{size:32,className:"mx-auto mb-3",style:{color:`${s}40`}}),e.jsx("p",{className:"text-white/65 text-sm leading-relaxed font-semibold mb-1",style:{color:"rgba(255,255,255,0.6)"},children:"Nutrition plan locked"}),e.jsx("p",{className:"text-white/60 text-sm leading-relaxed",children:"Complete your goals to unlock your personalised nutrition plan. Head to the Goals section to get started."})]})}),u==="saved"&&e.jsx("div",{"data-testid":"section-saved-meals",children:d?e.jsx(Ce,{}):m.length===0?e.jsxs("div",{className:"portal-card p-8 text-center","data-testid":"text-no-saved-meals",children:[e.jsx(Se,{size:32,className:"mx-auto mb-3",style:{color:`${s}30`}}),e.jsx("p",{className:"text-white/60 text-sm leading-relaxed",children:"No saved meals yet. Tap the bookmark icon on any suggestion to save it here."})]}):e.jsx("div",{className:"space-y-2",children:m.map(r=>e.jsxs("div",{className:"rounded-xl px-4 py-3",style:{background:"rgba(255,255,255,0.04)",border:"1px solid rgba(255,255,255,0.07)"},"data-testid":`card-saved-meal-${r.id}`,children:[e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("p",{className:"text-white/85 text-sm font-semibold leading-snug","data-testid":`text-saved-meal-name-${r.id}`,children:r.name}),e.jsx("span",{className:"text-[9px] uppercase tracking-widest font-semibold",style:{color:`${s}55`},"data-testid":`text-saved-meal-slot-${r.id}`,children:C[r.slot]??r.slot})]}),e.jsx("button",{onClick:()=>L.mutate(r.id),disabled:L.isPending,title:"Remove from saved",className:"shrink-0 mt-0.5 transition-colors",style:{color:"rgba(255,255,255,0.6)"},"data-testid":`button-remove-saved-meal-${r.id}`,children:e.jsx(ne,{size:14})})]}),e.jsx("p",{className:"text-white/60 text-xs mt-1 leading-relaxed","data-testid":`text-saved-meal-desc-${r.id}`,children:r.description})]},r.id))})})]})}function de({number:a,eyebrow:n,title:p,description:u}){return e.jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:14,margin:"34px 0 14px"},"data-testid":`programme-block-header-${a}`,children:[e.jsx("div",{style:{width:36,height:36,borderRadius:10,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(255,211,78,0.12)",border:"1px solid rgba(255,211,78,0.28)",color:s,fontSize:12,fontWeight:900,flexShrink:0},children:a}),e.jsxs("div",{children:[e.jsx("p",{className:"portal-label",style:{margin:"0 0 5px",color:s},children:n}),e.jsx("h2",{className:"portal-heading",style:{margin:0,color:"rgba(255,255,255,0.95)",fontSize:24,lineHeight:1.12},children:p}),e.jsx("p",{style:{margin:"7px 0 0",color:"rgba(255,255,255,0.56)",fontSize:13,lineHeight:1.6,maxWidth:620},children:u})]})]})}function t0({programme:a,programmeLoading:n,goals:p,nutritionPlan:u,onNavigateToNutrition:g,onNavigateToGoals:x,member:N}){const{toast:h}=se(),y=(()=>{const r=a&&!a.pending&&ce(a.content)&&a.approvedAt?a.approvedAt:null,l=r?new Date(r).toISOString().split("T")[0]:N.challengeStartDate??"2026-04-20",o=ge(),S=new Date(l+"T00:00:00Z").getTime(),Z=new Date(o+"T00:00:00Z").getTime(),F=Math.floor((Z-S)/(1e3*60*60*24));return F<0?0:Math.min(6,Math.floor(F/7)+1)})(),w=ae({mutationFn:async()=>{const r=await B("/api/forged-portal/programme/pdf",{method:"POST"});if(!r.ok){const Z=await r.json().catch(()=>({}));throw new Error(Z.error||"Failed to generate PDF")}const l=await r.blob(),o=URL.createObjectURL(l),S=document.createElement("a");S.href=o,S.download="Forged_40_Day_Programme.pdf",document.body.appendChild(S),S.click(),document.body.removeChild(S),URL.revokeObjectURL(o)},onError:r=>{h({title:"Could not generate PDF",description:r.message,variant:"destructive"})}}),[M,E]=t.useState(0),[v,A]=t.useState({}),[W,D]=t.useState(new Set),H=M||Math.max(y,1),I=U({queryKey:["/api/forged-portal/programme/exercise-logs",a&&!a.pending?a.id:null],queryFn:async()=>{if(!a||a.pending)return[];const r=await B(`/api/forged-portal/programme/exercise-logs?programmeId=${a.id}`);return r.ok?r.json():[]},enabled:!!(a&&!a.pending&&ce(a.content))}),Y=ae({mutationFn:async r=>{const{logKey:l,...o}=r,S=await B("/api/forged-portal/programme/exercise-logs",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)});if(!S.ok)throw new Error("Failed to save");return S.json()},onMutate:r=>{D(l=>new Set(Array.from(l).concat(r.logKey)))},onSettled:(r,l,o)=>{D(S=>{const Z=new Set(S);return Z.delete(o.logKey),Z}),I.refetch()},onError:()=>{h({title:"Could not save log",variant:"destructive"})}}),i={foundation:s,adaptation:s,build:oe,strength:oe,peak:"#FF6B35",consolidate:s,recovery:"#4CAF50",deload:"#4CAF50"};
1049if(n)return e.jsxs("div",{className:"portal-content portal-section-body",children:[e.jsxs("div",{style:{marginBottom:32},children:[e.jsx("h1",{className:"portal-heading",style:{fontSize:32,color:s,margin:"0 0 8px"},children:"MY PROGRAMME"}),e.jsx("p",{style:{color:"rgba(255,255,255,0.65)",fontSize:14},children:"Your personalised 6-week training plan"})]}),[1,2,3].map(r=>e.jsxs("div",{className:"portal-card",style:{padding:24,marginBottom:16,opacity:1-r*.2,animation:"pulse 2s ease-in-out infinite"},children:[e.jsx("div",{style:{height:14,width:`${70-r*10}%`,background:"rgba(255,255,255,0.07)",borderRadius:7,marginBottom:10}}),e.jsx("div",{style:{height:10,width:"50%",background:"rgba(255,255,255,0.04)",borderRadius:5}})]},r))]});if(!p)return e.jsxs("div",{className:"portal-content portal-section-body",children:[e.jsx("div",{style:{marginBottom:32},children:e.jsx("h1",{className:"portal-heading",style:{fontSize:32,color:s,margin:"0 0 8px"},children:"MY PROGRAMME"})}),e.jsxs("div",{className:"portal-card portal-empty-state","data-testid":"programme-empty-no-goals",children:[e.jsx($e,{size:48,style:{color:"rgba(255,211,78,0.3)",margin:"0 auto 20px"}}),e.jsx("h2",{style:{color:s,fontSize:20,margin:"0 0 12px",fontFamily:"'Bebas Neue', cursive"},children:"SET YOUR GOALS FIRST"}),e.jsx("p",{style:{color:"rgba(255,255,255,0.65)",fontSize:14,lineHeight:1.6,maxWidth:360,margin:"0 auto 24px"},children:"Your coach builds your personalised 6-week programme around your goals, starting weight, and training history. Fill in your goals profile and your programme will be prepared."}),x&&e.jsx("button",{onClick:x,style:{display:"inline-flex",alignItems:"center",gap:8,background:s,color:"#000",border:"none",borderRadius:8,padding:"10px 20px",fontSize:13,fontWeight:700,fontFamily:"'Geist', system-ui, sans-serif",cursor:"pointer",letterSpacing:"0.04em"},"data-testid":"button-go-to-goals",children:"Go to Goals â"})]})]});if(!a||a.pending){const r=a?.message??"Your coach is reviewing your goals and will assign your programme soon.";return e.jsxs("div",{className:"portal-content portal-section-body",children:[e.jsx("div",{style:{marginBottom:32},children:e.jsx("h1",{className:"portal-heading",style:{fontSize:32,color:s,margin:"0 0 8px"},children:"MY PROGRAMME"})}),e.jsxs("div",{className:"portal-card portal-empty-state","data-testid":"programme-unavailable",children:[e.jsx("div",{style:{width:56,height:56,borderRadius:"50%",background:"rgba(255,211,78,0.12)",border:"1px solid rgba(255,211,78,0.25)",display:"flex",alignItems:"center",justifyContent:"center",margin:"0 auto 20px"},children:e.jsx(We,{size:24,style:{color:s}})}),e.jsx("h2",{style:{color:s,fontSize:20,margin:"0 0 12px",fontFamily:"'Bebas Neue', cursive"},"data-testid":"text-programme-unavailable-title",children:"YOUR PROGRAMME IS BEING PREPARED"}),e.jsx("p",{style:{color:"rgba(255,255,255,0.65)",fontSize:14,lineHeight:1.6,maxWidth:400,margin:"0 auto 16px"},children:r}),e.jsx("p",{style:{color:"rgba(255,255,255,0.4)",fontSize:12,lineHeight:1.6,maxWidth:380,margin:"0 auto"},children:"While you wait, make sure your Goals profile is complete â your coach uses that information to tailor every session to your level and targets."})]})]})}const m=a.content,d=a.generatedAt?new Date(a.generatedAt).toLocaleDateString("en-NZ",{day:"numeric",month:"long",year:"numeric"}):null;if(ce(m)){const r=m,l=r.weeks.length||8,o=r.weeks.find($=>$.week===H),S=I.data??[],Z=($,j,R)=>`${$}-${j}-${R}`,F=($,j,R)=>S.find(z=>z.weekNumber===$&&z.dayIndex===j&&z.exerciseIndex===R),q=($,j,R,z,_)=>{const P=v[$];if(P&&j in P)return P[j];const Q=F(R,z,_);return Q?Q[j]??(j==="completed"?!1:""):j==="completed"?!1:""},te=($,j,R)=>{A(z=>({...z,[$]:{...z[$],[j]:R}}))},Re=($,j,R,z)=>{const _=Z($,j,R),P=v[_]??{},Q=F($,j,R);Y.mutate({logKey:_,programmeId:a.id,weekNumber:$,dayIndex:j,exerciseIndex:R,exerciseName:z,completed:P.completed!==void 0?P.completed:Q?.completed??!1,actualWeight:P.actualWeight!==void 0?P.actualWeight:Q?.actualWeight??"",actualReps:P.actualReps!==void 0?P.actualReps:Q?.actualReps??"",notes:P.notes!==void 0?P.notes:Q?.notes??""})},Nt=($,j)=>$.dayLabel??`Day ${j+1}`,Be=o?o.days.reduce(($,j,R)=>$+j.exercises.filter((z,_)=>{const P=Z(H,R,_),Q=v[P],pe=F(H,R,_);return(Q?.completed!==void 0?Q.completed:pe?.completed)===!0}).length,0):0,je=o?o.days.reduce(($,j)=>$+j.exercises.length,0):0;return e.jsxs("div",{className:"portal-content portal-section-body","data-testid":"template-programme-view",children:[e.jsx("style",{children:"@keyframes spin { to { transform: rotate(360deg); } }"}),e.jsxs("div",{style:{marginBottom:28},children:[e.jsx("h1",{className:"portal-heading",style:{fontSize:30,color:s,margin:"0 0 6px"},"data-testid":"text-template-programme-title",children:r.title||"MY PROGRAMME"}),e.jsxs("p",{style:{color:"rgba(255,255,255,0.65)",fontSize:13,margin:0},children:["Personalised training plan",d?` · ${d}`:"",a.version>1?` · v${a.version}`:""]})]}),e.jsxs("div",{className:"portal-card",style:{padding:24,marginBottom:20},"data-testid":"template-programme-intro",children:[e.jsx("p",{style:{fontSize:14,lineHeight:1.7,color:"rgba(255,255,255,0.85)",margin:0},children:r.introSummary}),r.coachNote&&e.jsxs("div",{style:{marginTop:16,paddingTop:14,borderTop:"1px solid rgba(255,255,255,0.07)"},children:[e.jsx("p",{style:{fontSize:11,fontWeight:700,color:s,letterSpacing:"0.1em",margin:"0 0 6px",textTransform:"uppercase"},children:"Coach's Note"}),e.jsx("p",{style:{fontSize:13,lineHeight:1.65,color:"rgba(255,255,255,0.75)",fontStyle:"italic",margin:0},children:r.coachNote})]})]}),e.jsxs("div",{style:{marginBottom:20},children:[e.jsx("p",{style:{fontSize:11,fontWeight:700,letterSpacing:"0.12em",color:"rgba(255,255,255,0.45)",textTransform:"uppercase",margin:"0 0 10px"},children:"Select Week"}),e.jsx("div",{style:{display:"flex",flexWrap:"wrap",gap:8},children:Array.from({length:l},($,j)=>j+1).map($=>{const j=$<=H+1,R=$===H;return e.jsxs("button",{"data-testid":`button-select-week-${$}`,disabled:!j,onClick:()=>{E($),A({})},style:{padding:"7px 14px",borderRadius:6,border:R?`1.5px solid ${s}`:"1.5px solid rgba(255,255,255,0.12)",background:R?`${s}18`:"transparent",color:j?R?s:"rgba(255,255,255,0.75)":"rgba(255,255,255,0.2)",fontSize:13,fontWeight:R?700:400,cursor:j?"pointer":"not-allowed",transition:"all 0.15s"},children:["W",$]},$)})})]}),o&&e.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:16,flexWrap:"wrap",gap:8},children:[e.jsxs("h2",{className:"portal-heading",style:{fontSize:22,color:"rgba(255,255,255,0.9)",margin:0},"data-testid":"text-template-week-heading",children:["WEEK ",H]}),je>0&&e.jsxs("span",{style:{fontSize:12,color:Be===je?"#4CAF50":s,fontWeight:600},"data-testid":"text-week-completion",children:[Be,"/",je," exercises logged"]})]}),o?e.jsx("div",{style:{display:"flex",flexDirection:"column",gap:20},children:o.days.map(($,j)=>e.jsxs("div",{className:"portal-card",style:{padding:0,overflow:"hidden"},"data-testid":`day-card-${j}`,children:[e.jsxs("div",{style:{padding:"14px 20px",borderBottom:"1px solid rgba(255,255,255,0.07)",background:"rgba(255,255,255,0.03)",display:"flex",alignItems:"center",justifyContent:"space-between"},children:[e.jsxs("div",{children:[e.jsx("span",{className:"portal-heading",style:{fontSize:16,color:s},"data-testid":`text-day-label-${j}`,children:Nt($,j)}),$.sessionType&&e.jsx("span",{style:{marginLeft:10,fontSize:11,color:"rgba(255,255,255,0.45)",textTransform:"uppercase",letterSpacing:"0.08em"},children:$.sessionType})]}),e.jsxs("span",{style:{fontSize:12,color:"rgba(255,255,255,0.35)"},children:[$.exercises.length," exercise",$.exercises.length!==1?"s":""]})]}),e.jsx("div",{children:$.exercises.map((R,z)=>{const _=Z(H,j,z),P=q(_,"completed",H,j,z),Q=W.has(_),pe=!!F(H,j,z),ke=!!v[_];return e.jsxs("div",{"data-testid":`exercise-row-${j}-${z}`,style:{padding:"16px 20px",borderBottom:z<$.exercises.length-1?"1px solid rgba(255,255,255,0.05)":"none",background:P?"rgba(76,175,80,0.04)":"transparent",transition:"background 0.2s"},children:[e.jsxs("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:12,marginBottom:10},children:[e.jsxs("div",{style:{flex:1},children:[e.jsx("p",{style:{margin:"0 0 4px",fontSize:14,fontWeight:600,color:P?"rgba(255,255,255,0.5)":"rgba(255,255,255,0.9)",textDecoration:P?"line-through":"none",transition:"all 0.2s"},"data-testid":`text-exercise-name-${j}-${z}`,children:R.name}),e.jsxs("div",{style:{display:"flex",gap:12,flexWrap:"wrap"},children:[e.jsxs("span",{style:{fontSize:12,color:s},"data-testid":`text-exercise-sets-${j}-${z}`,children:[R.sets," sets à ",R.reps]}),R.rest&&e.jsxs("span",{style:{fontSize:12,color:"rgba(255,255,255,0.4)"},children:["Rest: ",R.rest]})]}),R.coachNotes&&e.jsx("p",{style:{margin:"6px 0 0",fontSize:12,color:"rgba(255,255,255,0.45)",fontStyle:"italic",lineHeight:1.5},"data-testid":`text-exercise-coach-notes-${j}-${z}`,children:R.coachNotes}),R.demoImage&&e.jsx("div",{style:{marginTop:8},children:e.jsx("img",{src:R.demoImage,alt:`Demo: ${R.name}`,style:{maxWidth:120,maxHeight:80,borderRadius:6,objectFit:"cover",border:"1px solid rgba(255,255,255,0.12)"},"data-testid":`img-demo-${j}-${z}`,onError:X=>{X.target.style.display="none"}})}),R.demoVideo&&e.jsx("a",{href:R.demoVideo,target:"_blank",rel:"noopener noreferrer",style:{display:"inline-block",marginTop:6,fontSize:11,color:s,textDecoration:"underline"}
1049,"data-testid":`link-demo-video-${j}-${z}`,children:"â¶ Watch demo"}),H>1&&(()=>{const X=S.find(Ne=>Ne.weekNumber===H-1&&Ne.dayIndex===j&&Ne.exerciseIndex===z);if(!X)return null;const he=[];return X.actualWeight&&he.push(X.actualWeight),X.actualReps&&he.push(X.actualReps+" reps"),he.length?e.jsxs("p",{style:{margin:"4px 0 0",fontSize:11,color:"rgba(255,255,255,0.3)"},"data-testid":`text-prev-log-${j}-${z}`,children:["Week ",H-1,": ",he.join(" à ")]}):null})()]}),e.jsx("button",{"data-testid":`button-toggle-complete-${j}-${z}`,onClick:()=>{te(_,"completed",!P)},style:{width:28,height:28,borderRadius:6,border:P?"1.5px solid #4CAF50":"1.5px solid rgba(255,255,255,0.2)",background:P?"#4CAF5022":"transparent",color:P?"#4CAF50":"rgba(255,255,255,0.3)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,fontSize:16,transition:"all 0.2s"},title:P?"Mark incomplete":"Mark complete",children:P?"â":"â"})]}),e.jsxs("div",{style:{display:"flex",gap:8,flexWrap:"wrap",marginBottom:8},children:[e.jsxs("div",{style:{flex:"1 1 80px",minWidth:70},children:[e.jsx("label",{style:{display:"block",fontSize:10,fontWeight:700,letterSpacing:"0.08em",color:"rgba(255,255,255,0.4)",textTransform:"uppercase",marginBottom:4},children:"Weight used"}),e.jsx("input",{"data-testid":`input-actual-weight-${j}-${z}`,type:"text",placeholder:"e.g. 60kg",value:q(_,"actualWeight",H,j,z),onChange:X=>te(_,"actualWeight",X.target.value),style:{width:"100%",background:"rgba(255,255,255,0.07)",border:"1px solid rgba(255,255,255,0.12)",borderRadius:5,padding:"6px 10px",color:"rgba(255,255,255,0.85)",fontSize:13,outline:"none"}})]}),e.jsxs("div",{style:{flex:"1 1 80px",minWidth:70},children:[e.jsx("label",{style:{display:"block",fontSize:10,fontWeight:700,letterSpacing:"0.08em",color:"rgba(255,255,255,0.4)",textTransform:"uppercase",marginBottom:4},children:"Reps done"}),e.jsx("input",{"data-testid":`input-actual-reps-${j}-${z}`,type:"text",placeholder:R.reps,value:q(_,"actualReps",H,j,z),onChange:X=>te(_,"actualReps",X.target.value),style:{width:"100%",background:"rgba(255,255,255,0.07)",border:"1px solid rgba(255,255,255,0.12)",borderRadius:5,padding:"6px 10px",color:"rgba(255,255,255,0.85)",fontSize:13,outline:"none"}})]}),e.jsxs("div",{style:{flex:"2 1 140px",minWidth:120},children:[e.jsx("label",{style:{display:"block",fontSize:10,fontWeight:700,letterSpacing:"0.08em",color:"rgba(255,255,255,0.4)",textTransform:"uppercase",marginBottom:4},children:"Notes"}),e.jsx("input",{"data-testid":`input-notes-${j}-${z}`,type:"text",placeholder:"e.g. felt strong, increased weight",value:q(_,"notes",H,j,z),onChange:X=>te(_,"notes",X.target.value),style:{width:"100%",background:"rgba(255,255,255,0.07)",border:"1px solid rgba(255,255,255,0.12)",borderRadius:5,padding:"6px 10px",color:"rgba(255,255,255,0.85)",fontSize:13,outline:"none"}})]})]}),(ke||pe)&&e.jsx("button",{"data-testid":`button-save-log-${j}-${z}`,onClick:()=>Re(H,j,z,R.name),disabled:Q,style:{padding:"5px 14px",borderRadius:5,border:"none",background:Q?"rgba(255,211,78,0.3)":s,color:Q?s:"#141414",fontSize:12,fontWeight:700,cursor:Q?"not-allowed":"pointer",letterSpacing:"0.05em",textTransform:"uppercase"},children:Q?"Savingâ¦":pe&&!ke?"Saved â":"Save"}),!ke&&!pe&&e.jsx("button",{"data-testid":`button-save-log-${j}-${z}`,onClick:()=>Re(H,j,z,R.name),disabled:Q,style:{padding:"5px 14px",borderRadius:5,border:"1px solid rgba(255,255,255,0.12)",background:"transparent",color:"rgba(255,255,255,0.4)",fontSize:12,fontWeight:600,cursor:"pointer",letterSpacing:"0.05em",textTransform:"uppercase"},children:"Log"})]},z)})})]},j))}):e.jsx("div",{className:"portal-card",style:{padding:40,textAlign:"center"},"data-testid":"no-week-data",children:e.jsxs("p",{style:{color:"rgba(255,255,255,0.45)",fontSize:14},children:["Week ",H," data not available. Please select another week."]})}),r.nutritionNotes&&e.jsxs("div",{className:"portal-card",style:{padding:24,marginTop:24},"data-testid":"template-nutrition-notes",children:[e.jsx("p",{style:{fontSize:11,fontWeight:700,color:s,letterSpacing:"0.1em",margin:"0 0 10px",textTransform:"uppercase"},children:"Nutrition Notes"}),e.jsx("p",{style:{fontSize:13,lineHeight:1.7,color:"rgba(255,255,255,0.75)",margin:0},children:r.nutritionNotes})]})]})}const f=p?.primaryGoal&&p.primaryGoal.length>0?p.primaryGoal.join(", "):"Not set",T=p?.weeklySessionsTarget?`${p.weeklySessionsTarget} classes / week`:`${m.weeklyPlan?.[0]?.sessions?.length??3} classes / week`,V=u&&!u.pending?`${u.dailyCalories} cal · ${u.proteinGrams}g protein`:"Nutrition guide linked",L=m.weeklyPlan.reduce((r,l)=>r+(l.sessions?.length??0),0),k=Math.max(y,1),C=m.weeklyPlan.find(r=>r.week===k)??m.weeklyPlan.find(r=>r.week===1),G=(C?.sessions??[]).reduce((r,l)=>{const o=l.sessionType||"Ludus class";return r[o]=(r[o]??0)+1,r},{}),b=Object.entries(G),c=[{number:"01",label:"Plan Summary",detail
1049:"Goal, weekly target, volume, and nutrition link."},{number:"02",label:"This Week",detail:"The phase, focus, target, and sessions to prioritise now."},{number:"03",label:"Full Plan",detail:"The 6-week class recommendation structure."},{number:"04",label:"Book Classes",detail:"Book the recommended class mix for the week."},{number:"05",label:"Check-ins",detail:"Milestones and proof points across the challenge."},{number:"06",label:"Support",detail:"Recovery and nutrition guidance."}];return e.jsxs("div",{className:"portal-content portal-section-body",children:[e.jsx("style",{children:"@keyframes spin { to { transform: rotate(360deg); } }"}),e.jsxs("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",flexWrap:"wrap",gap:16,marginBottom:32},children:[e.jsxs("div",{children:[e.jsx("h1",{className:"portal-heading",style:{fontSize:32,color:s,margin:"0 0 6px"},children:"MY PROGRAMME"}),e.jsxs("p",{style:{color:"rgba(255,255,255,0.65)",fontSize:13,margin:0},children:["Your personalised 6-week plan",d?` · Created by your coach · ${d}`:"",a.version>1?` · v${a.version}`:""]})]}),e.jsx("div",{style:{display:"flex",gap:10,flexWrap:"wrap"},children:e.jsxs("button",{className:"portal-btn portal-btn-outline",style:{display:"flex",alignItems:"center",gap:8,fontSize:14,padding:"10px 20px"},onClick:()=>w.mutate(),disabled:w.isPending,"data-testid":"button-download-programme-pdf",children:[e.jsx(Ie,{size:15}),w.isPending?"Generatingâ¦":"Download PDF"]})})]}),e.jsxs("div",{className:"portal-card",style:{padding:18,marginBottom:24,borderColor:"rgba(255,211,78,0.2)",background:"linear-gradient(135deg, rgba(255,255,255,0.055), rgba(255,211,78,0.045))"},"data-testid":"programme-map",children:[e.jsx("p",{className:"portal-label",style:{margin:"0 0 12px",color:s},children:"Programme Map"}),e.jsx("div",{className:"grid grid-cols-2 gap-3 sm:grid-cols-3",children:c.map(r=>e.jsxs("div",{style:{border:"1px solid rgba(255,255,255,0.08)",borderRadius:10,padding:"13px 14px",background:"rgba(10,10,10,0.28)"},children:[e.jsx("p",{style:{margin:"0 0 7px",color:s,fontSize:11,fontWeight:900,letterSpacing:"0.08em"},children:r.number}),e.jsx("p",{style:{margin:"0 0 5px",color:"#fff",fontSize:13,fontWeight:900},children:r.label}),e.jsx("p",{style:{margin:0,color:"rgba(255,255,255,0.52)",fontSize:11,lineHeight:1.45},children:r.detail})]},r.number))})]}),e.jsx(de,{number:"01",eyebrow:"Plan Summary",title:"Your plan at a glance",description:"The quick read on what this programme is built around before you get into the weekly detail."}),e.jsxs("div",{className:"portal-card",style:{padding:0,marginBottom:24,overflow:"hidden",borderColor:"rgba(255,211,78,0.18)"},"data-testid":"programme-report-snapshot",children:[e.jsxs("div",{style:{padding:"18px 22px",borderBottom:"1px solid rgba(255,255,255,0.07)",background:"linear-gradient(135deg, rgba(255,211,78,0.12), rgba(255,255,255,0.03))"},children:[e.jsx("p",{className:"portal-label",style:{margin:"0 0 6px",color:s},children:"Snapshot"}),e.jsx("h2",{className:"portal-heading",style:{margin:0,color:"rgba(255,255,255,0.94)",fontSize:24},children:"Your 6-week plan at a glance"})]}),e.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(150px, 1fr))"},children:[{label:"Primary Goal",value:f},{label:"Training Target",value:T},{label:"Plan Volume",value:`${L} planned classes`},{label:"Nutrition",value:V}].map((r,l)=>e.jsxs("div",{style:{padding:"18px 20px",borderRight:l<3?"1px solid rgba(255,255,255,0.06)":"none",borderBottom:"1px solid rgba(255,255,255,0.04)"},children:[e.jsx("p",{style:{margin:"0 0 8px",color:"rgba(255,255,255,0.45)",fontSize:10,fontWeight:800,letterSpacing:"0.14em",textTransform:"uppercase"},children:r.label}),e.jsx("p",{style:{margin:0,color:r.label==="Nutrition"?s:"rgba(255,255,255,0.9)",fontSize:16,fontWeight:800,lineHeight:1.35},children:r.value})]},r.label))})]}),e.jsxs("div",{className:"portal-card",style:{padding:28,marginBottom:24},"data-testid":"programme-intro",children:[e.jsxs("p",{style:{fontSize:18,fontWeight:600,color:s,margin:"0 0 4px"},"data-testid":"coach-greeting",children:["Hi ",N.firstName,","]}),e.jsx("p",{style:{fontSize:15,fontWeight:600,color:"rgba(255,255,255,0.9)",margin:"0 0 20px"},"data-testid":"coach-subheading",children:"Welcome to your 6-week programme!"}),e.jsx("div",{style:{fontSize:14,lineHeight:1.75,color:"rgba(255,255,255,0.85)"},"data-testid":"coach-body",children:m.introSummary.split(` 1050
1051`).filter(Boolean).map((r,l)=>{if(r.startsWith("##")){const[o,...S]=r.split(` 1052`),Z=o.slice(2).trim(),F=S.join(` 1053`).trim();return e.jsxs("div",{children:[e.jsx("p",{style:{margin:"18px 0 6px",fontSize:11,fontWeight:700,letterSpacing:"0.08em",textTransform:"uppercase",color:s},"data-testid":`coach-section-${Z.toLowerCase().replace(/\s+/g,"-")}`,children:Z}),F&&e.jsx("p",{style:{margin:"0 0 4px",color:"rgba(255,255,255,0.75)"},children:F})]},l)}if(r.startsWith("GOAL:")){const o=r.slice(5).trim();return e.jsxs("div",{style:{display:"inline-flex",alignItems:"center",gap:8,margin:"6px 0 4px"},"data-testid":"coach-goal-callout",children:[e.jsx("span",{style:{fontSize:11,fontWeight:700,letterSpacing:"0.06em",textTransform:"uppercase",color:"rgba(255,255,255,0.65)"},children:"Your Goal:"}),e.jsx("span",{style:{background:"rgba(255,211,78,0.15)",border:"1px solid rgba(255,211,78,0.4)",borderRadius:6,padding:"3px 10px",fontSize:13,fontWeight:700,color:s},children:o})]},l)}if(r.startsWith("STAT:")){const o=r.split(` 1054`).filter(Boolean);return e.jsx("div",{className:"coach-stat-grid",style:{display:"grid",gridTemplateColumns:"repeat(3, 1fr)",gap:10,margin:"6px 0 4px"},"data-testid":"coach-numbers",children:o.map((S,Z)=>{const[F,q]=S.replace("STAT:","").split("|");return e.jsxs("div",{style:{background:"rgba(255,255,255,0.05)",border:"1px solid rgba(255,211,78,0.18)",borderRadius:8,padding:"10px 12px",textAlign:"center"},"data-testid":`stat-${Z}`,children:[e.jsx("p",{style:{margin:"0 0 4px",fontSize:17,fontWeight:700,color:"rgba(255,255,255,0.95)"},children:q}),e.jsx("p",{style:{margin:0,fontSize:10,color:"rgba(255,255,255,0.65)",lineHeight:1.3},children:F})]},Z)})},l)}return r.startsWith("Let's get it!")?e.jsx("p",{style:{margin:"20px 0 0",color:s,fontWeight:600,fontSize:14},"data-testid":"coach-signature",children:r},l):e.jsx("p",{style:{margin:"0 0 4px",color:"rgba(255,255,255,0.75)"},children:r},l)})})]}),a.coachPersonalNote&&e.jsxs("div",{className:"portal-card",style:{padding:28,marginBottom:24,background:"linear-gradient(135deg,rgba(255,211,78,0.08) 0%,rgba(232,101,26,0.05) 100%)",borderColor:"rgba(255,211,78,0.25)"},"data-testid":"programme-coach-personal-note",children:[e.jsx("div",{style:{display:"flex",alignItems:"center",gap:10,marginBottom:14},children:e.jsx("h2",{className:"portal-heading",style:{fontSize:16,color:s,margin:0,textTransform:"uppercase"},children:"Note from your coach"})}),e.jsx("div",{style:{fontSize:14,lineHeight:1.75,color:"rgba(255,255,255,0.85)",fontStyle:"italic"},children:a.coachPersonalNote.split(` 1055 1056`).filter(Boolean).map((r,l)=>e.jsx("p",{style:{margin:"0 0 12px"},children:r},l))})]}),C&&e.jsxs(e.Fragment,{children:[e.jsx(de,{number:"02",eyebrow:"This Week",title:"What to focus on now",description:"Start here when you open the plan. This keeps the current phase and recommended classes separate from the full 6-week reference."}),e.jsxs("div",{className:"portal-card",style:{padding:0,marginBottom:24,overflow:"hidden",borderColor:"rgba(255,211,78,0.28)"},"data-testid":"programme-current-week-spotlight",children:[e.jsxs("div",{style:{padding:"20px 24px",background:"linear-gradient(135deg, rgba(255,211,78,0.14), rgba(255,255,255,0.035))",borderBottom:"1px solid rgba(255,255,255,0.07)"},children:[e.jsx("p",{className:"portal-label",style:{margin:"0 0 8px"},children:"This Week"}),e.jsxs("h2",{className:"portal-heading",style:{margin:0,color:"rgba(255,255,255,0.95)",fontSize:26},children:["Week ",C.week,": ",C.phaseLabel]}),e.jsx("p",{style:{margin:"10px 0 0",color:"rgba(255,255,255,0.62)",fontSize:14,lineHeight:1.65},children:C.focus})]}),e.jsxs("div",{style:{padding:22},children:[C.weeklyTarget&&e.jsxs("div",{style:{borderRadius:12,border:"1px solid rgba(255,211,78,0.22)",background:"rgba(255,211,78,0.07)",padding:"12px 14px",marginBottom:16},children:[e.jsx("p",{className:"portal-label",style:{margin:"0 0 6px",fontSize:9},children:"Week Target"}),e.jsx("p",{style:{margin:0,color:"rgba(255,255,255,0.78)",fontSize:13},children:C.weeklyTarget})]}),e.jsx("div",{style:{display:"flex",flexDirection:"column",gap:10},children:C.sessions.slice(0,3).map(r=>e.jsxs("div",{style:{borderRadius:12,border:"1px solid rgba(255,255,255,0.08)",background:"rgba(255,255,255,0.035)",padding:"12px 14px"},children:[e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",gap:12},children:[e.jsxs("p",{style:{margin:0,color:"#fff",fontSize:14,fontWeight:800},children:["Class ",r.sessionNumber,": ",r.sessionType]}),e.jsxs("span",{style:{color:s,fontSize:12,fontWeight:800},children:[r.duration," min"]})]}),e.jsx("p",{style:{margin:"6px 0 0",color:"rgba(255,255,255,0.5)",fontSize:12,lineHeight:1.55},children:r.notes})]},r.sessionNumber))})]})]})]}),e.jsx(de,{number:"03",eyebrow:"Full Plan",title:"The complete 6-week class plan",description:"Use this as the wider reference for the challenge. This is a recommendation for which Ludus classes to book, not a list of exercises to complete alone."}),m.weeklyPlan&&m.weeklyPlan.length>0&&e.jsxs("div",{style:{marginBottom:24},"data-testid":"section-weekly-plan",children:[e.jsx("h2",{className:"portal-heading",style:{fontSize:22,color:"rgba(255,255,255,0.9)",margin:"0 0 16px",borderBottom:"1px solid rgba(255,211,78,0.2)",paddingBottom:10},children:"Full 6-Week Plan"}),e.jsx("div",{className:"portal-card",style:{padding:"14px 16px",marginBottom:14,display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(155px, 1fr))",gap:10,borderColor:"rgba(255,255,255,0.1)",background:"rgba(255,255,255,0.035)"},"data-testid":"programme-phase-key",children:[{color:s,label:"Yellow weeks",text:"Foundation, adaptation, or consolidation."},{color:oe,label:"Orange weeks",text:"Build, strength, or peak focus."}].map(r=>
1056e.jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:10},children:[e.jsx("span",{style:{width:10,height:10,borderRadius:999,background:r.color,boxShadow:`0 0 18px ${r.color}55`,flexShrink:0,marginTop:4}}),e.jsxs("div",{children:[e.jsx("p",{style:{margin:"0 0 3px",color:"rgba(255,255,255,0.88)",fontSize:12,fontWeight:900},children:r.label}),e.jsx("p",{style:{margin:0,color:"rgba(255,255,255,0.52)",fontSize:11,lineHeight:1.45},children:r.text})]})]},r.label))}),e.jsx("div",{style:{display:"flex",flexDirection:"column",gap:12},children:m.weeklyPlan.map(r=>{const l=Math.max(y,1),o=r.week<=l+1,S=r.week===l,Z=r.phaseLabel.toLowerCase().split(" ")[0],F=i[Z]||s;return o?e.jsxs("div",{className:"portal-card",style:{padding:20,borderColor:S?`${F}40`:"rgba(255,255,255,0.12)"},"data-testid":`week-card-${r.week}`,children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:12,marginBottom:12,flexWrap:"wrap"},children:[e.jsxs("span",{className:"portal-heading",style:{fontSize:18,color:F},children:["WEEK ",r.week]}),e.jsx("span",{style:{fontSize:10,fontWeight:700,letterSpacing:"0.1em",textTransform:"uppercase",color:F,background:`${F}15`,border:`1px solid ${F}30`,borderRadius:6,padding:"2px 8px"},children:r.phaseLabel}),S&&e.jsx("span",{style:{fontSize:10,fontWeight:700,letterSpacing:"0.08em",textTransform:"uppercase",color:"#fff",background:oe,borderRadius:6,padding:"2px 8px"},children:"Current"})]}),e.jsx("p",{style:{fontSize:13,color:"rgba(255,255,255,0.65)",fontStyle:"italic",margin:"0 0 10px"},children:r.focus}),r.weeklyTarget&&e.jsxs("div",{style:{fontSize:12,color:F,background:`${F}10`,border:`1px solid ${F}25`,borderRadius:8,padding:"7px 12px",marginBottom:14},children:[e.jsx("strong",{children:"Recommended:"})," ",r.weeklyTarget]}),r.sessions&&r.sessions.length>0&&e.jsx("p",{style:{fontSize:10,fontWeight:700,textTransform:"uppercase",letterSpacing:"0.12em",color:"rgba(255,255,255,0.65)",marginBottom:6},children:"Recommended Classes"}),r.sessions&&r.sessions.length>0&&e.jsx("div",{style:{display:"flex",flexDirection:"column",gap:10},children:r.sessions.map((q,te)=>e.jsxs("div",{style:{borderTop:"1px solid rgba(255,255,255,0.07)",paddingTop:10},"data-testid":`session-wk${r.week}-${te}`,children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:4,flexWrap:"wrap"},children:[e.jsxs("span",{style:{fontSize:11,color:"rgba(255,255,255,0.65)",flexShrink:0},children:["Class ",q.sessionNumber]}),q.sessionType&&e.jsx("span",{style:{fontSize:13,fontWeight:700,color:"rgba(255,255,255,0.85)"},"data-testid":`session-type-wk${r.week}-${te}`,children:q.sessionType}),q.duration&&e.jsxs("span",{style:{fontSize:10,color:"rgba(255,255,255,0.65)",background:"rgba(255,255,255,0.06)",borderRadius:4,padding:"1px 6px",flexShrink:0},children:[q.duration," min"]})]}),q.notes&&e.jsx("p",{style:{fontSize:11,color:"rgba(255,255,255,0.65)",margin:0,fontStyle:"italic"},"data-testid":`session-notes-wk${r.week}-${te}`,children:q.notes})]},te))}),r.additionalActivities&&e.jsxs("div",{style:{marginTop:14,padding:"10px 12px",background:"rgba(255,255,255,0.04)",border:"1px solid rgba(255,255,255,0.09)",borderRadius:8},"data-testid":`week-additional-activities-${r.week}`,children:[e.jsx("p",{style:{fontSize:10,fontWeight:700,textTransform:"uppercase",letterSpacing:"0.12em",color:"rgba(255,255,255,0.65)",marginBottom:4},children:"Additional Suggestions"}),e.jsx("p",{style:{fontSize:12,color:"rgba(255,255,255,0.65)",margin:0},children:r.additionalActivities})]})]},r.week):e.jsxs("div",{className:"portal-card",style:{padding:"16px 20px",opacity:.4,display:"flex",alignItems:"center",gap:14},"data-testid":`week-card-locked-${r.week}`,children:[e.jsx(Za,{size:16,style:{color:"rgba(255,255,255,0.65)",flexShrink:0}}),e.jsxs("div",{children:[e.jsxs("span",{className:"portal-heading",style:{fontSize:14,color:"rgba(255,255,255,0.65)",marginRight:10},children:["WEEK ",r.week]}),e.jsx("span",{style:{fontSize:12,color:"rgba(255,255,255,0.65)"},children:r.phaseLabel})]})]},r.week)})})]}),e.jsx(de,{number:"04",eyebrow:"Book Classes",title:"Book your recommended classes",description:"The plan works through coached Ludus classes. Choose these class types in the timetable, then follow the programming your coach runs in class."}),e.jsxs("div",{className:"portal-card",style:{padding:0,marginBottom:24,overflow:"hidden",borderColor:`rgba(${K},0.26)`},"data-testid":"programme-book-classes",children:[e.jsxs("div",{style:{padding:"20px 22px",borderBottom:"1px solid rgba(255,255,255,0.07)",background:`linear-gradient(135deg, rgba(${K},0.12), rgba(255,255,255,0.03))`},children:[e.jsx("p",{className:"portal-label",style:{margin:"0 0 7px",color:J},children:"This weekâs booking mix"}),e.jsx("h2",{className:"portal-heading",style:{margin:0,color:"rgba(255,255,255,0.94)",fontSize:24},children:b.length>0?b.map(([r,l])=>`${l} x ${r}`).join(" + "):"Book your Ludus classes"}),e.jsx("p",{style:{margin:"10px 0 0",color:"rgba(255,255,255,0.58)",fontSize:13,lineHeight:1.6},children:"You do not need the exercise list here yet. Book into the recommended class types, train in class, then use Weekly Challenge Results for the challenge scoring."})]}),e.jsxs("div",{style:{padding:20},children:[e.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(170px, 1fr))",gap:10,marginBottom:16},children:(b.length>0?b:[["Ludus class",1]]).map(([r,l])=>e.jsxs("div",{style:{border:"1px solid rgba(255,255,255,0.08)",background:`rgba(${K},0.055)`,borderRadius:12,padding:"14px 15px"},children:[e.jsx("p",{className:"portal-label",style:{margin:"0 0 7px",fontSize:9},children:"Recommended"}),e.jsxs("p",{style:{margin:0,color:"#fff",fontSize:15,fontWeight:900},children:[l," x ",r]})]},r))}),e.jsxs("button",{type:"button",onClick:()=>{window.location.assign("/timetable")},className:"portal-btn",style:{width:"100%",display:"flex",alignItems:"center",justifyContent:"center",gap:10,fontSize:14,padding:"12px 18px"},"data-testid":"button-programme-book-classes",children:[e.jsx(vt,{size:16}),"Open timetable to book"]})]})]}),e.jsx(de,{number:"05",eyebrow:"Check-ins",title:"Milestones and proof points",description:"These are the moments that show whether the plan is working, from weekly progress checks to the key scan windows."}),m.weeklyMilestones&&m.weeklyMilestones.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("h2",{className:"portal-heading",style:{fontSize:22,color:"rgba(255,255,255,0.9)",margin:"32px 0 16px",borderBottom:"1px solid rgba(255,211,78,0.2)",paddingBottom:10},children:"Weekly Check-ins"}),e.jsx("div",{className:"portal-card",style:{padding:18,marginBottom:24,display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(210px, 1fr))",gap:10},"data-testid":"programme-milestones",children:m.weeklyMilestones.map(r=>e.jsxs("div",{style:{display:"flex",gap:12,alignItems:"flex-start",padding:12,borderRadius:10,background:"rgba(255,255,255,0.035)",border:"1px solid rgba(255,255,255,0.075)"},children:[e.jsx("div",{style:{width:32,height:32,borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(255,211,78,0.12)",border:"1px solid rgba(255,211,78,0.26)",color:s,fontSize:12,fontWeight:900,flexShrink:0},children:r.week}),e.jsxs("div",{children:[e.jsx("p",{style:{margin:"0 0 4px",color:"rgba(255,255,255,0.9)",fontSize:13,fontWeight:800,lineHeight:1.35},children:r.milestone}),e.jsxs("p",{style:{margin:0,color:"rgba(255,255,255,0.48)",fontSize:11,lineHeight:1.45},children:["Check-in: ",r.checkIn]})]})]},`${r.week}-${r.milestone}`))})]}),e.jsx(de,{number:"06",eyebrow:"Support",title:"Recovery and nutrition guidance",description:"The training only works if recovery and food support it. This section keeps those rules separate from the sessions themselves."}),e.jsx("h2",{className:"portal-heading",style:{fontSize:22,color:"rgba(255,255,255,0.9)",margin:"32px 0 16px",borderBottom:`1px solid rgba(${K},0.24)`,paddingBottom:10},children:"RECOVERY & LIFESTYLE"}),e.jsx("div",{className:"portal-card",style:{padding:0,overflow:"hidden",marginBottom:24,borderColor:`rgba(${K},0.2)`},"data-testid":"programme-recovery",children:m.recoveryProtocols.map((r,l)=>e.jsxs("div",{style:{display:"flex",gap:12,alignItems:"flex-start",padding:"14px 20px",borderBottom:l<m.recoveryProtocols.length-1?"1px solid rgba(255,255,255,0.05)":"none"},children:[e.jsx(De,{size:13,style:{color:J,flexShrink:0,marginTop:3}}),e.jsxs("div",{style:{flex:1},children:[e.jsx("div",{style:{fontSize:11,fontWeight:700,textTransform:"uppercase",letterSpacing:"0.08em",color:J,marginBottom:3},children:r.category}),e.jsx("p",{style:{margin:0,fontSize:13,color:"rgba(255,255,255,0.8)",lineHeight:1.5},children:r.protocol})]}),e.jsx("div",{style:{fontSize:11,color:"rgba(255,255,255,0.65)",
1056whiteSpace:"nowrap",marginTop:3},children:r.frequency})]},l))}),e.jsx("h2",{className:"portal-heading",style:{fontSize:22,color:"rgba(255,255,255,0.9)",margin:"32px 0 16px",borderBottom:`1px solid rgba(${K},0.24)`,paddingBottom:10},children:"NUTRITION INTEGRATION"}),e.jsx("div",{className:"portal-card",style:{padding:24,marginBottom:24,borderColor:`rgba(${K},0.18)`},"data-testid":"programme-nutrition",children:[{label:"Pre-Workout",value:m.nutritionIntegration.preWorkout,icon:e.jsx(Me,{size:13,style:{color:J}})},{label:"Post-Workout",value:m.nutritionIntegration.postWorkout,icon:e.jsx(We,{size:13,style:{color:J}})},...m.nutritionIntegration.restDayAdjustment?[{label:"Rest Day Adjustment",value:m.nutritionIntegration.restDayAdjustment,icon:e.jsx(De,{size:13,style:{color:J}})}]:[],{label:"Hydration",value:m.nutritionIntegration.hydrationGuidance,icon:e.jsx(Me,{size:13,style:{color:J}})},{label:"General Notes",value:m.nutritionIntegration.generalNotes,icon:e.jsx(ze,{size:13,style:{color:J}})}].map((r,l)=>e.jsxs("div",{style:{marginBottom:l<4?20:0},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:6},children:[r.icon,e.jsx("span",{style:{fontSize:11,fontWeight:700,textTransform:"uppercase",letterSpacing:"0.08em",color:J},children:r.label})]}),e.jsx("p",{style:{margin:0,fontSize:13,color:"rgba(255,255,255,0.8)",lineHeight:1.6},children:r.value})]},l))}),e.jsxs("div",{"data-testid":"nutrition-portal-callout",style:{background:"linear-gradient(135deg, rgba(255,211,78,0.1) 0%, rgba(255,211,78,0.05) 100%)",border:"1px solid rgba(255,211,78,0.35)",borderRadius:10,padding:"18px 20px",marginBottom:24,display:"flex",alignItems:"center",gap:16,flexWrap:"wrap"},children:[e.jsx(me,{size:20,style:{color:"#FFD34E",flexShrink:0}}),e.jsx("div",{style:{flex:1,minWidth:200},children:e.jsxs("p",{style:{margin:0,fontSize:13,color:"rgba(255,255,255,0.9)",lineHeight:1.6},children:["Your personalised meal recommendations â based on this nutrition guide â are available in the ",e.jsx("strong",{style:{color:"#FFD34E"},children:"Nutrition"})," tab of your portal."]})}),g&&e.jsx("button",{"data-testid":"button-go-to-nutrition",onClick:g,style:{background:"#FFD34E",color:"#141414",border:"none",borderRadius:6,padding:"8px 16px",fontSize:12,fontWeight:700,cursor:"pointer",letterSpacing:"0.05em",textTransform:"uppercase",flexShrink:0},children:"View Meal Plan â"})]}),e.jsxs("div",{className:"portal-card",style:{padding:28,marginBottom:40,background:"linear-gradient(135deg,rgba(232,101,26,0.1) 0%,rgba(255,211,78,0.06) 100%)",borderColor:"rgba(232,101,26,0.2)"},"data-testid":"programme-coach-note",children:[e.jsx("div",{style:{fontSize:36,color:oe,fontWeight:700,lineHeight:1,marginBottom:8},children:'"'}),e.jsx("div",{style:{fontSize:14,lineHeight:1.75,color:"rgba(255,255,255,0.85)",fontStyle:"italic"},children:m.coachNote.split(` 1057 1058`).filter(Boolean).map((r,l)=>e.jsx("p",{style:{margin:"0 0 14px"},children:r},l))}),e.jsx("div",{style:{textAlign:"right",fontSize:13,color:s,fontWeight:700},children:"â Joe, Your Forged Coach"})]}),e.jsxs("div",{style:{textAlign:"center",marginBottom:40},children:[e.jsx("div",{style:{display:"inline-flex",gap:12,flexWrap:"wrap",justifyContent:"center"},children:e.jsxs("button",{className:"portal-btn",style:{display:"inline-flex",alignItems:"center",gap:10},onClick:()=>w.mutate(),disabled:w.isPending,"data-testid":"button-download-programme-pdf-bottom",children:[e.jsx(Ie,{size:16}),w.isPending?"Generatingâ¦":"Download PDF"]})}),e.jsx("p",{style:{margin:"12px 0 0",fontSize:12,color:"rgba(255,255,255,0.65)"},children:"Download a branded PDF of your full 6-week programme"})]})]})}function a0(){const{toast:a}=se(),n=le(),[p,u]=t.useState(!1),{data:g,isLoading:x}=U({queryKey:["/api/forged-portal/goals"],queryFn:async()=>(await B("/api/forged-portal/goals")).json()}),[N,h]=t.useState([]),[y,w]=t.useState(""),[M,E]=t.useState(""),[v,A]=t.useState(4),[W,D]=t.useState(""),[H,I]=t.useState(""),[Y,i]=t.useState(""),[m,d]=t.useState(""),[f,T]=t.useState(""),[V,L]=t.useState(""),[k,C]=t.useState([]);t.useEffect(()=>{g&&(h(g.primaryGoal??[]),w(g.currentWeight||""),E(g.goalWeight||""),A(g.weeklySessionsTarget),D(g.personalStatement||""),I(g.sex||""),i(g.age!=null?String(g.age):""),d(g.height||""),T(g.activityLevel||""),L(g.dailyMovement||""),C(g.dietaryPreferences??[]))},[g]);const G=ae({mutationFn:async()=>{const o=await B("/api/forged-portal/goals",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({primaryGoal:N,currentWeight:y||null,goalWeight:M||null,weeklySessionsTarget:v,personalStatement:W||null,sex:H||null,age:Y?Number(Y):null,height:m||null,activityLevel:f||null,dailyMovement:V||null,dietaryPreferences:k})}),S=await o.json();if(!o.ok)throw new Error(S.error);return S},onSuccess:()=>{n.invalidateQueries({queryKey:["/api/forged-portal/goals"]}),n.invalidateQueries({queryKey:["/api/forged-portal/nutrition"]}),n.invalidateQueries({queryKey:["/api/forged-portal/programme"]}
1058),u(!0),a({title:"Goals saved!",description:"Your personalised 6-week programme is ready â check 'My Programme' in a few moments."})},onError:o=>a({title:"Error",description:o.message,variant:"destructive"})});if(x)return e.jsx(Ce,{});if(p)return e.jsx("div",{className:"text-center section-page-bg portal-content portal-section-body",children:e.jsxs("div",{className:"portal-card p-8","data-testid":"card-goals-saved",children:[e.jsx("h2",{className:"portal-heading text-3xl mb-2",style:{color:s},children:"GOALS LOCKED IN"}),e.jsx("p",{className:"text-white/60 text-sm mb-6",children:"You can update them anytime"}),e.jsxs("div",{className:"space-y-3 text-left",children:[e.jsxs("div",{className:"p-3 rounded-lg bg-white/[0.03]",children:[e.jsx("span",{className:"text-white/60 text-xs uppercase tracking-wider",children:"Goals"}),e.jsx("div",{className:"flex flex-wrap gap-1.5 mt-1",children:N.map(o=>e.jsx("span",{className:"text-white font-semibold text-sm px-2 py-0.5 rounded",style:{background:"rgba(255,211,78,0.15)",color:s},children:o},o))})]}),e.jsxs("div",{className:"p-3 rounded-lg bg-white/[0.03]",children:[e.jsx("span",{className:"text-white/60 text-xs uppercase tracking-wider",children:"Sessions/wk"}),e.jsx("p",{className:"text-white font-semibold",children:v})]}),W&&e.jsxs("div",{className:"p-3 rounded-lg bg-white/[0.03]",children:[e.jsx("span",{className:"text-white/60 text-xs uppercase tracking-wider",children:"Personal statement"}),e.jsxs("p",{className:"text-white/70 text-sm italic",children:['"',W,'"']})]})]}),e.jsx("button",{onClick:()=>u(!1),className:"portal-btn portal-btn-outline mt-6 text-sm","data-testid":"button-edit-goals",children:"EDIT GOALS"})]})});const b=["Lose Weight","Build Muscle","Improve Fitness","Get Stronger","Feel Better","Transform"],c=[{value:"sedentary",label:"Sedentary",desc:"Little or no exercise"},{value:"light",label:"Light",desc:"1â3 days/week"},{value:"moderate",label:"Moderate",desc:"3â5 days/week"},{value:"active",label:"Active",desc:"6â7 days/week"},{value:"very-active",label:"Very Active",desc:"Twice daily"}],r=[{value:"low",label:"Low",desc:"Mostly sitting"},{value:"moderate",label:"Moderate",desc:"Some walking"},{value:"high",label:"High",desc:"On feet most of the day"},{value:"very-high",label:"Very High",desc:"Physically demanding job"}],l=N.length>0&&v&&!!H&&!!Y&&!!m&&!!f&&!!V&&!!y;return e.jsxs("div",{className:"section-page-bg portal-content portal-section-body",children:[e.jsx(kt,{title:"SET MY GOALS",subtitle:"Define your 40-day targets"}),e.jsxs("div",{className:"space-y-6",children:[g&&e.jsxs("div",{className:"portal-card overflow-hidden",style:{borderColor:"rgba(255,211,78,0.24)"},"data-testid":"card-current-goals-summary",children:[e.jsxs("div",{className:"p-5",style:{background:"linear-gradient(135deg, rgba(255,211,78,0.12), rgba(255,255,255,0.025))",borderBottom:"1px solid rgba(255,255,255,0.07)"},children:[e.jsx("p",{className:"portal-label mb-2",style:{color:s},children:"01 Your current goals"}),e.jsx("h3",{className:"portal-heading text-2xl text-white",children:"Goals are set"}),e.jsx("p",{className:"mt-2 text-sm leading-relaxed text-white/58",children:"These are the details currently saved to your profile. Update anything below, then save again to refresh your programme and nutrition guide."})]}),e.jsxs("div",{className:"grid gap-3 p-5 sm:grid-cols-2",children:[e.jsxs("div",{className:"rounded-xl border border-white/10 bg-white/[0.035] p-4 sm:col-span-2",children:[e.jsx("p",{className:"portal-label mb-2 text-[9px]",children:"Primary goals"}),e.jsx("div",{className:"flex flex-wrap gap-2",children:N.length>0?N.map(o=>e.jsx("span",{className:"rounded-full border px-3 py-1 text-xs font-extrabold",style:{borderColor:"rgba(255,211,78,0.35)",background:"rgba(255,211,78,0.1)",color:s},children:o},o)):e.jsx("span",{className:"text-sm text-white/48",children:"No goal selected yet"})})]}),[{label:"Current weight",value:y?`${y} kg`:"Not set"},{label:"Goal weight",value:M?`${M} kg`:"Optional"},{label:"Weekly classes",value:`${v} per week`},{label:"Activity",value:f||"Not set"}].map(o=>e.jsxs("div",{className:"rounded-xl border border-white/10 bg-white/[0.03] p-4",children:[e.jsx("p",{className:"portal-label mb-2 text-[9px]",children:o.label}),e.jsx("p",{className:"text-sm font-extrabold text-white",children:o.value})]},o.label)),W&&e.jsxs("div",{className:"rounded-xl border border-white/10 bg-white/[0.03] p-4 sm:col-span-2",children:[e.jsx("p",{className:"portal-label mb-2 text-[9px]",children:"Personal statement"}),e.jsxs("p",{className:"text-sm italic leading-relaxed text-white/68",children:['"',W,'"']})]})]})]}
1058),g&&e.jsxs("div",{className:"flex items-start gap-4 rounded-2xl border p-4",style:{borderColor:`rgba(${K},0.22)`,background:`rgba(${K},0.055)`},"data-testid":"goals-update-section-intro",children:[e.jsx("div",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded-xl border text-xs font-black",style:{borderColor:`rgba(${K},0.34)`,background:`rgba(${K},0.12)`,color:J},children:"02"}),e.jsxs("div",{children:[e.jsx("p",{className:"portal-label mb-1",style:{color:J},children:"Update goals"}),e.jsx("h3",{className:"text-lg font-extrabold tracking-[-0.035em] text-white",children:"Edit your details below"}),e.jsx("p",{className:"mt-1 text-sm leading-relaxed text-white/52",children:"This section is separate from the saved summary above. Change only what needs updating, then press Update Goals at the bottom."})]})]}),e.jsxs("div",{"data-testid":"goal-primary-selection",children:[e.jsxs("label",{className:"text-white/65 text-xs uppercase tracking-wider font-semibold mb-3 flex items-center gap-1",children:["Your Goals ",e.jsx("span",{className:"normal-case text-white/60",children:"(select all that apply)"}),e.jsx(ee,{id:"primary-goal",tip:"Shapes the focus of your 6-week programme â workouts and targets are tailored to what you're aiming for."})]}),e.jsx("div",{className:"grid grid-cols-2 gap-2",children:b.map(o=>{const S=N.includes(o);return e.jsx("button",{onClick:()=>h(Z=>Z.includes(o)?Z.filter(F=>F!==o):[...Z,o]),className:`portal-card p-3 text-sm font-semibold text-center transition-all ${S?"ring-1 ring-[#FFD34E]":""}`,style:S?{borderColor:s,color:s}:{color:"rgba(255,255,255,0.6)"},"data-testid":`goal-option-${o.toLowerCase().replace(/\s/g,"-")}`,children:o},o)})})]}),e.jsxs("div",{"data-testid":"goal-about-section",children:[e.jsxs("label",{className:"text-white/65 text-xs uppercase tracking-wider font-semibold mb-3 flex items-center gap-1",children:["About You"," ",e.jsx("span",{className:"normal-case text-white/60",children:"(used to calculate your nutrition plan)"}),e.jsx(ee,{id:"about-you",tip:"Your sex, age, and height are used to estimate your basal metabolic rate (BMR) â the foundation of your personalised calorie target."})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsxs("label",{className:"text-white/60 text-xs mb-2 flex items-center gap-1",children:["Biological sex",e.jsx(ee,{id:"sex",tip:"Biological sex affects how your BMR is calculated. Males and females have different metabolic baselines."})]}),e.jsx("div",{className:"grid grid-cols-2 gap-2",children:["male","female"].map(o=>e.jsx("button",{onClick:()=>I(o),className:`portal-card p-3 text-sm font-semibold text-center capitalize transition-all ${H===o?"ring-1 ring-[#FFD34E]":""}`,style:H===o?{borderColor:s,color:s}:{color:"rgba(255,255,255,0.6)"},"data-testid":`goal-sex-${o}`,children:o},o))})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsxs("div",{children:[e.jsxs("label",{className:"text-white/60 text-xs mb-1 flex items-center gap-1",children:["Age (years)",e.jsx(ee,{id:"age",tip:"Your age affects your metabolic rate. It's used alongside your height and weight to calculate your daily calorie target."})]}),e.jsx(xe,{value:Y,onChange:o=>i(o.target.value),type:"number",min:10,max:120,className:"portal-input",placeholder:"30","data-testid":"input-age"})]}),e.jsxs("div",{children:[e.jsxs("label",{className:"text-white/60 text-xs mb-1 flex items-center gap-1",children:["Height (cm)",e.jsx(ee,{id:"height",tip:"Combined with your age and weight to estimate your BMR and calculate how many calories your body needs each day."})]}),e.jsx(xe,{value:m,onChange:o=>d(o.target.value),type:"number",min:100,max:275,className:"portal-input",placeholder:"175","data-testid":"input-height"})]})]})]})]}),e.jsxs("div",{"data-testid":"goal-weight-section",children:[e.jsxs("label",{className:"text-white/65 text-xs uppercase tracking-wider font-semibold mb-3 flex items-center gap-1",children:["Body Composition",e.jsx(ee,{id:"body-composition",tip:"Your current weight is required to calculate your daily calorie target. Your goal weight helps set an appropriate deficit or surplus."})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsxs("div",{children:[e.jsxs("label",{className:"text-white/60 text-xs mb-1 flex items-center gap-1",children:["Current weight (kg) ",e.jsx("span",{style:{color:s},children:"*"}),e.jsx(ee,{id:"current-weight",tip:"Used to calculate your total daily energy expenditure (TDEE) and track body composition changes over the 40 days."})]}),e.jsx(xe,{value:y,onChange:o=>w(o.target.value),type:"number",className:"portal-input",placeholder:"80","data-testid":"input-current-weight"})]}),e.jsxs("div",{children:[e.jsxs("label",{className:"text-white/60 text-xs mb-1 flex items-center gap-1",children:["Goal weight (kg)"," ",e.jsx("span",{className:"text-white/60 normal-case font-normal",children:"(optional)"}),e.jsx(ee,{id:"goal-weight",tip:"Helps set a calorie deficit or surplus in your nutrition plan. Leave blank if you'd rather focus on performance over the scale."})]}),e.jsx(xe,{value:M,onChange:o=>E(o.target.value),type:"number",className:"portal-input",placeholder:"75","data-testid":"input-goal-weight"})]})]})]}),e.jsxs("div",{"data-testid":"goal-activity-section",children:[e.jsxs("label",{className:"text-white/65 text-xs uppercase tracking-wider font-semibold mb-3 flex items-center gap-1",children:["Activity Level ",e.jsx("span",{className:"normal-case text-white/60",children:"(exercise sessions)"}),e.jsx(ee,{id:"activity-level",tip:"How often you exercise per week. This is multiplied with your BMR to estimate your total daily energy expenditure (TDEE) and calorie target."})]}),e.jsx("div",{className:"grid grid-cols-1 gap-2",children:c.map(o=>e.jsxs("button",{onClick:()=>
1058T(o.value),className:`portal-card p-3 text-left transition-all flex items-center justify-between ${f===o.value?"ring-1 ring-[#FFD34E]":""}`,style:f===o.value?{borderColor:s}:void 0,"data-testid":`goal-activity-${o.value}`,children:[e.jsx("span",{className:"text-sm font-semibold",style:{color:f===o.value?s:"rgba(255,255,255,0.8)"},children:o.label}),e.jsx("span",{className:"text-xs",style:{color:"rgba(255,255,255,0.65)"},children:o.desc})]},o.value))})]}),e.jsxs("div",{"data-testid":"goal-movement-section",children:[e.jsxs("label",{className:"text-white/65 text-xs uppercase tracking-wider font-semibold mb-3 flex items-center gap-1",children:["Daily Movement ",e.jsx("span",{className:"normal-case text-white/60",children:"(outside of exercise)"}),e.jsx(ee,{id:"daily-movement",tip:"Non-exercise activity like walking or standing also burns calories. This fine-tunes your TDEE for a more accurate daily calorie target."})]}),e.jsx("div",{className:"grid grid-cols-2 gap-2",children:r.map(o=>e.jsxs("button",{onClick:()=>L(o.value),className:`portal-card p-3 text-left transition-all ${V===o.value?"ring-1 ring-[#FFD34E]":""}`,style:V===o.value?{borderColor:s}:void 0,"data-testid":`goal-movement-${o.value}`,children:[e.jsx("span",{className:"text-sm font-semibold block",style:{color:V===o.value?s:"rgba(255,255,255,0.8)"},children:o.label}),e.jsx("span",{className:"text-xs",style:{color:"rgba(255,255,255,0.65)"},children:o.desc})]},o.value))})]}),e.jsxs("div",{"data-testid":"goal-sessions-section",children:[e.jsxs("label",{className:"text-white/65 text-xs uppercase tracking-wider font-semibold mb-3 flex items-center gap-1",children:["Weekly Session Target",e.jsx(ee,{id:"weekly-sessions",tip:"Sets how many training sessions per week your programme is built around. Your workout schedule will be structured to fit this number."})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("input",{type:"range",min:3,max:6,value:v,onChange:o=>A(parseInt(o.target.value)),className:"flex-1 portal-range","data-testid":"slider-sessions",style:{"--fill-pct":`${(v-3)/3*100}%`}}),e.jsx("span",{className:"portal-heading text-2xl w-8 text-center",style:{color:s},children:v})]}),e.jsxs("p",{className:"text-white/60 text-xs mt-1",children:[v," sessions per week"]})]}),e.jsxs("div",{"data-testid":"goal-dietary-section",children:[e.jsxs("label",{className:"text-white/65 text-xs uppercase tracking-wider font-semibold mb-3 flex flex-wrap items-center gap-1",children:["Dietary Preferences"," ",e.jsx("span",{className:"normal-case text-white/60",children:"(optional, select all that apply)"}),e.jsx(ee,{id:"dietary-preferences",tip:"Used to tailor your nutrition plan â meal suggestions and macro breakdowns will be adapted to match your dietary needs."})]}),e.jsx("div",{className:"grid grid-cols-2 gap-2",children:["No Restrictions","Vegetarian","Vegan","Gluten-Free","Dairy-Free","Halal","Kosher","Low-Carb","Low-Fat","Nut-Free"].map(o=>{const S=k.includes(o);return e.jsx("button",{onClick:()=>C(Z=>Z.includes(o)?Z.filter(F=>F!==o):[...Z,o]),className:`portal-card p-3 text-sm font-semibold text-left transition-all ${S?"ring-1 ring-[#FFD34E]":""}`,style:S?{borderColor:s,color:s}:{color:"rgba(255,255,255,0.6)"},"data-testid":`goal-dietary-${o.toLowerCase().replace(/[\s-]/g,"-")}`,children:o},o)})})]}),e.jsxs("div",{"data-testid":"goal-statement-section",children:[e.jsxs("label",{className:"text-white/65 text-xs uppercase tracking-wider font-semibold mb-3 flex items-center gap-1",children:["Personal Statement"," ",e.jsx("span",{className:"text-white/65 normal-case",children:"(optional, 280 chars)"}),e.jsx(ee,{id:"personal-statement",tip:"Your 'why' for the challenge. Saved to your profile and shared with your coach to help keep you accountable throughout the 40 days."})]}),e.jsx("textarea",{value:W,onChange:o=>D(o.target.value.slice(0,280)),placeholder:"Why are you doing this challenge? What does success look like?",className:"portal-input w-full resize-none !h-24 p-3 rounded-lg text-sm",style:{background:"rgba(255,255,255,0.04)",border:"1px solid rgba(255,255,255,0.1)",color:"#fff",fontFamily:"'Geist', system-ui, sans-serif"},"data-testid":"input-personal-statement"}),e.jsxs("p",{className:"text-white/65 text-xs text-right mt-1",children:[W.length,"/280"]})]}),e.jsx("button",{onClick:()=>G.mutate(),disabled:!l||G.isPending,className:"portal-btn gold-glow w-full","data-testid":"button-save-goals",children:G.isPending?"SAVING...":g?"UPDATE GOALS":"SAVE MY GOALS"})]})]})}function kt({title:a,subtitle:n}){return e.jsxs("div",{className:"mb-8",children:[e.jsx("h2",{className:"portal-heading text-3xl md:text-4xl",style:{color:s},"data-testid":`text-section-${a.toLowerCase().replace(/\s/g,"-")}`,children:a}),e.jsx("p",{className:"text-white/60 text-sm mt-1.5",children:n})]})}function Ce(){return e.jsxs("div",{className:"px-4 py-20 text-center section-page-bg portal-content",children:[e.jsx("div",{className:"w-10 h-10 border-2 border-white/10 border-t-[#FFD34E] rounded-full animate-spin mx-auto"}),e.jsx("p",{className:"text-white/65 text-sm mt-4",children:"Loading..."})]})}function ee({tip:a,id:n}){const[p,u]=t.useState(!1),g=t.useRef(null);return e.jsxs("span",{className:"relative inline-flex items-center align-middle ml-1",style:{verticalAlign:"middle"},children:[e.jsx("button",{ref:g,type:"button","aria-describedby":`tooltip-${n}`,"aria-label":"Help",onMouseEnter:()=>u(!0),onMouseLeave:()=>u(!1),onFocus:()=>u(!0),onBlur:()=>u(!1),onClick:()=>u(x=>!x),style:{background:"none",border:"none",padding:0,cursor:"pointer",lineHeight:1,color:"rgba(255,211,78,0.7)",display:"inline-flex",alignItems:"center"},"data-testid":`tooltip-trigger-${n}`,children:e.jsx(wt,{size:13})}),p&&e.jsxs("span",{id:`tooltip-${n}`,role:"tooltip","data-testid":`tooltip-content-${n}`,style:{position:"absolute",bottom:"calc(100% + 6px)",left:"50%",transform:"translateX(-50%)",width:"220px",background:"rgba(20,18,14,0.97)",border:"1px solid rgba(255,211,78,0.25)",borderRadius:"0.5rem",padding:"0.5rem 0.65rem",color:"rgba(255,255,255,0.8)",fontSize:"0.72rem",lineHeight:1.45,zIndex:100,pointerEvents:"none",boxShadow:"0 4px 16px rgba(0,0,0,0.5)"},children:[a,e.jsx("span",{"aria-hidden":"true",style:{position:"absolute",top:"100%",left:"50%",transform:"translateX(-50%)",width:0,height:0,borderLeft:"5px solid transparent",borderRight:"5px solid transparent",borderTop:"5px solid rgba(255,211,78,0.25)"}})]})]})}const Ee=[{key:"progress_photo",label:"Progress Photos"},{key:"scan_result",label:"Scan Results"}];function r0({photoA:a,photoB:n,onClose:p}){const u=g=>g?new Date(g).toLocaleDateString("en-AU",{day:"numeric",month:"short",year:"numeric"}):"";return t.useEffect(()=>{const g=x=>{x.key==="Escape"&&p()};return document.addEventListener("keydown",g),()=>document.removeEventListener("keydown",g)},[p]),e.jsxs("div",{style:{position:"fixed",inset:0,zIndex:200,background:"rgba(0,0,0,0.92)",display:"flex",flexDirection:"column",backdropFilter:"blur(8px)"},"data-testid":"photo-comparison-modal",children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"16px 20px",borderBottom:"1px solid rgba(255,255,255,0.08)",flexShrink:0},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10},children:[e.jsx(Ze,{size:18,style:{color:s}}),e.jsx("span",{className:"portal-heading",style:{color:s,fontSize:20,letterSpacing:"0.06em"},children:"PHOTO COMPARISON"})]}),e.jsx("button",{onClick:p,style:{background:"rgba(255,255,255,0.08)",border:"1px solid rgba(255,255,255,0.12)",borderRadius:8,padding:"6px 8px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center"},"data-testid":"btn-close-comparison","aria-label":"Close comparison",children:e.jsx(ne,{size:18,style:{color:"rgba(255,255,255,0.7)"}})})]}),e.jsxs("div",{style:{flex:1,display:"flex",gap:12,padding:"20px",overflow:"hidden"},className:"comparison-images-container",children:[e.jsx("style",{children:` 1059 @media (max-width: 640px) { 1060 .comparison-images-container { 1061 flex-direction: column !important; 1062 overflow-y: auto !important; 1063 } 1064 } 1065 `}),[a,n].map((g,x)=>e.jsxs("div",{style:{flex:1,display:"flex",flexDirection:"column",minWidth:0,minHeight:0},"data-testid":`comparison-photo-${x===0?"before":"after"}`,children:[e.jsxs("div",{style:{flex:1,borderRadius:12,overflow:"hidden",background:"rgba(255,255,255,0.04)",border:"1px solid rgba(255,255,255,0.1)",minHeight:200,position:"relative"},children:[e.jsx("img",{src:we(g.id),alt:g.filename,style:{width:"100%",height:"100%",objectFit:"contain",display:"block"},"data-testid":`comparison-img-${x===0?"before":"after"}`}),e.jsx("div",{style:{position:"absolute",top:10,left:10,background:"rgba(0,0,0,0.65)",borderRadius:6,padding:"4px 10px",fontFamily:"'Bebas Neue', cursive",fontSize:13,letterSpacing:"0.08em",color:s},children:x===0?"BEFORE":"AFTER"})]}),e.jsxs("div",{style:{padding:"10px 4px 0"},children:[e.jsx("p",{className:"text-white/70 text-sm font-medium truncate",title:g.filename,"data-testid":`comparison-filename-${x===0?"before":"after"}`,children:g.filename}),e.jsx("p",{className:"text-white/60 text-xs mt-0.5","data-testid":`comparison-date-${x===0?"before":"after"}`,children:u(g.uploadedAt)})]})]},g.id))]})]})}function s0({uploadId:a}){const[n,p]=Le.useState(!1);return n?e.jsx(Aa,{size:18,style:{color:s}}):e.jsx("img",{src:we(a),alt:"",style:{width:"100%",height:"100%",objectFit:"cover",display:"block"},onError:()=>p(!0),"data-testid":`thumbnail-${a}`})}function n0({upload:a,onClose:n,formatDate:p}){return Le.useEffect(()=>{const u=g=>{g.key==="Escape"&&n()};return window.addEventListener("keydown",u),()=>window.removeEventListener("keydown",u)},[n]),e.jsx("div",{onClick:n,style:{position:"fixed",inset:0,background:"rgba(0,0,0,0.88)",zIndex:9999,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",padding:24},"data-testid":"lightbox-overlay",children:e.jsxs("div",{onClick:u=>u.stopPropagation(),style:{display:"flex",flexDirection:"column",alignItems:"center",maxWidth:"min(92vw, 800px)",width:"100%",gap:16},children:[e.jsx("div",{style:{display:"flex",justifyContent:"flex-end",width:"100%"},children:e.jsxs("button",{onClick:n,style:{background:"rgba(255,255,255,0.08)",border:"1px solid rgba(255,255,255,0.15)",borderRadius:8,color:"#fff",cursor:"pointer",padding:"6px 14px",fontSize:13,display:"flex",alignItems:"center",gap:6},"data-testid":"lightbox-close","aria-label":"Close",children:[e.jsx(ne,{size:14})," Close"]})}),e.jsx("img",{src:we(a.id),alt:a.filename,style:{maxWidth:"100%",maxHeight:"72vh",objectFit:"contain",borderRadius:12,boxShadow:"0 8px 48px rgba(0,0,0,0.6)"},"data-testid":"lightbox-image"}),e.jsxs("div",{style:{textAlign:"center"},children:[e.jsx("p",{className:"text-white/85 text-sm font-medium","data-testid":"lightbox-filename",children:a.filename}),e.jsx("p",{className:"text-white/60 text-xs mt-1","data-testid":"lightbox-date",children:p(a.uploadedAt)})]})]})})}function i0(){const{toast:a}=se(),n=le(),[p,u]=t.useState("progress_photo"),[g,x]=t.useState(!1),[N,h]=t.useState("progress_photo"),y=Le.useRef(null),[w,M]=t.useState(!1),[E,v]=t.useState([]),[A,W]=t.useState(!1),[D,H]=t.useState(null),{data:I=[],isLoading:Y}=U({queryKey:["/api/forged-portal/uploads"],queryFn:async()=>{const c=await B("/api/forged-portal/uploads");if(!c.ok)throw new Error("Failed to load files");return c.json()}}),i=ae({mutationFn:async c=>{const r=await B(`/api/forged-portal/uploads/${c}/archive`,{method:"PATCH"});if(!r.ok)throw new Error("Failed to archive");return r.json()},onSuccess:()=>{n.invalidateQueries({queryKey:["/api/forged-portal/uploads"]}),a({title:"Archived",description:"File hidden from your portal. The stored original has been retained."})},onError:()=>a({title:"Error",description:"Could not archive file.",variant:"destructive"})}),m=async c=>{const r=c.target.files?.[0];if(r){x(!0);try{const l=await B("/api/forged-portal/uploads/request-url",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:r.name,size:r.size,contentType:r.type})});if(!l.ok)throw new Error("Failed to get upload URL");const{uploadURL:o,objectPath:S}=await l.json();if(!(await fetch(o,{method:"PUT",headers:{"Content-Type":r.type||"application/octet-stream"},body:r})).ok)throw new Error("Upload to storage failed");if(!(await B("/api/forged-portal/uploads/register",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({filename:r.name,objectPath:S,contentType:r.type,category:N})})).ok)throw new Error("Failed to register upload");n.invalidateQueries({queryKey:["/api/forged-portal/uploads"]}),a({title:"Uploaded!",description:`${r.name} has been saved.`})}catch(l){a({title:"Upload failed",description:l instanceof Error?l.message:"Something went wrong.",variant:"destructive"})}finally{x(!1),y.current&&(y.current.value="")}}},d=I.filter(c=>c.category===p),f=c=>c.contentType?.startsWith("image/")||/\.(jpg|jpeg|png|gif|webp|avif)$/i.test(c.filename),T=c=>c?new Date(c).toLocaleDateString("en-AU",{day:"numeric",month:"short",year:"numeric"}):"",L=I.filter(c=>c.category==="progress_photo"&&f(c)).length>=2,k=c=>{v(r=>r.includes(c)?r.filter(l=>l!==c):r.length>=2?r:[...r,c])},C=()=>{M(!1),v([])},G=I.find(c=>c.id===E[0]),b=I.find(c=>c.id===E[1]);return e.jsxs(e.Fragment,{children:[A&&G&&b&&e.jsx(r0,{photoA:G,photoB:b,onClose:()=>W(!1)}),e.jsx("div",{className:"portal-content section-page-bg portal-section-body",style:{paddingBottom:24},children:e.jsxs("div",{children:[e.jsx("h2",{className:"portal-heading mb-1",style:{fontSize:28,color:s,letterSpacing:"0.06em"},"data-testid":"files-heading",children:"MY FILES"}),e.jsx("p",{className:"text-white/60 text-sm mb-6",children:"Progress photos and body scan results â your journey, stored privately."}),e.jsxs("div",{className:"mb-6 rounded-3xl border border-[#ffd34e]/22 bg-[#ffd34e]/[0.06] p-5","data-testid":"files-upload-timeline",children:[e.jsx("p",{className:"portal-label mb-3",children:"When to upload"}),e.jsx("div",{className:"grid gap-3 md:grid-cols-3",children:[{week:"Week 1",title:"Starting point",text:"Upload baseline photos or your first scan."},{week:"Week 4",title:"Midpoint check",text:"Add midpoint scan results and progress photos."},{week:"Week 6",title:"Final proof",text:"Upload final photos or scan so your change is easy to compare."}].map(c=>e.jsxs("div",{className:"rounded-2xl border border-white/10 bg-black/20 p-4",children:[e.jsx("p",{className:"text-[10px] font-black uppercase tracking-[0.16em] text-[#ffd34e]",children:c.week}),e.jsx("p",{className:"mt-2 text-sm font-extrabold text-white",children:c.title}),e.jsx("p",{className:"mt-1 text-xs leading-relaxed text-white/48",children:c.text})]},c.week))})]}),e.jsx("div",{style:{display:"flex",gap:8,marginBottom:24,background:"rgba(255,255,255,0.05)",borderRadius:12,padding:4},children:Ee.map(c=>e.jsx("button",{onClick:()=>
1065{u(c.key),C()},"data-testid":`files-tab-${c.key}`,style:{flex:1,padding:"10px 8px",borderRadius:10,border:"none",cursor:"pointer",fontFamily:"'Geist', system-ui, sans-serif",fontSize:13,fontWeight:600,transition:"all 0.15s",background:p===c.key?s:"transparent",color:p===c.key?"#000":"rgba(255,255,255,0.65)"},children:c.label},c.key))}),w?e.jsxs("div",{style:{background:"rgba(255,211,78,0.1)",border:"1px solid rgba(255,211,78,0.3)",borderRadius:12,padding:"12px 16px",marginBottom:16,display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:10},"data-testid":"compare-mode-banner",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-semibold",style:{color:s},children:"Select two photos to compare"}),e.jsx("p",{className:"text-white/60 text-xs mt-0.5",children:E.length===0?"Tap any photo below to select it":E.length===1?"Now select a second photo":"Ready â tap Compare to view side by side"})]}),e.jsxs("div",{style:{display:"flex",gap:8,flexShrink:0},children:[E.length===2&&e.jsxs("button",{className:"portal-btn",style:{fontSize:13,padding:"8px 18px",display:"flex",alignItems:"center",gap:6},onClick:()=>W(!0),"data-testid":"btn-view-comparison",children:[e.jsx(Ze,{size:14}),"Compare"]}),e.jsxs("button",{onClick:C,style:{background:"rgba(255,255,255,0.07)",border:"1px solid rgba(255,255,255,0.12)",borderRadius:8,padding:"8px 14px",cursor:"pointer",color:"rgba(255,255,255,0.6)",fontSize:13,fontFamily:"'Geist', system-ui, sans-serif",display:"flex",alignItems:"center",gap:6},"data-testid":"btn-exit-compare-mode",children:[e.jsx(ne,{size:13}),"Cancel"]})]})]}):p==="progress_photo"&&L&&e.jsxs("button",{onClick:()=>M(!0),style:{display:"flex",alignItems:"center",gap:7,background:"rgba(255,211,78,0.08)",border:"1px solid rgba(255,211,78,0.25)",borderRadius:10,padding:"9px 16px",cursor:"pointer",color:s,fontSize:13,fontFamily:"'Geist', system-ui, sans-serif",fontWeight:600,marginBottom:16,letterSpacing:"0.01em",transition:"all 0.15s"},"data-testid":"btn-enter-compare-mode",children:[e.jsx(Ze,{size:15}),"Compare Photos"]}),!w&&e.jsx("div",{className:"portal-card",style:{padding:20,marginBottom:24},children:e.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:12},children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-semibold text-white/80 text-sm mb-0.5",children:"Upload new file"}),e.jsx("p",{className:"text-white/60 text-xs",children:p==="progress_photo"?"Images (JPG, PNG, WEBP)":"Images or PDFs"})]}),e.jsxs("div",{style:{display:"flex",gap:8,alignItems:"center"},children:[e.jsx("select",{value:N,onChange:c=>h(c.target.value),"data-testid":"files-category-select",style:{background:"rgba(255,255,255,0.08)",border:"1px solid rgba(255,255,255,0.15)",borderRadius:8,color:"#fff",fontSize:13,padding:"8px 10px",cursor:"pointer",fontFamily:"'Geist', system-ui, sans-serif"},children:Ee.map(c=>e.jsx("option",{value:c.key,style:{background:"#1a1a1a"},children:c.label},c.key))}),e.jsxs("button",{className:"portal-btn",style:{fontSize:14,padding:"10px 20px",display:"flex",alignItems:"center",gap:6},disabled:g,onClick:()=>{h(p),y.current?.click()},"data-testid":"files-upload-btn",children:[g?e.jsx("span",{className:"w-4 h-4 border-2 border-black/40 border-t-black rounded-full animate-spin"}):e.jsx(Sa,{size:14}),g?"Uploadingâ¦":"Choose File"]}),e.jsx("input",{ref:y,type:"file",accept:N==="progress_photo"?"image/*":"image/*,application/pdf",style:{display:"none"},onChange:m,"data-testid":"files-input"})]})]})}),Y?e.jsx("div",{className:"text-center py-12 text-white/60 text-sm",children:"Loadingâ¦"}):d.length===0?e.jsxs("div",{style:{textAlign:"center",padding:"48px 24px",border:"1px dashed rgba(255,255,255,0.1)",borderRadius:16},children:[e.jsx(Ve,{size:36,style:{color:"rgba(255,255,255,0.15)",margin:"0 auto 12px"}}),e.jsxs("p",{className:"text-white/60 text-sm",children:["No ",Ee.find(c=>c.key===p)?.label.toLowerCase()," yet."]}),e.jsx("p",{className:"text-white/60 text-xs mt-1",children:"Use the button above to add your first file."})]}):e.jsx("div",{style:{display:"flex",flexDirection:"column",gap:10},children:d.map(c=>{const r=E.includes(c.id),l=w&&p==="progress_photo"&&f(c),o=w&&p==="progress_photo"&&f(c)&&!r&&E.length>=2;return e.jsxs("div",{className:"portal-card",style:{padding:"14px 16px",display:"flex",alignItems:"center",gap:14,cursor:l||!w&&f(c)?"pointer":"default",border:r?`1px solid ${s}`:"1px solid rgba(255,255,255,0.12)",opacity:o?.4:1,transition:"all 0.15s"},onClick:()=>{l&&!o?k(c.id):!w&&f(c)&&H(c)},"data-testid":`file-row-${c.id}`,children:[w&&p==="progress_photo"&&f(c)&&e.jsx("div",{style:{width:22,height:22,borderRadius:"50%",border:r?`2px solid ${s}
1065`:"2px solid rgba(255,255,255,0.2)",background:r?s:"transparent",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,transition:"all 0.15s"},"data-testid":`compare-select-indicator-${c.id}`,children:r&&e.jsx("span",{style:{fontFamily:"'Bebas Neue', cursive",fontSize:11,color:"#000",lineHeight:1},children:E.indexOf(c.id)+1})}),e.jsx("div",{style:{width:40,height:40,borderRadius:8,background:"rgba(255,255,255,0.06)",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,overflow:"hidden"},children:f(c)?e.jsx(s0,{uploadId:c.id}):e.jsx(Ha,{size:18,style:{color:s}})}),e.jsxs("div",{style:{flex:1,minWidth:0},children:[e.jsx("p",{className:"text-white/85 text-sm font-medium truncate","data-testid":`file-name-${c.id}`,title:c.filename,children:c.filename}),e.jsx("p",{className:"text-white/60 text-xs mt-0.5","data-testid":`file-date-${c.id}`,children:T(c.uploadedAt)})]}),!w&&e.jsxs(e.Fragment,{children:[e.jsx("a",{href:we(c.id),target:"_blank",rel:"noreferrer",onClick:S=>S.stopPropagation(),style:{color:"rgba(255,255,255,0.65)",fontSize:12,textDecoration:"none",padding:"6px 10px",borderRadius:6,border:"1px solid rgba(255,255,255,0.1)",whiteSpace:"nowrap"},"data-testid":`file-view-${c.id}`,children:"View"}),e.jsx("button",{onClick:S=>{S.stopPropagation(),i.mutate(c.id)},disabled:i.isPending,style:{background:"rgba(255,211,78,0.08)",border:"1px solid rgba(255,211,78,0.18)",borderRadius:6,padding:"6px 8px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},"data-testid":`file-archive-${c.id}`,"aria-label":"Archive file",title:"Archive file",children:e.jsx(Ve,{size:14,style:{color:s}})})]})]},c.id)})})]})}),D&&e.jsx(n0,{upload:D,onClose:()=>H(null),formatDate:T})]})}function o0({member:a}){const{toast:n}=se(),p=le(),[u,g]=t.useState(a.socialMediaConsent),x=ae({mutationFn:async h=>{const y=await B("/api/forged-portal/social-media-consent",{method:"PATCH",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({consent:h})});if(!y.ok)throw new Error("Failed to update consent");return y.json()},onSuccess:h=>{g(h.socialMediaConsent),p.invalidateQueries({queryKey:["/api/forged-portal/me"]}),n({title:h.socialMediaConsent?"Consent granted":"Consent withdrawn",description:h.socialMediaConsent?"You've opted in to having your photos and results shared on social media.":"Your photos and results will no longer be shared on social media."})},onError:()=>{n({title:"Something went wrong",description:"Could not update your preference. Please try again.",variant:"destructive"})}}),N=()=>{const h=u,y=!u;g(y),x.mutate(y,{onError:()=>{g(h)}})};return e.jsxs("div",{className:"section-page-bg portal-content portal-section-body",children:[e.jsx(kt,{title:"Settings",subtitle:"Manage your preferences and privacy choices."}),e.jsxs("div",{className:"portal-card p-6",children:[e.jsx("h3",{className:"portal-heading text-xl mb-1",style:{color:s},children:"Social Media Consent"}),e.jsx("p",{className:"text-white/65 text-sm mb-6 leading-relaxed",children:"Allow Ludus Magnus to use your photos and transformation results on social media (e.g. Instagram, Facebook). You can change this at any time â withdrawing consent does not affect anything already posted."}),e.jsxs("div",{className:"flex items-center justify-between p-4 rounded-xl",style:{background:"rgba(255,255,255,0.04)",border:"1px solid rgba(255,255,255,0.08)"},children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-white font-semibold text-sm","data-testid":"text-consent-label",children:u?"I consent to social media use":"Not consenting"}),e.jsx("p",{className:"text-white/60 text-xs mt-0.5",children:u?"Your content may be shared on our social media channels.":"Your content will not be posted on social media."})]}),e.jsx("button",{onClick:N,disabled:x.isPending,"data-testid":"toggle-social-media-consent","aria-checked":u,role:"switch",style:{width:48,height:28,borderRadius:14,border:"none",cursor:x.isPending?"not-allowed":"pointer",background:u?`linear-gradient(135deg, ${s} 0%, #C49A3D 100%)`:"rgba(255,255,255,0.12)",position:"relative",transition:"background 0.2s",flexShrink:0,opacity:x.isPending?.6:1},children:e.jsx("span",{style:{position:"absolute",top:3,left:u?23:3,width:22,height:22,borderRadius:"50%",background:"#fff",transition:"left 0.2s",boxShadow:"0 1px 4px rgba(0,0,0,0.3)"}})})]}),x.isPending&&e.jsx("p",{className:"text-white/60 text-xs mt-3 text-center","data-testid":"text-consent-saving",children:"Savingâ¦"})]})]})}const Pe={2:120,3:150,4:180,5:200,6:240};function l0({member:a}){const{toast:n}=se(),p=le(),[u,g]=t.useState(1),[x,N]=t.useState(null),[h,y]=t.useState(null),[w,M]=t.useState(""),[E,v]=t.useState(a.firstName),[A,W]=t.useState(""),[D,H]=t.useState(""),[I,Y]=t.useState([]),[i,m]=t.useState(!1),d=t.useState(()=>new URLSearchParams(window.location.search).get("payment"))[0],{data:f=[],isLoading:T}=U({queryKey:["/api/group-pt/slots"],queryFn:async()=>{const b=await B("/api/group-pt/slots");return b.ok?b.json():[]}}),{data:V,isLoading:L}=U({queryKey:["/api/group-pt/my-booking"],queryFn:async()=>{const b=await B("/api/group-pt/my-booking");return b.ok?b.json():null}});t.useEffect(()=>{if(!x)return;const b=x-1;Y(c=>Array.from({length:b},(r,l)=>c[l]??{name:"",email:""}))},[x]);const k=async()=>
1065{if(!(!x||!E.trim()||!A.trim())){m(!0);try{const b=[{name:E.trim(),email:A.trim()},...I],c={groupSize:x,leadName:E.trim(),leadEmail:A.trim(),leadPhone:D.trim()||void 0,attendees:b};h?c.slotId=h:w.trim()&&(c.preferredTimes=w.trim());const r=await B("/api/group-pt/checkout",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(c)});if(!r.ok){const o=await r.json().catch(()=>({error:"Unknown error"}));throw new Error(o.error||"Failed to create checkout")}const{url:l}=await r.json();window.location.href=l}catch(b){n({title:"Something went wrong",description:b instanceof Error?b.message:"Please try again.",variant:"destructive"})}finally{m(!1)}}},C=x?Pe[x]:0,G=Math.round(C/2);if(L)return e.jsx("div",{className:"portal-section-body","data-testid":"section-group-pt",children:e.jsx("p",{style:{color:"rgba(255,255,255,0.4)",fontSize:13},children:"Loadingâ¦"})});if(d==="success"||V?.status==="deposit_paid"||V?.status==="completed"){const b=V;return e.jsx("div",{className:"portal-section-body space-y-6","data-testid":"section-group-pt",children:e.jsxs("div",{style:{background:"rgba(34,197,94,0.07)",border:"1px solid rgba(34,197,94,0.2)",borderRadius:16,padding:"24px 28px"},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,marginBottom:8},children:[e.jsx(Oe,{size:20,color:"#22c55e",weight:"fill"}),e.jsx("p",{style:{color:"#22c55e",fontWeight:700,fontSize:15},children:b?.status==="completed"?"Session complete!":"Deposit received â you're booked in!"})]}),e.jsx("p",{style:{color:"rgba(255,255,255,0.55)",fontSize:13,lineHeight:1.6},children:"Joe will be in touch to confirm the details. The remaining 50% balance is due on completion of the session."}),b&&e.jsx("div",{style:{marginTop:20,display:"grid",gridTemplateColumns:"1fr 1fr",gap:"10px 28px"},children:[["Session",b.slotLabel??b.notes??"Preferred time TBC"],["Group size",`${b.groupSize} people`],["Total price",`$${(b.totalPriceCents/100).toFixed(0)} NZD`],["Deposit paid",`$${(b.depositCents/100).toFixed(0)} NZD`],["Balance due",`$${(b.depositCents/100).toFixed(0)} NZD on completion`]].map(([c,r])=>e.jsxs("div",{children:[e.jsx("p",{style:{color:"rgba(255,255,255,0.38)",fontSize:10,textTransform:"uppercase",letterSpacing:"0.08em"},children:c}),e.jsx("p",{style:{color:"rgba(255,255,255,0.85)",fontSize:13,fontWeight:600,marginTop:2},children:r})]},c))})]})})}return V?.status==="pending_payment"?e.jsx("div",{className:"portal-section-body space-y-6","data-testid":"section-group-pt",children:e.jsxs("div",{style:{background:"rgba(255,211,78,0.07)",border:"1px solid rgba(255,211,78,0.15)",borderRadius:16,padding:"24px 28px"},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,marginBottom:8},children:[e.jsx(tt,{size:20,color:s,weight:"regular"}),e.jsx("p",{style:{color:s,fontWeight:700,fontSize:15},children:"Booking awaiting payment"})]}),e.jsx("p",{style:{color:"rgba(255,255,255,0.55)",fontSize:13,lineHeight:1.6},children:"Your booking was submitted but payment hasn't been confirmed yet. If you were just redirected from the payment page, it may take a moment to update."}),e.jsx("div",{style:{marginTop:16,display:"grid",gridTemplateColumns:"1fr 1fr",gap:"8px 24px"},children:[["Session",V.slotLabel??V.notes??"TBC"],["Group size",`${V.groupSize} people`],["Deposit",`$${(V.depositCents/100).toFixed(0)} NZD`]].map(([b,c])=>e.jsxs("div",{children:[e.jsx("p",{style:{color:"rgba(255,255,255,0.38)",fontSize:10,textTransform:"uppercase",letterSpacing:"0.08em"},children:b}),e.jsx("p",{style:{color:"rgba(255,255,255,0.85)",fontSize:13,fontWeight:600,marginTop:2},children:c})]},b))}),e.jsx("button",{onClick:()=>p.invalidateQueries({queryKey:["/api/group-pt/my-booking"]}),style:{marginTop:16,padding:"8px 18px",borderRadius:8,background:"rgba(255,255,255,0.06)",border:"1px solid rgba(255,255,255,0.12)",color:"rgba(255,255,255,0.6)",fontSize:12,cursor:"pointer"},"data-testid":"button-refresh-booking",children:"Refresh status"})]})}):e.jsxs("div",{className:"portal-section-body","data-testid":"section-group-pt",children:[u===1&&e.jsxs("div",{children:[e.jsx("h2",{style:{color:s,fontSize:18,fontWeight:700,marginBottom:6},"data-testid":"heading-group-pt",children:"Small Group PT"}),e.jsx("p",{style:{color:"rgba(255,255,255,0.5)",fontSize:13,lineHeight:1.7,marginBottom:24},children:"Train with your friends, coached by Joe. Select how many people are joining â the session price is per session, split between the group."}),e.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(130px, 1fr))",gap:10,marginBottom:20},children:[2,3,4,5,6].map(b=>{const c=Pe[b],r=Math.round(c/b),l=x===b;return e.jsxs("button",{onClick:()=>N(b),"data-testid":`button-group-size-${b}`,style:{padding:"16px 10px",borderRadius:14,border:l?`1.5px solid ${s}`:"1.5px solid rgba(255,255,255,0.09)",background:l?"rgba(255,211,78,0.08)":"rgba(255,255,255,0.02)",cursor:"pointer",textAlign:"center",transition:"all 0.15s"},children:[e.jsx("p",{style:{color:l?s:"rgba(255,255,255,0.85)",fontWeight:700,fontSize:24,marginBottom:0},children:b}),e.jsx("p",{style:{color:"rgba(255,255,255,0.38)",fontSize:10,textTransform:"uppercase",letterSpacing:"0.1em",marginBottom:8},children:"People"}),e.jsxs("p",{style:{color:l?s:"rgba(255,255,255,0.8)",fontWeight:700,fontSize:16},children:["$",c]}),e.jsxs("p",{style:{color:"rgba(255,255,255,0.38)",fontSize:11},children:["$",r,"/person"]})]},b)})}),x&&e.jsxs("div",{style:{padding:"14px 18px",background:"rgba(255,211,78,0.05)",borderRadius:12,border:"1px solid rgba(255,211,78,0.12)",marginBottom:16,display:"flex",justifyContent:"space-between",alignItems:"center"},children:[e.jsxs("div",{children:[e.jsx("p",{style:{color:"rgba(255,255,255,0.4)",fontSize:10,textTransform:"uppercase",letterSpacing:"0.1em"},children:"50% deposit today"}),e.jsxs("p",{style:{color:s,fontSize:22,fontWeight:700},children:["$",G]})]}),e.jsxs("div",{style:{textAlign:"right"},children:[e.jsx("p",{style:{color:"rgba(255,255,255,0.4)",fontSize:10,textTransform:"uppercase",letterSpacing:"0.1em"},children:"Balance on completion"}),e.jsxs("p",{style:{color:"rgba(255,255,255,0.65)",fontSize:16,fontWeight:600},children:["$",G]})]})]}),e.jsx("button",{onClick:()=>{x&&g(2)},disabled:!x,"data-testid":"button-gpt-continue",style:{width:"100%",padding:"14px 0",borderRadius:12,background:x?s:"rgba(255,255,255,0.07)",color:x?"#000":"rgba(255,255,255,0.25)",fontWeight:700,fontSize:15,border:"none",cursor:x?"pointer":"not-allowed",transition:"all 0.15s"},children:"Continue"})]}),u===2&&e.jsxs("div",{children:[e.jsx("button",{onClick:()=>g(1),style:{color:"rgba(255,255,255,0.38)",fontSize:13,background:"none",border:"none",cursor:"pointer",marginBottom:20,display:"flex",alignItems:"center",gap:6,padding:0},children:"â Back"}),e.jsx("h2",{style:{color:s,fontSize:18,fontWeight:700,marginBottom:6},children:"Choose a Time"}),T?e.jsx("p",{style:{color:"rgba(255,255,255,0.4)",fontSize:13,marginBottom:20},children:"Loading slotsâ¦"}):f.length>0?e.jsx("div",{style:{display:"grid",gap:8,marginBottom:20},children:f.map(b=>{const c=h===b.id;return e.jsx("button",{onClick:()=>y(b.id),"data-testid":`button-slot-${b.id}`,style:{padding:"14px 18px",borderRadius:12,border:c?`1.5px solid ${s}`:"1.5px solid rgba(255,255,255,0.09)",background:c?"rgba(255,211,78,0.07)":"rgba(255,255,255,0.02)",cursor:"pointer",textAlign:"left",color:c?s:"rgba(255,255,255,0.8)",fontWeight:c?700:500,fontSize:14,transition:"all 0.15s"},children:b.label},b.id)})}):e.jsxs("div",{style:{marginBottom:20},children:[e.jsx("div",{style:{background:"rgba(255,255,255,0.03)",border:"1px solid rgba(255,255,255,0.07)",borderRadius:12,padding:"14px 18px",marginBottom:14},children:e.jsx("p",{style:{color:"rgba(255,255,255,0.55)",fontSize:13,lineHeight:1.6},children:"Time slots are coming soon. Let us know your preferred times below and Joe will be in touch to confirm."})}),e.jsx("label",{style:{color:"rgba(255,255,255,0.45)",fontSize:11,textTransform:"uppercase",letterSpacing:"0.1em",display:"block",marginBottom:6},children:"Preferred times"}),e.jsx("textarea",{value:w,onChange:b=>M(b.target.value),placeholder:"e.g. Saturday mornings, weekday evenings after 5pmâ¦","data-testid":"input-preferred-times",rows:3,style:{width:"100%",padding:"10px 14px",borderRadius:10,border:"1px solid rgba(255,255,255,0.1)",background:"rgba(255,255,255,0.03)",color:"rgba(255,255,255,0.85)",fontSize:13,resize:"vertical",fontFamily:"inherit",outline:"none",boxSizing:"border-box"}})]}),e.jsx("button",{onClick:()=>g(3),disabled:f.length>0&&!h,"data-testid":"button-gpt-to-attendees",style:{width:"100%",padding:"14px 0",borderRadius:12,background:f.length===0||h?s:"rgba(255,255,255,0.07)",color:f.length===0||h?"#000":"rgba(255,255,255,0.25)",fontWeight:700,fontSize:15,border:"none",cursor:f.length===0||h?"pointer":"not-allowed",transition:"all 0.15s"},children:"Next: Your Details"})]}),u===3&&e.jsxs("div",{children:[e.jsx("button",{onClick:()=>g(2),style:{color:"rgba(255,255,255,0.38)",fontSize:13,background:"none",border:"none",cursor:"pointer",marginBottom:20,display:"flex",alignItems:"center",gap:6,padding:0},children:"â Back"}),e.jsx("h2",{style:{color:s,fontSize:18,fontWeight:700,marginBottom:6},children:"Your Details"}),e.jsx("p",{style:{color:"rgba(255,255,255,0.5)",fontSize:13,lineHeight:1.6,marginBottom:20},children:"We need everyone's name and email so we can prepare for the session."}),e.jsxs("div",{style:{marginBottom:14,padding:"16px 18px",borderRadius:14,background:"rgba(255,255,255,0.03)",border:"1px solid rgba(255,211,78,0.15)"},children:[e.jsx("p",{style:{color:s,fontSize:10,fontWeight:700,textTransform:"uppercase",letterSpacing:"0.1em",marginBottom:12},children:"You (Session Organiser)"}),e.jsxs("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:10},children:[e.jsxs("div",{children:[e.jsx("label",{style:{color:"rgba(255,255,255,0.4)",fontSize:11,display:"block",marginBottom:4},children:"Name"}),e.jsx("input",{type:"text",value:E,onChange:b=>v(b.target.value),placeholder:"Your name","data-testid":"input-lead-name",style:{width:"100%",padding:"8px 12px",borderRadius:8,border:"1px solid rgba(255,255,255,0.1)",background:"rgba(255,255,255,0.04)",color:"rgba(255,255,255,0.85)",fontSize:13,outline:"none",boxSizing:"border-box"}})]}),e.jsxs("div",{children:[e.jsx("label",{style:{color:"rgba(255,255,255,0.4)",fontSize:11,display:"block",marginBottom:4},children:"Email"}),e.jsx("input",{type:"email",value:A,onChange:b=>W(b.target.value),placeholder:"[email protected]","data-testid":"input-lead-email",style:{width:"100%",padding:"8px 12px",borderRadius:8,border:"1px solid rgba(255,255,255,0.1)",background:"rgba(255,255,255,0.04)",color:"rgba(255,255,255,0.85)",fontSize:13,outline:"none",boxSizing:"border-box"}})]})]}),e.jsxs("div",{style:{marginTop:10},children:[e.jsx("label",{style:{color:"rgba(255,255,255,0.4)",fontSize:11,display:"block",marginBottom:4},children:"Phone (optional)"}),e.jsx("input",{type:"tel",value:D,onChange:b=>H(b.target.value),placeholder:"027 123 4567","data-testid":"input-lead-phone",style:{width:"100%",padding:"8px 12px",borderRadius:8,border:"1px solid rgba(255,255,255,0.1)",background:"rgba(255,255,255,0.04)",color:"rgba(255,255,255,0.85)",fontSize:13,outline:"none",boxSizing:"border-box"}})]})]}),I.map((b,c)=>e.jsxs("div",{style:{marginBottom:10,padding:"14px 18px",borderRadius:14,background:"rgba(255,255,255,0.02)",border:"1px solid rgba(255,255,255,0.07)"},children:[e.jsxs("p",{style:{color:"rgba(255,255,255,0.45)",fontSize:10,fontWeight:700,textTransform:"uppercase",letterSpacing:"0.1em",marginBottom:10},children:["Person ",c+2]}),e.jsxs("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:10},children:[e.jsxs("div",{children:[e.jsx("label",{style:{color:"rgba(255,255,255,0.4)",fontSize:11,display:"block",marginBottom:4},children:"Name"}),e.jsx("input",{type:"text",value:b.name,onChange:r=>{const l=[...I];l[c]={...l[c],name:r.target.value},Y(l)},placeholder:"Full name","data-testid":`input-attendee-name-${c}`,style:{width:"100%",padding:"8px 12px",borderRadius:8,border:"1px solid rgba(255,255,255,0.1)",background:"rgba(255,255,255,0.04)",color:"rgba(255,255,255,0.85)",fontSize:13,outline:"none",boxSizing:"border-box"}})]}),e.jsxs("div",{children:[e.jsx("label",{style:{color:"rgba(255,255,255,0.4)",fontSize:11,display:"block",marginBottom:4},children:"Email"}),e.jsx("input",{type:"email",value:b.email,onChange:r=>{const l=[...I];l[c]={...l[c],email:r.target.value},Y(l)},placeholder:"[email protected]","data-testid":`input-attendee-email-${c}`,style:{width:"100%",padding:"8px 12px",borderRadius:8,border:"1px solid rgba(255,255,255,0.1)",background:"rgba(255,255,255,0.04)",color:"rgba(255,255,255,0.85)",fontSize:13,outline:"none",boxSizing:"border-box"}})]})]})]},c)),e.jsxs("div",{style:{padding:"14px 18px",background:"rgba(255,211,78,0.05)",borderRadius:12,border:"1px solid rgba(255,211,78,0.12)",marginBottom:14,marginTop:6},children:[e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:4,color:"rgba(255,255,255,0.5)",fontSize:13},children:[e.jsxs("span",{children:[x," people ·"," ",h?f.find(b=>b.id===h)?.label??"Selected slot":w||"Preferred time TBC"]}),e.jsxs("span",{children:["$",C," NZD total"]})]}),e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",color:s,fontWeight:700,fontSize:15},children:[e.jsx("span",{children:"50% deposit due today"}),e.jsxs("span",{children:["$",G]})]})]}),e.jsx("button",{onClick:k,disabled:i||!E.trim()||!A.trim()||I.some(b=>!b.name.trim()||!b.email.trim()),"data-testid":"button-gpt-pay",style:{width:"100%",padding:"14px 0",borderRadius:12,background:i||!E.trim()||!A.trim()||I.some(b=>!b.name.trim()||!b.email.trim())?"rgba(255,255,255,0.07)":s,color:i||!E.trim()||!A.trim()||I.some(b=>!b.name.trim()||!b.email.trim())?"rgba(255,255,255,0.25)":"#000",fontWeight:700,fontSize:15,border:"none",cursor:i||!E.trim()||!A.trim()||I.some(b=>!b.name.trim()||!b.email.trim())?"not-allowed":"pointer",transition:"all 0.15s"},children:i?"Redirecting to paymentâ¦":`Pay $${G} Deposit`}),e.jsxs("p",{style:{textAlign:"center",color:"rgba(255,255,255,0.28)",fontSize:11,marginTop:8},children:["Non-refundable deposit · Balance $",G," due on completion · Powered by Stripe"]})]})]})}export{k0 as LoginScreen,v0 as default};
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.