PageSourceSearch

https://vitena.care/en/chunk-A5NWMNUA.js

js vitena.care collected 2026-10-02 00:27:18 UTC 425,595 bytes, 1 lines download raw bytes

1import{a as bt}from"./chunk-M6QFNB7C.js";import{a as io}from"./chunk-ENI3A5LH.js";import{a as xt}from"./chunk-PIO6G74C.js";import{a as oo}from"./chunk-27KOZ3CM.js";import{b as ao}from"./chunk-SUTTY7YU.js";import{a as Kn,b as qn}from"./chunk-Q4T47NKT.js";import{n as Kt,y as Bn}from"./chunk-RBXEFX5L.js";import{a as eo}from"./chunk-TN234PPQ.js";import{a as Qn,b as Zn}from"./chunk-NPL2Q7M3.js";import{a as Nt}from"./chunk-UUIYZ5Y4.js";import{a as no}from"./chunk-EB6RRKNW.js";import{b as it,d as at,e as rt}from"./chunk-RUPRUE76.js";import{a as to}from"./chunk-V5F6NCSC.js";import{a as ee}from"./chunk-23KJKC6K.js";import{a as Jn}from"./chunk-YBV2YWCE.js";import{a as jn,b as St}from"./chunk-JHGROJSG.js";import{a as qe}from"./chunk-QXIRMIYY.js";import{c as Yn}from"./chunk-OCONZEUS.js";import"./chunk-E37JV6S2.js";import"./chunk-IJ4IFDGU.js";import"./chunk-76VSLO7F.js";import"./chunk-M22TQCF6.js";import"./chunk-XSZTOJMI.js";import{a as ht}from"./chunk-77NMTAFC.js";import{a as ft}from"./chunk-BCPZPP5Y.js";import{c as Ke}from"./chunk-2SZU4ZME.js";import{a as wn,b as ve,c as $n,d as me,e as _e,f as Fn}from"./chunk-DAO3SMRL.js";import{B as Tt,D as Xn,E as je,F as Wn,c as Ye,d as Mt,e as Be,f as tt,h as Et,j as nt,k as ot,l as Gn,r as zn,s as Un,w as Vn,x as Dn,y as Hn}from"./chunk-XAF3MVVX.js";import{a as We}from"./chunk-IKIHJGQ5.js";import{a as gt}from"./chunk-Z5DLUQQM.js";import{d as In}from"./chunk-TYFWTMGI.js";import{a as yn,e as kn}from"./chunk-I73U4EKQ.js";import{Ab as X,Bb as W,Bc as et,Bd as Pe,Cb as A,Cc as fe,Db as o,Eb as a,Fb as m,Fd as j,Gb as C,Gc as R,Hb as P,Ib as $,Ic as y,Jb as Ge,Kb as ze,Nc as He,Oa as Nn,Ob as x,Oc as q,Pa as te,Pb as ne,Sa as bn,Sb as _,Ta as ye,Tb as ae,U as Ot,Ua as r,Ub as re,Vb as Le,Wb as h,Wc as Rn,Xb as Z,Yb as c,Z as v,ab as Ee,ca as O,da as u,ea as E,fa as N,fb as H,fc as Ln,gc as Te,hc as z,jc as be,ka as Re,kc as d,lc as M,mc as I,n as pt,nc as le,nd as ut,oa as S,qa as jt,rc as Ue,sc as Ve,tc as De,ub as ge,va as Sn,wb as p,xb as g,yb as xn,yc as vn,z as hn,zb as An,zd as Xe}from"./chunk-UWUNFDSH.js";import{a as Je,b as Qe}from"./chunk-HSCBD3RX.js";function Oo(n,t){n&1&&(C(0,"div",8),$(1,"div",11),C(2,"h2"),_(3,0),P(),C(4,"p"),_(5,1),P()());}function uo(n,t){if(n&1&&(C(0,"div",9)(1,"div",12),E(),C(2,"svg",13),$(3,"path",14),P()(),N(),C(4,"h2"),_(5,2),P(),C(6,"p"),d(7),P(),C(8,"div",15)(9,"p",16),_(10,3),P()()()),n&2){let e=c();r(7),M(e.error);}}function Mo(n,t){if(n&1&&(C(0,"div",10)(1,"div",12),E(),C(2,"svg",13),$(3,"path",17),P()(),N(),C(4,"h2"),_(5,4),P(),C(6,"p"),d(7),P(),C(8,"div",15)(9,"p",16),_(10,5),P()()()),n&2){let e=c();r(7),M(e.error);}}var At=class n{route=v(ve);router=v(me);portalService=v(ee);cdr=v(Rn);loading=!0;error=null;isRateLimited=!1;ngOnInit(){let t=this.route.snapshot.paramMap.get("token");if(!t){this.loading=!1,this.error="No access token was provided.";return;}this.validateToken(t);}validateToken(t){this.portalService.validateToken(t).subscribe({next:()=>{this.router.navigate(["/portal/meal-plans"]);},error:e=>{this.loading=!1,e?.status===429?(this.isRateLimited=!0,this.error="Too many attempts. Please wait and try again."):(this.isRateLimited=!1,this.error=e?.error?.message||e?.message||"The link is invalid or has expired."),this.cdr.detectChanges();}});}static ɵfac=function(e){return new(e||n)();};static ɵcmp=H({type:n,selectors:[["app-token-access"]],decls:5,vars:3,consts:()=>{let t;t="Verifying access...";let e;e="Please wait while we validate your link.";let i;i="Too Many Attempts";let l;l="Please wait a few minutes and try again.";let s;s="Invalid Link";let T;return T="If you believe this is an error, please contact your nutritionist to get a new link.",[t,e,i,l,s,T,[1,"token-access-container"],[1,"card"],[1,"loading-state"],[1,"error-state","rate-limited"],[1,"error-state"],[1,"spinner"],[1,"error-icon"],["xmlns","http://www.w3.org/2000/svg","viewBox","0 0 24 24","fill","currentColor"],["d","M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z"],[1,"error-actions"],[1,"hint"],["d","M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"]];},template:function(e,i){e&1&&(C(0,"div",6)(1,"div",7),p(2,Oo,6,0,"div",8),p(3,uo,11,1,"div",9),p(4,Mo,11,1,"div",10),P()()),e&2&&(r(2),g(i.loading&&!i.error?2:-1),r(),g(i.isRateLimited?3:-1),r(),g(i.error&&!i.isRateLimited?4:-1));},dependencies:[j],styles:['.token-access-container[_ngcontent-%COMP%]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.card[_ngcontent-%COMP%]{background:#fff;border-radius:16px;padding:48px;max-width:480px;width:100%;text-align:center;box-shadow:0 20px 60px #0003}.loading-state[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;gap:16px}.spinner[_ngcontent-%COMP%]{width:48px;height:48px;border:4px solid #e5e7eb;border-top-color:#667eea;border-radius:50%;animation:_ngcontent-%COMP%_spin 1s linear infinite}@keyframes _ngcontent-%COMP%_spin{to{transform:rotate(360deg)}}.loading-state[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font-size:24px;font-weight:600;color:#1f2937;margin:0}.loading-state[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:#6b7280;margin:0}.error-state[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;gap:16px}.error-icon[_ngcontent-%COMP%]{width:64px;
1height:64px;color:#ef4444}.error-icon[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:100%;height:100%}.error-state[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font-size:24px;font-weight:600;color:#1f2937;margin:0}.error-state[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:#6b7280;margin:0;font-size:16px}.error-actions[_ngcontent-%COMP%]{margin-top:16px}.hint[_ngcontent-%COMP%]{font-size:14px;color:#9ca3af;max-width:320px}.rate-limited[_ngcontent-%COMP%]   .error-icon[_ngcontent-%COMP%]{color:#f59e0b}.rate-limited[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{color:#b45309}[data-theme="dark"][_nghost-%COMP%]   .token-access-container[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .token-access-container[_ngcontent-%COMP%]{background:linear-gradient(135deg,#1e293b,#0f172a)}[data-theme="dark"][_nghost-%COMP%]   .card[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .card[_ngcontent-%COMP%]{background:#1e293b;box-shadow:0 20px 60px #00000080}[data-theme="dark"][_nghost-%COMP%]   .spinner[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .spinner[_ngcontent-%COMP%]{border-color:#475569;border-top-color:#667eea}[data-theme="dark"][_nghost-%COMP%]   .loading-state[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .loading-state[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .loading-state[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .loading-state[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .error-state[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .error-state[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .error-state[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .error-state[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .hint[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .hint[_ngcontent-%COMP%]{color:#cbd5e1}[data-theme="dark"][_nghost-%COMP%]   .rate-limited[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .rate-limited[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{color:#fbbf24}']});};function Eo(n,t){if(n&1&&(o(0,"p",10),d(1),a()),n&2){let e=c();r(),M(e.errorMessage());}}function To(n,t){n&1&&m(0,"span",12);}function fo(n,t){n&1&&(o(0,"span"),_(1,2),a());}var Lt=class n{portalService=v(ee);displayName="";saving=S(!1);errorMessage=S("");async submit(){let t=this.displayName.trim();if(!t||this.saving())return;let e=t.split(/\s+/),i=e[0],l=e.slice(1).join(" ");this.saving.set(!0),this.errorMessage.set("");try{await pt(this.portalService.updateName(i,l));}catch(s){this.errorMessage.set(s?.message||"Could not save your name. Please try again.");}finally{this.saving.set(!1);}}static ɵfac=function(e){return new(e||n)();};static ɵcmp=H({type:n,selectors:[["app-portal-name-capture"]],decls:14,vars:5,consts:()=>{let t;t="Your name";let e;e="Welcome aboard!";let i;i="What should we call you?";let l;return l="Continue",[e,i,l,[1,"name-overlay"],[1,"name-card"],[1,"name-emoji"],[1,"name-title"],[1,"name-subtitle"],[3,"ngSubmit"],["type","text","name","displayName","maxlength","100","autocomplete","given-name","placeholder",t,"autofocus","",1,"name-input",3,"ngModelChange","ngModel","disabled"],[1,"name-error"],["type","submit",1,"name-submit",3,"disabled"],[1,"btn-spinner"]];},template:function(e,i){e&1&&(o(0,"div",3)(1,"div",4)(2,"div",5),d(3,"\u{1F44B}"),a(),o(4,"h1",6),_(5,0),a(),o(6,"p",7),_(7,1),a(),o(8,"form",8),h("ngSubmit",function(){return i.submit();}),o(9,"input",9),De("ngModelChange",function(s){return Ve(i.displayName,s)||(i.displayName=s),s;}),a(),p(10,Eo,2,1,"p",10),o(11,"button",11),p(12,To,1,0,"span",12)(13,fo,2,0,"span"),a()()()()),e&2&&(r(9),Ue("ngModel",i.displayName),A("disabled",i.saving()),r(),g(i.errorMessage()?10:-1),r(),A("disabled",i.saving()||!i.displayName.trim()),r(),g(i.saving()?12:13));},dependencies:[j,je,ot,Ye,Be,tt,Tt,nt,Et],styles:['.name-overlay[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:3000;display:flex;align-items:center;justify-content:center;padding:20px;padding-bottom:calc(20px + env(safe-area-inset-bottom,0px));background:#0f172a8c;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:_ngcontent-%COMP%_nameFadeIn .2s ease-out}.name-card[_ngcontent-%COMP%]{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:40px 32px;max-width:420px;width:100%;text-align:center;box-shadow:0 12px 40px #0000001f;animation:_ngcontent-%COMP%_nameSlideUp .25s ease-out}.name-emoji[_ngcontent-%COMP%]{font-size:2.6rem;line-height:1;margin-bottom:12px}.name-title[_ngcontent-%COMP%]{font-size:1.4rem;font-weight:700;color:#1f2937;margin:0 0 6px}.name-subtitle[_ngcontent-%COMP%]{color:#6b7280;margin:0 0 24px}.name-input[_ngcontent-%COMP%]{width:100%;padding:13px 16px;font-size:1rem;color:#1f2937;background:#f9fafb;border:1px solid #d1d5db;border-radius:10px;transition:border-color .15s,box-shadow .15s;box-sizing:border-box}.name-input[_ngcontent-%COMP%]:focus{outline:none;border-color:#03a791;box-shadow:0 0 0 3px #03a79126;background:#fff}.name-input[_ngcontent-%COMP%]:disabled{opacity:.6}.name-error[_ngcontent-%COMP%]{color:#dc3545;font-size:.9rem;margin:10px 0 0;text-align:left}.name-submit[_ngcontent-%COMP%]{margin-top:16px;width:100%;display:inline-flex;align-items:center;justify-content:center;min-height:48px;background:#03a791;color:#fff;border:none;border-radius:10px;padding:12px 24px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .15s ease}.name-submit[_ngcontent-%COMP%]:hover:not(:disabled){background:#02d1ac}.name-submit[_ngcontent-%COMP%]:disabled{opacity:.6;cursor:not-allowed}.btn-spinner[_ngcontent-%COMP%]{width:20px;height:20px;border:3px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:_ngcontent-%COMP%_nameSpin .8s linear infinite}@keyframes _ngcontent-%COMP%_nameSpin{to{transform:rotate(360deg)}}@keyframes _ngcontent-%COMP%_nameFadeIn{0%{opacity:0}
1to{opacity:1}}@keyframes _ngcontent-%COMP%_nameSlideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}[data-theme="dark"][_nghost-%COMP%]   .name-card[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .name-card[_ngcontent-%COMP%]{background:#1e293b;border-color:#334155;box-shadow:0 12px 40px #00000080}[data-theme="dark"][_nghost-%COMP%]   .name-title[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .name-title[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .name-subtitle[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .name-subtitle[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .name-input[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .name-input[_ngcontent-%COMP%]{background:#0f172a;border-color:#475569;color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .name-input[_ngcontent-%COMP%]:focus, [data-theme="dark"]   [_nghost-%COMP%]   .name-input[_ngcontent-%COMP%]:focus{border-color:#03a791;background:#0f172a}']});};var ho=()=>({exact:!0}),So=n=>["/portal/guide",n],No=(n,t)=>t.hub,bo=(n,t)=>t.code;function xo(n,t){n&1&&(o(0,"div",39)(1,"h1",77),d(2,"Vitena"),a()());}function Ao(n,t){if(n&1&&(o(0,"span",84),d(1),a()),n&2){let e=c(2);r(),M(e.messageUnreadCount());}}function Lo(n,t){if(n&1){let e=x();o(0,"a",87),h("click",function(){O(e);let l=c(2);return u(l.closeSidebarOnMobile());}),E(),o(1,"svg",42),m(2,"path",88),a(),N(),o(3,"span",45),_(4,9),a()(),o(5,"a",89),h("click",function(){O(e);let l=c(2);return u(l.closeSidebarOnMobile());}),E(),o(6,"svg",42),m(7,"path",90),a(),N(),o(8,"span",45),_(9,10),a()(),o(10,"a",91),h("click",function(){O(e);let l=c(2);return u(l.closeSidebarOnMobile());}),E(),o(11,"svg",92),m(12,"path",93)(13,"path",94),a(),N(),o(14,"span",45),_(15,11),a()();}}function vo(n,t){if(n&1){let e=x();o(0,"a",95),h("click",function(){O(e);let l=c(2);return u(l.closeSidebarOnMobile());}),E(),o(1,"svg",42),m(2,"path",96),a(),N(),o(3,"span",45),_(4,12),a()();}}function Ro(n,t){if(n&1){let e=x();o(0,"a",97),h("click",function(){O(e);let l=c(2);return u(l.closeSidebarOnMobile());}),E(),o(1,"svg",42),m(2,"path",98),a(),N(),o(3,"span",45),_(4,13),a()();}}function yo(n,t){if(n&1){let e=x();o(0,"a",99),h("click",function(){O(e);let l=c(2);return u(l.closeSidebarOnMobile());}),E(),o(1,"svg",42),m(2,"path",100),a(),N(),o(3,"span",45),_(4,14),a()(),o(5,"a",101),h("click",function(){O(e);let l=c(2);return u(l.closeSidebarOnMobile());}),E(),o(6,"svg",42),m(7,"path",102),a(),N(),o(8,"span",45),_(9,15),a()(),o(10,"a",103),h("click",function(){O(e);let l=c(2);return u(l.closeSidebarOnMobile());}),E(),o(11,"svg",42),m(12,"path",104)(13,"path",105),a(),N(),o(14,"span",45),_(15,16),a()();}}function ko(n,t){if(n&1){let e=x();o(0,"a",78),h("click",function(){O(e);let l=c();return u(l.closeSidebarOnMobile());}),E(),o(1,"svg",42),m(2,"path",79)(3,"path",80),a(),N(),o(4,"span",45),_(5,7),a()(),o(6,"a",81),h("click",function(){O(e);let l=c();return u(l.closeSidebarOnMobile());}),E(),o(7,"svg",82),m(8,"path",83),a(),N(),o(9,"span",45),_(10,8),a(),p(11,Ao,2,1,"span",84),a(),p(12,Lo,16,0),p(13,vo,5,0,"a",85),p(14,Ro,5,0,"a",86),p(15,yo,16,0);}if(n&2){let e=c();r(11),g(e.messageUnreadCount()>0?11:-1),r(),g(e.hasProvider()?12:-1),r(),g(e.exercisesActive()?13:-1),r(),g(e.beforeAfterActive()&&e.hasBeforeAfterPhotos()?14:-1),r(),g(e.nutritionActive()?15:-1);}}function Io(n,t){n&1&&(Ge(0),_(1,17),ze());}function wo(n,t){n&1&&(Ge(0),_(1,18),ze());}function $o(n,t){n&1&&(Ge(0),_(1,19),ze());}function Fo(n,t){n&1&&(Ge(0),_(1,20),ze());}function Go(n,t){n&1&&(Ge(0),_(1,21),ze());}function zo(n,t){n&1&&(Ge(0),_(1,22),ze());}function Uo(n,t){n&1&&(Ge(0),_(1,23),ze());}function Vo(n,t){if(n&1){let e=x();o(0,"a",106),h("click",function(){O(e);let l=c();return u(l.closeSidebarOnMobile());}),m(1,"i",48),o(2,"span",45),p(3,Io,2,0,"ng-container")(4,wo,2,0,"ng-container")(5,$o,2,0,"ng-container")(6,Fo,2,0,"ng-container")(7,Go,2,0,"ng-container")(8,zo,2,0,"ng-container")(9,Uo,2,0,"ng-container"),a()();}if(n&2){let e,i=t.$implicit;A("routerLink",fe(2,So,i.hub)),r(3),g((e=i.vertical)===1?3:e===9?4:e===3?5:e===4?6:e===5?7:e===6?8:e===7?9:-1);}}function Do(n,t){if(n&1){let e=x();o(0,"a",107),h("click",function(){O(e);let l=c();return u(l.closeSidebarOnMobile());}),E(),o(1,"svg",42),m(2,"path",108),a(),N(),o(3,"span",45),_(4,24),a()();}}function Ho(n,t){n&1&&(E(),o(0,"svg",42),m(1,"path",109),a());}function Xo(n,t){n&1&&(E(),o(0,"svg",42),m(1,"path",110),a());}function Wo(n,t){if(n&1){let e=x();o(0,"div",114)(1,"a",115),h("click",function(){O(e);let l=c(2);return l.closeProfileDropdown(),u(l.closeSidebarOnMobile());}),m(2,"i",116),o(3,"div",117)(4,"span",118),d(5),a(),o(6,"span",119),d(7),a()()(),o(8,"a",120),h("click",function(){O(e);let l=c(2);return l.closeProfileDropdown(),u(l.closeSidebarOnMobile());}),m(9,"i",121),o(10,"span"),_(11,25),a()(),o(12,"button",122),h("click",function(){O(e);let l=c(2);return u(l.logout());}),m(13,"i",123),o(14,"span"),_(15,26),a()()();}if(n&2){let e,i,l=c(2);r(5),M(((e=l.portalService.currentUser())==null?null:e.fullName)||"User"),r(2),M((i=l.portalService.currentUser())==null?null:i.email);}}function Yo(n,t){if(n&1){let e=x();o(0,"div",71)(1,"button",111),h("click",function(l){O(e);let s=c();return u(s.toggleProfileDropdown(l));}
1),o(2,"span",112),d(3),a(),m(4,"i",113),a(),p(5,Wo,16,2,"div",114),a();}if(n&2){let e=c();r(3),M(e.getUserInitials()),r(),z("rotated",e.showProfileDropdown()),r(),g(e.showProfileDropdown()?5:-1);}}function Bo(n,t){n&1&&(o(0,"a",72),E(),o(1,"svg",42),m(2,"path",108),a(),N(),o(3,"span",124),_(4,27),a()());}function jo(n,t){if(n&1){let e=x();o(0,"div",125),h("click",function(){O(e);let l=c();return u(l.toggleSidebar());}),a();}}function Ko(n,t){n&1&&m(0,"app-portal-name-capture");}function qo(n,t){n&1&&(E(),o(0,"svg",139),m(1,"path",140),a());}function Jo(n,t){if(n&1){let e=x();o(0,"button",136),h("click",function(){let l=O(e).$implicit,s=c(2);return u(s.selectLanguage(l.code));}),o(1,"span",137),d(2),a(),o(3,"span",138),d(4),a(),p(5,qo,2,0,":svg:svg",139),a();}if(n&2){let e=t.$implicit,i=c(2);z("active",i.languageService.isLanguageActive(e.code)),r(2),M(e.flag),r(2),M(e.name),r(),g(i.languageService.isLanguageActive(e.code)?5:-1);}}function Qo(n,t){if(n&1){let e=x();o(0,"div",126),h("click",function(l){O(e);let s=c();return u(s.onLanguageModalOverlayClick(l));}),o(1,"div",127)(2,"div",128)(3,"div",129),E(),o(4,"svg",130),m(5,"path",131),a(),N(),o(6,"span"),_(7,28),a()(),o(8,"button",132),h("click",function(){O(e);let l=c();return u(l.closeLanguageModal());}),E(),o(9,"svg",42),m(10,"path",133),a()()(),N(),o(11,"div",134),X(12,Jo,6,5,"button",135,bo),a()()();}if(n&2){let e=c();r(12),W(e.languageService.availableLanguages);}}function Zo(n,t){if(n&1){let e=x();o(0,"div",141),h("click",function(){O(e);let l=c();return u(l.dismissDiarySaved());}),o(1,"div",142),h("click",function(l){return O(e),u(l.stopPropagation());}),o(2,"div",143),m(3,"i",144),a(),o(4,"h3",145),_(5,29),a(),o(6,"p",146),_(7,30),a(),o(8,"button",147),h("click",function(){O(e);let l=c();return u(l.goToFoodLog());}),_(9,31),a(),o(10,"button",148),h("click",function(){O(e);let l=c();return u(l.dismissDiarySaved());}),_(11,32),a()()();}}var ei=1,ti=4,vt=class n{router=v(me);themeService=v(Nt);elementRef=v(Sn);languageService=v(ft);portalService=v(ee);foodLogService=v(oo);guestDiary=v(io);siteTracking=v(ht);voiceChannelService=v(jn);push=v(St);diaryFlushInFlight=!1;diarySavedCount=S(0);sidebarCollapsed=S(!1);isMobile=S(!1);isLanguageModalOpen=S(!1);showProfileDropdown=S(!1);currentPageTitle=S("Vitena");isDarkTheme=q(()=>this.themeService.isDark());currentLanguageInfo=q(()=>this.languageService.getCurrentLanguageInfo());isStandalone=q(()=>(this.portalService.currentUser()?.providers?.length??0)===0);hasProvider=q(()=>(this.portalService.currentUser()?.providers?.length??0)>0);messageUnreadCount=S(0);nutritionActive=q(()=>{let t=this.portalService.currentUser()?.providers??[];return t.length===0||t.some(e=>e.vertical===ei);});exercisesActive=q(()=>(this.portalService.currentUser()?.providers??[]).some(e=>e.vertical===ti));beforeAfterActive=q(()=>(this.portalService.currentUser()?.providers??[]).some(e=>[1,4,5,9].includes(e.vertical)));hasBeforeAfterPhotos=q(()=>(this.portalService.beforeAfterPhotos()?.length??0)>0);contentSections=q(()=>{let t=this.portalService.currentUser()?.providers??[],e=new Set(),i=[];for(let l of t){if(e.has(l.vertical))continue;let s=Jn.find(T=>T.vertical===l.vertical);s&&(e.add(l.vertical),i.push({hub:s.hubSlug,vertical:s.vertical}));}return i;});routerSubscription;constructor(){jt(()=>{!this.portalService.isAuthenticated()||this.guestDiary.count()===0||this.diaryFlushInFlight||(this.diaryFlushInFlight=!0,this.guestDiary.flushTo(this.foodLogService).then(t=>{this.diaryFlushInFlight=!1,t>0&&this.diarySavedCount.set(t);}));}),jt(()=>{this.portalService.isAuthenticated()&&this.push.syncNativeSubscription();});}goToFoodLog(){this.diarySavedCount.set(0),this.router.navigate(["/portal/food-log"]);}dismissDiarySaved(){this.diarySavedCount.set(0);}ngOnInit(){this.checkScreenSize(),this.updatePageTitle(this.router.url),this.trackFirstPortalVisit(),this.trackTaggedEntry(),this.portalService.isAuthenticated()&&this.portalService.refreshToken(),this.portalService.isAuthenticated()&&this.portalService.getConversationUnreadCount().subscribe({next:t=>this.messageUnreadCount.set(t.count),error:()=>this.messageUnreadCount.set(0)}),this.portalService.isAuthenticated()&&this.beforeAfterActive()&&this.portalService.getBeforeAfterPhotos().subscribe({error:()=>{}}),this.portalService.isAuthenticated()&&this.voiceChannelService.syncFromStored(),this.routerSubscription=this.router.events.pipe(hn(t=>t instanceof wn)).subscribe(t=>{let e=t;this.updatePageTitle(e.urlAfterRedirects);});}
1ngOnDestroy(){this.routerSubscription?.unsubscribe();}trackFirstPortalVisit(){let t="vit_portal_first_visit";try{if(localStorage.getItem(t))return;localStorage.setItem(t,new Date().toISOString());}catch{return;}let e=this.portalService.isAuthenticated()?"authenticated":"guest";this.siteTracking.trackPortalConversionEvent("first_portal_visit",e);}trackTaggedEntry(){let t=null;try{t=sessionStorage.getItem("vit_entry_ref"),t&&sessionStorage.removeItem("vit_entry_ref");}catch{return;}t&&this.siteTracking.trackPortalConversionEvent("portal_entry",t);}updatePageTitle(t){t.includes("/portal/session/")?this.currentPageTitle.set("Session Notes"):t.includes("/portal/meal-plans/")?this.currentPageTitle.set("Meal Plan"):t.includes("/portal/meal-plans")?this.currentPageTitle.set("Meal Plans"):t.includes("/portal/shopping-list")?this.currentPageTitle.set("Shopping List"):t.includes("/portal/messages")?this.currentPageTitle.set("Messages"):t.includes("/portal/visit-history")?this.currentPageTitle.set("My Appointments"):t.includes("/portal/food-log")?this.currentPageTitle.set("Food Log"):t.includes("/portal/progress")?this.currentPageTitle.set("My Progress"):t.includes("/portal/tools/bmi-calculator")?this.currentPageTitle.set("BMI Calculator"):t.includes("/portal/tools/calorie-calculator")?this.currentPageTitle.set("Calorie Calculator"):t.includes("/portal/tools/macro-calculator")?this.currentPageTitle.set("Macro Calculator"):t.includes("/portal/tools/ideal-weight-calculator")?this.currentPageTitle.set("Ideal Weight Calculator"):t.includes("/portal/tools/water-intake-calculator")?this.currentPageTitle.set("Water Intake Calculator"):t.includes("/portal/tools/body-fat-calculator")?this.currentPageTitle.set("Body Fat Calculator"):t.includes("/portal/tools")?this.currentPageTitle.set("Health Calculators"):this.currentPageTitle.set("Vitena");}onResize(){this.checkScreenSize();}onDocumentClick(t){if(!this.showProfileDropdown())return;let e=t.target;this.elementRef.nativeElement.querySelector(".profile-dropdown")?.contains(e)||this.showProfileDropdown.set(!1);}toggleProfileDropdown(t){t.stopPropagation(),this.showProfileDropdown.update(e=>!e);}closeProfileDropdown(){this.showProfileDropdown.set(!1);}getUserInitials(){let t=this.portalService.currentUser()?.fullName;return t?t.split(" ").map(e=>e.charAt(0)).join("").toUpperCase().substring(0,2):"U";}checkScreenSize(){let t=this.isMobile();this.isMobile.set(window.innerWidth<=768),this.isMobile()&&!t?this.sidebarCollapsed.set(!0):!this.isMobile()&&t&&this.sidebarCollapsed.set(!1);}toggleSidebar(){this.sidebarCollapsed.update(t=>!t);}closeSidebarOnMobile(){this.isMobile()&&this.sidebarCollapsed.set(!0);}toggleTheme(){this.themeService.toggleTheme();}logout(){this.portalService.logout();}openLanguageModal(){this.isLanguageModalOpen.set(!0);}closeLanguageModal(){this.isLanguageModalOpen.set(!1);}onLanguageModalOverlayClick(t){t.target.classList.contains("language-modal-overlay")&&this.closeLanguageModal();}selectLanguage(t){this.languageService.changeLanguage(t),this.closeLanguageModal();}onEscapeKey(){this.isLanguageModalOpen()&&this.closeLanguageModal();}static ɵfac=function(e){return new(e||n)();};static ɵcmp=H({type:n,selectors:[["app-portal-layout"]],hostBindings:function(e,i){e&1&&h("resize",function(){return i.onResize();},bn)("click",function(s){return i.onDocumentClick(s);},ye)("keydown.escape",function(){return i.onEscapeKey();},ye);},decls:67,vars:17,consts:()=>{let t;t="Change Language";let e;e="Home";let i;i="Explore";let l;l="Health Guide";let s;s="Food database";let T;T="Recipes";let f;f="Health quizzes";let b;b="Tools";let L;L="My Progress";let w;w="Messages";let J;J="My Appointments";let G;G="My Documents";let D;D="My Forms";let Y;Y="My Exercises";let oe;oe="Before / After";let ie;ie="Meal Plans";let B;B="Food log";let ce;ce="Shopping List";let se;se="Nutrition Guide";let F;F="Oral Health";let Oe;Oe="Mental Wellbeing";let ue;ue="Movement & Health";let Q;Q="Skin & Care";let he;he="Child Development";let Me;Me="Wellbeing";let Se;Se="Sign in";let Ne;Ne="My details";let K;K="Logout";let ke;ke="Sign in";let Ae;Ae="Select Language";let Ie;Ie="Saved to your food diary";let we;we="The foods you added were saved to your food diary.";let $e;$e="View my food diary";let Fe;return Fe="Not now",[e,i,l,s,T,f,b,L,w,J,G,D,Y,oe,ie,B,ce,se,F,Oe,ue,Q,he,Me,Se,Ne,K,ke,Ae,Ie,we,$e,Fe,[1,"portal-layout"],[1,"portal-sidebar"],[1,"sidebar-header"],["routerLink","/portal",1,"logo-container"],[1,"logo-icon"],["src","icons/icon-portal-128x128.png","alt","Vitena Logo",1,"logo-image"],[1,"logo-text"],[1,"sidebar-nav"],["routerLink","/portal","routerLinkActive","active",1,"nav-link",3,"click","routerLinkActiveOptions"],["xmlns","http://www.w3.org/2000/svg","viewBox","0 0 24 24","fill","currentColor"],["d","M11.47 3.84a.75.75 0 011.06 0l8.69 8.69a.75.75 0 101.06-1.06l-8.689-8.69a2.25 2.25 0 00-3.182 0l-8.69 8.69a.75.75 0 001.061 1.06l8.69-8.69z"],["d","M12 5.432l8.159 8.159c.03.03.06.058.091.086v6.198c0 1.035-.84 1.875-1.875 1.875H15a.75.75 0 01-.75-.75v-4.5a.75.75 0 00-.75-.75h-3a.75.75 0 00-.75.75V21a.75.75 0 01-.75.75H5.625a1.875 1.875 0 01-1.875-1.875v-6.198a2.29 2.29 0 00.091-.086L12 5.43z"],[1,"nav-text"],[1,"nav-section-label"],["routerLink","/portal/guide","routerLinkActive","active",1,"nav-link",3,"click"],[1,"bi","bi-journal-medical","nav-bi"],["routerLinkActive","active",1,"nav-link",3,"routerLink"],["routerLink","/portal/food","routerLinkActive","active",1,"nav-link",3,"click"],[1,"bi","bi-upc-scan","nav-bi"],["routerLink","/portal/recipes","routerLinkActive","active",1,"nav-link",3,"click"],[1,"bi","bi-journal-richtext","nav-bi"],["routerLink","/portal/quizzes","routerLinkActive","active",1,"nav-link",3,"click"],[1,"bi","bi-patch-question","nav-bi"],["routerLink","/portal/tools","routerLinkActive","active",1,"nav-link",3,"click"],["fill-rule","evenodd","d","M12 6.75a5.25 5.25 0 016.775-5.025.75.75 0 01.313 1.248l-3.32 3.319c.063.475.276.934.641 1.299.365.365.824.578 1.3.641l3.318-3.32a.75.75 0 011.248.313 5.25 5.25 0 01-5.472 6.756c-1.018-.086-1.87.1-2.309.634L7.344 21.3A3.298 3.298 0 112.7 16.657l8.684
1-7.151c.533-.44.72-1.291.634-2.309A5.342 5.342 0 0112 6.75zM4.117 19.125a.75.75 0 01.75-.75h.008a.75.75 0 01.75.75v.008a.75.75 0 01-.75.75h-.008a.75.75 0 01-.75-.75v-.008z","clip-rule","evenodd"],[1,"sidebar-footer"],["title",t,1,"logout-btn-sidebar","sidebar-lang-btn",3,"click"],[1,"lang-flag"],["routerLink","/portal/login",1,"logout-btn-sidebar","signin-link"],[1,"portal-main-wrapper"],[1,"portal-header"],[1,"header-left"],[1,"menu-toggle",3,"click"],["xmlns","http://www.w3.org/2000/svg","fill","none","viewBox","0 0 24 24","stroke-width","1.5","stroke","currentColor"],["stroke-linecap","round","stroke-linejoin","round","d","M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"],[1,"header-title"],[1,"header-right"],[1,"theme-toggle-btn",3,"click"],[1,"profile-dropdown"],["routerLink","/portal/login",1,"logout-btn-header","signin-link-header"],[1,"portal-content"],[1,"mobile-overlay"],[1,"language-modal-overlay"],[1,"diary-saved-overlay"],[1,"logo-title"],["routerLink","/portal/progress","routerLinkActive","active",1,"nav-link",3,"click"],["fill-rule","evenodd","d","M2.25 13.5a8.25 8.25 0 018.25-8.25.75.75 0 01.75.75v6.75H18a.75.75 0 01.75.75 8.25 8.25 0 01-16.5 0z","clip-rule","evenodd"],["fill-rule","evenodd","d","M12.75 3a.75.75 0 01.75-.75 8.25 8.25 0 018.25 8.25.75.75 0 01-.75.75h-7.5a.75.75 0 01-.75-.75V3z","clip-rule","evenodd"],["routerLink","/portal/messages","routerLinkActive","active",1,"nav-link",3,"click"],["xmlns","http://www.w3.org/2000/svg","viewBox","0 0 16 16","width","20","height","20","fill","currentColor"],["d","M14 1a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H4.414A2 2 0 0 0 3 11.586l-2 2V2a1 1 0 0 1 1-1h12zM2 0a2 2 0 0 0-2 2v12.793a.5.5 0 0 0 .854.353l2.853-2.853A1 1 0 0 1 4.414 12H14a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2z"],[1,"nav-badge"],["routerLink","/portal/exercises","routerLinkActive","active",1,"nav-link"],["routerLink","/portal/before-after","routerLinkActive","active",1,"nav-link"],["routerLink","/portal/visit-history","routerLinkActive","active",1,"nav-link",3,"click"],["fill-rule","evenodd","d","M12 2.25c-5.385 0-9.75 4.365-9.75 9.75s4.365 9.75 9.75 9.75 9.75-4.365 9.75-9.75S17.385 2.25 12 2.25zM12.75 6a.75.75 0 00-1.5 0v6c0 .414.336.75.75.75h4.5a.75.75 0 000-1.5h-3.75V6z","clip-rule","evenodd"],["routerLink","/portal/documents","routerLinkActive","active",1,"nav-link",3,"click"],["d","M19.5 21a3 3 0 003-3V9a3 3 0 00-3-3h-5.379a.75.75 0 01-.53-.22L11.47 3.66A2.25 2.25 0 009.879 3H4.5a3 3 0 00-3 3v12a3 3 0 003 3h15z"],["routerLink","/portal/forms","routerLinkActive","active",1,"nav-link",3,"click"],["xmlns","http://www.w3.org/2000/svg","width","20","height","20","fill","currentColor","viewBox","0 0 16 16"],["d","M14 2H2a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1zM2 1h12a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V3a2 2 0 0 1 2-2z"],["d","M10.97 4.97a.75.75 0 0 1 1.071 1.05l-3.992 4.99a.75.75 0 0 1-1.08.02L4.324 8.384a.75.75 0 1 1 1.06-1.06l2.094 2.093 3.473-4.425z"],["routerLink","/portal/exercises","routerLinkActive","active",1,"nav-link",3,"click"],["fill-rule","evenodd","d","M14.615 1.595a.75.75 0 01.359.852L12.982 9.75h7.268a.75.75 0 01.548 1.262l-10.5 11.25a.75.75 0 01-1.272-.71l1.992-7.302H3.75a.75.75 0 01-.548-1.262l10.5-11.25a.75.75 0 01.913-.143z","clip-rule","evenodd"],["routerLink","/portal/before-after","routerLinkActive","active",1,"nav-link",3,"click"],["fill-rule","evenodd","d","M1.5 6a2.25 2.25 0 012.25-2.25h16.5A2.25 2.25 0 0122.5 6v12a2.25 2.25 0 01-2.25 2.25H3.75A2.25 2.25 0 011.5 18V6zM3 16.06V18c0 .414.336.75.75.75h16.5A.75.75 0 0021 18v-1.94l-2.69-2.689a1.5 1.5 0 00-2.12 0l-.88.879.97.97a.75.75 0 11-1.06 1.06l-5.16-5.159a1.5 1.5 0 00-2.12 0L3 16.061zm10.125-7.81a1.125 1.125 0 112.25 0 1.125 1.125 0 01-2.25 0z","clip-rule","evenodd"],["routerLink","/portal/meal-plans","routerLinkActive","active",1,"nav-link",3,"click"],["d","M5.566 4.657A4.505 4.505 0 016.75 4.5h10.5c.41 0 .806.055 1.183.157A3 3 0 0015.75 3h-7.5a3 3 0 00-2.684 1.657zM2.25 12a3 3 0 013-3h13.5a3 3 0 013 3v6a3 3 0 01-3 3H5.25a3 3 0 01-3-3v-6zM5.25 7.5c-.41 0-.806.055-1.184.157A3 3 0 016.75 6h10.5a3 3 0 012.683 1.657A4.505 4.505 0 0018.75 7.5H5.25z"],["routerLink","/portal/food-log","routerLinkActive","active",1,"nav-link",3,"click"],["d","M11.25 4.533A9.707 9.707 0 006 3a9.735 9.735 0 00-3.25.555.75.75 0 00-.5.707v14.25a.75.75 0 001 .707A8.237 8.237 0 016 18.75c1.995 0 3.823.707 5.25 1.886V4.533zM12.75 20.636A8.214 8.214 0 0118 18.75c.966 0 1.89.166 2.75.47a.75.75 0 001-.708V4.262a.75.75 0 00-.5-.707A9.735 9.735 0 0018 3a9.707 9.707 0 00-5.25 1.533v16.103z"],["routerLink","/portal/shopping-list","routerLinkActive","active",1,"nav-link",3,"click"],["fill-rule","evenodd","d","M7.502 6h7.128A3.375 3.375 0 0118 9.375v9.375a3 3 0 003-3V6.108c0-1.505-1.125-2.811-2.664-2.94a48.972 48.972 0 00-.673-.05A3 3 0 0015 1.5h-1.5a3 3 0 00-2.663 1.618c-.225.015-.45.032-.673.05C8.662 3.295 7.554 4.542 7.502 6zM13.5 3A1.5 1.5 0 0012 4.5h4.5A1.5 1.5 0 0015 3h-1.5z","clip-rule","evenodd"],["fill-rule","evenodd","d","M3 9.375C3 8.339 3.84 7.5 4.875 7.5h9.75c1.036 0 1.875.84 1.875 1.875v11.25c0 1.035-.84 1.875-1.875 1.875h-9.75A1.875 1.875 0 013 20.625V9.375zm9.586 4.594a.75.75 0 00-1.172-.938l-2.476 3.096-.908-.907a.75.75 0 00-1.06 1.06l1.5 1.5a.75.75 0 001.116-.062l3-3.75z","clip-rule","evenodd"],["routerLinkActive","active",1,"nav-link",3,"click","routerLink"],["routerLink","/portal/login",1,"logout-btn-sidebar","signin-link",3,"click"],["fill-rule","evenodd","d","M16.5 3.75a1.5 1.5 0 011.5 1.5v13.5a1.5 1.5 0 01-1.5 1.5h-6a1.5 1.5 0 01-1.5-1.5V15a.75.75 0 00-1.5 0v3.75a3 3 0 003 3h6a3 3 0 003-3V5.25a3 3 0 00-3-3h-6a3 3 0 00-3 3V9A.75.75 0 009 9V5.25a1.5 1.5 0 011.5-1.5h6zM5.78 8.47a.75.75 0 00-1.06 1.06L6.44 11.25H1.5a.75.75 0 000 1.5h4.94l-1.72 1.72a.75.75 0 101.06 1.06l3-3a.75.75 0 000-1.06l-3-3z","clip-rule","evenodd"],["d","M12 2.25a.75.75 0 01.75.75v2.25a.75.75 0 01-1.5 0V3a.75.75 0 01.75-.75zM7.5 12a4.5 4.5 0 119 0 4.5 4.5 0 01-9 0zM18.894 6.166a.75.75 0 00-1.06-1.06l-1.591 1.59a.75.75 0 101.06 1.061l1.591-1.59zM21.75 12a.75.75 0 01-.75.75h-2.25a.75.75 0 010-1.5H21a.75.75 0 01.75.75zM17.834 18.894a.75.75 0 001.06-1.06l-1.59-1.591a.75.75 0 10-1.061 1.06l1.59 1.591zM12 18a.75.75 0 01.75.75V21a.75.75 0 01-1.5 0v-2.25A.75.75 0 0112 18zM7.758 17.303a.75.75 0 00-1.061-1.06l-1.591 1.59a.75.75 0 001.06 1.061l1.591-1.59zM6 12a.75.75 0 01-.75.75H3a.75.75 0 010-1.5h2.25A.75.75 0 016 12zM6.697 7.757a.75.75 0 001.06-1.06l-1.59-1.591a.75.75 0 00-1.061 1.06l1.59 1.591z"],["fill-rule","evenodd","d","M9.528 1.718a.75.75 0 01.162.819A8.97 8.97 0 009 6a9 9 0 009 9 8.97 8.97 0 003.463-.69.75.75 0 01.981.98 10.503 10.503 0 01-9.694 6.46c-5.799 0-10.5-4.701-10.5-10.5 0-4.368 2.667-8.112 6.46-9.694a.75.75 0 01.818.162z","clip-rule","evenodd"],["aria-label","Profile menu",1,"profile-trigger",3,"click"],[1,"profile-avatar"],[1,"bi","bi-chevron-down","profile-arrow"],[1,"profile-dropdown-menu"],["routerLink","/portal/account","routerLinkActive","active",1,"profile-dropdown-item","profile-header-item",3,"click"],[1,"bi","bi-pers
1on-circle"],[1,"profile-meta"],[1,"profile-name"],[1,"profile-email"],["routerLink","/portal/profile","routerLinkActive","active",1,"profile-dropdown-item",3,"click"],[1,"bi","bi-person-vcard"],[1,"profile-dropdown-item","logout-item",3,"click"],[1,"bi","bi-box-arrow-right"],[1,"logout-text"],[1,"mobile-overlay",3,"click"],[1,"language-modal-overlay",3,"click"],[1,"language-modal"],[1,"language-modal-header"],[1,"language-modal-title"],["xmlns","http://www.w3.org/2000/svg","viewBox","0 0 24 24","fill","currentColor",1,"globe-icon"],["d","M21.721 12.752a9.711 9.711 0 00-.945-5.003 12.754 12.754 0 01-4.339 2.708 18.991 18.991 0 01-.214 4.772 17.165 17.165 0 005.498-2.477zM14.634 15.55a17.324 17.324 0 00.332-4.647c-.952.227-1.945.347-2.966.347-1.021 0-2.014-.12-2.966-.347a17.515 17.515 0 00.332 4.647 17.385 17.385 0 005.268 0zM9.772 17.119a18.963 18.963 0 004.456 0A17.182 17.182 0 0112 21.724a17.18 17.18 0 01-2.228-4.605zM7.777 15.23a18.87 18.87 0 01-.214-4.774 12.753 12.753 0 01-4.34-2.708 9.711 9.711 0 00-.944 5.004 17.165 17.165 0 005.498 2.477zM21.356 14.752a9.765 9.765 0 01-7.478 6.817 18.64 18.64 0 001.988-4.718 18.627 18.627 0 005.49-2.098zM2.644 14.752c1.682.971 3.53 1.688 5.49 2.099a18.64 18.64 0 001.988 4.718 9.765 9.765 0 01-7.478-6.816zM13.878 2.43a9.755 9.755 0 016.116 3.986 11.267 11.267 0 01-3.746 2.504 18.63 18.63 0 00-2.37-6.49zM12 2.276a17.152 17.152 0 012.805 7.121c-.897.23-1.837.353-2.805.353-.968 0-1.908-.122-2.805-.353A17.151 17.151 0 0112 2.276zM10.122 2.43a18.629 18.629 0 00-2.37 6.49 11.266 11.266 0 01-3.746-2.504 9.754 9.754 0 016.116-3.985z"],["aria-label","Close",1,"language-modal-close",3,"click"],["fill-rule","evenodd","d","M5.47 5.47a.75.75 0 011.06 0L12 10.94l5.47-5.47a.75.75 0 111.06 1.06L13.06 12l5.47 5.47a.75.75 0 11-1.06 1.06L12 13.06l-5.47 5.47a.75.75 0 01-1.06-1.06L10.94 12 5.47 6.53a.75.75 0 010-1.06z","clip-rule","evenodd"],[1,"language-modal-body"],[1,"language-option",3,"active"],[1,"language-option",3,"click"],[1,"language-flag"],[1,"language-name"],["xmlns","http://www.w3.org/2000/svg","viewBox","0 0 24 24","fill","currentColor",1,"language-check"],["fill-rule","evenodd","d","M19.916 4.626a.75.75 0 01.208 1.04l-9 13.5a.75.75 0 01-1.154.114l-6-6a.75.75 0 011.06-1.06l5.353 5.353 8.493-12.739a.75.75 0 011.04-.208z","clip-rule","evenodd"],[1,"diary-saved-overlay",3,"click"],[1,"diary-saved-modal",3,"click"],[1,"diary-saved-icon"],[1,"bi","bi-check-circle-fill"],[1,"diary-saved-title"],[1,"diary-saved-text"],["type","button",1,"diary-saved-btn",3,"click"],["type","button",1,"diary-saved-dismiss",3,"click"]];},template:function(e,i){if(e&1&&(o(0,"div",33)(1,"aside",34)(2,"div",35)(3,"a",36)(4,"div",37),m(5,"img",38),a(),p(6,xo,3,0,"div",39),a()(),o(7,"nav",40)(8,"a",41),h("click",function(){return i.closeSidebarOnMobile();}),E(),o(9,"svg",42),m(10,"path",43)(11,"path",44),a(),N(),o(12,"span",45),_(13,0),a()(),p(14,ko,16,5),o(15,"div",46),_(16,1),a(),o(17,"a",47),h("click",function(){return i.closeSidebarOnMobile();}),m(18,"i",48),o(19,"span",45),_(20,2),a()(),X(21,Vo,10,4,"a",49,No),o(23,"a",50),h("click",function(){return i.closeSidebarOnMobile();}),m(24,"i",51),o(25,"span",45),_(26,3),a()(),o(27,"a",52),h("click",function(){return i.closeSidebarOnMobile();}),m(28,"i",53),o(29,"span",45),_(30,4),a()(),o(31,"a",54),h("click",function(){return i.closeSidebarOnMobile();}),m(32,"i",55),o(33,"span",45),_(34,5),a()(),o(35,"a",56),h("click",function(){return i.closeSidebarOnMobile();}),E(),o(36,"svg",42),m(37,"path",57),a(),N(),o(38,"span",45),_(39,6),a()()(),o(40,"div",58)(41,"button",59),h("click",function(){return i.openLanguageModal();}),o(42,"span",60),d(43),a(),o(44,"span",45),d(45),a()(),p(46,Do,5,0,"a",61),a()(),o(47,"div",62)(48,"header",63)(49,"div",64)(50,"button",65),h("click",function(){return i.toggleSidebar();}),E(),o(51,"svg",66),m(52,"path",67),a()(),N(),o(53,"h1",68),d(54),a()(),o(55,"div",69)(56,"button",70),h("click",function(){return i.toggleTheme();}),p(57,Ho,2,0,":svg:svg",42)(58,Xo,2,0,":svg:svg",42),a(),p(59,Yo,6,4,"div",71)(60,Bo,5,0,"a",72),a()(),o(61,"main",73),m(62,"router-outlet"),a()(),p(63,jo,1,0,"div",74),p(64,Ko,1,0,"app-portal-name-capture"),p(65,Qo,14,0,"div",75),p(66,Zo,12,0,"div",76),a()),e&2){let l,s;r(),z("collapsed",i.sidebarCollapsed()),r(5),g(i.sidebarCollapsed()?-1:6),r(2),A("routerLinkActiveOptions",et(16,ho)),r(6),g(i.portalService.isAuthenticated()?14:-1),r(7),W(i.contentSections()),r(22),M((l=i.currentLanguageInfo())==null?null:l.flag),r(2),M((s=i.currentLanguageInfo())==null?null:s.name),r(),g(i.portalService.isAuthenticated()?-1:46),r(8),M(i.currentPageTitle()),r(2),ge("title",i.isDarkTheme()?"Light Mode":"Dark Mode"),r(),g(i.isDarkTheme()?57:58),r(2),g(i.portalService.isAuthenticated()?59:60),r(4),g(i.sidebarCollapsed()?-1:63),r(),g(i.portalService.needsName()?64:-1),r(),g(i.isLanguageModalOpen()?65:-1),r(),g(i.diarySavedCount()>0?66:-1);}},dependencies:[j,$n,_e,Fn,Lt],styles:['.portal-layout[_ngcontent-%COMP%]{display:flex;height:100vh;overflow:hidden;background:#f9fafb}.portal-sidebar[_ngcontent-%COMP%]{width:260px;background:#fff;border-right:1px solid #e5e7eb;display:flex;flex-direction:column;transition:all .3s ease;z-index:1000;flex-shrink:0}.portal-sidebar.collapsed[_ngcontent-%COMP%]{width:72px}.sidebar-header[_ngcontent-%COMP%]{padding:1.5rem;border-bottom:1px solid #e5e7eb;min-height:64px;display:flex;align-items:center}.logo-container[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;text-decoration:none}.logo-icon[_ngcontent-%COMP%]{width:44px;height:44px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.logo-image[_ngcontent-%COMP%]{width:100%;height:100%;object-fit:contain}.logo-text[_ngcontent-%COMP%]{overflow:hidden}.logo-title[_ngcontent-%COMP%]{font-size:1.25rem;font-weight:700;color:#1f2937;margin:0;line-height:1.2}.portal-sidebar.collapsed[_ngcontent-%COMP%]   .sidebar-header[_ngcontent-%COMP%]{justify-content:center;padding:1rem}.portal-sidebar.collapsed[_ngcontent-%COMP%]   .logo-container[_ngcontent-%COMP%]{justify-content:center}.sidebar-nav[_ngcontent-%COMP%]{flex:1;padding:16px 12px;display:flex;flex-direction:column;gap:4px;overflow-y:auto}.nav-link[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;padding:12px 16px;color:#6b7280;text-decoration:none;font-size:15px;font-weight:500;border-radius:8px;transition:all .2s;white-space:nowrap}.nav-link[_ngcontent-%COMP%]:hover{background:#f3f4f6;color:#374151}.nav-link.active[_ngcontent-%COMP%]{background:#03a791;color:#fff}.nav-link[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:22px;height:22px;flex-shrink:0}.nav-badge[_ngcontent-%COMP%]{margin-left:auto;background:var(--color-portal);color:#fff;border-radius:999px;min-width:20px;height:20px;
1display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;padding:0 6px;flex-shrink:0}.nav-link.active[_ngcontent-%COMP%]   .nav-badge[_ngcontent-%COMP%]{background:#fff;color:var(--color-portal)}.nav-bi[_ngcontent-%COMP%]{font-size:20px;width:22px;text-align:center;flex-shrink:0;line-height:1}.nav-section-label[_ngcontent-%COMP%]{margin-top:.75rem;padding:1rem 1rem .35rem;font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#9ca3af;white-space:nowrap}.portal-sidebar.collapsed[_ngcontent-%COMP%]   .nav-section-label[_ngcontent-%COMP%]{opacity:0;height:0;margin:0;padding:0;overflow:hidden}.nav-text[_ngcontent-%COMP%]{transition:opacity .2s,width .2s}.portal-sidebar.collapsed[_ngcontent-%COMP%]   .nav-text[_ngcontent-%COMP%]{opacity:0;width:0;overflow:hidden}.portal-sidebar.collapsed[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{justify-content:center;padding:12px}.sidebar-footer[_ngcontent-%COMP%]{padding:16px 12px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));border-top:1px solid #e5e7eb;flex-shrink:0}.logout-btn-sidebar[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;background:transparent;border:none;color:#6b7280;font-size:15px;font-weight:500;border-radius:8px;cursor:pointer;transition:all .2s;white-space:nowrap}.logout-btn-sidebar[_ngcontent-%COMP%]:hover{background:#fef2f2;color:#dc2626}.signin-link[_ngcontent-%COMP%]{text-decoration:none;color:#03a791}.signin-link[_ngcontent-%COMP%]:hover{background:#e8f5f3;color:#03a791}.signin-link-header[_ngcontent-%COMP%]{text-decoration:none;color:#03a791;border-color:#03a791}.signin-link-header[_ngcontent-%COMP%]:hover{background:#e8f5f3;color:#03a791}.logout-btn-sidebar[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:22px;height:22px;flex-shrink:0}.portal-sidebar.collapsed[_ngcontent-%COMP%]   .logout-btn-sidebar[_ngcontent-%COMP%]{justify-content:center;padding:12px}.portal-main-wrapper[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.portal-header[_ngcontent-%COMP%]{background:#fff;border-bottom:1px solid #e5e7eb;padding:0 24px;height:64px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.header-left[_ngcontent-%COMP%]{display:flex;align-items:center;gap:16px}.menu-toggle[_ngcontent-%COMP%]{width:40px;height:40px;border:none;background:transparent;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#6b7280;transition:all .2s}.menu-toggle[_ngcontent-%COMP%]:hover{background:#f3f4f6;color:#374151}.menu-toggle[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:24px;height:24px}.header-title[_ngcontent-%COMP%]{font-size:18px;font-weight:600;color:#1f2937;margin:0}.header-right[_ngcontent-%COMP%]{display:flex;align-items:center;gap:16px}.user-name[_ngcontent-%COMP%]{color:#374151;font-weight:500;font-size:14px}.logout-btn-header[_ngcontent-%COMP%]{display:none;align-items:center;gap:6px;padding:8px 16px;background:transparent;border:1px solid #e5e7eb;border-radius:8px;color:#6b7280;font-size:14px;cursor:pointer;transition:all .2s}.logout-btn-header[_ngcontent-%COMP%]:hover{background:#f3f4f6;color:#374151}.logout-btn-header[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:18px;height:18px}.profile-dropdown[_ngcontent-%COMP%]{position:relative}.profile-trigger[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;padding:4px;border:none;background:transparent;border-radius:8px;cursor:pointer;transition:all .2s}.profile-trigger[_ngcontent-%COMP%]:hover{background:#f3f4f6}.profile-avatar[_ngcontent-%COMP%]{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#03a791,#02d1ac);color:#fff;font-weight:600;font-size:13px;display:flex;align-items:center;justify-content:center}.profile-arrow[_ngcontent-%COMP%]{color:#9ca3af;font-size:12px;transition:transform .2s}.profile-arrow.rotated[_ngcontent-%COMP%]{transform:rotate(180deg)}.profile-dropdown-menu[_ngcontent-%COMP%]{position:absolute;top:calc(100% + 8px);right:0;min-width:230px;background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 10px 30px #0000001f;z-index:2000;overflow:hidden}.profile-dropdown-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;width:100%;padding:12px 16px;border:none;background:transparent;text-align:left;font-size:14px;color:#374151;text-decoration:none;cursor:pointer;transition:background .15s}.profile-dropdown-item[_ngcontent-%COMP%]:not(:last-child){border-bottom:1px solid #f0f
10f0}.profile-dropdown-item[_ngcontent-%COMP%]:hover{background:#f8f9fa}.profile-dropdown-item[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{font-size:18px;flex-shrink:0}.profile-header-item[_ngcontent-%COMP%]{padding:14px 16px}.profile-header-item[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{color:#03a791}.profile-meta[_ngcontent-%COMP%]{display:flex;flex-direction:column;min-width:0}.profile-name[_ngcontent-%COMP%]{font-weight:600;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-email[_ngcontent-%COMP%]{font-size:12px;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.logout-item[_ngcontent-%COMP%], .logout-item[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{color:#dc2626}.logout-item[_ngcontent-%COMP%]:hover{background:#fef2f2}[data-theme="dark"][_nghost-%COMP%]   .profile-trigger[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .profile-trigger[_ngcontent-%COMP%]:hover{background:#334155}[data-theme="dark"][_nghost-%COMP%]   .profile-dropdown-menu[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .profile-dropdown-menu[_ngcontent-%COMP%]{background:#1e293b;border-color:#334155;box-shadow:0 10px 30px #00000080}[data-theme="dark"][_nghost-%COMP%]   .profile-dropdown-item[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .profile-dropdown-item[_ngcontent-%COMP%]{color:#cbd5e1}[data-theme="dark"][_nghost-%COMP%]   .profile-dropdown-item[_ngcontent-%COMP%]:not(:last-child), [data-theme="dark"]   [_nghost-%COMP%]   .profile-dropdown-item[_ngcontent-%COMP%]:not(:last-child){border-bottom-color:#334155}[data-theme="dark"][_nghost-%COMP%]   .profile-dropdown-item[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .profile-dropdown-item[_ngcontent-%COMP%]:hover{background:#334155}[data-theme="dark"][_nghost-%COMP%]   .profile-name[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .profile-name[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .profile-email[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .profile-email[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .logout-item[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .logout-item[_ngcontent-%COMP%], [data-theme="dark"][_nghost-%COMP%]   .logout-item[_ngcontent-%COMP%]   i[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .logout-item[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{color:#f87171}[data-theme="dark"][_nghost-%COMP%]   .logout-item[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .logout-item[_ngcontent-%COMP%]:hover{background:#ef44441f}.portal-content[_ngcontent-%COMP%]{flex:1;padding:24px;overflow-y:auto}.theme-toggle-btn[_ngcontent-%COMP%]{width:36px;height:36px;border:none;background:transparent;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#6b7280;transition:all .2s}.theme-toggle-btn[_ngcontent-%COMP%]:hover{background:#f3f4f6;color:#374151}.theme-toggle-btn[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:20px;height:20px}.sidebar-lang-btn[_ngcontent-%COMP%]:hover{background:#f3f4f6;color:#374151}.lang-flag[_ngcontent-%COMP%]{font-size:1.25rem;line-height:1;width:22px;text-align:center;flex-shrink:0}.language-modal-overlay[_ngcontent-%COMP%], .diary-saved-overlay[_ngcontent-%COMP%]{position:fixed;inset:0;background:#00000080;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000;padding:1rem;animation:_ngcontent-%COMP%_modalFadeIn .2s ease-out}.diary-saved-modal[_ngcontent-%COMP%]{background:#fff;border-radius:1rem;width:100%;max-width:360px;box-shadow:0 20px 40px #00000026;animation:_ngcontent-%COMP%_modalSlideUp .25s ease-out;padding:1.75rem 1.5rem;text-align:center}.diary-saved-icon[_ngcontent-%COMP%]{font-size:2.75rem;color:#03a791;line-height:1;margin-bottom:.5rem}.diary-saved-title[_ngcontent-%COMP%]{font-size:1.15rem;font-weight:700;color:#1f2937;margin:0 0 .4rem}.diary-saved-text[_ngcontent-%COMP%]{font-size:.9rem;color:#6b7280;margin:0 0 1.25rem;line-height:1.5}.diary-saved-btn[_ngcontent-%COMP%]{width:100%;background:#03a791;color:#fff;border:none;border-radius:.75rem;padding:.8rem 1rem;font-size:.95rem;font-weight:700;cursor:pointer}.diary-saved-btn[_ngcontent-%COMP%]:hover{background:#02d1ac}.diary-saved-dismiss[_ngcontent-%COMP%]{width:100%;background:none;border:none;color:#6b7280;font-size:.85rem;padding:.7rem;margin-top:.3rem;cursor:pointer}.diary-saved-dismiss[_ngcontent-%COMP%]:hover{color:#1f2937}.language-modal[_ngcontent-%COMP%]{background:#fff;border-radius:1rem;width:100%;max-width:320px;box-shadow:0 20px 40px #00000026;animation:_ngcontent-%COMP%_modalSlideUp .25s ease-out;overflow:hidden}.language-modal-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid rgba(0,0,0,.08);background:#03a7910a}.language-modal-title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;font-weight:600;font-size:1rem;color:#212529}.language-modal-title[_ngcontent-%COMP%]   .globe-icon[_ngcontent-%COMP%]{width:20px;height:20px;color:#03a791}.language-modal-close[_ngcontent-%COMP%]{background:none;border:none;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#6b7280;transition:all .2s ease}.language-modal-close[_ngcontent-%COMP%]:hover{background:#0000000d;color:#212529}.language-modal-close[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:18px;height:18px}.language-modal-body[_ngcontent-%COMP%]{padding:.5rem}.language-option[_ngcontent-%COMP%]{width:100%;display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;border:none;background:transparent;border-radius:.75rem;cursor:pointer;transition:all .2s ease;min-height:52px;text-align:left}.language-option[_ngcontent-%COMP%]:hover{background:#03a79114}.language-option.active[_ngcontent-%COMP%]{background:#03a7911f}.language-flag[_ngcontent-%COMP%]{font-size:1.5rem;line-height:1}
1.language-name[_ngcontent-%COMP%]{flex:1;font-size:1rem;font-weight:500;color:#212529}.language-check[_ngcontent-%COMP%]{width:20px;height:20px;color:#03a791}@keyframes _ngcontent-%COMP%_modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes _ngcontent-%COMP%_modalSlideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}[data-theme="dark"][_nghost-%COMP%]   .portal-layout[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .portal-layout[_ngcontent-%COMP%]{background:#0f172a}[data-theme="dark"][_nghost-%COMP%]   .portal-sidebar[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .portal-sidebar[_ngcontent-%COMP%]{background:#1e293b;border-right-color:#334155}[data-theme="dark"][_nghost-%COMP%]   .sidebar-header[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .sidebar-header[_ngcontent-%COMP%]{border-bottom-color:#334155}[data-theme="dark"][_nghost-%COMP%]   .logo-title[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .logo-title[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .nav-link[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .nav-link[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .nav-link[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .nav-link[_ngcontent-%COMP%]:hover{background:#334155;color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .nav-link.active[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .nav-link.active[_ngcontent-%COMP%]{background:#03a791;color:#fff}[data-theme="dark"][_nghost-%COMP%]   .sidebar-footer[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .sidebar-footer[_ngcontent-%COMP%]{border-top-color:#334155}[data-theme="dark"][_nghost-%COMP%]   .logout-btn-sidebar[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .logout-btn-sidebar[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .logout-btn-sidebar[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .logout-btn-sidebar[_ngcontent-%COMP%]:hover{background:#ef44441a;color:#f87171}[data-theme="dark"][_nghost-%COMP%]   .sidebar-lang-btn[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .sidebar-lang-btn[_ngcontent-%COMP%]:hover{background:#334155;color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .portal-header[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .portal-header[_ngcontent-%COMP%]{background:#1e293b;border-bottom-color:#334155}[data-theme="dark"][_nghost-%COMP%]   .header-title[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .header-title[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .menu-toggle[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .menu-toggle[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .menu-toggle[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .menu-toggle[_ngcontent-%COMP%]:hover{background:#334155;color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .user-name[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .user-name[_ngcontent-%COMP%]{color:#cbd5e1}[data-theme="dark"][_nghost-%COMP%]   .theme-toggle-btn[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .theme-toggle-btn[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .theme-toggle-btn[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .theme-toggle-btn[_ngcontent-%COMP%]:hover{background:#334155;color:#fbbf24}[data-theme="dark"][_nghost-%COMP%]   .logout-btn-header[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .logout-btn-header[_ngcontent-%COMP%]{border-color:#475569;color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .logout-btn-header[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .logout-btn-header[_ngcontent-%COMP%]:hover{background:#334155;color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .portal-content[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .portal-content[_ngcontent-%COMP%]{background:#0f172a}[data-theme="dark"][_nghost-%COMP%]   .language-modal[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .language-modal[_ngcontent-%COMP%]{background:#1e293b;box-shadow:0 20px 40px #00000080}[data-theme="dark"][_nghost-%COMP%]   .diary-saved-modal[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .diary-saved-modal[_ngcontent-%COMP%]{background:#1e293b;box-shadow:0 20px 40px #00000080}[data-theme="dark"][_nghost-%COMP%]   .diary-saved-icon[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .diary-saved-icon[_ngcontent-%COMP%]{color:#0cc4ac}[data-theme="dark"][_nghost-%COMP%]   .diary-saved-title[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .diary-saved-title[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .diary-saved-text[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .diary-saved-text[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .diary-saved-btn[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .diary-saved-btn[_ngcontent-%COMP%]{background:#0cc4ac}[data-theme="dark"][_nghost-%COMP%]   .diary-saved-btn[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .diary-saved-btn[_ngcontent-%COMP%]:hover{background:#3dd4bf}[data-theme="dark"][_nghost-%COMP%]   .diary-saved-dismiss[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .diary-saved-dismiss[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .diary-saved-dismiss[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .diary-saved-dismiss[_ngcontent-%COMP%]:hover{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .language-modal-header[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .language-modal-header[_ngcontent-%COMP%]{border-bottom-color:#334155;background:#03a79114}[data-theme="dark"][_nghost-%COMP%]   .language-modal-title[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .language-modal-title[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .language-modal-close[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .language-modal-close[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .language-modal-close[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .language-modal-close[_ngcontent-%COMP%]:hover{background:#ffffff14;color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .language-option[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .language-option[_ngcontent-%COMP%]:hover{background:#03a7911f}[data-theme="dark"][_nghost-%COMP%]   .language-option.active[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .language-option.active[_ngcontent-%COMP%]{background:#03a7912e}
1[data-theme="dark"][_nghost-%COMP%]   .language-name[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .language-name[_ngcontent-%COMP%]{color:#f1f5f9}.mobile-overlay[_ngcontent-%COMP%]{display:none}@media(max-width:768px){.portal-sidebar[_ngcontent-%COMP%]{position:fixed;left:0;top:0;height:100dvh;width:280px;transform:translate(-100%);z-index:1100;box-shadow:4px 0 24px #00000026}.portal-sidebar[_ngcontent-%COMP%]:not(.collapsed){transform:translate(0)}.portal-sidebar.collapsed[_ngcontent-%COMP%]{width:280px}.portal-sidebar.collapsed[_ngcontent-%COMP%]   .nav-text[_ngcontent-%COMP%]{opacity:1;width:auto}.portal-sidebar.collapsed[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%], .portal-sidebar.collapsed[_ngcontent-%COMP%]   .logout-btn-sidebar[_ngcontent-%COMP%]{justify-content:flex-start;padding:12px 16px}.portal-sidebar.collapsed[_ngcontent-%COMP%]   .sidebar-header[_ngcontent-%COMP%]{justify-content:flex-start;padding:1.5rem}.portal-sidebar.collapsed[_ngcontent-%COMP%]   .logo-container[_ngcontent-%COMP%]{justify-content:flex-start}.nav-link[_ngcontent-%COMP%]{font-size:17px;padding:14px 16px}.nav-link[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:24px;height:24px}.logout-btn-sidebar[_ngcontent-%COMP%]{font-size:17px;padding:14px 16px}.logout-btn-sidebar[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:24px;height:24px}.mobile-overlay[_ngcontent-%COMP%]{display:block;position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;z-index:1050}.portal-main-wrapper[_ngcontent-%COMP%]{width:100%}.portal-header[_ngcontent-%COMP%]{padding:0 16px}.logout-btn-header[_ngcontent-%COMP%]{display:flex}.logout-text[_ngcontent-%COMP%]{display:none}.portal-content[_ngcontent-%COMP%]{padding:16px}}@media(max-width:480px){.user-name[_ngcontent-%COMP%]{display:none}.logout-btn-header[_ngcontent-%COMP%]{padding:8px}}']});};function ni(n,t){n&1&&$(0,"i",11);}function oi(n,t){if(n&1){let e=x();C(0,"div",4)(1,"div",5),$(2,"i",6),C(3,"div",7)(4,"strong"),_(5,0),P(),C(6,"span"),_(7,1),P()()(),C(8,"div",8)(9,"button",9),Z("click",function(){O(e);let l=c();return u(l.dismiss());}),_(10,2),P(),C(11,"button",10),Z("click",function(){O(e);let l=c();return u(l.enable());}),p(12,ni,1,0,"i",11),C(13,"span"),_(14,3),P()()()();}if(n&2){let e=c();r(11),ne("disabled",e.busy()),r(),g(e.busy()?12:-1);}}var Rt=class n{push=v(St);notifications=v(We);visible=S(!1);busy=S(!1);static DISMISSED_KEY="vitena_portal_notif_dismissed";async ngOnInit(){if(!(typeof window>"u")&&Yn.isNativePlatform()){try{if(localStorage.getItem(n.DISMISSED_KEY)==="1")return;}catch{}if(!this.push.isSubscribed()){try{let{PushNotifications:t}=await import("./chunk-DQIYUO4J.js");if((await t.checkPermissions()).receive==="granted")return;}catch{}this.visible.set(!0);}}}dismiss(){try{localStorage.setItem(n.DISMISSED_KEY,"1");}catch{}this.visible.set(!1);}async enable(){this.busy.set(!0);try{await this.push.subscribe().toPromise(),this.notifications.showSuccess("Notifications enabled. You'll get reminders on this device.",4e3),this.visible.set(!1);}catch(t){console.warn("[Push] enable failed:",t),this.notifications.showError("Could not enable notifications. Check your device settings and try again.");}finally{this.busy.set(!1);}}static ɵfac=function(e){return new(e||n)();};static ɵcmp=H({type:n,selectors:[["app-portal-notification-opt-in"]],decls:1,vars:1,consts:()=>{let t;t="Get appointment reminders on your phone";let e;e="Enable notifications so you never miss an upcoming session.";let i;i="Later";let l;return l="Enable",[t,e,i,l,[1,"opt-in-banner"],[1,"opt-in-content"],[1,"bi","bi-bell-fill","opt-in-icon"],[1,"opt-in-text"],[1,"opt-in-actions"],["type","button",1,"btn-dismiss",3,"click"],["type","button",1,"btn-enable",3,"click","disabled"],[1,"bi","bi-arrow-repeat","spinning"]];},template:function(e,i){e&1&&p(0,oi,15,2,"div",4),e&2&&g(i.visible()?0:-1);},dependencies:[j],styles:[".opt-in-banner[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;background:#e8f5f3;border:1px solid #03A791;border-radius:8px;margin-bottom:1rem}.opt-in-content[_ngcontent-%COMP%]{display:flex;gap:.75rem;
1align-items:center;flex:1;min-width:0}.opt-in-icon[_ngcontent-%COMP%]{font-size:1.4rem;color:#03a791;flex-shrink:0}.opt-in-text[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2px;min-width:0}.opt-in-text[_ngcontent-%COMP%]   strong[_ngcontent-%COMP%]{font-size:.9rem;color:#212529}.opt-in-text[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{font-size:.8rem;color:#6c757d}.opt-in-actions[_ngcontent-%COMP%]{display:flex;gap:.4rem;flex-shrink:0}.btn-dismiss[_ngcontent-%COMP%], .btn-enable[_ngcontent-%COMP%]{padding:.4rem .85rem;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;border:1px solid transparent;transition:all .2s}.btn-dismiss[_ngcontent-%COMP%]{background:transparent;color:#6c757d;border-color:#dee2e6}.btn-dismiss[_ngcontent-%COMP%]:hover{background:#f8f9fa}.btn-enable[_ngcontent-%COMP%]{background:#03a791;color:#fff}.btn-enable[_ngcontent-%COMP%]:hover:not(:disabled){background:#02d1ac}.btn-enable[_ngcontent-%COMP%]:disabled{opacity:.6;cursor:not-allowed}.spinning[_ngcontent-%COMP%]{display:inline-block;animation:_ngcontent-%COMP%_spin 1s linear infinite;margin-right:.3rem}@keyframes _ngcontent-%COMP%_spin{to{transform:rotate(360deg)}}@media(max-width:480px){.opt-in-banner[_ngcontent-%COMP%]{flex-direction:column;align-items:stretch;gap:.6rem}.opt-in-actions[_ngcontent-%COMP%]{justify-content:flex-end}}"]});};function ii(n,t){n&1&&(C(0,"span",17),_(1,2),P());}function ai(n,t){n&1&&(C(0,"span",18),_(1,3),P());}function ri(n,t){if(n&1&&$(0,"img",20),n&2){let e=c();ne("src",e.tenant.logoUrl,te);}}function li(n,t){if(n&1&&(C(0,"span",25),$(1,"i",36),d(2),P()),n&2){let e=c();r(2),I(" ",e.appointment.timezoneId);}}function _i(n,t){if(n&1&&(C(0,"li",22),$(1,"i",37),C(2,"span"),d(3),P()()),n&2){let e=c();r(3),M(e.appointment.title);}}function ci(n,t){n&1&&($(0,"i",38),C(1,"span"),_(2,4),P());}function si(n,t){n&1&&($(0,"i",39),C(1,"span"),_(2,5),P());}function di(n,t){if(n&1&&(C(0,"span",42),d(1),P()),n&2){let e=c(2);r(),M(e.appointment.locationName);}}function pi(n,t){if(n&1&&(C(0,"li",26),$(1,"i",40),C(2,"div",41),p(3,di,2,1,"span",42),C(4,"span",43),d(5),P(),C(6,"a",44),$(7,"i",45),C(8,"span"),_(9,6),P()()()()),n&2){let e=c();r(3),g(e.appointment.locationName?3:-1),r(2),M(e.appointment.locationAddress),r(),ne("href",e.mapsUrl,te);}}function gi(n,t){if(n&1&&(C(0,"li",22),$(1,"i",46),C(2,"a",47),d(3),P()()),n&2){let e=c();r(2),ne("href","tel:"+e.appointment.locationPhone,te),r(),M(e.appointment.locationPhone);}}function mi(n,t){if(n&1&&(C(0,"li",27),$(1,"i",48),C(2,"span"),d(3),P()()),n&2){let e=c();r(3),M(e.appointment.notes);}}function Ci(n,t){n&1&&(C(0,"div",28),$(1,"i",49),C(2,"span"),_(3,7),P()());}function Pi(n,t){if(n&1&&(C(0,"p",29),$(1,"i",46),C(2,"span"),d(3),P()()),n&2){let e=c();r(3),le("",e.channelName(e.appointment.onlineChannel)," \xB7 ",e.callHint);}}function Oi(n,t){if(n&1&&(C(0,"a",30),$(1,"i",50),C(2,"span"),_(3,8),P()()),n&2){let e=c();ne("href",e.appointment.onlineMeetingLink,te);}}var yt=class n{isCallChannel=it;channelName=at;callHint=rt("WhatsApp");appointment;tenant;isPending=!1;cancelling=!1;rescheduling=!1;close=new Re();
1cancel=new Re();reschedule=new Re();headingLabel="Appointment details";closeLabel="Close";get isOnline(){return this.appointment.meetingType==="online";}get mapsUrl(){let t=this.appointment.locationAddress;return t?`https://www.google.com/maps/search/?api=1&query=${encodeURIComponent(t)}`:null;}onEscape(){this.close.emit();}onBackdrop(t){t.target.classList.contains("appt-overlay")&&this.close.emit();}static ɵfac=function(e){return new(e||n)();};static ɵcmp=H({type:n,selectors:[["app-portal-appointment-details"]],hostBindings:function(e,i){e&1&&h("keydown.escape",function(){return i.onEscape();},ye);},inputs:{appointment:"appointment",tenant:"tenant",isPending:"isPending",cancelling:"cancelling",rescheduling:"rescheduling"},outputs:{close:"close",cancel:"cancel",reschedule:"reschedule"},decls:42,vars:19,consts:()=>{let t;t="Reschedule";let e;e="Cancel appointment";let i;i="Awaiting Approval";let l;l="Upcoming Appointment";let s;s="Online Meeting";let T;T="In-Person";let f;f="Open in Maps";let b;b="We'll let you know as soon as your provider confirms this appointment.";let L;return L="Join Meeting",[t,e,i,l,s,T,f,b,L,[1,"appt-overlay",3,"click"],["role","dialog","aria-modal","true",1,"appt-sheet"],["aria-hidden","true",1,"appt-grabber"],["type","button",1,"appt-close",3,"click"],[1,"bi","bi-x-lg"],[1,"appt-header"],[1,"appt-header-text"],[1,"appt-label-row"],[1,"appt-status","is-pending"],[1,"appt-status"],[1,"appt-business"],["alt","",1,"appt-logo",3,"src"],[1,"appt-rows"],[1,"appt-row"],[1,"bi","bi-calendar-event"],[1,"bi","bi-clock"],[1,"appt-tz"],[1,"appt-row","appt-row-address"],[1,"appt-row","appt-row-notes"],[1,"appt-pending-note"],[1,"call-channel-note",2,"display","flex","align-items","center","gap",".4rem","font-size",".85rem","color","var(--color-text-muted)","margin",".5rem 0 0"],["target","_blank","rel","noopener",1,"appt-join-btn",3,"href"],[1,"appt-actions"],["type","button",1,"appt-reschedule-btn",3,"click","disabled"],[1,"bi","bi-arrow-repeat"],["type","button",1,"appt-cancel-btn",3,"click","disabled"],[1,"bi","bi-x-circle"],[1,"bi","bi-globe2"],[1,"bi","bi-tag"],[1,"bi","bi-camera-video"],[1,"bi","bi-geo-alt"],[1,"bi","bi-map"],[1,"appt-address"],[1,"appt-address-name"],[1,"appt-address-line"],["target","_blank","rel","noopener",1,"appt-maps-link",3,"href"],[1,"bi","bi-geo-alt-fill"],[1,"bi","bi-telephone"],[1,"appt-phone",3,"href"],[1,"bi","bi-journal-text"],[1,"bi","bi-hourglass-split"],[1,"bi","bi-camera-video-fill"]];},template:function(e,i){e&1&&(C(0,"div",9),Z("click",function(s){return i.onBackdrop(s);}),C(1,"div",10),$(2,"div",11),C(3,"button",12),Z("click",function(){return i.close.emit();}),$(4,"i",13),P(),C(5,"div",14)(6,"div",15)(7,"div",16),p(8,ii,2,0,"span",17)(9,ai,2,0,"span",18),P(),C(10,"h2",19),d(11),P()(),p(12,ri,1,1,"img",20),P(),C(13,"ul",21)(14,"li",22),$(15,"i",23),C(16,"span"),d(17),P()(),C(18,"li",22),$(19,"i",24),C(20,"span"),d(21),P(),p(22,li,3,1,"span",25),P(),p(23,_i,4,1,"li",22),C(24,"li",22),p(25,ci,3,0)(26,si,3,0),P(),p(27,pi,10,3,"li",26),p(28,gi,4,2,"li",22),p(29,mi,4,1,"li",27),P(),p(30,Ci,4,0,"div",28),p(31,Pi,4,2,"p",29),p(32,Oi,4,1,"a",30),C(33,"div",31)(34,"button",32),Z("click",function(){return i.reschedule.emit();}),$(35,"i",33),C(36,"span"),_(37,0),P()(),C(38,"button",34),Z("click",function(){return i.cancel.emit();}),$(39,"i",35),C(40,"span"),_(41,1),P()()()()()),e&2&&(r(),ge("aria-label",i.headingLabel),r(2),ge("aria-label",i.closeLabel),r(5),g(i.isPending?8:9),r(3),M(i.tenant.businessName),r(),g(i.tenant.logoUrl?12:-1),r(5),M(i.appointment.dateDisplay),r(4),le("",i.appointment.timeDisplay," (",i.appointment.duration," min)"),r(),g(i.appointment.timezoneId?22:-1),r(),g(i.appointment.title?23:-1),r(2),g(i.isOnline?25:26),r(2),g(!i.isOnline&&i.appointment.locationAddress?27:-1),r(),g(!i.isOnline&&i.appointment.locationPhone?28:-1),r(),g(i.appointment.notes?29:-1),r(),g(i.isPending?30:-1),r(),g(i.isCallChannel(i.appointment.onlineChannel)?31:-1),r(),g(i.isOnline&&i.appointment.onlineMeetingLink?32:-1),r(2),ne("disabled",i.rescheduling),r(4),ne("disabled",i.cancelling));},dependencies:[j],styles:['.appt-overlay[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:1050;background:#0f172a73;display:flex;align-items:flex-end;justify-content:center;padding:0;animation:_ngcontent-%COMP%_appt-fade .15s ease}@keyframes _ngcontent-%COMP%_appt-fade{0%{opacity:0}
1to{opacity:1}}.appt-sheet[_ngcontent-%COMP%]{position:relative;width:100%;max-width:520px;background:#fff;border-radius:18px 18px 0 0;padding:20px 22px 26px;box-shadow:0 -6px 24px #0000002e;max-height:90vh;overflow-y:auto;animation:_ngcontent-%COMP%_appt-slide-up .22s cubic-bezier(.16,1,.3,1)}@keyframes _ngcontent-%COMP%_appt-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media(min-width:640px){.appt-overlay[_ngcontent-%COMP%]{align-items:center;padding:24px}.appt-sheet[_ngcontent-%COMP%]{border-radius:16px;animation:appt-pop .18s ease}.appt-grabber[_ngcontent-%COMP%]{display:none}@keyframes appt-pop{0%{transform:scale(.96);opacity:0}to{transform:scale(1);opacity:1}}}.appt-grabber[_ngcontent-%COMP%]{width:40px;height:4px;border-radius:999px;background:#d1d5db;margin:0 auto 14px}.appt-close[_ngcontent-%COMP%]{position:absolute;top:14px;right:14px;width:32px;height:32px;border:none;background:#f3f4f6;color:#6b7280;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:background .15s,color .15s}.appt-close[_ngcontent-%COMP%]:hover{background:#e5e7eb;color:#374151}.appt-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:18px;padding-right:34px}.appt-status[_ngcontent-%COMP%]{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#3b82f6}.appt-status.is-pending[_ngcontent-%COMP%]{color:#b45309}.appt-business[_ngcontent-%COMP%]{font-size:20px;font-weight:700;color:#1f2937;margin:6px 0 0}.appt-logo[_ngcontent-%COMP%]{width:52px;height:52px;border-radius:8px;object-fit:contain;background:#f3f4f6;flex-shrink:0}.appt-rows[_ngcontent-%COMP%]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}.appt-row[_ngcontent-%COMP%]{display:flex;align-items:flex-start;gap:12px;font-size:15px;color:#374151;line-height:1.5}.appt-row[_ngcontent-%COMP%] > i[_ngcontent-%COMP%]{font-size:17px;color:#9ca3af;flex-shrink:0;margin-top:1px}.appt-tz[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:#9ca3af;margin-left:8px}.appt-row-notes[_ngcontent-%COMP%]{color:#4b5563;font-size:14px}.appt-address[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:3px}.appt-address-name[_ngcontent-%COMP%]{font-weight:600;color:#1f2937}.appt-address-line[_ngcontent-%COMP%]{color:#4b5563}.appt-maps-link[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:5px;margin-top:4px;font-size:14px;font-weight:600;color:#03a791;text-decoration:none;width:fit-content}.appt-maps-link[_ngcontent-%COMP%]:hover{text-decoration:underline}.appt-phone[_ngcontent-%COMP%]{color:#03a791;text-decoration:none}.appt-phone[_ngcontent-%COMP%]:hover{text-decoration:underline}.appt-pending-note[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;margin-top:18px;padding:10px 14px;background:#f59e0b14;border:1px solid rgba(245,158,11,.25);border-radius:8px;font-size:13px;color:#92400e;line-height:1.5}.appt-pending-note[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{color:#d97706}.appt-join-btn[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:22px;padding:13px 20px;background:#03a791;color:#fff;border-radius:10px;font-size:15px;font-weight:600;text-decoration:none;transition:background .15s}.appt-join-btn[_ngcontent-%COMP%]:hover{background:#02937f}.appt-actions[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin-top:20px;padding-top:16px;border-top:1px solid #f0f0f0}.appt-reschedule-btn[_ngcontent-%COMP%], .appt-cancel-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;background:none;border:none;padding:8px 12px;font-size:14px;cursor:pointer;border-radius:8px;transition:color .2s,background .2s}.appt-reschedule-btn[_ngcontent-%COMP%]{color:#6b7280}.appt-reschedule-btn[_ngcontent-%COMP%]:hover{color:#03a791;background:#03a79114}.appt-cancel-btn[_ngcontent-%COMP%]{color:#9ca3af}.appt-cancel-btn[_ngcontent-%COMP%]:hover{color:#dc2626;background:#dc26260f}
1.appt-reschedule-btn[_ngcontent-%COMP%]:disabled, .appt-cancel-btn[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:default}[data-theme="dark"][_nghost-%COMP%]   .appt-sheet[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .appt-sheet[_ngcontent-%COMP%]{background:#1e293b;box-shadow:0 -6px 24px #00000080}[data-theme="dark"][_nghost-%COMP%]   .appt-grabber[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .appt-grabber[_ngcontent-%COMP%]{background:#475569}[data-theme="dark"][_nghost-%COMP%]   .appt-close[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .appt-close[_ngcontent-%COMP%]{background:#334155;color:#cbd5e1}[data-theme="dark"][_nghost-%COMP%]   .appt-close[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .appt-close[_ngcontent-%COMP%]:hover{background:#3f4d63;color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .appt-business[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .appt-business[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .appt-logo[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .appt-logo[_ngcontent-%COMP%]{background:#334155}[data-theme="dark"][_nghost-%COMP%]   .appt-row[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .appt-row[_ngcontent-%COMP%]{color:#cbd5e1}[data-theme="dark"][_nghost-%COMP%]   .appt-row[_ngcontent-%COMP%] > i[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .appt-row[_ngcontent-%COMP%] > i[_ngcontent-%COMP%]{color:#64748b}[data-theme="dark"][_nghost-%COMP%]   .appt-row-notes[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .appt-row-notes[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .appt-address-name[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .appt-address-name[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .appt-address-line[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .appt-address-line[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .appt-maps-link[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .appt-maps-link[_ngcontent-%COMP%], [data-theme="dark"][_nghost-%COMP%]   .appt-phone[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .appt-phone[_ngcontent-%COMP%]{color:#0cc4ac}[data-theme="dark"][_nghost-%COMP%]   .appt-join-btn[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .appt-join-btn[_ngcontent-%COMP%]{background:#03a791}[data-theme="dark"][_nghost-%COMP%]   .appt-join-btn[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .appt-join-btn[_ngcontent-%COMP%]:hover{background:#0cc4ac}[data-theme="dark"][_nghost-%COMP%]   .appt-actions[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .appt-actions[_ngcontent-%COMP%]{border-top-color:#334155}[data-theme="dark"][_nghost-%COMP%]   .appt-reschedule-btn[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .appt-reschedule-btn[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .appt-reschedule-btn[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .appt-reschedule-btn[_ngcontent-%COMP%]:hover{color:#0cc4ac;background:#0cc4ac1f}[data-theme="dark"][_nghost-%COMP%]   .appt-cancel-btn[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .appt-cancel-btn[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .appt-pending-note[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .appt-pending-note[_ngcontent-%COMP%]{background:#f59e0b1f;color:#fcd34d}']});};var ui=n=>["/pay",n],Mi=(n,t)=>t.id;function Ei(n,t){if(n&1&&(o(0,"h2",16),d(1),a()),n&2){let e=c();r(),M(e.businessName);}}function Ti(n,t){if(n&1&&(o(0,"p",21),_(1,3),a(),o(2,"a",22),m(3,"i",23),o(4,"span"),_(5,4),a()()),n&2){let e=c();r(2),A("routerLink",fe(1,ui,e.prepayment.payToken));}}function fi(n,t){if(n&1&&(o(0,"div",29),d(1),a()),n&2){let e=c().$implicit;r(),M(e.details);}}function hi(n,t){if(n&1&&(o(0,"div",30),d(1),a()),n&2){let e=c().$implicit;r(),M(e.instructions);}}function Si(n,t){if(n&1&&(o(0,"div",26)(1,"div",28),d(2),a(),p(3,fi,2,1,"div",29),p(4,hi,2,1,"div",30),a()),n&2){let e=t.$implicit;r(2),M(e.label),r(),g(e.details?3:-1),r(),g(e.instructions?4:-1);}}function Ni(n,t){n&1&&(o(0,"div",27),_(1,5),a());}function bi(n,t){if(n&1&&(o(0,"div",24),X(1,Si,5,3,"div",26,Mi,!1,Ni,2,0,"div",27),a()),n&2){let e=c(2);r(),W(e.methods());}}function xi(n,t){n&1&&m(0,"span",32);}function Ai(n,t){n&1&&m(0,"i",33);}function Li(n,t){if(n&1&&(o(0,"p",34),d(1),a()),n&2){let e=c(3);r(),M(e.infoError());}}function vi(n,t){if(n&1){let e=x();o(0,"button",31),h("click",function(){O(e);let l=c(2);return u(l.loadInfo());}),p(1,xi,1,0,"span",32)(2,Ai,1,0,"i",33),o(3,"span"),_(4,6),a()(),p(5,Li,2,1,"p",34);}if(n&2){let e=c(2);A("disabled",e.infoLoading()),r(),g(e.infoLoading()?1:2),r(4),g(e.infoError()?5:-1);}}function Ri(n,t){n&1&&(o(0,"div",25),m(1,"i",35),o(2,"span"),_(3,7),a()());}function yi(n,t){n&1&&m(0,"span",32);}function ki(n,t){n&1&&m(0,"i",37);}function Ii(n,t){if(n&1&&(o(0,"p",34),d(1),a()),n&2){let e=c(3);r(),M(e.error());}}function wi(n,t){if(n&1){let e=x();o(0,"button",36),h("click",function(){O(e);let l=c(2);return u(l.markPaid());}),p(1,yi,1,0,"span",32)(2,ki,1,0,"i",37),o(3,"span"),_(4,8),a()(),p(5,Ii,2,1,"p",34);}if(n&2){let e=c(2);A("disabled",e.paying()),r(),g(e.paying()?1:2),r(4),g(e.error()?5:-1);}}function $i(n,t){if(n&1&&(p(0,bi,4,1,"div",24)(1,vi,6,3),p(2,Ri,4,0,"div",25)(3,wi,6,3)),n&2){let e=c();g(e.methods()!==null?0:1),r(2),g(e.notified()?2:3);}}var lt=class n{prepayment;businessName;close=new Re();bookingService=v(Zn);profileService=v(Qn);paying=S(!1);notified=S(!1);error=S(null);methods=S(null);infoLoading=S(!1);infoError=S(null);headingLabel="Payment pending";closeLabel="Close";ngOnInit(){this.notified.set(this.prepayment.alreadyNotified);}loadInfo(){this.infoLoading()||this.methods()!==null||(this.infoLoading.set(!0),this.infoError.
1set(null),this.profileService.getPaymentMethods(this.prepayment.businessSlug).subscribe({next:t=>{this.infoLoading.set(!1),this.methods.set((t?.methods??[]).filter(e=>e.isActive).sort((e,i)=>e.displayOrder-i.displayOrder));},error:()=>{this.infoLoading.set(!1),this.infoError.set("Could not load payment details. Please try again.");}}));}markPaid(){this.paying()||this.notified()||(this.paying.set(!0),this.error.set(null),this.bookingService.notifyPaymentSent(this.prepayment.businessSlug,this.prepayment.collectionId).subscribe({next:()=>{this.paying.set(!1),this.notified.set(!0);},error:()=>{this.paying.set(!1),this.error.set("Could not record that. Please try again.");}}));}onEscape(){this.close.emit();}onBackdrop(t){t.target.classList.contains("appt-overlay")&&this.close.emit();}static ɵfac=function(e){return new(e||n)();};static ɵcmp=H({type:n,selectors:[["app-portal-payment-sheet"]],hostBindings:function(e,i){e&1&&h("keydown.escape",function(){return i.onEscape();},ye);},inputs:{prepayment:"prepayment",businessName:"businessName"},outputs:{close:"close"},decls:19,vars:9,consts:()=>{let t;t="Payment pending";let e;e="Prepayment required";let i;i="Your appointment is approved \u2014 make the prepayment to finalize it.";let l;l="Pay securely by card. Your appointment is confirmed as soon as the payment goes through.";let s;s="Pay by card";let T;T="No payment details available yet \u2014 please contact your provider.";let f;f="View payment details";let b;b="Thanks \u2014 we'll verify your payment and confirm shortly.";let L;return L="I've paid",[t,e,i,l,s,T,f,b,L,[1,"appt-overlay",3,"click"],["role","dialog","aria-modal","true",1,"appt-sheet"],["aria-hidden","true",1,"appt-grabber"],["type","button",1,"appt-close",3,"click"],[1,"bi","bi-x-lg"],[1,"pay-head"],[1,"pay-status"],[1,"pay-business"],[1,"pay-amount"],[1,"pay-amount-value"],[1,"pay-amount-label"],[1,"pay-hint"],[1,"pay-card-hint"],[1,"pay-paid-btn",3,"routerLink"],[1,"bi","bi-credit-card"],[1,"pay-methods"],[1,"pay-done"],[1,"pay-method"],[1,"pay-method-empty"],[1,"pay-method-label"],[1,"pay-method-details"],[1,"pay-method-note"],["type","button",1,"pay-info-btn",3,"click","disabled"],[1,"spinner-border","spinner-border-sm"],[1,"bi","bi-bank"],[1,"pay-error"],[1,"bi","bi-check-circle-fill"],["type","button",1,"pay-paid-btn",3,"click","disabled"],[1,"bi","bi-check2-circle"]];},template:function(e,i){e&1&&(o(0,"div",9),h("click",function(s){return i.onBackdrop(s);}),o(1,"div",10),m(2,"div",11),o(3,"button",12),h("click",function(){return i.close.emit();}),m(4,"i",13),a(),o(5,"div",14)(6,"span",15),_(7,0),a(),p(8,Ei,2,1,"h2",16),a(),o(9,"div",17)(10,"span",18),d(11),R(12,"number"),a(),o(13,"span",19),_(14,1),a()(),o(15,"p",20),_(16,2),a(),p(17,Ti,6,3)(18,$i,4,2),a()()),e&2&&(r(),ge("aria-label",i.headingLabel),r(2),ge("aria-label",i.closeLabel),r(5),g(i.businessName?8:-1),r(3),le("",y(12,6,i.prepayment.amount,"1.2-2")," ",i.prepayment.currency),r(6),g(i.prepayment.payToken?17:18));},dependencies:[j,_e,Pe],styles:['.appt-overlay[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:1050;background:#0f172a73;display:flex;align-items:flex-end;justify-content:center;animation:_ngcontent-%COMP%_appt-fade .15s ease}@keyframes _ngcontent-%COMP%_appt-fade{0%{opacity:0}to{opacity:1}}.appt-sheet[_ngcontent-%COMP%]{position:relative;width:100%;max-width:520px;background:#fff;border-radius:18px 18px 0 0;padding:20px 22px 26px;box-shadow:0 -6px 24px #0000002e;max-height:90vh;overflow-y:auto;animation:_ngcontent-%COMP%_appt-slide-up .22s cubic-bezier(.16,1,.3,1)}@keyframes _ngcontent-%COMP%_appt-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media(min-width:640px){.appt-overlay[_ngcontent-%COMP%]{align-items:center;padding:24px}.appt-sheet[_ngcontent-%COMP%]{border-radius:16px;animation:appt-pop .18s ease}.appt-grabber[_ngcontent-%COMP%]{display:none}@keyframes appt-pop{0%{transform:scale(.96);opacity:0}to{transform:scale(1);opacity:1}}}.appt-grabber[_ngcontent-%COMP%]{width:40px;height:4px;border-radius:999px;background:#d1d5db;margin:0 auto 14px}.appt-close[_ngcontent-%COMP%]{position:absolute;top:14px;right:14px;width:32px;height:32px;border:none;background:#f3f4f6;color:#6b7280;border-radius:8px;
1cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:background .15s,color .15s}.appt-close[_ngcontent-%COMP%]:hover{background:#e5e7eb;color:#374151}.pay-head[_ngcontent-%COMP%]{margin-bottom:16px;padding-right:34px}.pay-status[_ngcontent-%COMP%]{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#b45309}.pay-business[_ngcontent-%COMP%]{font-size:20px;font-weight:700;color:#1f2937;margin:6px 0 0}.pay-amount[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;gap:2px;padding:18px;margin-bottom:14px;background:#03a7910f;border:1px solid rgba(3,167,145,.18);border-radius:12px}.pay-amount-value[_ngcontent-%COMP%]{font-size:28px;font-weight:800;color:#03a791}.pay-amount-label[_ngcontent-%COMP%]{font-size:12px;color:#6b7280;text-transform:uppercase;letter-spacing:.04em}.pay-hint[_ngcontent-%COMP%]{font-size:13px;color:#6b7280;line-height:1.5;margin:0 0 16px}.pay-methods[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}.pay-method[_ngcontent-%COMP%]{padding:12px 14px;border-radius:10px;background:#f9fafb;border:1px solid #eef0f2}.pay-method-label[_ngcontent-%COMP%]{font-weight:700;color:#1f2937;font-size:14px;margin-bottom:4px}.pay-method-details[_ngcontent-%COMP%]{color:#374151;font-size:14px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.pay-method-note[_ngcontent-%COMP%]{color:#6b7280;font-size:13px;margin-top:4px;line-height:1.45}.pay-method-empty[_ngcontent-%COMP%]{color:#6b7280;font-size:13px;text-align:center;padding:8px}.pay-info-btn[_ngcontent-%COMP%], .pay-paid-btn[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:13px 20px;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;border:none}.pay-info-btn[_ngcontent-%COMP%]{background:#f3f4f6;color:#374151;margin-bottom:10px;transition:background .15s}.pay-info-btn[_ngcontent-%COMP%]:hover{background:#e5e7eb}.pay-info-btn[_ngcontent-%COMP%]:disabled{opacity:.6;cursor:default}.pay-paid-btn[_ngcontent-%COMP%]{background:#03a791;color:#fff;transition:background .15s;text-decoration:none}.pay-card-hint[_ngcontent-%COMP%]{font-size:13px;color:#6b7280;line-height:1.5;margin:0 0 12px;text-align:center}.pay-paid-btn[_ngcontent-%COMP%]:hover{background:#02937f}.pay-paid-btn[_ngcontent-%COMP%]:disabled{opacity:.6;cursor:default}.pay-done[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;justify-content:center;padding:13px 16px;border-radius:10px;font-size:14px;line-height:1.4;background:#03a79114;border:1px solid rgba(3,167,145,.25);color:#047857}.pay-done[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{color:#03a791}.pay-error[_ngcontent-%COMP%]{color:#dc2626;font-size:13px;text-align:center;margin:8px 0 0}.spinner-border[_ngcontent-%COMP%]{width:1rem;height:1rem}[data-theme="dark"][_nghost-%COMP%]   .appt-sheet[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .appt-sheet[_ngcontent-%COMP%]{background:#1e293b;box-shadow:0 -6px 24px #00000080}[data-theme="dark"][_nghost-%COMP%]   .appt-grabber[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .appt-grabber[_ngcontent-%COMP%]{background:#475569}[data-theme="dark"][_nghost-%COMP%]   .appt-close[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .appt-close[_ngcontent-%COMP%]{background:#334155;color:#cbd5e1}[data-theme="dark"][_nghost-%COMP%]   .appt-close[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .appt-close[_ngcontent-%COMP%]:hover{background:#3f4d63;color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .pay-business[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .pay-business[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .pay-amount[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .pay-amount[_ngcontent-%COMP%]{background:#0cc4ac1a;border-color:#0cc4ac40}[data-theme="dark"][_nghost-%COMP%]   .pay-amount-value[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .pay-amount-value[_ngcontent-%COMP%]{color:#0cc4ac}[data-theme="dark"][_nghost-%COMP%]   .pay-amount-label[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .pay-amount-label[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .pay-hint[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .pay-hint[_ngcontent-%COMP%], [data-theme="dark"][_nghost-%COMP%]   .pay-card-hint[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .pay-card-hint[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .pay-method[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .pay-method[_ngcontent-%COMP%]{background:#334155;border-color:#3f4d63}[data-theme="dark"][_nghost-%COMP%]   .pay-method-label[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .pay-method-label[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .pay-method-details[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .pay-method-details[_ngcontent-%COMP%]{color:#cbd5e1}[data-theme="dark"][_nghost-%COMP%]   .pay-method-note[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .pay-method-note[_ngcontent-%COMP%], [data-theme="dark"][_nghost-%COMP%]   .pay-method-empty[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .pay-method-empty[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .pay-info-btn[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .pay-info-btn[_ngcontent-%COMP%]{background:#334155;color:#e2e8f0}[data-theme="dark"][_nghost-%COMP%]   .pay-info-btn[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .pay-info-btn[_ngcontent-%COMP%]:hover{background:#3f4d63}[data-theme="dark"][_nghost-%COMP%]   .pay-paid-btn[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .pay-paid-btn[_ngcontent-%COMP%]{background:#03a791}[data-theme="dark"][_nghost-%COMP%]   .pay-paid-btn[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .pay-paid-btn[_ngcontent-%COMP%]:hover{background:#0cc4ac}[data-theme="dark"][_nghost-%COMP%]   .pay-done[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .pay-done[_ngcontent-%COMP%]{background:#0cc4ac1f;color:#6ee7b7}']});};var Fi=n=>["/portal/meal-plans",n],ro=(n,t)=>t.id;function Gi(n,t){n&1&&m(0,"app-portal-notification-opt-in");}function zi(n,t){if(n&1&&(o(0,"div",65)(1,"h1"),_(2,9),a(),o(3,"p",92),_(4,10),a()()),n&2){let e=c();r(2),ae(e.getFirstName()),re(2);}}function Ui(n,t){n&1&&(o(0,"a",94)(1,"div",103),E(),o(2,"svg",104),m(3,"path",105),a()(),N(),o(4,"div",99)(5,"h3"),_(6,17),a(),o(7,"p"),_(8,18),a()(),o(9,"div",100),E(),o(10,"svg",79),m(11,"path",80),a()()());}function Vi(n,t){if(n&1&&(o(0,"div",65)(1,"h1"),_(2,11),a(),o(3,"p",92),_(4,12),a()(),o(5,"div",93),p(6,Ui,12,0,"a",94),o(7,"a",95)(8,"div",96),E(),o(9,"svg",97),m(10,"path",98),a()(),N(),o(11,"div",99)(12,"h3"),_(13,13),a(),o(14,"p"),_(15,14),a()(),o(16,"div",100),E(),o(17,"svg",79),m(18,"path",80),a()()()(),N(),o(19,"p",101)(20,"span"),_(21,15),a(),o(22,"a",102),_(23,16),a()()),n&2){let e=c();r(6),g(e.featureFlags.consumerDirectory?6:-1);}}function Di(n,t){n&1&&(o(0,"div",66),m(1,"div",106),o(2,"p"),_(3,19),a()());}function Hi(n,t){n&1&&(o(0,"span",117),_(1,20),a());}function Xi(n,t){n&1&&(o(0,"span",117),_(1,21),a());}function Wi(n,t){if(n&1&&p(0,Hi,2,0,"span",117)(1,Xi,2,0,"span",117),n&2){let e=c(3);g(e.upcomingIsVerifying?0:1);}}function Yi(n,t){n&1&&(o(0,"span",117),_(1,22),a());}function Bi(n,t){n&1&&(o(0,"span",117),_(1,23),a());}function ji(n,t){if(n&1&&(o(0,"span",118),_(1,24),a()),n&2){let e=c(3);r(),ae(e.upcomingDaysUntil)(e.upcomingDaysUntil),re(1);}}function Ki(n,t){if(n&1&&m(0,"img",120),n&2){let e,i=c(3);A("src",(e=i.upcomingAppointment())==null||e.tenant==null?null:e.tenant.logoUrl,te);}}function qi(n,t){if(n&1&&(o(0,"span",127),m(1,"i",130),d(2),a()),n&2){let e,i=c(3);r(2),I(" ",(e=i.upcomingAppointment())==null||e.appointment==null?null:e.appointment.timezoneId);}}function Ji(n,t){n&1&&(E(),o(0,"svg",124),m(1,"path",131),a(),N(),o(2,"span"),_(3,25),a());}function Qi(n,t){n&1&&(E(),o(0,"svg",124),m(1,"path",132)(2,"path",133),a(),N(),o(3,"span"),_(4,26),a());}function Zi(n,t){if(n&1&&(o(0,"span",136),d(1),R(2,"number"),a()),n&2){let e=t;
1r(),le("",y(2,2,e.amount,"1.2-2")," ",e.currency);}}function ea(n,t){if(n&1){let e=x();o(0,"button",134),h("click",function(l){O(e);let s=c(3);return l.stopPropagation(),u(s.openUpcomingCard());}),m(1,"i",135),o(2,"span"),_(3,27),a(),p(4,Zi,3,5,"span",136),a();}if(n&2){let e,i=c(3);r(4),g((e=i.upcomingPrepayment)?4:-1,e);}}function ta(n,t){n&1&&(o(0,"span"),_(1,28),a());}function na(n,t){n&1&&(o(0,"span"),_(1,29),a());}function oa(n,t){if(n&1&&(o(0,"div",129),p(1,ta,2,0,"span")(2,na,2,0,"span"),m(3,"i",137),a()),n&2){let e=c(3);r(),g(e.upcomingIsVerifying?1:2);}}function ia(n,t){if(n&1){let e=x();o(0,"div",113),h("click",function(){O(e);let l=c(2);return u(l.openUpcomingCard());})("keydown.enter",function(){O(e);let l=c(2);return u(l.openUpcomingCard());})("keydown.space",function(l){O(e);let s=c(2);return l.preventDefault(),u(s.openUpcomingCard());}),o(1,"div",114)(2,"div",115)(3,"div",116),p(4,Wi,2,1)(5,Yi,2,0,"span",117)(6,Bi,2,0,"span",117),p(7,ji,2,2,"span",118),a(),o(8,"h2",119),d(9),a()(),p(10,Ki,1,1,"img",120),a(),o(11,"div",121)(12,"div",122)(13,"div",123),E(),o(14,"svg",124),m(15,"path",125),a(),N(),o(16,"span"),d(17),a()(),o(18,"div",123),E(),o(19,"svg",124),m(20,"path",126),a(),N(),o(21,"span"),d(22),a(),p(23,qi,3,1,"span",127),a(),o(24,"div",123),p(25,Ji,4,0)(26,Qi,5,0),a()()(),p(27,ea,5,1,"button",128)(28,oa,4,1,"div",129),a();}if(n&2){let e,i,l,s,T,f,b=c(2);z("is-pending",b.upcomingIsPending||b.upcomingIsAwaitingPayment),r(4),g(b.upcomingIsAwaitingPayment?4:b.upcomingIsPending?5:6),r(3),g(b.hasUpcomingDaysUntil?7:-1),r(2),M((e=b.upcomingAppointment())==null||e.tenant==null?null:e.tenant.businessName),r(),g(!((i=b.upcomingAppointment())==null||i.tenant==null)&&i.tenant.logoUrl?10:-1),r(7),M((l=b.upcomingAppointment())==null||l.appointment==null?null:l.appointment.dateDisplay),r(5),le("",(s=b.upcomingAppointment())==null||s.appointment==null?null:s.appointment.timeDisplay," (",(s=b.upcomingAppointment())==null||s.appointment==null?null:s.appointment.duration," min)"),r(),g(!((T=b.upcomingAppointment())==null||T.appointment==null)&&T.appointment.timezoneId?23:-1),r(2),g(((f=b.upcomingAppointment())==null||f.appointment==null?null:f.appointment.meetingType)==="online"?25:26),r(2),g(b.upcomingIsAwaitingPayment&&!b.upcomingIsVerifying?27:28);}}function aa(n,t){if(n&1&&d(0),n&2){let e=c().$implicit;I(" ",e.practiceName," ");}}function ra(n,t){n&1&&d(0," \xB7 ");}function la(n,t){if(n&1&&d(0),n&2){let e=c().$implicit;I(" ",e.serviceName," ");}}function _a(n,t){if(n&1){let e=x();o(0,"button",144),h("click",function(){let l=O(e).$implicit,s=c(3);return u(s.openConsent(l));}),o(1,"span",145)(2,"span",146),d(3),a(),o(4,"span",147),p(5,aa,1,1),p(6,ra,1,0),p(7,la,1,1),a()(),o(8,"span",148),_(9,32),a(),m(10,"i",137),a();}if(n&2){let e=t.$implicit;r(3),M(e.title),r(2),g(e.practiceName?5:-1),r(),g(e.practiceName&&e.serviceName?6:-1),r(),g(e.serviceName?7:-1);}}function ca(n,t){if(n&1&&(o(0,"div",108)(1,"div",138),E(),o(2,"svg",139),m(3,"path",140),a(),N(),o(4,"div")(5,"span",141),_(6,30),a(),o(7,"p",142),_(8,31),a()()(),X(9,_a,11,4,"button",143,ro),a()),n&2){let e=c(2);r(9),W(e.pendingConsents());}}function sa(n,t){if(n&1){let e=x();o(0,"app-portal-appointment-details",149),h("close",function(){O(e);let l=c(2);return u(l.detailsOpen.set(!1));})("reschedule",function(){O(e);let l=c(2);return u(l.rescheduleUpcoming());})("cancel",function(){O(e);let l=c(2);return u(l.cancelUpcoming());}),a();}if(n&2){let e=c(2);A("appointment",e.upcomingAppointment().appointment)("tenant",e.upcomingAppointment().tenant)("isPending",e.upcomingIsPending)("cancelling",e.cancelling())("rescheduling",e.rescheduling());}}function da(n,t){if(n&1){let e=x();o(0,"app-portal-payment-sheet",150),h("close",function(){O(e);let l=c(2);return u(l.paymentOpen.set(!1));}),a();}if(n&2){let e,i=c(2);A("prepayment",t)("businessName",(e=i.upcomingAppointment())==null||e.tenant==null?null:e.tenant.businessName);}}function pa(n,t){if(n&1&&m(0,"img",120),n&2){let e,i=c(3);A("src",(e=i.lastVisit())==null||e.tenant==null?null:e.tenant.logoUrl,te);}}function ga(n,t){n&1&&(o(0,"span"),_(1,35),a());}function ma(n,t){n&1&&(o(0,"span"),_(1,36),a());}function Ca(n,t){if(n&1){let e=x();o(0,"button",165),h("click",function(){O(e);let l=c(4);return u(l.toggleNotes());}),p(1,ga,2,0,"span")(2,ma,2,0,"span"),a();}if(n&2){let e=c(4);r(),g(e.showFullNotes()?1:2);}}function Pa(n,t){if(n&1&&(o(0,"div",154)(1,"div",160),E(),o(2,"svg",161),m(3,"path",162),a(),N(),o(4,"span"),_(5,34),a()(),o(6,"p",163),d(7),a(),p(8,Ca,3,1,"button",164),a()),n&2){let e=c(3);r(7),M(e.getNotesPreview()),r(),g(e.hasMoreNotes()?8:-1);}}function Oa(n,t){if(n&1&&(o(0,"div",155)(1,"a",166)(2,"div",167)(3,"div",168),E(),o(4,"svg",104),m(5,"path",169),a()(),N(),o(6,"div",170)(7,"span",171),_(8,37),a(),o(9,"span",172),d(10),a(),o(11,"div",173)(12,"span",174),_(13,38),R(14,"number"),a(),o(15,"span",175),d(16,"|"),a(),o(17,"span",174),_(18,39),R(19,"number"),a(),o(20,"span",175),d(21,"|"),a(),o(22,"span",174),_(23,40),R(24,"number"),a(),o(25,"span",175),d(26,"|"),a(),o(27,"span",174),_(28,41),R(29,"number"),a()()()(),o(30,"div",176),E(),o(31,"svg",79),m(32,"path",80),a()()()()),n&2){let e,i,l,s,T,f,b=c(3);r(),A("routerLink",fe(18,Fi,(e=b.lastVisit())==null||e.mealPlan==null?null:e.mealPlan.id)),r(9),M((i=b.lastVisit())==null||i.mealPlan==null?null:i.mealPlan.name),r(4),ae(y(14,6,(l=b.lastVisit())==null||l.mealPlan==null?null:l.mealPlan.totalCalories,"1.0-0")),re(13),r(5),ae(y(19,9,(s=b.lastVisit())==null||s.mealPlan==null?null:s.mealPlan.totalProtein,"1.0-0")),re(18),r(5),ae(y(24,12,(T=b.lastVisit())==null||T.mealPlan==null?null:T.mealPlan.totalCarbs,"1.0-0")),re(23),r(5),ae(y(29,15,(f=b.lastVisit())==null||f.mealPlan==null?null:f.mealPlan.totalFat,"1.0-0")),re(28);}}function ua(n,t){if(n&1&&(o(0,"p",157),m(1,"i",177),o(2,"span"),d(3),a()()),n&2){let e,i=c(3);r(3),le("",i.channelName((e=i.lastVisit())==null||e.appointment==null?null:e.appointment.onlineChannel)," \xB7 ",i.callHint);}}function Ma(n,t){if(n&1&&(o(0,"a",158),E(),o(1,"svg",104),m(2,"path",131),a(),N(),o(3,"span"),_(4,42),a()()),n&2){let e,i=c(3);A("href",(e=i.lastVisit())==null||e.appointment==null?null:e.appointment.onlineMeetingLink,te);}}function Ea(n,t){if(n&1&&(o(0,"a",159),E(),o(1,"svg",104),m(2,"path",178),a(),N(),o(3,"span"),_(4,43),a()()),n&2){let e=c(3);A("href",e.getBookingUrl(),te);}}function Ta(n,t){if(n&1&&(o(0,"div",111)(1,"div",114)(2,"div",115)(3,"span",151),_(4,33),a(),o(5,"h2",119),d(6),a()(),p(7,pa,1,1,"img",120),a(),o(8,"div",121)(9,"div",122)(10,"div",123),E(),o(11,"svg",124),m(12,"path",125),a(),N(),o(13,"span"),d(14),a()(),o(15,"div",123),E(),o(16,"svg",124),m(17,"path",126),a(),N(),o(18,"span"),d(19),a()(),o(20,"div",123),E(),o(21,"svg",124),m(22,"path",152)(23,"path",153),a(),N(),o(24,"span"),d(25),a()()(),p(26,Pa,9,2,"div",154),a(),p(27,Oa,33,20,"div",155),o(28,"div",156),p(29,ua,4,2,"p",157),p(30,Ma,5,1,"a",158),p(31,Ea,5,1,"a",159),a()()),n&2){let e,i,l,s,T,f,b,L,w,J,G=c(2);r(6),M((e=G.lastVisit())==null||e.tenant==null?null:e.tenant.businessName),r(),g(!((i=G.lastVisit())==null||i.tenant==null)&&i.tenant.logoUrl?7:-1),r(7),M((l=G.lastVisit())==null||l.appointment==null?null:l.appointment.dateDisplay),r(5),le("",(s=G.lastVisit())==null||s.appointment==null?null:s.appointment.timeDisplay," (",(s=G.lastVisit())==null||s.appointment==null?null:s.appointment.duration," min)"),r(6),M((T=G.lastVisit())==null||T.appointment==null?null:T.appointment.title),r(),g(!((f=G.lastVisit())==null||f.appointment==null)&&f.appointment.notes?26:-1),r(),g((b=G.lastVisit())!=null&&b.mealPlan?27:-1),r(2),g(G.isCallChannel((L=G.lastVisit())==null||L.appointment==null?null:L.appointment.onlineChannel)?29:-1),r(),g(((w=G.lastVisit())==null||w.appointment==null?null:w.appointment.meetingType)==="online"&&!((w=G.lastVisit())==null||w.appointment==null)&&w.appointment.onlineMeetingLink?30:-1),r(),g(!((J=G.lastVisit())==null||J.tenant==null)&&J.tenant.profileSlug?31:-1);}}function fa(n,t){n&1&&(o(0,"a",94)(1,"div",103),E(),o(2,"svg",104),m(3,"path",105),a()(),N(),o(4,"div",99)(5,"h3"),_(6,48),a(),o(7,"p"),_(8,49),a()(),o(9,"div",100),E(),o(10,"svg",79),m(11,"path",80),a()()());}function ha(n,t){if(n&1&&(o(0,"div",93)(1,"a",179)(2,"div",180),m(3,"i",181),a(),o(4,"div",99)(5,"h3"),_(6,44),a(),o(7,"p"),_(8,45),a()(),o(9,"div",100),E(),o(10,"svg",79),m(11,"path",80),a()()(),N(),o(12,"a",182)(13,"div",183),E(),o(14,"svg",104),m(15,"path",184),a()(),N(),o(16,"div",99)(17,"h3"),_(18,46),a(),o(19,"p"),_(20,47),a()(),o(21,"div",100),E(),o(22,"svg",79),m(23,"path",80),a()()(),p(24,fa,12,0,"a",94),a()),n&2){let e=c(2);r(24),g(e.featureFlags.consumerDirectory?24:-1);}}function Sa(n,t){n&1&&(o(0,"div",112)(1,"div",185),E(),o(2,"svg",104),m(3,"path",125),a()(),N(),o(4,"h3"),_(5,50),a(),o(6,"p"),_(7,51),a()());}function Na(n,t){if(n&1&&(o(0,"div",72)(1,"a",186)(2,"div",187),E(),o(3,"svg",104),m(4,"path",169),a()(),N(),o(5,"div",76)(6,"h3"),_(7,52),a(),o(8,"p",77),_(9,53),a()(),o(10,"div",78),E(),o(11,"svg",79),m(12,"path",80),a()()(),N(),o(13,"a",188)(14,"div",189),E(),o(15,"svg",104),m(16,"path",190),a()(),N(),o(17,"div",76)(18,"h3"),_(19,54),a(),o(20,"p",77),_(21,55),a()(),o(22,"div",78),E(),o(23,"svg",79),m(24,"path",80),a()()()()),n&2){let e=c(2);r(9),ae(e.mealPlanCount())(e.mealPlanCount()),re(9),r(12),ae(e.shoppingListCount())(e.shoppingListCount()),re(21);}}function ba(n,t){if(n&1&&(p(0,ia,29,12,"div",107),p(1,ca,11,0,"div",108),p(2,sa,1,5,"app-portal-appointment-details",109),p(3,da,1,2,"app-portal-payment-sheet",110),p(4,Ta,32,11,"div",111),p(5,ha,25,1,"div",93),p(6,Sa,8,0,"div",112),p(7,Na,25,4,"div",72)),n&2){let e,i,l,s,T,f=c();
1g(f.upcomingAppointment()&&(e=f.upcomingAppointment())!=null&&e.appointment?0:-1),r(),g(f.pendingConsents().length>0?1:-1),r(),g(f.detailsOpen()&&(i=f.upcomingAppointment())!=null&&i.appointment&&(i=f.upcomingAppointment())!=null&&i.tenant?2:-1),r(),g((l=f.paymentOpen()&&f.upcomingPrepayment)?3:-1,l),r(),g(f.lastVisit()&&(s=f.lastVisit())!=null&&s.appointment?4:-1),r(),g(f.isStandalone()?5:-1),r(),g(!f.isStandalone()&&(!f.lastVisit()||!((T=f.lastVisit())!=null&&T.appointment))?6:-1),r(),g(f.nutritionActive()?7:-1);}}function xa(n,t){if(n&1&&(o(0,"a",71)(1,"div",191),m(2,"i"),a(),o(3,"span",192),d(4),a()()),n&2){let e=t.$implicit,i=c();A("routerLink","/portal/tools/"+e.slug),r(2),be(e.icon),r(2),M(i.getToolTitle(e));}}function Aa(n,t){n&1&&(o(0,"p",87)(1,"a",193),m(2,"i",194),o(3,"span"),_(4,56),a()()());}function La(n,t){n&1&&(o(0,"div",88)(1,"div",195),E(),o(2,"svg",104),m(3,"path",196),a()(),N(),o(4,"div",197)(5,"h3"),_(6,57),a(),o(7,"p"),_(8,58),a()(),o(9,"a",198)(10,"span"),_(11,59),a(),E(),o(12,"svg",79),m(13,"path",80),a()()());}function va(n,t){if(n&1){let e=x();o(0,"div",89)(1,"a",199),h("click",function(){O(e);let l=c();return u(l.onGetApp());}),m(2,"i",200),o(3,"span",201)(4,"span",202),_(5,60),a(),o(6,"span",203),_(7,61),a()()()();}if(n&2){let e=c();r(),A("href",e.pwaService.playStoreUrl(),te);}}function Ra(n,t){n&1&&(o(0,"span"),_(1,62),a());}function ya(n,t){n&1&&(o(0,"span"),_(1,63),a());}function ka(n,t){if(n&1){let e=x();o(0,"div",90)(1,"button",204),h("click",function(){O(e);let l=c();return u(l.onMiniInstall());}),E(),o(2,"svg",205),m(3,"path",206),a(),p(4,Ra,2,0,"span")(5,ya,2,0,"span"),a()();}if(n&2){let e=c();r(4),g(e.pwaService.isIos()?4:5);}}var Ia=1,kt=class n{isCallChannel=it;channelName=at;callHint=rt("WhatsApp");portalService=v(ee);pwaService=v(Kn);localeId=v(He);notificationService=v(We);siteTracking=v(ht);router=v(me);loading=S(!0);mealPlanCount=S(0);shoppingListCount=S(0);lastVisit=S(null);upcomingAppointment=S(null);detailsOpen=S(!1);paymentOpen=S(!1);showFullNotes=S(!1);iosInstallOpen=S(!1);quickTools=bt.filter(t=>t.available).slice(0,4);featureFlags=Ke;isStandalone=q(()=>(this.portalService.currentUser()?.providers?.length??0)===0);nutritionActive=q(()=>{let t=this.portalService.currentUser()?.providers??[];return t.length===0||t.some(e=>e.vertical===Ia);});practiceConsents=S([]);pendingConsents=q(()=>this.practiceConsents().filter(t=>!!t.accessToken));openConsent(t){t.accessToken&&this.router.navigate(["/portal/consent",t.tenantId,t.accessToken]);}NOTES_PREVIEW_LENGTH=200;get upcomingIsPending(){return this.upcomingAppointment()?.appointment?.status==="AwaitingConsultantApproval";}get upcomingIsAwaitingPayment(){return this.upcomingAppointment()?.appointment?.status==="AwaitingPayment";}get upcomingIsVerifying(){return this.upcomingIsAwaitingPayment&&this.upcomingPrepayment?.alreadyNotified===!0;}get upcomingPrepayment(){return this.upcomingAppointment()?.appointment?.prepayment??null;}openUpcomingCard(){this.upcomingIsAwaitingPayment?this.paymentOpen.set(!0):this.detailsOpen.set(!0);}get upcomingDaysUntil(){return this.upcomingAppointment()?.daysUntil??0;}get hasUpcomingDaysUntil(){return this.upcomingAppointment()?.daysUntil!=null;}cancelling=S(!1);cancelUpcoming(){let t=this.upcomingAppointment(),e=t?.tenant?.id,i=t?.appointment?.id;!e||!i||this.cancelling()||!(typeof window<"u"&&window.confirm("Cancel this appointment?"))||(this.cancelling.set(!0),this.portalService.cancelAppointment(e,i).subscribe({next:()=>{this.cancelling.set(!1),this.detailsOpen.set(!1),this.notificationService.showSuccess("Your appointment has been cancelled."),this.loadData();},error:s=>{this.cancelling.set(!1),this.notificationService.showError(s?.message||"Couldn't cancel the appointment. Please try again.");}}));}rescheduling=S(!1);rescheduleUpcoming(){let t=this.upcomingAppointment(),e=t?.tenant?.id,i=t?.appointment?.id,l=t?.tenant?.profileSlug;!e||!i||!l||this.rescheduling()||(this.rescheduling.set(!0),this.portalService.getAppointmentManageToken(e,i).subscribe({next:s=>{let T=this.localeId.split("-")[0];window.location.href=`/${T}/p/${l}/book?reschedule=${encodeURIComponent(s.token)}`;},error:s=>{this.rescheduling.set(!1),this.notificationService.showError(s?.message||"Couldn't start reschedule. Please try again.");}}));}ngOnInit(){this.portalService.isAuthenticated()?this.loadData():this.loading.set(!1);}getFirstName(){return this.portalService.currentUser()?.fullName?.trim().split(" ")[0]||"User";}getNotesPreview(){let t=this.lastVisit()?.appointment?.notes;
1return t?this.showFullNotes()||t.length<=this.NOTES_PREVIEW_LENGTH?t:t.substring(0,this.NOTES_PREVIEW_LENGTH)+"...":"";}hasMoreNotes(){let t=this.lastVisit()?.appointment?.notes;return!!t&&t.length>this.NOTES_PREVIEW_LENGTH;}toggleNotes(){this.showFullNotes.set(!this.showFullNotes());}getToolTitle(t){switch(t.id){case"bmi":return"BMI Calculator";case"calorie":return"Calorie Calculator";case"macro":return"Macro Calculator";case"ideal-weight":return"Ideal Weight Calculator";case"water-intake":return"Water Intake Calculator";case"body-fat":return"Body Fat Calculator";default:return t.id;}}onGetApp(){this.siteTracking.trackAppInstallEvent("play_store_click","portal_welcome");}onMiniInstall(){if(this.pwaService.isIos()){this.iosInstallOpen.set(!0);return;}this.pwaService.promptInstall();}getBookingUrl(){let t=this.lastVisit()?.tenant?.profileSlug;return t?`/${this.localeId.split("-")[0]}/p/${t}`:"#";}loadData(){this.loading.set(!0),this.portalService.getDashboard().subscribe({next:t=>{this.mealPlanCount.set(t.mealPlanCount),this.shoppingListCount.set(t.shoppingListCount),this.lastVisit.set(t.lastVisit),this.upcomingAppointment.set(t.upcomingAppointment),this.loading.set(!1);},error:()=>{this.loading.set(!1);}}),this.portalService.getPracticeConsents().subscribe(t=>this.practiceConsents.set(t??[]));}static ɵfac=function(e){return new(e||n)();};static ɵcmp=H({type:n,selectors:[["app-portal-welcome"]],decls:58,vars:8,consts:()=>{let t;t="Health Calculators";let e;e="See All";let i;i="Explore & learn";let l;l="Food database";let s;s="Search or scan a barcode for calories and macros.";let T;T="Recipes";let f;f="Healthy recipes with ingredients and macros.";let b;b="Health quizzes";let L;L="Quick self-assessments for your nutrition and habits.";let w;w="Welcome back, "+"\uFFFD0\uFFFD"+"!";let J;J="Your health appointments and personal tracking, all in one place.";let G;G="Your health, all in one place";let D;D="Find a health professional and explore free tools \u2014 no account needed.";let Y;Y="Sign in or create your free account";let oe;oe="Save your progress and information across all your devices.";let ie;ie="Are you a health professional?";let B;B="Sign in to your dashboard";let ce;ce="Find a health professional";let se;se="Ready for personalized guidance? Connect with a professional near you.";let F;F="Loading your data...";let Oe;Oe="Payment being verified";let ue;ue="Payment pending";let Q;Q="Awaiting Approval";let he;he="Upcoming Appointment";let Me;Me="{VAR_PLURAL, plural, =0 {Today} =1 {Tomorrow} other {In {INTERPOLATION} days}}",Me=Le(Me,{INTERPOLATION:"\uFFFD1\uFFFD",VAR_PLURAL:"\uFFFD0\uFFFD"});let Se;Se="Online Meeting";let Ne;Ne="In-Person";let K;K="Complete payment";let ke;ke="We're checking your payment";let Ae;Ae="View details";let Ie;Ie="Waiting for your signature";let we;we="Please read and sign before your appointment.";let $e;$e="Read and sign";let Fe;Fe="Your Last Visit";let V;V="Notes from your provider";let ct;ct="Show less";let st;st="Read more";let dt;dt="Your Meal Plan";let U;U=""+"\uFFFD0\uFFFD"+" kcal";let Zt;Zt=""+"\uFFFD0\uFFFD"+"g protein";let en;en=""+"\uFFFD0\uFFFD"+"g carbs";let tn;tn=""+"\uFFFD0\uFFFD"+"g fat";let nn;nn="Join Meeting";let on;on="Book Follow-up Appointment";let an;an="Your health tools";let rn;rn="Quick calculators for BMI, calories, macros and more \u2014 free to use anytime.";let ln;ln="Track your weight";let _n;_n="Log your weight and watch your progress over time.";let cn;cn="Find a health professional";let sn;sn="Ready for personalized guidance? Connect with a professional near you.";let dn;dn="Welcome to Your Portal";let pn;pn="Your provider will share your consultation notes here after your first visit.";let gn;gn="Meal Plans";let Ct;Ct="{VAR_PLURAL, plural, =0 {No meal plans yet} =1 {1 plan available} other {{INTERPOLATION} plans available}}",Ct=Le(Ct,{INTERPOLATION:"\uFFFD1\uFFFD",VAR_PLURAL:"\uFFFD0\uFFFD"});let mn;mn="Shopping List";let Pt;Pt="{VAR_PLURAL, plural, =0 {No shopping lists yet} =1 {1 list available} other {{INTERPOLATION} lists available}}",Pt=Le(Pt,{INTERPOLATION:"\uFFFD1\uFFFD",VAR_PLURAL:"\uFFFD0\uFFFD"});let Cn;Cn="Looking for another health professional?";let Pn;Pn="Create Your Account";let On;On="Sign in anytime without needing a new access link";let un;un="Create Account";let Mn;Mn="Get the Android app";let En;En="Download on Google Play";let Tn;Tn="Add to Home Screen via Share menu";let fn;return fn="Install as app",[t,e,i,l,s,T,f,b,L,w,J,G,D,Y,oe,ie,B,ce,se,F,Oe,ue,Q,he,Me,Se,Ne,K,ke,Ae,Ie,we,$e,Fe,V,ct,st,dt,U,Zt,en,tn,nn,on,an,rn,ln,_n,cn,sn,dn,pn,gn,Ct,mn,Pt,Cn,Pn,On,un,Mn,En,Tn,fn,[1,"welcome-container"],[1,"welcome-header"],[1,"loading-container"],[1,"quick-tools-section"],[1,"section-header"],["routerLink","/portal/tools",1,"see-all-link"],[1,"quick-tools-grid"],[1,"quick-tool-card",3,"routerLink"],[1,"summary-cards"],["routerLink","/portal/food",1,"summary-card"],[1,"card-icon","food-db"],[1,"bi","bi-upc-scan"],[1,"card-content"],[1,"card-description"],[1,"card-arrow"],["xmlns","http://www.w3.org/2000/svg","fill","none","viewBox","0 0 24 24","stroke-width","2","stroke","currentColor"],["stroke-linecap","round","stroke-linejoin","round","d","M8.25 4.5l7.5 7.5-7.5 7.5"],["routerLink","/portal/recipes",1,"summary-card"],[1,"card-icon","recipes"],[1,"bi","bi-journal-richtext"],["routerLink","/portal/quizzes",1,"summary-card"],[1,"card-icon","quizzes"],[1,"bi","bi-patch-question"],[1,"find-more"],[1,"create-account-banner"],[1,"app-install-cta"],[1,"mini-install"],[3,"openChange","open"],[1,"subtitle"],[1,"consumer-home"],["routerLink","/find",1,"consumer-card","consumer-card-find"],["routerLink","/portal/login",1,"consumer-card","consumer-card-signin"],[1,"consumer-card-icon","signin"],["xmlns","http://www.w3.org/2000/svg","viewBox","0 0 24 24","fill","currentColor"],["fill-rule","evenodd","d","M7.5 6a4.5 4.5 0 119 0 4.5 4.5 0 01-9 0zM3.751 20.105a8.25 8.25 0 0116.498 0 .75.75 0 01-.437.695A18.683 18.683 0 0112 22.5c-2.786 0-5.433-.608-7.812-1.7a.75.75 0 01-.437-.695z","clip-rule","evenodd"],[1,"consumer-card-body"],[1,"consumer-card-arrow"],[1,"pro-entry"],["routerLink","/login"],[1,"consumer-card-icon","find"],["xmlns","http://www.w3.org/2000/svg","fill","none","viewBox","0 0 24 24","stroke-width","1.5","stroke","currentColor"],["stroke-linecap","round","stroke-linejoin","round","d","M21 21l-5.197-5.197m0 0A7.5 7.5 0 105.196 5.196a7.5 7.5 0 0010.607 10.607z"],[1,"spinner"],["role","button","tabindex","0",1,"upcoming-appointment-card","is-clickable",3,"is-pending"],[1,"consent-card"],[3,"appointment","tenant","isPending","cancelling","rescheduling"],[3,"prepayment","businessName"],[1,"last-visit-card"],[1,"empty-visit-card"],["role","button","tabindex","0",1,"upcoming-appointment-card","is-clickable",3,"click","keydown.enter","keydown.space"],[1,"visit-header"],[1,"visit-header-content"],[1,"upcoming-label-row"],[1,"upcoming-label"],[1,"relative-badge"],[1,"business-name"],["alt","Logo",1,"business-logo",3,"src"],[1,"visit-details"],[1,"visit-info-row"],[1,"visit-info-item"],["xmlns","http://www.w3.org/2000/svg","fill","none","viewBox","0 0 24 24","stroke-width","1.5","stroke","currentColor",1,"info-icon"],["stroke-linecap","round","stroke-linejoin","round","d","M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 012.25-2.25h13.5A2.25 2.25 0 0121 7.5v11.25m-18 0A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75m-18 0v-7.5A2.25 2.25 0 015.25 9h13.5A2.25 2.25 0 0121 11.25v7.5"],["stroke-linecap","round","stroke-linejoin","round","d","M12 6v6h4.5m4.5 0a9 9 0 11-18 0 9 9 0 0118 0z"],[1,"timezone-label"],["type","button",1,"upcoming-pay-btn"],[1,"upcoming-details-hint"],[1,"bi","bi-globe2"],["stroke-linecap","round","d","M15.75 10.5l4.72-4.72a.75.75 0 011.28.53v11.38a.75.75 0 01-1.28.53l-4.72-4.72M4.5 18.75h9a2.25 2.25 0 002.25-2.25v-9a2.25 2.25 0 00-2.25-2.25h-9A2.25 2.25 0 002.25 7.5v9a2.25 2.25 0 002.25 2.25z"],["stroke-linecap","round","stroke-linejoin","round","d","M15 10.5a3 3 0 11-6 0 3 3 0 016 0z"],["stroke-linecap","round","stroke-linejoin","round","d","M19.5 10.5c0 7.142-7.5 11.25-7.5 11.25S4.5 17.642 4.5 10.5a7.5 7.5 0 1115 0z"],["type","button",1,"upcoming-pay-btn",3,"click"],[1,"bi","bi-credit-card"],[1,"upcoming-pay-amount"],[1,"bi","bi-chevron-right"],[1,"consent-card-header"],["xmlns","http://www.w3.org/2000/svg","fill","none","viewBox","0 0 24 24","stroke-width","1.5","stroke","currentColor",1,"consent-icon"],["stroke-linecap","round","stroke-linejoin","round","d","M16.862 4.487l1.687-1.688a1.875 1.875 0 112.652 2.652L10.582 16.07a4.5 4.5 0 01-1.897 1.13L6 18l.8-2.685a4.5 4.5 0 011.13-1.897l8.932-8.931zm0 0L19.5 7.125M18 14v4.75A2.25 2.25 0 0115.75 21H5.25A2.25 2.25 0 013 18.75V8.25A2.25 2.25 0 015.25 6H10"],[1,"consent-label"],[1,"consent-sub"],["type","button",1,"consent-row"],["type","button",1,"consent-row",3,"click"],[1,"consent-row-text"],[1,"consent-title"],[1,"consent-meta"],[1,"consent-cta"],[3,"close","reschedule","cancel","appointment","tenant","isPending","cancelling","rescheduling"],[3,"close","prepayment","businessName"],[1,"visit-label"],["stroke-linecap","round","stroke-linejoin","round","d","M9.568 3H5.25A2.25 2.25 0 003 5.25v4.318c0 .597.237 1.17.659 1.591l9.581 9.581c.699.699 1.78.872 2.607.33a18.095 18.095 0 005.223-5.223c.542-.827.369-1.908-.33-2.607L11.16 3.66A2.25 2.25 0 009.568 3z"],["stroke-linecap","round","stroke-linejoin","round","d","M6 6h.008v.008H6V6z"],[1,"visit-notes"],[1,"linked-meal-plan"],[1,"visit-actions"],[1,"call-channel-note",2,"display","flex","align-items","center","gap",".4rem","font-size",".85rem","color","var(--color-text-muted)","margin",".5rem 0 0"],["target","_blank","rel","noopener",1,"join-meeting-btn",3,"href"],["target","_blank","rel","noopener",1,"book-followup-btn",3,"href"],[1,"notes-header"],["xmlns","http://www.w3.org/2000/svg","fill","none","viewBox","0 0 24 24","stroke-width","1.5","stroke","currentColor",1,"n
1otes-icon"],["stroke-linecap","round","stroke-linejoin","round","d","M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z"],[1,"notes-content"],[1,"show-more-btn"],[1,"show-more-btn",3,"click"],[1,"meal-plan-link",3,"routerLink"],[1,"meal-plan-info"],[1,"meal-plan-icon"],["stroke-linecap","round","stroke-linejoin","round","d","M9 12h3.75M9 15h3.75M9 18h3.75m3 .75H18a2.25 2.25 0 002.25-2.25V6.108c0-1.135-.845-2.098-1.976-2.192a48.424 48.424 0 00-1.123-.08m-5.801 0c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75 2.25 2.25 0 00-.1-.664m-5.8 0A2.251 2.251 0 0113.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m0 0H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V9.375c0-.621-.504-1.125-1.125-1.125H8.25z"],[1,"meal-plan-details"],[1,"meal-plan-label"],[1,"meal-plan-name"],[1,"macros-summary"],[1,"macro"],[1,"macro-divider"],[1,"meal-plan-arrow"],[1,"bi","bi-telephone"],["stroke-linecap","round","stroke-linejoin","round","d","M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 012.25-2.25h13.5A2.25 2.25 0 0121 7.5v11.25m-18 0A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75m-18 0v-7.5A2.25 2.25 0 015.25 9h13.5A2.25 2.25 0 0121 11.25v7.5m-9-6h.008v.008H12v-.008zM12 15h.008v.008H12V15zm0 2.25h.008v.008H12v-.008zM9.75 15h.008v.008H9.75V15zm0 2.25h.008v.008H9.75v-.008zM7.5 15h.008v.008H7.5V15zm0 2.25h.008v.008H7.5v-.008zm6.75-4.5h.008v.008h-.008v-.008zm0 2.25h.008v.008h-.008V15zm0 2.25h.008v.008h-.008v-.008zm2.25-4.5h.008v.008H16.5v-.008zm0 2.25h.008v.008H16.5V15z"],["routerLink","/portal/tools",1,"consumer-card","consumer-card-tools"],[1,"consumer-card-icon","tools"],[1,"bi","bi-calculator"],["routerLink","/portal/progress",1,"consumer-card","consumer-card-progress"],[1,"consumer-card-icon","progress"],["stroke-linecap","round","stroke-linejoin","round","d","M2.25 18L9 11.25l4.306 4.307a11.95 11.95 0 015.814-5.519l2.74-1.22m0 0l-5.94-2.281m5.94 2.28l-2.28 5.941"],[1,"empty-icon"],["routerLink","/portal/meal-plans",1,"summary-card"],[1,"card-icon","meal-plans"],["routerLink","/portal/shopping-list",1,"summary-card"],[1,"card-icon","shopping"],["stroke-linecap","round","stroke-linejoin","round","d","M2.25 3h1.386c.51 0 .955.343 1.087.835l.383 1.437M7.5 14.25a3 3 0 00-3 3h15.75m-12.75-3h11.218c1.121-2.3 2.1-4.684 2.924-7.138a60.114 60.114 0 00-16.536-1.84M7.5 14.25L5.106 5.272M6 20.25a.75.75 0 11-1.5 0 .75.75 0 011.5 0zm12.75 0a.75.75 0 11-1.5 0 .75.75 0 011.5 0z"],[1,"quick-tool-icon"],[1,"quick-tool-name"],["routerLink","/find"],[1,"bi","bi-search"],[1,"banner-icon"],["stroke-linecap","round","stroke-linejoin","round","d","M15.75 5.25a3 3 0 013 3m3 0a6 6 0 01-7.029 5.912c-.563-.097-1.159.026-1.563.43L10.5 17.25H8.25v2.25H6v2.25H2.25v-2.818c0-.597.237-1.17.659-1.591l6.499-6.499c.404-.404.527-1 .43-1.563A6 6 0 1121.75 8.25z"],[1,"banner-content"],["routerLink","/portal/create-account",1,"banner-btn"],["target","_blank","rel","noopener noreferrer",1,"app-install-btn",3,"click","href"],[1,"bi","bi-google-play"],[1,"app-install-btn-text"],[1,"app-install-btn-title"],[1,"app-install-btn-sub"],[1,"mini-install-link",3,"click"],["xmlns","http://www.w3.org/2000/svg","viewBox","0 0 20 20","fill","currentColor"],["fill-rule","evenodd","d","M2 4.25A2.25 2.25 0 014.25 2h11.5A2.25 2.25 0 0118 4.25v8.5A2.25 2.25 0 0115.75 15h-3.105a3.501 3.501 0 001.1 1.677A.75.75 0 0113.26 18H6.74a.75.75 0 01-.484-1.323A3.501 3.501 0 007.355 15H4.25A2.25 2.25 0 012 12.75v-8.5zm1.5 0a.75.75 0 01.75-.75h11.5a.75.75 0 01.75.75v7.5a.75.75 0 01-.75.75H4.25a.75.75 0 01-.75-.75v-7.5z","clip-rule","evenodd"]];},template:function(e,i){if(e&1&&(o(0,"div",64),p(1,Gi,1,0,"app-portal-notification-opt-in"),p(2,zi,5,1,"div",65)(3,Vi,24,1),p(4,Di,4,0,"div",66),p(5,ba,8,8),o(6,"div",67)(7,"div",68)(8,"h2"),_(9,0),a(),o(10,"a",69),_(11,1),a()(),o(12,"div",70),X(13,xa,5,4,"a",71,ro),a()(),o(15,"div",67)(16,"div",68)(17,"h2"),_(18,2),a()(),o(19,"div",72)(20,"a",73)(21,"div",74),m(22,"i",75),a(),o(23,"div",76)(24,"h3"),_(25,3),a(),o(26,"p",77),_(27,4),a()(),o(28,"div",78),E(),o(29,"svg",79),m(30,"path",80),a()()(),N(),o(31,"a",81)(32,"div",82),m(33,"i",83),a(),o(34,"div",76)(35,"h3"),_(36,5),a(),o(37,"p",77),_(38,6),a()(),o(39,"div",78),E(),o(40,"svg",79),m(41,"path",80),a()()(),N(),o(42,"a",84)(43,"div",85),m(44,"i",86),a(),o(45,"div",76)(46,"h3"),_(47,7),a(),o(48,"p",77),_(49,8),a()(),o(50,"div",78),E(),o(51,"svg",79),m(52,"path",80),a()()()()(),p(53,Aa,5,0,"p",87),p(54,La,14,0,"div",88),p(55,va,8,1,"div",89)(56,ka,6,1,"div",90),N(),o(57,"app-ios-install-modal",91),h("openChange",function(s){return i.iosInstallOpen.set(s);}),a()()),e&2){let l;r(),g(i.portalService.isAuthenticated()?1:-1),r(),g(i.portalService.isAuthenticated()?2:3),r(2),g(i.portalService.isAuthenticated()&&i.loading()?4:-1),r(),g(i.portalService.isAuthenticated()&&!i.loading()?5:-1),r(8),W(i.quickTools),r(40),g(i.portalService.isAuthenticated()&&!i.isStandalone()&&i.featureFlags.consumerDirectory?53:-1),r(),g(i.portalService.isAuthenticated()&&!((l=i.portalService.currentUser())!=null&&l.hasAccount)?54:-1),r(),g(i.pwaService.canShowPlayStore()?55:i.pwaService.canShowMiniInstall()?56:-1),r(2),A("open",i.iosInstallOpen());}},dependencies:[j,_e,Rt,qn,yt,lt,Pe],styles:['.welcome-container[_ngcontent-%COMP%]{max-width:900px;margin:0 auto}.welcome-header[_ngcontent-%COMP%]{margin-bottom:32px}.welcome-header[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font-size:28px;font-weight:700;color:#1f2937;margin:0 0 8px}.subtitle[_ngcontent-%COMP%]{color:#6b7280;font-size:16px;margin:0}.loading-container[_ngcontent-%COMP%]{background:#fff;border-radius:12px;padding:48px;text-align:center;box-shadow:0 1px 3px #0000001a}.spinner[_ngcontent-%COMP%]{width:40px;height:40px;border:3px solid #e5e7eb;border-top-color:#03a791;border-radius:50%;animation:_ngcontent-%COMP%_spin 1s linear infinite;margin:0 auto 16px}@keyframes _ngcontent-%COMP%_spin{to{transform:rotate(360deg)}}.loading-container[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:#6b7280;margin:0}.summary-cards[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;margin-bottom:40px}.summary-card[_ngcontent-%COMP%]{display:flex;align-items:center;gap:16px;background:#fff;border-radius:12px;padding:24px;text-decoration:none;color:inherit;box-shadow:0 1px 3px #0000001a;transition:all .2s;border:2px solid transparent}.summary-card[_ngcontent-%COMP%]:hover{box-shadow:0 8px 25px #0000001f;transform:translateY(-2px);border-color:#03a791}.card-icon[_ngcontent-%COMP%]{width:56px;height:56px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.card-icon[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:28px;height:28px}.card-icon.meal-plans[_ngcontent-%COMP%]{background:#03a7911a;color:#03a791}.card-icon.shopping[_ngcontent-%COMP%]{background:#3b82f61a;color:#3b82f6}
1.card-icon.food-db[_ngcontent-%COMP%]{background:#f59e0b1f;color:#f59e0b}.card-icon.recipes[_ngcontent-%COMP%]{background:#ec48991f;color:#ec4899}.card-icon.quizzes[_ngcontent-%COMP%]{background:#8b5cf61f;color:#8b5cf6}.card-icon[_ngcontent-%COMP%]   i.bi[_ngcontent-%COMP%]{font-size:26px;line-height:1}.card-content[_ngcontent-%COMP%]{flex:1}.card-content[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font-size:18px;font-weight:600;color:#1f2937;margin:0 0 4px}.card-description[_ngcontent-%COMP%]{font-size:14px;color:#6b7280;margin:0}.card-arrow[_ngcontent-%COMP%]{width:24px;height:24px;color:#9ca3af;flex-shrink:0}.card-arrow[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:100%;height:100%}.summary-card[_ngcontent-%COMP%]:hover   .card-arrow[_ngcontent-%COMP%]{color:#03a791}.upcoming-appointment-card[_ngcontent-%COMP%]{background:#fff;border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000001a;margin-bottom:24px;border-left:4px solid #3b82f6}.upcoming-appointment-card.is-clickable[_ngcontent-%COMP%]{cursor:pointer;transition:box-shadow .15s,transform .15s}.upcoming-appointment-card.is-clickable[_ngcontent-%COMP%]:hover{box-shadow:0 4px 12px #0000001f;transform:translateY(-1px)}.upcoming-appointment-card.is-clickable[_ngcontent-%COMP%]:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.upcoming-details-hint[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:flex-end;gap:4px;margin-top:14px;font-size:13px;font-weight:600;color:#3b82f6}.upcoming-details-hint[_ngcontent-%COMP%]   .bi[_ngcontent-%COMP%]{font-size:12px}.upcoming-pay-btn[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;width:100%;margin-top:16px;padding:12px 16px;border:none;border-radius:10px;background:var(--color-primary);color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:background .15s}.upcoming-pay-btn[_ngcontent-%COMP%]:hover{background:var(--color-primary-dark)}.upcoming-pay-btn[_ngcontent-%COMP%]   .upcoming-pay-amount[_ngcontent-%COMP%]{margin-left:auto;font-weight:700}.upcoming-appointment-card.is-pending[_ngcontent-%COMP%]   .upcoming-details-hint[_ngcontent-%COMP%]{color:#b45309}[data-theme="dark"][_nghost-%COMP%]   .upcoming-details-hint[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .upcoming-details-hint[_ngcontent-%COMP%]{color:#60a5fa}.upcoming-label[_ngcontent-%COMP%]{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#3b82f6;display:block;margin-bottom:4px}.upcoming-label-row[_ngcontent-%COMP%]{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:4px}.upcoming-label-row[_ngcontent-%COMP%]   .upcoming-label[_ngcontent-%COMP%]{margin-bottom:0}.relative-badge[_ngcontent-%COMP%]{font-size:12px;font-weight:700;padding:2px 10px;border-radius:999px;background:#3b82f61f;color:#2563eb;white-space:nowrap}.upcoming-appointment-card.is-pending[_ngcontent-%COMP%]{border-left-color:#f59e0b}.upcoming-appointment-card.is-pending[_ngcontent-%COMP%]   .upcoming-label[_ngcontent-%COMP%]{color:#b45309}.upcoming-appointment-card.is-pending[_ngcontent-%COMP%]   .relative-badge[_ngcontent-%COMP%]{background:#f59e0b24;color:#b45309}.pending-note[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;margin-top:16px;padding:10px 14px;background:#f59e0b14;border:1px solid rgba(245,158,11,.25);border-radius:8px;font-size:13px;color:#92400e;line-height:1.5}.pending-note[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:18px;height:18px;flex-shrink:0;color:#d97706}.upcoming-actions-secondary[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin-top:14px}.upcoming-reschedule-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;background:none;border:none;padding:4px 8px;font-size:13px;color:#6b7280;cursor:pointer;border-radius:6px;transition:color .2s,background .2s}.upcoming-reschedule-btn[_ngcontent-%COMP%]:hover{color:#03a791;background:#03a79114}.upcoming-reschedule-btn[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:default}.upcoming-reschedule-btn[_ngcontent-%COMP%]   .bi[_ngcontent-%COMP%]{font-size:14px}[data-theme="dark"][_nghost-%COMP%]   .upcoming-reschedule-btn[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .upcoming-reschedule-btn[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .upcoming-reschedule-btn[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .upcoming-reschedule-btn[_ngcontent-%COMP%]:hover{color:#0cc4ac;background:#0cc4ac1f}.upcoming-cancel-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;background:none;border:none;padding:4px 8px;font-size:13px;color:#9ca3af;cursor:pointer;border-radius:6px;transition:color .2s,background .2s}.upcoming-cancel-btn[_ngcontent-%COMP%]:hover{color:#dc2626;background:#dc26260f}.upcoming-cancel-btn[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:default}.upcoming-cancel-btn[_ngcontent-%COMP%]   .bi[_ngcontent-%COMP%]{font-size:14px}.last-visit-card[_ngcontent-%COMP%]{background:#fff;border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000001a;margin-bottom:24px;border-left:4px solid #03A791}.visit-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.visit-header-content[_ngcontent-%COMP%]{flex:1}.visit-label[_ngcontent-%COMP%]{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;
1color:#03a791;display:block;margin-bottom:4px}.business-name[_ngcontent-%COMP%]{font-size:22px;font-weight:700;color:#1f2937;margin:0}.business-logo[_ngcontent-%COMP%]{width:56px;height:56px;border-radius:8px;object-fit:contain;background:#f3f4f6}.visit-details[_ngcontent-%COMP%]{margin-bottom:20px}.visit-info-row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:20px;margin-bottom:16px}.visit-info-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;color:#4b5563;font-size:14px}.timezone-label[_ngcontent-%COMP%]{font-size:.72rem;color:#999;font-weight:400;letter-spacing:.01em;margin-left:.5rem}.timezone-label[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{font-size:.65rem;margin-right:.15rem}.info-icon[_ngcontent-%COMP%]{width:18px;height:18px;color:#6b7280;flex-shrink:0}.visit-notes[_ngcontent-%COMP%]{background:#f9fafb;border-radius:8px;padding:16px}.notes-header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:13px;font-weight:600;color:#374151}.notes-icon[_ngcontent-%COMP%]{width:16px;height:16px;color:#6b7280}.notes-content[_ngcontent-%COMP%]{font-size:14px;color:#4b5563;line-height:1.6;margin:0;white-space:pre-wrap}.show-more-btn[_ngcontent-%COMP%]{background:none;border:none;color:#03a791;font-size:13px;font-weight:500;cursor:pointer;padding:0;margin-top:8px}.show-more-btn[_ngcontent-%COMP%]:hover{text-decoration:underline}.linked-meal-plan[_ngcontent-%COMP%]{border-top:1px solid #e5e7eb;padding-top:20px;margin-bottom:16px}.meal-plan-link[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;background:#03a7910d;border:1px solid rgba(3,167,145,.2);border-radius:10px;padding:16px;text-decoration:none;color:inherit;transition:all .2s}.meal-plan-link[_ngcontent-%COMP%]:hover{background:#03a7911a;border-color:#03a791}.meal-plan-info[_ngcontent-%COMP%]{display:flex;align-items:center;gap:14px}.meal-plan-icon[_ngcontent-%COMP%]{width:44px;height:44px;border-radius:10px;background:#03a791;color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}.meal-plan-icon[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:22px;height:22px}.meal-plan-details[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2px}.meal-plan-label[_ngcontent-%COMP%]{font-size:12px;color:#6b7280}.meal-plan-name[_ngcontent-%COMP%]{font-size:16px;font-weight:600;color:#1f2937}.macros-summary[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px}.macro[_ngcontent-%COMP%]{font-size:12px;color:#6b7280}.macro-divider[_ngcontent-%COMP%]{font-size:12px;color:#d1d5db}.meal-plan-arrow[_ngcontent-%COMP%]{width:24px;height:24px;color:#03a791;flex-shrink:0}.meal-plan-arrow[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:100%;height:100%}.consent-card[_ngcontent-%COMP%]{background:var(--color-surface);border:1px solid var(--color-gray-200);border-left:4px solid var(--color-warning);border-radius:12px;padding:16px;margin-bottom:20px}.consent-card-header[_ngcontent-%COMP%]{display:flex;gap:12px;align-items:flex-start;margin-bottom:12px}.consent-icon[_ngcontent-%COMP%]{width:22px;height:22px;flex-shrink:0;color:var(--color-warning)}.consent-label[_ngcontent-%COMP%]{font-weight:600;color:var(--color-text);font-size:.95rem}.consent-sub[_ngcontent-%COMP%]{margin:2px 0 0;font-size:.85rem;color:var(--color-text-muted)}.consent-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:var(--color-bg);border:1px solid var(--color-gray-200);border-radius:10px;padding:12px;margin-top:8px;cursor:pointer;color:inherit}.consent-row[_ngcontent-%COMP%]:hover{border-color:var(--color-portal)}.consent-row-text[_ngcontent-%COMP%]{display:flex;flex-direction:column;flex:1;min-width:0}.consent-title[_ngcontent-%COMP%]{font-weight:500;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.consent-meta[_ngcontent-%COMP%]{font-size:.8rem;color:var(--color-text-muted)}.consent-cta[_ngcontent-%COMP%]{font-size:.85rem;font-weight:600;color:var(--color-portal);white-space:nowrap}.consent-row[_ngcontent-%COMP%]   .bi-chevron-right[_ngcontent-%COMP%]{color:var(--color-text-muted);font-size:.8rem}.visit-actions[_ngcontent-%COMP%]{border-top:1px solid #e5e7eb;padding-top:16px;display:flex;flex-wrap:wrap;gap:10px}.book-followup-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid #d1d5db;border-radius:8px;padding:10px 16px;font-size:14px;font-weight:500;color:#374151;text-decoration:none;transition:all .2s}.book-followup-btn[_ngcontent-%COMP%]:hover{background:#f9fafb;border-color:#03a791;color:#03a791}.book-followup-btn[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:18px;height:18px}.join-meeting-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:8px;background:#03a791;border:1px solid #03A791;border-radius:8px;padding:10px 16px;font-size:14px;font-weight:500;color:#fff;text-decoration:none;transition:all .2s}.join-meeting-btn[_ngcontent-%COMP%]:hover{background:#028a77;border-color:#028a77;color:#fff}.join-meeting-btn[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:18px;height:18px}.empty-visit-card[_ngcontent-%COMP%]{background:#fff;border-radius:12px;padding:40px 24px;box-shadow:0 1px 3px #0000001a;margin-bottom:24px;text-align:center}.empty-icon[_ngcontent-%COMP%]{width:64px;
1height:64px;border-radius:50%;background:#f3f4f6;color:#9ca3af;display:flex;align-items:center;justify-content:center;margin:0 auto 16px}.empty-icon[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:32px;height:32px}.empty-visit-card[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font-size:18px;font-weight:600;color:#1f2937;margin:0 0 8px}.empty-visit-card[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{font-size:14px;color:#6b7280;max-width:400px;margin:0 auto}.create-account-banner[_ngcontent-%COMP%]{display:flex;align-items:center;gap:16px;background:linear-gradient(135deg,#03a79114,#03a79108);border:1px solid rgba(3,167,145,.2);border-radius:12px;padding:20px 24px;margin-top:24px}.banner-icon[_ngcontent-%COMP%]{width:48px;height:48px;border-radius:12px;background:#03a791;color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}.banner-icon[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:24px;height:24px}.banner-content[_ngcontent-%COMP%]{flex:1}.banner-content[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font-size:16px;font-weight:600;color:#1f2937;margin:0 0 4px}.banner-content[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{font-size:14px;color:#6b7280;margin:0}.banner-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:8px;background:#03a791;color:#fff;border:none;border-radius:8px;padding:10px 16px;font-size:14px;font-weight:500;text-decoration:none;transition:all .2s;flex-shrink:0}.banner-btn[_ngcontent-%COMP%]:hover{background:#028a77;color:#fff}.banner-btn[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:16px;height:16px}.consumer-home[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:16px;margin-bottom:24px}.consumer-card[_ngcontent-%COMP%]{display:flex;align-items:center;gap:16px;background:#fff;border-radius:12px;padding:20px 24px;text-decoration:none;color:inherit;box-shadow:0 1px 3px #0000001a;transition:all .2s;border:2px solid transparent}.consumer-card[_ngcontent-%COMP%]:hover{box-shadow:0 8px 25px #0000001f;transform:translateY(-2px);border-color:#03a791}.consumer-card-icon[_ngcontent-%COMP%]{width:52px;height:52px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1.35rem}.consumer-card-icon[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:26px;height:26px}.consumer-card-icon.tools[_ngcontent-%COMP%]{background:#03a7911a;color:#03a791}.consumer-card-icon.progress[_ngcontent-%COMP%]{background:#8b5cf61a;color:#8b5cf6}.consumer-card-icon.find[_ngcontent-%COMP%]{background:#3b82f61a;color:#3b82f6}.consumer-card-icon.signin[_ngcontent-%COMP%]{background:#03a7911a;color:#03a791}.pro-entry[_ngcontent-%COMP%]{text-align:center;font-size:13px;color:#6b7280;margin:4px 0 8px}.pro-entry[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]{color:#03a791;font-weight:600;text-decoration:none;margin-left:4px}.pro-entry[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:hover{text-decoration:underline}.find-more[_ngcontent-%COMP%]{text-align:center;margin:8px 0 24px}.find-more[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#9ca3af;text-decoration:none}.find-more[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:hover{color:#03a791}.find-more[_ngcontent-%COMP%]   .bi[_ngcontent-%COMP%]{font-size:13px}[data-theme="dark"][_nghost-%COMP%]   .find-more[_ngcontent-%COMP%]   a[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .find-more[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]{color:#64748b}[data-theme="dark"][_nghost-%COMP%]   .find-more[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .find-more[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:hover{color:#0cc4ac}.consumer-card-body[_ngcontent-%COMP%]{flex:1;min-width:0}.consumer-card-body[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font-size:17px;font-weight:600;color:#1f2937;margin:0 0 4px}.consumer-card-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{font-size:14px;color:#6b7280;margin:0;line-height:1.5}.consumer-card-arrow[_ngcontent-%COMP%]{width:22px;height:22px;color:#9ca3af;flex-shrink:0}.consumer-card-arrow[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:100%;height:100%}.consumer-card[_ngcontent-%COMP%]:hover   .consumer-card-arrow[_ngcontent-%COMP%]{color:#03a791}@media(max-width:640px){.consumer-card[_ngcontent-%COMP%]{padding:16px 18px}}.quick-tools-section[_ngcontent-%COMP%]{margin-bottom:32px}.section-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.section-header[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font-size:18px;font-weight:600;color:#1f2937;margin:0}.see-all-link[_ngcontent-%COMP%]{font-size:14px;font-weight:500;color:#03a791;text-decoration:none}.see-all-link[_ngcontent-%COMP%]:hover{text-decoration:underline}.quick-tools-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.quick-tool-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;gap:10px;background:#fff;border-radius:12px;padding:20px 12px;text-decoration:none;color:inherit;box-shadow:0 1px 3px #0000001a;transition:all .2s;border:2px solid transparent}.quick-tool-card[_ngcontent-%COMP%]:hover{box-shadow:0 8px 25px #0000001f;transform:translateY(-2px);border-color:#03a791}.quick-tool-icon[_ngcontent-%COMP%]{width:44px;height:44px;border-radius:12px;background:#03a7911a;color:#03a791;display:flex;align-items:center;justify-content:center;font-size:1.25rem}
1.quick-tool-name[_ngcontent-%COMP%]{font-size:13px;font-weight:500;color:#374151;text-align:center;line-height:1.3}@media(max-width:640px){.quick-tools-grid[_ngcontent-%COMP%]{grid-template-columns:repeat(2,1fr)}.summary-cards[_ngcontent-%COMP%]{grid-template-columns:1fr}.welcome-header[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font-size:24px}.visit-info-row[_ngcontent-%COMP%]{flex-direction:column;gap:12px}.macros-summary[_ngcontent-%COMP%]{flex-direction:column;align-items:flex-start;gap:4px}.macro-divider[_ngcontent-%COMP%]{display:none}.business-name[_ngcontent-%COMP%]{font-size:18px}.create-account-banner[_ngcontent-%COMP%]{flex-direction:column;text-align:center;gap:12px}.banner-btn[_ngcontent-%COMP%]{width:100%;justify-content:center}}.mini-install[_ngcontent-%COMP%]{display:block;text-align:center;margin-top:24px;padding-top:16px}.app-install-cta[_ngcontent-%COMP%]{display:flex;justify-content:center;margin-top:24px;padding-top:16px}.app-install-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:10px;padding:10px 18px;border-radius:12px;background:var(--color-portal, #0891b2);color:#fff;text-decoration:none;box-shadow:0 4px 12px rgba(var(--color-portal-rgb, 8, 145, 178),.28);transition:transform .15s ease,box-shadow .15s ease}.app-install-btn[_ngcontent-%COMP%]:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(var(--color-portal-rgb, 8, 145, 178),.36);color:#fff}.app-install-btn[_ngcontent-%COMP%]   .bi-google-play[_ngcontent-%COMP%]{font-size:22px;line-height:1}.app-install-btn-text[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;line-height:1.2}.app-install-btn-title[_ngcontent-%COMP%]{font-size:15px;font-weight:700}.app-install-btn-sub[_ngcontent-%COMP%]{font-size:11px;opacity:.85}.mini-install-link[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;background:none;border:none;color:#9ca3af;font-size:13px;cursor:pointer;padding:4px 0}.mini-install-link[_ngcontent-%COMP%]:hover{color:#6b7280}.mini-install-link[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:14px;height:14px}[data-theme="dark"][_nghost-%COMP%]   .welcome-header[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .welcome-header[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .subtitle[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .subtitle[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .loading-container[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .loading-container[_ngcontent-%COMP%]{background:#1e293b;box-shadow:0 1px 3px #0006}[data-theme="dark"][_nghost-%COMP%]   .loading-container[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .loading-container[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .spinner[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .spinner[_ngcontent-%COMP%]{border-color:#475569;border-top-color:#03a791}[data-theme="dark"][_nghost-%COMP%]   .summary-card[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .summary-card[_ngcontent-%COMP%]{background:#1e293b;box-shadow:0 1px 3px #0006}[data-theme="dark"][_nghost-%COMP%]   .summary-card[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .summary-card[_ngcontent-%COMP%]:hover{box-shadow:0 8px 25px #0006}[data-theme="dark"][_nghost-%COMP%]   .card-content[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .card-content[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .card-description[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .card-description[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .card-arrow[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .card-arrow[_ngcontent-%COMP%]{color:#cbd5e1}[data-theme="dark"][_nghost-%COMP%]   .upcoming-appointment-card[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .upcoming-appointment-card[_ngcontent-%COMP%]{background:#1e293b;box-shadow:0 1px 3px #0006}[data-theme="dark"][_nghost-%COMP%]   .upcoming-label[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .upcoming-label[_ngcontent-%COMP%]{color:#60a5fa}[data-theme="dark"][_nghost-%COMP%]   .relative-badge[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .relative-badge[_ngcontent-%COMP%]{background:#60a5fa26;color:#93c5fd}[data-theme="dark"][_nghost-%COMP%]   .upcoming-appointment-card.is-pending[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .upcoming-appointment-card.is-pending[_ngcontent-%COMP%]{border-left-color:#fbbf24}[data-theme="dark"][_nghost-%COMP%]   .upcoming-appointment-card.is-pending[_ngcontent-%COMP%]   .upcoming-label[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .upcoming-appointment-card.is-pending[_ngcontent-%COMP%]   .upcoming-label[_ngcontent-%COMP%]{color:#fcd34d}[data-theme="dark"][_nghost-%COMP%]   .upcoming-appointment-card.is-pending[_ngcontent-%COMP%]   .relative-badge[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .upcoming-appointment-card.is-pending[_ngcontent-%COMP%]   .relative-badge[_ngcontent-%COMP%]{background:#fbbf2426;color:#fcd34d}[data-theme="dark"][_nghost-%COMP%]   .pending-note[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .pending-note[_ngcontent-%COMP%]{background:#fbbf241a;border-color:#fbbf244d;color:#fcd34d}[data-theme="dark"][_nghost-%COMP%]   .pending-note[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .pending-note[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{color:#fbbf24}[data-theme="dark"][_nghost-%COMP%]   .upcoming-cancel-btn[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .upcoming-cancel-btn[_ngcontent-%COMP%]{color:#64748b}[data-theme="dark"][_nghost-%COMP%]   .upcoming-cancel-btn[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .upcoming-cancel-btn[_ngcontent-%COMP%]:hover{color:#f87171;background:#f871711a}[data-theme="dark"][_nghost-%COMP%]   .last-visit-card[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .last-visit-card[_ngcontent-%COMP%]{background:#1e293b;box-shadow:0 1px 3px #0006}
1[data-theme="dark"][_nghost-%COMP%]   .business-name[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .business-name[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .business-logo[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .business-logo[_ngcontent-%COMP%]{background:#334155}[data-theme="dark"][_nghost-%COMP%]   .visit-info-item[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .visit-info-item[_ngcontent-%COMP%]{color:#cbd5e1}[data-theme="dark"][_nghost-%COMP%]   .info-icon[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .info-icon[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .timezone-label[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .timezone-label[_ngcontent-%COMP%]{color:#64748b}[data-theme="dark"][_nghost-%COMP%]   .visit-notes[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .visit-notes[_ngcontent-%COMP%]{background:#0f172a}[data-theme="dark"][_nghost-%COMP%]   .notes-header[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .notes-header[_ngcontent-%COMP%]{color:#e2e8f0}[data-theme="dark"][_nghost-%COMP%]   .notes-icon[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .notes-icon[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .notes-content[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .notes-content[_ngcontent-%COMP%]{color:#cbd5e1}[data-theme="dark"][_nghost-%COMP%]   .linked-meal-plan[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .linked-meal-plan[_ngcontent-%COMP%]{border-top-color:#475569}[data-theme="dark"][_nghost-%COMP%]   .meal-plan-label[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .meal-plan-label[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .meal-plan-name[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .meal-plan-name[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .macro[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .macro[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .macro-divider[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .macro-divider[_ngcontent-%COMP%]{color:#475569}[data-theme="dark"][_nghost-%COMP%]   .visit-actions[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .visit-actions[_ngcontent-%COMP%]{border-top-color:#475569}[data-theme="dark"][_nghost-%COMP%]   .book-followup-btn[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .book-followup-btn[_ngcontent-%COMP%]{background:#1e293b;border-color:#475569;color:#e2e8f0}[data-theme="dark"][_nghost-%COMP%]   .book-followup-btn[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .book-followup-btn[_ngcontent-%COMP%]:hover{background:#0f172a;border-color:#03a791;color:#03a791}[data-theme="dark"][_nghost-%COMP%]   .join-meeting-btn[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .join-meeting-btn[_ngcontent-%COMP%]{background:#03a791;border-color:#03a791}[data-theme="dark"][_nghost-%COMP%]   .join-meeting-btn[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .join-meeting-btn[_ngcontent-%COMP%]:hover{background:#028a77;border-color:#028a77}[data-theme="dark"][_nghost-%COMP%]   .empty-visit-card[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .empty-visit-card[_ngcontent-%COMP%]{background:#1e293b;box-shadow:0 1px 3px #0006}[data-theme="dark"][_nghost-%COMP%]   .empty-icon[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .empty-icon[_ngcontent-%COMP%]{background:#334155;color:#cbd5e1}[data-theme="dark"][_nghost-%COMP%]   .empty-visit-card[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .empty-visit-card[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .empty-visit-card[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .empty-visit-card[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .consumer-card[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .consumer-card[_ngcontent-%COMP%]{background:#1e293b;box-shadow:0 1px 3px #0006}[data-theme="dark"][_nghost-%COMP%]   .consumer-card[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .consumer-card[_ngcontent-%COMP%]:hover{box-shadow:0 8px 25px #0006}[data-theme="dark"][_nghost-%COMP%]   .consumer-card-body[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .consumer-card-body[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .consumer-card-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .consumer-card-body[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .consumer-card-arrow[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .consumer-card-arrow[_ngcontent-%COMP%]{color:#cbd5e1}[data-theme="dark"][_nghost-%COMP%]   .quick-tool-card[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .quick-tool-card[_ngcontent-%COMP%]{background:#1e293b;box-shadow:0 1px 3px #0006}[data-theme="dark"][_nghost-%COMP%]   .quick-tool-card[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .quick-tool-card[_ngcontent-%COMP%]:hover{box-shadow:0 8px 25px #0006}
1[data-theme="dark"][_nghost-%COMP%]   .quick-tool-name[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .quick-tool-name[_ngcontent-%COMP%]{color:#e2e8f0}[data-theme="dark"][_nghost-%COMP%]   .section-header[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .section-header[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .create-account-banner[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .create-account-banner[_ngcontent-%COMP%]{background:linear-gradient(135deg,#03a79126,#03a7910d);border-color:#03a7914d}[data-theme="dark"][_nghost-%COMP%]   .banner-content[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .banner-content[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .banner-content[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .banner-content[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .mini-install-link[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .mini-install-link[_ngcontent-%COMP%]{color:#64748b}[data-theme="dark"][_nghost-%COMP%]   .mini-install-link[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .mini-install-link[_ngcontent-%COMP%]:hover{color:#94a3b8}']});};var wa=()=>({vertical:1}),$a=n=>["/portal/meal-plans",n],Fa=(n,t)=>t.tenantId,Ga=(n,t)=>t.id;function za(n,t){n&1&&(o(0,"div",15),m(1,"div",18),o(2,"p"),_(3,1),a()());}function Ua(n,t){if(n&1){let e=x();o(0,"div",16)(1,"p"),d(2),a(),o(3,"button",19),h("click",function(){O(e);let l=c();return u(l.loadMealPlans());}),_(4,2),a()();}if(n&2){let e=c();r(2),M(e.portalService.error());}}function Va(n,t){n&1&&m(0,"app-find-dietitian-cta",23),n&2&&A("queryParams",et(1,wa));}function Da(n,t){n&1&&(o(0,"p"),_(1,4),a());}function Ha(n,t){if(n&1&&(o(0,"div",17)(1,"div",20),E(),o(2,"svg",21),m(3,"path",22),a()(),N(),o(4,"h2"),_(5,3),a(),p(6,Va,1,2,"app-find-dietitian-cta",23)(7,Da,2,0,"p"),a()),n&2){let e=c();r(6),g(e.isStandalone()&&e.featureFlags.consumerDirectory?6:7);}}function Xa(n,t){if(n&1&&(o(0,"a",31),E(),o(1,"svg",21),m(2,"path",34),a(),N(),o(3,"span"),_(4,6),a()()),n&2){let e=c().$implicit;A("href","/p/"+e.profileSlug+"/book",te);}}function Wa(n,t){if(n&1&&(o(0,"p",36),d(1),a()),n&2){let e=c().$implicit;r(),M(e.description);}}function Ya(n,t){if(n&1&&(o(0,"span"),d(1),R(2,"date"),R(3,"date"),a()),n&2){let e=c().$implicit;r(),le("",y(2,2,e.startDate,"d MMM")," - ",y(3,5,e.endDate,"d MMM yyyy"));}}function Ba(n,t){if(n&1&&(o(0,"span"),_(1,12),R(2,"date"),a()),n&2){let e=c().$implicit;r(2),ae(y(2,1,e.startDate,"d MMM yyyy")),re(1);}}function ja(n,t){if(n&1&&(o(0,"a",33)(1,"div",35)(2,"h3"),d(3),a()(),p(4,Wa,2,1,"p",36),o(5,"div",37),p(6,Ya,4,8,"span")(7,Ba,3,4,"span"),a(),o(8,"div",38)(9,"div",39)(10,"span",40),d(11),R(12,"number"),a(),o(13,"span",41),_(14,7),a()(),o(15,"div",42)(16,"span",40),d(17),R(18,"number"),a(),o(19,"span",41),_(20,8),a()(),o(21,"div",43)(22,"span",40),d(23),R(24,"number"),a(),o(25,"span",41),_(26,9),a()(),o(27,"div",44)(28,"span",40),d(29),R(30,"number"),a(),o(31,"span",41),_(32,10),a()()(),o(33,"div",45)(34,"span",46),_(35,11),a()()()),n&2){let e=t.$implicit;A("routerLink",fe(20,$a,e.id)),r(3),M(e.name),r(),g(e.description?4:-1),r(2),g(e.startDate&&e.endDate?6:e.startDate?7:-1),r(5),M(y(12,8,e.totalCalories,"1.0-0")),r(6),I("",y(18,11,e.totalProtein,"1.0-0"),"g"),r(6),I("",y(24,14,e.totalCarbs,"1.0-0"),"g"),r(6),I("",y(30,17,e.totalFat,"1.0-0"),"g");}}function Ka(n,t){if(n&1&&(o(0,"div",24)(1,"div",25)(2,"div",26)(3,"div",27),E(),o(4,"svg",21),m(5,"path",28),a()(),N(),o(6,"h2",29),d(7),a(),o(8,"span",30),_(9,5),a()(),p(10,Xa,5,1,"a",31),a(),o(11,"div",32),X(12,ja,36,22,"a",33,Ga),a()()),n&2){let e=t.$implicit;r(7),M(e.tenantName),r(2),ae(e.mealPlans.length)(e.mealPlans.length),re(9),r(),g(e.profileSlug?10:-1),r(2),W(e.mealPlans);}}function qa(n,t){if(n&1&&X(0,Ka,14,4,"div",24,Fa),n&2){let e=c();W(e.groupedMealPlans);}}var It=class n{portalService=v(ee);mealPlans=[];groupedMealPlans=[];featureFlags=Ke;isStandalone=q(()=>(this.portalService.currentUser()?.providers?.length??0)===0);ngOnInit(){this.loadMealPlans();}loadMealPlans(){this.portalService.getMealPlans().subscribe({next:t=>{this.mealPlans=t,this.groupedMealPlans=this.groupByTenant(t);}});}groupByTenant(t){let e=new Map();for(let i of t)e.has(i.tenantId)||e.set(i.tenantId,{tenantId:i.tenantId,tenantName:i.tenantName,profileSlug:i.tenantProfileSlug,mealPlans:[]}),e.get(i.tenantId).mealPlans.push(i);return Array.from(e.values()).sort((i,l)=>i.tenantName.localeCompare(l.tenantName));}static ɵfac=function(e){return new(e||n)();};static ɵcmp=H({type:n,selectors:[["app-portal-meal-plan-list"]],decls:7,vars:4,consts:()=>{let t;t="View and follow your personalized nutrition plans created by your nutritionists.";let e;e="Loading meal plans...";let i;i="Retry";let l;l="No Meal Plans";let s;s="You don't have any meal plans assigned yet. Your nutritionist will notify you when you have a new one.";let T;T="{VAR_PLURAL, plural, =1 {1 plan}
1 other {{INTERPOLATION} plans}}",T=Le(T,{INTERPOLATION:"\uFFFD1\uFFFD",VAR_PLURAL:"\uFFFD0\uFFFD"});let f;f="Book Appointment";let b;b="kcal";let L;L="Protein";let w;w="Carbs";let J;J="Fat";let G;G="View full plan \u2192";let D;return D="From "+"\uFFFD0\uFFFD"+"",[t,e,i,l,s,T,f,b,L,w,J,G,D,[1,"meal-plan-list-container"],[1,"page-subtitle"],[1,"loading-container"],[1,"error-container"],[1,"empty-state"],[1,"spinner"],[1,"retry-btn",3,"click"],[1,"empty-icon"],["xmlns","http://www.w3.org/2000/svg","fill","none","viewBox","0 0 24 24","stroke-width","1.5","stroke","currentColor"],["stroke-linecap","round","stroke-linejoin","round","d","M9 12h3.75M9 15h3.75M9 18h3.75m3 .75H18a2.25 2.25 0 002.25-2.25V6.108c0-1.135-.845-2.098-1.976-2.192a48.424 48.424 0 00-1.123-.08m-5.801 0c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75 2.25 2.25 0 00-.1-.664m-5.8 0A2.251 2.251 0 0113.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m0 0H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V9.375c0-.621-.504-1.125-1.125-1.125H8.25z"],[3,"queryParams"],[1,"tenant-group"],[1,"tenant-header"],[1,"tenant-info"],[1,"tenant-icon"],["stroke-linecap","round","stroke-linejoin","round","d","M2.25 21h19.5m-18-18v18m10.5-18v18m6-13.5V21M6.75 6.75h.75m-.75 3h.75m-.75 3h.75m3-6h.75m-.75 3h.75m-.75 3h.75M6.75 21v-3.375c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21M3 3h12m-.75 4.5H21m-3.75 3H21m-3.75 3H21m-3.75 3H21m-3.75 3H21"],[1,"tenant-name"],[1,"plan-count"],["target","_blank",1,"book-appointment-btn",3,"href"],[1,"meal-plans-grid"],[1,"meal-plan-card",3,"routerLink"],["stroke-linecap","round","stroke-linejoin","round","d","M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 012.25-2.25h13.5A2.25 2.25 0 0121 7.5v11.25m-18 0A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75m-18 0v-7.5A2.25 2.25 0 015.25 9h13.5A2.25 2.25 0 0121 11.25v7.5m-9-6h.008v.008H12v-.008zM12 15h.008v.008H12V15zm0 2.25h.008v.008H12v-.008zM9.75 15h.008v.008H9.75V15zm0 2.25h.008v.008H9.75v-.008zM7.5 15h.008v.008H7.5V15zm0 2.25h.008v.008H7.5v-.008zm6.75-4.5h.008v.008h-.008v-.008zm0 2.25h.008v.008h-.008V15zm0 2.25h.008v.008h-.008v-.008zm2.25-4.5h.008v.008H16.5v-.008zm0 2.25h.008v.008H16.5V15z"],[1,"card-header"],[1,"description"],[1,"date-range"],[1,"nutrition-summary"],[1,"macro","calories"],[1,"value"],[1,"label"],[1,"macro","protein"],[1,"macro","carbs"],[1,"macro","fat"],[1,"card-footer"],[1,"view-link"]];},template:function(e,i){e&1&&(o(0,"div",13)(1,"p",14),_(2,0),a(),p(3,za,4,0,"div",15),p(4,Ua,5,1,"div",16),p(5,Ha,8,1,"div",17),p(6,qa,2,0),a()),e&2&&(r(3),g(i.portalService.loading()?3:-1),r(),g(i.portalService.error()?4:-1),r(),g(!i.portalService.loading()&&!i.portalService.error()&&i.mealPlans.length===0?5:-1),r(),g(!i.portalService.loading()&&i.mealPlans.length>0?6:-1));},dependencies:[j,_e,xt,Pe,Xe],styles:['.meal-plan-list-container[_ngcontent-%COMP%]{max-width:1200px;margin:0 auto;padding-top:8px}.page-subtitle[_ngcontent-%COMP%]{color:#6b7280;font-size:14px;margin:0 0 20px;line-height:1.5}.loading-container[_ngcontent-%COMP%], .error-container[_ngcontent-%COMP%], .empty-state[_ngcontent-%COMP%]{background:#fff;border-radius:12px;padding:48px;text-align:center;box-shadow:0 1px 3px #0000001a}.spinner[_ngcontent-%COMP%]{width:40px;height:40px;border:3px solid #e5e7eb;border-top-color:#03a791;border-radius:50%;animation:_ngcontent-%COMP%_spin 1s linear infinite;margin:0 auto 16px}@keyframes _ngcontent-%COMP%_spin{to{transform:rotate(360deg)}}.loading-container[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:#6b7280;margin:0}.error-container[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:#ef4444;margin-bottom:16px}.retry-btn[_ngcontent-%COMP%]{padding:10px 24px;background:#03a791;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer}.retry-btn[_ngcontent-%COMP%]:hover{background:#028a77}.empty-state[_ngcontent-%COMP%]{padding:64px 48px}.empty-icon[_ngcontent-%COMP%]{width:64px;height:64px;color:#9ca3af;margin:0 auto 16px}.empty-icon[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:100%;height:100%}.empty-state[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font-size:20px;font-weight:600;color:#374151;margin:0 0 8px}.empty-state[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:#6b7280;max-width:400px;margin:0 auto}.tenant-group[_ngcontent-%COMP%]{margin-bottom:32px}.tenant-group[_ngcontent-%COMP%]:last-child{margin-bottom:0}.tenant-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px;padding-bottom:12px;border-bottom:2px solid #e5e7eb}.tenant-info[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px}.tenant-icon[_ngcontent-%COMP%]{width:32px;height:32px;color:#03a791;flex-shrink:0}.tenant-icon[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:100%;height:100%}
1.tenant-name[_ngcontent-%COMP%]{font-size:20px;font-weight:600;color:#374151;margin:0}.plan-count[_ngcontent-%COMP%]{font-size:14px;color:#6b7280;background:#f3f4f6;padding:4px 12px;border-radius:16px}.book-appointment-btn[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;padding:10px 16px;background:#03a791;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;text-decoration:none;cursor:pointer;transition:all .2s}.book-appointment-btn[_ngcontent-%COMP%]:hover{background:#028a77;transform:translateY(-1px)}.book-appointment-btn[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:18px;height:18px}.meal-plans-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:24px}.meal-plan-card[_ngcontent-%COMP%]{background:#fff;border-radius:12px;padding:24px;text-decoration:none;color:inherit;box-shadow:0 1px 3px #0000001a;transition:all .2s;display:flex;flex-direction:column}.meal-plan-card[_ngcontent-%COMP%]:hover{box-shadow:0 8px 25px #0000001f;transform:translateY(-2px)}.card-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.card-header[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font-size:18px;font-weight:600;color:#1f2937;margin:0}.description[_ngcontent-%COMP%]{color:#6b7280;font-size:14px;margin:0 0 12px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.date-range[_ngcontent-%COMP%]{font-size:13px;color:#9ca3af;margin-bottom:16px}.nutrition-summary[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:16px;background:#f9fafb;border-radius:8px;margin-bottom:16px}.macro[_ngcontent-%COMP%]{text-align:center}.macro[_ngcontent-%COMP%]   .value[_ngcontent-%COMP%]{display:block;font-size:16px;font-weight:600;color:#374151}.macro[_ngcontent-%COMP%]   .label[_ngcontent-%COMP%]{font-size:11px;color:#9ca3af;text-transform:uppercase}.macro.calories[_ngcontent-%COMP%]   .value[_ngcontent-%COMP%]{color:#f59e0b}.macro.protein[_ngcontent-%COMP%]   .value[_ngcontent-%COMP%]{color:#ef4444}.macro.carbs[_ngcontent-%COMP%]   .value[_ngcontent-%COMP%]{color:#3b82f6}.macro.fat[_ngcontent-%COMP%]   .value[_ngcontent-%COMP%]{color:#10b981}.card-footer[_ngcontent-%COMP%]{margin-top:auto}.view-link[_ngcontent-%COMP%]{font-size:14px;font-weight:500;color:#03a791}@media(max-width:640px){.meal-plans-grid[_ngcontent-%COMP%]{grid-template-columns:1fr}.nutrition-summary[_ngcontent-%COMP%]{grid-template-columns:repeat(2,1fr)}.tenant-header[_ngcontent-%COMP%]{flex-direction:column;align-items:flex-start;gap:16px}.tenant-info[_ngcontent-%COMP%]{flex-wrap:wrap}.plan-count[_ngcontent-%COMP%]{margin-left:44px}.book-appointment-btn[_ngcontent-%COMP%]{width:100%;justify-content:center}}[data-theme="dark"][_nghost-%COMP%]   .page-subtitle[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .page-subtitle[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .loading-container[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .loading-container[_ngcontent-%COMP%], [data-theme="dark"][_nghost-%COMP%]   .error-container[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .error-container[_ngcontent-%COMP%], [data-theme="dark"][_nghost-%COMP%]   .empty-state[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .empty-state[_ngcontent-%COMP%]{background:#1e293b;box-shadow:0 1px 3px #0000004d}[data-theme="dark"][_nghost-%COMP%]   .spinner[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .spinner[_ngcontent-%COMP%]{border-color:#475569;border-top-color:#03a791}[data-theme="dark"][_nghost-%COMP%]   .loading-container[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .loading-container[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .empty-icon[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .empty-icon[_ngcontent-%COMP%]{color:#cbd5e1}[data-theme="dark"][_nghost-%COMP%]   .empty-state[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .empty-state[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{color:#e2e8f0}[data-theme="dark"][_nghost-%COMP%]   .empty-state[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .empty-state[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .tenant-header[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .tenant-header[_ngcontent-%COMP%]{border-bottom-color:#475569}
1[data-theme="dark"][_nghost-%COMP%]   .tenant-name[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .tenant-name[_ngcontent-%COMP%]{color:#e2e8f0}[data-theme="dark"][_nghost-%COMP%]   .plan-count[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .plan-count[_ngcontent-%COMP%]{color:#94a3b8;background:#334155}[data-theme="dark"][_nghost-%COMP%]   .meal-plan-card[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .meal-plan-card[_ngcontent-%COMP%]{background:#1e293b;box-shadow:0 1px 3px #0000004d}[data-theme="dark"][_nghost-%COMP%]   .meal-plan-card[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .meal-plan-card[_ngcontent-%COMP%]:hover{box-shadow:0 8px 25px #0006}[data-theme="dark"][_nghost-%COMP%]   .card-header[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .card-header[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .description[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .description[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .date-range[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .date-range[_ngcontent-%COMP%]{color:#cbd5e1}[data-theme="dark"][_nghost-%COMP%]   .nutrition-summary[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .nutrition-summary[_ngcontent-%COMP%]{background:#334155}[data-theme="dark"][_nghost-%COMP%]   .macro[_ngcontent-%COMP%]   .value[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .macro[_ngcontent-%COMP%]   .value[_ngcontent-%COMP%]{color:#e2e8f0}[data-theme="dark"][_nghost-%COMP%]   .macro[_ngcontent-%COMP%]   .label[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .macro[_ngcontent-%COMP%]   .label[_ngcontent-%COMP%]{color:#cbd5e1}[data-theme="dark"][_nghost-%COMP%]   .macro.calories[_ngcontent-%COMP%]   .value[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .macro.calories[_ngcontent-%COMP%]   .value[_ngcontent-%COMP%]{color:#fbbf24}[data-theme="dark"][_nghost-%COMP%]   .macro.protein[_ngcontent-%COMP%]   .value[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .macro.protein[_ngcontent-%COMP%]   .value[_ngcontent-%COMP%]{color:#f87171}[data-theme="dark"][_nghost-%COMP%]   .macro.carbs[_ngcontent-%COMP%]   .value[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .macro.carbs[_ngcontent-%COMP%]   .value[_ngcontent-%COMP%]{color:#60a5fa}[data-theme="dark"][_nghost-%COMP%]   .macro.fat[_ngcontent-%COMP%]   .value[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .macro.fat[_ngcontent-%COMP%]   .value[_ngcontent-%COMP%]{color:#34d399}[data-theme="dark"][_nghost-%COMP%]   .view-link[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .view-link[_ngcontent-%COMP%]{color:#03a791}']});};var $t=(n,t)=>t.id,Ja=(n,t)=>t.foodName,Qa=(n,t)=>t.sortOrder;function Za(n,t){n&1&&(o(0,"div",7),m(1,"div",9),o(2,"p"),d(3,"Loading meal plan..."),a()());}function er(n,t){if(n&1){let e=x();o(0,"div",8)(1,"p"),d(2),a(),o(3,"button",10),h("click",function(){O(e);let l=c();return u(l.loadMealPlan());}),d(4,"Retry"),a()();}if(n&2){let e=c();r(2),M(e.portalService.error());}}function tr(n,t){if(n&1&&(o(0,"p",12),d(1),a()),n&2){let e=c(2);r(),M(e.mealPlan.description);}}function nr(n,t){if(n&1){let e=x();o(0,"button",15),h("click",function(){let l=O(e).$index,s=c(3);return u(s.setActiveDay(l));}),o(1,"span",16),d(2),a(),o(3,"span",17),d(4),R(5,"number"),a()();}if(n&2){let e=t.$implicit,i=t.$index,l=c(3);z("active",l.activeDayIndex===i),r(2),M(e.name),r(2),I("",y(5,4,e.dayCalories,"1.0-0")," kcal");}}function or(n,t){if(n&1&&(o(0,"div",13),X(1,nr,6,7,"button",14,$t),a()),n&2){let e=c(2);r(),W(e.mealPlan.days);}}function ir(n,t){if(n&1&&(o(0,"span",51),d(1),a()),n&2){let e=c().$implicit;r(),M(e.brandName);}}function ar(n,t){if(n&1&&d(0),n&2){let e=c().$implicit;I(" ",e.portionName," ");}}function rr(n,t){if(n&1&&(d(0),R(1,"number")),n&2){let e=c().$implicit;I(" ",y(1,1,e.portionGrams,"1.0-0"),"g ");}}function lr(n,t){if(n&1&&(o(0,"div",59),E(),o(1,"svg",5),m(2,"path",60),a(),d(3),a()),n&2){let e=c().$implicit;r(3),I(" ",e.note," ");}}function _r(n,t){if(n&1&&(o(0,"div",48)(1,"div",49)(2,"span",50),d(3),a(),p(4,ir,2,1,"span",51),a(),o(5,"div",52),p(6,ar,1,1)(7,rr,2,4),a(),o(8,"div",53)(9,"span",54),d(10),R(11,"number"),a(),o(12,"div",55)(13,"span",56),d(14),R(15,"number"),a(),o(16,"span",57),d(17),R(18,"number"),a(),o(19,"span",58),d(20),R(21,"number"),a()()(),p(22,lr,4,1,"div",59),a()),n&2){let e=t.$implicit;r(3),M(e.foodName),r(),g(e.brandName?4:-1),r(2),g(e.portionName?6:7),r(4),I("",y(11,8,e.calories,"1.0-0")," kcal"),r(4),I("P: ",y(15,11,e.protein,"1.0-0"),"g"),r(3),I("C: ",y(18,14,e.carbs,"1.0-0"),"g"),r(3),I("G: ",y(21,17,e.fat,"1.0-0"),"g"),r(2),g(e.note?22
1:-1);}}function cr(n,t){if(n&1&&(o(0,"span",51),d(1),a()),n&2){let e=c().$implicit;r(),I("",e.prepTimeMinutes,"min");}}function sr(n,t){if(n&1&&m(0,"img",63),n&2){let e=c(2).$implicit;A("src",e.imageUrl,te)("alt",e.recipeName);}}function dr(n,t){if(n&1&&(o(0,"p",64),d(1),a()),n&2){let e=c(2).$implicit;r(),M(e.description);}}function pr(n,t){if(n&1&&(o(0,"div",68)(1,"span"),d(2),a(),o(3,"span",69),d(4),R(5,"number"),a()()),n&2){let e=t.$implicit,i=c(3).$implicit;r(2),M(e.foodName),r(2),I("",y(5,2,e.quantityGrams*i.servingScale,"1.0-1"),"g");}}function gr(n,t){if(n&1&&(o(0,"div",66)(1,"div",67),_(2,1),a(),X(3,pr,6,5,"div",68,Ja),a()),n&2){let e=c(2).$implicit;r(3),W(e.ingredients);}}function mr(n,t){if(n&1){let e=x();o(0,"label",72)(1,"input",73),h("change",function(){let l=O(e).$implicit,s=c(3).$implicit,T=c(6);return u(T.toggleStep(s.id,l.sortOrder));}),a(),o(2,"span",74),d(3),a(),o(4,"span",75),d(5),a()();}if(n&2){let e=t.$implicit,i=c(3).$implicit,l=c(6);z("checked",l.isStepChecked(i.id,e.sortOrder)),r(),A("checked",l.isStepChecked(i.id,e.sortOrder)),r(2),M(e.sortOrder+1),r(2),M(e.instructionText);}}function Cr(n,t){if(n&1&&(o(0,"div",66)(1,"div",67),_(2,2),a(),o(3,"div",70),X(4,mr,6,5,"label",71,Qa),a()()),n&2){let e=c(2).$implicit;r(4),W(e.steps);}}function Pr(n,t){if(n&1&&(o(0,"div",62),p(1,sr,1,2,"img",63),p(2,dr,2,1,"p",64),o(3,"div",65),p(4,gr,5,0,"div",66),p(5,Cr,6,0,"div",66),a()()),n&2){let e=c().$implicit;r(),g(e.imageUrl?1:-1),r(),g(e.description?2:-1),r(2),g(e.ingredients.length?4:-1),r(),g(e.steps.length?5:-1);}}function Or(n,t){if(n&1){let e=x();o(0,"div",61),h("click",function(){let l=O(e).$implicit,s=c(6);return u(s.toggleRecipe(l.id));}),o(1,"div",49)(2,"span",50),d(3),a(),p(4,cr,2,1,"span",51),a(),o(5,"div",52),d(6),a(),o(7,"div",53)(8,"span",54),d(9),R(10,"number"),a(),o(11,"div",55)(12,"span",56),d(13),R(14,"number"),a(),o(15,"span",57),d(16),R(17,"number"),a(),o(18,"span",58),d(19),R(20,"number"),a()()()(),p(21,Pr,6,4,"div",62);}if(n&2){let e=t.$implicit,i=c(6);r(3),I("\u{1F4D6} ",e.recipeName),r(),g(e.prepTimeMinutes?4:-1),r(2),I(" ",e.servingScale,"x "),r(3),I("",y(10,8,(e.calories??0)*e.servingScale,"1.0-0")," kcal"),r(4),I("P: ",y(14,11,(e.protein??0)*e.servingScale,"1.0-0"),"g"),r(3),I("C: ",y(17,14,(e.carbs??0)*e.servingScale,"1.0-0"),"g"),r(3),I("G: ",y(20,17,(e.fat??0)*e.servingScale,"1.0-0"),"g"),r(2),g(i.expandedRecipes.has(e.id)?21:-1);}}function ur(n,t){if(n&1&&X(0,Or,22,20,null,null,$t),n&2){let e=c(2).$implicit;W(e.recipes);}}function Mr(n,t){if(n&1&&(o(0,"div",47),X(1,_r,23,20,"div",48,$t),p(3,ur,2,0),a()),n&2){let e=c().$implicit;r(),W(e.items),r(2),g(e.recipes.length?3:-1);}}function Er(n,t){if(n&1){let e=x();o(0,"div",37)(1,"div",38),h("click",function(){let l=O(e).$implicit,s=c(3);return u(s.toggleSection(l.id));}),o(2,"div",39)(3,"h2"),d(4),a(),o(5,"span",40),d(6),R(7,"number"),a()(),o(8,"div",41)(9,"span",42),d(10),R(11,"number"),a(),o(12,"span",43),d(13),R(14,"number"),a(),o(15,"span",44),d(16),R(17,"number"),a()(),E(),o(18,"svg",45),m(19,"path",46),a()(),p(20,Mr,4,1,"div",47),a();}if(n&2){let e=t.$implicit,i=c(3);r(4),M(e.name),r(2),I("",y(7,8,e.sectionCalories,"1.0-0")," kcal"),r(4),I("P: ",y(11,11,e.sectionProtein,"1.0-0"),"g"),r(3),I("C: ",y(14,14,e.sectionCarbs,"1.0-0"),"g"),r(3),I("G: ",y(17,17,e.sectionFat,"1.0-0"),"g"),r(2),z("expanded",i.expandedSections.has(e.id)),r(2),g(i.expandedSections.has(e.id)?20:-1);}}function Tr(n,t){if(n&1&&(o(0,"div",18)(1,"div",19),m(2,"i",20),o(3,"span",21),d(4),R(5,"number"),a(),o(6,"span",22),d(7,"kcal"),a()(),o(8,"div",23)(9,"div",24)(10,"div",25),d(11,"P"),a(),o(12,"div",26)(13,"span",27),d(14),R(15,"number"),a(),o(16,"span",28),d(17,"g"),a()(),o(18,"span",29),d(19),R(20,"number"),a()(),o(21,"div",30)(22,"div",25),d(23,"C"),a(),o(24,"div",26)(25,"span",27),d(26),R(27,"number"),a(),o(28,"span",28),d(29,"g"),a()(),o(30,"span",29),d(31),R(32,"number"),a()(),o(33,"div",31)(34,"div",25),d(35,"F"),a(),o(36,"div",26)(37,"span",27),d(38),R(39,"number"),a(),o(40,"span",28),d(41,"g"),a()(),o(42,"span",29),d(43),R(44,"number"),a()()(),o(45,"div",32),m(46,"div",33)(47,"div",34)(48,"div",35),a()(),o(49,"div",36),X(50,Er,21,20,"div",37,$t),a()),n&2){let e=c(2);r(4),M(y(5,13,e.activeDay.dayCalories,"1.0-0")),r(10),M(y(15,16,e.activeDay.dayProtein,"1.0-0")),r(5),I("",y(20,19,e.macros.proteinPercent,"1.0-0"),"%"),r(7),M(y(27,22,e.activeDay.dayCarbs,"1.0-0")),r(5),I("",y(32,25,e.macros.carbsPercent,"1.0-0"),"%"),r(7),M(y(39,28,e.activeDay.dayFat,"1.0-0")),r(5),I("",y(44,31,e.macros.fatPercent,"1.0-0"),"%"),r(3),Te("width",e.macros.proteinPercent,"%"),r(),Te("width",e.macros.carbsPercent,"%"),r(),Te("width",e.macros.fatPercent,"%"),r(2),W(e.activeDay.sections);}}function fr(n,t){if(n&1&&(o(0,"div",11)(1,"h1"),d(2),a(),p(3,tr,2,1,"p",12),a(),p(4,or,3,0,"div",13),p(5,Tr,52,34)),n&2){let e=c();r(2),M(e.mealPlan.name),r(),g(e.mealPlan.description?3:-1),r(),g(e.mealPlan.days.length>1?4:-1),r(),g(e.activeDay?5:-1);}}var wt=class n{route=v(ve);router=v(me);portalService=v(ee);mealPlan=null;activeDayIndex=0;activeDay=null;expandedSections=new Set();expandedRecipes=new Set();macros={calories:0,protein:0,carbs:0,fat:0,proteinPercent:0,carbsPercent:0,fatPercent:0};ngOnInit(){this.loadMealPlan();}
1loadMealPlan(){let t=this.route.snapshot.paramMap.get("id");if(!t){this.router.navigate(["/portal/meal-plans"]);return;}this.portalService.getMealPlanById(t).subscribe({next:e=>{this.mealPlan=e,this.setActiveDay(0);},error:()=>{}});}setActiveDay(t){!this.mealPlan||t<0||t>=this.mealPlan.days.length||(this.activeDayIndex=t,this.activeDay=this.mealPlan.days[t],this.expandedSections.clear(),this.calculateMacros(),this.activeDay.sections.length>0&&this.expandedSections.add(this.activeDay.sections[0].id));}calculateMacros(){if(!this.activeDay)return;let t=this.activeDay.dayProtein,e=this.activeDay.dayCarbs,i=this.activeDay.dayFat,l=t*4,s=e*4,T=i*9,f=l+s+T;this.macros={calories:this.activeDay.dayCalories,protein:t,carbs:e,fat:i,proteinPercent:f>0?l/f*100:0,carbsPercent:f>0?s/f*100:0,fatPercent:f>0?T/f*100:0};}toggleSection(t){this.expandedSections.has(t)?this.expandedSections.delete(t):this.expandedSections.add(t);}toggleRecipe(t){this.expandedRecipes.has(t)?this.expandedRecipes.delete(t):this.expandedRecipes.add(t);}checkedSteps=new Set();getStepKey(t,e){return`${t}:${e}`;}isStepChecked(t,e){return this.checkedSteps.has(this.getStepKey(t,e));}toggleStep(t,e){let i=this.getStepKey(t,e);this.checkedSteps.has(i)?this.checkedSteps.delete(i):this.checkedSteps.add(i);}static ɵfac=function(e){return new(e||n)();};static ɵcmp=H({type:n,selectors:[["app-portal-meal-plan-view"]],decls:9,vars:3,consts:()=>{let t;t="Back to my plans";let e;e="Ingredients";let i;return i="Instructions",[t,e,i,[1,"meal-plan-view-container"],["routerLink","/portal/meal-plans",1,"back-link"],["xmlns","http://www.w3.org/2000/svg","viewBox","0 0 24 24","fill","currentColor"],["fill-rule","evenodd","d","M7.72 12.53a.75.75 0 010-1.06l7.5-7.5a.75.75 0 111.06 1.06L9.31 12l6.97 6.97a.75.75 0 11-1.06 1.06l-7.5-7.5z","clip-rule","evenodd"],[1,"loading-container"],[1,"error-container"],[1,"spinner"],[1,"retry-btn",3,"click"],[1,"plan-header"],[1,"description"],[1,"day-tabs"],[1,"day-tab",3,"active"],[1,"day-tab",3,"click"],[1,"day-tab-name"],[1,"day-tab-cal"],[1,"nutrition-summary"],[1,"calorie-header"],[1,"bi","bi-fire"],[1,"calorie-value"],[1,"calorie-unit"],[1,"macro-cards"],[1,"macro-card","protein"],[1,"macro-icon"],[1,"macro-content"],[1,"macro-val"],[1,"macro-unit"],[1,"macro-pct"],[1,"macro-card","carbs"],[1,"macro-card","fat"],[1,"macro-distribution"],[1,"dist-segment","protein"],[1,"dist-segment","carbs"],[1,"dist-segment","fat"],[1,"sections-container"],[1,"section-card"],[1,"section-header",3,"click"],[1,"section-title"],[1,"section-calories"],[1,"section-macros"],[1,"macro-chip","protein"],[1,"macro-chip","carbs"],[1,"macro-chip","fat"],["xmlns","http://www.w3.org/2000/svg","viewBox","0 0 24 24","fill","currentColor",1,"chevron"],["fill-rule","evenodd","d","M12.53 16.28a.75.75 0 01-1.06 0l-7.5-7.5a.75.75 0 011.06-1.06L12 14.69l6.97-6.97a.75.75 0 111.06 1.06l-7.5 7.5z","clip-rule","evenodd"],[1,"section-items"],[1,"food-item"],[1,"food-main"],[1,"food-name"],[1,"food-brand"],[1,"food-portion"],[1,"food-nutrition"],[1,"item-calories"],[1,"item-macros"],[1,"protein"],[1,"carbs"],[1,"fat"],[1,"food-note"],["fill-rule","evenodd","d","M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm8.706-1.442c1.146-.573 2.437.463 2.126 1.706l-.709 2.836.042-.02a.75.75 0 01.67 1.34l-.04.022c-1.147.573-2.438-.463-2.127-1.706l.71-2.836-.042.02a.75.75 0 11-.671-1.34l.041-.022z","clip-rule","evenodd"],[1,"food-item","recipe-item",3,"click"],[1,"recipe-detail-card"],[1,"recipe-detail-img",3,"src","alt"],[1,"recipe-desc"],[1,"recipe-detail-grid"],[1,"recipe-detail-col"],[1,"recipe-section-title"],[1,"recipe-ingredient"],[1,"recipe-ing-amount"],[1,"recipe-steps-checkable"],[1,"recipe-step-check",3,"checked"],[1,"recipe-step-check"],["type","checkbox",3,"change","checked"],[1,"step-number"],[1,"step-text"]];},template:function(e,i){e&1&&(o(0,"div",3)(1,"a",4),E(),o(2,"svg",5),m(3,"path",6),a(),N(),o(4,"span"),_(5,0),a()(),p(6,Za,4,0,"div",7),p(7,er,5,1,"div",8),p(8,fr,6,4),a()),e&2&&(r(6),g(i.portalService.loading()?6:-1),r(),g(i.portalService.error()?7:-1),r(),g(i.mealPlan&&!i.portalService.loading()?8:-1));},dependencies:[j,_e,Pe],styles:['.meal-plan-view-container[_ngcontent-%COMP%]{max-width:600px;margin:0 auto;padding:0 16px}.back-link[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;color:#03a791;text-decoration:none;font-weight:500;margin-bottom:20px;font-size:14px}.back-link[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:18px;height:18px}.back-link[_ngcontent-%COMP%]:hover{text-decoration:underline}.loading-container[_ngcontent-%COMP%], .error-container[_ngcontent-%COMP%]{background:#fff;border-radius:12px;padding:48px;text-align:center;box-shadow:0 1px 3px #0000001a}.spinner[_ngcontent-%COMP%]{width:40px;height:40px;border:3px solid #e5e7eb;border-top-color:#03a791;border-radius:50%;animation:_ngcontent-%COMP%_spin 1s linear infinite;margin:0 auto 16px}@keyframes _ngcontent-%COMP%_spin{to{transform:rotate(360deg)}}.error-container[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:#ef4444;margin-bottom:16px}.retry-btn[_ngcontent-%COMP%]{padding:10px 24px;background:#03a791;color:#fff;border:none;border-radius:8px;
1cursor:pointer}.retry-btn[_ngcontent-%COMP%]:hover{background:#028a77}.plan-header[_ngcontent-%COMP%]{margin-bottom:20px}.plan-header[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{font-size:22px;font-weight:700;color:#1f2937;margin:0 0 6px}.plan-header[_ngcontent-%COMP%]   .description[_ngcontent-%COMP%]{color:#6b7280;font-size:14px;margin:0 0 8px}.day-tabs[_ngcontent-%COMP%]{display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:4px;margin-bottom:16px}.day-tabs[_ngcontent-%COMP%]::-webkit-scrollbar{display:none}.day-tab[_ngcontent-%COMP%]{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 18px;border-radius:12px;border:1.5px solid #e5e7eb;background:#fff;cursor:pointer;transition:all .2s}.day-tab[_ngcontent-%COMP%]:active{transform:scale(.97)}.day-tab-name[_ngcontent-%COMP%]{font-size:14px;font-weight:600;color:#374151;white-space:nowrap}.day-tab-cal[_ngcontent-%COMP%]{font-size:11px;color:#9ca3af;white-space:nowrap}.day-tab.active[_ngcontent-%COMP%]{background:#03a791;border-color:#03a791}.day-tab.active[_ngcontent-%COMP%]   .day-tab-name[_ngcontent-%COMP%]{color:#fff}.day-tab.active[_ngcontent-%COMP%]   .day-tab-cal[_ngcontent-%COMP%]{color:#fffc}.nutrition-summary[_ngcontent-%COMP%]{margin-bottom:20px}.calorie-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;background:#fff7ed;border-radius:12px;margin-bottom:10px}.calorie-header[_ngcontent-%COMP%]   .bi-fire[_ngcontent-%COMP%]{font-size:20px;color:#ea580c}.calorie-value[_ngcontent-%COMP%]{font-size:28px;font-weight:700;color:#111827;line-height:1}.calorie-unit[_ngcontent-%COMP%]{font-size:14px;color:#9ca3af;font-weight:500}.macro-cards[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}.macro-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;padding:12px 8px;background:#f9fafb;border-radius:10px;position:relative}.macro-icon[_ngcontent-%COMP%]{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;margin-bottom:6px}.macro-card.protein[_ngcontent-%COMP%]   .macro-icon[_ngcontent-%COMP%]{background:#fee2e2;color:#dc2626}.macro-card.carbs[_ngcontent-%COMP%]   .macro-icon[_ngcontent-%COMP%]{background:#dbeafe;color:#2563eb}.macro-card.fat[_ngcontent-%COMP%]   .macro-icon[_ngcontent-%COMP%]{background:#fef3c7;color:#d97706}.macro-content[_ngcontent-%COMP%]{display:flex;align-items:baseline;gap:1px}.macro-val[_ngcontent-%COMP%]{font-size:18px;font-weight:700;color:#111827}.macro-unit[_ngcontent-%COMP%]{font-size:12px;color:#6b7280}.macro-pct[_ngcontent-%COMP%]{font-size:11px;color:#9ca3af;margin-top:2px}.macro-distribution[_ngcontent-%COMP%]{display:flex;height:6px;border-radius:9999px;overflow:hidden;background:#e5e7eb}.dist-segment[_ngcontent-%COMP%]{height:100%;transition:width .3s ease}.dist-segment.protein[_ngcontent-%COMP%]{background:#ef4444}.dist-segment.carbs[_ngcontent-%COMP%]{background:#3b82f6}.dist-segment.fat[_ngcontent-%COMP%]{background:#f59e0b}.sections-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px}.section-card[_ngcontent-%COMP%]{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 1px 3px #00000014}.section-header[_ngcontent-%COMP%]{display:flex;align-items:center;padding:14px 16px;cursor:pointer;transition:background .2s}.section-header[_ngcontent-%COMP%]:hover{background:#f9fafb}.section-title[_ngcontent-%COMP%]{flex:1}.section-title[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font-size:16px;font-weight:600;color:#1f2937;margin:0}.section-calories[_ngcontent-%COMP%]{font-size:13px;color:#f59e0b;font-weight:500}.section-macros[_ngcontent-%COMP%]{display:flex;gap:6px;margin-right:12px}.macro-chip[_ngcontent-%COMP%]{padding:3px 7px;border-radius:4px;font-size:11px;font-weight:500}.macro-chip.protein[_ngcontent-%COMP%]{background:#fee2e2;color:#dc2626}.macro-chip.carbs[_ngcontent-%COMP%]{background:#dbeafe;color:#2563eb}.macro-chip.fat[_ngcontent-%COMP%]{background:#d1fae5;color:#059669}.chevron[_ngcontent-%COMP%]{width:22px;height:22px;color:#9ca3af;transition:transform .2s}.chevron.expanded[_ngcontent-%COMP%]{transform:rotate(180deg)}.section-items[_ngcontent-%COMP%]{border-top:1px solid #e5e7eb;padding:12px 16px}.food-item[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr auto auto;gap:12px;padding:10px 0;border-bottom:1px solid #f3f4f6;align-items:center}.food-item[_ngcontent-%COMP%]:last-child{border-bottom:none}.food-main[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2px}
1.food-name[_ngcontent-%COMP%]{font-weight:500;color:#374151;font-size:14px}.food-brand[_ngcontent-%COMP%]{font-size:12px;color:#9ca3af}.food-portion[_ngcontent-%COMP%]{font-size:13px;color:#6b7280;white-space:nowrap}.food-nutrition[_ngcontent-%COMP%]{text-align:right}.item-calories[_ngcontent-%COMP%]{font-weight:600;color:#f59e0b;display:block;margin-bottom:2px;font-size:13px}.item-macros[_ngcontent-%COMP%]{display:flex;gap:6px;font-size:11px}.item-macros[_ngcontent-%COMP%]   .protein[_ngcontent-%COMP%]{color:#dc2626}.item-macros[_ngcontent-%COMP%]   .carbs[_ngcontent-%COMP%]{color:#2563eb}.item-macros[_ngcontent-%COMP%]   .fat[_ngcontent-%COMP%]{color:#059669}.food-note[_ngcontent-%COMP%]{grid-column:1 / -1;display:flex;align-items:flex-start;gap:6px;padding:8px 12px;background:#fffbeb;border-radius:6px;font-size:13px;color:#92400e;margin-top:4px}.food-note[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:16px;height:16px;flex-shrink:0;margin-top:1px}.recipe-item[_ngcontent-%COMP%]{cursor:pointer;border-left:3px solid #03A791}.recipe-item[_ngcontent-%COMP%]:hover{background:#f0fdf9}.recipe-detail-card[_ngcontent-%COMP%]{padding:12px 16px;margin:0 0 8px;background:#f8fdfb;border-radius:8px;border:1px solid rgba(3,167,145,.1);font-size:13px}.recipe-detail-img[_ngcontent-%COMP%]{width:100%;max-width:320px;height:180px;object-fit:cover;border-radius:8px;margin-bottom:10px;display:block}.recipe-desc[_ngcontent-%COMP%]{color:#6b7280;margin:0 0 8px;line-height:1.5}.recipe-detail-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr;gap:16px}@media(min-width:768px){.recipe-detail-grid[_ngcontent-%COMP%]{grid-template-columns:1fr 1.3fr}}.recipe-detail-col[_ngcontent-%COMP%]{min-width:0}.recipe-section-title[_ngcontent-%COMP%]{font-weight:600;color:#03a791;font-size:12px;text-transform:uppercase;letter-spacing:.03em;margin-bottom:6px;padding-bottom:3px;border-bottom:1px solid rgba(3,167,145,.15)}
1.recipe-ingredient[_ngcontent-%COMP%]{display:flex;justify-content:space-between;padding:3px 0;color:#374151}.recipe-ing-amount[_ngcontent-%COMP%]{color:#9ca3af;font-size:12px}.recipe-steps-list[_ngcontent-%COMP%]{padding-left:20px;margin:4px 0 0;color:#374151;line-height:1.6}.recipe-steps-list[_ngcontent-%COMP%]   li[_ngcontent-%COMP%]{margin-bottom:4px}.recipe-steps-checkable[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:6px}.recipe-step-check[_ngcontent-%COMP%]{display:flex;align-items:flex-start;gap:8px;padding:6px 8px;border-radius:6px;cursor:pointer;transition:background .15s;line-height:1.5}.recipe-step-check[_ngcontent-%COMP%]:hover{background:#03a7910d}.recipe-step-check[_ngcontent-%COMP%]   input[type=checkbox][_ngcontent-%COMP%]{margin-top:3px;accent-color:#03A791;flex-shrink:0}.recipe-step-check.checked[_ngcontent-%COMP%]   .step-text[_ngcontent-%COMP%]{text-decoration:line-through;color:#9ca3af}.step-number[_ngcontent-%COMP%]{font-weight:600;color:#03a791;font-size:13px;min-width:18px;flex-shrink:0}.step-text[_ngcontent-%COMP%]{font-size:13px;color:#374151;transition:color .15s}@media(max-width:768px){.section-macros[_ngcontent-%COMP%]{display:none}.food-item[_ngcontent-%COMP%]{grid-template-columns:1fr;gap:6px}.food-nutrition[_ngcontent-%COMP%]{text-align:left;display:flex;align-items:center;gap:10px}.item-calories[_ngcontent-%COMP%]{display:inline;margin-bottom:0}}[data-theme="dark"][_nghost-%COMP%]   .loading-container[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .loading-container[_ngcontent-%COMP%], [data-theme="dark"][_nghost-%COMP%]   .error-container[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .error-container[_ngcontent-%COMP%]{background:#1e293b}[data-theme="dark"][_nghost-%COMP%]   .loading-container[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .loading-container[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .spinner[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .spinner[_ngcontent-%COMP%]{border-color:#475569;border-top-color:#03a791}[data-theme="dark"][_nghost-%COMP%]   .plan-header[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .plan-header[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .plan-header[_ngcontent-%COMP%]   .description[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .plan-header[_ngcontent-%COMP%]   .description[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .calorie-header[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .calorie-header[_ngcontent-%COMP%]{background:#ea580c1f}[data-theme="dark"][_nghost-%COMP%]   .calorie-value[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .calorie-value[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .macro-card[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .macro-card[_ngcontent-%COMP%]{background:#1e293b}[data-theme="dark"][_nghost-%COMP%]   .macro-val[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .macro-val[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .macro-unit[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .macro-unit[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .macro-pct[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .macro-pct[_ngcontent-%COMP%]{color:#64748b}[data-theme="dark"][_nghost-%COMP%]   .macro-card.protein[_ngcontent-%COMP%]   .macro-icon[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .macro-card.protein[_ngcontent-%COMP%]   .macro-icon[_ngcontent-%COMP%]{background:#dc262633}[data-theme="dark"][_nghost-%COMP%]   .macro-card.carbs[_ngcontent-%COMP%]   .macro-icon[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .macro-card.carbs[_ngcontent-%COMP%]   .macro-icon[_ngcontent-%COMP%]{background:#2563eb33}[data-theme="dark"][_nghost-%COMP%]   .macro-card.fat[_ngcontent-%COMP%]   .macro-icon[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .macro-card.fat[_ngcontent-%COMP%]   .macro-icon[_ngcontent-%COMP%]{background:#d9770633}[data-theme="dark"][_nghost-%COMP%]   .macro-distribution[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .macro-distribution[_ngcontent-%COMP%]{background:#475569}[data-theme="dark"][_nghost-%COMP%]   .day-tab[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .day-tab[_ngcontent-%COMP%]{background:#1e293b;border-color:#475569}
1[data-theme="dark"][_nghost-%COMP%]   .day-tab-name[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .day-tab-name[_ngcontent-%COMP%]{color:#e2e8f0}[data-theme="dark"][_nghost-%COMP%]   .day-tab-cal[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .day-tab-cal[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .day-tab.active[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .day-tab.active[_ngcontent-%COMP%]{background:#03a791;border-color:#03a791}[data-theme="dark"][_nghost-%COMP%]   .day-tab.active[_ngcontent-%COMP%]   .day-tab-name[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .day-tab.active[_ngcontent-%COMP%]   .day-tab-name[_ngcontent-%COMP%]{color:#fff}[data-theme="dark"][_nghost-%COMP%]   .day-tab.active[_ngcontent-%COMP%]   .day-tab-cal[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .day-tab.active[_ngcontent-%COMP%]   .day-tab-cal[_ngcontent-%COMP%]{color:#fffc}[data-theme="dark"][_nghost-%COMP%]   .section-card[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .section-card[_ngcontent-%COMP%]{background:#1e293b;box-shadow:0 1px 3px #0000004d}[data-theme="dark"][_nghost-%COMP%]   .section-header[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .section-header[_ngcontent-%COMP%]:hover{background:#334155}[data-theme="dark"][_nghost-%COMP%]   .section-title[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .section-title[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .section-items[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .section-items[_ngcontent-%COMP%]{border-top-color:#475569}[data-theme="dark"][_nghost-%COMP%]   .food-item[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .food-item[_ngcontent-%COMP%]{border-bottom-color:#334155}[data-theme="dark"][_nghost-%COMP%]   .food-name[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .food-name[_ngcontent-%COMP%]{color:#e2e8f0}[data-theme="dark"][_nghost-%COMP%]   .food-brand[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .food-brand[_ngcontent-%COMP%]{color:#cbd5e1}[data-theme="dark"][_nghost-%COMP%]   .food-portion[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .food-portion[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .food-note[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .food-note[_ngcontent-%COMP%]{background:#422006;color:#fde68a}[data-theme="dark"][_nghost-%COMP%]   .chevron[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .chevron[_ngcontent-%COMP%]{color:#cbd5e1}[data-theme="dark"][_nghost-%COMP%]   .macro-chip.protein[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .macro-chip.protein[_ngcontent-%COMP%]{background:#dc262633;color:#fca5a5}[data-theme="dark"][_nghost-%COMP%]   .macro-chip.carbs[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .macro-chip.carbs[_ngcontent-%COMP%]{background:#2563eb33;color:#93c5fd}[data-theme="dark"][_nghost-%COMP%]   .macro-chip.fat[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .macro-chip.fat[_ngcontent-%COMP%]{background:#05966933;color:#6ee7b7}[data-theme="dark"][_nghost-%COMP%]   .item-macros[_ngcontent-%COMP%]   .protein[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .item-macros[_ngcontent-%COMP%]   .protein[_ngcontent-%COMP%]{color:#fca5a5}[data-theme="dark"][_nghost-%COMP%]   .item-macros[_ngcontent-%COMP%]   .carbs[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .item-macros[_ngcontent-%COMP%]   .carbs[_ngcontent-%COMP%]{color:#93c5fd}[data-theme="dark"][_nghost-%COMP%]   .item-macros[_ngcontent-%COMP%]   .fat[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .item-macros[_ngcontent-%COMP%]   .fat[_ngcontent-%COMP%]{color:#6ee7b7}[data-theme="dark"][_nghost-%COMP%]   .back-link[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .back-link[_ngcontent-%COMP%]{color:#03a791}[data-theme="dark"][_nghost-%COMP%]   .section-calories[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .section-calories[_ngcontent-%COMP%]{color:#f59e0b}[data-theme="dark"][_nghost-%COMP%]   .item-calories[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .item-calories[_ngcontent-%COMP%]{color:#f59e0b}']});};var lo=(n,t)=>t.id,hr=(n,t)=>t.category;function Sr(n,t){n&1&&(C(0,"div",18),$(1,"div",22),C(2,"p"),_(3,1),P()());}function Nr(n,t){if(n&1){let e=x();C(0,"div",19)(1,"p"),d(2),P(),C(3,"button",23),Z("click",function(){O(e);let l=c();return u(l.loadMealPlans());}),_(4,2),P()();}if(n&2){let e=c();r(2),M(e.portalService.error());}}function br(n,t){n&1&&(C(0,"div",20)(1,"div",24),E(),C(2,"svg",25),$(3,"path",26),P()(),N(),C(4,"h2"),_(5,3),P(),C(6,"p"),_(7,4),P()());}function xr(n,t){n&1&&(E(),C(0,"svg",44),$(1,"path",45),P());}function Ar(n,t){if(n&1){let e=x();C(0,"button",40),Z("click",function(){let l=O(e).$implicit,s=c(3);return u(s.selectPlan(l.id));}),C(1,"div",41)(2,"span",42),d(3),P(),C(4,"span",43),d(5),P()(),p(6,xr,2,0,":svg:svg",44),P();}if(n&2){let e=t.$implicit,i=c(3);z("selected",i.selectedMealPlanId()===e.id),r(3),M(e.name),r(2),M(e.tenantName),r(),g(i.selectedMealPlanId()===e.id?6:-1);}}function Lr(n,t){if(n&1){let e=x();C(0,"div",32),Z("click",function(){O(e);let l=c(2);return u(l.closeModal());}),P(),C(1,"div",33)(2,"div",34)(3,"h3"),_(4,6),P(),C(5,"button",35),Z("click",function(){O(e);let l=c(2);return u(l.closeModal());}),E(),C(6,"svg",36),$(7,"path",37),P()()(),N(),C(8,"div",38),X(9,Ar,7,5,"button",39,lo),P()();}if(n&2){let e=c(2);r(9),W(e.mealPlans());}}function vr(n,t){n&1&&($(0,"div",53),C(1,"span"),_(2,8),P());}function Rr(n,t){n&1&&(E(),C(0,"svg",25),$(1,"path",54),P(),N(),C(2,"span"),_(3,9),P());}function yr(n,t){n&1&&(E(),C(0,"svg",25),$(1,"path",51),P(),N(),C(2,"span"),_(3,10),P());}function kr(n,t){if(n&1){let e=x();C(0,"div",46)(1,"label"),_(2,7),P(),C(3,"div",47)(4,"button",48),Z("click",function(){O(e);let l=c(2);return u(l.decrementDays());}),E(),C(5,"svg",36),$(6,"path",49),P()(),N(),C(7,"span",50),d(8),P(),C(9,"button",48),Z("click",function(){O(e);let l=c(2);return u(l.incrementDays());}),E(),C(10,"svg",36),$(11,"path",51),P()()()(),N(),C(12,"button",52),Z("click",function(){O(e);let l=c(2);
1return u(l.generateList());}),p(13,vr,3,0)(14,Rr,4,0)(15,yr,4,0),P();}if(n&2){let e=c(2);r(4),ne("disabled",e.dayCount()<=1),r(4),M(e.dayCount()),r(),ne("disabled",e.dayCount()>=7),r(3),ne("disabled",e.generatingList()),r(),g(e.generatingList()?13:e.currentList()?14:15);}}function Ir(n,t){if(n&1){let e=x();C(0,"div",74)(1,"label",75)(2,"input",64),Z("change",function(){let l=O(e).$implicit,s=c(4);return u(s.toggleItem(l));}),P(),$(3,"span",76),P(),C(4,"div",77)(5,"span",78),d(6),P(),C(7,"span",79),d(8),R(9,"number"),P()()();}if(n&2){let e=t.$implicit,i=c(4);z("purchased",e.purchased),r(2),ne("checked",e.purchased),r(3),z("strikethrough",e.purchased),r(),I(" ",e.foodName," "),r(2),le(" ",y(9,8,e.quantity*i.dayCount(),"1.0-0"),"",e.unit," ");}}function wr(n,t){if(n&1&&(C(0,"div",67)(1,"div",69)(2,"span",70),d(3),P(),C(4,"span",71),d(5),P(),C(6,"span",72),d(7),P()(),X(8,Ir,10,11,"div",73,lo),P()),n&2){let e=t.$implicit,i=c(3);r(3),M(e.icon),r(2),M(i.aisleLabel(e.category)),r(2),M(e.items.length),r(),W(e.items);}}function $r(n,t){n&1&&(C(0,"div",68),E(),C(1,"svg",25),$(2,"path",80),P(),N(),C(3,"p"),_(4,13),P()());}function Fr(n,t){if(n&1){let e=x();C(0,"div",30)(1,"div",55)(2,"div",56)(3,"h2"),d(4),P(),C(5,"span",57),d(6),P()(),C(7,"div",58)(8,"div",59),_(9,11),P(),C(10,"div",60),$(11,"div",61),P()()(),C(12,"div",62)(13,"label",63)(14,"input",64),Z("change",function(){O(e);let l=c(2);return u(l.toggleHidePurchased());}),P(),C(15,"span",65),_(16,12),P()()(),C(17,"div",66),X(18,wr,10,3,"div",67,hr),p(20,$r,5,0,"div",68),P()();}if(n&2){let e=c(2);r(4),M(e.currentList().mealPlanName),r(2),M(e.currentList().tenantName),r(3),ae(e.purchasedCount())(e.currentList().items.length),re(9),r(2),Te("width",e.progressPercent(),"%"),r(3),ne("checked",e.hidePurchased()),r(4),W(e.groupedItems()),r(2),g(e.displayedItems().length===0&&e.hidePurchased()?20:-1);}}function Gr(n,t){n&1&&(C(0,"div",31)(1,"div",81),E(),C(2,"svg",25),$(3,"path",82),P()(),N(),C(4,"h3"),_(5,14),P(),C(6,"p"),_(7,15),P()());}function zr(n,t){if(n&1){let e=x();C(0,"div",21)(1,"div",27)(2,"div",28)(3,"label"),_(4,5),P(),C(5,"div",29),Z("click",function(){O(e);let l=c();return u(l.openModal());}),d(6),P()(),p(7,Lr,11,0),p(8,kr,16,5),P(),p(9,Fr,21,8,"div",30),p(10,Gr,8,0,"div",31),P();}if(n&2){let e=c();r(5),z("has-value",e.selectedMealPlanId()),r(),I(" ",e.getSelectedPlanName()," "),r(),g(e.modalOpen()?7:-1),r(),g(e.selectedMealPlanId()?8:-1),r(),g(e.currentList()?9:-1),r(),g(e.selectedMealPlanId()&&!e.currentList()&&!e.generatingList()?10:-1);}}var Ft=class n{portalService=v(ee);defaultPlanName="Select a meal plan";mealPlans=S([]);selectedMealPlanId=S("");currentList=S(null);generatingList=S(!1);hidePurchased=S(!1);modalOpen=S(!1);dayCount=S(1);purchasedCount=q(()=>{let t=this.currentList();return t?t.items.filter(e=>e.purchased).length:0;});progressPercent=q(()=>{let t=this.currentList();return!t||t.items.length===0?0:this.purchasedCount()/t.items.length*100;});displayedItems=q(()=>{let t=this.currentList();if(!t)return[];let e=[...t.items];return e.sort((i,l)=>i.purchased===l.purchased?0:i.purchased?1:-1),this.hidePurchased()&&(e=e.filter(i=>!i.purchased)),e;});aisleOrder={vegetable:1,fruit:2,protein:3,dairy:4,grain:5,oil:6,nut:7,spice:8,sweetener:9,other:10};aisleIcons={vegetable:"\u{1F96C}",fruit:"\u{1F34E}",protein:"\u{1F969}",dairy:"\u{1F95B}",grain:"\u{1F33E}",oil:"\u{1FAD2}",nut:"\u{1F95C}",spice:"\u{1F9C2}",sweetener:"\u{1F36F}",other:"\u{1F4E6}"};groupedItems=q(()=>{let t=this.displayedItems(),e=new Map();for(let i of t){let l=i.category||"other";e.has(l)||e.set(l,[]),e.get(l).push(i);}return Array.from(e.entries()).map(([i,l])=>({category:i,icon:this.aisleIcons[i]||"\u{1F4E6}",items:l})).sort((i,l)=>(this.aisleOrder[i.category]??99)-(this.aisleOrder[l.category]??99));});aisleLabel(t){switch(t){case"vegetable":return"Vegetables & Greens";case"fruit":return"Fruits";case"protein":return"Meat, Fish & Legumes";case"dairy":return"Dairy & Eggs";case"grain":return"Grains & Bread";case"oil":return"Oils & Sauces";case"nut":return"Nuts & Seeds";case"spice":return"Spices & Herbs";case"sweetener":return"Sweeteners";default:return"Other";}}ngOnInit(){this.loadMealPlans();}loadMealPlans(){this.portalService.getMealPlans().subscribe({next:t=>{this.mealPlans.set(t);}});}onMealPlanChange(t){this.selectedMealPlanId.set(t),this.currentList.set(null),this.dayCount.set(1),t&&this.loadExistingList(t);}loadExistingList(t){this.portalService.getShoppingLists().subscribe({next:e=>{let i=e.find(l=>l.mealPlanId===t);i&&this.portalService.getShoppingListById(i.id).subscribe({next:l=>{this.currentList.set(l),l.dayCount&&l.dayCount>0&&this.dayCount.set(l.dayCount);}});}});}
1generateList(){let t=this.selectedMealPlanId();t&&(this.generatingList.set(!0),this.portalService.generateShoppingList({mealPlanId:t,dayCount:this.dayCount()}).subscribe({next:e=>{this.currentList.set(e),this.generatingList.set(!1);},error:()=>{this.generatingList.set(!1);}}));}toggleItem(t){let e=!t.purchased,i=this.currentList();if(i){let l=i.items.map(s=>s.id===t.id?Qe(Je({},s),{purchased:e,purchasedAt:e?new Date().toISOString():void 0}):s);this.currentList.set(Qe(Je({},i),{items:l}));}this.portalService.updateShoppingListItem(t.id,e).subscribe({error:()=>{if(i){let l=i.items.map(s=>s.id===t.id?Qe(Je({},s),{purchased:!e,purchasedAt:e?void 0:new Date().toISOString()}):s);this.currentList.set(Qe(Je({},i),{items:l}));}}});}incrementDays(){this.dayCount()<7&&(this.dayCount.update(t=>t+1),this.saveDayCount());}decrementDays(){this.dayCount()>1&&(this.dayCount.update(t=>t-1),this.saveDayCount());}saveDayCount(){let t=this.currentList();t&&this.portalService.updateShoppingListDayCount(t.id,this.dayCount()).subscribe();}toggleHidePurchased(){this.hidePurchased.update(t=>!t);}openModal(){this.modalOpen.set(!0);}closeModal(){this.modalOpen.set(!1);}selectPlan(t){this.closeModal(),this.onMealPlanChange(t);}getSelectedPlanName(){let t=this.selectedMealPlanId();if(!t)return this.defaultPlanName;let e=this.mealPlans().find(i=>i.id===t);return e?e.name:this.defaultPlanName;}static ɵfac=function(e){return new(e||n)();};static ɵcmp=H({type:n,selectors:[["app-portal-shopping-list"]],decls:7,vars:4,consts:()=>{let t;t="Generate a shopping list from your meal plans and track your grocery purchases.";let e;e="Loading...";let i;i="Retry";let l;l="No Meal Plans Available";let s;s="You don't have any meal plans yet. Your nutritionist will notify you when you have a new one.";let T;T="Select Meal Plan:";let f;f="Select Meal Plan";let b;b="Quantity multiplier:";let L;L="Generating...";let w;w="Regenerate List";let J;J="Generate List";let G;G=""+"\uFFFD0\uFFFD"+" of "+"\uFFFD1\uFFFD"+" items";let D;D="Hide purchased items";let Y;Y="All items purchased! Great job!";let oe;oe="No Shopping List Yet";let ie;return ie="Click \"Generate List\" to create a shopping list from your selected meal plan.",[t,e,i,l,s,T,f,b,L,w,J,G,D,Y,oe,ie,[1,"shopping-list-container"],[1,"page-subtitle"],[1,"loading-container"],[1,"error-container"],[1,"empty-state"],[1,"content-wrapper"],[1,"spinner"],[1,"retry-btn",3,"click"],[1,"empty-icon"],["xmlns","http://www.w3.org/2000/svg","fill","none","viewBox","0 0 24 24","stroke-width","1.5","stroke","currentColor"],["stroke-linecap","round","stroke-linejoin","round","d","M2.25 3h1.386c.51 0 .955.343 1.087.835l.383 1.437M7.5 14.25a3 3 0 00-3 3h15.75m-12.75-3h11.218c1.121-2.3 2.1-4.684 2.924-7.138a60.114 60.114 0 00-16.536-1.84M7.5 14.25L5.106 5.272M6 20.25a.75.75 0 11-1.5 0 .75.75 0 011.5 0zm12.75 0a.75.75 0 11-1.5 0 .75.75 0 011.5 0z"],[1,"controls-section"],[1,"meal-plan-selector"],[1,"custom-select",3,"click"],[1,"shopping-list-card"],[1,"no-list-state"],[1,"modal-backdrop",3,"click"],[1,"modal"],[1,"modal-header"],["type","button",1,"modal-close",3,"click"],["xmlns","http://www.w3.org/2000/svg","fill","none","viewBox","0 0 24 24","stroke-width","2","stroke","currentColor"],["stroke-linecap","round","stroke-linejoin","round","d","M6 18L18 6M6 6l12 12"],[1,"modal-body"],["type","button",1,"modal-option",3,"selected"],["type","button",1,"modal-option",3,"click"],[1,"option-info"],[1,"option-name"],[1,"option-tenant"],["xmlns","http://www.w3.org/2000/svg","viewBox","0 0 20 20","fill","currentColor",1,"check-icon"],["fill-rule","evenodd","d","M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z","clip-rule","evenodd"],[1,"day-count-section"],[1,"day-stepper"],["type","button",1,"stepper-btn",3,"click","disabled"],["stroke-linecap","round","stroke-linejoin","round","d","M5 12h14"],[1,"day-count-value"],["stroke-linecap","round","stroke-linejoin","round","d","M12 4.5v15m7.5-7.5h-15"],[1,"generate-btn",3,"click","disabled"],[1,"btn-spinner"],["stroke-linecap","round","stroke-linejoin","round","d","M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0l3.181 3.183a8.25 8.25 0 0013.803-3.7M4.031 9.865a8.25 8.25 0 0113.803-3.7l3.181 3.182m0-4.991v4.99"],[1,"list-header"],[1,"list-info"],[1,"tenant-badge"],[1,"progress-info"],[1,"progress-text"],[1,"progress-bar"],[1,"progress-fill"],[1,"filter-section"],[1,"toggle-label"],["type","checkbox",3,"change","checked"],[1,"toggle-text"],[1,"items-list"],[1,"aisle-group"],[1,"all-done-message"],[1,"aisle-header"],[1,"aisle-icon"],[1,"aisle-label"],[1,"aisle-count"],[1,"item-row",3,"purchased"],[1,"item-row"],[1,"item-checkbox"],[1,"checkmark"],[1,"item-details"],[1,"item-name"],[1,"item-quantity"],["stroke-linecap","round","stroke-linejoin","round","d","M9 12.75L11.25 15 15 9.75M21 12a9 9 0 11-18 0 9 9 0 0118 0z"],[1,"no-list-icon"],["stroke-linecap","round","stroke-linejoin","round","d","M8.25 6.75h12M8.25 12h12m-12 5.25h12M3.75 6.75h.007v.008H3.75V6.75zm.375 0a.375.375 0 11-.75 0 .375.375 0 01.75 0zM3.75 12h.007v.008H3.75V12zm.375 0a.375.375 0 11-.75 0 .375.375 0 01.75 0zm-.375 5.25h.007v.008H3.75v-.008zm.375 0a.375.375 0 11-.75 0 .375.375 0 01.75 0z"]];},template:function(e,i){e&1&&(C(0,"div",16)(1,"p",17),_(2,0),P(),p(3,Sr,4,0,"div",18),p(4,Nr,5,
11,"div",19),p(5,br,8,0,"div",20),p(6,zr,11,7,"div",21),P()),e&2&&(r(3),g(i.portalService.loading()?3:-1),r(),g(i.portalService.error()?4:-1),r(),g(!i.portalService.loading()&&!i.portalService.error()&&i.mealPlans().length===0?5:-1),r(),g(!i.portalService.loading()&&i.mealPlans().length>0?6:-1));},dependencies:[j,je,Pe],styles:['.shopping-list-container[_ngcontent-%COMP%]{max-width:800px;margin:0 auto;padding-top:8px}.page-subtitle[_ngcontent-%COMP%]{color:#6b7280;font-size:14px;margin:0 0 20px;line-height:1.5}.loading-container[_ngcontent-%COMP%], .error-container[_ngcontent-%COMP%], .empty-state[_ngcontent-%COMP%]{background:#fff;border-radius:12px;padding:48px;text-align:center;box-shadow:0 1px 3px #0000001a}.spinner[_ngcontent-%COMP%]{width:40px;height:40px;border:3px solid #e5e7eb;border-top-color:#03a791;border-radius:50%;animation:_ngcontent-%COMP%_spin 1s linear infinite;margin:0 auto 16px}@keyframes _ngcontent-%COMP%_spin{to{transform:rotate(360deg)}}.loading-container[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:#6b7280;margin:0}.error-container[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:#ef4444;margin-bottom:16px}.retry-btn[_ngcontent-%COMP%]{padding:10px 24px;background:#03a791;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer}.retry-btn[_ngcontent-%COMP%]:hover{background:#028a77}.empty-state[_ngcontent-%COMP%]{padding:64px 48px}.empty-icon[_ngcontent-%COMP%]{width:64px;height:64px;color:#9ca3af;margin:0 auto 16px}.empty-icon[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:100%;height:100%}.empty-state[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font-size:20px;font-weight:600;color:#374151;margin:0 0 8px}.empty-state[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:#6b7280;max-width:400px;margin:0 auto}.controls-section[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:24px;background:#fff;border-radius:12px;padding:16px;box-shadow:0 1px 3px #0000001a}.meal-plan-selector[_ngcontent-%COMP%]{width:100%;flex-basis:100%}.meal-plan-selector[_ngcontent-%COMP%]   label[_ngcontent-%COMP%]{display:block;font-size:13px;font-weight:600;color:#374151;margin-bottom:8px;text-transform:uppercase;letter-spacing:.03em}.custom-select[_ngcontent-%COMP%]{position:relative;width:100%;padding:14px 44px 14px 16px;border:1px solid #d1d5db;border-radius:10px;font-size:16px;color:#9ca3af;background-color:#fff;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select.has-value[_ngcontent-%COMP%]{color:#374151}.custom-select[_ngcontent-%COMP%]:after{content:"";position:absolute;right:16px;top:50%;transform:translateY(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #6b7280;pointer-events:none}.custom-select[_ngcontent-%COMP%]:hover{border-color:#9ca3af}.custom-select[_ngcontent-%COMP%]:focus{outline:none;border-color:#03a791;box-shadow:0 0 0 3px #03a7911a}.modal-backdrop[_ngcontent-%COMP%]{position:fixed;inset:0;background:#00000080;z-index:1000}.modal[_ngcontent-%COMP%]{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;border-radius:16px;width:calc(100% - 32px);max-width:400px;max-height:calc(100vh - 64px);display:flex;flex-direction:column;z-index:1001;box-shadow:0 20px 60px #0000004d}.modal-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e5e7eb}.modal-header[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{margin:0;font-size:18px;font-weight:600;color:#1f2937}.modal-close[_ngcontent-%COMP%]{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:8px;cursor:pointer;color:#6b7280}.modal-close[_ngcontent-%COMP%]:hover{background:#f3f4f6}.modal-close[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:20px;height:20px}.modal-body[_ngcontent-%COMP%]{flex:1;overflow-y:auto;padding:8px 0}.modal-option[_ngcontent-%COMP%]{width:100%;display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:none;border:none;cursor:pointer;text-align:left}.modal-option[_ngcontent-%COMP%]:hover{background:#f9fafb}.modal-option.selected[_ngcontent-%COMP%]{background:#03a79114}.option-info[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
1.option-name[_ngcontent-%COMP%]{font-size:15px;font-weight:500;color:#374151}.option-tenant[_ngcontent-%COMP%]{font-size:13px;color:#6b7280}.check-icon[_ngcontent-%COMP%]{width:20px;height:20px;color:#03a791;flex-shrink:0}.day-count-section[_ngcontent-%COMP%]{flex:1;min-width:0}.day-count-section[_ngcontent-%COMP%]   label[_ngcontent-%COMP%]{display:block;font-size:13px;font-weight:600;color:#374151;margin-bottom:8px;text-transform:uppercase;letter-spacing:.03em}.day-stepper[_ngcontent-%COMP%]{display:flex;align-items:center;gap:0;border:1px solid #d1d5db;border-radius:10px;overflow:hidden;background:#fff}.stepper-btn[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:none;border:none;cursor:pointer;color:#374151;transition:background .15s}.stepper-btn[_ngcontent-%COMP%]:hover:not(:disabled){background:#f3f4f6}.stepper-btn[_ngcontent-%COMP%]:disabled{opacity:.3;cursor:not-allowed}.stepper-btn[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:20px;height:20px}.day-count-value[_ngcontent-%COMP%]{flex:1;text-align:center;font-size:18px;font-weight:600;color:#374151;min-width:48px}.generate-btn[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;gap:8px;flex:1;min-width:0;padding:14px 24px;background:linear-gradient(135deg,#03a791,#028576);color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.generate-btn[_ngcontent-%COMP%]:hover:not(:disabled){background:linear-gradient(135deg,#028a77,#027565);transform:translateY(-1px);box-shadow:0 4px 12px #03a7914d}.generate-btn[_ngcontent-%COMP%]:disabled{opacity:.7;cursor:not-allowed}.generate-btn[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:20px;height:20px}.btn-spinner[_ngcontent-%COMP%]{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:_ngcontent-%COMP%_spin .8s linear infinite}.shopping-list-card[_ngcontent-%COMP%]{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.list-header[_ngcontent-%COMP%]{padding:24px;background:#03a791;color:#fff}.list-info[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}.list-info[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font-size:20px;font-weight:600;margin:0}.tenant-badge[_ngcontent-%COMP%]{padding:4px 12px;background:#fff3;border-radius:16px;font-size:12px;font-weight:500}.progress-info[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:8px}.progress-text[_ngcontent-%COMP%]{font-size:14px;opacity:.9}.progress-bar[_ngcontent-%COMP%]{height:8px;background:#fff3;border-radius:4px;overflow:hidden}.progress-fill[_ngcontent-%COMP%]{height:100%;background:#fff;border-radius:4px;transition:width .3s ease}.filter-section[_ngcontent-%COMP%]{padding:16px 24px;border-bottom:1px solid #e5e7eb}.toggle-label[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle-label[_ngcontent-%COMP%]   input[_ngcontent-%COMP%]{width:18px;height:18px;accent-color:#03A791}.toggle-text[_ngcontent-%COMP%]{font-size:14px;color:#6b7280}.items-list[_ngcontent-%COMP%]{padding:8px 0}.aisle-group[_ngcontent-%COMP%]{margin-bottom:4px}.aisle-header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;padding:10px 24px;background:#f8fafc;border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;font-weight:600;color:#374151;font-size:13px;text-transform:uppercase;letter-spacing:.04em;position:sticky;top:0;z-index:1}.aisle-icon[_ngcontent-%COMP%]{font-size:18px}.aisle-label[_ngcontent-%COMP%]{flex:1}.aisle-count[_ngcontent-%COMP%]{color:#9ca3af;font-size:11px;background:#fff;padding:1px 8px;border-radius:10px;border:1px solid #e5e7eb}.item-row[_ngcontent-%COMP%]{display:flex;align-items:center;padding:16px 24px;gap:16px;transition:background .15s}.item-row[_ngcontent-%COMP%]:hover{background:#f9fafb}.item-row.purchased[_ngcontent-%COMP%]{opacity:.6}.item-checkbox[_ngcontent-%COMP%]{position:relative;display:flex;align-items:center;cursor:pointer}.item-checkbox[_ngcontent-%COMP%]   input[_ngcontent-%COMP%]{width:22px;height:22px;accent-color:#03A791;cursor:pointer}.item-details[_ngcontent-%COMP%]{flex:1;display:flex;justify-content:space-between;align-items:center;gap:16px}
1.item-name[_ngcontent-%COMP%]{font-size:15px;color:#374151}.item-name.strikethrough[_ngcontent-%COMP%]{text-decoration:line-through;color:#9ca3af}.item-quantity[_ngcontent-%COMP%]{font-size:14px;color:#6b7280;font-weight:500;white-space:nowrap}.all-done-message[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;padding:48px 24px;color:#10b981}.all-done-message[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:48px;height:48px;margin-bottom:12px}.all-done-message[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{font-size:16px;font-weight:500;margin:0}.no-list-state[_ngcontent-%COMP%]{background:#fff;border-radius:12px;padding:64px 48px;text-align:center;box-shadow:0 1px 3px #0000001a}.no-list-icon[_ngcontent-%COMP%]{width:48px;height:48px;color:#9ca3af;margin:0 auto 16px}.no-list-icon[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:100%;height:100%}.no-list-state[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font-size:18px;font-weight:600;color:#374151;margin:0 0 8px}.no-list-state[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:#6b7280;font-size:14px;margin:0}@media(min-width:640px){.controls-section[_ngcontent-%COMP%]{align-items:flex-end;padding:20px}.meal-plan-selector[_ngcontent-%COMP%]{flex:1;flex-basis:auto}.day-count-section[_ngcontent-%COMP%]{flex:0 0 auto}.day-stepper[_ngcontent-%COMP%]{min-width:140px}.generate-btn[_ngcontent-%COMP%]{flex:0 0 auto;padding:14px 28px}}@media(max-width:639px){.empty-state[_ngcontent-%COMP%], .no-list-state[_ngcontent-%COMP%]{padding:40px 20px}.list-header[_ngcontent-%COMP%]{padding:20px}.list-info[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font-size:18px}.filter-section[_ngcontent-%COMP%], .item-row[_ngcontent-%COMP%]{padding:14px 20px}.item-details[_ngcontent-%COMP%]{flex-direction:column;align-items:flex-start;gap:4px}}[data-theme="dark"][_nghost-%COMP%]   .loading-container[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .loading-container[_ngcontent-%COMP%], [data-theme="dark"][_nghost-%COMP%]   .error-container[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .error-container[_ngcontent-%COMP%], [data-theme="dark"][_nghost-%COMP%]   .empty-state[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .empty-state[_ngcontent-%COMP%]{background:#1e293b}[data-theme="dark"][_nghost-%COMP%]   .loading-container[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .loading-container[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .empty-state[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .empty-state[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{color:#e2e8f0}[data-theme="dark"][_nghost-%COMP%]   .empty-state[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .empty-state[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .empty-icon[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .empty-icon[_ngcontent-%COMP%]{color:#cbd5e1}[data-theme="dark"][_nghost-%COMP%]   .page-subtitle[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .page-subtitle[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .controls-section[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .controls-section[_ngcontent-%COMP%]{background:#1e293b}[data-theme="dark"][_nghost-%COMP%]   .meal-plan-selector[_ngcontent-%COMP%]   label[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .meal-plan-selector[_ngcontent-%COMP%]   label[_ngcontent-%COMP%]{color:#e2e8f0}[data-theme="dark"][_nghost-%COMP%]   .day-count-section[_ngcontent-%COMP%]   label[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .day-count-section[_ngcontent-%COMP%]   label[_ngcontent-%COMP%]{color:#e2e8f0}[data-theme="dark"][_nghost-%COMP%]   .day-stepper[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .day-stepper[_ngcontent-%COMP%]{background-color:#1e293b;border-color:#475569}[data-theme="dark"][_nghost-%COMP%]   .stepper-btn[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .stepper-btn[_ngcontent-%COMP%]{color:#e2e8f0}[data-theme="dark"][_nghost-%COMP%]   .stepper-btn[_ngcontent-%COMP%]:hover:not(:disabled), [data-theme="dark"]   [_nghost-%COMP%]   .stepper-btn[_ngcontent-%COMP%]:hover:not(:disabled){background:#334155}[data-theme="dark"][_nghost-%COMP%]   .day-count-value[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .day-count-value[_ngcontent-%COMP%]{color:#e2e8f0}[data-theme="dark"][_nghost-%COMP%]   .custom-select[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .custom-select[_ngcontent-%COMP%]{background-color:#1e293b;border-color:#475569;color:#cbd5e1}[data-theme="dark"][_nghost-%COMP%]   .custom-select.has-value[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .custom-select.has-value[_ngcontent-%COMP%]{color:#e2e8f0}[data-theme="dark"][_nghost-%COMP%]   .custom-select[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .custom-select[_ngcontent-%COMP%]:hover{border-color:#cbd5e1}[data-theme="dark"][_nghost-%COMP%]   .custom-select[_ngcontent-%COMP%]:after, [data-theme="dark"]   [_nghost-%COMP%]   .custom-select[_ngcontent-%COMP%]:after{border-top-color:#94a3b8}
1[data-theme="dark"][_nghost-%COMP%]   .modal-backdrop[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .modal-backdrop[_ngcontent-%COMP%]{background:#000000b3}[data-theme="dark"][_nghost-%COMP%]   .modal[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .modal[_ngcontent-%COMP%]{background:#1e293b}[data-theme="dark"][_nghost-%COMP%]   .modal-header[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .modal-header[_ngcontent-%COMP%]{border-bottom-color:#475569}[data-theme="dark"][_nghost-%COMP%]   .modal-header[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .modal-header[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .modal-close[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .modal-close[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .modal-close[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .modal-close[_ngcontent-%COMP%]:hover{background:#334155}[data-theme="dark"][_nghost-%COMP%]   .modal-option[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .modal-option[_ngcontent-%COMP%]:hover{background:#334155}[data-theme="dark"][_nghost-%COMP%]   .modal-option.selected[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .modal-option.selected[_ngcontent-%COMP%]{background:#03a79126}[data-theme="dark"][_nghost-%COMP%]   .option-name[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .option-name[_ngcontent-%COMP%]{color:#e2e8f0}[data-theme="dark"][_nghost-%COMP%]   .option-tenant[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .option-tenant[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .shopping-list-card[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .shopping-list-card[_ngcontent-%COMP%]{background:#1e293b}[data-theme="dark"][_nghost-%COMP%]   .filter-section[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .filter-section[_ngcontent-%COMP%]{border-bottom-color:#475569}[data-theme="dark"][_nghost-%COMP%]   .toggle-text[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .toggle-text[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .item-row[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .item-row[_ngcontent-%COMP%]:hover{background:#334155}[data-theme="dark"][_nghost-%COMP%]   .item-name[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .item-name[_ngcontent-%COMP%]{color:#e2e8f0}[data-theme="dark"][_nghost-%COMP%]   .item-name.strikethrough[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .item-name.strikethrough[_ngcontent-%COMP%]{color:#cbd5e1}[data-theme="dark"][_nghost-%COMP%]   .item-quantity[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .item-quantity[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .no-list-state[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .no-list-state[_ngcontent-%COMP%]{background:#1e293b}[data-theme="dark"][_nghost-%COMP%]   .no-list-state[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .no-list-state[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{color:#e2e8f0}[data-theme="dark"][_nghost-%COMP%]   .no-list-state[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .no-list-state[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .no-list-icon[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .no-list-icon[_ngcontent-%COMP%]{color:#cbd5e1}[data-theme="dark"][_nghost-%COMP%]   .spinner[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .spinner[_ngcontent-%COMP%]{border-color:#475569;border-top-color:#03a791}']});};var _o=3,co=2e3,Jt=1024*1024,Ur={Photo:10*Jt,Audio:20*Jt,Video:100*Jt},Qt={"image/jpeg":"Photo","image/png":"Photo","image/webp":"Photo","image/heic":"Photo","audio/mpeg":"Audio","audio/mp4":"Audio","audio/webm":"Audio","audio/ogg":"Audio","audio/wav":"Audio","video/mp4":"Video","video/quicktime":"Video","video/webm":"Video"},Vr={"image/jpg":"image/jpeg","image/pjpeg":"image/jpeg","audio/mp3":"audio/mpeg","audio/x-m4a":"audio/mp4","audio/m4a":"audio/mp4","audio/x-wav":"audio/wav","audio/wave":"audio/wav","audio/vnd.wave":"audio/wav"},Dr={jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",webp:"image/webp",heic:"image/heic",heif:"image/heic",mp3:"audio/mpeg",m4a:"audio/mp4",aac:"audio/mp4",weba:"audio/webm",ogg:"audio/ogg",oga:"audio/ogg",opus:"audio/ogg",wav:"audio/wav",mp4:"video/mp4",m4v:"video/mp4",mov:"video/quicktime",webm:"video/webm"};function Gt(n){let t=(n.type||"").split(";")[0].trim().toLowerCase();return t||(t=Dr[(n.name.split(".").pop()||"").toLowerCase()]??""),t=Vr[t]??t,Qt[t]?t:null;}function so(n){return Qt[n];}function po(n){let t=Gt(n);return t?n.size<=0?"file_empty":n.size>Ur[Qt[t]]?"file_too_large":null:"file_type_unsupported";}function go(n){let t=n;return typeof t?.error?.error=="string"?t.error.error:null;}
1var Ze=class extends Error{constructor(e,i){super(e);this.code=e;this.fileIndex=i;}},_t=class n{http=v(kn);portal=v(ee);baseUrl=`${gt.apiUrl}/api/client-portal/feedback`;auth(){return{headers:new yn({Authorization:`Bearer ${this.portal.getToken()}`})};}getReportable(){return this.http.get(`${this.baseUrl}/reportable-appointments`,this.auth());}getMine(){return this.http.get(this.baseUrl,this.auth());}createDraft(t){return pt(this.http.post(`${this.baseUrl}/drafts`,t,this.auth()));}submit(t){return pt(this.http.post(`${this.baseUrl}/${t}/submit`,{},this.auth()));}upload(t,e,i){return new Promise((l,s)=>{let T=new FormData();for(let[b,L]of Object.entries(t.fields))T.append(b,L);T.append("file",e);let f=new XMLHttpRequest();f.open("POST",t.url),f.upload.onprogress=b=>i(b.loaded),f.onload=()=>{if(f.status>=200&&f.status<300){i(e.size),l();return;}s(new Ze(Hr(f.status,f.responseText),t.index));},f.onerror=()=>s(new Ze("upload_failed",t.index)),f.ontimeout=()=>s(new Ze("upload_failed",t.index)),f.send(T);});}static ɵfac=function(e){return new(e||n)();};static ɵprov=Ot({token:n,factory:n.ɵfac,providedIn:"root"});};function Hr(n,t){let e=/<Code>([^<]+)<\/Code>/.exec(t)?.[1]??"";return e==="EntityTooLarge"?"file_too_large":e==="EntityTooSmall"?"file_empty":n===403&&/expired/i.test(t)?"upload_expired":"upload_failed";}function Xr(n,t){if(n&1&&(C(0,"span",29),d(1),P()),n&2){let e=c();r(),M(e.displayName);}}function Wr(n,t){if(n&1){let e=x();C(0,"div",30),$(1,"i",32),C(2,"p",33),_(3,2),P(),C(4,"p",34),_(5,3),P(),C(6,"button",35),Z("click",function(){O(e);let l=c();return u(l.close.emit());}),_(7,4),P()();}}function Yr(n,t){if(n&1){let e=x();C(0,"div",31),$(1,"i",36),C(2,"p"),d(3),P(),C(4,"button",37),Z("click",function(){O(e);let l=c();return u(l.close.emit());}),_(5,5),P()();}if(n&2){let e=c();r(3),M(e.error());}}function Br(n,t){if(n&1){let e=x();C(0,"div",50),$(1,"i",61),C(2,"span",62),d(3),P(),C(4,"span",63),d(5),P(),C(6,"button",64),Z("click",function(){let l=O(e).$index,s=c(2);return u(s.removeFile(l));}),$(7,"i",65),P()();}if(n&2){let e=t.$implicit,i=c(2);r(),be(vn("bi ",i.fileIcon(e))),r(2),M(e.name),r(2),M(i.fileSize(e)),r(),ne("disabled",i.busy());}}function jr(n,t){if(n&1){let e=x();C(0,"button",66),Z("click",function(){O(e),c();let l=Ln(25);return u(l.click());}),$(1,"i",67),C(2,"span"),_(3,16),P()();}if(n&2){let e=c(2);ne("disabled",e.busy());}}function Kr(n,t){n&1&&(C(0,"p",58),d(1),P()),n&2&&(r(),M(t));}function qr(n,t){if(n&1&&(C(0,"div",68),$(1,"div",69),P(),C(2,"p",70),_(3,17),P()),n&2){let e=c(2);ge("aria-valuenow",e.progress()),r(),Te("width",e.progress(),"%"),r(2),ae(e.progress()),re(3);}}function Jr(n,t){n&1&&(C(0,"span"),_(1,18),P());}function Qr(n,t){n&1&&(C(0,"span"),_(1,19),P());}function Zr(n,t){if(n&1&&($(0,"span",71),p(1,Jr,2,0,"span")(2,Qr,2,0,"span")),n&2){let e=c(2);r(),g(e.phase()==="sending"?1:2);}}function el(n,t){n&1&&($(0,"i",72),C(1,"span"),_(2,20),P());}function tl(n,t){if(n&1){let e=x();C(0,"p",38),_(1,6),P(),C(2,"div",39)(3,"button",40),Z("click",function(){O(e);let l=c();return u(l.kind.set("Praise"));}),$(4,"i",41),C(5,"span",42),_(6,7),P(),C(7,"span",43),_(8,8),P()(),C(9,"button",44),Z("click",function(){O(e);let l=c();return u(l.kind.set("Complaint"));}),$(10,"i",45),C(11,"span",42),_(12,9),P(),C(13,"span",43),_(14,10),P()()(),C(15,"label",46),_(16,11),P(),C(17,"textarea",47),Z("input",function(l){O(e);let s=c();return u(s.onText(l));}),P(),C(18,"div",48),d(19),P(),C(20,"div",49),X(21,Br,8,6,"div",50,xn),p(23,jr,4,1,"button",51),C(24,"input",52,0),Z("change",function(l){O(e);let s=c();return u(s.onPick(l));}),P(),C(26,"p",53),_(27,12),P()(),C(28,"label",54)(29,"input",55),Z("change",function(l){O(e);let s=c();return u(s.consent.set(l.target.checked));}),P(),C(30,"span")(31,"span",56),_(32,13),P(),C(33,"span",57),_(34,14),P()()(),p(35,Kr,2,1,"p",58),p(36,qr,4,4),C(37,"button",59),Z("click",function(){O(e);let l=c();return u(l.send());}),p(38,Zr,3,1)(39,el,3,0),P(),C(40,"p",60),_(41,15),R(42,"date"),P();}if(n&2){let e,i=c();r(2),ge("aria-label",i.headingLabel),r(),z("selected",i.kind()==="Praise"),ne("disabled",i.busy()),ge("aria-checked",i.kind()==="Praise"),r(6),z("selected",i.kind()==="Complaint"),ne("disabled",i.busy()),ge("aria-checked",i.kind()==="Complaint"),r(8),ne("value",i.text())("disabled",i.busy()),ge("maxlength",i.textMax),r(),z("over",i.textLength()>i.textMax),r(),le("",i.textLength()," / ",i.textMax),r(2),W(i.files()),r(2),g(i.files().length<i.maxFiles?23:-1),r(6),ne("checked",i.consent())("disabled",i.busy()),r(6),g((e=i.error())?35:-1,e),r(),g(i.phase()==="uploading"?36:-1),r(),ne("disabled",!i.canSend()),r(),g(i.busy()?38:39),r(4),ae(y(42,24,i.appointment.deadline,"d MMM y")),re(41);}}var nl=new Set(["appointment_not_found","appointment_not_reportable","appointment_not_started","window_closed","already_reported","already_submitted"]),zt
1=class n{appointment;businessName;close=new Re();changed=new Re();feedback=v(_t);localeId=v(He);maxFiles=_o;textMax=co;kind=S(null);text=S("");files=S([]);consent=S(!1);phase=S("form");progress=S(0);error=S(null);closedForGood=S(!1);busy=q(()=>this.phase()==="uploading"||this.phase()==="sending");textLength=q(()=>this.text().length);canSend=q(()=>!this.busy()&&!this.closedForGood()&&this.kind()!==null&&this.consent()&&(this.text().trim().length>0||this.files().length>0)&&this.textLength()<=this.textMax);headingLabel="Tell Vitena";closeLabel="Close";get displayName(){return this.businessName||this.appointment.tenantName||"";}onPick(t){let e=t.target,i=Array.from(e.files??[]);e.value="",this.error.set(null);let l=[...this.files()];for(let s of i){if(l.length>=this.maxFiles){this.error.set(mt("too_many_files"));break;}let T=po(s);if(T){this.error.set(`${s.name}: ${mt(T)}`);continue;}l.push(s);}this.files.set(l);}removeFile(t){this.busy()||this.files.update(e=>e.filter((i,l)=>l!==t));}mediaKind(t){return so(Gt(t));}fileIcon(t){switch(this.mediaKind(t)){case"Photo":return"bi-image";case"Audio":return"bi-mic";default:return"bi-camera-video";}}fileSize(t){let e=t.size/1048576;return e>=1?`${e.toFixed(1)} MB`:`${Math.max(1,Math.round(t.size/1024))} KB`;}onText(t){this.text.set(t.target.value);}async send(){if(!this.canSend())return;let t=this.files(),e=this.text().trim();this.error.set(null),this.progress.set(0),this.phase.set(t.length>0?"uploading":"sending");try{let i=await this.feedback.createDraft({tenantId:this.appointment.tenantId,appointmentId:this.appointment.appointmentId,kind:this.kind(),text:e||null,consent:this.consent(),language:this.localeId.split("-")[0],files:t.map(T=>({contentType:Gt(T),sizeBytes:T.size}))}),l=t.reduce((T,f)=>T+f.size,0),s=t.map(()=>0);for(let T of i.uploads)await this.feedback.upload(T,t[T.index],f=>{s[T.index]=f,this.progress.set(Math.min(100,Math.round(s.reduce((b,L)=>b+L,0)/l*100)));});this.phase.set("sending"),await this.feedback.submit(i.reportId),this.phase.set("done"),this.changed.emit();}catch(i){if(this.phase.set("form"),i instanceof Ze){let s=t[i.fileIndex]?.name;this.error.set(s?`${s}: ${mt(i.code)}`:mt(i.code));return;}let l=go(i)??"unknown";this.error.set(mt(l)),nl.has(l)&&(this.closedForGood.set(!0),this.changed.emit());}}requestClose(){this.busy()||this.close.emit();}onEscape(){this.requestClose();}onBackdrop(t){t.target.classList.contains("fb-overlay")&&this.requestClose();}static ɵfac=function(e){return new(e||n)();};static ɵcmp=H({type:n,selectors:[["app-portal-feedback-sheet"]],hostBindings:function(e,i){e&1&&h("keydown.escape",function(){return i.onEscape();},ye);},inputs:{appointment:"appointment",businessName:"businessName"},outputs:{close:"close",changed:"changed"},decls:16,vars:9,consts:()=>{let t;t="Tell Vitena";let e;e="Thank you \u2014 your report has reached Vitena.";let i;i="We read every report ourselves. It is never published, and it is not passed on to the clinic automatically.";let l;l="Done";let s;s="Done";let T;T="Dates, names and details help us most.";let f;f="Tell us how this appointment went. Only the Vitena team reads it.";let b;b="Praise";let L;L="It went well";let w;w="Complaint";let J;J="Something went wrong";let G;G="What happened?";let D;D="Up to 3 files. Photos up to 10 MB, audio up to 20 MB, videos up to 100 MB (about a minute).";let Y;Y="I'm sharing this report and its files with Vitena for review.";let oe;oe="It is never published and not shared with the clinic automatically.";let ie;ie="You can send this until "+"\uFFFD0\uFFFD"+".";let B;B="Remove file";let ce;ce="Add a photo, voice recording or video";let se;se="Uploading\u2026 "+"\uFFFD0\uFFFD"+"%. Please keep this page open.";let F;F="Sending\u2026";let Oe;Oe="Uploading\u2026";let ue;return ue="Send to Vitena",[["picker",""],t,e,i,l,s,f,b,L,w,J,G,D,Y,oe,ie,ce,se,F,Oe,ue,[1,"fb-overlay",3,"click"],["role","dialog","aria-modal","true",1,"fb-sheet"],["aria-hidden","true",1,"fb-grabber"],["type","button",1,"fb-close",3,"click","disabled"],[1,"bi","bi-x-lg"],[1,"fb-head"],[1,"fb-title"],[1,"fb-sub"],[1,"fb-business"],["role","status",1,"fb-done"],["role","alert",1,"fb-closed"],["aria-hidden","true",1,"bi","bi-check-circle-fill"],[1,"fb-done-title"],[1,"fb-done-text"],["type","button",1,"fb-primary",3,"click"],["aria-hidden","true",1,"bi","bi-info-circle"],["type","button",1,"fb-secondary",3,"click"],[1,"fb-lead"],["role","radiogroup",1,"fb-kinds"],["type","button","role","radio",1,"fb-kind",3,"click","disabled"],["aria-hidden","true",1,"bi","bi-hand-thumbs-up"],[1,"fb-kind-title"],[1,"fb-kind-hint"],["type","button","role","radio",1,"fb-kind","complaint",3,"click","disabled"],["aria-hidden","true",1,"bi","bi-exclamation-circle"],["for","fb-text",1,"fb-label"],["id","fb-text","rows","4","placeholder",T,1,"fb-textarea",3,"input","value","disabled"],[1,"fb-counter"],[1,"fb-files"],[1,"fb-file"],["type","button",1,"fb-add",3,"disabled"],["type","file","multiple","","accept","image/*,audio/*,video/*",1,"fb-picker",3,"change"],[1,"fb-hint"],[1,"fb-consent"],["type","checkbox",3,"change","checked","disabled"],[1,"fb-consent-main"],[1,"fb-consent-note"],["role","alert",1,"fb-error"],["type","button",1,"fb-primary",3,"click","disabled"],[1,"fb-deadline"],["aria-hidden","true"],[1,"fb-file-name"],[1,"fb-file-size"],["type","button","aria-label",B,1,"fb-file-remove",3,"click","disabled"],[1,"bi","bi-x"],["type","button",1,"fb-add",3,"click","disabled"],["aria-hidden","true",1,"bi","bi-paperclip"],["role","progressbar","aria-valuemin","0","aria-valuemax","100",1,"fb-progress"],[1,"fb-progress-bar"],[1,"fb-progress-text"],["aria-hidden","true",1,"spinner-border","spinner-border-sm"],["aria-hidden","true",1,"bi","bi-send"]];},template:function(e,i){e&1&&(C(0,"div",21),Z("click",function(s){return i.onBackdrop(s);}),C(1,"div",22),$(2,"div",23),C(3,"button",24),Z("click",function(){return i.requestClose();}),$(4,"i",25),P(),C(5,"div",26)(6,"h2",27),_(7,1),P(),C(8,"p",28),p(9,Xr,2,1,"span",29),C(10,"span"),d(11),R(12,"date"),P()()(),p(13,Wr,8,0,"div",30)(14,Yr,6,1,"div",31)(15,tl,43,27),P()()),e&2&&(r(),ge("aria-label",i.headingLabel),r(2),ne("disabled",i.busy()),ge("aria-label",i.closeLabel),r(6),g(i.displayName?9:-1),r(2),M(y(12,6,i.appointment.appointmentAt,"d MMM y, HH:mm")),r(2),g(i.phase()==="done"?13:i.closedForGood()?14:15));},dependencies:[j,Xe],styles:['.fb-overlay[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:1050;background:#0f172a73;display:flex;align-items:flex-end;justify-content:center;animation:_ngcontent-%COMP%_fb-fade .15s ease}@keyframes _ngcontent-%COMP%_fb-fade{0%{opacity:0}
1to{opacity:1}}.fb-sheet[_ngcontent-%COMP%]{position:relative;width:100%;max-width:540px;background:var(--color-bg);color:var(--color-text);border-radius:18px 18px 0 0;padding:20px 22px calc(24px + env(safe-area-inset-bottom));box-shadow:0 -6px 24px #0000002e;max-height:92vh;overflow-y:auto;animation:_ngcontent-%COMP%_fb-slide-up .22s cubic-bezier(.16,1,.3,1)}@keyframes _ngcontent-%COMP%_fb-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media(min-width:640px){.fb-overlay[_ngcontent-%COMP%]{align-items:center;padding:24px}.fb-sheet[_ngcontent-%COMP%]{border-radius:16px;animation:fb-pop .18s ease}.fb-grabber[_ngcontent-%COMP%]{display:none}@keyframes fb-pop{0%{transform:scale(.96);opacity:0}to{transform:scale(1);opacity:1}}}.fb-grabber[_ngcontent-%COMP%]{width:40px;height:4px;border-radius:var(--radius-full);background:var(--color-gray-300);margin:0 auto 14px}.fb-close[_ngcontent-%COMP%]{position:absolute;top:14px;right:14px;width:32px;height:32px;border:none;border-radius:8px;cursor:pointer;background:var(--color-gray-100);color:var(--color-text-muted);display:flex;align-items:center;justify-content:center;font-size:14px}.fb-close[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-gray-200);color:var(--color-text)}.fb-close[_ngcontent-%COMP%]:disabled{opacity:.4;cursor:default}.fb-head[_ngcontent-%COMP%]{padding-right:36px;margin-bottom:12px}.fb-title[_ngcontent-%COMP%]{font-size:20px;font-weight:700;margin:0;color:var(--color-text)}.fb-sub[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:4px 10px;margin:4px 0 0;font-size:13px;color:var(--color-text-muted)}.fb-business[_ngcontent-%COMP%]{font-weight:600;color:var(--color-text)}.fb-lead[_ngcontent-%COMP%]{font-size:14px;line-height:1.5;color:var(--color-text-muted);margin:0 0 14px}.fb-kinds[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}.fb-kind[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;gap:2px;padding:14px 10px;border-radius:12px;cursor:pointer;text-align:center;background:var(--color-surface);border:1.5px solid var(--color-gray-200);color:var(--color-text);transition:border-color .15s,background .15s}.fb-kind[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{font-size:22px;color:var(--color-text-muted);margin-bottom:2px}.fb-kind-title[_ngcontent-%COMP%]{font-weight:700;font-size:15px}.fb-kind-hint[_ngcontent-%COMP%]{font-size:12px;color:var(--color-text-muted)}.fb-kind[_ngcontent-%COMP%]:hover:not(:disabled){border-color:var(--color-portal)}.fb-kind.selected[_ngcontent-%COMP%]{border-color:var(--color-portal);background:rgba(var(--color-portal-rgb),.08)}.fb-kind.selected[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{color:var(--color-portal)}.fb-kind.complaint[_ngcontent-%COMP%]:hover:not(:disabled){border-color:var(--color-error)}.fb-kind.complaint.selected[_ngcontent-%COMP%]{border-color:var(--color-error);background:rgba(var(--color-error-rgb),.08)}.fb-kind.complaint.selected[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{color:var(--color-error)}.fb-kind[_ngcontent-%COMP%]:disabled{cursor:default}.fb-label[_ngcontent-%COMP%]{display:block;font-size:14px;font-weight:600;margin-bottom:6px;color:var(--color-text)}.fb-textarea[_ngcontent-%COMP%]{width:100%;resize:vertical;min-height:96px;padding:10px 12px;border-radius:10px;font:inherit;font-size:14px;line-height:1.5;background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-gray-300)}.fb-textarea[_ngcontent-%COMP%]:focus{outline:none;border-color:var(--color-portal);box-shadow:0 0 0 3px rgba(var(--color-portal-rgb),.15)}.fb-counter[_ngcontent-%COMP%]{text-align:right;font-size:12px;color:var(--color-text-muted);margin:4px 0 12px}.fb-counter.over[_ngcontent-%COMP%]{color:var(--color-error);font-weight:600}.fb-files[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}.fb-file[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;padding:9px 10px 9px 12px;border-radius:10px;background:var(--color-surface);border:1px solid var(--color-gray-200)}.fb-file[_ngcontent-%COMP%] > i[_ngcontent-%COMP%]{font-size:18px;color:var(--color-portal);flex:0 0 auto}
1.fb-file-name[_ngcontent-%COMP%]{flex:1;min-width:0;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fb-file-size[_ngcontent-%COMP%]{font-size:12px;color:var(--color-text-muted);flex:0 0 auto}.fb-file-remove[_ngcontent-%COMP%]{flex:0 0 auto;width:28px;height:28px;border:none;border-radius:6px;cursor:pointer;background:transparent;color:var(--color-text-muted);font-size:18px;display:flex;align-items:center;justify-content:center}.fb-file-remove[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-gray-100);color:var(--color-error)}.fb-add[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;border-radius:10px;cursor:pointer;font-size:14px;font-weight:600;background:transparent;color:var(--color-portal);border:1.5px dashed rgba(var(--color-portal-rgb),.5)}.fb-add[_ngcontent-%COMP%]:hover:not(:disabled){background:rgba(var(--color-portal-rgb),.06)}.fb-add[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:default}.fb-picker[_ngcontent-%COMP%]{display:none}.fb-hint[_ngcontent-%COMP%]{font-size:12px;line-height:1.45;color:var(--color-text-muted);margin:0}.fb-consent[_ngcontent-%COMP%]{display:flex;align-items:flex-start;gap:10px;cursor:pointer;margin-bottom:14px}.fb-consent[_ngcontent-%COMP%]   input[_ngcontent-%COMP%]{width:18px;height:18px;margin-top:2px;flex:0 0 auto;accent-color:var(--color-portal)}.fb-consent-main[_ngcontent-%COMP%]{display:block;font-size:14px;color:var(--color-text);line-height:1.4}.fb-consent-note[_ngcontent-%COMP%]{display:block;font-size:12px;color:var(--color-text-muted);margin-top:2px;line-height:1.4}.fb-error[_ngcontent-%COMP%]{font-size:13px;line-height:1.45;margin:0 0 12px;padding:10px 12px;border-radius:10px;color:var(--color-error);background:rgba(var(--color-error-rgb),.08)}.fb-progress[_ngcontent-%COMP%]{height:8px;border-radius:var(--radius-full);background:var(--color-gray-200);overflow:hidden}.fb-progress-bar[_ngcontent-%COMP%]{height:100%;background:var(--color-portal);transition:width .2s ease}.fb-progress-text[_ngcontent-%COMP%]{font-size:12px;color:var(--color-text-muted);margin:6px 0 12px}.fb-primary[_ngcontent-%COMP%], .fb-secondary[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:13px 20px;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;border:none}.fb-primary[_ngcontent-%COMP%]{background:var(--color-portal);color:var(--color-bg)}.fb-primary[_ngcontent-%COMP%]:hover:not(:disabled){filter:brightness(1.06)}.fb-primary[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:default}.fb-secondary[_ngcontent-%COMP%]{background:var(--color-gray-100);color:var(--color-text)}.fb-deadline[_ngcontent-%COMP%]{text-align:center;font-size:12px;color:var(--color-text-muted);margin:10px 0 0}.spinner-border[_ngcontent-%COMP%]{width:1rem;height:1rem}.fb-done[_ngcontent-%COMP%], .fb-closed[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:10px 0 0}.fb-done[_ngcontent-%COMP%] > i[_ngcontent-%COMP%]{font-size:40px;color:var(--color-success)}.fb-closed[_ngcontent-%COMP%] > i[_ngcontent-%COMP%]{font-size:32px;color:var(--color-text-muted)}.fb-done-title[_ngcontent-%COMP%]{font-size:16px;font-weight:700;margin:0;color:var(--color-text)}.fb-done-text[_ngcontent-%COMP%], .fb-closed[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{font-size:14px;line-height:1.5;margin:0 0 8px;color:var(--color-text-muted)}[data-theme="dark"][_nghost-%COMP%]   .fb-sheet[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .fb-sheet[_ngcontent-%COMP%]{background:var(--color-surface);box-shadow:0 -6px 24px #00000080}[data-theme="dark"][_nghost-%COMP%]   .fb-kind[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .fb-kind[_ngcontent-%COMP%], [data-theme="dark"][_nghost-%COMP%]   .fb-file[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .fb-file[_ngcontent-%COMP%]{background:var(--color-bg)}[data-theme="dark"][_nghost-%COMP%]   .fb-textarea[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .fb-textarea[_ngcontent-%COMP%]{background:var(--color-bg)}']});};function mt(n){switch(n){case"consent_required":return"Please tick the box so Vitena can review your report.";case"kind_invalid":return"Choose whether this is praise or a complaint.";case"content_required":return"Write a few words or add a file.";case"text_too_long":return"Your message can be up to 2,000 characters.";case"too_many_files":return"You can add up to 3 files.";case"file_type_unsupported":return"This file type isn't supported. Send a photo, voice recording or video.";case"file_too_large":return"This file is too large. Photos can be up to 10 MB, audio up to 20 MB and videos up to 100 MB.";case"file_empty":return"This file is empty.";case"appointment_not_found":return"We couldn't find this appointment in your account.";case"appointment_not_reportable":return"This appointment can't be reported.";case"appointment_not_started":return"You can send a report once the appointment time has passed.";case"window_closed":return"Reports can be sent up to 30 days after the appointment, and that time has passed.";case"already_reported":case"already_submitted":return"You've already sent a report about this appointment.";case"draft_expired":case"upload_expired":return"The upload took too long and its link expired. Please send it again.";case"upload_incomplete":case"upload_failed":return"A file didn't finish uploading. Check your connection and try again.";case"file_rejected":return"A file didn't pass our check and was removed. Please choose it again and resend.";case"storage_unavailable":return"We can't accept files right now. Please try again in a few minutes.";case"report_not_found":return"This report couldn't be found. Please start again.";default:return"Something went wrong. Please try again.";}}var ol=n=>["/portal/session",n],il=n=>["/portal/meal-plans",n],al=(n,t)=>t.appointmentId,rl=(n,t)=>
1t.appointment==null?null:t.appointment.id,ll=(n,t)=>t.id;function _l(n,t){if(n&1){let e=x();o(0,"button",32),h("click",function(){O(e);let l=c();return u(l.book());}),o(1,"span",33),E(),o(2,"svg",34),m(3,"path",35),a()(),N(),o(4,"span",36)(5,"span",37),_(6,1),a(),o(7,"span",38),_(8,2),a()(),E(),o(9,"svg",39),m(10,"path",40),a()();}}function cl(n,t){n&1&&(o(0,"div",41),m(1,"i",44),o(2,"span"),_(3,3),a()());}function sl(n,t){if(n&1){let e=x();o(0,"div",46)(1,"div",47)(2,"span",48),d(3),a(),o(4,"span",49),d(5),R(6,"date"),a()(),o(7,"button",50),h("click",function(l){let s=O(e).$implicit,T=c(3);return u(T.openFeedback(s,s.tenantName,l));}),m(8,"i",44),o(9,"span"),_(10,5),a()()();}if(n&2){let e=t.$implicit,i=c(3);r(3),M(e.tenantName),r(2),le("",y(6,3,e.appointmentAt,"d MMM y, HH:mm")," \xB7 ",i.getStatusLabel(e.status));}}function dl(n,t){if(n&1&&(o(0,"div",42)(1,"div",45),_(2,4),a(),X(3,sl,11,6,"div",46,al),a()),n&2){let e=c(2);r(3),W(e.reportableElsewhere());}}function pl(n,t){n&1&&m(0,"app-find-dietitian-cta");}function gl(n,t){n&1&&(o(0,"p"),_(1,7),a());}function ml(n,t){if(n&1&&(o(0,"div",43)(1,"div",51),E(),o(2,"svg",34),m(3,"path",52),a()(),N(),o(4,"h3"),_(5,6),a(),p(6,pl,1,0,"app-find-dietitian-cta")(7,gl,2,0,"p"),a()),n&2){let e=c(2);r(6),g(e.isStandalone()&&e.featureFlags.consumerDirectory?6:7);}}function Cl(n,t){if(n&1&&m(0,"img",71),n&2){let e=c().$implicit;A("src",e.tenant==null?null:e.tenant.logoUrl,te);}}function Pl(n,t){n&1&&(m(0,"i",86),o(1,"span"),_(2,10),a());}function Ol(n,t){if(n&1&&(m(0,"i",87),o(1,"span"),_(2,11),a(),o(3,"span",88),d(4),R(5,"number"),a()),n&2){let e=c();r(4),le("",y(5,2,e.amount,"1.2-2")," ",e.currency);}}function ul(n,t){if(n&1){let e=x();o(0,"div",76)(1,"button",85),h("click",function(){let l=O(e),s=c(2).$implicit,T=c(3);return T.paymentBusiness.set(s.tenant==null?null:s.tenant.businessName),u(T.paymentPrepayment.set(l));}),p(2,Pl,3,0)(3,Ol,6,5),a()();}if(n&2){let e=t;r(),z("is-verifying",e.alreadyNotified),r(),g(e.alreadyNotified?2:3);}}function Ml(n,t){if(n&1&&(o(0,"div",76)(1,"a",89)(2,"div",90),E(),o(3,"svg",34),m(4,"path",91),a()(),N(),o(5,"div",92)(6,"span",93),d(7),a(),o(8,"span",94),d(9),a()(),E(),o(10,"svg",95),m(11,"path",40),a()()()),n&2){let e=c(2).$implicit,i=c(3);r(),A("routerLink",fe(3,ol,e.appointment==null?null:e.appointment.id)),r(6),M(e.sessionNote.title||i.sessionNotesDefaultTitle),r(2),M(i.getNotesPreview(e.sessionNote.content));}}function El(n,t){n&1&&(o(0,"span",102),_(1,13),a());}function Tl(n,t){if(n&1){let e=x();o(0,"button",99),h("click",function(){let l=O(e).$implicit,s=c(6);return u(s.downloadDocument(l));}),E(),o(1,"svg",34),m(2,"path",100),a(),N(),o(3,"span",101),d(4),a(),p(5,El,2,0,"span",102),o(6,"span",103),d(7),a()();}if(n&2){let e=t.$implicit;r(4),M(e.displayName),r(),g(e.isInvoice?5:-1),r(2),M(e.formattedFileSize);}}function fl(n,t){if(n&1&&(o(0,"div",76)(1,"div",96)(2,"span",97),_(3,12),a(),X(4,Tl,8,3,"button",98,ll),a()()),n&2){let e=c(2).$implicit;r(4),W(e.documents);}}function hl(n,t){if(n&1&&(o(0,"div",76)(1,"a",104)(2,"div",105)(3,"div",106),E(),o(4,"svg",34),m(5,"path",107),a()(),N(),o(6,"div",108)(7,"span",109),_(8,14),a(),o(9,"span",110),d(10),a()(),E(),o(11,"svg",111),m(12,"path",40),a()(),N(),o(13,"div",112)(14,"div",113)(15,"div",114),E(),o(16,"svg",115),m(17,"path",116),a()(),N(),o(18,"div",117),d(19),R(20,"number"),a(),o(21,"div",118),_(22,15),a()(),o(23,"div",119)(24,"div",114),E(),o(25,"svg",115),m(26,"path",120),a()(),N(),o(27,"div",117),d(28),R(29,"number"),o(30,"span",121),d(31,"g"),a()(),o(32,"div",118),_(33,16),a()(),o(34,"div",122)(35,"div",114),E(),o(36,"svg",115),m(37,"path",123),a()(),N(),o(38,"div",117),d(39),R(40,"number"),o(41,"span",121),d(42,"g"),a()(),o(43,"div",118),_(44,17),a()(),o(45,"div",124)(46,"div",114),E(),o(47,"svg",115),m(48,"path",125),a()(),N(),o(49,"div",117),d(50),R(51,"number"),o(52,"span",121),d(53,"g"),a()(),o(54,"div",118),_(55,18),a()()()()()),n&2){let e=c(2).$implicit;r(),A("routerLink",fe(18,il,e.mealPlan.id)),r(9),M(e.mealPlan.name),r(9),M(y(20,6,e.mealPlan.totalCalories,"1.0-0")),r(9),M(y(29,9,e.mealPlan.totalProtein,"1.0-0")),r(11),M(y(40,12,e.mealPlan.totalCarbs,"1.0-0")),r(11),M(y(51,15,e.mealPlan.totalFat,"1.0-0"));}}function Sl(n,t){if(n&1&&(o(0,"p",129)(1,"span",130),_(2,19),a(),d(3),a()),n&2){let e=c(3).$implicit;r(3),I(" ",e.appointment==null?null:e.appointment.cancellationReason," ");}}function Nl(n,t){if(n&1&&(o(0,"div",76)(1,"div",126)(2,"div",127),E(),o(3,"svg",34),m(4,"path",128),a(),N(),o(5,"span"),d(6),a()(),p(7,Sl,4,1,"p",129),a()()),n&2){let e=c(2).$implicit,i=c(3);r(6),M(i.cancelledByLabel(e)),r(),g(e.appointment!=null&&e.appointment.cancellationReason?7:-1);}}function bl(n,t){if(n&1&&(o(0,"p",78),m(1,"i",131),o(2,"span"),d(3),a()()),n&2){let e=c(2).$implicit,i=c(3);r(3),le("",i.channelName(e.appointment==null?null:e.appointment.onlineChannel)," \xB7 ",i.callHint);}}function xl(n,t){if(n&1&&(o(0,"a",79),E(),o(1,"svg",34),m(2,"path",132),a(),N(),o(3,"span"),_(4,20),a()()),n&2){let e=c(2).$implicit;A("href",e.appointment==null?null:e.appointment.onlineMeetingLink,te);}}function Al(n,t){if(n&1&&(o(0,"a",80),E(),o(1,"svg",34),m(2,"path",133),a(),N(),o(3,"span"),_(4,21),a()()),n&2){let e=c(2).$implicit,i=c(3);A("href",i.getBookingUrl(e.tenant==null?null:e.tenant.profileSlug),te);}}function Ll(n,t){if(n&1){let e=x();o(0,"button",50),h("click",function(l){let s=O(e),T=c(2).$implicit,f=c(3);return u(f.openFeedback(s,T.tenant==null?null:T.tenant.businessName,l));}),m(1,"i",44),o(2,"span"),_(3,22),a()();}}function vl(n,t){n&1&&(o(0,"span",82),m(1,"i",134),o(2,"span"),_(3,23),a()());}function Rl(n,t){if(n&1){let e=x();o(0,"button",135),h("click",function(l){O(e);let s=c(2).$implicit,T=c(3);return u(T.rescheduleVisit(s,l));}),E(),o(1,"svg",34),m(2,"path",136),a(),N(),o(3,"span"),_(4,24),a()();}if(n&2){let e=c(2).$implicit,i=c(3);A("disabled",i.reschedulingId()===(e.appointment==null?null:e.appointment.i
1d));}}function yl(n,t){if(n&1){let e=x();o(0,"button",137),h("click",function(l){O(e);let s=c(2).$implicit,T=c(3);return u(T.cancelVisit(s,l));}),E(),o(1,"svg",34),m(2,"path",128),a(),N(),o(3,"span"),_(4,25),a()();}if(n&2){let e=c(2).$implicit,i=c(3);A("disabled",i.cancellingId()===(e.appointment==null?null:e.appointment.id));}}function kl(n,t){if(n&1&&(o(0,"div",75),p(1,ul,4,3,"div",76),p(2,Ml,12,5,"div",76),p(3,fl,6,0,"div",76),p(4,hl,56,20,"div",76),p(5,Nl,8,2,"div",76),o(6,"div",77),p(7,bl,4,2,"p",78),p(8,xl,5,1,"a",79),p(9,Al,5,1,"a",80),p(10,Ll,4,0,"button",81)(11,vl,4,0,"span",82),p(12,Rl,5,1,"button",83),p(13,yl,5,1,"button",84),a()()),n&2){let e,i,l=c().$implicit,s=c(3);r(),g((e=(l.appointment==null?null:l.appointment.status)==="AwaitingPayment"&&(l.appointment==null?null:l.appointment.prepayment))?1:-1,e),r(),g(l.sessionNote?2:-1),r(),g(l.documents!=null&&l.documents.length?3:-1),r(),g(l.mealPlan?4:-1),r(),g(s.isCancelled(l.appointment==null?null:l.appointment.status)?5:-1),r(2),g(s.isCallChannel(l.appointment==null?null:l.appointment.onlineChannel)?7:-1),r(),g((l.appointment==null?null:l.appointment.meetingType)==="online"&&l.appointment!=null&&l.appointment.onlineMeetingLink&&!s.isCancelled(l.appointment==null?null:l.appointment.status)?8:-1),r(),g(l.tenant!=null&&l.tenant.profileSlug?9:-1),r(),g((i=s.reportableFor(l))?10:s.reportedFor(l)?11:-1,i),r(2),g(s.isCancellable(l.appointment==null?null:l.appointment.status)?12:-1),r(),g(s.isCancellable(l.appointment==null?null:l.appointment.status)?13:-1);}}function Il(n,t){if(n&1){let e=x();o(0,"div",56)(1,"div",57),h("click",function(){let l=O(e).$implicit,s=c(3);return u(s.toggleExpand(l.appointment==null?null:l.appointment.id));}),o(2,"div",58)(3,"span",59),d(4),a(),o(5,"span",60),d(6),a()(),o(7,"div",61)(8,"div",62)(9,"h3",63),d(10),a(),o(11,"span",64),d(12),a()(),o(13,"div",65)(14,"span",66),d(15),a(),o(16,"span",67),d(17,"|"),a(),o(18,"span",68),d(19),a(),o(20,"span",67),d(21,"|"),a(),o(22,"span",69),d(23),a(),o(24,"span",67),d(25,"|"),a(),o(26,"span",70),_(27,9),a()()(),p(28,Cl,1,1,"img",71),o(29,"div",72),E(),o(30,"svg",73),m(31,"path",74),a()()(),p(32,kl,14,11,"div",75),a();}if(n&2){let e=t.$implicit,i=c(3);z("expanded",i.expandedVisitId()===(e.appointment==null?null:e.appointment.id)),r(4),M(i.getDay(e.appointment==null?null:e.appointment.dateDisplay)),r(2),M(i.getMonth(e.appointment==null?null:e.appointment.dateDisplay)),r(4),M(e.appointment==null?null:e.appointment.title),r(),be("status-"+i.getStatusClass(e.appointment==null?null:e.appointment.status)),r(),I(" ",i.getStatusLabel(e.appointment==null?null:e.appointment.status)," "),r(3),M(e.tenant==null?null:e.tenant.businessName),r(4),M(e.appointment==null?null:e.appointment.dateDisplay),r(4),M(e.appointment==null?null:e.appointment.timeDisplay),r(4),ae(e.appointment==null?null:e.appointment.duration),re(27),r(),g(e.tenant!=null&&e.tenant.logoUrl?28:-1),r(),z("rotated",i.expandedVisitId()===(e.appointment==null?null:e.appointment.id)),r(3),g(i.expandedVisitId()===(e.appointment==null?null:e.appointment.id)?32:-1);}}function wl(n,t){if(n&1&&(o(0,"div",53),_(1,8),a(),o(2,"div",54),X(3,Il,33,16,"div",55,rl),a()),n&2){let e=c(2);r(),ae(e.visits().length)(e.visits().length),re(1),r(2),W(e.visits());}}function $l(n,t){if(n&1&&(p(0,cl,4,0,"div",41),p(1,dl,5,0,"div",42),p(2,ml,8,1,"div",43),p(3,wl,5,2)),n&2){let e=c();g(e.reportable().length>0?0:-1),r(),g(e.reportableElsewhere().length>0?1:-1),r(),g(e.visits().length===0?2:-1),r(),g(e.visits().length>0?3:-1);}}function Fl(n,t){if(n&1){let e=x();o(0,"app-portal-payment-sheet",138),h("close",function(){O(e);let l=c();return u(l.paymentPrepayment.set(null));}),a();}if(n&2){let e=c();A("prepayment",t)("businessName",e.paymentBusiness());}}function Gl(n,t){if(n&1){let e=x();o(0,"app-portal-feedback-sheet",139),h("changed",function(){O(e);let l=c();return u(l.loadFeedback());})("close",function(){O(e);let l=c();return u(l.feedbackTarget.set(null));}),a();}if(n&2){let e=c();A("appointment",t)("businessName",e.feedbackBusiness());}}var Ut=class n{isCallChannel=it;channelName=at;callHint=rt("WhatsApp");portalService=v(ee);localeId=v(He);notificationService=v(We);feedbackService=v(_t);loading=S(!0);visits=S([]);expandedVisitId=S(null);paymentPrepayment=S(null);paymentBusiness=S(void 0);featureFlags=Ke;isStandalone=q(()=>(this.portalService.currentUser()?.providers?.length??0)===0);hasActiveUpcoming=q(()=>this.visits().some(t=>
1t.appointment?.isUpcoming&&(t.appointment.status==="ConsultantApproved"||t.appointment.status==="AwaitingConsultantApproval")));book(){let t=this.portalService.currentUser()?.providers??[],e=this.localeId.split("-")[0];t.length===1&&t[0].profileSlug?window.location.href=`/${e}/p/${t[0].profileSlug}/book`:window.location.href=`/${e}/find`;}loadingMessage="Loading your visits...";sessionNotesDefaultTitle="Session Notes";downloadDocument(t){this.portalService.getDocumentDownloadUrl(t.id).subscribe({next:e=>window.open(e.downloadUrl,"_blank"),error:()=>{}});}ngOnInit(){this.loadVisitHistory(),this.loadFeedback();}reportable=S([]);myReports=S([]);feedbackTarget=S(null);feedbackBusiness=S(null);reportableElsewhere=q(()=>{let t=new Set(this.visits().map(e=>`${e.tenant?.id}|${e.appointment?.id}`));return this.reportable().filter(e=>!t.has(`${e.tenantId}|${e.appointmentId}`));});loadFeedback(){this.feedbackService.getReportable().subscribe({next:t=>this.reportable.set(t),error:()=>this.reportable.set([])}),this.feedbackService.getMine().subscribe({next:t=>this.myReports.set(t),error:()=>this.myReports.set([])});}reportableFor(t){return this.reportable().find(e=>e.tenantId===t.tenant?.id&&e.appointmentId===t.appointment?.id);}reportedFor(t){return this.myReports().some(e=>e.tenantId===t.tenant?.id&&e.appointmentId===t.appointment?.id);}openFeedback(t,e,i){i.stopPropagation(),this.feedbackBusiness.set(e),this.feedbackTarget.set(t);}loadVisitHistory(){this.loading.set(!0),this.portalService.getVisitHistory().subscribe({next:t=>{this.visits.set(t.visits),this.loading.set(!1);},error:()=>{this.loading.set(!1);}});}cancellingId=S(null);isCancellable(t){return t==="ConsultantApproved"||t==="AwaitingConsultantApproval";}isCancelled(t){return t==="CancelledByClient"||t==="CancelledByConsultant";}cancelledByLabel(t){if(t.appointment?.status==="CancelledByConsultant"){let e=t.tenant?.businessName||"your provider";return"Cancelled by "+e+"";}return"You cancelled this appointment";}cancelVisit(t,e){e.stopPropagation();let i=t.tenant?.id,l=t.appointment?.id;!i||!l||this.cancellingId()||!(typeof window<"u"&&window.confirm("Cancel this appointment?"))||(this.cancellingId.set(l),this.portalService.cancelAppointment(i,l).subscribe({next:()=>{this.cancellingId.set(null),this.notificationService.showSuccess("Your appointment has been cancelled."),this.loadVisitHistory();},error:T=>{this.cancellingId.set(null),this.notificationService.showError(T?.message||"Couldn't cancel the appointment. Please try again.");}}));}reschedulingId=S(null);rescheduleVisit(t,e){e.stopPropagation();let i=t.tenant?.id,l=t.appointment?.id,s=t.tenant?.profileSlug;!i||!l||!s||this.reschedulingId()||(this.reschedulingId.set(l),this.portalService.getAppointmentManageToken(i,l).subscribe({next:T=>{let f=this.localeId.split("-")[0];window.location.href=`/${f}/p/${s}/book?reschedule=${encodeURIComponent(T.token)}`;},error:T=>{this.reschedulingId.set(null),this.notificationService.showError(T?.message||"Couldn't start reschedule. Please try again.");}}));}getBookingUrl(t){return t?`/${this.localeId.split("-")[0]}/p/${t}`:"#";}toggleExpand(t){t&&(this.expandedVisitId()===t?this.expandedVisitId.set(null):this.expandedVisitId.set(t));}getDay(t){if(!t)return"";let e=t.match(/\b(\d{1,2})\b/);return e?e[1]:"";}getMonth(t){if(!t)return"";let e=t.match(/^\s*([^\d,]+?)\s*\d/);return e?e[1].trim():"";}getStatusClass(t){return t?["AppointmentCompleted","Completed"].includes(t)?"completed":["AwaitingConsultantApproval","AwaitingClientConfirmation","AwaitingPayment"].includes(t)?"pending":["ConsultantApproved","AppointmentScheduled"].includes(t)?"confirmed":["CancelledByClient","CancelledByConsultant"].includes(t)?"cancelled":"default":"default";}getStatusLabel(t){if(!t)return"";switch(t){case"AppointmentCompleted":case"Completed":return"Completed";case"ConsultantApproved":return"Approved";case"AwaitingConsultantApproval":return"Awaiting Approval";case"AwaitingPayment":return"Payment pending";case"AwaitingClientConfirmation":return"Awaiting Confirmation";case"CancelledByClient":case"CancelledByConsultant":return"Cancelled";case"ClientNoShow":case"ConsultantNoShow":return"No Show";case"AppointmentScheduled":return"Scheduled";default:return t.replace(/([A-Z])/g," $1").trim();}}getNotesPreview(t){if(!t)return"";let e=t.replace(/<[^>]*>/g,"").trim(),i=60;return e.length<=i?e:e.substring(0,i)+"...";}static ɵfac=function(e){return new(e||n)();};static ɵcmp=H({type:n,selectors:[["app-portal-visit-history"]],decls:8,vars:6,consts:()=>{let t;t="Review your past appointments, session notes, and meal plans from your nutritionists.";let e;e="Book an appointment";let i;i="You have no upcoming appointments.";let l;
1l="You can tell Vitena how your appointments went, up to 30 days afterwards. Open a visit and tap \"Tell Vitena\".";let s;s="Other appointments you can report";let T;T="Tell Vitena";let f;f="No visits yet";let b;b="Your appointment history will appear here after your first consultation.";let L;L="{VAR_PLURAL, plural, =1 {1 visit} other {{INTERPOLATION} visits}}",L=Le(L,{INTERPOLATION:"\uFFFD1\uFFFD",VAR_PLURAL:"\uFFFD0\uFFFD"});let w;w="Logo";let J;J=""+"\uFFFD0\uFFFD"+" min";let G;G="Payment being verified";let D;D="Complete payment";let Y;Y="Documents";let oe;oe="Invoice";let ie;ie="Meal Plan";let B;B="kcal";let ce;ce="Protein";let se;se="Carbs";let F;F="Fat";let Oe;Oe="Reason:";let ue;ue="Join Meeting";let Q;Q="Book Follow-up";let he;he="Tell Vitena";let Me;Me="Reported to Vitena";let Se;Se="Reschedule";let Ne;return Ne="Cancel appointment",[t,e,i,l,s,T,f,b,L,J,G,D,Y,oe,ie,B,ce,se,F,Oe,ue,Q,he,Me,Se,Ne,[1,"visit-history-container"],[1,"page-subtitle"],["type","button",1,"book-cta"],[3,"loading","message"],[3,"prepayment","businessName"],[3,"appointment","businessName"],["type","button",1,"book-cta",3,"click"],[1,"book-cta-icon"],["xmlns","http://www.w3.org/2000/svg","fill","none","viewBox","0 0 24 24","stroke-width","1.5","stroke","currentColor"],["stroke-linecap","round","stroke-linejoin","round","d","M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 012.25-2.25h13.5A2.25 2.25 0 0121 7.5v11.25m-18 0A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75m-18 0v-7.5A2.25 2.25 0 015.25 9h13.5A2.25 2.25 0 0121 11.25v7.5m-9-6h.008v.008H12v-.008zM12 15h.008v.008H12V15zm0 2.25h.008v.008H12v-.008z"],[1,"book-cta-text"],[1,"book-cta-title"],[1,"book-cta-sub"],["xmlns","http://www.w3.org/2000/svg","fill","none","viewBox","0 0 24 24","stroke-width","2","stroke","currentColor",1,"book-cta-arrow"],["stroke-linecap","round","stroke-linejoin","round","d","M8.25 4.5l7.5 7.5-7.5 7.5"],[1,"feedback-hint"],[1,"feedback-extra"],[1,"empty-state"],["aria-hidden","true",1,"bi","bi-megaphone"],[1,"feedback-extra-title"],[1,"feedback-extra-row"],[1,"feedback-extra-info"],[1,"feedback-extra-name"],[1,"feedback-extra-meta"],["type","button",1,"feedback-btn",3,"click"],[1,"empty-icon"],["stroke-linecap","round","stroke-linejoin","round","d","M12 6v6h4.5m4.5 0a9 9 0 11-18 0 9 9 0 0118 0z"],[1,"visits-count"],[1,"visits-list"],[1,"visit-card",3,"expanded"],[1,"visit-card"],[1,"visit-card-header",3,"click"],[1,"visit-date-badge"],[1,"date-day"],[1,"date-month"],[1,"visit-main-info"],[1,"visit-title-row"],[1,"visit-title"],[1,"visit-status"],[1,"visit-meta"],[1,"tenant-name"],[1,"meta-separator"],[1,"visit-full-date"],[1,"visit-time"],[1,"visit-duration"],["alt",w,1,"tenant-logo",3,"src"],[1,"expand-icon"],["xmlns","http://www.w3.org/2000/svg","fill","none","viewBox","0 0 24 24","stroke-width","2","stroke","currentColor"],["stroke-linecap","round","stroke-linejoin","round","d","M19.5 8.25l-7.5 7.5-7.5-7.5"],[1,"visit-card-details"],[1,"detail-section"],[1,"detail-actions"],[1,"call-channel-note",2,"display","flex","align-items","center","gap",".4rem","font-size",".85rem","color","var(--color-text-muted)","margin",".5rem 0 0"],["target","_blank","rel","noopener",1,"join-btn",3,"href"],["target","_blank","rel","noopener",1,"book-btn",3,"href"],["type","button",1,"feedback-btn"],[1,"feedback-sent"],["type","button",1,"reschedule-visit-btn",3,"disabled"],["type","button",1,"cancel-visit-btn",3,"disabled"],["type","button",1,"visit-pay-btn",3,"click"],[1,"bi","bi-hourglass-split"],[1,"bi","bi-credit-card"],[1,"visit-pay-amount"],[1,"view-notes-link",3,"routerLink"],[1,"view-notes-icon"],["stroke-linecap","round","stroke-linejoin","round","d","M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z"],[1,"view-notes-text"],[1,"view-notes-title"],[1,"view-notes-preview"],["xmlns","http://www.w3.org/2000/svg","fill","none","viewBox","0 0 24 24","stroke-width","2","stroke","currentColor",1,"view-notes-arrow"],[1,"visit-documents"],[1,"visit-documents-label"],["type","button",1,"visit-document"],["type","button",1,"visit-document",3,"click"],["stroke-linecap","round","stroke-linejoin","round","d","M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z"],[1,"visit-document-name"],[1,"visit-document-invoice"],[1,"visit-document-size"],[1,"meal-plan-card-link",3,"routerLink"],[1,"meal-plan-header-row"],[1,"meal-plan-icon"],["stroke-linecap","round","stroke-linejoin","round","d","M12 8.25v-1.5m0 1.5c-1.355 0-2.697.056-4.024.166C6.845 8.51 6 9.473 6 10.608v2.513m6-4.87c1.355 0 2.697.055 4.024.165C17.155 8.51 18 9.473 18 10.608v2.513m-3-4.87v-1.5m-6 1.5v-1.5m12 9.75l-1.5.75a3.354 3.354 0 01-3 0 3.354 3.354 0 00-3 0 3.354 3.354 0 01-3 0 3.354 3.354 0 00-3 0 3.354 3.354 0 01-3 0L3 16.5m15-3.38a48.474 48.474 0 00-6-.37c-2.032 0-4.034.125-6 .37m12 0c.39.049.777.102 1.163.16 1.07.16 1.837 1.094 1.837 2.175v5.17c0 .62-.504 1.124-1.125 1.124H4.125A1.125 1.125 0 013 20.625v-5.17c0-1.08.768-2.014 1.837-2.174A47.78 47.78 0 016 13.12M12.265 3.11a.375.375 0 11-.53 0L12 2.845l.265.265zm-3 0a.375.375 0 11-.53 0L9 2.845l.265.265zm6 0a.375.375 0 11-.53 0L15 2.845l.265.265z"],[1,"meal-plan-title-area"],[1,"meal-plan-label"],[1,"meal-plan-name"],["xmlns","http://www.w3.org/2000/svg","fill","none","viewBox","0 0 24 24","stroke-width","2","stroke","currentColor",1,"link-arrow"],[1,"macro-stats-grid"],[1,"macro-stat","macro-calories"],[1,"macro-icon"],["xmlns","http://www.w3.org/2000/svg","viewBox","0 0 24 24","fill","currentColor"],["fill-rule","evenodd","d","M12.963 2.286a.75.75 0 00-1.071-.136 9.742 9.742 0 00-3.539 6.177A7.547 7.547 0 016.648 6.61a.75.75 0 00-1.152.082A9 9 0 1015.68 4.534a7.46 7.46 0 01-2.717-2.248zM15.75 14.25a3.75 3.75 0 11-7.313-1.172c.628.465 1.35.81 2.133 1a5.99 5.99 0 011.925-3.545 3.75 3.75 0 013.255 3.717z","clip-rule","evenodd"],[1,"macro-value"],[1,"macro-label"],[1,"macro-stat","macro-protein"],["d","M11.645 20.91l-.007-.003-.022-.012a15.247 15.247 0 01-.383-.218 25.18 25.18 0 01-4.244-3.17C4.688 15.36 2.25 12.174 2.25 8.25 2.25 5.322 4.714 3 7.688 3A5.5 5.5 0 0112 5.052 5.5 5.5 0 0116.313 3c2.973 0 5.437 2.322 5.437 5.25 0 3.925-2.438 7.111-4.739 9.256a25.175 25.175 0 01-4.244 3.17 15.247 15.247 0 01-.383.219l-.022.012-.007.004-.003.001a.752.752 0 01-.704 0l-.003-.001z"],[1,"macro-unit"],[1,"macro-stat","macro-carbs"],["d","M15 1.784l-.796.796a1.125 1.125 0 101.591 0L15 1.784zM12 1.784l-.796.796a1.125 1.125 0 101.591 0L12 1.784zM9 
11.784l-.796.796a1.125 1.125 0 101.591 0L9 1.784zM9.75 7.547c.498-.02.998-.035 1.5-.042V6.75a.75.75 0 011.5 0v.755c.502.007 1.002.021 1.5.042V6.75a.75.75 0 011.5 0v.88l.307.022c1.55.117 2.693 1.427 2.693 2.946v1.018a62.182 62.182 0 00-13.5 0v-1.018c0-1.519 1.143-2.829 2.693-2.946l.307-.022v-.88a.75.75 0 011.5 0v.797zM12 12.75c-2.472 0-4.9.184-7.274.54-1.454.217-2.476 1.482-2.476 2.916v.384a4.104 4.104 0 012.585.364 2.605 2.605 0 002.33 0 4.104 4.104 0 013.67 0 2.605 2.605 0 002.33 0 4.104 4.104 0 013.67 0 2.605 2.605 0 002.33 0 4.104 4.104 0 012.585-.364v-.384c0-1.434-1.022-2.7-2.476-2.917A49.138 49.138 0 0012 12.75zM21.75 18.131a2.604 2.604 0 00-1.915.165 4.104 4.104 0 01-3.67 0 2.604 2.604 0 00-2.33 0 4.104 4.104 0 01-3.67 0 2.604 2.604 0 00-2.33 0 4.104 4.104 0 01-3.67 0 2.604 2.604 0 00-1.915-.165v2.494c0 1.036.84 1.875 1.875 1.875h15.75c1.035 0 1.875-.84 1.875-1.875v-2.494z"],[1,"macro-stat","macro-fat"],["fill-rule","evenodd","d","M12 2.25c-5.385 0-9.75 4.365-9.75 9.75s4.365 9.75 9.75 9.75 9.75-4.365 9.75-9.75S17.385 2.25 12 2.25zm-2.625 6c-.54 0-.828.419-.936.634a1.96 1.96 0 00-.189.866c0 .298.059.605.189.866.108.215.395.634.936.634.54 0 .828-.419.936-.634.13-.26.189-.568.189-.866 0-.298-.059-.605-.189-.866-.108-.215-.395-.634-.936-.634zm4.314.634c.108-.215.395-.634.936-.634.54 0 .828.419.936.634.13.26.189.568.189.866 0 .298-.059.605-.189.866-.108.215-.395.634-.936.634-.54 0-.828-.419-.936-.634a1.96 1.96 0 01-.189-.866c0-.298.059-.605.189-.866zm2.023 6.828a.75.75 0 10-1.06-1.06 3.75 3.75 0 01-5.304 0 .75.75 0 00-1.06 1.06 5.25 5.25 0 007.424 0z","clip-rule","evenodd"],[1,"cancellation-info"],[1,"cancellation-header"],["stroke-linecap","round","stroke-linejoin","round","d","M9.75 9.75l4.5 4.5m0-4.5l-4.5 4.5M21 12a9 9 0 11-18 0 9 9 0 0118 0z"],[1,"cancellation-reason"],[1,"cancellation-reason-label"],[1,"bi","bi-telephone"],["stroke-linecap","round","d","M15.75 10.5l4.72-4.72a.75.75 0 011.28.53v11.38a.75.75 0 01-1.28.53l-4.72-4.72M4.5 18.75h9a2.25 2.25 0 002.25-2.25v-9a2.25 2.25 0 00-2.25-2.25h-9A2.25 2.25 0 002.25 7.5v9a2.25 2.25 0 002.25 2.25z"],["stroke-linecap","round","stroke-linejoin","round","d","M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 012.25-2.25h13.5A2.25 2.25 0 0121 7.5v11.25m-18 0A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75m-18 0v-7.5A2.25 2.25 0 015.25 9h13.5A2.25 2.25 0 0121 11.25v7.5"],["aria-hidden","true",1,"bi","bi-check2-circle"],["type","button",1,"reschedule-visit-btn",3,"click","disabled"],["stroke-linecap","round","stroke-linejoin","round","d","M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0l3.181 3.183a8.25 8.25 0 0013.803-3.7M4.031 9.865a8.25 8.25 0 0113.803-3.7l3.181 3.182m0-4.991v4.99"],["type","button",1,"cancel-visit-btn",3,"click","disabled"],[3,"close","prepayment","businessName"],[3,"changed","close","appointment","businessName"]];},template:function(e,i){if(e&1&&(o(0,"div",26)(1,"p",27),_(2,0),a(),p(3,_l,11,0,"button",28),m(4,"app-loading",29),p(5,$l,4,4),p(6,Fl,1,2,"app-portal-payment-sheet",30),p(7,Gl,1,2,"app-portal-feedback-sheet",31),a()),e&2){let l,s;r(3),g(!i.loading()&&!i.hasActiveUpcoming()?3:-1),r(),A("loading",i.loading())("message",i.loadingMessage),r(),g(i.loading()?-1:5),r(),g((l=i.paymentPrepayment())?6:-1,l),r(),g((s=i.feedbackTarget())?7:-1,s);}},dependencies:[j,_e,qe,xt,lt,zt,Pe,Xe],styles:['.visit-history-container[_ngcontent-%COMP%]{max-width:800px;margin:0 auto;padding-top:8px}.page-subtitle[_ngcontent-%COMP%]{color:#6b7280;font-size:14px;margin:0 0 20px;line-height:1.5}.book-cta[_ngcontent-%COMP%]{display:flex;align-items:center;gap:14px;width:100%;text-align:left;background:linear-gradient(135deg,#03a791,#028576);color:#fff;border:none;border-radius:12px;padding:16px 18px;cursor:pointer;margin-bottom:20px;box-shadow:0 4px 14px #03a79140;transition:transform .15s,box-shadow .15s}.book-cta[_ngcontent-%COMP%]:hover{transform:translateY(-1px);box-shadow:0 6px 18px #03a79152}.book-cta-icon[_ngcontent-%COMP%]{width:44px;height:44px;border-radius:10px;background:#ffffff2e;display:flex;align-items:center;justify-content:center;flex-shrink:0}.book-cta-icon[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:24px;height:24px}.book-cta-text[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.book-cta-title[_ngcontent-%COMP%]{font-size:15px;font-weight:700}.book-cta-sub[_ngcontent-%COMP%]{font-size:12.5px;opacity:.9}.book-cta-arrow[_ngcontent-%COMP%]{width:20px;height:20px;flex-shrink:0;
1opacity:.9}.empty-state[_ngcontent-%COMP%]{background:#fff;border-radius:12px;padding:48px 24px;text-align:center;box-shadow:0 1px 3px #0000001a}.empty-icon[_ngcontent-%COMP%]{width:72px;height:72px;border-radius:50%;background:#f3f4f6;color:#9ca3af;display:flex;align-items:center;justify-content:center;margin:0 auto 20px}.empty-icon[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:36px;height:36px}.empty-state[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font-size:18px;font-weight:600;color:#1f2937;margin:0 0 8px}.empty-state[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{font-size:14px;color:#6b7280;max-width:320px;margin:0 auto}.visits-count[_ngcontent-%COMP%]{font-size:14px;color:#6b7280;margin-bottom:16px}.visits-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px}.visit-card[_ngcontent-%COMP%]{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow:hidden;transition:box-shadow .2s}.visit-card[_ngcontent-%COMP%]:hover{box-shadow:0 4px 12px #0000001a}.visit-card.expanded[_ngcontent-%COMP%]{border-left:4px solid #03A791}.visit-card-header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:16px;padding:16px;cursor:pointer}.visit-date-badge[_ngcontent-%COMP%]{width:52px;height:52px;background:linear-gradient(135deg,#03a791,#028576);border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;color:#fff}.date-day[_ngcontent-%COMP%]{font-size:20px;font-weight:700;line-height:1}.date-month[_ngcontent-%COMP%]{font-size:11px;font-weight:500;text-transform:uppercase;opacity:.9}.visit-main-info[_ngcontent-%COMP%]{flex:1;min-width:0}.visit-title-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:4px}.visit-title[_ngcontent-%COMP%]{font-size:16px;font-weight:600;color:#1f2937;margin:0}.visit-status[_ngcontent-%COMP%]{font-size:11px;font-weight:600;padding:2px 8px;border-radius:12px;text-transform:uppercase}.status-completed[_ngcontent-%COMP%]{background:#10b9811a;color:#059669}.status-default[_ngcontent-%COMP%]{background:#f3f4f6;color:#6b7280}.status-pending[_ngcontent-%COMP%]{background:#f59e0b1f;color:#b45309}.status-confirmed[_ngcontent-%COMP%]{background:#3b82f61f;color:#2563eb}.status-cancelled[_ngcontent-%COMP%]{background:#ef44441a;color:#dc2626}.visit-meta[_ngcontent-%COMP%]{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:13px;color:#6b7280}
1.tenant-name[_ngcontent-%COMP%]{font-weight:500;color:#4b5563}.meta-separator[_ngcontent-%COMP%]{color:#d1d5db}.tenant-logo[_ngcontent-%COMP%]{width:40px;height:40px;border-radius:8px;object-fit:contain;background:#f9fafb;flex-shrink:0}.expand-icon[_ngcontent-%COMP%]{width:24px;height:24px;color:#9ca3af;flex-shrink:0;transition:transform .2s}.expand-icon[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:100%;height:100%}.expand-icon.rotated[_ngcontent-%COMP%]{transform:rotate(180deg)}.visit-card-details[_ngcontent-%COMP%]{padding:4px 16px 16px;animation:_ngcontent-%COMP%_slideDown .2s ease-out}.visit-pay-btn[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;width:100%;padding:12px 16px;border:none;border-radius:10px;background:#03a791;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s}.visit-pay-btn[_ngcontent-%COMP%]:hover{background:#02937f}.visit-pay-btn[_ngcontent-%COMP%]   .visit-pay-amount[_ngcontent-%COMP%]{margin-left:auto;font-weight:700}[data-theme="dark"][_nghost-%COMP%]   .visit-pay-btn[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .visit-pay-btn[_ngcontent-%COMP%]:hover{background:#0cc4ac}.visit-pay-btn.is-verifying[_ngcontent-%COMP%], .visit-pay-btn.is-verifying[_ngcontent-%COMP%]:hover{background:#03a7911f;color:#047857}[data-theme="dark"][_nghost-%COMP%]   .visit-pay-btn.is-verifying[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .visit-pay-btn.is-verifying[_ngcontent-%COMP%], [data-theme="dark"][_nghost-%COMP%]   .visit-pay-btn.is-verifying[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .visit-pay-btn.is-verifying[_ngcontent-%COMP%]:hover{background:#0cc4ac24;color:#6ee7b7}@keyframes _ngcontent-%COMP%_slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.detail-section[_ngcontent-%COMP%]{padding-top:12px}.detail-section[_ngcontent-%COMP%] + .detail-section[_ngcontent-%COMP%]{margin-top:10px}.cancellation-info[_ngcontent-%COMP%]{background:#ef44440f;border:1px solid rgba(239,68,68,.2);border-radius:10px;padding:12px 14px}.cancellation-header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:#b91c1c}.cancellation-header[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:18px;height:18px;flex-shrink:0}.cancellation-reason[_ngcontent-%COMP%]{margin:8px 0 0 26px;font-size:13px;line-height:1.5;color:#4b5563}.cancellation-reason-label[_ngcontent-%COMP%]{font-weight:600;color:#6b7280;margin-right:4px}.visit-documents[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:6px}.visit-documents-label[_ngcontent-%COMP%]{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted)}.visit-document[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;border:1px solid var(--color-gray-200);border-radius:10px;background:var(--color-bg);color:var(--color-text);cursor:pointer;text-align:left}.visit-document[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:18px;height:18px;flex:0 0 auto;color:var(--color-portal)}.visit-document[_ngcontent-%COMP%]:hover{border-color:var(--color-portal)}.visit-document-invoice[_ngcontent-%COMP%]{flex:0 0 auto;padding:1px 8px;border-radius:var(--radius-full);background:rgba(var(--color-portal-rgb),.12);color:var(--color-portal);font-size:12px;font-weight:600}.visit-document-name[_ngcontent-%COMP%]{flex:1 1 auto;min-width:0;font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.visit-document-size[_ngcontent-%COMP%]{flex:0 0 auto;font-size:12px;color:var(--color-text-muted)}.view-notes-link[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;background:#f1f5f9;border-radius:10px;padding:12px;text-decoration:none;color:inherit;transition:background .2s}.view-notes-link[_ngcontent-%COMP%]:hover{background:#e2e8f0}.view-notes-icon[_ngcontent-%COMP%]{width:36px;height:36px;border-radius:8px;background:#03a7911a;color:#03a791;display:flex;align-items:center;justify-content:center;flex-shrink:0}.view-notes-icon[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:18px;height:18px}.view-notes-text[_ngcontent-%COMP%]{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.view-notes-title[_ngcontent-%COMP%]{font-size:14px;font-weight:600;color:#1f2937}.view-notes-preview[_ngcontent-%COMP%]{font-size:12px;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.view-notes-arrow[_ngcontent-%COMP%]{width:18px;height:18px;color:#c9cdd3;flex-shrink:0;transition:color .2s,transform .2s}.view-notes-link[_ngcontent-%COMP%]:hover   .view-notes-arrow[_ngcontent-%COMP%]{color:#03a791;transform:translate(2px)}.meal-plan-card-link[_ngcontent-%COMP%]{display:block;background:#f1f5f9;border-radius:10px;padding:12px;text-decoration:none;color:inherit;transition:background .2s}.meal-plan-card-link[_ngcontent-%COMP%]:hover{background:#e2e8f0}.meal-plan-header-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;margin-bottom:12px}.meal-plan-icon[_ngcontent-%COMP%]{width:36px;height:36px;border-radius:8px;background:linear-gradient(135deg,#03a791,#028576);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}.meal-plan-icon[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:18px;height:18px}.meal-plan-title-area[_ngcontent-%COMP%]{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.meal-plan-label[_ngcontent-%COMP%]{font-size:10px;font-weight:600;color:#03a791;text-transform:uppercase;letter-spacing:.04em}
1.meal-plan-name[_ngcontent-%COMP%]{font-size:14px;font-weight:600;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.link-arrow[_ngcontent-%COMP%]{width:18px;height:18px;color:#c9cdd3;flex-shrink:0;transition:color .2s,transform .2s}.meal-plan-card-link[_ngcontent-%COMP%]:hover   .link-arrow[_ngcontent-%COMP%]{color:#03a791;transform:translate(2px)}.macro-stats-grid[_ngcontent-%COMP%]{display:flex;gap:6px}.macro-stat[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;align-items:center;padding:8px 4px;border-radius:8px;background:#fff}.macro-stat[_ngcontent-%COMP%]   .macro-icon[_ngcontent-%COMP%]{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:4px}.macro-stat[_ngcontent-%COMP%]   .macro-icon[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:13px;height:13px}.macro-stat[_ngcontent-%COMP%]   .macro-value[_ngcontent-%COMP%]{font-size:14px;font-weight:700;color:#1f2937;line-height:1.2}.macro-stat[_ngcontent-%COMP%]   .macro-unit[_ngcontent-%COMP%]{font-size:11px;font-weight:500;color:#6b7280}.macro-stat[_ngcontent-%COMP%]   .macro-label[_ngcontent-%COMP%]{font-size:9px;font-weight:500;color:#9ca3af;text-transform:uppercase;letter-spacing:.02em}.macro-calories[_ngcontent-%COMP%]   .macro-icon[_ngcontent-%COMP%]{background:#ef44441a;color:#ef4444}.macro-protein[_ngcontent-%COMP%]   .macro-icon[_ngcontent-%COMP%]{background:#3b82f61a;color:#3b82f6}.macro-carbs[_ngcontent-%COMP%]   .macro-icon[_ngcontent-%COMP%]{background:#f59e0b1a;color:#f59e0b}.macro-fat[_ngcontent-%COMP%]   .macro-icon[_ngcontent-%COMP%]{background:#a855f71a;color:#a855f7}.detail-actions[_ngcontent-%COMP%]{padding-top:12px;display:flex;flex-wrap:wrap;gap:8px}.feedback-hint[_ngcontent-%COMP%]{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;margin-bottom:14px;border-radius:12px;font-size:13px;line-height:1.5;color:var(--color-text);background:rgba(var(--color-portal-rgb),.08);border:1px solid rgba(var(--color-portal-rgb),.25)}.feedback-hint[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{color:var(--color-portal);font-size:16px;margin-top:1px}.feedback-extra[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.feedback-extra-title[_ngcontent-%COMP%]{font-size:13px;font-weight:600;color:var(--color-text-muted)}.feedback-extra-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;background:var(--color-bg);border:1px solid var(--color-gray-200)}.feedback-extra-info[_ngcontent-%COMP%]{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.feedback-extra-name[_ngcontent-%COMP%]{font-size:14px;font-weight:600;color:var(--color-text)}.feedback-extra-meta[_ngcontent-%COMP%]{font-size:12px;color:var(--color-text-muted)}.feedback-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;padding:10px 14px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;color:var(--color-portal);background:rgba(var(--color-portal-rgb),.1);border:1px solid rgba(var(--color-portal-rgb),.3);transition:background .15s}.feedback-btn[_ngcontent-%COMP%]:hover{background:rgba(var(--color-portal-rgb),.18)}.feedback-sent[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;padding:10px 4px;font-size:13px;color:var(--color-text-muted)}.feedback-sent[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{color:var(--color-success)}.join-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;background:#03a791;border-radius:8px;padding:10px 14px;font-size:13px;font-weight:500;color:#fff;text-decoration:none;transition:all .2s}.join-btn[_ngcontent-%COMP%]:hover{background:#028a77;color:#fff}.join-btn[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:16px;height:16px}.book-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;background:#f1f5f9;border-radius:8px;padding:10px 14px;font-size:13px;font-weight:500;color:#64748b;text-decoration:none;transition:all .2s}.book-btn[_ngcontent-%COMP%]:hover{background:#e2e8f0;color:#03a791}.book-btn[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:16px;height:16px}.cancel-visit-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid #fecaca;border-radius:8px;padding:10px 14px;font-size:13px;font-weight:500;color:#dc2626;cursor:pointer;transition:all .2s}.cancel-visit-btn[_ngcontent-%COMP%]:hover{background:#fef2f2;border-color:#dc2626}.cancel-visit-btn[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:default}.cancel-visit-btn[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:16px;height:16px}.reschedule-visit-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid #d1d5db;border-radius:8px;padding:10px 14px;font-size:13px;font-weight:500;color:#64748b;cursor:pointer;transition:all .2s}.reschedule-visit-btn[_ngcontent-%COMP%]:hover{background:#f1f5f9;border-color:#03a791;color:#03a791}.reschedule-visit-btn[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:default}.reschedule-visit-btn[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:16px;height:16px}@media(max-width:640px){.visit-card-header[_ngcontent-%COMP%]{padding:14px;gap:12px}.visit-date-badge[_ngcontent-%COMP%]{width:46px;height:46px}.date-day[_ngcontent-%COMP%]{font-size:18px}.date-month[_ngcontent-%COMP%]{font-size:10px}.visit-title[_ngcontent-%COMP%]{font-size:15px}.visit-status[_ngcontent-%COMP%]{font-size:10px}.visit-meta[_ngcontent-%COMP%]{font-size:12px}
1.meta-separator[_ngcontent-%COMP%]{display:none}.visit-meta[_ngcontent-%COMP%]{flex-direction:column;align-items:flex-start;gap:2px}.tenant-logo[_ngcontent-%COMP%]{display:none}.visit-card-details[_ngcontent-%COMP%]{padding:0 14px 14px}.meal-plan-card-link[_ngcontent-%COMP%]{padding:10px}.meal-plan-header-row[_ngcontent-%COMP%]{margin-bottom:10px}.meal-plan-icon[_ngcontent-%COMP%]{width:32px;height:32px}.meal-plan-icon[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:16px;height:16px}.macro-stats-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);gap:4px}.macro-stat[_ngcontent-%COMP%]{padding:6px 4px}.macro-stat[_ngcontent-%COMP%]   .macro-icon[_ngcontent-%COMP%]{width:20px;height:20px;margin-bottom:2px}.macro-stat[_ngcontent-%COMP%]   .macro-icon[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:11px;height:11px}.macro-stat[_ngcontent-%COMP%]   .macro-value[_ngcontent-%COMP%]{font-size:13px}.macro-stat[_ngcontent-%COMP%]   .macro-label[_ngcontent-%COMP%]{font-size:8px}}@media(max-width:480px){.visit-title-row[_ngcontent-%COMP%]{flex-direction:column;align-items:flex-start;gap:6px}}[data-theme="dark"][_nghost-%COMP%]   .empty-state[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .empty-state[_ngcontent-%COMP%]{background:#1e293b;box-shadow:0 1px 3px #0000004d}[data-theme="dark"][_nghost-%COMP%]   .empty-icon[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .empty-icon[_ngcontent-%COMP%]{background:#334155;color:#cbd5e1}[data-theme="dark"][_nghost-%COMP%]   .empty-state[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .empty-state[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .empty-state[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .empty-state[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .page-subtitle[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .page-subtitle[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .visits-count[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .visits-count[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .visit-card[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .visit-card[_ngcontent-%COMP%]{background:#1e293b;box-shadow:0 1px 3px #0000004d}[data-theme="dark"][_nghost-%COMP%]   .visit-card[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .visit-card[_ngcontent-%COMP%]:hover{box-shadow:0 4px 12px #0000004d}[data-theme="dark"][_nghost-%COMP%]   .visit-title[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .visit-title[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .visit-status.status-completed[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .visit-status.status-completed[_ngcontent-%COMP%]{background:#10b98126;color:#34d399}[data-theme="dark"][_nghost-%COMP%]   .status-default[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .status-default[_ngcontent-%COMP%]{background:#334155;color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .visit-status.status-pending[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .visit-status.status-pending[_ngcontent-%COMP%]{background:#fbbf2426;color:#fcd34d}[data-theme="dark"][_nghost-%COMP%]   .visit-status.status-confirmed[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .visit-status.status-confirmed[_ngcontent-%COMP%]{background:#60a5fa26;color:#93c5fd}[data-theme="dark"][_nghost-%COMP%]   .visit-status.status-cancelled[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .visit-status.status-cancelled[_ngcontent-%COMP%]{background:#f8717126;color:#f87171}[data-theme="dark"][_nghost-%COMP%]   .cancellation-info[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .cancellation-info[_ngcontent-%COMP%]{background:#f871711a;border-color:#f8717147}[data-theme="dark"][_nghost-%COMP%]   .cancellation-header[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .cancellation-header[_ngcontent-%COMP%]{color:#f87171}[data-theme="dark"][_nghost-%COMP%]   .cancellation-reason[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .cancellation-reason[_ngcontent-%COMP%]{color:#cbd5e1}[data-theme="dark"][_nghost-%COMP%]   .cancellation-reason-label[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .cancellation-reason-label[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .visit-meta[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .visit-meta[_ngcontent-%COMP%]{color:#94a3b8}
1[data-theme="dark"][_nghost-%COMP%]   .tenant-name[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .tenant-name[_ngcontent-%COMP%]{color:#cbd5e1}[data-theme="dark"][_nghost-%COMP%]   .meta-separator[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .meta-separator[_ngcontent-%COMP%]{color:#475569}[data-theme="dark"][_nghost-%COMP%]   .tenant-logo[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .tenant-logo[_ngcontent-%COMP%]{background:#334155}[data-theme="dark"][_nghost-%COMP%]   .expand-icon[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .expand-icon[_ngcontent-%COMP%]{color:#cbd5e1}[data-theme="dark"][_nghost-%COMP%]   .view-notes-link[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .view-notes-link[_ngcontent-%COMP%]{background:#334155}[data-theme="dark"][_nghost-%COMP%]   .view-notes-link[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .view-notes-link[_ngcontent-%COMP%]:hover{background:#475569}[data-theme="dark"][_nghost-%COMP%]   .view-notes-title[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .view-notes-title[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .view-notes-preview[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .view-notes-preview[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .view-notes-arrow[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .view-notes-arrow[_ngcontent-%COMP%]{color:#64748b}[data-theme="dark"][_nghost-%COMP%]   .view-notes-link[_ngcontent-%COMP%]:hover   .view-notes-arrow[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .view-notes-link[_ngcontent-%COMP%]:hover   .view-notes-arrow[_ngcontent-%COMP%]{color:#03a791}[data-theme="dark"][_nghost-%COMP%]   .meal-plan-card-link[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .meal-plan-card-link[_ngcontent-%COMP%]{background:#334155}[data-theme="dark"][_nghost-%COMP%]   .meal-plan-card-link[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .meal-plan-card-link[_ngcontent-%COMP%]:hover{background:#475569}[data-theme="dark"][_nghost-%COMP%]   .meal-plan-name[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .meal-plan-name[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .link-arrow[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .link-arrow[_ngcontent-%COMP%]{color:#64748b}[data-theme="dark"][_nghost-%COMP%]   .meal-plan-card-link[_ngcontent-%COMP%]:hover   .link-arrow[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .meal-plan-card-link[_ngcontent-%COMP%]:hover   .link-arrow[_ngcontent-%COMP%]{color:#03a791}[data-theme="dark"][_nghost-%COMP%]   .macro-stat[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .macro-stat[_ngcontent-%COMP%]{background:#1e293b}[data-theme="dark"][_nghost-%COMP%]   .macro-stat[_ngcontent-%COMP%]   .macro-value[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .macro-stat[_ngcontent-%COMP%]   .macro-value[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .macro-stat[_ngcontent-%COMP%]   .macro-unit[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .macro-stat[_ngcontent-%COMP%]   .macro-unit[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .macro-stat[_ngcontent-%COMP%]   .macro-label[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .macro-stat[_ngcontent-%COMP%]   .macro-label[_ngcontent-%COMP%]{color:#cbd5e1}[data-theme="dark"][_nghost-%COMP%]   .macro-calories[_ngcontent-%COMP%]   .macro-icon[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .macro-calories[_ngcontent-%COMP%]   .macro-icon[_ngcontent-%COMP%]{background:#ef444426}[data-theme="dark"][_nghost-%COMP%]   .macro-protein[_ngcontent-%COMP%]   .macro-icon[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .macro-protein[_ngcontent-%COMP%]   .macro-icon[_ngcontent-%COMP%]{background:#3b82f626}[data-theme="dark"][_nghost-%COMP%]   .macro-carbs[_ngcontent-%COMP%]   .macro-icon[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .macro-carbs[_ngcontent-%COMP%]   .macro-icon[_ngcontent-%COMP%]{background:#f59e0b26}[data-theme="dark"][_nghost-%COMP%]   .macro-fat[_ngcontent-%COMP%]   .macro-icon[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .macro-fat[_ngcontent-%COMP%]   .macro-icon[_ngcontent-%COMP%]{background:#a855f726}[data-theme="dark"][_nghost-%COMP%]   .book-btn[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .book-btn[_ngcontent-%COMP%]{background:#334155;color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .book-btn[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .book-btn[_ngcontent-%COMP%]:hover{background:#475569;color:#03a791}[data-theme="dark"][_nghost-%COMP%]   .join-btn[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .join-btn[_ngcontent-%COMP%]{background:#03a791}[data-theme="dark"][_nghost-%COMP%]   .join-btn[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .join-btn[_ngcontent-%COMP%]:hover{background:#028a77}[data-theme="dark"][_nghost-%COMP%]   .cancel-visit-btn[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .cancel-visit-btn[_ngcontent-%COMP%]{background:#1e293b;border-color:#7f1d1d;color:#f87171}[data-theme="dark"][_nghost-%COMP%]   .cancel-visit-btn[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .cancel-visit-btn[_ngcontent-%COMP%]:hover{background:#0f172a;border-color:#f87171}[data-theme="dark"][_nghost-%COMP%]   .reschedule-visit-btn[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .reschedule-visit-btn[_ngcontent-%COMP%]{background:#1e293b;border-color:#475569;color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .reschedule-visit-btn[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .reschedule-visit-btn[_ngcontent-%COMP%]:hover{background:#0f172a;border-color:#0cc4ac;color:#0cc4ac}[data-theme="dark"][_nghost-%COMP%]   .view-notes-icon[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .view-notes-icon[_ngcontent-%COMP%]{background:#03a79126}']});};var mo=(n,t)=>t.id;function zl(n,t){if(n&1){let e=x();o(0,"button",18),h("click",function(){O(e);let l=c(2);return u(l.filter.set("all"));}),_(1,2),a(),o(2,"button",18),h("click",function(){O(e);let l=c(2);return u(l.filter.set("invoices"));}),_(3,3),a();}if(n&2){let e=c(2);z("active",e.filter()==="all"),r(2),z("active",e.filter()==="invoices");}}function Ul(n,t){if(n&1){let e=x();o(0,"div",11),p(1,zl,4,4),o(2,"button",14),h("click",function(){O(e);let l=c();return u(l.setViewMode("grid"));}),m(3,"i",15),a(),o(4,"button",16),h("click",function(){O(e);let l=c();return u(l.setViewMode("list"));}),m(5,"i",17),a()();}if(n&2){let e=c();r(),g(e.hasInvoices()?1:-1),r(),z("active",e.viewMode()==="grid"),r(2),z("active",e.viewMode()==="list");}}function Vl(n,t){if(n&1&&(o(0,"div",19),d(1),a()),n&2){let e=c(2);r(),M(e.error());}}function Dl(n,t){n&1&&(o(0,"div",20),E(),o(1,"svg",23),m(2,"path",24),a(),N(),o(3,"p"),_(4,4),a()());}function Hl(n,t){if(n&1&&m(0,"img",27),n&2){let e=c().$implicit;A("src",t,te)("alt",e.displayName);}}function Xl(n,t){n&1&&(E(),o(0,"svg",23),m(1,"path",34),a());}function Wl(n,t){n&1&&(o(0,"span",35),_(1,6),a(),o(2,"span",31),d(3,"\xB7"),a());}function Yl(n,t){if(n&1){let e=x();o(0,"li",25)(1,"button",26),h("click",function(){let l=O(e).$implicit,s=c(3);return u(s.open(l));}),p(2,Hl,1,2,"img",27)(3,Xl,2,0,":svg:svg",23),a(),o(4,"div",28)(5,"p",29),d(6),a(),o(7,"p",30),p(8,Wl,4,0),d(9),o(10,"span",31),d(11,"\xB7"),a(),d(12),R(13,"date"),a()(),o(14,"button",32),h("click",function(){let l=O(e).$implicit,s=c(3);return u(s.download(l));}),E(),o(15,"svg",23),m(16,"path",33),a(),N(),o(17,"span"),_(18,5),a()()();}if(n&2){let e,i=t.$implicit,l=c(3);r(),A("title",i.displayName),r(),g((e=i.isImage&&l.previewUrl(i.id))?2:3,e),r(4),M(i.displayName),r(2),g(i.isInvoice?8:-1),r(),I(" ",i.tenantName," "),r(3),I(" ",y(13,6,i.sharedAt,"mediumDate")," ");}}function Bl(n,t){if(n&1&&(o(0,"ul",21),X(1,Yl,19,9,"li",25,mo),a()),n&2){let e=c(2);r(),W(e.visibleDocuments());}}function jl(n,t){n&1&&(o(0,"span",35),_(1,8),a(),o(2,"span",31),d(3,"\xB7"),a());}function Kl(n,t){if(n&1){let e=x();o(0,"li",36)(1,"div",37),E(),o(2,"svg",23),m(3,"path",34),a()(),N(),o(4,"div",38)(5,"p",29),d(6),a(),o(7,"p",30),p(8,jl,4,0),d(9),o(10,"span",31),d(11,"\xB7"),a(),d(12),R(13,"date"),o(14,"span",31),d(15,"\xB7"),a(),d(16),a()(),o(17,"button",39),h("click",function(){let l=O(e).$implicit,s=c(3);return u(s.download(l));}),E(),o(18,"svg",23),m(19,"path",33),a(),N(),o(20,"span"),_(21,7),a()()();}if(n&2){let e=t.$implicit;r(),z("pdf",e.isPdf),r(5),M(e.displayName),r(2),g(e.isInvoice?8:-1),r(),I(" ",e.tenantName," "),r(3),I(" ",y(13,7,e.sharedAt,"mediumDate")," "),r(4),I(" ",e.formattedFileSize," ");}}function ql(n,t){if(n&1&&(o(0,"ul",22),X(1,Kl,22,10,"li",36,mo),a()),n&2){let e=c(2);r(),W(e.visibleDocuments());}}function Jl(n,t){if(n&1&&p(0,Vl,2,1,"div",19)(1,Dl,5,0,"div",20)(2,Bl,3,0,"ul",21)(3,ql,3,0,"ul",22),n&2){let e=c();
1g(e.error()?0:e.documents().length===0?1:e.viewMode()==="grid"?2:3);}}function Ql(n,t){if(n&1){let e=x();o(0,"div",40),h("click",function(){O(e);let l=c();return u(l.closeLightbox());}),o(1,"button",41),h("click",function(){O(e);let l=c();return u(l.closeLightbox());}),E(),o(2,"svg",42),m(3,"path",43),a()(),N(),o(4,"img",44),h("click",function(l){return O(e),u(l.stopPropagation());}),a()();}if(n&2){let e=t;r(4),A("src",e.url,te)("alt",e.name);}}var Vt=class n{portalService=v(ee);documents=S([]);filter=S("all");hasInvoices=q(()=>this.documents().some(t=>t.isInvoice));visibleDocuments=q(()=>this.filter()==="invoices"?this.documents().filter(t=>t.isInvoice):this.documents());loading=S(!0);error=S(null);viewMode=S("grid");VIEW_MODE_KEY="portal_documents_view_mode";previewUrls=S({});previewsRequested=new Set();lightbox=S(null);ngOnInit(){let t=localStorage.getItem(this.VIEW_MODE_KEY);(t==="grid"||t==="list")&&this.viewMode.set(t),this.portalService.getDocuments().subscribe({next:e=>{this.documents.set(e),this.loading.set(!1),this.viewMode()==="grid"&&this.loadPreviews();},error:e=>{this.error.set(e.message??"Documents could not be loaded."),this.loading.set(!1);}});}download(t){this.portalService.getDocumentDownloadUrl(t.id).subscribe({next:e=>window.open(e.downloadUrl,"_blank"),error:e=>this.error.set(e.message)});}setViewMode(t){this.viewMode.set(t),localStorage.setItem(this.VIEW_MODE_KEY,t),t==="grid"&&this.loadPreviews();}previewUrl(t){return this.previewUrls()[t];}loadPreviews(){for(let t of this.documents())!t.isImage||this.previewsRequested.has(t.id)||(this.previewsRequested.add(t.id),this.portalService.getDocumentDownloadUrl(t.id).subscribe({next:e=>this.previewUrls.update(i=>Qe(Je({},i),{[t.id]:e.downloadUrl})),error:()=>{}}));}open(t){let e=this.previewUrl(t.id);if(t.isImage&&e){this.lightbox.set({url:e,name:t.displayName});return;}this.download(t);}closeLightbox(){this.lightbox.set(null);}static ɵfac=function(e){return new(e||n)();};static ɵcmp=H({type:n,selectors:[["app-portal-documents"]],decls:11,vars:4,consts:()=>{let t;t="Loading documents...";let e;e="My Documents";let i;i="Files your practitioner has shared with you.";let l;l="Card view";let s;s="List view";let T;T="All";let f;f="My invoices";let b;b="No documents have been shared with you yet.";let L;L="Download";let w;w="Invoice";let J;J="Download";let G;return G="Invoice",[e,i,T,f,b,L,w,J,G,[1,"documents-container"],[1,"documents-header"],[1,"view-toggle"],["message",t,3,"loading"],[1,"lightbox-overlay"],["type","button","title",l,3,"click"],[1,"bi","bi-grid-3x3-gap"],["type","button","title",s,3,"click"],[1,"bi","bi-list-ul"],["type","button",1,"filter-chip",3,"click"],[1,"documents-error"],[1,"documents-empty"],[1,"documents-grid"],[1,"documents-list"],["xmlns","http://www.w3.org/2000/svg","fill","none","viewBox","0 0 24 24","stroke-width","1.5","stroke","currentColor"],["stroke-linecap","round","stroke-linejoin","round","d","M2.25 12.75V12A2.25 2.25 0 014.5 9.75h15A2.25 2.25 0 0121.75 12v.75m-8.69-6.44l-2.12-2.12a1.5 1.5 0 00-1.061-.44H4.5A2.25 2.25 0 002.25 6v12a2.25 2.25 0 002.25 2.25h15A2.25 2.25 0 0021.75 18V9a2.25 2.25 0 00-2.25-2.25h-5.379a1.5 1.5 0 01-1.06-.44z"],[1,"document-tile"],["type","button",1,"tile-preview",3,"click","title"],["loading","lazy",3,"src","alt"],[1,"tile-body"],[1,"document-name"],[1,"document-meta"],[1,"dot"],["type","button",1,"tile-download",3,"click"],["stroke-linecap","round","stroke-linejoin","round","d","M3 16.5v2.25A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75V16.5M16.5 12L12 16.5m0 0L7.5 12m4.5 4.5V3"],["stroke-linecap","round","stroke-linejoin","round","d","M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z"],[1,"invoice-tag"],[1,"document-card"],[1,"document-icon"],[1,"document-body"],["type","button",1,"document-download",3,"click"],[1,"lightbox-overlay",3,"click"],["type","button","aria-label","Close",1,"lightbox-close",3,"click"],["xmlns","http://www.w3.org/2000/svg","fill","none","viewBox","0 0 24 24","stroke-width","2","stroke","currentColor"],["stroke-linecap","round","stroke-linejoin","round","d","M6 18L18 6M6 6l12 12"],[3,"click","
1src","alt"]];},template:function(e,i){if(e&1&&(o(0,"div",9)(1,"header",10)(2,"div")(3,"h1"),_(4,0),a(),o(5,"p"),_(6,1),a()(),p(7,Ul,6,5,"div",11),a(),m(8,"app-loading",12),p(9,Jl,4,1),a(),p(10,Ql,5,2,"div",13)),e&2){let l;r(7),g(!i.loading()&&i.documents().length>0?7:-1),r(),A("loading",i.loading()),r(),g(i.loading()?-1:9),r(),g((l=i.lightbox())?10:-1,l);}},dependencies:[j,qe,Xe],styles:[".documents-container[_ngcontent-%COMP%]{max-width:800px;margin:0 auto;padding:1.25rem 1rem 2rem}.documents-header[_ngcontent-%COMP%]{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.documents-header[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{margin:0 0 .25rem;font-size:1.5rem;font-weight:700;color:var(--color-text)}.documents-header[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0;font-size:.9375rem;color:var(--color-text-muted)}.view-toggle[_ngcontent-%COMP%]   .filter-chip[_ngcontent-%COMP%]{width:auto;padding:0 .7rem;border-radius:var(--radius-full);font-size:.8125rem;font-weight:600}.invoice-tag[_ngcontent-%COMP%]{color:var(--color-portal);font-weight:600}.view-toggle[_ngcontent-%COMP%]{flex:0 0 auto;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.25rem}.view-toggle[_ngcontent-%COMP%]   button[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--color-gray-300);border-radius:var(--radius);background:var(--color-bg);color:var(--color-text-muted);cursor:pointer}.view-toggle[_ngcontent-%COMP%]   button[_ngcontent-%COMP%]:hover{border-color:var(--color-portal);color:var(--color-portal)}.view-toggle[_ngcontent-%COMP%]   button.active[_ngcontent-%COMP%]{background:var(--color-portal);border-color:var(--color-portal);color:#fff}.documents-grid[_ngcontent-%COMP%]{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.85rem}.document-tile[_ngcontent-%COMP%]{display:flex;flex-direction:column;border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);background:var(--color-bg);overflow:hidden}.tile-preview[_ngcontent-%COMP%]{width:100%;aspect-ratio:4 / 3;display:flex;align-items:center;justify-content:center;padding:0;border:none;border-bottom:1px solid var(--color-gray-200);background:var(--color-surface);color:var(--color-portal);cursor:pointer}.tile-preview[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:34px;height:34px;opacity:.7}.tile-preview[_ngcontent-%COMP%]   img[_ngcontent-%COMP%]{width:100%;height:100%;object-fit:cover;display:block}.tile-body[_ngcontent-%COMP%]{padding:.6rem .7rem .4rem;min-width:0}.tile-body[_ngcontent-%COMP%]   .document-name[_ngcontent-%COMP%]{margin:0;font-weight:600;font-size:.875rem;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tile-body[_ngcontent-%COMP%]   .document-meta[_ngcontent-%COMP%]{margin:0;font-size:.75rem;color:var(--color-text-muted)}.tile-download[_ngcontent-%COMP%]{margin:0 .7rem .7rem;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;border:1px solid var(--color-portal);background:transparent;color:var(--color-portal);border-radius:var(--radius-full);padding:.3rem .6rem;font-size:.8125rem;font-weight:600;cursor:pointer}.tile-download[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:15px;height:15px}.tile-download[_ngcontent-%COMP%]:hover{background:var(--color-portal);color:#fff}.lightbox-overlay[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:1080;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:#000000d1}.lightbox-overlay[_ngcontent-%COMP%]   img[_ngcontent-%COMP%]{max-width:100%;max-height:100%;border-radius:var(--radius);object-fit:contain}.lightbox-close[_ngcontent-%COMP%]{position:absolute;top:1rem;right:1rem;width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:#ffffff26;color:#fff;cursor:pointer}.lightbox-close[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:20px;height:20px}.lightbox-close[_ngcontent-%COMP%]:hover{background:#ffffff4d}.documents-empty[_ngcontent-%COMP%], .documents-error[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;gap:.6rem;padding:3rem 1rem;color:var(--color-text-muted);text-align:center}:is(.documents-empty[_ngcontent-%COMP%], .documents-error[_ngcontent-%COMP%])   svg[_ngcontent-%COMP%]{width:44px;height:44px;opacity:.45}:is(.documents-empty[_ngcontent-%COMP%], .documents-error[_ngcontent-%COMP%])   p[_ngcontent-%COMP%]{margin:0}.documents-list[_ngcontent-%COMP%]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.document-card[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.9rem;padding:.9rem 1rem;border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);background:var(--color-bg)}.document-icon[_ngcontent-%COMP%]{flex:0 0 auto;width:42px;height:42px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius);background:var(--color-surface);color:var(--color-portal)}.document-icon[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:22px;height:22px}.document-body[_ngcontent-%COMP%]{flex:1 1 auto;min-width:0}
1.document-body[_ngcontent-%COMP%]   .document-name[_ngcontent-%COMP%]{margin:0;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.document-body[_ngcontent-%COMP%]   .document-meta[_ngcontent-%COMP%]{margin:0;font-size:.8125rem;color:var(--color-text-muted)}.document-body[_ngcontent-%COMP%]   .dot[_ngcontent-%COMP%]{margin:0 .25rem}.document-download[_ngcontent-%COMP%]{flex:0 0 auto;display:inline-flex;align-items:center;gap:.35rem;border:1px solid var(--color-portal);background:transparent;color:var(--color-portal);border-radius:var(--radius-full);padding:.35rem .85rem;font-size:.8125rem;font-weight:600;cursor:pointer}.document-download[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:16px;height:16px}.document-download[_ngcontent-%COMP%]:hover{background:var(--color-portal);color:#fff}"]});};var Zl=n=>["/portal/meal-plans",n];function e_(n,t){if(n&1&&m(0,"img",12),n&2){let e,i=c(2);A("src",(e=i.visit())==null||e.tenant==null?null:e.tenant.logoUrl,te);}}function t_(n,t){if(n&1&&(o(0,"div",21),d(1),a()),n&2){let e,i=c(3);r(),M((e=i.visit())==null||e.sessionNote==null?null:e.sessionNote.type);}}function n_(n,t){if(n&1&&(o(0,"div",16)(1,"div",19),E(),o(2,"svg",8),m(3,"path",20),a(),N(),o(4,"span"),d(5),a()(),p(6,t_,2,1,"div",21),m(7,"div",22),a()),n&2){let e,i,l,s=c(2);r(5),M(((e=s.visit())==null||e.sessionNote==null?null:e.sessionNote.title)||"Session Notes"),r(),g(!((i=s.visit())==null||i.sessionNote==null)&&i.sessionNote.type?6:-1),r(),A("innerHTML",s.formatNoteContent(((l=s.visit())==null||l.sessionNote==null?null:l.sessionNote.content)||""),Nn);}}function o_(n,t){n&1&&(o(0,"div",17)(1,"div",23),E(),o(2,"svg",8),m(3,"path",20),a()(),N(),o(4,"p"),d(5,"No notes were recorded for this session."),a()());}function i_(n,t){if(n&1&&(o(0,"div",18)(1,"div",24),E(),o(2,"svg",8),m(3,"path",25),a(),N(),o(4,"span"),d(5,"Meal Plan from this Session"),a()(),o(6,"a",26)(7,"div",27)(8,"span",28),d(9),a(),o(10,"div",29)(11,"span",30),d(12),R(13,"number"),a(),o(14,"span",30),d(15),R(16,"number"),a(),o(17,"span",30),d(18),R(19,"number"),a(),o(20,"span",30),d(21),R(22,"number"),a()()(),E(),o(23,"svg",31),m(24,"path",32),a()()()),n&2){let e,i,l,s,T,f,b=c(2);r(6),A("routerLink",fe(18,Zl,(e=b.visit())==null||e.mealPlan==null?null:e.mealPlan.id)),r(3),M((i=b.visit())==null||i.mealPlan==null?null:i.mealPlan.name),r(3),I("",y(13,6,(l=b.visit())==null||l.mealPlan==null?null:l.mealPlan.totalCalories,"1.0-0")," kcal"),r(3),I("",y(16,9,(s=b.visit())==null||s.mealPlan==null?null:s.mealPlan.totalProtein,"1.0-0"),"g P"),r(3),I("",y(19,12,(T=b.visit())==null||T.mealPlan==null?null:T.mealPlan.totalCarbs,"1.0-0"),"g C"),r(3),I("",y(22,15,(f=b.visit())==null||f.mealPlan==null?null:f.mealPlan.totalFat,"1.0-0"),"g F");}}function a_(n,t){if(n&1&&(o(0,"div",6)(1,"div",7),E(),o(2,"svg",8),m(3,"path",9),a(),N(),o(4,"span"),d(5),a()(),o(6,"h1",10),d(7),a(),o(8,"div",11),p(9,e_,1,1,"img",12),o(10,"div",13)(11,"span",14),d(12),a(),o(13,"span",15),d(14),a()()()(),p(15,n_,8,3,"div",16)(16,o_,6,0,"div",17),p(17,i_,25,20,"div",18)),n&2){let e,i,l,s,T,f,b,L=c();r(5),M((e=L.visit())==null||e.appointment==null?null:e.appointment.dateDisplay),r(2),M((i=L.visit())==null||i.appointment==null?null:i.appointment.title),r(2),g(!((l=L.visit())==null||l.tenant==null)&&l.tenant.logoUrl?9:-1),r(3),M((s=L.visit())==null||s.tenant==null?null:s.tenant.businessName),r(2),le("",(T=L.visit())==null||T.appointment==null?null:T.appointment.timeDisplay," - ",(T=L.visit())==null||T.appointment==null?null:T.appointment.duration," min"),r(),g((f=L.visit())!=null&&f.sessionNote?15:16),r(2),g((b=L.visit())!=null&&b.mealPlan?17:-1);}}function r_(n,t){n&1&&(o(0,"div",5)(1,"div",33),E(),o(2,"svg",8),m(3,"path",34),a()(),N(),o(4,"h3"),d(5,"Session not found"),a(),o(6,"p"),d(7,"The session you're looking for doesn't exist or you don't have access to it."),a(),o(8,"a",35),d(9,"Go to Visit History"),a()());}var Dt=class n{route=v(ve);router=v(me);portalService=v(ee);sanitizer=v(In);loading=S(!0);visit=S(null);ngOnInit(){let t=this.route.snapshot.paramMap.get("id");t?this.loadSessionNotes(t):this.loading.set(!1);}loadSessionNotes(t){this.loading.set(!0),this.portalService.getVisitHistory().subscribe({next:e=>{let i=e.visits.find(l=>l.appointment?.id===t);this.visit.set(i||null),this.loading.set(!1);},error:()=>{this.loading.set(!1);}});}formatNoteContent(t){return t?this.sanitizer.bypassSecurityTrustHtml(t):this.sanitizer.bypassSecurityTrustHtml("");}static ɵfac=function(e){return new(e||n)();};static ɵcmp=H({type:n,selectors:[["app-portal-session-notes"]],decls:9,vars:3,consts:[[1,"session-notes-container"],["routerLink","/portal/visit-history",1,"back-link"],["xmlns","http://www.w3.org/2000/svg","fill","none","viewBox","0 0 24 24","stroke-width","2","stroke","currentColor"],["stroke-linecap","round","stroke-linejoin","round","d","M15.75 19.5L8.25 12l7.5-7.5"],["message","Loading session notes...",3,"loading"],[1,"not-found"],[1,"session-header-card"],[1,"session-date-badge"],["xmlns","http://www.w3.org/2000/svg","fill","none","viewBox","0 0 24 24","stroke-width","1.5","stroke","currentColor"],["stroke-linecap","round","stroke-linejoin","round","d","M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 012.25-2.25h13.5A2.25 2.25 0 0121 7.5v11.25m-18 0A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75m-18 0v-7.5A2.25 2.25 0 015.25 9h13.5A2.25 2.25 0 0121 11.25v7.5"],[1,"session-title"],[1,"session-meta"],["alt","Logo",1,"tenant-logo",3,"src"],[1,"meta-text"],[1,"tenant-name"],[1,"session-time"],[1,"notes-card"],[1,"empty-notes"],[1,"meal-plan-card"],[1,"n
1otes-header"],["stroke-linecap","round","stroke-linejoin","round","d","M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z"],[1,"note-type-badge"],[1,"notes-content",3,"innerHTML"],[1,"empty-icon"],[1,"meal-plan-header"],["stroke-linecap","round","stroke-linejoin","round","d","M9 12h3.75M9 15h3.75M9 18h3.75m3 .75H18a2.25 2.25 0 002.25-2.25V6.108c0-1.135-.845-2.098-1.976-2.192a48.424 48.424 0 00-1.123-.08m-5.801 0c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75 2.25 2.25 0 00-.1-.664m-5.8 0A2.251 2.251 0 0113.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m0 0H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V9.375c0-.621-.504-1.125-1.125-1.125H8.25z"],[1,"meal-plan-link",3,"routerLink"],[1,"meal-plan-info"],[1,"meal-plan-name"],[1,"meal-plan-macros"],[1,"macro"],["xmlns","http://www.w3.org/2000/svg","fill","none","viewBox","0 0 24 24","stroke-width","2","stroke","currentColor",1,"arrow-icon"],["stroke-linecap","round","stroke-linejoin","round","d","M8.25 4.5l7.5 7.5-7.5 7.5"],[1,"not-found-icon"],["stroke-linecap","round","stroke-linejoin","round","d","M12 9v3.75m9-.75a9 9 0 11-18 0 9 9 0 0118 0zm-9 3.75h.008v.008H12v-.008z"],["routerLink","/portal/visit-history",1,"back-btn"]],template:function(e,i){e&1&&(o(0,"div",0)(1,"a",1),E(),o(2,"svg",2),m(3,"path",3),a(),N(),o(4,"span"),d(5,"Back to Visit History"),a()(),m(6,"app-loading",4),p(7,a_,18,8),p(8,r_,10,0,"div",5),a()),e&2&&(r(6),A("loading",i.loading()),r(),g(!i.loading()&&i.visit()?7:-1),r(),g(!i.loading()&&!i.visit()?8:-1));},dependencies:[j,_e,qe,Pe],styles:['.session-notes-container[_ngcontent-%COMP%]{max-width:640px;margin:0 auto}.back-link[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:8px;color:#6b7280;text-decoration:none;font-size:14px;font-weight:500;margin-bottom:20px;padding:8px 0;transition:color .2s}.back-link[_ngcontent-%COMP%]:hover{color:#03a791}.back-link[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:18px;height:18px}.session-header-card[_ngcontent-%COMP%]{background:#fff;border-radius:16px;padding:20px;box-shadow:0 1px 3px #0000001a;margin-bottom:16px}.session-date-badge[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;background:#03a7911a;color:#03a791;padding:6px 12px;border-radius:20px;font-size:13px;font-weight:500;margin-bottom:12px}.session-date-badge[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:16px;height:16px}.session-title[_ngcontent-%COMP%]{font-size:22px;font-weight:700;color:#1f2937;margin:0 0 16px;line-height:1.3}.session-meta[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px}.tenant-logo[_ngcontent-%COMP%]{width:44px;height:44px;border-radius:10px;object-fit:contain;background:#f9fafb;flex-shrink:0}.meta-text[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2px}
1.tenant-name[_ngcontent-%COMP%]{font-size:15px;font-weight:600;color:#1f2937}.session-time[_ngcontent-%COMP%]{font-size:13px;color:#6b7280}.notes-card[_ngcontent-%COMP%]{background:#fff;border-radius:16px;padding:20px;box-shadow:0 1px 3px #0000001a;margin-bottom:16px}.notes-header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;color:#03a791;font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #e5e7eb}.notes-header[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:20px;height:20px}.notes-content[_ngcontent-%COMP%]{font-size:15px;line-height:1.7;color:#374151;word-break:break-word}.notes-content[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 12px}.notes-content[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]:last-child{margin-bottom:0}.notes-content[_ngcontent-%COMP%]   ul[_ngcontent-%COMP%], .notes-content[_ngcontent-%COMP%]   ol[_ngcontent-%COMP%]{margin:0 0 12px;padding-left:24px}.notes-content[_ngcontent-%COMP%]   li[_ngcontent-%COMP%]{margin-bottom:4px}.notes-content[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%], .notes-content[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%], .notes-content[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{margin:16px 0 8px;font-weight:600}.notes-content[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]:first-child, .notes-content[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]:first-child, .notes-content[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]:first-child{margin-top:0}.notes-content[_ngcontent-%COMP%]   strong[_ngcontent-%COMP%], .notes-content[_ngcontent-%COMP%]   b[_ngcontent-%COMP%]{font-weight:600}.notes-content[_ngcontent-%COMP%]   em[_ngcontent-%COMP%], .notes-content[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{font-style:italic}.notes-content[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]{color:#03a791;text-decoration:underline}.empty-notes[_ngcontent-%COMP%]{background:#fff;border-radius:16px;padding:40px 20px;box-shadow:0 1px 3px #0000001a;margin-bottom:16px;text-align:center}.empty-icon[_ngcontent-%COMP%]{width:56px;height:56px;border-radius:50%;background:#f3f4f6;color:#9ca3af;display:flex;align-items:center;justify-content:center;margin:0 auto 16px}.empty-icon[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:28px;height:28px}.empty-notes[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{font-size:14px;color:#6b7280;margin:0}.note-type-badge[_ngcontent-%COMP%]{display:inline-block;background:#e5e7eb;color:#4b5563;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;padding:4px 10px;border-radius:6px;margin-bottom:16px}.meal-plan-card[_ngcontent-%COMP%]{background:#fff;border-radius:16px;padding:20px;box-shadow:0 1px 3px #0000001a}.meal-plan-header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;color:#6b7280;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;margin-bottom:12px}.meal-plan-header[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:18px;height:18px}.meal-plan-link[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;background:#03a7910d;border:1px solid rgba(3,167,145,.2);border-radius:12px;padding:16px;text-decoration:none;color:inherit;transition:all .2s}.meal-plan-link[_ngcontent-%COMP%]:hover{background:#03a7911a;border-color:#03a791}.meal-plan-info[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:6px}.meal-plan-name[_ngcontent-%COMP%]{font-size:16px;font-weight:600;color:#1f2937}.meal-plan-macros[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:8px}.macro[_ngcontent-%COMP%]{font-size:12px;color:#6b7280;background:#6b72801a;padding:3px 8px;border-radius:6px}.arrow-icon[_ngcontent-%COMP%]{width:20px;height:20px;color:#03a791;flex-shrink:0}.not-found[_ngcontent-%COMP%]{background:#fff;border-radius:16px;padding:48px 24px;box-shadow:0 1px 3px #0000001a;text-align:center}.not-found-icon[_ngcontent-%COMP%]{width:64px;height:64px;border-radius:50%;background:#fef3c7;color:#f59e0b;display:flex;align-items:center;justify-content:center;margin:0 auto 20px}.not-found-icon[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:32px;height:32px}.not-found[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font-size:18px;font-weight:600;color:#1f2937;margin:0 0 8px}.not-found[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{font-size:14px;color:#6b7280;margin:0 0 20px}.back-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;background:#03a791;color:#fff;padding:10px 20px;border-radius:8px;text-decoration:none;font-size:14px;font-weight:500;transition:background .2s}.back-btn[_ngcontent-%COMP%]:hover{background:#028576}@media(min-width:640px){.session-header-card[_ngcontent-%COMP%]{padding:24px}.session-title[_ngcontent-%COMP%]{font-size:26px}.notes-card[_ngcontent-%COMP%]{padding:24px}.notes-content[_ngcontent-%COMP%]{font-size:16px}.meal-plan-card[_ngcontent-%COMP%]{padding:24px}}[data-theme="dark"][_nghost-%COMP%]   .session-header-card[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .session-header-card[_ngcontent-%COMP%]{background:#1e293b}[data-theme="dark"][_nghost-%COMP%]   .session-date-badge[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .session-date-badge[_ngcontent-%COMP%]{background:#03a79126}[data-theme="dark"][_nghost-%COMP%]   .session-title[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .session-title[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .tenant-logo[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .tenant-logo[_ngcontent-%COMP%]{background:#334155}
1[data-theme="dark"][_nghost-%COMP%]   .tenant-name[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .tenant-name[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .session-time[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .session-time[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .back-link[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .back-link[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .notes-card[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .notes-card[_ngcontent-%COMP%]{background:#1e293b}[data-theme="dark"][_nghost-%COMP%]   .notes-header[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .notes-header[_ngcontent-%COMP%]{border-bottom-color:#475569}[data-theme="dark"][_nghost-%COMP%]   .notes-content[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .notes-content[_ngcontent-%COMP%]{color:#e2e8f0}[data-theme="dark"][_nghost-%COMP%]   .note-type-badge[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .note-type-badge[_ngcontent-%COMP%]{background:#475569;color:#cbd5e1}[data-theme="dark"][_nghost-%COMP%]   .empty-notes[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .empty-notes[_ngcontent-%COMP%]{background:#1e293b}[data-theme="dark"][_nghost-%COMP%]   .empty-icon[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .empty-icon[_ngcontent-%COMP%]{background:#334155;color:#cbd5e1}[data-theme="dark"][_nghost-%COMP%]   .empty-notes[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .empty-notes[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .meal-plan-card[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .meal-plan-card[_ngcontent-%COMP%]{background:#1e293b}[data-theme="dark"][_nghost-%COMP%]   .meal-plan-header[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .meal-plan-header[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .meal-plan-link[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .meal-plan-link[_ngcontent-%COMP%]{background:#03a7911a}[data-theme="dark"][_nghost-%COMP%]   .meal-plan-link[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .meal-plan-link[_ngcontent-%COMP%]:hover{background:#03a79126}[data-theme="dark"][_nghost-%COMP%]   .meal-plan-name[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .meal-plan-name[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .macro[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .macro[_ngcontent-%COMP%]{color:#94a3b8;background:#94a3b826}[data-theme="dark"][_nghost-%COMP%]   .arrow-icon[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .arrow-icon[_ngcontent-%COMP%]{color:#64748b}[data-theme="dark"][_nghost-%COMP%]   .not-found[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .not-found[_ngcontent-%COMP%]{background:#1e293b}[data-theme="dark"][_nghost-%COMP%]   .not-found-icon[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .not-found-icon[_ngcontent-%COMP%]{background:#422006;color:#fbbf24}[data-theme="dark"][_nghost-%COMP%]   .not-found[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .not-found[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .not-found[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .not-found[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:#94a3b8}']});};var l_=(n,t)=>t.id;function __(n,t){if(n&1){let e=x();o(0,"div",36)(1,"div",38),E(),o(2,"svg",39),m(3,"path",40),a()(),N(),o(4,"h3"),_(5,1),a(),o(6,"p"),_(7,2),a(),o(8,"button",41),h("click",function(){O(e);let l=c();return u(l.retry());}),E(),o(9,"svg",42),m(10,"path",43),a(),N(),o(11,"span"),_(12,3),a()()();}}function c_(n,t){n&1&&m(0,"span",56);}function s_(n,t){if(n&1&&(o(0,"div",69)(1,"span"),_(2,8),a(),d(3),o(4,"span"),_(5,9),a()()),n&2){let e=c(3);r(3),I(": ",e.profile().age," ");}}function d_(n,t){if(n&1&&(o(0,"div",66)(1,"div",67),d(2),R(3,"number"),a(),o(4,"div",68),d(5),a(),p(6,s_,6,1,"div",69),a(),o(7,"div",70)(8,"div",71),m(9,"div",72)(10,"div",73)(11,"div",74)(12,"div",75),a(),m(13,"div",76),o(14,"div",77)(15,"span"),d(16,"<18.5"),a(),o(17,"span"),d(18,"18.5-24.9"),a(),o(19,"span"),d(20,"25-29.9"),a(),o(21,"span"),d(22,"30+"),a()()()),n&2){let e,i=c(2);r(),be(i.getBmiClass()),r(),I(" ",y(3,9,i.profile().bmi,"1.1-1")," "),r(2),be(i.getBmiClass()),r(),I(" ",i.getBmiCategoryLabel()," "),r(),g((e=i.profile())!=null&&e.age?6:-1),r(7),Te("left",i.getBmiIndicatorPosition(),"%");}}function p_(n,t){n&1&&(o(0,"p"),_(1,10),a());}function g_(n,t){n&1&&(o(0,"p"),_(1,11),a());}function m_(n,t){if(n&1&&(o(0,"div",59),p(1,p_,2,0,"p")(2,g_,2,0,"p"),a()),n&2){let e,i=c(2);r(),g((e=i.profile())!=null&&e.height?(e=i.summary())!=null&&e.currentWeight?-1:2:1);}}function C_(n,t){if(n&1&&(o(0,"div",60)(1,"div",78)(2,"div",79),E(),o(3,"svg",39),m(4,"path",80),a()(),N(),o(5,"div",81)(6,"span",82),_(7,12),a(),o(8,"span",83),d(9),R(10,"number"),a()()(),o(11,"div",78)(12,"div",84),E(),o(13,"svg",39),m(14,"path",85),a()(),N(),o(15,"div",81)(16,"span",82),_(17,13),a(),o(18,"span",83),d(19),R(20,"number"),a()()(),o(21,"div",78)(22,"div",86),E(),o(23,"svg",39),m(24,"path",87),a()(),N(),o(25,"div",81)(26,"span",82),_(27,14),a(),o(28,"span",83),d(29),R(30,"number"),a()()()()),n&2){let e,i,l,s,T,f,b,L=c(2);r(9),M((e=L.summary())!=null&&e.currentWeight?y(10,11,L.summary().currentWeight,"1.1-1")+" kg":"-"),r(10),M((i=L.summary())!=null&&i.startWeight?y(20,14,L.summary().startWeight,"1.1-1")+" kg":"-"),r(3),z("positive",(((l=L.summary())==null?null:l.weightChange)??0)<0)("negative",(((s=L.summary())==null?null:s.weightChange)??0)>0),r(6),z("positive",(((T=L.summary())==null?null:T.weightChange)??0)<0)("negative",(((f=L.summary())==null?null:f.weightChange)??0)>0),r(),I(" ",((b=L.summary())==null?null:b.weightChange)!==null&&((b=L.summary())==null?null:b.weightChange)!==void 0?(L.summary().weightChange>0?"+":"")+y(30,17,L.summary().weightChange,"1.1-1")+" kg":"-"," ");}}function P_(n,t){n&1&&(o(0,"div",61)(1,"h2",88),_(2,15),a(),o(3,"div",89),m(4,"canvas",90),a()());}function O_(n,t){if(n&1){let e=x();o(0,"button",91),h("click",function(){O(e);let l=c(2);return u(l.openAddForm());}),E(),o(1,"svg",42),m(2,"path",92),a(),N(),o(3,"span"),_(4,16),a()();}}function u_(n,t){n&1&&(o(0,"span"),_(1,21),a());}function M_(n,t){n&1&&(o(0,"span"),_(1,22),a());}function E_(n,t){n&1&&m(0,"span",56);}function T_(n,t){n&1&&(o(0,"span"),_(1,23),a());}function f_(n,t){n&1&&(o(0,"span"),_(1,24),a());}function h_(n,t){if(n&1){let e=x();o(0,"div",63)(1,"h2",93),p(2,u_,2,0,"span")(3,M_,2,0,"span"),a(),o(4,"form",94),h("ngSubmit",function(){O(e);let l=c(2);return u(l.saveLog());}),o(5,"div",95)(6,"div",50)(7,"label",96),_(8,17),a(),o(9,"input",97),De("ngModelChange",function(l){O(e);let s=c(2);return Ve(s.formDate,l)||(s.formDate=l),u(l);}),a()(),o(10,"div",50)(11,"label",98),_(12,18),a(),o(13,"input",99),De("ngModelChange",function(l){O(e);let s=c(2);return Ve(s.formWeight,l)||(s.formWeight=l),u(l);}),h("input",function(){O(e);let l=c(2);return u(l.weightMissing.set(!1));}),a()()(),o(14,"div",50)(15,"label",100),_(16,19),a(),o(17,"textarea",101),De("ngModelChange",function(l){O(e);let s=c(2);return Ve(s.formNotes,l)||(s.formNotes=l),u(l);}),a()(),o(18,"div",102)(19,"button",103),h("click",function(){O(e);let l=c(2);return u(l.closeForm());}),_(20,20),a(),o(21,"button",104),p(22,E_,1,0,"span",56),p(23,T_,2,0,"span")(24,f_,2,0,"span"),a()()()();}if(n&2){let e=c(2);r(2),g(e.editingLogId()?2:3),r(7),Ue("ngModel",e.formDate),r(4),z("input-error",e.weightMissing()),Ue("ngModel",e.formWeight),r(4),Ue("ngModel",e.formNotes),r(4),A("disabled",e.saving()),r(),g(e.saving()?22:-1),r(),g(e.editingLogId()?23:24);}}function S_(n,t){if(n&1&&(o(0,"span",115),d(1),R(2,"number"),a()),n&2){let e=c().$implicit;r(),I("",y(2,1,e.weight,"1.1-1")," kg");}}function N_(n,t){if(n&1&&(o(0,"p",116),d(1),a()),n&2){let e=c().$implicit;r(),M(e.notes);}}function b_(n,t){if(n&1){let e=x();o(0,"div",109)(1,"div",110)(2,"span",111),d(3),a(),o(4,"span",112),d(5),a()(),o(6,"div",113)(7,"div",114),p(8,S_,3,4,"span",115),a(),p(9,N_,2,1,"p",116),a(),o(10,"div",117)(11,"button",118),h("click",function(){let l=O(e).$implicit,s=c(3);return u(s.startEdit(l));}),E(),o(12,"svg",39),m(13,"path",119),a()(),N(),o(14,"button",120),h("click",function(){let l=O(e).$implicit,s=c(3);return u(s.confirmDelete(l));}),E(),o(15,"svg",39),m(16,"path",121),a()()()();}if(n&2){let e=t.$implicit,i=c(3);z("editing",i.editingLogId()===e.id),r(3),M(i.getDay(e.logDate)),r(2),M(i.getMonthDisplay(e.logDate)),r(3),g(e.weight?8:-1),r(),g(e.notes?9:-1);}}function x_(n,t){if(n&1&&(o(0,"div",64)(1,"h2",105),_(2,25),a(),o(3,"div",106),_(4,26),a(),o(5,"div",107),X(6,b_,17,6,"div",108,l_),a()()),n&2){let e=c(2);r(4),ae(e.logs().length)(e.logs().length),re(4),r(2),W(e.logs());}}
1function A_(n,t){n&1&&(o(0,"div",65)(1,"div",122),E(),o(2,"svg",39),m(3,"path",80),a()(),N(),o(4,"h3"),_(5,27),a(),o(6,"p"),_(7,28),a()());}function L_(n,t){if(n&1){let e=x();o(0,"div",44)(1,"div",45)(2,"h2",46),E(),o(3,"svg",39),m(4,"path",47),a(),N(),o(5,"span"),_(6,4),a()(),o(7,"form",48),h("ngSubmit",function(){O(e);let l=c();return u(l.saveProfile());}),o(8,"div",49)(9,"div",50)(10,"label",51),_(11,5),a(),o(12,"input",52),De("ngModelChange",function(l){O(e);let s=c();return Ve(s.profileHeight,l)||(s.profileHeight=l),u(l);}),a()(),o(13,"div",50)(14,"label",53),_(15,6),a(),o(16,"input",54),De("ngModelChange",function(l){O(e);let s=c();return Ve(s.profileBirthDate,l)||(s.profileBirthDate=l),u(l);}),a()()(),o(17,"button",55),p(18,c_,1,0,"span",56),o(19,"span"),_(20,7),a()()()(),o(21,"div",57)(22,"h2",46),E(),o(23,"svg",39),m(24,"path",58),a(),N(),o(25,"span"),d(26,"BMI"),a()(),p(27,d_,23,12)(28,m_,3,1,"div",59),a()(),p(29,C_,31,20,"div",60),p(30,P_,5,0,"div",61),p(31,O_,5,0,"button",62),p(32,h_,25,9,"div",63),p(33,x_,8,2,"div",64)(34,A_,8,0,"div",65);}if(n&2){let e,i=c();r(12),Ue("ngModel",i.profileHeight),r(4),Ue("ngModel",i.profileBirthDate),r(),A("disabled",i.savingProfile()),r(),g(i.savingProfile()?18:-1),r(9),g((e=i.profile())!=null&&e.bmi?27:28),r(2),g(i.summary()?29:-1),r(),g(i.hasWeightData()?30:-1),r(),g(i.showForm()?-1:31),r(),g(i.showForm()?32:-1),r(),g(i.logs().length>0?33:i.loading()?-1:34);}}function v_(n,t){n&1&&m(0,"span",56);}function R_(n,t){if(n&1){let e=x();o(0,"div",123),h("click",function(){O(e);let l=c();return u(l.cancelDelete());}),o(1,"div",124),h("click",function(l){return O(e),u(l.stopPropagation());}),o(2,"h3"),_(3,29),a(),o(4,"p"),_(5,30),a(),o(6,"div",125)(7,"button",103),h("click",function(){O(e);let l=c();return u(l.cancelDelete());}),_(8,31),a(),o(9,"button",126),h("click",function(){O(e);let l=c();return u(l.deleteLog());}),p(10,v_,1,0,"span",56),o(11,"span"),_(12,32),a()()()()();}if(n&2){let e=c();r(9),A("disabled",e.deleting()),r(),g(e.deleting()?10:-1);}}Kt.register(...Bn);var Ht=class n{portalService=v(ee);localeId=v(He);themeService=v(Nt);notificationService=v(We);loadingMessage="Loading your progress...";loading=S(!0);loadError=S(!1);saving=S(!1);deleting=S(!1);savingProfile=S(!1);logs=S([]);summary=S(null);profile=S(null);profileHeight=null;profileBirthDate="";formDate="";formWeight=null;formNotes="";editingLogId=S(null);weightMissing=S(!1);showForm=S(!1);showDeleteModal=S(!1);logToDelete=S(null);weightChart=null;chartInitialized=!1;onThemeChanged=()=>{this.chartInitialized&&this.hasWeightData()&&this.initializeChart();};hasWeightData=q(()=>this.logs().some(t=>t.weight!==null&&t.weight!==void 0));ngOnInit(){window.addEventListener("vitena-theme-changed",this.onThemeChanged),this.resetForm(),this.loadProgressLogs(),this.loadProfile();}ngAfterViewInit(){setTimeout(()=>{this.hasWeightData()&&this.initializeChart(),this.chartInitialized=!0;},100);}ngOnDestroy(){window.removeEventListener("vitena-theme-changed",this.onThemeChanged),this.weightChart&&this.weightChart.destroy();}resetForm(){this.formDate=eo(),this.formWeight=null,this.formNotes="",this.editingLogId.set(null);}loadProgressLogs(){this.loading.set(!0),this.loadError.set(!1),this.portalService.getProgressLogs().subscribe({next:t=>{this.logs.set(t.logs),this.summary.set(t.summary??null),this.loading.set(!1),this.chartInitialized&&this.hasWeightData()&&setTimeout(()=>this.initializeChart(),50);},error:()=>{this.loadError.set(!0),this.loading.set(!1);}});}retry(){this.loadProgressLogs(),this.loadProfile();}saveLog(){if(!this.saving()){if(!this.formWeight){this.weightMissing.set(!0),this.notificationService.showWarning("Please enter a weight value");return;}if(this.saving.set(!0),this.editingLogId()){let t={logDate:this.formDate,weight:this.formWeight,notes:this.formNotes||void 0};this.portalService.updateProgressLog(this.editingLogId(),t).subscribe({next:()=>{this.saving.set(!1),this.resetForm(),this.showForm.set(!1),this.loadProgressLogs(),this.loadProfile();},error:()=>{this.saving.set(!1);}});}
1else{let t={logDate:this.formDate,weight:this.formWeight,notes:this.formNotes||void 0};this.portalService.createProgressLog(t).subscribe({next:()=>{this.saving.set(!1),this.resetForm(),this.showForm.set(!1),this.loadProgressLogs(),this.loadProfile();},error:()=>{this.saving.set(!1);}});}}}startEdit(t){this.editingLogId.set(t.id),this.formDate=t.logDate.split("T")[0],this.formWeight=t.weight??null,this.formNotes=t.notes??"",this.showForm.set(!0),setTimeout(()=>{document.querySelector(".add-log-card")?.scrollIntoView({behavior:"smooth",block:"start"});},50);}openAddForm(){this.resetForm(),this.showForm.set(!0),setTimeout(()=>{document.querySelector(".add-log-card")?.scrollIntoView({behavior:"smooth",block:"start"});},50);}closeForm(){this.resetForm(),this.showForm.set(!1);}cancelEdit(){this.resetForm(),this.showForm.set(!1);}confirmDelete(t){this.logToDelete.set(t),this.showDeleteModal.set(!0);}cancelDelete(){this.showDeleteModal.set(!1),this.logToDelete.set(null);}deleteLog(){let t=this.logToDelete();!t||this.deleting()||(this.deleting.set(!0),this.portalService.deleteProgressLog(t.id).subscribe({next:()=>{this.deleting.set(!1),this.showDeleteModal.set(!1),this.logToDelete.set(null),this.loadProgressLogs(),this.loadProfile();},error:()=>{this.deleting.set(!1);}}));}initializeChart(){let t=document.getElementById("weightChart");if(!t)return;this.weightChart&&(this.weightChart.destroy(),this.weightChart=null);let e=this.logs().filter(s=>s.weight!==null&&s.weight!==void 0).sort((s,T)=>{let f=new Date(s.logDate).getTime()-new Date(T.logDate).getTime();return f!==0?f:new Date(s.createdAt).getTime()-new Date(T.createdAt).getTime();});if(e.length===0)return;let i=e.map(s=>new Date(s.logDate).toLocaleDateString(this.localeId,{day:"numeric",month:"short"})),l=e.map(s=>s.weight);this.weightChart=new Kt(t,{type:"line",data:{labels:i,datasets:[{label:"Weight (kg)",data:l,borderColor:"#03A791",backgroundColor:"rgba(3, 167, 145, 0.1)",tension:.3,fill:!0,pointRadius:4,pointBackgroun
1dColor:"#03A791",pointBorderColor:this.themeService.getColors().bg,pointBorderWidth:2,pointHoverRadius:6}]},options:{responsive:!0,maintainAspectRatio:!1,plugins:{legend:{display:!1},datalabels:{display:!1}},scales:{y:{beginAtZero:!1,ticks:{callback:s=>s+" kg",color:this.themeService.getColors().tickLabel},grid:{color:this.themeService.getColors().gridLine}},x:{ticks:{maxRotation:45,minRotation:0,maxTicksLimit:10,color:this.themeService.getColors().tickLabel},grid:{color:this.themeService.getColors().gridLine}}}}});}getDay(t){return new Date(t).getDate().toString();}getMonthDisplay(t){return new Date(t).toLocaleDateString(this.localeId,{month:"short"});}loadProfile(){this.portalService.getProfile().subscribe({next:t=>{this.profile.set(t),this.profileHeight=t.height??null,this.profileBirthDate=t.birthDate?t.birthDate.split("T")[0]:"";},error:t=>{console.error("Error loading profile:",t);}});}saveProfile(){if(this.savingProfile())return;this.savingProfile.set(!0);let t={};this.profileHeight!==null&&this.profileHeight>0&&(t.height=this.profileHeight),this.profileBirthDate&&(t.birthDate=this.profileBirthDate),this.portalService.updateProfile(t).subscribe({next:e=>{this.profile.set(e),this.savingProfile.set(!1);},error:e=>{console.error("Error saving profile:",e),this.savingProfile.set(!1);}});}getBmiClass(){let t=this.profile()?.bmiCategory;if(!t)return"";switch(t.toLowerCase()){case"underweight":return"bmi-underweight";case"normal":return"bmi-normal";case"overweight":return"bmi-overweight";case"obese":return"bmi-obese";default:return"";}}getBmiCategoryLabel(){let t=this.profile()?.bmiCategory?.toLowerCase();if(!t)return"";switch(t){case"underweight":return"Underweight";case"normal":return"Normal";case"overweight":return"Overweight";case"obese":return"Obese";default:return t;}}getBmiIndicatorPosition(){let t=this.profile()?.bmi;if(!t)return 0;let e=[{min:10,max:18.5,start:0,end:25},{min:18.5,max:25,start:25,end:50},{min:25,max:30,start:50,end:75},{min:30,max:45,start:75,end:100}],i=e.find(T=>t<T.max)??e[e.length-1],l=(t-i.min)/(i.max-i.min),s=i.start+l*(i.end-i.start);return Math.max(2,Math.min(98,s));}static ɵfac=function(e){return new(e||n)();};static ɵcmp=H({type:n,selectors:[["app-portal-progress"]],decls:7,vars:5,consts:()=>{let t;t="Track your weight, BMI, and overall health progress over time.";let e;e="Couldn't load your progress";let i;i="Please check your connection and try again.";let l;l="Try again";let s;s="e.g. 170";let T;T="Profile Info";let f;f="Height (cm)";let b;b="Birth Date";let L;L="Save";let w;w="Age";let J;J="years";let G;G="Enter your height to see your BMI";let D;D="Add a weight entry to calculate your BMI";let Y;Y="Current";let oe;oe="Start";let ie;ie="Change";let B;B="Weight History";let ce;ce="Add Weight";let se;se="e.g. 72.5";let F;F="How are you feeling today?";let Oe;Oe="Date";let ue;ue="Weight (kg)";let Q;Q="Notes (optional)";let he;he="Cancel";let Me;Me="Edit Log";let Se;Se="Add New Entry";let Ne;Ne="Save";let K;K="Add Entry";let ke;ke="History";let Ae;Ae="{VAR_PLURAL, plural, =1 {1 entry} other {{INTERPOLATION} entries}}",Ae=Le(Ae,{INTERPOLATION:"\uFFFD1\uFFFD",VAR_PLURAL:"\uFFFD0\uFFFD"});let Ie;Ie="Edit";let we;we="Delete";let $e;$e="No entries yet";let Fe;Fe="Start tracking your progress by adding your first weight entry above.";let V;V="Delete Entry?";let ct;ct="Are you sure you want to delete this progress entry? This action cannot be undone.";let st;st="Cancel";let dt;return dt="Delete",[t,e,i,l,T,f,b,L,w,J,G,D,Y,oe,ie,B,ce,Oe,ue,Q,he,Me,Se,Ne,K,ke,Ae,$e,Fe,V,ct,st,dt,[1,"progress-container"],[1,"page-subtitle"],[3,"loading","message"],[1,"error-state"],[1,"modal-overlay"],[1,"error-icon"],["xmlns","http://www.w3.org/2000/svg","fill","none","viewBox","0 0 24 24","stroke-width","1.5","stroke","currentColor"],["stroke-linecap","round","stroke-linejoin","round","d","M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126zM12 15.75h.007v.008H12v-.008z"],["type","button",1,"btn-retry",3,"click"],["xmlns","http://www.w3.org/2000/svg","fill","none","viewBox","0 0 24 24","stroke-width","2","stroke","currentColor"],["stroke-linecap","round","stroke-linejoin","round","d","M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0l3.181 3.183a8.25 8.25 0 0013.803-3.7M4.031 9.865a8.25 8.25 0 0113.803-3.7l3.181 3.182m0-4.99v4.99"],[1,"profile-bmi-section"],[1,"profile-card"],[1,"section-title"],["stroke-linecap","round","stroke-linejoin","round","d","M15.75 6a3.75 3.75 0 11-7.5 0 3.75 3.75 0 017.5 0zM4.501 20.118a7.5 7.5 0 0114.998 0A17.933 17.933 0 0112 21.75c-2.676 0-5.216-.584-7.499-1.632z"],[1,"profile-form",3,"ngSubmit"],[1,"profile-inputs"],[1,"form-group"],["for","height"],["type","number","id","height","name","height","step","1","min","50","max","250","placeholder",s,1,"form-input",3,"ngModelChange","ngModel"],["for","birthDate"],["type","date","id","birthDate","name","birthDate",1,"form-input",3,"ngModelChange","ngModel"],["type","submit",1,"btn-profile-save",3,"disabled"],[1,"spinner"],[1,"bmi-card"],["stroke-linecap","round","stroke-linejoin","round","d","M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 013 19.875v-6.75zM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 01-1.125-1.125V8.625zM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 01-1.125-1.125V4.125z"],[1,"bmi-empty"],[1,"summary-cards"],[1,"chart-card"],[1,"btn-add-weight"],[1,"add-log-card"],[1,"logs-section"],[1,"empty-state"],[1,"bmi-display"],[1,"bmi-value"],[1,"bmi-category"],[1,"bmi-age"],[1,"bmi-scale"],[1,"bmi-scale-bar"],[1,"bmi-segment","underweight"],[1,"bmi-segment","normal"],[1,"bmi-segment","overweight"],[1,"bmi-segment","obese"],[1,"bmi-indicator"],[1,"bmi-labels"],[1,"summary-card"],[1,"summary-icon","current"],["stroke-linecap","round","stroke-linejoin","round","d","M12 3v17.25m0 0c-1.472 0-2.882.265-4.185.75M12 20.25c1.472 0 2.882.265 4.185.75M18.75 4.97A48.416 48.416 0 0012 4.5c-2.291 0-4.545.16-6.75.47m13.5 0c1.01.143 2.01.317 3 .52m-3-.52l2.62 10.726c.122.499-.106 1.028-.589 1.202a5.988 5.988 0 01-2.031.352 5.988 5.988 0 01-2.031-.352c-.483-.174-.711-.703-.59
1-1.202L18.75 4.97zm-16.5.52c.99-.203 1.99-.377 3-.52m0 0l2.62 10.726c.122.499-.106 1.028-.589 1.202a5.989 5.989 0 01-2.031.352 5.989 5.989 0 01-2.031-.352c-.483-.174-.711-.703-.59-1.202L5.25 4.97z"],[1,"summary-content"],[1,"summary-label"],[1,"summary-value"],[1,"summary-icon","start"],["stroke-linecap","round","stroke-linejoin","round","d","M3 3v1.5M3 21v-6m0 0l2.77-.693a9 9 0 016.208.682l.108.054a9 9 0 006.086.71l3.114-.732a48.524 48.524 0 01-.005-10.499l-3.11.732a9 9 0 01-6.085-.711l-.108-.054a9 9 0 00-6.208-.682L3 4.5M3 15V4.5"],[1,"summary-icon","change"],["stroke-linecap","round","stroke-linejoin","round","d","M2.25 18L9 11.25l4.306 4.307a11.95 11.95 0 015.814-5.519l2.74-1.22m0 0l-5.94-2.28m5.94 2.28l-2.28 5.941"],[1,"chart-title"],[1,"chart-container"],["id","weightChart"],[1,"btn-add-weight",3,"click"],["stroke-linecap","round","stroke-linejoin","round","d","M12 4.5v15m7.5-7.5h-15"],[1,"add-log-title"],[1,"add-log-form",3,"ngSubmit"],[1,"form-row"],["for","logDate"],["type","date","id","logDate","name","logDate","required","",1,"form-input",3,"ngModelChange","ngModel"],["for","weight"],["type","number","id","weight","name","weight","step","0.1","min","30","max","300","required","","placeholder",se,1,"form-input",3,"ngModelChange","input","ngModel"],["for","notes"],["id","notes","name","notes","rows","2","maxlength","2000","placeholder",F,1,"form-input",3,"ngModelChange","ngModel"],[1,"form-actions"],["type","button",1,"btn-cancel",3,"click"],["type","submit",1,"btn-save",3,"disabled"],[1,"logs-title"],[1,"logs-count"],[1,"logs-list"],[1,"log-card",3,"editing"],[1,"log-card"],[1,"log-date-badge"],[1,"log-day"],[1,"log-month"],[1,"log-content"],[1,"log-header"],[1,"log-weight"],[1,"log-notes"],[1,"log-actions"],["type","button","title",Ie,1,"action-btn","edit-btn",3,"click"],["stroke-linecap","round","stroke-linejoin","round","d","M16.862 4.487l1.687-1.688a1.875 1.875 0 112.652 2.652L10.582 16.07a4.5 4.5 0 01-1.897 1.13L6 18l.8-2.685a4.5 4.5 0 011.13-1.897l8.932-8.931zm0 0L19.5 7.125M18 14v4.75A2.25 2.25 0 0115.75 21H5.25A2.25 2.25 0 013 18.75V8.25A2.25 2.25 0 015.25 6H10"],["type","button","title",we,1,"action-btn","delete-btn",3,"click"],["stroke-linecap","round","stroke-linejoin","round","d","M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0"],[1,"empty-icon"],[1,"modal-overlay",3,"click"],[1,"modal-content",3,"click"],[1,"modal-actions"],["type","button",1,"btn-delete",3,"click","disabled"]];},template:function(e,i){e&1&&(o(0,"div",33)(1,"p",34),_(2,0),a(),m(3,"app-loading",35),p(4,__,13,0,"div",36),p(5,L_,35,10),p(6,R_,13,2,"div",37),a()),e&2&&(r(3),A("loading",i.loading())("message",i.loadingMessage),r(),g(!i.loading()&&i.loadError()?4:-1),r(),g(!i.loading()&&!i.loadError()?5:-1),r(),g(i.showDeleteModal()?6:-1));},dependencies:[j,je,ot,Ye,Gn,Be,tt,Hn,Tt,Dn,Vn,nt,Et,qe,Pe],styles:['.progress-container[_ngcontent-%COMP%]{max-width:800px;margin:0 auto;padding-top:8px}.page-subtitle[_ngcontent-%COMP%]{color:#6b7280;font-size:14px;margin:0 0 20px;line-height:1.5}.summary-cards[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px}.summary-card[_ngcontent-%COMP%]{background:#fff;border-radius:12px;padding:16px;box-shadow:0 1px 3px #0000001a;display:flex;align-items:center;gap:12px}.summary-icon[_ngcontent-%COMP%]{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.summary-icon[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:24px;height:24px}.summary-icon.current[_ngcontent-%COMP%]{background:#03a7911a;color:#03a791}.summary-icon.start[_ngcontent-%COMP%]{background:#6366f11a;color:#6366f1}.summary-icon.change[_ngcontent-%COMP%]{background:#9ca3af1a;color:#6b7280}.summary-icon.change.positive[_ngcontent-%COMP%]{background:#10b9811a;color:#059669}.summary-icon.change.negative[_ngcontent-%COMP%]{background:#ef44441a;color:#dc2626}.summary-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;min-width:0}.summary-label[_ngcontent-%COMP%]{font-size:12px;font-weight:500;color:#6b7280;text-transform:uppercase;letter-spacing:.05em}.summary-value[_ngcontent-%COMP%]{font-size:18px;font-weight:700;color:#1f2937}.summary-value.positive[_ngcontent-%COMP%]{color:#059669}.summary-value.negative[_ngcontent-%COMP%]{color:#dc2626}.chart-card[_ngcontent-%COMP%]{background:#fff;border-radius:12px;padding:20px;box-shadow:0 1px 3px #0000001a;margin-bottom:24px}.chart-title[_ngcontent-%COMP%]{font-size:16px;font-weight:600;color:#1f2937;margin:0 0 16px}.chart-container[_ngcontent-%COMP%]{height:200px;position:relative}.btn-add-weight[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px;border:2px dashed #d1d5db;border-radius:12px;background:transparent;color:#6b7280;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s;margin-bottom:24px}.btn-add-weight[_ngcontent-%COMP%]:hover{border-color:#03a791;color:#03a791;background:#03a7910a}.btn-add-weight[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:20px;height:20px}.add-log-card[_ngcontent-%COMP%]{background:#fff;border-radius:12px;padding:20px;box-shadow:0 1px 3px #0000001a;margin-bottom:24px}.add-log-title[_ngcontent-%COMP%]{font-size:16px;font-weight:600;color:#1f2937;margin:0 0 16px}.add-log-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:16px}.form-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-group[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:6px}.form-group[_ngcontent-%COMP%]   label[_ngcontent-%COMP%]{font-size:14px;font-weight:500;color:#374151}.form-input[_ngcontent-%COMP%]{padding:12px 14px;border:1px solid #d1d5db;border-radius:8px;font-size:16px;color:#1f2937;background:#fff;transition:border-color .2s,box-shadow .2s;-webkit-appearance:none}.form-input[_ngcontent-%COMP%]:focus{outline:none;border-color:#03a791;box-shadow:0 0 0 3px #03a7911a}.form-input[_ngcontent-%COMP%]::placeholder{color:#9ca3af}.form-input.input-error[_ngcontent-%COMP%]{border-color:#ef4444;box-shadow:0 0 0 3px #ef444426}textarea.form-input[_ngcontent-%COMP%]{resize:vertical;min-height:60px}.form-actions[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;
1gap:12px}.btn-save[_ngcontent-%COMP%], .btn-cancel[_ngcontent-%COMP%], .btn-delete[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s;border:none;min-height:48px}.btn-save[_ngcontent-%COMP%]{background:linear-gradient(135deg,#03a791,#028576);color:#fff}.btn-save[_ngcontent-%COMP%]:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #03a7914d}.btn-save[_ngcontent-%COMP%]:disabled{opacity:.7;cursor:not-allowed}.btn-cancel[_ngcontent-%COMP%]{background:#fff;color:#374151;border:1px solid #d1d5db}.btn-cancel[_ngcontent-%COMP%]:hover{background:#f9fafb}.btn-delete[_ngcontent-%COMP%]{background:#dc2626;color:#fff}.btn-delete[_ngcontent-%COMP%]:hover:not(:disabled){background:#b91c1c}.btn-delete[_ngcontent-%COMP%]:disabled{opacity:.7;cursor:not-allowed}.spinner[_ngcontent-%COMP%]{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:_ngcontent-%COMP%_spin .8s linear infinite}@keyframes _ngcontent-%COMP%_spin{to{transform:rotate(360deg)}}.logs-section[_ngcontent-%COMP%]{margin-top:32px}.logs-title[_ngcontent-%COMP%]{font-size:18px;font-weight:600;color:#1f2937;margin:0 0 8px}.logs-count[_ngcontent-%COMP%]{font-size:14px;color:#6b7280;margin-bottom:16px}.logs-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px}.log-card[_ngcontent-%COMP%]{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:16px;display:flex;align-items:flex-start;gap:14px;transition:box-shadow .2s}.log-card[_ngcontent-%COMP%]:hover{box-shadow:0 4px 12px #0000001a}.log-card.editing[_ngcontent-%COMP%]{border-left:4px solid #03A791}.log-date-badge[_ngcontent-%COMP%]{width:48px;height:48px;background:linear-gradient(135deg,#03a791,#028576);border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;color:#fff}.log-day[_ngcontent-%COMP%]{font-size:18px;font-weight:700;line-height:1}.log-month[_ngcontent-%COMP%]{font-size:10px;font-weight:500;text-transform:uppercase;opacity:.9}.log-content[_ngcontent-%COMP%]{flex:1;min-width:0}.log-header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:4px}.log-weight[_ngcontent-%COMP%]{font-size:16px;font-weight:600;color:#1f2937}.log-tenant[_ngcontent-%COMP%]{font-size:13px;color:#6b7280}.log-notes[_ngcontent-%COMP%]{font-size:14px;color:#4b5563;margin:6px 0 0;line-height:1.5}.log-actions[_ngcontent-%COMP%]{display:flex;gap:8px;flex-shrink:0}.action-btn[_ngcontent-%COMP%]{width:36px;height:36px;border-radius:8px;border:1px solid #e5e7eb;background:#fff;color:#6b7280;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.action-btn[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:18px;height:18px}.action-btn.edit-btn[_ngcontent-%COMP%]:hover{background:#03a7911a;border-color:#03a791;color:#03a791}.action-btn.delete-btn[_ngcontent-%COMP%]:hover{background:#ef44441a;border-color:#dc2626;color:#dc2626}.empty-state[_ngcontent-%COMP%]{background:#fff;border-radius:12px;padding:48px 24px;text-align:center;box-shadow:0 1px 3px #0000001a;margin-top:24px}.empty-icon[_ngcontent-%COMP%]{width:72px;height:72px;border-radius:50%;background:#f3f4f6;color:#9ca3af;display:flex;align-items:center;justify-content:center;margin:0 auto 20px}.empty-icon[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:36px;height:36px}.empty-state[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font-size:18px;font-weight:600;color:#1f2937;margin:0 0 8px}.empty-state[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{font-size:14px;color:#6b7280;max-width:320px;margin:0 auto}.error-state[_ngcontent-%COMP%]{background:#fff;border-radius:12px;padding:48px 24px;text-align:center;box-shadow:0 1px 3px #0000001a;margin-top:24px}.error-icon[_ngcontent-%COMP%]{width:72px;height:72px;border-radius:50%;background:#ef44441a;color:#dc2626;display:flex;align-items:center;justify-content:center;margin:0 auto 20px}.error-icon[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:36px;height:36px}.error-state[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font-size:18px;font-weight:600;color:#1f2937;margin:0 0 8px}.error-state[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{font-size:14px;color:#6b7280;margin:0 auto 20px;max-width:320px}.btn-retry[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;border:none;background:linear-gradient(135deg,#03a791,#028576);color:#fff;transition:all .2s}.btn-retry[_ngcontent-%COMP%]:hover{transform:translateY(-1px);box-shadow:0 4px 12px #03a7914d}.btn-retry[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:18px;height:18px}.modal-overlay[_ngcontent-%COMP%]{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content[_ngcontent-%COMP%]{background:#fff;border-radius:16px;padding:24px;max-width:400px;width:100%;box-shadow:0 20px 40px #0003}.modal-content[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font-size:18px;font-weight:600;color:#1f2937;margin:0 0 12px}.modal-content[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{font-size:14px;color:#6b7280;margin:0 0 24px;line-height:1.5}.modal-actions[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;
1gap:12px}.profile-bmi-section[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.profile-card[_ngcontent-%COMP%], .bmi-card[_ngcontent-%COMP%]{background:#fff;border-radius:12px;padding:20px;box-shadow:0 1px 3px #0000001a}.section-title[_ngcontent-%COMP%]{font-size:16px;font-weight:600;color:#1f2937;margin:0 0 16px;display:flex;align-items:center;gap:8px}.section-title[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:20px;height:20px;color:#03a791}.profile-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px}.profile-inputs[_ngcontent-%COMP%]{display:flex;gap:12px}.profile-inputs[_ngcontent-%COMP%]   .form-group[_ngcontent-%COMP%]{flex:1}.btn-profile-save[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;border:none;background:linear-gradient(135deg,#03a791,#028576);color:#fff;align-self:flex-end}.btn-profile-save[_ngcontent-%COMP%]:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #03a7914d}.btn-profile-save[_ngcontent-%COMP%]:disabled{opacity:.7;cursor:not-allowed}.bmi-display[_ngcontent-%COMP%]{text-align:center;padding:16px 0}.bmi-value[_ngcontent-%COMP%]{font-size:48px;font-weight:700;line-height:1;margin-bottom:4px}.bmi-category[_ngcontent-%COMP%]{font-size:16px;font-weight:600;margin-bottom:8px}.bmi-age[_ngcontent-%COMP%]{font-size:13px;color:#6b7280}.bmi-value.underweight[_ngcontent-%COMP%], .bmi-category.underweight[_ngcontent-%COMP%]{color:#3b82f6}.bmi-value.normal[_ngcontent-%COMP%], .bmi-category.normal[_ngcontent-%COMP%]{color:#10b981}.bmi-value.overweight[_ngcontent-%COMP%], .bmi-category.overweight[_ngcontent-%COMP%]{color:#f59e0b}.bmi-value.obese[_ngcontent-%COMP%], .bmi-category.obese[_ngcontent-%COMP%]{color:#ef4444}.bmi-scale[_ngcontent-%COMP%]{position:relative;margin-top:16px;padding:0 8px}.bmi-scale-bar[_ngcontent-%COMP%]{display:flex;height:12px;border-radius:6px;overflow:hidden}.bmi-segment[_ngcontent-%COMP%]{flex:1}.bmi-segment.underweight[_ngcontent-%COMP%]{background:#3b82f6}.bmi-segment.normal[_ngcontent-%COMP%]{background:#10b981}.bmi-segment.overweight[_ngcontent-%COMP%]{background:#f59e0b}.bmi-segment.obese[_ngcontent-%COMP%]{background:#ef4444}.bmi-indicator[_ngcontent-%COMP%]{position:absolute;top:-4px;width:20px;height:20px;background:#fff;border:3px solid #1f2937;border-radius:50%;transform:translate(-50%);box-shadow:0 2px 4px #0003}.bmi-labels[_ngcontent-%COMP%]{display:flex;justify-content:space-between;margin-top:8px;font-size:11px;color:#6b7280}.bmi-empty[_ngcontent-%COMP%]{text-align:center;padding:24px 16px;color:#6b7280}.bmi-empty[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0;font-size:14px}@media(max-width:640px){.profile-bmi-section[_ngcontent-%COMP%]{grid-template-columns:1fr}.profile-inputs[_ngcontent-%COMP%]{flex-direction:column}.bmi-value[_ngcontent-%COMP%]{font-size:40px}.summary-cards[_ngcontent-%COMP%]{grid-template-columns:repeat(3,1fr);gap:8px}.summary-card[_ngcontent-%COMP%]{padding:10px;flex-direction:column;align-items:center;text-align:center;gap:6px}.summary-icon[_ngcontent-%COMP%]{width:32px;height:32px;border-radius:8px}.summary-icon[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:18px;height:18px}.summary-label[_ngcontent-%COMP%]{font-size:10px}.summary-value[_ngcontent-%COMP%]{font-size:14px}.form-row[_ngcontent-%COMP%]{grid-template-columns:1fr}.chart-container[_ngcontent-%COMP%]{height:180px}.log-card[_ngcontent-%COMP%]{padding:14px;gap:12px}.log-date-badge[_ngcontent-%COMP%]{width:44px;height:44px}.log-day[_ngcontent-%COMP%]{font-size:16px}.log-actions[_ngcontent-%COMP%]{flex-direction:column}.action-btn[_ngcontent-%COMP%]{width:32px;height:32px}.action-btn[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:16px;height:16px}}@media(max-width:480px){.add-log-card[_ngcontent-%COMP%], .chart-card[_ngcontent-%COMP%]{padding:16px}.btn-save[_ngcontent-%COMP%], .btn-cancel[_ngcontent-%COMP%], .btn-delete[_ngcontent-%COMP%]{padding:10px 16px;font-size:14px}}[data-theme="dark"][_nghost-%COMP%]   .page-subtitle[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .page-subtitle[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .summary-card[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .summary-card[_ngcontent-%COMP%]{background:#1e293b;box-shadow:0 1px 3px #0000004d}[data-theme="dark"][_nghost-%COMP%]   .summary-icon.current[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .summary-icon.current[_ngcontent-%COMP%]{background:#03a79126}[data-theme="dark"][_nghost-%COMP%]   .summary-icon.start[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .summary-icon.start[_ngcontent-%COMP%]{background:#6366f126}[data-theme="dark"][_nghost-%COMP%]   .summary-icon.change[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .summary-icon.change[_ngcontent-%COMP%]{background:#9ca3af26}[data-theme="dark"][_nghost-%COMP%]   .summary-icon.change.positive[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .summary-icon.change.positive[_ngcontent-%COMP%]{background:#10b98126}[data-theme="dark"][_nghost-%COMP%]   .summary-icon.change.negative[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .summary-icon.change.negative[_ngcontent-%COMP%]{background:#ef444426}[data-theme="dark"][_nghost-%COMP%]   .summary-label[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .summary-label[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .summary-value[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .summary-value[_ngcontent-%COMP%]{color:#f1f5f9}
1[data-theme="dark"][_nghost-%COMP%]   .chart-card[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .chart-card[_ngcontent-%COMP%]{background:#1e293b;box-shadow:0 1px 3px #0000004d}[data-theme="dark"][_nghost-%COMP%]   .chart-title[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .chart-title[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .btn-add-weight[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .btn-add-weight[_ngcontent-%COMP%]{border-color:#475569;color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .btn-add-weight[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .btn-add-weight[_ngcontent-%COMP%]:hover{border-color:#03a791;color:#03a791;background:#03a79114}[data-theme="dark"][_nghost-%COMP%]   .add-log-card[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .add-log-card[_ngcontent-%COMP%]{background:#1e293b;box-shadow:0 1px 3px #0000004d}[data-theme="dark"][_nghost-%COMP%]   .add-log-title[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .add-log-title[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .form-group[_ngcontent-%COMP%]   label[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .form-group[_ngcontent-%COMP%]   label[_ngcontent-%COMP%]{color:#e2e8f0}[data-theme="dark"][_nghost-%COMP%]   .form-input[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .form-input[_ngcontent-%COMP%]{background:#334155;border-color:#475569;color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .form-input[_ngcontent-%COMP%]:focus, [data-theme="dark"]   [_nghost-%COMP%]   .form-input[_ngcontent-%COMP%]:focus{border-color:#03a791;box-shadow:0 0 0 3px #03a79133}[data-theme="dark"][_nghost-%COMP%]   .form-input.input-error[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .form-input.input-error[_ngcontent-%COMP%]{border-color:#ef4444;box-shadow:0 0 0 3px #ef444433}[data-theme="dark"][_nghost-%COMP%]   .form-input[_ngcontent-%COMP%]::placeholder, [data-theme="dark"]   [_nghost-%COMP%]   .form-input[_ngcontent-%COMP%]::placeholder{color:#cbd5e1}[data-theme="dark"][_nghost-%COMP%]   .btn-cancel[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .btn-cancel[_ngcontent-%COMP%]{background:#334155;color:#e2e8f0;border-color:#475569}[data-theme="dark"][_nghost-%COMP%]   .btn-cancel[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .btn-cancel[_ngcontent-%COMP%]:hover{background:#3e4c5e}[data-theme="dark"][_nghost-%COMP%]   .logs-title[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .logs-title[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .logs-count[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .logs-count[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .log-card[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .log-card[_ngcontent-%COMP%]{background:#1e293b;box-shadow:0 1px 3px #0000004d}[data-theme="dark"][_nghost-%COMP%]   .log-card[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .log-card[_ngcontent-%COMP%]:hover{box-shadow:0 4px 12px #0000004d}[data-theme="dark"][_nghost-%COMP%]   .log-weight[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .log-weight[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .log-tenant[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .log-tenant[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .log-notes[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .log-notes[_ngcontent-%COMP%]{color:#cbd5e1}[data-theme="dark"][_nghost-%COMP%]   .action-btn[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .action-btn[_ngcontent-%COMP%]{background:#1e293b;border-color:#475569;color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .action-btn.edit-btn[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .action-btn.edit-btn[_ngcontent-%COMP%]:hover{background:#03a79126;border-color:#03a791;color:#03a791}[data-theme="dark"][_nghost-%COMP%]   .action-btn.delete-btn[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .action-btn.delete-btn[_ngcontent-%COMP%]:hover{background:#ef444426;border-color:#dc2626;color:#dc2626}[data-theme="dark"][_nghost-%COMP%]   .empty-state[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .empty-state[_ngcontent-%COMP%]{background:#1e293b;box-shadow:0 1px 3px #0000004d}[data-theme="dark"][_nghost-%COMP%]   .empty-icon[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .empty-icon[_ngcontent-%COMP%]{background:#334155;color:#cbd5e1}[data-theme="dark"][_nghost-%COMP%]   .empty-state[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .empty-state[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .empty-state[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .empty-state[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .error-state[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .error-state[_ngcontent-%COMP%]{background:#1e293b;box-shadow:0 1px 3px #0000004d}[data-theme="dark"][_nghost-%COMP%]   .error-icon[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .error-icon[_ngcontent-%COMP%]{background:#ef444426;color:#f87171}[data-theme="dark"][_nghost-%COMP%]   .error-state[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .error-state[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .error-state[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .error-state[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .profile-card[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .profile-card[_ngcontent-%COMP%], [data-theme="dark"][_nghost-%COMP%]   .bmi-card[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .bmi-card[_ngcontent-%COMP%]{background:#1e293b;box-shadow:0 1px 3px #0000004d}[data-theme="dark"][_nghost-%COMP%]   .section-title[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .section-title[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .bmi-age[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .bmi-age[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .bmi-indicator[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .bmi-indicator[_ngcontent-%COMP%]{background:#1e293b;border-color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .bmi-labels[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .bmi-labels[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .bmi-empty[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .bmi-empty[_ngcontent-%COMP%]{color:#94a3b8}
1[data-theme="dark"][_nghost-%COMP%]   .modal-overlay[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .modal-overlay[_ngcontent-%COMP%]{background:#000000b3}[data-theme="dark"][_nghost-%COMP%]   .modal-content[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .modal-content[_ngcontent-%COMP%]{background:#1e293b;box-shadow:0 20px 40px #0006}[data-theme="dark"][_nghost-%COMP%]   .modal-content[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .modal-content[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .modal-content[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .modal-content[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:#94a3b8}']});};function y_(n,t){if(n&1&&(o(0,"div",45),m(1,"i",55),o(2,"div")(3,"strong"),d(4),a(),o(5,"div"),d(6),a()()()),n&2){let e=c();A("ngClass",e.getErrorAlertClass()),r(),A("ngClass",e.getErrorIcon()),r(3),M(e.getErrorTitle()),r(2),M(e.errorMessage());}}function k_(n,t){n&1&&(o(0,"div",58),m(1,"span",61),o(2,"span"),_(3,10),a()());}function I_(n,t){if(n&1){let e=x();o(0,"button",62),h("click",function(){O(e);let l=c(2);return u(l.signInWithGoogleNative());}),m(1,"img",63),o(2,"span"),_(3,11),a()();}if(n&2){let e=c(2);z("d-none",e.isGoogleLoading()),A("disabled",e.isGoogleLoading());}}function w_(n,t){if(n&1&&m(0,"div",64),n&2){let e=c(2);z("d-none",e.isGoogleLoading());}}function $_(n,t){if(n&1&&(o(0,"div",56)(1,"div",57),p(2,k_,4,0,"div",58),p(3,I_,4,3,"button",59)(4,w_,1,2,"div",60),a()()),n&2){let e=c();z("d-none",e.showMagicLink()||e.magicSent()),r(2),g(e.isGoogleLoading()?2:-1),r(),g(e.isNativeApp?3:4);}}function F_(n,t){n&1&&(o(0,"div",48),m(1,"i",65),o(2,"span"),_(3,12),a()());}function G_(n,t){if(n&1&&(o(0,"div",69),d(1),a()),n&2){let e=c(2);r(),M(e.magicError());}}function z_(n,t){n&1&&(m(0,"span",61),o(1,"span"),_(2,15),a());}function U_(n,t){n&1&&(m(0,"i",73),o(1,"span"),_(2,16),a());}function V_(n,t){if(n&1){let e=x();o(0,"div",66)(1,"label",67),_(2,13),a(),o(3,"input",68),h("ngModelChange",function(l){O(e);let s=c();return u(s.magicEmail.set(l));}),a(),p(4,G_,2,1,"div",69),o(5,"button",70),h("click",function(){O(e);let l=c();return u(l.sendMagicLink());}),p(6,z_,3,0)(7,U_,3,0),a()(),o(8,"button",71),h("click",function(){O(e);let l=c();return u(l.toggleMagicLink());}),m(9,"i",72),o(10,"span"),_(11,14),a()();}if(n&2){let e=c();r(3),A("ngModel",e.magicEmail()),r(),g(e.magicError()?4:-1),r(),A("disabled",e.magicLoading()),r(),g(e.magicLoading()?6:7);}}function D_(n,t){if(n&1){let e=x();o(0,"button",74),h("click",function(){O(e);let l=c();return u(l.toggleMagicLink());}),m(1,"i",75),o(2,"span"),_(3,17),a()();}}var Xt=class n{constructor(t,e,i,l){this.router=t;this.route=e;this.clientPortalService=i;this.googleAuthService=l;this.showGoogleButton=!!(gt.googleClientId&&!gt.googleClientId.includes("YOUR_GOOGLE_CLIENT_ID")),this.isNativeApp=this.googleAuthService.isNative();}languageService=v(ft);errorMessage=S("");isGoogleLoading=S(!1);showGoogleButton=!1;showMagicLink=S(!1);magicEmail=S("");magicLoading=S(!1);magicSent=S(!1);magicError=S("");isNativeApp=!1;ngOnInit(){let t=this.route.snapshot.queryParamMap.get("email");t&&(this.magicEmail.set(t),this.showMagicLink.set(!0)),this.clientPortalService.isAuthenticated()&&this.router.navigateByUrl(this.returnUrl()??"/portal");}returnUrl(){return to(this.route.snapshot.queryParamMap.get("returnUrl"));}afterAuth(t){return this.returnUrl()??t;}ngAfterViewInit(){this.showGoogleButton&&!this.isNativeApp&&this.initGoogleButton();}async signInWithGoogleNative(){this.errorMessage.set(""),this.isGoogleLoading.set(!0);try{let t=await this.clientPortalService.googleLoginNative(this.googleAuthService),e=this.afterAuth(t?.isNewUser?"/start":"/portal");setTimeout(()=>this.router.navigateByUrl(e),100);}catch(t){console.error("Native Google sign-in (client portal) failed:",t);let e=t?.message||t?.error?.message||t?.error||(typeof t=="string"?t:null)||JSON.stringify(t);this.errorMessage.set("Google sign-in: "+e);}finally{this.isGoogleLoading.set(!1);}}async initGoogleButton(){try{await this.googleAuthService.initialize(t=>{this.handleGoogleResponse(t);}),await this.googleAuthService.renderButton("google-signin-button-portal",{type:"standard",theme:"outline",size:"large",text:"continue_with",shape:"pill",width:300});}catch(t){console.error("Failed to initialize Google Sign-In button:",t);}}handleGoogleResponse(t){if(!t.credential){this.errorMessage.set("Google sign-in failed: No credential received");return;}this.isGoogleLoading.set(!0),this.errorMessage.set("");let e=this.decodeJwt(t.credential);this.clientPortalService.googleLogin(t.credential,e?.given_name,e?.family_name).subscribe({next:i=>{this.isGoogleLoading.set(!1);let l=this.afterAuth(i?.isNewUser?"/start":"/portal");setTimeout(()=>{this.router.navigateByUrl(l);},100);},error:i=>{this.isGoogleLoading.set(!1),this.errorMessage.set(i.error?.message||"Google sign-in failed. Please try again.");}});}decodeJwt(t){try{let i=t.split(".")[1].replace(/-/g,"+").replace(/_/g,"/"),l=decodeURIComponent(atob(i).split("").map(s=>"%"+("00"+s.charCodeAt(0).toString(16)).slice(-2)).join(""));return JSON.parse(l);}catch{return null;}}toggleMagicLink(){this.magicError.set(""),this.showMagicLink.update(t=>!t);}sendMagicLink(){let t=this.magicEmail().trim();if(!t){this.magicError.set("Please enter your email address.");return;}this.magicLoading.set(!0),this.magicError.set("");let e=this.languageService.currentLanguage();this.clientPortalService.requestMagicLink(t,e,this.afterAuth("/portal")).subscribe({next:()=>{this.magicLoading.set(!1),this.magicSent.set(!0);},error:i=>{this.magicLoading.set(!1),this.magicError.set(i?.error?.message||"Could not send the link. Please try again.");}});}getErrorAlertClass(){if(!this.errorMessage())return"";let t=this.errorMessage().toLowerCase();return t.includes("suspended")||t.includes("disabled")?"alert-warning":t.includes("verify")||t.includes("verification")?"alert-info":"alert-danger";}getErrorIcon(){if(!this.errorMessage())return"";let t=this.errorMessage().toLowerCase();
1return t.includes("suspended")||t.includes("disabled")?"bi-person-x":t.includes("verify")||t.includes("verification")?"bi-envelope":t.includes("invalid")||t.includes("password")?"bi-key":"bi-exclamation-triangle";}getErrorTitle(){if(!this.errorMessage())return"";let t=this.errorMessage().toLowerCase();return t.includes("suspended")||t.includes("disabled")?"Account Suspended":t.includes("verify")||t.includes("verification")?"Email Verification Required":t.includes("invalid")||t.includes("password")?"Invalid Credentials":"Login Failed";}static ɵfac=function(e){return new(e||n)(Ee(me),Ee(ve),Ee(ee),Ee(no));};static ɵcmp=H({type:n,selectors:[["app-client-login"]],decls:55,vars:5,consts:()=>{let t;t="Access your nutrition journey";let e;e=" View your meal plans, track progress, and stay connected with your nutritionist ";let i;i="Back";let l;l="Back to Home";let s;s="Personal sign-in";let T;T="Track your nutrition \u2014 your plans, progress and tools";let f;f="Don't have an account?";let b;b="Create one free";let L;L="Are you a professional?";let w;w="Professional sign-in";let J;J="Signing in with Google...";let G;G="Continue with Google";let D;D="Check your inbox \u2014 if that email can be used, we just sent you a secure sign-in link.";let Y;Y="Enter your email address";let oe;oe="Email Address";let ie;ie="Back";let B;B="Sending...";let ce;ce="Email me a sign-in link";let se;return se="Continue with email",[t,e,i,l,s,T,f,b,L,w,J,G,D,oe,ie,B,ce,se,["id","client-login-page",1,"login-page"],[1,"login-left-panel"],[1,"left-panel-content"],["routerLink","/",1,"panel-logo"],["srcset","/logodomain-for-dark-bg-square.webp","type","image/webp"],["srcset","/logodomain-for-dark-bg-square.png","type","image/png"],["src","/logodomain-for-dark-bg-square.png","alt","Vitena Logo","width","800","height","800","loading","eager",1,"logo-img"],[1,"panel-message"],[1,"panel-title"],[1,"panel-subtitle"],[1,"login-right-panel"],[1,"right-panel-content"],[1,"mobile-header"],[1,"mobile-logo"],["routerLink","/",1,"logo-link"],["srcset","/logo-wordmark-dark.webp","type","image/webp"],["srcset","/logo-wordmark-dark.png","type","image/png"],["src","/logo-wordmark-dark.png","alt","Vitena Logo","width","683","height","303",1,"logo-icon"],["routerLink","/",1,"btn-back"],[1,"bi","bi-arrow-left","me-2"],["routerLink","/",1,"btn-back","desktop-back"],["id","login-form-card",1,"form-card","animate-fade-in"],[1,"form-header","audience-header"],[1,"audience-icon","personal"],[1,"bi","bi-person-heart"],[1,"audience-title"],[1,"audience-subtitle"],["role","alert",1,"alert",3,"ngClass"],[1,"social-login-section",3,"d-none"],[1,"magic-link-section"],["role","alert",1,"alert","alert-info"],["type","button",1,"btn","btn-outline-secondary","w-100","d-flex","align-items-center","justify-content-center","gap-2","auth-btn","magic-link-toggle"],[1,"token-access-info"],[1,"token-info-text"],["routerLink","/start"],[1,"audience-crosslink"],["routerLink","/login"],[1,"bi","me-2",3,"ngClass"],[1,"social-login-section"],[1,"google-signin-container"],[1,"google-loading"],["type","button",1,"btn","btn-outline-secondary","w-100","d-flex","align-items-center","justify-content-center","gap-2","auth-btn",3,"d-none","disabled"],["id","google-signin-button-portal",3,"d-none"],[1,"spinner-border","spinner-border-sm","me-2"],["type","button",1,"btn","btn-outline-secondary","w-100","d-flex","align-items-center","justify-content-center","gap-2","auth-btn",3,"click","disabled"],["src","/icons/google-g.svg","alt","","width","20","height","20","onerror","this.style.display='none'"],["id","google-signin-button-portal"],[1,"bi","bi-envelope-check","me-2"],[1,"magic-link-panel"],[1,"form-label"],["type","email","name","magicEmail","placeholder",Y,"autocomplete","email",1,"form-input",3,"ngModelChange","ngModel"],[1,"magic-error"],["type","button",1,"btn","btn-outline-primary","w-100","mt-2",3,"click","disabled"],["type","button",1,"magic-back-link",3,"click"],[1,"bi","bi-arrow-left","me-1"],[1,"bi","bi-envelope","me-2"],["type","button",1,"btn","btn-outline-secondary","w-100","d-flex","align-items-center","justify-content-center","gap-2","auth-btn","magic-link-toggle",3,"click"],[1,"bi","bi-envelope"]];},template:function(e,i){e&1&&(o(0,"div",18)(1,"div",19)(2,"div",20)(3,"a",21)(4,"picture"),m(5,"source",22)(6,"source",23)(7,"img",24),a()(),o(8,"div",25)(9,"h1",26),_(10,0),a(),o(11,"p",27),_(12,1),a()()()(),o(13,"div",28)(14,"div",29)(15,"div",30)(16,"div",31)(17,"a",32)(18,"picture"),m(19,"source",33)(20,"source",34)(21,"img",35),a()()(),o(22,"a",36),m(23,"i",37),o(24,"span"),_(25,2),a()()(),o(26,"a",38),m(27,"i",37),o(28,"span"),_(29,3),a()(),o(30,"div",39)(31,"div",40)(32,"span",41),m(33,"i",42),a(),o(34,"h2",43),_(35,4),a(),o(36,"p",44),_(37,5),a()(),p(38,y_,7,4,"div",45),p(39,$_,5,4,"div",46),o(40,"div",47),p(41,F_,4,0,"div",48)(42,V_,12,4)(43,D_,4,0,"button",49),a(),o(44,"div",50)(45,"p",51)(46,"span"),_(47,6),a(),o(48,"a",52),_(49,7),a()()(),o(50,"p",53)(51,"span"),_(52,8),a(),o(53,"a",54),_(54,9),a()()()()()()),e&2&&(r(30),z("is-busy",i.isGoogleLoading()||i.magicLoading()),r(8),g(i.errorMessage()?38:-1),r(),g(i.showGoogleButton?39:-1),r(2),g(i.magicSent()?41:i.showMagicLink()?42:43));},dependencies:[j,ut,je,Ye,Be,nt,_e],styles:['.login-page[_ngcontent-%COMP%]{min-height:100vh;display:flex;background-color:var(--color-gray-50)}.login-left-panel[_ngcontent-%COMP%]{flex:0 0 40%;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 50%,var(--color-primary-dark) 100%);display:flex;flex-direction:column;justify-content:space-between;padding:3rem;position:relative;overflow:hidden}.login-left-panel[_ngcontent-%COMP%]:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.1) 0%,transparent 50%);pointer-events:none}.left-panel-content[_ngcontent-%COMP%]{position:relative;z-index:10;display:flex;flex-direction:column;justify-content:space-between;
1height:100%;color:#fff}.panel-logo[_ngcontent-%COMP%]{display:flex;justify-content:center;margin-top:2rem;margin-bottom:1.5rem}.panel-logo[_ngcontent-%COMP%]   .logo-img[_ngcontent-%COMP%]{height:280px;width:auto;transition:transform .3s ease}.panel-logo[_ngcontent-%COMP%]:hover   .logo-img[_ngcontent-%COMP%]{transform:scale(1.05)}.panel-message[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;justify-content:center;max-width:480px}.panel-title[_ngcontent-%COMP%]{font-size:2.5rem;font-weight:700;color:#fff;margin-bottom:1.5rem;line-height:1.2}.panel-subtitle[_ngcontent-%COMP%]{font-size:1.25rem;color:#fffffff2;margin-bottom:2rem;line-height:1.6;font-weight:400}.login-right-panel[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;padding:3rem 2rem;background:#fff}.right-panel-content[_ngcontent-%COMP%]{width:100%;max-width:500px;margin:0 auto;display:flex;flex-direction:column;height:100%}.mobile-header[_ngcontent-%COMP%]{display:none}.desktop-back[_ngcontent-%COMP%]{display:inline-flex;align-items:center;align-self:flex-end;padding:.6rem 1.2rem;margin-bottom:2rem;background:transparent;border:none;border-radius:var(--radius-full);color:var(--color-text-muted);text-decoration:none;font-weight:500;font-size:.95rem;transition:all .3s ease}.desktop-back[_ngcontent-%COMP%]:hover{background:transparent;color:var(--color-primary);transform:translate(-3px)}.mobile-logo[_ngcontent-%COMP%]{text-align:center}.logo-link[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.15rem;text-decoration:none}.logo-icon[_ngcontent-%COMP%]{height:64px;width:auto}.logo-text[_ngcontent-%COMP%]{font-size:2rem;font-weight:600;color:var(--color-text);letter-spacing:-.5px}.btn-back[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:.6rem 1.2rem;background:transparent;border:none;border-radius:var(--radius-full);color:var(--color-text-muted);text-decoration:none;font-weight:500;font-size:.95rem;transition:all .3s ease}.btn-back[_ngcontent-%COMP%]:hover{background:transparent;color:var(--color-primary);transform:translate(-3px)}.form-card[_ngcontent-%COMP%]{background:#fff;border-radius:var(--radius-lg);padding:2.5rem;box-shadow:none;border:none}.form-card.is-busy[_ngcontent-%COMP%]{pointer-events:none;opacity:.65;transition:opacity .15s ease}.audience-header[_ngcontent-%COMP%]{text-align:center}.audience-icon[_ngcontent-%COMP%]{width:60px;height:60px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;margin-bottom:.85rem;font-size:1.85rem}.audience-icon.personal[_ngcontent-%COMP%]{background:rgba(var(--color-portal-rgb),.12);color:var(--color-portal)}.audience-title[_ngcontent-%COMP%]{font-size:1.5rem;font-weight:700;color:var(--color-portal);margin:0 0 .35rem}.audience-subtitle[_ngcontent-%COMP%]{font-size:.95rem;color:var(--color-text-muted);line-height:1.45;margin:0}.audience-crosslink[_ngcontent-%COMP%]{text-align:center;font-size:.85rem;margin:.75rem 0 0;color:var(--color-text-muted)}.audience-crosslink[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]{color:var(--color-portal);font-weight:600;text-decoration:none;margin-left:4px}.audience-crosslink[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:hover{text-decoration:underline}.form-header[_ngcontent-%COMP%]{margin-bottom:2rem;text-align:center}.form-title[_ngcontent-%COMP%]{font-size:1.75rem;font-weight:700;color:var(--color-primary);margin-bottom:.5rem}.form-subtitle[_ngcontent-%COMP%]{font-size:1rem;color:var(--color-text-muted);margin:0}.form-label[_ngcontent-%COMP%]{display:block;margin-bottom:.5rem;font-weight:600;color:var(--color-text);font-size:.9rem}.form-input[_ngcontent-%COMP%]{width:100%;padding:.85rem 1.2rem;border:1px solid var(--color-gray-200);border-radius:var(--radius);transition:all .3s ease;font-size:1rem;background:var(--color-gray-50)}.form-input[_ngcontent-%COMP%]:focus{outline:none;border-color:var(--color-primary);box-shadow:none;background:#fff}.form-input.is-invalid[_ngcontent-%COMP%]{border-color:var(--color-error);box-shadow:none;background:#ef44440d}.invalid-feedback[_ngcontent-%COMP%]{display:block;color:var(--color-error);font-size:.875rem;margin-top:.25rem}.alert[_ngcontent-%COMP%]{border:none;border-radius:var(--radius);padding:.85rem 1.2rem;display:flex;align-items:flex-start;margin-bottom:1.5rem}.alert-danger[_ngcontent-%COMP%]{background:#ef444414;color:var(--color-error)}.alert-warning[_ngcontent-%COMP%]{background:#f59e0b14;color:#b45309}.alert-info[_ngcontent-%COMP%]{background:#3b82f614;color:#1d4ed8}.alert[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{flex-shrink:0;margin-top:2px}.alert[_ngcontent-%COMP%]   strong[_ngcontent-%COMP%]{display:block;margin-bottom:.25rem}.token-access-info[_ngcontent-%COMP%]{margin-top:2rem;text-align:center}.divider[_ngcontent-%COMP%]{display:flex;align-items:center;margin-bottom:1rem}.divider[_ngcontent-%COMP%]:before, .divider[_ngcontent-%COMP%]:after{content:"";flex:1;height:1px;background:var(--color-gray-200)}.divider[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{padding:0 1rem;color:var(--color-text-muted);font-size:.875rem;text-transform:uppercase}.token-info-text[_ngcontent-%COMP%]{color:var(--color-text-muted);font-size:.95rem;margin:0;line-height:1.5}.token-info-text[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]{color:var(--color-portal);font-weight:600;text-decoration:none;margin-left:5px}.token-info-text[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:hover{text-decoration:underline}.social-login-section[_ngcontent-%COMP%]{margin:1.5rem auto 0;max-width:300px}.google-signin-container[_ngcontent-%COMP%]{display:flex;justify-content:center;min-height:44px}.google-loading[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;padding:.75rem;color:var(--color-text-muted);font-size:.95rem}.magic-link-section[_ngcontent-%COMP%]{margin:1.5rem auto 0;max-width:300px;text-align:center}.magic-link-panel[_ngcontent-%COMP%]{text-align:left;background:var(--color-gray-50);border:1px solid var(--color-gray-200);border-radius:var(--radius);padding:1rem 1.1rem}.magic-error[_ngcontent-%COMP%]{color:var(--color-error);font-size:.875rem;margin-top:.4rem}.magic-back-link[_ngcontent-%COMP%]{display:inline-flex;align-items:center;margin-top:.9rem;padding:.4rem .6rem;background:transparent;border:none;color:var(--color-text-muted);font-size:.9rem;font-weight:500;cursor:pointer;transition:color .2s ease}.magic-back-link[_ngcontent-%COMP%]:hover{color:var(--color-portal)}.spinner-border-sm[_ngcontent-%COMP%]{width:1rem;height:1rem}.animate-fade-in[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_fadeIn .6s ease forwards}@keyframes _ngcontent-%COMP%_fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1200px){.login-left-panel[_ngcontent-%COMP%]{flex:0 0 35%;padding:2rem}.panel-title[_ngcontent-%COMP%]{font-size:2rem}.panel-subtitle[_ngcontent-%COMP%]{font-size:1rem}}@media(max-width:991px){.login-left-panel[_ngcontent-%COMP%]{display:none}.login-right-panel[_ngcontent-%COMP%]{flex:1;padding:2rem 1.5rem}.desktop-back[_ngcontent-%COMP%]{display:none}.mobile-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.btn-back[_ngcontent-%COMP%]{padding:.5rem .8rem}.btn-back[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{display:none}.btn-back[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{margin:0}}@media(max-width:768px){.login-right-panel[_ngcontent-%COMP%]{padding:2rem 1.25rem}.form-card[_ngcontent-%COMP%]{padding:2rem 1.25rem;box-shadow:none}.form-header[_ngcontent-%COMP%]{margin-bottom:2.25rem}.audience-icon[_ngcontent-%COMP%]{width:68px;height:68px;font-size:2.05rem;margin-bottom:1rem}.audience-title[_ngcontent-%COMP%]{font-size:1.7rem}.audience-subtitle[_ngcontent-%COMP%]{font-size:1.05rem}.form-card[_ngcontent-%COMP%]   .auth-btn[_ngcontent-%COMP%]{height:46px;min-height:46px;font-size:15px}.form-card[_ngcontent-%COMP%]   .auth-btn[_ngcontent-%COMP%]   .bi[_ngcontent-%COMP%]{font-size:20px}.form-label[_ngcontent-%COMP%]{font-size:1rem}.form-input[_ngcontent-%COMP%]{padding:1rem 1.2rem;font-size:1.05rem}.magic-link-panel[_ngcontent-%COMP%]{padding:1.1rem 1.2rem}.magic-link-panel[_ngcontent-%COMP%]   .btn[_ngcontent-%COMP%]{padding:.7rem 1rem;font-size:1.02rem}.token-info-text[_ngcontent-%COMP%]{font-size:1.02rem}.audience-crosslink[_ngcontent-%COMP%]{font-size:.95rem}}@media(max-width:576px){.logo-icon[_ngcontent-%COMP%]{height:56px}.logo-text[_ngcontent-%COMP%]{font-size:1.65rem}.btn-back[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{font-size:1.5rem}.form-card[_ngcontent-%COMP%]{padding:1.75rem 1rem}.form-header[_ngcontent-%COMP%]{margin-bottom:1.9rem}.audience-icon[_ngcontent-%COMP%]{width:64px;
1height:64px;font-size:1.95rem}.audience-title[_ngcontent-%COMP%]{font-size:1.55rem}.audience-subtitle[_ngcontent-%COMP%]{font-size:1rem}}[data-theme="dark"][_nghost-%COMP%]   .login-right-panel[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .login-right-panel[_ngcontent-%COMP%]{background:#0f172a}[data-theme="dark"][_nghost-%COMP%]   .form-card[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .form-card[_ngcontent-%COMP%]{background:#0f172a}[data-theme="dark"][_nghost-%COMP%]   .form-input[_ngcontent-%COMP%]:focus, [data-theme="dark"]   [_nghost-%COMP%]   .form-input[_ngcontent-%COMP%]:focus{background:#1e293b}[data-theme="dark"][_nghost-%COMP%]   .alert-warning[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .alert-warning[_ngcontent-%COMP%]{color:#fbbf24}[data-theme="dark"][_nghost-%COMP%]   .alert-info[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .alert-info[_ngcontent-%COMP%]{color:#60a5fa}']});};var H_=()=>[1,2,3,4,5];function X_(n,t){n&1&&(o(0,"div",25),m(1,"i",27),o(2,"span"),_(3,3),a()());}function W_(n,t){if(n&1&&(o(0,"div",22),m(1,"i",24),o(2,"div")(3,"strong"),_(4,1),a(),o(5,"div"),d(6),a(),p(7,X_,4,0,"div",25),o(8,"a",26),_(9,2),a()()()),n&2){let e=c();r(6),M(e.successMessage()),r(),g(e.featureFlags.showSpamFolderHint?7:-1);}}function Y_(n,t){if(n&1&&(o(0,"div",30),m(1,"i",45),o(2,"div"),d(3),a()()),n&2){let e=c(2);r(3),M(e.errorMessage());}}function B_(n,t){if(n&1&&m(0,"div",49),n&2){let e=t.$implicit,i=c(3);Te("background-color",e<=i.getPasswordStrength().level?i.getPasswordStrength().color:"var(--color-gray-200)");}}function j_(n,t){if(n&1&&(o(0,"div",40)(1,"div",46),X(2,B_,1,2,"div",47,An),a(),o(4,"span",48),d(5),a()()),n&2){let e=c(2);r(2),W(et(3,H_)),r(2),Te("color",e.getPasswordStrength().color),r(),I(" ",e.getPasswordStrength().label," ");}}function K_(n,t){n&1&&(o(0,"span"),_(1,10),a());}function q_(n,t){n&1&&(o(0,"span"),_(1,11),a());}function J_(n,t){n&1&&(o(0,"span"),_(1,12),a());}function Q_(n,t){if(n&1&&(o(0,"div",41),p(1,K_,2,0,"span"),p(2,q_,2,0,"span"),p(3,J_,2,0,"span"),a()),n&2){let e,i,l,s=c(2);r(),g(!((e=s.accountForm.get("password"))==null||e.errors==null)&&e.errors.required?1:-1),r(),g(!((i=s.accountForm.get("password"))==null||i.errors==null)&&i.errors.minlength?2:-1),r(),g(!((l=s.accountForm.get("password"))==null||l.errors==null)&&l.errors.weakPassword?3:-1);}}function Z_(n,t){n&1&&(o(0,"span"),_(1,13),a());}function ec(n,t){n&1&&(o(0,"span"),_(1,14),a());}function tc(n,t){if(n&1&&(o(0,"div",41),p(1,Z_,2,0,"span"),p(2,ec,2,0,"span"),a()),n&2){let e,i=c(2);r(),g(!((e=i.accountForm.get("confirmPassword"))==null||e.errors==null)&&e.errors.required?1:-1),r(),g(i.accountForm.errors!=null&&i.accountForm.errors.passwordMismatch?2:-1);}}function nc(n,t){n&1&&(m(0,"span",50),o(1,"span"),_(2,15),a());}function oc(n,t){n&1&&(m(0,"i",51),o(1,"span"),_(2,16),a());}function ic(n,t){if(n&1){let e=x();o(0,"div",23)(1,"div",28),m(2,"i",29),o(3,"div")(4,"strong"),_(5,4),a(),o(6,"p"),_(7,5),a()()(),p(8,Y_,4,1,"div",30),o(9,"form",31),h("ngSubmit",function(){O(e);let l=c();return u(l.onSubmit());}),o(10,"div",32)(11,"label",33),_(12,6),a(),m(13,"input",34),o(14,"small",35),_(15,7),a()(),o(16,"div",32)(17,"label",33),_(18,8),a(),o(19,"div",36),m(20,"input",37),o(21,"button",38),h("click",function(){O(e);let l=c();return u(l.togglePasswordVisibility("password"));}),m(22,"i",39),a()(),p(23,j_,6,4,"div",40),p(24,Q_,4,3,"div",41),a(),o(25,"div",42)(26,"label",33),_(27,9),a(),o(28,"div",36),m(29,"input",43),o(30,"button",38),h("click",function(){O(e);let l=c();return u(l.togglePasswordVisibility("confirmPassword"));}),m(31,"i",39),a()(),p(32,tc,3,2,"div",41),a(),o(33,"button",44),p(34,nc,3,0)(35,oc,3,0),a()()();}if(n&2){let e,i=c();r(8),g(i.errorMessage()?8:-1),r(),A("formGroup",i.accountForm),r(4),A("value",i.userEmail()),r(7),z("is-invalid",i.isFieldInvalid("password")),A("type",i.showPassword()?"text":"password"),r(),ge("aria-label",i.showPassword()?"Hide password":"Show password"),r(),A("ngClass",i.showPassword()?"bi-eye-slash":"bi-eye"),r(),g((e=i.accountForm.get("password"))!=null&&e.value?23:-1),r(),g(i.isFieldInvalid("password")?24:-1),r(5),z("is-invalid",i.isFieldInvalid("confirmPassword")||(i.accountForm.errors==null?null:i.accountForm.errors.passwordMismatch)),A("type",i.showConfirmPassword()?"text":"password"),r(),ge("aria-label",i.showConfirmPassword()?"Hide password":"Show password"),r(),A("ngClass",i.showConfirmPassword()?"bi-eye-slash":"bi-eye"),r(),g(i.isFieldInvalid("confirmPassword")||i.accountForm.errors!=null&&i.accountForm.errors.passwordMismatch?32:-1),r(),A("disabled",i.isLoading()),r(),g(i.isLoading()?34:35);}}var Wt=class n{constructor(t,e,i){this.fb=t;this.router=e;this.clientPortalService=i;}accountForm;isLoading=S(!1);errorMessage=S("");successMessage=S("");featureFlags=Ke;userEmail=S("");showPassword=S(!1);showConfirmPassword=S(!1);ngOnInit(){this.initForm();let t=this.clientPortalService.currentUser();t&&this.userEmail.set(t.email),t?.hasAccount&&this.router.navigate(["/portal"]);}initForm(){this.accountForm=this.fb.group({password:["",[Mt.required,Mt.minLength(8),this.passwordStrengthValidator]],confirmPassword:["",[Mt.required]]},{validators:this.passwordMatchValidator});}passwordStrengthValidator(t){let e=t.value;if(!e)return null;let i=/[A-Z]/.test(e),l=/[a-z]/.test(e),s=/[0-9]/.test(e),T=/[!@#$%^&*(),.?":{}|<>]/.test(e);return i&&l&&s&&T?null:{weakPassword:!0};}passwordMatchValidator(t){let e=t.get("password")?.value,i=t.get("confirmPassword")?.value;return e&&i&&e!==i?{passwordMismatch:!0}:null;}onSubmit(){if(this.accountForm.valid){this.isLoading.set(!0),this.errorMessage.set(""),this.successMessage.set("");let{password:t,confirmPassword:e}=this.accountForm.value;this.clientPortalService.createAccount(t,e).subscribe({next:i=>{i.autoVerified?this.successMessage.set("Account created successfully! You can now sign in with your email and password."):this.successMessage.set("Account created successfully! Please check your email to verify your account."),this.isLoading.set(!1);},error:i=>{this.errorMessage.set(i.message||"Failed to create account. Please try again."),this.isLoading.set(!1);}});}else this.markFormGroupTouched();}isFieldInvalid(t){let e=this.accountForm.get(t);
1return!!(e&&e.invalid&&(e.dirty||e.touched));}markFormGroupTouched(){Object.keys(this.accountForm.controls).forEach(t=>{this.accountForm.get(t)?.markAsTouched();});}togglePasswordVisibility(t){t==="password"?this.showPassword.update(e=>!e):this.showConfirmPassword.update(e=>!e);}getPasswordStrength(){let t=this.accountForm.get("password")?.value||"";if(!t)return{level:0,label:"",color:""};let e=0;return t.length>=8&&e++,/[A-Z]/.test(t)&&e++,/[a-z]/.test(t)&&e++,/[0-9]/.test(t)&&e++,/[!@#$%^&*(),.?":{}|<>]/.test(t)&&e++,e<=2?{level:e,label:"Weak",color:"var(--color-error)"}:e<=3?{level:e,label:"Fair",color:"#f59e0b"}:e===4?{level:e,label:"Good",color:"#10b981"}:{level:e,label:"Strong",color:"var(--color-primary)"};}static ɵfac=function(e){return new(e||n)(Ee(Xn),Ee(me),Ee(ee));};static ɵcmp=H({type:n,selectors:[["app-create-account"]],decls:8,vars:2,consts:()=>{let t;t="Create Account";let e;e="Success!";let i;i=" Go to Login ";let l;l="If you don't receive it within a few minutes, please check your spam folder.";let s;s="Create a password";let T;T="Confirm your password";let f;f="Why create an account?";let b;b=" With an account, you can sign in anytime without needing a new access link from your nutritionist. ";let L;L="Email Address";let w;w=" This is your registered email address ";let J;J="Password";let G;G="Confirm Password";let D;D="Password is required";let Y;Y="Password must be at least 8 characters";let oe;oe=" Password must include uppercase, lowercase, number and special character ";let ie;ie="Please confirm your password";let B;B="Passwords do not match";let ce;ce="Creating Account...";let se;return se="Create Account",[t,e,i,l,f,b,L,w,J,G,D,Y,oe,ie,B,ce,se,[1,"create-account-container"],[1,"page-header"],["routerLink","/portal",1,"btn-back"],[1,"bi","bi-arrow-left"],[1,"page-title"],[1,"alert","alert-success","animate-fade-in"],[1,"form-card","animate-fade-in"],[1,"bi","bi-check-circle-fill","me-2"],[1,"d-flex","align-items-center","gap-2","mt-3","mb-2","px-3","py-2","rounded-2","small",2,"background","#fff8e1","border","1px solid #ffe082","color","#6d5c00"],["routerLink","/portal/login",1,"success-link"],[1,"bi","bi-envelope-exclamation",2,"flex-shrink","0"],[1,"info-banner"],[1,"bi","bi-info-circle"],["role","alert",1,"alert","alert-danger"],["novalidate","",3,"ngSubmit","formGroup"],[1,"mb-3"],[1,"form-label"],["type","email","readonly","",1,"form-input","readonly",3,"value"],[1,"form-hint"],[1,"password-input-wrapper"],["formControlName","password","placeholder",s,1,"form-input",3,"type"],["type","button",1,"password-toggle",3,"click"],[1,"bi",3,"ngClass"],[1,"password-strength"],[1,"invalid-feedback"],[1,"mb-4"],["formControlName","confirmPassword","placeholder",T,1,"form-input",3,"type"],["type","submit",1,"btn","btn-primary","w-100","btn-lg",3,"disabled"],[1,"bi","bi-exclamation-triangle","me-2"],[1,"strength-bars"],[1,"strength-bar",3,"background-color"],[1,"strength-label"],[1,"strength-bar"],[1,"spinner-border","spinner-border-sm","me-2"],[1,"bi","bi-person-plus","me-2"]];},template:function(e,i){e&1&&(o(0,"div",17)(1,"div",18)(2,"a",19),m(3,"i",20),a(),o(4,"h1",21),_(5,0),a()(),p(6,W_,10,2,"div",22),p(7,ic,36,18,"div",23),a()),e&2&&(r(6),g(i.successMessage()?6:-1),r(),g(i.successMessage()?-1:7));},dependencies:[j,ut,Wn,ot,Ye,Be,tt,Un,zn,_e],styles:['.create-account-container[_ngcontent-%COMP%]{max-width:500px;margin:0 auto;padding:1.5rem}.page-header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.btn-back[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-full);background:var(--color-gray-100);color:var(--color-text);text-decoration:none;transition:all .2s ease}.btn-back[_ngcontent-%COMP%]:hover{background:var(--color-gray-200);color:var(--color-primary)}.page-title[_ngcontent-%COMP%]{font-size:1.5rem;font-weight:700;color:var(--color-text);margin:0}.form-card[_ngcontent-%COMP%]{background:#fff;border-radius:var(--radius-lg);padding:1.5rem;box-shadow:0 1px 3px #0000000d;border:1px solid var(--color-gray-100)}.info-banner[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding:1rem;background:#03a79114;border-radius:var(--radius);margin-bottom:1.5rem}.info-banner[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{color:var(--color-primary);font-size:1.25rem;flex-shrink:0;margin-top:2px}.info-banner[_ngcontent-%COMP%]   strong[_ngcontent-%COMP%]{display:block;color:var(--color-text);margin-bottom:.25rem;font-size:.9rem}.info-banner[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:var(--color-text-muted);font-size:.875rem;margin:0;line-height:1.4}.form-label[_ngcontent-%COMP%]{display:block;margin-bottom:.5rem;font-weight:600;color:var(--color-text);font-size:.9rem}.form-input[_ngcontent-%COMP%]{width:100%;padding:.85rem 1rem;border:1px solid var(--color-gray-200);border-radius:var(--radius);transition:all .2s ease;font-size:1rem;background:var(--color-gray-50)}.form-input[_ngcontent-%COMP%]:focus{outline:none;border-color:var(--color-primary);background:#fff}.form-input.readonly[_ngcontent-%COMP%]{background:var(--color-gray-100);color:var(--color-text-muted);cursor:not-allowed}.form-input.is-invalid[_ngcontent-%COMP%]{border-color:var(--color-error);background:#ef44440d}.form-hint[_ngcontent-%COMP%]{display:block;margin-top:.25rem;color:var(--color-text-muted);font-size:.8rem}.invalid-feedback[_ngcontent-%COMP%]{display:block;color:var(--color-error);font-size:.875rem;margin-top:.25rem}.password-input-wrapper[_ngcontent-%COMP%]{position:relative}.password-input-wrapper[_ngcontent-%COMP%]   .form-input[_ngcontent-%COMP%]{padding-right:3rem}.password-toggle[_ngcontent-%COMP%]{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:.25rem;transition:color .2s ease}.password-toggle[_ngcontent-%COMP%]:hover{color:var(--color-primary)}.password-strength[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;margin-top:.5rem}.strength-bars[_ngcontent-%COMP%]{display:flex;gap:3px;flex:1}
1.strength-bar[_ngcontent-%COMP%]{height:4px;flex:1;border-radius:2px;transition:background-color .2s ease}.strength-label[_ngcontent-%COMP%]{font-size:.75rem;font-weight:600;min-width:50px;text-align:right}.alert[_ngcontent-%COMP%]{border:none;border-radius:var(--radius);padding:1rem;display:flex;gap:.75rem;margin-bottom:1.5rem}.alert-danger[_ngcontent-%COMP%]{background:#ef444414;color:var(--color-error)}.alert-success[_ngcontent-%COMP%]{background:#10b98114;color:#059669}.alert[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{flex-shrink:0;font-size:1.25rem}.alert[_ngcontent-%COMP%]   strong[_ngcontent-%COMP%]{display:block;margin-bottom:.25rem}.success-link[_ngcontent-%COMP%]{display:inline-block;margin-top:.75rem;color:var(--color-primary);font-weight:600;text-decoration:none}.success-link[_ngcontent-%COMP%]:hover{text-decoration:underline}.spinner-border-sm[_ngcontent-%COMP%]{width:1rem;height:1rem}.animate-fade-in[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_fadeIn .4s ease forwards}@keyframes _ngcontent-%COMP%_fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:576px){.create-account-container[_ngcontent-%COMP%]{padding:1rem}.form-card[_ngcontent-%COMP%]{padding:1.25rem}.page-title[_ngcontent-%COMP%]{font-size:1.25rem}}[data-theme="dark"][_nghost-%COMP%]   .form-card[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .form-card[_ngcontent-%COMP%]{background:#1e293b;box-shadow:0 1px 3px #0000004d}[data-theme="dark"][_nghost-%COMP%]   .form-input[_ngcontent-%COMP%]:focus, [data-theme="dark"]   [_nghost-%COMP%]   .form-input[_ngcontent-%COMP%]:focus{background:#1e293b}[data-theme="dark"][_nghost-%COMP%]   .alert-success[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .alert-success[_ngcontent-%COMP%]{color:#34d399}']});};function ac(n,t){n&1&&(o(0,"div",9)(1,"div",12)(2,"span",13),d(3,"Loading..."),a()(),o(4,"h2"),_(5,0),a(),o(6,"p"),_(7,1),a()());}function rc(n,t){if(n&1){let e=x();o(0,"div",10)(1,"div",14),m(2,"i",15),a(),o(3,"h2"),_(4,2),a(),o(5,"p"),_(6,3),a(),o(7,"button",16),h("click",function(){O(e);let l=c();return u(l.goToLogin());}),m(8,"i",17),o(9,"span"),_(10,4),a()()();}}function lc(n,t){if(n&1&&(o(0,"div",11)(1,"div",18),m(2,"i",19),a(),o(3,"h2"),_(4,5),a(),o(5,"p"),d(6),a(),o(7,"div",20)(8,"a",21),m(9,"i",22),o(10,"span"),_(11,6),a()()()()),n&2){let e=c();r(6),M(e.errorMessage());}}var Yt=class n{constructor(t,e,i){this.route=t;this.router=e;this.clientPortalService=i;}isLoading=S(!0);isSuccess=S(!1);errorMessage=S("");ngOnInit(){let t=this.route.snapshot.queryParamMap.get("token");if(!t){this.isLoading.set(!1),this.errorMessage.set("No verification token provided.");return;}this.verifyEmail(t);}verifyEmail(t){this.clientPortalService.verifyEmail(t).subscribe({next:()=>{this.isSuccess.set(!0),this.isLoading.set(!1);},error:e=>{this.errorMessage.set(e.message||"Email verification failed. The link may have expired or is invalid."),this.isLoading.set(!1);}});}goToLogin(){this.router.navigate(["/portal/login"]);}static ɵfac=function(e){return new(e||n)(Ee(ve),Ee(me),Ee(ee));};static ɵcmp=H({type:n,selectors:[["app-client-verify-email"]],decls:5,vars:3,consts:()=>{let t;t="Verifying your email...";let e;e="Please wait while we verify your email address.";let i;i="Email Verified!";let l;l=" Your email has been successfully verified. You can now sign in to your account. ";let s;s="Sign In to Portal";let T;T="Verification Failed";let f;return f="Back to Portal",[t,e,i,l,s,T,f,[1,"verify-email-page"],[1,"verify-container"],[1,"status-card","loading"],[1,"status-card","success","animate-fade-in"],[1,"status-card","error","animate-fade-in"],["role","status",1,"spinner-border","text-primary"],[1,"visually-hidden"],[1,"status-icon","success-icon"],[1,"bi","bi-check-circle-fill"],[1,"btn","btn-primary","btn-lg",3,"click"],[1,"bi","bi-box-arrow-in-right","me-2"],[1,"status-icon","error-icon"],[1,"bi","bi-x-circle-fill"],[1,"action-buttons"],["routerLink","/portal",1,"btn","btn-outline-primary"],[1,"bi","bi-house","me-2"]];},template:function(e,i){e&1&&(o(0,"div",7)(1,"div",8),p(2,ac,8,0,"div",9),p(3,rc,11,0,"div",10),p(4,lc,12,1,"div",11),a()()),e&2&&(r(2),g(i.isLoading()?2:-1),r(),g(!i.isLoading()&&i.isSuccess()?3:-1),r(),g(!i.isLoading()&&!i.isSuccess()&&i.errorMessage()?4:-1));},dependencies:[j,_e],styles:['.verify-email-page[_ngcontent-%COMP%]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-gray-50) 0%,white 100%);padding:1.5rem}.verify-container[_ngcontent-%COMP%]{width:100%;max-width:480px}.status-card[_ngcontent-%COMP%]{background:#fff;border-radius:var(--radius-lg);padding:3rem 2rem;text-align:center;box-shadow:0 4px 6px -1px #0000000d,0 10px 15px -3px #0000000d;border:1px solid var(--color-gray-100)}.status-card.loading[_ngcontent-%COMP%]{padding:4rem 2rem}.status-card[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font-size:1.5rem;font-weight:700;color:var(--color-text);margin:1.5rem 0 .75rem}.status-card[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:var(--color-text-muted);font-size:1rem;line-height:1.6;margin-bottom:2rem}.status-icon[_ngcontent-%COMP%]{width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto}.status-icon[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{font-size:3rem}.success-icon[_ngcontent-%COMP%]{background:#10b9811a}.success-icon[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{color:#10b981}.error-icon[_ngcontent-%COMP%]{background:#ef44441a}.error-icon[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{color:var(--color-error)}.spinner-border[_ngcontent-%COMP%]{width:3rem;height:3rem}.action-buttons[_ngcontent-%COMP%]{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.btn-outline-primary[_ngcontent-%COMP%]{border:2px solid var(--color-primary);color:var(--color-primary);background:transparent}.btn-outline-primary[_ngcontent-%COMP%]:hover{background:var(--color-primary);color:#fff}.animate-fade-in[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_fadeIn .5s ease forwards}@keyframes _ngcontent-%COMP%_fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media(max-width:576px){.status-card[_ngcontent-%COMP%]{padding:2rem 1.5rem}.status-card[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font-size:1.25rem}.status-icon[_ngcontent-%COMP%]{width:64px;
1height:64px}.status-icon[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{font-size:2.5rem}.action-buttons[_ngcontent-%COMP%]{flex-direction:column}}[data-theme="dark"][_nghost-%COMP%]   .verify-email-page[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .verify-email-page[_ngcontent-%COMP%]{background:linear-gradient(135deg,#0f172a,#1e293b)}[data-theme="dark"][_nghost-%COMP%]   .status-card[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .status-card[_ngcontent-%COMP%]{background:#1e293b}[data-theme="dark"][_nghost-%COMP%]   .success-icon[_ngcontent-%COMP%]   i[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .success-icon[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{color:#34d399}']});};var pe=class n{portalService=v(ee);router=v(me);canActivate(){return this.portalService.checkAuth()?!0:this.router.createUrlTree(["/portal/login"]);}static ɵfac=function(e){return new(e||n)();};static ɵprov=Ot({token:n,factory:n.ɵfac,providedIn:"root"});};var _c=(n,t)=>t.id;function cc(n,t){if(n&1&&(o(0,"a",4)(1,"div",5),m(2,"i"),a(),o(3,"div",6)(4,"h3"),d(5),a(),o(6,"p"),d(7),a()(),o(8,"div",7),E(),o(9,"svg",8),m(10,"path",9),a()()()),n&2){let e=t.$implicit,i=c();A("routerLink","/portal/tools/"+e.slug),r(2),be(e.icon),r(3),M(i.getToolTitle(e)),r(2),M(i.getToolDescription(e));}}var Bt=class n{availableTools=bt.filter(t=>t.available);getToolTitle(t){switch(t.id){case"bmi":return"BMI Calculator";case"calorie":return"Calorie Calculator";case"macro":return"Macro Calculator";case"ideal-weight":return"Ideal Weight Calculator";case"water-intake":return"Water Intake Calculator";case"body-fat":return"Body Fat Calculator";default:return t.id;}}getToolDescription(t){switch(t.id){case"bmi":return"Calculate your Body Mass Index using the WHO-standard formula.";case"calorie":return"Estimate your daily calorie needs based on activity level and goals.";case"macro":return"Find your ideal protein, carbohydrate, and fat intake.";case"ideal-weight":return"Calculate your ideal weight based on height, age, and gender.";case"water-intake":return"Determine your recommended daily water intake.";case"body-fat":return"Calculate your body fat percentage, fat mass, and lean body mass.";default:return"";}}static ɵfac=function(e){return new(e||n)();};static ɵcmp=H({type:n,selectors:[["app-portal-tools-hub"]],decls:6,vars:0,consts:()=>{let t;return t="Free tools to help you track and understand your health metrics.",[t,[1,"tools-hub"],[1,"tools-subtitle"],[1,"tools-grid"],[1,"tool-card",3,"routerLink"],[1,"tool-icon"],[1,"tool-content"],[1,"tool-arrow"],["xmlns","http://www.w3.org/2000/svg","fill","none","viewBox","0 0 24 24","stroke-width","2","stroke","currentColor"],["stroke-linecap","round","stroke-linejoin","round","d","M8.25 4.5l7.5 7.5-7.5 7.5"]];},template:function(e,i){e&1&&(o(0,"div",1)(1,"p",2),_(2,0),a(),o(3,"div",3),X(4,cc,11,5,"a",4,_c),a()()),e&2&&(r(4),W(i.availableTools));},dependencies:[_e],styles:['.tools-hub[_ngcontent-%COMP%]{max-width:900px;margin:0 auto}.tools-subtitle[_ngcontent-%COMP%]{font-size:15px;color:#6b7280;margin:0 0 24px}.tools-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr;gap:16px}@media(min-width:640px){.tools-grid[_ngcontent-%COMP%]{grid-template-columns:1fr 1fr}}.tool-card[_ngcontent-%COMP%]{display:flex;align-items:center;gap:16px;background:#fff;border-radius:12px;padding:20px;text-decoration:none;color:inherit;box-shadow:0 1px 3px #0000001a;transition:all .2s;border:2px solid transparent}.tool-card[_ngcontent-%COMP%]:hover{box-shadow:0 8px 25px #0000001f;transform:translateY(-2px);border-color:#03a791}.tool-icon[_ngcontent-%COMP%]{width:48px;height:48px;border-radius:12px;background:#03a7911a;color:#03a791;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1.25rem}.tool-content[_ngcontent-%COMP%]{flex:1;min-width:0}.tool-content[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font-size:16px;font-weight:600;color:#1f2937;margin:0 0 4px}.tool-content[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{font-size:13px;color:#6b7280;margin:0;line-height:1.4}.tool-arrow[_ngcontent-%COMP%]{width:20px;height:20px;color:#9ca3af;flex-shrink:0}.tool-arrow[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:100%;height:100%}.tool-card[_ngcontent-%COMP%]:hover   .tool-arrow[_ngcontent-%COMP%]{color:#03a791}[data-theme="dark"][_nghost-%COMP%]   .tool-card[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .tool-card[_ngcontent-%COMP%]{background:#1e293b;border-color:#475569;box-shadow:0 1px 3px #0000004d}[data-theme="dark"][_nghost-%COMP%]   .tool-card[_ngcontent-%COMP%]:hover, [data-theme="dark"]   [_nghost-%COMP%]   .tool-card[_ngcontent-%COMP%]:hover{box-shadow:0 8px 25px #0006;border-color:#03a791}[data-theme="dark"][_nghost-%COMP%]   .tool-icon[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .tool-icon[_ngcontent-%COMP%]{background:#03a79126}[data-theme="dark"][_nghost-%COMP%]   .tool-content[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .tool-content[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{color:#f1f5f9}[data-theme="dark"][_nghost-%COMP%]   .tool-content[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .tool-content[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .tools-subtitle[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .tools-subtitle[_ngcontent-%COMP%]{color:#94a3b8}[data-theme="dark"][_nghost-%COMP%]   .tool-arrow[_ngcontent-%COMP%], [data-theme="dark"]   [_nghost-%COMP%]   .tool-arrow[_ngcontent-%COMP%]{color:#cbd5e1}']});};var Lg=[{path:"login",component:Xt,title:"Vitena - Sign In"},{path:"verify-email",component:Yt,title:"Verify Email"},{path:"privacy",loadComponent:()=>import("./chunk-SWMDR6BZ.js").then(n=>n.ConsumerPrivacyComponent),title:"Your Privacy - Vitena"},{path:"message-confirm",loadComponent:()=>import("./chunk-JAR4EZNB.js").then(n=>n.MessageConfirmComponent),title:"Sending your message"},{path:"magic-link",loadComponent:()=>import("./chunk-AZ4VSTLN.js").then(n=>n.MagicLinkComponent),title:"Signing in"},{path:"form/:tenantId/:accessToken",loadComponent:()=>import("./chunk-IRQ4XHXO.js").then(n=>n.FormFillComponent),title:"Fill Form"},{path:"consent/:tenantId/:token",loadComponent:()=>import("./chunk-KMP4J5XV.js").then(n=>n.ConsentSignComponent),title:"Consent"},{path:"token/:token",component:At,title:"Portal Access"},{path:"intro",loadComponent:()=>import("./chunk-GHOQ37V3.js").then(n=>n.PortalAppIntroComponent),title:"Vitena"},{path:"",component:vt,children:[{path:"",component:kt,canActivate:[ao],title:"Vitena"},{path:"meal-plans",component:It,canActivate:[pe],title:"My Meal Plans"},{path:"meal-plans/:id",component:wt,canActivate:[pe],title:"Meal Plan"},{path:"exercises",loadComponent:()=>import("./chunk-PDOEP2KW.js").then(n=>n.PortalExercisePrescriptionsComponent),canActivate:[pe],title:"My Exercises"},{path:"before-after",loadComponent:()=>import("./chunk-UROYEK3O.js").then(n=>n.PortalBeforeAfterComponent),canActivate:[pe],title:"Before / After"},{path:"guide",loadComponent:()=>import("./chunk-KQRL6HAQ.js").then(n=>n.ContentIndexComponent),data:{portal:!0},title:"Health Guide"},{path:"guide/:hub",loadComponent:()=>import("./chunk-45PPAWRG.js").then(n=>n.ContentHubComponent),data:{portal:!0},title:"Health Guide"},{path:"guide/:hub/:slug",loadComponent:()=>import("./chunk-ONLYI462.js").then(n=>n.ArticleDetailComponent),data:{portal:!0},title:"Article"},{path:"shopping-list",component:Ft,canActivate:[pe],title:"Shopping List"},{path:"messages",loadComponent:()=>import("./chunk-S3EEFRLS.js").then(n=>n.PortalMessagesComponent),canActivate:[pe],title:"Messages"},{path:"messages/:id",loadComponent:()=>import("./chunk-2XATK5M2.js").then(n=>n.PortalMessageThreadComponent),canActivate:[pe],title:"Message"},{path:"visit-history",component:Ut,canActivate:[pe],title:"Visit History"},{path:"documents",component:Vt,canActivate:[pe],title:"My Documents"},{path:"session/:id",component:Dt,canActivate:[pe],title:"Session Notes"},{path:"progress",component:Ht,canActivate:[pe],title:"My Progress"},{path:"food-log",loadComponent:()=>import("./chunk-65GG5NDW.js").then(n=>n.FoodLogComponent),canActivate:[pe],title:"Food Log"},{path:"profile",loadComponent:()=>import("./chunk-F7STQVYA.js").then(n=>n.PortalProfileComponent),canActivate:[pe],title:"My Details"},{path:"account",loadComponent:()=>import("./chunk-4BCCNZOI.js").then(n=>n.PortalAccountComponent),canActivate:[pe],title:"Account"},{path:"forms",loadComponent:()=>import("./chunk-OATWABBE.js").then(n=>n.PortalFormsListComponent),canActivate:[pe],title:"My Forms"},{path:"forms/:id",loadComponent:()=>import("./chunk-G6MBHUPM.js").then(n=>n.PortalFormDetailComponent),canActivate:[pe],title:"Form Detail"},{path:"create-account",component:Wt,canActivate:[pe],title:"Create Account"},{path:"tools",component:Bt,title:"Health Calculators"},{path:"tools/bmi-calculator",loadComponent:()=>import("./chunk-4BBT325B.js").then(n=>n.BmiCalculatorComponent),data:{mode:"portal"},title:"BMI Calculator"},{path:"tools/calorie-calculator",loadComponent:()=>import("./chunk-A5O3HOBO.js").then(n=>n.CalorieCalculatorComponent),data:{mode:"portal"},title:"Calorie Calculator"},{path:"tools/macro-calculator",loadComponent:()=>import("./chunk-ALYHWXAQ.js").then(n=>n.MacroCalculatorComponent),data:{mode:"portal"},title:"Macro Calculator"},{path:"tools/ideal-weight-calculator",loadComponent:()=>import("./chunk-LN6ZVPXD.js").then(n=>n.IdealWeightCalculatorComponent),data:{mode:"portal"},title:"Ideal Weight Calculator"},{path:"tools/water-intake-calculator",loadComponent:()=>import("./chunk-THFOQAPX.js").then(n=>n.WaterIntakeCalculatorComponent),data:{mode:"portal"},title:"Water Intake Calculator"},{path:"tools/body-fat-calculator",loadComponent:()=>import("./chunk-GKPDSNPE.js").then(n=>n.BodyFatCalculatorComponent),data:{mode:"portal"},title:"Body Fat Calculator"},{path:"food",loadComponent:()=>import("./chunk-Z6LZ4NQO.js").then(n=>n.FoodSearchPageComponent),data:{mode:"portal"},title:"Food Database"},{path:"recipes",loadComponent:()=>import("./chunk-M5FTDRXU.js").then(n=>n.RecipesListComponent),data:{mode:"portal"},title:"Recipes"},{path:"recipes/:id",loadComponent:()=>import("./chunk-J4VOLNCI.js").then(n=>n.RecipeDetailComponent),data:{mode:"portal"},title:"Recipe"},{path:"quizzes",loadComponent:()=>import("./chunk-NXNXZCQT.js").then(n=>n.QuizzesHubComponent),data:{mode:"portal"},title:"Health Quizzes"},{path:"quizzes/:key",loadComponent:()=>import("./chunk-4TNNZPC5.js").then(n=>n.QuizComponent),data:{mode:"portal"},title:"Quiz"}]}];export{Lg as CLIENT_PORTAL_ROUTES};/**i18n:124ccf68d2f1268c4040d7fd92ec0e6a8c443ba8f9b9e552a35ffacd4fbcb105*/

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.