/* A restrained, native-iOS inspired visual layer. */
:root{color:#1c1c1e;background:#f2f2f7}
body{background:#f2f2f7;color:#1c1c1e;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.app-shell{padding-left:24px;padding-right:24px}.topbar{margin-bottom:24px}.eyebrow,.section-label{color:#7c7c80;font-size:13px;font-weight:600;letter-spacing:0}h1{font-size:34px;line-height:1.08;letter-spacing:-1.25px}h2{font-size:21px;line-height:1.2;letter-spacing:-.45px}.profile-button{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:transparent;color:#1c1c1e;font-size:15px;transition:transform .18s ease,background .18s ease}.profile-button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.profile-button:active{transform:scale(.92);background:#e5e5ea}
.hero-card{border-radius:24px;padding:20px;gap:20px;box-shadow:none}.ring{width:142px;background:conic-gradient(#e2544b 0 var(--excess),transparent var(--excess) 100%),conic-gradient(#248a61 0 var(--progress),#e7efea var(--progress) 100%)}.ring-inner{width:118px}.ring strong{font-size:26px;letter-spacing:-1.15px}.hero-copy .section-label{font-size:13px;margin:0}.coach-message{font-size:15px!important;line-height:1.38!important;letter-spacing:-.08px}section{margin-top:32px}.section-heading{margin-bottom:11px}
.nutrient-grid{gap:10px}.metric-card{border-radius:18px;padding:14px 13px 13px;box-shadow:none}.metric-card span{font-size:13px;margin-bottom:7px}.metric-card strong{font-size:17px;letter-spacing:-.55px}.metric-card small{font-size:11px;font-weight:500}.metric-card .mini-track{height:4px;margin-top:13px;background:#e8eee9}.protein .mini-track i{background:#32cd32}.fat .mini-track i{background:#f0a12c}.carbs .mini-track i{background:#6f63d7}
.entry-card{border-radius:18px;padding:14px;background:#e8f5ed}.food-icon{width:40px;height:40px;border-radius:12px;font-size:20px}.entry-info h3,.food-list h3{font-size:16px;letter-spacing:-.25px}.entry-info p,.food-list p{font-size:13px}.entry-values strong{font-size:18px}.meal-group{margin:20px 0 27px}.meal-group h3{font-size:13px;color:#7c7c80;letter-spacing:0}.meal-group article{padding:13px 2px 14px;border-color:#d8d8dc}.meal-group article p{font-size:15px}
.composer{width:min(100%,560px);padding:14px 24px calc(env(safe-area-inset-bottom) + 15px);background:linear-gradient(transparent,rgba(242,242,247,.94) 30%);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.composer-field{border-color:#d7d7dc;border-radius:16px;box-shadow:none}.composer input{font-size:16px;padding:12px 5px}.composer input::placeholder{color:#9b9ba1}.photo-button,.send-button{width:40px;height:40px;border-radius:14px}.photo-button{background:#e7f5ec;color:#248a61}.send-button{background:#248a61}
.login-page,.setup-page{place-items:start center;padding:calc(env(safe-area-inset-top) + 76px) 28px 32px;background:#f2f2f7}.login-card,.setup-card{width:min(100%,430px);background:transparent;border-radius:0;padding:0;box-shadow:none}.login-card h1,.setup-card h1{font-size:34px;line-height:1.08;letter-spacing:-1.3px;margin:5px 0 12px}.login-card>p:not(.eyebrow),.setup-card>p:not(.eyebrow){font-size:17px;line-height:1.35;letter-spacing:-.15px;margin-bottom:28px;color:#6e6e73}.login-card form,.setup-card form{display:grid;gap:14px}.login-card label,.setup-card label{gap:7px;font-size:14px;color:#1c1c1e}.login-card input,.setup-card input,.setup-card select{height:48px;border-color:#d1d1d6;border-radius:12px;padding:12px 13px;background:#fff;font-size:16px}.login-card input:focus,.setup-card input:focus,.setup-card select:focus{border-color:#34c759;box-shadow:0 0 0 3px #34c75926}.login-card button,.setup-card button{min-height:50px;border-radius:13px;background:#248a61;padding:12px;margin-top:4px;font-size:17px}.setup-card #use-recommended-date{background:#e7f4ec;color:#248a61}.goal-warning{font-size:14px;margin-top:0}
.profile-menu{top:46px;min-width:146px;border:1px solid #ffffff99;border-radius:16px;padding:5px;background:rgba(255,255,255,.82);box-shadow:0 12px 28px #00000014;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}.profile-menu button{display:block;width:100%;padding:11px 13px;text-align:left;border-radius:11px;color:#1c1c1e;font-size:15px;font-weight:600}.profile-menu button:last-child{color:#ff3b30}.profile-menu button:hover{background:#0000000a}
.photo-status{position:fixed;z-index:3;left:50%;bottom:calc(env(safe-area-inset-bottom) + 74px);transform:translateX(-50%);display:flex;align-items:center;gap:8px;border:0;border-radius:14px;padding:8px 10px 8px 12px;background:#1c1c1e;color:#fff;font-size:13px;font-weight:600;box-shadow:0 7px 18px #0000001c}.photo-status b{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#ffffff2e;font-size:17px;font-weight:400;line-height:1}.photo-status:active{transform:translateX(-50%) scale(.96)}
.stats-page{padding-left:24px;padding-right:24px}.stats-header{grid-template-columns:44px 1fr 44px;margin-bottom:38px}.stats-header h1{font-size:17px;font-weight:700;letter-spacing:-.35px}.back-button{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:transparent;color:#1c1c1e}.back-button svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.back-button:active{background:#e5e5ea}.charts{gap:36px}.chart-panel h2{font-size:17px;letter-spacing:-.3px;margin-bottom:13px}.chart-legend{gap:8px 14px;margin:-1px 0 15px;color:#6e6e73;font-size:13px}.chart-legend i{width:15px;height:2px}.chart-axis-line{stroke:#d1d1d6}.chart-reference{stroke:#c7c7cc;stroke-width:1}.chart-day{stroke:#e5e5ea}.chart-day.weekend{stroke:#d1d1d6}.chart-axis{fill:#8e8e93;font-size:11px}.chart-axis.weekend{font-weight:400}.chart-line.primary{stroke-width:2.5}.chart-line.secondary{stroke-width:1.25}
@media(max-width:370px){.app-shell,.stats-page{padding-left:18px;padding-right:18px}.composer{padding-left:18px;padding-right:18px}.login-page,.setup-page{padding-left:22px;padding-right:22px}.metric-card{padding-left:10px;padding-right:10px}.metric-card strong{font-size:16px}}
