:root{--bg: #0f1512;--surface: #1a221d;--surface2: #242e27;--border: #2f3b33;--text: #eef4ef;--muted: #8ba295;--accent: #4ade80;--accent-dark: #16a34a;--danger: #f87171;--protein: #60a5fa;--carbs: #fbbf24;--fat: #f472b6}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;top:0;left:0;right:0;height:env(safe-area-inset-top,0px);background:#0f1512e0;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);z-index:40}button{font:inherit;color:inherit;background:var(--surface2);border:1px solid var(--border);border-radius:12px;padding:10px 14px;cursor:pointer}button:active{transform:scale(.98)}button.primary{background:var(--accent-dark);border-color:var(--accent-dark);font-weight:600}button.wide{width:100%;margin-top:12px}button:disabled{opacity:.4}input{font:inherit;color:var(--text);background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:10px 12px;width:100%}input:focus{outline:2px solid var(--accent-dark);border-color:transparent}select{font:inherit;color:var(--text);background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:10px 12px;width:100%}label{display:block;font-size:14px;color:var(--muted);margin-bottom:12px}label input,label .seg,label .stack,label .chips{margin-top:6px}h1{font-size:28px}h2{font-size:21px;margin-bottom:12px}h3{font-size:16px;margin:14px 0 8px}.muted{color:var(--muted)}.small{font-size:12px}.center{text-align:center}.over{color:var(--danger)}.app{max-width:520px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column}main{flex:1;padding-bottom:90px}.view{padding:calc(18px + env(safe-area-inset-top,0px)) 16px 18px}.tabbar{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:520px;display:flex;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);z-index:10;transition:transform .2s ease}.tabbar.kb-hidden{transform:translate(-50%) translateY(130%);pointer-events:none}.tabbar button{flex:1;background:none;border:none;border-radius:0;display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 0 8px;font-size:11px;color:var(--muted)}.tabbar button.on{color:var(--accent)}.tab-icon{display:flex;align-items:center;justify-content:center;height:22px}.tabbar .tab-plus{flex:0 0 58px;height:58px;margin-top:-18px;border-radius:50%;background:var(--accent-dark);border:4px solid var(--bg);color:var(--text);font-size:30px;font-weight:300;padding:0;align-self:flex-start}.day-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.day-nav h2{margin:0;text-transform:capitalize}.day-nav button{width:42px;font-size:20px}.ring{display:block;width:210px;margin:0 auto}.ring-big{font-size:38px;font-weight:700;fill:var(--text)}.ring-small{font-size:13px;fill:var(--muted)}.ring-left{font-size:13px;fill:var(--accent)}.ring-over{font-size:13px;fill:var(--danger)}.macros{display:flex;flex-direction:column;gap:10px;margin:8px 0 16px}.macro-head{display:flex;justify-content:space-between;font-size:13px;color:var(--muted);margin-bottom:4px}.bar{height:8px;background:var(--surface2);border-radius:4px;overflow:hidden}.bar-fill{height:100%;border-radius:4px;transition:width .4s ease}.training-row{display:flex;flex-direction:column;gap:8px;margin-bottom:14px;font-size:14px}.seg{display:flex;gap:6px}.seg button{flex:1;padding:8px 6px;font-size:13px}.seg button.on{background:var(--accent-dark);border-color:var(--accent-dark);font-weight:600}.tip{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:10px;padding:10px 12px;font-size:13px;color:var(--muted);margin-bottom:14px}.missed-toggle{display:block;width:100%;text-align:left;background:none;border:1px dashed var(--border);color:var(--muted);font-size:13px;padding:8px 12px;margin-bottom:12px}.missed-toggle.on{border-color:var(--accent);border-style:solid;color:var(--text);background:#4ade800f}.tip-action{display:inline-block;margin-top:6px;background:var(--accent-dark);border:none;color:var(--text);font-size:13px;font-weight:600;padding:6px 12px;border-radius:8px}.cardio-box{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:10px 12px 6px;margin-bottom:14px}.cardio-box .qty{margin:6px 0}.cardio-box .add-to-meal{display:block;margin:0 auto}.empty{padding:30px 0}.meal{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:12px 14px;margin-bottom:12px}.meal-head{display:flex;justify-content:space-between;align-items:center}.meal-head h3{margin:0}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}.entry{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid var(--border);animation:rise .28s ease}.entry:last-of-type{border-bottom:none}.entry-name{display:block;font-size:14px}.entry-detail{display:block;font-size:12px;color:var(--muted)}.entry-right{display:flex;align-items:center;gap:10px}.entry-kcal{font-weight:600;font-size:14px}.del{background:none;border:none;color:var(--muted);font-size:13px;padding:6px}.add-to-meal{background:none;border:none;color:var(--accent);font-size:13px;padding:8px 0 2px}.fab{position:fixed;bottom:calc(74px + env(safe-area-inset-bottom));right:calc(50% - 250px);width:58px;height:58px;border-radius:50%;background:var(--accent-dark);border:none;font-size:30px;font-weight:300;box-shadow:0 4px 16px #0006;z-index:11}@media (max-width: 540px){.fab{right:18px}}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:20;display:flex;align-items:flex-end;justify-content:center}.sheet{background:var(--surface);border-radius:20px 20px 0 0;width:100%;max-width:520px;max-height:86dvh;overflow-y:auto;padding:10px 16px calc(20px + env(safe-area-inset-bottom))}.sheet-handle{width:40px;height:4px;border-radius:2px;background:var(--border);margin:4px auto 12px}.sheet.expanded{height:100dvh;max-height:100dvh;border-radius:0;padding-top:calc(10px + env(safe-area-inset-top,0px))}.search-row{display:flex;gap:8px;align-items:center;position:sticky;top:0;background:var(--surface);padding:2px 0 8px;z-index:2}.search{font-size:16px;flex:1;margin-bottom:0}.sheet-close{width:42px;height:42px;border-radius:50%;padding:0;font-size:16px;color:var(--muted);flex-shrink:0}.list{display:flex;flex-direction:column}.food-row{display:flex;justify-content:space-between;align-items:center;gap:8px;background:none;border:none;border-bottom:1px solid var(--border);border-radius:0;padding:11px 2px;text-align:left}.food-name{font-size:14px}.food-kcal{font-size:12px;color:var(--muted);white-space:nowrap}.chips{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}.chip{font-size:13px;padding:8px 12px;border-radius:999px}.chip.on{background:var(--accent-dark);border-color:var(--accent-dark)}.chip-kcal{color:var(--muted);font-size:11px;margin-left:4px}.chip.on .chip-kcal{color:#ffffffbf}.detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.detail-head h3{margin:4px 0 12px}.fav{background:none;border:none;font-size:22px}.qty{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0}.qty>button{width:52px;height:44px;font-size:22px}.qty>span{text-align:center;font-size:15px}.grams-input{width:76px;text-align:center;font-size:16px;display:inline-block}.macros-preview{display:flex;justify-content:space-between;background:var(--surface2);border-radius:10px;padding:10px 14px;font-size:13px;margin-bottom:14px}.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}.onboarding{max-width:440px;margin:0 auto;padding:calc(40px + env(safe-area-inset-top,0px)) 20px 40px}.ob-header{text-align:center;margin-bottom:24px}.logo{font-size:52px;display:block}.card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:18px 16px;margin-bottom:14px}.card h2{font-size:18px}.stack{display:flex;flex-direction:column;gap:8px}.option{text-align:left;font-size:14px}.option.on{border-color:var(--accent);background:#4ade8014}.preview{background:var(--surface2);border-radius:12px;padding:12px 14px;font-size:13px;margin:14px 0;display:flex;flex-direction:column;gap:6px}.dots{display:flex;justify-content:center;gap:8px;margin-top:8px}.dots span{width:8px;height:8px;border-radius:50%;background:var(--border)}.dots span.on{background:var(--accent)}.week-chart{display:flex;gap:8px;height:170px;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px 12px 8px}.week-col{flex:1;display:flex;flex-direction:column;align-items:center}.week-bar-area{position:relative;flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center}.week-bar{width:60%;max-width:26px;background:var(--accent-dark);border-radius:5px 5px 0 0}.week-bar.over{background:var(--danger)}.week-bar.empty{background:var(--surface2)}.week-target{position:absolute;left:0;right:0;border-top:2px dashed var(--muted);opacity:.5}.week-day{font-size:11px;color:var(--muted);margin-top:6px;text-align:center}.week-day em{display:block;font-style:normal;font-size:10px}.week-day.today{color:var(--accent);font-weight:700}.week-train{font-size:10px}.stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.stat{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px;text-align:center}.stat strong{display:block;font-size:20px}.stat span{font-size:12px;color:var(--muted)}.day-toggle{width:100%;display:flex;justify-content:space-between;align-items:center;background:none;border:none;padding:4px 0;font-size:15px}.plan-compare{display:flex;flex-direction:column;gap:5px;background:var(--surface2);border-radius:10px;padding:10px 12px;font-size:13px;margin:6px 0 10px}.plan-meal{border-top:1px solid var(--border);padding:8px 0 4px;margin-top:8px}.recipe-name{font-size:13px;color:var(--accent);margin:4px 0 2px}.recipe-steps{margin:6px 0 8px;padding:10px 12px 10px 28px;background:var(--surface2);border-radius:10px;font-size:13px;color:var(--text);display:flex;flex-direction:column;gap:7px}.meal-actions{display:flex;align-items:center;gap:8px}.swap{background:none;border:1px solid var(--border);border-radius:8px;padding:3px 8px;font-size:13px}.recipe-ingredients{background:var(--surface2);border-radius:10px;padding:8px 12px;margin:6px 0}.recipe-ingredients .entry{border-bottom:none}.cooked-toggle{display:block;background:none;border:1px dashed var(--border);border-radius:8px;color:var(--muted);font-size:12px;padding:4px 10px;margin:6px 0 2px}.cooked-toggle.on{border-style:solid;border-color:var(--accent);color:var(--accent)}.swap-item{background:none;border:none;color:var(--muted);font-size:15px;padding:2px 6px}.chips.picker{background:var(--surface2);border-radius:10px;padding:8px;margin:2px 0 8px}.replan{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:4px 12px 8px;margin-bottom:14px}.guided-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:8px 0 4px;font-size:15px}.next-actions{display:flex;gap:8px;margin:4px 0}.qty-edit-btn{display:block;background:none;border:none;padding:0;font-size:12px;color:var(--muted);text-align:left;text-decoration:underline dotted;text-underline-offset:3px}.qty-mini{margin:2px 0 8px}.qty-mini .grams-input{width:74px}.reg-row{display:flex;align-items:center;gap:6px;margin-top:6px}.reg-row .chip{padding:5px 12px}.reg-btn{display:block;width:100%;margin-top:8px;background:var(--accent-dark);border-color:var(--accent-dark);font-weight:600;font-size:14px;padding:11px}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(84px + env(safe-area-inset-bottom));background:var(--surface2);border:1px solid var(--accent-dark);border-radius:12px;padding:10px 14px;font-size:14px;display:flex;align-items:center;gap:12px;z-index:30;box-shadow:0 6px 20px #00000073;animation:rise .25s ease;max-width:90%;white-space:nowrap;overflow:hidden}.toast button{background:none;border:none;color:var(--accent);font-weight:600;padding:0;text-decoration:underline}.next-actions button{flex:1;font-size:13px;padding:8px 6px}.replan-toggle{width:100%;text-align:left;background:none;border:none;font-size:14px;padding:8px 0;color:var(--accent)}.replan-body{font-size:13px;display:flex;flex-direction:column;gap:6px;padding-bottom:4px}.replan-body>p{margin:0}.coach-card{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:12px;padding:10px 12px;margin-bottom:14px;display:flex;flex-direction:column;gap:8px;font-size:13px;color:var(--muted)}.coach-card .coach-title{color:var(--text);font-size:14px}.coach-card p{margin:0}.coach-head{width:100%;display:flex;justify-content:space-between;align-items:center;gap:8px;background:none;border:none;padding:0;text-align:left}.config-line{display:inline-flex;align-items:center;gap:6px}.config-line svg{color:var(--muted)}strong.config-line svg,.coach-title svg,.guided-head svg{color:var(--accent)}.cooked-mark{color:var(--accent)!important}.hint{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0}.hint-x{background:none;border:none;color:var(--muted);font-size:12px;padding:2px 6px;flex-shrink:0}.day-config{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:10px 12px;margin-bottom:14px}.config-summary{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px;flex-wrap:wrap}.config-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.config-open{display:flex;flex-direction:column;gap:4px}.config-open .link-btn{align-self:center;padding:6px}.meal-done{opacity:.62;background:#151b17;border-color:#242e27;transition:opacity .2s ease}.meal-done.open{opacity:1;background:var(--surface);border-color:var(--border)}.done-check{color:var(--accent);margin-right:2px}.meal-toggle{width:100%;display:flex;justify-content:space-between;align-items:center;gap:8px;background:none;border:none;padding:2px 0;text-align:left}.meal-toggle h3{margin:0}.coach{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--muted);border-radius:10px;padding:10px 12px;font-size:13px;margin:10px 0 14px;display:flex;flex-direction:column;gap:5px}.coach p{margin:0}.coach-ok{border-left-color:var(--accent)}.coach-adjust{border-left-color:var(--carbs)}.coach-wait{border-left-color:var(--muted)}.link-btn{background:none;border:none;color:var(--accent);padding:0;font-size:12px;text-decoration:underline}.review{display:flex;flex-direction:column;gap:8px}.review-item{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--muted);border-radius:10px;padding:9px 12px}.review-item strong{font-size:14px}.review-item p{margin:3px 0 0;font-size:13px;color:var(--muted)}.review-ok{border-left-color:var(--accent)}.review-warn{border-left-color:var(--carbs)}.review-info{border-left-color:var(--protein)}.cat-block{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:8px 12px;margin-bottom:8px}.sched-row{display:flex;align-items:center;gap:10px}.sched-row>span{width:34px;font-size:13px;color:var(--muted);flex-shrink:0}.sched-row .seg{flex:1}.plan-meal .meal-head{font-size:14px}.chart{width:100%;margin-top:8px}.chart-label{font-size:10px;fill:var(--muted)}.chart-grid{stroke:var(--border);stroke-dasharray:3 4}.history{margin-top:16px}.history summary{color:var(--muted);font-size:14px;cursor:pointer;padding:8px 0}
