:root{--bg: #f2efe8;--bg-accent: #ffe3cd;--card: #ffffff;--ink: #1f1b16;--muted: #6d6257;--primary: #1a4d3a;--secondary: #f28f3b;--protein: #1a4d3a;--carbs: #f28f3b;--fat: #b0382a;--stroke: rgba(31, 27, 22, .12);--shadow: 0 20px 50px rgba(31, 27, 22, .12)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:IBM Plex Sans,sans-serif;color:var(--ink);background:radial-gradient(circle at top left,#fff 0%,var(--bg) 42%,var(--bg-accent) 110%),repeating-linear-gradient(135deg,#1f1b1608 0,#1f1b1608 1px,#1f1b1600 1px,#1f1b1600 10px);min-height:100vh}.app{max-width:980px;margin:0 auto;padding:24px 20px 80px;opacity:0;transform:translateY(10px);transition:opacity .42s ease,transform .42s ease}.app.ready{opacity:1;transform:translateY(0)}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.header-actions{display:flex;align-items:center;gap:10px}.limit{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:#ffffffb3;border:1px solid var(--stroke);font-size:13px;color:var(--muted)}.limit-dot{width:10px;height:10px;border-radius:999px;background:linear-gradient(180deg,var(--secondary),#ffb36d);box-shadow:0 0 0 2px #f28f3b33}.logo{display:flex;gap:12px;align-items:center}.logo-mark{font-family:Playfair Display,serif;font-weight:700;background:var(--primary);color:#fff;border-radius:12px;padding:10px 12px;font-size:18px}.logo-title{font-family:Playfair Display,serif;font-size:20px;font-weight:700}.logo-sub{font-size:12px;color:var(--muted)}h1{font-family:Playfair Display,serif;font-size:30px;margin-bottom:8px}h2{font-family:Playfair Display,serif;font-size:22px;margin-bottom:12px}p{color:var(--muted);line-height:1.5}.hero{background:linear-gradient(120deg,#fffaf1,#ffe7d3);border-radius:24px;padding:24px;box-shadow:var(--shadow);margin-bottom:24px;position:relative;overflow:hidden}.hero:after{content:"";position:absolute;inset:-120px -80px auto auto;width:260px;height:260px;background:radial-gradient(circle at 30% 30%,#1a4d3a2e,#1a4d3a00);transform:rotate(18deg)}button{border:none;cursor:pointer;font-family:inherit}.primary{background:var(--primary);color:#fff;padding:12px 20px;border-radius:999px;font-weight:600;margin-top:16px}.secondary{background:var(--secondary);color:#fff;padding:12px 20px;border-radius:999px;font-weight:600}.ghost{background:transparent;color:var(--primary);padding:10px 16px;border-radius:999px;border:1px solid var(--stroke)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:24px}.stat-card{background:var(--card);padding:16px;border-radius:18px;border:1px solid var(--stroke);box-shadow:0 10px 24px #1f1b160f}.stat-value{font-size:22px;font-weight:600}.stat-label{font-size:13px;color:var(--muted)}.recommendations{margin-bottom:24px}.chip{background:#fff;border:1px solid var(--stroke);border-radius:999px;padding:8px 14px;display:inline-block;margin:6px 6px 0 0;font-size:13px}.panel{background:#ffffffc7;border:1px solid var(--stroke);border-radius:24px;padding:18px 18px 16px;margin-bottom:24px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.panel-note{color:var(--muted);font-size:13px;margin-top:10px}.macrobar{margin-top:10px}.macrobar-track{height:14px;border-radius:999px;overflow:hidden;background:#1f1b160f;border:1px solid rgba(31,27,22,.08);display:flex}.macrobar-seg{height:100%;min-width:10px}.macrobar-seg.protein{background:linear-gradient(180deg,#1a4d3af2,#1a4d3ab3)}.macrobar-seg.carbs{background:linear-gradient(180deg,#f28f3bf2,#f28f3ba6)}.macrobar-seg.fat{background:linear-gradient(180deg,#b0382af2,#b0382aa6)}.macrobar-legend{display:flex;gap:12px;margin-top:10px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.legend:before{content:"";width:10px;height:10px;border-radius:999px;display:inline-block;margin-right:6px}.legend.protein:before{background:var(--protein)}.legend.carbs:before{background:var(--carbs)}.legend.fat:before{background:var(--fat)}.meals{display:grid;gap:16px}.meal-card{display:grid;grid-template-columns:120px 1fr auto;gap:16px;background:var(--card);padding:16px;border-radius:20px;border:1px solid var(--stroke);align-items:center;box-shadow:0 16px 40px #1f1b1614}.meal-card img{width:120px;height:90px;object-fit:cover;border-radius:14px}.meal-title{font-weight:600}.meal-macros{color:var(--muted);font-size:13px;margin-top:6px}.meal-rec{margin-top:8px;color:var(--muted);font-size:13px}.upload{background:var(--card);border-radius:24px;padding:24px;border:1px solid var(--stroke);text-align:center}.upload-box{margin-top:16px;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:18px 28px;border-radius:20px;background:#f4f0e7;cursor:pointer}.upload-box input{display:none}.preview{width:100%;margin-top:20px;border-radius:20px;max-height:280px;object-fit:cover}.center{text-align:center;padding:100px 0}.loader{width:56px;height:56px;border-radius:50%;border:4px solid rgba(31,27,22,.15);border-top-color:var(--secondary);animation:spin 1s linear infinite;margin:0 auto 16px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.app.ready .hero,.app.ready .stats,.app.ready .panel,.app.ready .recommendations,.app.ready .meals,.app.ready .upload,.app.ready .result,.app.ready .items,.app.ready .adjust,.app.ready .paywall{animation:rise .52s ease both}.app.ready .stats{animation-delay:60ms}.app.ready .panel{animation-delay:.11s}.app.ready .recommendations{animation-delay:.15s}.app.ready .meals{animation-delay:.18s}.result{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:24px}.result img{width:100%;border-radius:24px;object-fit:cover;max-height:320px}.disclaimer{font-size:13px;color:var(--muted)}.hint{font-size:13px;color:var(--muted);margin-top:10px}.macro-grid{margin-top:16px;display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.items{background:var(--card);border-radius:24px;padding:20px;border:1px solid var(--stroke);margin-bottom:24px}.item{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--stroke)}.item-left{display:flex;flex-direction:column;gap:6px}.item-title{display:flex;align-items:center;gap:10px}.badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:12px;color:#fff;background:linear-gradient(180deg,var(--primary),rgba(26,77,58,.7))}.item:last-child{border-bottom:none}.item-sub{color:var(--muted);font-size:12px;margin-top:4px}.item-macros{font-size:13px;color:var(--muted)}.quick-addons{display:flex;gap:8px;flex-wrap:wrap;margin-top:2px}.chip-btn{background:#ffffffe6;border:1px solid var(--stroke);border-radius:999px;padding:6px 10px;font-size:12px;color:var(--primary)}.chip-btn:hover{border-color:#1a4d3a59}.label-box{margin-top:12px;padding:14px;border-radius:16px;border:1px dashed rgba(31,27,22,.2);background:#ffffffb3}.label-title{font-weight:600;margin-bottom:10px}.label-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.actions{display:flex;gap:12px;flex-wrap:wrap}.adjust{background:var(--card);border-radius:24px;padding:20px;border:1px solid var(--stroke)}.adjust-item{border-bottom:1px solid var(--stroke);padding:16px 0}.adjust-item:last-child{border-bottom:none}.adjust-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.label{font-size:12px;color:var(--muted);margin-bottom:6px}.text-input{width:100%;padding:10px 12px;border-radius:12px;border:1px solid var(--stroke);font-family:inherit}.segment{display:flex;gap:6px;flex-wrap:wrap}.segment-btn,.segment-active{padding:8px 12px;border-radius:999px;border:1px solid var(--stroke);background:#fff;font-size:13px}.segment-active{background:var(--primary);color:#fff;border-color:var(--primary)}.paywall{background:var(--card);padding:24px;border-radius:24px;border:1px solid var(--stroke);text-align:center}.offers{display:grid;gap:10px;margin-top:16px}.error{background:#ffe6e6;color:#842d2d;padding:12px 16px;border-radius:12px;margin-bottom:16px}.empty{color:var(--muted);font-size:14px}@media (max-width: 760px){.result,.meal-card{grid-template-columns:1fr}.meal-card img{width:100%;height:160px}.label-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){.app{transition:none;transform:none;opacity:1}.loader{animation:none}}
