:root{--green: #2e9e4f;--green-bg: #e7f6ec;--yellow: #e0a400;--yellow-bg: #fdf4dc;--red: #d64545;--red-bg: #fbe6e6;--grey: #9aa0a6;--grey-bg: #f1f3f4;--ink: #1a1c1e;--muted: #5f6368;--line: #e3e6ea;--brand: #2e7d32;--radius: 16px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:#f7f8fa;-webkit-font-smoothing:antialiased}.muted{color:var(--muted)}.app{max-width:480px;margin:0 auto;min-height:100%;padding:env(safe-area-inset-top) 20px 24px;display:flex;flex-direction:column;gap:20px}.app__header{padding-top:24px;text-align:center}.app__brand{margin:0 0 4px;font-size:1.4rem;color:var(--brand);letter-spacing:-.02em}.app__main{display:flex;flex-direction:column;gap:14px;flex:1;justify-content:center}.app__footer{margin-top:auto;text-align:center;font-size:.75rem;line-height:1.5}.app__footer a{color:var(--muted)}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-radius:var(--radius);padding:14px 18px;font-size:1rem;font-weight:600;color:#fff;background:var(--brand);cursor:pointer;text-align:center;transition:filter .15s ease}.btn:active{filter:brightness(.92)}.btn--big{padding:22px;font-size:1.15rem}.btn--ghost{background:transparent;color:var(--brand);border:1px solid var(--line)}.toggle{display:grid;grid-template-columns:1fr 1fr;gap:10px}.toggle__btn{display:flex;flex-direction:column;gap:2px;padding:16px;border-radius:var(--radius);border:2px solid var(--line);background:#fff;font-size:1rem;font-weight:600;cursor:pointer;color:var(--ink)}.toggle__btn.is-active{border-color:var(--brand);background:#eef7ee}.toggle__hint{font-size:.78rem;font-weight:400;color:var(--muted)}.scanner{display:flex;flex-direction:column;gap:14px;align-items:center}.scanner__video{width:100%;aspect-ratio:3 / 4;object-fit:cover;border-radius:var(--radius);background:#000}.scanner__frame{margin-top:-50%;width:78%;height:34%;border:3px solid rgba(255,255,255,.9);border-radius:12px;box-shadow:0 0 0 100vmax #0000001f;pointer-events:none}.scanner__hint{color:var(--muted);text-align:center;margin:0}.scanner__error{text-align:center;padding:24px}.results,.manual{display:flex;flex-direction:column;gap:12px}.results__title{margin:0;font-size:1.3rem;text-align:center}.results__sub{margin:0;text-align:center;font-size:.85rem}.results__notice{margin:0;padding:12px 14px;border-radius:var(--radius);border:1px solid var(--yellow);background:var(--yellow-bg);color:var(--ink);font-size:.85rem;line-height:1.45}.results__list{display:flex;flex-direction:column;gap:10px;margin:6px 0}.results__actions{display:flex;flex-direction:column;gap:10px;margin-top:6px}.nutrient{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:var(--radius);border:1px solid var(--line);background:#fff}.nutrient__dot{width:16px;height:16px;border-radius:50%;flex-shrink:0;background:var(--grey)}.nutrient--green{background:var(--green-bg)}.nutrient--green .nutrient__dot{background:var(--green)}.nutrient--green .nutrient__level{color:var(--green)}.nutrient--yellow{background:var(--yellow-bg)}.nutrient--yellow .nutrient__dot{background:var(--yellow)}.nutrient--yellow .nutrient__level{color:var(--yellow)}.nutrient--red{background:var(--red-bg)}.nutrient--red .nutrient__dot{background:var(--red)}.nutrient--red .nutrient__level{color:var(--red)}.nutrient--unknown{background:var(--grey-bg)}.nutrient__body{display:flex;flex-direction:column;flex:1}.nutrient__name{font-weight:600}.nutrient__value{font-size:.85rem;color:var(--muted)}.nutrient__level{font-weight:700;font-size:.9rem;color:var(--grey)}.manual__title{margin:0;text-align:center;font-size:1.2rem}.manual__hint{font-weight:400}.manual__row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--line)}.manual__input{display:flex;align-items:center;gap:6px}.manual__input input{width:96px;padding:10px 12px;font-size:1rem;text-align:right;border:1px solid var(--line);border-radius:10px}.loading{text-align:center;padding:40px 0;color:var(--muted)}
