:root{--c-vegetable: #5BB85B;--c-fruit: #F2703A;--c-carbs: #E2A93B;--c-protein: #C2566E;--c-drink: #4AA8D8;--c-sometimes: #9C7CC4;--c-bg: #FFF8E7;--c-bg-deep: #FFEFC8;--c-card: #FFFFFF;--c-ink: #3A2E23;--c-ink-soft: #7C6A57;--c-primary: #4CAF50;--c-primary-dark: #3A8C3E;--c-accent: #FF9F43;--c-star: #FFC93C;--c-error: #E4694A;--r-sm: 12px;--r-md: 20px;--r-lg: 32px;--shadow: 0 4px 0 rgba(58, 46, 35, .15);--shadow-soft: 0 6px 18px rgba(58, 46, 35, .12);--touch: 48px;--sec-1: #FFF8E7;--sec-2: #FFEFC8;--sec-3: #F6D294;--sec-accent: #B9762A;--sec-ink: #3A2E23}@property --sec-1{syntax: "<color>"; inherits: true; initial-value: #FFF8E7;}@property --sec-2{syntax: "<color>"; inherits: true; initial-value: #FFEFC8;}@property --sec-3{syntax: "<color>"; inherits: true; initial-value: #F6D294;}@property --sec-accent{syntax: "<color>"; inherits: true; initial-value: #B9762A;}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;overscroll-behavior:none}body{font-family:Nunito,Trebuchet MS,Segoe UI,system-ui,sans-serif;color:var(--c-ink);background:var(--c-bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}#app{min-height:100%;min-height:100dvh;display:flex;flex-direction:column}h1,h2,h3{margin:0 0 .4em;line-height:1.15;font-weight:800}h1{font-size:clamp(1.7rem,7vw,2.6rem)}h2{font-size:clamp(1.3rem,5.5vw,1.9rem)}h3{font-size:clamp(1.05rem,4.5vw,1.3rem)}p{margin:0 0 .8em;line-height:1.5}button{font-family:inherit}.screen{flex:1;display:flex;flex-direction:column;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));max-width:720px;width:100%;margin:0 auto}.screen--center{justify-content:center;align-items:center;text-align:center}.screen__head{display:flex;align-items:center;gap:10px;margin-bottom:12px}.screen__title{flex:1;margin:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--touch);padding:12px 26px;border:none;border-radius:999px;background:var(--c-primary);color:#fff;font-size:1.1rem;font-weight:800;cursor:pointer;box-shadow:0 4px 0 var(--c-primary-dark);transition:transform .08s ease,box-shadow .08s ease,filter .15s ease}.btn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--c-primary-dark)}.btn:disabled{opacity:.45;box-shadow:none;cursor:default;transform:none}.btn--big{font-size:1.35rem;padding:18px 40px}.btn--accent{background:var(--c-accent);box-shadow:0 4px #d77e28}.btn--accent:active{box-shadow:0 1px #d77e28}.btn--ghost{background:#fff;color:var(--c-ink);box-shadow:0 4px #3a2e232e}.btn--ghost:active{box-shadow:0 1px #3a2e232e}.btn--icon{width:var(--touch);height:var(--touch);min-height:var(--touch);padding:0;font-size:1.4rem;background:#fff;color:var(--c-ink);box-shadow:0 3px #3a2e2326;flex:none}.card{background:var(--c-card);border-radius:var(--r-md);padding:16px;box-shadow:var(--shadow-soft)}.chip{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;background:#fff;font-size:.85rem;font-weight:700;color:var(--c-ink-soft)}@keyframes pop{0%{transform:scale(.7);opacity:0}70%{transform:scale(1.08);opacity:1}to{transform:scale(1)}}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes shakeX{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.anim-pop{animation:pop .35s cubic-bezier(.2,.9,.3,1.3) both}.anim-bob{animation:bob 2.4s ease-in-out infinite}.anim-fade-up{animation:fadeUp .4s ease both}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.route-enter-active{transition:opacity .25s ease,transform .25s ease}.route-leave-active{transition:opacity .15s ease;position:absolute;top:0;right:0;bottom:0;left:0}.route-enter-from{opacity:0;transform:translateY(12px)}.route-leave-to{opacity:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
