html{--mat-sys-background: #faf9fd;--mat-sys-error: #ba1a1a;--mat-sys-error-container: #ffdad6;--mat-sys-inverse-on-surface: #f2f0f4;--mat-sys-inverse-primary: #abc7ff;--mat-sys-inverse-surface: #2f3033;--mat-sys-on-background: #1a1b1f;--mat-sys-on-error: #ffffff;--mat-sys-on-error-container: #93000a;--mat-sys-on-primary: #ffffff;--mat-sys-on-primary-container: #00458f;--mat-sys-on-primary-fixed: #001b3f;--mat-sys-on-primary-fixed-variant: #00458f;--mat-sys-on-secondary: #ffffff;--mat-sys-on-secondary-container: #3e4759;--mat-sys-on-secondary-fixed: #131c2b;--mat-sys-on-secondary-fixed-variant: #3e4759;--mat-sys-on-surface: #1a1b1f;--mat-sys-on-surface-variant: #44474e;--mat-sys-on-tertiary: #ffffff;--mat-sys-on-tertiary-container: #0000ef;--mat-sys-on-tertiary-fixed: #00006e;--mat-sys-on-tertiary-fixed-variant: #0000ef;--mat-sys-outline: #74777f;--mat-sys-outline-variant: #c4c6d0;--mat-sys-primary: #005cbb;--mat-sys-primary-container: #d7e3ff;--mat-sys-primary-fixed: #d7e3ff;--mat-sys-primary-fixed-dim: #abc7ff;--mat-sys-scrim: #000000;--mat-sys-secondary: #565e71;--mat-sys-secondary-container: #dae2f9;--mat-sys-secondary-fixed: #dae2f9;--mat-sys-secondary-fixed-dim: #bec6dc;--mat-sys-shadow: #000000;--mat-sys-surface: #faf9fd;--mat-sys-surface-bright: #faf9fd;--mat-sys-surface-container: #efedf0;--mat-sys-surface-container-high: #e9e7eb;--mat-sys-surface-container-highest: #e3e2e6;--mat-sys-surface-container-low: #f4f3f6;--mat-sys-surface-container-lowest: #ffffff;--mat-sys-surface-dim: #dbd9dd;--mat-sys-surface-tint: #005cbb;--mat-sys-surface-variant: #e0e2ec;--mat-sys-tertiary: #343dff;--mat-sys-tertiary-container: #e0e0ff;--mat-sys-tertiary-fixed: #e0e0ff;--mat-sys-tertiary-fixed-dim: #bec2ff;--mat-sys-neutral-variant20: #2d3038;--mat-sys-neutral10: #1a1b1f}html{--mat-sys-level0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level2: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level3: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level4: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-sys-level5: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12)}html{--mat-sys-body-large: 400 1rem / 1.5rem Roboto;--mat-sys-body-large-font: Roboto;--mat-sys-body-large-line-height: 1.5rem;--mat-sys-body-large-size: 1rem;--mat-sys-body-large-tracking: .031rem;--mat-sys-body-large-weight: 400;--mat-sys-body-medium: 400 .875rem / 1.25rem Roboto;--mat-sys-body-medium-font: Roboto;--mat-sys-body-medium-line-height: 1.25rem;--mat-sys-body-medium-size: .875rem;--mat-sys-body-medium-tracking: .016rem;--mat-sys-body-medium-weight: 400;--mat-sys-body-small: 400 .75rem / 1rem Roboto;--mat-sys-body-small-font: Roboto;--mat-sys-body-small-line-height: 1rem;--mat-sys-body-small-size: .75rem;--mat-sys-body-small-tracking: .025rem;--mat-sys-body-small-weight: 400;--mat-sys-display-large: 400 3.562rem / 4rem Roboto;--mat-sys-display-large-font: Roboto;--mat-sys-display-large-line-height: 4rem;--mat-sys-display-large-size: 3.562rem;--mat-sys-display-large-tracking: -.016rem;--mat-sys-display-large-weight: 400;--mat-sys-display-medium: 400 2.812rem / 3.25rem Roboto;--mat-sys-display-medium-font: Roboto;--mat-sys-display-medium-line-height: 3.25rem;--mat-sys-display-medium-size: 2.812rem;--mat-sys-display-medium-tracking: 0;--mat-sys-display-medium-weight: 400;--mat-sys-display-small: 400 2.25rem / 2.75rem Roboto;--mat-sys-display-small-font: Roboto;--mat-sys-display-small-line-height: 2.75rem;--mat-sys-display-small-size: 2.25rem;--mat-sys-display-small-tracking: 0;--mat-sys-display-small-weight: 400;--mat-sys-headline-large: 400 2rem / 2.5rem Roboto;--mat-sys-headline-large-font: Roboto;--mat-sys-headline-large-line-height: 2.5rem;--mat-sys-headline-large-size: 2rem;--mat-sys-headline-large-tracking: 0;--mat-sys-headline-large-weight: 400;--mat-sys-headline-medium: 400 1.75rem / 2.25rem Roboto;--mat-sys-headline-medium-font: Roboto;--mat-sys-headline-medium-line-height: 2.25rem;--mat-sys-headline-medium-size: 1.75rem;--mat-sys-headline-medium-tracking: 0;--mat-sys-headline-medium-weight: 400;--mat-sys-headline-small: 400 1.5rem / 2rem Roboto;--mat-sys-headline-small-font: Roboto;--mat-sys-headline-small-line-height: 2rem;--mat-sys-headline-small-size: 1.5rem;--mat-sys-headline-small-tracking: 0;--mat-sys-headline-small-weight: 400;--mat-sys-label-large: 500 .875rem / 1.25rem Roboto;--mat-sys-label-large-font: Roboto;--mat-sys-label-large-line-height: 1.25rem;--mat-sys-label-large-size: .875rem;--mat-sys-label-large-tracking: .006rem;--mat-sys-label-large-weight: 500;--mat-sys-label-large-weight-prominent: 700;--mat-sys-label-medium: 500 .75rem / 1rem Roboto;--mat-sys-label-medium-font: Roboto;--mat-sys-label-medium-line-height: 1rem;--mat-sys-label-medium-size: .75rem;--mat-sys-label-medium-tracking: .031rem;--mat-sys-label-medium-weight: 500;--mat-sys-label-medium-weight-prominent: 700;--mat-sys-label-small: 500 .688rem / 1rem Roboto;--mat-sys-label-small-font: Roboto;--mat-sys-label-small-line-height: 1rem;--mat-sys-label-small-size: .688rem;--mat-sys-label-small-tracking: .031rem;--mat-sys-label-small-weight: 500;--mat-sys-title-large: 400 1.375rem / 1.75rem Roboto;--mat-sys-title-large-font: Roboto;--mat-sys-title-large-line-height: 1.75rem;--mat-sys-title-large-size: 1.375rem;--mat-sys-title-large-tracking: 0;--mat-sys-title-large-weight: 400;--mat-sys-title-medium: 500 1rem / 1.5rem Roboto;--mat-sys-title-medium-font: Roboto;--mat-sys-title-medium-line-height: 1.5rem;--mat-sys-title-medium-size: 1rem;--mat-sys-title-medium-tracking: .009rem;--mat-sys-title-medium-weight: 500;--mat-sys-title-small: 500 .875rem / 1.25rem Roboto;--mat-sys-title-small-font: Roboto;--mat-sys-title-small-line-height: 1.25rem;--mat-sys-title-small-size: .875rem;--mat-sys-title-small-tracking: .006rem;--mat-sys-title-small-weight: 500}html{--mat-sys-corner-extra-large: 28px;--mat-sys-corner-extra-large-top: 28px 28px 0 0;--mat-sys-corner-extra-small: 4px;--mat-sys-corner-extra-small-top: 4px 4px 0 0;--mat-sys-corner-full: 9999px;--mat-sys-corner-large: 16px;--mat-sys-corner-large-end: 0 16px 16px 0;--mat-sys-corner-large-start: 16px 0 0 16px;--mat-sys-corner-large-top: 16px 16px 0 0;--mat-sys-corner-medium: 12px;--mat-sys-corner-none: 0;--mat-sys-corner-small: 8px}html{--mat-sys-dragged-state-layer-opacity: .16;--mat-sys-focus-state-layer-opacity: .12;--mat-sys-hover-state-layer-opacity: .08;--mat-sys-pressed-state-layer-opacity: .12}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{color-scheme:light;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 2rem;--space-8: 2.5rem;--text-xs: clamp(.75rem, .72rem + .2vw, .82rem);--text-sm: clamp(.875rem, .84rem + .2vw, .95rem);--text-base: clamp(1rem, .96rem + .28vw, 1.1rem);--text-lg: clamp(1.25rem, 1.1rem + .6vw, 1.6rem);--text-xl: clamp(1.75rem, 1.4rem + 1vw, 2.4rem);--radius-sm: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--shadow-soft: 0 8px 28px rgba(17, 27, 60, .12);--shadow-elev: 0 16px 40px rgba(17, 27, 60, .2);--surface-border: 1px solid rgba(255, 255, 255, .18);--blur-strong: 16px;--accent-500: #4d6fff;--accent-600: #3f5cff;--accent-700: #3247cf;--success-50: #f0fdf4;--success-100: #dcfce7;--success-200: #bbf7d0;--success-700: #15803d;--text-1: #152038;--text-2: #4a5875;--text-3: #5b657b;--s-1: var(--space-1);--s-2: var(--space-2);--s-3: var(--space-3);--s-4: var(--space-4);--s-5: var(--space-5);--s-6: var(--space-6);--s-7: var(--space-7);--s-8: var(--space-8)}@media (max-width: 600px){:root{--space-1: .2125rem ;--space-2: .425rem ;--space-3: .6375rem ;--space-4: .85rem ;--space-5: 1.0625rem ;--space-6: 1.275rem ;--space-7: 1.7rem ;--space-8: 2.125rem ;--text-xs: clamp(.7rem, .68rem + .18vw, .78rem);--text-sm: clamp(.82rem, .78rem + .18vw, .9rem);--text-base: clamp(.95rem, .9rem + .25vw, 1.05rem);--text-lg: clamp(1.15rem, 1rem + .5vw, 1.45rem);--text-xl: clamp(1.5rem, 1.2rem + .9vw, 2rem);--s-1: var(--space-1);--s-2: var(--space-2);--s-3: var(--space-3);--s-4: var(--space-4);--s-5: var(--space-5);--s-6: var(--space-6);--s-7: var(--space-7);--s-8: var(--space-8)}.container{padding-inline:var(--space-3)}.grid-auto{gap:var(--space-3)}.card-glass{padding:var(--space-4)}.btn-accent{min-height:40px;padding:0 var(--space-4)}.error-state,.success-state{padding:var(--space-5);margin-block:var(--space-5)}.error-state mat-icon,.success-state mat-icon{margin-bottom:var(--space-2)}}@media (max-width: 400px){:root{--space-1: .175rem ;--space-2: .35rem ;--space-3: calc(.7 * .75rem);--space-4: .7rem ;--space-5: .875rem ;--space-6: calc(.7 * 1.5rem);--space-7: 1.4rem ;--space-8: 1.75rem ;--text-xs: clamp(.68rem, .64rem + .18vw, .75rem);--text-sm: clamp(.8rem, .74rem + .18vw, .88rem);--text-base: clamp(.9rem, .84rem + .24vw, 1rem);--text-lg: clamp(1.05rem, .92rem + .45vw, 1.35rem);--text-xl: clamp(1.35rem, 1.08rem + .8vw, 1.8rem);--s-1: var(--space-1);--s-2: var(--space-2);--s-3: var(--space-3);--s-4: var(--space-4);--s-5: var(--space-5);--s-6: var(--space-6);--s-7: var(--space-7);--s-8: var(--space-8)}.container{padding-inline:var(--space-2)}.grid-auto{gap:var(--space-2)}.card-glass{padding:var(--space-3)}.btn-accent{min-height:38px;padding:0 var(--space-3)}.error-state,.success-state{padding:var(--space-4);margin-block:var(--space-4)}.error-state mat-icon,.success-state mat-icon{margin-bottom:var(--space-2)}}html,body{height:100%}html{font-family:Inter,Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:16px;line-height:1.5;text-rendering:optimizeLegibility}body{min-height:100%;background:radial-gradient(900px 700px at 15% 15%,rgba(0,255,255,.25),transparent 50%),radial-gradient(1000px 800px at 85% 20%,rgba(0,200,255,.2),transparent 50%),radial-gradient(700px 600px at 50% 85%,rgba(0,255,180,.22),transparent 50%),radial-gradient(800px 650px at 80% 75%,rgba(255,182,193,.25),transparent 50%),radial-gradient(850px 700px at 25% 80%,rgba(186,140,255,.22),transparent 50%),radial-gradient(750px 500px at 60% 40%,rgba(255,255,200,.2),transparent 50%),radial-gradient(900px 750px at 40% 20%,rgba(255,220,180,.2),transparent 50%),linear-gradient(180deg,#f7f9ff,#eef3ff);background-attachment:fixed;color:var(--text-1);overflow-x:hidden;overflow-y:auto;position:relative;font-family:inherit;-webkit-font-smoothing:antialiased;word-break:break-word;overflow-wrap:anywhere}body.no-scroll{overflow:hidden}app-root{display:block;min-height:100vh}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent-500);outline-offset:2px}button{font-family:inherit;cursor:pointer;border:none;background:none}input,select,textarea{font-family:inherit}img{max-width:100%;display:block;height:auto}main{display:block;width:100%}body:before,body:after{content:"";position:fixed;border-radius:50%;filter:blur(120px);opacity:.6;z-index:-1;pointer-events:none}body:before{width:350px;height:350px;background:#3ea3a5;top:-100px;left:-100px}body:after{width:400px;height:400px;background:#5857a0;bottom:-150px;right:-100px}.glass{background:var(--surface, hsla(0, 0%, 100%, .08));backdrop-filter:blur(var(--blur-strong));-webkit-backdrop-filter:blur(var(--blur-strong));border:var(--surface-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft)}.card-glass{background:var(--surface, hsla(0, 0%, 100%, .08));backdrop-filter:blur(var(--blur-strong));-webkit-backdrop-filter:blur(var(--blur-strong));border:var(--surface-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);padding:var(--space-5);transition:transform .2s ease,box-shadow .2s ease,outline-color .2s ease}.card-glass:hover{transform:translateY(-2px);box-shadow:var(--shadow-elev);outline:2px solid rgba(77,111,255,.3);outline-offset:-2px}.container{width:min(100%,72rem);margin:0 auto;padding-inline:var(--space-4)}.grid-auto{display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(16rem,1fr))}.btn-accent{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-5);border-radius:999px;font-weight:700;font-size:var(--text-base);color:#fff;background:linear-gradient(135deg,var(--accent-500),var(--accent-600));border:1px solid rgba(17,27,60,.12);box-shadow:0 14px 32px #4d6fff47;transition:transform .2s ease,filter .2s ease,box-shadow .2s ease;text-decoration:none}.btn-accent:hover,.btn-accent:focus-visible{transform:translateY(-1px);filter:brightness(1.04);box-shadow:0 18px 42px #4d6fff57}.empty-state mat-icon{font-size:4rem;width:4rem;height:4rem;color:#dc7850;margin-bottom:var(--space-4)}.error-state,.success-state{border-radius:var(--radius-lg);padding:var(--space-6);text-align:center;margin-block:var(--space-6)}.error-state{background:#e74c3c14;border:1px solid rgba(231,76,60,.24);color:#e74c3c}.success-state{background:#27ae6014;border:1px solid rgba(39,174,96,.24);color:#27ae60}.error-state mat-icon,.success-state mat-icon{font-size:3rem;width:3rem;height:3rem;margin-bottom:var(--space-3)}.text-balance{text-wrap:balance}.text-wrap{overflow-wrap:anywhere}.truncate-one{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.truncate-multi{display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}@media (min-width: 641px){.container{padding-inline:var(--space-5)}}@media (min-width: 1025px){.container{padding-inline:var(--space-6)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.meal-plan-dialog-panel .mat-mdc-dialog-container{padding:0;border-radius:24px;background:transparent;box-shadow:none}.meal-plan-dialog-panel .mat-mdc-dialog-container .mdc-dialog__surface{padding:0;background:transparent;box-shadow:none}
