body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box;margin:0;padding:0}body{background:#fff;color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.6}.App,body{min-height:100vh}.App{display:flex;flex-direction:column}.main-content{flex:1 1;margin:0 auto;max-width:1400px;padding:1rem 0;width:100%}.container{margin:0 auto;max-width:1200px;padding:0 1.5rem;text-align:left}.hero-section{margin-bottom:2rem;text-align:center}.hero-title{color:#333;font-size:2.5rem;font-weight:700;line-height:1.2;margin-bottom:.5rem}.hero-description{color:#666;font-size:1.2rem;margin-bottom:2rem;text-align:center}.response-section{margin-top:1rem}.success{background-color:initial;border:none;border-radius:8px;color:#155724;padding:0 .5rem .5rem}.error{align-items:flex-start;background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:12px;box-shadow:0 2px 8px #dc35451a;color:#721c24;display:flex;gap:.75rem;line-height:1.5;margin:1.5rem 0;padding:1.5rem}.error-icon{flex-shrink:0;font-size:1.5rem;margin-top:.1rem}.error-content{flex:1 1}.error-title{color:#721c24;font-size:1.1rem;font-weight:600;margin-bottom:.5rem}.error-message{color:#5a1a1a;font-size:.95rem;margin:0}.menu-items-section{margin-top:2rem}.menu-items-header{margin-bottom:2rem;text-align:left}.menu-items-grid{grid-gap:1.75rem;display:grid;gap:1.75rem;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));margin:0;padding:0}.auth-prompt{margin:1rem 0;padding:1rem 2rem;text-align:center}.auth-prompt p{color:#666;font-size:1.1rem}.auth-prompt p,.auth-prompt-image{margin-bottom:.5rem}.auth-illustration{height:auto;max-width:100%}.convert-button{margin:2rem auto;padding:1rem 2rem}.demo-pulse-button{animation:demoPulse 2s ease-in-out infinite;background:#4285f4;box-shadow:0 4px 15px #4285f466;position:relative;transform-origin:center}.demo-pulse-button:before{animation:demoGlow 2s ease-in-out infinite;background:#4285f4;border-radius:10px;bottom:-2px;content:"";left:-2px;opacity:.6;position:absolute;right:-2px;top:-2px;z-index:-1}.demo-pulse-button:hover:not(:disabled){background:#3367d6;box-shadow:0 6px 20px #4285f499;transform:scale(1.05)}.demo-pulse-button:active:not(:disabled){transform:scale(.98)}@keyframes demoPulse{0%,to{box-shadow:0 4px 15px #4285f466;transform:scale(1)}50%{box-shadow:0 6px 20px #4285f499;transform:scale(1.02)}}@keyframes demoGlow{0%,to{opacity:.6;transform:scale(1)}50%{opacity:.8;transform:scale(1.02)}}.simple-scroll-hint{align-items:center;animation:hintFadeIn .5s ease-out,hintBounce 2s ease-in-out 1s infinite;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000c;border:2px solid #ffffff1a;border-radius:50%;bottom:2rem;box-shadow:0 4px 16px #0003;cursor:pointer;display:flex;height:50px;justify-content:center;position:fixed;right:2rem;transition:all .3s ease;width:50px;z-index:999}.simple-scroll-hint:hover{background:#000000e6;box-shadow:0 6px 20px #0000004d;transform:scale(1.1)}.scroll-hint-icon{color:#fff;font-size:1.5rem}@keyframes hintFadeIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes hintBounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-8px)}60%{transform:translateY(-4px)}}.footer{border-top:1px solid #e5e5e5;color:#666;font-size:.85rem;padding:1rem;text-align:center}.footer a{align-items:center;border-bottom:1px solid #0000;border-radius:4px;color:#1da1f2;display:inline-flex;font-weight:600;gap:.25rem;text-decoration:none;transition:all .3s ease}.footer a:hover{background:#1da1f20d;border-bottom:1px solid #1991db;box-shadow:0 2px 8px #1da1f233;color:#1991db;text-decoration:none;transform:translateY(-1px)}@media (max-width:1200px){.menu-items-grid{gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}}@media (max-width:968px){.menu-items-grid{gap:1.25rem;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.container{padding:0 1rem}}@media (max-width:768px){.hero-title{font-size:2rem}.hero-description{font-size:1.1rem;margin-bottom:.5rem}.container{padding:0 .75rem}.main-content{padding:1rem 0}.menu-items-grid{gap:1rem;grid-template-columns:repeat(2,1fr)}.success{margin:1rem 0}.response-section{margin-top:1.5rem}.simple-scroll-hint{bottom:1.5rem;height:45px;right:1.5rem;width:45px}.scroll-hint-icon{font-size:18px}}@media (max-width:480px){.hero-title{font-size:1.5rem}.convert-button{min-width:160px;padding:.875rem 1.5rem}.container{padding:0 .35rem}.menu-items-grid{gap:.75rem;grid-template-columns:repeat(2,1fr)}.success{margin:1rem 0}.response-section{margin-top:1.25rem}.items-count-section{margin:0 0 10px;padding:0 4px}.items-count-text{font-size:13px}}@media (max-width:320px){.menu-items-grid{gap:1rem;grid-template-columns:1fr}}.items-count-section{margin:0 0 20px;padding:0 15px}.items-count-text{color:#666;font-size:16px;font-weight:500;margin:0;text-align:left}@media (max-width:768px){.items-count-section{margin:0 0 15px;padding:0 10px}.items-count-text{font-size:14px}}.demo-summary-section{display:flex;justify-content:center;margin:40px 0}.demo-summary-card{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;box-shadow:0 20px 40px #667eea4d;color:#fff;max-width:500px;padding:32px;text-align:center;width:100%}.demo-summary-card h3{font-size:28px;font-weight:700;margin:0 0 16px}.demo-summary-card p{font-size:16px;line-height:1.5;margin:0 0 20px;opacity:.9}.demo-summary-card ul{list-style:none;margin:0 0 24px;padding:0;text-align:left}.demo-summary-card li{font-size:16px;font-weight:500;opacity:.95;padding:8px 0}.demo-summary-login-button{background:#fff;border:none;border-radius:8px;box-shadow:0 4px 12px #0000001a;color:#667eea;cursor:pointer;font-size:16px;font-weight:700;padding:14px 28px;transition:all .3s ease}.demo-summary-login-button:hover{background:#f8f9fa;box-shadow:0 8px 20px #0003;transform:translateY(-2px)}@media (max-width:768px){.demo-summary-card{margin:0 16px;padding:24px 20px}.demo-summary-card h3{font-size:24px}.demo-summary-card li,.demo-summary-card p{font-size:14px}}.filter-controls-container{background:#fafafa;border:1px solid #f0f0f0;border-radius:8px;box-shadow:none;display:flex;flex-direction:column;gap:16px;margin:2rem 0 .5rem;padding:24px;width:100%}.filter-section{padding:0;width:100%}.clear-all-filters-inline{background:none;border:none;border-radius:6px;color:#ff5a5f;cursor:pointer;font-size:14px;font-weight:600;padding:4px 8px;transition:all .2s ease}.clear-all-filters-inline:hover{background:#ff5a5f1a;color:#e74c5c}.allergen-chips{flex-wrap:nowrap;gap:8px;justify-content:flex-start;overflow-x:auto;padding-bottom:4px}.allergen-chips .filter-chip{flex-shrink:0;min-width:-webkit-fit-content;min-width:fit-content;white-space:nowrap}.allergen-filters-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.allergen-filter-item{align-items:center;background:#fff;border:1px solid #e0e0e0;border-radius:12px;display:flex;justify-content:space-between;min-height:40px;padding:8px 12px;transition:all .2s ease}.allergen-filter-item:hover{border-color:#ccc;box-shadow:0 2px 4px #0000000d}.allergen-label{color:#222;flex:1 1;font-size:13px;font-weight:500;white-space:nowrap}.allergen-levels{display:flex;gap:4px}.filter-section.disabled-section{position:relative}.filter-section-header{margin-bottom:.75rem}.premium-badge{align-items:center;animation:shimmer 2s infinite;background:linear-gradient(135deg,#8b5cf6,#3b82f6);border-radius:.5rem;color:#fff;cursor:help;display:flex;font-size:.75rem;font-weight:600;gap:.25rem;padding:.25rem .5rem}.allergen-chips.blurred{filter:blur(.5px);opacity:.6;pointer-events:none;position:relative}.allergen-chips.blurred:before{animation:shimmerEffect 3s infinite;background:linear-gradient(90deg,#0000,#ffffff4d,#0000);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:1}@keyframes shimmerEffect{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.filter-chip.disabled{background:#f8f9fa;border-color:#e9ecef;color:#6c757d;cursor:not-allowed;opacity:.5;position:relative;transition:all .2s ease}.filter-chip.disabled:after{content:"🔒";font-size:10px;opacity:.7;position:absolute;right:8px;top:50%;transform:translateY(-50%)}.filter-chip.disabled:hover{background:#f8f9fa;border-color:#e9ecef;transform:none}.filter-chip.disabled input{cursor:not-allowed}.upgrade-overlay{align-items:center;-webkit-backdrop-filter:blur(.5px);backdrop-filter:blur(.5px);background:linear-gradient(135deg,#ffffffb3,#f8f9facc);border-radius:.5rem;bottom:0;cursor:pointer;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;transition:all .2s ease;z-index:10}.upgrade-overlay:hover{background:linear-gradient(135deg,#fffc,#f8f9fae6)}.upgrade-message{background:#fff;border:2px solid #e5e7eb;border-radius:.75rem;box-shadow:0 4px 12px #00000026;color:#374151;font-weight:600;padding:.75rem 1.25rem;transition:all .2s ease}.upgrade-overlay:hover .upgrade-message{border-color:#d1d5db;box-shadow:0 6px 16px #0003;transform:translateY(-1px)}.upgrade-icon{color:#6366f1;font-size:1.25rem}@media (max-width:768px){.filter-controls-container{margin:2rem 0 .5rem;padding:16px}.filter-section{padding:0}.filter-section-header{align-items:flex-start;flex-direction:column;gap:.5rem}.sort-options{gap:8px}.sort-select{font-size:13px;min-width:auto;padding:8px 12px}.dietary-chips{flex-wrap:wrap;gap:6px}.filter-chip{font-size:12px;padding:6px 10px}.filter-chip.disabled:after{font-size:8px;right:6px}.premium-badge{align-self:flex-end}.upgrade-message{font-size:.875rem;padding:.75rem 1rem}.allergen-chips.blurred:before{animation-duration:2s}}@media (max-width:480px){.filter-controls-container{border-radius:6px;margin:2rem 0 .5rem;padding:12px}.filter-section{padding:0}.filter-section-header{align-items:stretch;flex-direction:column}.sort-options{flex-direction:column}.sort-select{font-size:13px;padding:8px 12px;width:100%}.dietary-chips{flex-wrap:wrap;gap:6px;justify-content:center}.filter-chip{flex:1 1;font-size:12px;justify-content:center;min-width:calc(50% - 3px);padding:8px 6px}.filter-chip.disabled:after{font-size:8px;right:4px}.upgrade-message{font-size:.8rem;padding:.5rem .75rem}.allergen-chips.blurred:before{animation-duration:1.5s}}.food-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.food-modal-container{background:#fff;border-radius:12px;box-shadow:0 25px 50px #00000040;display:flex;flex-direction:column;max-height:90vh;max-width:1000px;overflow:hidden;position:relative;width:100%}.food-modal-close{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:16px;height:32px;justify-content:center;position:absolute;right:16px;top:16px;transition:all .2s ease;width:32px;z-index:10}.food-modal-close:hover{background:#000000e6;transform:scale(1.1)}.food-modal-content{display:grid;flex:1 1;grid-template-columns:1fr 1fr;min-height:0;overflow:hidden}.food-modal-image-section{align-items:center;background:#f8f8f8;display:flex;justify-content:center;min-height:400px;position:relative}.food-image-placeholder-modal{align-items:center;color:#999;display:flex;flex-direction:column;height:100%;justify-content:center;width:100%}.placeholder-icon-modal{font-size:60px;margin-bottom:16px;opacity:.6}.food-image-placeholder-modal small{color:#666;font-size:16px}.food-modal-content-section{display:flex;flex-direction:column;min-height:0;overflow-y:auto;padding:32px}.food-title-row{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:8px}.food-title-airbnb{color:#222;flex:1 1;font-size:32px;font-weight:600;line-height:1.2;margin:0 16px 0 0}.food-price-modal{color:#222;font-size:18px;font-weight:700;margin-top:4px;white-space:nowrap}.food-location-airbnb{color:#717171;font-size:16px;margin:-8px 0 0}.food-stats-row{align-items:center;border-bottom:1px solid #ddd;display:flex;flex-wrap:wrap;gap:12px;padding-bottom:20px}.nutri-score-section-modal{align-items:flex-start;display:flex;flex-direction:column;gap:8px}.stats-divider{color:#ddd;font-size:14px;font-weight:300}.calories-value{color:#717171;font-size:16px;font-weight:400}.calories-value .blurred{color:#333;cursor:default;filter:blur(4px);opacity:.9;-webkit-user-select:none;user-select:none}.calories-modal-clickable{border-radius:6px;cursor:pointer;padding:6px;position:relative;transition:background-color .2s ease}.calories-modal-clickable:hover{background-color:#f7f7f7}.dietary-icons-airbnb{display:flex;gap:6px}.dietary-icon-hover{border-radius:4px;cursor:pointer;font-size:16px;padding:2px;position:relative;transition:all .2s ease}.dietary-icon-hover:hover{background:#f7f7f7;transform:scale(1.1)}.nutrition-summary-airbnb{background:#f8f9fa;border-left:4px solid #007bff;border-radius:8px;margin:20px 0;padding:16px}.nutrition-summary-airbnb p{color:#333;font-size:16px;line-height:1.5;margin:0}.description-section-airbnb{margin:20px 0}.description-text-airbnb{color:#374151;font-size:16px;line-height:1.5;margin:10px 0 0}.nutrient-breakdown-airbnb{margin-top:24px;position:relative}.section-title-airbnb{color:#222;font-size:20px;font-weight:600;margin:0 0 8px}.allergen-breakdown-note{color:#717171;display:block;font-size:14px;margin-bottom:16px}.nutrient-grid-airbnb{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.nutrient-item-airbnb{background:#f8f9fa;border:1px solid #e9ecef;border-radius:12px;padding:16px;position:relative;transition:all .2s ease}.nutrient-item-airbnb:hover{border-color:#dee2e6;box-shadow:0 2px 8px #00000014}.allergen-item-content{align-items:center;display:flex;justify-content:space-between;width:100%}.nutrient-name-airbnb{color:#333;flex:1 1;font-size:15px;font-weight:600}.nutrient-level-airbnb{align-items:center;display:flex;gap:8px}.nutrient-icon-airbnb{align-items:center;display:flex;font-size:18px}.nutrient-text-airbnb{color:#666;font-size:13px;font-weight:500;white-space:nowrap}.nutrient-text-airbnb.blurred{color:#555;cursor:default;filter:blur(4px);opacity:.8;-webkit-user-select:none;user-select:none}.nutrient-item-airbnb.locked{background:#f8f9fa;border-color:#e9ecef;cursor:pointer}.nutrient-item-airbnb.locked:hover{background:#f0f2f5;border-color:#dee2e6;box-shadow:0 4px 12px #0000001f;transform:translateY(-1px)}.upgrade-tooltip-modal.nutrient-tooltip{background:#333;border-radius:8px;bottom:100%;box-shadow:0 4px 16px #0003;color:#fff;font-size:12px;font-weight:600;left:50%;margin-bottom:8px;padding:8px 12px;pointer-events:none;position:absolute;transform:translateX(-50%);white-space:nowrap;z-index:1001}.upgrade-tooltip-modal.nutrient-tooltip:after{border:6px solid #0000;border-top-color:#333;content:"";left:50%;position:absolute;top:100%;transform:translateX(-50%)}.calories-upgrade-modal{align-items:flex-start;display:flex;flex-direction:column;gap:8px}.upgrade-link-modal{align-items:center;background:none;border:none;color:#3b82f6;cursor:pointer;display:flex;font-size:10px;font-weight:600;gap:4px;padding:0;text-decoration:underline;transition:color .2s ease}.upgrade-link-modal:hover{color:#2563eb}.upgrade-link-modal.breakdown-upgrade{font-size:14px;margin-bottom:8px}.breakdown-header{display:flex;flex-direction:column;gap:8px;margin-bottom:16px;position:relative}.premium-badge-modal{align-items:center;animation:shimmer 2s infinite;background:linear-gradient(135deg,#8b5cf6,#3b82f6);border-radius:.5rem;color:#fff;cursor:help;display:flex;font-size:.75rem;font-weight:600;gap:.25rem;padding:.25rem .5rem;position:absolute;right:0;top:0}.premium-icon{font-size:.875rem}.blurred-section{filter:blur(1px);opacity:.7;pointer-events:none;position:relative}.allergen-upgrade-overlay{align-items:center;background:#ffffffe6;border-radius:8px;bottom:0;cursor:pointer;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;transition:background-color .2s ease}.allergen-upgrade-overlay:hover{background:#fffffff2}.upgrade-message{align-items:center;color:#6b7280;display:flex;font-size:.875rem;font-weight:500;gap:.5rem;text-align:center}.upgrade-icon{color:#8b5cf6;font-size:1rem}@media (max-width:768px){.food-modal-overlay{padding:10px}.food-modal-container{max-height:95vh}.food-modal-content{grid-template-columns:1fr;grid-template-rows:300px 1fr}.food-modal-image-section{min-height:300px}.food-modal-content-section{padding:24px 20px}.food-title-airbnb{font-size:24px}.food-stats-row{gap:8px}.nutrient-grid-airbnb{grid-template-columns:1fr}}@media (max-width:480px){.food-modal-overlay{padding:5px}.food-modal-content-section{padding:20px 16px}.food-title-airbnb{font-size:20px}.food-location-airbnb{font-size:14px}.food-stats-row{align-items:flex-start;flex-direction:column;gap:12px}.stats-divider{display:none}.upgrade-link-modal{font-size:10px}.upgrade-link-modal.breakdown-upgrade{font-size:12px}.calories-upgrade-modal{gap:6px}.breakdown-header{gap:6px;margin-bottom:12px}.calories-modal-clickable{padding:6px}.upgrade-tooltip-modal{font-size:11px;padding:6px 8px}}.food-image-container{display:inline-block;position:relative}.food-image,.food-image-container,.image-wrapper{height:100%;width:100%}.food-image{background:#f8f8f8;object-fit:contain;object-position:center;transition:transform .2s ease}.image-nav-arrow{align-items:center;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);background:#000000b3;border:none;border-radius:50%;box-shadow:0 2px 8px #0000004d;color:#fff;cursor:pointer;display:flex;font-size:12px;font-weight:700;height:24px;justify-content:center;opacity:0;position:absolute;top:50%;transform:translateY(-50%);transition:all .2s ease;width:24px;z-index:2}.food-image-container:hover .image-nav-arrow{opacity:1}.image-nav-left{left:2px}.image-nav-right{right:2px}.image-nav-arrow:hover{background:#000000e6;opacity:1;transform:translateY(-50%) scale(1.1)}.image-counter{background:#000000b3;border-radius:12px;bottom:8px;color:#fff;font-size:.75rem;font-weight:500;opacity:0;padding:4px 8px;position:absolute;right:8px;transition:all .2s ease;visibility:hidden;z-index:2}.food-image-container:hover .image-counter{opacity:1;visibility:visible}.food-image-placeholder{align-items:center;color:#999;display:flex;flex-direction:column;gap:.3rem;height:100%;justify-content:center;padding:.5rem;text-align:center;width:100%}.placeholder-icon{font-size:1.5rem;opacity:.5}.food-image-placeholder small{color:#999;font-size:.75rem}.food-image-placeholder.loading{animation:loadingPulse 1.5s ease-in-out infinite;background:#f8f9fa;border:1px solid #e9ecef}.food-image-placeholder.loading .spinner{height:24px;margin-bottom:.5rem;width:24px}.image-loading-overlay{align-items:center;background:#ffffffe6;bottom:0;display:flex;flex-direction:column;gap:.5rem;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:3}.image-loading-spinner{animation:spin 1s linear infinite;border:2px solid #f3f3f3;border-radius:50%;border-top-color:#007bff;height:20px;width:20px}.image-loading-text{color:#666;font-size:.8rem;font-weight:500}@media (max-width:768px){.image-nav-arrow{background:#000c;font-size:10px;height:20px;opacity:.7;width:20px}.food-image-container:hover .image-nav-arrow{opacity:1}.image-nav-left{left:2px}.image-nav-right{right:2px}.image-counter{bottom:4px;font-size:.65rem;opacity:1;padding:2px 5px;right:4px;visibility:visible}}.nutri-score-scale{align-items:center;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.nutri-score-header{color:#666;font-size:10px;font-weight:700;letter-spacing:.5px;margin-bottom:4px;text-align:center}.nutri-score-letters{border:1px solid #ddd;border-radius:12px;box-shadow:0 2px 8px #0000001f;display:flex;overflow:visible;position:relative}.nutri-letter{align-items:center;color:#fff;display:flex;font-size:12px;font-weight:700;height:24px;justify-content:center;min-width:20px;position:relative;text-shadow:0 1px 1px #0003;transition:all .3s ease}.nutri-letter:first-child{border-radius:12px 0 0 12px}.nutri-letter:last-child{border-radius:0 12px 12px 0}.nutri-letter.a{background-color:#00b04f}.nutri-letter.b{background-color:#85bb2f}.nutri-letter.c{background-color:#fecb00;color:#333;text-shadow:0 1px 1px #0000001a}.nutri-letter.d{background-color:#ee8100}.nutri-letter.e{background-color:#e63312}.nutri-letter.selected{font-weight:800;z-index:3}.nutri-letter.selected:after{align-items:center;background-color:inherit;border:2px solid #fff;border-radius:6px;box-shadow:0 3px 12px #0003;color:inherit;content:attr(data-letter);display:flex;font-size:12px;font-weight:800;height:28px;justify-content:center;left:50%;position:absolute;text-shadow:inherit;top:50%;transform:translate(-50%,-50%);width:22px}.nutri-letter:not(.selected){opacity:.75}.nutri-score-scale.extra-small .nutri-score-header{font-size:7px;letter-spacing:.2px;margin-bottom:2px}.nutri-score-scale.extra-small .nutri-letter{font-size:9px;height:18px;min-width:14px}.nutri-score-scale.extra-small .nutri-letter.selected:after{border-radius:3px;border-width:1.5px;font-size:9px;height:20px;width:16px}.nutri-score-scale.small .nutri-score-header{font-size:8px;letter-spacing:.3px;margin-bottom:3px}.nutri-score-scale.small .nutri-letter{font-size:10px;height:20px;min-width:16px}.nutri-score-scale.small .nutri-letter.selected:after{border-radius:4px;border-width:2px;font-size:10px;height:22px;width:18px}.nutri-score-scale.large .nutri-score-header{font-size:14px;letter-spacing:.8px;margin-bottom:6px}.nutri-score-scale.large .nutri-letter{font-size:16px;height:32px;min-width:28px}.nutri-score-scale.large .nutri-letter.selected:after{border-radius:8px;border-width:3px;font-size:16px;height:36px;width:30px}@media (max-width:480px){.nutri-score-scale.normal .nutri-score-header{font-size:9px;letter-spacing:.4px}.nutri-score-scale.normal .nutri-letter{font-size:11px;height:22px;min-width:18px}.nutri-score-scale.normal .nutri-letter.selected:after{border-radius:5px;font-size:11px;height:26px;width:20px}}.header{background-color:#fff;border-bottom:1px solid #e5e7eb;box-shadow:0 1px 3px #0000001a;position:-webkit-sticky;position:sticky;top:0;z-index:1000}.header-content{gap:1rem;justify-content:space-between;margin:0 auto;max-width:1200px;min-height:50px;padding:.5rem 1rem}.header-content,.logo{align-items:center;display:flex}.logo{flex-shrink:0;gap:.5rem;transition:all .2s ease}.logo:hover{opacity:.8}.logo-icon{height:24px;transition:transform .2s ease;width:24px}.logo:hover .logo-icon{transform:scale(1.05)}.logo-text{color:#1f2937;font-size:1.1rem;font-weight:700;margin:0;transition:color .2s ease}.nav-section{align-items:center;display:flex;flex-shrink:0;gap:1rem}.nav-button{align-items:center;background:#0000;border:1px solid #0000;border-radius:.375rem;color:#6b7280;cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:500;height:36px;justify-content:center;padding:.375rem .75rem;transition:all .2s ease;white-space:nowrap}.nav-button:hover{background:#f9fafb;color:#374151}.nav-button.active{background:#eff6ff;border-color:#dbeafe;color:#3b82f6}.auth-section{align-items:center;display:flex;flex-shrink:0}.auth-button{align-items:center;border:1px solid #3b82f6;border-radius:.375rem;cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:500;height:36px;justify-content:center;padding:.375rem 1rem;transition:all .2s ease;white-space:nowrap}.login-button{background:#0000;color:#3b82f6}.login-button:hover,.logout-button{background:#3b82f6;color:#fff}.logout-button:hover{background:#2563eb}@media (max-width:768px){.header-content{gap:.5rem;padding:.5rem .75rem}.nav-section{gap:.5rem}.logo-text{font-size:1rem}.nav-button{padding:.25rem .5rem}.auth-button,.nav-button{font-size:.8rem;height:32px}.auth-button{padding:.25rem .75rem}}@media (max-width:480px){.header-content{gap:.25rem;padding:.5rem}.logo-icon{height:20px;width:20px}.logo-text{font-size:.9rem}.nav-section{gap:.25rem}.nav-button{padding:.2rem .4rem}.auth-button,.nav-button{font-size:.75rem;height:28px}.auth-button{padding:.2rem .6rem}}.install-button{align-items:center;background:#10b981;border:1px solid #10b981;border-radius:.375rem;color:#fff;cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:500;gap:.25rem;height:36px;min-width:auto;padding:.375rem .75rem;transition:all .2s ease;white-space:nowrap}.install-button:hover{background:#059669;border-color:#059669;transform:translateY(-1px)}.install-button-disabled{align-items:center;background:#6b7280;border:1px solid #6b7280;border-radius:.375rem;color:#d1d5db;cursor:not-allowed;display:inline-flex;font-size:.875rem;font-weight:500;gap:.25rem;height:36px;min-width:auto;opacity:.6;padding:.375rem .75rem;white-space:nowrap}.install-button-disabled:hover{background:#6b7280;border-color:#6b7280;transform:none}@media (max-width:768px){.install-button,.install-button-disabled{font-size:.8rem;height:32px;padding:.25rem .5rem}}@media (max-width:480px){.install-button,.install-button-disabled{font-size:.75rem;height:28px;padding:.2rem .4rem}}.menu-item-card-airbnb{background:#fff;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 2px 12px #00000014;cursor:pointer;display:flex;flex-direction:column;overflow:hidden;padding-bottom:12px;position:relative;transition:all .3s ease}.menu-item-card-airbnb:hover{box-shadow:0 6px 20px #0000001f;transform:translateY(-1px)}.allergen-warning-section{background:linear-gradient(135deg,#fff8dc,#ffeaa7);border-bottom:1px solid #fdcb6e;margin:0;padding:8px 10px;position:relative}.allergen-warning-section:has(.allergen-warning-placeholder:only-child){background:#fffef7;border-bottom:1px solid #f9f6e8}.allergen-warning-header{align-items:center;display:flex;gap:5px;margin-bottom:6px}.allergen-warning-placeholder{align-items:center;background:#0000;border:none;border-radius:4px;display:flex;justify-content:center;margin:0;min-height:35px}.warning-icon{color:#e17055;font-size:12px}.allergen-warning-text{color:#2d3436;font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.allergen-chips{display:flex;flex-wrap:wrap;gap:4px}.allergen-chip{align-items:center;background:#ffffffe6;border:1px solid #fdcb6e;border-radius:14px;box-shadow:0 1px 3px #0000001a;color:#2d3436;display:flex;font-size:10px;font-weight:500;gap:3px;padding:3px 6px;transition:all .2s ease}.allergen-chip:hover{background:#fff;box-shadow:0 2px 6px #00000026;transform:translateY(-1px)}.allergen-icon{font-size:11px;line-height:1}.allergen-name{color:#2d3436;font-size:10px;font-weight:500}.menu-item-image-airbnb{border-radius:12px 12px 0 0;height:180px;margin-bottom:10px;overflow:hidden;position:relative;width:100%}.allergen-warning-section+.menu-item-image-airbnb{border-radius:0 0 0 0}.menu-item-image-airbnb .food-image{height:100%;object-fit:cover;transition:transform .3s ease;width:100%}.menu-item-card-airbnb:hover .food-image{transform:scale(1.05)}.know-more-button{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:11px;font-weight:500;padding:5px 10px;position:absolute;right:10px;top:10px;transition:all .2s ease;z-index:10}.know-more-button:hover{background:#000000e6;transform:scale(1.05)}.menu-item-card-airbnb.demo-locked .know-more-button{background:#007bff;box-shadow:0 2px 8px #007bff66;font-weight:700}.menu-item-card-airbnb.demo-locked .know-more-button:hover{background:#0056b3}.food-image-placeholder-airbnb{align-items:center;background:#f8f8f8;border-radius:10px 10px 0 0;color:#999;display:flex;flex-direction:column;height:100%;justify-content:center;width:100%}.food-image-placeholder-airbnb.loading{animation:loadingPulse 2s ease-in-out infinite;background:linear-gradient(-45deg,#f7f7f7,#eee,#f7f7f7,#eee);background-size:400% 400%}.food-image-placeholder-airbnb.menu-item-image-loading{animation:loadingPulse 2s ease-in-out infinite;background:linear-gradient(-45deg,#f0f8ff,#e6f3ff,#f0f8ff,#e6f3ff);background-size:400% 400%;position:relative}.food-image-placeholder-airbnb .loading-spinner{animation:spin 1s linear infinite;border:3px solid #e0e0e0;border-radius:50%;border-top-color:#007bff;height:24px;margin-bottom:8px;width:24px}.placeholder-icon-airbnb{font-size:32px;margin-bottom:6px;opacity:.6}.food-image-placeholder-airbnb small{color:#666;font-size:12px;text-align:center}.spinner{animation:spin 1s linear infinite;border:2px solid #f3f3f3;border-top-color:#007bff;height:20px;margin-bottom:8px;width:20px}.menu-item-content-airbnb{padding:0 10px}.food-name-row{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:6px}.food-name-airbnb{color:#222;flex:1 1;font-size:12px;font-weight:600;line-height:1.3;margin:0 6px 0 0;overflow:hidden}.food-price-airbnb{color:#222;font-size:13px;font-weight:600;margin-top:1px;white-space:nowrap}.stats-row-airbnb{align-items:center;display:flex;gap:6px;justify-content:space-between;margin-bottom:6px;margin-top:3px}.nutri-score-section-airbnb{align-items:flex-start;display:flex;flex-direction:column}.dietary-emojis-row{align-items:center;display:flex;gap:4px;min-height:18px}.dietary-emoji{border-radius:3px;cursor:help;font-size:12px;line-height:1;opacity:.8;padding:1px;position:relative;transition:all .2s ease}.dietary-emoji:hover{background:#f7f7f7;opacity:1;transform:scale(1.1)}.dietary-emoji:after{background:#333;border-radius:4px;bottom:120%;color:#fff;content:attr(title);font-size:12px;left:50%;opacity:0;padding:6px 8px;pointer-events:none;position:absolute;transform:translateX(-50%);transition:opacity .2s ease;white-space:nowrap;z-index:1000}.dietary-emoji:hover:after{opacity:1}.calories-airbnb{align-items:center;display:flex}.calories-clickable{border-radius:5px;cursor:pointer;padding:3px;position:relative;transition:background-color .2s ease}.calories-clickable:hover{background-color:#f7f7f7}.calories-upgrade-section{align-items:flex-start;display:flex;flex-direction:column;gap:4px}.calories-text-airbnb{color:#717171;font-size:13px;font-weight:400}.calories-text-airbnb .blurred{color:#333;cursor:default;filter:blur(4px);opacity:.9;-webkit-user-select:none;user-select:none}.upgrade-tooltip{background:#333;border-radius:4px;bottom:100%;box-shadow:0 2px 8px #00000026;color:#fff;font-size:11px;font-weight:600;margin-bottom:4px;padding:6px 8px;white-space:nowrap;z-index:1000}.upgrade-tooltip,.upgrade-tooltip:after{left:50%;position:absolute;transform:translateX(-50%)}.upgrade-tooltip:after{border:4px solid #0000;border-top-color:#333;content:"";top:100%}.upgrade-link{align-items:center;background:none;border:none;color:#3b82f6;cursor:pointer;display:flex;font-size:11px;font-weight:600;gap:2px;padding:0;text-decoration:underline;transition:color .2s ease}.upgrade-link:hover{color:#2563eb}@media (max-width:768px){.menu-item-content-airbnb{padding:0 6px}.menu-item-image-airbnb{border-radius:10px 10px 0 0;height:140px;margin-bottom:6px}.menu-item-card-airbnb{border-radius:10px}.food-name-airbnb{-webkit-line-clamp:1;font-size:11px;line-height:1.2;margin-bottom:4px}.food-price-airbnb{font-size:11px}.stats-row-airbnb{gap:4px;margin-bottom:4px}.dietary-emojis-row{gap:2px}.calories-text-airbnb,.dietary-emoji{font-size:10px}.calories-clickable{padding:1px}.upgrade-tooltip{font-size:9px;padding:3px 5px}.know-more-button{font-size:9px;padding:3px 6px;right:6px;top:6px}.placeholder-icon-airbnb{font-size:24px}.food-image-placeholder-airbnb small{font-size:10px}.allergen-warning-section{padding:4px 6px}.allergen-warning-header{margin-bottom:3px}.allergen-warning-text{font-size:9px}.allergen-chips{gap:2px}.allergen-chip{font-size:8px;padding:1px 4px}.allergen-icon{font-size:9px}.allergen-name{font-size:8px}.nutri-score-section-airbnb .nutri-score-extra-small{transform:scale(.4);transform-origin:left center}}@media (max-width:480px){.menu-item-content-airbnb{padding:0 4px}.menu-item-image-airbnb{border-radius:8px 8px 0 0;height:120px;margin-bottom:4px}.menu-item-card-airbnb{border-radius:8px;padding-bottom:6px}.food-name-airbnb{line-height:1.1;margin-bottom:3px}.food-price-airbnb{font-size:10px}.stats-row-airbnb{gap:3px;margin-bottom:3px;margin-top:1px}.dietary-emojis-row{gap:1px}.calories-text-airbnb{font-size:9px}.upgrade-link{font-size:8px}.calories-upgrade-section{gap:1px}.know-more-button{font-size:8px;padding:2px 4px;right:4px;top:4px}.placeholder-icon-airbnb{font-size:20px}.food-image-placeholder-airbnb small{font-size:9px}.allergen-warning-section{padding:3px 4px}.allergen-warning-header{gap:2px;margin-bottom:2px}.allergen-warning-text,.warning-icon{font-size:8px}.allergen-chips{gap:1px}.allergen-chip{font-size:7px;gap:1px;padding:1px 3px}.allergen-icon{font-size:8px}.allergen-name{font-size:7px}.demo-lock-overlay{border-radius:8px}.demo-login-button{filter:none!important;font-size:10px;font-weight:700;opacity:1!important;padding:6px 12px;text-shadow:none}.nutri-score-section-airbnb .nutri-score-extra-small{transform:scale(.3);transform-origin:left center}}.menu-item-card-airbnb.demo-locked{cursor:pointer;position:relative}.menu-item-card-airbnb.demo-locked>:not(.demo-lock-overlay):not(.know-more-button){filter:blur(1.5px);opacity:.7}.menu-item-card-airbnb.demo-locked:hover>:not(.demo-lock-overlay):not(.know-more-button){filter:blur(1px);opacity:.8}.menu-item-card-airbnb.demo-locked:hover{transform:translateY(-2px)}.menu-item-card-airbnb.demo-locked .demo-lock-overlay{filter:none!important;opacity:1!important;transform:none!important;z-index:1000!important}.menu-item-card-airbnb.demo-locked .allergen-warning-section{filter:blur(1.5px);opacity:.7}.menu-item-card-airbnb.demo-locked:hover .allergen-warning-section{filter:blur(1px);opacity:.8}.demo-lock-overlay{align-items:center;backdrop-filter:blur(1px);-webkit-backdrop-filter:blur(1px);background:linear-gradient(135deg,#0003,#00000059);border-radius:12px;bottom:0;display:flex;filter:none!important;justify-content:center;left:0;opacity:1!important;pointer-events:auto;position:absolute;right:0;top:0;z-index:1000}.demo-lock-overlay *,.demo-login-button{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;filter:none!important;opacity:1!important;text-shadow:none!important}.demo-login-button{background:#fffffff2;border:1px solid #3b82f64d;border-radius:8px;box-shadow:0 2px 8px #0000001a;color:#3b82f6!important;cursor:pointer;font-size:.85rem;font-weight:500;letter-spacing:normal;line-height:1.4;padding:8px 16px;position:relative;transition:all .2s ease;z-index:1001}.demo-login-button:hover{background:#fff;border-color:#2563eb80;box-shadow:0 4px 12px #00000026;color:#2563eb!important;filter:none!important;opacity:1!important;transform:translateY(-1px)}.menu-item-card-airbnb.demo-locked .know-more-button{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:linear-gradient(135deg,#007bff,#0056b3);border:1px solid #fff3;box-shadow:0 2px 10px #007bff4d;color:#fff;filter:none!important;font-weight:600;opacity:1!important;z-index:15}.menu-item-card-airbnb.demo-locked .know-more-button:hover{background:linear-gradient(135deg,#0056b3,#004085);box-shadow:0 4px 15px #007bff66;filter:none!important;opacity:1!important;transform:scale(1.05)}@media (max-width:768px){.demo-lock-overlay{backdrop-filter:blur(1.5px);-webkit-backdrop-filter:blur(1.5px);background:linear-gradient(135deg,#0000004d,#00000080)}.demo-login-button{font-size:.9rem;font-weight:600;padding:.5rem 1.5rem}}@media (max-width:480px){.demo-lock-overlay{background:linear-gradient(135deg,#00000040,#00000073)}.demo-login-button{font-size:.8rem;font-weight:600;padding:.4rem 1rem}}@keyframes loadingPulse{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.processing-modal-overlay{align-items:center;animation:modalFadeIn .3s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000c;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.processing-modal{animation:modalSlideUp .3s ease;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;height:420px;max-width:320px;min-height:420px;padding:2rem 1.5rem;text-align:center;width:85%}.processing-messages-container,.processing-modal{display:flex;flex-direction:column;justify-content:space-between}.processing-messages-container{align-items:center;gap:1rem;height:100%}.processing-messages-list{display:flex;flex-direction:column;flex-grow:1;gap:.5rem;height:auto;justify-content:flex-start;overflow-y:visible;padding:.25rem;width:100%}.processing-messages-list>span{color:#666;font-size:.7rem;font-weight:400;margin-bottom:.5rem}.processing-message-item{align-items:center;animation:messageSlideIn .4s ease forwards;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border:1px solid #dee2e6;border-radius:10px;display:flex;gap:.5rem;opacity:1;overflow:hidden;padding:.4rem .6rem;position:relative;transform:translateY(0);transition:all .3s ease}.processing-message-item.loading{animation:none;background:linear-gradient(135deg,#fff9e6,#fff2cc);border-color:#ffc107}.processing-message-item.completed{animation:messageComplete .5s ease forwards;background:linear-gradient(135deg,#f0f9f0,#e8f5e8);border-color:#28a745}.processing-message-item:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.processing-message-icon{flex-shrink:0;font-size:1rem}.processing-message-text{color:#333;flex-grow:1;font-size:.8rem;font-weight:500;line-height:1.3;text-align:left}.message-status{align-items:center;display:flex;flex-shrink:0;height:20px;justify-content:center;width:20px}.message-spinner{animation:messageSpinnerRotate 1s linear infinite;border:2px solid #f3f3f3;border-radius:50%;border-top-color:#ffc107;height:12px;width:12px}.message-checkmark{align-items:center;animation:checkmarkPop .3s ease-out;background:#28a745;border-radius:50%;color:#fff;display:flex;font-size:10px;font-weight:700;height:16px;justify-content:center;transform-origin:center;width:16px}@keyframes messageComplete{0%{background:linear-gradient(135deg,#fff9e6,#fff2cc);border-color:#ffc107}to{background:linear-gradient(135deg,#f0f9f0,#e8f5e8);border-color:#28a745}}@keyframes messageSpinnerRotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes checkmarkPop{0%{opacity:0;transform:scale(0)}50%{transform:scale(1.2)}to{opacity:1;transform:scale(1)}}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.processing-progress-bar{animation:textFadeIn .5s ease .4s both;background:#f0f0f0;border-radius:4px;height:8px;margin-bottom:1rem;overflow:hidden;width:100%}.processing-progress-fill{background:linear-gradient(90deg,#007bff,#0056b3);border-radius:4px;height:100%;overflow:hidden;position:relative;transition:width .3s ease}.processing-progress-fill:after{animation:progressShimmer 2s ease-in-out infinite;background:linear-gradient(90deg,#0000,#ffffff4d,#0000);bottom:0;content:"";left:0;position:absolute;right:0;top:0}.processing-percentage{animation:textFadeIn .5s ease .6s both;color:#333;font-size:.9rem;font-weight:600}@keyframes textFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes progressShimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}@media (max-width:480px){.processing-modal{height:380px;margin:1rem;max-width:280px;min-height:380px;padding:1.5rem 1rem}.processing-title{font-size:1.25rem}.processing-subtitle{font-size:.9rem}.processing-icon{font-size:2rem}.processing-icon-container,.processing-ripple{height:60px;width:60px}.processing-message-item{gap:.4rem;padding:.3rem .5rem}.processing-message-icon{font-size:.9rem}.processing-message-text{font-size:.75rem}.processing-messages-list{gap:.4rem;height:auto}.processing-percentage{font-size:.8rem}}.sticky-filters{animation:slideDown .3s ease;background:#fff;border-bottom:1px solid #e0e0e0;box-shadow:0 2px 8px #00000014;left:0;position:fixed;right:0;top:0;transition:all .3s ease;z-index:100}@keyframes slideDown{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}.sticky-filters-content{align-items:center;display:flex;gap:1rem;justify-content:space-between;margin:0 auto;max-width:1400px;padding:12px 2rem}.filters-trigger{align-items:center;background:#fff;border:1px solid #e0e0e0;border-radius:12px;cursor:pointer;display:flex;gap:8px;padding:10px 16px;position:relative;transition:all .2s ease}.filters-trigger:hover{border-color:#222;box-shadow:0 2px 8px #0000001f}.filters-icon,.filters-text{font-size:14px}.filters-text{color:#222;font-weight:600}.filters-count{background:#ff5a5f;border-radius:10px;color:#fff;font-size:12px;font-weight:600;min-width:18px;padding:2px 6px;text-align:center}.dropdown-arrow{color:#717171;font-size:10px;transition:transform .2s ease}.results-count{color:#717171;font-size:14px;font-weight:500}.clear-all-filters{display:none}.filters-dropdown{animation:slideDownDropdown .2s ease;background:#fff;border-bottom:1px solid #e0e0e0;box-shadow:0 4px 12px #0000001f;left:0;max-height:70vh;overflow-x:hidden;overflow-y:auto;position:absolute;right:0;top:100%}@keyframes slideDownDropdown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.filters-dropdown-content{display:flex;flex-direction:column;gap:16px;margin:0 auto;max-width:1400px;padding:24px 2rem}.filter-section{display:flex;flex-direction:column;gap:8px}.filter-section-title{align-items:center;color:#222;display:flex;font-size:16px;font-weight:600;gap:8px;margin:0}.filter-section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.dietary-chips{display:flex;flex-wrap:nowrap;gap:8px;justify-content:flex-start;overflow-x:auto;padding-bottom:4px}.sort-options{display:flex;gap:12px}.sort-select{background:#fff;border:1px solid #e0e0e0;border-radius:12px;color:#222;cursor:pointer;flex:1 1;font-size:14px;font-weight:500;min-width:200px;padding:10px 16px;transition:all .2s ease}.sort-select:hover{border-color:#222}.sort-select:focus{border-color:#222;box-shadow:0 0 0 2px #2222221a;outline:none}.filter-chip{align-items:center;background:#fff;border:1px solid #e0e0e0;border-radius:12px;color:#222;cursor:pointer;display:flex;flex-shrink:0;font-size:13px;font-weight:500;gap:6px;min-width:-webkit-fit-content;min-width:fit-content;padding:8px 12px;transition:all .2s ease;white-space:nowrap}.filter-chip input[type=checkbox]{display:none}.filter-chip.active,.filter-chip:hover{background:#f7f7f7;border-color:#222}.nutrient-filters-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.nutrient-filter-item{align-items:center;background:#fff;border:1px solid #e0e0e0;border-radius:12px;display:flex;justify-content:space-between;min-height:40px;padding:8px 12px;transition:all .2s ease}.nutrient-filter-item:hover{border-color:#ccc;box-shadow:0 2px 4px #0000000d}.nutrient-label{color:#222;flex:1 1;font-size:13px;font-weight:500;white-space:nowrap}.nutrient-levels{display:flex;gap:4px}.level-btn{align-items:center;background:#fff;border:1px solid #e0e0e0;border-radius:50%;cursor:pointer;display:flex;font-size:12px;height:24px;justify-content:center;padding:0;position:relative;transition:all .2s ease;width:24px}.level-btn:hover{border-color:#ccc;box-shadow:0 2px 6px #00000026;transform:scale(1.1)}.level-btn.active{background:#f7f7f7;border-color:#222;transform:scale(1.1)}.level-btn.level-low.active{background:#e8f5e8;border-color:#28a745}.level-btn.level-medium.active{background:#fff9e6;border-color:#ffc107}.level-btn.level-high.active{background:#ffebee;border-color:#dc3545}@media (max-width:1200px){.nutrient-filters-grid{gap:6px;grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.sticky-filters-content{flex-wrap:wrap;gap:8px;padding:10px 1rem}.filters-dropdown-content{gap:16px;padding:20px 1rem}.filter-section-header{align-items:stretch;flex-direction:row;gap:8px}.sort-options{flex-direction:column;gap:8px}.sort-select{flex:none;font-size:13px;min-width:100%}.apply-filters-btn-inline,.clear-all-filters-inline{font-size:.75rem;min-width:80px;padding:.4rem .8rem}.dietary-chips{flex-wrap:nowrap;gap:6px;overflow-x:auto}.filter-chip{flex-shrink:0;font-size:12px;padding:6px 10px}.nutrient-filters-grid{gap:6px;grid-template-columns:1fr}.nutrient-filter-item{min-height:36px;padding:6px 10px}.nutrient-label{font-size:12px}.results-count{font-size:13px}}@media (max-width:480px){.sticky-filters-content{align-items:stretch;flex-direction:column;gap:8px;padding:8px 1rem}.filters-trigger{justify-content:center}.filter-section-header{align-items:stretch;flex-direction:row;gap:6px}.sort-options{flex-direction:column;gap:6px}.sort-select{flex:none;font-size:13px;min-width:100%}.apply-filters-btn-inline,.clear-all-filters-inline{font-size:.7rem;min-width:70px;padding:.35rem .7rem}.dietary-chips{flex-wrap:nowrap;gap:4px;overflow-x:auto;padding-bottom:8px}.filter-chip{flex-shrink:0;font-size:11px;min-width:-webkit-fit-content;min-width:fit-content;padding:6px 8px}.nutrient-filters-grid{gap:4px;grid-template-columns:repeat(2,1fr)}.nutrient-filter-item{align-items:center;flex-direction:row;gap:6px;min-height:32px;padding:6px 8px}.nutrient-label{flex:1 1;font-size:11px;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.nutrient-levels{gap:3px;justify-content:flex-end}.level-btn{font-size:10px;height:20px;width:20px}}.apply-filters-btn,.filter-actions,.filter-actions-top{display:none}.apply-filters-btn-inline,.clear-all-filters-inline{background:#e9ecef;border:2px solid #e9ecef;border-radius:6px;color:#6c757d;cursor:not-allowed;font-size:.8rem;font-weight:600;min-width:100px;padding:.5rem 1rem;transition:all .3s ease}.apply-filters-btn-inline.has-changes,.clear-all-filters-inline{background:#007bff;border-color:#007bff;box-shadow:0 2px 8px #007bff33;color:#fff;cursor:pointer}.apply-filters-btn-inline.has-changes:hover,.clear-all-filters-inline:hover{background:#0056b3;border-color:#0056b3;box-shadow:0 4px 12px #007bff4d;transform:translateY(-1px)}.apply-filters-btn-inline:disabled{cursor:not-allowed;opacity:.6;transform:none!important}.upload-section{background:#0000;padding:0}.file-input{display:none}.preview-section{margin:1.5rem 0}.preview-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.preview-title-group{align-items:flex-start;display:flex;flex-direction:column}.preview-title{color:#333;font-size:1.1rem;font-weight:600;margin:0}.preview-reminder{color:#666;font-size:.75rem;font-weight:400;margin:.25rem 0 0;white-space:nowrap}.cancel-preview-btn{align-items:center;background:#dc3545;border:none;border-radius:50%;box-shadow:0 2px 4px #0000001a;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;height:28px;justify-content:center;transition:all .2s ease;width:28px}.cancel-preview-btn:hover{background:#c82333;box-shadow:0 4px 8px #0003;transform:scale(1.1)}.preview-image{border:1px solid #e5e5e5;border-radius:8px;display:block;margin:0 auto;max-height:200px;max-width:100%;object-fit:contain}.convert-button{background:#000;border:none;border-radius:8px;color:#fff;cursor:pointer;display:block;font-size:1rem;font-weight:600;margin:1.5rem auto;min-width:200px;padding:.75rem 2rem;transition:all .2s ease}.convert-button:hover:not(:disabled){background:#333}.convert-button:disabled{background:#ccc;cursor:not-allowed}.spinner{animation:spin 1s ease-in-out infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;display:inline-block;height:16px;margin-right:.5rem;width:16px}.streaming-progress{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;margin:1.5rem 0;padding:1rem}.progress-bar{background:#e9ecef;border-radius:4px;height:8px;margin-bottom:.75rem;overflow:hidden;width:100%}.progress-fill{animation:progressPulse 2s ease-in-out infinite;background:linear-gradient(90deg,#007bff,#0056b3);border-radius:4px;height:100%;transition:width .3s ease}@keyframes progressPulse{0%,to{opacity:1}50%{opacity:.8}}.streaming-status{color:#666;font-size:.9rem;font-weight:500;text-align:center}.upload-options{display:flex;gap:1rem;justify-content:center;margin-bottom:2rem}.camera-button,.gallery-button{align-items:center;background:#fff;border:2px solid #4285f4;border-radius:8px;color:#4285f4;cursor:pointer;display:flex;font-size:1rem;font-weight:500;gap:.5rem;justify-content:center;min-width:150px;padding:.5rem 2rem;transition:all .3s ease}.camera-button:hover,.gallery-button:hover{background:#4285f4;box-shadow:0 4px 12px #4285f44d;color:#fff;transform:translateY(-2px)}.camera-section-fullscreen{align-items:center;background:#000;display:flex;height:100vh;justify-content:center;left:0;position:fixed;top:0;width:100vw;z-index:9999}.camera-video-fullscreen{display:block;height:100vh;object-fit:cover;transition:filter .1s ease;width:100vw}.camera-video-fullscreen:active{filter:brightness(.9)}.camera-overlay{flex-direction:column;height:100%;left:0;padding:2rem;pointer-events:none;position:absolute;top:0;z-index:10000}.camera-controls-overlay,.camera-overlay{display:flex;justify-content:space-between;width:100%}.camera-controls-overlay{align-items:flex-start;pointer-events:all}.camera-control-btn{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid #fff3;border-radius:12px;box-shadow:0 8px 32px #0000004d;cursor:pointer;display:flex;font-size:1.1rem;font-weight:600;gap:.75rem;padding:1rem 2rem;transition:all .3s ease}.cancel-btn{background:#dc3545e6;color:#fff}.cancel-btn:hover{background:#c82333f2;box-shadow:0 12px 40px #0006;transform:translateY(-2px)}.capture-btn{background:#28a745e6;color:#fff}.capture-btn:hover{background:#218838f2;box-shadow:0 12px 40px #0006;transform:translateY(-2px)}.camera-instructions{align-items:flex-end;display:flex;justify-content:center;pointer-events:none;width:100%}.camera-instructions p{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000000b3;border:1px solid #ffffff1a;border-radius:12px;color:#fff;font-size:1.1rem;font-weight:500;margin:0;padding:1rem 2rem;text-align:center}.torch-btn{background:#fff3!important;border:2px solid #ffffff4d!important}.torch-btn.torch-on{background:#ffd700cc!important;border:2px solid gold!important;color:#000!important}.focus-instruction{font-size:.9rem!important;margin-top:.5rem!important;opacity:.8}@media (max-width:768px){.upload-options{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin-bottom:1.5rem}.camera-button,.gallery-button{flex:1 1;max-width:180px;min-width:140px;padding:.4rem 1.5rem}.convert-button{margin:1rem auto;max-width:300px;padding:.625rem 1.5rem;width:100%}.preview-section{margin:1rem 0}.preview-image{max-height:180px}.camera-overlay{padding:1rem}.camera-control-btn,.camera-instructions p{font-size:1rem;padding:.75rem 1.5rem}}@media (max-width:480px){.camera-button,.gallery-button{font-size:.9rem;min-width:130px;padding:.4rem 1.25rem}.convert-button{font-size:.9rem;margin:1rem auto;padding:.625rem 1.25rem}.preview-section{margin:.75rem 0}.preview-image{max-height:160px}.cancel-preview-btn{font-size:12px;height:24px;width:24px}.camera-overlay{padding:.75rem}.camera-control-btn,.camera-instructions p{font-size:.9rem;padding:.625rem 1.25rem}.camera-controls-overlay{flex-wrap:wrap;gap:8px;justify-content:center}.camera-control-btn{font-size:.8rem;min-width:80px}.focus-instruction{font-size:.8rem!important}}.preview-image-container{display:inline-block;position:relative;width:100%}.compression-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000c;border-radius:12px;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:10}.compression-spinner{align-items:center;color:#fff;display:flex;flex-direction:column;gap:12px;text-align:center}.compression-spinner p{font-size:14px;font-weight:500;margin:0}.menu-item-image-loading{overflow:hidden;position:relative}.menu-item-image-loading:before{animation:shimmer 1.5s infinite;background:linear-gradient(90deg,#0000,#fff6,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;width:100%;z-index:1}.menu-item-image-placeholder{align-items:center;background:#f5f5f5;border-radius:8px;color:#999;display:flex;font-size:12px;justify-content:center;min-height:120px;position:relative}.menu-item-image-placeholder .loading-spinner{animation:spin 1s linear infinite;border:2px solid #e0e0e0;border-radius:50%;border-top-color:#007bff;height:20px;margin-bottom:8px;width:20px}@keyframes shimmer{0%{left:-100%}to{left:100%}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.pricing-section{background:#f8fafc;color:#1f2937;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;margin:0 auto;max-width:1200px;min-height:100vh;padding:2rem}.pricing-header{margin-bottom:1rem;text-align:center}.back-button{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;color:#6b7280;cursor:pointer;font-size:.9rem;font-weight:500;left:2rem;padding:.75rem 1.5rem;position:absolute;top:2rem;transition:all .2s ease}.back-button:hover{background:#f9fafb;box-shadow:0 2px 4px #0000001a;color:#374151;transform:translateY(-1px)}.pricing-hero{margin-top:1rem}.pricing-title{color:#111827;font-size:2.5rem;font-weight:700;margin:0 0 1rem}.pricing-subtitle{color:#6b7280;font-size:1.125rem;font-weight:400;margin:0}.billing-toggle{align-items:stretch;background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;flex-wrap:wrap;gap:0;margin-bottom:3rem;margin-left:auto;margin-right:auto;padding:.25rem;width:-webkit-fit-content;width:fit-content}.billing-toggle,.interval-button{display:flex;justify-content:center}.interval-button{align-items:center;background:#0000;border:none;border-radius:.5rem;color:#6b7280;cursor:pointer;font-size:.9rem;font-weight:600;min-height:44px;padding:.75rem 1.5rem;transition:all .2s ease;white-space:nowrap}.interval-button.active{background:#3b82f6;box-shadow:0 1px 2px #3b82f640;color:#fff}.interval-button.yearly.active{animation:none;background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff}.interval-button.yearly:not(.active){animation:none;background:#f3f4f6;color:#374151}.interval-button:hover:not(.active){background:#f9fafb;color:#374151}.interval-button.yearly:hover:not(.active){background:#e5e7eb;color:#374151}.plans-container{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(3,1fr);margin-bottom:3rem;margin-left:auto;margin-right:auto;max-width:1200px}.plan-card{background:#fff;border:1px solid #e5e7eb;border-radius:1rem;box-shadow:0 1px 3px #0000001a;overflow:hidden;padding:2rem;position:relative;transition:all .3s ease}.plan-card:hover{border-color:#d1d5db;box-shadow:0 10px 25px #00000026;transform:translateY(-4px)}.plan-card.popular{background:#fff;border-color:#3b82f6;box-shadow:0 4px 6px #3b82f61a;position:relative}.plan-card.popular:before{background:linear-gradient(90deg,#3b82f6,#1d4ed8);content:"";height:3px;left:0;position:absolute;right:0;top:0}.plan-card.current-plan{background:#fff;border-color:#10b981;box-shadow:0 4px 6px #10b9811a;position:relative}.plan-card.current-plan:before{background:linear-gradient(90deg,#10b981,#059669);content:"";height:3px;left:0;position:absolute;right:0;top:0}.plan-card.current-plan:after{background:#10b981;border-radius:.5rem;color:#fff;content:"✓ Current Plan";font-size:.75rem;font-weight:600;letter-spacing:.5px;padding:.4rem .8rem;position:absolute;right:1rem;top:1rem}.plan-card.current-plan.popular:after{top:3rem}.popular-badge{background:#3b82f6;border-radius:.5rem;color:#fff;font-size:.75rem;font-weight:600;letter-spacing:.5px;padding:.4rem .8rem;position:absolute;right:1rem;top:1rem}.plan-header{border-bottom:1px solid #f3f4f6;margin-bottom:2rem;padding-bottom:1.5rem}.plan-name{color:#111827;font-size:1.25rem;font-weight:600;margin:0 0 .5rem}.plan-subtitle{color:#6b7280;font-size:.875rem;font-style:italic;margin:0 0 1.5rem}.plan-price{align-items:baseline;display:flex;gap:.25rem;margin-bottom:.5rem}.price{color:#111827;font-size:2rem;font-weight:700}.period{color:#6b7280;font-size:.875rem;font-weight:500}.plan-yearly{color:#6b7280;font-size:.8rem;margin:0}.plan-yearly.savings{color:#10b981;font-weight:600}.yearly-savings{margin-bottom:1rem;margin-top:1rem}.savings-link{background:none;border:none;color:#3b82f6;cursor:pointer;font-size:.9rem;font-weight:600;padding:0;text-decoration:underline;transition:color .2s ease}.savings-link:hover{color:#2563eb}.plan-features{margin-bottom:2rem}.target-audience{background:#f8fafc;border-left:4px solid #3b82f6;border-radius:.75rem;margin-bottom:1.5rem;padding:1rem}.target-audience p{color:#374151;font-size:.9rem;margin:0}.features-list{list-style:none;margin:0 0 1.5rem;padding:0}.features-list li{align-items:center;border-bottom:1px solid #f3f4f6;color:#374151;display:flex;font-size:.875rem;gap:.5rem;line-height:1.4;padding:.4rem 0}.features-list li:before{color:#10b981;content:"✓";font-size:1rem;font-weight:700}.features-list li:last-child{border-bottom:none}.addon-info,.usage-example{background:#f0f9ff;border-left:3px solid #0ea5e9;border-radius:.5rem;margin-bottom:1rem;padding:.75rem}.addon,.usage{color:#0c4a6e;font-size:.8rem;font-weight:500;margin:0}.plan-button{border:none;border-radius:.75rem;cursor:pointer;font-size:.9rem;font-weight:600;overflow:hidden;padding:.875rem 1.5rem;position:relative;transition:all .2s ease;width:100%}.plan-button.primary{background:#3b82f6;color:#fff}.plan-button.primary:hover{background:#2563eb;box-shadow:0 4px 6px #3b82f640;transform:translateY(-2px)}.plan-button.featured{background:linear-gradient(135deg,#3b82f6,#1d4ed8);box-shadow:0 4px 6px #3b82f640}.plan-button.featured:hover{background:linear-gradient(135deg,#2563eb,#1e40af);box-shadow:0 6px 8px #3b82f64d}.plan-button.current{background:#10b981;color:#fff;cursor:not-allowed;opacity:.8}.plan-button.current:hover{background:#10b981;box-shadow:none;transform:none}.pricing-footer{border-top:1px solid #e5e7eb;padding-top:2rem;text-align:center}.guarantee{color:#10b981;font-size:1.1rem;font-weight:600;margin:0 0 1rem}.note{color:#6b7280;font-size:.9rem;margin:0 auto;max-width:600px}@media (max-width:1024px){.plans-container{gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}}@media (max-width:768px){.pricing-section{padding:1rem}.back-button{margin-bottom:1rem;position:static;width:-webkit-fit-content;width:fit-content}.pricing-title{font-size:2rem}.pricing-subtitle{font-size:1rem}.billing-toggle{align-items:stretch;flex-direction:row;gap:0;max-width:400px;width:100%}.interval-button{align-items:center;display:flex;flex:1 1;font-size:.8rem;justify-content:center;min-height:44px;padding:.75rem 1rem;white-space:nowrap}.plans-container{gap:1.5rem;grid-template-columns:1fr}.plan-card{padding:1.5rem 1rem}.plan-header{margin-bottom:1.5rem;padding-bottom:1rem}.plan-name{font-size:1.125rem;margin:0 0 .25rem}.plan-subtitle{font-size:.8rem;margin:0 0 1rem}.price{font-size:1.75rem}.period{font-size:.8rem}.plan-yearly{font-size:.75rem}.plan-features{margin-bottom:1.5rem}.target-audience{margin-bottom:1rem;padding:.75rem}.features-list{margin:0 0 1rem}.features-list li{font-size:.8rem;padding:.35rem 0}.addon-info,.usage-example{margin-bottom:.75rem;padding:.5rem}.addon,.usage{font-size:.75rem}.plan-button{font-size:.85rem;padding:.75rem 1.5rem}.faq-section{margin-top:3rem}.faq-header{margin-bottom:3rem}.faq-header h2{font-size:1.75rem;margin:0 0 1.25rem}.faq-subtitle{font-size:.9rem}.faq-question{padding:1.25rem 1.5rem}.question-text{font-size:.9rem}.answer-content{padding:0 1.5rem 1.5rem}.answer-content p{font-size:.85rem}.cancellation-form{padding:1.25rem}.form-group input,.form-group label,.form-group textarea,.submit-button{font-size:.8rem}}@media (max-width:480px){.plan-card{padding:1.5rem}.pricing-title{font-size:1.75rem}.pricing-subtitle{font-size:.9rem}.price{font-size:1.5rem}.period{font-size:.75rem}.plan-name{font-size:1rem}.features-list li,.plan-subtitle{font-size:.75rem}.faq-header h2{font-size:1.5rem}.faq-subtitle{font-size:.85rem}.faq-question{padding:1rem 1.25rem}.question-text{font-size:.85rem}.answer-content{padding:0 1.25rem 1.25rem}.answer-content p{font-size:.8rem}.cancellation-form{padding:1rem}.form-group input,.form-group label,.form-group textarea,.submit-button{font-size:.75rem}}.faq-section{margin-left:auto;margin-right:auto;margin-top:4rem;max-width:800px}.faq-header{margin-bottom:4rem;text-align:center}.faq-header h2{color:#111827;font-size:2rem;font-weight:700;margin:0 0 1.5rem}.faq-subtitle{color:#6b7280;font-size:1rem;font-weight:400;margin:0}.faq-list{display:flex;flex-direction:column;gap:1rem}.faq-item{background:#fff;border:1px solid #e5e7eb;border-radius:1rem;box-shadow:0 1px 3px #0000001a;overflow:hidden}.faq-item.active{border-color:#3b82f6;box-shadow:0 2px 4px #3b82f61a}.faq-question{align-items:center;background:none;border:none;cursor:pointer;display:flex;gap:1rem;justify-content:space-between;padding:1.5rem 2rem;text-align:left;width:100%}.faq-item.active .faq-question{border-bottom:1px solid #e5e7eb}.question-text{color:#111827;font-size:1rem;font-weight:600;text-align:left}.faq-toggle{align-items:center;color:#6b7280;display:flex;flex-shrink:0;justify-content:center}.faq-toggle.rotated{color:#3b82f6;transform:rotate(180deg)}.faq-answer{max-height:0;overflow:hidden;transition:max-height .3s ease}.faq-answer.expanded{max-height:500px}.answer-content{padding:0 2rem 2rem}.answer-content p{color:#4b5563;font-size:.9rem;line-height:1.5;margin:0}.cancellation-form{background:#f8fafc;border:1px solid #e5e7eb;border-radius:.75rem;margin-top:1rem;padding:1.5rem}.form-group{margin-bottom:1.25rem}.form-group:last-of-type{margin-bottom:1.5rem}.form-group label{color:#374151;display:block;font-size:.85rem;font-weight:600;margin-bottom:.5rem}.form-group input,.form-group textarea{background:#fff;border:1px solid #d1d5db;border-radius:.5rem;box-sizing:border-box;font-family:inherit;font-size:.85rem;padding:.75rem;transition:border-color .2s ease,box-shadow .2s ease;width:100%}.form-group input:focus,.form-group textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.form-group textarea{min-height:80px;resize:vertical}.submit-button{background:#3b82f6;border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;padding:.75rem 1.5rem;transition:all .2s ease;width:100%}.submit-button:hover{background:#2563eb}.submit-button:active{transform:translateY(0)}@media (max-width:768px){.faq-section{margin-top:3rem}.faq-header{margin-bottom:3rem}.faq-header h2{font-size:2rem;margin:0 0 1.25rem}.faq-subtitle{font-size:1rem}.faq-question{padding:1.25rem 1.5rem}.question-text{font-size:1rem}.answer-content{padding:0 1.5rem 1.5rem}.cancellation-form{padding:1.25rem}}@media (max-width:480px){.faq-question{padding:1rem 1.25rem}.question-text{font-size:.95rem}.answer-content{padding:0 1.25rem 1.25rem}.cancellation-form{padding:1rem}}
/*# sourceMappingURL=main.c59120a7.css.map*/