@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--brand:#16a34a;--brand-dark:#15803d;--brand-darker:#14532d;--brand-mid:#86efac;--brand-light:#dcfce7;--brand-xlight:#f0fdf4;--energy:#f97316;--energy-light:#fff7ed;--energy-dark:#ea580c;--meal-breakfast:#f59e0b;--meal-lunch:#16a34a;--meal-dinner:#6366f1;--macro-kcal:#f97316;--macro-prot:#6366f1;--macro-carbs:#f59e0b;--macro-fat:#ec4899;--ok:#22c55e;--warn:#f59e0b;--error:#ef4444;--bg:#f7fdf9;--bg-card:#fff;--bg-secondary:#f0fdf4;--bg-tertiary:#fafffe;--text-h:#0f3d1c;--text:#527a60;--text-muted:#8aaf96;--border:#bbf7d0;--border-light:#d1fae5;--border-focus:#86efac;--shadow:#16a34a1a 0 4px 20px -2px, #16a34a0f 0 1px 4px 0;--shadow-card:#0f3d1c14 0 8px 32px -4px, #0f3d1c0a 0 2px 8px 0;--shadow-sm:#16a34a14 0 2px 8px -1px;--shadow-btn:#16a34a59 0 4px 14px -2px;--sans:"Inter", -apple-system, "SF Pro Text", system-ui, "Segoe UI", Roboto, sans-serif;--heading:"Inter", -apple-system, "SF Pro Display", system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;--accent:var(--brand);--accent-light:var(--brand-light);--accent-border:var(--brand-mid);--font-sans:var(--sans);--color-text-primary:var(--text-h);--color-text-secondary:var(--text);--color-background-primary:var(--bg-card);--color-background-secondary:var(--bg-secondary);--color-border-secondary:var(--border);--color-border-tertiary:var(--border);--border-radius-md:14px;--border-radius-lg:20px;--border-radius-xl:28px;font:16px/150% var(--sans);letter-spacing:-.1px;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes splashExit{0%{opacity:1;transform:scale(1)}to{opacity:0;pointer-events:none;transform:scale(1.04)}}@keyframes logoFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes logoPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.9;transform:scale(1.06)}}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}@keyframes barFill{0%{width:0%}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes dotBounce{0%,80%,to{opacity:.4;transform:scale(0)}40%{opacity:1;transform:scale(1)}}@keyframes gradientShift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes searchBounce{0%{transform:translateY(0)scale(1)}to{transform:translateY(-10px)scale(1.12)}}@keyframes searchBar{0%{opacity:.2;transform:scaleY(.4)}to{opacity:1;transform:scaleY(1)}}.anim-fade-in{animation:.4s both fadeIn}.anim-slide-up{animation:.45s both slideUp}.anim-slide-down{animation:.35s both slideDown}.anim-scale-in{animation:.35s both scaleIn}.anim-delay-1{animation-delay:50ms}.anim-delay-2{animation-delay:.1s}.anim-delay-3{animation-delay:.15s}.anim-delay-4{animation-delay:.2s}.anim-delay-5{animation-delay:.25s}.splash-screen{z-index:9999;background:linear-gradient(160deg,#16a34a 0%,#15803d 50%,#14532d 100%);flex-direction:column;justify-content:center;align-items:center;gap:20px;animation:.3s fadeIn;display:flex;position:fixed;inset:0}.splash-screen.exit{animation:.5s forwards splashExit}.splash-logo{animation:2.4s ease-in-out infinite logoFloat}.splash-title{font-family:var(--heading);color:#fff;letter-spacing:-1px;font-size:32px;font-weight:700;animation:.5s .2s both slideUp}.splash-subtitle{color:#ffffffbf;letter-spacing:.2px;font-size:15px;animation:.5s .35s both slideUp}.splash-dots{gap:6px;animation:.5s .6s both fadeIn;display:flex}.splash-dot{background:#fff9;border-radius:50%;width:7px;height:7px}.splash-dot:first-child{animation:1.2s ease-in-out .7s infinite dotBounce}.splash-dot:nth-child(2){animation:1.2s ease-in-out .85s infinite dotBounce}.splash-dot:nth-child(3){animation:1.2s ease-in-out 1s infinite dotBounce}html{overflow-x:hidden}body{background:var(--bg);padding-bottom:env(safe-area-inset-bottom,16px);margin:0;overflow-x:hidden}#root{box-sizing:border-box;flex-direction:column;width:100%;max-width:430px;min-height:100svh;margin:0 auto;display:flex}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:700}h1{letter-spacing:-.9px;margin:20px 0;font-size:30px}h2{letter-spacing:-.3px;margin:0 0 6px;font-size:19px;line-height:120%}p{margin:0}input[type=text],input[type=email],input[type=password],input[type=number],input:not([type]){font-size:16px;font-family:var(--sans);color:var(--text-h);background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--border-radius-md);box-sizing:border-box;appearance:none;outline:none;padding:12px 16px;transition:border-color .15s,box-shadow .15s}input:focus{border-color:var(--brand);box-shadow:0 0 0 3px #16a34a1f}input::placeholder{color:var(--text-muted);opacity:1}select{font-family:var(--sans);color:var(--text-h);background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--border-radius-md);appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2316A34A' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;outline:none;padding:10px 34px 10px 14px;font-size:14px;transition:border-color .15s}select:focus{border-color:var(--brand);box-shadow:0 0 0 3px #16a34a1f}textarea{font-family:var(--sans);color:var(--text-h);background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--border-radius-md);box-sizing:border-box;appearance:none;outline:none;padding:12px 14px;font-size:14px;line-height:1.5;transition:border-color .15s,box-shadow .15s}textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px #16a34a1f}textarea::placeholder{color:var(--text-muted)}button{min-height:44px;font-family:var(--sans);cursor:pointer;-webkit-tap-highlight-color:transparent;font-size:14px;transition:transform .12s,opacity .12s,box-shadow .12s}button:active{transform:scale(.97)}.btn-primary{color:#fff;border-radius:var(--border-radius-md);letter-spacing:-.2px;box-shadow:var(--shadow-btn);background:linear-gradient(135deg,#22c55e,#16a34a);border:none;padding:14px 20px;font-size:15px;font-weight:600}.btn-primary:hover{background:linear-gradient(135deg,#16a34a,#15803d);box-shadow:0 6px 18px -2px #16a34a73}.btn-ghost{background:var(--bg-card);color:var(--text-h);border:1.5px solid var(--border);border-radius:var(--border-radius-md);font-weight:500}.btn-ghost:hover{background:var(--bg-secondary);border-color:var(--brand-mid)}.card{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-card);padding:16px}.macro-bar-fill{animation:.6s cubic-bezier(.34,1.56,.64,1) both barFill}.shimmer{background:linear-gradient(90deg, var(--bg-secondary) 25%, var(--border-light) 50%, var(--bg-secondary) 75%);border-radius:var(--border-radius-md);background-size:400px 100%;animation:1.4s ease-in-out infinite shimmer}
