:root{--bg: #fff6ea;--card: #ffffff;--ink: #2b2320;--muted: #8c7f74;--accent: #f28c28;--accent-soft: #fde3c8;--water: #4fa8d8;--good: #7cb342;--warn: #e4a11b;--danger: #d9534f;--radius: 20px;--shadow: 0 2px 12px rgba(75, 50, 20, .08)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}button{font:inherit;cursor:pointer}input,select{font:inherit}.screen{max-width:520px;margin:0 auto;padding:16px 16px calc(84px + env(safe-area-inset-bottom))}.h1{font-size:22px;font-weight:800;margin:8px 0 4px}.muted{color:var(--muted);font-size:14px}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;margin:12px 0}.row{display:flex;align-items:center;gap:12px}.grow{flex:1}.hero{display:flex;align-items:center;gap:14px;padding:8px 0}.hero .bubble{background:var(--card);border-radius:16px 16px 16px 4px;box-shadow:var(--shadow);padding:10px 14px;font-size:15px}.bar{height:10px;border-radius:6px;background:#f1e7da;overflow:hidden}.bar>i{display:block;height:100%;border-radius:6px;background:var(--accent);transition:width .4s ease}.bar.over>i{background:var(--danger)}.bar.water>i{background:var(--water)}.bar.good>i{background:var(--good)}.bar-label{display:flex;justify-content:space-between;font-size:13px;margin:8px 0 4px}.bar-label b{font-weight:700}.btn{border:none;border-radius:14px;background:var(--accent);color:#fff;font-weight:700;padding:12px 18px;width:100%}.btn:disabled{opacity:.5}.btn.ghost{background:var(--accent-soft);color:var(--ink)}.btn.small{width:auto;padding:8px 14px;font-size:14px;border-radius:12px}.btn.water{background:var(--water)}.chip{border:none;border-radius:999px;background:var(--accent-soft);color:var(--ink);padding:8px 14px;font-size:14px;font-weight:600}.chip.active{background:var(--accent);color:#fff}.field{margin:10px 0}.field label{display:block;font-size:13px;color:var(--muted);margin-bottom:4px}.field input,.field select{width:100%;padding:12px 14px;border:1.5px solid #eadfd2;border-radius:12px;background:#fff;color:var(--ink)}.field input:focus,.field select:focus{outline:none;border-color:var(--accent)}.error{color:var(--danger);font-size:14px;margin:8px 0}.entry{display:flex;align-items:baseline;gap:8px;padding:8px 0;border-bottom:1px dashed #f0e5d8}.entry:last-child{border-bottom:none}.entry .name{flex:1}.entry .kcal{font-weight:700;white-space:nowrap}.entry .del{border:none;background:none;color:var(--muted);font-size:16px;padding:2px 6px}.meal-title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin:14px 0 2px}.tabbar{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;background:#fffffff0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid #f0e5d8;padding:8px 0 calc(8px + env(safe-area-inset-bottom))}.tabbar button{border:none;background:none;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:11px;color:var(--muted);min-width:72px}.tabbar button.active{color:var(--accent);font-weight:700}.tabbar .ico{font-size:22px}.sheet-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#28190a59;display:flex;align-items:flex-end;z-index:50}.sheet{background:var(--bg);width:100%;max-width:520px;margin:0 auto;border-radius:24px 24px 0 0;padding:16px 16px calc(16px + env(safe-area-inset-bottom));max-height:86vh;overflow-y:auto}.sheet .grip{width:44px;height:5px;border-radius:3px;background:#dccdba;margin:0 auto 12px}.food-hit{display:flex;align-items:baseline;gap:8px;padding:10px 4px;border-bottom:1px dashed #f0e5d8;cursor:pointer}.food-hit .approx{color:var(--muted);font-size:12px}.center{text-align:center}.spacer{height:8px}.row.wrap{flex-wrap:wrap;gap:8px}.gauge{position:relative;display:flex;flex-direction:column;align-items:center}.gauge-inner{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;line-height:1.15}.gauge-label{font-size:12px;color:var(--muted);font-weight:600;margin-top:4px}.dash{display:flex;align-items:center;justify-content:space-between;gap:12px}.dash-minis{display:flex;gap:10px}.gauge b,.gauge-inner b{font-variant-numeric:tabular-nums}.water-glass-wrap{display:flex;align-items:center;gap:14px}.water-glass{position:relative;overflow:hidden;width:64px;height:96px;flex-shrink:0;border:3px solid var(--water);border-top-width:2px;border-radius:8px 8px 18px 18px;background:#eaf5fb;padding:0;cursor:pointer}.water-glass.done{border-color:var(--good)}.wg-fill{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--water);transition:transform .5s cubic-bezier(.23,1,.32,1)}.wg-wave{position:absolute;top:-6px;left:-50%;width:200%;height:12px;background:radial-gradient(circle at 8px -2px,transparent 8px,var(--water) 8px);background-size:24px 12px;animation:wg-slosh 1.8s linear infinite}@keyframes wg-slosh{0%{transform:translate(0)}to{transform:translate(24px)}}.wg-text{position:relative;z-index:1;display:grid;place-items:center;height:100%;font-weight:800;font-size:15px;color:var(--ink);text-shadow:0 1px 3px rgba(255,255,255,.7)}.recipe-card{display:flex;gap:12px;align-items:center;cursor:pointer}.recipe-img{width:76px;height:76px;border-radius:12px;object-fit:cover;flex-shrink:0;background:var(--accent-soft)}.recipe-hero{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:16px;margin-bottom:8px;background:var(--accent-soft)}.about-input{width:100%;padding:12px 14px;resize:vertical;font:inherit;border:1.5px solid #eadfd2;border-radius:12px;background:#fff;color:var(--ink)}.about-input:focus{outline:none;border-color:var(--accent)}.cup-input{width:64px;padding:6px 10px;border:1.5px solid #eadfd2;border-radius:999px;background:#fff}.review-card .review-advice{font-weight:600;margin:10px 0 6px}.review-list{margin:6px 0;padding-left:4px;list-style:none;font-size:14px}.review-list.plan{padding-left:20px;list-style:decimal}.review-list li{margin:3px 0}.review-list.good li{color:var(--good)}.review-moto{color:var(--muted);font-style:italic;margin:10px 0 6px}.review-error{color:var(--danger);font-size:14px;margin:8px 0}.mini-toast{background:var(--good);color:#fff;font-weight:700;font-size:14px;border-radius:12px;padding:8px 14px;margin-bottom:10px;animation:toast-in .25s ease}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.grams-inline{width:64px;padding:6px 10px;text-align:right;border:1.5px solid #eadfd2;border-radius:10px;background:#fff}.sniff{animation:sniff 1.1s ease-in-out infinite}@keyframes sniff{0%,to{transform:translate(0)}25%{transform:translate(2px)}75%{transform:translate(-2px)}}@media(prefers-reduced-motion:reduce){.wg-wave,.sniff{animation:none}.wg-fill,.bar>i{transition:none}}
