*{margin:0;padding:0;box-sizing:border-box}:root{--neutral5: #ebebfa;--neutral10: #dadaee;--neutral20: #bbbbda;--neutral40: #6b6b99;--neutral60: #2d2d56;--neutral70: #1a1a3b;--neutral80: #0d0d26;--neutral90: #060619;--neon-blue: #0bdff9;--neon-green: #67f97c;--neon-lime: #e3f12f;--neon-indigo: #5252e0}body{font-family:Albert Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--neutral90);color:var(--neutral5);height:var(--app-height, 100dvh);overflow:hidden}.app{display:flex;flex-direction:column;height:var(--app-height, 100dvh)}.app-header{padding:12px 5%;display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;max-width:900px;margin:0 auto;width:100%}.app-nav{display:flex;gap:4px;background:var(--neutral80);border-radius:12px;padding:3px}.nav-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;border:none;border-radius:10px;background:transparent;color:var(--neutral40);font-family:Albert Sans,sans-serif;font-size:13px;font-weight:600;cursor:pointer;transition:color .2s,background .2s}.nav-btn:hover{color:var(--neutral10)}.nav-btn.active{background:var(--neutral60);color:var(--neutral5)}.app-header h1{font-size:16px;font-weight:600;color:var(--neutral20);letter-spacing:.02em}.header-actions{position:absolute;right:5%;display:flex;gap:4px;align-items:center}.header-action-btn{width:32px;height:32px;border-radius:50%;border:none;background:transparent;color:var(--neutral40);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .2s,background .2s}.header-action-btn:hover{color:var(--neutral10);background:var(--neutral70)}.header-action-btn:active{transform:scale(.9)}.chat{display:flex;flex-direction:column;flex:1;overflow:hidden}.messages{flex:1;overflow-y:auto;padding:16px max(5%,calc(50% - 405px));display:flex;flex-direction:column;gap:16px}.welcome{text-align:center;margin-top:80px}.welcome p:first-child{font-size:20px;font-weight:600;color:var(--neutral5);margin-bottom:10px}.welcome p:last-child{font-size:15px;color:var(--neutral40);line-height:1.5}.message{max-width:80%;padding:16px 20px;border-radius:16px;font-size:16px;line-height:24px;word-wrap:break-word;animation:chatFadeIn .3s ease-out;cursor:pointer;transition:opacity .15s}.message.user:active,.message.assistant:active{opacity:.7}.message.copied{outline:2px solid var(--neon-green);outline-offset:-2px}.message.user{white-space:pre-wrap;align-self:flex-end;background:var(--neon-indigo);color:var(--neutral5);border-bottom-right-radius:4px}.message.assistant{align-self:flex-start;background:var(--neutral70);color:var(--neutral10);border-bottom-left-radius:4px}.message.assistant strong{color:var(--neutral5)}.message.assistant p{margin:0}.message.assistant p+p{margin-top:8px}.message.assistant ul,.message.assistant ol{margin:6px 0;padding-left:20px}.message.assistant li{margin:2px 0}.message.assistant code{background:var(--neutral60);padding:1px 5px;border-radius:4px;font-size:14px}.message.assistant pre{background:var(--neutral60);padding:10px 14px;border-radius:8px;overflow-x:auto;margin:8px 0}.message.assistant pre code{background:none;padding:0}.message.assistant a{color:var(--neon-blue);text-decoration:none}.message.assistant a:hover{text-decoration:underline}.message.tool-status{align-self:flex-start;background:transparent;border:none;padding:4px 20px;color:var(--neutral40);font-size:13px;font-style:italic}@keyframes chatFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.typing-indicator{align-self:flex-start;display:flex;gap:6px;padding:16px 20px;background:var(--neutral70);border-radius:16px 16px 16px 4px;animation:chatFadeIn .3s ease-out}.typing-indicator span{width:8px;height:8px;border-radius:50%;background:var(--neutral40);animation:typingBounce 1.4s ease-in-out infinite}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,60%,to{transform:translateY(0);background:var(--neutral40)}30%{transform:translateY(-4px);background:var(--neutral20)}}.cards-scroll{display:grid;grid-auto-flow:column;grid-auto-columns:180px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;gap:12px;padding:8px 0 4px;max-width:85%;align-self:flex-start;flex-shrink:0;animation:chatFadeIn .3s ease-out}.cards-scroll>*{scroll-snap-align:start}.cards-scroll::-webkit-scrollbar{height:4px}.cards-scroll::-webkit-scrollbar-thumb{background:var(--neutral60);border-radius:2px}.product-card,.cart-card{background:var(--neutral70);border:1px solid var(--neutral60);border-radius:12px;padding:12px;display:flex;flex-direction:column;align-items:center;gap:6px;transition:border-color .2s;position:relative}.product-card:hover,.cart-card:hover{border-color:var(--neutral40)}.product-card img,.cart-card img{width:110px;height:110px;min-height:110px;object-fit:contain;border-radius:8px;background:#fff;padding:4px}.cart-remove-btn{position:absolute;top:6px;right:6px;width:24px;height:24px;border-radius:50%;border:none;background:var(--neutral60);color:var(--neutral20);font-size:16px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s;z-index:1}.cart-remove-btn:hover:not(:disabled){background:#e74c3c;color:#fff}.cart-remove-btn:disabled{opacity:.4;cursor:default}.product-tags-row{position:absolute;top:8px;left:8px;display:flex;gap:4px;flex-wrap:wrap;z-index:1}.product-tag-pill{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;border-radius:10px}.product-tag-bio{color:#fff;background:#16a34a}.product-tag-vegan{color:#a3e635;background:#a3e6351f}.product-card .product-name,.cart-card .cart-name{font-size:13px;text-align:center;line-height:1.3;color:var(--neutral10);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.product-card .product-brand,.cart-card .cart-brand{font-size:11px;color:var(--neutral40)}.product-card .product-price,.cart-card .cart-price{font-size:15px;font-weight:700;color:var(--neon-green)}.product-card .product-out-of-stock{font-size:11px;color:#e74c3c;font-weight:600}.product-add-btn{width:100%;padding:6px 0;border:1px solid var(--neon-green);border-radius:8px;background:transparent;color:var(--neon-green);font-family:Albert Sans,sans-serif;font-size:12px;font-weight:600;cursor:pointer;transition:background .2s,color .2s;margin-top:auto}.product-add-btn:hover:not(:disabled){background:var(--neon-green);color:var(--neutral90)}.product-add-btn:disabled{cursor:default}.product-qty-stepper{display:flex;align-items:center;gap:0;width:100%;margin-top:auto;border:1px solid var(--neon-green);border-radius:8px;overflow:hidden}.product-qty-stepper button{flex:1;padding:6px 0;background:transparent;border:none;color:var(--neon-green);font-family:Albert Sans,sans-serif;font-size:14px;font-weight:700;cursor:pointer;transition:background .15s}.product-qty-stepper button:hover:not(:disabled){background:#67f97c1a}.product-qty-stepper button:disabled{opacity:.4;cursor:default}.product-qty-stepper span{padding:6px 0;min-width:28px;text-align:center;font-size:13px;font-weight:700;color:var(--neutral5)}.cart-card .cart-qty{font-size:13px;font-weight:600;color:var(--neon-blue)}.cards-scroll-recipes{grid-auto-columns:200px}.recipe-card{background:var(--neutral70);border:1px solid var(--neutral60);border-radius:12px;padding:12px;display:flex;flex-direction:column;align-items:center;gap:6px;transition:border-color .2s}.recipe-card:hover{border-color:var(--neutral40)}.recipe-card img{width:100%;aspect-ratio:16 / 10;object-fit:cover;border-radius:8px}.recipe-card .recipe-name{font-size:13px;font-weight:600;text-align:center;line-height:1.3;color:var(--neutral5);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.recipe-card .recipe-headline{font-size:11px;text-align:center;line-height:1.3;color:var(--neutral40);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.recipe-meta{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.recipe-badge{font-size:11px;font-weight:600;color:var(--neon-blue);background:#0bdff91a;padding:2px 8px;border-radius:10px}.recipe-tags{display:flex;gap:4px;flex-wrap:wrap;justify-content:center}.recipe-tag{font-size:10px;color:var(--neutral20);background:var(--neutral60);padding:1px 6px;border-radius:8px}.recipe-actions{display:flex;gap:6px;width:100%;margin-top:auto;align-items:stretch}.recipe-actions .product-add-btn{flex:1;margin-top:0}.recipe-open-btn{width:34px;flex-shrink:0;border:1px solid var(--neutral40);border-radius:8px;background:transparent;color:var(--neutral20);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .2s,color .2s}.recipe-open-btn:hover{border-color:var(--neon-blue);color:var(--neon-blue)}.quick-actions{display:flex;gap:8px;overflow-x:auto;padding-bottom:12px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.quick-actions::-webkit-scrollbar{display:none}.quick-action-btn{flex-shrink:0;padding:8px 16px;border-radius:999px;border:1px solid var(--neutral60);background:var(--neutral80);color:var(--neutral20);font-family:Albert Sans,sans-serif;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.quick-action-btn:hover{border-color:var(--neutral40);color:var(--neutral5);background:var(--neutral70)}.quick-action-btn:active{transform:scale(.96)}.chat-input-wrap{flex-shrink:0;padding:16px max(5%,calc(50% - 405px)) 24px;background:linear-gradient(transparent,var(--neutral90) 40%)}.chat-input-border{background:linear-gradient(90deg,var(--neon-blue),var(--neon-green) 50%,var(--neon-lime));border-radius:41px;padding:1px}.chat-input-inner{display:flex;align-items:flex-end;gap:8px;background:var(--neutral80);border-radius:40px;padding:6px 6px 6px 20px}.chat-input-inner textarea{flex:1;background:transparent;border:none;outline:none;color:var(--neutral5);font-family:Albert Sans,sans-serif;font-size:18px;line-height:28px;padding:8px 0;resize:none;overflow-y:auto;max-height:120px}.chat-input-inner textarea::placeholder{color:var(--neutral40)}.chat-send-btn{width:48px;height:48px;border-radius:50%;border:none;background:linear-gradient(135deg,var(--neon-blue),var(--neon-green));cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:opacity .2s,transform .1s}.chat-send-btn:hover{opacity:.85}.chat-send-btn:active{transform:scale(.95)}.chat-send-btn:disabled{opacity:.4;cursor:not-allowed}.chat-send-btn svg{width:20px;height:20px;fill:var(--neutral90)}.messages::-webkit-scrollbar{width:6px}.messages::-webkit-scrollbar-track{background:transparent}.messages::-webkit-scrollbar-thumb{background:var(--neutral60);border-radius:3px}.login-screen{display:flex;align-items:center;justify-content:center;height:var(--app-height, 100dvh);padding:24px}.login-card{width:100%;max-width:360px;text-align:center}.login-card h2{font-size:20px;font-weight:600;color:var(--neutral10);margin-bottom:32px}.login-card form{display:flex;flex-direction:column;gap:16px}.login-input-border{background:linear-gradient(90deg,var(--neon-blue),var(--neon-green) 50%,var(--neon-lime));border-radius:14px;padding:1px}.login-input-border input{width:100%;background:var(--neutral80);border:none;border-radius:13px;padding:14px 18px;color:var(--neutral5);font-family:Albert Sans,sans-serif;font-size:16px;outline:none}.login-input-border input::placeholder{color:var(--neutral40)}.login-card button{padding:14px;border:none;border-radius:14px;background:linear-gradient(135deg,var(--neon-blue),var(--neon-green));color:var(--neutral90);font-family:Albert Sans,sans-serif;font-size:16px;font-weight:700;cursor:pointer;transition:opacity .2s}.login-card button:hover:not(:disabled){opacity:.85}.login-card button:disabled{opacity:.4;cursor:not-allowed}.login-error{color:#e74c3c;font-size:14px}.ricette-page{flex:1;overflow-y:auto;padding:0 max(5%,calc(50% - 405px)) 32px}.ricette-search-wrap{position:sticky;top:0;z-index:10;padding:8px 0 12px;background:var(--neutral90)}.ricette-search{display:flex;align-items:center;gap:10px;background:var(--neutral80);border:1px solid var(--neutral60);border-radius:999px;padding:10px 16px;transition:border-color .2s}.ricette-search:focus-within{border-color:var(--neutral40)}.ricette-search svg{flex-shrink:0;color:var(--neutral40)}.ricette-search input{flex:1;background:transparent;border:none;outline:none;color:var(--neutral5);font-family:Albert Sans,sans-serif;font-size:15px}.ricette-search input::placeholder{color:var(--neutral40)}.ricette-search-clear{background:none;border:none;color:var(--neutral40);cursor:pointer;padding:0;display:flex;transition:color .2s}.ricette-search-clear:hover{color:var(--neutral10)}.ricette-tags-bar{display:flex;gap:8px;overflow-x:auto;padding:4px 0 12px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.ricette-tags-bar::-webkit-scrollbar{display:none}.ricette-tag-pill{flex-shrink:0;padding:6px 14px;border-radius:999px;border:1px solid var(--neutral60);background:transparent;color:var(--neutral20);font-family:Albert Sans,sans-serif;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.ricette-tag-pill:hover{border-color:var(--neutral40);color:var(--neutral5)}.ricette-tag-pill.active{background:var(--neon-indigo);border-color:var(--neon-indigo);color:var(--neutral5)}.ricette-tags-divider{flex-shrink:0;width:1px;height:20px;background:var(--neutral60)}.ricette-count{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--neutral40);padding-bottom:16px}.ricette-count>span{display:flex;align-items:center;gap:12px}.ricette-count-actions{display:flex;gap:8px;align-items:center}.ricette-btn-add{display:flex;align-items:center;gap:5px;background:none;border:1px solid var(--neutral60);border-radius:8px;color:var(--neutral20);font-size:13px;font-family:Albert Sans,sans-serif;padding:5px 12px;cursor:pointer;transition:all .2s}.ricette-btn-add:hover{border-color:var(--neon-blue);color:var(--neon-blue)}.ricette-sort-dropdown{position:relative}.ricette-sort-trigger{display:flex;align-items:center;gap:6px;background:none;border:1px solid var(--neutral60);border-radius:8px;color:var(--neutral20);font-size:13px;font-family:Albert Sans,sans-serif;padding:5px 12px;cursor:pointer;transition:all .2s}.ricette-sort-trigger:hover{border-color:var(--neutral40);color:var(--neutral5)}.ricette-sort-menu{position:absolute;right:0;top:calc(100% + 6px);background:var(--neutral70);border:1px solid var(--neutral50);border-radius:12px;padding:4px;min-width:160px;z-index:10;box-shadow:0 8px 24px #0006;animation:modalFadeIn .15s ease}.ricette-sort-option{display:flex;align-items:center;gap:8px;width:100%;padding:9px 12px;border:none;border-radius:8px;background:transparent;color:var(--neutral10);font-family:Albert Sans,sans-serif;font-size:13px;cursor:pointer;transition:background .15s;text-align:left}.ricette-sort-option:hover{background:var(--neutral60)}.ricette-sort-option.active{color:var(--neutral5);font-weight:600}.ricette-sort-check{width:14px;height:14px;display:flex;align-items:center;justify-content:center;color:var(--neon-blue)}.ricette-clear-filters{background:none;border:none;color:var(--neon-blue);font-family:Albert Sans,sans-serif;font-size:13px;cursor:pointer;padding:0}.ricette-clear-filters:hover{text-decoration:underline}.ricette-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}.ricette-card{background:var(--neutral80);border:1px solid var(--neutral60);border-radius:16px;overflow:hidden;cursor:pointer;transition:transform .2s,box-shadow .2s,border-color .2s}.ricette-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #0000004d;border-color:var(--neutral40)}.ricette-card-img-wrap{position:relative;aspect-ratio:16 / 10;overflow:hidden;background:var(--neutral70)}.ricette-card-img-wrap img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.ricette-card:hover .ricette-card-img-wrap img{transform:scale(1.05)}.ricette-card-no-img,.ricette-card-img-wrap.no-img{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--neutral70) 0%,var(--neutral80) 100%);color:var(--neutral40)}.ricette-card-img-wrap.no-img:after{content:"🍽";font-size:48px;opacity:.3}.ricette-card-meals{position:absolute;top:10px;right:10px;font-size:11px;font-weight:700;color:var(--neutral5);background:#5252e0d9;padding:3px 10px;border-radius:10px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.ricette-card-meals.dolce{background:#e3f12fd9;color:var(--neutral90)}.ricette-card-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:8px}.ricette-card-name{font-size:15px;font-weight:600;color:var(--neutral5);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ricette-card-tags{display:flex;gap:6px;flex-wrap:wrap}.ricette-tag{font-size:11px;font-weight:500;color:var(--neutral20);background:var(--neutral60);padding:2px 8px;border-radius:8px}.ricette-tag.more{color:var(--neutral40)}.ricette-card-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:16px}.ricette-card-source{font-size:11px;color:var(--neutral40);line-height:1.3;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;min-width:0}.ricette-card-cooked{font-size:11px;color:var(--neutral40);white-space:nowrap;flex-shrink:0}.ricette-empty{text-align:center;padding:48px 0;color:var(--neutral40);font-size:15px}.ricette-card-skeleton{background:var(--neutral80);border:1px solid var(--neutral60);border-radius:16px;overflow:hidden}.skeleton-img{aspect-ratio:16 / 10;background:linear-gradient(90deg,var(--neutral70) 25%,var(--neutral60) 50%,var(--neutral70) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.skeleton-text{height:14px;margin:14px 16px 0;border-radius:6px;background:linear-gradient(90deg,var(--neutral70) 25%,var(--neutral60) 50%,var(--neutral70) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.skeleton-text.short{width:60%;margin-bottom:16px;margin-top:8px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.ricette-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0009;display:flex;align-items:center;justify-content:center;padding:24px;animation:modalFadeIn .2s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.ricette-modal{background:var(--neutral80);border:1px solid var(--neutral60);border-radius:20px;max-width:540px;width:100%;max-height:85vh;overflow-y:auto;position:relative;animation:modalSlideUp .25s ease}.ricette-modal-close{position:absolute;top:12px;right:12px;z-index:2;width:36px;height:36px;border-radius:50%;border:none;background:#00000080;color:var(--neutral5);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.ricette-modal-close:hover{background:#000000b3}.ricette-modal-img{width:100%;aspect-ratio:16 / 10;object-fit:cover;border-radius:20px 20px 0 0}.ricette-modal-body{padding:24px;display:flex;flex-direction:column;gap:16px}.ricette-modal-title{font-size:22px;font-weight:700;color:var(--neutral5);line-height:1.2}.ricette-modal-meta{display:flex;gap:8px;flex-wrap:wrap}.ricette-badge-meals{font-size:12px;font-weight:600;color:var(--neutral5);background:var(--neon-indigo);padding:4px 12px;border-radius:10px}.ricette-badge-dolce{font-size:12px;font-weight:600;color:var(--neutral90);background:var(--neon-lime);padding:4px 12px;border-radius:10px}.ricette-badge-source{font-size:12px;font-weight:500;color:var(--neutral20);background:var(--neutral60);padding:4px 12px;border-radius:10px}.ricette-modal-tags{display:flex;gap:6px;flex-wrap:wrap}.ricette-modal-section h3{font-size:14px;font-weight:600;color:var(--neutral20);margin-bottom:10px;text-transform:uppercase;letter-spacing:.05em}.ricette-ingredients-list{list-style:none;display:flex;flex-direction:column;gap:0}.ricette-ingredients-list li{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--neutral70)}.ricette-ingredients-list li:last-child{border-bottom:none}.ricette-ing-name{font-size:14px;color:var(--neutral5)}.ricette-ing-qty{font-size:13px;color:var(--neutral40);font-weight:500;flex-shrink:0;margin-left:16px}.ricette-ingredients-list.secondary .ricette-ing-name{color:var(--neutral20)}.ricette-steps-markdown{font-size:14px;color:var(--neutral10);line-height:1.6}.ricette-steps-markdown h1,.ricette-steps-markdown h2,.ricette-steps-markdown h3{color:var(--neutral5);margin:16px 0 8px;font-size:15px;font-weight:600}.ricette-steps-markdown h3{font-size:14px}.ricette-steps-markdown p{margin:0 0 8px}.ricette-steps-markdown ol,.ricette-steps-markdown ul{padding-left:20px;display:flex;flex-direction:column;gap:6px;margin:0 0 8px}.ricette-steps-markdown li{line-height:1.5}.ricette-steps-markdown ol li::marker{color:var(--neon-blue);font-weight:700}.ricette-steps-markdown ul li::marker{color:var(--neutral30)}.ricette-steps-markdown a{color:var(--neon-blue);text-decoration:none;word-break:break-all}.ricette-steps-markdown a:hover{text-decoration:underline}.ricette-steps-markdown strong{color:var(--neutral5);font-weight:600}.ricette-steps-markdown hr{border:none;border-top:1px solid var(--neutral60);margin:12px 0}.ricette-modal-actions{display:flex;gap:10px;margin-top:8px}.ricette-btn-cart{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border:none;border-radius:12px;background:linear-gradient(135deg,var(--neon-blue),var(--neon-green));color:var(--neutral90);font-family:Albert Sans,sans-serif;font-size:14px;font-weight:700;cursor:pointer;transition:opacity .2s,transform .1s}.ricette-btn-cart:hover{opacity:.85}.ricette-btn-cart:active{transform:scale(.97)}.ricette-btn-open{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border:1px solid var(--neutral40);border-radius:12px;background:transparent;color:var(--neutral10);font-family:Albert Sans,sans-serif;font-size:14px;font-weight:600;text-decoration:none;cursor:pointer;transition:border-color .2s,color .2s}.ricette-btn-open:hover{border-color:var(--neon-blue);color:var(--neon-blue)}.ricette-modal-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.ricette-modal-title-row .ricette-modal-title{margin:0}.ricette-modal-title-actions{display:flex;gap:6px;flex-shrink:0}.ricette-btn-edit{flex-shrink:0;width:36px;height:36px;border-radius:10px;border:1px solid var(--neutral50);background:transparent;color:var(--neutral20);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .2s,color .2s}.ricette-btn-edit:hover{border-color:var(--neon-blue);color:var(--neon-blue)}.recipe-edit-form{display:flex;flex-direction:column;gap:20px}.recipe-edit-field{display:flex;flex-direction:column;gap:6px}.recipe-edit-label{font-size:12px;font-weight:600;color:var(--neutral20);text-transform:uppercase;letter-spacing:.05em}.recipe-edit-form input,.recipe-edit-form textarea{width:100%;background:var(--neutral70);border:1px solid var(--neutral50);border-radius:10px;padding:10px 14px;color:var(--neutral5);font-family:Albert Sans,sans-serif;font-size:14px;outline:none;transition:border-color .2s;box-sizing:border-box}.recipe-edit-form input:focus,.recipe-edit-form textarea:focus{border-color:var(--neon-blue)}.recipe-edit-form textarea{resize:vertical;min-height:120px;line-height:1.6}.recipe-edit-meals{display:flex;gap:6px;flex-wrap:wrap}.recipe-edit-meal-btn{padding:6px 14px;border-radius:10px;border:1px solid var(--neutral50);background:transparent;color:var(--neutral20);font-family:Albert Sans,sans-serif;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s}.recipe-edit-meal-btn.active{background:var(--neon-indigo);border-color:var(--neon-indigo);color:var(--neutral5);font-weight:600}.recipe-edit-meal-btn:not(.active):hover{border-color:var(--neutral30)}.recipe-edit-ing-list{display:flex;flex-direction:column;gap:0}.recipe-edit-ing-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--neutral70)}.recipe-edit-ing-row:last-child{border-bottom:none}.recipe-edit-ing-name{flex:1;min-width:0}.recipe-edit-ing-name input,.recipe-edit-ing-qty input{border-color:transparent;border-radius:8px;padding:8px 10px}.recipe-edit-ing-name input:focus,.recipe-edit-ing-qty input:focus{background:var(--neutral60)}.recipe-edit-ing-qty{width:80px;flex-shrink:0}.recipe-edit-ing-remove{flex-shrink:0;width:32px;height:32px;border-radius:8px;border:none;background:transparent;color:var(--neutral40);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .15s,background .15s}.recipe-edit-ing-remove:hover{color:#f87171;background:#f871711a}.recipe-edit-add-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;margin-top:6px;border-radius:10px;border:1px dashed var(--neutral50);background:transparent;color:var(--neutral30);font-family:Albert Sans,sans-serif;font-size:13px;font-weight:500;cursor:pointer;transition:border-color .2s,color .2s;width:fit-content}.recipe-edit-add-btn:hover{border-color:var(--neon-blue);color:var(--neon-blue)}.recipe-edit-error{color:#f87171;font-size:13px;margin:0}.recipe-edit-actions{display:flex;gap:10px;margin-top:4px}.recipe-edit-save{flex:1;padding:12px 20px;border:none;border-radius:12px;background:linear-gradient(135deg,var(--neon-blue),var(--neon-green));color:var(--neutral90);font-family:Albert Sans,sans-serif;font-size:14px;font-weight:700;cursor:pointer;transition:opacity .2s}.recipe-edit-save:hover{opacity:.85}.recipe-edit-save[data-disabled]{opacity:.5;cursor:default}.recipe-edit-cancel{padding:12px 20px;border:1px solid var(--neutral40);border-radius:12px;background:transparent;color:var(--neutral10);font-family:Albert Sans,sans-serif;font-size:14px;font-weight:600;cursor:pointer;transition:border-color .2s}.recipe-edit-cancel:hover{border-color:var(--neutral20)}.recipe-edit-cancel[data-disabled]{opacity:.5;cursor:default}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.ricette-page::-webkit-scrollbar{width:6px}.ricette-page::-webkit-scrollbar-track{background:transparent}.ricette-page::-webkit-scrollbar-thumb{background:var(--neutral60);border-radius:3px}.ricette-modal::-webkit-scrollbar{width:6px}.ricette-modal::-webkit-scrollbar-track{background:transparent}.ricette-modal::-webkit-scrollbar-thumb{background:var(--neutral60);border-radius:3px}.cards-tappable{cursor:pointer}.card-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#060619eb;display:flex;flex-direction:column;align-items:center;justify-content:center;animation:modalFadeIn .2s ease;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}[data-rac][role=dialog]{outline:none}.card-overlay-modal{width:100%;height:100%}.card-overlay-click-area{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.card-overlay-close{position:absolute;top:16px;right:16px;z-index:2;width:40px;height:40px;border-radius:50%;border:1px solid var(--neutral60);background:var(--neutral70);color:var(--neutral20);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.card-overlay-close:hover{background:var(--neutral60);color:var(--neutral5)}.card-overlay-scroll{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;width:100%;max-width:100%;scrollbar-width:none}.card-overlay-scroll::-webkit-scrollbar{display:none}.card-overlay-item{flex:0 0 100%;scroll-snap-align:center;display:flex;justify-content:center;align-items:center;padding:0 24px;min-height:0}.card-overlay-item .product-card,.card-overlay-item .cart-card{width:340px;max-width:85vw;padding:0 20px 20px;overflow:hidden;border-radius:20px;gap:8px}.card-overlay-item .product-card img,.card-overlay-item .cart-card img{width:calc(100% + 40px);margin:0 -20px;height:auto;aspect-ratio:4 / 3;min-height:unset;object-fit:cover;border-radius:0;padding:0;background:#fff}.card-overlay-item .product-card .product-name,.card-overlay-item .cart-card .cart-name{font-size:16px;line-height:1.4;-webkit-line-clamp:4;margin-top:4px}.card-overlay-item .product-card .product-price,.card-overlay-item .cart-card .cart-price{font-size:22px}.card-overlay-item .product-card .product-add-btn{padding:10px 0;font-size:14px;border-radius:12px}.card-overlay-item .product-card .product-qty-stepper{border-radius:12px}.card-overlay-item .product-card .product-qty-stepper button{padding:10px 0;font-size:16px}.card-overlay-item .product-card .product-qty-stepper span{font-size:15px}.card-overlay-item .product-card .product-tags-row,.card-overlay-item .cart-card .product-tags-row{top:12px;left:12px}.card-overlay-item .cart-card .cart-remove-btn{display:none}.cart-meta{display:flex;flex-direction:column;gap:2px;width:100%}.cart-meta-source{font-size:11px;font-weight:600;color:var(--neon-blue)}.cart-meta-query{font-size:10px;color:var(--neutral40);font-style:italic}.cart-remove-explicit{width:100%;padding:8px 0;border:1px solid #e74c3c;border-radius:8px;background:transparent;color:#e74c3c;font-family:Albert Sans,sans-serif;font-size:13px;font-weight:600;cursor:pointer;transition:background .2s,color .2s;margin-top:auto}.cart-remove-explicit:hover:not(:disabled){background:#e74c3c;color:#fff}.cart-remove-explicit:disabled{opacity:.4;cursor:default}.card-overlay-item .recipe-card{width:360px;max-width:85vw;padding:0 20px 20px;overflow:hidden;border-radius:20px;gap:8px}.card-overlay-item .recipe-card img{width:calc(100% + 40px);margin:0 -20px;aspect-ratio:16 / 10;border-radius:0}.card-overlay-item .recipe-card .recipe-name{font-size:17px;font-weight:700;-webkit-line-clamp:3;margin-top:4px}.card-overlay-item .recipe-card .recipe-headline{font-size:13px}.card-overlay-item .recipe-card .product-add-btn{padding:10px 0;font-size:14px;border-radius:12px}.card-overlay-item .recipe-card .recipe-actions{width:100%}.card-overlay-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:48px;height:48px;border-radius:50%;border:1px solid var(--neutral60);background:var(--neutral70);color:var(--neutral20);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.card-overlay-arrow:hover{background:var(--neutral60);color:var(--neutral5);border-color:var(--neutral40)}.card-overlay-arrow-left{left:max(16px,calc(50% - 280px))}.card-overlay-arrow-right{right:max(16px,calc(50% - 280px))}@media(max-width:767px){.card-overlay-arrow{display:none}}.card-overlay-indicator{margin-top:20px;font-size:14px;font-weight:600;color:var(--neutral40);letter-spacing:.05em}.new-messages-btn{position:absolute;bottom:140px;left:50%;transform:translate(-50%);z-index:10;padding:8px 20px;border-radius:999px;border:1px solid var(--neutral60);background:var(--neutral70);color:var(--neon-blue);font-family:Albert Sans,sans-serif;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;animation:chatFadeIn .3s ease-out;box-shadow:0 4px 12px #0000004d}.new-messages-btn:hover{background:var(--neutral60);border-color:var(--neon-blue)}@media(max-width:767px){.messages{padding:16px}.message{max-width:90%;font-size:15px;line-height:22px;padding:12px 16px}.chat-input-wrap{padding:12px 16px 20px}.chat-input-border{border-radius:33px}.chat-input-inner{border-radius:32px;padding:4px 4px 4px 16px}.chat-input-inner textarea{font-size:16px}.chat-send-btn{width:42px;height:42px}.cards-scroll{max-width:100%;grid-auto-columns:165px}.cards-scroll-recipes{grid-auto-columns:180px}.card-overlay-item .product-card,.card-overlay-item .cart-card{width:340px;max-width:90vw}.card-overlay-item .recipe-card{width:360px;max-width:90vw}.new-messages-btn{bottom:120px}.app-header{padding:12px 16px}.ricette-page{padding:0 16px 32px;max-width:none}.ricette-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.ricette-card-name{font-size:14px}.ricette-modal{max-height:90vh;border-radius:16px}.ricette-modal-overlay{padding:12px}.ricette-modal-body{padding:20px 16px}.ricette-modal-title{font-size:20px}.ricette-modal-actions{flex-direction:column}}.recipe-review-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:#060619d9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;padding:16px}.recipe-review-modal{background:var(--neutral80);border-radius:20px;padding:20px;width:100%;max-width:440px;max-height:90vh;overflow-y:auto;position:relative;display:flex;flex-direction:column;border:1px solid var(--neutral60)}.recipe-review-close{position:absolute;top:16px;right:16px;background:var(--neutral70);border:1px solid var(--neutral60);color:var(--neutral20);width:32px;height:32px;border-radius:50%;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:1;transition:all .2s}.recipe-review-close:hover{background:var(--neutral60);color:var(--neutral5)}.recipe-review-header{padding:0;display:flex;align-items:baseline;gap:12px}.recipe-review-header h2{font-size:18px;font-weight:700;color:var(--neutral5);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recipe-review-step-indicator{font-size:13px;font-weight:600;color:var(--neon-blue);white-space:nowrap}.recipe-review-subtitle{font-size:13px;color:var(--neutral20)}.recipe-review-ingredient{padding:12px 0 8px;display:flex;flex-direction:column;gap:2px}.recipe-review-ingredient-name{font-size:15px;font-weight:600;color:var(--neon-lime)}.recipe-review-search-term{font-size:11px;color:var(--neutral40)}.recipe-review-hero{padding:0;display:flex;justify-content:center}.recipe-review-skipped-label{padding:20px 0;text-align:center;color:var(--neutral40);font-size:14px;font-style:italic}.recipe-review-product{background:var(--neutral70);border-radius:14px;padding:10px;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;border:2px solid transparent;transition:border-color .2s,transform .15s;position:relative;min-width:140px}.recipe-review-product:hover{border-color:var(--neutral40)}.recipe-review-product-selected{border-color:var(--neon-blue);background:var(--neutral60)}.recipe-review-product-selected:hover{border-color:var(--neon-blue)}.recipe-review-product img{width:100px;height:100px;object-fit:contain;background:#fff;border-radius:10px}.recipe-review-product .product-tags-row{position:absolute;top:6px;left:6px}.recipe-review-product-brand{font-size:10px;color:var(--neutral40);text-transform:uppercase;letter-spacing:.5px}.recipe-review-product-name{font-size:12px;color:var(--neutral5);text-align:center;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.3}.recipe-review-product-price{font-size:14px;font-weight:700;color:var(--neon-green)}.recipe-review-hero .recipe-review-product{min-width:200px;padding:14px}.recipe-review-hero .recipe-review-product img{width:140px;height:140px}.recipe-review-hero .recipe-review-product-name{font-size:14px;-webkit-line-clamp:3}.recipe-review-hero .recipe-review-product-price{font-size:18px}.recipe-review-alternatives{padding:8px 0 0}.recipe-review-alt-label{font-size:12px;color:var(--neutral40);text-transform:uppercase;letter-spacing:.5px;display:block;margin-bottom:8px}.recipe-review-alt-scroll{display:flex;gap:10px;overflow-x:auto;padding-bottom:8px;scrollbar-width:none}.recipe-review-alt-scroll::-webkit-scrollbar{display:none}.recipe-review-alt-scroll .recipe-review-product{min-width:130px;max-width:130px}.recipe-review-alt-scroll .recipe-review-product img{width:80px;height:80px}.recipe-review-actions{padding:16px 0 0;display:flex;gap:10px;justify-content:flex-end}.recipe-review-btn-primary{background:var(--neon-indigo);color:#fff;border:none;border-radius:12px;padding:10px 20px;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .2s}.recipe-review-btn-primary:hover{opacity:.9}.recipe-review-btn-primary:disabled{opacity:.5;cursor:not-allowed}.recipe-review-btn-secondary{background:var(--neutral70);color:var(--neutral10);border:1px solid var(--neutral60);border-radius:12px;padding:10px 20px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.recipe-review-btn-secondary:hover{background:var(--neutral60)}.recipe-review-btn-skip{background:transparent;color:var(--neutral40);border:1px solid var(--neutral60);border-radius:12px;padding:10px 16px;font-size:13px;cursor:pointer;transition:all .2s}.recipe-review-btn-skip:hover{color:var(--neutral20);border-color:var(--neutral40)}.recipe-review-progress{height:3px;background:var(--neutral70);border-radius:0 0 20px 20px;overflow:hidden}.recipe-review-progress-bar{height:100%;background:var(--neon-blue);transition:width .3s ease}.recipe-review-summary{padding:12px 0;display:flex;flex-direction:column;gap:16px;max-height:50vh;overflow-y:auto}.recipe-review-summary-section h3{font-size:13px;color:var(--neutral20);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.recipe-review-summary-item{display:flex;align-items:baseline;gap:8px;padding:6px 0;border-bottom:1px solid var(--neutral70);font-size:13px}.recipe-review-summary-ingredient{color:var(--neon-lime);font-weight:500;min-width:0;flex-shrink:0}.recipe-review-summary-product{color:var(--neutral10);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recipe-review-summary-price{color:var(--neon-green);font-weight:600;white-space:nowrap}.recipe-review-summary-skipped{color:var(--neutral40);font-style:italic}.recipe-review-total{font-size:15px;color:var(--neutral10);text-align:right;padding-top:8px;border-top:1px solid var(--neutral60)}.recipe-review-total strong{color:var(--neon-green)}.recipe-review-result{padding:32px 0;text-align:center}.recipe-review-result-count{font-size:18px;font-weight:600;color:var(--neon-green)}.recipe-review-result-failed{font-size:14px;color:#e57373;margin-top:8px}.recipe-review-result-missing{margin-top:12px;padding:12px;background:#e573731a;border-radius:8px;font-size:13px;color:#e57373}.recipe-review-result-missing strong{display:block;margin-bottom:6px}.recipe-review-result-missing ul{margin:0;padding-left:18px}.recipe-review-result-missing li{margin:2px 0}@media(max-width:480px){.recipe-review-overlay{padding:0;align-items:flex-end}.recipe-review-modal{max-width:100%;max-height:95vh;border-radius:20px 20px 0 0;border-bottom:none}.recipe-review-hero .recipe-review-product img{width:110px;height:110px}.recipe-review-alt-scroll .recipe-review-product{min-width:120px;max-width:120px}}.cart-review-header{display:flex;align-items:center;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--neutral60);margin-bottom:12px}.cart-review-header h2{flex:1;margin:0;font-size:18px}.cart-review-header .recipe-review-close{position:static;flex-shrink:0}.cart-review-step{font-size:13px;color:var(--neutral40);white-space:nowrap}.cart-review-items{display:flex;flex-direction:column;gap:20px;overflow-y:auto;flex:1;min-height:0;padding:4px 0}.cart-review-item{border:1px solid var(--neutral60);border-radius:12px;padding:12px;transition:opacity .2s}.cart-review-item-skipped{opacity:.4}.cart-review-item-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.cart-review-item-name{font-weight:600;font-size:14px;color:var(--neutral5);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cart-review-item-reason{font-size:11px;color:var(--neon-indigo);background:#6366f126;padding:2px 8px;border-radius:999px;white-space:nowrap;flex-shrink:0}.cart-review-skip-btn{font-size:12px;padding:4px 10px;border-radius:8px;border:1px solid var(--neutral60);background:transparent;color:var(--neutral30);cursor:pointer;white-space:nowrap;flex-shrink:0;font-family:Albert Sans,sans-serif;transition:all .2s}.cart-review-skip-btn:hover{border-color:var(--neutral40);color:var(--neutral5)}.cart-review-skip-btn.active{background:var(--neon-indigo);border-color:var(--neon-indigo);color:var(--neutral5)}.cart-review-suggested-block{margin-top:12px;padding:12px;border-top:1px dashed var(--neutral60);display:flex;flex-direction:column;gap:16px}.cart-review-suggested-heading{font-size:13px;font-weight:600;color:var(--neutral20);text-transform:uppercase;letter-spacing:.04em}.cart-review-suggested-heading span{display:block;margin-top:2px;font-size:11px;font-weight:400;color:var(--neutral40);text-transform:none;letter-spacing:0}@media(max-width:480px){.nav-btn{padding:8px 10px;gap:4px;font-size:12px}.nav-btn svg{width:14px;height:14px}}.carrello-page{flex:1;overflow-y:auto;padding:0 max(5%,calc(50% - 405px)) 32px}.carrello-header{position:sticky;top:0;z-index:10;background:var(--neutral90);padding:12px 0;display:flex;align-items:center;justify-content:space-between;gap:12px}.carrello-summary-text{font-size:15px;font-weight:600;color:var(--neutral10)}.carrello-header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.carrello-sort-toggle{display:inline-flex;border:1px solid var(--neutral60);border-radius:999px;background:var(--neutral80);padding:2px}.carrello-sort-btn{padding:6px 12px;border:none;background:transparent;color:var(--neutral30);font-family:Albert Sans,sans-serif;font-size:12px;font-weight:500;border-radius:999px;cursor:pointer;transition:background .2s,color .2s}.carrello-sort-btn.active{background:var(--neutral60);color:var(--neutral5)}.carrello-sort-btn:not(.active):hover{color:var(--neutral10)}.carrello-search-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;border:1px solid var(--neutral60);border-radius:999px;background:var(--neutral80);color:var(--neutral20);font-family:Albert Sans,sans-serif;font-size:13px;font-weight:500;cursor:pointer;transition:border-color .2s,background .2s}.carrello-search-btn:hover{border-color:var(--neutral40);background:var(--neutral70)}.carrello-search-btn.large{padding:12px 24px;font-size:15px}.carrello-list{display:flex;flex-direction:column;gap:2px}.carrello-item{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--neutral80);border-radius:12px;transition:opacity .3s,transform .3s}.carrello-item.removing{opacity:0;transform:translate(-40px)}.carrello-item-img{width:52px;height:52px;object-fit:contain;border-radius:8px;background:#fff;flex-shrink:0}.carrello-item-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.carrello-item-info .product-tags-row{position:static;margin-bottom:2px}.carrello-item-brand{font-size:11px;color:var(--neutral40);text-transform:uppercase;letter-spacing:.03em}.carrello-item-name{font-size:13px;color:var(--neutral10);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.carrello-item-price{font-size:13px;font-weight:600;color:var(--neon-blue)}.carrello-item-actions{flex-shrink:0}.product-qty-stepper.compact{gap:2px}.product-qty-stepper.compact button,.product-qty-stepper.compact [class*=Button]{width:28px;height:28px;font-size:14px}.carrello-empty{text-align:center;padding:60px 20px;color:var(--neutral40);display:flex;flex-direction:column;align-items:center;gap:20px}.carrello-empty p{font-size:16px}.carrello-loading,.carrello-item-skeleton{display:flex;gap:12px;padding:12px}.carrello-loading{flex-direction:column;gap:8px}.carrello-item-skeleton .skeleton-img{width:52px;height:52px;border-radius:8px}.carrello-item-skeleton .skeleton-text-group{flex:1;display:flex;flex-direction:column;gap:8px;justify-content:center}.search-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:100;display:flex;align-items:flex-start;justify-content:center;padding-top:0}.search-modal{width:100%;max-width:560px;height:var(--app-height, 100dvh);background:var(--neutral90);display:flex;flex-direction:column;overflow:hidden}.search-modal [role=dialog]{display:flex;flex-direction:column;height:100%;outline:none}.search-modal-header{padding:12px 16px;display:flex;align-items:center;gap:10px;flex-shrink:0;background:var(--neutral90);border-bottom:1px solid var(--neutral80)}.search-modal-input-wrap{flex:1;display:flex;align-items:center;gap:10px;background:var(--neutral80);border:1px solid var(--neutral60);border-radius:999px;padding:8px 14px}.search-modal-input-wrap:focus-within{border-color:var(--neutral40)}.search-modal-input-wrap svg{flex-shrink:0;color:var(--neutral40)}.search-modal-input-wrap input{flex:1;background:transparent;border:none;outline:none;color:var(--neutral5);font-family:Albert Sans,sans-serif;font-size:15px}.search-modal-input-wrap input::placeholder{color:var(--neutral40)}.search-modal-close{background:none;border:none;color:var(--neutral40);font-family:Albert Sans,sans-serif;font-size:13px;cursor:pointer;padding:6px;flex-shrink:0}.search-modal-close:hover{color:var(--neutral10)}.search-modal-filters{padding:4px 16px 0;display:flex;gap:6px;flex-shrink:0}.search-filter-pill{padding:5px 14px;border-radius:999px;border:1px solid var(--neutral60);background:transparent;color:var(--neutral20);font-family:Albert Sans,sans-serif;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s}.search-filter-pill:hover{border-color:var(--neutral40)}.search-filter-pill.active{background:var(--neon-green);border-color:var(--neon-green);color:var(--neutral90);font-weight:600}.search-modal-results{flex:1;overflow-y:auto;padding:8px 16px 32px;display:flex;flex-direction:column;gap:8px}.search-modal-loading{display:flex;justify-content:center;padding:40px}.search-spinner{width:24px;height:24px;border:2px solid var(--neutral60);border-top-color:var(--neon-blue);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.search-modal-empty{text-align:center;padding:40px;color:var(--neutral40);font-size:14px}.search-product-card{display:flex;align-items:center;gap:14px;padding:12px;background:var(--neutral80);border-radius:12px}.search-product-card img{width:88px;height:88px;object-fit:contain;border-radius:10px;background:#fff;flex-shrink:0}.search-product-info .product-tags-row{margin-top:2px}.search-product-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.search-product-brand{font-size:12px;color:var(--neutral40);text-transform:uppercase;letter-spacing:.03em}.search-product-name{font-size:14px;color:var(--neutral10);line-height:1.3}.search-product-price{font-size:15px;font-weight:600;color:var(--neon-blue)}.search-product-actions{flex-shrink:0}.search-product-actions .product-add-btn{width:40px;height:40px;padding:0;font-size:20px;display:flex;align-items:center;justify-content:center}.pasti-page{flex:1;overflow-y:auto;padding:0 max(5%,calc(50% - 405px)) 32px}.pasti-header-bar{position:sticky;top:0;z-index:10;background:var(--neutral90);padding:12px 0;display:flex;align-items:center;justify-content:space-between;gap:12px}.pasti-source{font-size:13px;color:var(--neutral40)}.pasti-refresh-btn{width:32px;height:32px;border-radius:50%;border:none;background:transparent;color:var(--neutral40);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .2s,background .2s}.pasti-refresh-btn:hover{color:var(--neutral10);background:var(--neutral70)}.pasti-progress-card{background:var(--neutral80);border-radius:16px;padding:20px;margin-bottom:20px;text-align:center}.pasti-progress-number{font-size:36px;font-weight:700;color:var(--neutral5)}.pasti-progress-target{font-size:16px;font-weight:400;color:var(--neutral40)}.pasti-section{margin-bottom:20px}.pasti-section-title{font-size:14px;font-weight:600;color:var(--neutral40);text-transform:uppercase;letter-spacing:.04em;margin-bottom:10px}.pasti-recipe-list{display:flex;flex-direction:column;gap:2px}.pasti-recipe-card{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--neutral80);border-radius:12px;cursor:pointer;transition:background .15s,opacity .2s}.pasti-recipe-card:hover{background:var(--neutral70)}.pasti-recipe-card.done{opacity:.45}.pasti-recipe-card.done .pasti-recipe-name{text-decoration:line-through}.pasti-recipe-img-wrap{flex-shrink:0}.pasti-recipe-img-wrap img{width:56px;height:56px;object-fit:cover;border-radius:10px}.pasti-recipe-no-img{width:56px;height:56px;background:var(--neutral70);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:24px}.pasti-recipe-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.pasti-recipe-name{font-size:14px;font-weight:600;color:var(--neutral5)}.pasti-recipe-meta{display:flex;gap:6px;flex-wrap:wrap}.pasti-badge-meals{display:inline-block;background:#e76f0026;color:#ff9800;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:600}.pasti-badge-coverage{display:inline-block;background:#0bdff91a;color:var(--neon-blue);padding:2px 8px;border-radius:12px;font-size:11px}.pasti-badge-saved{display:inline-block;background:#5252e026;color:#88f;padding:2px 8px;border-radius:12px;font-size:11px}.pasti-recipe-tags{display:flex;gap:4px;flex-wrap:wrap}.pasti-tag{display:inline-block;background:#67f97c1a;color:var(--neon-green);padding:1px 7px;border-radius:10px;font-size:11px}.pasti-recipe-missing{font-size:11px;color:#ff9800}.pasti-recipe-link{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--neutral40);transition:color .2s,background .2s}.pasti-recipe-link:hover{color:var(--neutral10);background:var(--neutral60)}.pasti-ready-list{display:flex;flex-direction:column;gap:2px}.pasti-done-btn{width:24px;height:24px;border-radius:50%;border:2px solid var(--neutral40);background:transparent;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .15s;color:transparent}.pasti-done-btn:hover{border-color:var(--neon-green)}.pasti-done-btn.active{border-color:var(--neon-green);background:var(--neon-green);color:var(--neutral90)}.pasti-ready-item{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--neutral80);border-radius:12px;transition:opacity .2s}.pasti-ready-item.done{opacity:.45}.pasti-ready-item.done .pasti-ready-name{text-decoration:line-through}.pasti-ready-item .pasti-badge-meals{margin-left:auto}.pasti-ready-name{font-size:14px;color:var(--neutral10)}.pasti-loading{display:flex;flex-direction:column;align-items:center;gap:16px;padding:60px 20px;color:var(--neutral40);font-size:14px}.pasti-error{text-align:center;padding:60px 20px;color:var(--neutral40);display:flex;flex-direction:column;align-items:center;gap:16px}.pasti-error p{font-size:15px}.pasti-retry-btn{display:flex;align-items:center;gap:6px;padding:8px 20px;border:1px solid var(--neutral60);border-radius:999px;background:var(--neutral80);color:var(--neutral20);font-family:Albert Sans,sans-serif;font-size:13px;cursor:pointer}.pasti-retry-btn:hover{border-color:var(--neutral40)}.pasti-empty{text-align:center;padding:40px 20px;color:var(--neutral40);font-size:14px}.stats-page{flex:1;overflow-y:auto;padding:16px max(5%,calc(50% - 405px)) 32px}.stats-empty{text-align:center;padding:40px 20px;color:var(--neutral40);font-size:14px}.stats-overview{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:24px}.stats-card{background:var(--neutral70);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:2px}.stats-card.accent{grid-column:1 / -1;background:var(--neon-indigo)}.stats-card-value{font-size:22px;font-weight:700;color:var(--neutral5)}.stats-card.accent .stats-card-value{font-size:28px}.stats-card-label{font-size:12px;font-weight:600;color:var(--neutral20);text-transform:uppercase;letter-spacing:.04em}.stats-card.accent .stats-card-label{color:#ffffffb3}.stats-card-sub{font-size:12px;color:#ffffff80;margin-top:2px}.stats-section{margin-bottom:28px}.stats-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.stats-section-title{font-size:15px;font-weight:700;color:var(--neutral10);margin-bottom:12px}.stats-section-header .stats-section-title{margin-bottom:0}.stats-section-title-spaced{margin-top:20px}.stats-toggle{display:flex;gap:2px;background:var(--neutral80);border-radius:8px;padding:2px}.stats-toggle-btn{padding:5px 12px;border:none;border-radius:6px;background:transparent;color:var(--neutral40);font-family:Albert Sans,sans-serif;font-size:12px;font-weight:600;cursor:pointer;transition:color .2s,background .2s}.stats-toggle-btn.active{background:var(--neutral60);color:var(--neutral5)}.stats-category-list{display:flex;flex-direction:column;gap:10px}.stats-category-row{display:flex;flex-direction:column;gap:4px}.stats-category-info{display:flex;justify-content:space-between;align-items:baseline}.stats-category-name{font-size:13px;font-weight:600;color:var(--neutral10)}.stats-category-amount{font-size:12px;color:var(--neutral40)}.stats-bar-track{height:6px;background:var(--neutral70);border-radius:3px;overflow:hidden}.stats-bar-fill{height:100%;background:var(--neon-blue);border-radius:3px;transition:width .4s ease-out}.stats-chart{display:flex;gap:2px;align-items:flex-end;height:160px;overflow-x:auto;padding-bottom:4px}.stats-chart-col{flex:1;min-width:40px;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%}.stats-chart-bar-wrap{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center}.stats-chart-bar{width:70%;max-width:32px;background:var(--neon-indigo);border-radius:4px 4px 0 0;min-height:4px;transition:height .4s ease-out}.stats-chart-label{font-size:10px;color:var(--neutral40);white-space:nowrap}.stats-chart-value{font-size:10px;font-weight:600;color:var(--neon-blue);white-space:nowrap;visibility:hidden;flex-shrink:0}.stats-chart-col:hover .stats-chart-value{visibility:visible}.stats-chart-col:hover .stats-chart-bar{background:var(--neon-blue)}.stats-product-list{display:flex;flex-direction:column;gap:1px}.stats-product-row{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--neutral70);border-radius:8px;margin-bottom:4px}.stats-product-rank{font-size:13px;font-weight:700;color:var(--neutral40);min-width:20px;text-align:center}.stats-product-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.stats-product-name{font-size:13px;font-weight:600;color:var(--neutral10);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stats-bio-badge{display:inline-block;margin-left:6px;padding:1px 5px;font-size:9px;font-weight:700;background:var(--neon-green);color:var(--neutral90);border-radius:4px;vertical-align:middle}.stats-product-brand{font-size:11px;color:var(--neutral40);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stats-product-numbers{text-align:right;display:flex;flex-direction:column;gap:1px;flex-shrink:0}.stats-product-main{font-size:14px;font-weight:700;color:var(--neutral5)}.stats-product-sub{font-size:11px;color:var(--neutral40)}.stats-tags{display:flex;flex-wrap:wrap;gap:6px}.stats-tag{padding:5px 12px;border-radius:8px;background:var(--neutral70);color:var(--neutral10);font-size:13px;font-weight:500}.stats-tag.green{background:#67f97c1f;color:var(--neon-green)}
