:root{--bg:#f7f6f1;--card:#fff;--ink:#141414;--muted:#8a8a85;--line:#ecebe5;--soft:#efeee8;--c-pink:#f2b5d4;--c-green:#c5dc8f;--c-yellow:#f7dc6f;--c-lilac:#cfc8f3;--c-blue:#a9c4ef;--c-pink-soft:#fbe3ef;--c-green-soft:#edf4d9;--c-yellow-soft:#fdf3c9;--c-lilac-soft:#ece9fb;--c-blue-soft:#e2ebfa;--radius:22px;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-family:Plus Jakarta Sans,system-ui,-apple-system,sans-serif}*{box-sizing:border-box;margin:0}body{background:var(--bg);min-height:100dvh}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}input{font:inherit;color:inherit}a{color:inherit;text-decoration:none}.app{max-width:480px;min-height:100dvh;margin:0 auto;position:relative}.page{flex-direction:column;gap:14px;padding:16px 16px 120px;animation:.25s fade;display:flex}@keyframes fade{0%{opacity:0;transform:translateY(6px)}}h1{letter-spacing:-.03em;font-size:26px;font-weight:800}.h-sm{letter-spacing:-.01em;font-size:18px;font-weight:700}h3{letter-spacing:-.02em;font-size:20px;font-weight:800}.muted{color:var(--muted)}.small{font-size:13px}.cap:first-letter{text-transform:uppercase}.center-text{text-align:center}.section-title{margin-top:6px;font-size:17px;font-weight:800}.list-title{color:var(--muted);align-items:center;gap:6px;margin:6px 2px 8px;font-size:13px;font-weight:700;display:flex}.top{padding-top:8px}.top.row{justify-content:space-between;align-items:center;display:flex}.top.center{text-align:center}.wave{transform-origin:70% 70%;animation:2s wave;display:inline-block}@keyframes wave{20%,60%{transform:rotate(14deg)}40%{transform:rotate(-8deg)}}.card{background:var(--card);border-radius:var(--radius);border:1px solid var(--line);padding:16px}.card-head{justify-content:space-between;align-items:baseline;margin-bottom:12px;font-size:14px;display:flex}.chip{border-radius:99px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;font-weight:700;display:inline-flex}.chip.blue{background:var(--c-blue-soft)}.chip.yellow{background:var(--c-yellow-soft)}.icon-btn{background:var(--card);border:1px solid var(--line);border-radius:50%;place-items:center;width:40px;height:40px;display:grid}.icon-btn.ghost{width:32px;height:32px;color:var(--muted);background:0 0;border:0}.pill{border-radius:99px;justify-content:center;align-items:center;gap:6px;padding:10px 18px;font-size:14px;font-weight:700;display:inline-flex}.pill.dark{background:var(--ink);color:#fff}.pill.outline{border:1.5px solid var(--ink)}.pill.wide{width:100%;margin-top:4px;padding:15px;font-size:15px}.pill:active,.add-tile:active,.glass:active{transform:scale(.96)}.segmented{background:var(--soft);border-radius:14px;padding:4px;display:flex}.segmented button{color:#555;border-radius:10px;flex:1;padding:9px 0;font-size:14px;font-weight:600;transition:all .2s}.segmented button.on{background:var(--ink);color:#fff}.week-strip{flex-shrink:0;align-items:flex-start;gap:6px;display:flex}.week-strip .day{flex:1;min-width:0}.day{color:var(--muted);border-radius:16px;flex-direction:column;align-items:center;gap:2px;padding:8px 0 6px;font-size:11px;transition:all .2s;display:flex}.day b{color:var(--ink);font-size:16px}.day.on{background:var(--ink);color:#bbb}.day.on b{color:#fff}.day.future{opacity:.45}.dot{background:var(--c-pink);border-radius:50%;width:5px;height:5px}.dot.none{background:0 0}.hero-ring{place-items:center;padding:4px 0;display:grid}.ring{position:relative}.ring-fill{animation:.9s cubic-bezier(.2,.8,.2,1) draw}@keyframes draw{0%{stroke-dasharray:0 999}to{stroke-dasharray:999 0}}.ring-emoji{pointer-events:none;font-size:17px;position:absolute;transform:translate(-50%,-50%)}.ring-center{text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.ring-number{letter-spacing:-.05em;font-size:50px;font-weight:800;line-height:1}.ring-label{margin-top:4px;font-size:13px}.ring-sub{color:var(--muted);margin-top:2px;font-size:11px}.macro-row{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.macro{background:var(--card);border:1px solid var(--line);border-radius:18px;grid-template-rows:auto auto;grid-template-columns:14px 1fr;align-items:end;column-gap:10px;padding:12px;display:grid}.macro-bar{background:var(--soft);border-radius:8px;grid-row:span 2;align-items:flex-end;height:42px;display:flex;overflow:hidden}.macro-bar i{border-radius:8px;width:100%;transition:height .6s}.macro b{font-size:17px;font-weight:800}.macro b small{color:var(--muted);font-size:11px;font-weight:600}.macro span{color:var(--muted);font-size:12px}.insight{background:var(--c-pink-soft);border-radius:var(--radius);align-items:flex-start;gap:10px;padding:14px 16px;font-size:14px;line-height:1.4;display:flex}.insight svg{flex-shrink:0;margin-top:2px}.water{flex-direction:column;gap:12px;display:flex}.water-info{justify-content:space-between;align-items:center;display:flex}.water h3 small{color:var(--muted);font-size:13px;font-weight:600}.glasses{flex-wrap:wrap;gap:6px;display:flex}.glass{background:var(--c-blue-soft);border:1.5px dashed var(--c-blue);border-radius:4px 4px 9px 9px;width:26px;height:34px;transition:all .2s}.glass.full{background:var(--c-blue);border:1.5px solid var(--c-blue)}.meals{flex-direction:column;gap:10px;display:flex}.meal{padding:14px 14px 10px}.meal-head{text-align:left;align-items:center;gap:12px;width:100%;display:flex}.meal-emoji{background:color-mix(in srgb, var(--accent) 40%, white);border-radius:14px;place-items:center;width:44px;height:44px;font-size:22px;display:grid}.meal-title{flex-direction:column;flex:1;display:flex}.meal-title small,.meal-kcal small{color:var(--muted);font-size:12px}.meal-kcal b{font-size:17px}.chev{color:var(--muted);transition:all .2s}.chev.down{transform:rotate(90deg)}.meal-bar{background:var(--soft);border-radius:9px;height:6px;margin:12px 0 6px;overflow:hidden}.meal-bar i{background:var(--accent);border-radius:9px;height:100%;transition:width .6s;display:block}.items{padding:4px 0;list-style:none}.items li{border-top:1px solid var(--line);align-items:center;gap:8px;padding:9px 0;font-size:14px;display:flex}.items li>div{flex-direction:column;flex:1;display:flex}.items li small{color:var(--muted);font-size:12px}.items li>span{font-size:13px;font-weight:700}.meal-add{color:#555;justify-content:center;align-items:center;gap:4px;padding:6px;font-size:13px;font-weight:700;display:flex}.weight-mini{background:var(--c-yellow-soft);border:0;justify-content:space-between;align-items:center;display:flex}.weight-mini h3{margin:6px 0 2px;font-size:24px}.bottom-nav{background:var(--ink);z-index:20;border-radius:22px;justify-content:space-around;align-items:center;width:calc(100% - 32px);max-width:448px;height:64px;display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #0000002e}.nav-item{color:#8d8d8d;padding:10px;transition:all .2s;position:relative}.nav-item.on{color:#fff}.nav-item.on:after{content:"";background:#fff;border-radius:2px;width:16px;height:2px;position:absolute;bottom:2px;left:50%;transform:translate(-50%)}.nav-add{background:var(--c-pink);width:60px;height:60px;color:var(--ink);border:6px solid var(--bg);border-radius:50%;place-items:center;margin-top:-34px;transition:all .2s;display:grid;box-shadow:0 6px 16px #f2b5d499}.nav-add:active{transform:scale(.92)rotate(90deg)}.sheet-backdrop{z-index:30;opacity:0;pointer-events:none;background:#14141459;justify-content:center;align-items:flex-end;transition:all .25s;display:flex;position:fixed;inset:0}.sheet-backdrop.open{opacity:1;pointer-events:auto}.sheet{background:var(--bg);border-radius:28px 28px 0 0;flex-direction:column;gap:14px;width:100%;max-width:480px;max-height:92dvh;padding:20px 16px 28px;transition:transform .3s cubic-bezier(.2,.8,.2,1);display:flex;overflow-y:auto;transform:translateY(100%)}.sheet-backdrop.open .sheet{transform:none}.sheet-head{justify-content:space-between;align-items:center;display:flex}.add-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.add-tile{text-align:left;border-radius:20px;flex-direction:column;align-items:flex-start;gap:14px;padding:18px 14px;font-size:14px;font-weight:700;transition:all .15s;display:flex}.add-tile small{color:var(--muted);font-size:11px;font-weight:600;display:block}.add-tile.disabled{opacity:.6}.meal-pick{scrollbar-width:none;gap:6px;display:flex;overflow-x:auto}.meal-pick button{background:var(--card);border:1px solid var(--line);border-radius:99px;flex-shrink:0;padding:8px 12px;font-size:13px;font-weight:600}.meal-pick button.on{background:var(--accent);border-color:var(--accent)}.scanner{flex-direction:column;gap:10px;display:flex}.viewfinder{border-radius:var(--radius);aspect-ratio:4/3.4;background:#222;position:relative;overflow:hidden}.viewfinder video{object-fit:cover;width:100%;height:100%}.frame{border:3px solid #ffffffe6;border-radius:18px;position:absolute;inset:22% 12%;overflow:hidden}.frame i{background:var(--c-pink);height:2px;box-shadow:0 0 12px var(--c-pink);animation:1.8s ease-in-out infinite alternate scan;position:absolute;left:0;right:0}@keyframes scan{0%{top:8%}to{top:92%}}.scan-status{text-align:center;color:#fff;justify-content:center;align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex;position:absolute;bottom:12px;left:0;right:0}.manual-code,.search-box{background:var(--card);border:1px solid var(--line);border-radius:16px;align-items:center;gap:8px;padding:6px 6px 6px 14px;display:flex}.search-box{padding:12px 14px}.manual-code input,.search-box input{background:0 0;border:0;outline:0;flex:1;min-width:0;font-size:15px}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.search{flex-direction:column;gap:6px;display:flex}.food-list{flex-direction:column;gap:6px;padding:0;list-style:none;display:flex}.food-list button{text-align:left;background:var(--card);border:1px solid var(--line);border-radius:16px;align-items:center;gap:12px;width:100%;padding:10px 12px;display:flex}.food-list img,.food-ph{object-fit:cover;border-radius:12px;flex-shrink:0;width:40px;height:40px}.food-ph{background:var(--c-green-soft);place-items:center;font-weight:800;display:grid}.food-ph.big{border-radius:16px;width:60px;height:60px;font-size:24px}.food-list div{flex-direction:column;min-width:0;display:flex}.food-list b{white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.food-list small{color:var(--muted);font-size:12px}.food-head{align-items:center;gap:14px;display:flex}.food-head img{object-fit:contain;background:#fff;border-radius:16px;width:60px;height:60px}.food-head h3{font-size:18px}.kcal-big{letter-spacing:-.04em;font-size:44px;font-weight:800}.kcal-big small{color:var(--muted);font-size:16px}.macro-split{border-radius:99px;gap:3px;height:12px;display:flex;overflow:hidden}.macro-split i{min-width:2px;transition:flex .4s}.macro-legend{color:var(--muted);justify-content:space-between;font-size:12px;display:flex}.macro-legend span{align-items:center;gap:4px;display:flex}.macro-legend b{color:var(--ink)}.macro-legend i{border-radius:50%;width:8px;height:8px}.grams{justify-content:space-between;align-items:center;font-weight:700;display:flex}.stepper{background:var(--card);border:1px solid var(--line);border-radius:99px;align-items:center;gap:4px;padding:4px;display:flex}.stepper button{background:var(--soft);border-radius:50%;width:36px;height:36px;font-size:18px}.stepper input{text-align:center;background:0 0;border:0;outline:0;width:56px;font-size:17px;font-weight:800}.stepper span{color:var(--muted);margin-right:4px;font-size:13px}.quick{gap:6px;display:flex}.quick button{background:var(--card);border:1px solid var(--line);border-radius:12px;flex:1;padding:8px 0;font-size:13px;font-weight:600}.quick button.on{background:var(--ink);color:#fff;border-color:var(--ink)}.habit-row{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.habit-day{flex-direction:column;align-items:center;gap:6px;display:flex}.habit-day small{color:var(--muted);font-size:11px}.check{background:color-mix(in srgb, var(--accent) 22%, white);border-radius:50%;place-items:center;width:34px;height:34px;transition:all .3s;display:grid}.check.ok{background:var(--accent)}.check.future{background:var(--soft);opacity:.6}.bars{grid-template-columns:repeat(7,1fr);gap:10px;height:150px;display:grid;position:relative}.goal-line{z-index:1;pointer-events:none;border-top:1.5px dashed #bbb;margin-bottom:20px;position:absolute;left:0;right:0}.bar-col{flex-direction:column;align-items:center;gap:6px;display:flex}.bar-track{background:var(--soft);border-radius:12px;flex:1;align-items:flex-end;width:100%;display:flex;overflow:hidden}.bar-stack{border-radius:12px;width:100%;transition:height .6s}.bar-col span{color:var(--muted);height:14px;font-size:11px}.bar-col span.today{color:var(--ink);font-weight:800}.tiles{grid-template-columns:1fr 1fr;gap:10px;display:grid}.tile{background:var(--card);border:1px solid var(--line);border-radius:18px;flex-direction:column;gap:2px;padding:12px 14px;display:flex}.tile small{color:var(--muted);font-size:12px}.tile b{letter-spacing:-.02em;font-size:20px}.tile.green{background:var(--c-green-soft);border-color:#0000}.tile.pink{background:var(--c-pink-soft);border-color:#0000}.progress-track{background:var(--soft);border-radius:99px;height:14px;overflow:hidden}.progress-track i{background:linear-gradient(90deg, var(--c-lilac), var(--c-pink));border-radius:99px;height:100%;display:block}.chart{width:100%;height:auto}.target-line{stroke:var(--c-green);stroke-width:2px;stroke-dasharray:5 5}.chart-label{fill:var(--muted);font-family:inherit;font-size:10px}.heatmap{gap:6px;display:flex}.heat-days{grid-template-rows:repeat(7,1fr);gap:3px;display:grid}.heat-days small{color:var(--muted);align-items:center;font-size:9px;line-height:1;display:flex}.heat-grid{flex:1;grid-template-rows:repeat(7,1fr);grid-auto-flow:column;gap:3px;display:grid}.heat-grid i,.heat-legend i{aspect-ratio:1;background:var(--soft);border-radius:4px;display:block}.heat-grid .l1{background:color-mix(in srgb, var(--c-green) 35%, white)}.heat-grid .l2{background:color-mix(in srgb, var(--c-green) 65%, white)}.heat-grid .l3,.heat-legend .l3{background:var(--c-green)}.heat-grid .over,.heat-legend .over{background:var(--c-pink)}.heat-grid .future{border:1px dashed var(--line);background:0 0}.heat-legend{color:var(--muted);gap:14px;margin-top:10px;font-size:11px;display:flex}.heat-legend span{align-items:center;gap:4px;display:flex}.heat-legend i{width:10px}.hbar{grid-template-columns:130px 1fr 40px;align-items:center;gap:8px;padding:5px 0;font-size:13px;display:grid}.hbar div{background:var(--soft);border-radius:99px;height:10px;overflow:hidden}.hbar div i{border-radius:99px;height:100%;display:block}.hbar b{text-align:right}.empty-state{text-align:center;color:var(--muted);padding:40px 20px}.soon{border:0;align-items:flex-start;gap:14px;display:flex}.soon-emoji{font-size:28px}.soon p{color:#555;margin-top:2px;font-size:13px;line-height:1.4}.weight-form{align-items:center;gap:8px;display:flex}.weight-form input{letter-spacing:-.03em;background:0 0;border:0;outline:0;flex:1;width:100%;font-size:32px;font-weight:800}.fields{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px;display:grid}.field{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;font-weight:600;display:flex}.field div{background:var(--soft);border-radius:12px;align-items:center;padding:8px 12px;display:flex}.field input{color:var(--ink);background:0 0;border:0;outline:0;flex:1;width:100%;font-size:16px;font-weight:700}.sync{align-items:center;gap:12px;display:flex}.sync div{flex-direction:column;font-size:14px;display:flex}.sync small{font-size:12px}.demo{background:var(--c-lilac-soft);border:0;flex-direction:column;align-items:flex-start;gap:8px;display:flex}
