:root{--bg: #050505;--card: #111111;--border: #222222;--text: #FFFFFF;--text-muted: #8E8E93;--accent: #6893EF;--accent-dim: rgba(104, 147, 239, .15);--green: #65AA7B;--green-dim: rgba(101, 170, 123, .15);--red: #FF453A;--yellow: #F4C55F;--protein: #E98C69;--carbs: #65AA7B;--fat: #F4C55F;--kcal-color: #6893EF;--radius: 24px;--radius-sm: 18px;--radius-pill: 999px;--font: "SF Pro Display", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:var(--bg);color:var(--text);font-family:var(--font);overscroll-behavior:none}#root{display:flex;flex-direction:column;min-height:100dvh}button{font-family:var(--font);cursor:pointer;border:none;background:none;color:inherit}input,textarea,select{font-family:var(--font);background:var(--card);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 16px;font-size:15px;outline:none;width:100%;-webkit-appearance:none}input:focus,textarea:focus,select:focus{border-color:var(--accent)}input::placeholder,textarea::placeholder{color:var(--text-muted)}.chip{display:inline-flex;align-items:center;padding:4px 12px;border-radius:var(--radius-pill);font-size:12px;font-weight:600;letter-spacing:.02em;background:var(--card);border:1px solid var(--border);color:var(--text-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:12px 20px;border-radius:var(--radius-sm);font-size:15px;font-weight:600;transition:opacity .15s;cursor:pointer;border:none}.btn:active{opacity:.7}.btn-primary{background:var(--accent);color:#fff}.btn-ghost{background:var(--card);color:var(--text);border:1px solid var(--border)}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideDown{0%{transform:translateY(0);opacity:1}to{transform:translateY(100%);opacity:0}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}
