:root{--color-olive: #8B7753;--color-olive-dark: #6B5D42;--color-rustic: #594930;--color-earth: #3D3424;--color-wheat: #D4A574;--color-herb: #6B8E6F;--color-herb-dark: #4a6e4d;--color-terra: #C97064;--color-terra-dark: #a85448;--color-cream: #FFFEF9;--color-linen: #F5F3EE;--color-sand: #E8DCC4;--color-stone: #D4C5A9;--color-aged-wood: #9B8B6F;--color-shadow-base: rgba(89, 73, 48, .08);--font-display: "Lora", Georgia, serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--shadow-xs: 0 1px 3px rgba(89, 73, 48, .08);--shadow-sm: 0 2px 8px rgba(89, 73, 48, .1);--shadow-md: 0 4px 16px rgba(89, 73, 48, .12);--shadow-lg: 0 8px 32px rgba(89, 73, 48, .14);--transition: .2s ease;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-body);background-color:var(--color-linen);color:var(--color-earth);line-height:1.6;min-height:100vh}#root{min-height:100vh;display:flex;flex-direction:column}a{color:var(--color-olive);text-decoration:none;transition:color var(--transition)}a:hover{color:var(--color-rustic)}button{font-family:var(--font-body);cursor:pointer}h1,h2,h3{font-family:var(--font-display);color:var(--color-rustic);line-height:1.3}h4,h5,h6{font-family:var(--font-body);color:var(--color-earth)}input,select,textarea{font-family:var(--font-body)}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:linear-gradient(145deg,var(--color-sand) 0%,var(--color-linen) 55%,var(--color-stone) 100%);position:relative;overflow:hidden}.auth-page:before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 15% 85%,rgba(139,119,83,.04) 0%,transparent 50%),radial-gradient(circle at 85% 15%,rgba(107,93,66,.04) 0%,transparent 50%);pointer-events:none}.auth-container{background:var(--color-cream);padding:2.75rem 2.5rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg),0 1px #d4c5a980;width:100%;max-width:420px;border:1px solid rgba(212,197,169,.4);position:relative;z-index:1}.auth-logo{text-align:center;margin-bottom:2rem}.auth-logo-mark{width:56px;height:56px;margin:0 auto .875rem;background:linear-gradient(135deg,var(--color-olive) 0%,var(--color-olive-dark) 100%);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;box-shadow:0 4px 16px #6b5d4240}.auth-logo-name{font-family:var(--font-display);font-size:1.5rem;font-weight:600;color:var(--color-rustic)}.auth-logo-tagline{font-size:.8rem;color:var(--color-olive);font-style:italic;margin-top:.25rem}.auth-container h1{font-size:1.625rem;text-align:center;color:var(--color-earth);margin-bottom:.375rem}.auth-subtitle{color:var(--color-olive-dark);text-align:center;margin-bottom:2rem;font-size:.9375rem}.auth-form{display:flex;flex-direction:column;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.375rem}.form-group label{font-size:.875rem;font-weight:500;color:var(--color-earth)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.75rem 1rem;background:var(--color-linen);border:1px solid var(--color-stone);border-radius:var(--radius-sm);font-size:1rem;color:var(--color-earth);transition:all var(--transition)}.form-group input::placeholder{color:var(--color-aged-wood)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;background:var(--color-cream);border-color:var(--color-olive);box-shadow:0 0 0 3px #8b77531f}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.auth-footer{text-align:center;margin-top:1.5rem;color:var(--color-olive-dark);font-size:.9rem}.auth-footer a{color:var(--color-olive);font-weight:600}.auth-footer a:hover{color:var(--color-rustic);text-decoration:underline}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1.25rem;border:none;border-radius:var(--radius-sm);font-size:.9375rem;font-weight:600;font-family:var(--font-body);cursor:pointer;transition:all var(--transition);white-space:nowrap}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none!important;box-shadow:none!important}.btn-primary{background:linear-gradient(135deg,var(--color-olive) 0%,var(--color-olive-dark) 100%);color:var(--color-cream);box-shadow:0 2px 8px #6b5d4238}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--color-olive-dark) 0%,var(--color-rustic) 100%);transform:translateY(-1px);box-shadow:0 4px 16px #6b5d424d}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{background:var(--color-cream);color:var(--color-earth);border:1px solid var(--color-stone);box-shadow:var(--shadow-xs)}.btn-secondary:hover:not(:disabled){background:var(--color-linen);border-color:var(--color-aged-wood)}.btn-danger{background:var(--color-terra);color:#fff;box-shadow:0 2px 6px #c9706440}.btn-danger:hover:not(:disabled){background:var(--color-terra-dark);transform:translateY(-1px)}.btn-small{padding:.375rem .875rem;font-size:.8125rem}.btn-icon{background:none;border:none;font-size:1.1rem;cursor:pointer;color:var(--color-aged-wood);padding:.25rem;transition:color var(--transition);line-height:1}.btn-icon:hover{color:var(--color-terra)}.error-message{background:#fff0ee;color:var(--color-terra-dark);border:1px solid rgba(201,112,100,.25);padding:.75rem 1rem;border-radius:var(--radius-sm);margin-bottom:1rem;font-size:.875rem}.loading-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-linen)}.loading-spinner{width:40px;height:40px;border:3px solid var(--color-sand);border-top:3px solid var(--color-olive);border-radius:50%;margin:0 auto 1rem;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.layout{min-height:100vh;display:flex;flex-direction:column}.header{background:var(--color-cream);padding:0 2rem;height:62px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 1px 0 var(--color-stone),var(--shadow-xs);position:sticky;top:0;z-index:100}.header-left{display:flex;align-items:center;gap:2.25rem}.logo{font-family:var(--font-display);color:var(--color-rustic);font-size:1.375rem;font-weight:600;text-decoration:none;letter-spacing:.01em;transition:color var(--transition)}.logo:hover{color:var(--color-olive)}.nav{display:flex;align-items:center;gap:.25rem}.nav a{color:var(--color-olive-dark);text-decoration:none;font-weight:500;font-size:.9rem;padding:.375rem .75rem;border-radius:var(--radius-sm);transition:all var(--transition)}.nav a:hover{color:var(--color-rustic);background:var(--color-linen)}.nav a.active{color:var(--color-rustic);background:var(--color-sand);font-weight:600}.header-right{display:flex;align-items:center;gap:.875rem}.user-name{color:var(--color-olive-dark);font-size:.875rem;font-weight:500}.main-content{padding:2rem;max-width:1200px;margin:0 auto;width:100%;flex:1}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.75rem}.page-header h2{font-size:1.625rem;color:var(--color-rustic)}.page-header-actions{display:flex;gap:.5rem;align-items:center}.back-link{display:inline-flex;align-items:center;gap:.375rem;color:var(--color-olive);font-size:.875rem;font-weight:500;margin-bottom:1.25rem;transition:color var(--transition)}.back-link:hover{color:var(--color-rustic)}.dashboard{min-height:100vh}.welcome-card{background:var(--color-cream);padding:2rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-stone)}.welcome-card h2{margin-bottom:.75rem}.welcome-card ul{margin-top:.75rem;margin-left:1.5rem}.welcome-card li{margin-bottom:.5rem;color:var(--color-olive-dark)}.search-form{display:flex;gap:.5rem;margin-bottom:1.75rem}.search-form input{flex:1;padding:.75rem 1rem;background:var(--color-cream);border:1px solid var(--color-stone);border-radius:var(--radius-sm);font-size:1rem;color:var(--color-earth);transition:all var(--transition)}.search-form input::placeholder{color:var(--color-aged-wood)}.search-form input:focus{outline:none;border-color:var(--color-olive);box-shadow:0 0 0 3px #8b77531f}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:1.5rem}.recipe-card{background:var(--color-cream);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid var(--color-stone);overflow:hidden;transition:box-shadow var(--transition),transform var(--transition)}.recipe-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.recipe-card-image{width:100%;height:180px;overflow:hidden;background:var(--color-sand)}.recipe-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}.recipe-card:hover .recipe-card-image img{transform:scale(1.04)}.recipe-card-link{display:block;padding:1.25rem 1.25rem 1rem;text-decoration:none;color:inherit}.recipe-card h3{font-size:1.0625rem;margin-bottom:.4rem;color:var(--color-rustic)}.recipe-card .recipe-description{color:var(--color-olive-dark);font-size:.85rem;margin-bottom:.875rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.5}.recipe-meta{display:flex;gap:.875rem;font-size:.8125rem;color:var(--color-aged-wood);align-items:center}.recipe-card-actions{padding:.75rem 1.25rem;border-top:1px solid var(--color-linen);display:flex;gap:.5rem}.difficulty{padding:.2rem .6rem;border-radius:20px;font-size:.72rem;font-weight:600;text-transform:capitalize;letter-spacing:.03em}.difficulty.easy{background:#6b8e6f26;color:var(--color-herb-dark)}.difficulty.medium{background:#d4a57433;color:#8a5a20}.difficulty.hard{background:#c9706426;color:var(--color-terra-dark)}.meal-type-tags{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.4rem}.meal-type-tag{font-size:.68rem;padding:.15rem .5rem;border-radius:20px;background:#8b77531a;color:var(--color-rustic);text-transform:capitalize;font-weight:500}.recipe-detail-page .recipe-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem}.recipe-detail-page h2{margin-top:.5rem;margin-bottom:.5rem}.recipe-image{margin-bottom:2rem;border-radius:var(--radius-md);overflow:hidden;max-height:420px;box-shadow:var(--shadow-sm)}.recipe-image img{width:100%;height:100%;object-fit:cover}.recipe-actions{display:flex;gap:.5rem}.recipe-info{display:flex;gap:0;background:var(--color-cream);border-radius:var(--radius-md);margin-bottom:2rem;border:1px solid var(--color-stone);overflow:hidden;box-shadow:var(--shadow-xs)}.info-item{flex:1;display:flex;flex-direction:column;gap:.25rem;padding:1rem 1.25rem;border-right:1px solid var(--color-linen)}.info-item:last-child{border-right:none}.info-item strong{font-size:.68rem;color:var(--color-aged-wood);text-transform:uppercase;letter-spacing:.07em;font-weight:600;font-family:var(--font-body)}.recipe-content{display:grid;grid-template-columns:1fr 2fr;gap:1.75rem}.ingredients-section,.instructions-section{background:var(--color-cream);padding:1.5rem;border-radius:var(--radius-md);border:1px solid var(--color-stone);box-shadow:var(--shadow-xs)}.ingredients-section h3,.instructions-section h3{margin-bottom:1.125rem;font-size:1.0625rem;color:var(--color-rustic);padding-bottom:.625rem;border-bottom:1px solid var(--color-linen)}.ingredients-list{list-style:none}.ingredients-list li{padding:.5rem 0;border-bottom:1px solid var(--color-linen);display:flex;gap:.5rem;font-size:.9rem}.ingredients-list li:last-child{border-bottom:none}.ingredients-list .quantity{font-weight:600;color:var(--color-olive-dark)}.ingredients-list .unit{color:var(--color-aged-wood)}.ingredients-list .notes{color:var(--color-aged-wood);font-style:italic}.instructions-list{padding-left:1.25rem}.instructions-list li{padding:.75rem 0;border-bottom:1px solid var(--color-linen);font-size:.9375rem;line-height:1.65;color:var(--color-earth)}.instructions-list li:last-child{border-bottom:none}.recipe-source{margin-top:2rem}.recipe-source a{color:var(--color-olive);font-weight:500}.recipe-form{background:var(--color-cream);padding:2rem;border-radius:var(--radius-md);max-width:800px;border:1px solid var(--color-stone);box-shadow:var(--shadow-sm)}.recipe-form .form-row{grid-template-columns:repeat(4,1fr)}.recipe-form textarea,.recipe-form select{padding:.75rem 1rem;border:1px solid var(--color-stone);border-radius:var(--radius-sm);font-size:.9375rem;background:var(--color-linen);color:var(--color-earth);width:100%;transition:all var(--transition)}.recipe-form textarea:focus,.recipe-form select:focus{outline:none;border-color:var(--color-olive);background:var(--color-cream);box-shadow:0 0 0 3px #8b77531f}.form-section{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--color-linen)}.form-section h3{margin-bottom:1rem;font-size:1rem;color:var(--color-rustic)}.ingredient-row,.instruction-row{display:flex;gap:.5rem;margin-bottom:.5rem;align-items:flex-start}.input-small{width:80px;padding:.5rem .625rem;border:1px solid var(--color-stone);border-radius:var(--radius-sm);background:var(--color-linen);color:var(--color-earth);font-size:.875rem;transition:all var(--transition)}.input-small:focus{outline:none;border-color:var(--color-olive);background:var(--color-cream);box-shadow:0 0 0 3px #8b77531f}.input-large{flex:1;padding:.5rem .625rem;border:1px solid var(--color-stone);border-radius:var(--radius-sm);background:var(--color-linen);color:var(--color-earth);font-size:.875rem;transition:all var(--transition)}.input-large:focus{outline:none;border-color:var(--color-olive);background:var(--color-cream);box-shadow:0 0 0 3px #8b77531f}.instruction-row textarea{flex:1}.step-number{font-weight:700;color:var(--color-olive);padding-top:.5rem;font-size:.875rem;min-width:1.5rem}.form-actions{margin-top:2rem;display:flex;gap:.75rem}.image-preview{margin-top:.75rem;max-width:300px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--color-stone)}.image-preview img{width:100%;height:auto;display:block}.checkbox-group{display:flex;flex-wrap:wrap;gap:1rem}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:400;font-size:.9rem;color:var(--color-earth)}.checkbox-label input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--color-olive)}.empty-state{text-align:center;padding:3.5rem 2rem;background:var(--color-cream);border-radius:var(--radius-md);border:1px dashed var(--color-stone)}.empty-state p{margin-bottom:1.25rem;color:var(--color-aged-wood);font-size:1rem}.meal-plan-page .page-header{margin-bottom:1.5rem}.week-navigation{display:flex;gap:.5rem}.meal-calendar{background:var(--color-cream);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--color-stone)}.calendar-header{display:grid;grid-template-columns:68px repeat(7,1fr);background:var(--color-linen);border-bottom:1px solid var(--color-stone)}.day-column-header{padding:.625rem .25rem;text-align:center;font-weight:600;font-size:.68rem;color:var(--color-olive-dark);text-transform:uppercase;letter-spacing:.05em}.day-column-header.today{background:var(--color-olive);color:var(--color-cream)}.calendar-row{display:grid;grid-template-columns:68px repeat(7,1fr);border-bottom:1px solid var(--color-linen)}.calendar-row:last-child{border-bottom:none}.meal-type-column{padding:.5rem .375rem;font-weight:600;font-size:.62rem;color:var(--color-aged-wood);background:var(--color-linen);border-right:1px solid var(--color-stone);display:flex;align-items:flex-start;text-transform:uppercase;letter-spacing:.04em}.day-cell{min-height:82px;max-height:124px;padding:.3rem;border-right:1px solid var(--color-linen);position:relative;overflow:hidden}.day-cell:last-child{border-right:none}.day-cell.today{background:#8b77530d}.meal-card{background:var(--color-linen);border-radius:4px;margin-bottom:.25rem;overflow:hidden;border:1px solid var(--color-stone);max-width:100%;transition:box-shadow var(--transition)}.meal-card:hover{box-shadow:var(--shadow-xs)}.meal-card-image{width:100%;height:28px;object-fit:cover;display:block}.meal-card-content{padding:.15rem .3rem;display:flex;justify-content:space-between;align-items:center;gap:.15rem;min-width:0}.meal-title{font-size:.625rem;color:var(--color-earth);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:500}.meal-title:hover{color:var(--color-olive)}.meal-delete-btn{background:none;border:none;color:var(--color-stone);cursor:pointer;font-size:.7rem;padding:0;line-height:1;flex-shrink:0;transition:color var(--transition)}.meal-delete-btn:hover{color:var(--color-terra)}.add-meal-btn{width:100%;padding:.2rem;background:transparent;border:1px dashed var(--color-stone);border-radius:4px;color:var(--color-aged-wood);cursor:pointer;font-size:.7rem;transition:all var(--transition)}.add-meal-btn:hover{background:var(--color-linen);border-color:var(--color-olive);color:var(--color-olive)}.modal-overlay{position:fixed;inset:0;background:#3d342473;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal{background:var(--color-cream);padding:2rem;border-radius:var(--radius-lg);width:100%;max-width:400px;box-shadow:var(--shadow-lg);border:1px solid var(--color-stone)}.modal h3{margin-bottom:.375rem;font-size:1.125rem}.modal-subtitle{color:var(--color-olive-dark);margin-bottom:1.5rem;font-size:.9rem}.modal select{width:100%;padding:.75rem 1rem;border:1px solid var(--color-stone);border-radius:var(--radius-sm);font-size:1rem;background:var(--color-linen);color:var(--color-earth);transition:all var(--transition)}.modal select:focus{outline:none;border-color:var(--color-olive);box-shadow:0 0 0 3px #8b77531f}.modal-actions{margin-top:1.5rem;display:flex;gap:.5rem}.no-recipes-message{color:var(--color-aged-wood);font-size:.875rem;margin-top:.5rem}.no-recipes-message a{color:var(--color-olive);font-weight:500}.filter-toggle{margin-top:.5rem;font-size:.875rem}.modal-large{max-width:600px}.ai-suggestions-list{max-height:400px;overflow-y:auto;margin-bottom:1rem}.ai-suggestions-list h4{margin-bottom:1rem;color:var(--color-rustic);font-size:.9375rem}.ai-suggestion-item{display:flex;gap:1rem;padding:.75rem;border-bottom:1px solid var(--color-linen)}.ai-suggestion-item:last-child{border-bottom:none}.ai-suggestion-date{min-width:100px;font-size:.875rem;color:var(--color-olive-dark)}.ai-suggestion-meal-type{display:block;font-size:.7rem;color:var(--color-olive);text-transform:capitalize;font-weight:600;letter-spacing:.04em}.ai-suggestion-recipe{flex:1}.ai-suggestion-recipe strong{color:var(--color-earth)}.ai-suggestion-reason{font-size:.8rem;color:var(--color-aged-wood);margin-top:.25rem;font-style:italic}.btn-smart-week{background:linear-gradient(135deg,var(--color-herb) 0%,var(--color-herb-dark) 100%);color:var(--color-cream);box-shadow:0 2px 8px #6b8e6f40;position:relative}.btn-smart-week:hover:not(:disabled){background:linear-gradient(135deg,var(--color-herb-dark) 0%,#3a5c3c 100%);box-shadow:0 4px 16px #6b8e6f4d;transform:translateY(-1px)}.btn-smart-week:before{content:"✨";margin-right:.4rem}.smart-week-stats{display:flex;gap:.75rem;margin-bottom:1rem;padding:1rem;background:linear-gradient(135deg,#6b8e6f1a,#6b8e6f0d);border-radius:var(--radius-sm);border:1px solid rgba(107,142,111,.2)}.stat-item{flex:1;text-align:center;padding:.5rem}.stat-value{display:block;font-size:1.5rem;font-weight:700;color:var(--color-herb-dark)}.stat-label{display:block;font-size:.7rem;color:var(--color-herb);text-transform:uppercase;letter-spacing:.05em;margin-top:.2rem}.stat-item.savings .stat-value{color:var(--color-rustic)}.stat-item.score .stat-value{color:var(--color-olive)}.stat-item.shared .stat-value{color:var(--color-wheat)}.shared-ingredients-list{font-size:.85rem;color:var(--color-olive-dark);margin-bottom:1rem;padding:.75rem 1rem;background:var(--color-linen);border-radius:var(--radius-sm);border:1px solid var(--color-stone)}.shared-ingredients-list strong{color:var(--color-earth)}.ingredient-score{display:inline-block;margin-left:.5rem;padding:.1rem .4rem;background:#8b77531f;color:var(--color-olive-dark);font-size:.68rem;border-radius:20px;font-weight:600}.smart-week-toggle{display:flex!important;align-items:flex-start!important;gap:.75rem;padding:1rem;background:#6b8e6f14;border-radius:var(--radius-sm);border:1px solid rgba(107,142,111,.2);cursor:pointer;transition:all var(--transition)}.smart-week-toggle:hover{background:#6b8e6f21}.smart-week-toggle input[type=checkbox]{width:18px;height:18px;margin-top:2px;accent-color:var(--color-herb);cursor:pointer}.smart-week-label{display:flex;flex-direction:column;gap:.2rem}.smart-week-label strong{color:var(--color-herb-dark);font-size:.9375rem}.smart-week-label small{color:var(--color-herb);font-size:.8125rem}.notes-textarea{width:100%;padding:.75rem 1rem;border:1px solid var(--color-stone);border-radius:var(--radius-sm);font-size:.9375rem;font-family:var(--font-body);background:var(--color-linen);color:var(--color-earth);resize:vertical;min-height:100px;transition:all var(--transition)}.notes-textarea:focus{outline:none;border-color:var(--color-olive);background:var(--color-cream);box-shadow:0 0 0 3px #8b77531f}.notes-textarea::placeholder{color:var(--color-aged-wood);font-size:.875rem}.recipe-import-page{max-width:600px}.import-description{color:var(--color-olive-dark);margin-bottom:1.5rem}.import-form{background:var(--color-cream);padding:1.5rem;border-radius:var(--radius-md);margin-bottom:1.5rem;border:1px solid var(--color-stone);box-shadow:var(--shadow-xs)}.import-form .form-group{margin-bottom:1rem}.import-form input[type=url]{width:100%;padding:.75rem 1rem;border:1px solid var(--color-stone);border-radius:var(--radius-sm);font-size:1rem;background:var(--color-linen);color:var(--color-earth);transition:all var(--transition)}.import-form input[type=url]::placeholder{color:var(--color-aged-wood)}.import-form input[type=url]:focus{outline:none;border-color:var(--color-olive);background:var(--color-cream);box-shadow:0 0 0 3px #8b77531f}.import-status{background:var(--color-cream);padding:2rem;border-radius:var(--radius-md);text-align:center;margin-bottom:1.5rem;border:1px solid var(--color-stone)}.import-success{background:#6b8e6f14;border:1px solid rgba(107,142,111,.25);padding:1.5rem;border-radius:var(--radius-md);margin-bottom:1.5rem}.import-success h3{color:var(--color-herb-dark);margin-bottom:1rem}.imported-recipe-preview{background:var(--color-cream);padding:1rem;border-radius:var(--radius-sm);margin-bottom:1rem;border:1px solid var(--color-stone)}.imported-recipe-preview h4{margin-bottom:.5rem;color:var(--color-rustic)}.imported-recipe-preview p{color:var(--color-olive-dark);font-size:.9rem;margin-bottom:.5rem}.recipe-stats{font-size:.875rem;color:var(--color-aged-wood)}.import-actions{display:flex;gap:.5rem;flex-wrap:wrap}.import-tips{background:var(--color-cream);padding:1.5rem;border-radius:var(--radius-md);border:1px solid var(--color-stone)}.import-tips h4{margin-bottom:.75rem;color:var(--color-rustic)}.import-tips ul{margin-left:1.25rem;color:var(--color-olive-dark)}.import-tips li{margin-bottom:.5rem;font-size:.9rem}.shopping-list-page .page-header{margin-bottom:1.5rem}.shopping-list-container{display:grid;grid-template-columns:270px 1fr;gap:1.5rem;min-height:500px}.shopping-lists-sidebar{background:var(--color-cream);border-radius:var(--radius-md);padding:1rem;box-shadow:var(--shadow-sm);border:1px solid var(--color-stone);align-self:start}.shopping-lists-sidebar h3{font-size:.875rem;color:var(--color-rustic);margin-bottom:1rem;padding-bottom:.625rem;border-bottom:1px solid var(--color-linen);text-transform:uppercase;letter-spacing:.06em}.no-lists-message{font-size:.875rem;color:var(--color-aged-wood)}.shopping-lists-nav{list-style:none}.shopping-list-nav-item{display:flex;justify-content:space-between;align-items:center;padding:.625rem .75rem;border-radius:var(--radius-sm);cursor:pointer;margin-bottom:.25rem;transition:background-color var(--transition)}.shopping-list-nav-item:hover{background-color:var(--color-linen)}.shopping-list-nav-item.active{background-color:var(--color-sand);border-left:3px solid var(--color-olive);padding-left:calc(.75rem - 3px)}.list-nav-content{display:flex;flex-direction:column;gap:.2rem}.list-nav-dates{font-size:.875rem;color:var(--color-earth);font-weight:500}.list-nav-count{font-size:.75rem;color:var(--color-aged-wood)}.list-delete-btn{opacity:0;transition:opacity var(--transition)}.shopping-list-nav-item:hover .list-delete-btn{opacity:1}.shopping-list-detail{background:var(--color-cream);border-radius:var(--radius-md);padding:1.5rem;box-shadow:var(--shadow-sm);border:1px solid var(--color-stone)}.shopping-list-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.shopping-list-header h3{margin:0}.shopping-list-progress{color:var(--color-aged-wood);font-size:.875rem;margin-top:.25rem}.progress-bar{height:6px;background:var(--color-linen);border-radius:3px;margin-bottom:1.5rem;overflow:hidden}.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--color-olive) 0%,var(--color-herb) 100%);border-radius:3px;transition:width .4s ease}.shopping-items-list{list-style:none}.shopping-item{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;border-bottom:1px solid var(--color-linen);cursor:pointer;transition:background-color var(--transition);border-radius:var(--radius-sm)}.shopping-item:hover{background-color:var(--color-linen)}.shopping-item:last-child{border-bottom:none}.shopping-item.checked{opacity:.55}.shopping-item.checked .shopping-item-name{text-decoration:line-through;color:var(--color-aged-wood)}.shopping-item-checkbox{width:18px;height:18px;margin-top:2px;cursor:pointer;accent-color:var(--color-olive)}.shopping-item-content{flex:1;display:flex;flex-direction:column;gap:.2rem}.shopping-item-name{color:var(--color-earth);font-size:.9375rem}.item-quantity{font-weight:600;margin-right:.25rem;color:var(--color-olive-dark)}.item-unit{color:var(--color-aged-wood);margin-right:.5rem}.shopping-item-notes{font-size:.8rem;color:var(--color-aged-wood);font-style:italic}.shopping-list-page .modal input[type=date],.shopping-list-page .modal input[type=text]{width:100%;padding:.75rem 1rem;border:1px solid var(--color-stone);border-radius:var(--radius-sm);font-size:1rem;background:var(--color-linen);color:var(--color-earth);transition:all var(--transition)}.shopping-list-page .modal input:focus{outline:none;border-color:var(--color-olive);background:var(--color-cream);box-shadow:0 0 0 3px #8b77531f}.shopping-list-page .modal .form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:768px){.recipe-content{grid-template-columns:1fr}.recipe-form .form-row{grid-template-columns:1fr 1fr}.header{padding:0 1rem}.header-left{gap:1rem}.nav{gap:0}.nav a{padding:.375rem .5rem;font-size:.8125rem}.main-content{padding:1.25rem 1rem}.shopping-list-container{grid-template-columns:1fr}.shopping-lists-sidebar{order:2}.shopping-list-detail{order:1}.recipe-info{flex-wrap:wrap}}@media(max-width:480px){.form-row{grid-template-columns:1fr}.auth-container{padding:2rem 1.5rem}.recipe-form .form-row{grid-template-columns:1fr}.header{flex-direction:column;height:auto;padding:.75rem 1rem;gap:.5rem}.header-left{flex-direction:column;gap:.5rem;align-items:flex-start;width:100%}.smart-week-stats{flex-wrap:wrap}}.landing{min-height:100vh;background:#fdfcf8;color:var(--color-earth);font-family:var(--font-body)}.landing-nav{display:flex;justify-content:space-between;align-items:center;padding:1.125rem 2.5rem;background:#fdfcf8eb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid rgba(212,197,169,.3);position:sticky;top:0;z-index:100}.landing-nav-logo{font-family:var(--font-display);font-size:1.375rem;font-weight:600;color:var(--color-rustic);letter-spacing:.01em}.landing-nav-actions{display:flex;align-items:center;gap:1rem}.landing-nav-link{color:var(--color-olive-dark);font-size:.9rem;font-weight:500;text-decoration:none;transition:color var(--transition)}.landing-nav-link:hover{color:var(--color-rustic)}.landing-nav-cta{padding:.5rem 1.125rem;background:var(--color-rustic);color:var(--color-cream);border-radius:100px;font-size:.875rem;font-weight:600;text-decoration:none;transition:all var(--transition);box-shadow:0 2px 8px #59493033}.landing-nav-cta:hover{background:var(--color-earth);transform:translateY(-1px);box-shadow:0 4px 16px #59493040;color:var(--color-cream)}.landing-hero{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:4rem;padding:5rem 2.5rem 6rem;max-width:1200px;margin:0 auto}.landing-hero-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.35rem .875rem;background:#8b77531a;border:1px solid rgba(139,119,83,.2);border-radius:100px;font-size:.8125rem;font-weight:600;color:var(--color-olive-dark);margin-bottom:1.5rem;letter-spacing:.02em}.landing-hero-headline{font-family:var(--font-display);font-size:clamp(2.5rem,4.5vw,3.75rem);font-weight:600;color:var(--color-rustic);line-height:1.15;margin-bottom:1.25rem}.landing-hero-headline em{font-style:italic;color:var(--color-olive)}.landing-hero-body{font-size:1.125rem;color:var(--color-olive-dark);line-height:1.7;margin-bottom:2rem;max-width:480px}.landing-hero-actions{display:flex;align-items:center;gap:1.25rem;margin-bottom:1rem;flex-wrap:wrap}.btn-landing-primary{display:inline-flex;align-items:center;padding:.875rem 1.75rem;background:linear-gradient(135deg,var(--color-rustic) 0%,var(--color-earth) 100%);color:var(--color-cream);border-radius:100px;font-size:1rem;font-weight:600;text-decoration:none;transition:all var(--transition);box-shadow:0 4px 20px #59493047;letter-spacing:.01em}.btn-landing-primary:hover{transform:translateY(-2px);box-shadow:0 8px 30px #59493059;color:var(--color-cream)}.btn-landing-primary--large{padding:1rem 2.25rem;font-size:1.0625rem}.btn-landing-ghost{color:var(--color-olive-dark);font-size:.9375rem;font-weight:500;text-decoration:none;transition:color var(--transition)}.btn-landing-ghost:hover{color:var(--color-rustic)}.landing-hero-footnote{font-size:.8rem;color:var(--color-aged-wood)}.landing-hero-visual{position:relative;height:440px}.hero-blob{position:absolute;border-radius:50%;filter:blur(60px);z-index:0}.hero-blob-1{width:280px;height:280px;background:#8b77531f;top:20px;right:20px}.hero-blob-2{width:200px;height:200px;background:#6b8e6f1a;bottom:40px;left:10px}.hero-card{position:absolute;background:var(--color-cream);border-radius:var(--radius-lg);padding:1.125rem 1.375rem;border:1px solid var(--color-stone);box-shadow:var(--shadow-md);z-index:1;max-width:280px;transition:transform .4s ease}.hero-card:hover{transform:translateY(-3px) scale(1.01)}.hero-card-1{top:0;right:20px;width:260px}.hero-card-2{top:130px;left:0;width:270px}.hero-card-3{bottom:20px;right:10px;width:290px}.hero-card-label{font-size:.68rem;font-weight:600;color:var(--color-olive);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.4rem}.hero-card-title{font-family:var(--font-display);font-size:1rem;font-weight:500;color:var(--color-rustic);margin-bottom:.375rem;line-height:1.35}.hero-card-meta{font-size:.78rem;color:var(--color-aged-wood)}.landing-proof-bar{display:flex;align-items:center;justify-content:center;gap:1.5rem;padding:1rem 2rem;background:var(--color-sand);font-size:.875rem;color:var(--color-olive-dark);font-weight:500}.proof-divider{width:1px;height:16px;background:var(--color-stone)}.landing-section{padding:5rem 2.5rem}.landing-section-inner{max-width:1100px;margin:0 auto}.landing-section-title{font-family:var(--font-display);font-size:clamp(1.75rem,3vw,2.5rem);font-weight:600;color:var(--color-rustic);text-align:center;margin-bottom:.875rem}.landing-section-sub{text-align:center;color:var(--color-olive-dark);font-size:1.0625rem;line-height:1.65;max-width:560px;margin:0 auto 3.5rem}.landing-features{background:#fdfcf8}.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.75rem}.feature-card{background:var(--color-cream);border:1px solid var(--color-stone);border-radius:var(--radius-lg);padding:2rem 1.75rem;box-shadow:var(--shadow-xs);transition:box-shadow var(--transition),transform var(--transition)}.feature-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.feature-icon{font-size:2rem;margin-bottom:1rem;display:block}.feature-card h3{font-size:1.125rem;color:var(--color-rustic);margin-bottom:.625rem}.feature-card p{font-size:.9375rem;color:var(--color-olive-dark);line-height:1.65}.landing-how{background:var(--color-linen)}.steps-row{display:flex;gap:0;position:relative}.step-card{flex:1;background:var(--color-cream);border:1px solid var(--color-stone);border-radius:var(--radius-md);padding:2rem 1.5rem;position:relative}.step-card+.step-card{margin-left:1.25rem}.step-number{font-family:var(--font-display);font-size:2rem;font-weight:600;color:var(--color-stone);display:block;margin-bottom:.875rem;line-height:1}.step-card h3{font-size:1.0625rem;color:var(--color-rustic);margin-bottom:.5rem}.step-card p{font-size:.9rem;color:var(--color-olive-dark);line-height:1.6}.step-arrow{display:none}.landing-testimonials{background:#fdfcf8}.testimonials-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.testimonial-card{background:var(--color-cream);border:1px solid var(--color-stone);border-radius:var(--radius-lg);padding:1.75rem;box-shadow:var(--shadow-xs)}.testimonial-stars{color:var(--color-wheat);font-size:.875rem;margin-bottom:.875rem;letter-spacing:.05em}.testimonial-card blockquote{font-size:.9375rem;color:var(--color-earth);line-height:1.65;margin-bottom:1.25rem;font-style:italic;quotes:none}.testimonial-author{display:flex;flex-direction:column;gap:.2rem}.testimonial-author strong{color:var(--color-rustic);font-size:.875rem}.testimonial-author span{color:var(--color-aged-wood);font-size:.8rem}.landing-cta-section{padding:6rem 2.5rem;background:linear-gradient(145deg,var(--color-rustic) 0%,var(--color-earth) 100%);text-align:center;position:relative;overflow:hidden}.landing-cta-section:before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 20% 50%,rgba(255,255,255,.04) 0%,transparent 50%),radial-gradient(circle at 80% 50%,rgba(255,255,255,.04) 0%,transparent 50%)}.landing-cta-inner{position:relative;max-width:600px;margin:0 auto}.landing-cta-section h2{font-family:var(--font-display);font-size:clamp(1.75rem,3vw,2.5rem);color:var(--color-cream);margin-bottom:1rem}.landing-cta-section p{color:#fffef9bf;font-size:1.0625rem;margin-bottom:2.25rem;line-height:1.6}.landing-cta-section .btn-landing-primary{background:var(--color-cream);color:var(--color-rustic);box-shadow:0 4px 24px #0003}.landing-cta-section .btn-landing-primary:hover{background:var(--color-linen);color:var(--color-rustic)}.landing-footer{padding:2rem 2.5rem;background:var(--color-earth);display:flex;align-items:center;gap:2rem;flex-wrap:wrap}.landing-footer-logo{font-family:var(--font-display);font-size:1.125rem;color:var(--color-cream);font-weight:600}.landing-footer-links{display:flex;gap:1.25rem;margin-left:auto}.landing-footer-links a{color:#fffef999;font-size:.875rem;transition:color var(--transition)}.landing-footer-links a:hover{color:var(--color-cream)}.landing-footer-copy{color:#fffef973;font-size:.8125rem;width:100%}@media(max-width:960px){.landing-hero{grid-template-columns:1fr;padding:3.5rem 1.5rem 4rem;gap:3rem}.landing-hero-visual{height:320px}.hero-card-1{top:0;right:0}.hero-card-2{top:100px;left:0}.hero-card-3{bottom:0;right:0;width:260px}.features-grid,.testimonials-grid{grid-template-columns:1fr}.steps-row{flex-direction:column;gap:1rem}.step-card+.step-card{margin-left:0}.landing-section{padding:3.5rem 1.5rem}.landing-nav{padding:1rem 1.25rem}}@media(max-width:600px){.landing-hero-visual{display:none}.landing-proof-bar{flex-direction:column;gap:.5rem;text-align:center}.proof-divider{width:40px;height:1px}.landing-footer{flex-direction:column;align-items:flex-start;gap:.75rem}.landing-footer-links{margin-left:0}}.home-page{display:flex;flex-direction:column;gap:2.5rem}.home-greeting{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;flex-wrap:wrap}.home-greeting-text{font-size:1.75rem;color:var(--color-rustic);margin-bottom:.3rem}.home-greeting-sub{color:var(--color-olive-dark);font-size:.9375rem}.home-greeting-actions{display:flex;gap:.5rem;flex-shrink:0}.home-section{display:flex;flex-direction:column;gap:1rem}.home-section-header{display:flex;align-items:baseline;justify-content:space-between}.home-section-title{font-size:1.125rem;color:var(--color-rustic);font-family:var(--font-display);font-weight:600}.home-section-link{font-size:.875rem;font-weight:500;color:var(--color-olive)}.home-section-link:hover{color:var(--color-rustic)}.home-loading{display:flex;justify-content:center;padding:2rem}.home-empty{background:var(--color-cream);border:1px dashed var(--color-stone);border-radius:var(--radius-md);padding:2.5rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:1rem}.home-empty p{color:var(--color-aged-wood);font-size:.9375rem}.today-meals-row{display:flex;gap:1rem;overflow-x:auto;padding-bottom:.25rem}.today-meal-card{display:flex;flex-direction:column;background:var(--color-cream);border:1px solid var(--color-stone);border-radius:var(--radius-md);overflow:hidden;min-width:180px;max-width:220px;text-decoration:none;transition:box-shadow var(--transition),transform var(--transition);flex-shrink:0}.today-meal-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.today-meal-image{height:110px;overflow:hidden;background:var(--color-sand)}.today-meal-image img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.today-meal-card:hover .today-meal-image img{transform:scale(1.05)}.today-meal-body{padding:.875rem;display:flex;flex-direction:column;gap:.25rem}.today-meal-type{font-size:.68rem;font-weight:700;color:var(--color-olive);text-transform:uppercase;letter-spacing:.07em}.today-meal-title{font-size:.9rem;font-weight:600;color:var(--color-rustic);line-height:1.3}.today-meal-meta{font-size:.775rem;color:var(--color-aged-wood);margin-top:.125rem}.week-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem}.week-day-card{background:var(--color-cream);border:1px solid var(--color-stone);border-radius:var(--radius-md);padding:.75rem .625rem;min-height:110px;display:flex;flex-direction:column;gap:.5rem}.week-day-card--today{border-color:var(--color-olive);background:#8b77530a;box-shadow:0 0 0 2px #8b775326}.week-day-label{display:flex;flex-direction:column;align-items:center;gap:.1rem;font-size:.65rem;font-weight:700;color:var(--color-aged-wood);text-transform:uppercase;letter-spacing:.06em;padding-bottom:.5rem;border-bottom:1px solid var(--color-linen)}.week-day-card--today .week-day-label{color:var(--color-olive)}.week-day-num{font-size:1.125rem;font-weight:700;color:var(--color-earth);letter-spacing:0;line-height:1}.week-day-card--today .week-day-num{color:var(--color-olive)}.week-day-skeleton{flex:1;background:var(--color-linen);border-radius:4px;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.week-day-meals{list-style:none;display:flex;flex-direction:column;gap:.3rem;flex:1}.week-day-meal{display:flex;align-items:flex-start;gap:.3rem}.week-day-meal-type{width:14px;height:14px;background:var(--color-olive);color:var(--color-cream);border-radius:3px;font-size:.55rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}.week-day-meal-name{font-size:.68rem;color:var(--color-earth);line-height:1.35;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.week-day-empty{display:block;font-size:.7rem;color:var(--color-aged-wood);text-align:center;padding:.375rem .25rem;border:1px dashed var(--color-stone);border-radius:4px;text-decoration:none;transition:all var(--transition);margin-top:auto}.week-day-empty:hover{color:var(--color-olive);border-color:var(--color-olive);background:#8b77530a}.home-recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.home-recipe-card{background:var(--color-cream);border:1px solid var(--color-stone);border-radius:var(--radius-md);overflow:hidden;text-decoration:none;transition:box-shadow var(--transition),transform var(--transition);display:flex;flex-direction:column}.home-recipe-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.home-recipe-image{height:130px;overflow:hidden;background:var(--color-sand)}.home-recipe-image img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.home-recipe-card:hover .home-recipe-image img{transform:scale(1.04)}.home-recipe-image--placeholder{display:flex;align-items:center;justify-content:center;font-size:2rem}.home-recipe-body{padding:.875rem;display:flex;flex-direction:column;gap:.4rem;flex:1}.home-recipe-title{font-size:.875rem;font-weight:600;color:var(--color-rustic);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.home-recipe-meta{display:flex;align-items:center;gap:.5rem;font-size:.775rem;color:var(--color-aged-wood);margin-top:auto}.quick-actions-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.quick-action-card{display:flex;flex-direction:column;align-items:center;gap:.375rem;padding:1.375rem 1rem;background:var(--color-cream);border:1px solid var(--color-stone);border-radius:var(--radius-md);text-decoration:none;transition:all var(--transition);text-align:center}.quick-action-card:hover{background:var(--color-linen);border-color:var(--color-olive);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.quick-action-icon{font-size:1.625rem;margin-bottom:.25rem}.quick-action-label{font-size:.875rem;font-weight:600;color:var(--color-rustic)}.quick-action-sub{font-size:.75rem;color:var(--color-aged-wood)}@media(max-width:900px){.week-strip{grid-template-columns:repeat(7,minmax(80px,1fr));overflow-x:auto;padding-bottom:.25rem}.quick-actions-row{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.home-greeting{flex-direction:column;align-items:flex-start}.home-recipe-grid,.quick-actions-row{grid-template-columns:repeat(2,1fr)}}.user-name-link{font-size:.875rem;font-weight:500;color:var(--color-olive-dark);text-decoration:none;padding:.3rem .625rem;border-radius:var(--radius-sm);transition:all var(--transition);border:1px solid transparent}.user-name-link:hover,.user-name-link.active{color:var(--color-rustic);background:var(--color-linen);border-color:var(--color-stone)}.profile-page{max-width:720px}.profile-layout{display:flex;flex-direction:column;gap:1.25rem}.profile-form{display:contents}.profile-card{background:var(--color-cream);border:1px solid var(--color-stone);border-radius:var(--radius-md);padding:1.625rem;box-shadow:var(--shadow-xs)}.profile-card-title{font-size:1rem;color:var(--color-rustic);margin-bottom:.375rem}.profile-card-desc{font-size:.875rem;color:var(--color-aged-wood);margin-bottom:1.25rem;line-height:1.55}.profile-account-row{display:flex;align-items:center;gap:1rem}.profile-avatar{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,var(--color-olive) 0%,var(--color-olive-dark) 100%);color:var(--color-cream);font-family:var(--font-display);font-size:1.125rem;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0}.profile-name{font-weight:600;color:var(--color-earth);margin-bottom:.2rem}.profile-email{font-size:.875rem;color:var(--color-aged-wood)}.profile-field{display:flex;flex-direction:column;gap:.5rem}.profile-field label{font-size:.875rem;font-weight:500;color:var(--color-earth)}.profile-field-hint{font-size:.8rem;color:var(--color-aged-wood);font-style:italic}.family-size-control{display:inline-flex;align-items:center;gap:0;border:1px solid var(--color-stone);border-radius:var(--radius-sm);overflow:hidden;width:fit-content}.family-size-btn{width:40px;height:40px;background:var(--color-linen);border:none;font-size:1.125rem;font-weight:600;color:var(--color-olive-dark);cursor:pointer;transition:background var(--transition);display:flex;align-items:center;justify-content:center;line-height:1}.family-size-btn:hover:not(:disabled){background:var(--color-sand);color:var(--color-rustic)}.family-size-btn:disabled{opacity:.4;cursor:not-allowed}.family-size-value{min-width:3rem;text-align:center;font-size:1.125rem;font-weight:700;color:var(--color-earth);border-left:1px solid var(--color-stone);border-right:1px solid var(--color-stone);padding:.5rem .75rem;background:var(--color-cream)}.profile-option-grid{display:flex;flex-wrap:wrap;gap:.5rem}.profile-option-chip{display:inline-flex;align-items:center;gap:.375rem;padding:.4rem .875rem;border:1.5px solid var(--color-stone);border-radius:100px;font-size:.875rem;font-weight:500;color:var(--color-olive-dark);background:var(--color-cream);cursor:pointer;transition:all var(--transition);-webkit-user-select:none;user-select:none}.profile-option-chip input[type=checkbox]{display:none}.profile-option-chip:hover{border-color:var(--color-olive);color:var(--color-rustic);background:var(--color-linen)}.profile-option-chip.selected{background:var(--color-olive);border-color:var(--color-olive);color:var(--color-cream)}.profile-option-chip.selected:hover{background:var(--color-olive-dark);border-color:var(--color-olive-dark);color:var(--color-cream)}.profile-form-actions{display:flex;align-items:center;justify-content:flex-end;gap:1rem}.profile-saved-badge{font-size:.875rem;color:var(--color-herb-dark);font-weight:500;animation:fadeIn .25s ease}.profile-card--highlight{border-color:var(--color-terracotta);background:color-mix(in srgb,var(--color-terracotta) 6%,var(--color-cream))}.family-members-list,.family-pending-list,.family-invite-list{list-style:none;padding:0;margin:.75rem 0 0;display:flex;flex-direction:column;gap:.5rem}.family-member-item{display:flex;align-items:center;gap:.75rem;padding:.5rem 0;border-bottom:1px solid var(--color-sand)}.family-member-item:last-child{border-bottom:none}.family-member-avatar{width:2rem;height:2rem;border-radius:50%;background:var(--color-terracotta);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;flex-shrink:0}.family-member-info{flex:1;display:flex;flex-direction:column;gap:.1rem}.family-member-name{font-weight:500;font-size:.9rem}.family-member-email{font-size:.8rem;color:var(--color-aged-wood)}.family-member-role{font-size:.75rem;font-weight:500;padding:.15rem .5rem;border-radius:999px;background:var(--color-sand);color:var(--color-aged-wood);text-transform:capitalize}.family-member-role.owner{background:color-mix(in srgb,var(--color-terracotta) 15%,var(--color-sand));color:var(--color-terracotta)}.family-pending{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-sand)}.family-pending-label{font-size:.8rem;font-weight:600;color:var(--color-aged-wood);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.5rem}.family-pending-item{display:flex;align-items:center;justify-content:space-between;font-size:.875rem;padding:.35rem 0;color:var(--color-aged-wood)}.family-invite-form{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--color-sand)}.family-invite-row{display:flex;gap:.5rem}.family-invite-input{flex:1;padding:.5rem .75rem;border:1px solid var(--color-sand);border-radius:var(--radius-sm);font-size:.9rem;background:var(--color-cream)}.family-invite-input:focus{outline:none;border-color:var(--color-terracotta)}.family-invite-error{margin-top:.5rem;font-size:.85rem;color:var(--color-error, #c0392b)}.family-invite-success{margin-top:.5rem;font-size:.85rem;color:var(--color-herb-dark)}.family-invite-list{margin:.5rem 0 0}.family-invite-item{display:flex;align-items:center;justify-content:space-between;padding:.625rem 0;border-bottom:1px solid var(--color-sand)}.family-invite-item:last-child{border-bottom:none}.family-invite-info{display:flex;flex-direction:column;gap:.1rem}.family-invite-name{font-weight:500;font-size:.9rem}.family-invite-from{font-size:.8rem;color:var(--color-aged-wood)}.family-invite-actions{display:flex;gap:.5rem}.btn-danger{background:transparent;border:1px solid #c0392b;color:#c0392b}.btn-danger:hover{background:#c0392b;color:#fff}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.modal-recipe-search{max-width:680px;width:100%;max-height:90vh;display:flex;flex-direction:column;padding:0;overflow:hidden}.recipe-search-header{display:flex;justify-content:space-between;align-items:flex-start;padding:1.75rem 1.75rem 0;flex-shrink:0}.recipe-search-header h3{font-size:1.25rem;margin-bottom:.25rem}.recipe-search-header .modal-subtitle{margin-bottom:0}.recipe-search-close{background:none;border:none;font-size:1.5rem;line-height:1;color:var(--color-aged-wood);cursor:pointer;padding:.25rem;margin-top:-.25rem;transition:color var(--transition);flex-shrink:0}.recipe-search-close:hover{color:var(--color-earth)}.recipe-search-profile-note{margin:.875rem 1.75rem 0;padding:.625rem .875rem;background:#6b8e6f14;border:1px solid rgba(107,142,111,.2);border-radius:var(--radius-sm);font-size:.8125rem;color:var(--color-herb-dark);display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;flex-shrink:0}.profile-restriction-tags{display:flex;gap:.3rem;flex-wrap:wrap}.profile-tag{padding:.15rem .5rem;background:#6b8e6f26;border-radius:100px;font-weight:600;font-size:.75rem}.recipe-search-form{padding:1rem 1.75rem 0;flex-shrink:0}.recipe-search-input{width:100%;padding:.875rem 1rem;background:var(--color-linen);border:1.5px solid var(--color-stone);border-radius:var(--radius-sm);font-size:.9375rem;font-family:var(--font-body);color:var(--color-earth);resize:none;transition:all var(--transition);line-height:1.55}.recipe-search-input::placeholder{color:var(--color-aged-wood)}.recipe-search-input:focus{outline:none;background:var(--color-cream);border-color:var(--color-olive);box-shadow:0 0 0 3px #8b77531f}.recipe-search-form-footer{display:flex;align-items:center;justify-content:space-between;margin-top:.75rem}.recipe-search-hint{font-size:.775rem;color:var(--color-aged-wood)}.recipe-search-loading{padding:2.5rem 1.75rem;text-align:center;flex-shrink:0}.recipe-search-loading p{color:var(--color-aged-wood);font-size:.9rem;margin-top:.75rem;font-style:italic}.recipe-search-empty{padding:2rem 1.75rem;text-align:center;color:var(--color-aged-wood);font-size:.9rem;flex-shrink:0}.recipe-search-results{overflow-y:auto;flex:1;padding:0 1.75rem 1.75rem;margin-top:1rem}.recipe-search-results-count{font-size:.8rem;color:var(--color-aged-wood);font-weight:500;margin-bottom:.875rem;text-transform:uppercase;letter-spacing:.05em}.recipe-search-list{list-style:none;display:flex;flex-direction:column;gap:.75rem}.recipe-search-result{display:flex;gap:1rem;background:var(--color-linen);border:1px solid var(--color-stone);border-radius:var(--radius-md);overflow:hidden;transition:box-shadow var(--transition)}.recipe-search-result:hover{box-shadow:var(--shadow-sm)}.recipe-search-result-image{width:110px;flex-shrink:0;overflow:hidden}.recipe-search-result-image img{width:100%;height:100%;object-fit:cover;display:block}.recipe-search-result-body{flex:1;padding:.875rem;display:flex;flex-direction:column;gap:.3rem;min-width:0}.recipe-search-result-meta-row{display:flex;align-items:center;gap:.75rem}.recipe-search-source{font-size:.72rem;font-weight:700;color:var(--color-olive);text-transform:uppercase;letter-spacing:.06em}.recipe-search-rating{font-size:.72rem;color:var(--color-aged-wood);font-weight:500}.recipe-search-result-title{font-size:.9375rem;font-weight:600;color:var(--color-rustic);line-height:1.3;font-family:var(--font-body)}.recipe-search-result-title a{color:inherit;text-decoration:none}.recipe-search-result-title a:hover{color:var(--color-olive);text-decoration:underline}.recipe-search-result-desc{font-size:.8125rem;color:var(--color-olive-dark);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.recipe-search-match-reason{font-size:.775rem;color:var(--color-herb-dark);font-style:italic}.recipe-search-result-footer{display:flex;align-items:center;justify-content:space-between;margin-top:.25rem;flex-wrap:wrap;gap:.5rem}.recipe-search-result-actions{display:flex;gap:.4rem;flex-shrink:0}.recipe-search-result-stats{display:flex;align-items:center;gap:.625rem;font-size:.775rem;color:var(--color-aged-wood)}@media(max-width:600px){.modal-recipe-search{max-height:95vh}.recipe-search-header,.recipe-search-form,.recipe-search-results{padding-left:1.25rem;padding-right:1.25rem}}
