code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--primary-blue:#007aff;--primary-blue-hover:#0056cc;--primary-blue-active:#004299;--secondary-green:#34c759;--accent-orange:#ff9500;--background-color:#f5f5f7;--card-background:#fff;--text-primary:#1d1d1f;--text-secondary:#86868b;--error-red:#ff3b30;--warning-yellow:#fc0;--border-color:#e0e0e0;--font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;--font-size-h1:24px;--line-height-h1:32px;--font-size-h2:20px;--line-height-h2:28px;--font-size-h3:18px;--line-height-h3:24px;--font-size-body:16px;--line-height-body:24px;--font-size-caption:14px;--line-height-caption:20px;--spacing-1:4px;--spacing-2:8px;--spacing-3:16px;--spacing-4:24px;--spacing-5:32px}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f7;background-color:var(--background-color);color:#1d1d1f;color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-family:var(--font-family);font-size:16px;font-size:var(--font-size-body);line-height:24px;line-height:var(--line-height-body);margin:0}h1{font-size:24px;font-size:var(--font-size-h1);line-height:32px;line-height:var(--line-height-h1)}h1,h2{font-weight:600}h2{font-size:20px;font-size:var(--font-size-h2);line-height:28px;line-height:var(--line-height-h2)}h3{font-size:18px;font-size:var(--font-size-h3);font-weight:600;line-height:24px;line-height:var(--line-height-h3)}p{margin:0 0 16px;margin:0 0 var(--spacing-3) 0}.container{margin:0 auto;max-width:1200px;padding:0 24px;padding:0 var(--spacing-4)}.main-content{padding:32px 24px;padding:var(--spacing-5) var(--spacing-4)}.btn{border:none;border-radius:8px;cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-family:var(--font-family);font-size:16px;font-size:var(--font-size-body);font-weight:500;padding:8px 16px;padding:var(--spacing-2) var(--spacing-3);text-align:center;transition:all .2s ease}.btn-primary{background-color:#007aff;background-color:var(--primary-blue);color:#fff}.btn-primary:hover:not(:disabled){background-color:#0056cc;background-color:var(--primary-blue-hover)}.btn-primary:active{background-color:#004299;background-color:var(--primary-blue-active)}.btn-secondary{background-color:#fff;background-color:var(--card-background);border:1px solid #e0e0e0;border:1px solid var(--border-color);color:#007aff;color:var(--primary-blue)}.btn-secondary:hover:not(:disabled){background-color:#f5f5f5}.btn-ghost{background-color:initial;color:#007aff;color:var(--primary-blue)}.btn-ghost:hover:not(:disabled){background-color:#007aff1a}.btn:disabled{cursor:not-allowed;opacity:.6}.card{background-color:#fff;background-color:var(--card-background);border-radius:8px;box-shadow:0 2px 8px #00000014;margin-bottom:24px;margin-bottom:var(--spacing-4);padding:24px;padding:var(--spacing-4)}.card:hover{box-shadow:0 4px 12px #0000001a}.form-group{margin-bottom:24px}.form-label{color:#1d1d1f;color:var(--text-primary);display:block;font-weight:500;margin-bottom:8px;margin-bottom:var(--spacing-2)}.form-input{border:1px solid #e0e0e0;border:1px solid var(--border-color);border-radius:8px;box-sizing:border-box;font-size:16px;font-size:var(--font-size-body);padding:16px;padding:var(--spacing-3);transition:border-color .2s ease;width:100%}.form-input:focus{border-color:#007aff;border-color:var(--primary-blue);box-shadow:0 0 0 3px #007aff1a;outline:none}.loading{align-items:center;display:flex;font-size:16px;font-size:var(--font-size-body);justify-content:center;padding:32px;padding:var(--spacing-5)}.error{background-color:#ff3b30;margin:24px 0;padding:16px;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 #007aff;outline:2px solid var(--primary-blue);outline-offset:2px}.btn{align-items:center;display:inline-flex;justify-content:center;min-height:44px}@media (max-width:768px){.container,.main-content{padding-left:16px;padding-left:var(--spacing-3);padding-right:16px;padding-right:var(--spacing-3)}.main-content{padding-bottom:24px;padding-bottom:var(--spacing-4);padding-top:24px;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:0 2px 8px #0000000d;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:8px;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 .2s ease}.nav-link:hover{background-color:#f5f5f5;color:var(--primary-blue)}.nav-link.active{background-color:#007aff1a;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:8px;box-shadow:0 2px 8px #0000000d;cursor:pointer;padding:var(--spacing-4);transition:all .2s ease}.deal-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.deal-card.selected{background-color:#007aff0d;border-color:var(--primary-blue);box-shadow:0 4px 12px #007aff1a}.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:4px;color:#fff;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{color:var(--text-secondary);font-size:var(--font-size-body);text-decoration:line-through}.discount-badge{background-color:var(--accent-orange);border-radius:4px;color:#fff;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:#f0f0f0;border-radius:4px;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:#007aff14;border:1px solid var(--primary-blue);border-radius:8px;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-size:1.1rem}.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:8px;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:8px;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 .2s ease;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:#ff3b3014}.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:#28a745}.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:8px;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:8px;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:8px;box-shadow:0 2px 8px #0000000d;overflow:hidden;transition:all .2s ease}.recipe-card:hover{box-shadow:0 4px 12px #0000001a;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:#d32f2f}.no-recipes{background-color:#f8f9fa;border-radius:8px;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:8px;flex:1 1;font-size:var(--font-size-body);min-width:200px;padding:var(--spacing-3);transition:border-color .2s ease}.item-input:focus{border-color:var(--primary-blue);box-shadow:0 0 0 3px #007aff1a;outline:none}.add-btn{background-color:var(--primary-blue);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:var(--font-size-body);font-weight:500;padding:var(--spacing-3) var(--spacing-4);transition:background-color .2s ease}.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:8px;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 .2s ease}.clear-completed-btn:hover{background-color:#d32f2f}.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:8px;display:flex;flex-wrap:wrap;gap:var(--spacing-2);margin-bottom:var(--spacing-2);padding:var(--spacing-3);transition:all .2s ease}.list-item.checked{background-color:#f8f9fa;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-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:8px;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 .2s ease}.delete-btn:hover{background-color:#d32f2f}.empty-list{background-color:#f8f9fa;border-radius:8px;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:8px;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:8px;box-shadow:0 2px 8px #00000014;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:8px;box-sizing:border-box;font-size:var(--font-size-body);padding:var(--spacing-3);transition:border-color .2s ease;width:100%}.form-group input:focus{border-color:var(--primary-blue);box-shadow:0 0 0 3px #007aff1a;outline:none}.auth-button{background:var(--primary-blue);border:none;border-radius:8px;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 .2s}.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:4px;color:var(--primary-blue);cursor:pointer;font-weight:500;padding:var(--spacing-2) var(--spacing-3);transition:background-color .2s ease}.toggle-button:hover{background-color:#007aff1a}.error-message{background-color:var(--error-red);border-radius:8px;color:#fff;margin-bottom:var(--spacing-4);padding:var(--spacing-3);text-align:center}
/*# sourceMappingURL=main.e9c3a8a5.css.map*/