PageSourceSearch

https://ludusmagnus.replit.app/assets/ForgedPortal-CUOE5k4S.js

js ludusmagnus.replit.app collected 2026-10-03 03:57:18 UTC 263,802 bytes, 1,065 lines download raw bytes

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.