:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#163024;background:#f6fbf4;font-synthesis:none;line-height:1.5;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--leaf: #2d7a4e;--leaf-deep: #18573a;--mint: #dff5df;--lime: #b7e26a;--berry: #bd3f65;--aqua: #4fc3b0;--ink: #163024;--muted: #5d7166;--panel: rgba(255, 255, 255, .86);--border: rgba(45, 122, 78, .18);--shadow: 0 24px 90px rgba(30, 83, 58, .14)}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,textarea{font:inherit}button{border:0}.app-shell{position:relative;display:grid;min-height:100vh;overflow:hidden;padding:40px 22px;background:radial-gradient(circle at 22% 18%,rgba(79,195,176,.18),transparent 28%),radial-gradient(circle at 82% 20%,rgba(87,126,255,.12),transparent 30%),radial-gradient(circle at 52% 92%,rgba(45,122,78,.1),transparent 34%),linear-gradient(145deg,#f7fbfb,#eef5f4 48%,#f6f7fb)}.orbital-field{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.orbital-field:before,.orbital-field:after{position:absolute;top:-16%;right:-16%;bottom:-16%;left:-16%;content:"";transform-origin:center}.orbital-field:before{opacity:.42;background:repeating-linear-gradient(115deg,transparent 0 34px,rgba(22,48,36,.045) 35px 36px,transparent 37px 92px),repeating-linear-gradient(25deg,transparent 0 48px,rgba(87,126,255,.04) 49px 50px,transparent 51px 120px);animation:contourDrift 24s ease-in-out infinite alternate}.orbital-field:after{opacity:.36;background:linear-gradient(105deg,transparent 0 36%,rgba(255,255,255,.18) 42%,rgba(255,255,255,.58) 48%,rgba(255,255,255,.18) 54%,transparent 62%);background-size:140% 140%;-webkit-mask-image:linear-gradient(135deg,transparent 0%,#000 18%,#000 82%,transparent 100%);mask-image:linear-gradient(135deg,transparent 0%,#000 18%,#000 82%,transparent 100%);animation:backgroundSweep 13s ease-in-out infinite}.orbit{position:absolute;border:1px solid rgba(49,96,91,.12);border-radius:999px;box-shadow:inset 0 0 52px #4fc3b014;animation:floatOrbit 28s linear infinite}.orbit-one{width:520px;height:520px;top:-190px;right:-110px}.orbit-two{width:380px;height:380px;bottom:-130px;left:-90px;animation-duration:22s;animation-direction:reverse}.workspace{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(330px,.8fr);gap:22px;width:min(1180px,100%);min-height:calc(100vh - 80px);margin:0 auto}.brand-panel,.analysis-panel,.result-panel{border:1px solid var(--border);background:var(--panel);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}.brand-panel{grid-column:1 / -1;display:flex;align-items:center;gap:18px;min-height:128px;padding:16px 28px;border-radius:8px;animation:riseIn .62s ease-out both}.upload-icon{display:grid;place-items:center;flex:0 0 auto;border-radius:8px;color:#fff;background:linear-gradient(135deg,var(--leaf),var(--leaf-deep));box-shadow:0 14px 28px #2d7a4e47}.brand-mark{width:96px;height:96px;flex:0 0 auto;border-radius:8px;object-fit:cover;box-shadow:0 14px 28px #2d7a4e33}.upload-icon{position:relative;z-index:2;width:52px;height:52px;margin-top:-38px;border:4px solid rgba(255,255,255,.78)}h1,h2{margin:0;color:var(--ink);letter-spacing:0}h1{font-size:clamp(1.9rem,5vw,3.4rem);line-height:1.02;max-width:820px}.brand-summary{max-width:620px;margin:10px 0 0;color:var(--muted);font-size:1rem;font-weight:650}h2{font-size:1.1rem}.analysis-panel,.result-panel{align-self:stretch;border-radius:8px;animation:riseIn .72s ease-out 80ms both}.analysis-panel{display:grid;gap:18px;padding:22px}.input-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.field{display:grid;gap:8px}.field span,.result-heading,.file-pill,.message,.submit-button{display:flex;align-items:center}.field span{gap:8px;color:var(--leaf-deep);font-size:.92rem;font-weight:800}.quantity-field{grid-column:1 / -1}textarea,input{width:100%;border:1px solid rgba(45,122,78,.18);border-radius:8px;outline:0;background:#ffffffc7;color:var(--ink);transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease,background .18s ease}textarea{min-height:112px;resize:vertical;padding:14px}input{height:52px;padding:0 14px}textarea:focus,input:focus{border-color:#2d7a4eb8;background:#fff;box-shadow:0 0 0 4px #b7e26a42;transform:translateY(-1px)}.upload-zone{position:relative;display:grid;place-items:center;height:340px;min-height:292px;overflow:hidden;cursor:pointer;border:1px solid rgba(45,122,78,.24);border-radius:8px;background:linear-gradient(180deg,#ffffffbd,#ffffff61),radial-gradient(circle at 50% 38%,rgba(183,226,106,.34),transparent 32%),linear-gradient(135deg,#dff5dfe0,#fff8e7e0);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.upload-zone.has-image{width:fit-content;max-width:100%;height:auto;min-height:0;margin-inline:auto;padding:0;background:linear-gradient(45deg,rgba(45,122,78,.06) 25%,transparent 25%),linear-gradient(-45deg,rgba(45,122,78,.06) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(45,122,78,.06) 75%),linear-gradient(-45deg,transparent 75%,rgba(45,122,78,.06) 75%),#fbfdfb;background-position:0 0,0 10px,10px -10px,-10px 0;background-size:20px 20px}.upload-zone.has-image:after{display:none}.upload-zone:after{position:absolute;top:13px;right:13px;bottom:13px;left:13px;content:"";border:1px dashed rgba(45,122,78,.34);border-radius:8px;background:linear-gradient(90deg,rgba(255,255,255,.5),transparent 26% 74%,rgba(255,255,255,.5)),linear-gradient(rgba(45,122,78,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(45,122,78,.07) 1px,transparent 1px);background-size:100% 100%,28px 28px,28px 28px;animation:uploadGrid 7s ease-in-out infinite alternate}.upload-zone:hover,.upload-zone:focus-visible{border-color:var(--leaf);box-shadow:0 18px 42px #2d7a4e2e;transform:translateY(-2px)}.upload-zone input{display:none}.upload-empty{position:relative;z-index:1;display:grid;grid-template-columns:1fr;justify-items:center;align-content:center;gap:12px;max-width:390px;min-height:252px;padding:28px 30px;text-align:center}.upload-empty strong{display:block;color:var(--leaf-deep);font-size:1.12rem;line-height:1.25;max-width:24ch}.upload-empty span{display:block;color:var(--muted);max-width:32ch;line-height:1.45}.food-plate{position:relative;display:grid;place-items:center;width:138px;height:138px;margin-bottom:2px;border-radius:50%;background:radial-gradient(circle,#fffffff5 0,#fffffff5 43%,#dff5dff0 44%,#dff5dff0 62%,#2d7a4e1f 63%,#2d7a4e1f);box-shadow:0 18px 36px #2d7a4e24,inset 0 0 0 10px #ffffffb8}.plate-ring{position:absolute;top:21px;right:21px;bottom:21px;left:21px;border:1px solid rgba(45,122,78,.22);border-radius:inherit}.food-dot{position:absolute;border-radius:999px;box-shadow:0 8px 16px #1630241a;animation:foodFloat 3.8s ease-in-out infinite}.food-dot-a{width:34px;height:34px;top:43px;left:35px;background:var(--leaf)}.food-dot-b{width:28px;height:28px;top:62px;right:36px;background:var(--aqua);animation-delay:.6s}.food-dot-c{width:22px;height:22px;right:53px;bottom:35px;background:var(--berry);animation-delay:1.1s}.scan-line{position:absolute;left:24px;right:24px;height:2px;border-radius:999px;background:linear-gradient(90deg,transparent,rgba(45,122,78,.68),transparent);box-shadow:0 0 16px #2d7a4e52;animation:plateScan 2.8s ease-in-out infinite}.preview-wrap{position:relative;z-index:1;display:grid;place-items:center;width:fit-content;max-width:100%;height:auto;overflow:hidden;border-radius:8px}.preview-wrap img{display:block;width:auto;height:auto;max-width:100%;max-height:min(72vh,640px)}.icon-button{position:absolute;top:12px;right:12px;display:grid;place-items:center;width:38px;height:38px;border-radius:8px;color:#fff;background:#163024bf;cursor:pointer;transition:transform .16s ease,background .16s ease}.icon-button:hover{background:#bd3f65eb;transform:scale(1.04)}.file-pill{gap:8px;min-height:44px;padding:9px 12px;border-radius:8px;color:var(--leaf-deep);background:#dff5dfd1;animation:popIn .26s ease-out both}.file-pill span{min-width:0;overflow:hidden;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.file-pill em{margin-left:auto;color:var(--muted);font-size:.86rem;font-style:normal;white-space:nowrap}.message{gap:9px;min-height:44px;padding:12px;border-radius:8px;font-weight:700}.error-message{color:#8f1f3f;background:#bd3f651a}.submit-button{justify-content:center;gap:10px;min-height:56px;border-radius:8px;color:#fff;background:linear-gradient(135deg,var(--leaf),var(--leaf-deep));box-shadow:0 18px 34px #2d7a4e42;cursor:pointer;font-weight:900;transition:transform .17s ease,filter .17s ease,opacity .17s ease}.submit-button:hover:not(:disabled){filter:saturate(1.1) brightness(1.04);transform:translateY(-2px)}.submit-button:disabled{cursor:not-allowed;opacity:.54}.spin{animation:spin .9s linear infinite}.result-panel{display:grid;grid-template-rows:auto minmax(0,1fr);gap:14px;padding:22px;animation-delay:.16s}.result-heading{gap:9px;color:var(--leaf)}.result-panel textarea{min-height:0;height:100%;background:linear-gradient(#ffffffe0,#ffffffe0),linear-gradient(135deg,#4fc3b033,#577eff1f)}.copyright{grid-column:1 / -1;align-self:end;color:var(--muted);font-size:.9rem;font-weight:700;text-align:center}@keyframes riseIn{0%{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes popIn{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes nutrientSweep{to{transform:rotate(1turn)}}@keyframes floatOrbit{to{transform:rotate(1turn)}}@keyframes breathe{0%,to{transform:scale(.86);box-shadow:0 0 #2d7a4e3d}50%{transform:scale(1);box-shadow:0 0 0 18px #2d7a4e00}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes contourDrift{0%{transform:translate3d(-28px,-14px,0) rotate(-1deg)}to{transform:translate3d(28px,18px,0) rotate(1deg)}}@keyframes backgroundSweep{0%,to{transform:translate3d(-36px,-14px,0);opacity:.26}50%{transform:translate3d(36px,16px,0);opacity:.46}}@keyframes uploadGrid{0%{background-position:0 0,0 0,0 0}to{background-position:0 0,0 18px,18px 0}}@keyframes plateScan{0%,to{top:36px;opacity:0}20%,80%{opacity:1}50%{top:98px}}@keyframes foodFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@media(max-width:860px){.app-shell{padding:18px;background:radial-gradient(circle at 50% -4%,rgba(79,195,176,.2),transparent 34%),radial-gradient(circle at 86% 36%,rgba(87,126,255,.12),transparent 34%),radial-gradient(circle at 10% 74%,rgba(45,122,78,.1),transparent 30%),linear-gradient(145deg,#f7fbfb,#eef5f4 54%,#f6f7fb)}.workspace,.input-grid{grid-template-columns:1fr}.brand-panel{align-items:center;justify-content:center;padding:16px 20px;text-align:center}h1{font-size:clamp(1.75rem,8vw,2.25rem);line-height:1.08;max-width:15ch}.result-panel textarea{min-height:260px}.workspace{min-height:calc(100vh - 36px)}}@media(max-width:560px){.brand-panel{flex-direction:column;gap:14px;min-height:auto;padding:18px}.brand-mark{width:72px;height:72px;border-radius:8px;box-shadow:0 14px 28px #2d7a4e33}h1{font-size:clamp(1.55rem,8.8vw,2rem);max-width:14ch;margin-inline:auto}.analysis-panel,.result-panel{padding:16px}.upload-zone{height:300px;min-height:268px}.upload-zone.has-image{max-width:100%}.preview-wrap img{max-height:min(68vh,520px)}.food-plate{width:116px;height:116px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:1ms!important}}
