@import url('/assets/fonts.css');
:root{color-scheme:light;--primary:hsl(142 52% 24%);--accent:hsl(110 55% 45%);--ink:#0f0f0f;--muted:#666;--line:#e6e6e6;--soft:#f5f5f5;--card:#fff;--danger:#dc2626;--shadow:0 2px 12px -2px #0f0f0f0f;font-family:Inter,system-ui,-apple-system,sans-serif;font-size:14px;color:var(--ink);background:#fff;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}html,body{min-height:100%;overscroll-behavior-y:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}button,a{touch-action:manipulation}button{color:inherit}a{color:var(--primary);text-decoration:none}h1,h2,h3,.display,.logo{font-family:Fraunces,Georgia,serif;letter-spacing:-.02em}h1,h2,h3,p{margin:0}h1{font-size:30px;font-weight:600;line-height:1.15}h2{font-size:19px;font-weight:600}h3{font-size:16px}p{line-height:1.55}small,.small{font-size:12px}.muted{color:var(--muted)}.tiny{font-size:11px}.upper{text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:600}.capitalize{text-transform:capitalize}.num{font-variant-numeric:tabular-nums}.center{text-align:center}.right{text-align:right}.nowrap{white-space:nowrap}.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}[hidden]{display:none!important}
:focus-visible{outline:3px solid #72ba58;outline-offset:3px}.skip-link{position:fixed;top:-100px;left:12px;padding:12px;background:#fff;z-index:999}.skip-link:focus{top:12px}.boot{min-height:85dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:var(--muted)}#app{outline:none;min-height:100dvh}.shell{max-width:448px;margin:auto;padding:env(safe-area-inset-top) 20px calc(104px + env(safe-area-inset-bottom));animation:fade-up .35s ease}.page-header{padding:26px 0 18px;display:flex;align-items:center;justify-content:space-between;gap:12px}.page-header p{margin-top:4px;font-size:12px;color:var(--muted)}.greeting h1{font-size:25px}.row{display:flex;align-items:center;gap:12px}.between{justify-content:space-between}.start{align-items:flex-start}.grow{flex:1;min-width:0}.stack{display:grid;gap:16px}.stack-sm{display:grid;gap:10px}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.card{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:20px;box-shadow:var(--shadow);min-width:0}.card.compact{padding:16px}.section{margin-top:16px}.logo{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:16px;color:#fff;font-size:20px;font-weight:700;background:linear-gradient(135deg,hsl(142 52% 22%),hsl(110 55% 48%));box-shadow:0 12px 36px -10px #1d5d3540;flex-shrink:0}.logo.large{width:64px;height:64px;font-size:28px}.logo.xlarge{width:72px;height:72px;font-size:30px}.pill{border:1px solid var(--line);border-radius:999px;padding:7px 12px;background:#fff;display:inline-flex;align-items:center;gap:5px;font-size:12px}.hero{background:var(--primary);color:#fff;padding:26px 22px 22px;border-radius:24px;box-shadow:0 18px 48px -16px #0005}.hero .muted{color:#ffffffb8}.hero .upper{color:#ffffffc7;letter-spacing:.25em}.hero .big{font-size:60px;font-weight:700;line-height:1.1;margin-top:6px}.hero-stats{display:grid;grid-template-columns:repeat(3,1fr);margin-top:24px;text-align:center}.hero-stats strong{font-family:Fraunces,Georgia,serif;display:block;font-size:22px}.hero-stats small{display:block;margin-top:5px;text-transform:uppercase;font-size:10px;letter-spacing:.06em;color:#ffffffb3}.hero-stats .accent{color:var(--accent)}.bar{height:7px;border-radius:99px;background:var(--soft);overflow:hidden}.bar>span{height:100%;display:block;max-width:100%;border-radius:inherit;background:var(--primary);transition:width .4s}.hero .bar{height:4px;margin-top:20px;background:#ffffff30}.hero .bar>span{background:#fff}.macro+.macro{margin-top:13px}.macro .row{margin-bottom:6px;font-size:12px}.macro .bar{height:6px}.macro:nth-child(3) .bar>span{background:var(--accent)}.macro:nth-child(4) .bar>span{background:#279b52}.metric{font-family:Fraunces,Georgia,serif;font-size:27px;font-weight:600;line-height:1.25}.icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle;flex-shrink:0}.icon.sm{width:16px;height:16px}.icon.lg{width:26px;height:26px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 18px;border-radius:999px;border:1px solid transparent;background:var(--primary);color:#fff;font-weight:600;font-size:13px;transition:transform .15s,background .15s}.button:active:not(:disabled){transform:scale(.98)}.button.outline{color:var(--ink);background:#fff;border-color:var(--line)}.button.soft{color:var(--ink);background:var(--soft)}.button.danger{color:var(--danger);background:#fff;border-color:#f3caca}.button.small{min-height:36px;padding:7px 12px;font-size:12px}.full{width:100%}.icon-button{border:0;background:var(--soft);border-radius:50%;width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.icon-button.ink{background:var(--ink);color:#fff}.icon-button.plain{background:transparent}.danger-text{color:var(--danger)}.accent{color:var(--accent)}.primary{color:var(--primary)}.warning{color:#e9970a}.quick-action{min-height:66px;border-radius:16px;display:flex;flex-direction:column;gap:5px;font-size:12px;box-shadow:0 12px 36px -10px #1d5d3540}.nav{position:fixed;bottom:0;left:0;right:0;z-index:40;background:#fffffff0;backdrop-filter:blur(15px);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.nav-inner{display:grid;grid-template-columns:repeat(5,1fr);max-width:448px;margin:auto;padding:8px}.nav a{display:flex;flex-direction:column;align-items:center;gap:4px;padding:7px 2px;border-radius:12px;color:var(--muted);font-size:10px;font-weight:500}.nav .icon{width:22px;height:22px}.nav a[aria-current]{color:var(--primary)}.nav a[aria-current] .icon{stroke-width:2.4}.auth-page{min-height:100dvh;background:linear-gradient(135deg,#fff,#f5f5f5);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:calc(40px + env(safe-area-inset-top)) 24px calc(40px + env(safe-area-inset-bottom))}.auth-wrap{width:100%;max-width:384px}.auth-brand{display:grid;gap:12px;justify-items:center;margin-bottom:32px}.auth-brand h1{font-size:30px}.auth-card{border:0;padding:24px;box-shadow:var(--shadow)}.tabs{display:flex;gap:4px;background:var(--soft);padding:4px;border-radius:999px}.tab{flex:1;background:transparent;border:0;border-radius:999px;padding:10px 7px;font-size:12px;color:var(--muted);white-space:nowrap}.tab[aria-selected=true]{background:#fff;color:var(--ink);box-shadow:0 1px 3px #0001}.form{display:grid;gap:16px}.field{display:grid;gap:7px;min-width:0}.field>span,.field>label{font-size:12px;font-weight:500}input:not([type=range],[type=checkbox]),select,textarea{width:100%;min-height:44px;border:1px solid #eaeaea;border-radius:12px;padding:10px 12px;background:#fff;color:var(--ink);font-size:14px}input:focus,select:focus,textarea:focus{border-color:var(--primary)}textarea{resize:vertical;min-height:88px;line-height:1.5}input[type=range]{width:100%;accent-color:var(--primary);min-height:32px}input[type=checkbox]{accent-color:var(--primary);width:18px;height:18px}.divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.12em}.divider:before,.divider:after{content:'';height:1px;background:var(--line);flex:1}.form-error{font-size:12px;color:var(--danger);line-height:1.5}.message{font-size:13px;padding:14px;border-radius:14px;background:#eff7ed;line-height:1.55}.message.error{color:#8f1818;background:#fff0f0}.message.warning{background:#fff8e6;color:#795a0e}.empty{padding:38px 18px;text-align:center;display:grid;justify-items:center;gap:14px;color:var(--muted)}.empty .icon{width:32px;height:32px}.list{display:grid;gap:10px;list-style:none;padding:0;margin:0}.log-item{display:flex;gap:12px;align-items:center;border:1px solid var(--line);border-radius:16px;padding:13px}.log-item strong{font-size:13px;overflow-wrap:anywhere}.log-item p{font-size:11px;color:var(--muted);margin-top:3px}.log-item .calories{font-size:20px;font-weight:600;font-variant-numeric:tabular-nums}.sheet{border:0;padding:0;border-radius:24px;width:min(448px,100%);max-height:92dvh;max-height:calc(100dvh - env(safe-area-inset-top) - 16px);box-shadow:0 18px 48px #0004;color:var(--ink)}.sheet::backdrop{background:#0f0f0f66;backdrop-filter:blur(4px)}.sheet-head{position:sticky;top:0;background:#fff;z-index:2;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:12px 20px}.sheet-body{padding:20px;overflow-y:auto}.sheet-body .stack{gap:18px}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{background:#fff;border:1px solid var(--line);border-radius:999px;padding:10px 15px;font-size:12px;min-height:40px}.chip[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:#fff}.option{border:2px solid var(--line);border-radius:16px;display:block;width:100%;text-align:left;padding:15px;background:#fff;min-height:66px}.option[aria-pressed=true]{border-color:var(--primary);background:#f3f8f2}.option span{display:block;font-size:12px;color:var(--muted);margin-top:4px}.onboarding{max-width:448px;min-height:100dvh;margin:auto;padding:calc(28px + env(safe-area-inset-top)) 24px calc(28px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:24px}.onboarding-content{flex:1}.onboarding h1{margin-bottom:8px}.onboarding-content>p{margin-bottom:26px;color:var(--muted)}.onboarding .bar{flex:1;height:6px}.trend{display:flex;align-items:end;gap:7px;height:92px;margin-top:16px}.trend-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:7px;min-width:0}.trend-bar{width:100%;border-radius:6px;background:#1d5d3540;max-height:66px}.trend-col:last-child .trend-bar{background:var(--primary)}.trend-col span{font-size:10px;color:var(--muted)}.brain{background:linear-gradient(160deg,#1d532d,#285b34 60%,#456f38);color:#fff}.brain .muted{color:#ffffffb5}.brain ul{padding:0;list-style:none;display:grid;gap:12px;margin:16px 0 0}.brain li{padding-top:12px;border-top:1px solid #ffffff26}.brain strong{font-size:13px}.brain p{font-size:12px;overflow-wrap:anywhere}.tag{display:inline-flex;border-radius:99px;padding:4px 8px;background:#ffffff20;font-size:10px;text-transform:uppercase;letter-spacing:.05em;margin-bottom:5px}.chat-log{display:flex;flex-direction:column;gap:12px;max-height:440px;overflow-y:auto;padding:4px 2px 12px}.bubble{max-width:90%;padding:13px 15px;border-radius:18px;background:var(--soft);font-size:13px;line-height:1.6;overflow-wrap:anywhere}.bubble.user{align-self:flex-end;background:var(--primary);color:#fff;border-bottom-right-radius:5px}.bubble.assistant{align-self:flex-start;border-bottom-left-radius:5px}.bubble p+p{margin-top:8px}.chat-form{display:flex;gap:8px;align-items:end}.chat-form textarea{min-height:44px;max-height:160px}.chat-form button{height:44px}.suggestions{display:flex;gap:6px;overflow:auto;padding:4px 0 12px}.suggestions button{white-space:nowrap;font-size:11px;flex-shrink:0}.profile-row{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--line);font-size:13px}.profile-row:last-child{border-bottom:0}.connection,.update{position:sticky;top:0;z-index:80;padding:9px 14px;text-align:center;background:#fff5dc;color:#6e510c;font-size:12px;line-height:1.5}.update{background:var(--primary);color:#fff}.update button{border:1px solid #ffffff80;border-radius:99px;background:transparent;color:#fff;padding:5px 12px;margin-left:12px}.notices{position:fixed;top:calc(14px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:min(400px,calc(100% - 32px));z-index:200;pointer-events:none}.notice{padding:13px 18px;border-radius:16px;margin-bottom:8px;background:#fff;box-shadow:0 8px 30px #0002;border:1px solid var(--line);font-size:13px;animation:fade-up .2s}.notice.error{border-color:#f7b0b0;color:#9d1919}.spinner{display:inline-block;width:17px;height:17px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite;vertical-align:middle}.loading{padding:32px 12px;text-align:center;color:var(--muted)}.photo-preview{width:100%;max-height:230px;object-fit:contain;border-radius:16px;background:var(--soft)}.camera{width:100%;aspect-ratio:16/10;background:#111;border-radius:16px;object-fit:cover}.scale{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.scale button{min-height:42px;border-radius:12px;border:1px solid var(--line);background:var(--soft)}.scale button[aria-pressed=true]{background:var(--primary);color:#fff}.scale.sore button[aria-pressed=true]{background:#fde9e9;color:#bd2626;border-color:#dc2626}.report-list{padding-left:18px;font-size:12px;color:var(--muted);line-height:1.6}.install-box{background:var(--soft);border-radius:16px;padding:14px}.install-box p{font-size:12px;color:var(--muted)}.history-link{display:block;color:inherit}.history-link .log-item{cursor:pointer}.short-divider{height:1px;background:var(--line);margin:4px 0}.link-button{border:0;background:none;color:var(--primary);font-size:12px;padding:6px;min-height:32px}.fade{animation:fade-up .3s ease}.hint{font-size:11px;line-height:1.5;color:var(--muted)}.safe-break{overflow-wrap:anywhere}
.logo{background:none;border-radius:11px;box-shadow:0 7px 20px -12px #12372466}.logo img{display:block;width:100%;height:100%;object-fit:contain}.logo.large{border-radius:14px}.logo.xlarge{border-radius:16px}
@media(max-width:479px){.sheet{margin: auto 0 0;width:100%;max-width:none;border-radius:24px 24px 0 0}.sheet-body{padding-bottom:calc(24px + env(safe-area-inset-bottom))}.hero .big{font-size:56px}.auth-page{padding-left:22px;padding-right:22px}}
@media(min-width:768px){.shell{padding-top:calc(16px + env(safe-area-inset-top))}.auth-card{padding:26px}.onboarding{padding-top:48px}}
@media(max-width:359px){.card .row>.button.small.full{padding-left:8px;padding-right:8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@keyframes fade-up{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}
