@import"https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400;1,600&family=Lora:ital,wght@0,400;0,500;1,400&family=Caveat:wght@400;600&display=swap";*{box-sizing:border-box;margin:0;padding:0}body{font-family:Lora,Georgia,serif;background:#faf7f0;color:#2c2419}:root{--cream: #FAF7F0;--cream2: #F2EDE3;--paper: #FFFDF8;--terracotta: #C4603C;--terracotta-light: #E8896A;--terracotta-pale: #F5E8E2;--sage: #4A6741;--sage-light: #7A9770;--sage-pale: #E8EFE6;--dark: #2C2419;--brown: #6B4C3B;--gold: #C9993A;--gold-pale: #FBF3E0;--border: #E2D9CC;--text: #2C2419;--sage-dark: #3A5731}@keyframes cardFadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}@keyframes checkBounce{0%{transform:scale(0)}50%{transform:scale(1.3)}70%{transform:scale(.9)}to{transform:scale(1)}}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}@keyframes tabFadeIn{0%{opacity:0}to{opacity:1}}@keyframes toastSlideIn{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@keyframes toastSlideOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-100%)}}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}@keyframes gentleFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.app{min-height:100vh;background:var(--cream);padding-bottom:0;background-image:radial-gradient(circle at 25% 25%,rgba(107,76,59,.015) 1px,transparent 1px),radial-gradient(circle at 75% 75%,rgba(107,76,59,.01) 1px,transparent 1px);background-size:20px 20px}.nav{background:linear-gradient(135deg,var(--dark) 0%,#362A1E 50%,#3D2E20 100%);padding:0 2rem;display:flex;align-items:center;justify-content:space-between;height:64px;position:sticky;top:0;z-index:100;box-shadow:0 2px 12px #2c241926}.nav-brand{font-family:Playfair Display,serif;font-size:1.5rem;color:var(--cream);font-style:italic;letter-spacing:-.02em}.nav-brand span{color:var(--terracotta-light)}.nav-tabs{display:flex;gap:.25rem}.nav-tab{background:none;border:none;color:#9a8c80;font-family:Lora,serif;font-size:.85rem;padding:.5rem 1rem;cursor:pointer;border-radius:4px;transition:all .2s;letter-spacing:.02em;position:relative}.nav-tab:hover{color:var(--cream);background:#ffffff14}.nav-tab.active{color:var(--terracotta-light);font-weight:600}.nav-tab.active:after{content:"";position:absolute;bottom:-2px;left:50%;transform:translate(-50%);width:20px;height:2px;background:var(--terracotta-light);border-radius:1px}.nav-user{display:flex;align-items:center;gap:.75rem}.avatar{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:Caveat,cursive;font-size:.9rem;font-weight:600;cursor:pointer;transition:transform .2s;border:2px solid transparent}.avatar:hover{transform:scale(1.1)}.avatar.active{border-color:var(--terracotta-light)}.bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;background:linear-gradient(135deg,var(--dark) 0%,#362A1E 100%);z-index:100;padding:.4rem 0 calc(.4rem + env(safe-area-inset-bottom,0px));border-top:1px solid rgba(255,255,255,.08);box-shadow:0 -2px 12px #2c241926}.bottom-nav-inner{display:flex;justify-content:space-around;align-items:center;max-width:500px;margin:0 auto}.bottom-nav-btn{background:none;border:none;color:#9a8c80;font-family:Lora,serif;font-size:.6rem;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:.2rem;padding:.5rem 1rem;min-width:56px;min-height:44px;border-radius:6px;transition:all .15s;letter-spacing:.02em;position:relative}.bottom-nav-btn .nav-icon{font-size:1.3rem;line-height:1}.bottom-nav-btn.active{color:var(--terracotta-light)}.bottom-nav-btn.active:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:20px;height:2px;background:var(--terracotta-light);border-radius:0 0 2px 2px}.bottom-nav-btn:active{transform:scale(.92)}.page-header{background:linear-gradient(135deg,var(--dark) 0%,#362A1E 40%,#3D2E20 100%);padding:3rem 2rem 2.5rem;position:relative;overflow:hidden}.page-header:before{content:"";position:absolute;top:-50%;right:-10%;width:400px;height:400px;background:radial-gradient(circle,rgba(196,96,60,.15) 0%,transparent 70%);pointer-events:none}.page-header:after{content:"";position:absolute;bottom:-30%;left:-5%;width:300px;height:300px;background:radial-gradient(circle,rgba(201,153,58,.08) 0%,transparent 70%);pointer-events:none}.page-header-inner{max-width:1100px;margin:0 auto}.page-title{font-family:Playfair Display,serif;font-size:2.4rem;color:var(--cream);font-weight:400;line-height:1.2;margin-bottom:.5rem}.page-title em{color:var(--terracotta-light);font-style:italic}.page-subtitle{color:#8a7b70;font-size:.9rem;font-family:Lora,serif;font-style:italic}.main{max-width:1100px;margin:0 auto;padding:2rem}.tab-content{animation:tabFadeIn .15s ease-out}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1.2rem;border-radius:6px;border:none;font-family:Lora,serif;font-size:.85rem;cursor:pointer;transition:all .2s;font-weight:500}.btn:active{transform:scale(.96);transition:transform .1s ease}.btn-primary{background:var(--terracotta);color:#fff}.btn-primary:hover{background:#b3522e;transform:translateY(-1px)}.btn-primary:active{background:#a04828;transform:scale(.96)}.btn-secondary{background:var(--paper);color:var(--dark);border:1.5px solid var(--border)}.btn-secondary:hover{background:var(--cream2);border-color:#c8b9a8}.btn-secondary:active{background:#eae3d8;transform:scale(.96)}.btn-ghost{background:none;color:var(--brown);border:none;padding:.4rem .8rem}.btn-ghost:hover{background:var(--cream2)}.btn-ghost:active{background:#e4ddd2;transform:scale(.96)}.btn-danger{background:#dc2626;color:#fff}.btn-danger:hover{background:#b91c1c}.btn-danger:active{background:#991b1b;transform:scale(.96)}.btn-sm{padding:.35rem .75rem;font-size:.78rem}.toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.75rem;flex-wrap:wrap;gap:1rem}.toolbar-left{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.search-box{display:flex;align-items:center;background:var(--paper);border:1.5px solid var(--border);border-radius:8px;padding:.5rem 1rem;gap:.5rem;min-width:220px;transition:border-color .2s,box-shadow .2s}.search-box:focus-within{border-color:var(--terracotta);box-shadow:0 0 0 3px #c4603c14}.search-box input{border:none;background:none;font-family:Lora,serif;font-size:.85rem;color:var(--dark);outline:none;width:100%}.search-box input::placeholder{color:#b0a090}.filter-chip{background:var(--paper);border:1.5px solid var(--border);color:var(--brown);font-family:Lora,serif;font-size:.8rem;padding:.4rem .9rem;border-radius:20px;cursor:pointer;transition:all .2s}.filter-chip:hover,.filter-chip.active{background:var(--terracotta-pale);border-color:var(--terracotta);color:var(--terracotta)}.filter-chip:active{transform:scale(.95)}.filter-scroll{display:flex;gap:.5rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.filter-scroll::-webkit-scrollbar{display:none}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.recipe-card{background:var(--paper);border-radius:12px;overflow:hidden;border:1px solid var(--border);cursor:pointer;transition:all .25s ease;position:relative;box-shadow:0 1px 2px #2c24190a,0 2px 8px #2c24190f;opacity:0;animation:cardFadeIn .4s ease-out forwards}.recipe-card:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 4px 8px #2c24190f,0 12px 32px #2c24191f;border-color:#c8b9a8}.recipe-card:active{transform:translateY(-2px) scale(1.01);transition:transform .1s ease}.recipe-img-placeholder{width:100%;height:180px;display:flex;align-items:center;justify-content:center;font-size:2.5rem}.recipe-body{padding:1rem 1.2rem 1.2rem}.recipe-name{font-family:Playfair Display,serif;font-size:1.15rem;font-weight:600;line-height:1.3;color:var(--dark);margin-bottom:.4rem}.recipe-meta{display:flex;align-items:center;justify-content:space-between;margin-top:.75rem}.recipe-tag-badge{position:absolute;top:10px;right:10px;background:#fffdf8f0;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:20px;padding:.2rem .7rem;font-size:.68rem;font-family:Lora,serif;color:var(--brown);border:1px solid rgba(226,217,204,.6);letter-spacing:.02em;box-shadow:0 1px 4px #2c24190f}.recipe-cooked-badge{display:inline-flex;align-items:center;gap:.3rem;background:var(--sage-pale);color:var(--sage);font-size:.7rem;padding:.18rem .55rem;border-radius:10px;letter-spacing:.01em}.skeleton{background:linear-gradient(90deg,var(--cream2) 0%,#F7F2EA 40%,var(--cream2) 80%);background-size:800px 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:8px}.skeleton-card{background:var(--paper);border-radius:12px;overflow:hidden;border:1px solid var(--border);box-shadow:0 1px 2px #2c24190a,0 2px 8px #2c24190f;opacity:0;animation:cardFadeIn .4s ease-out forwards}.skeleton-card-img{width:100%;height:180px;background:linear-gradient(90deg,var(--cream2) 0%,#F7F2EA 40%,var(--cream2) 80%);background-size:800px 100%;animation:shimmer 1.5s ease-in-out infinite}.skeleton-card-body{padding:1rem 1.2rem 1.2rem}.skeleton-line{height:14px;border-radius:6px;background:linear-gradient(90deg,var(--cream2) 0%,#F7F2EA 40%,var(--cream2) 80%);background-size:800px 100%;animation:shimmer 1.5s ease-in-out infinite;margin-bottom:.5rem}.skeleton-line.w-75{width:75%}.skeleton-line.w-50{width:50%}.skeleton-line.w-60{width:60%}.skeleton-line.w-40{width:40%}.skeleton-line.h-sm{height:10px}.skeleton-detail{max-width:780px}.skeleton-detail-header{display:flex;gap:2rem;margin-bottom:2rem}.skeleton-detail-img{width:240px;height:200px;border-radius:12px;flex-shrink:0;background:linear-gradient(90deg,var(--cream2) 0%,#F7F2EA 40%,var(--cream2) 80%);background-size:800px 100%;animation:shimmer 1.5s ease-in-out infinite}.skeleton-detail-info{flex:1;display:flex;flex-direction:column;gap:.75rem;padding-top:.5rem}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;text-align:center}.empty-state-icon{font-size:3.5rem;margin-bottom:1rem;animation:gentleFloat 3s ease-in-out infinite;line-height:1}.empty-state-title{font-family:Playfair Display,serif;font-size:1.3rem;color:var(--dark);margin-bottom:.5rem;font-weight:500}.empty-state-text{font-size:.88rem;color:#9a8c80;font-style:italic;max-width:320px;line-height:1.5}.empty-state-action{margin-top:1.25rem}.empty-reviews{text-align:center;padding:1.5rem 1rem;color:#a09080;font-style:italic;font-size:.88rem}.empty-reviews-icon{font-size:2rem;margin-bottom:.5rem;display:block;opacity:.5}.loading-spinner{display:flex;align-items:center;justify-content:center;padding:3rem;color:#a09080;font-style:italic;font-size:.9rem}.ai-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2.5rem 1.5rem;text-align:center;gap:1rem}.ai-spinner-icon{width:40px;height:40px;border:3px solid var(--cream2);border-top-color:var(--terracotta);border-radius:50%;animation:spin .8s linear infinite}.ai-spinner-text{font-family:Lora,serif;font-size:.9rem;color:var(--brown);font-style:italic}.ai-spinner-sub{font-size:.75rem;color:#b0a090;animation:pulse 1.5s ease-in-out infinite}.toast-container{position:fixed;top:0;left:50%;transform:translate(-50%);z-index:500;display:flex;flex-direction:column;align-items:center;gap:.5rem;padding-top:1rem;pointer-events:none}.toast{background:var(--dark);color:var(--cream);font-family:Lora,serif;font-size:.85rem;padding:.7rem 1.25rem;border-radius:10px;box-shadow:0 8px 24px #2c241933;animation:toastSlideIn .3s ease-out forwards;pointer-events:auto;display:flex;align-items:center;gap:.5rem}.toast.toast-exit{animation:toastSlideOut .25s ease-in forwards}.toast-success{border-left:3px solid var(--sage)}.toast-error{border-left:3px solid #DC2626}.toast-info{border-left:3px solid var(--gold)}.overlay{position:fixed;inset:0;background:#2c241999;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:200;display:flex;align-items:center;justify-content:center;padding:1rem;animation:overlayFadeIn .2s ease-out}.modal{background:var(--paper);border-radius:16px;width:100%;max-width:580px;max-height:90vh;overflow-y:auto;box-shadow:0 24px 64px #2c241940;animation:modalSlideUp .25s ease-out}.modal-header{padding:1.5rem 1.75rem 1rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.modal-title{font-family:Playfair Display,serif;font-size:1.4rem;font-style:italic;color:var(--dark)}.modal-close{background:none;border:none;color:#9a8c80;cursor:pointer;font-size:1.2rem;padding:.25rem;border-radius:4px;transition:all .15s;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.modal-close:hover{background:var(--cream2);color:var(--dark)}.modal-close:active{transform:scale(.9)}.modal-body{padding:1.5rem 1.75rem}.add-tabs{display:flex;gap:0;background:var(--cream2);border-radius:8px;padding:4px;margin-bottom:1.5rem}.add-tab{flex:1;background:none;border:none;padding:.6rem;font-family:Lora,serif;font-size:.85rem;cursor:pointer;border-radius:6px;color:#8a7b70;transition:all .2s}.add-tab.active{background:var(--paper);color:var(--dark);font-weight:500;box-shadow:0 1px 4px #2c24191a}.photo-drop{border:2px dashed var(--border);border-radius:10px;padding:2.5rem;text-align:center;cursor:pointer;transition:all .2s;background:var(--cream)}.photo-drop:hover{border-color:var(--terracotta);background:var(--terracotta-pale)}.photo-drop:active{transform:scale(.98)}.photo-drop-icon{font-size:2.5rem;margin-bottom:.75rem}.photo-drop-title{font-family:Playfair Display,serif;font-size:1rem;color:var(--dark);margin-bottom:.3rem}.photo-drop-sub{font-size:.8rem;color:#9a8c80;font-style:italic}.form-group{margin-bottom:1.25rem}.form-label{display:block;font-size:.8rem;font-family:Lora,serif;color:var(--brown);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.4rem;font-weight:500}.form-input{width:100%;background:var(--cream);border:1.5px solid var(--border);border-radius:8px;padding:.65rem 1rem;font-family:Lora,serif;font-size:.9rem;color:var(--dark);outline:none;transition:border-color .2s,box-shadow .2s}.form-input:focus{border-color:var(--terracotta);box-shadow:0 0 0 3px #c4603c14}.form-input::placeholder{color:#b0a090;font-style:italic}.url-import-box{display:flex;gap:.5rem;align-items:flex-start}.url-import-box .form-input{flex:1}.ocr-preview{background:var(--cream2);border-radius:8px;padding:1rem;margin-top:1rem;font-size:.82rem;color:var(--brown);font-style:italic;display:flex;align-items:center;gap:.75rem}.recipe-detail{max-width:780px;animation:tabFadeIn .2s ease-out}.back-link{display:inline-flex;align-items:center;gap:.4rem;color:var(--terracotta);font-size:.85rem;cursor:pointer;font-family:Lora,serif;margin-bottom:1.5rem;transition:gap .2s;border:none;background:none;padding:0;min-height:44px}.back-link:hover{gap:.7rem}.detail-header{display:flex;gap:2rem;margin-bottom:2rem;align-items:flex-start}.detail-img{width:240px;height:200px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:3rem;flex-shrink:0;background:var(--cream2);box-shadow:0 2px 8px #2c24190f,0 4px 16px #2c24190a}.detail-info{flex:1}.detail-title{font-family:Playfair Display,serif;font-size:2rem;font-weight:600;color:var(--dark);line-height:1.2;margin-bottom:.5rem}.detail-stars-row{display:flex;align-items:center;gap:.75rem;margin:.75rem 0;flex-wrap:wrap}.detail-meta-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin:1rem 0}.meta-item{background:var(--cream2);border-radius:8px;padding:.6rem .75rem;text-align:center}.meta-label{font-size:.68rem;color:#9a8c80;text-transform:uppercase;letter-spacing:.06em}.meta-value{font-family:Playfair Display,serif;font-size:1rem;color:var(--dark);margin-top:.1rem}.detail-sections{display:grid;grid-template-columns:240px 1fr;gap:2rem}.detail-section-title{font-family:Playfair Display,serif;font-size:1.1rem;color:var(--dark);margin-bottom:.75rem;padding-bottom:.4rem;border-bottom:2px solid var(--terracotta-pale)}.ingredient-list{list-style:none}.ingredient-item{display:flex;align-items:flex-start;gap:.5rem;padding:.4rem 0;border-bottom:1px solid var(--cream2);font-size:.88rem;line-height:1.4}.ingredient-dot{width:6px;height:6px;background:var(--terracotta);border-radius:50%;margin-top:.45rem;flex-shrink:0}.step-list{list-style:none;counter-reset:steps}.step-item{display:flex;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--cream2);font-size:.88rem;line-height:1.6;color:#3d2e22}.step-num{font-family:Playfair Display,serif;font-size:1.1rem;color:var(--terracotta);font-weight:600;flex-shrink:0;width:24px;text-align:right;margin-top:.05rem}.notes-section{background:var(--gold-pale);border-left:3px solid var(--gold);border-radius:0 8px 8px 0;padding:1rem 1.25rem;margin-top:1rem}.notes-title{font-family:Caveat,cursive;font-size:1.1rem;color:var(--gold);margin-bottom:.4rem}.notes-text{font-size:.85rem;color:var(--brown);font-style:italic;line-height:1.6}.review-item{background:var(--cream2);border-radius:10px;padding:.9rem 1rem;margin-bottom:.75rem}.review-header{display:flex;align-items:center;gap:.6rem;margin-bottom:.4rem}.review-avatar{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:Caveat,cursive;font-size:.85rem;font-weight:600}.review-name{font-size:.82rem;font-weight:500;color:var(--dark)}.review-text{font-size:.83rem;color:var(--brown);font-style:italic;line-height:1.5}.week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.75rem;margin-bottom:2rem}.day-label{font-family:Playfair Display,serif;font-size:.85rem;color:var(--brown);text-align:center;margin-bottom:.5rem;font-style:italic}.day-slot{background:var(--paper);border:1.5px dashed var(--border);border-radius:10px;padding:.75rem .5rem;min-height:100px;cursor:pointer;transition:all .2s;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative}.day-slot:hover{border-color:var(--terracotta);background:var(--terracotta-pale)}.day-slot:active{transform:scale(.97)}.day-slot.filled{border-style:solid;border-color:var(--border);cursor:default}.day-slot.filled:hover{background:var(--paper);border-color:#c8b9a8}.day-slot.filled:active{transform:none}.day-slot.today{border-color:var(--sage);background:var(--sage-pale)}.slot-emoji{font-size:1.5rem;margin-bottom:.3rem}.slot-name{font-family:Playfair Display,serif;font-size:.78rem;color:var(--dark);font-weight:600;line-height:1.2}.slot-empty{font-size:1.4rem;color:#d0c4b0;margin-bottom:.2rem;transition:color .2s,transform .2s}.day-slot:hover .slot-empty{color:var(--terracotta);transform:scale(1.15)}.slot-add-text{font-size:.68rem;color:#c0b0a0;font-style:italic;transition:color .2s}.day-slot:hover .slot-add-text{color:var(--terracotta)}.slot-remove{position:absolute;top:4px;right:4px;background:none;border:none;color:#c0b0a0;cursor:pointer;font-size:.85rem;line-height:1;padding:2px;border-radius:3px;opacity:0;transition:opacity .15s;min-width:28px;min-height:28px;display:flex;align-items:center;justify-content:center}.day-slot:hover .slot-remove{opacity:1}.slot-remove:hover{color:var(--terracotta);background:var(--cream2)}.slot-serves{font-size:.65rem;color:var(--brown);background:var(--cream2);border-radius:8px;padding:.1rem .35rem;margin-top:.2rem;-webkit-user-select:none;user-select:none}.slot-sides-badge{font-size:.6rem;color:var(--sage);font-weight:600;margin-top:.1rem}.serves-btn{width:28px;height:28px;border:1px solid var(--border);border-radius:50%;background:var(--cream);color:var(--dark);font-size:.85rem;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:all .15s}.serves-btn:hover{background:var(--terracotta-pale);border-color:var(--terracotta)}.serves-btn:active{transform:scale(.9)}.serves-count{font-size:.85rem;font-weight:600;color:var(--dark);min-width:1.2rem;text-align:center}.meal-detail-list{display:flex;flex-direction:column;gap:.5rem}.meal-detail-item{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;background:var(--cream);border-radius:10px;border:1px solid var(--cream2)}.meal-detail-emoji{font-size:1.5rem;flex-shrink:0}.meal-detail-info{flex:1;min-width:0}.meal-detail-name{font-weight:600;color:var(--dark);font-size:.95rem}.meal-detail-meta{font-size:.75rem;color:var(--brown);margin-top:.15rem}.meal-detail-serves{display:flex;align-items:center;gap:.3rem;flex-shrink:0}.meal-detail-remove{background:none;border:none;color:#c0b0a0;cursor:pointer;font-size:.9rem;padding:.2rem;border-radius:4px;flex-shrink:0;transition:color .15s;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.meal-detail-remove:hover{color:#c0392b}.planner-summary{background:var(--cream2);border-radius:10px;padding:1rem 1.25rem;margin-bottom:1.5rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap;box-shadow:0 1px 4px #2c24190a}.summary-label{font-size:.8rem;color:var(--brown);font-style:italic}.summary-tags{display:flex;gap:.5rem;flex-wrap:wrap}.summary-tag{background:var(--paper);border:1px solid var(--border);color:var(--dark);font-size:.75rem;padding:.2rem .6rem;border-radius:10px;font-family:Lora,serif}.shopping-layout{display:none}.shopping-panel{background:var(--paper);border-radius:12px;border:1px solid var(--border);overflow:hidden;box-shadow:0 1px 2px #2c24190a,0 2px 8px #2c24190a}.panel-header{padding:1rem 1.25rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;background:var(--cream2)}.panel-title{font-family:Playfair Display,serif;font-size:1rem;color:var(--dark);font-style:italic}.panel-count{background:var(--terracotta-pale);color:var(--terracotta);font-size:.72rem;padding:.15rem .5rem;border-radius:10px;font-family:Lora,serif}.panel-body{padding:1rem 1.25rem}.shop-section{margin-bottom:1.25rem}.shop-section-title{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:#a09080;margin-bottom:.5rem;font-family:Lora,serif}.shop-item{display:flex;align-items:center;gap:.75rem;padding:.5rem 0;border-bottom:1px solid var(--cream2);min-height:44px}.shop-item:last-child{border-bottom:none}.shop-check{width:22px;height:22px;border:2px solid var(--border);border-radius:5px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s;min-width:44px;min-height:44px;background:transparent;background-clip:content-box;padding:11px;margin:-11px;border-width:0;position:relative}.shop-check:before{content:"";position:absolute;width:22px;height:22px;border:2px solid var(--border);border-radius:5px;transition:all .15s;background:transparent}.shop-check.checked:before{background:var(--sage);border-color:var(--sage)}.shop-check:after{content:"";position:absolute;width:22px;height:22px;display:flex;align-items:center;justify-content:center}.shop-check.checked:after{content:"✓";color:#fff;font-size:.75rem;animation:checkBounce .3s ease-out}.shop-name{flex:1;font-size:.87rem;color:var(--dark);transition:all .25s}.shop-name.checked{text-decoration:line-through;color:#a09080}.shop-who{font-size:.75rem;color:#fff;padding:.1rem .4rem;border-radius:8px;font-family:Lora,serif}.shop-add{display:flex;gap:.5rem;margin-top:.75rem}.shop-add input{flex:1;background:var(--cream);border:1.5px solid var(--border);border-radius:6px;padding:.45rem .75rem;font-family:Lora,serif;font-size:.85rem;color:var(--dark);outline:none;min-height:44px;transition:border-color .2s}.shop-add input:focus{border-color:var(--terracotta)}.user-picker{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.user-pill{display:flex;align-items:center;gap:.4rem;background:var(--paper);border:1.5px solid var(--border);border-radius:20px;padding:.3rem .75rem .3rem .4rem;cursor:pointer;transition:all .2s;font-size:.8rem;font-family:Lora,serif;color:var(--dark);min-height:44px}.user-pill:hover{border-color:#c8b9a8}.user-pill:active{transform:scale(.95)}.user-pill.active{border-color:var(--terracotta);background:var(--terracotta-pale);color:var(--terracotta)}.user-pill-dot{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:Caveat,cursive;font-size:.75rem;font-weight:600;color:#fff}.recipe-picker-modal{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;max-height:360px;overflow-y:auto;padding:.25rem}.recipe-pick-card{background:var(--cream2);border-radius:8px;padding:.75rem;cursor:pointer;transition:all .2s;border:2px solid transparent;display:flex;align-items:center;gap:.6rem;min-height:44px}.recipe-pick-card:hover{background:var(--terracotta-pale);border-color:var(--terracotta)}.recipe-pick-card:active{transform:scale(.97)}.pick-emoji{font-size:1.4rem}.pick-name{font-family:Playfair Display,serif;font-size:.85rem;color:var(--dark);font-weight:600;line-height:1.2}.pick-tag{font-size:.68rem;color:var(--sage);margin-top:.15rem}.shopping-unified{max-width:640px;margin:0 auto}.shopping-progress{background:var(--paper);border:1px solid var(--border);border-radius:12px;padding:1rem 1.25rem;margin-bottom:1rem;box-shadow:0 1px 2px #2c24190a}.shopping-progress-text{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.shopping-progress-count{font-family:Lora,serif;font-size:.82rem;color:var(--dark)}.shopping-progress-done{font-size:.8rem;color:var(--sage);font-weight:500}.shopping-progress-bar{height:6px;background:var(--cream2);border-radius:3px;overflow:hidden}.shopping-progress-fill{height:100%;background:var(--sage);border-radius:3px;transition:width .35s ease;min-width:0}.shopping-add-top{display:flex;gap:.5rem;margin-bottom:.75rem}.shopping-add-input{flex:1;background:var(--paper);border:1.5px solid var(--border);border-radius:10px;padding:.6rem 1rem;font-family:Lora,serif;font-size:.88rem;color:var(--dark);outline:none;min-height:48px;transition:border-color .2s}.shopping-add-input:focus{border-color:var(--terracotta)}.shopping-add-input::placeholder{color:#c0b0a0}.shopping-add-btn{min-height:48px;padding:0 1.25rem;border-radius:10px;white-space:nowrap}.shopping-actions{display:flex;gap:.5rem;margin-bottom:1.25rem;flex-wrap:wrap}.shopping-action-btn{flex:1;min-width:0;justify-content:center;font-size:.78rem;gap:.35rem;min-height:40px;border-radius:8px;white-space:nowrap}.shopping-category{background:var(--paper);border:1px solid var(--border);border-radius:12px;margin-bottom:.75rem;overflow:hidden;box-shadow:0 1px 2px #2c24190a}.shopping-category-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:.65rem 1.25rem;background:var(--cream2);border-bottom:1px solid var(--border)}.shopping-category-label{font-family:Playfair Display,serif;font-size:.9rem;font-weight:600;color:var(--dark)}.shopping-category-count{font-family:Lora,serif;font-size:.7rem;color:#a09080;background:var(--cream);padding:.1rem .5rem;border-radius:10px}.shopping-category .shop-item{padding:.5rem 1.25rem;margin:0}.shopping-category .shop-item:last-child{border-bottom:none}.shop-item-unified{display:flex;align-items:center;gap:.75rem;padding:.5rem 1.25rem;border-bottom:1px solid var(--cream2);min-height:48px}.shop-item-unified:last-child{border-bottom:none}.shop-badge{font-size:.6rem;padding:.12rem .45rem;border-radius:8px;font-family:Lora,serif;white-space:nowrap;letter-spacing:.02em;text-transform:uppercase;flex-shrink:0}.shop-badge-weekly{background:var(--sage-pale);color:var(--sage)}.shop-badge-forget{background:var(--gold-pale);color:var(--gold)}.shop-badge-extra{background:var(--terracotta-pale);color:var(--terracotta)}.shopping-checked-group{opacity:.4;transition:opacity .25s}.shopping-checked-group:hover{opacity:.6}.shopping-item-checked{opacity:1}.shopping-forget-header{background:var(--gold-pale);border-bottom-color:#e8d9b8}.shopping-dismissed-section{opacity:.6;border-style:dashed}.shopping-item-dismissed{padding:.4rem 1.25rem;min-height:40px}.shopping-manage-section{margin-top:1.5rem;border-top:1.5px dashed var(--border);padding-top:.75rem}.shopping-manage-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;cursor:pointer;padding:.75rem 0;font-family:Lora,serif;font-size:.85rem;color:#8a7b70;transition:color .15s}.shopping-manage-toggle:hover{color:var(--dark)}.shopping-manage-chevron{font-size:.55rem;transition:transform .25s ease;display:inline-block}.shopping-manage-chevron.open{transform:rotate(180deg)}.shopping-manage-content{padding:.5rem 0 1rem;display:flex;flex-direction:column;gap:1.5rem}.shopping-manage-group{background:var(--paper);border:1px solid var(--border);border-radius:10px;padding:1rem 1.25rem}.shopping-manage-group-title{font-family:Playfair Display,serif;font-size:.85rem;font-weight:600;color:var(--dark);margin-bottom:.75rem}.shopping-manage-list{display:flex;flex-direction:column}.shopping-manage-item{display:flex;align-items:center;justify-content:space-between;padding:.4rem 0;border-bottom:1px solid var(--cream2);min-height:44px}.shopping-manage-item:last-child{border-bottom:none}.shopping-manage-item-name{font-size:.85rem;color:var(--dark)}.shopping-spare-section{margin-top:1.5rem;border:1.5px solid #D4A574;border-radius:10px;background:linear-gradient(135deg,#fff8f0,#fff3e6)}.shopping-spare-header{border-bottom-color:#d4a574}.shopping-spare-header .shopping-category-label{color:#a0703c}.shopping-spare-hint{font-size:.75rem;color:#a0703c;font-style:italic;padding:0 1.25rem .5rem;margin:0;line-height:1.4}.shopping-item-spare{background:#d4a57414}.shopping-spare-name{color:#8a6a3c!important}.shopping-spare-restore{font-size:.7rem!important;color:#a0703c!important;white-space:nowrap}.shopping-spare-restore:hover{background:#d4a57426!important}.shopping-spare-count{font-size:.75rem;color:#a0703c;font-style:italic}.shopping-sync-toast-container{position:fixed;top:1rem;left:50%;transform:translate(-50%);z-index:1000;pointer-events:none}.shopping-syncing-indicator{font-size:.75rem;color:var(--sage);font-style:italic;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.shopping-header-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem}.shopping-review-btn{font-size:.8rem!important;white-space:nowrap;color:var(--terracotta)!important;border:1px solid var(--terracotta)!important;border-radius:8px!important;padding:.35rem .75rem!important}.shopping-review-btn:hover{background:#b46e4614!important}.settings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.25rem;margin-bottom:2rem}.user-card{background:var(--paper);border:1.5px solid var(--border);border-radius:12px;padding:1.5rem;display:flex;flex-direction:column;align-items:center;gap:.75rem;transition:all .2s;box-shadow:0 1px 2px #2c24190a,0 2px 8px #2c24190a}.user-card:hover{border-color:#c8b9a8;box-shadow:0 4px 16px #2c241914}.user-card-avatar{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:Caveat,cursive;font-size:1.5rem;font-weight:600;color:#fff}.user-card-name{font-family:Playfair Display,serif;font-size:1.1rem;color:var(--dark);font-weight:600}.user-card-actions{display:flex;gap:.5rem;margin-top:.25rem}.color-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:.5rem}.color-swatch{width:36px;height:36px;border-radius:50%;cursor:pointer;border:3px solid transparent;transition:all .15s;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.color-swatch:hover{transform:scale(1.15)}.color-swatch:active{transform:scale(.95)}.color-swatch.active{border-color:var(--dark);box-shadow:0 0 0 2px var(--cream)}.add-user-card{background:var(--cream2);border:2px dashed var(--border);border-radius:12px;padding:1.5rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;cursor:pointer;transition:all .2s;min-height:180px}.add-user-card:hover{border-color:var(--terracotta);background:var(--terracotta-pale)}.add-user-card:active{transform:scale(.97)}.unit-system-selector{display:flex;gap:.75rem;flex-wrap:wrap}.unit-system-pill{flex:1;min-width:140px;display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:1rem .75rem;border-radius:12px;border:2px solid var(--border);background:var(--paper);cursor:pointer;transition:all .2s ease;font-family:inherit;text-align:center}.unit-system-pill:hover{border-color:var(--terracotta-light);background:var(--terracotta-pale);transform:translateY(-1px);box-shadow:0 2px 8px #c4603c1a}.unit-system-pill:active{transform:scale(.97)}.unit-system-pill.active{border-color:var(--terracotta);background:var(--terracotta-pale);box-shadow:0 0 0 3px #c4603c26}.unit-system-pill:disabled{opacity:.6;cursor:wait}.unit-system-pill-icon{font-size:1.4rem;line-height:1}.unit-system-pill-label{font-family:Playfair Display,serif;font-size:.95rem;font-weight:600;color:var(--dark);line-height:1.2}.unit-system-pill.active .unit-system-pill-label{color:var(--terracotta)}.unit-system-pill-desc{font-size:.72rem;color:#8a7b70;font-style:italic;line-height:1.3}.unit-save-msg{font-size:.8rem;margin-top:.5rem;font-style:italic;transition:opacity .3s}.ing-import-list{list-style:none;margin:.75rem 0}.ing-import-item{display:flex;align-items:center;gap:.5rem;padding:.35rem 0;border-bottom:1px solid var(--cream2);font-size:.82rem}.ing-badge{font-size:.65rem;padding:.12rem .45rem;border-radius:8px;font-family:Lora,serif;white-space:nowrap;letter-spacing:.01em}.ing-badge.matched{background:var(--sage-pale);color:var(--sage)}.ing-badge.new{background:var(--gold-pale);color:var(--gold)}.shop-recipe-tag{font-size:.65rem;color:#9a8c80;font-style:italic;white-space:nowrap}.shop-dismiss-btn{display:none;background:none;border:none;color:#c0b0a0;cursor:pointer;font-size:.75rem;padding:.15rem .35rem;border-radius:4px;transition:all .15s;flex-shrink:0;min-width:44px;min-height:44px;align-items:center;justify-content:center}.shop-dismiss-btn:hover{color:var(--sage);background:var(--sage-pale)}.shop-item-swipeable:hover .shop-dismiss-btn{display:flex}@media(max-width:768px){.shop-dismiss-btn{display:none!important}}.shop-remove-btn{background:none;border:none;color:#c0b0a0;cursor:pointer;font-size:1.1rem;padding:0 .25rem;border-radius:4px;transition:all .15s;flex-shrink:0;margin-left:auto;line-height:1;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.shop-remove-btn:hover{color:#c0392b}.shop-item-add{border-bottom:none}.shop-check-add{width:22px;height:22px;border:2px dashed var(--border);border-radius:5px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.8rem;color:var(--border);transition:all .15s;min-width:44px;min-height:44px}.shop-check-add:hover{border-color:var(--sage);color:var(--sage)}.shop-inline-input{border:none;background:none;font:inherit;color:var(--text);outline:none;flex:1;padding:0;font-size:.9rem;min-height:44px}.shop-inline-input::placeholder{color:#c0b0a0}.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--cream);padding:1rem;background-image:radial-gradient(circle at 25% 25%,rgba(107,76,59,.015) 1px,transparent 1px),radial-gradient(circle at 75% 75%,rgba(107,76,59,.01) 1px,transparent 1px);background-size:20px 20px}.auth-card{background:var(--paper);border-radius:16px;padding:2.5rem 2rem;max-width:380px;width:100%;box-shadow:0 2px 8px #0000000a,0 8px 32px #0000000f;animation:modalSlideUp .35s ease-out}.auth-brand{font-family:Playfair Display,serif;font-size:2rem;font-weight:700;color:var(--dark);text-align:center;margin-bottom:.25rem}.auth-sub{text-align:center;font-size:.85rem;color:var(--brown);margin-bottom:1.5rem;font-style:italic}.auth-error{background:#fee;color:#c0392b;padding:.5rem .75rem;border-radius:8px;font-size:.85rem;margin-bottom:1rem}.receipt-photos{display:flex;gap:.5rem;flex-wrap:wrap}.receipt-photo-thumb{position:relative;width:72px;height:96px;border-radius:8px;overflow:hidden;border:2px solid var(--cream2)}.receipt-photo-thumb img{width:100%;height:100%;object-fit:cover}.receipt-photo-remove{position:absolute;top:2px;right:2px;width:24px;height:24px;border-radius:50%;background:#0009;color:#fff;border:none;font-size:.65rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.receipt-photo-num{position:absolute;bottom:2px;left:2px;background:#00000080;color:#fff;font-size:.55rem;padding:.1rem .3rem;border-radius:4px}.receipt-summary{background:var(--cream);border-radius:10px;padding:1rem;margin-bottom:1rem;text-align:center}.receipt-store{font-family:Playfair Display,serif;font-size:1.1rem;font-weight:700;color:var(--dark)}.receipt-date{font-size:.78rem;color:var(--brown);margin-top:.2rem}.receipt-total{font-size:1.3rem;font-weight:700;color:var(--terracotta);margin-top:.4rem}.receipt-match-item{display:flex;align-items:center;gap:.5rem;padding:.4rem 0;border-bottom:1px solid var(--cream2);font-size:.85rem}.receipt-match-item.matched{color:var(--sage-dark, #3A5731)}.receipt-item-name{flex:1}.receipt-item-arrow{color:var(--border);font-size:.75rem}.receipt-item-match{flex:1;font-style:italic;color:var(--sage)}.receipt-item-price{font-weight:600;color:var(--dark);min-width:3.5rem;text-align:right}.receipt-categories{background:var(--cream);border-radius:8px;padding:.5rem .75rem}.receipt-cat-row{display:flex;justify-content:space-between;padding:.3rem 0;font-size:.85rem;border-bottom:1px solid var(--cream2)}.receipt-cat-row:last-child{border-bottom:none}.receipt-cat-total{font-weight:600}@media(max-width:768px){.app{padding-bottom:72px}.nav{padding:0 1rem;height:56px}.nav-tabs,.nav-user{display:none}.nav-brand{font-size:1.3rem}.bottom-nav{display:block}.page-header{padding:2rem 1rem 1.5rem}.page-title{font-size:1.6rem}.page-subtitle{font-size:.8rem}.main{padding:1rem}.toolbar{flex-direction:column;align-items:stretch;gap:.75rem}.toolbar-left{flex-direction:column;align-items:stretch}.search-box{min-width:unset;width:100%}.filter-scroll{padding-bottom:.25rem}.toolbar .btn-primary{align-self:stretch;justify-content:center;min-height:44px}.recipe-grid{grid-template-columns:1fr;gap:1rem}.recipe-card:hover{transform:none;box-shadow:0 1px 2px #2c24190a,0 2px 8px #2c24190f}.recipe-img-placeholder{height:150px}.detail-header{flex-direction:column;gap:1rem}.detail-img{width:100%;height:180px}.detail-title{font-size:1.5rem}.detail-sections{grid-template-columns:1fr;gap:1.5rem}.detail-meta-grid{grid-template-columns:repeat(3,1fr);gap:.5rem}.skeleton-detail-header{flex-direction:column;gap:1rem}.skeleton-detail-img{width:100%;height:180px}.week-grid{grid-template-columns:repeat(7,100px);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:.5rem}.week-grid::-webkit-scrollbar{display:none}.day-slot{min-height:90px}.planner-summary{flex-direction:column;align-items:stretch}.planner-summary .btn-primary{align-self:stretch;justify-content:center;margin-left:0}.overlay{align-items:flex-end;padding:0}.modal{border-radius:16px 16px 0 0;max-height:85vh;max-width:100%;animation:modalSlideUp .25s ease-out}.recipe-picker-modal,.settings-grid{grid-template-columns:1fr}.unit-system-selector{flex-direction:column}.unit-system-pill{min-width:unset;flex-direction:row;padding:.75rem 1rem;gap:.6rem;text-align:left;align-items:center}.unit-system-pill-icon{font-size:1.2rem}.unit-system-pill-label{font-size:.88rem}.unit-system-pill-desc{font-size:.7rem}.empty-state{padding:2rem 1.5rem}.empty-state-icon{font-size:2.8rem}.empty-state-title{font-size:1.15rem}}@keyframes landingFadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes landingFloat{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-8px) rotate(1deg)}}@keyframes landingFloatAlt{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-6px) rotate(-1.5deg)}}@keyframes landingPulseGlow{0%,to{box-shadow:0 4px 24px #c4603c26}50%{box-shadow:0 4px 32px #c4603c4d}}.landing-reveal{opacity:0;transform:translateY(0);transition:opacity .6s ease-out,transform .6s ease-out}.landing-reveal.revealed{opacity:1;transform:translateY(0)}.landing-reveal-up{opacity:0;transform:translateY(30px);transition:opacity .6s ease-out,transform .6s ease-out}.landing-reveal-up.revealed{opacity:1;transform:translateY(0)}.landing{min-height:100vh;background:var(--cream);overflow-x:hidden}.landing-nav{position:fixed;top:0;left:0;right:0;z-index:100;background:#faf7f0eb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(226,217,204,.5);transition:background .3s}.landing-nav-inner{max-width:1100px;margin:0 auto;padding:0 2rem;height:64px;display:flex;align-items:center;justify-content:space-between}.landing-nav-brand{font-family:Playfair Display,serif;font-size:1.5rem;font-weight:700;color:var(--dark);font-style:italic;letter-spacing:-.02em}.landing-nav-brand span{color:var(--terracotta)}.landing-nav-links{display:flex;align-items:center;gap:.25rem}.landing-nav-link{background:none;border:none;font-family:Lora,serif;font-size:.88rem;color:var(--brown);cursor:pointer;padding:.5rem 1rem;border-radius:6px;transition:all .2s}.landing-nav-link:hover{background:var(--cream2);color:var(--dark)}.landing-nav-signin{background:var(--dark);color:var(--cream);padding:.5rem 1.25rem;border-radius:6px;margin-left:.5rem}.landing-nav-signin:hover{background:#3d2e20;color:var(--cream)}.landing-hero{background:linear-gradient(170deg,var(--dark) 0%,#362A1E 45%,#3D2E20 100%);padding:8rem 2rem 6rem;position:relative;overflow:hidden}.landing-hero:before{content:"";position:absolute;top:-20%;right:-10%;width:600px;height:600px;background:radial-gradient(circle,rgba(196,96,60,.18) 0%,transparent 70%);pointer-events:none}.landing-hero:after{content:"";position:absolute;bottom:-15%;left:-5%;width:400px;height:400px;background:radial-gradient(circle,rgba(201,153,58,.1) 0%,transparent 70%);pointer-events:none}.landing-hero-inner{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center;position:relative;z-index:1}.landing-hero-content{animation:landingFadeInUp .8s ease-out}.landing-hero-eyebrow{font-family:Caveat,cursive;font-size:1.2rem;color:var(--gold);margin-bottom:1rem}.landing-hero-title{font-family:Playfair Display,serif;font-size:3.2rem;font-weight:700;color:var(--cream);line-height:1.15;margin-bottom:1.5rem}.landing-hero-title em{color:var(--terracotta-light);font-style:italic}.landing-hero-subtitle{font-family:Lora,serif;font-size:1.1rem;color:#a99e93;line-height:1.7;margin-bottom:2rem;max-width:480px}.landing-hero-cta{display:flex;flex-direction:column;gap:.75rem;align-items:flex-start}.btn-lg{padding:.85rem 2rem;font-size:1rem;border-radius:8px}.btn-block{width:100%;justify-content:center}.landing-hero-note{font-size:.82rem;color:#7a6e62;font-style:italic}.landing-hero-visual{position:relative;display:flex;justify-content:center;animation:landingFadeInUp 1s ease-out .2s both}.landing-recipe-card{background:var(--paper);border-radius:16px;padding:1.5rem;width:320px;box-shadow:0 8px 40px #00000040;transform:rotate(-2deg);animation:landingFloat 6s ease-in-out infinite}.landing-recipe-card-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.landing-recipe-emoji{font-size:2.2rem}.landing-recipe-name{font-family:Playfair Display,serif;font-size:1.2rem;font-weight:600;color:var(--dark)}.landing-recipe-meta-text{font-family:Caveat,cursive;font-size:.9rem;color:var(--brown)}.landing-recipe-ingredients{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem}.landing-ing{font-family:Lora,serif;font-size:.88rem;color:var(--dark);padding:.25rem 0}.landing-ing-fade{opacity:.4}.landing-recipe-scanned{display:flex;align-items:center;gap:.4rem;font-size:.78rem;color:var(--sage);background:var(--sage-pale);padding:.4rem .75rem;border-radius:8px;font-style:italic}.landing-shopping-float{position:absolute;bottom:-20px;right:-30px;background:var(--paper);border-radius:12px;padding:1rem 1.25rem;width:220px;box-shadow:0 8px 32px #0003;transform:rotate(3deg);animation:landingFloatAlt 5s ease-in-out 1s infinite}.landing-float-title{font-family:Playfair Display,serif;font-size:.88rem;font-weight:600;color:var(--dark);margin-bottom:.5rem;font-style:italic}.landing-float-item{font-size:.82rem;color:var(--dark);padding:.2rem 0;display:flex;align-items:center;gap:.4rem}.landing-float-check{color:var(--sage);font-weight:600}.landing-hero-wave{position:absolute;bottom:-1px;left:0;right:0;line-height:0}.landing-hero-wave svg{width:100%;height:80px;display:block}.landing-section{padding:5rem 2rem}.landing-section-alt{background:var(--cream2)}.landing-section-inner{max-width:1000px;margin:0 auto}.landing-section-title{font-family:Playfair Display,serif;font-size:2.2rem;font-weight:600;color:var(--dark);text-align:center;margin-bottom:.75rem;line-height:1.2}.landing-section-subtitle{font-family:Lora,serif;font-size:1.05rem;color:var(--brown);text-align:center;font-style:italic;margin-bottom:3rem;max-width:540px;margin-left:auto;margin-right:auto}.landing-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}.landing-step{text-align:center;padding:2.5rem 1.5rem;border-radius:16px;background:var(--paper);border:1px solid var(--border);box-shadow:0 2px 12px #2c24190a;transition:transform .3s,box-shadow .3s}.landing-step:hover{transform:translateY(-4px);box-shadow:0 8px 32px #2c24191a}.landing-step-icon{font-size:3rem;margin-bottom:1rem;display:block}.landing-step-num{font-family:Caveat,cursive;font-size:.95rem;color:var(--brown);margin-bottom:.5rem}.landing-step-title{font-family:Playfair Display,serif;font-size:1.4rem;font-weight:600;color:var(--dark);margin-bottom:.75rem}.landing-step-desc{font-family:Lora,serif;font-size:.92rem;color:var(--brown);line-height:1.6}.landing-step-terracotta{border-top:3px solid var(--terracotta)}.landing-step-sage{border-top:3px solid var(--sage)}.landing-step-gold{border-top:3px solid var(--gold)}.landing-features{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.landing-feature-card{background:var(--paper);border-radius:16px;padding:2rem;border:1px solid var(--border);box-shadow:0 2px 12px #2c24190a;transition:transform .3s,box-shadow .3s}.landing-feature-card:hover{transform:translateY(-3px);box-shadow:0 8px 28px #2c24191a}.landing-feature-emoji{font-size:2.5rem;margin-bottom:1rem;display:block}.landing-feature-title{font-family:Playfair Display,serif;font-size:1.3rem;font-weight:600;color:var(--dark);margin-bottom:.25rem}.landing-feature-subtitle{font-family:Caveat,cursive;font-size:1.05rem;color:var(--terracotta);margin-bottom:.75rem}.landing-feature-desc{font-family:Lora,serif;font-size:.9rem;color:var(--brown);line-height:1.6}.landing-feature-terracotta .landing-feature-subtitle{color:var(--terracotta)}.landing-feature-sage .landing-feature-subtitle{color:var(--sage)}.landing-feature-gold .landing-feature-subtitle{color:var(--gold)}.landing-feature-brown .landing-feature-subtitle{color:var(--brown)}.landing-billing-toggle{display:flex;justify-content:center;gap:0;background:var(--cream2);border-radius:10px;padding:4px;max-width:320px;margin:0 auto 3rem}.landing-toggle-btn{flex:1;background:none;border:none;padding:.7rem 1.5rem;font-family:Lora,serif;font-size:.9rem;cursor:pointer;border-radius:8px;color:var(--brown);transition:all .2s;position:relative;display:flex;align-items:center;justify-content:center;gap:.5rem}.landing-toggle-btn.active{background:var(--paper);color:var(--dark);font-weight:600;box-shadow:0 1px 4px #2c24191a}.landing-save-badge{font-family:Caveat,cursive;font-size:.75rem;background:var(--sage);color:#fff;padding:.15rem .5rem;border-radius:10px;font-weight:400;white-space:nowrap}.landing-pricing-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;max-width:700px;margin:0 auto}.landing-pricing-card{background:var(--paper);border-radius:16px;padding:2.5rem 2rem;border:1.5px solid var(--border);box-shadow:0 2px 12px #2c24190a;display:flex;flex-direction:column;opacity:0;transform:translateY(20px);transition:opacity .6s ease-out,transform .6s ease-out}.landing-pricing-card.revealed{opacity:1;transform:translateY(0)}.landing-pricing-featured{border-color:var(--terracotta);position:relative;box-shadow:0 4px 24px #c4603c1f}.landing-pricing-popular{position:absolute;top:-12px;left:50%;transform:translate(-50%);background:var(--terracotta);color:#fff;font-family:Lora,serif;font-size:.75rem;padding:.3rem 1rem;border-radius:12px;font-weight:500;letter-spacing:.02em}.landing-pricing-tier{font-family:Playfair Display,serif;font-size:1.3rem;font-weight:600;color:var(--dark);margin-bottom:.75rem}.landing-pricing-price{margin-bottom:.5rem}.landing-price-amount{font-family:Playfair Display,serif;font-size:2.8rem;font-weight:700;color:var(--dark)}.landing-price-period{font-family:Lora,serif;font-size:.9rem;color:var(--brown);margin-left:.25rem}.landing-pricing-billed{font-size:.82rem;color:var(--sage);font-style:italic;margin-bottom:.75rem}.landing-pricing-features{list-style:none;padding:0;margin:1.5rem 0;flex:1}.landing-pricing-features li{padding:.4rem 0;font-family:Lora,serif;font-size:.9rem;color:var(--dark);display:flex;align-items:center;gap:.5rem}.landing-pricing-trial{font-size:.78rem;color:var(--brown);text-align:center;margin-top:.75rem;font-style:italic}.landing-testimonials{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-bottom:3rem}.landing-testimonial{background:var(--paper);border-radius:16px;padding:1.75rem;border:1px solid var(--border);box-shadow:0 2px 12px #2c24190a;opacity:0;transform:translateY(20px);transition:opacity .6s ease-out,transform .6s ease-out}.landing-testimonial.revealed{opacity:1;transform:translateY(0)}.landing-testimonial-quote{font-family:Lora,serif;font-size:.95rem;color:var(--dark);line-height:1.6;font-style:italic;margin-bottom:1.25rem;quotes:none}.landing-testimonial-author{display:flex;align-items:center;gap:.75rem}.landing-testimonial-avatar{width:40px;height:40px;border-radius:50%;background:var(--terracotta-pale);color:var(--terracotta);font-family:Playfair Display,serif;font-weight:600;font-size:1rem;display:flex;align-items:center;justify-content:center}.landing-testimonial-name{font-family:Lora,serif;font-weight:600;font-size:.88rem;color:var(--dark)}.landing-testimonial-detail{font-size:.78rem;color:var(--brown);font-style:italic}.landing-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;max-width:600px;margin:0 auto}.landing-stat{text-align:center;opacity:0;transform:translateY(16px);transition:opacity .6s ease-out,transform .6s ease-out}.landing-stat.revealed{opacity:1;transform:translateY(0)}.landing-stat-value{font-family:Playfair Display,serif;font-size:2rem;font-weight:700;color:var(--terracotta)}.landing-stat-label{font-family:Lora,serif;font-size:.88rem;color:var(--brown);font-style:italic;margin-top:.25rem}.landing-section-cta{background:linear-gradient(170deg,var(--dark) 0%,#362A1E 100%);padding:5rem 2rem}.landing-cta-block{text-align:center;max-width:560px;margin:0 auto}.landing-cta-emoji{font-size:3rem;margin-bottom:1.5rem;display:block}.landing-cta-title{font-family:Playfair Display,serif;font-size:2rem;font-weight:600;color:var(--cream);margin-bottom:1rem;line-height:1.2}.landing-cta-subtitle{font-family:Lora,serif;font-size:1rem;color:#a99e93;line-height:1.7;margin-bottom:2rem}.landing-cta-form{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}.landing-cta-input{background:#ffffff1a;border:1.5px solid rgba(255,255,255,.2);border-radius:8px;padding:.85rem 1.25rem;font-family:Lora,serif;font-size:.95rem;color:var(--cream);outline:none;min-width:260px;transition:border-color .2s,box-shadow .2s}.landing-cta-input::placeholder{color:#7a6e62}.landing-cta-input:focus{border-color:var(--terracotta-light);box-shadow:0 0 0 3px #c4603c26}.landing-cta-success{display:flex;align-items:center;gap:.5rem;background:var(--sage);color:#fff;padding:.85rem 1.5rem;border-radius:8px;font-family:Lora,serif;font-size:.95rem;animation:landingFadeInUp .4s ease-out}.landing-footer{background:var(--dark);padding:3rem 2rem 2rem;border-top:1px solid rgba(255,255,255,.06)}.landing-footer-inner{max-width:1000px;margin:0 auto;text-align:center}.landing-footer-brand{font-family:Playfair Display,serif;font-size:1.3rem;font-weight:700;color:var(--cream);font-style:italic;margin-bottom:1.25rem}.landing-footer-brand span{color:var(--terracotta-light)}.landing-footer-links{display:flex;justify-content:center;gap:.5rem;flex-wrap:wrap;margin-bottom:1.5rem}.landing-footer-link{background:none;border:none;font-family:Lora,serif;font-size:.85rem;color:#8a7b70;cursor:pointer;padding:.4rem .8rem;border-radius:4px;transition:color .2s}.landing-footer-link:hover{color:var(--cream)}.landing-footer-tagline{font-family:Caveat,cursive;font-size:1rem;color:var(--terracotta-light);margin-bottom:1rem}.landing-footer-copy{font-size:.78rem;color:#5a4d42}@media(max-width:768px){.landing-hero{padding:6rem 1.25rem 4rem}.landing-hero-inner{grid-template-columns:1fr;gap:2.5rem;text-align:center}.landing-hero-title{font-size:2.2rem}.landing-hero-subtitle{max-width:100%;margin-left:auto;margin-right:auto}.landing-hero-cta{align-items:center}.landing-hero-visual{order:-1}.landing-recipe-card{width:280px}.landing-shopping-float{right:-10px;bottom:-15px;width:180px;padding:.75rem 1rem}.landing-steps,.landing-features{grid-template-columns:1fr;gap:1.25rem}.landing-pricing-cards{grid-template-columns:1fr}.landing-testimonials{grid-template-columns:1fr;gap:1rem}.landing-section{padding:3rem 1.25rem}.landing-section-title{font-size:1.7rem}.landing-section-subtitle{font-size:.95rem;margin-bottom:2rem}.landing-nav-links .landing-nav-link:not(.landing-nav-signin){display:none}.landing-cta-form{flex-direction:column;align-items:stretch}.landing-cta-input{min-width:unset}.landing-cta-title{font-size:1.6rem}.landing-stats{gap:1rem}.landing-stat-value{font-size:1.5rem}}@media(max-width:480px){.landing-hero-title{font-size:1.8rem}.landing-recipe-card{width:240px;padding:1.25rem}.landing-shopping-float{display:none}}.onboarding{min-height:100vh;background:var(--cream);display:flex;flex-direction:column;background-image:radial-gradient(circle at 25% 25%,rgba(107,76,59,.015) 1px,transparent 1px),radial-gradient(circle at 75% 75%,rgba(107,76,59,.01) 1px,transparent 1px);background-size:20px 20px}.onboarding-header{padding:1rem 2rem;background:var(--paper);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.onboarding-header-inner{max-width:600px;margin:0 auto;display:flex;align-items:center;gap:1rem}.onboarding-back-btn{background:none;border:none;font-size:1.2rem;cursor:pointer;color:var(--brown);padding:.5rem;border-radius:6px;transition:all .2s;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.onboarding-back-btn:hover{background:var(--cream2);color:var(--dark)}.onboarding-progress{flex:1;height:6px;background:var(--cream2);border-radius:3px;overflow:hidden}.onboarding-progress-fill{height:100%;background:linear-gradient(90deg,var(--terracotta) 0%,var(--terracotta-light) 100%);border-radius:3px;transition:width .4s ease-out}.onboarding-step-count{font-family:Lora,serif;font-size:.78rem;color:var(--brown);min-width:2.5rem;text-align:right}.onboarding-body{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem;overflow:hidden}@keyframes slideInFromRight{0%{opacity:0;transform:translate(60px)}to{opacity:1;transform:translate(0)}}@keyframes slideInFromLeft{0%{opacity:0;transform:translate(-60px)}to{opacity:1;transform:translate(0)}}.onboarding-slide{width:100%;max-width:560px;margin:0 auto}.onboarding-slide.slide-in{animation:slideInFromRight .4s ease-out}.onboarding-slide.slide-out-left{animation:none;opacity:0;transform:translate(-40px);transition:opacity .25s,transform .25s}.onboarding-slide.slide-out-right{animation:none;opacity:0;transform:translate(40px);transition:opacity .25s,transform .25s}.onboarding-step-content{text-align:center}.onboarding-welcome-emoji{font-size:4rem;margin-bottom:1.5rem;display:block;animation:gentleFloat 3s ease-in-out infinite}.onboarding-step-emoji{font-size:3rem;margin-bottom:1rem;display:block}.onboarding-title{font-family:Playfair Display,serif;font-size:2rem;font-weight:600;color:var(--dark);margin-bottom:.75rem;line-height:1.2}.onboarding-title em{color:var(--terracotta);font-style:italic}.onboarding-subtitle{font-family:Lora,serif;font-size:1rem;color:var(--brown);font-style:italic;margin-bottom:2rem;line-height:1.6}.onboarding-welcome-features{display:flex;flex-direction:column;gap:.75rem;margin-bottom:2rem;max-width:300px;margin-left:auto;margin-right:auto}.onboarding-welcome-feature{display:flex;align-items:center;gap:.75rem;font-family:Lora,serif;font-size:.95rem;color:var(--dark);text-align:left;padding:.5rem .75rem;background:var(--paper);border-radius:10px;border:1px solid var(--border)}.onboarding-welcome-feature span:first-child{font-size:1.3rem;flex-shrink:0}.onboarding-family-input-group{max-width:380px;margin:0 auto 1.5rem}.onboarding-family-input{text-align:center;font-size:1.1rem!important}.onboarding-suggestions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-top:1rem}.onboarding-suggestion{background:var(--paper);border:1.5px solid var(--border);border-radius:20px;padding:.4rem 1rem;font-family:Lora,serif;font-size:.85rem;color:var(--brown);cursor:pointer;transition:all .2s}.onboarding-suggestion:hover{border-color:var(--terracotta);color:var(--terracotta)}.onboarding-suggestion.active{background:var(--terracotta-pale);border-color:var(--terracotta);color:var(--terracotta)}.onboarding-preview-card{background:var(--paper);border:1.5px solid var(--border);border-radius:16px;padding:1.5rem;max-width:280px;margin:0 auto 2rem;box-shadow:0 2px 12px #2c24190f;animation:landingFadeInUp .4s ease-out}.onboarding-preview-brand{font-family:Playfair Display,serif;font-size:.85rem;color:var(--brown);font-style:italic;margin-bottom:.5rem}.onboarding-preview-name{font-family:Playfair Display,serif;font-size:1.3rem;font-weight:600;color:var(--dark);margin-bottom:.5rem}.onboarding-preview-recipes{font-size:.82rem;color:var(--brown)}.onboarding-add-options{display:flex;flex-direction:column;gap:1rem;max-width:400px;margin:0 auto 1.5rem}.onboarding-add-option{display:flex;align-items:center;gap:1rem;padding:1.25rem 1.5rem;background:var(--paper);border:1.5px solid var(--border);border-radius:12px;cursor:pointer;transition:all .2s;text-align:left}.onboarding-add-option:hover{border-color:var(--terracotta);transform:translateY(-2px);box-shadow:0 4px 16px #2c241914}.onboarding-add-option:active{transform:translateY(0)}.onboarding-add-option-icon{font-size:2rem;flex-shrink:0}.onboarding-add-option-title{font-family:Playfair Display,serif;font-size:1.05rem;font-weight:600;color:var(--dark);margin-bottom:.2rem}.onboarding-add-option-desc{font-family:Lora,serif;font-size:.82rem;color:var(--brown);font-style:italic}.onboarding-url-import{max-width:400px;margin:0 auto 1.5rem}.onboarding-back-method{margin-top:.75rem}.onboarding-classics{display:flex;flex-direction:column;gap:.75rem;max-width:400px;margin:0 auto 1.5rem}.onboarding-classic-card{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;background:var(--paper);border:1.5px solid var(--border);border-radius:12px;cursor:pointer;transition:all .2s;text-align:left}.onboarding-classic-card:hover{border-color:var(--sage);background:var(--sage-pale)}.onboarding-classic-emoji{font-size:2rem;flex-shrink:0}.onboarding-classic-name{font-family:Playfair Display,serif;font-size:1rem;font-weight:600;color:var(--dark);margin-bottom:.15rem}.onboarding-classic-desc{font-family:Lora,serif;font-size:.82rem;color:var(--brown);font-style:italic}.onboarding-recipe-success{max-width:320px;margin:0 auto 1.5rem;animation:landingFadeInUp .5s ease-out}.onboarding-recipe-success-icon{width:48px;height:48px;border-radius:50%;background:var(--sage);color:#fff;font-size:1.3rem;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;animation:checkBounce .5s ease-out}.onboarding-recipe-success-card{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;background:var(--paper);border:1.5px solid var(--sage);border-radius:12px;margin-bottom:.75rem}.onboarding-recipe-success-emoji{font-size:2rem}.onboarding-recipe-success-name{font-family:Playfair Display,serif;font-size:1.05rem;font-weight:600;color:var(--dark);text-align:left}.onboarding-recipe-success-tag{font-size:.78rem;color:var(--sage);text-align:left}.onboarding-recipe-success-msg{font-family:Caveat,cursive;font-size:1.1rem;color:var(--sage)}.onboarding-error{background:#fee;color:#c0392b;padding:.75rem 1rem;border-radius:10px;font-size:.88rem;max-width:400px;margin:0 auto 1rem;display:flex;flex-direction:column;align-items:center;gap:.5rem}.onboarding-actions{display:flex;flex-direction:column;align-items:center;gap:.75rem;margin-top:1rem}.onboarding-btn-main{min-width:240px;justify-content:center;animation:landingPulseGlow 3s ease-in-out infinite}.onboarding-skip{font-size:.85rem;color:#a09080}.onboarding-magic-preview{max-width:480px;margin:0 auto 1.5rem}.onboarding-mini-planner{background:var(--paper);border-radius:12px;border:1px solid var(--border);padding:1.25rem;margin-bottom:1rem;box-shadow:0 2px 12px #2c24190a}.onboarding-mini-planner-title{font-family:Playfair Display,serif;font-size:.95rem;font-weight:600;color:var(--dark);font-style:italic;margin-bottom:1rem;text-align:left}.onboarding-mini-week{display:grid;grid-template-columns:repeat(7,1fr);gap:.4rem}.onboarding-mini-day{text-align:center;cursor:pointer;padding:.5rem .25rem;border-radius:8px;border:1.5px dashed var(--border);transition:all .2s;min-height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center}.onboarding-mini-day:hover{border-color:var(--terracotta);background:var(--terracotta-pale)}.onboarding-mini-day.filled{border-style:solid;border-color:var(--sage);background:var(--sage-pale)}.onboarding-mini-day.suggested{border-color:var(--terracotta);background:var(--terracotta-pale);animation:pulse 2s ease-in-out infinite}.onboarding-mini-day-label{font-family:Lora,serif;font-size:.65rem;color:var(--brown);margin-bottom:.25rem;text-transform:uppercase;letter-spacing:.04em}.onboarding-mini-day-meal{display:flex;flex-direction:column;align-items:center;gap:.15rem;font-size:1rem;animation:landingFadeInUp .3s ease-out}.onboarding-mini-day-name{font-family:Playfair Display,serif;font-size:.55rem;font-weight:600;color:var(--dark);line-height:1.2}.onboarding-mini-day-hint{font-family:Caveat,cursive;font-size:.75rem;color:var(--terracotta)}.onboarding-mini-day-empty{font-size:.85rem;color:#d0c4b0}.onboarding-mini-shopping{background:var(--paper);border-radius:12px;border:1px solid var(--border);padding:1.25rem;box-shadow:0 2px 12px #2c24190a;animation:landingFadeInUp .5s ease-out}.onboarding-mini-shopping-title{font-family:Playfair Display,serif;font-size:.95rem;font-weight:600;color:var(--dark);font-style:italic;margin-bottom:.25rem;text-align:left}.onboarding-mini-shopping-note{font-size:.78rem;color:var(--brown);font-style:italic;margin-bottom:.75rem;text-align:left}.onboarding-mini-shop-item{display:flex;align-items:center;gap:.5rem;padding:.3rem 0;font-size:.88rem;color:var(--dark);border-bottom:1px solid var(--cream2);text-align:left}.onboarding-mini-shop-item:last-child{border-bottom:none}.onboarding-mini-shop-check{color:var(--sage);flex-shrink:0}.onboarding-mini-shop-more{font-size:.78rem;color:var(--brown);font-style:italic;margin-top:.5rem;text-align:left}.onboarding-magic-placeholder{background:var(--cream2);border-radius:12px;padding:2rem;text-align:center}.onboarding-magic-placeholder p{font-family:Lora,serif;font-size:.9rem;color:var(--brown);font-style:italic}.onboarding-invite-form{display:flex;gap:.75rem;max-width:380px;margin:0 auto 1rem}.onboarding-invite-input{flex:1}.onboarding-invite-success{display:flex;align-items:center;justify-content:center;gap:.5rem;background:var(--sage-pale);color:var(--sage);padding:.75rem 1.25rem;border-radius:10px;font-family:Lora,serif;font-size:.9rem;max-width:380px;margin:0 auto 1.5rem;animation:landingFadeInUp .4s ease-out}.onboarding-done{position:relative;overflow:hidden}.onboarding-done-emoji{font-size:4.5rem;margin-bottom:1.5rem;display:block;animation:landingFadeInUp .6s ease-out}@keyframes confettiFall{0%{opacity:1;transform:translateY(-100vh) translate(0) rotate(0)}to{opacity:0;transform:translateY(100vh) translate(var(--drift)) rotate(var(--rotation))}}.onboarding-confetti{position:fixed;inset:0;pointer-events:none;z-index:50;overflow:hidden}.onboarding-confetti-piece{position:absolute;top:-20px;left:var(--x);width:var(--size);height:var(--size);background:var(--color);border-radius:2px;animation:confettiFall 3s ease-out var(--delay) forwards}@media(max-width:768px){.onboarding-body{padding:2rem 1rem 1.5rem;align-items:flex-start}.onboarding-title{font-size:1.6rem}.onboarding-welcome-emoji{font-size:3rem}.onboarding-step-emoji{font-size:2.5rem}.onboarding-mini-week{grid-template-columns:repeat(7,1fr);gap:.25rem}.onboarding-mini-day{padding:.35rem .15rem;min-height:48px}.onboarding-mini-day-label{font-size:.55rem}.onboarding-mini-day-name{font-size:.5rem}.onboarding-invite-form{flex-direction:column}.onboarding-add-option{padding:1rem}.onboarding-header{padding:.75rem 1rem}}.onboarding-dietary-section{margin:1.5rem 0;text-align:left}.onboarding-dietary-heading{font-family:Playfair Display,Georgia,serif;font-size:1rem;color:var(--dark);margin-bottom:.5rem}.onboarding-dietary-subtext{font-size:.85rem;color:#6b5c4d;margin-bottom:.75rem}.onboarding-dietary-grid{display:flex;flex-wrap:wrap;gap:.5rem}.onboarding-dietary-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem .85rem;border-radius:20px;border:1.5px solid #E0D5C7;background:#fff;font-family:Lora,Georgia,serif;font-size:.85rem;color:#2c2419;cursor:pointer;transition:all .2s ease;min-height:44px}.onboarding-dietary-chip:hover{border-color:var(--terracotta);background:#fef5f0}.onboarding-dietary-chip.active{border-color:var(--terracotta);background:var(--terracotta);color:#fff}.onboarding-dietary-chip.active:hover{background:#b55535}.onboarding-dietary-chip-icon{font-size:1.1rem}.upgrade-modal{background:#faf7f0;border-radius:16px;padding:2rem;max-width:440px;width:90%;margin:auto;position:relative;animation:modalSlideUp .25s ease-out;text-align:center}.upgrade-header{margin-bottom:1.5rem}.upgrade-icon{font-size:2.5rem;display:block;margin-bottom:.5rem}.upgrade-title{font-family:Playfair Display,Georgia,serif;font-size:1.5rem;color:#2c2419;margin-bottom:.5rem}.upgrade-subtitle{color:#6b5c4d;font-size:.95rem;line-height:1.5}.upgrade-features{list-style:none;text-align:left;margin:1.5rem 0;padding:0}.upgrade-feature-item{display:flex;align-items:center;gap:.75rem;padding:.5rem 0;font-size:.95rem;color:#2c2419}.upgrade-feature-icon{font-size:1.2rem;flex-shrink:0}.upgrade-pricing{display:flex;gap:.75rem;margin:1.5rem 0}.upgrade-plan-btn{flex:1;background:#fff;border:2px solid #E0D5C7;border-radius:12px;padding:1rem;cursor:pointer;transition:border-color .2s,background .2s;display:flex;flex-direction:column;align-items:center;gap:.25rem}.upgrade-plan-btn.active{border-color:#c4603c;background:#fef5f0}.upgrade-plan-btn:hover{border-color:#c4603c}.upgrade-plan-name{font-family:Playfair Display,Georgia,serif;font-weight:600;font-size:.95rem;color:#2c2419}.upgrade-plan-price{font-size:1.1rem;font-weight:600;color:#c4603c}.upgrade-plan-note{font-size:.75rem;color:#6b5c4d}.upgrade-cta{width:100%;justify-content:center;font-size:1.05rem;padding:.85rem 1.5rem;margin-top:.5rem}.upgrade-footer-note{margin-top:1rem;font-size:.8rem;color:#a09080}@keyframes smartReviewSlideIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes smartReviewPulse{0%,to{opacity:.4}50%{opacity:.7}}.smart-review{min-height:60vh;animation:tabFadeIn .2s ease-out}.smart-review-inner{max-width:640px;margin:0 auto;padding-bottom:6rem}.smart-review-header{margin-bottom:1.75rem}.smart-review-header-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.5rem}.smart-review-title{font-family:Playfair Display,Georgia,serif;font-size:1.6rem;font-weight:600;color:var(--dark);font-style:italic;display:flex;align-items:center;gap:.5rem}.smart-review-sparkle{font-style:normal;font-size:1.3rem}.smart-review-subtitle{font-size:.9rem;color:#8a7b70;font-style:italic;line-height:1.5}.smart-review-skip{white-space:nowrap;flex-shrink:0}.smart-review-loading{animation:tabFadeIn .2s ease-out}.smart-review-loading-message{display:flex;align-items:center;gap:.75rem;font-size:.9rem;color:#8a7b70;font-style:italic;margin-bottom:1.5rem}.smart-review-cards{display:flex;flex-direction:column;gap:1rem}.smart-review-card{background:var(--paper);border-radius:14px;border:1.5px solid var(--border);padding:1.25rem 1.5rem;box-shadow:0 1px 3px #2c24190a,0 4px 12px #2c24190f;animation:smartReviewSlideIn .45s ease-out both;transition:border-color .3s ease,box-shadow .3s ease,opacity .3s ease}.smart-review-card--resolved{opacity:.7;border-color:var(--sage-pale)}.smart-review-card--overlap{border-left:4px solid #5B8DEF;background:linear-gradient(135deg,#F8FAFF 0%,var(--paper) 100%)}.smart-review-card--waste{border-left:4px solid var(--sage);background:linear-gradient(135deg,#F5FAF4 0%,var(--paper) 100%)}.smart-review-card--side{border-left:4px solid var(--gold);background:linear-gradient(135deg,var(--gold-pale) 0%,var(--paper) 100%)}.smart-review-card--dietary{border-left:4px solid #E85D3A;background:linear-gradient(135deg,#FEF5F0 0%,var(--paper) 100%)}.smart-review-card--dietary-warning{border-left-color:var(--gold);background:linear-gradient(135deg,#FFFBF0 0%,var(--paper) 100%)}.smart-review-card--dietary-danger{border-left-color:#dc2626;background:linear-gradient(135deg,#FFF5F5 0%,var(--paper) 100%)}.smart-review-card-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.smart-review-card-icon{font-size:1.1rem;flex-shrink:0}.smart-review-card-tip{font-family:Caveat,cursive;font-size:1.15rem;font-weight:600;color:var(--dark);line-height:1.2}.smart-review-card-body{margin-bottom:.75rem}.smart-review-card-text{font-size:.88rem;color:var(--brown);line-height:1.55}.smart-review-card-text strong{color:var(--dark);font-weight:600}.smart-review-card-reason{font-size:.8rem;color:#8a7b70;font-style:italic;margin-top:.4rem}.smart-review-card-suggestion{font-size:.85rem;color:var(--sage-dark);margin-top:.5rem;line-height:1.5;padding:.5rem .75rem;background:var(--sage-pale);border-radius:8px}.smart-review-card-actions{display:flex;gap:.5rem;flex-wrap:wrap}.smart-review-btn{font-size:.8rem;padding:.4rem 1rem;border-radius:20px;border:1.5px solid var(--border);background:var(--paper);color:var(--dark);font-family:Lora,serif;cursor:pointer;transition:all .2s}.smart-review-btn:hover:not(:disabled){border-color:var(--terracotta);background:var(--terracotta-pale)}.smart-review-btn:disabled{cursor:default}.smart-review-btn--combine.active{background:#5b8def;border-color:#5b8def;color:#fff}.smart-review-btn--keep.active{background:var(--cream2);border-color:#c8b9a8;color:var(--brown)}.smart-review-btn--add.active,.smart-review-btn--add-side.active{background:var(--sage);border-color:var(--sage);color:#fff}.smart-review-card-feedback{font-size:.78rem;color:var(--sage);font-style:italic;margin-top:.5rem}.smart-review-sides-list{display:flex;flex-direction:column;gap:.6rem}.smart-review-side-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.6rem .75rem;background:#fffdf899;border-radius:10px;border:1px solid rgba(226,217,204,.5)}.smart-review-side-info{display:flex;align-items:center;gap:.6rem;flex:1;min-width:0}.smart-review-side-emoji{font-size:1.5rem;flex-shrink:0}.smart-review-side-name{font-family:Playfair Display,serif;font-size:.9rem;font-weight:600;color:var(--dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.smart-review-side-meta{display:flex;align-items:center;gap:.5rem;font-size:.72rem;color:#8a7b70;font-style:italic;margin-top:.15rem}.smart-review-side-ingredients{color:#a09080}.smart-review-btn--add-side{flex-shrink:0;font-size:.75rem;padding:.35rem .75rem}.smart-review-card--skeleton{animation:smartReviewPulse 1.5s ease-in-out infinite;border-left-color:var(--border)}.smart-review-skeleton-bar{height:14px;border-radius:7px;background:linear-gradient(90deg,var(--cream2) 25%,var(--cream) 50%,var(--cream2) 75%);background-size:400px 100%;animation:shimmer 1.5s ease-in-out infinite;margin-bottom:.65rem}.smart-review-skeleton-bar.w-40{width:40%}.smart-review-skeleton-bar.w-60{width:60%}.smart-review-skeleton-bar.w-75{width:75%}.smart-review-skeleton-actions{display:flex;gap:.5rem;margin-top:.5rem}.smart-review-skeleton-btn{width:80px;height:32px;border-radius:16px;background:linear-gradient(90deg,var(--cream2) 25%,var(--cream) 50%,var(--cream2) 75%);background-size:400px 100%;animation:shimmer 1.5s ease-in-out infinite}.smart-review-bottom{position:fixed;bottom:0;left:0;right:0;background:var(--paper);border-top:1px solid var(--border);padding:.75rem 1.5rem;z-index:50;box-shadow:0 -4px 16px #2c241914}.smart-review-bottom-inner{max-width:640px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1rem}.smart-review-item-count{font-size:.82rem;color:#8a7b70;font-style:italic}.smart-review-continue{flex-shrink:0}.smart-review-toast-container{position:fixed;top:80px;left:50%;transform:translate(-50%);z-index:300;pointer-events:none}.smart-review-error{text-align:center;padding:2rem 1rem;color:var(--brown);font-size:.9rem}.smart-review-error p{margin-bottom:1rem;font-style:italic}@media(max-width:768px){.smart-review-title{font-size:1.3rem}.smart-review-card{padding:1rem 1.15rem}.smart-review-bottom{bottom:68px;padding:.6rem 1rem}.smart-review-bottom-inner{flex-direction:column;gap:.5rem;align-items:stretch}.smart-review-item-count{text-align:center}.smart-review-continue{width:100%;justify-content:center}}.recipes-toolbar{flex-wrap:wrap;gap:.75rem}.toolbar-right-actions{display:flex;align-items:center;gap:.5rem}.search-clear-btn{background:none;border:none;color:#b0a090;cursor:pointer;font-size:.75rem;padding:.2rem;border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0}.search-clear-btn:hover{background:var(--cream2);color:var(--dark)}.recipes-filter-row{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.recipes-filter-scroll{flex:1;min-width:0}.recipes-filter-chip{white-space:nowrap;flex-shrink:0}.filter-chip-emoji{font-style:normal;margin-right:.15rem}.recipes-clear-filters{white-space:nowrap;flex-shrink:0;color:var(--terracotta);font-size:.78rem}.recipes-count{font-size:.78rem;color:#a09080;font-style:italic;margin-bottom:1rem}.sort-dropdown-wrapper{position:relative}.sort-trigger{white-space:nowrap}.sort-backdrop{position:fixed;inset:0;z-index:99}.sort-dropdown{position:absolute;top:calc(100% + 4px);right:0;background:var(--paper);border:1.5px solid var(--border);border-radius:10px;box-shadow:0 4px 12px #2c24191a,0 8px 24px #2c241914;z-index:100;min-width:180px;overflow:hidden;animation:modalSlideUp .15s ease-out}.sort-option{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;padding:.65rem 1rem;font-family:Lora,serif;font-size:.82rem;color:var(--dark);cursor:pointer;transition:background .15s;text-align:left}.sort-option:hover{background:var(--cream2)}.sort-option.active{color:var(--terracotta);font-weight:600}.sort-option:not(:last-child){border-bottom:1px solid rgba(226,217,204,.5)}.sort-check{color:var(--terracotta);font-weight:700}@media(max-width:768px){.recipes-toolbar{flex-direction:column;align-items:stretch;gap:.5rem}.toolbar-left{width:100%}.toolbar-right-actions{justify-content:flex-end}.search-box{min-width:unset;width:100%}.recipes-filter-row{flex-wrap:nowrap;overflow:visible}.sort-dropdown{right:-2rem;left:auto}}.slot-add-sides-btn{display:block;width:100%;background:none;border:1.5px dashed var(--sage-pale);border-radius:0 0 8px 8px;border-top:none;padding:.3rem .5rem;font-family:Lora,serif;font-size:.65rem;color:var(--sage);cursor:pointer;transition:all .2s;text-align:center;margin-top:-2px;font-weight:600;letter-spacing:.01em}.slot-add-sides-btn:hover{background:var(--sage-pale);border-color:var(--sage-light);color:var(--sage-dark)}.slot-add-sides-btn:active{transform:scale(.97)}.side-dish-panel{background:var(--paper);border:1.5px solid var(--sage-pale);border-radius:10px;margin-top:.35rem;overflow:hidden;animation:cardFadeIn .25s ease-out;box-shadow:0 2px 12px #4a674114}.side-dish-panel-header{display:flex;align-items:center;justify-content:space-between;padding:.6rem .75rem;background:var(--sage-pale);border-bottom:1px solid rgba(74,103,65,.1)}.side-dish-panel-title{font-family:Playfair Display,serif;font-size:.72rem;color:var(--sage-dark);font-weight:600;font-style:italic;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}.side-dish-panel-close{background:none;border:none;color:var(--sage-light);cursor:pointer;font-size:.75rem;padding:2px 4px;border-radius:4px;line-height:1;flex-shrink:0;min-width:28px;min-height:28px;display:flex;align-items:center;justify-content:center;transition:all .15s}.side-dish-panel-close:hover{background:#4a67411a;color:var(--sage-dark)}.side-dish-error{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem .75rem;font-size:.78rem;color:var(--brown);text-align:center;font-style:italic}.side-dish-list{display:flex;flex-direction:column;gap:.5rem;padding:.6rem .75rem .4rem}.side-dish-card{background:var(--cream);border:1px solid var(--cream2);border-radius:8px;padding:.55rem .65rem;transition:all .2s}.side-dish-card.added{border-color:var(--sage-pale);background:var(--sage-pale)}.side-dish-card-top{display:flex;align-items:center;gap:.5rem}.side-dish-card-emoji{font-size:1.2rem;flex-shrink:0;line-height:1}.side-dish-card-info{flex:1;min-width:0}.side-dish-card-name{font-family:Playfair Display,serif;font-size:.78rem;font-weight:600;color:var(--dark);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-dish-card-time{font-size:.65rem;color:var(--brown);margin-top:.1rem}.side-dish-card-why{font-size:.68rem;color:#8a7b70;font-style:italic;margin-top:.35rem;line-height:1.4}.side-dish-card .btn-sm{padding:.25rem .55rem;font-size:.7rem;white-space:nowrap;flex-shrink:0}.btn-added{background:var(--sage);color:#fff;border:1px solid var(--sage);cursor:default}.btn-added:hover{background:var(--sage);transform:none}.side-dish-suggest-more{width:calc(100% - 1.5rem);margin:.25rem .75rem .6rem;justify-content:center;gap:.3rem}.feedback-widget{position:fixed;bottom:1.25rem;right:1.25rem;z-index:90}.feedback-trigger{background:linear-gradient(135deg,var(--terracotta) 0%,#B5543A 100%);color:#fff;border:none;border-radius:24px;padding:.55rem 1rem;font-family:Lora,serif;font-size:.82rem;font-weight:500;cursor:pointer;box-shadow:0 2px 8px #c4603c40,0 4px 16px #c4603c1f;transition:all .2s;display:flex;align-items:center;gap:.35rem;animation:cardFadeIn .4s ease-out}.feedback-trigger:hover{transform:translateY(-2px);box-shadow:0 4px 12px #c4603c4d,0 8px 24px #c4603c26}.feedback-trigger:active{transform:scale(.96)}.feedback-panel{position:absolute;bottom:0;right:0;width:320px;background:var(--paper);border:1.5px solid var(--border);border-radius:14px;box-shadow:0 4px 16px #2c24191a,0 12px 40px #2c241914;padding:1.25rem;animation:modalSlideUp .25s ease-out}.feedback-panel-close{position:absolute;top:.6rem;right:.6rem;background:none;border:none;color:#c0b0a0;cursor:pointer;font-size:.85rem;padding:4px;border-radius:4px;line-height:1;min-width:32px;min-height:32px;display:flex;align-items:center;justify-content:center;transition:all .15s}.feedback-panel-close:hover{background:var(--cream2);color:var(--dark)}.feedback-heading{font-family:Playfair Display,serif;font-size:1.05rem;color:var(--dark);font-weight:600;margin-bottom:1rem;padding-right:1.5rem;line-height:1.3}.feedback-stars{margin-bottom:.85rem}.feedback-textarea{width:100%;border:1.5px solid var(--border);border-radius:8px;padding:.65rem .75rem;font-family:Lora,serif;font-size:.85rem;color:var(--dark);background:var(--cream);resize:vertical;min-height:72px;transition:border-color .2s;margin-bottom:.65rem}.feedback-textarea:focus{outline:none;border-color:var(--terracotta)}.feedback-textarea::placeholder{color:#b0a090;font-style:italic}.feedback-feature-input{width:100%;border:1.5px solid var(--border);border-radius:8px;padding:.55rem .75rem;font-family:Lora,serif;font-size:.82rem;color:var(--dark);background:var(--cream);transition:border-color .2s;margin-bottom:.85rem}.feedback-feature-input:focus{outline:none;border-color:var(--terracotta)}.feedback-feature-input::placeholder{color:#b0a090;font-style:italic}.feedback-submit{width:100%;justify-content:center}.feedback-submit:disabled{opacity:.5;cursor:not-allowed;transform:none}.feedback-thanks{text-align:center;padding:1rem .5rem;animation:cardFadeIn .3s ease-out}.feedback-thanks-emoji{font-size:2rem;margin-bottom:.75rem}.feedback-thanks-text{font-family:Playfair Display,serif;font-size:.95rem;color:var(--dark);font-style:italic;line-height:1.4}@media(max-width:768px){.feedback-widget{bottom:80px;right:1rem}.feedback-panel{width:calc(100vw - 2rem);max-width:320px}.feedback-trigger{padding:.5rem .85rem;font-size:.78rem}}@media(max-width:768px){.side-dish-panel{margin-top:.25rem}.side-dish-panel-title{font-size:.68rem}.side-dish-card-name{font-size:.73rem}.side-dish-card-why{font-size:.65rem}.slot-add-sides-btn{font-size:.62rem;padding:.25rem .4rem}}.time-budget-row{display:flex;justify-content:center;margin-bottom:.4rem}.time-budget-chip{display:inline-flex;align-items:center;gap:.2rem;background:var(--cream2);border:1px solid var(--border);border-radius:12px;padding:.15rem .5rem;font-family:Lora,Georgia,serif;font-size:.62rem;color:var(--brown);cursor:pointer;transition:all .2s ease;-webkit-user-select:none;user-select:none;line-height:1.3;white-space:nowrap}.time-budget-chip:hover{background:var(--terracotta-pale);border-color:var(--terracotta-light);color:var(--terracotta)}.time-budget-chip:active{transform:scale(.94)}.time-budget-chip.over-budget{background:var(--gold-pale);border-color:var(--gold);color:var(--gold)}.time-budget-chip.over-budget:hover{background:#f8ecc8;border-color:var(--gold)}.time-budget-custom{display:inline-flex;align-items:center;gap:.15rem;background:var(--paper);border:1.5px solid var(--terracotta-light);border-radius:12px;padding:.1rem .35rem;box-shadow:0 0 0 3px #c4603c14}.time-budget-input{width:32px;border:none;background:transparent;font-family:Lora,Georgia,serif;font-size:.65rem;color:var(--dark);text-align:center;outline:none;-moz-appearance:textfield;padding:0}.time-budget-input::-webkit-outer-spin-button,.time-budget-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.time-budget-input-suffix{font-size:.58rem;color:var(--brown);font-family:Lora,Georgia,serif}.time-budget-warning{background:var(--gold-pale);border:1px solid var(--gold);border-radius:8px;padding:.2rem .4rem;font-size:.55rem;color:var(--gold);text-align:center;margin-bottom:.4rem;font-family:Lora,Georgia,serif;line-height:1.3;animation:budgetWarnFade .3s ease}@keyframes budgetWarnFade{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.prep-ahead-card{background:var(--sage-pale);border:1px solid #C8D8C2;border-radius:12px;margin-bottom:1.5rem;overflow:hidden;box-shadow:0 1px 4px #2c24190a;animation:prepCardFadeIn .35s ease}@keyframes prepCardFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.prep-ahead-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.85rem 1.15rem;border:none;background:transparent;cursor:pointer;transition:background .15s;text-align:left}.prep-ahead-header:hover{background:#4a67410f}.prep-ahead-title-row{display:flex;align-items:baseline;gap:.5rem}.prep-ahead-icon{font-size:1.1rem}.prep-ahead-title{font-family:Playfair Display,serif;font-size:1rem;font-weight:600;color:var(--dark)}.prep-ahead-subtitle{font-family:Caveat,cursive;font-size:.9rem;color:var(--sage);font-weight:400}.prep-ahead-chevron{font-size:1.1rem;color:var(--sage);transition:transform .25s ease;transform:rotate(0);display:inline-block}.prep-ahead-chevron.expanded{transform:rotate(90deg)}.prep-ahead-body{padding:0 1.15rem 1rem;animation:prepBodyExpand .3s ease}@keyframes prepBodyExpand{0%{opacity:0;max-height:0}to{opacity:1;max-height:600px}}.prep-ahead-loading{display:flex;gap:.35rem;justify-content:center;padding:1rem 0}.prep-ahead-loading-dot{width:6px;height:6px;border-radius:50%;background:var(--sage-light);animation:prepDotPulse .8s ease-in-out infinite alternate}@keyframes prepDotPulse{0%{opacity:.3;transform:scale(.8)}to{opacity:1;transform:scale(1.1)}}.prep-ahead-list{display:flex;flex-direction:column;gap:.65rem}.prep-ahead-item{background:var(--paper);border:1px solid var(--border);border-radius:10px;padding:.7rem .85rem;transition:box-shadow .2s}.prep-ahead-item:hover{box-shadow:0 2px 8px #2c24190f}.prep-ahead-item-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;margin-bottom:.2rem}.prep-ahead-what{font-family:Playfair Display,serif;font-size:.88rem;font-weight:600;color:var(--dark);line-height:1.3}.prep-ahead-time-saved{flex-shrink:0;font-size:.62rem;font-family:Lora,Georgia,serif;color:var(--sage);background:var(--sage-pale);border:1px solid #C8D8C2;border-radius:8px;padding:.12rem .4rem;white-space:nowrap;font-weight:500}.prep-ahead-for{font-size:.73rem;color:var(--brown);font-style:italic;margin-bottom:.25rem;line-height:1.4}.prep-ahead-instructions{font-size:.75rem;color:var(--text);line-height:1.5;margin-top:.3rem;padding-top:.3rem;border-top:1px solid var(--cream2)}@media(max-width:768px){.time-budget-chip{font-size:.58rem;padding:.12rem .35rem;border-radius:10px}.time-budget-warning{font-size:.5rem;padding:.15rem .3rem}.time-budget-input{width:26px;font-size:.6rem}.prep-ahead-card{border-radius:10px;margin-bottom:1rem}.prep-ahead-header{padding:.7rem .85rem}.prep-ahead-title{font-size:.9rem}.prep-ahead-subtitle{font-size:.8rem}.prep-ahead-body{padding:0 .85rem .75rem}.prep-ahead-item{padding:.6rem .7rem}.prep-ahead-what{font-size:.82rem}.prep-ahead-for{font-size:.68rem}.prep-ahead-instructions{font-size:.7rem}.prep-ahead-title-row{gap:.35rem}}@keyframes agendaDaySlideIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes agendaBodyExpand{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.agenda-mobile{display:none}@media(max-width:768px){.planner-desktop{display:none!important}.agenda-mobile{display:flex;flex-direction:column;gap:0;margin-bottom:1rem;padding-bottom:80px}.agenda-day{border-bottom:1px solid var(--border);animation:agendaDaySlideIn .25s ease-out both}.agenda-day:last-of-type{border-bottom:none}.agenda-day--today{border-left:3px solid var(--sage);background:var(--sage-pale)}.agenda-day-header{display:flex;align-items:center;width:100%;min-height:56px;padding:.6rem 1rem;gap:.5rem;background:var(--paper);border:none;cursor:pointer;font-family:Lora,Georgia,serif;color:var(--dark);text-align:left;transition:background .15s ease;-webkit-tap-highlight-color:transparent}.agenda-day--today .agenda-day-header{background:transparent}.agenda-day-header:hover,.agenda-day-header:active{background:var(--cream2)}.agenda-day--today .agenda-day-header:hover,.agenda-day--today .agenda-day-header:active{background:#4a674114}.agenda-day-header:focus-visible{outline:2px solid var(--sage);outline-offset:-2px;border-radius:4px}.agenda-day-left{display:flex;flex-direction:column;min-width:52px;flex-shrink:0}.agenda-day-name{font-family:Playfair Display,serif;font-size:.9rem;font-weight:600;color:var(--dark);line-height:1.2}.agenda-day--today .agenda-day-name{color:var(--sage)}.agenda-day-date{font-size:.7rem;color:var(--brown);line-height:1.3}.agenda-day--today .agenda-day-date{color:var(--sage);font-weight:500}.agenda-day-preview{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0;overflow:hidden}.agenda-day-emojis{display:flex;align-items:center;gap:.15rem;font-size:1.05rem;flex-shrink:0}.agenda-emoji-overflow{font-size:.65rem;color:var(--brown);margin-left:.15rem;font-family:Lora,Georgia,serif}.agenda-day-count{font-size:.72rem;color:var(--brown);white-space:nowrap;flex-shrink:0}.agenda-day-empty{font-size:.72rem;color:#c0b0a0;font-style:italic}.agenda-day-right{display:flex;align-items:center;gap:.4rem;flex-shrink:0;margin-left:auto}.agenda-time-chip{display:inline-flex;align-items:center;gap:.15rem;font-size:.65rem;color:var(--brown);background:var(--cream2);border:1px solid var(--border);border-radius:10px;padding:.1rem .4rem;white-space:nowrap;font-family:Lora,Georgia,serif}.agenda-time-chip--over{color:var(--terracotta);background:var(--terracotta-pale);border-color:var(--terracotta-light)}.agenda-chevron{font-size:.75rem;color:var(--brown);transition:transform .2s ease;flex-shrink:0;width:16px;text-align:center}.agenda-day-body{padding:0 1rem 1rem;animation:agendaBodyExpand .2s ease-out}.agenda-day--today .agenda-day-body{background:transparent}.agenda-budget-row{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem;flex-wrap:wrap}.agenda-budget-row .time-budget-chip{font-size:.75rem;padding:.25rem .7rem;min-height:36px;gap:.3rem}.agenda-budget-label{font-size:.65rem;color:var(--brown);opacity:.8;margin-left:.15rem}.agenda-budget-row .time-budget-warning{margin:0}.agenda-slot{margin-bottom:.75rem}.agenda-slot-label{display:flex;align-items:center;gap:.35rem;margin-bottom:.4rem}.agenda-slot-emoji{font-size:.95rem}.agenda-slot-name{font-family:Playfair Display,serif;font-size:.82rem;font-weight:600;color:var(--dark)}.agenda-slot-cards{background:var(--paper);border:1px solid var(--border);border-radius:10px;overflow:hidden}.agenda-recipe-card{display:flex;align-items:center;gap:.6rem;padding:.6rem .75rem;min-height:52px;border-bottom:1px solid var(--cream2)}.agenda-recipe-card:last-of-type{border-bottom:none}.agenda-recipe-emoji{font-size:1.3rem;flex-shrink:0}.agenda-recipe-info{flex:1;min-width:0;cursor:pointer}.agenda-recipe-name{font-family:Playfair Display,serif;font-size:.88rem;font-weight:600;color:var(--dark);line-height:1.3;text-decoration:underline;text-decoration-color:var(--sage);text-underline-offset:2px;text-decoration-thickness:1px}.agenda-recipe-meta{font-size:.68rem;color:var(--brown);margin-top:.1rem}.agenda-recipe-serves{display:flex;align-items:center;gap:.25rem;flex-shrink:0}.agenda-recipe-serves .serves-btn{width:32px;height:32px;font-size:.9rem}.agenda-recipe-serves .serves-count{font-size:.8rem;min-width:2rem;text-align:center}.agenda-recipe-remove{background:none;border:none;color:#c0b0a0;cursor:pointer;font-size:.85rem;padding:0;border-radius:6px;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;transition:color .15s,background .15s;flex-shrink:0}.agenda-recipe-remove:hover,.agenda-recipe-remove:active{color:var(--terracotta);background:var(--terracotta-pale)}.agenda-add-side-btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:44px;padding:.5rem;background:none;border:none;border-top:1px solid var(--cream2);color:var(--sage);font-family:Lora,Georgia,serif;font-size:.78rem;font-weight:500;cursor:pointer;transition:background .15s,color .15s}.agenda-add-side-btn:hover,.agenda-add-side-btn:active{background:var(--sage-pale);color:var(--sage-dark)}.agenda-add-meal-btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:52px;padding:.6rem 1rem;background:var(--paper);border:1.5px dashed var(--border);border-radius:10px;color:#c0b0a0;font-family:Lora,Georgia,serif;font-size:.82rem;font-style:italic;cursor:pointer;transition:border-color .2s,color .2s,background .2s}.agenda-add-meal-btn:hover,.agenda-add-meal-btn:active{border-color:var(--terracotta);color:var(--terracotta);background:var(--terracotta-pale)}.agenda-prep-section{margin-top:.75rem;padding:.75rem;background:var(--gold-pale);border:1px solid rgba(201,153,58,.25);border-radius:10px}.agenda-prep-title{font-family:Playfair Display,serif;font-size:.82rem;font-weight:600;color:var(--dark);margin-bottom:.5rem;display:flex;align-items:center;gap:.35rem}.agenda-prep-item{font-size:.78rem;color:var(--brown);padding:.25rem 0;line-height:1.4}.agenda-prep-task{font-weight:500;color:var(--dark)}.agenda-prep-time{font-size:.7rem;color:var(--sage);margin-left:.25rem}.agenda-prep-for{font-style:italic;font-size:.72rem}.agenda-sticky-shopping{position:fixed;bottom:72px;left:0;right:0;padding:.6rem 1rem;background:linear-gradient(transparent,var(--cream) 30%);z-index:50;display:flex;justify-content:center}.agenda-shopping-btn{width:100%;max-width:400px;justify-content:center;min-height:48px;font-size:.9rem;gap:.5rem;box-shadow:0 2px 12px #2c24191f}.recipe-picker-fullscreen{max-height:100vh!important;height:100vh;border-radius:0!important;animation:modalSlideUp .25s ease-out!important}.recipe-picker-fullscreen .modal-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.recipe-picker-fullscreen .recipe-picker-modal{grid-template-columns:1fr;gap:.5rem}.recipe-picker-fullscreen .recipe-pick-card{min-height:52px;padding:.6rem .75rem}.agenda-slot-cards .side-dish-panel{border:none;border-top:1px solid var(--cream2);border-radius:0;margin:0}}@media(prefers-reduced-motion:reduce){.agenda-day,.agenda-day-body{animation:none!important}.agenda-chevron{transition:none!important}}.recipe-action-bar{display:flex;align-items:center;gap:.25rem}.recipe-action-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .65rem;border-radius:8px;border:1.5px solid var(--border);background:var(--paper);color:var(--brown);font-family:Lora,serif;font-size:.78rem;cursor:pointer;transition:all .2s ease;min-height:36px;white-space:nowrap}.recipe-action-btn:hover{border-color:var(--terracotta-light);background:var(--terracotta-pale);color:var(--terracotta);transform:translateY(-1px);box-shadow:0 2px 6px #c4603c1a}.recipe-action-btn:active{transform:scale(.96)}.recipe-action-btn:disabled{opacity:.5;cursor:wait}.recipe-action-btn svg{flex-shrink:0}.recipe-action-label{display:inline}.recipe-action-translate-wrap{position:relative}.translate-dropdown{position:absolute;top:calc(100% + 6px);right:0;z-index:100;background:var(--paper);border:1.5px solid var(--border);border-radius:12px;box-shadow:0 8px 32px #2c24191f,0 2px 8px #2c24190f;padding:.4rem;min-width:180px;max-height:320px;overflow-y:auto;animation:modalSlideUp .15s ease-out}.translate-dropdown-item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .65rem;border:none;background:none;border-radius:8px;cursor:pointer;font-family:Lora,serif;font-size:.82rem;color:var(--dark);transition:background .15s ease;text-align:left}.translate-dropdown-item:hover{background:var(--cream2)}.translate-dropdown-item.active{background:var(--terracotta-pale);color:var(--terracotta);font-weight:500}.translate-flag{font-size:1.1rem;line-height:1}.translate-lang-name{flex:1}.recipe-share-toast{display:flex;align-items:center;gap:.4rem;padding:.45rem .75rem;border-radius:8px;font-size:.8rem;font-family:Lora,serif;margin-top:.5rem;animation:tabFadeIn .2s ease-out}.recipe-share-toast--success{background:var(--sage-pale);color:var(--sage)}.recipe-share-toast--error{background:#fee2e2;color:#dc2626}.recipe-share-toast--info{background:var(--gold-pale);color:var(--brown)}.recipe-share-info{display:flex;align-items:center;gap:.5rem;margin-top:.5rem;animation:tabFadeIn .2s ease-out}.recipe-share-revoke{background:none;border:none;color:var(--terracotta);font-family:Lora,serif;font-size:.75rem;cursor:pointer;text-decoration:underline;padding:.15rem .3rem}.recipe-share-revoke:hover{color:#b3522e}.recipe-translate-loading{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;margin-top:.5rem;border-radius:8px;background:var(--gold-pale);font-size:.8rem;font-style:italic;color:var(--brown);animation:tabFadeIn .2s ease-out}.recipe-translate-spinner{width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--terracotta);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.recipe-translate-badge{display:flex;align-items:center;gap:.5rem;margin-top:.5rem;padding:.4rem .75rem;border-radius:8px;background:#ede9fe;font-size:.78rem;color:#6b21a8;font-style:italic;animation:tabFadeIn .2s ease-out}.recipe-translate-original-btn{background:none;border:none;color:#6b21a8;font-family:Lora,serif;font-size:.75rem;cursor:pointer;text-decoration:underline;padding:.15rem .3rem;margin-left:auto}.recipe-translate-original-btn:hover{color:#581c87}.translated-text{font-style:italic}.language-selector{display:flex;gap:.5rem;flex-wrap:wrap}.language-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.55rem .85rem;border-radius:10px;border:2px solid var(--border);background:var(--paper);cursor:pointer;transition:all .2s ease;font-family:inherit}.language-pill:hover{border-color:var(--terracotta-light);background:var(--terracotta-pale);transform:translateY(-1px);box-shadow:0 2px 8px #c4603c1a}.language-pill:active{transform:scale(.97)}.language-pill.active{border-color:var(--terracotta);background:var(--terracotta-pale);box-shadow:0 0 0 3px #c4603c26}.language-pill:disabled{opacity:.6;cursor:wait}.language-pill-flag{font-size:1.15rem;line-height:1}.language-pill-label{font-family:Lora,serif;font-size:.82rem;font-weight:500;color:var(--dark)}.language-pill.active .language-pill-label{color:var(--terracotta);font-weight:600}.shared-recipe-page{min-height:100vh;background:linear-gradient(180deg,var(--cream) 0%,#F0EDE5 60%,#E8E3DA 100%);display:flex;flex-direction:column;align-items:center;padding:2rem 1rem 3rem}.shared-recipe-card{width:100%;max-width:640px;background:var(--paper);border-radius:20px;box-shadow:0 4px 24px #2c241914,0 1px 4px #2c24190a;padding:2rem;animation:cardFadeIn .4s ease-out}.shared-recipe-header,.shared-recipe-header-skeleton{display:flex;align-items:flex-start;gap:1.25rem}.shared-recipe-emoji{width:80px;height:80px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:2.2rem;flex-shrink:0;box-shadow:0 2px 8px #2c24190f}.shared-recipe-title-area{flex:1;min-width:0}.shared-recipe-title{font-family:Playfair Display,serif;font-size:1.65rem;font-weight:600;color:var(--dark);line-height:1.2;margin:0 0 .3rem}.shared-recipe-tag{display:inline-block;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--sage);background:var(--sage-pale);padding:.15rem .55rem;border-radius:4px;font-weight:500}.shared-recipe-print-btn{flex-shrink:0;margin-left:auto;align-self:center}.shared-recipe-meta{display:flex;gap:1.5rem;margin-top:1rem}.shared-recipe-meta-item{display:flex;align-items:center;gap:.35rem;font-size:.88rem;color:var(--brown)}.shared-recipe-meta-icon{font-size:1rem}.shared-recipe-divider{height:1px;background:var(--border);margin:1.5rem 0}.shared-recipe-section-title{font-family:Playfair Display,serif;font-size:1.1rem;font-weight:600;color:var(--dark);margin-bottom:.75rem}.shared-recipe-ingredients{list-style:none;padding:0;margin:0}.shared-recipe-ingredient{display:flex;align-items:flex-start;gap:.6rem;padding:.3rem 0;font-size:.88rem;color:var(--dark);line-height:1.5}.shared-recipe-ingredient-dot{width:6px;height:6px;border-radius:50%;background:var(--terracotta);flex-shrink:0;margin-top:.45rem}.shared-recipe-steps{list-style:none;padding:0;margin:0;counter-reset:step-counter}.shared-recipe-step{display:flex;align-items:flex-start;gap:.75rem;padding:.55rem 0;font-size:.88rem;color:#3d2e22;line-height:1.6}.shared-recipe-step-num{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--terracotta);color:#fff;font-family:Playfair Display,serif;font-size:.72rem;font-weight:700;flex-shrink:0;margin-top:.1rem}.shared-recipe-notes{font-size:.88rem;color:var(--brown);font-style:italic;line-height:1.6;margin:0}.shared-recipe-cta{width:100%;max-width:640px;margin-top:2rem;animation:cardFadeIn .5s ease-out}.shared-recipe-cta-inner{text-align:center;background:var(--paper);border-radius:16px;padding:2rem 1.5rem;box-shadow:0 2px 12px #2c24190f,0 1px 3px #2c241908;border:1.5px solid var(--border)}.shared-recipe-cta-brand{font-family:Caveat,cursive;font-size:1.6rem;color:var(--brown);margin-bottom:.4rem}.shared-recipe-cta-brand span{color:var(--terracotta);font-weight:600}.shared-recipe-cta-text{font-family:Lora,serif;font-size:.92rem;color:#8a7b70;font-style:italic;margin-bottom:1.25rem}.shared-recipe-cta-btn{font-size:.9rem!important;padding:.7rem 1.8rem!important;border-radius:8px}@media(max-width:600px){.recipe-action-label{display:none}.recipe-action-btn{padding:.4rem .5rem}.translate-dropdown{min-width:160px;right:-.5rem}.language-pill{padding:.45rem .65rem}.language-pill-flag{font-size:1rem}.language-pill-label{font-size:.76rem}.shared-recipe-page{padding:1rem .75rem 2rem}.shared-recipe-card{padding:1.25rem;border-radius:16px}.shared-recipe-emoji{width:60px;height:60px;font-size:1.6rem;border-radius:12px}.shared-recipe-title{font-size:1.3rem}.shared-recipe-header{gap:.75rem}.shared-recipe-meta{gap:1rem}.shared-recipe-cta-inner{padding:1.5rem 1rem}}@media print{.shared-recipe-page{background:#fff;padding:0}.shared-recipe-card{box-shadow:none;border-radius:0;max-width:none;padding:0}.shared-recipe-print-btn,.shared-recipe-cta,.recipe-action-bar{display:none!important}.shared-recipe-divider{background:#ccc}}
