:root{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif;color:#16251d;background:#f3f5f1}*{box-sizing:border-box}body{margin:0;background:#f3f5f1}.wrap{max-width:560px;margin:auto;padding:22px 18px 112px}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.eyebrow,.sectionhead span,.dashcopy span{font-size:10px;letter-spacing:1.5px;font-weight:800;color:#8b968f}.topbar h1{font-size:32px;letter-spacing:-1.2px;margin:2px 0}.avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#173f2c;color:white;font-weight:800}.dashboard{background:#173f2c;color:white;border-radius:30px;padding:22px;display:flex;align-items:center;gap:22px;box-shadow:0 12px 32px rgba(23,63,44,.18)}.calring{--p:70%;width:126px;height:126px;flex:0 0 126px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#b8ed70 var(--p),rgba(255,255,255,.13) 0);position:relative}.calring:after{content:"";position:absolute;width:101px;height:101px;border-radius:50%;background:#173f2c}.calring div{z-index:1;text-align:center}.calring strong{display:block;font-size:26px;letter-spacing:-1px}.calring small{font-size:10px;color:#cbd8d0}.dashcopy{display:flex;flex-direction:column;gap:4px}.dashcopy span{color:#9fb2a7}.dashcopy b{font-size:24px}.dashcopy small{color:#cbd8d0}.quickgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:12px 0 24px}.quick{background:white;border:1px solid #e8ece7;border-radius:19px;padding:13px 11px}.quick span{font-size:11px;color:#7b877f}.quick b{display:block;font-size:20px;margin:4px 0}.quick b small{font-size:11px}.quick em{font-style:normal;font-size:9px;color:#97a098}.sportbanner{display:flex;gap:12px;align-items:center;background:#e5f7d8;border-radius:18px;padding:12px 14px;margin-bottom:12px;color:#21452f}.sportbanner small{display:block;margin-top:2px;color:#617269}.sporticon{width:34px;height:34px;border-radius:12px;background:#173f2c;color:white;display:grid;place-items:center}.sectionhead{display:flex;justify-content:space-between;align-items:end;margin:4px 2px 9px}.sectionhead h2{font-size:23px;margin:3px 0 0;letter-spacing:-.5px}.daytag,.tag{background:#e4f4e8;color:#167b47;padding:6px 10px;border-radius:99px;font-size:11px;font-weight:750}.mealstack{background:#fff;border-radius:25px;padding:4px 17px;border:1px solid #e8ece7}.meal{padding:16px 0;border-top:1px solid #edf0ec}.meal:first-child{border:0}.meal p{line-height:1.45;margin:8px 0}.row{display:flex;align-items:center;justify-content:space-between;gap:10px}.muted{color:#859087;font-size:12px}.pill{border:0;border-radius:12px;padding:9px 12px;font-weight:700;font-size:12px}.done{background:#e3f6e7;color:#167b47}.change{background:#f0f2ef;color:#4d5b52}.watercard{margin-top:12px;background:#e7f1fa;border-radius:20px;padding:15px 16px;display:flex;justify-content:space-between;align-items:center}.watercard span{display:block;font-size:11px;color:#60798b}.watercard b{display:block;margin-top:3px}.watercard button{border:0;background:white;border-radius:12px;padding:10px 13px;font-weight:750;color:#3e6e8e}.hero,.card{background:#fff;border:1px solid #e8ece7;border-radius:23px;padding:17px;margin:13px 0}.green{color:#16834c}.stat{font-size:26px;font-weight:800}.grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.grid .card{margin:0}.chat{background:#eef2ef;padding:14px;border-radius:16px;margin:10px 0;line-height:1.45}.input{display:flex;gap:8px}.input input{flex:1;padding:13px;border:1px solid #dfe5e1;border-radius:14px}.input button{border:0;background:#173f2c;color:white;border-radius:14px;padding:0 16px}.progress{height:8px;background:#e7ece8;border-radius:9px;overflow:hidden}.progress i{display:block;height:100%;background:#2aaa63}.chart{width:100%;height:auto}.weightline{fill:none;stroke:#21a65d;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.targetline{stroke:#aab5ad;stroke-width:1.5;stroke-dasharray:5 5}nav{position:fixed;z-index:20;bottom:0;left:0;right:0;background:rgba(255,255,255,.95);backdrop-filter:blur(18px);border-top:1px solid #e7ebe7;display:flex;justify-content:center;padding:6px 0 calc(6px + env(safe-area-inset-bottom))}nav button{width:25%;max-width:140px;border:0;background:transparent;padding:8px 2px;color:#89928c;font-size:19px}nav span{display:block;font-size:10px;margin-top:3px}nav button.active{color:#173f2c;font-weight:800}@media(max-width:370px){.dashboard{gap:14px;padding:18px}.calring{width:108px;height:108px;flex-basis:108px}.calring:after{width:86px;height:86px}.quick{padding:11px 8px}}.mini{border:0;background:#f4f6f3;color:#748078;border-radius:10px;width:34px;height:34px;font-size:18px}.weekrow{display:grid;grid-template-columns:92px 1fr;gap:8px;padding:12px 0;border-top:1px solid #edf0ec}.weekrow:first-of-type{border-top:0}.weekrow small{display:block;color:#789083;margin-top:3px;font-size:10px}.weekrow p{margin:0;line-height:1.55;font-size:12px;color:#526057}.homefoods h2{margin-bottom:4px}.foodchips{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}.foodchips button{border:1px solid #dfe6e0;background:#f7f8f6;border-radius:99px;padding:9px 11px;color:#4c5a51;font-weight:650}.foodchips button.selected{background:#173f2c;color:#fff;border-color:#173f2c}.makeMeal{width:100%;border:0;background:#173f2c;color:#fff;border-radius:14px;padding:13px;font-weight:800;margin-top:7px}nav button{width:20%}.groupname{font-size:11px;font-weight:800;color:#748078;margin-top:15px;text-transform:uppercase;letter-spacing:.8px}.foodsearch{width:100%;border:1px solid #dae5dc;border-radius:14px;padding:13px;font:inherit;margin:8px 0 10px}.groupname{font-size:12px;font-weight:800;color:#355b40;margin:14px 0 5px}.pantrygroup{padding-top:4px}.suggestion{border-top:1px solid #dae2dc;padding:11px 0}.suggestion p{margin:6px 0;font-size:13px;line-height:1.5}.suggestion small{color:#667b6e}.weekcal{display:block;color:#173f2c;font-size:13px;margin-top:6px}.weekrow em{font-style:normal;color:#9aa39d;font-size:10px}.weeksummary{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0 8px}.weeksummary div{background:#f2f6f2;border-radius:14px;padding:11px}.weeksummary small{display:block;font-size:9px;color:#849087}.weeksummary b{display:block;margin-top:3px;font-size:16px}