@font-face{font-family:Geologica Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geologica-cyrillic-ext-wght-normal-C8B9Chlh.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geologica Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geologica-cyrillic-wght-normal-DbeVG3Ps.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geologica Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geologica-greek-wght-normal-DPM5d9ub.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Geologica Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geologica-vietnamese-wght-normal-DcI17N1q.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geologica Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geologica-latin-ext-wght-normal-DZyYlgcm.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geologica Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geologica-latin-wght-normal-BBL8hQxZ.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-family: "Geologica Variable", "Geologica", sans-serif;--green-50: #f1faeb;--green-100: #e0f3d4;--green-200: #c3e9ad;--green-300: #9cd97d;--green-400: #7ac655;--green-500: #5bab37;--green-600: #448828;--green-700: #366823;--green-800: #2e5420;--green-900: #29481f;--green-950: #162f0f;--red-50: #fef2f2;--red-100: #ffe2e2;--red-200: #ffc9c9;--red-700: #c10007;--red-900: #82181a;--orange-50: #fff9ed;--orange-100: #fff2d4;--orange-200: #ffe1a8;--orange-900: #7f390f;--neutral-50: #fafafa;--neutral-100: #f5f5f5;--neutral-200: #e5e5e5;--neutral-300: #d4d4d4;--neutral-400: #a1a1a1;--neutral-500: #737373;--neutral-600: #525252;--neutral-700: #404040;--neutral-800: #262626;--radius-xl: 12px;--radius-2xl: 16px;--radius-3xl: 24px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 28px;--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 10%), 0 10px 10px -5px rgb(0 0 0 / 4%)}.profile-photo-trigger{position:relative;display:block;width:88px;height:88px;border:0;padding:0;background:none}.profile-photo-edit{position:absolute;right:-2px;bottom:0;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:2px solid white;background:var(--green-100);border-radius:50%;opacity:0;transform:scale(.85);pointer-events:none;transition:opacity .16s ease,transform .16s ease}.profile-photo-trigger:hover .profile-photo-edit,.profile-photo-trigger:focus-visible .profile-photo-edit{opacity:1;transform:scale(1)}.avatar-editor-large{gap:20px;margin:16px 0 0}.avatar-source-actions{flex-direction:column;width:100%;gap:8px}.avatar-source-actions .photo-upload-button{width:100%;min-height:48px}.avatar-editor-large>.generic-avatar{max-width:100%;width:min(256px,100%,max(80px,calc(100dvh - 340px)))!important;height:auto!important;aspect-ratio:1;margin-inline:auto}.avatar-editor-large>.generic-avatar>img{object-position:center}.modal:has(.avatar-editor-large){max-height:100%;width:min(100%,360px);margin:auto}@media(prefers-reduced-motion:reduce){.profile-photo-edit{transition:none}}.sources-body{padding:20px;background:#fff;display:flex;flex-direction:column;gap:12px}.sources-intro{padding:20px;border-radius:20px;background:var(--green-800);color:#fff}.sources-intro>span{display:inline-block;margin-bottom:8px;color:var(--green-100);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.sources-intro h2{max-width:270px;font-size:26px;line-height:32px}.sources-intro p{margin-top:8px;color:var(--green-50)}.sources-section{flex-shrink:0;background:var(--neutral-50);border-radius:16px;padding:16px 12px;display:flex;flex-direction:column;gap:12px}.sources-coverage{border:1px solid var(--green-100);background:#fff}.coverage-pills{display:flex;flex-wrap:wrap;gap:8px}.coverage-pills span{padding:6px 10px;border-radius:999px;background:var(--green-100);color:var(--green-900);font-size:12px;font-weight:600}.sources-section h2,.classification-card h3{display:flex;align-items:center;gap:8px;font-size:18px;line-height:28px;font-weight:600}.sources-section h2 img,.classification-card h3 img{width:28px;height:28px;flex-shrink:0;object-fit:contain}.sources-section p{font-size:16px;line-height:24px}.sources-section p a{color:var(--green-600);font-weight:500;text-decoration:none}.source-citations{display:flex;flex-direction:column;gap:12px}.source-citations a{display:grid;grid-template-columns:1fr 1.25fr 20px;gap:12px;align-items:start;color:var(--neutral-800);font-size:14px;line-height:20px;text-decoration:none;min-height:44px}.source-citations a span:nth-child(2){text-decoration:underline}.source-citations img{width:20px;height:20px;transform:rotate(-135deg)}.classification-card{background:var(--orange-50);border-radius:16px;padding:16px 12px}.classification-card ul{margin:12px 0 0;padding-left:24px}.source-certainty{padding:12px;border:1px solid var(--neutral-200);border-radius:12px;background:#fff}.source-certainty h3{color:var(--green-700);font-weight:400}.source-certainty p{font-size:14px;line-height:20px}.sources-notice{background:#fef9c2;padding:18px 16px;border-radius:16px;font-size:14px;line-height:20px;flex-shrink:0}.screen-welcome-complete{--chrome-color:var(--green-700)}.welcome-complete .welcome-brand{animation:welcome-arrive .7s ease-out both;top:42%}.welcome-complete .welcome-brand h1{font-size:30px;line-height:38px;font-weight:700;margin-top:24px;letter-spacing:-.8px}.welcome-complete .welcome-brand p{font-size:18px;margin-top:12px}@keyframes welcome-arrive{0%{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}.profile-detail{background:#fff}.profile-detail-header{background:var(--green-50);color:var(--green-800);flex-shrink:0}.profile-detail-header>div{display:flex;justify-content:space-between;padding:16px 20px;height:56px}.profile-detail-header button{display:flex;gap:4px;align-items:center;border:0;padding:0;background:none;color:inherit;font-weight:600}.profile-detail-header h1{padding:20px}.edit-profile-form{background:#fff}.profile-setting{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--neutral-200);border-radius:var(--radius-xl);width:100%;min-height:62px;padding:16px;margin-bottom:20px;font-size:18px;line-height:28px;font-weight:600}.saved-report{background:var(--neutral-100);border-radius:12px;padding:12px;margin-bottom:16px}.saved-report-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:8px}.saved-report-heading>button:first-child{border:0;padding:0;background:none;text-align:left;flex:1}.saved-report-heading h2{font-size:18px;line-height:28px;font-weight:600}.saved-report-heading small{font-size:14px;line-height:20px}.saved-dish{display:block;border:0;width:100%;padding:12px;text-align:left;border-radius:12px;background:#fff;margin-top:8px}.saved-dish h3{margin-bottom:8px}.saved-dish .allergen-row{padding:12px;min-height:84px;margin-top:4px}.saved-dish .allergen-row>img{width:60px;height:60px}.saved-dish .allergen-label{font-size:16px;line-height:24px}.saved-dish .allergen-label small{font-size:14px}.saved-dish .uncertain-result{flex-wrap:wrap;padding:10px;font-size:12px}.report-tabs{background:var(--neutral-100);gap:6px}.report-tabs button{padding:10px 6px;font-size:14px}.report-tabs button.all.selected{background:var(--green-800);color:#fff}.report-tabs button.critical.selected{background:var(--red-100);color:var(--red-900)}.report-tabs button.avoid.selected{background:var(--orange-100);color:var(--orange-900)}.subscription-body{display:flex;flex-direction:column;padding:0 0 20px}.subscription-close{position:absolute;z-index:2;top:calc(var(--top-inset) + 12px);right:16px;display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:#fff;color:var(--green-800);box-shadow:0 2px 10px #0002;font-size:30px;line-height:1;cursor:pointer}.subscription-close:focus-visible{outline:3px solid var(--green-700);outline-offset:2px}.subscription-hero{display:block;width:100%;height:210px;object-fit:cover}.subscription-content{display:flex;flex-direction:column;gap:16px;padding:20px}.subscription-content h2{align-self:center;max-width:230px;margin:0;color:var(--green-800);text-align:center;font-size:24px;line-height:32px;letter-spacing:-.8px;font-weight:700}.subscription-benefits{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}.subscription-benefits li{display:flex;align-items:center;gap:8px;min-height:24px;color:var(--neutral-800);font-size:16px;line-height:24px}.subscription-benefits img{width:20px;height:20px;flex:none}.subscription-plans{display:flex;flex-direction:column;gap:12px}.subscription-plan{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:80px;padding:12px;border:2px solid var(--neutral-300);border-radius:12px;background:#fff;text-align:left;color:var(--neutral-800)}.subscription-plan.selected{border-color:var(--green-700);background:var(--green-50)}.subscription-plan>span:first-child{display:flex;flex-direction:column;gap:4px}.subscription-plan strong{font-size:16px;line-height:24px;font-weight:600}.subscription-plan b{color:var(--green-800);font-size:16px;line-height:24px;font-weight:700}.subscription-plan img,.subscription-unselected{display:block;width:24px;height:24px;flex:none}.subscription-unselected{border:2px solid var(--neutral-300);border-radius:50%}.subscription-content>.button{width:100%;border-radius:50px}.subscription-links{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;font-size:12px}.subscription-links>.text-button{font-size:12px;text-decoration:underline}.subscription-links>.text-button:after{content:" |";margin-left:8px;color:var(--neutral-600);text-decoration:none}.subscription-links .legal-links{margin:0;font-size:12px}.subscription-message{margin:0;padding:12px;border-radius:12px;background:var(--green-50);color:var(--green-800);font-size:13px;line-height:19px}.group-toggle[aria-expanded=true]>.icon{transform:rotate(180deg)}.group-toggle>.icon{transition:transform .18s ease}.group-items{animation:category-arrive .18s ease-out}.onboarding .mascot-panel{background:var(--neutral-50)}.severity-options .critical.chosen{background:#c10007;color:#fff;border-color:transparent}.severity-options .avoid.chosen{background:#c75607;color:#fff;border-color:transparent}.severity-options .safe.chosen{background:var(--green-700);color:#fff;border-color:transparent}@media(prefers-reduced-motion:reduce){.welcome-complete .welcome-brand,.group-items{animation:none}.group-toggle>.icon{transition:none}}.generic-avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;overflow:hidden;background:var(--green-100);flex-shrink:0;vertical-align:middle}.generic-avatar>img:not(.icon){width:100%;height:100%;object-fit:cover}.avatar-editor{display:flex;flex-direction:column;align-items:center;gap:8px;margin:0 0 12px}.avatar-actions{display:flex;align-items:center;justify-content:center;gap:8px}.avatar-actions:empty{display:none}.edit-avatar-trigger{position:relative;display:block;width:96px;height:88px;padding:0 8px 0 0;border:0;background:none}.edit-avatar-icon{position:absolute;right:0;bottom:0;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;border:2px solid white;background:var(--green-700)}.edit-avatar-icon .icon{filter:brightness(0) invert(1)}.photo-upload-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;background:var(--green-50);color:var(--green-700);min-height:44px;padding:8px 14px;font-size:14px;font-weight:500}.photo-upload-button:hover:not(:disabled){background:var(--green-100)}.photo-upload-button:disabled{opacity:.6}.remove-avatar-button{border:0;background:none;color:var(--neutral-600);min-height:44px;padding:8px;font-size:12px}.avatar-editor>p{font-size:12px;line-height:18px;color:var(--red-900)}.account-page{background:var(--green-50)}.account-content{background:#fff}.account-content p{margin:12px 0 20px}.account-intro h2{margin:0 0 8px;color:var(--green-800);font-size:24px;line-height:32px}.account-intro p{margin:0 0 20px;color:var(--neutral-600)}.oauth-buttons{display:flex;flex-direction:column;gap:12px}.oauth-buttons .button{width:100%}.oauth-buttons .button+.button{margin-top:0}.oauth-logo{display:block;width:24px;height:24px;flex:none;object-fit:contain}.oauth-logo.apple{width:48px;height:48px;margin:-12px;mix-blend-mode:multiply}.provider-note{margin:8px 0 0!important;color:var(--neutral-600);font-size:12px;line-height:18px;text-align:center}.account-divider{display:flex;align-items:center;gap:12px;margin:20px 0;color:var(--neutral-500);font-size:13px}.account-divider:before,.account-divider:after{content:"";height:1px;flex:1;background:var(--neutral-300)}.account-form{display:flex;flex-direction:column;gap:12px}.account-form .field{gap:8px;margin:0}.account-form .privacy-note{margin:-4px 0 0}.password-input{display:flex;align-items:center;height:56px;border:2px solid var(--neutral-300);border-radius:12px;background:#fff;overflow:hidden}.password-input:focus-within{border-color:var(--green-700)}.field .password-input input{min-width:0;flex:1;height:52px;min-height:0;border:0;border-radius:0;outline:0;box-shadow:none;padding:0 0 0 18px}.field .password-input input:focus{border:0;box-shadow:none}.password-input button{align-self:stretch;border:0;background:none;padding:0 16px;color:var(--green-700);font-size:13px;font-weight:600}.account-mode{display:block;width:100%;min-height:44px;margin-top:12px;border:0;background:none;color:var(--green-700);font-weight:600;text-align:center}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;width:100%}body{font-family:var(--font-family);color:var(--neutral-800);background:#e8ede5;font-size:16px;line-height:24px}button,input,select,textarea{font:inherit}button{cursor:pointer;color:inherit}button:disabled{cursor:not-allowed}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:3px solid var(--green-400);outline-offset:3px}h1,h2,h3,p{margin:0}h1{font-size:24px;line-height:32px;font-weight:700;letter-spacing:-.8px}h2{font-size:18px;line-height:28px;font-weight:700}h3{font-size:16px;line-height:24px}a{color:var(--green-700)}.app-shell{--chrome-color: var(--green-50);--top-inset: env(safe-area-inset-top, 0px);position:relative;max-width:440px;height:100dvh;min-height:0;margin:auto;background:#fff;overflow:hidden}.page{position:relative;display:flex;flex-direction:column;height:100%;padding-top:var(--top-inset);background:var(--green-50)}.screen-start,.screen-onboarding,.screen-name,.screen-home,.screen-allergens,.screen-scan{--chrome-color: var(--green-700)}.page:before{content:"";position:absolute;top:0;left:0;right:0;height:var(--top-inset);background:var(--chrome-color);pointer-events:none}.icon{display:block;flex-shrink:0;object-fit:contain}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:4px;background:none;border:0;border-radius:8px}.button{width:100%;min-height:56px;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 16px;border:2px solid transparent;border-radius:9999px;background:var(--green-700);color:#fff;font-weight:500;line-height:24px;flex-shrink:0}.button:hover:not(:disabled){background:linear-gradient(#0000000d,#0000000d),var(--green-700)}.button:active:not(:disabled){background:linear-gradient(#0000001a,#0000001a),var(--green-700)}.button.secondary{background:#fff;border-color:var(--neutral-300);color:var(--neutral-800)}.button.secondary:hover:not(:disabled){background:linear-gradient(#3668230d,#3668230d),#fff;border-color:var(--neutral-400)}.button.secondary:active:not(:disabled){background:linear-gradient(#3668231a,#3668231a),#fff;border-color:var(--neutral-400)}.button.danger{background:var(--red-700)}.button.danger.secondary{background:#fff;color:var(--red-700);border-color:var(--red-700)}.button.danger.secondary:hover:not(:disabled){background:linear-gradient(#c100070d,#c100070d),#fff}.button.danger.secondary:active:not(:disabled){background:linear-gradient(#c100071a,#c100071a),#fff}.button:disabled{background:var(--neutral-200);border-color:transparent;color:var(--neutral-400)}.button+.button{margin-top:12px}.fixed-actions{padding:20px 20px calc(20px + env(safe-area-inset-bottom));background:#fff;margin-top:auto;flex-shrink:0}.scroll-body{overflow-y:auto;overscroll-behavior:contain;min-height:0;flex:1;scrollbar-width:thin;scrollbar-color:var(--neutral-200) transparent}.wordmark{font-size:16px;line-height:24px;font-weight:600;letter-spacing:-2px}.brand{height:56px;padding:16px 20px;display:flex;align-items:center;justify-content:space-between;color:#fff}.avatar-button{background:none;border:0;padding:0;display:flex;gap:5px;align-items:center;color:#fff}.avatar-button img{border-radius:50%}.topbar{display:grid;grid-template-columns:32px 1fr 32px;gap:6px;align-items:center;padding:18px 16px;height:68px;flex-shrink:0;background:var(--green-50);color:var(--green-800)}.topbar h1{text-align:center;font-size:18px;line-height:28px;letter-spacing:0}.topbar.dark{background:var(--green-700);color:#fff}.topbar.dark .icon{filter:brightness(0) invert(1)}.bottom-nav{height:calc(82px + env(safe-area-inset-bottom));padding:16px 20px calc(16px + env(safe-area-inset-bottom));display:flex;justify-content:space-between;flex-shrink:0;background:#fff;box-sizing:border-box;margin-top:auto}.bottom-nav button{border:0;background:none;display:flex;align-items:center;gap:8px;flex-direction:column;width:80px;padding:0;font-size:12px;line-height:18px;color:var(--neutral-400);font-weight:500}.bottom-nav button.active{color:var(--green-700)}.home-header{height:188px;background:var(--green-700);flex-shrink:0}.home-header h1{margin:20px;color:#fff}.home-main{padding:0 20px 20px;display:flex;flex-direction:column;gap:24px;min-height:0;flex:1}.home-main>.button{margin-top:auto;flex-shrink:0;position:relative;z-index:1}.my-allergens{position:relative;margin-top:-30px;background:#fff;border-radius:16px;padding:16px;box-shadow:var(--shadow-xl);height:auto;min-height:180px;flex:1;max-height:none}.card-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;height:24px}.card-heading h2{font-size:16px;line-height:24px;font-weight:600}.card-heading>div{display:flex;gap:16px}.card-heading .icon-button{width:24px;height:24px;padding:0}.card-heading .icon{width:20px;height:20px}.home-allergen-list{height:calc(100% - 36px);overflow:auto;display:flex;flex-direction:column;gap:12px;scrollbar-width:thin;scrollbar-color:var(--neutral-200) transparent}.allergen-row{padding:12px;display:flex;width:100%;align-items:center;gap:8px;min-height:84px;flex-shrink:0;border:0;border-radius:12px;text-align:left}.allergen-row>img{width:60px;height:60px;object-fit:contain;flex-shrink:0}.allergen-label{display:flex;flex-direction:column;flex:1;min-width:0;font-size:16px;line-height:24px}.allergen-label small{font-size:14px;line-height:20px;color:var(--neutral-600)}.allergen-label .possible{font-size:11px}.critical{background:var(--red-50)}.avoid{background:var(--orange-50)}.safe{background:var(--green-50)}.uncertain,.untracked{background:var(--neutral-100)}.badge{font-size:12px;line-height:18px;padding:4px 8px;border-radius:9999px;white-space:nowrap;font-weight:400;display:inline-block;background:var(--neutral-200)}.badge.critical{background:var(--red-200);color:var(--red-900)}.badge.avoid{background:var(--orange-200);color:var(--orange-900)}.badge.safe,.badge.local{background:var(--green-200);color:var(--green-900)}.welcome{background:var(--green-700);color:#fff}.welcome-brand{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.welcome-brand img{object-fit:contain}.welcome-brand h1{font-size:30px;line-height:38px;font-weight:700;letter-spacing:-.8px;margin-top:8px}.welcome-brand p{font-size:20px;line-height:30px;margin-top:16px}.welcome .fixed-actions{background:transparent;padding-top:0;padding-bottom:calc(28px + env(safe-area-inset-bottom))}.onboarding-heading{padding:20px;background:var(--green-700);color:#fff;flex-shrink:0}.onboarding-heading p{margin-top:4px}.onboard-content{flex:1;padding:28px 20px 12px;overflow:auto;min-height:0}.category-count{text-align:center;color:var(--neutral-600);margin-bottom:16px;position:relative}.category-count button{position:absolute;left:0;top:-8px;background:none;border:0;font-size:28px;width:40px;height:40px}.stacked-card{position:relative;border-radius:16px;background:#fff;padding:16px;box-shadow:var(--shadow-xl);z-index:1}.stacked-card:after{content:"";position:absolute;left:22px;right:22px;height:20px;bottom:-20px;background:#fff9;z-index:-1;border-radius:0 0 16px 16px;box-shadow:0 14px 20px #0001}.stacked-card h2{text-align:center;font-size:24px;line-height:32px;font-weight:500;margin-bottom:12px}.mascot-panel{height:254px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border-radius:12px}.mascot-panel>img{width:180px;height:180px;object-fit:contain}.mascot-panel.unselected{background:var(--neutral-50)}.neutral-mascot{opacity:1}.severity-options{display:flex;gap:8px;margin-top:16px}.severity-options button{height:54px;flex:1;border:2px solid transparent;border-radius:50px;font-weight:500;padding:8px}.severity-options .critical{background:var(--red-100)}.severity-options .avoid{background:var(--orange-100)}.severity-options .safe{background:var(--green-100)}.severity-options .chosen{border-color:currentColor}.onboarding .fixed-actions,.name-page .fixed-actions{background:var(--green-50)}.category-detail{font-size:12px;line-height:18px;color:var(--neutral-600);text-align:center;margin-top:32px}.name-form{display:flex;flex:1;flex-direction:column;padding:20px}.name-form .fixed-actions{padding-left:0;padding-right:0;padding-bottom:20px}.field{display:flex;flex-direction:column;gap:8px;margin-bottom:20px;font-weight:500}.field input,.field select,.field textarea{width:100%;border:2px solid var(--neutral-300);border-radius:12px;background:#fff;padding:14px 18px;color:var(--neutral-800);outline:none;min-height:56px;font-weight:400}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--green-600);box-shadow:0 0 0 3px var(--green-100)}.field textarea{resize:vertical}.allergen-header{background:var(--green-700);color:#fff}.allergen-title{display:flex;align-items:center;justify-content:space-between;padding:20px}.allergen-title button{border:0;background:none;color:#fff;font-size:14px;padding:0}.allergen-title button span{font-size:20px}.allergen-body{padding:20px}.tabs{display:flex;background:#fff;padding:4px;border-radius:16px;gap:0;margin-bottom:16px}.tabs button{flex:1;padding:8px;border:0;border-radius:12px;background:none;color:var(--neutral-400);font-weight:500}.tabs button.critical{background:var(--red-200);color:var(--red-900)}.tabs button.avoid{background:var(--orange-200);color:var(--orange-900)}.tabs button.safe{background:var(--green-200);color:var(--green-900)}.allergen-group{background:#fff;border-radius:16px;margin-bottom:12px;overflow:hidden}.group-toggle{width:100%;padding:16px;display:flex;gap:8px;align-items:center;background:none;border:0;text-align:left}.group-toggle strong{font-size:18px;line-height:28px;flex:1}.group-toggle img{object-fit:contain}.group-items{padding:0 16px 16px;display:flex;flex-direction:column;gap:12px}.overlay{position:absolute;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;padding:20px;z-index:30;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.modal{max-height:calc(100dvh - 40px);overflow:auto;background:#fff;padding:20px;border-radius:16px;box-shadow:0 20px 30px #0003;width:100%;text-align:center}.modal>h2{margin-bottom:8px}.modal>p{margin:10px 0 16px}.modal .button{margin-top:12px}.modal-heading{position:relative;display:flex;align-items:center;justify-content:center;margin-bottom:12px;min-height:28px}.modal-heading .icon-button{position:absolute;right:-4px;top:-2px}.modal .field{text-align:left}.edit-mascot{padding:40px 20px 24px;border-radius:12px;margin-bottom:16px}.edit-mascot img{object-fit:contain}.edit-mascot p{margin:12px 0 8px}.sheet-overlay{padding:0;align-items:flex-end;-webkit-backdrop-filter:none;backdrop-filter:none}.sheet{background:#fff;border-radius:24px 24px 0 0;padding:20px 28px calc(28px + env(safe-area-inset-bottom));width:100%}.sheet-handle{display:block;width:36px;height:4px;background:var(--neutral-300);border-radius:4px;margin:0 auto 20px}.source-options{display:flex;gap:16px}.source-options button{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:20px;border:0;border-radius:16px;background:var(--green-50);color:var(--green-900);font-weight:500}.text-button{border:0;background:none;color:var(--green-700);font-size:14px;line-height:20px;padding:10px 0}.empty-profile{padding:24px 8px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px}.empty-note{padding:24px 8px;text-align:center;color:var(--neutral-500)}.ai-consent{display:flex;align-items:flex-start;gap:10px}.ai-consent input{flex:0 0 auto;width:20px;height:20px}.legal-links{font-size:14px;line-height:1.6}.privacy-note{font-size:12px;line-height:18px;color:var(--neutral-600);margin:12px 0}.padded{padding:20px}.profile-header{padding-bottom:20px;text-align:center;color:var(--green-800)}.profile-brand{height:56px;padding:16px 20px;display:flex;align-items:center;justify-content:space-between}.profile-avatar{border-radius:50%;object-fit:cover;margin:4px auto 8px;width:60px;height:60px}.profile-header h1{margin-bottom:8px}.profile-links{padding:20px;background:#fff}.profile-link{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--neutral-200);border-radius:12px;padding:16px;width:100%;min-height:62px;margin-bottom:12px;text-align:left;font-size:18px;line-height:28px}.profile-page{background:#fff}.profile-link strong,.group-toggle strong{font-weight:600}.profile-brand>.icon{width:32px;height:24px}.profile-header{background:var(--green-50)}.saved-card{border:1px solid var(--neutral-200);border-radius:12px;background:#fff;padding:12px;margin-bottom:16px}.saved-open{display:block;text-align:left;width:100%;border:0;background:none;padding:0}.saved-open small{color:var(--neutral-600);display:block;margin:6px 0 12px}.saved-summary{display:flex;justify-content:space-between;font-size:14px}.saved-summary span{color:var(--green-700)}.plan-card{background:#fff;border-radius:16px;padding:20px}.plan-card h2{margin:16px 0}.plan-card p{margin-top:16px}.plan-card li{padding:4px 0}.source-content h2,.settings-content h2{margin:16px 0 12px}.source-content h2:first-child,.settings-content h2:first-child{margin-top:0}.source-content p{margin-bottom:16px}.source-content a{display:block;margin-bottom:12px}.source-content section{background:#fff;border-radius:12px;padding:12px;margin-bottom:12px}.source-content section p{margin:4px 0 0;font-size:14px}.toast{position:absolute;left:20px;right:20px;bottom:100px;z-index:60;border-radius:12px;background:var(--green-950);color:#fff;padding:14px 16px;font-size:14px;box-shadow:0 8px 24px #0003}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.scan-intro{flex:1;background:var(--green-700)}.scan-empty{height:100%;display:flex;align-items:center;justify-content:center;background:var(--green-900)}.legend-art{width:92px;height:92px;object-fit:contain;margin:12px auto 16px}.scan-review{padding:20px}.photo-preview{width:100%;height:346px;object-fit:cover;border-radius:8px;display:block}.photo-strip{display:flex;gap:12px;padding:20px 0;overflow-x:auto;min-height:116px}.thumbnail{width:70px;height:94px;position:relative;flex-shrink:0;border:2px solid transparent;border-radius:4px}.thumbnail.selected{border-color:var(--green-700)}.thumbnail-image{width:100%;height:100%;padding:0;border:0;background:none}.thumbnail img{width:100%;height:100%;object-fit:cover}.thumbnail>span{position:absolute;bottom:0;left:0;right:0;background:#0009;color:#fff;font-size:10px;line-height:16px;text-align:center;pointer-events:none}.remove-photo{position:absolute;right:-8px;top:-8px;border:0;background:var(--green-700);color:#fff;border-radius:50%;width:20px;height:20px;padding:0;line-height:20px}.add-photo{width:70px;height:94px;flex-shrink:0;border:1px dashed var(--green-700);border-radius:4px;background:transparent;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;color:var(--green-700);font-size:12px;line-height:18px;font-weight:600}.scan-actions{margin-top:12px;padding-bottom:env(safe-area-inset-bottom)}.upload-empty{height:280px;width:100%;border:2px dashed var(--green-300);border-radius:12px;background:#fff;color:var(--green-800);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}.upload-empty span{font-size:12px;color:var(--neutral-500)}.camera-view{position:relative;background:#172111;flex:1;min-height:0}.camera-view video{width:100%;height:100%;object-fit:cover;position:absolute}.viewfinder{position:absolute;inset:25px 20px 130px;border:2px solid #fff9;border-radius:12px}.camera-hint{position:absolute;top:40px;left:24px;right:24px;text-align:center;color:#fff;text-shadow:0 1px 6px #000}.camera-error{position:absolute;top:30%;padding:24px;color:#fff;text-align:center}.camera-controls{position:absolute;bottom:0;left:0;right:0;background:var(--green-700);padding:20px;display:flex;align-items:center;justify-content:space-around;height:100px}.camera-controls .icon{filter:brightness(0) invert(1)}.shutter{width:60px;height:60px;border:6px solid var(--green-300);background:#fff;border-radius:50%}.shutter:disabled{opacity:.4}.error-box{padding:16px;background:var(--red-50);border-radius:12px;color:var(--red-900);font-size:14px;line-height:20px;margin:12px 0}.error-box p{margin-top:8px}.spinner{width:72px;height:72px;border:6px solid var(--green-100);border-top-color:var(--green-600);border-radius:50%;margin:16px auto 24px;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.results{background:#fff}.selection-body,.results-body{padding:20px}.show-all{display:flex;width:100%;border:0;background:var(--green-600);color:#fff;padding:20px;align-items:center;justify-content:space-between;border-radius:12px;text-align:left}.show-all>span{display:flex;flex-direction:column;gap:4px}.selection-body>p{margin:20px 0}.dish-options{display:flex;flex-direction:column;gap:12px}.dish-option{border:1px solid var(--neutral-200);border-radius:12px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px;min-height:66px;cursor:pointer}.dish-option input{appearance:none;width:24px;height:24px;border:2px solid var(--neutral-300);border-radius:6px;flex-shrink:0;margin:0}.dish-option input:checked{background:var(--green-700);border-color:var(--green-700);box-shadow:inset 0 0 0 4px #fff}.selection-body>p{font-weight:500}.dish-option strong{min-width:0;overflow-wrap:anywhere}.dish-option.is-selected{border-color:var(--green-700);background:var(--green-50)}.dish-option input:checked{appearance:auto;accent-color:var(--green-700);box-shadow:none}.show-all>.icon{filter:brightness(0) invert(1)}.allergen-label .possible{font-size:11px;line-height:16px;margin-top:3px}.result-counts{display:flex;gap:8px;margin-bottom:20px}.result-counts button{display:flex;flex:1;min-width:0;flex-direction:column;align-items:center;gap:4px;padding:12px 4px;border:2px solid transparent;border-radius:12px;font-weight:500}.result-counts .critical{background:var(--red-100);color:var(--red-900)}.result-counts .avoid{background:var(--orange-100);color:var(--orange-900)}.result-counts .uncertain{background:var(--neutral-100);color:var(--neutral-700)}.result-counts strong{font-size:20px;line-height:30px}.result-counts .selected{border-color:currentColor}.report-overview{padding:14px;margin-bottom:18px;border:1px solid var(--neutral-200);border-radius:12px;background:#fff}.report-overview h2,.menu-results-heading{font-size:16px;line-height:24px;margin-bottom:10px}.report-overview p{color:var(--neutral-600);font-size:13px;line-height:19px}.found-allergens{display:flex;flex-wrap:wrap;gap:7px}.found-allergens span{padding:6px 9px;border-radius:999px;background:var(--neutral-100);font-size:12px;font-weight:650}.found-allergens .critical{background:var(--red-100);color:var(--red-900)}.found-allergens .avoid{background:var(--orange-100);color:var(--orange-900)}.found-allergens .safe{background:var(--green-50);color:var(--green-700)}.menu-results-heading{margin-top:2px}.dish-card{border:1px solid var(--neutral-200);border-radius:12px;padding:12px;margin-bottom:12px}.dish-card h2{font-size:16px;line-height:24px;margin-bottom:8px}.dish-card .allergen-row+.allergen-row{margin-top:8px}.details-toggle{width:100%;text-align:left;display:flex;justify-content:space-between;padding-bottom:0;font-size:12px}.evidence{font-size:14px;line-height:20px}.evidence p,.evidence h3{margin-top:12px}.evidence ul{padding-left:20px}.evidence li{margin-bottom:8px}.uncertain-result{display:flex;align-items:center;gap:12px;background:var(--neutral-100);border-radius:12px;padding:16px;font-size:14px}.uncertain-result small{color:var(--neutral-600);font-size:12px}.question-mark{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--neutral-200);border-radius:50%;font-size:24px}.report-note{font-size:12px;line-height:18px;background:var(--orange-50);padding:12px;border-radius:12px;margin:16px 0}.report-note p{margin-top:6px}.transcript{font-size:14px;margin:16px 0}.transcript pre{white-space:pre-wrap;font:inherit;font-size:12px;line-height:18px}.legend-mappings{margin:10px 0;font-size:12px}.legend-mappings div{display:grid;grid-template-columns:minmax(32px,auto) 1fr;gap:10px;padding:7px 0;border-bottom:1px solid var(--neutral-100)}.legend-mappings dt{font-weight:700}.legend-mappings dd{margin:0;overflow-wrap:anywhere}.settings-content{overflow:auto;padding:20px;background:var(--neutral-50)}.settings-hero{display:flex;gap:14px;align-items:center;padding:18px;margin-bottom:16px;border-radius:18px;background:var(--green-800);color:#fff}.settings-hero>.icon{width:32px;height:32px;padding:6px;box-sizing:content-box;border-radius:12px;background:#fff}.settings-hero h2{margin:0 0 2px;font-size:20px}.settings-hero p{color:var(--green-50);font-size:13px;line-height:18px}.settings-card{padding:16px;margin-bottom:12px;border:1px solid var(--neutral-200);border-radius:16px;background:#fff}.settings-card h3{margin:0 0 12px;color:var(--green-900);font-size:16px}.settings-card .field{margin:0}.settings-card .legal-links{margin-bottom:12px}.settings-card>.button{width:100%;margin-top:10px}.confirm-dialog>p{margin:10px 0 16px}.danger-dialog-icon,.discard-dialog-icon{display:grid;place-items:center;width:56px;height:56px;margin:0 auto 8px;border-radius:50%;background:var(--red-100)}.danger-dialog-icon .icon,.discard-dialog-icon .icon{filter:none}.danger-dialog .button.danger,.discard-dialog .button.danger{background:#b42318;color:#fff}.toast{display:grid;grid-template-columns:28px 1fr 28px;gap:10px;align-items:center;bottom:calc(94px + env(safe-area-inset-bottom));padding:12px;border:1px solid var(--green-700);border-radius:16px;background:#fff;color:var(--green-950);box-shadow:0 12px 36px #12220d2e}.toast-mark{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--green-700);color:#fff;font-weight:700}.toast button{width:28px;height:28px;border:0;border-radius:50%;background:var(--neutral-100);color:var(--neutral-700);font-size:20px;line-height:1}.report-tabs button.critical:not(.selected),.report-tabs button.avoid:not(.selected){background:none;color:var(--neutral-500)}@media(min-width:600px){.app-shell{height:min(800px,calc(100dvh - 48px));min-height:600px;max-width:360px;margin:24px auto;border-radius:24px;box-shadow:0 24px 80px #21341c24}.page{--top-inset: 20px}.home-header{height:188px}.overlay{border-radius:24px}.welcome .fixed-actions{padding-bottom:28px}}@media(max-height:650px){.mascot-panel{height:200px;gap:8px}.mascot-panel>img{width:130px;height:130px}.onboard-content{padding-top:16px}.my-allergens{min-height:180px}.photo-preview{height:260px}.category-detail{margin-top:28px}.stacked-card{padding:12px}.welcome-brand{top:35%}}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:2s}}.mascot-panel{transition:background-color .24s ease;overflow:hidden}.mascot-panel>img{transform-origin:50% 80%}.reaction-critical{animation:critical-reaction .55s ease-out}.reaction-avoid{animation:avoid-reaction .6s ease-out}.reaction-safe{animation:safe-reaction .6s cubic-bezier(.22,.75,.3,1)}.selection-badge{animation:badge-arrive .28s ease-out both}.stacked-card{animation:category-arrive .22s ease-out both}.severity-options button{transition:transform .15s ease,box-shadow .18s ease,border-color .18s ease;touch-action:manipulation}.severity-options button.chosen{box-shadow:inset 0 0 0 1px currentColor;transform:translateY(-2px)}.severity-options button:active{transform:scale(.94)}.button{transition:background-color .18s ease,transform .15s ease;touch-action:manipulation}.button:active:not(:disabled){transform:scale(.98)}.sheet{animation:sheet-arrive .24s cubic-bezier(.2,.8,.2,1)}.install-app-heading{display:flex;align-items:center;gap:14px;text-align:left;margin-bottom:18px}.install-app-heading img{width:64px;height:64px;border-radius:16px;box-shadow:0 6px 18px #1c321526}.install-app-heading h2{font-size:22px;line-height:28px;margin:0 0 3px}.install-app-heading p{color:var(--neutral-600);font-size:14px;line-height:20px;margin:0}.install-steps{margin:0 0 18px;padding:14px 14px 14px 38px;border-radius:14px;background:var(--green-50);text-align:left}.install-steps li{padding:4px 0 4px 4px;font-size:14px;line-height:20px}.sheet .install-app-heading~.button{margin-top:8px}.device-camera-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:0;background:transparent;color:#fff;min-width:64px;min-height:60px;padding:4px;font-size:11px;line-height:14px}.camera-controls{height:auto;min-height:100px;padding-bottom:calc(20px + env(safe-area-inset-bottom))}.camera-controls>.icon-button{width:60px;height:60px}@keyframes critical-reaction{0%,to{transform:rotate(0) scale(1)}20%{transform:rotate(-10deg) scale(1.08)}40%{transform:rotate(9deg) scale(1.08)}60%{transform:rotate(-6deg)}80%{transform:rotate(3deg)}}@keyframes avoid-reaction{0%,to{transform:translate(0) rotate(0)}25%{transform:translate(-9px) rotate(-6deg)}55%{transform:translate(7px) rotate(5deg)}80%{transform:translate(-3px)}}@keyframes safe-reaction{0%,to{transform:translateY(0) scale(1)}22%{transform:translateY(3px) scale(1.06,.94)}48%{transform:translateY(-18px) scale(.97,1.04)}75%{transform:translateY(0) scale(1.04,.97)}}@keyframes badge-arrive{0%{opacity:.3;transform:translateY(5px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes category-arrive{0%{opacity:.5;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes sheet-arrive{0%{transform:translateY(100%)}to{transform:translateY(0)}}.edit-profile-form{padding:20px}.edit-profile-form .field{gap:8px;margin-bottom:12px}.edit-profile-form .field input{min-height:56px;padding:14px 18px}.edit-profile-form .profile-setting{min-height:62px;padding:16px;margin-top:16px}.edit-profile-form>.button+.button{margin-top:20px}@media(max-height:700px){.screen-edit-profile .profile-detail-header h1{padding-top:8px;padding-bottom:8px}.edit-profile-form .avatar-editor>.generic-avatar{width:48px!important;height:48px!important}.edit-profile-form .field{line-height:20px;margin-bottom:8px}.edit-profile-form .field input{min-height:44px;padding:8px 14px}}.page.profile-detail{background:#fff}.tabs.report-tabs{background:var(--neutral-100)}.badge.free{background:var(--green-200);color:var(--green-900)}@media(max-width:599px),(pointer:coarse),(display-mode:standalone){html,body,#root{height:100%;overflow:hidden;overscroll-behavior:none}body{background:var(--app-chrome, #366823)}.app-shell{width:100%;max-width:none;height:100dvh;min-height:0;margin:0;border-radius:0;box-shadow:none;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);background:var(--chrome-color)}.page{--top-inset:env(safe-area-inset-top, 0px)}.overlay{border-radius:0}.scroll-body{-webkit-overflow-scrolling:touch}button{touch-action:manipulation}}html.native-app,html.native-app body,html.native-app #root{height:100%;overflow:hidden;overscroll-behavior:none}html.native-app body{background:#fff}html.native-app .app-shell{width:100%;max-width:none;height:100%;min-height:0;margin:0;border-radius:0;box-shadow:none;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}@media(max-width:599px),(pointer:coarse){.mascot-panel{contain:paint}.mascot-panel>img{backface-visibility:hidden;will-change:transform,opacity}.reaction-critical,.reaction-avoid,.reaction-safe{animation:mobile-selection .36s cubic-bezier(.2,.8,.2,1) both}.selection-badge{animation:mobile-badge .26s cubic-bezier(.2,.8,.2,1) both}.severity-options button.chosen{transform:none;box-shadow:inset 0 0 0 1px #ffffff80,0 3px 10px #24341e1f}.severity-options button:active{transform:scale(.975)}}@keyframes mobile-selection{0%{opacity:.62;transform:translate3d(0,7px,0) scale(.965)}62%{opacity:1;transform:translate3d(0,-2px,0) scale(1.018)}to{opacity:1;transform:translateZ(0) scale(1)}}@keyframes mobile-badge{0%{opacity:.45;transform:translate3d(0,3px,0) scale(.96)}to{opacity:1;transform:translateZ(0) scale(1)}}@media(prefers-reduced-motion:reduce){.mascot-reaction,.selection-badge,.stacked-card,.sheet{animation:none}.mascot-panel,.severity-options button,.button{transition:none}.severity-options button.chosen,.severity-options button:active,.button:active:not(:disabled){transform:none}}
