:root{--bg:#f5faef;--panel:#fff;--ink:#173d29;--muted:#55715d;--green:#245a3a;--line:#dbe9d6;--mint:#e4f6d7;--lime:#d5fa72;--soft:#f0f7e9;--yellow:#fff3d9;--shadow:0 8px 24px rgba(26,74,37,.045);--nav:calc(80px + env(safe-area-inset-bottom))}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;background:#eaf0e5;color:var(--ink);font:16px/1.48 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #87ba56;outline-offset:2px}button:disabled{opacity:.48}.app{max-width:860px;margin:auto;min-height:100dvh;background:var(--bg);box-shadow:0 2px 34px #143d1714}.hero{padding:calc(env(safe-area-inset-top) + 15px) 22px 22px;background:linear-gradient(130deg,#e9f9dc,#d3f0bc 67%,#d8f3c4);border-radius:0 0 26px 26px}.brand{display:flex;align-items:center;justify-content:space-between;gap:10px}.brand strong{font-size:12px;letter-spacing:.12em}.brand small{color:#3c6748;background:#fafff5b8;padding:7px 10px;border:1px solid #c9e4b7;border-radius:11px;font-weight:750;white-space:nowrap}.hero h1{font-size:clamp(29px,5vw,37px);margin:15px 0 3px;letter-spacing:-.055em;line-height:1.1}.hero p{margin:0;color:#456b4e;font-size:14px}.content{padding:16px 15px calc(var(--nav) + 16px)}.card{background:var(--panel);border:1px solid var(--line);border-radius:19px;padding:17px;margin-bottom:13px;box-shadow:var(--shadow);min-width:0}.card h2,.card h3{margin:0;letter-spacing:-.03em}.card h2{font-size:21px}.card h3{font-size:18px}.eyebrow{font-size:11px;letter-spacing:.1em;color:#438059;font-weight:900;text-transform:uppercase}.secondary{color:var(--muted)}.small{font-size:13px}.tiny{font-size:12px}.strong{font-weight:850}.divider{height:1px;background:var(--line);margin:15px 0}.pill{display:inline-block;background:#e9f7df;color:#305c3b;border-radius:100px;padding:5px 9px;font-size:12px;font-weight:800}.row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}.row>*{min-width:0}.flex{display:flex;gap:8px;flex-wrap:wrap}.seg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:4px;gap:5px;background:#edf7e7;border-radius:14px}.seg button{border:0;background:transparent;color:#426c4b;min-height:46px;border-radius:11px;padding:8px 4px;font-size:14px;font-weight:850;min-width:0}.seg button.active{background:var(--green);color:#fff}.daybar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin:15px 0}.daybar button{border:1px solid var(--line);background:#fff;color:#6a826e;border-radius:12px;min-height:59px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4px 0;min-width:0}.daybar b{font-size:17px}.daybar small{font-size:11px;font-weight:850}.daybar .active{background:var(--green);color:#fff;border-color:var(--green)}.daybar .today:not(.active){border-color:#8cb883;background:#e8f9dc}.sum{border-radius:17px;background:#234f36;color:white;padding:16px 17px;margin:0 0 15px}.sum strong{font-size:25px;letter-spacing:-.04em}.sum small{color:#d7ebd8}.sum .secondary{color:#d9ebd9}.sum .row{align-items:flex-end}.note{border-radius:14px;border:1px solid #d0e8c9;background:#eff8e8;color:#385d42;padding:13px 14px;font-size:14px;margin:12px 0}.note.warning{background:#fff5de;border-color:#f1dcaa;color:#795c2e}.note strong{color:inherit}.meals{display:grid;grid-template-columns:1fr;gap:0}.meal{padding:17px}.mealHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.mealHead h2{font-size:23px}.macroline{display:flex;flex-wrap:wrap;gap:7px;margin:9px 0 13px}.macroline span{font-size:12px;color:#55705a;background:#f0f7ed;padding:5px 8px;border-radius:8px;font-weight:750}.macroline .cal{background:#dbf3c9;color:#24563a}.options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:12px 0}.options button{border:1px solid #d4e7ca;border-radius:11px;min-height:43px;background:#fff;color:#4c7153;font-size:14px;font-weight:850;padding:5px 3px}.options button.active{border-color:#295e3d;background:var(--green);color:white}.ingredients{border-radius:14px;background:#f7fbf3;padding:6px 12px;margin:11px 0}.ingrow{display:flex;align-items:center;justify-content:space-between;gap:9px;min-height:42px;padding:6px 0;border-bottom:1px solid #e4eddf}.ingrow:last-child{border:0}.ingrow span{min-width:0;overflow-wrap:anywhere;font-size:15px}.ingrow b{white-space:nowrap;font-size:15px;text-align:right}.recipeTitle{font-size:18px;font-weight:850;letter-spacing:-.03em;margin:10px 0 0}.how{font-size:14px;color:#536d59;margin:9px 0 12px}.liteBtn{background:#e6f6d9;color:var(--green);border:1px solid #b9d7b0;border-radius:13px;padding:10px 13px;font-size:14px;font-weight:850;min-height:45px;width:100%}.liteBtn[aria-expanded=true]{background:var(--lime)}.swapPane{margin-top:10px;border:1px solid #d6e9cf;border-radius:13px;padding:11px;background:#fbfef9}.swapBox{padding:9px 0;border-bottom:1px solid var(--line)}.swapBox:last-child{border:0}.swapBox strong{font-size:13px}.swapButtons{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.chip{border:1px solid #cadfc6;border-radius:10px;background:#fff;color:#345c3e;font-size:12px;font-weight:750;min-height:38px;padding:8px 9px;max-width:100%;overflow-wrap:anywhere}.chip.active{background:#275b3c;color:#fff;border-color:#275b3c}.btn{border:0;background:var(--green);color:#fff;border-radius:12px;min-height:48px;padding:10px 16px;font-size:15px;font-weight:850}.btn.alt{background:#fff;color:var(--green);border:1px solid #c1d9ba}.btn.full{width:100%}.inputrow{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}.inputrow label{font-size:14px;font-weight:750}.field{width:100%;min-width:0;border:1px solid #cbdcc7;border-radius:12px;background:white;color:var(--ink);padding:11px 12px;min-height:48px;font-size:16px}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.metric{border:1px solid var(--line);border-radius:14px;padding:12px;background:#fff}.metric small{font-size:12px;color:#607969}.metric b{display:block;font-size:24px;letter-spacing:-.03em}.shopRow{display:flex;align-items:center;gap:12px;min-height:53px;padding:9px 0;border-bottom:1px solid #e6eee1}.shopRow:last-child{border:0}.shopRow input{width:23px;height:23px;accent-color:#2b7044;flex-shrink:0}.shopRow span{flex:1;min-width:0;overflow-wrap:anywhere}.shopRow b{white-space:nowrap;font-size:14px}.shopRow.done span{text-decoration:line-through;color:#95a99b}.bar{height:9px;background:#e4f0df;border-radius:12px;overflow:hidden}.bar i{display:block;background:#5ba864;height:100%;transition:width .2s}.record{display:flex;justify-content:space-between;align-items:center;gap:9px;padding:11px 0;border-bottom:1px solid #e7ede4}.record:last-child{border:0}.record button{background:#fff;border:1px solid var(--line);width:37px;height:37px;border-radius:11px;color:var(--green);font-size:18px}.chart{max-width:100%;height:auto;display:block}.nav{position:fixed;z-index:30;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:860px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:#fffffff2;border-top:1px solid #d9e7d3;backdrop-filter:blur(12px);padding:7px 8px calc(8px + env(safe-area-inset-bottom))}.nav button{border:0;background:transparent;min-height:56px;color:#69836f;border-radius:12px;font-size:12px;font-weight:850;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2px}.nav button.active{background:#e4f6d7;color:#214f34}.nav svg{height:21px;width:21px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}.toast{position:fixed;z-index:40;bottom:calc(var(--nav) + 12px);left:50%;transform:translateX(-50%);background:#1d4e34;color:#fff;border-radius:12px;padding:12px 16px;font-size:14px;max-width:min(91vw,500px);width:max-content;box-shadow:0 9px 23px #173d2936}.toggle{margin:8px 0 0}.mutedFoot{font-size:12px;color:#6c8070;margin:10px 4px}.empty{padding:15px;text-align:center;color:#69806c}.flexMin{flex:1;min-width:0}.actionRow{display:flex;gap:8px;flex-wrap:wrap}.actionRow .btn{flex:1 1 155px}.supp{border-left:4px solid #a9df78;padding-left:12px;margin-top:13px}.supp:first-of-type{margin-top:7px}.supp h3{font-size:16px}.supp p{margin:5px 0 0;font-size:13px;color:#4d6c56}.helptext{margin:9px 0 0;font-size:13px;color:#59715f}.inputError{color:#9e4f32}.stickyTitle{display:flex;align-items:center;justify-content:space-between;gap:8px}.textBtn{border:0;background:transparent;color:var(--green);font-size:13px;font-weight:850;padding:7px}.daycard{margin-bottom:15px}.scrolledAnchor{scroll-margin-top:18px}
@media(min-width:750px){.content{padding:24px 24px calc(var(--nav) + 20px)}.meals{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.meals .card{margin-bottom:0}.hero{padding-left:29px;padding-right:29px}}
@media(max-width:370px){.content{padding:13px 11px calc(var(--nav) + 14px)}.card{padding:13px}.meal{padding:14px}.daybar{gap:3px}.daybar button{min-height:54px}.options{gap:4px}.options button{font-size:12px}.mealHead h2{font-size:21px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
