html{height:100%;--mat-sys-background: light-dark(#faf9fd, #121316);--mat-sys-error: light-dark(#ba1a1a, #ffb4ab);--mat-sys-error-container: light-dark(#ffdad6, #93000a);--mat-sys-inverse-on-surface: light-dark(#f2f0f4, #2f3033);--mat-sys-inverse-primary: light-dark(#abc7ff, #005cbb);--mat-sys-inverse-surface: light-dark(#2f3033, #e3e2e6);--mat-sys-on-background: light-dark(#1a1b1f, #e3e2e6);--mat-sys-on-error: light-dark(#ffffff, #690005);--mat-sys-on-error-container: light-dark(#93000a, #ffdad6);--mat-sys-on-primary: light-dark(#ffffff, #002f65);--mat-sys-on-primary-container: light-dark(#00458f, #d7e3ff);--mat-sys-on-primary-fixed: light-dark(#001b3f, #001b3f);--mat-sys-on-primary-fixed-variant: light-dark(#00458f, #00458f);--mat-sys-on-secondary: light-dark(#ffffff, #283041);--mat-sys-on-secondary-container: light-dark(#3e4759, #dae2f9);--mat-sys-on-secondary-fixed: light-dark(#131c2b, #131c2b);--mat-sys-on-secondary-fixed-variant: light-dark(#3e4759, #3e4759);--mat-sys-on-surface: light-dark(#1a1b1f, #e3e2e6);--mat-sys-on-surface-variant: light-dark(#44474e, #e0e2ec);--mat-sys-on-tertiary: light-dark(#ffffff, #0001ac);--mat-sys-on-tertiary-container: light-dark(#0000ef, #e0e0ff);--mat-sys-on-tertiary-fixed: light-dark(#00006e, #00006e);--mat-sys-on-tertiary-fixed-variant: light-dark(#0000ef, #0000ef);--mat-sys-outline: light-dark(#74777f, #8e9099);--mat-sys-outline-variant: light-dark(#c4c6d0, #44474e);--mat-sys-primary: light-dark(#005cbb, #abc7ff);--mat-sys-primary-container: light-dark(#d7e3ff, #00458f);--mat-sys-primary-fixed: light-dark(#d7e3ff, #d7e3ff);--mat-sys-primary-fixed-dim: light-dark(#abc7ff, #abc7ff);--mat-sys-scrim: light-dark(#000000, #000000);--mat-sys-secondary: light-dark(#565e71, #bec6dc);--mat-sys-secondary-container: light-dark(#dae2f9, #3e4759);--mat-sys-secondary-fixed: light-dark(#dae2f9, #dae2f9);--mat-sys-secondary-fixed-dim: light-dark(#bec6dc, #bec6dc);--mat-sys-shadow: light-dark(#000000, #000000);--mat-sys-surface: light-dark(#faf9fd, #121316);--mat-sys-surface-bright: light-dark(#faf9fd, #38393c);--mat-sys-surface-container: light-dark(#efedf0, #1f2022);--mat-sys-surface-container-high: light-dark(#e9e7eb, #292a2c);--mat-sys-surface-container-highest: light-dark(#e3e2e6, #343537);--mat-sys-surface-container-low: light-dark(#f4f3f6, #1a1b1f);--mat-sys-surface-container-lowest: light-dark(#ffffff, #0d0e11);--mat-sys-surface-dim: light-dark(#dbd9dd, #121316);--mat-sys-surface-tint: light-dark(#005cbb, #abc7ff);--mat-sys-surface-variant: light-dark(#e0e2ec, #44474e);--mat-sys-tertiary: light-dark(#343dff, #bec2ff);--mat-sys-tertiary-container: light-dark(#e0e0ff, #0000ef);--mat-sys-tertiary-fixed: light-dark(#e0e0ff, #e0e0ff);--mat-sys-tertiary-fixed-dim: light-dark(#bec2ff, #bec2ff);--mat-sys-neutral-variant20: #2d3038;--mat-sys-neutral10: #1a1b1f;--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);--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);--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);--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);--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);--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);--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;--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;--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}body{color-scheme:light;background-color:var(--mat-sys-surface);color:var(--mat-sys-on-surface);font:var(--mat-sys-body-medium);margin:0;height:100%}@font-face{font-family:Caveat;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/caveat/v23/Wnz6HAc5bAfYB2Q7azYYmg8.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Caveat;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/caveat/v23/Wnz6HAc5bAfYB2Q7YjYYmg8.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Caveat;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/caveat/v23/Wnz6HAc5bAfYB2Q7aDYYmg8.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Caveat;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/caveat/v23/Wnz6HAc5bAfYB2Q7ZjYY.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Caveat;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/caveat/v23/Wnz6HAc5bAfYB2Q7azYYmg8.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Caveat;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/caveat/v23/Wnz6HAc5bAfYB2Q7YjYYmg8.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Caveat;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/caveat/v23/Wnz6HAc5bAfYB2Q7aDYYmg8.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Caveat;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/caveat/v23/Wnz6HAc5bAfYB2Q7ZjYY.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Caveat;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/caveat/v23/Wnz6HAc5bAfYB2Q7azYYmg8.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Caveat;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/caveat/v23/Wnz6HAc5bAfYB2Q7YjYYmg8.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Caveat;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/caveat/v23/Wnz6HAc5bAfYB2Q7aDYYmg8.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Caveat;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/caveat/v23/Wnz6HAc5bAfYB2Q7ZjYY.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Dancing Script;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/dancingscript/v29/If2RXTr6YS-zF4S-kcSWSVi_szLviuEViw.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Dancing Script;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/dancingscript/v29/If2RXTr6YS-zF4S-kcSWSVi_szLuiuEViw.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Dancing Script;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/dancingscript/v29/If2RXTr6YS-zF4S-kcSWSVi_szLgiuE.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Dancing Script;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/dancingscript/v29/If2RXTr6YS-zF4S-kcSWSVi_szLviuEViw.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Dancing Script;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/dancingscript/v29/If2RXTr6YS-zF4S-kcSWSVi_szLuiuEViw.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Dancing Script;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/dancingscript/v29/If2RXTr6YS-zF4S-kcSWSVi_szLgiuE.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Dancing Script;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/dancingscript/v29/If2RXTr6YS-zF4S-kcSWSVi_szLviuEViw.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Dancing Script;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/dancingscript/v29/If2RXTr6YS-zF4S-kcSWSVi_szLuiuEViw.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Dancing Script;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/dancingscript/v29/If2RXTr6YS-zF4S-kcSWSVi_szLgiuE.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-bg: #f5f3f0;--color-bg-pattern: radial-gradient(circle, rgba(139, 90, 60, .03) 1px, transparent 1px);--color-surface: #ffffff;--color-sidebar: #ffffff;--color-primary: #8b5a3c;--color-primary-dark: #6b4423;--color-accent: #e67e22;--color-danger: #ef4444;--color-text-main: #3d2817;--color-text-muted: #6b5d4f;--color-border-subtle: #e8e0d8;--color-placeholder: linear-gradient(135deg, #f5f3f0 0%, #e8e0d8 100%);--font-sans: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-handwritten: "Dancing Script", "Caveat", cursive;--font-size-xs: .875rem;--font-size-sm: 1rem;--font-size-base: 1.125rem;--font-size-lg: 1.25rem;--font-size-xl: 1.5rem;--font-size-2xl: 1.875rem;--font-size-3xl: 2.25rem;--font-size-xs-mobile: .8125rem;--font-size-sm-mobile: .9375rem;--font-size-base-mobile: 1rem;--font-size-lg-mobile: 1.125rem;--font-size-xl-mobile: 1.25rem;--font-size-2xl-mobile: 1.5rem;--font-size-3xl-mobile: 1.75rem;--line-height-tight: 1.4;--line-height-normal: 1.6;--line-height-relaxed: 1.8;--letter-spacing-normal: .01em;--letter-spacing-wide: .02em;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow-soft: 0 4px 12px rgba(61, 40, 23, .08);--shadow-card: 0 2px 8px rgba(61, 40, 23, .1);--shadow-polaroid: 0 4px 16px rgba(61, 40, 23, .15);--sidebar-width: 240px;--page-max-width: 1200px;--page-padding-x: 1.5rem;--page-padding-y: 1.5rem;--page-padding-x-mobile: 1rem;--page-padding-y-mobile: 1rem}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;overflow-x:hidden;width:100%;max-width:100vw}body{font-family:var(--font-sans);font-size:var(--font-size-base);background:var(--color-bg);background-image:var(--color-bg-pattern);background-size:20px 20px;color:var(--color-text-main);line-height:var(--line-height-normal);letter-spacing:var(--letter-spacing-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit}.login-modal-panel{border-radius:var(--radius-xl)!important;box-shadow:var(--shadow-polaroid)!important;background-color:var(--color-surface)!important;padding:0!important;animation:modalFadeIn .3s ease-out}@keyframes modalFadeIn{0%{opacity:0;transform:scale(.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing,.login-modal-backdrop.cdk-overlay-backdrop-showing{background-color:#3d281780!important;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:backdropFadeIn .3s ease-out}@media(max-width:768px){.login-modal-panel{margin:1rem!important;max-width:calc(100vw - 2rem)!important}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing,.login-modal-backdrop.cdk-overlay-backdrop-showing{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}}@keyframes backdropFadeIn{0%{opacity:0}to{opacity:1}}.btn-primary:focus-visible,.btn-secondary:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.card{background-color:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);border:1px solid rgba(61,40,23,.08);transition:box-shadow .3s ease,transform .2s ease}.page-section{margin-bottom:2rem}.page-section:last-child{margin-bottom:0}@media(max-width:768px){.page-section{margin-bottom:1.5rem}}.page-title{font-size:var(--font-size-3xl);font-weight:700;margin:0 0 .75rem;color:var(--color-text-main);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-wide)}.page-subtitle{margin:0 0 2rem;font-size:var(--font-size-lg);color:var(--color-text-muted);line-height:var(--line-height-relaxed);letter-spacing:var(--letter-spacing-normal)}@media(max-width:768px){.page-title{font-size:var(--font-size-xl-mobile);margin-bottom:.25rem;line-height:1.3;font-weight:700}.page-subtitle{font-size:var(--font-size-xs-mobile);margin-bottom:.5rem;line-height:1.4;padding-right:0}.page-section,.card.page-section{margin-bottom:.875rem}}.hero{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));color:#fff;border-radius:var(--radius-lg);padding:2.5rem 2rem;margin-bottom:2rem;box-shadow:var(--shadow-soft);position:relative;overflow:hidden}.hero:before{content:"";position:absolute;top:-50%;right:-10%;width:200px;height:200px;background:#ffffff0d;border-radius:50%;pointer-events:none}.hero-title{margin:0 0 1rem;font-size:var(--font-size-2xl);font-weight:700;line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-wide);position:relative;z-index:1}.hero-subtitle{margin:0;font-size:var(--font-size-lg);opacity:.95;line-height:var(--line-height-relaxed);letter-spacing:var(--letter-spacing-normal);position:relative;z-index:1}@media(max-width:768px){body{font-size:var(--font-size-base-mobile)}.hero{padding:1.25rem .875rem;margin-bottom:1rem;border-radius:var(--radius-md)}.hero-title{font-size:var(--font-size-xl-mobile);margin-bottom:.375rem;line-height:1.25;font-weight:600}.hero-subtitle{font-size:var(--font-size-xs-mobile);line-height:1.4;margin-top:.25rem}}.form-row{display:flex;gap:1rem;align-items:flex-start}.input-wrapper{flex:1;min-width:0}@media(max-width:768px){.form-row{flex-direction:column;gap:.75rem;align-items:stretch}.input-wrapper{width:100%}}.input{border-radius:var(--radius-md);border:2px solid var(--color-border-subtle);padding:.875rem 1.125rem;font:inherit;font-size:var(--font-size-base);width:100%;background-color:var(--color-surface);color:var(--color-text-main);transition:border-color .2s ease,box-shadow .2s ease;line-height:var(--line-height-normal);letter-spacing:var(--letter-spacing-normal)}.input:hover:not(:disabled){border-color:#8b5a3c4d}.input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #8b5a3c1a}.input:disabled{background-color:#f5f5f5;cursor:not-allowed;opacity:.6}.input::placeholder{color:var(--color-text-muted)}@media(max-width:768px){.input{padding:.75rem 1rem;font-size:16px;min-height:44px;border-width:1.5px}}.textarea{font-family:inherit;resize:vertical;min-height:120px;line-height:1.6}@media(max-width:768px){.textarea{min-height:90px;padding:.75rem 1rem;font-size:16px;border-width:1.5px;line-height:1.5}}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md);border:none;padding:.875rem 1.5rem;font:inherit;font-size:var(--font-size-base);font-weight:600;cursor:pointer;transition:background-color .15s ease,box-shadow .15s ease,transform .05s ease;line-height:var(--line-height-normal);letter-spacing:var(--letter-spacing-normal)}.btn:disabled{opacity:.7;cursor:default}.btn-primary{background-color:var(--color-primary);color:#fff;box-shadow:0 2px 8px #8b5a3c4d;font-weight:600;padding:.875rem 1.5rem;min-width:140px;display:inline-flex;align-items:center;gap:.5rem;white-space:nowrap}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-dark);box-shadow:0 4px 12px #8b5a3c66;transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn-extract{flex-shrink:0}.btn-icon{width:20px;height:20px;flex-shrink:0}.btn-text{flex-shrink:0}@media(max-width:768px){.btn{padding:.75rem 1.25rem;font-size:var(--font-size-sm-mobile);min-height:44px}.btn-primary{width:100%;min-width:unset;padding:.75rem 1.25rem;font-size:var(--font-size-sm-mobile);font-weight:500;justify-content:center}.btn-secondary{padding:.75rem 1.25rem;font-size:var(--font-size-sm-mobile)}.btn-extract{width:100%;padding:.5rem .875rem;font-size:var(--font-size-sm-mobile);min-height:38px;font-weight:500}.btn-icon{width:18px;height:18px}}.btn-save{min-width:180px;font-size:1rem;display:inline-flex;align-items:center;gap:.5rem}.btn-save .btn-icon{width:20px;height:20px;flex-shrink:0}@media(max-width:768px){.btn-save{width:100%;min-width:unset}}.btn-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite;margin-right:.5rem}@keyframes spin{to{transform:rotate(360deg)}}.card-body{padding:1.5rem 1.5rem 1.75rem}.card-header{padding:1.25rem 1.5rem .75rem}.card-title{margin:0 0 .5rem;font-size:var(--font-size-xl);font-weight:600;line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-normal)}.card-subtitle{margin:0;font-size:var(--font-size-base);color:var(--color-text-muted);line-height:var(--line-height-relaxed);letter-spacing:var(--letter-spacing-normal)}@media(max-width:768px){.card-body{padding:.875rem}.card-header{padding:.75rem .875rem .5rem}.card-title{font-size:var(--font-size-base-mobile);margin-bottom:.25rem;line-height:1.35;font-weight:600}.card-subtitle{font-size:var(--font-size-xs-mobile);line-height:1.35;margin-bottom:.375rem}}.text-muted{color:var(--color-text-muted)}.list-card{background-color:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);border:1px solid rgba(61,40,23,.08);width:100%;max-width:100%;box-sizing:border-box;overflow-x:hidden}.list-card-header{padding:1rem 1.25rem .5rem;border-bottom:1px solid var(--color-border-subtle)}.list-card-body{padding:.5rem 1.25rem 1rem}.list-items{list-style:none;padding:0;margin:0}.list-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;border-bottom:1px solid var(--color-border-subtle);transition:all .2s ease;border-radius:var(--radius-md);margin:0 -1.25rem;padding:1rem 1.25rem;min-height:48px}@media(max-width:768px){.list-item{padding:1rem;margin:0;min-height:56px;border-radius:0}.list-item:first-child{border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.list-item:last-child{border-bottom-left-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.list-card{border-radius:var(--radius-md);margin:0}.list-card-header{padding:1rem 1rem .75rem;font-size:.9375rem}.list-card-body,.list-items{padding:0}.list-item a{font-size:1rem;line-height:1.5;font-weight:500;padding-right:.5rem}}.list-item:hover{background-color:#8b5a3c0d;transform:translate(4px)}.list-item a{transition:color .2s ease;font-size:var(--font-size-base);line-height:var(--line-height-normal);letter-spacing:var(--letter-spacing-normal)}@media(max-width:768px){.list-item a{font-size:1rem;line-height:1.5;font-weight:500;padding-right:.5rem}}.list-item:hover a{color:var(--color-primary)}.list-item:last-child{border-bottom:none}.btn-icon{border:none;background:transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:.25rem;border-radius:999px;transition:background-color .15s ease,transform .05s ease}.btn-icon:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn-icon-danger{color:var(--color-danger)}.btn-icon-danger:hover{background-color:#ef444414;transform:translateY(-1px)}.text-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recipe-detail-section{animation:fadeIn .3s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.breadcrumb{margin-bottom:1.5rem}.breadcrumb-link{display:inline-flex;align-items:center;gap:.5rem;color:var(--color-primary);text-decoration:none;font-weight:500;transition:color .2s ease}.breadcrumb-link:hover{color:var(--color-primary-dark);text-decoration:underline}.detail-card{background-color:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);border:1px solid rgba(61,40,23,.08);padding:2rem;animation:slideUp .4s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.detail-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:2px solid var(--color-border-subtle);position:relative}.detail-actions{display:flex;gap:.75rem;align-items:center;flex-shrink:0}.btn-edit{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all .2s ease;box-shadow:var(--shadow-soft);text-decoration:none}.btn-edit:hover{background:var(--color-primary-dark);transform:translateY(-1px);box-shadow:var(--shadow-card)}.btn-edit:active{transform:translateY(0)}.btn-edit:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn-edit svg{width:20px;height:20px;flex-shrink:0}.detail-title{margin:0;padding-right:3.5rem;font-size:var(--font-size-3xl);font-weight:700;color:var(--color-text-main);font-family:var(--font-handwritten);line-height:var(--line-height-tight);letter-spacing:.02em}.btn-share-whatsapp{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;padding:0;background-color:#25d366;color:#fff;border:none;border-radius:50%;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #25d36640;flex-shrink:0}.btn-share-whatsapp:hover{background-color:#20ba5a;transform:translateY(-2px) scale(1.05);box-shadow:0 4px 16px #25d36666}.btn-share-whatsapp:active{transform:translateY(0) scale(.95)}.btn-share-whatsapp:focus-visible{outline:2px solid #25D366;outline-offset:2px}.btn-share-whatsapp svg{width:24px;height:24px;flex-shrink:0}@media(max-width:768px){.detail-header{padding-bottom:1.25rem}.detail-title{font-size:var(--font-size-xl-mobile);padding-right:0;flex:1 1 100%;margin-bottom:.5rem}.detail-actions{flex-direction:row;align-items:center;gap:.5rem;flex:1 1 auto;justify-content:flex-end}.btn-edit{padding:.5rem .875rem;font-size:var(--font-size-xs-mobile);gap:.375rem}.btn-edit svg{width:16px;height:16px}.btn-share-whatsapp{width:40px;height:40px;flex-shrink:0}.btn-share-whatsapp svg{width:20px;height:20px}.btn-share-whatsapp svg{width:22px;height:22px}}.detail-meta{margin:.5rem 0 0;font-size:.9rem;color:var(--color-text-muted)}.detail-content{display:flex;flex-direction:column;gap:2rem}.detail-section{animation:fadeIn .5s ease-out}.detail-section-title{margin:0 0 1.25rem;font-size:var(--font-size-xl);font-weight:700;color:var(--color-primary);display:flex;align-items:center;gap:.5rem;line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-wide)}.detail-section-title:after{content:"";flex:1;height:1px;background:linear-gradient(to right,var(--color-primary),transparent)}.detail-ingredients{list-style:none;padding:0;margin:0;display:grid;gap:.75rem}.detail-ingredients li{background-color:#8b5a3c0d;border-left:3px solid var(--color-primary);border-radius:var(--radius-md);position:relative;padding:.875rem 1.125rem .875rem 2.75rem;font-size:var(--font-size-base);line-height:var(--line-height-relaxed);letter-spacing:var(--letter-spacing-normal)}.detail-ingredients li:before{content:"\2022";position:absolute;left:1rem;color:var(--color-primary);font-weight:700;font-size:1.2rem}.detail-procedure{margin:0;white-space:pre-line;line-height:var(--line-height-relaxed);font-size:var(--font-size-base);color:var(--color-text-main);padding:1.25rem;background-color:#8b5a3c08;border-radius:var(--radius-md);border-left:3px solid var(--color-primary);letter-spacing:var(--letter-spacing-normal)}.detail-video{margin-top:1rem;padding-top:1.5rem;border-top:1px solid var(--color-border-subtle)}.video-link{display:inline-flex;align-items:center;gap:.75rem;color:var(--color-primary);text-decoration:none;font-weight:600;padding:.75rem 1.25rem;background-color:#8b5a3c0d;border-radius:var(--radius-md);transition:all .2s ease}.video-link:hover{background-color:#8b5a3c1a;transform:translate(4px)}.video-icon{width:20px;height:20px;flex-shrink:0;color:var(--color-primary)}@media(max-width:768px){.detail-card{padding:1.5rem}.detail-title{font-size:1.5rem}.detail-content{gap:1.5rem}}.font-handwritten{font-family:var(--font-handwritten);font-weight:600}.form-group{margin-bottom:1.75rem}.form-group:last-child{margin-bottom:0}.form-label{display:block;font-weight:600;margin-bottom:.75rem;color:var(--color-text-main);font-size:var(--font-size-lg);line-height:var(--line-height-normal);letter-spacing:var(--letter-spacing-normal)}.form-hint{display:block;margin-top:.5rem;font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:var(--line-height-relaxed)}.form-actions{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--color-border-subtle);display:flex;justify-content:flex-start;gap:1rem}@media(max-width:768px){.form-group{margin-bottom:.875rem}.form-label{font-size:var(--font-size-sm-mobile);margin-bottom:.375rem;font-weight:500}.form-hint{font-size:var(--font-size-xs-mobile);margin-top:.25rem;line-height:1.35}.form-actions{margin-top:1rem;padding-top:.75rem;flex-direction:column;gap:.625rem}.form-actions .btn{width:100%;padding:.75rem 1.25rem;font-size:var(--font-size-sm-mobile)}.form-group-privacy{margin-top:1rem;padding:1rem}}.recipe-form{margin-top:.5rem}.form-group-privacy{margin-top:1.5rem;padding:1.25rem;background-color:#8b5a3c08;border-radius:var(--radius-md);border:1px solid var(--color-border-subtle)}.privacy-toggle-wrapper{display:flex;align-items:flex-start}.privacy-label{display:flex;align-items:flex-start;gap:1rem;cursor:pointer;width:100%}.privacy-checkbox{position:absolute;opacity:0;width:0;height:0}.privacy-toggle{position:relative;width:52px;height:32px;flex-shrink:0;background-color:var(--color-border-subtle);border-radius:16px;transition:background-color .2s ease;margin-top:2px}.privacy-toggle-slider{position:absolute;top:4px;left:4px;width:24px;height:24px;background-color:#fff;border-radius:50%;transition:transform .2s ease,box-shadow .2s ease;box-shadow:0 2px 4px #0003}.privacy-checkbox:checked+.privacy-toggle{background-color:var(--color-primary)}.privacy-checkbox:checked+.privacy-toggle .privacy-toggle-slider{transform:translate(20px)}.privacy-checkbox:focus-visible+.privacy-toggle{outline:2px solid var(--color-primary);outline-offset:2px}.privacy-label-text{flex:1;display:flex;flex-direction:column;gap:.25rem}.privacy-label-title{font-weight:600;font-size:var(--font-size-base);color:var(--color-text-main);line-height:var(--line-height-normal)}.privacy-label-hint{font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:var(--line-height-relaxed)}.empty-preview{padding:2rem;text-align:center;background-color:#8b5a3c08;border-radius:var(--radius-md);border:1px dashed var(--color-border-subtle)}@media(max-width:768px){.form-group-privacy{padding:1rem}.privacy-label{gap:.75rem}.privacy-toggle{width:48px;height:28px;margin-top:0}.privacy-toggle-slider{width:20px;height:20px;top:4px;left:4px}.privacy-checkbox:checked+.privacy-toggle .privacy-toggle-slider{transform:translate(20px)}.privacy-label-title{font-size:.9375rem}.privacy-label-hint{font-size:.875rem}}.error-message{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;background-color:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-md);color:var(--color-danger);margin-bottom:1rem}.error-icon{font-size:1.25rem;flex-shrink:0}.error-message p{margin:0;flex:1}.empty-state{padding:3rem 2rem;text-align:center;background-color:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);margin-bottom:1.5rem}.loading-state{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:3rem 2rem;text-align:center;background-color:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);margin-bottom:1.5rem}.loading-state p{margin:0;color:var(--color-text-muted);font-size:var(--font-size-base);line-height:var(--line-height-relaxed);letter-spacing:var(--letter-spacing-normal)}.error-state{padding:1.5rem;display:flex;align-items:flex-start;gap:1rem;background-color:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-lg);margin-bottom:1.5rem;color:var(--color-danger)}.error-state .error-icon{font-size:1.5rem;flex-shrink:0}.error-state p{margin:0;flex:1;font-weight:500;font-size:var(--font-size-base);line-height:var(--line-height-relaxed);letter-spacing:var(--letter-spacing-normal)}.loading-spinner{width:40px;height:40px;border:3px solid rgba(139,90,60,.1);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.empty-state p{margin:0;font-size:var(--font-size-base);line-height:var(--line-height-relaxed);letter-spacing:var(--letter-spacing-normal)}.empty-state-icon{font-size:3rem;opacity:.3;margin-bottom:1rem}.empty-state-title{font-size:var(--font-size-xl);font-weight:600;color:var(--color-text-main);margin:0 0 .75rem;line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-wide)}.empty-state-description{color:var(--color-text-muted);margin:0}.polaroid-card{background-color:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-polaroid);border:8px solid var(--color-surface);padding:0;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}.polaroid-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px #3d281733}.polaroid-image-placeholder{width:100%;aspect-ratio:4 / 5;background:var(--color-placeholder);display:flex;align-items:center;justify-content:center;position:relative}.polaroid-title{padding:1rem;text-align:center;font-family:var(--font-handwritten);font-size:1.25rem;font-weight:600;color:var(--color-text-main);margin:0}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;width:100%;max-width:100%;box-sizing:border-box}@media(max-width:1024px){.recipe-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.25rem}}@media(max-width:768px){.recipe-grid{grid-template-columns:1fr;gap:1rem;padding:0}}@media(max-width:480px){.recipe-grid{gap:.75rem}}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:loading 1.5s ease-in-out infinite;border-radius:var(--radius-md)}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-card{height:400px;background-color:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft)}.skeleton-list-item{height:60px;margin-bottom:.5rem}*:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}button:focus-visible,a:focus-visible{outline-offset:3px}html{scroll-behavior:smooth}.card{transition:box-shadow .3s ease,transform .2s ease}.card:hover{box-shadow:var(--shadow-card)}@media(max-width:768px){body{font-size:var(--font-size-base);-webkit-tap-highlight-color:rgba(139,90,60,.1)}.btn,.btn-icon,.sidebar-nav-link,.view-toggle-btn{min-height:48px;min-width:48px;-webkit-tap-highlight-color:rgba(139,90,60,.1)}.input,.textarea{font-size:16px;padding:.75rem 1rem;-webkit-appearance:none;appearance:none}.btn{padding:.75rem 1.25rem;font-size:var(--font-size-sm-mobile)}.list-card-body{-webkit-overflow-scrolling:touch;overflow-y:auto}.list-item:hover{transform:none;background-color:transparent}.list-item:active{background-color:#8b5a3c14}}
