@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/montserrat-cyrillic-ext-400-normal-Xqov12YL.woff2)format("woff2"),url(/assets/montserrat-cyrillic-ext-400-normal-DRPPeomZ.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/montserrat-cyrillic-400-normal-BPq32Q8K.woff2)format("woff2"),url(/assets/montserrat-cyrillic-400-normal-jEs4Tk-Z.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/montserrat-vietnamese-400-normal-D4oHqQTd.woff2)format("woff2"),url(/assets/montserrat-vietnamese-400-normal-BeEscFYY.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/montserrat-latin-ext-400-normal-B8bwfy6Y.woff2)format("woff2"),url(/assets/montserrat-latin-ext-400-normal-BffdBkAA.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/montserrat-latin-400-normal-BLhwKU8k.woff2)format("woff2"),url(/assets/montserrat-latin-400-normal-xItZbAXg.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/montserrat-cyrillic-ext-500-normal-11xBT7e1.woff2)format("woff2"),url(/assets/montserrat-cyrillic-ext-500-normal-DOzfAZ45.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/montserrat-cyrillic-500-normal-T0SG181k.woff2)format("woff2"),url(/assets/montserrat-cyrillic-500-normal-CyGtXmN9.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/montserrat-vietnamese-500-normal-NT-t8RG1.woff2)format("woff2"),url(/assets/montserrat-vietnamese-500-normal-DpeZlV_K.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/montserrat-latin-ext-500-normal-BKtbrd6n.woff2)format("woff2"),url(/assets/montserrat-latin-ext-500-normal-DWPqqZgs.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/montserrat-latin-500-normal-DRFEGfly.woff2)format("woff2"),url(/assets/montserrat-latin-500-normal-Dok2oTci.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/montserrat-cyrillic-ext-600-normal-BtBW-rpm.woff2)format("woff2"),url(/assets/montserrat-cyrillic-ext-600-normal-wReYPmz2.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/montserrat-cyrillic-600-normal-CQEPC0hM.woff2)format("woff2"),url(/assets/montserrat-cyrillic-600-normal-DUglwBrH.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/montserrat-vietnamese-600-normal-DKe6qT_E.woff2)format("woff2"),url(/assets/montserrat-vietnamese-600-normal-SJ-HTWuM.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/montserrat-latin-ext-600-normal-DSkTqI9L.woff2)format("woff2"),url(/assets/montserrat-latin-ext-600-normal-CSDhkhgS.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/montserrat-latin-600-normal-UVxSCcoG.woff2)format("woff2"),url(/assets/montserrat-latin-600-normal-CdhFl4lI.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Playfair Display;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/playfair-display-cyrillic-500-normal-GO7-LTbC.woff2)format("woff2"),url(/assets/playfair-display-cyrillic-500-normal-DmDODJdV.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Playfair Display;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/playfair-display-vietnamese-500-normal-Jyt54flB.woff2)format("woff2"),url(/assets/playfair-display-vietnamese-500-normal-_Z41d-72.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Playfair Display;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/playfair-display-latin-ext-500-normal-DE-Iylxw.woff2)format("woff2"),url(/assets/playfair-display-latin-ext-500-normal-CFxFMdkY.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Playfair Display;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/playfair-display-latin-500-normal-DIxvyhka.woff2)format("woff2"),url(/assets/playfair-display-latin-500-normal-BScSeVwi.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#f3eee2;--surface:#fffbf3;--chip:#ece6d6;--line:#e2d9c6;--track:#eae2d0;--ink:#22251a;--muted:#5e5d49;--green:#4b6232;--on-green:#fffbf3;--protein:#9a3516;--fat:#c99a3e;--carbs:#84885c;--copper-soft:#f3ded3;--copper-ink:#7e2a10;--empty:#d9d0bc;--bar-today:#b9c2a0;--dot:#a9a68c;--scrim:#22251a73;--shadow:#22251a38;--danger:#9a3516;--display:"Playfair Display", Georgia, serif;--sans:"Montserrat", system-ui, -apple-system, sans-serif;--safe-top:max(env(safe-area-inset-top), 14px);--safe-bottom:env(safe-area-inset-bottom);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#1e2116;--surface:#292d1f;--chip:#353a28;--line:#3b402d;--track:#3b402d;--ink:#f2ecdd;--muted:#bdb79e;--green:#aec283;--on-green:#1e2116;--protein:#e8825c;--fat:#e6bc62;--carbs:#a9b07f;--copper-soft:#4a2a1c;--copper-ink:#f2b59a;--empty:#4a5038;--bar-today:#55613c;--dot:#8d8a72;--scrim:#0a0c069e;--shadow:#00000073;--danger:#e8825c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-variant-numeric:lining-nums tabular-nums;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;overscroll-behavior:none;font-size:15px;font-weight:400}button,input,select{font:inherit;color:inherit}button{cursor:pointer}input,select{appearance:none}:focus-visible{outline:2px solid var(--green);outline-offset:2px}.app{background:var(--bg);max-width:520px;height:100%;margin:0 auto;position:relative;overflow:hidden}.display{font-family:var(--display);font-weight:500}.muted{color:var(--muted)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.screen{flex-direction:column;display:flex;position:absolute;inset:0}.screen-scroll{-webkit-overflow-scrolling:touch;padding:calc(var(--safe-top) + 10px) 20px 28px;flex-direction:column;flex:1;gap:18px;display:flex;overflow-y:auto}.has-tabbar .screen-scroll{padding-bottom:calc(110px + var(--safe-bottom))}.has-footer .screen-scroll{padding-bottom:calc(120px + var(--safe-bottom))}.topbar{padding:calc(var(--safe-top) + 6px) 16px 6px;align-items:center;gap:10px;display:flex}.topbar h1{font-family:var(--display);margin:0;font-size:26px;font-weight:500}.footer{padding:14px 20px calc(16px + var(--safe-bottom));background:var(--bg);border-top:1px solid var(--line);flex-direction:column;gap:6px;display:flex;position:absolute;bottom:0;left:0;right:0}.head{flex-direction:column;gap:4px;display:flex}.head-row{justify-content:space-between;align-items:center;gap:10px;min-height:44px;display:flex}.head-title{font-family:var(--display);margin:0;font-size:34px;font-weight:500;line-height:1.05}.head-tools{align-items:center;gap:8px;display:flex}.date-nav{align-items:center;gap:2px;margin-left:-10px;display:flex}.date-nav span{color:var(--muted);letter-spacing:.2px;font-size:13px;font-weight:500}.icon-btn{border:1px solid var(--line);background:var(--surface);width:44px;height:44px;color:var(--ink);border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-btn.bare{background:0 0;border:0}.icon-btn:disabled{opacity:.35}.btn{background:var(--green);min-height:56px;color:var(--on-green);border:0;border-radius:18px;justify-content:center;align-items:center;gap:8px;width:100%;padding:0 18px;font-size:16px;font-weight:600;text-decoration:none;display:flex}.btn:disabled{opacity:.45}.btn.secondary{color:var(--ink);background:0 0;min-height:48px;font-weight:600}.btn.outline{background:var(--surface);color:var(--ink);border:1px solid var(--line)}.btn.danger{color:var(--danger);background:0 0;min-height:48px}.link-btn{color:var(--green);background:0 0;border:0;min-height:44px;padding:10px 4px;font-size:14px;font-weight:600}.pill{background:var(--surface);border:1px solid var(--line);border-radius:999px;gap:2px;padding:2px;display:flex}.pill button{min-width:46px;min-height:40px;color:var(--muted);letter-spacing:.3px;background:0 0;border:0;border-radius:999px;font-size:12px;font-weight:600}.pill button[aria-pressed=true]{background:var(--ink);color:var(--bg)}.segmented{background:var(--chip);border-radius:16px;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:4px;padding:4px;display:grid}.segmented button{min-height:42px;color:var(--muted);background:0 0;border:0;border-radius:12px;font-size:14px;font-weight:600}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px var(--shadow)}.card{background:var(--surface);border:1px solid var(--line);border-radius:24px;flex-direction:column;gap:14px;padding:18px 16px;display:flex}.card h2,.section-title{font-family:var(--display);margin:0;font-size:22px;font-weight:500}.card-label{color:var(--muted);margin:0;font-size:13px;font-weight:500}.big-num{font-family:var(--display);font-size:28px;font-weight:500;line-height:1.1}.unit{font-family:var(--sans);color:var(--muted);font-size:12px;font-weight:500}.note{color:var(--muted);margin:0;font-size:13px;line-height:1.45}.summary{border-radius:28px;align-items:center;gap:16px;padding:22px 20px 20px}.ring{width:188px;height:188px;position:relative}.ring svg{display:block;transform:rotate(-90deg)}.ring-center{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.ring-num{font-family:var(--display);font-size:50px;font-weight:500;line-height:1}.ring-label{color:var(--muted);margin-top:6px;font-size:13px;font-weight:500}.split{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.split>div{flex-direction:column;align-items:center;gap:2px;display:flex}.split>div+div{border-left:1px solid var(--line)}.split .lbl{color:var(--muted);font-size:12px;font-weight:500}.split .val{font-family:var(--display);font-size:22px;font-weight:500}.macros{border-top:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;width:100%;padding-top:16px;display:grid}.macro{flex-direction:column;gap:6px;min-width:0;display:flex}.macro .lbl{color:var(--muted);font-size:12px;font-weight:500}.macro .val{font-family:var(--display);white-space:nowrap;font-size:18px;font-weight:500}.bar{background:var(--track);border-radius:99px;height:6px;overflow:hidden}.bar>i{border-radius:99px;height:100%;display:block}.list-head{justify-content:space-between;align-items:baseline;padding:0 4px;display:flex}.list{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:2px 16px}.row{text-align:left;width:100%;color:var(--ink);background:0 0;border:0;align-items:center;gap:12px;min-height:66px;padding:12px 0;display:flex}.row+.row{border-top:1px solid var(--line)}.tile{background:var(--chip);width:42px;height:42px;color:var(--green);border-radius:13px;flex:none;justify-content:center;align-items:center;display:flex}.row-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.row-name{white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:500;overflow:hidden}.row-meta{color:var(--muted);font-size:12px}.row-kcal{font-size:15px;font-weight:600}.empty{text-align:center;flex-direction:column;align-items:center;gap:6px;padding:28px 12px;display:flex}.empty strong{font-family:var(--display);font-size:20px;font-weight:500}.switch-row{background:var(--surface);border:1px solid var(--line);border-radius:18px;align-items:center;gap:12px;padding:12px 16px;display:flex}.switch-row .row-main span:first-child{font-size:14px;font-weight:600}.switch{background:var(--track);border:0;border-radius:99px;flex:none;width:52px;height:32px;padding:0;transition:background .2s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:26px;height:26px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.switch[aria-checked=true]{background:var(--green)}.switch[aria-checked=true]:after{transform:translate(20px)}.tabbar{z-index:5;height:calc(80px + var(--safe-bottom));padding:6px 0 var(--safe-bottom);background:var(--surface);border-top:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;display:grid;position:absolute;bottom:0;left:0;right:0}.tab{min-height:52px;color:var(--muted);background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:11px;font-weight:600;display:flex}.tab[aria-current=page]{color:var(--green)}.fab{background:var(--green);width:66px;height:66px;color:var(--on-green);border:4px solid var(--bg);box-shadow:0 10px 24px var(--shadow);border-radius:50%;justify-content:center;justify-self:center;align-items:center;margin-top:-30px;display:flex}.scrim{z-index:20;background:var(--scrim);border:0;padding:0;animation:.18s ease-out fade;position:absolute;inset:0}.sheet{z-index:21;background:var(--surface);max-height:92%;padding:10px 20px calc(24px + var(--safe-bottom));border-radius:30px 30px 0 0;flex-direction:column;gap:14px;animation:.22s ease-out rise;display:flex;position:absolute;bottom:0;left:0;right:0;overflow-y:auto}.grabber{background:var(--line);border-radius:99px;flex:none;align-self:center;width:44px;height:5px}.sheet h2{font-family:var(--display);margin:4px 4px 0;font-size:24px;font-weight:500}@keyframes rise{0%{opacity:.4;transform:translateY(40px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.sheet,.scrim{animation:none}}.option{background:var(--bg);text-align:left;width:100%;min-height:72px;color:var(--ink);border:0;border-radius:20px;align-items:center;gap:14px;padding:11px 14px;display:flex}.option .ic{background:var(--green);width:48px;height:48px;color:var(--on-green);border-radius:15px;flex:none;justify-content:center;align-items:center;display:flex}.option .ic.copper{background:var(--protein);color:var(--on-green)}.option .t{flex-direction:column;flex:1;gap:2px;display:flex}.option .t b{font-size:16px;font-weight:600}.option .t span{color:var(--muted);font-size:12.5px}.recent{gap:8px;margin:0 -20px;padding-bottom:2px;padding-left:20px;padding-right:20px;display:flex;overflow-x:auto}.recent button{border:1px solid var(--line);background:var(--bg);text-align:left;max-width:180px;min-height:44px;color:var(--ink);border-radius:14px;flex-direction:column;flex:none;padding:8px 14px;display:flex}.recent button b{white-space:nowrap;text-overflow:ellipsis;max-width:150px;font-size:13px;font-weight:600;overflow:hidden}.recent button span{color:var(--muted);font-size:11px}.field{flex-direction:column;gap:6px;display:flex}.field label,.field .lbl{color:var(--muted);font-size:13px;font-weight:500}.input{border:1px solid var(--line);background:var(--bg);min-height:48px;color:var(--ink);border-radius:14px;width:100%;padding:10px 14px;font-size:16px;font-weight:500}select.input{background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 20px) 21px,calc(100% - 15px) 21px;background-repeat:no-repeat;background-size:5px 5px;padding-right:36px}.name-input{width:100%;min-height:36px;color:var(--ink);background:0 0;border:0;outline:none;padding:4px 0;font-size:18px;font-weight:600}.vrow{align-items:center;gap:10px;min-height:52px;display:flex}.vrow+.vrow{border-top:1px solid var(--line)}.vrow label{flex:1;font-size:15px;font-weight:500}.vrow .input{text-align:right;width:86px;min-height:44px;padding:8px 10px;font-weight:600}.vrow .u{width:34px;color:var(--muted);font-size:13px}.vrow .input.missing{border-color:var(--protein)}.dot{border-radius:50%;flex:none;width:10px;height:10px}.grams-line{border-bottom:2px solid var(--green);align-items:baseline;gap:8px;padding-bottom:4px;display:flex}.grams-line input{min-width:0;font-family:var(--display);color:var(--ink);background:0 0;border:0;outline:none;flex:1;padding:0;font-size:44px;font-weight:500}.grams-line span{color:var(--muted);font-size:18px;font-weight:500}.chips{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.chips button{border:1px solid var(--line);background:var(--bg);min-height:44px;color:var(--ink);border-radius:14px;font-size:14px;font-weight:600}.chips button[aria-pressed=true]{background:var(--green);border-color:var(--green);color:var(--on-green)}.totals{background:var(--chip);border-radius:22px;justify-content:space-between;align-items:center;gap:12px;padding:16px;display:flex}.totals .tm{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.totals .tm span{align-items:center;gap:6px;font-size:14px;font-weight:600;display:flex}.status{background:var(--chip);border-radius:16px;align-items:center;gap:10px;padding:12px 14px;font-size:13px;line-height:1.4;display:flex}.status.warn{background:var(--copper-soft);color:var(--copper-ink)}.thumb{object-fit:cover;background:var(--chip);border-radius:14px;flex:none;width:56px;height:56px}.per-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.per-grid>div{background:var(--bg);border-radius:14px;flex-direction:column;align-items:center;gap:2px;padding:10px 4px;display:flex}.per-grid b{font-family:var(--display);font-size:18px;font-weight:500}.per-grid span{color:var(--muted);align-items:center;gap:5px;font-size:11.5px;font-weight:500;display:flex}.stepper{justify-content:center;align-items:center;gap:16px;padding:6px 0;display:flex}.stepper button{border:1px solid var(--line);background:var(--bg);width:56px;height:56px;color:var(--ink);border-radius:50%;justify-content:center;align-items:center;display:flex}.stepper input{text-align:center;width:150px;font-family:var(--display);letter-spacing:-1px;color:var(--ink);background:0 0;border:0;outline:none;padding:0;font-size:60px;font-weight:500}.camera{color:#f5f0e3;z-index:30;background:#12140e;position:absolute;inset:0;overflow:hidden}.camera video,.camera .photo{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.camera .shade{pointer-events:none;background:radial-gradient(120% 80% at 50% 45%,#12140e00 40%,#12140e8c 100%);position:absolute;inset:0}.cam-top{top:calc(var(--safe-top) + 4px);z-index:2;justify-content:space-between;align-items:center;display:flex;position:absolute;left:16px;right:16px}.cam-top span{font-size:16px;font-weight:600}.cam-btn{color:#f5f0e3;background:#f5f0e329;border:0;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.cam-btn[aria-pressed=true]{color:#12140e;background:#e2b457}.frame{z-index:1;pointer-events:none;width:min(320px,82vw);position:absolute;top:44%;left:50%;transform:translate(-50%,-50%)}.frame.label{height:min(380px,52vh)}.frame.barcode{height:200px}.frame i{border:0 solid #e2b457;width:44px;height:44px;position:absolute}.frame i:first-child{border-top-width:4px;border-left-width:4px;border-top-left-radius:18px;top:0;left:0}.frame i:nth-child(2){border-top-width:4px;border-right-width:4px;border-top-right-radius:18px;top:0;right:0}.frame i:nth-child(3){border-bottom-width:4px;border-left-width:4px;border-bottom-left-radius:18px;bottom:0;left:0}.frame i:nth-child(4){border-bottom-width:4px;border-right-width:4px;border-bottom-right-radius:18px;bottom:0;right:0}.scanline{background:#e8825c;border-radius:3px;height:3px;animation:1.8s ease-in-out infinite alternate scan;position:absolute;top:50%;left:24px;right:24px;box-shadow:0 0 14px #e8825c}@keyframes scan{0%{top:22%}to{top:78%}}.cam-hint{left:20px;right:20px;bottom:calc(150px + var(--safe-bottom));z-index:2;text-align:center;flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute}.cam-hint b{background:#12140e8c;border-radius:999px;padding:10px 16px;font-size:14px;font-weight:600}.cam-hint span{color:#e2b457;font-size:12.5px;font-weight:500}.cam-bottom{left:0;right:0;bottom:calc(36px + var(--safe-bottom));z-index:2;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 24px;display:grid;position:absolute}.shutter{background:0 0;border:5px solid #f5f0e3;border-radius:50%;justify-content:center;align-items:center;width:84px;height:84px;padding:0;display:flex}.shutter:after{content:"";background:#f5f0e3;border-radius:50%;width:64px;height:64px}.cam-side{color:#f5f0e3;background:0 0;border:0;flex-direction:column;align-items:center;gap:4px;min-height:44px;font-size:13px;font-weight:600;display:flex}.cam-off{text-align:center;z-index:1;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:32px;display:flex;position:absolute;inset:0}.cam-off strong{font-family:var(--display);font-size:24px;font-weight:500}.cam-off p{color:#cfc9b5;margin:0;font-size:14px;line-height:1.45}.cam-off .btn{color:#12140e;background:#f5f0e3;max-width:300px}.cam-off .btn.ghost{color:#f5f0e3;background:#f5f0e324}.cam-error{left:20px;right:20px;top:calc(var(--safe-top) + 70px);z-index:3;color:#12140e;text-align:center;background:#e8825ceb;border-radius:14px;padding:12px 14px;font-size:13px;font-weight:600;position:absolute}.chart{align-items:flex-end;height:130px;display:flex;position:relative}.chart .goal-line{border-top:2px dashed var(--protein);pointer-events:none;position:absolute;left:0;right:0}.chart .b{border-radius:4px 4px 2px 2px;flex:1;min-width:0;display:block}.legend{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;font-size:11.5px;font-weight:500;display:flex}.legend .keys{gap:10px;display:flex}.legend .keys span{align-items:center;gap:5px;display:flex}.legend i{display:inline-block}.mini-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.mini-grid>div{background:var(--bg);border-radius:14px;flex-direction:column;gap:2px;padding:10px;display:flex}.mini-grid span{color:var(--muted);font-size:11.5px;font-weight:500}.mini-grid b{font-family:var(--display);font-size:18px;font-weight:500}.cta{background:var(--copper-soft);min-height:52px;color:var(--copper-ink);border:0;border-radius:16px;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:0 16px;font-size:15px;font-weight:600;display:flex}.progress{background:var(--track);border-radius:99px;height:8px;overflow:hidden}.progress>i{background:var(--green);border-radius:99px;height:100%;display:block}.goal-change{background:var(--bg);border-radius:20px;justify-content:center;align-items:center;gap:14px;padding:14px;display:flex}.goal-change s{font-family:var(--display);color:var(--muted);font-size:22px}.goal-change b{font-family:var(--display);font-size:34px;font-weight:500}.mrow{border-radius:12px;align-items:center;gap:10px;min-height:44px;padding:0 12px;display:flex}.mrow.hot{background:var(--copper-soft);color:var(--copper-ink)}.mrow .n{flex:1;font-size:15px;font-weight:500}.mrow .to{text-align:right;min-width:60px;font-weight:600}.banner{background:var(--chip);border-radius:16px;align-items:center;gap:10px;padding:10px 10px 10px 16px;font-size:13px;font-weight:500;display:flex}.banner span{flex:1}.banner button{background:var(--green);min-height:40px;color:var(--on-green);border:0;border-radius:12px;padding:0 14px;font-size:13px;font-weight:600}.banner button.secondary{color:var(--muted);background:0 0}.toast{left:50%;bottom:calc(110px + var(--safe-bottom));z-index:40;background:var(--ink);color:var(--bg);white-space:nowrap;border-radius:14px;padding:12px 18px;font-size:14px;font-weight:600;position:absolute;transform:translate(-50%)}.hero{text-align:center;flex-direction:column;align-items:center;gap:14px;padding-top:24px;display:flex}.hero img{width:120px;height:120px;box-shadow:0 12px 30px var(--shadow);border-radius:28px}.hero h1{font-family:var(--display);margin:0;font-size:36px;font-weight:500}.hero p{color:var(--muted);max-width:320px;margin:0;line-height:1.5}.steps{counter-reset:s;flex-direction:column;gap:10px;display:flex}.steps li{background:var(--surface);border:1px solid var(--line);border-radius:18px;align-items:center;gap:14px;padding:14px;font-weight:500;list-style:none;display:flex}.steps li:before{counter-increment:s;content:counter(s);background:var(--green);width:32px;height:32px;color:var(--on-green);border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:600;display:flex}.grid2{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.splash{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;flex:none;width:16px;height:16px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}
