@font-face{font-family:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/outfit-latin-ext-wght-normal-DdQaqQDo.woff2)format("woff2-variations");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:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/outfit-latin-wght-normal-Bc-8i84L.woff2)format("woff2-variations");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}*,:before,:after{box-sizing:border-box}html,body,#root{margin:0;padding:0}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f1ea;--surface:#fff;--soft:#fbfaf6;--line:#eae6dd;--text:#1e1e1b;--muted:#908e83;--faint:#c2beb2;--accent:#4c9b6e;--accent-deep:#3a7c56;--accent-tint:#e8f1ea;--amber:#a98740;--coral:#c25b43;--track:#e9e6dd;--mct:#5b86b3;--mct-tint:#e7edf4;--lct-tint:#f3ecdc;--carb-tint:#f6e6e1;--hairline:#f1ede4;--chip-label:#7c7a70;--energy:#7a6cc4;--energy-tint:#ece9f6;--shadow-card:0 1px 2px #3c5a460d, 0 14px 30px #3c5a4612;--shadow-soft:0 1px 2px #3c5a460a, 0 8px 20px #3c5a460d}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#16140f;--surface:#1f1d17;--soft:#232017;--line:#2c2a22;--text:#eceae2;--muted:#8f8d82;--faint:#56544b;--accent:#5fb386;--accent-deep:#8fd0ab;--accent-tint:#1e2a22;--amber:#c6a35c;--coral:#e08368;--track:#2a2820;--mct:#6f9ec9;--mct-tint:#1b242e;--lct-tint:#2a2418;--carb-tint:#2e1d18;--hairline:#241f17;--chip-label:#9a978c;--energy:#9b8ed8;--energy-tint:#251f33;--shadow-card:0 1px 2px #0000004d, 0 14px 30px #00000059;--shadow-soft:0 1px 2px #00000040, 0 8px 20px #0000004d}}body{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;touch-action:manipulation;font-family:Outfit Variable,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}input,button,select,textarea{font-family:inherit}html{scroll-behavior:smooth}button{appearance:none;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .12s,box-shadow .2s,filter .2s,opacity .2s}button:disabled{cursor:default}button:not(:disabled):active{transform:scale(.97)}:where(button,input,select,textarea):focus-visible{outline:none;box-shadow:0 0 0 3px #4c9b6e42}input,select,textarea{transition:box-shadow .2s,border-color .2s}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{appearance:textfield}.tab{transition:transform .14s,box-shadow .2s,background-color .2s,color .2s,border-color .2s}.tab:not(.tab-active):hover{transform:translateY(-1px);box-shadow:0 2px 8px #14140f12}.btn-primary:not(:disabled):hover{filter:brightness(.95);transform:translateY(-1px);box-shadow:0 4px 14px #3f7d5a47}.btn-primary:not(:disabled):active{transform:translateY(0)scale(.99);box-shadow:0 2px 6px #3f7d5a38}.btn-ghost:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 2px 10px #14140f14}.add-btn:hover{transform:translateY(-1px);box-shadow:0 2px 10px #3f7d5a24}.go-btn:hover{transform:translateY(-1px);box-shadow:0 2px 8px #3f7d5a29}.chip{transition:transform .14s,box-shadow .2s,background-color .2s,border-color .2s,color .2s}.chip:hover{transform:translateY(-1px);box-shadow:0 2px 8px #14140f12}.icon-x{transition:transform .14s,box-shadow .2s,color .2s}.icon-x:hover{--x-color:var(--coral);transform:translateY(-1px);box-shadow:0 2px 8px #c25b432e}.bar-fill{transition:width .45s cubic-bezier(.4,0,.2,1),background-color .25s}.skeleton{background:var(--surface);border:1px solid var(--line);border-radius:20px;position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(90deg, transparent, var(--track), transparent);opacity:.6;animation:1.3s ease-in-out infinite skeleton-sweep;position:absolute;inset:0;transform:translate(-100%)}@keyframes skeleton-sweep{to{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.food-surface{--food-gap:12px;--food-radius:12px;--food-panel-radius:16px;--food-help:color-mix(in srgb, var(--text) 68%, var(--bg));color:var(--text);padding-bottom:24px;font-size:14px;line-height:1.4}.food-surface h1{letter-spacing:-.015em;margin:0 0 5px;font-size:20px;font-weight:600;line-height:1.2}.food-surface h2{margin:12px 0 8px;font-size:19px;line-height:1.3}.food-help{color:var(--food-help);margin:6px 0 12px;font-size:13px;line-height:1.5}.food-heading,.food-row-heading,.food-inline,.food-actions{align-items:center;gap:var(--food-gap);display:flex}.food-heading{justify-content:space-between;align-items:center;margin:8px 0 16px}.food-heading>div{flex:1;min-width:0}.food-heading .food-help{margin:0}.food-heading>button{flex:none}.food-actions{flex-wrap:wrap;gap:8px;margin:12px 0}.food-button{appearance:none;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:var(--food-radius);cursor:pointer;min-height:44px;padding:9px 14px;font-family:inherit;font-size:14px;font-weight:500;line-height:1.25}.food-button:disabled{opacity:.55;cursor:default}.food-primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.food-button:focus-visible,.food-surface input:focus-visible,.food-surface select:focus-visible,.food-surface textarea:focus-visible,.food-surface summary:focus-visible,.food-surface button:focus-visible{outline:2px solid var(--accent-deep);outline-offset:0;box-shadow:none}.food-surface input:not([type=checkbox]),.food-surface select,.food-surface textarea{box-sizing:border-box;border:1px solid var(--line);background:var(--surface);width:100%;min-width:0;min-height:44px;color:var(--text);border-radius:var(--food-radius);font:inherit;padding:10px 12px;font-size:16px;font-weight:400;line-height:1.25}.food-surface input{font-variant-numeric:tabular-nums}.food-surface textarea{resize:vertical;min-height:88px}.food-field{flex-direction:column;gap:6px;margin:12px 0;font-size:13px;font-weight:500;display:flex}.food-fieldset{border:0;min-width:0;margin:0;padding:0}.food-form-grid,.food-nutrient-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:12px;display:grid}.food-form-grid .food-field,.food-nutrient-grid .food-field{margin-bottom:4px}.food-nutrient-grid{gap:8px 12px}.food-nutrient-grid .food-field{gap:4px;margin:0}.food-nutrient-grid .food-field>span{line-height:1.4}.food-unit{color:var(--food-help);font-weight:400}.food-check{align-items:center;gap:10px;min-height:44px;margin:8px 0;font-size:14px;line-height:1.45;display:flex}.food-check input{width:18px;height:18px;accent-color:var(--accent-deep);flex:none}.food-tabs{border-bottom:1px solid var(--line);gap:4px;margin:12px 0;display:flex}.food-tabs button{min-height:44px;color:var(--food-help);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:8px 12px;font-family:inherit;font-size:14px}.food-tabs button[aria-pressed=true]{color:var(--accent-deep);border-bottom-color:var(--accent-deep);font-weight:600}.food-list,.ingredient-list{margin:0;padding:0;list-style:none}.food-library-row{background:var(--surface);border:1px solid var(--line);border-radius:14px;margin-bottom:8px;padding:6px 12px 10px}.food-row-heading{gap:4px}.food-name-button{text-align:left;min-height:44px;color:var(--text);cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:10px;min-width:0;padding:0;font-family:inherit;font-size:14px;font-weight:600;display:flex}.food-name-button span{overflow-wrap:anywhere;min-width:0}.food-card-photo{object-fit:cover;border-radius:9px;flex:none;width:40px;height:40px}.food-card-photo-button{border:1px dashed var(--line);width:44px;height:44px;color:var(--food-help);cursor:pointer;background:0 0;border-radius:10px;flex:none;place-items:center;margin-right:6px;padding:0;display:grid}.food-card-photo-button:has(img){border:0}.food-library-row .food-pin,.food-card-toggle{width:44px;height:44px;min-height:44px;color:var(--food-help);cursor:pointer;background:0 0;border:0;border-radius:10px;flex:none;place-items:center;padding:0;display:grid}.food-card-toggle svg{transition:transform .15s}.food-card-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.food-library-row .food-macros{gap:8px;margin-top:4px}.food-library-row .food-macros strong{font-size:15px}.food-library-row .food-macros span{font-size:11px}.food-library-row .food-basis{margin-top:5px;font-size:11px}.food-photo-picker{align-items:center;gap:12px;margin:12px 0 16px;display:flex}.food-photo-picker>img{object-fit:cover;border-radius:12px;flex:none;width:64px;height:64px}.food-photo-picker .food-actions{margin:6px 0 0}.food-photo-label{font-size:13px;font-weight:500}.food-pin{flex:none}.food-pin[aria-pressed=true]{background:var(--accent-tint);color:var(--accent-deep)}.food-macros{font-variant-numeric:tabular-nums;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:12px 0 0;display:grid}.food-macros>div{flex-direction:column;gap:2px;display:flex}.food-macros strong{font-size:16px;font-weight:500;line-height:1.25}.food-macros span,.food-basis{color:var(--food-help);font-size:12px}.food-basis{margin:8px 0 0}.food-row-actions{border-top:1px solid var(--line);justify-content:space-between;gap:2px;margin:4px 0 0}.food-row-actions .food-button{appearance:none;color:var(--food-help);background:0 0;border:0;padding:8px 4px;font-size:12px}.food-library-row .nutrition-details{margin:2px 0}.food-empty{text-align:center;color:var(--food-help);padding:32px 16px}.food-empty svg{color:var(--accent-deep)}.food-empty h2{color:var(--text)}.food-empty p{max-width:34ch;margin:0 auto 16px;font-size:14px;line-height:1.6}.food-error{color:var(--coral);padding:12px 0;font-size:14px;line-height:1.5}.food-field-error{color:var(--coral);font-size:13px;font-weight:400;line-height:1.5}.food-preparation-field{scroll-margin-block:24px}.food-preparation-field select[aria-invalid=true],.food-nutrient-grid input[aria-invalid=true]{border-color:var(--coral)}.food-preparation-field .food-help{margin:0;font-weight:400}.food-notice,.food-provenance{background:var(--soft);border-radius:var(--food-panel-radius);margin:12px 0;padding:16px;font-size:13px;line-height:1.5}.food-provenance p{overflow-wrap:anywhere;margin:4px 0}.food-provenance a{color:var(--accent-deep)}.nutrition-details{margin:12px 0;font-size:13px}.nutrition-details summary{cursor:pointer;min-height:44px;color:var(--food-help);align-content:center;display:list-item}.nutrition-details dl{margin:0}.nutrition-details dl>div{border-bottom:1px solid var(--line);justify-content:space-between;gap:16px;padding:7px 0;display:flex}.nutrition-details dd{font-variant-numeric:tabular-nums;margin:0}.food-capture{margin-bottom:16px}.food-portion-preview{border:1px solid var(--line);border-radius:var(--food-panel-radius);background:var(--soft);margin:16px 0;padding:0 12px}.food-portion-preview .food-field{max-width:180px}.barcode-frame{aspect-ratio:3/2;isolation:isolate;background:#16140f;border-radius:22px;width:100%;max-height:260px;position:relative;overflow:hidden}.barcode-frame .barcode-video{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.barcode-guide{pointer-events:none;border:2px solid #fffc;border-radius:24px;position:absolute;inset:18% 12%;box-shadow:0 0 0 999px #00000024}.barcode-camera-options{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.barcode-camera-options .food-field{flex:180px;min-width:0}.barcode-camera-options input[type=range]{accent-color:var(--accent);padding:0}.barcode-entry{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;display:grid}.barcode-entry .food-button{white-space:nowrap}.food-results{overscroll-behavior:contain;max-height:300px;margin:8px 0 16px;overflow:auto}.food-result{text-align:left;background:var(--surface);width:100%;color:var(--text);border:0;border-bottom:1px solid var(--line);cursor:pointer;justify-content:space-between;align-items:center;gap:16px;min-height:52px;padding:14px 12px;font-family:inherit;font-size:14px;display:flex}.food-result>span:first-child{flex:1}.food-result small{color:var(--food-help);margin-top:3px;font-size:12px;line-height:1.5;display:block}.food-label-photos{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.food-label-photos img{object-fit:cover;border-radius:var(--food-radius);width:80px;height:100px}.food-save-bar{z-index:2;background:var(--surface);box-shadow:var(--shadow-soft);border:1px solid var(--line);border-radius:var(--food-panel-radius);justify-content:space-between;align-items:center;gap:16px;margin-top:16px;padding:12px;display:flex;position:sticky;bottom:8px}.food-save-bar .food-help{margin:0}.ingredient-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 0;display:grid}.ingredient-info{flex-direction:column;min-width:0;display:flex}.ingredient-info strong{font-size:14px;font-weight:500;line-height:1.4}.ingredient-info .food-help{margin:3px 0 0;font-size:12px}.ingredient-inputs{align-items:center;gap:2px;display:flex}.portion-control{border:1px solid var(--line);background:var(--surface);border-radius:10px;align-items:center;height:48px;display:flex}.food-surface .ingredient-inputs .portion-quantity{text-align:right;background:0 0;border:0;width:68px;height:46px;min-height:46px;padding:8px 6px;font-size:20px;font-weight:500}.food-surface .ingredient-inputs select{background:0 0;border:0;width:62px;max-width:62px;padding:8px 3px;font-size:16px}.portion-unit{color:var(--food-help);padding:0 10px 0 2px;font-size:13px}.food-remove{width:44px;height:44px;color:var(--food-help);cursor:pointer;background:0 0;border:0;flex:none;place-items:center;padding:0;display:grid}.day-sheet{overscroll-behavior:contain;scrollbar-width:none;overflow-x:hidden}.day-sheet::-webkit-scrollbar{display:none}.meal-editor-scroll::-webkit-scrollbar{display:none}.meal-editor .food-results::-webkit-scrollbar{display:none}.day-sheet:has(.meal-editor){overflow:hidden!important}.day-sheet-content:has(.meal-editor){flex-direction:column;height:100%;display:flex;padding-bottom:0!important}.meal-editor{flex-direction:column;flex:1;min-height:0;padding-bottom:0;display:flex}.meal-editor>form{flex-direction:column;flex:1;min-height:0;display:flex}.meal-editor-scroll{overscroll-behavior-y:contain;scrollbar-width:none;flex:1;min-width:0;min-height:0;padding:0 2px 16px;overflow:hidden auto}.meal-editor .food-results{scrollbar-width:none;overflow-x:hidden}.meal-title-row{grid-template-columns:minmax(0,1fr) 44px;align-items:end;gap:10px;display:grid}.meal-title-row .food-field{margin:0}.meal-photo-button{background:var(--surface);width:44px;height:44px;color:var(--food-help);border:1px solid var(--line);cursor:pointer;border-radius:12px;place-items:center;padding:0;display:grid;overflow:hidden}.meal-photo-button img{object-fit:cover;width:100%;height:100%}.meal-mode-tabs{margin:16px 0 0}.meal-metadata{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.meal-metadata .food-field{min-width:0;margin-bottom:0}.meal-metadata input[type=time]{text-align:left;width:100%;min-width:0;display:block}.meal-metadata input[type=time]::-webkit-date-and-time-value{text-align:left}.meal-running-total{background:var(--bg);border-top:1px solid var(--line);padding:14px 0 max(14px, env(safe-area-inset-bottom));flex:none;position:relative}.meal-total-top{grid-template-columns:100px minmax(0,1fr);align-items:center;gap:16px;display:grid}.meal-calories{font-variant-numeric:tabular-nums;white-space:nowrap;align-items:baseline;gap:4px;display:flex}.meal-calories>strong{letter-spacing:-.025em;font-size:30px;font-weight:600;line-height:1}.meal-calories>span{color:var(--food-help);font-size:12px}.meal-macro-line{font-variant-numeric:tabular-nums;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.meal-macro-line>div{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.meal-macro-line strong{white-space:nowrap;font-size:16px;font-weight:500;line-height:1.25}.meal-macro-line strong span{color:var(--food-help);margin-left:1px;font-size:12px}.meal-macro-line>div>span{color:var(--food-help);font-size:11px;line-height:1.2}.meal-mct-summary,.meal-estimate-note{color:var(--food-help);margin:7px 0 0;font-size:11px}.meal-target-preview{color:var(--food-help);font-variant-numeric:tabular-nums;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;margin:12px 0 0;font-size:12px;display:grid}.meal-target-preview>span:nth-child(2n){text-align:right}.meal-running-total .food-primary{width:100%;min-height:46px;margin-top:12px}.meal-repeat-button{background:0 0;width:100%;margin:8px 0}.food-danger{color:var(--coral);width:100%}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (hover:hover) and (pointer:fine){.food-button:not(:disabled):hover,.food-result:hover{border-color:var(--accent);background:var(--accent-tint);color:var(--accent-deep)}.food-primary:not(:disabled):hover{filter:brightness(1.07)}}@media (width<=350px){.ingredient-row{gap:6px}.food-surface .ingredient-inputs .portion-quantity{width:58px}.meal-total-top{grid-template-columns:86px minmax(0,1fr);gap:10px}.meal-calories>strong{font-size:27px}.food-row-actions{flex-wrap:wrap}}@media (width<=600px){.meal-metadata{grid-template-columns:minmax(0,1fr);gap:4px}}@media (prefers-color-scheme:dark){.food-primary{color:var(--bg)}}@media (prefers-reduced-motion:reduce){.food-surface *{scroll-behavior:auto;transition:none;animation:none}}
