@import url(https://fonts.googleapis.com/css2?family=Poppins:wght@500;600;700;800&family=Inter:wght@400;500;600;700&family=Source+Code+Pro:wght@400;500;600&display=swap);code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--primary-blue:#5e81ac;--primary-blue-hover:#4e6d93;--primary-blue-active:#3f5a7a;--secondary-green:#a3be8c;--accent-orange:#d08770;--background-color:#eceff4;--card-background:#fff;--text-primary:#2e3440;--text-secondary:#4c566a;--error-red:#bf616a;--error-red-hover:#a54e57;--warning-yellow:#ebcb8b;--color-surface:#e5e9f0;--color-surface-sunken:#d8dee9;--color-brand-soft:#e3ebf3;--color-accent-soft:#f6e7e0;--color-danger-soft:#f6e5e6;--color-success-soft:#ebf2e4;--color-warning-soft:#fbf3df;--secondary-green-hover:#8fae78;--border-color:#d8dee9;--border-strong:#4c566a;--font-family:"Inter","Segoe UI",system-ui,sans-serif;--font-display:"Poppins","Segoe UI",system-ui,sans-serif;--font-mono:"Source Code Pro",ui-monospace,Menlo,monospace;--font-size-h1:1.75rem;--line-height-h1:1.2;--font-size-h2:1.75rem;--line-height-h2:1.2;--font-size-h3:1.375rem;--line-height-h3:1.3;--font-size-body:1rem;--line-height-body:1.55;--font-size-caption:0.875rem;--line-height-caption:1.4;--spacing-1:4px;--spacing-2:8px;--spacing-3:12px;--spacing-4:16px;--spacing-5:24px;--spacing-6:32px;--spacing-7:48px;--spacing-8:64px;--radius-s:6px;--radius-m:10px;--radius-l:16px;--radius-pill:999px;--shadow-s:0 1px 2px #2e344014;--shadow-m:0 4px 12px #2e34401a;--shadow-l:0 12px 32px #2e344024;--ease-standard:cubic-bezier(.4,0,.2,1);--duration-fast:120ms;--duration-normal:200ms;--duration-slow:320ms;--container-max:1200px}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#eceff4;background-color:var(--background-color);color:#2e3440;color:var(--text-primary);font-family:Inter,Segoe UI,system-ui,sans-serif;font-family:var(--font-family);font-size:1rem;font-size:var(--font-size-body);line-height:1.55;line-height:var(--line-height-body);margin:0}h1{font-size:1.75rem;font-size:var(--font-size-h1);line-height:1.2;line-height:var(--line-height-h1)}h1,h2{font-family:Poppins,Segoe UI,system-ui,sans-serif;font-family:var(--font-display);font-weight:700}h2{font-size:1.75rem;font-size:var(--font-size-h2);line-height:1.2;line-height:var(--line-height-h2)}h3{font-family:Poppins,Segoe UI,system-ui,sans-serif;font-family:var(--font-display);font-size:1.375rem;font-size:var(--font-size-h3);font-weight:600;line-height:1.3;line-height:var(--line-height-h3)}p{margin:0 0 12px;margin:0 0 var(--spacing-3) 0}.container{margin:0 auto;max-width:1200px;max-width:var(--container-max);padding:0 16px;padding:0 var(--spacing-4)}.main-content{padding:24px 16px;padding:var(--spacing-5) var(--spacing-4)}.btn{border:1px solid #0000;border-radius:10px;border-radius:var(--radius-m);cursor:pointer;font-family:Inter,Segoe UI,system-ui,sans-serif;font-family:var(--font-family);font-size:1rem;font-size:var(--font-size-body);font-weight:600;padding:8px 16px;padding:var(--spacing-2) var(--spacing-4);text-align:center;transition:background .12s cubic-bezier(.4,0,.2,1),color .12s cubic-bezier(.4,0,.2,1),border-color .12s cubic-bezier(.4,0,.2,1);transition:background var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard)}.btn-primary{background-color:#5e81ac;background-color:var(--primary-blue);color:#fff}.btn-primary:hover:not(:disabled){background-color:#4e6d93;background-color:var(--primary-blue-hover)}.btn-primary:active{background-color:#3f5a7a;background-color:var(--primary-blue-active)}.btn-secondary{background-color:#fff;background-color:var(--card-background);border:1px solid #4c566a;border:1px solid var(--border-strong);color:#5e81ac;color:var(--primary-blue)}.btn-secondary:hover:not(:disabled){background-color:#e3ebf3}.btn-ghost{background-color:initial;color:#5e81ac;color:var(--primary-blue)}.btn-ghost:hover:not(:disabled){background-color:#e3ebf3}.btn:disabled{cursor:not-allowed;opacity:.6}.card{background-color:#fff;background-color:var(--card-background);border:1px solid #d8dee9;border:1px solid var(--border-color);border-radius:16px;border-radius:var(--radius-l);box-shadow:0 1px 2px #2e344014;box-shadow:var(--shadow-s);margin-bottom:16px;margin-bottom:var(--spacing-4);padding:16px;padding:var(--spacing-4)}.card:hover{box-shadow:0 4px 12px #2e34401a;box-shadow:var(--shadow-m)}.form-group{margin-bottom:16px}.form-label{color:#2e3440;color:var(--text-primary);display:block;font-weight:500;margin-bottom:8px;margin-bottom:var(--spacing-2)}.form-input{border:1px solid #d8dee9;border:1px solid var(--border-color);border-radius:10px;border-radius:var(--radius-m);box-sizing:border-box;font-size:1rem;font-size:var(--font-size-body);padding:12px;padding:var(--spacing-3);transition:border-color .12s cubic-bezier(.4,0,.2,1);transition:border-color var(--duration-fast) var(--ease-standard);width:100%}.form-input:focus{border-color:#5e81ac;border-color:var(--primary-blue);box-shadow:0 0 0 3px #e3ebf3;outline:none}.loading{align-items:center;display:flex;font-size:1rem;font-size:var(--font-size-body);justify-content:center;padding:24px;padding:var(--spacing-5)}.error{background-color:#bf616a;border-radius:10px;margin:16px 0;padding:12px;padding:var(--spacing-3);text-align:center}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #5e81ac;outline:2px solid var(--primary-blue);outline-offset:2px}.btn{align-items:center;display:inline-flex;justify-content:center;min-height:44px}.mono{font-family:Source Code Pro,ui-monospace,Menlo,monospace;font-family:var(--font-mono)}@media (max-width:768px){.container,.main-content{padding-left:12px;padding-left:var(--spacing-3);padding-right:12px;padding-right:var(--spacing-3)}.main-content{padding-bottom:16px;padding-bottom:var(--spacing-4);padding-top:16px;padding-top:var(--spacing-4)}}@media (max-width:320px){.container,.main-content{padding-left:8px;padding-left:var(--spacing-2);padding-right:8px;padding-right:var(--spacing-2)}}.header{background-color:var(--card-background);border-bottom:1px solid var(--border-color);box-shadow:var(--shadow-s);color:var(--text-primary);padding:var(--spacing-3) 0;position:-webkit-sticky;position:sticky;top:0;z-index:100}.header-content{align-items:center;display:flex;flex-wrap:wrap;gap:var(--spacing-2) var(--spacing-3);justify-content:space-between;margin:0 auto;max-width:1200px;padding:0 var(--spacing-4)}.app-title{color:var(--text-primary);font-size:var(--font-size-h2);font-weight:600;margin:0}.navigation{align-items:center;display:flex;flex-wrap:wrap;gap:var(--spacing-2) var(--spacing-3)}.nav-link{align-items:center;border-radius:var(--radius-m);color:var(--text-secondary);display:inline-flex;font-size:var(--font-size-body);min-height:44px;padding:var(--spacing-2) var(--spacing-3);text-decoration:none;transition:all var(--duration-fast) var(--ease-standard)}.nav-link.active,.nav-link:hover{background-color:var(--color-brand-soft);color:var(--primary-blue)}.user-info{color:var(--text-primary);font-size:var(--font-size-body)}.logout-button{padding:var(--spacing-2) var(--spacing-3)}@media (max-width:768px){.header-content{padding:0 var(--spacing-3)}.navigation{justify-content:center;width:100%}}.deals-tab{margin:0 auto;max-width:1200px;padding:var(--spacing-4) 0}.deals-description{color:var(--text-secondary);font-size:var(--font-size-body);line-height:var(--line-height-body);margin-bottom:var(--spacing-5);text-align:center}.deals-grid{grid-gap:var(--spacing-4);display:grid;gap:var(--spacing-4);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-top:var(--spacing-4)}@media (max-width:480px){.deals-grid{grid-template-columns:1fr}}.deal-card{background-color:var(--card-background);border:1px solid var(--border-color);border-radius:var(--radius-l);box-shadow:var(--shadow-s);cursor:pointer;padding:var(--spacing-4);transition:box-shadow var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard),background-color var(--duration-fast) var(--ease-standard)}.deal-card:hover{box-shadow:var(--shadow-m);transform:translateY(-2px)}.deal-card.selected{background-color:var(--color-brand-soft);border-color:var(--border-strong);box-shadow:var(--shadow-m)}.deal-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:var(--spacing-3)}.deal-header h3{color:var(--text-primary);font-size:var(--font-size-h3);font-weight:600;margin:0}.store{background-color:var(--primary-blue);border-radius:var(--radius-s);color:#fff;font-family:var(--font-mono);font-size:var(--font-size-caption);font-weight:500;padding:var(--spacing-1) var(--spacing-2)}.deal-details .price-info{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--spacing-2)}.sale-price{color:var(--primary-blue);font-size:1.4rem;font-weight:700}.regular-price,.sale-price{font-family:var(--font-mono)}.regular-price{color:var(--text-secondary);font-size:var(--font-size-body);text-decoration:line-through}.discount-badge{background-color:var(--accent-orange);border-radius:var(--radius-s);color:#fff;font-family:var(--font-mono);font-weight:500;padding:var(--spacing-1) var(--spacing-2);text-align:center}.discount-badge,.promo-date{font-size:var(--font-size-caption);margin-bottom:var(--spacing-2)}.promo-date{color:var(--text-secondary)}.category{background-color:var(--color-surface);border-radius:var(--radius-s);color:var(--text-primary);font-size:var(--font-size-caption);font-weight:500;padding:var(--spacing-1) var(--spacing-2);text-align:center}.no-deals{color:var(--text-secondary);font-size:var(--font-size-body);margin-top:var(--spacing-5);padding:var(--spacing-4);text-align:center}.deals-controls{margin-bottom:var(--spacing-4);text-align:center}.deals-filters{display:flex;flex-wrap:wrap;gap:var(--spacing-3);justify-content:center;margin-bottom:var(--spacing-4)}.deals-filters .form-input{min-width:160px;width:auto}.ingest-message{color:var(--text-secondary);font-size:var(--font-size-caption);margin-bottom:var(--spacing-4);text-align:center}.savings-banner{background-color:var(--color-brand-soft);border:1px solid var(--border-color);border-radius:var(--radius-l);color:var(--text-primary);font-size:var(--font-size-body);margin:0 auto var(--spacing-4);max-width:720px;padding:var(--spacing-3) var(--spacing-4);text-align:center}.savings-banner strong{color:var(--primary-blue);font-family:var(--font-mono);font-size:var(--font-size-body)}.savings-sub{color:var(--text-secondary);display:block;font-size:var(--font-size-caption);margin-top:var(--spacing-1)}.recipes-tab{margin:0 auto;max-width:1200px;padding:var(--spacing-4) 0}.recipes-description{color:var(--text-secondary);font-size:var(--font-size-body);line-height:var(--line-height-body);margin-bottom:var(--spacing-5);text-align:center}.recipes-filters{align-items:center;border:1px solid var(--border-color);border-radius:var(--radius-m);display:flex;flex-wrap:wrap;gap:var(--spacing-2) var(--spacing-4);margin:0 0 var(--spacing-4);padding:var(--spacing-3) var(--spacing-4)}.recipes-filters legend{color:var(--text-secondary);font-size:var(--font-size-caption);font-weight:600;padding:0 var(--spacing-2)}.filter-checkbox{align-items:center;color:var(--text-primary);cursor:pointer;display:inline-flex;font-size:var(--font-size-body);gap:var(--spacing-1);min-height:44px}.filter-checkbox input{transform:scale(1.2)}.recipe-title-row{align-items:flex-start;display:flex;gap:var(--spacing-2);justify-content:space-between}.favorite-toggle-btn{align-items:center;background:none;border:1px solid var(--border-color);border-radius:var(--radius-m);color:var(--text-secondary);cursor:pointer;display:inline-flex;flex-shrink:0;font-size:1.25rem;height:44px;justify-content:center;line-height:1;transition:all var(--duration-fast) var(--ease-standard);width:44px}.favorite-toggle-btn.favorited,.favorite-toggle-btn:hover{border-color:var(--error-red);color:var(--error-red)}.favorite-toggle-btn.favorited{background-color:var(--color-danger-soft)}.ingredients ul{margin:var(--spacing-3) 0;padding-left:var(--spacing-3)}.ingredients li{color:var(--text-secondary);margin-bottom:var(--spacing-1)}.add-to-list-btn{background-color:var(--secondary-green);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:var(--font-size-body);font-weight:500;padding:var(--spacing-3);transition:background-color .2s ease;width:100%}.add-to-list-btn:hover{background-color:var(--secondary-green-hover)}.favorites-tab{margin:0 auto;max-width:1200px;padding:var(--spacing-4) 0}.favorites-description{color:var(--text-secondary);font-size:var(--font-size-body);line-height:var(--line-height-body);margin-bottom:var(--spacing-5);text-align:center}.save-url-form{background-color:var(--card-background);border:1px solid var(--border-color);border-radius:var(--radius-l);margin-bottom:var(--spacing-5);padding:var(--spacing-4)}.save-url-row{display:flex;flex-wrap:wrap;gap:var(--spacing-2)}.save-url-row .item-input{flex:1 1;min-width:200px}.preview-error{color:var(--error-red);font-size:var(--font-size-caption);margin:var(--spacing-2) 0 0}.preview-card{border-top:1px solid var(--border-color);margin-top:var(--spacing-3);padding-top:var(--spacing-3)}.preview-image{border-radius:var(--radius-m);display:block;height:160px;margin-bottom:var(--spacing-3);max-width:300px;object-fit:cover;width:100%}.recipes-grid{grid-gap:var(--spacing-4);display:grid;gap:var(--spacing-4);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-top:var(--spacing-4)}@media (max-width:480px){.recipes-grid{grid-template-columns:1fr}}.recipe-card{background-color:var(--card-background);border:1px solid var(--border-color);border-radius:var(--radius-l);box-shadow:var(--shadow-s);overflow:hidden;transition:box-shadow var(--duration-fast) var(--ease-standard),transform var(--duration-fast) var(--ease-standard)}.recipe-card:hover{box-shadow:var(--shadow-m);transform:translateY(-2px)}.recipe-image{height:200px;object-fit:cover;width:100%}.recipe-content{padding:var(--spacing-4)}.recipe-content h3{color:var(--text-primary);font-size:var(--font-size-h3);font-weight:600;margin-top:0}.view-recipe-link{align-items:center;color:var(--primary-blue);display:inline-flex;font-weight:500;min-height:44px;text-decoration:none}.view-recipe-link:hover{text-decoration:underline}.favorite-remove-btn{background-color:var(--error-red);border:none;border-radius:8px;color:#fff;cursor:pointer;display:block;font-size:var(--font-size-body);font-weight:500;margin-top:var(--spacing-2);min-height:44px;padding:var(--spacing-3);transition:background-color .2s ease;width:100%}.favorite-remove-btn:hover{background-color:var(--error-red-hover)}.no-recipes{background-color:var(--color-surface-sunken);border-radius:var(--radius-m);color:var(--text-secondary);font-size:var(--font-size-body);margin-top:var(--spacing-5);padding:var(--spacing-4);text-align:center}.shopping-list-tab{margin:0 auto;max-width:800px;padding:var(--spacing-4) 0}.add-item-form{display:flex;flex-wrap:wrap;gap:var(--spacing-2);margin-bottom:var(--spacing-5)}.item-input{border:1px solid var(--border-color);border-radius:var(--radius-m);flex:1 1;font-size:var(--font-size-body);min-width:200px;padding:var(--spacing-3);transition:border-color var(--duration-fast) var(--ease-standard)}.item-input:focus{border-color:var(--primary-blue);box-shadow:0 0 0 3px var(--color-brand-soft);outline:none}.add-btn{background-color:var(--primary-blue);border:none;border-radius:var(--radius-m);color:#fff;cursor:pointer;font-size:var(--font-size-body);font-weight:500;padding:var(--spacing-3) var(--spacing-4);transition:background-color var(--duration-fast) var(--ease-standard)}.add-btn:hover{background-color:var(--primary-blue-hover)}.list-controls{margin-bottom:var(--spacing-4);text-align:right}.clear-completed-btn{background-color:var(--error-red);border:none;border-radius:var(--radius-m);color:#fff;cursor:pointer;font-size:var(--font-size-caption);font-weight:500;min-height:44px;padding:var(--spacing-2) var(--spacing-3);transition:background-color var(--duration-fast) var(--ease-standard)}.clear-completed-btn:hover{background-color:var(--error-red-hover)}.shopping-list{list-style:none;margin:0;padding:0}.list-item{align-items:center;background-color:var(--card-background);border:1px solid var(--border-color);border-radius:var(--radius-m);display:flex;flex-wrap:wrap;gap:var(--spacing-2);margin-bottom:var(--spacing-2);padding:var(--spacing-3);transition:all var(--duration-fast) var(--ease-standard)}.list-item.checked{background-color:var(--color-surface-sunken);opacity:.7}.item-label{align-items:center;cursor:pointer;display:flex;flex:1 1;min-height:44px}.item-checkbox{margin-right:var(--spacing-3);transform:scale(1.2)}.item-name{color:var(--text-primary);font-size:var(--font-size-body);font-weight:400}.item-quantity{color:var(--text-secondary);font-family:var(--font-mono);font-size:var(--font-size-caption);margin:0 var(--spacing-3)}.list-item.checked .item-name{color:var(--text-secondary);text-decoration:line-through}.delete-btn{background-color:var(--error-red);border:none;border-radius:var(--radius-m);color:#fff;cursor:pointer;font-size:var(--font-size-caption);font-weight:500;min-height:44px;padding:var(--spacing-2) var(--spacing-3);transition:background-color var(--duration-fast) var(--ease-standard)}.delete-btn:hover{background-color:var(--error-red-hover)}.empty-list{background-color:var(--color-surface-sunken);border-radius:var(--radius-m);color:var(--text-secondary);margin-top:var(--spacing-4)}.empty-list,.error,.loading{font-size:var(--font-size-body);padding:var(--spacing-5);text-align:center}.error{background-color:var(--error-red);border-radius:var(--radius-m);color:#fff;margin:var(--spacing-4) 0}.login-tab{margin:0 auto;max-width:400px;padding:var(--spacing-4) 0}.login-container{background:var(--card-background);border-radius:var(--radius-l);box-shadow:var(--shadow-s);padding:var(--spacing-5)}.login-container h2{color:var(--text-primary);font-size:var(--font-size-h2);font-weight:600;margin-bottom:var(--spacing-5);text-align:center}.auth-form{display:flex;flex-direction:column}.form-group{margin-bottom:var(--spacing-4)}.form-group label{color:var(--text-primary);display:block;font-weight:500;margin-bottom:var(--spacing-2)}.form-group input{border:1px solid var(--border-color);border-radius:var(--radius-m);box-sizing:border-box;font-size:var(--font-size-body);padding:var(--spacing-3);transition:border-color var(--duration-fast) var(--ease-standard);width:100%}.form-group input:focus{border-color:var(--primary-blue);box-shadow:0 0 0 3px var(--color-brand-soft);outline:none}.auth-button{background:var(--primary-blue);border:none;border-radius:var(--radius-m);color:#fff;cursor:pointer;font-size:var(--font-size-body);font-weight:500;margin-top:var(--spacing-2);padding:var(--spacing-3);transition:background-color var(--duration-fast) var(--ease-standard)}.auth-button:hover:not(:disabled){background:var(--primary-blue-hover)}.auth-button:disabled{cursor:not-allowed;opacity:.6}.auth-toggle{margin-top:var(--spacing-5);text-align:center}.toggle-button{background:none;border:none;border-radius:var(--radius-s);color:var(--primary-blue);cursor:pointer;font-weight:500;padding:var(--spacing-2) var(--spacing-3);transition:background-color var(--duration-fast) var(--ease-standard)}.toggle-button:hover{background-color:var(--color-brand-soft)}.error-message{background-color:var(--error-red);border-radius:var(--radius-m);color:#fff;margin-bottom:var(--spacing-4);padding:var(--spacing-3);text-align:center}
/*# sourceMappingURL=main.693d2b44.css.map*/