@import"https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600&family=Manrope:wght@400;500;600;700;800&display=swap";:root{--accent: #e46444;--accent-dark: #bd4e37;--accent-soft: #fff1eb;--sage: #9aaa82;font-family:Manrope,system-ui,sans-serif;color:#15120e;background:#f7f1e6;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(circle at 80% 0%,rgba(228,100,68,.12),transparent 27rem),linear-gradient(180deg,#fffdfa,#f7f1e6 48%,#f4eee3)}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}a{color:inherit}.app-shell{min-height:100vh;overflow:hidden}.shell-width{width:min(1200px,calc(100% - 64px));margin:0 auto}.topbar{height:92px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(52,45,36,.12)}.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none}.brand-mark{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;color:#fffaf6;background:linear-gradient(135deg,var(--accent),#f29a7e);font-weight:800;box-shadow:0 4px 14px #e4644447}.brand strong,.brand small{display:block}.brand strong{font-size:14px;letter-spacing:-.02em}.brand small,.topbar-meta,.eyebrow,.source-note,.photo-caption,.counter,.food-index,.candidate-label,.totals-footnote{color:#9a8f7e;text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:700}.brand small{margin-top:3px;font-size:9px;font-weight:600}.topbar-meta{display:flex;align-items:center;gap:8px;letter-spacing:.04em}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px #e464443b}.hero-grid{min-height:618px;display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(42px,7vw,100px);align-items:center;padding:76px 0 86px}.hero-copy{position:relative;z-index:1}.eyebrow{margin:0}h1,h2,h3,p{margin-top:0}h1,h2{font-family:Fraunces,Georgia,serif;font-weight:500;letter-spacing:-.065em}h1{max-width:690px;margin:25px 0 26px;font-size:clamp(58px,7.3vw,106px);line-height:.91}h1 em,.accent{color:var(--accent);font-style:normal}.hero-lead{max-width:500px;color:#5d5448;font-size:17px;line-height:1.65}.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:34px 0 26px}.button{min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:13px;padding:0 18px;border:1px solid rgba(52,45,36,.15);border-radius:8px;font-size:11px;font-weight:800;letter-spacing:.02em;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}.button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 20px #15120e17}.button-primary{color:#fff1eb;background:#15120e;border-color:#15120e}.button-primary span{font-size:17px;line-height:1}.button-secondary{color:#403a31;background:#ffffff80}.source-note{margin-bottom:0;line-height:1.8;letter-spacing:.03em;text-transform:none;font-weight:600}.hero-art{position:relative;min-height:440px;display:grid;place-items:center;overflow:hidden;border:1px solid rgba(52,45,36,.13);border-radius:16px;background:linear-gradient(145deg,#ffffffc7,#e464441a);box-shadow:0 20px 55px #4d3b1114}.art-grid{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.55;background-image:linear-gradient(rgba(52,45,36,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(52,45,36,.055) 1px,transparent 1px);background-size:42px 42px;-webkit-mask-image:linear-gradient(to bottom,black,transparent 85%);mask-image:linear-gradient(to bottom,black,transparent 85%)}.hero-fun-visual{position:relative;z-index:1;width:min(88%,450px);display:grid;place-items:center;transform:rotate(-3deg)}.hero-fun-image{display:block;width:100%;max-height:390px;object-fit:contain;filter:drop-shadow(0 24px 17px rgba(77,59,17,.2))}.art-note{position:absolute;z-index:2;color:#81755e;text-transform:uppercase;letter-spacing:.1em;font-size:10px;font-weight:800}.art-note:before{content:"";display:inline-block;width:20px;margin-right:9px;border-top:1px solid #9a8f7e;vertical-align:middle}.art-note-top{top:34px;left:32px}.art-note-bottom{right:32px;bottom:30px;color:var(--accent-dark)}.art-note-bottom:before{border-color:var(--accent)}.notice{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:-22px 0 42px;padding:13px 17px;border-radius:8px;border:1px solid rgba(52,45,36,.13);font-size:13px;line-height:1.5}.notice-info{background:#e464441f}.notice-success{background:#eef4e6;color:#385331}.notice-error{color:#9d2c27;background:#fef2f2;border-color:#fecaca}.inline-action{padding:0;border:0;background:transparent;color:inherit;text-decoration:underline;font-weight:800}.review-section,.journal-section{padding:74px 0 0;border-top:1px solid rgba(52,45,36,.13)}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:36px;margin-bottom:36px}h2{margin:16px 0 0;font-size:clamp(47px,6vw,80px);line-height:.95}.section-intro{max-width:330px;margin-bottom:2px;color:#756b5c;font-size:13px;line-height:1.6}.review-heading{margin-bottom:30px}.counter{margin-bottom:7px;color:var(--accent-dark)}.review-layout{display:grid;grid-template-columns:minmax(240px,.62fr) minmax(0,1.38fr);gap:34px;padding-bottom:80px}.review-photo-wrap{position:sticky;top:20px;align-self:start}.review-photo{display:block;width:100%;max-height:560px;object-fit:cover;border-radius:16px;border:1px solid rgba(52,45,36,.13);background:#ebe2d4;box-shadow:0 13px 30px #4d3b1114}.photo-caption{display:block;margin-top:10px;font-size:9px}.review-content{min-width:0}.field-label{display:block;margin-bottom:7px;color:#9a8f7e;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.text-input{width:100%;min-height:40px;padding:0 12px;color:#15120e;background:#ffffffa3;border:1px solid rgba(52,45,36,.16);border-radius:8px;outline:0}.text-input:focus,.food-name-input:focus,.quantity-custom input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #e464442e}.meal-name{margin-bottom:16px;font-size:16px;font-weight:700}.recognition-bar{display:flex;align-items:center;gap:10px;margin-bottom:18px;padding:11px 12px;color:#5d5448;background:#e464441a;border-radius:8px;font-size:12px}.food-list{display:grid;gap:12px}.food-card{padding:18px;border:1px solid rgba(52,45,36,.14);border-radius:12px;background:#ffffff7d}.food-card-head{display:flex;justify-content:space-between;gap:12px;align-items:start;margin-bottom:14px}.food-index{display:block;margin-bottom:5px;font-size:9px}.food-name-input{width:100%;padding:0;color:#15120e;border:1px solid transparent;border-radius:4px;outline:0;background:transparent;font-size:18px;font-weight:800}.remove-button{width:24px;height:24px;flex:none;padding:0;color:#9a8f7e;border:0;background:transparent;font-size:22px;line-height:1}.remove-button:hover{color:#bd3932}.search-row{display:grid;grid-template-columns:1fr auto;gap:8px}.small-button{padding:0 13px;border:1px solid rgba(52,45,36,.18);border-radius:8px;color:#403a31;background:#fffdfa;font-size:11px;font-weight:800}.small-button:hover:not(:disabled){border-color:#15120e}.line-error,.line-empty{margin:12px 0 0;color:#9d2c27;font-size:12px;line-height:1.55}.line-empty{color:#756b5c}.exact-product-card{border-color:#c8bd12;background:#fffdea}.exact-label{color:var(--accent-dark)}.exact-product-name{margin:0;font-family:Fraunces,Georgia,serif;font-size:27px;font-weight:500;letter-spacing:-.04em}.exact-product-brand{margin:5px 0 0;color:#756b5c;font-size:12px}.exact-product-summary{display:grid;grid-template-columns:92px 1fr;gap:15px;align-items:center;padding:14px 0;border-top:1px solid rgba(52,45,36,.1);border-bottom:1px solid rgba(52,45,36,.1)}.exact-product-image{width:92px;height:92px;display:grid;place-items:center;overflow:hidden;border-radius:8px;color:#9a8f7e;background:#eee6d9;font-size:24px}.exact-product-image img{width:100%;height:100%;object-fit:contain}.exact-product-meta{display:grid;gap:8px;color:#756b5c;font-size:11px}.exact-product-meta strong{display:block;margin-top:4px;color:#15120e;font-size:14px;letter-spacing:.08em}.exact-nutrition{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:14px}.exact-nutrition span{display:flex;flex-direction:column;gap:4px;padding:9px;border-radius:6px;background:#f4eee3bf}.exact-nutrition small{color:#9a8f7e;font-size:9px;text-transform:uppercase;letter-spacing:.06em}.exact-nutrition strong{font-size:12px}.candidate-insight{display:grid;gap:9px;margin-top:17px;padding:14px;border:1px solid rgba(52,45,36,.12);border-radius:9px;background:#f4eee3b3}.candidate-insight-low{border-color:#7a975247;background:#eef4e6b8}.candidate-insight-medium{border-color:#c7a0214d;background:#fffadcc7}.candidate-insight-high{border-color:#bd393242;background:#fef2f2c2}.candidate-insight-single{color:#756b5c}.candidate-insight-single strong{color:#403a31;font-size:12px}.candidate-insight-single span{font-size:10px}.candidate-insight-head{display:flex;align-items:start;justify-content:space-between;gap:12px}.candidate-insight-head>div{min-width:0}.candidate-insight-head strong{display:block;color:#403a31;font-size:12px}.uncertainty-badge{flex:none;max-width:52%;padding:5px 7px;border-radius:5px;color:#756b5c;background:#342d2412;font-size:9px;font-weight:800;line-height:1.3;text-align:right}.uncertainty-low{color:#4d713a;background:#7a975221}.uncertainty-medium{color:#82630c;background:#c7a02124}.uncertainty-high{color:#9d2c27;background:#bd39321a}.candidate-range{color:#15120e;font-size:18px;letter-spacing:-.02em}.selected-reference{color:#756b5c;font-size:10px}.selected-reference b{color:#15120e}.candidate-details{margin-top:10px}.candidate-details summary{display:flex;justify-content:space-between;gap:12px;padding:8px 2px;color:var(--accent-dark);cursor:pointer;font-size:10px;font-weight:800;list-style-position:inside}.candidate-details summary span{color:#9a8f7e;font-weight:600}.candidate-list{display:grid;gap:6px;margin-top:3px}.candidate-label{margin:0 0 3px;font-size:9px}.candidate{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0;align-items:center;overflow:hidden;border:1px solid rgba(52,45,36,.1);border-radius:9px;color:#15120e;background:#ffffff8f}.candidate:hover,.candidate-selected{border-color:var(--accent);background:var(--accent-soft)}.candidate-select{width:100%;display:grid;grid-template-columns:38px minmax(0,1fr) auto 24px;gap:10px;align-items:center;min-width:0;padding:9px;text-align:left;border:0;color:#15120e;background:transparent}.candidate-select:hover{background:#ffffff47}.candidate-image{width:38px;height:38px;display:grid;place-items:center;overflow:hidden;border-radius:6px;color:#9a8f7e;background:#eee6d9;font-size:18px}.candidate-image img{width:100%;height:100%;object-fit:contain}.candidate-main,.candidate-nutrition{min-width:0}.candidate-main strong,.candidate-main small,.candidate-source,.candidate-nutrition b,.candidate-nutrition small,.candidate-nutrition span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.candidate-main strong{font-size:12px}.candidate-main small,.candidate-source,.candidate-nutrition small,.candidate-nutrition span{color:#9a8f7e;font-size:9px}.candidate-source{margin-top:4px;color:var(--accent-dark);font-size:8px}.candidate-nutrition{text-align:right}.candidate-nutrition b{font-size:12px}.candidate-check{color:var(--accent);font-size:18px}.candidate-link{margin-right:9px;color:var(--accent-dark);font-size:9px;font-weight:800;text-decoration:underline}.portion-editor{margin-top:17px;padding-top:15px;border-top:1px solid rgba(52,45,36,.1)}.portion-heading{display:flex;justify-content:space-between;margin-bottom:9px;color:#756b5c;font-size:11px}.portion-heading strong{color:#15120e}.quantity-shortcuts{display:flex;gap:6px;flex-wrap:wrap}.quantity-shortcuts button,.quantity-custom{min-height:31px;display:inline-flex;align-items:center;padding:0 10px;border:1px solid rgba(52,45,36,.14);border-radius:6px;color:#5d5448;background:#fffdfa;font-size:11px}.quantity-shortcuts button:hover,.quantity-shortcuts button.active{color:#15120e;border-color:var(--accent);background:var(--accent-soft)}.quantity-custom{padding:0 7px;gap:3px}.quantity-custom input{width:42px;padding:0;border:0;outline:0;color:#15120e;background:transparent;font-size:11px}.quantity-custom span{color:#9a8f7e;font-size:10px}.portion-values{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.portion-values span{display:flex;flex-direction:column;gap:4px;padding:9px;color:#9a8f7e;background:#f4eee3bf;border-radius:6px;font-size:9px;text-transform:uppercase;letter-spacing:.06em}.portion-values b{color:#15120e;font-size:12px;text-transform:none;letter-spacing:0}.source-link{display:inline-block;margin-top:12px;color:var(--accent-dark);font-size:10px;font-weight:800;text-decoration:underline}.source-link-disabled{color:#9a8f7e;text-decoration:none}.review-actions{display:flex;justify-content:space-between;gap:10px;margin-top:18px}.review-secondary-actions{display:flex;gap:10px}.button-quiet{color:#756b5c;background:transparent}.button-quiet:hover{color:var(--accent-dark);background:var(--accent-soft)}.journal-section{padding-bottom:92px}.journal-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:32px;align-items:start}.meal-list{display:grid;gap:13px}.empty-journal{padding:36px;border:1px dashed rgba(52,45,36,.23);border-radius:12px;color:#756b5c;text-align:center}.empty-mark{display:block;margin-bottom:12px;color:var(--accent);font-size:28px}.empty-journal p{margin-bottom:4px;color:#403a31;font-family:Fraunces,Georgia,serif;font-size:22px}.empty-journal small{font-size:12px}.journal-meal{padding:20px 22px 10px;border:1px solid rgba(52,45,36,.13);border-radius:12px;background:#ffffff75}.journal-meal-head{display:flex;align-items:start;justify-content:space-between;gap:12px;padding-bottom:16px;border-bottom:1px solid rgba(52,45,36,.1)}.journal-meal-head h3{margin:7px 0 0;font-family:Fraunces,Georgia,serif;font-size:27px;font-weight:500;letter-spacing:-.04em}.journal-meal-actions{display:flex;align-items:center;gap:13px}.meal-photo-dot{color:var(--accent-dark);font-size:10px;font-weight:800;text-transform:uppercase}.journal-edit-button{padding:5px 9px;border:1px solid rgba(52,45,36,.16);border-radius:5px;color:var(--accent-dark);background:transparent;font-size:10px;font-weight:800}.journal-edit-button:hover{border-color:var(--accent);background:var(--accent-soft)}.journal-line{display:flex;justify-content:space-between;gap:20px;padding:14px 0;border-bottom:1px solid rgba(52,45,36,.08)}.journal-line:last-child{border-bottom:0}.journal-line strong,.journal-line small{display:block}.journal-line strong{font-size:13px}.journal-line small{margin-top:4px;color:#9a8f7e;font-size:10px}.journal-line-value{text-align:right}.journal-line-value strong{color:#15120e}.journal-line-value small{color:var(--accent-dark)}.totals-card{padding:24px;color:#f8f2e8;border-radius:14px;background:#15120e;box-shadow:0 15px 30px #15120e1c}.totals-card .eyebrow{color:#9c927f}.totals-card h3{margin:25px 0 26px;font-family:Fraunces,Georgia,serif;font-size:clamp(44px,5vw,68px);font-weight:500;line-height:.9;letter-spacing:-.07em}.totals-grid{display:grid;gap:9px;padding-top:15px;border-top:1px solid rgba(255,255,255,.17)}.totals-grid span{display:flex;justify-content:space-between;color:#a9a093;font-size:11px}.totals-grid b{color:#f8f2e8}.partial-total,.complete-total{margin:23px 0 0;padding:10px 12px;color:#f3a38d;background:#e4644424;border-radius:6px;font-size:11px;line-height:1.5}.complete-total{color:#b5d39b;background:#b5d39b1a}.empty-total{margin:23px 0 0;padding:10px 12px;color:#aaa196;background:#ffffff12;border-radius:6px;font-size:11px;line-height:1.5}.totals-footnote{display:block;margin-top:20px;color:#777066;font-size:8px;line-height:1.5;text-transform:none;letter-spacing:.03em}.footer{display:flex;justify-content:space-between;gap:20px;padding:22px 0 27px;border-top:1px solid rgba(52,45,36,.13);color:#9a8f7e;font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(1px,1px,1px,1px)!important;white-space:nowrap!important}@media (max-width: 850px){.hero-grid,.review-layout,.journal-layout{grid-template-columns:1fr}.hero-grid{padding-top:58px}.hero-art{min-height:380px}.review-photo-wrap{position:static;max-width:440px}.totals-card{max-width:none}}@media (max-width: 560px){.shell-width{width:min(100% - 40px,1200px)}.topbar{height:78px}.topbar-meta{font-size:0}.topbar-meta .status-dot{margin-right:4px}.hero-grid{min-height:0;padding:54px 0 68px}h1{font-size:clamp(52px,16vw,82px)}.hero-lead{font-size:15px}.hero-actions,.hero-actions .button{width:100%}.hero-art{min-height:300px}.hero-fun-visual{width:86%}.hero-fun-image{max-height:270px}.art-note-top{top:22px;left:18px}.art-note-bottom{right:18px;bottom:20px}.section-heading{display:block}.section-intro{margin-top:20px}.review-section,.journal-section{padding-top:54px}.counter{display:block;margin-top:17px}.review-layout{gap:24px;padding-bottom:56px}.food-card{padding:14px}.exact-nutrition{grid-template-columns:repeat(2,1fr)}.candidate-select{grid-template-columns:34px 1fr 24px}.candidate-image{width:34px;height:34px}.candidate-select .candidate-nutrition{grid-column:2;grid-row:2;text-align:left}.candidate-select .candidate-check{grid-column:3;grid-row:1 / span 2}.portion-values{grid-template-columns:1fr}.review-actions{flex-direction:column-reverse}.review-actions .button{width:100%}.review-secondary-actions{flex-direction:column}.journal-meal{padding:17px 15px 7px}.footer{display:grid;gap:8px}}
