:root{--bg:#f4faf7;--card:#fff;--ink:#1e3a34;--ink-soft:#5b746d;--accent:#2a9d8f;--accent-deep:#218074;--line:#d9e8e2;--error:#a4553d;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0}.app{max-width:30rem;min-height:100dvh;padding:1.25rem 1.25rem calc(1rem + env(safe-area-inset-bottom));flex-direction:column;margin:0 auto;display:flex}header{text-align:center;padding:1rem 0 1.5rem}.logo{color:var(--accent);background:#e2f2ee;border-radius:12px;padding:.6rem;display:inline-flex}h1{letter-spacing:-.02em;margin:.5rem 0 .25rem;font-size:1.6rem}.tagline{color:var(--ink-soft);margin:0;font-size:.95rem}main{flex-direction:column;flex:1;gap:1.25rem;display:flex}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:1.25rem;box-shadow:0 1px 3px #1e3a340f}.scan-card{flex-direction:column;gap:.9rem;padding:.9rem;display:flex}.scanner{background:#10201c;border-radius:12px;position:relative;overflow:hidden}.scanner video{aspect-ratio:3/4;object-fit:cover;width:100%;display:block}.viewfinder{pointer-events:none;border:2px solid #ffffffd9;border-radius:12px;position:absolute;inset:18% 12%;box-shadow:0 0 0 100vmax #00000040}.torch{color:#fff;background:#00000073;border:none;border-radius:999px;padding:.4rem .7rem;font-size:.9rem;position:absolute;top:.6rem;right:.6rem}.torch-on{color:var(--ink);background:#ffffffe6}.zoom{color:#fff;background:#00000073;border:none;border-radius:999px;min-width:2.6rem;padding:.4rem .6rem;font-size:.9rem;font-weight:600;position:absolute;top:.6rem;left:.6rem}.scanner-hint{text-align:center;color:#fffffff2;text-shadow:0 1px 2px #00000080;margin:0;font-size:.85rem;position:absolute;bottom:.6rem;left:0;right:0}.engine-tag{opacity:.75;text-transform:uppercase;letter-spacing:.05em;margin-left:.4rem;font-size:.7rem}.result-card{text-align:center}.result-label{text-transform:uppercase;letter-spacing:.08em;color:var(--accent-deep);margin:0;font-size:.8rem}.result-code{letter-spacing:.06em;word-break:break-all;margin:.4rem 0;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:1.9rem}.result-meta{color:var(--ink-soft);margin:0;font-size:.85rem}.coming-soon{border-top:1px solid var(--line);color:var(--ink-soft);margin:.9rem 0 0;padding-top:.9rem;font-size:.85rem}.product{text-align:left}.product-head{align-items:flex-start;gap:.9rem;display:flex}.product-photo{object-fit:contain;border:1px solid var(--line);background:#fff;border-radius:10px;flex-shrink:0;width:64px;height:64px}.product-title h2{letter-spacing:-.01em;margin:0;font-size:1.15rem}.product-brand{color:var(--ink-soft);margin:.15rem 0 0;font-size:.9rem}.product-barcode{color:var(--ink-soft);margin:.3rem 0 0;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.78rem}.ingredients{border-top:1px solid var(--line);margin-top:1rem;padding-top:.9rem}.ingredients h3{text-transform:uppercase;letter-spacing:.08em;color:var(--accent-deep);margin:0 0 .35rem;font-size:.8rem}.ingredients p{margin:0;font-size:.9rem;line-height:1.5}.product-labels{color:var(--ink-soft);margin:.75rem 0 0;font-size:.8rem}.product-source{color:var(--ink-soft);letter-spacing:.02em;margin:.4rem 0 0;font-size:.75rem}.status-note{color:var(--ink-soft);margin:.5rem 0 0;font-size:.9rem}.result-card .status-note+button{margin-top:.9rem}.verdict{text-align:left;--verdict-ink:#3c4f49;background:#eef2f0;border-radius:12px;margin-top:1rem;padding:.9rem 1rem}.verdict.grade-verified_free{--verdict-ink:#0f6e56;background:#e2f2ee}.verdict.grade-unlikely{--verdict-ink:#3e6b2e;background:#e9f2e4}.verdict.grade-may_contain{--verdict-ink:#7a5a1e;background:#f7eeda}.verdict.grade-likely{--verdict-ink:#6b4a12;background:#f5e6c8}.verdict.grade-contains{--verdict-ink:#31517a;background:#e6ebf3}.verdict-head{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.verdict-lens{text-transform:uppercase;letter-spacing:.07em;color:var(--verdict-ink);font-size:.75rem}.verdict-confidence{color:var(--ink-soft);white-space:nowrap;font-size:.72rem}.verdict-grade{letter-spacing:-.01em;color:var(--verdict-ink);margin:.35rem 0 .2rem;font-size:1.25rem;font-weight:650}.verdict-reason{margin:0;font-size:.92rem;line-height:1.45}.verdict-fact{color:var(--ink-soft);margin:.5rem 0 0;font-size:.85rem;line-height:1.45}.verdict-source{color:var(--verdict-ink);margin:.5rem 0 0;font-size:.78rem}.verdict button.link{color:var(--accent-deep);background:0 0;border:none;margin-top:.5rem;padding:0;font-size:.82rem;text-decoration:underline}.verdict-context{border-top:1px solid #00000014;margin-top:.6rem;padding-top:.6rem}.verdict-context p{color:var(--ink-soft);margin:0;font-size:.82rem;line-height:1.45}.verdict-context-source{margin-top:.3rem!important;font-size:.75rem!important}.alt-card{padding:1rem 1.1rem}.alt-heading{text-transform:uppercase;letter-spacing:.08em;color:var(--accent-deep);margin:0 0 .6rem;font-size:.8rem}.alt-row{border:none;border-top:1px solid var(--line);text-align:left;background:0 0;border-radius:0;align-items:center;gap:.7rem;width:100%;padding:.55rem .4rem;font-size:.9rem;display:flex}.alt-row:first-of-type{border-top:none}.alt-photo{object-fit:contain;border:1px solid var(--line);background:#fff;border-radius:8px;flex-shrink:0;width:40px;height:40px}.alt-photo-empty{background:var(--bg)}.alt-info{flex-direction:column;flex:1;min-width:0;display:flex}.alt-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.alt-brand{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}.alt-grade{border-radius:999px;flex-shrink:0;padding:.25rem .55rem;font-size:.72rem;font-weight:600}.alt-grade.grade-verified_free{color:#0f6e56;background:#e2f2ee}.alt-grade.grade-unlikely{color:#3e6b2e;background:#e9f2e4}button{font:inherit;cursor:pointer;border:1px solid #0000;border-radius:12px;padding:.8rem 1.2rem}button.primary{background:var(--accent);color:#fff;font-size:1.05rem;font-weight:600}button.primary:active{background:var(--accent-deep)}button.secondary{background:var(--card);border-color:var(--line);color:var(--ink)}.scan-button{width:100%;padding:1rem}.manual label{color:var(--ink-soft);margin-bottom:.5rem;font-size:.9rem;display:block}.manual-row{gap:.5rem;display:flex}.manual-row input{min-width:0;font:inherit;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:12px;flex:1;padding:.75rem .9rem;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.manual-row input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:#0000}.error{color:var(--error);text-align:center;margin:0;font-size:.9rem}.flip-box{margin-top:.9rem}.flip-box button{width:100%}.flip-box .status-note{margin-top:.6rem}footer{text-align:center;padding-top:1.5rem}footer p{color:var(--ink-soft);letter-spacing:.02em;margin:0;font-size:.75rem}
