:root{--bg: #f6f7f5;--card: #ffffff;--text: #1b1f1c;--muted: #6b726d;--line: #e3e6e2;--accent: #1f6f4a;--accent-soft: #d6ebe0;--warm: #c9772b;--warm-soft: #f6e3cf;--cool: #6b8fb8;--error: #b3261e;color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #111412;--card: #1b1f1c;--text: #e8ebe8;--muted: #98a09a;--line: #2c322e;--accent: #5cc08b;--accent-soft: #23402f;--warm: #e39a55;--warm-soft: #46321f;--cool: #8fb0d6}}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font:16px/1.4 -apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;-webkit-text-size-adjust:100%}main{max-width:560px;margin:0 auto;padding:calc(env(safe-area-inset-top) + 8px) 16px calc(env(safe-area-inset-bottom) + 84px)}h1{font-size:1.35rem;margin:0;text-transform:capitalize}h2{font-size:1rem;margin:0 0 8px}p{margin:6px 0}button{font:inherit;color:inherit}.muted{color:var(--muted)}.small{font-size:.85rem}.center{text-align:center}.error{color:var(--error)}.card{background:var(--card);border-radius:14px;padding:14px 16px;margin:12px 0;border:1px solid var(--line)}.daynav{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px}.daynav button{width:44px;height:44px;border:0;border-radius:22px;background:var(--card);font-size:1.5rem;line-height:1}.daynav button:disabled{opacity:.3}.hero .big{font-size:2.4rem;font-weight:700;letter-spacing:-.02em}.hero .big small{font-size:1rem;font-weight:400;color:var(--muted)}.bar{display:block;height:8px;border-radius:4px;background:var(--line);overflow:hidden;margin:8px 0}.bar .fill{display:block;height:100%;background:var(--accent);border-radius:4px}.macro{display:grid;grid-template-columns:5.5rem 1fr 6.5rem;align-items:center;gap:10px}.macro .bar{margin:6px 0}.macro .val{font-variant-numeric:tabular-nums;color:var(--muted);font-size:.9rem;text-align:right}.entry .row{display:grid;grid-template-columns:3rem 1fr auto;gap:8px;width:100%;padding:8px 0;border:0;border-top:1px solid var(--line);background:none;text-align:left}.entry .time{color:var(--muted);font-variant-numeric:tabular-nums}.entry .kcal{font-variant-numeric:tabular-nums}.entry .tag{color:var(--accent);font-size:.8rem}.items{list-style:none;margin:0 0 8px 3.5rem;padding:0;color:var(--muted);font-size:.9rem}.items li{display:flex;justify-content:space-between;gap:8px}.segmented{display:flex;background:var(--line);border-radius:10px;padding:2px;margin:12px 0}.segmented button{flex:1;border:0;background:none;padding:8px;border-radius:8px}.segmented button.on{background:var(--card);font-weight:600}.chart{width:100%;height:auto;display:block}.chart .ok{fill:var(--accent)}.chart .over{fill:var(--warm)}.chart .target{stroke:var(--muted);stroke-dasharray:4 4;stroke-width:1}.stats{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stat{display:flex;flex-direction:column}.stat strong{font-size:1.15rem}.batch.old{border-color:var(--warm)}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;text-align:center}.calendar .dow{color:var(--muted);font-size:.8rem}.calendar .day{aspect-ratio:1;border:0;border-radius:50%;background:none;font-variant-numeric:tabular-nums}.calendar .day:disabled{opacity:.35}.calendar .day.today{outline:2px solid var(--text)}.calendar .day.logged{background:var(--line)}.calendar .day.near,.legend i.near{background:var(--accent-soft)}.calendar .day.under,.legend i.under{background:color-mix(in srgb,var(--cool) 30%,transparent)}.calendar .day.over,.legend i.over{background:var(--warm-soft)}.legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-left:8px}.tabs{position:fixed;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(4,1fr);background:var(--card);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.tabs a{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0;color:var(--muted);text-decoration:none;font-size:.72rem}.tabs a.on{color:var(--accent)}.tabs .icon{font-size:1.1rem}.login{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:80vh;text-align:center}button.primary{background:var(--accent);color:#fff;border:0;border-radius:12px;padding:12px 28px;font-weight:600;margin-top:16px}button.link{display:block;margin:24px auto 0;border:0;background:none;color:var(--muted);text-decoration:underline}
