:root{--green:#16a34a;--green-d:#15803d;--green-l:#dcfce7;--orange:#f97316;--bg:#f6faf7;--card:#fff;--text:#14231a;--muted:#6b7a70;--border:#dbe7de;--danger:#dc2626;--tab-h:64px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);color:var(--text);margin:0;font:16px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}h1{margin:0;font-size:1.4rem}button,input,select{font:inherit;color:inherit}.app{min-height:100dvh}main{padding-bottom:calc(var(--tab-h) + env(safe-area-inset-bottom) + 16px)}.page{max-width:560px;padding:calc(16px + env(safe-area-inset-top)) 16px 16px;flex-direction:column;gap:12px;margin:0 auto;display:flex}input,select{border:1px solid var(--border);background:#fff;border-radius:12px;width:100%;min-height:48px;padding:0 14px}input:focus,select:focus,button:focus-visible{outline:2px solid var(--green);outline-offset:1px}button{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:12px;min-height:48px;padding:0 16px;font-weight:500}button:active{transform:scale(.98)}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--green);border-color:var(--green);color:#fff;font-size:1.05rem;font-weight:600}button.primary:active:not(:disabled){background:var(--green-d)}button.small{flex:none;width:auto;min-height:44px}button.link{min-height:44px;color:var(--green-d);background:0 0;border:none;padding:0 4px;font-weight:600}.icon-btn{flex:none;min-width:48px;padding:0}.step{flex:none;min-width:56px;padding:0 10px}.row{align-items:center;display:flex}.row.gap{gap:8px}.row.between{justify-content:space-between;gap:8px}.grow{flex:1}.muted{color:var(--muted);font-size:.9rem}.center{text-align:center}.error{color:var(--danger);margin:0;font-weight:500}.card{background:var(--card);border:1px solid var(--border);border-radius:16px;flex-direction:column;gap:10px;padding:14px;display:flex}.camera-btn{background:var(--green);color:#fff;cursor:pointer;border-radius:16px;justify-content:center;align-items:center;min-height:64px;padding:0 16px;font-size:1.15rem;font-weight:600;display:flex}.camera-btn.secondary{background:var(--green-l);color:var(--green-d);font-size:1rem}.camera-btn:active{filter:brightness(.92)}.preview{object-fit:cover;border-radius:16px;width:100%;max-height:260px}.day-banner{color:#9a3412;background:#fff7ed;border-radius:10px;margin:0;padding:8px 12px;font-size:.9rem}.item .grams{text-align:center;flex:none;width:76px;padding:0 6px}.item .kcal{white-space:nowrap;margin-left:auto}.item .row{flex-wrap:wrap}.notes{background:var(--green-l);border-radius:12px;margin:0;padding:10px 12px;font-size:.92rem}.total{text-align:center;color:var(--green-d);padding:4px 0;font-size:1.5rem;font-weight:700}.daynav{justify-content:space-between;align-items:center;gap:8px;display:flex}.daynav h1{text-align:center;text-transform:capitalize;flex:1}.summary .big,.big{color:var(--green-d);font-size:2.6rem;font-weight:800;line-height:1.1}.big span{color:var(--muted);font-size:1.1rem;font-weight:600}.progress{background:#e5efe8;border-radius:99px;height:14px;overflow:hidden}.progress .bar{background:var(--green);border-radius:99px;height:100%;transition:width .3s}.progress .bar.over{background:var(--orange)}.macros{text-align:center;grid-template-columns:repeat(3,1fr);gap:8px;padding-top:4px;display:grid}.macros div{background:var(--bg);border-radius:12px;flex-direction:column;padding:8px 4px;display:flex}.macros span{color:var(--muted);font-size:.75rem}.meal details{font-size:.92rem}.meal summary{cursor:pointer;min-height:36px;color:var(--muted);align-items:center;display:flex}.meal ul{margin:0;padding:0;list-style:none}.meal li{border-top:1px solid var(--border);justify-content:space-between;gap:8px;padding:6px 0;display:flex}.segmented{background:#e5efe8;border-radius:12px;grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:grid}.segmented button{background:0 0;border:none}.segmented button.active{color:var(--green-d);background:#fff;font-weight:700;box-shadow:0 1px 3px #0002}.list-row{border-top:1px solid var(--border);text-transform:capitalize;padding:6px 0}.list-row:first-child{border-top:none}.chart{gap:4px;height:230px;padding:14px 14px 8px}.chart .plot{flex:1;min-height:0;position:relative}.chart .bars{align-items:stretch;gap:6px;height:100%;display:flex}.chart .bars.labels{flex:none;height:16px}.chart .bars.dense{gap:2px}.chart .bar-wrap{flex:1;align-items:flex-end;min-width:0;display:flex}.chart .bar{background:var(--green);border-radius:4px 4px 0 0;width:100%}.chart .bar.over{background:var(--orange)}.chart small{text-align:center;color:var(--muted);white-space:nowrap;flex:1;min-width:0;font-size:.7rem;overflow:visible}.goal-line{pointer-events:none;border-top:2px dashed #0f172a66;position:absolute;left:0;right:0}.goal-line span{color:var(--muted);background:var(--card);padding:0 2px;font-size:.7rem;position:absolute;top:-18px;right:0}.sk{background:linear-gradient(90deg,#e8f0ea 25%,#f3f8f4 50%,#e8f0ea 75%) 0 0/200% 100%;border-radius:8px;animation:1.2s linear infinite shimmer}.sk-line{height:16px}.sk-big{width:55%;height:48px}.sk-bar{border-radius:99px;height:14px}.sk-chart{height:190px}.w40{width:40%}.w60{width:60%}.w90{width:90%}.skeletons{flex-direction:column;gap:10px;display:flex}.skeletons p{text-align:center;margin:0}@keyframes shimmer{to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.sk{animation:none}}.token-screen{text-align:center;justify-content:center;min-height:100dvh}.token-screen .logo{font-size:3.5rem}.token-screen p{margin:0}.tabbar{z-index:10;border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);background:#fff;grid-template-columns:repeat(3,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar button{min-height:var(--tab-h);color:var(--muted);background:0 0;border:none;border-radius:0;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:.75rem;display:flex}.tabbar button.active{color:var(--green-d);font-weight:700}.tabbar .ico{font-size:1.3rem;line-height:1}.tabbar .plus{background:var(--green);color:#fff;text-align:center;border-radius:50%;width:40px;height:40px;margin-top:-14px;font-size:1.7rem;line-height:38px;box-shadow:0 2px 8px #16a34a66}.tabbar .add-tab.active .plus{background:var(--green-d)}
