@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&display=swap";:root{--font-display: "Fraunces", Georgia, serif;--font-body: "DM Sans", -apple-system, BlinkMacSystemFont, sans-serif;--color-background: #FBF9F7;--color-card-bg: #FFFFFF;--color-text: #2D2A26;--color-text-muted: #937B6A;--color-accent: #C16C55;--color-accent-hover: #A85A45;--color-sage: #A8B5A0;--color-sage-light: #C5CFC0;--color-sage-dark: #7A8A72;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}html{font-size:16px;-webkit-text-size-adjust:100%}body{margin:0;padding:0;font-family:var(--font-body);font-weight:400;line-height:1.5;color:var(--color-text);background:var(--color-background);min-height:100vh;min-height:100dvh;overflow-x:hidden}html,body{overscroll-behavior-y:none}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@supports (padding: env(safe-area-inset-top)){body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}}img{max-width:100%;height:auto;display:block}::selection{background:#c16c5533;color:var(--color-text)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;align-items:center;height:calc(56px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--color-card-bg);border-top:1px solid rgba(0,0,0,.06);z-index:90}@media(min-width:600px){.bottom-nav{display:none}}.bottom-nav__tab{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 20px;color:var(--color-text-muted);text-decoration:none;transition:color .15s ease;-webkit-tap-highlight-color:transparent}.bottom-nav__tab--active{color:var(--color-accent)}.bottom-nav__icon{width:24px;height:24px}.bottom-nav__label{font-family:var(--font-body);font-size:.6875rem;font-weight:500;letter-spacing:.01em}.landing{min-height:100vh;min-height:100dvh;background:var(--color-background);position:relative;overflow-x:hidden}.landing__bg{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:0}.landing__bg-circle{position:absolute;border-radius:50%;opacity:.4}.landing__bg-circle--1{width:600px;height:600px;background:radial-gradient(circle,var(--color-sage-light) 0%,transparent 70%);top:-200px;right:-150px;animation:float 25s ease-in-out infinite}.landing__bg-circle--2{width:400px;height:400px;background:radial-gradient(circle,rgba(193,108,85,.12) 0%,transparent 70%);bottom:10%;left:-100px;animation:float 30s ease-in-out infinite reverse}.landing__bg-circle--3{width:300px;height:300px;background:radial-gradient(circle,var(--color-sage) 0%,transparent 70%);top:50%;right:5%;opacity:.15;animation:float 20s ease-in-out infinite 3s}@keyframes float{0%,to{transform:translate(0) scale(1)}25%{transform:translate(15px,-25px) scale(1.03)}50%{transform:translate(-10px,15px) scale(.97)}75%{transform:translate(20px,10px) scale(1.01)}}.landing__header{position:relative;z-index:10;display:flex;align-items:center;justify-content:space-between;max-width:1100px;margin:0 auto;padding:24px;animation:fade-in .6s cubic-bezier(.22,1,.36,1)}@keyframes fade-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.landing__logo{display:flex;align-items:center;gap:10px}.landing__logo svg{width:40px;height:40px}.landing__logo-text{font-family:var(--font-display);font-size:1.5rem;font-weight:500;color:var(--color-text);letter-spacing:-.02em}.landing__nav{display:flex;align-items:center;gap:8px}.landing__nav-link{font-family:var(--font-body);font-size:.9375rem;font-weight:500;color:var(--color-text);text-decoration:none;padding:10px 16px;border-radius:10px;transition:background .2s ease}.landing__nav-link:hover{background:#0000000a}.landing__nav-btn{font-family:var(--font-body);font-size:.9375rem;font-weight:500;color:#fff;text-decoration:none;padding:10px 20px;background:var(--color-accent);border-radius:10px;transition:all .2s ease}.landing__nav-btn:hover{background:var(--color-accent-hover);transform:translateY(-1px)}.landing__hero{position:relative;z-index:1;max-width:1100px;margin:0 auto;padding:60px 24px 80px;display:flex;align-items:center;justify-content:space-between;gap:48px;animation:hero-enter .8s cubic-bezier(.22,1,.36,1) .1s backwards}@keyframes hero-enter{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.landing__hero-content{flex:1;max-width:520px}.landing__hero-illustration{flex-shrink:0;animation:illustration-float 6s ease-in-out infinite}@keyframes illustration-float{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}.landing__option-pills rect{animation:pill-pulse 2s ease-in-out infinite}.landing__option-pills rect:nth-child(4){animation-delay:.3s}.landing__option-pills rect:nth-child(7){animation-delay:.6s}@keyframes pill-pulse{0%,to{opacity:.15}50%{opacity:.25}}.landing__title{font-family:var(--font-display);font-size:clamp(2.5rem,6vw,3.5rem);font-weight:500;color:var(--color-text);margin:0 0 24px;line-height:1.1;letter-spacing:-.03em}.landing__subtitle{font-family:var(--font-body);font-size:clamp(1.0625rem,2.5vw,1.25rem);color:var(--color-text-muted);margin:0 0 40px;line-height:1.6}.landing__cta{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.landing__btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-body);font-size:1rem;font-weight:500;text-decoration:none;padding:16px 28px;border-radius:14px;transition:all .2s cubic-bezier(.22,1,.36,1)}.landing__btn--primary{background:var(--color-accent);color:#fff;box-shadow:0 4px 16px #c16c5540}.landing__btn--primary:hover{background:var(--color-accent-hover);transform:translateY(-2px);box-shadow:0 6px 24px #c16c554d}.landing__btn--secondary{background:var(--color-card-bg);color:var(--color-text);border:1.5px solid rgba(0,0,0,.08)}.landing__btn--secondary:hover{border-color:#00000026;background:#fff}.landing__features{position:relative;z-index:1;max-width:1000px;margin:0 auto;padding:60px 24px 80px}.landing__section-title{font-family:var(--font-display);font-size:clamp(1.75rem,4vw,2.25rem);font-weight:500;color:var(--color-text);text-align:center;margin:0 0 48px;letter-spacing:-.02em}.landing__features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}@media(min-width:900px){.landing__features-grid{grid-template-columns:repeat(3,1fr)}}.landing__feature{background:var(--color-card-bg);border-radius:20px;padding:28px 24px;border:1px solid rgba(0,0,0,.04);box-shadow:0 2px 8px #00000008;transition:all .3s cubic-bezier(.22,1,.36,1)}.landing__feature:hover{transform:translateY(-4px);box-shadow:0 8px 32px #00000014}.landing__feature-icon{width:48px;height:48px;background:#a8b5a026;border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:16px;color:var(--color-sage-dark)}.landing__feature-icon svg{width:24px;height:24px}.landing__feature-icon--large{width:72px;height:72px;background:transparent;border-radius:0}.landing__feature-icon--large svg{width:64px;height:64px}.landing__feature-title{font-family:var(--font-display);font-size:1.125rem;font-weight:500;color:var(--color-text);margin:0 0 8px}.landing__feature-desc{font-family:var(--font-body);font-size:.9375rem;color:var(--color-text-muted);margin:0;line-height:1.5}.landing__how{position:relative;z-index:1;max-width:900px;margin:0 auto;padding:60px 24px 100px}.landing__steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:32px;position:relative}.landing__step{text-align:center;padding:0 16px}.landing__step-icon{width:100px;height:100px;margin:0 auto 12px}.landing__step-icon svg{width:100%;height:100%}.landing__step-num{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--color-accent);color:#fff;font-family:var(--font-display);font-size:1rem;font-weight:500;border-radius:50%;margin-bottom:12px}.landing__step-title{font-family:var(--font-display);font-size:1.125rem;font-weight:500;color:var(--color-text);margin:0 0 8px}.landing__step-desc{font-family:var(--font-body);font-size:.9375rem;color:var(--color-text-muted);margin:0;line-height:1.5}.landing__footer{position:relative;z-index:1;max-width:1100px;margin:0 auto;padding:32px 24px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid rgba(0,0,0,.06)}.landing__footer-brand{display:flex;align-items:center;gap:8px;font-family:var(--font-display);font-size:1.125rem;font-weight:500;color:var(--color-text)}.landing__footer-copy{font-family:var(--font-body);font-size:.875rem;color:var(--color-text-muted);margin:0}@media(max-width:768px){.landing__header{padding:16px 20px}.landing__logo svg{width:32px;height:32px}.landing__logo-text{font-size:1.25rem}.landing__nav-link{display:none}.landing__nav-btn{padding:10px 16px;font-size:.875rem}.landing__hero{flex-direction:column;text-align:center;padding:40px 20px 60px;gap:32px}.landing__hero-content{max-width:100%}.landing__hero-illustration svg{width:180px;height:auto}.landing__subtitle{margin-bottom:32px}.landing__cta{flex-direction:column;width:100%;justify-content:center}.landing__btn{width:100%;justify-content:center}.landing__features{padding:40px 20px 60px}.landing__section-title{margin-bottom:32px}.landing__features-grid{gap:16px}.landing__feature{padding:24px 20px}.landing__feature-icon--large{width:64px;height:64px}.landing__feature-icon--large svg{width:56px;height:56px}.landing__how{padding:40px 20px 80px}.landing__steps{gap:48px}.landing__step-icon{width:80px;height:80px}.landing__footer{flex-direction:column;gap:16px;text-align:center;padding:24px 20px}}@media(min-width:769px)and (max-width:899px){.landing__hero-illustration svg{width:200px;height:auto}.landing__features-grid{grid-template-columns:repeat(2,1fr)}}@media(prefers-reduced-motion:reduce){.landing__bg-circle{animation:none}}.login-page{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;background:var(--color-background);padding:24px 16px;position:relative;overflow:hidden}.login-page__bg-pattern{position:absolute;inset:0;pointer-events:none;overflow:hidden}.login-page__bg-circle{position:absolute;border-radius:50%;opacity:.4}.login-page__bg-circle--1{width:400px;height:400px;background:radial-gradient(circle,var(--color-sage-light) 0%,transparent 70%);top:-150px;right:-100px;animation:float 20s ease-in-out infinite}.login-page__bg-circle--2{width:300px;height:300px;background:radial-gradient(circle,rgba(193,108,85,.15) 0%,transparent 70%);bottom:-80px;left:-80px;animation:float 25s ease-in-out infinite reverse}.login-page__bg-circle--3{width:200px;height:200px;background:radial-gradient(circle,var(--color-sage) 0%,transparent 70%);top:40%;left:10%;opacity:.2;animation:float 18s ease-in-out infinite 2s}.login-page__container{width:100%;max-width:400px;display:flex;flex-direction:column;align-items:center;gap:32px;animation:page-enter .6s cubic-bezier(.22,1,.36,1)}.login-page__brand{text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}.login-page__logo-link{display:flex;flex-direction:column;align-items:center;gap:8px;text-decoration:none}.login-page__logo{width:72px;height:72px;margin-bottom:8px;animation:logo-enter .8s cubic-bezier(.34,1.56,.64,1) .1s backwards}.login-page__title{font-family:var(--font-display);font-size:2.5rem;font-weight:500;color:var(--color-text);margin:0;letter-spacing:-.03em;line-height:1}.login-page__subtitle{font-family:var(--font-body);font-size:1rem;color:var(--color-text-muted);margin:0}.login-page__card{width:100%;background:var(--color-card-bg);border-radius:24px;padding:32px 28px;box-shadow:0 4px 6px #00000005,0 12px 40px #0000000f;border:1px solid rgba(0,0,0,.04);animation:card-enter .6s cubic-bezier(.22,1,.36,1) .15s backwards}.login-page__card-header{margin-bottom:28px;position:relative}.login-page__back{all:unset;position:absolute;top:0;left:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:10px;color:var(--color-text-muted);cursor:pointer;transition:all .2s ease;margin-left:-8px;margin-top:-4px}.login-page__back:hover{background:#0000000d;color:var(--color-text)}.login-page__back+.login-page__card-title{padding-left:36px}.login-page__card-title{font-family:var(--font-display);font-size:1.5rem;font-weight:500;color:var(--color-text);margin:0 0 8px;line-height:1.2}.login-page__card-description{font-family:var(--font-body);font-size:.9375rem;color:var(--color-text-muted);margin:0;line-height:1.5}.login-page__card-description strong{color:var(--color-text);font-weight:500}.login-page__form{display:flex;flex-direction:column;gap:20px}.login-page__field{display:flex;flex-direction:column;gap:8px}.login-page__label{font-family:var(--font-body);font-size:.875rem;font-weight:500;color:var(--color-text)}.login-page__input{width:100%;padding:14px 16px;font-family:var(--font-body);font-size:1rem;color:var(--color-text);background:var(--color-background);border:1.5px solid rgba(0,0,0,.08);border-radius:14px;outline:none;transition:all .2s ease}.login-page__input::placeholder{color:var(--color-text-muted);opacity:.6}.login-page__input:hover:not(:disabled){border-color:#00000026}.login-page__input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px #c16c551a}.login-page__input:disabled{opacity:.6;cursor:not-allowed}.login-page__error{display:flex;align-items:flex-start;gap:8px;padding:12px 14px;background:#c16c5514;border-radius:12px;font-family:var(--font-body);font-size:.875rem;color:var(--color-accent);line-height:1.4;animation:shake .4s cubic-bezier(.36,.07,.19,.97)}.login-page__error svg{flex-shrink:0;margin-top:1px}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.login-page__button{all:unset;display:flex;align-items:center;justify-content:center;gap:10px;padding:16px 24px;font-family:var(--font-body);font-size:1rem;font-weight:500;border-radius:14px;cursor:pointer;transition:all .2s cubic-bezier(.22,1,.36,1);-webkit-tap-highlight-color:transparent;box-sizing:border-box}.login-page__button--primary{background:var(--color-accent);color:#fff;box-shadow:0 2px 8px #c16c5540}.login-page__button--primary:hover:not(:disabled){background:var(--color-accent-hover);transform:translateY(-1px);box-shadow:0 4px 16px #c16c554d}.login-page__button--primary:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 8px #c16c5533}.login-page__button:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.login-page__spinner{width:20px;height:20px;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-page__otp-container{display:flex;flex-direction:column;gap:24px}.login-page__otp-inputs{display:flex;justify-content:center;gap:6px}.login-page__otp-input{width:42px;height:54px;padding:0;font-family:var(--font-display);font-size:1.5rem;font-weight:500;text-align:center;color:var(--color-text);background:var(--color-background);border:2px solid rgba(0,0,0,.1);border-radius:12px;outline:none;transition:all .2s ease;caret-color:var(--color-accent)}.login-page__otp-input:hover:not(:disabled){border-color:#0003}.login-page__otp-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px #c16c551a;background:var(--color-card-bg)}.login-page__otp-input:disabled{opacity:.6;cursor:not-allowed}.login-page__otp-input:not(:placeholder-shown){border-color:var(--color-sage);background:#a8b5a01a}.login-page__resend{text-align:center}.login-page__countdown{font-family:var(--font-body);font-size:.875rem;color:var(--color-text-muted)}.login-page__resend-btn{all:unset;font-family:var(--font-body);font-size:.875rem;color:var(--color-text-muted);cursor:pointer;transition:color .2s ease}.login-page__resend-btn span{color:var(--color-accent);font-weight:500}.login-page__resend-btn:hover span{text-decoration:underline}.login-page__resend-btn:disabled{opacity:.5;cursor:not-allowed}.login-page__verifying{display:flex;align-items:center;justify-content:center;gap:10px;padding:16px;font-family:var(--font-body);font-size:.9375rem;color:var(--color-text-muted)}.login-page__alt{margin-top:20px;padding-top:20px;border-top:1px solid rgba(0,0,0,.06);text-align:center;font-family:var(--font-body);font-size:.875rem;color:var(--color-text-muted);display:flex;align-items:center;justify-content:center;gap:6px}.login-page__alt-link{color:var(--color-accent);font-weight:500;text-decoration:none}.login-page__alt-link:hover{text-decoration:underline}.login-page__footer{font-family:var(--font-body);font-size:.875rem;color:var(--color-text-muted);margin:0;text-align:center;animation:footer-enter .6s cubic-bezier(.22,1,.36,1) .3s backwards}.login-page__footer-link{color:var(--color-text-muted);text-decoration:none;transition:color .2s ease}.login-page__footer-link:hover{color:var(--color-text)}@media(max-width:480px){.login-page{padding:20px 16px;align-items:flex-start;padding-top:calc(60px + env(safe-area-inset-top))}.login-page__container{gap:28px}.login-page__logo{width:64px;height:64px}.login-page__title{font-size:2.25rem}.login-page__card{padding:28px 24px;border-radius:20px}.login-page__card-title{font-size:1.375rem}.login-page__input{font-size:16px;padding:14px}.login-page__otp-input{width:36px;height:48px;font-size:1.25rem;border-radius:10px}.login-page__otp-inputs{gap:4px}}@media(min-width:600px){.login-page__container{gap:40px}.login-page__logo{width:80px;height:80px}.login-page__title{font-size:2.75rem}.login-page__card{padding:40px 36px}}.signup-page{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;background:var(--color-background);padding:24px 16px;position:relative;overflow:hidden}.signup-page__bg-pattern{position:absolute;inset:0;pointer-events:none;overflow:hidden}.signup-page__bg-circle{position:absolute;border-radius:50%;opacity:.4}.signup-page__bg-circle--1{width:400px;height:400px;background:radial-gradient(circle,var(--color-sage-light) 0%,transparent 70%);top:-150px;right:-100px;animation:float 20s ease-in-out infinite}.signup-page__bg-circle--2{width:300px;height:300px;background:radial-gradient(circle,rgba(193,108,85,.15) 0%,transparent 70%);bottom:-80px;left:-80px;animation:float 25s ease-in-out infinite reverse}.signup-page__bg-circle--3{width:200px;height:200px;background:radial-gradient(circle,var(--color-sage) 0%,transparent 70%);top:40%;left:10%;opacity:.2;animation:float 18s ease-in-out infinite 2s}@keyframes float{0%,to{transform:translate(0) scale(1)}25%{transform:translate(10px,-20px) scale(1.05)}50%{transform:translate(-5px,10px) scale(.95)}75%{transform:translate(15px,5px) scale(1.02)}}.signup-page__container{width:100%;max-width:420px;display:flex;flex-direction:column;align-items:center;gap:32px;animation:page-enter .6s cubic-bezier(.22,1,.36,1)}@keyframes page-enter{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.signup-page__brand{text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}.signup-page__logo-link{display:flex;flex-direction:column;align-items:center;gap:8px;text-decoration:none}.signup-page__logo{width:72px;height:72px;margin-bottom:8px;animation:logo-enter .8s cubic-bezier(.34,1.56,.64,1) .1s backwards}@keyframes logo-enter{0%{opacity:0;transform:scale(.8) rotate(-10deg)}to{opacity:1;transform:scale(1) rotate(0)}}.signup-page__title{font-family:var(--font-display);font-size:2.5rem;font-weight:500;color:var(--color-text);margin:0;letter-spacing:-.03em;line-height:1}.signup-page__subtitle{font-family:var(--font-body);font-size:1rem;color:var(--color-text-muted);margin:0}.signup-page__card{width:100%;background:var(--color-card-bg);border-radius:24px;padding:40px 28px;box-shadow:0 4px 6px #00000005,0 12px 40px #0000000f;border:1px solid rgba(0,0,0,.04);text-align:center;animation:card-enter .6s cubic-bezier(.22,1,.36,1) .15s backwards}@keyframes card-enter{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.signup-page__icon{width:64px;height:64px;margin:0 auto 20px;color:var(--color-sage-dark);animation:icon-enter .6s cubic-bezier(.34,1.56,.64,1) .25s backwards}@keyframes icon-enter{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.signup-page__icon svg{width:100%;height:100%}.signup-page__card-title{font-family:var(--font-display);font-size:1.75rem;font-weight:500;color:var(--color-text);margin:0 0 16px;letter-spacing:-.02em}.signup-page__card-description{font-family:var(--font-body);font-size:1rem;color:var(--color-text-muted);margin:0 0 12px;line-height:1.6}.signup-page__card-note{font-family:var(--font-body);font-size:.9375rem;color:var(--color-text-muted);margin:0 0 28px;line-height:1.5;opacity:.85}.signup-page__actions{display:flex;flex-direction:column;gap:12px}.signup-page__btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:16px 24px;font-family:var(--font-body);font-size:1rem;font-weight:500;text-decoration:none;border-radius:14px;transition:all .2s cubic-bezier(.22,1,.36,1)}.signup-page__btn--primary{background:var(--color-accent);color:#fff;box-shadow:0 2px 8px #c16c5540}.signup-page__btn--primary:hover{background:var(--color-accent-hover);transform:translateY(-1px);box-shadow:0 4px 16px #c16c554d}.signup-page__btn--secondary{background:transparent;color:var(--color-text-muted);border:1.5px solid rgba(0,0,0,.08)}.signup-page__btn--secondary:hover{background:#00000005;border-color:#0000001f;color:var(--color-text)}.signup-page__footer{font-family:var(--font-body);font-size:.875rem;color:var(--color-text-muted);margin:0;text-align:center;animation:footer-enter .6s cubic-bezier(.22,1,.36,1) .3s backwards}@keyframes footer-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.signup-page__footer-link{color:var(--color-accent);font-weight:500;text-decoration:none}.signup-page__footer-link:hover{text-decoration:underline}@media(max-width:480px){.signup-page{padding:20px 16px;align-items:flex-start;padding-top:calc(60px + env(safe-area-inset-top))}.signup-page__container{gap:28px}.signup-page__logo{width:64px;height:64px}.signup-page__title{font-size:2.25rem}.signup-page__card{padding:32px 24px;border-radius:20px}.signup-page__icon{width:56px;height:56px}.signup-page__card-title{font-size:1.5rem}.signup-page__card-description{font-size:.9375rem}}@media(min-width:600px){.signup-page__container{gap:40px}.signup-page__logo{width:80px;height:80px}.signup-page__title{font-size:2.75rem}.signup-page__card{padding:48px 40px}.signup-page__icon{width:72px;height:72px}}.recipe-card{all:unset;display:flex;flex-direction:column;cursor:pointer;border-radius:20px;overflow:hidden;background:var(--color-card-bg);box-shadow:0 2px 8px #0000000a,0 8px 24px #0000000f;transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s ease;-webkit-tap-highlight-color:transparent;animation:card-enter .5s cubic-bezier(.22,1,.36,1) backwards}.recipe-card:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 4px 12px #0000000f,0 16px 40px #0000001a}.recipe-card:active{transform:translateY(-2px) scale(1.01)}.recipe-card__image-container{position:relative;aspect-ratio:4 / 3;overflow:hidden}.recipe-card__image{width:100%;height:100%;object-fit:cover;transition:transform .4s cubic-bezier(.22,1,.36,1)}.recipe-card:hover .recipe-card__image{transform:scale(1.08)}.recipe-card__image-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,transparent 50%,rgba(0,0,0,.03) 100%);pointer-events:none}.recipe-card__content{padding:16px 18px 18px;display:flex;flex-direction:column;gap:6px}.recipe-card__title{font-family:var(--font-display);font-size:1.125rem;font-weight:500;line-height:1.3;color:var(--color-text);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:calc(1.125rem * 1.3 * 2)}.recipe-card__time{font-family:var(--font-body);font-size:.8125rem;color:var(--color-text-muted);display:flex;align-items:center;gap:4px}.recipe-card__time:before{content:"";width:14px;height:14px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23937B6A'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z'/%3E%3C/svg%3E");background-size:contain;flex-shrink:0}.recipe-card--selection-mode{cursor:pointer}.recipe-card--selection-mode:hover{transform:none;box-shadow:0 2px 8px #0000000a,0 8px 24px #0000000f}.recipe-card--selection-mode:active{transform:scale(.98)}.recipe-card--selected{outline:3px solid var(--color-accent);outline-offset:-3px}.recipe-card__checkbox{position:absolute;top:12px;left:12px;width:24px;height:24px;border-radius:50%;background:#ffffffe6;border:2px solid rgba(0,0,0,.2);display:flex;align-items:center;justify-content:center;transition:all .2s ease;box-shadow:0 2px 8px #00000026}.recipe-card__checkbox--checked{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.draft-card{all:unset;display:flex;flex-direction:column;cursor:pointer;border-radius:20px;overflow:hidden;background:var(--color-card-bg);box-shadow:0 2px 8px #0000000a,0 8px 24px #0000000f;transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s ease;-webkit-tap-highlight-color:transparent;animation:card-enter .5s cubic-bezier(.22,1,.36,1) backwards;border:2px dashed var(--color-sage)}.draft-card:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 4px 12px #0000000f,0 16px 40px #0000001a}.draft-card:active{transform:translateY(-2px) scale(1.01)}@keyframes card-enter{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.draft-card__image-container{position:relative;aspect-ratio:4 / 3;overflow:hidden;background:var(--color-sage-light)}.draft-card__image{width:100%;height:100%;object-fit:cover;transition:transform .4s cubic-bezier(.22,1,.36,1)}.draft-card:hover .draft-card__image{transform:scale(1.08)}.draft-card__placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--color-sage-dark)}.draft-card__image-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,transparent 50%,rgba(0,0,0,.03) 100%);pointer-events:none}.draft-card__badge{position:absolute;top:12px;left:12px;background:var(--color-accent);color:#fff;font-family:var(--font-body);font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:4px 10px;border-radius:6px}.draft-card__delete{all:unset;position:absolute;top:10px;right:10px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:#ffffffe6;color:var(--color-text-muted);cursor:pointer;transition:background .15s ease,color .15s ease;-webkit-tap-highlight-color:transparent;box-shadow:0 2px 8px #00000026}.draft-card__delete:hover{background:#fff;color:var(--color-accent)}.draft-card__content{padding:16px 18px 18px;display:flex;flex-direction:column;gap:6px}.draft-card__title{font-family:var(--font-display);font-size:1.125rem;font-weight:500;line-height:1.3;color:var(--color-text);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:calc(1.125rem * 1.3 * 2)}.draft-card__time{font-family:var(--font-body);font-size:.8125rem;color:var(--color-text-muted)}.create-recipe-button{all:unset;position:fixed;bottom:calc(80px + env(safe-area-inset-bottom));right:20px;display:flex;align-items:center;gap:10px;padding:14px 22px 14px 18px;background:var(--color-accent);color:#fff;border-radius:100px;cursor:pointer;font-family:var(--font-body);font-size:.9375rem;font-weight:600;letter-spacing:.01em;box-shadow:0 4px 12px #c16c554d,0 8px 32px #c16c5533;transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s ease,background .2s ease;-webkit-tap-highlight-color:transparent;z-index:100;animation:fab-enter .4s cubic-bezier(.34,1.56,.64,1) .3s backwards}.create-recipe-button:hover{background:var(--color-accent-hover);transform:translateY(-2px) scale(1.02);box-shadow:0 6px 16px #c16c5559,0 12px 40px #c16c5540}.create-recipe-button:active{transform:translateY(0) scale(.98)}.create-recipe-button__icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px}.create-recipe-button__text{white-space:nowrap}@media(min-width:600px){.create-recipe-button{bottom:calc(24px + env(safe-area-inset-bottom))}}@media(max-width:380px){.create-recipe-button{padding:16px;border-radius:50%}.create-recipe-button__text{display:none}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:60px 24px 120px;min-height:60vh;animation:empty-enter .6s cubic-bezier(.22,1,.36,1)}@keyframes empty-enter{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.empty-state__illustration{margin-bottom:32px}.empty-state__steam{animation:steam-float 2.5s ease-in-out infinite}.empty-state__steam--1{animation-delay:0s}.empty-state__steam--2{animation-delay:.4s}.empty-state__steam--3{animation-delay:.8s}@keyframes steam-float{0%,to{transform:translateY(0) scaleY(1);opacity:.4}50%{transform:translateY(-6px) scaleY(1.1);opacity:.2}}.empty-state__content{max-width:280px;margin-bottom:32px}.empty-state__title{font-family:var(--font-display);font-size:1.75rem;font-weight:500;color:var(--color-text);margin:0 0 12px;line-height:1.2}.empty-state__description{font-family:var(--font-body);font-size:1rem;color:var(--color-text-muted);margin:0;line-height:1.5}.empty-state__button{all:unset;display:flex;align-items:center;gap:8px;padding:14px 24px;background:var(--color-accent);color:#fff;border-radius:100px;cursor:pointer;font-family:var(--font-body);font-size:.9375rem;font-weight:600;box-shadow:0 4px 12px #c16c5540,0 8px 24px #c16c5526;transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s ease,background .2s ease;-webkit-tap-highlight-color:transparent}.empty-state__button:hover{background:var(--color-accent-hover);transform:translateY(-2px) scale(1.02);box-shadow:0 6px 16px #c16c554d,0 12px 32px #c16c5533}.empty-state__button:active{transform:translateY(0) scale(.98)}.empty-state__button-icon{font-size:1.25rem;font-weight:400;line-height:1}.confirm-dialog{border:none;border-radius:16px;padding:0;background:var(--color-card-bg);box-shadow:0 25px 50px -12px #00000040;max-width:400px;width:calc(100% - 32px)}.confirm-dialog::backdrop{background:#2d2a2680;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.confirm-dialog__content{padding:24px}.confirm-dialog__title{font-family:var(--font-display);font-size:1.25rem;font-weight:600;color:var(--color-text);margin:0 0 12px}.confirm-dialog__message{font-family:var(--font-body);font-size:.9375rem;color:var(--color-text-muted);margin:0 0 24px;line-height:1.5}.confirm-dialog__actions{display:flex;gap:12px;justify-content:flex-end}.confirm-dialog__button{font-family:var(--font-body);font-size:.9375rem;font-weight:500;padding:10px 20px;border-radius:8px;border:none;cursor:pointer;transition:background-color .15s ease,transform .1s ease}.confirm-dialog__button:active{transform:scale(.98)}.confirm-dialog__button--cancel{background:transparent;color:var(--color-text-muted)}.confirm-dialog__button--cancel:hover{background:#937b6a1a}.confirm-dialog__button--confirm{background:var(--color-sage);color:#fff}.confirm-dialog__button--confirm:hover{background:var(--color-sage-dark)}.confirm-dialog__button--destructive{background:var(--color-accent)}.confirm-dialog__button--destructive:hover{background:var(--color-accent-hover)}.create-list-modal__overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#0006;padding:20px;animation:overlay-enter .2s ease}.create-list-modal{width:100%;max-width:360px;background:var(--color-card-bg);border-radius:20px;padding:24px;animation:modal-enter .3s cubic-bezier(.22,1,.36,1)}@keyframes modal-enter{0%{transform:scale(.95) translateY(10px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.create-list-modal__title{font-family:var(--font-display);font-size:1.375rem;font-weight:500;color:var(--color-text);margin:0 0 20px;text-align:center}.create-list-modal__input{width:100%;padding:14px 16px;font-family:var(--font-body);font-size:1rem;color:var(--color-text);background:var(--color-background);border:2px solid transparent;border-radius:12px;outline:none;transition:border-color .15s ease;box-sizing:border-box}.create-list-modal__input:focus{border-color:var(--color-sage)}.create-list-modal__input::placeholder{color:var(--color-text-muted)}.create-list-modal__input:disabled{opacity:.6}.create-list-modal__actions{display:flex;gap:12px;margin-top:20px}.create-list-modal__btn{flex:1;padding:14px 20px;font-family:var(--font-body);font-size:1rem;font-weight:500;border:none;border-radius:12px;cursor:pointer;transition:all .15s ease;-webkit-tap-highlight-color:transparent}.create-list-modal__btn:disabled{opacity:.5;cursor:not-allowed}.create-list-modal__btn--cancel{background:transparent;color:var(--color-text-muted)}.create-list-modal__btn--cancel:hover:not(:disabled){background:#0000000a;color:var(--color-text)}.create-list-modal__btn--confirm{background:var(--color-accent);color:#fff}.create-list-modal__btn--confirm:hover:not(:disabled){background:var(--color-accent-hover)}.create-list-modal__btn--confirm:active:not(:disabled){transform:scale(.98)}.recipe-library{min-height:100vh;min-height:100dvh;background:var(--color-background);padding-bottom:calc(160px + env(safe-area-inset-bottom))}@media(min-width:600px){.recipe-library{padding-bottom:calc(100px + env(safe-area-inset-bottom))}}.recipe-library__header{position:sticky;top:0;z-index:50;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:calc(16px + env(safe-area-inset-top)) 20px 16px;background:linear-gradient(to bottom,var(--color-background) 0%,var(--color-background) 70%,transparent 100%)}.recipe-library__header-content{flex:1}.recipe-library__title{font-family:var(--font-display);font-size:2rem;font-weight:500;color:var(--color-text);margin:0;line-height:1.1;letter-spacing:-.02em}.recipe-library__count{font-family:var(--font-body);font-size:.875rem;color:var(--color-text-muted);margin:6px 0 0}.recipe-library__user-btn{all:unset;cursor:pointer;-webkit-tap-highlight-color:transparent}.recipe-library__user-avatar{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,var(--color-sage-light) 0%,var(--color-sage) 100%);font-family:var(--font-display);font-size:1rem;font-weight:500;color:var(--color-sage-dark);transition:transform .2s ease,box-shadow .2s ease}.recipe-library__user-btn:hover .recipe-library__user-avatar{transform:scale(1.05);box-shadow:0 2px 8px #0000001a}.recipe-library__user-btn:active .recipe-library__user-avatar{transform:scale(.98)}.recipe-library__loading{display:flex;align-items:center;justify-content:center;padding:80px 20px}.recipe-library__spinner{width:32px;height:32px;border:3px solid var(--color-sage-light);border-top-color:var(--color-sage);border-radius:50%;animation:spinner-rotate .8s linear infinite}.recipe-library__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;padding:8px 16px 40px}.recipe-library__grid>div{animation:grid-item-enter .5s cubic-bezier(.22,1,.36,1) backwards}@keyframes grid-item-enter{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media(min-width:600px){.recipe-library__grid{grid-template-columns:repeat(3,1fr);gap:20px;padding:8px 24px 40px;max-width:900px;margin:0 auto}.recipe-library__header{padding-left:24px;padding-right:24px;max-width:900px;margin:0 auto}}@media(min-width:900px){.recipe-library__grid{grid-template-columns:repeat(3,1fr);gap:24px;max-width:1100px}.recipe-library__header{max-width:1100px}.recipe-library__title{font-size:2.5rem}}.recipe-library__header--selection{align-items:center}.recipe-library__header-actions{display:flex;align-items:center;gap:8px}.recipe-library__header-shop-btn{all:unset;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;cursor:pointer;background:var(--color-sage-light);color:var(--color-sage-dark);transition:background .15s ease,transform .15s ease;-webkit-tap-highlight-color:transparent}.recipe-library__header-shop-btn:hover{background:var(--color-sage);color:#fff}.recipe-library__header-shop-btn:active{transform:scale(.95)}.recipe-library__select-btn{all:unset;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;cursor:pointer;color:var(--color-text-muted);transition:background .15s ease,color .15s ease;-webkit-tap-highlight-color:transparent}.recipe-library__select-btn:hover{background:#0000000f;color:var(--color-text)}.recipe-library__select-btn:active{background:#0000001a}@media(max-width:599px){.recipe-library__header-shop-btn,.recipe-library__user-btn{display:none}}.recipe-library__cancel-btn{all:unset;font-family:var(--font-body);font-size:1rem;color:var(--color-accent);cursor:pointer;padding:8px 4px;-webkit-tap-highlight-color:transparent}.recipe-library__cancel-btn:hover{text-decoration:underline}.recipe-library__selection-count{font-family:var(--font-display);font-size:1.25rem;font-weight:500;color:var(--color-text);flex:1;text-align:center}.recipe-library__action-bar{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:16px 20px calc(16px + env(safe-area-inset-bottom));background:var(--color-card-bg);box-shadow:0 -4px 20px #0000001a;animation:action-bar-enter .3s cubic-bezier(.22,1,.36,1);z-index:100}.recipe-library__action-bar-count{font-family:var(--font-body);font-size:.9375rem;color:var(--color-text-muted)}.recipe-library__action-bar-buttons{display:flex;align-items:center;gap:12px}.recipe-library__shopping-btn{all:unset;display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:12px;background:var(--color-sage-light);color:var(--color-sage-dark);cursor:pointer;transition:all .15s ease;-webkit-tap-highlight-color:transparent}.recipe-library__shopping-btn:hover:not(:disabled){background:var(--color-sage);color:#fff}.recipe-library__shopping-btn:active:not(:disabled){transform:scale(.95)}.recipe-library__shopping-btn:disabled{opacity:.5;cursor:not-allowed}.recipe-library__action-bar-shop-btn{all:unset;display:flex;align-items:center;gap:8px;font-family:var(--font-body);font-size:1rem;font-weight:500;color:#fff;background:var(--color-sage);padding:12px 24px;border-radius:12px;cursor:pointer;transition:background .15s ease,opacity .15s ease;-webkit-tap-highlight-color:transparent}.recipe-library__action-bar-shop-btn:hover:not(:disabled){background:var(--color-sage-dark)}.recipe-library__action-bar-shop-btn:active:not(:disabled){transform:scale(.98)}.recipe-library__action-bar-shop-btn:disabled{opacity:.5;cursor:not-allowed}.recipe-library__delete-btn{all:unset;font-family:var(--font-body);font-size:1rem;font-weight:500;color:#fff;background:var(--color-accent);padding:12px 24px;border-radius:12px;cursor:pointer;transition:background .15s ease,opacity .15s ease;-webkit-tap-highlight-color:transparent}.recipe-library__delete-btn:hover:not(:disabled){background:var(--color-accent-hover)}.recipe-library__delete-btn:active:not(:disabled){transform:scale(.98)}.recipe-library__delete-btn:disabled{opacity:.5;cursor:not-allowed}@media(min-width:600px){.recipe-library__action-bar{max-width:900px;left:50%;transform:translate(-50%);border-radius:16px 16px 0 0}@keyframes action-bar-enter{0%{transform:translate(-50%) translateY(100%)}to{transform:translate(-50%) translateY(0)}}}@media(min-width:900px){.recipe-library__action-bar{max-width:1100px}}.option-pills{margin-top:16px}.option-pills__group{margin-bottom:16px}.option-pills__group:last-child{margin-bottom:0}.option-pills__divider{height:1px;background:linear-gradient(90deg,transparent 0%,rgba(147,123,106,.15) 20%,rgba(147,123,106,.15) 80%,transparent 100%);margin-bottom:14px}.option-pills__question{font-family:var(--font-display);font-size:.9375rem;font-weight:500;color:var(--color-text);margin:0 0 12px;letter-spacing:-.01em}.option-pills__choices{display:flex;flex-wrap:wrap;gap:8px}.option-pills__pill{all:unset;display:inline-flex;align-items:center;gap:6px;padding:10px 16px;border-radius:100px;background:#2d2a260a;border:1.5px solid rgba(45,42,38,.08);font-family:var(--font-body);font-size:.875rem;font-weight:500;color:var(--color-text);cursor:pointer;transition:background .2s cubic-bezier(.22,1,.36,1),border-color .2s cubic-bezier(.22,1,.36,1),color .2s cubic-bezier(.22,1,.36,1),transform .15s cubic-bezier(.22,1,.36,1),box-shadow .2s cubic-bezier(.22,1,.36,1);-webkit-tap-highlight-color:transparent;animation:pill-enter .4s cubic-bezier(.22,1,.36,1) backwards}@keyframes pill-enter{0%{opacity:0;transform:translateY(8px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.option-pills__pill:hover:not(:disabled){background:#2d2a2614;border-color:#2d2a261f;transform:translateY(-1px)}.option-pills__pill:active:not(:disabled){transform:scale(.97)}.option-pills__pill--selected{background:#c16c551a;border-color:var(--color-accent);color:var(--color-accent);box-shadow:0 2px 8px #c16c5526}.option-pills__pill--selected:hover:not(:disabled){background:#c16c5526;border-color:var(--color-accent-hover);color:var(--color-accent-hover)}.option-pills__pill:disabled{opacity:.5;cursor:not-allowed;transform:none}.option-pills__pill-text{line-height:1}.option-pills__check{flex-shrink:0;animation:check-enter .25s cubic-bezier(.34,1.56,.64,1)}@keyframes check-enter{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}.option-pills__hint{display:inline-flex;align-items:center;gap:6px;margin:12px 0 0;font-family:var(--font-body);font-size:.75rem;font-weight:500;color:var(--color-text-muted);letter-spacing:.01em}.option-pills__hint svg{opacity:.7}.option-pills__pill:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@media(max-width:480px){.option-pills__pill{padding:12px 18px;font-size:.9375rem}.option-pills__choices{gap:10px}.option-pills__question{font-size:.875rem}}.message-bubble{display:flex;gap:12px;padding:0 16px;animation:message-enter .4s cubic-bezier(.22,1,.36,1)}@keyframes message-enter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.message-bubble--user{flex-direction:row-reverse}.message-bubble--user .message-bubble__content{background:var(--color-accent);color:#fff;border-radius:20px 20px 4px;max-width:80%}.message-bubble--assistant{align-items:flex-start}.message-bubble--assistant .message-bubble__content{background:var(--color-card-bg);color:var(--color-text);border-radius:4px 20px 20px;max-width:85%;box-shadow:0 1px 3px #0000000a,0 4px 12px #00000008;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.015'/%3E%3C/svg%3E")}.message-bubble__avatar{flex-shrink:0;width:32px;height:32px;border-radius:10px;background:linear-gradient(135deg,var(--color-sage-light) 0%,var(--color-sage) 100%);display:flex;align-items:center;justify-content:center;color:var(--color-sage-dark);margin-top:4px}.message-bubble__content{padding:14px 18px}.message-bubble__images{margin-bottom:12px}.message-bubble__images--multiple{display:flex;gap:6px;flex-wrap:wrap}.message-bubble__images--multiple .message-bubble__image{flex:0 0 auto}.message-bubble__images--multiple .message-bubble__image img{width:80px;height:80px;object-fit:cover}.message-bubble__image{border-radius:12px;overflow:hidden}.message-bubble__image img{width:100%;max-width:240px;height:auto;display:block}.message-bubble__url{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:#0000000d;border-radius:8px;margin-bottom:10px;font-size:.8125rem;color:var(--color-text-muted);max-width:100%;overflow:hidden}.message-bubble--user .message-bubble__url{background:#fff3;color:#fff}.message-bubble--user .message-bubble__url svg{stroke:#fff;opacity:.9}.message-bubble__url span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.message-bubble__text{font-family:var(--font-body);font-size:.9375rem;line-height:1.6;word-wrap:break-word}.message-bubble--user .message-bubble__text{font-weight:500}.message-bubble__paragraph{margin:0 0 .75em}.message-bubble__paragraph:last-child{margin-bottom:0}.message-bubble__bold{font-weight:600;color:var(--color-text)}.message-bubble__italic{font-style:italic}.message-bubble__heading{font-family:var(--font-display);font-size:1rem;font-weight:600;margin:1em 0 .5em;color:var(--color-text)}.message-bubble__heading:first-child{margin-top:0}.message-bubble__list{margin:.5em 0;padding-left:1.5em}.message-bubble__list--ordered{list-style-type:decimal}.message-bubble__list-item{margin:.35em 0;padding-left:.25em}.message-bubble__list-item::marker{color:var(--color-accent)}.message-bubble__code-inline{font-family:SF Mono,Fira Code,Consolas,monospace;font-size:.85em;background:#0000000f;padding:.15em .4em;border-radius:4px}.message-bubble__pre{margin:.75em 0;overflow-x:auto}.message-bubble__code-block{display:block;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:.8rem;background:#0000000a;padding:12px 14px;border-radius:8px;overflow-x:auto;line-height:1.5}@media(max-width:480px){.message-bubble{padding:0 12px}.message-bubble--user .message-bubble__content,.message-bubble--assistant .message-bubble__content{max-width:88%}.message-bubble__content{padding:12px 14px}.message-bubble__text{font-size:.9rem}.message-bubble__code-block{font-size:.75rem;padding:10px 12px}}.voice-input-button{all:unset;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:transparent;color:var(--color-text-muted);cursor:pointer;transition:background .2s ease,color .2s ease,transform .2s cubic-bezier(.34,1.56,.64,1);-webkit-tap-highlight-color:transparent}.voice-input-button:hover:not(:disabled){background:#0000000d;color:var(--color-text)}.voice-input-button:active:not(:disabled){transform:scale(.95)}.voice-input-button:disabled{opacity:.4;cursor:not-allowed}.voice-input-button--recording{background:var(--color-accent);color:#fff;animation:pulse-glow 1.5s ease-in-out infinite}.voice-input-button--recording:hover{background:var(--color-accent-hover);color:#fff}@keyframes pulse-glow{0%,to{box-shadow:0 0 #c16c5566,0 2px 8px #c16c5533}50%{box-shadow:0 0 0 8px #c16c5500,0 4px 16px #c16c554d}}.voice-input-button__waves{display:flex;align-items:center;justify-content:center;gap:3px;height:20px}.voice-input-button__wave{width:3px;height:8px;background:#fff;border-radius:2px;animation:wave-bounce .6s ease-in-out infinite}.voice-input-button__wave:nth-child(1){animation-delay:0s}.voice-input-button__wave:nth-child(2){animation-delay:.15s;height:14px}.voice-input-button__wave:nth-child(3){animation-delay:.3s}@keyframes wave-bounce{0%,to{transform:scaleY(1)}50%{transform:scaleY(1.8)}}.import-menu{position:relative}.import-menu__trigger{all:unset;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:transparent;color:var(--color-text-muted);cursor:pointer;transition:background .2s ease,color .2s ease,transform .3s cubic-bezier(.34,1.56,.64,1);-webkit-tap-highlight-color:transparent}.import-menu__trigger:hover:not(:disabled){background:#0000000d;color:var(--color-text)}.import-menu__trigger:active:not(:disabled){transform:scale(.95)}.import-menu__trigger--active{background:var(--color-accent);color:#fff;transform:rotate(45deg)}.import-menu__trigger--active:hover{background:var(--color-accent-hover);color:#fff}.import-menu__trigger:disabled{opacity:.4;cursor:not-allowed}.import-menu__dropdown{position:absolute;bottom:calc(100% + 8px);left:0;min-width:180px;background:var(--color-card-bg);border-radius:16px;box-shadow:0 4px 12px #00000014,0 12px 32px #0000001f;padding:8px;animation:dropdown-enter .2s cubic-bezier(.34,1.56,.64,1);z-index:100}@keyframes dropdown-enter{0%{opacity:0;transform:translateY(8px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.import-menu__option{all:unset;display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border-radius:10px;font-family:var(--font-body);font-size:.9375rem;color:var(--color-text);cursor:pointer;transition:background .15s ease;box-sizing:border-box}.import-menu__option:hover{background:#0000000a}.import-menu__option:active{background:#00000014}.import-menu__option svg{color:var(--color-text-muted);flex-shrink:0}.import-menu__url-form{display:flex;align-items:center;gap:8px;padding:4px}.import-menu__url-input{flex:1;padding:10px 14px;border:none;border-radius:10px;background:#0000000a;font-family:var(--font-body);font-size:.9rem;color:var(--color-text);outline:none;transition:background .15s ease}.import-menu__url-input:focus{background:#0000000f}.import-menu__url-input::placeholder{color:var(--color-text-muted)}.import-menu__url-submit{all:unset;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:var(--color-accent);color:#fff;cursor:pointer;transition:background .15s ease,transform .2s cubic-bezier(.34,1.56,.64,1);flex-shrink:0}.import-menu__url-submit:hover{background:var(--color-accent-hover)}.import-menu__url-submit:active{transform:scale(.95)}.import-menu__file-input{display:none}.chat-input{position:fixed;bottom:0;left:0;right:0;background:linear-gradient(to top,var(--color-background) 0%,var(--color-background) 85%,transparent 100%);padding:12px 12px calc(12px + env(safe-area-inset-bottom));z-index:50}.chat-input__container{display:flex;align-items:center;gap:4px;max-width:800px;margin:0 auto;background:var(--color-card-bg);border-radius:28px;padding:6px;box-shadow:0 2px 8px #0000000a,0 8px 24px #00000014;border:1px solid rgba(0,0,0,.04)}.chat-input__field{flex:1;min-width:0}.chat-input__textarea{width:100%;padding:10px 4px;border:none;background:transparent;font-family:var(--font-body);font-size:.9375rem;line-height:1.5;color:var(--color-text);resize:none;outline:none;max-height:200px;overflow-y:auto}.chat-input__textarea::placeholder{color:var(--color-text-muted)}.chat-input__textarea:disabled{opacity:.6;cursor:not-allowed}.chat-input__textarea::-webkit-scrollbar{width:0;height:0}.chat-input__send{all:unset;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--color-accent);color:#fff;cursor:pointer;transition:background .2s ease,transform .2s cubic-bezier(.34,1.56,.64,1),opacity .2s ease;-webkit-tap-highlight-color:transparent;flex-shrink:0}.chat-input__send:hover:not(:disabled){background:var(--color-accent-hover);transform:scale(1.05)}.chat-input__send:active:not(:disabled){transform:scale(.95)}.chat-input__send:disabled{opacity:.4;cursor:not-allowed}.chat-input__selections{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:10px 16px;margin-bottom:8px;background:#c16c5514;border-radius:16px;max-width:800px;margin-left:auto;margin-right:auto;animation:selections-enter .3s cubic-bezier(.22,1,.36,1)}@keyframes selections-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.chat-input__selections-label{font-family:var(--font-body);font-size:.75rem;font-weight:500;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em}.chat-input__selections-text{font-family:var(--font-body);font-size:.875rem;font-weight:600;color:var(--color-accent)}.chat-input__url-detected{display:flex;align-items:center;gap:8px;padding:8px 12px;margin-bottom:8px;background:#c16c5514;border-radius:16px;max-width:800px;margin-left:auto;margin-right:auto;animation:url-chip-enter .3s cubic-bezier(.22,1,.36,1)}@keyframes url-chip-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.chat-input__url-badge{display:flex;align-items:center;gap:6px;font-family:var(--font-body);font-size:.8125rem;font-weight:500;color:var(--color-text);flex:1}.chat-input__url-badge svg{color:var(--color-accent);flex-shrink:0}.chat-input__url-import{all:unset;display:flex;align-items:center;justify-content:center;padding:6px 14px;border-radius:12px;background:var(--color-accent);color:#fff;font-family:var(--font-body);font-size:.8125rem;font-weight:600;cursor:pointer;transition:background .2s ease,transform .15s cubic-bezier(.34,1.56,.64,1);-webkit-tap-highlight-color:transparent}.chat-input__url-import:hover{background:var(--color-accent-hover);transform:scale(1.03)}.chat-input__url-import:active{transform:scale(.97)}.chat-input__url-dismiss{all:unset;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;color:var(--color-text-muted);cursor:pointer;transition:background .2s ease,color .2s ease;-webkit-tap-highlight-color:transparent}.chat-input__url-dismiss:hover{background:#0000000f;color:var(--color-text)}.chat-input__url-dismiss:active{background:#0000001a}.chat-input__thumbnails{display:flex;gap:8px;padding:8px 12px;margin-bottom:8px;max-width:800px;margin-left:auto;margin-right:auto;animation:thumbnails-enter .3s cubic-bezier(.22,1,.36,1);overflow-x:auto;-webkit-overflow-scrolling:touch}@keyframes thumbnails-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.chat-input__thumbnail{position:relative;flex-shrink:0;width:64px;height:64px;border-radius:12px;overflow:hidden;background:var(--color-card-bg);box-shadow:0 2px 8px #00000014,0 1px 2px #0000000a;border:2px solid var(--color-sage-light)}.chat-input__thumbnail img{width:100%;height:100%;object-fit:cover}.chat-input__thumbnail-remove{all:unset;position:absolute;top:-6px;right:-6px;width:22px;height:22px;border-radius:50%;background:var(--color-accent);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 6px #00000026;transition:background .15s ease,transform .2s cubic-bezier(.34,1.56,.64,1);-webkit-tap-highlight-color:transparent}.chat-input__thumbnail-remove:hover{background:var(--color-accent-hover);transform:scale(1.1)}.chat-input__thumbnail-remove:active{transform:scale(.95)}.chat-input__thumbnail-add{all:unset;flex-shrink:0;width:64px;height:64px;border-radius:12px;border:2px dashed var(--color-sage);background:transparent;color:var(--color-sage-dark);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease;-webkit-tap-highlight-color:transparent}.chat-input__thumbnail-add:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent);background:#c16c550d}.chat-input__thumbnail-add:disabled{opacity:.4;cursor:not-allowed}@media(max-width:480px){.chat-input{padding:8px 8px calc(8px + env(safe-area-inset-bottom))}.chat-input__container{gap:2px;padding:4px;border-radius:24px}.chat-input__textarea{font-size:16px;padding:8px 2px}.chat-input__send{width:40px;height:40px}.chat-input__selections{margin-bottom:6px;padding:8px 12px}.chat-input__thumbnails{padding:6px 8px;gap:6px}.chat-input__thumbnail,.chat-input__thumbnail-add{width:56px;height:56px;border-radius:10px}.chat-input__thumbnail-remove{width:20px;height:20px;top:-5px;right:-5px}}.recipe-preview{display:flex;gap:12px;padding:0 16px;animation:recipe-preview-enter .5s cubic-bezier(.22,1,.36,1)}@keyframes recipe-preview-enter{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.recipe-preview__avatar{flex-shrink:0;width:32px;height:32px;border-radius:10px;background:linear-gradient(135deg,var(--color-sage-light) 0%,var(--color-sage) 100%);display:flex;align-items:center;justify-content:center;color:var(--color-sage-dark);margin-top:4px}.recipe-preview__content{flex:1;max-width:400px}.recipe-preview__card{background:var(--color-card-bg);border-radius:16px;overflow:hidden;box-shadow:0 2px 8px #0000000f,0 8px 24px #0000000a;border:1px solid rgba(0,0,0,.04)}.recipe-preview__image-container{position:relative;height:140px;overflow:hidden}.recipe-preview__image{width:100%;height:100%;object-fit:cover}.recipe-preview__image-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,#0000 50%,#0006)}.recipe-preview__attribution{position:absolute;bottom:6px;right:8px;font-family:var(--font-body);font-size:.625rem;color:#fffc;text-shadow:0 1px 2px rgba(0,0,0,.5);z-index:1}.recipe-preview__attribution a{color:#fffffff2;text-decoration:underline;text-underline-offset:2px}.recipe-preview__attribution a:hover{color:#fff}.recipe-preview__details{padding:16px}.recipe-preview__title{font-family:var(--font-display);font-size:1.125rem;font-weight:500;color:var(--color-text);margin:0 0 8px;line-height:1.3}.recipe-preview__description{font-family:var(--font-body);font-size:.875rem;color:var(--color-text-muted);margin:0 0 12px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.recipe-preview__meta{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:12px}.recipe-preview__meta-item{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-body);font-size:.75rem;font-weight:500;color:var(--color-text-muted)}.recipe-preview__meta-item svg{opacity:.7;color:var(--color-accent)}.recipe-preview__section{border-top:1px solid rgba(0,0,0,.06)}.recipe-preview__section:first-of-type{margin-top:4px}.recipe-preview__section-header{all:unset;display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px 0;cursor:pointer;-webkit-tap-highlight-color:transparent}.recipe-preview__section-header:hover .recipe-preview__section-title{color:var(--color-text)}.recipe-preview__section-title{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-body);font-size:.8125rem;font-weight:500;color:var(--color-text-muted);transition:color .2s ease}.recipe-preview__section-title svg{color:var(--color-sage-dark);opacity:.8}.recipe-preview__chevron{color:var(--color-text-muted);transition:transform .25s cubic-bezier(.22,1,.36,1)}.recipe-preview__section-header--open .recipe-preview__chevron{transform:rotate(180deg)}.recipe-preview__ingredients{list-style:none;margin:0 0 12px;padding:0}.recipe-preview__ingredient{padding:6px 0;font-family:var(--font-body);font-size:.8125rem;color:var(--color-text);line-height:1.4;border-bottom:1px solid rgba(0,0,0,.03)}.recipe-preview__ingredient:last-child{border-bottom:none}.recipe-preview__ingredient-amount{font-weight:600;color:var(--color-accent)}.recipe-preview__ingredient-name{color:var(--color-text)}.recipe-preview__ingredient-notes{color:var(--color-text-muted);font-style:italic}.recipe-preview__instructions{list-style:none;margin:0 0 12px;padding:0;counter-reset:step}.recipe-preview__instruction{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid rgba(0,0,0,.03)}.recipe-preview__instruction:last-child{border-bottom:none}.recipe-preview__step-num{flex-shrink:0;width:22px;height:22px;border-radius:6px;background:linear-gradient(135deg,var(--color-sage-light) 0%,var(--color-sage) 100%);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:.75rem;font-weight:600;color:var(--color-sage-dark)}.recipe-preview__step-text{flex:1;font-family:var(--font-body);font-size:.8125rem;color:var(--color-text);line-height:1.5}.recipe-preview__step-duration{color:var(--color-accent);font-weight:500}.recipe-preview__message{font-family:var(--font-body);font-size:.9375rem;color:var(--color-text);line-height:1.6;margin:14px 0 0}.recipe-preview__actions{display:flex;gap:10px;margin-top:14px}.recipe-preview__btn{all:unset;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 18px;border-radius:12px;font-family:var(--font-body);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s cubic-bezier(.22,1,.36,1);-webkit-tap-highlight-color:transparent}.recipe-preview__btn--primary{background:var(--color-accent);color:#fff;flex:1;box-shadow:0 2px 8px #c16c5540}.recipe-preview__btn--primary:hover{background:#b5604a;transform:translateY(-1px);box-shadow:0 4px 12px #c16c554d}.recipe-preview__btn--primary:active{transform:translateY(0)}.recipe-preview__btn--secondary{background:var(--color-background);color:var(--color-text);border:1px solid rgba(0,0,0,.08)}.recipe-preview__btn--secondary:hover{background:#00000008;border-color:#0000001f}.recipe-preview__btn--secondary:active{background:#0000000d}.recipe-preview__btn:disabled{opacity:.7;cursor:not-allowed;transform:none}.recipe-preview__btn:disabled:hover{transform:none;box-shadow:0 2px 8px #c16c5540}.recipe-preview__spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:recipe-preview-spin .8s linear infinite}@keyframes recipe-preview-spin{to{transform:rotate(360deg)}}@media(max-width:480px){.recipe-preview{padding:0 12px}.recipe-preview__content{max-width:none}.recipe-preview__image-container{height:120px}.recipe-preview__details{padding:14px}.recipe-preview__title{font-size:1rem}.recipe-preview__actions{flex-direction:column}.recipe-preview__btn{padding:14px;justify-content:center}.recipe-preview__btn--secondary{order:2}}.save-options-modal__backdrop{position:fixed;inset:0;background:#2d2a2680;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:16px;z-index:1000}.save-options-modal{background:var(--color-card-bg);border-radius:16px;max-width:400px;width:100%;padding:24px;box-shadow:0 25px 50px -12px #00000040}.save-options-modal__title{font-family:var(--font-display);font-size:1.25rem;font-weight:600;color:var(--color-text);margin:0 0 20px;text-align:center}.save-options-modal__options{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.save-options-modal__option{display:flex;align-items:flex-start;gap:14px;width:100%;padding:16px;background:var(--color-background);border:2px solid transparent;border-radius:12px;cursor:pointer;text-align:left;transition:border-color .15s ease,background-color .15s ease}.save-options-modal__option:hover:not(:disabled){border-color:var(--color-sage);background:#8b9d820d}.save-options-modal__option:disabled{opacity:.6;cursor:not-allowed}.save-options-modal__icon{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--color-sage);border-radius:10px;color:#fff}.save-options-modal__icon--warning{background:var(--color-accent)}.save-options-modal__option-content{display:flex;flex-direction:column;gap:4px;min-width:0}.save-options-modal__option-title{font-family:var(--font-display);font-size:1rem;font-weight:600;color:var(--color-text)}.save-options-modal__option-desc{font-family:var(--font-body);font-size:.875rem;color:var(--color-text-muted);line-height:1.4}.save-options-modal__version-option{display:flex;flex-direction:column;gap:8px}.save-options-modal__version-input{display:flex;align-items:center;gap:12px;padding:0 16px}.save-options-modal__version-input input{flex:1;padding:10px 12px;font-family:var(--font-body);font-size:.875rem;border:1px solid var(--color-border);border-radius:8px;background:var(--color-background);color:var(--color-text)}.save-options-modal__version-input input:focus{outline:none;border-color:var(--color-sage)}.save-options-modal__version-input input::placeholder{color:var(--color-text-muted)}.save-options-modal__version-input input:disabled{opacity:.6}.save-options-modal__version-count{font-family:var(--font-body);font-size:.75rem;color:var(--color-text-muted);white-space:nowrap}.save-options-modal__limit-warning{display:flex;align-items:flex-start;gap:14px;padding:16px;background:#c46b481a;border:2px solid var(--color-accent);border-radius:12px}.save-options-modal__cancel{width:100%;padding:12px;font-family:var(--font-body);font-size:.9375rem;font-weight:500;color:var(--color-text-muted);background:transparent;border:none;border-radius:8px;cursor:pointer;transition:background-color .15s ease}.save-options-modal__cancel:hover:not(:disabled){background:#937b6a1a}.save-options-modal__cancel:disabled{opacity:.6;cursor:not-allowed}.conversation-view{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--color-background)}.conversation-view__header{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:12px;padding:calc(12px + env(safe-area-inset-top)) 16px 12px;background:var(--color-background);border-bottom:1px solid rgba(0,0,0,.05)}.conversation-view__back{all:unset;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;color:var(--color-text);cursor:pointer;transition:background .15s ease;-webkit-tap-highlight-color:transparent}.conversation-view__back:hover{background:#0000000d}.conversation-view__back:active{background:#00000014}.conversation-view__title{flex:1;text-align:center}.conversation-view__title h1{font-family:var(--font-display);font-size:1.125rem;font-weight:500;color:var(--color-text);margin:0;line-height:1.2}.conversation-view__subtitle{font-family:var(--font-body);font-size:.75rem;color:var(--color-text-muted)}.conversation-view__spacer{width:40px}.conversation-view__messages{flex:1;display:flex;flex-direction:column;gap:16px;padding:16px 0;padding-bottom:calc(100px + env(safe-area-inset-bottom));overflow-y:auto;overflow-x:hidden}.conversation-view__typing{display:flex;padding:0 16px 0 60px}.conversation-view__typing-dots{display:flex;align-items:center;justify-content:center;gap:5px;padding:14px 16px;background:#e5e5ea;border-radius:18px;min-width:64px}.conversation-view__typing-dots span{width:10px;height:10px;border-radius:50%;background:#8e8e93;-webkit-animation:imessage-pulse 1.4s ease-in-out infinite;animation:imessage-pulse 1.4s ease-in-out infinite}.conversation-view__typing-dots span:nth-child(1){-webkit-animation-delay:0s;animation-delay:0s}.conversation-view__typing-dots span:nth-child(2){-webkit-animation-delay:.2s;animation-delay:.2s}.conversation-view__typing-dots span:nth-child(3){-webkit-animation-delay:.4s;animation-delay:.4s}@-webkit-keyframes imessage-pulse{0%,60%,to{-webkit-transform:scale(1);transform:scale(1);opacity:.4}30%{-webkit-transform:scale(1.2);transform:scale(1.2);opacity:1}}@keyframes imessage-pulse{0%,60%,to{-webkit-transform:scale(1);transform:scale(1);opacity:.4}30%{-webkit-transform:scale(1.2);transform:scale(1.2);opacity:1}}.conversation-view__messages{scroll-behavior:smooth}.conversation-view__messages--has-selections{padding-bottom:calc(160px + env(safe-area-inset-bottom))}@media(max-width:480px){.conversation-view__messages--has-selections{padding-bottom:calc(150px + env(safe-area-inset-bottom))}}.conversation-view__error{position:fixed;bottom:calc(100px + env(safe-area-inset-bottom));left:16px;right:16px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:#fef2f2;border:1px solid #fecaca;border-radius:12px;font-family:var(--font-body);font-size:.875rem;color:#991b1b;z-index:100;animation:error-slide-up .3s ease}.conversation-view__error span{flex:1}.conversation-view__error button{all:unset;display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;color:#991b1b;cursor:pointer;transition:background .15s ease}.conversation-view__error button:hover{background:#991b1b1a}@keyframes error-slide-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:480px){.conversation-view__header{padding:calc(8px + env(safe-area-inset-top)) 12px 8px}.conversation-view__title h1{font-size:1rem}.conversation-view__messages{gap:12px;padding-bottom:calc(90px + env(safe-area-inset-bottom))}.conversation-view__typing{padding-left:16px}.conversation-view__error{bottom:calc(90px + env(safe-area-inset-bottom));left:12px;right:12px}}.ingredients-list{padding:0}.ingredients-list__header{display:flex;justify-content:space-between;align-items:center;padding:0 0 12px;margin-bottom:4px}.ingredients-list__count{font-family:var(--font-body);font-size:.8125rem;color:var(--color-text-muted);letter-spacing:.02em}.ingredients-list__reset{all:unset;font-family:var(--font-body);font-size:.8125rem;font-weight:500;color:var(--color-accent);cursor:pointer;padding:4px 10px;border-radius:4px;transition:background .15s ease}.ingredients-list__reset:hover{background:#c16c5514}.ingredients-list__items{list-style:none;margin:0;padding:0}.ingredients-list__item{display:flex;align-items:flex-start;gap:12px;padding:10px 0;animation:ingredient-enter .3s cubic-bezier(.22,1,.36,1) both}@keyframes ingredient-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.ingredients-list__item--checked .ingredients-list__content{opacity:.4}.ingredients-list__item--checked .ingredients-list__text{text-decoration:line-through;text-decoration-color:var(--color-text-muted)}.ingredients-list__checkbox{all:unset;flex-shrink:0;width:22px;height:22px;border-radius:6px;border:1.5px solid rgba(0,0,0,.2);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s cubic-bezier(.22,1,.36,1);margin-top:1px}.ingredients-list__checkbox:hover{border-color:var(--color-accent);background:#c16c550d}.ingredients-list__item--checked .ingredients-list__checkbox{background:var(--color-accent);border-color:var(--color-accent)}.ingredients-list__check-icon{color:#fff;display:flex;align-items:center;justify-content:center}.ingredients-list__content{flex:1;transition:opacity .2s ease;min-width:0}.ingredients-list__text{font-family:var(--font-body);font-size:.9375rem;line-height:1.5;color:var(--color-text);transition:all .2s ease}.ingredients-list__amount{font-family:var(--font-display);font-weight:500;color:var(--color-accent)}.ingredients-list__notes{display:block;font-family:var(--font-body);font-size:.8125rem;color:var(--color-text-muted);margin-top:2px}@media(max-width:480px){.ingredients-list__item{gap:10px;padding:9px 0}.ingredients-list__checkbox{width:20px;height:20px}.ingredients-list__text{font-size:.875rem}}.meal-photo-upload{position:relative;display:flex;justify-content:center;margin-top:12px}.meal-photo-upload__btn{all:unset;display:flex;align-items:center;gap:8px;padding:12px 20px;background:#c16c5514;border-radius:24px;font-family:var(--font-body);font-size:.9375rem;font-weight:500;color:var(--color-accent);cursor:pointer;transition:all .2s ease;-webkit-tap-highlight-color:transparent}.meal-photo-upload__btn:hover:not(:disabled){background:#c16c5526;transform:translateY(-1px)}.meal-photo-upload__btn:active:not(:disabled){transform:translateY(0)}.meal-photo-upload__btn--active{background:var(--color-accent);color:#fff}.meal-photo-upload__btn--active:hover:not(:disabled){background:var(--color-accent-hover);transform:none}.meal-photo-upload__btn:disabled{opacity:.6;cursor:not-allowed}.meal-photo-upload__btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.meal-photo-upload__dropdown{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);min-width:200px;background:var(--color-card-bg);border-radius:16px;box-shadow:0 4px 12px #00000014,0 12px 32px #0000001f;padding:8px;animation:meal-photo-dropdown-enter .2s cubic-bezier(.34,1.56,.64,1);z-index:100}@keyframes meal-photo-dropdown-enter{0%{opacity:0;transform:translate(-50%) translateY(8px) scale(.95)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.meal-photo-upload__option{all:unset;display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border-radius:10px;font-family:var(--font-body);font-size:.9375rem;color:var(--color-text);cursor:pointer;transition:background .15s ease;box-sizing:border-box}.meal-photo-upload__option:hover{background:#0000000a}.meal-photo-upload__option:active{background:#00000014}.meal-photo-upload__option svg{color:var(--color-text-muted);flex-shrink:0}.meal-photo-upload__input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.meal-photo-upload__spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:meal-photo-spin .8s linear infinite}@keyframes meal-photo-spin{to{transform:rotate(360deg)}}.instructions-list{padding:0}.instructions-list__hint{font-family:var(--font-body);font-size:.9375rem;font-style:italic;color:var(--color-text-muted);margin:0 0 16px;padding:12px 16px;background:linear-gradient(135deg,#a8b5a01a,#c16c5514);border-radius:12px;border-left:3px solid var(--color-sage)}.instructions-list__items{list-style:none;margin:0;padding:0;counter-reset:step}.instructions-list__item{display:flex;gap:16px;padding:20px 0;border-bottom:1px solid rgba(0,0,0,.04);animation:instruction-enter .4s cubic-bezier(.22,1,.36,1) both}@keyframes instruction-enter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.instructions-list__item:last-child{border-bottom:none}.instructions-list__item--completed .instructions-list__text{opacity:.5}.instructions-list__step-number{all:unset;flex-shrink:0;width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,var(--color-sage-light) 0%,var(--color-sage) 100%);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:1.125rem;font-weight:600;color:var(--color-sage-dark);cursor:pointer;transition:all .2s cubic-bezier(.22,1,.36,1)}.instructions-list__step-number:hover{transform:scale(1.05)}.instructions-list__step-number--static{cursor:default;background:var(--color-background);color:var(--color-text-muted);border:1px solid rgba(0,0,0,.08)}.instructions-list__step-number--static:hover{transform:none}.instructions-list__item--completed .instructions-list__step-number{background:var(--color-accent);color:#fff}.instructions-list__content{flex:1;padding-top:4px}.instructions-list__text{font-family:var(--font-body);font-size:1.0625rem;line-height:1.65;color:var(--color-text);margin:0 0 12px;transition:opacity .2s ease}.instructions-list__text:last-child{margin-bottom:0}.instructions-list__timer-btn{all:unset;display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:#c16c5514;border-radius:20px;font-family:var(--font-body);font-size:.875rem;font-weight:500;color:var(--color-accent);cursor:pointer;transition:all .2s ease}.instructions-list__timer-btn:hover{background:#c16c5526;transform:translateY(-1px)}.instructions-list__timer-btn:active{transform:translateY(0)}.instructions-list__timer-btn svg{opacity:.8}.instructions-list__end{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 0;margin-top:20px}.instructions-list__flourish{width:48px;height:48px;border-radius:16px;background:linear-gradient(135deg,var(--color-sage-light) 0%,var(--color-sage) 100%);display:flex;align-items:center;justify-content:center;color:var(--color-sage-dark)}.instructions-list__end-text{font-family:var(--font-display);font-size:1.125rem;color:var(--color-text-muted);margin:0}@media(max-width:480px){.instructions-list__item{gap:12px;padding:14px 0}.instructions-list__step-number{width:32px;height:32px;font-size:.9375rem;border-radius:8px}.instructions-list__text{font-size:.9375rem;line-height:1.6}.instructions-list__timer-btn{padding:5px 10px;font-size:.75rem}.instructions-list__end{padding:24px 0}.instructions-list__flourish{width:40px;height:40px;border-radius:12px}.instructions-list__end-text{font-size:1rem}}.timer-panel{position:fixed;bottom:0;left:0;right:0;background:var(--color-card-bg);border-radius:20px 20px 0 0;box-shadow:0 -4px 24px #00000014;z-index:50;padding-bottom:env(safe-area-inset-bottom);transition:transform .3s cubic-bezier(.22,1,.36,1)}.timer-panel--empty{transform:translateY(100%);pointer-events:none}.timer-panel__add-btn{display:none}.timer-panel__bar{all:unset;display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px 16px;cursor:pointer;-webkit-tap-highlight-color:transparent}.timer-panel__bar-left{display:flex;align-items:center;gap:8px;color:var(--color-accent)}.timer-panel__bar-label{font-family:var(--font-body);font-size:.875rem;font-weight:500}.timer-panel__chevron{color:var(--color-text-muted);transition:transform .2s ease}.timer-panel__content{padding:0 12px 12px;display:flex;flex-direction:column;gap:8px;max-height:40vh;overflow-y:auto}.timer-panel__timer{position:relative;background:var(--color-background);border-radius:10px;overflow:hidden}.timer-panel__timer--complete{animation:timer-complete .5s ease}@keyframes timer-complete{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.timer-panel__timer--running .timer-panel__timer-time{color:var(--color-accent)}.timer-panel__timer-progress{position:absolute;top:0;left:0;bottom:0;background:linear-gradient(90deg,#a8b5a04d,#a8b5a026);transition:width 1s linear}.timer-panel__timer--complete .timer-panel__timer-progress{background:linear-gradient(90deg,#c16c5533,#c16c551a);width:100%!important}.timer-panel__timer-content{position:relative;display:flex;align-items:center;justify-content:space-between;padding:10px 12px}.timer-panel__timer-info{display:flex;align-items:center;gap:10px}.timer-panel__timer-label{font-family:var(--font-body);font-size:.75rem;color:var(--color-text-muted);max-width:80px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timer-panel__timer-time{font-family:var(--font-display);font-size:1.25rem;font-weight:500;color:var(--color-text);font-variant-numeric:tabular-nums;transition:color .2s ease}.timer-panel__timer--complete .timer-panel__timer-time{color:var(--color-accent);font-size:1rem}.timer-panel__timer-actions{display:flex;gap:6px}.timer-panel__timer-btn{all:unset;width:32px;height:32px;border-radius:8px;background:var(--color-accent);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease}.timer-panel__timer-btn:hover{transform:scale(1.05)}.timer-panel__timer-btn:active{transform:scale(.95)}.timer-panel__timer-btn--secondary{background:#0000000f;color:var(--color-text-muted)}.timer-panel__timer-btn--secondary:hover{background:#0000001a}.timer-panel__add-form{display:flex;gap:8px;padding:4px;background:var(--color-background);border-radius:14px}.timer-panel__input{flex:1;padding:12px 14px;border:none;background:transparent;font-family:var(--font-body);font-size:.9375rem;color:var(--color-text);outline:none}.timer-panel__input::placeholder{color:var(--color-text-muted)}.timer-panel__input--time{width:70px;flex:none;text-align:center}.timer-panel__submit-btn{all:unset;padding:12px 20px;background:var(--color-accent);border-radius:10px;font-family:var(--font-body);font-size:.875rem;font-weight:600;color:#fff;cursor:pointer;transition:background .15s ease}.timer-panel__submit-btn:hover{background:var(--color-accent-hover)}.timer-panel__cancel-btn{all:unset;padding:12px;color:var(--color-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center}.timer-panel__add-inline{display:none}@media(max-width:480px){.timer-panel{border-radius:12px 12px 0 0}.timer-panel__bar{padding:10px 14px}.timer-panel__timer-content{padding:8px 10px}.timer-panel__timer-time{font-size:1.125rem}.timer-panel__timer-btn{width:28px;height:28px;border-radius:6px}}.version-modal__backdrop{position:fixed;inset:0;background:#2d2a2680;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:16px;z-index:1000}.version-modal{background:var(--color-card-bg);border-radius:16px;max-width:440px;width:100%;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 25px 50px -12px #00000040}.version-modal__header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--color-border)}.version-modal__title{font-family:var(--font-display);font-size:1.25rem;font-weight:600;color:var(--color-text);margin:0}.version-modal__close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:8px;color:var(--color-text-muted);cursor:pointer;transition:background-color .15s ease,color .15s ease}.version-modal__close:hover{background:#937b6a1a;color:var(--color-text)}.version-modal__list{list-style:none;margin:0;padding:8px 0;overflow-y:auto}.version-modal__item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 24px;transition:background-color .15s ease}.version-modal__item:hover{background:#937b6a0d}.version-modal__item--current{background:#8b9d821a}.version-modal__item-info{display:flex;flex-direction:column;gap:4px;min-width:0}.version-modal__item-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.version-modal__item-name{font-family:var(--font-display);font-size:.9375rem;font-weight:600;color:var(--color-text)}.version-modal__item-name--editable{cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:2px 4px;margin:-2px -4px;border-radius:4px;transition:background-color .15s ease}.version-modal__item-name--editable:hover{background:#937b6a1a}.version-modal__name-edit-icon{opacity:.4;color:var(--color-text-muted);transition:opacity .15s ease;flex-shrink:0}.version-modal__item-name--editable:hover .version-modal__name-edit-icon,.version-modal__item-name--editable:focus .version-modal__name-edit-icon{opacity:.8}.version-modal__name-input{font-family:var(--font-display);font-size:.9375rem;font-weight:600;color:var(--color-text);background:var(--color-background);border:1px solid var(--color-border);border-radius:6px;padding:4px 8px;min-width:120px;max-width:180px}.version-modal__name-input:focus{outline:none;border-color:var(--color-sage);box-shadow:0 0 0 2px #8b9d8233}.version-modal__name-input:disabled{opacity:.6}.version-modal__item-number{font-family:var(--font-body);font-size:.75rem;color:var(--color-text-muted);background:var(--color-background);padding:2px 6px;border-radius:4px}.version-modal__item-badge{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-body);font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.03em;color:var(--color-sage);background:#8b9d8226;padding:2px 8px;border-radius:10px}.version-modal__item-date{font-family:var(--font-body);font-size:.8125rem;color:var(--color-text-muted)}.version-modal__actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.version-modal__action{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;font-family:var(--font-body);font-size:.8125rem;font-weight:500;color:var(--color-text-muted);background:var(--color-background);border:1px solid var(--color-border);border-radius:6px;cursor:pointer;transition:all .15s ease;white-space:nowrap}.version-modal__action:hover:not(:disabled){color:var(--color-text);border-color:var(--color-text-muted)}.version-modal__action:disabled{opacity:.5;cursor:not-allowed}.version-modal__action--delete-trigger:hover:not(:disabled){color:var(--color-accent);border-color:var(--color-accent)}.version-modal__delete-confirm{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.version-modal__delete-warning{font-family:var(--font-body);font-size:.8125rem;color:var(--color-accent)}.version-modal__delete-actions{display:flex;gap:8px}.version-modal__action--cancel{background:transparent;border-color:transparent}.version-modal__action--cancel:hover:not(:disabled){background:var(--color-background);border-color:var(--color-border)}.version-modal__action--delete{color:#fff;background:var(--color-accent);border-color:var(--color-accent)}.version-modal__action--delete:hover:not(:disabled){background:var(--color-accent-hover)}.version-modal__hint{padding:16px 24px;margin:0;font-family:var(--font-body);font-size:.8125rem;color:var(--color-text-muted);text-align:center;border-top:1px solid var(--color-border)}.photo-detail-modal__overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#000000d9;padding:20px;animation:photo-detail-overlay-enter .2s ease}@keyframes photo-detail-overlay-enter{0%{opacity:0}to{opacity:1}}.photo-detail-modal{position:relative;width:100%;max-width:500px;background:var(--color-card-bg);border-radius:20px;overflow:hidden;animation:photo-detail-modal-enter .3s cubic-bezier(.22,1,.36,1)}@keyframes photo-detail-modal-enter{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.photo-detail-modal__close{position:absolute;top:12px;right:12px;z-index:10;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#00000080;border:none;border-radius:50%;color:#fff;cursor:pointer;transition:background .15s ease;-webkit-tap-highlight-color:transparent}.photo-detail-modal__close:hover{background:#000000b3}.photo-detail-modal__image{width:100%;aspect-ratio:1;background:var(--color-background)}.photo-detail-modal__image img{width:100%;height:100%;object-fit:cover}.photo-detail-modal__info{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px}.photo-detail-modal__date{font-family:var(--font-body);font-size:.875rem;color:var(--color-text-muted)}.photo-detail-modal__badge{padding:4px 10px;background:#c16c551a;color:var(--color-accent);font-family:var(--font-body);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em;border-radius:6px}.photo-detail-modal__actions{display:flex;gap:10px;padding:0 20px 20px}.photo-detail-modal__action{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 16px;font-family:var(--font-body);font-size:.9375rem;font-weight:500;border:none;border-radius:12px;cursor:pointer;transition:all .15s ease;-webkit-tap-highlight-color:transparent}.photo-detail-modal__action:active{transform:scale(.98)}.photo-detail-modal__action--primary{background:var(--color-accent);color:#fff}.photo-detail-modal__action--primary:hover{background:var(--color-accent-hover)}.photo-detail-modal__action--delete{background:var(--color-background);color:var(--color-text)}.photo-detail-modal__action--delete:hover{background:#dc26261a;color:#dc2626}.photo-detail-modal__action--delete:hover svg{stroke:#dc2626}.photo-detail-modal__actions .photo-detail-modal__action:only-child{max-width:200px;margin:0 auto}@media(min-width:600px){.photo-detail-modal{max-width:600px}.photo-detail-modal__image{aspect-ratio:4 / 3}}.meal-photo-gallery{margin-top:32px;padding-top:24px;border-top:1px solid rgba(0,0,0,.06)}.meal-photo-gallery__title{font-family:var(--font-display);font-size:1.125rem;font-weight:500;color:var(--color-text);margin:0 0 16px}.meal-photo-gallery__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.meal-photo-gallery__item{all:unset;position:relative;aspect-ratio:1;border-radius:12px;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:transparent}.meal-photo-gallery__item img{width:100%;height:100%;object-fit:cover;transition:transform .2s ease}.meal-photo-gallery__item:hover img{transform:scale(1.05)}.meal-photo-gallery__item:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.meal-photo-gallery__item--is-cover{box-shadow:0 0 0 2px var(--color-accent)}.meal-photo-gallery__badge{position:absolute;top:6px;right:6px;padding:2px 8px;background:var(--color-accent);color:#fff;font-family:var(--font-body);font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em;border-radius:6px}@media(min-width:600px){.meal-photo-gallery__grid{grid-template-columns:repeat(4,1fr);gap:12px}.meal-photo-gallery__item{border-radius:14px}}@media(min-width:900px){.meal-photo-gallery__grid{grid-template-columns:repeat(5,1fr);gap:16px}.meal-photo-gallery__item{border-radius:16px}}.photo-save-modal__overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#0009;padding:20px;animation:photo-overlay-enter .2s ease}@keyframes photo-overlay-enter{0%{opacity:0}to{opacity:1}}.photo-save-modal{width:100%;max-width:360px;background:var(--color-card-bg);border-radius:20px;padding:24px;animation:photo-modal-enter .3s cubic-bezier(.22,1,.36,1)}@keyframes photo-modal-enter{0%{transform:scale(.95) translateY(10px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.photo-save-modal__title{font-family:var(--font-display);font-size:1.375rem;font-weight:500;color:var(--color-text);margin:0 0 16px;text-align:center}.photo-save-modal__preview{width:100%;aspect-ratio:4 / 3;border-radius:12px;overflow:hidden;margin-bottom:20px;background:var(--color-background)}.photo-save-modal__preview img{width:100%;height:100%;object-fit:cover}.photo-save-modal__options{display:flex;flex-direction:column;gap:10px}.photo-save-modal__option{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:14px 20px;font-family:var(--font-body);font-size:1rem;font-weight:500;border:none;border-radius:12px;cursor:pointer;transition:all .15s ease;-webkit-tap-highlight-color:transparent;background:var(--color-background);color:var(--color-text)}.photo-save-modal__option:hover:not(:disabled){background:#0000000f}.photo-save-modal__option:active:not(:disabled){transform:scale(.98)}.photo-save-modal__option:disabled{opacity:.5;cursor:not-allowed}.photo-save-modal__option--primary{background:var(--color-accent);color:#fff}.photo-save-modal__option--primary:hover:not(:disabled){background:var(--color-accent-hover)}.photo-save-modal__option--primary svg{fill:currentColor;stroke:none}.photo-save-modal__cancel{width:100%;margin-top:12px;padding:12px;font-family:var(--font-body);font-size:.9375rem;font-weight:500;color:var(--color-text-muted);background:transparent;border:none;border-radius:8px;cursor:pointer;transition:all .15s ease;-webkit-tap-highlight-color:transparent}.photo-save-modal__cancel:hover:not(:disabled){color:var(--color-text);background:#0000000a}.photo-save-modal__cancel:disabled{opacity:.5;cursor:not-allowed}.photo-save-modal__saving{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:16px;font-family:var(--font-body);font-size:.875rem;color:var(--color-text-muted)}.photo-save-modal__spinner{width:16px;height:16px;border:2px solid rgba(0,0,0,.1);border-top-color:var(--color-accent);border-radius:50%;animation:photo-spinner .8s linear infinite}@keyframes photo-spinner{to{transform:rotate(360deg)}}.recipe-view{min-height:100vh;min-height:100dvh;background:var(--color-background)}.recipe-view__loading,.recipe-view__not-found{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:24px;text-align:center}.recipe-view__not-found h2{font-family:var(--font-display);font-size:1.5rem;color:var(--color-text);margin:0 0 8px}.recipe-view__not-found p{font-family:var(--font-body);color:var(--color-text-muted);margin:0 0 24px}.recipe-view__not-found button{all:unset;padding:12px 24px;background:var(--color-accent);color:#fff;border-radius:12px;font-family:var(--font-body);font-weight:500;cursor:pointer;transition:background .2s}.recipe-view__not-found button:hover{background:#b5604a}.recipe-view__hero{position:relative;height:320px;overflow:hidden}.recipe-view__hero-image{width:100%;height:100%;object-fit:cover}.recipe-view__hero-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,#0003,#0000 30% 50%,#0009)}.recipe-view__attribution{position:absolute;top:calc(12px + env(safe-area-inset-top));left:50%;transform:translate(-50%);font-family:var(--font-body);font-size:.6875rem;color:#ffffffbf;text-shadow:0 1px 3px rgba(0,0,0,.5);z-index:5;white-space:nowrap}.recipe-view__attribution a{color:#ffffffe6;text-decoration:underline;text-underline-offset:2px}.recipe-view__attribution a:hover{color:#fff}.recipe-view__back{all:unset;position:absolute;top:calc(12px + env(safe-area-inset-top));left:12px;width:44px;height:44px;border-radius:14px;background:#ffffffe6;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;color:var(--color-text);cursor:pointer;transition:all .2s ease;z-index:10;box-shadow:0 2px 10px #0000001a}.recipe-view__back:hover{background:#fff;transform:scale(1.05)}.recipe-view__back:active{transform:scale(.95)}.recipe-view__menu-container{position:absolute;top:calc(12px + env(safe-area-inset-top));right:12px;z-index:10}.recipe-view__more{all:unset;width:44px;height:44px;border-radius:14px;background:#ffffffe6;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;color:var(--color-text);cursor:pointer;transition:all .2s ease;box-shadow:0 2px 10px #0000001a}.recipe-view__more:hover{background:#fff;transform:scale(1.05)}.recipe-view__more:active{transform:scale(.95)}.recipe-view__dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:180px;background:var(--color-card-bg);border-radius:12px;box-shadow:0 4px 20px #00000026;overflow:hidden;animation:dropdown-appear .15s ease-out}@keyframes dropdown-appear{0%{opacity:0;transform:translateY(-8px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.recipe-view__dropdown-item{all:unset;width:100%;display:flex;align-items:center;gap:12px;padding:14px 16px;font-family:var(--font-body);font-size:.9375rem;font-weight:500;color:var(--color-text);cursor:pointer;transition:background .15s ease;box-sizing:border-box}.recipe-view__dropdown-item:hover{background:var(--color-background)}.recipe-view__dropdown-item--destructive{color:var(--color-accent)}.recipe-view__dropdown-divider{margin:6px 0;border:none;border-top:1px solid var(--color-border)}.recipe-view__dropdown-item--version{justify-content:space-between}.recipe-view__dropdown-item--active{background:#8b9d821a}.recipe-view__dropdown-version-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recipe-view__dropdown-version-meta{display:flex;align-items:center;gap:4px;font-size:.75rem;color:var(--color-text-muted);flex-shrink:0}.recipe-view__dropdown-version-meta svg{color:var(--color-sage)}.recipe-view__dropdown-item--subtle{color:var(--color-text-muted);font-size:.8125rem}.recipe-view__dropdown-item--subtle:hover{color:var(--color-text)}.recipe-view__dropdown-item--has-submenu{justify-content:flex-start}.recipe-view__dropdown-chevron{margin-left:auto;color:var(--color-text-muted)}.recipe-view__dropdown-item--back{font-weight:600;gap:6px;color:var(--color-text)}.recipe-view__dropdown-item--back svg{color:var(--color-text-muted)}.recipe-view__hero-content{position:absolute;bottom:0;left:0;right:0;padding:24px 20px;color:#fff;z-index:5}.recipe-view__title{font-family:var(--font-display);font-size:1.75rem;font-weight:500;margin:0 0 12px;line-height:1.2;text-shadow:0 2px 8px rgba(0,0,0,.3)}.recipe-view__version-indicator{display:inline-flex;align-items:center;margin-left:10px;padding:2px 8px;background:#ffffff40;border-radius:6px;font-family:var(--font-body);font-size:.75rem;font-weight:600;vertical-align:middle;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.recipe-view__title--editable{cursor:pointer;position:relative;display:inline-flex;align-items:center;flex-wrap:wrap;gap:8px}.recipe-view__title-edit-icon{opacity:.5;transition:opacity .2s ease;flex-shrink:0}.recipe-view__title--editable:hover .recipe-view__title-edit-icon,.recipe-view__title--editable:focus .recipe-view__title-edit-icon{opacity:.9}.recipe-view__title-edit{display:flex;align-items:center;gap:10px;margin:0 0 12px}.recipe-view__title-input{all:unset;font-family:var(--font-display);font-size:1.75rem;font-weight:500;line-height:1.2;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.3);background:#ffffff26;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:4px 12px;border-radius:8px;border:2px solid rgba(255,255,255,.4);min-width:200px;max-width:100%}.recipe-view__title-input:focus{border-color:#ffffffb3;background:#fff3}.recipe-view__title-input:disabled{opacity:.7}@media(max-width:480px){.recipe-view__title-input{font-size:1.5rem;min-width:150px}}.recipe-view__meta{display:flex;flex-wrap:wrap;gap:16px}.recipe-view__meta-item{display:flex;align-items:center;gap:6px;font-family:var(--font-body);font-size:.875rem;font-weight:500;opacity:.95;text-shadow:0 1px 4px rgba(0,0,0,.3)}.recipe-view__meta-item svg{opacity:.85}.recipe-view__cook-btn{all:unset;display:flex;align-items:center;gap:6px;padding:8px 14px;background:#fff3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:20px;font-family:var(--font-body);font-size:.875rem;font-weight:600;color:#fff;cursor:pointer;transition:all .2s ease;border:1px solid rgba(255,255,255,.3)}.recipe-view__cook-btn:hover{background:#ffffff4d;transform:translateY(-1px)}.recipe-view__cook-btn:active{transform:translateY(0)}.recipe-view__cook-btn--active{background:var(--color-accent);border-color:var(--color-accent);box-shadow:0 2px 12px #c16c5566}.recipe-view__cook-btn--active:hover{background:var(--color-accent-hover)}@media(max-width:480px){.recipe-view__cook-btn{padding:6px 10px;font-size:.75rem;gap:4px}.recipe-view__cook-btn svg{width:14px;height:14px}}@media(min-width:768px){.recipe-view__cook-btn{margin-left:auto}}.recipe-view__tabs{display:flex;background:var(--color-card-bg);border-bottom:1px solid rgba(0,0,0,.06);position:sticky;top:0;z-index:20}.recipe-view__tab{all:unset;flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;font-family:var(--font-body);font-size:.875rem;font-weight:500;color:var(--color-text-muted);cursor:pointer;position:relative;transition:color .2s ease;-webkit-tap-highlight-color:transparent}.recipe-view__tab:after{content:"";position:absolute;bottom:0;left:20%;right:20%;height:2px;background:var(--color-accent);border-radius:2px 2px 0 0;transform:scaleX(0);transition:transform .25s cubic-bezier(.22,1,.36,1)}.recipe-view__tab--active{color:var(--color-text)}.recipe-view__tab--active:after{transform:scaleX(1)}.recipe-view__tab-count{font-size:.6875rem;padding:2px 6px;background:var(--color-background);border-radius:8px;color:var(--color-text-muted);transition:all .2s ease}.recipe-view__tab--active .recipe-view__tab-count{background:#c16c551a;color:var(--color-accent)}.recipe-view__content--mobile{display:block;padding:16px 16px 80px}.recipe-view__content--desktop{display:none}.recipe-view__section-title{font-family:var(--font-display);font-size:1.125rem;font-weight:500;color:var(--color-text);margin:0 0 16px;padding-bottom:12px;border-bottom:1px solid rgba(0,0,0,.06)}@media(min-width:768px){.recipe-view__tabs,.recipe-view__content--mobile{display:none}.recipe-view__content--desktop{display:grid;grid-template-columns:minmax(280px,1fr) minmax(400px,2fr);gap:40px;padding:32px 32px 80px;max-width:1200px;margin:0 auto}.recipe-view__column{min-width:0}.recipe-view__column--ingredients{position:sticky;top:20px;align-self:start;background:var(--color-card-bg);border-radius:16px;padding:24px;box-shadow:0 2px 12px #0000000a}.recipe-view__column--instructions{padding-top:0}}.recipe-view__edit-fab{all:unset;position:fixed;bottom:calc(24px + env(safe-area-inset-bottom));right:20px;width:56px;height:56px;border-radius:16px;background:var(--color-accent);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 16px #c16c554d,0 2px 6px #0000001a;transition:all .2s cubic-bezier(.22,1,.36,1);z-index:40}.recipe-view__edit-fab:hover{transform:scale(1.08);box-shadow:0 6px 20px #c16c5566,0 3px 8px #00000026}.recipe-view__edit-fab:active{transform:scale(.95)}@media(max-width:480px){.recipe-view__hero{height:280px}.recipe-view__back{top:calc(8px + env(safe-area-inset-top));left:8px;width:40px;height:40px;border-radius:12px}.recipe-view__menu-container{top:calc(8px + env(safe-area-inset-top));right:8px}.recipe-view__more{width:40px;height:40px;border-radius:12px}.recipe-view__hero-content{padding:20px 16px}.recipe-view__title{font-size:1.5rem;margin-bottom:10px}.recipe-view__meta{gap:12px}.recipe-view__meta-item{font-size:.8125rem}.recipe-view__tab{padding:14px;font-size:.875rem}.recipe-view__edit-fab{width:52px;height:52px;right:16px;bottom:calc(20px + env(safe-area-inset-bottom))}}@media(max-height:500px)and (orientation:landscape){.recipe-view__hero{height:200px}.recipe-view__title{font-size:1.25rem}}.trash-view{min-height:100vh;min-height:100dvh;background:var(--color-background);padding-bottom:env(safe-area-inset-bottom)}.trash-view__header{display:flex;align-items:center;gap:12px;padding:12px 16px;padding-top:calc(12px + env(safe-area-inset-top));background:var(--color-card-bg);border-bottom:1px solid rgba(0,0,0,.06);position:sticky;top:0;z-index:10}.trash-view__back{all:unset;width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--color-text);cursor:pointer;transition:background .15s ease;flex-shrink:0}.trash-view__back:hover{background:var(--color-background)}.trash-view__title-group{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.trash-view__title{font-family:var(--font-display);font-size:1.25rem;font-weight:600;color:var(--color-text);margin:0}.trash-view__count{font-family:var(--font-body);font-size:.75rem;font-weight:500;padding:4px 8px;background:var(--color-background);color:var(--color-text-muted);border-radius:6px}.trash-view__empty-btn{all:unset;font-family:var(--font-body);font-size:.875rem;font-weight:500;color:var(--color-accent);padding:8px 12px;border-radius:8px;cursor:pointer;transition:background .15s ease;flex-shrink:0}.trash-view__empty-btn:hover{background:#c16c551a}.trash-view__empty-btn:disabled{opacity:.5;cursor:not-allowed}.trash-view__banner{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#a8b5a026;color:var(--color-sage-dark);font-family:var(--font-body);font-size:.875rem}.trash-view__loading{display:flex;align-items:center;justify-content:center;padding:60px 20px;color:var(--color-text-muted);font-family:var(--font-body)}.trash-view__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 24px;text-align:center;color:var(--color-text-muted)}.trash-view__empty svg{opacity:.4;margin-bottom:20px}.trash-view__empty h2{font-family:var(--font-display);font-size:1.25rem;font-weight:500;color:var(--color-text);margin:0 0 8px}.trash-view__empty p{font-family:var(--font-body);font-size:.9375rem;margin:0}.trash-view__list{list-style:none;margin:0;padding:0}.trash-view__item{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--color-card-bg);border-bottom:1px solid rgba(0,0,0,.04)}.trash-view__item-image{width:56px;height:56px;border-radius:10px;object-fit:cover;flex-shrink:0;background:var(--color-background)}.trash-view__item-content{flex:1;min-width:0}.trash-view__item-title{font-family:var(--font-display);font-size:1rem;font-weight:500;color:var(--color-text);margin:0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trash-view__item-meta{font-family:var(--font-body);font-size:.8125rem;color:var(--color-text-muted);margin:0}.trash-view__item-actions{display:flex;gap:8px;flex-shrink:0}.trash-view__action-btn{all:unset;width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease}.trash-view__action-btn:disabled{opacity:.4;cursor:not-allowed}.trash-view__action-btn--restore{color:var(--color-sage-dark);background:#a8b5a026}.trash-view__action-btn--restore:hover:not(:disabled){background:#a8b5a04d}.trash-view__action-btn--delete{color:var(--color-accent);background:#c16c551a}.trash-view__action-btn--delete:hover:not(:disabled){background:#c16c5533}@media(min-width:768px){.trash-view{max-width:640px;margin:0 auto}.trash-view__header{padding:16px 20px;padding-top:calc(16px + env(safe-area-inset-top))}.trash-view__item{padding:16px 20px}.trash-view__item-image{width:64px;height:64px}}.shopping-list-card{all:unset;display:flex;align-items:center;gap:12px;width:100%;padding:16px;background:var(--color-card-bg);border-radius:16px;box-shadow:0 1px 3px #0000000a;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;-webkit-tap-highlight-color:transparent;box-sizing:border-box}.shopping-list-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.shopping-list-card:active{transform:scale(.98)}.shopping-list-card--selected{background:var(--color-sage-light)}.shopping-list-card__checkbox{flex-shrink:0}.shopping-list-card__check-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:8px;border:2px solid var(--color-text-muted);transition:all .15s ease}.shopping-list-card--selected .shopping-list-card__check-icon{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.shopping-list-card__content{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.shopping-list-card__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,var(--color-sage-light) 0%,var(--color-sage) 100%);color:var(--color-sage-dark)}.shopping-list-card__text{flex:1;min-width:0}.shopping-list-card__title{font-family:var(--font-display);font-size:1rem;font-weight:500;color:var(--color-text);margin:0;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shopping-list-card__meta{font-family:var(--font-body);font-size:.8125rem;color:var(--color-text-muted);margin:4px 0 0;line-height:1.3}.shopping-list-card__progress{position:relative;flex-shrink:0;width:40px;height:40px}.shopping-list-card__progress-ring{width:100%;height:100%;transform:rotate(-90deg)}.shopping-list-card__progress-bg{fill:none;stroke:var(--color-sage-light);stroke-width:3}.shopping-list-card__progress-fill{fill:none;stroke:var(--color-sage);stroke-width:3;stroke-linecap:round;transition:stroke-dasharray .3s ease}.shopping-list-card__progress-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:var(--font-body);font-size:.625rem;font-weight:600;color:var(--color-text-muted)}.shopping-list-card__chevron{flex-shrink:0;color:var(--color-text-muted);opacity:.5}.recipe-selection-overlay{position:fixed;inset:0;z-index:200;background:var(--color-background);display:flex;flex-direction:column;animation:overlay-slide-up .3s cubic-bezier(.22,1,.36,1)}@keyframes overlay-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.recipe-selection-overlay__header{display:flex;align-items:center;gap:12px;padding:calc(16px + env(safe-area-inset-top)) 20px 16px;background:var(--color-background);border-bottom:1px solid rgba(0,0,0,.06)}.recipe-selection-overlay__cancel{all:unset;font-family:var(--font-body);font-size:1rem;color:var(--color-accent);cursor:pointer;padding:8px 4px;-webkit-tap-highlight-color:transparent}.recipe-selection-overlay__cancel:hover{text-decoration:underline}.recipe-selection-overlay__title{flex:1;text-align:center;font-family:var(--font-display);font-size:1.125rem;font-weight:500;color:var(--color-text);margin:0}.recipe-selection-overlay__spacer{width:60px}.recipe-selection-overlay__content{flex:1;overflow-y:auto;padding-bottom:calc(100px + env(safe-area-inset-bottom))}.recipe-selection-overlay__loading{display:flex;align-items:center;justify-content:center;padding:80px 20px}.recipe-selection-overlay__spinner{width:32px;height:32px;border:3px solid var(--color-sage-light);border-top-color:var(--color-sage);border-radius:50%;animation:spinner-rotate .8s linear infinite}.recipe-selection-overlay__empty{display:flex;align-items:center;justify-content:center;padding:80px 20px;text-align:center}.recipe-selection-overlay__empty p{font-family:var(--font-body);font-size:1rem;color:var(--color-text-muted);margin:0}.recipe-selection-overlay__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;padding:16px}.recipe-selection-overlay__footer{position:fixed;bottom:0;left:0;right:0;padding:16px 20px calc(16px + env(safe-area-inset-bottom));background:linear-gradient(to top,var(--color-background) 0%,var(--color-background) 80%,transparent 100%)}.recipe-selection-overlay__confirm{all:unset;display:flex;align-items:center;justify-content:center;width:100%;padding:16px;background:var(--color-accent);color:#fff;font-family:var(--font-body);font-size:1rem;font-weight:600;border-radius:14px;cursor:pointer;transition:background .15s ease,opacity .15s ease;-webkit-tap-highlight-color:transparent;box-sizing:border-box}.recipe-selection-overlay__confirm:hover:not(:disabled){background:var(--color-accent-hover)}.recipe-selection-overlay__confirm:active:not(:disabled){transform:scale(.98)}.recipe-selection-overlay__confirm:disabled{opacity:.5;cursor:not-allowed}@media(min-width:600px){.recipe-selection-overlay__grid{grid-template-columns:repeat(3,1fr);gap:20px;padding:16px 24px;max-width:900px;margin:0 auto}.recipe-selection-overlay__footer{max-width:600px;left:50%;transform:translate(-50%)}}.shopping-lists-view{min-height:100vh;min-height:100dvh;background:var(--color-background);padding-bottom:calc(80px + env(safe-area-inset-bottom))}@media(min-width:600px){.shopping-lists-view{padding-bottom:calc(40px + env(safe-area-inset-bottom))}}.shopping-lists-view__header{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:12px;padding:calc(16px + env(safe-area-inset-top)) 20px 16px;background:linear-gradient(to bottom,var(--color-background) 0%,var(--color-background) 70%,transparent 100%)}.shopping-lists-view__back{all:unset;display:flex;align-items:center;justify-content:center;width:40px;height:40px;margin:-8px;padding:8px;color:var(--color-text);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:12px;transition:background .15s ease}.shopping-lists-view__back:hover{background:#0000000f}.shopping-lists-view__back:active{background:#0000001a}.shopping-lists-view__title-group{flex:1}.shopping-lists-view__title{font-family:var(--font-display);font-size:1.75rem;font-weight:500;color:var(--color-text);margin:0;line-height:1.2}.shopping-lists-view__count{font-family:var(--font-body);font-size:.875rem;color:var(--color-text-muted);display:block;margin-top:2px}.shopping-lists-view__select-btn{all:unset;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;cursor:pointer;color:var(--color-text-muted);transition:background .15s ease,color .15s ease;-webkit-tap-highlight-color:transparent}.shopping-lists-view__select-btn:hover{background:#0000000f;color:var(--color-text)}.shopping-lists-view__select-btn:active{background:#0000001a}.shopping-lists-view__header--selection{justify-content:space-between}.shopping-lists-view__cancel-btn{all:unset;font-family:var(--font-body);font-size:1rem;color:var(--color-accent);cursor:pointer;padding:8px 4px;-webkit-tap-highlight-color:transparent}.shopping-lists-view__cancel-btn:hover{text-decoration:underline}.shopping-lists-view__selection-count{font-family:var(--font-display);font-size:1.25rem;font-weight:500;color:var(--color-text);flex:1;text-align:center}.shopping-lists-view__loading{display:flex;align-items:center;justify-content:center;padding:80px 20px}.shopping-lists-view__spinner{width:32px;height:32px;border:3px solid var(--color-sage-light);border-top-color:var(--color-sage);border-radius:50%;animation:spinner-rotate .8s linear infinite}.shopping-lists-view__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center}.shopping-lists-view__empty svg{color:var(--color-sage);margin-bottom:24px;opacity:.6}.shopping-lists-view__empty h2{font-family:var(--font-display);font-size:1.5rem;font-weight:500;color:var(--color-text);margin:0 0 8px}.shopping-lists-view__empty p{font-family:var(--font-body);font-size:1rem;color:var(--color-text-muted);margin:0;max-width:280px}.shopping-lists-view__list{display:flex;flex-direction:column;gap:12px;padding:8px 16px;max-width:600px;margin:0 auto}.shopping-lists-view__list>div{animation:list-item-enter .5s cubic-bezier(.22,1,.36,1) backwards}@keyframes list-item-enter{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media(min-width:600px){.shopping-lists-view__list{padding:8px 24px}.shopping-lists-view__header{padding-left:24px;padding-right:24px;max-width:600px;margin:0 auto}}.shopping-lists-view__action-bar{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:16px 20px calc(16px + env(safe-area-inset-bottom));background:var(--color-card-bg);box-shadow:0 -4px 20px #0000001a;animation:action-bar-enter .3s cubic-bezier(.22,1,.36,1);z-index:100}@keyframes action-bar-enter{0%{transform:translateY(100%)}to{transform:translateY(0)}}.shopping-lists-view__action-bar-count{font-family:var(--font-body);font-size:.9375rem;color:var(--color-text-muted)}.shopping-lists-view__delete-btn{all:unset;font-family:var(--font-body);font-size:1rem;font-weight:500;color:#fff;background:var(--color-accent);padding:12px 24px;border-radius:12px;cursor:pointer;transition:background .15s ease,opacity .15s ease;-webkit-tap-highlight-color:transparent}.shopping-lists-view__delete-btn:hover:not(:disabled){background:var(--color-accent-hover)}.shopping-lists-view__delete-btn:active:not(:disabled){transform:scale(.98)}.shopping-lists-view__delete-btn:disabled{opacity:.5;cursor:not-allowed}@media(min-width:600px){.shopping-lists-view__action-bar{max-width:600px;left:50%;transform:translate(-50%);border-radius:16px 16px 0 0}@keyframes action-bar-enter{0%{transform:translate(-50%) translateY(100%)}to{transform:translate(-50%) translateY(0)}}}.shopping-lists-view__create-btn{all:unset;position:fixed;bottom:calc(80px + env(safe-area-inset-bottom));right:20px;display:flex;align-items:center;justify-content:center;width:56px;height:56px;background:var(--color-accent);color:#fff;border-radius:50%;cursor:pointer;box-shadow:0 4px 12px #c16c554d,0 8px 32px #c16c5533;transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s ease,background .2s ease;-webkit-tap-highlight-color:transparent;z-index:100;animation:fab-enter .4s cubic-bezier(.34,1.56,.64,1) .3s backwards}@keyframes fab-enter{0%{opacity:0;transform:translateY(20px) scale(.8)}to{opacity:1;transform:translateY(0) scale(1)}}.shopping-lists-view__create-btn:hover{background:var(--color-accent-hover);transform:translateY(-2px) scale(1.05);box-shadow:0 6px 16px #c16c5559,0 12px 40px #c16c5540}.shopping-lists-view__create-btn:active{transform:translateY(0) scale(.95)}@media(min-width:600px){.shopping-lists-view__create-btn{bottom:calc(24px + env(safe-area-inset-bottom))}}.shopping-list-item{display:flex;align-items:center;gap:12px;padding:12px 4px;border-bottom:1px solid rgba(0,0,0,.04)}.shopping-list-item:last-child{border-bottom:none}.shopping-list-item--checked{opacity:.6}.shopping-list-item--checked .shopping-list-item__content{text-decoration:line-through;color:var(--color-text-muted)}.shopping-list-item__checkbox{all:unset;flex-shrink:0;cursor:pointer;-webkit-tap-highlight-color:transparent}.shopping-list-item__checkbox:disabled{opacity:.5;cursor:not-allowed}.shopping-list-item__check-icon{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:8px;border:2px solid var(--color-text-muted);transition:all .15s ease}.shopping-list-item__checkbox:hover .shopping-list-item__check-icon{border-color:var(--color-accent)}.shopping-list-item--checked .shopping-list-item__check-icon{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.shopping-list-item__content{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px}.shopping-list-item__amount{font-family:var(--font-display);font-size:1rem;font-weight:500;color:var(--color-text)}.shopping-list-item__name{font-family:var(--font-body);font-size:1rem;color:var(--color-text)}.shopping-list-item__info-btn{all:unset;flex-shrink:0;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;cursor:pointer;color:var(--color-sage);transition:background .15s ease,color .15s ease;-webkit-tap-highlight-color:transparent}.shopping-list-item__info-btn:hover{background:var(--color-sage-light);color:var(--color-sage-dark)}.shopping-list-item__info-btn:active{background:var(--color-sage);color:#fff}.aisle-section{margin-bottom:8px}.aisle-section--complete{opacity:.6}.aisle-section__header{all:unset;display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px 4px;cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:8px;transition:background .15s ease;box-sizing:border-box}.aisle-section__header:hover{background:#00000008}.aisle-section__header:active{background:#0000000f}.aisle-section__title-group{display:flex;align-items:baseline;gap:8px}.aisle-section__title{font-family:var(--font-display);font-size:1rem;font-weight:500;color:var(--color-sage-dark);margin:0;text-transform:uppercase;letter-spacing:.05em}.aisle-section__count{font-family:var(--font-body);font-size:.75rem;color:var(--color-text-muted)}.aisle-section__chevron{color:var(--color-text-muted);transition:transform .2s ease}.aisle-section__chevron--collapsed{transform:rotate(-90deg)}.aisle-section__items{list-style:none;margin:0;padding:0}.aisle-section__items li{animation:item-enter .3s cubic-bezier(.22,1,.36,1) backwards}@keyframes item-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.gathered-section{margin-top:24px;padding-top:20px;border-top:1px dashed var(--color-sage-light)}.gathered-section__header{all:unset;display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px 4px;cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:8px;transition:background .15s ease;box-sizing:border-box}.gathered-section__header:hover{background:#00000008}.gathered-section__header:active{background:#0000000f}.gathered-section__title-group{display:flex;align-items:center;gap:8px}.gathered-section__icon{color:var(--color-sage)}.gathered-section__title{font-family:var(--font-display);font-size:1rem;font-weight:500;color:var(--color-sage-dark);margin:0;text-transform:uppercase;letter-spacing:.05em}.gathered-section__count{font-family:var(--font-body);font-size:.75rem;color:var(--color-text-muted);background:var(--color-sage-light);padding:2px 8px;border-radius:10px}.gathered-section__chevron{color:var(--color-text-muted);transition:transform .2s ease}.gathered-section__chevron--collapsed{transform:rotate(-90deg)}.gathered-section__items{list-style:none;margin:0;padding:0}.gathered-section__item{animation:gathered-item-enter .3s cubic-bezier(.22,1,.36,1) backwards}@keyframes gathered-item-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.source-breakdown__overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-end;justify-content:center;background:#0006;animation:overlay-enter .2s ease;padding:env(safe-area-inset-bottom)}@keyframes overlay-enter{0%{opacity:0}to{opacity:1}}.source-breakdown{width:100%;max-width:500px;max-height:80vh;background:var(--color-card-bg);border-radius:20px 20px 0 0;overflow:hidden;animation:sheet-enter .3s cubic-bezier(.22,1,.36,1)}@keyframes sheet-enter{0%{transform:translateY(100%)}to{transform:translateY(0)}}.source-breakdown__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 20px 16px;border-bottom:1px solid rgba(0,0,0,.06)}.source-breakdown__title{font-family:var(--font-display);font-size:1.25rem;font-weight:500;color:var(--color-text);margin:0;line-height:1.3}.source-breakdown__amount{color:var(--color-accent)}.source-breakdown__close{all:unset;flex-shrink:0;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;cursor:pointer;color:var(--color-text-muted);transition:background .15s ease;-webkit-tap-highlight-color:transparent}.source-breakdown__close:hover{background:#0000000f}.source-breakdown__close:active{background:#0000001a}.source-breakdown__content{padding:20px;padding-bottom:calc(20px + env(safe-area-inset-bottom))}.source-breakdown__label{font-family:var(--font-body);font-size:.8125rem;color:var(--color-text-muted);margin:0 0 12px;text-transform:uppercase;letter-spacing:.05em}.source-breakdown__list{list-style:none;margin:0;padding:0}.source-breakdown__source{display:flex;align-items:baseline;gap:8px;padding:10px 0;border-bottom:1px solid rgba(0,0,0,.04)}.source-breakdown__source:last-child{border-bottom:none;padding-bottom:0}.source-breakdown__source-amount{font-family:var(--font-display);font-size:1rem;font-weight:500;color:var(--color-text)}.source-breakdown__source-recipe{font-family:var(--font-body);font-size:.9375rem;color:var(--color-text-muted)}@media(min-width:600px){.source-breakdown__overlay{align-items:center}.source-breakdown{border-radius:20px;margin:20px}@keyframes sheet-enter{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}}.add-item-button{all:unset;position:fixed;bottom:calc(24px + env(safe-area-inset-bottom));right:20px;display:flex;align-items:center;justify-content:center;width:56px;height:56px;background:var(--color-accent);color:#fff;border-radius:50%;cursor:pointer;box-shadow:0 4px 12px #c16c554d,0 8px 32px #c16c5533;transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s ease,background .2s ease;-webkit-tap-highlight-color:transparent;z-index:100;animation:add-item-fab-enter .4s cubic-bezier(.34,1.56,.64,1) .3s backwards}@keyframes add-item-fab-enter{0%{opacity:0;transform:translateY(20px) scale(.8)}to{opacity:1;transform:translateY(0) scale(1)}}.add-item-button:hover{background:var(--color-accent-hover);transform:translateY(-2px) scale(1.05);box-shadow:0 6px 16px #c16c5559,0 12px 40px #c16c5540}.add-item-button:active{transform:translateY(0) scale(.95)}@media(min-width:600px){.add-item-button{display:none}}.add-item-modal__overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-end;justify-content:center;background:#0006;animation:add-item-overlay-enter .2s ease;padding:env(safe-area-inset-bottom)}@keyframes add-item-overlay-enter{0%{opacity:0}to{opacity:1}}.add-item-modal{width:100%;max-width:500px;background:var(--color-card-bg);border-radius:20px 20px 0 0;overflow:hidden;animation:add-item-sheet-enter .3s cubic-bezier(.22,1,.36,1)}@keyframes add-item-sheet-enter{0%{transform:translateY(100%)}to{transform:translateY(0)}}.add-item-modal__header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 20px 16px;border-bottom:1px solid rgba(0,0,0,.06)}.add-item-modal__title{font-family:var(--font-display);font-size:1.25rem;font-weight:500;color:var(--color-text);margin:0}.add-item-modal__close{all:unset;flex-shrink:0;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;cursor:pointer;color:var(--color-text-muted);transition:background .15s ease;-webkit-tap-highlight-color:transparent}.add-item-modal__close:hover{background:#0000000f}.add-item-modal__close:active{background:#0000001a}.add-item-modal__form{padding:20px;padding-bottom:calc(20px + env(safe-area-inset-bottom))}.add-item-modal__input{all:unset;width:100%;box-sizing:border-box;font-family:var(--font-body);font-size:1rem;color:var(--color-text);background:var(--color-background);padding:14px 16px;border-radius:12px;border:1px solid rgba(0,0,0,.08);transition:border-color .15s ease,box-shadow .15s ease}.add-item-modal__input::placeholder{color:var(--color-text-muted)}.add-item-modal__input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px #c16c5526}.add-item-modal__input:disabled{opacity:.6}.add-item-modal__actions{display:flex;gap:12px;margin-top:16px}.add-item-modal__btn{all:unset;flex:1;font-family:var(--font-body);font-size:1rem;font-weight:500;text-align:center;padding:14px 20px;border-radius:12px;cursor:pointer;transition:background .15s ease,transform .15s ease;-webkit-tap-highlight-color:transparent}.add-item-modal__btn:disabled{opacity:.5;cursor:not-allowed}.add-item-modal__btn--cancel{color:var(--color-text-muted);background:#0000000a}.add-item-modal__btn--cancel:hover:not(:disabled){background:#00000014}.add-item-modal__btn--cancel:active:not(:disabled){transform:scale(.98)}.add-item-modal__btn--add{color:#fff;background:var(--color-accent)}.add-item-modal__btn--add:hover:not(:disabled){background:var(--color-accent-hover)}.add-item-modal__btn--add:active:not(:disabled){transform:scale(.98)}@media(min-width:600px){.add-item-modal__overlay{align-items:center}.add-item-modal{border-radius:20px;margin:20px}@keyframes add-item-sheet-enter{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}}.shopping-list-view{min-height:100vh;min-height:100dvh;background:var(--color-background);padding-bottom:calc(100px + env(safe-area-inset-bottom))}.shopping-list-view__header{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:12px;padding:calc(16px + env(safe-area-inset-top)) 20px 12px;background:var(--color-background)}.shopping-list-view__back{all:unset;display:flex;align-items:center;justify-content:center;width:40px;height:40px;margin:-8px;padding:8px;color:var(--color-text);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:12px;transition:background .15s ease}.shopping-list-view__back:hover{background:#0000000f}.shopping-list-view__back:active{background:#0000001a}.shopping-list-view__title-group{flex:1;min-width:0}.shopping-list-view__title{font-family:var(--font-display);font-size:1.5rem;font-weight:500;color:var(--color-text);margin:0;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shopping-list-view__progress{font-family:var(--font-body);font-size:.875rem;color:var(--color-text-muted);display:block;margin-top:2px}.shopping-list-view__add-btn,.shopping-list-view__delete-btn{all:unset;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;cursor:pointer;color:var(--color-text-muted);transition:background .15s ease,color .15s ease;-webkit-tap-highlight-color:transparent}.shopping-list-view__add-btn:hover,.shopping-list-view__delete-btn:hover{background:#0000000f;color:var(--color-accent)}.shopping-list-view__add-btn:active,.shopping-list-view__delete-btn:active{background:#0000001a}.shopping-list-view__add-btn{display:none}.shopping-list-view__progress-bar{height:4px;background:var(--color-sage-light);margin:0 20px 16px;border-radius:2px;overflow:hidden}.shopping-list-view__progress-fill{height:100%;background:var(--color-sage);border-radius:2px;transition:width .3s ease}.shopping-list-view__loading{display:flex;align-items:center;justify-content:center;padding:80px 20px}.shopping-list-view__spinner{width:32px;height:32px;border:3px solid var(--color-sage-light);border-top-color:var(--color-sage);border-radius:50%;animation:spinner-rotate .8s linear infinite}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.shopping-list-view__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center;color:var(--color-text-muted)}.shopping-list-view__empty svg{color:var(--color-sage);margin-bottom:16px;opacity:.6}.shopping-list-view__empty p{font-family:var(--font-body);font-size:1rem;margin:0}.shopping-list-view__empty-hint{font-size:.875rem;margin-top:8px}.shopping-list-view__content{padding:0 16px}@media(min-width:600px){.shopping-list-view__content{max-width:600px;margin:0 auto;padding:0 24px}.shopping-list-view__header{max-width:600px;margin:0 auto;padding-left:24px;padding-right:24px}.shopping-list-view__progress-bar{max-width:552px;margin-left:auto;margin-right:auto}.shopping-list-view__add-btn{display:flex}}.profile-view{min-height:100vh;min-height:100dvh;background:var(--color-background);padding-bottom:calc(80px + env(safe-area-inset-bottom))}.profile-view__header{position:sticky;top:0;z-index:40;padding:calc(16px + env(safe-area-inset-top)) 20px 16px;background:var(--color-background)}.profile-view__title{font-family:var(--font-display);font-size:1.75rem;font-weight:500;color:var(--color-text);margin:0}.profile-view__content{padding:8px 20px;max-width:600px;margin:0 auto}.profile-view__user-card{display:flex;align-items:center;gap:16px;padding:20px;background:var(--color-card-bg);border-radius:16px;margin-bottom:24px;box-shadow:0 2px 8px #0000000a}.profile-view__avatar{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--color-sage-light) 0%,var(--color-sage) 100%);color:var(--color-sage-dark);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:1.5rem;font-weight:500;flex-shrink:0}.profile-view__email{font-family:var(--font-body);font-size:1rem;color:var(--color-text);word-break:break-word}.profile-view__menu{margin-bottom:24px}.profile-view__menu-item{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:12px;width:100%;padding:20px;background:var(--color-card-bg);border-radius:16px;font-family:var(--font-body);font-size:1rem;color:var(--color-text);cursor:pointer;transition:background .15s ease;-webkit-tap-highlight-color:transparent;box-shadow:0 2px 8px #0000000a}.profile-view__menu-item:hover{background:#00000005}.profile-view__menu-item:active{background:#0000000a}.profile-view__menu-item svg:first-child{color:var(--color-text-muted);flex-shrink:0}.profile-view__menu-item span{flex:1}.profile-view__menu-arrow{color:var(--color-text-muted);flex-shrink:0}.profile-view__sign-out{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:12px;width:100%;padding:20px;border-radius:16px;background:var(--color-card-bg);box-shadow:0 2px 8px #0000000a;font-family:var(--font-body);font-size:1rem;color:var(--color-text);cursor:pointer;transition:background .15s ease;-webkit-tap-highlight-color:transparent}.profile-view__sign-out svg{color:var(--color-text-muted);flex-shrink:0}.profile-view__sign-out:hover{background:#00000005}.profile-view__sign-out:active{background:#0000000a}@media(min-width:600px){.profile-view{padding-bottom:40px;display:flex;flex-direction:column}.profile-view__header{padding:calc(24px + env(safe-area-inset-top)) 24px 24px;max-width:600px;margin:0 auto;width:100%;box-sizing:border-box}.profile-view__title{font-size:2rem}.profile-view__content{padding:24px;max-width:480px}.profile-view__user-card{flex-direction:column;text-align:center;padding:32px;gap:16px}.profile-view__avatar{width:80px;height:80px;font-size:2rem}.profile-view__email{font-size:1.125rem}.profile-view__menu-item,.profile-view__sign-out{justify-content:center;padding:16px 24px}.profile-view__menu-item span{flex:none}.profile-view__menu-arrow{display:none}}@media(min-width:900px){.profile-view__header{padding-top:calc(40px + env(safe-area-inset-top))}.profile-view__content{padding-top:32px}.profile-view__user-card{padding:40px;gap:20px}.profile-view__avatar{width:96px;height:96px;font-size:2.5rem}}#root{min-height:100vh;min-height:100dvh}.auth-loading{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;background:var(--color-background)}.auth-loading__spinner{width:32px;height:32px;border:3px solid var(--color-sage-light);border-top-color:var(--color-accent);border-radius:50%;animation:auth-spin .8s linear infinite}@keyframes auth-spin{to{transform:rotate(360deg)}}
