:root{--green:#1b7a43;--green-dark:#146031;--green-light:#e7f4ec;--ink:#1c2420;--muted:#5b6660;--line:#dfe7e1;--bg:#ffffff;--bg-soft:#f4f8f5;--amber:#b45309;--amber-bg:#fef3c7;--red:#b91c1c;--red-bg:#fee2e2;--radius:14px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:18px;line-height:1.6;color:var(--ink);background:var(--bg)}a{color:var(--green)}img{max-width:100%}h1,h2,h3{line-height:1.25;margin:0 0 .5em}h1{font-size:2.4rem}h2{font-size:1.7rem}h3{font-size:1.25rem}p{margin:0 0 1em}.wrap{max-width:1080px;margin:0 auto;padding:0 20px}.site-header{border-bottom:1px solid var(--line);background:#fff;position:-webkit-sticky;position:sticky;top:0;z-index:20}.header-inner{gap:24px;height:64px}.brand,.header-inner{display:flex;align-items:center}.brand{gap:10px;text-decoration:none;color:var(--ink)}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:var(--green);color:#fff;font-size:22px;font-weight:700}.brand-name{font-size:1.35rem;font-weight:800;letter-spacing:-.02em}.main-nav{display:flex;gap:4px;margin-left:auto;flex-wrap:wrap}.nav-link{color:var(--ink);text-decoration:none;padding:8px 12px;border-radius:8px;font-size:1rem}.nav-link:hover{background:var(--green-light)}.btn{display:inline-block;border:none;cursor:pointer;text-decoration:none;font-size:1.05rem;font-weight:700;padding:13px 24px;border-radius:12px}.btn-primary{background:var(--green);color:#fff}.btn-primary:hover{background:var(--green-dark)}.btn-secondary{background:var(--green-light);color:var(--green-dark)}.btn-block{display:block;width:100%;text-align:center}.input,select.input{width:100%;font-size:1.05rem;padding:12px 14px;border:2px solid var(--line);border-radius:12px;background:#fff;color:var(--ink)}.input:focus{outline:none;border-color:var(--green)}.field-label{display:block;font-weight:700;margin:14px 0 6px}.hero{background:linear-gradient(180deg,var(--green-light),#fff);padding:56px 0 40px}.hero h1{font-size:2.6rem;letter-spacing:-.02em}.hero p.lede{font-size:1.25rem;color:var(--muted);max-width:640px}.hero-search{display:flex;gap:10px;max-width:640px;margin:20px 0 12px}.hero-search .input{font-size:1.15rem;padding:15px 16px}.hero-note{color:var(--muted);font-size:.95rem}.section{padding:44px 0}.section.soft{background:var(--bg-soft)}.steps{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:18px;gap:18px;margin-top:20px}.step{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px}.step-num{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--green);color:#fff;font-weight:800;font-size:1.2rem;margin-bottom:10px}.step h3{margin-bottom:6px}.step p{color:var(--muted);margin:0}.cards{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:18px;gap:18px;margin-top:20px}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;text-decoration:none;color:var(--ink)}.card:hover{border-color:var(--green)}.card h3{margin-bottom:6px}.card p{color:var(--muted);margin:0}.card .go{display:inline-block;margin-top:12px;font-weight:700;color:var(--green)}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:18px;gap:18px;margin-top:20px}.stat{text-align:center;padding:18px 8px}.stat strong{display:block;font-size:2rem;color:var(--green)}.stat span{color:var(--muted)}.dish-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:18px;gap:18px}.dish-card{display:block;text-decoration:none;color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff}.dish-card:hover{border-color:var(--green)}.dish-thumb{display:block;aspect-ratio:1;overflow:hidden;background:var(--bg-soft)}.dish-thumb img{width:100%;height:100%;object-fit:cover;display:block}.dish-body{display:block;padding:14px 16px 16px}.dish-name{display:block;font-weight:800;font-size:1.08rem;line-height:1.3}.dish-theme{display:block;color:var(--muted);font-size:.92rem;margin-top:2px}.dish-macros{display:block;margin-top:10px;font-size:.98rem}.dish-macros strong{display:block;font-size:1.1rem}.dish-macros span{display:block;color:var(--muted)}.dish-serve{font-size:.9rem!important}.level-badge{display:inline-block;margin-top:10px;padding:4px 10px;border-radius:999px;font-size:.88rem;font-weight:700}.level-ok{background:var(--green-light);color:var(--green-dark)}.level-watch{background:var(--amber-bg);color:var(--amber)}.level-caution{background:#ffedd5;color:#9a3412}.level-limit{background:var(--red-bg);color:var(--red)}.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin:18px 0}.filters .field{flex:1 1 160px}.filters label{display:block;font-weight:700;font-size:.92rem;margin-bottom:4px}.pager{display:flex;gap:10px;align-items:center;justify-content:center;margin:28px 0 8px}.pager .page-info{color:var(--muted)}.dish-detail{display:grid;grid-template-columns:420px 1fr;grid-gap:32px;gap:32px;align-items:start;padding:28px 0 44px}.dish-photo{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line)}.dish-photo img{width:100%;display:block}.dish-meta{color:var(--muted)}.dish-meta strong{color:var(--ink)}.add-diary{margin-top:22px;border:1px solid var(--line);border-radius:var(--radius);padding:18px;background:var(--bg-soft)}.nutrition{margin-top:8px}.nutri-table{width:100%;border-collapse:collapse;margin:8px 0 16px}.nutri-table td{padding:9px 4px;border-bottom:1px solid var(--line)}.nutri-table td.num{text-align:right;font-weight:700;white-space:nowrap}.nutri-table td.sub{padding-left:18px;color:var(--muted)}.est-tag{font-size:.8rem;background:var(--amber-bg);color:var(--amber);padding:3px 8px;border-radius:999px;vertical-align:middle;font-weight:700}.fine-print{font-size:.9rem;color:var(--muted)}.tag-list{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:8px 0 16px}.tag-list li{background:var(--green-light);padding:5px 12px;border-radius:999px;font-size:.95rem}.pros-cons{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.pros-cons h4{margin:0 0 6px}.pros-cons ul{margin:0;padding-left:20px}.swap-list{list-style:none;padding:0;margin:8px 0;display:flex;flex-wrap:wrap;gap:8px}.swap-list a{background:#fff;border:1px solid var(--line);border-radius:999px;padding:6px 12px;text-decoration:none;color:var(--ink);font-size:.95rem}.swap-list a:hover{border-color:var(--green)}.diary-day{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:14px 0}.totals-bar{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px;margin:16px 0}.total-cell{border:1px solid var(--line);border-radius:var(--radius);padding:14px;text-align:center}.total-cell strong{display:block;font-size:1.4rem}.total-cell span{color:var(--muted);font-size:.92rem}.progress{height:8px;background:var(--line);border-radius:99px;overflow:hidden;margin-top:8px}.progress>span{display:block;height:100%;background:var(--green)}.meal-group{margin:22px 0}.meal-group h3{border-bottom:2px solid var(--green-light);padding-bottom:6px}.diary-row{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.diary-row img{width:64px;height:64px;object-fit:cover;border-radius:10px}.diary-row .grow{flex:1 1}.diary-row .row-name{font-weight:700;display:block}.diary-row .row-sub{color:var(--muted);font-size:.95rem}.btn-small{padding:8px 14px;font-size:.95rem}.btn-danger{background:var(--red-bg);color:var(--red)}.empty{color:var(--muted);padding:18px 0}.scan-tabs{display:flex;gap:10px;margin:18px 0;flex-wrap:wrap}.scan-box{border:2px dashed var(--line);padding:28px;text-align:center}.scan-box,.scan-preview{border-radius:var(--radius)}.scan-preview{max-width:420px;margin:16px auto}.steps-list{margin:12px 0;padding-left:20px;color:var(--muted)}.result-card{border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin:14px 0}.error-box{background:var(--red-bg);color:var(--red);border-radius:12px;padding:14px 16px;margin:14px 0}.site-footer{border-top:1px solid var(--line);padding:28px 0 36px;margin-top:20px;background:var(--bg-soft)}@media (max-width:820px){body{font-size:17px}.hero h1,h1{font-size:1.9rem}.cards,.steps{grid-template-columns:1fr}.dish-grid,.stat-grid{grid-template-columns:repeat(2,1fr)}.dish-detail{grid-template-columns:1fr}.totals-bar{grid-template-columns:repeat(2,1fr)}.header-inner{height:auto;padding:10px 0;flex-wrap:wrap;gap:8px}.main-nav{margin-left:0}.hero{padding:36px 0 28px}}@media (max-width:520px){.dish-grid{grid-template-columns:1fr}.hero-search{flex-direction:column}}.topbar{background:var(--green-dark);color:#fff;font-size:.92rem}.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:7px;padding-bottom:7px}.topbar-location{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-meta{display:flex;align-items:center;gap:10px;white-space:nowrap;margin-left:auto;flex-shrink:0}.topbar-meta strong{color:#fff}.topbar-dot{opacity:.6}.lang-switch{display:flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;margin-left:8px;flex-shrink:0}.lang-switch button{border:none;background:#fff;padding:7px 12px;font-size:.9rem;font-weight:700;cursor:pointer;color:var(--muted)}.lang-switch button.active{background:var(--green);color:#fff}.hero-banner{background:radial-gradient(1100px 480px at 85% -10%,#bfe6cb 0,rgba(191,230,203,0) 60%),linear-gradient(180deg,var(--green-light),#fff);padding:64px 0 48px}.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;grid-gap:44px;gap:44px;align-items:center}.hero-eyebrow{display:inline-block;background:#fff;border:1px solid var(--line);color:var(--green-dark);font-weight:700;font-size:.92rem;padding:6px 14px;border-radius:999px;margin:0 0 16px}.hero-copy h1{font-size:2.9rem}.hero-ctas{display:flex;gap:12px;flex-wrap:wrap;margin:6px 0 14px}.hero-stats{display:grid;grid-template-columns:repeat(4,auto);grid-gap:8px 28px;gap:8px 28px;margin-top:22px;padding-top:20px;border-top:1px solid var(--line);justify-content:start}.hero-stat strong{display:block;font-size:1.7rem;color:var(--green);line-height:1.1}.hero-stat span{color:var(--muted);font-size:.92rem}.hero-photo{position:relative;margin:0}.hero-photo img{width:100%;border-radius:22px;display:block;box-shadow:0 24px 48px rgba(20,96,49,.22);aspect-ratio:1;object-fit:cover}.hero-photo-card{position:absolute;left:18px;bottom:18px;background:rgba(255,255,255,.96);border-radius:14px;padding:12px 16px;box-shadow:0 10px 24px rgba(0,0,0,.16)}.hero-photo-card strong{display:block;font-size:1.05rem}.hero-photo-card span{color:var(--muted);font-size:.95rem}.benefit-list{list-style:none;padding:0;margin:22px 0 0;display:grid;grid-template-columns:1fr 1fr;grid-gap:14px 28px;gap:14px 28px}.benefit-list li{padding-left:30px;position:relative}.benefit-list li:before{content:"✓";position:absolute;left:0;top:0;color:var(--green);font-weight:800}.cta-strip{background:var(--green-dark);color:#fff;padding:48px 0;text-align:center}.cta-strip h2{color:#fff}.cta-strip p{color:#d9eadf}.cta-strip .hero-ctas{justify-content:center;margin-top:18px}.cta-strip .btn-secondary{background:#fff;color:var(--green-dark)}@media (max-width:820px){.hero-grid{grid-template-columns:1fr;gap:28px}.hero-copy h1{font-size:2.1rem}.hero-stats{grid-template-columns:repeat(2,1fr)}.benefit-list{grid-template-columns:1fr}.topbar-inner{flex-wrap:wrap;gap:2px}.topbar-location{white-space:normal}}.additive-badge{display:inline-flex;align-items:center;gap:7px;border:1.5px solid;border-radius:999px;padding:4px 12px 4px 8px;font-size:.95rem;color:var(--ink);background:#fff;text-decoration:none}.additive-badge:hover{filter:brightness(.96)}.additive-badge-dot{width:12px;height:12px;border-radius:50%;flex:none}.additive-badge-code{font-weight:800}.additive-badge-name{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}.additive-row{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding:12px 0}.additive-row .code{font-weight:800;min-width:74px}.additive-row .names{flex:1 1;min-width:200px}.additive-row .names .vi{font-weight:700}.additive-row .names .en{color:var(--muted)}.additive-row .func{color:var(--muted);font-size:.9rem}.risk-pill{display:inline-block;border-radius:999px;padding:3px 12px;font-size:.9rem;font-weight:700;white-space:nowrap}.additive-search{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.additive-search .input{flex:1 1;min-width:220px}.kv-table{width:100%;border-collapse:collapse;margin:8px 0 16px}.kv-table td,.kv-table th{text-align:left;padding:9px 4px;border-bottom:1px solid var(--line);vertical-align:top}.kv-table th{width:170px;color:var(--muted);font-weight:600;padding-right:16px}