:root{--bg: #fff6ea;--bg-sunk: #f6ead9;--card: #ffffff;--ink: #2b2320;--muted: #8c7f74;--line: #f0e5d8;--accent: #f28c28;--accent-hi: #f9a94e;--accent-soft: #fde3c8;--water: #4fa8d8;--good: #7cb342;--warn: #e4a11b;--danger: #d9534f;--radius: 20px;--shadow: 0 1px 2px rgba(75, 50, 20, .05), 0 6px 18px rgba(75, 50, 20, .07);--shadow-lift: 0 2px 6px rgba(75, 50, 20, .07), 0 14px 30px rgba(75, 50, 20, .13);--ring: rgba(242, 140, 40, .45);--ease: cubic-bezier(.22, 1, .36, 1);--ease-spring: cubic-bezier(.34, 1.4, .64, 1);--dur-fast: .16s;--dur: .28s;--dur-slow: .46s}*{box-sizing:border-box}html,body{margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior-y:contain}::selection{background:var(--accent-soft);color:var(--ink)}button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}input,select{font:inherit}:focus-visible{outline:3px solid var(--ring);outline-offset:2px;border-radius:10px}.screen{max-width:520px;margin:0 auto;padding:16px 16px calc(84px + env(safe-area-inset-bottom))}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.screen>*{animation:rise var(--dur-slow) var(--ease) both}.screen>*:nth-child(1){animation-delay:0ms}.screen>*:nth-child(2){animation-delay:45ms}.screen>*:nth-child(3){animation-delay:90ms}.screen>*:nth-child(4){animation-delay:.13s}.screen>*:nth-child(5){animation-delay:165ms}.screen>*:nth-child(6){animation-delay:195ms}.screen>*:nth-child(7){animation-delay:.22s}.screen>*:nth-child(n+8){animation-delay:.24s}.screen>.sheet-back{animation:fade-in var(--dur) ease both}.h1{font-size:22px;font-weight:800;margin:8px 0 4px;letter-spacing:-.2px}.muted{color:var(--muted);font-size:14px}.card{background:var(--card);border:1px solid rgba(120,85,45,.06);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;margin:12px 0;transition:box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease)}.row{display:flex;align-items:center;gap:12px}.grow{flex:1}.auth-screen{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;padding-bottom:calc(24px + env(safe-area-inset-bottom))}.auth-hero{margin-bottom:4px}.auth-note{font-size:13px;margin-top:14px}.hero{display:flex;align-items:center;gap:14px;padding:8px 0}.hero .bubble{background:var(--card);border:1px solid rgba(120,85,45,.06);border-radius:16px 16px 16px 4px;box-shadow:var(--shadow);padding:10px 14px;font-size:15px;animation:bubble-in .42s var(--ease-spring) both}@keyframes bubble-in{0%{opacity:0;transform:translate(-8px) scale(.96)}to{opacity:1;transform:none}}.zhora-img{border-radius:50%;object-fit:cover}.zhora-img.breathe{animation:breathe 5.5s ease-in-out infinite}@keyframes breathe{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-3px) rotate(-1deg)}}.bar{height:10px;border-radius:6px;background:var(--bg-sunk);overflow:hidden}.bar>i{display:block;height:100%;border-radius:6px;background:var(--accent);transition:width var(--dur-slow) var(--ease),background-color var(--dur) 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;font-variant-numeric:tabular-nums}.btn{border:none;border-radius:14px;background:linear-gradient(180deg,var(--accent-hi),var(--accent));color:#fff;font-weight:700;padding:12px 18px;width:100%;box-shadow:0 6px 16px #f28c2847;transition:transform var(--dur-fast) var(--ease),box-shadow var(--dur) var(--ease),opacity var(--dur) ease,filter var(--dur) ease}.btn:active:not(:disabled){transform:translateY(1px) scale(.985);box-shadow:0 3px 9px #f28c283d}.btn:disabled{opacity:.45;box-shadow:none;filter:saturate(.6);cursor:default}.btn.ghost{background:var(--accent-soft);color:var(--ink);box-shadow:none}.btn.small{width:auto;padding:8px 14px;font-size:14px;border-radius:12px}.btn.water{background:linear-gradient(180deg,#6cbde6,var(--water));box-shadow:0 6px 16px #4fa8d847}@media(hover:hover){.btn:hover:not(:disabled){box-shadow:var(--shadow-lift)}}.chip{border:none;border-radius:999px;background:var(--accent-soft);color:var(--ink);padding:8px 14px;font-size:14px;font-weight:600;transition:transform var(--dur-fast) var(--ease),background-color var(--dur) ease,color var(--dur) ease}.chip:active{transform:scale(.94)}.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);transition:border-color var(--dur) ease,box-shadow var(--dur) ease}.field input:focus,.field select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px var(--ring)}.error{color:var(--danger);font-size:14px;margin:8px 0;animation:shake .32s ease}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.entry{display:flex;align-items:baseline;gap:8px;padding:8px 0;border-bottom:1px dashed var(--line);overflow:hidden;animation:entry-in .32s var(--ease) both}.entry:last-child{border-bottom:none}.entry .name{flex:1}.entry .kcal{font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}.entry .del{border:none;background:none;color:var(--muted);font-size:16px;padding:2px 6px;border-radius:8px;transition:transform var(--dur-fast) var(--ease),color var(--dur) ease}.entry .del:active{transform:scale(.85);color:var(--accent)}@keyframes entry-in{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:none}}.entry.removing{animation:entry-out .24s var(--ease) forwards}@keyframes entry-out{to{opacity:0;transform:translate(20px);max-height:0;padding:0;margin:0;border-width:0}}.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:#ffffffe6;backdrop-filter:saturate(1.6) blur(14px);-webkit-backdrop-filter:saturate(1.6) blur(14px);border-top:1px solid var(--line);box-shadow:0 -6px 20px #4b32140f;padding:6px 0 calc(8px + env(safe-area-inset-bottom));z-index:40}.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;transition:color var(--dur) ease,transform var(--dur-fast) var(--ease)}.tabbar button:active{transform:scale(.92)}.tabbar button.active{color:var(--accent);font-weight:700}.tabbar .ico{font-size:21px;line-height:1;display:grid;place-items:center;width:46px;height:30px;border-radius:999px;transition:background-color var(--dur) var(--ease),transform var(--dur) var(--ease-spring)}.tabbar button.active .ico{background:var(--accent-soft);transform:translateY(-1px) scale(1.06)}.sheet-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#28190a59;display:flex;align-items:flex-end;z-index:50;animation:fade-in var(--dur) ease both;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.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;box-shadow:0 -12px 40px #28190a38;animation:sheet-up .34s var(--ease) both}@keyframes sheet-up{0%{transform:translateY(28px);opacity:.5}to{transform:none;opacity:1}}.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 var(--line);cursor:pointer;border-radius:10px;transition:background-color var(--dur-fast) ease,transform var(--dur-fast) var(--ease);animation:entry-in .26s var(--ease) both}.food-hit:active{background:var(--accent-soft);transform:scale(.995)}.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:10px}.dash-minis{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.gauge b,.gauge-inner b{font-variant-numeric:tabular-nums}.water-glass-wrap{display:flex;align-items:center;gap:14px}.water-readout{font-size:15px;margin-bottom:8px}.water-readout b{font-size:24px;font-weight:800;font-variant-numeric:tabular-nums}.water-hint{font-size:13px;margin-top:8px}.water-cups{margin-top:12px}.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;transition:border-color var(--dur) ease,transform var(--dur-fast) var(--ease)}.water-glass:active{transform:scale(.96)}.water-glass.done{border-color:var(--good)}.water-glass.done .wg-text{animation:check-pop .52s var(--ease-spring)}@keyframes check-pop{0%{transform:scale(.2);opacity:0}60%{transform:scale(1.25);opacity:1}to{transform:scale(1);opacity:1}}.water-glass.gulp{animation:gulp .42s var(--ease-spring)}@keyframes gulp{0%{transform:scale(1)}35%{transform:scale(.94,1.06)}70%{transform:scale(1.03,.97)}to{transform:scale(1)}}.wg-fill{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--water);transition:transform .62s 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)}.wg-holder{position:relative;flex-shrink:0}.wg-pop{position:absolute;left:50%;top:34px;z-index:2;transform:translate(-50%);font-weight:800;font-size:14px;color:var(--water);text-shadow:0 1px 4px rgba(255,255,255,.9);pointer-events:none;animation:wg-pop .9s var(--ease) forwards}@keyframes wg-pop{0%{opacity:0;transform:translate(-50%,8px) scale(.8)}25%{opacity:1;transform:translate(-50%,-4px) scale(1)}to{opacity:0;transform:translate(-50%,-32px) scale(1)}}.recipe-card{display:flex;gap:12px;align-items:center;cursor:pointer}.recipe-card:active{transform:scale(.99);box-shadow:var(--shadow)}@media(hover:hover){.recipe-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lift)}}.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);transition:border-color var(--dur) ease,box-shadow var(--dur) ease}.about-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px var(--ring)}.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;animation:rise .38s var(--ease) both}.review-list li:nth-child(2){animation-delay:70ms}.review-list li:nth-child(3){animation-delay:.14s}.review-list li:nth-child(4){animation-delay:.21s}.review-list li:nth-child(n+5){animation-delay:.26s}.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}.thinking-dots i{display:inline-block;width:5px;height:5px;margin-left:3px;border-radius:50%;background:currentColor;opacity:.4;animation:dot-blink 1.05s infinite ease-in-out}.thinking-dots i:nth-child(2){animation-delay:.15s}.thinking-dots i:nth-child(3){animation-delay:.3s}@keyframes dot-blink{0%,80%,to{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}.week-bars{margin:14px 0 6px}.week-tracks{position:relative;display:flex;gap:6px;height:88px}.week-bar-track{position:relative;flex:1;height:100%;border-radius:8px;background:var(--bg-sunk);overflow:hidden}.week-goal{position:absolute;left:0;right:0;border-top:1px dashed var(--muted);opacity:.55;pointer-events:none}.week-goal span{position:absolute;right:0;top:-14px;font-size:10px;color:var(--muted);background:var(--card);padding:0 3px}.week-labels{display:flex;gap:6px;margin-top:6px}.week-labels span{flex:1;text-align:center;font-size:11px;color:var(--muted)}.week-labels .now{color:var(--accent);font-weight:800}.week-bar-fill{position:absolute;left:0;right:0;bottom:0;border-radius:8px;transform-origin:bottom;animation:bar-grow .62s var(--ease-spring) both;animation-delay:var(--d, 0ms)}@keyframes bar-grow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.week-bar-fill.ok{background:linear-gradient(180deg,var(--accent-hi),var(--accent))}.week-bar-fill.over{background:linear-gradient(180deg,#f0b83f,var(--warn))}.week-bar-fill.empty{background:#e6dbcd}.week-stats{display:flex;flex-wrap:wrap;gap:14px 18px;margin:10px 0 4px}.week-stats>div{display:flex;flex-direction:column}.week-stats b{font-size:17px;font-variant-numeric:tabular-nums}.week-stats span{font-size:12px}.sign-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.sign-chip{font-size:13.5px;padding:9px 6px;text-align:center;animation:rise .36s var(--ease) both}.sign-chip:nth-child(2){animation-delay:25ms}.sign-chip:nth-child(3){animation-delay:50ms}.sign-chip:nth-child(4){animation-delay:75ms}.sign-chip:nth-child(5){animation-delay:.1s}.sign-chip:nth-child(6){animation-delay:125ms}.sign-chip:nth-child(7){animation-delay:.15s}.sign-chip:nth-child(8){animation-delay:175ms}.sign-chip:nth-child(9){animation-delay:.2s}.sign-chip:nth-child(10){animation-delay:225ms}.sign-chip:nth-child(11){animation-delay:.25s}.sign-chip:nth-child(12){animation-delay:275ms}.horo-text{margin:10px 0 6px;font-size:15px;animation:rise .42s var(--ease) both}.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 var(--ease-spring)}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px) scale(.96)}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)}}.skeleton{position:relative;overflow:hidden;background:var(--bg-sunk);border-radius:12px}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.7),transparent);animation:shimmer 1.5s infinite}@keyframes shimmer{to{transform:translate(100%)}}.sk-line{height:12px;margin:8px 0}.sk-line.w40{width:40%}.sk-line.w60{width:60%}.sk-line.w80{width:80%}.sk-ring{width:124px;height:124px;border-radius:50%}.sk-mini{width:56px;height:56px;border-radius:50%}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
