@import"https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700;800&display=swap";:root{font-family:Be Vietnam Pro,system-ui,sans-serif;color:#f1f7f3;background:#07120e;font-synthesis:none;--background: #07120e;--surface: #101f18;--surface-raised: #172a20;--surface-active: #20382a;--text: #f1f7f3;--text-secondary: #a8b9ad;--text-tertiary: #718477;--border: #294034;--primary: #6edc8c;--primary-hover: #88e7a1;--primary-text: #06210f;--primary-soft: #183a26;--primary-border: #346747;--track: #30453a;--protein: #ff8fa3;--fat: #55d6be;--danger: #ff858a;--danger-soft: #3b1f23;--error: #ffb5b8;--error-bg: #421f24;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 20px;--radius-xl: 28px;--page-gutter: clamp(16px, 4vw, 32px);--content-width: 760px;--shadow-card: 0 1px 0 rgb(255 255 255 / 4%);--nav-background: rgb(9 24 17 / 96%);--timeline-icon-start: #245c37;--info-background: #10251b;--account-hero-start: #183324;--translucent-surface: rgb(7 18 14 / 45%);--protein-track: #4a3038;--fat-track: #21463f;--success-text: #bdecc9;--nutrition-card-start: #152b20;--selected-day-background: #f1f7f3;--selected-day-text: #06210f;--warning: #f2c35f;--warning-soft: #3b321d}:root[data-theme=light]{color:#142019;background:#f4f8f5;--background: #f4f8f5;--surface: #ffffff;--surface-raised: #edf4ef;--surface-active: #e2eee6;--text: #142019;--text-secondary: #53655a;--text-tertiary: #77877c;--border: #d4e1d8;--primary: #258548;--primary-hover: #1e743e;--primary-text: #ffffff;--primary-soft: #dff3e5;--primary-border: #b4dbc0;--track: #d8e4dc;--protein: #cf526c;--fat: #148d7b;--danger: #c63f49;--danger-soft: #fdecee;--error: #b72f39;--error-bg: #fff0f1;--shadow-card: 0 5px 18px rgb(38 70 49 / 8%);--nav-background: rgb(255 255 255 / 96%);--timeline-icon-start: #e8f6ec;--info-background: #e9f6ed;--account-hero-start: #e5f4e9;--translucent-surface: rgb(255 255 255 / 62%);--protein-track: #f3dce1;--fat-track: #d8eee9;--success-text: #246d3b;--nutrition-card-start: #e7f4eb;--selected-day-background: #ffffff;--selected-day-text: #142019;--warning: #ad710e;--warning-soft: #fff3d5}*{box-sizing:border-box}html{color-scheme:dark}html[data-theme=light]{color-scheme:light}body{margin:0;min-width:320px;min-height:100vh;background:var(--background)}img,video{object-position:center}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--primary);outline-offset:2px}:where(button:not(:disabled),a[href],.account-avatar label){touch-action:manipulation;transition:transform .14s cubic-bezier(.2,.8,.2,1),filter .14s ease,background-color .14s ease,border-color .14s ease,box-shadow .14s ease}:where(button:not(:disabled),a[href],.account-avatar label):active{transform:scale(.97);transition-duration:.06s}:where(input:not([type=checkbox]):not([type=range]):not([type=file]),textarea,select){transition:border-color .14s ease,background-color .14s ease,box-shadow .14s ease}button:disabled{cursor:not-allowed}h1,h2,h3,p{margin-top:0}h1{margin-bottom:8px;font-size:clamp(26px,5vw,34px);line-height:1.2;letter-spacing:-.035em}h2{margin-bottom:12px;font-size:clamp(18px,3vw,22px);line-height:1.3;letter-spacing:-.02em}p{color:var(--text-secondary);font-size:15px;line-height:1.6}.phone-shell{width:100%;min-height:100dvh;margin:0 auto;background:var(--background);position:relative}.phone-shell.with-nav{padding-bottom:84px}.brand{text-align:center;font-size:26px;font-weight:800;letter-spacing:-.055em}.brand span{color:var(--primary)}.button{width:100%;min-height:52px;padding:12px 20px;border:0;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;gap:8px;color:var(--text);background:transparent;font-size:15px;font-weight:700;text-decoration:none;cursor:pointer;transition:transform .16s ease,background-color .16s ease,opacity .16s ease}.button:active{transform:scale(.985)}.button:disabled{opacity:.5;cursor:wait}.button svg{width:18px;height:18px}.button.primary{color:var(--primary-text);background:var(--primary)}.button.primary:hover{background:var(--primary-hover)}.button.secondary{border:1px solid var(--border);background:var(--surface)}.page-header{width:min(100%,var(--content-width));height:64px;margin:0 auto;padding:8px var(--page-gutter);display:grid;grid-template-columns:44px 1fr 44px;align-items:center;text-align:center}.page-header>strong{font-size:16px}.page-header>div:last-child{text-align:right}.icon-button{width:40px;height:40px;border:0;border-radius:50%;background:var(--surface-raised);font-size:28px;line-height:1;cursor:pointer}.error-message{padding:12px 14px;border-radius:var(--radius-sm);color:var(--error)!important;background:var(--error-bg)!important;font-size:13px!important}.loading{padding:48px 16px;text-align:center}.loading span{display:inline-block;width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.loading p{margin:12px 0 0}@keyframes spin{to{transform:rotate(360deg)}}.welcome{width:min(100%,680px);min-height:100dvh;margin:0 auto;padding:28px var(--page-gutter) 20px;display:flex;flex-direction:column}.welcome-copy{margin:auto 0 28px;text-align:center}.welcome-copy h1{margin:12px 0 10px;font-size:clamp(28px,6vw,38px)}.welcome-copy p{max-width:460px;margin:auto}.mascot{font-size:clamp(72px,20vw,104px);filter:drop-shadow(0 12px 18px #000);animation:float 3s ease-in-out infinite}@keyframes float{50%{transform:translateY(-6px)}}.feature-list{display:grid;gap:16px;margin-bottom:auto}.feature-list>div{display:flex;align-items:center;gap:14px}.feature-list>div>span{width:44px;height:44px;flex:none;display:grid;place-items:center;border-radius:var(--radius-sm);color:var(--primary);background:var(--surface);border:1px solid var(--border)}.feature-list svg{width:20px}.feature-list p{display:grid;margin:0}.feature-list b{color:var(--text);font-size:15px}.feature-list small{color:var(--text-secondary);font-size:13px;line-height:1.5}.welcome-actions{display:grid;gap:10px;padding-top:32px}.pager{display:flex;justify-content:center;gap:6px;padding:8px}.pager i{width:6px;height:6px;border-radius:8px;background:var(--border)}.pager i:first-child{width:16px;background:var(--text)}.auth-page{width:min(100%,560px);margin:0 auto;padding:28px var(--page-gutter);text-align:center}.auth-page>.brand{margin-bottom:48px}.auth-page>div:nth-child(2){max-width:420px;margin:0 auto}.auth-page form{width:100%;min-width:0;display:grid;gap:14px;margin-top:28px;text-align:left}.auth-page .field,.auth-page .password-wrap{width:100%;min-width:0}.auth-page .field input{width:0;text-align:left}.field{min-height:56px;padding:0 16px;display:flex;align-items:center;gap:12px;border:1px solid transparent;border-radius:var(--radius-md);background:var(--surface);transition:border-color .16s ease,background-color .16s ease}.field:focus-within{border-color:var(--primary);background:var(--surface-raised)}.field>span{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:600;white-space:nowrap}.field svg{width:18px;color:var(--primary)}.field input{min-width:0;flex:1;border:0;outline:0;color:var(--text);background:transparent;text-align:right}.password-wrap{position:relative}.password-wrap .field{padding-right:48px}.password-wrap>button{position:absolute;top:8px;right:6px;width:40px;height:40px;border:0;background:transparent;color:var(--text-tertiary)}.password-wrap>button svg{width:18px}.text-button{min-height:36px;margin-left:auto;border:0;color:var(--primary);background:transparent;font-size:12px;font-weight:600;cursor:pointer}.or{display:flex;align-items:center;gap:12px;margin:22px 0;color:var(--text-tertiary);font-size:12px}.or i{height:1px;flex:1;background:var(--border)}.privacy-note{margin:24px 8px 0;display:flex;align-items:center;gap:12px;color:var(--text-secondary);font-size:12px;text-align:left}.privacy-note svg{width:40px;height:40px;flex:none;padding:10px;border-radius:50%;color:var(--primary);background:var(--surface)}.onboarding{width:min(100%,680px);margin:0 auto;padding:8px var(--page-gutter) 32px}.onboarding>h1{margin:20px 0 6px}.onboarding>p{margin-bottom:0}.step-label{display:flex;flex-direction:column;align-items:stretch;gap:8px;color:var(--text-secondary);font-size:11px;text-align:center}.step-label .progress{width:100%;min-width:0}.form-card,.recommend-card{margin:20px 0;padding:20px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-card)}.section-label{display:block;margin:20px 0 10px;font-size:14px;font-weight:700}.form-card .section-label{margin-top:0;color:var(--primary)}.gender-grid,.choice-grid{display:grid;gap:8px}.gender-grid{grid-template-columns:repeat(3,1fr)}.choice-grid{padding:8px;border-radius:var(--radius-md);background:var(--surface)}.choice-grid.three{grid-template-columns:repeat(3,1fr)}.choice-grid.four{grid-template-columns:repeat(4,1fr)}.gender-grid button,.choice-grid button{min-height:72px;padding:8px 4px;border:1px solid var(--border);border-radius:var(--radius-sm);display:grid;place-items:center;align-content:center;gap:5px;background:var(--surface-raised);cursor:pointer;transition:border-color .16s ease,background-color .16s ease,transform .16s ease}.gender-grid button:active,.choice-grid button:active{transform:scale(.97)}.gender-grid button.selected,.choice-grid button.selected{border-color:var(--primary);background:var(--primary-soft)}.gender-grid svg{width:18px}.gender-grid span,.choice-grid span{font-size:12px}.choice-grid b{font-size:19px}.choice-grid small{display:block;margin-top:2px;color:var(--text-tertiary);font-size:8px;line-height:1.3}.measurement-label{display:flex;align-items:center;margin-top:22px;color:var(--primary);font-size:13px}.measurement-label em{margin-left:auto;color:var(--text);font-size:19px;font-style:normal;font-weight:700}.measurement-label small{font-size:11px;font-weight:400}.stepper{display:grid;grid-template-columns:36px 1fr 36px;align-items:center;gap:8px}.stepper>b{height:0;color:transparent;text-align:center}.stepper button{width:36px;height:36px;border:0;border-radius:50%;display:grid;place-items:center;background:var(--surface-active);cursor:pointer}.stepper svg{width:14px}.stepper input{width:100%;grid-column:1 / 4;accent-color:var(--primary)}.info-banner{margin-bottom:16px;padding:12px;border:1px solid var(--primary-border);border-radius:var(--radius-sm);display:flex;gap:10px;color:var(--text-secondary);background:var(--info-background);font-size:11px;line-height:1.5}.info-banner svg{width:18px;flex:none}.goals-page{text-align:center}.goals-page .section-label{text-align:left}.recommend-card{text-align:center}.recommend-card>span{color:var(--text-secondary);font-size:12px}.recommend-card>strong{display:block;margin-top:4px;font-size:38px;letter-spacing:-.04em}.recommend-card>small{color:var(--text-secondary)}.target-row{margin-top:14px;font-size:12px;text-align:left}.target-row i{display:inline-block;width:6px;height:6px;margin-right:5px;border-radius:50%;background:var(--primary)}.target-row b{float:right}.target-row:after{content:"";display:block;height:5px;margin-top:6px;border-radius:8px;background:linear-gradient(90deg,var(--primary) 55%,var(--track) 55%)}.target-row.pink i{background:var(--protein)}.target-row.pink:after{background:linear-gradient(90deg,var(--protein) 42%,var(--track) 42%)}.target-row.green i{background:var(--fat)}.target-row.green:after{background:linear-gradient(90deg,var(--fat) 35%,var(--track) 35%)}.goals-page>.button{margin-top:10px}.fine-print{display:block;margin-top:10px;color:var(--text-tertiary);font-size:10px}.pwa-status{position:fixed;z-index:30;right:16px;bottom:calc(88px + env(safe-area-inset-bottom));left:16px;width:min(calc(100% - 32px),560px);margin:0 auto;padding:16px;border:1px solid var(--primary-border);border-radius:var(--radius-md);display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;background:var(--surface-raised);box-shadow:0 16px 40px #0006}.pwa-status strong{display:block;margin-bottom:4px;font-size:14px}.pwa-status p{margin:0;font-size:12px;line-height:1.45}.pwa-status-actions{display:flex;gap:8px}.pwa-status .button{width:auto;min-height:40px;padding:8px 12px;font-size:12px;white-space:nowrap}.bottom-nav{position:fixed;z-index:10;right:0;bottom:0;left:0;width:min(100%,var(--content-width));height:72px;margin:0 auto;padding:4px 8px max(4px,env(safe-area-inset-bottom));border-top:1px solid var(--border);display:grid;grid-template-columns:repeat(4,1fr);background:var(--nav-background);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.bottom-nav a{min-width:64px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--text-tertiary);font-size:12px;font-weight:600;text-decoration:none}.bottom-nav a>svg{width:24px;height:24px}.bottom-nav a.active{color:var(--primary)}.diary-page{width:min(100%,var(--content-width));margin:0 auto;padding:24px var(--page-gutter)}.diary-header{display:flex;align-items:center;justify-content:space-between}.diary-header h1{margin:0;font-size:24px}.diary-header button{min-height:40px;padding:8px 12px;border:0;border-radius:var(--radius-sm);background:var(--surface);font-size:13px;cursor:pointer}.diary-header .theme-icon-button{width:42px;height:42px;min-height:42px;padding:0;border:1px solid var(--border);border-radius:50%;display:grid;place-items:center;color:var(--primary);background:var(--surface-raised)}.diary-header .theme-icon-button svg{width:19px;height:19px}.calendar-viewport{margin:18px 0;overflow:hidden}.week-days{width:100%;min-width:0;padding-inline:6px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;touch-action:pan-y;-webkit-user-select:none;user-select:none;cursor:grab;will-change:transform,opacity}.week-days.dragging{cursor:grabbing}.week-days button{min-width:0;min-height:48px;border:0;display:grid;place-items:center;align-content:center;gap:4px;background:transparent;cursor:pointer;transition:transform .16s ease}.week-days button:active{transform:scale(.9)}.week-days span{color:var(--text-tertiary);font-size:10px;text-transform:uppercase;white-space:nowrap}.week-days b{width:clamp(30px,8vw,38px);height:clamp(30px,8vw,38px);border-radius:50%;position:relative;display:grid;place-items:center;background:conic-gradient(var(--ring-color, var(--primary)) var(--ring-progress),var(--border) 0);font-size:13px;transition:all .2s ease}.week-days b:after{content:"";position:absolute;inset:3px;border-radius:inherit;background:var(--background)}.week-days b i{z-index:1;font-style:normal}.week-days b.within{--ring-color: var(--primary)}.week-days b.over{--ring-color: var(--danger)}.week-days b.no-target{--ring-color: var(--border)}.week-days button>em{min-height:11px;color:var(--text-secondary);font-size:9px;font-style:normal;font-weight:600}.week-days .active b{color:var(--selected-day-text);transform:scale(1.06)}.week-days .active b:after{background:var(--selected-day-background)}.week-days .active>em{color:var(--text)}.diary-content{animation:content-in .3s cubic-bezier(.16,1,.3,1)}@keyframes content-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.calorie-progress-card{margin:18px 0 24px;padding:18px;border:1px solid var(--border);border-radius:var(--radius-lg);background:linear-gradient(145deg,var(--surface-raised),var(--surface));box-shadow:var(--shadow-card)}.calorie-progress-card>header{display:flex;align-items:center;justify-content:space-between;gap:12px}.calorie-progress-card>header>div{min-width:0}.calorie-progress-card>header span{display:block;margin-bottom:3px;color:var(--text-tertiary);font-size:8px;font-weight:700;letter-spacing:.09em}.calorie-progress-card>header h2{margin:0;font-size:17px}.calorie-progress-card>header>small{padding:6px 8px;border-radius:14px;color:var(--primary);background:var(--primary-soft);font-size:9px;font-weight:700;white-space:nowrap}.calorie-progress-card.over>header>small{color:var(--danger);background:var(--danger-soft)}.calorie-progress-overview{margin:17px 0;display:grid;grid-template-columns:minmax(112px,.82fr) minmax(0,1.18fr);align-items:center;gap:clamp(13px,4vw,24px)}.calorie-state-visual{width:min(100%,158px);aspect-ratio:1;border-radius:50%;position:relative;display:grid;place-items:center;justify-self:center}.calorie-state-mark{width:94%;height:94%;display:block}.calorie-state-mark circle{stroke-linecap:butt;stroke-width:18;transition:stroke .22s ease}.calorie-state-mark .empty{stroke:var(--track)}.calorie-state-mark .filled{stroke:url(#calorie-state-progress)}.calorie-state-mark.complete .filled{stroke:url(#calorie-state-complete)}.calorie-state-mark.over .filled{stroke:url(#calorie-state-over)}.calorie-state-visual>strong{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--primary);font-size:clamp(21px,6vw,29px);letter-spacing:-.05em}.calorie-state-visual>strong i{margin-left:1px;font-size:.55em;font-style:normal}.calorie-progress-card.over .calorie-state-visual>strong{color:#ff6675}.calorie-progress-copy{min-width:0}.calorie-progress-copy>span{display:block;color:var(--text-secondary);font-size:11px}.calorie-intake-line{width:100%;display:flex;align-items:baseline;gap:5px}.calorie-intake-line>strong{min-width:0;color:var(--primary);font-size:clamp(25px,7vw,35px);letter-spacing:-.045em}.calorie-progress-card.over .calorie-intake-line>strong{color:var(--danger)}.calorie-intake-line>small{color:var(--text-secondary);font-size:10px;white-space:nowrap}.calorie-progress-copy>p{margin:10px 0 0;color:var(--text-secondary);font-size:10px;line-height:1.4}.calorie-progress-copy>p b{color:var(--text);font-size:12px}.calorie-progress-card.over .calorie-progress-copy>p b{color:var(--danger)}.calorie-progress-copy>a{display:inline-block;margin-top:10px;color:var(--primary);font-size:10px;font-weight:700}.calorie-macro-grid{padding:14px 0;border-top:1px solid var(--border);display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.calorie-macro-grid>div{min-width:0;padding:0 10px;display:grid;gap:3px;text-align:center}.calorie-macro-grid>div:first-child{padding-left:0}.calorie-macro-grid>div:last-child{padding-right:0}.calorie-macro-grid>div+div{border-left:1px solid var(--border)}.calorie-macro-grid span{overflow:hidden;color:var(--text-secondary);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.calorie-macro-grid strong{font-size:14px;transition:color .18s ease}.calorie-macro-grid .within strong{color:var(--primary)}.calorie-macro-grid .near strong{color:var(--warning)}.calorie-macro-grid .over strong{color:var(--danger)}.calorie-macro-grid .neutral strong{color:var(--text-secondary)}.calorie-macro-grid small{color:var(--text-tertiary);font-size:8px}.calorie-encouragement{margin:0;padding:11px 12px;border-left:3px solid var(--primary);border-radius:var(--radius-sm);color:var(--text-secondary);background:var(--surface-active);font-size:10px;line-height:1.5}.calorie-progress-card.over .calorie-encouragement{border-left-color:var(--danger);background:var(--danger-soft)}.macro-line{margin-top:12px}.macro-line>span{display:flex;margin-bottom:6px;font-size:12px}.macro-line b{margin-left:auto}.macro-line small{color:var(--text-tertiary)}.progress{height:5px;border-radius:8px;overflow:hidden;background:var(--track)}.progress i{display:block;height:100%;border-radius:inherit;background:var(--primary)}.progress.pink{background:var(--protein-track)}.progress.pink i{background:var(--protein)}.progress.green{background:var(--fat-track)}.progress.green i{background:var(--fat)}.progress.danger{background:var(--danger-soft)}.progress.danger i{background:var(--danger)}.section-heading{margin:0 2px 12px;display:flex;align-items:end;justify-content:space-between}.section-heading h2{margin:0;font-size:19px}.section-heading span{color:var(--text-secondary);font-size:12px}.meal-timeline{display:grid;gap:16px}.meal-timeline-item{min-width:0;position:relative;display:grid;grid-template-columns:54px minmax(0,1fr);gap:11px}.meal-timeline-rail{min-width:0;z-index:0;position:relative;display:flex;flex-direction:column;align-items:center;gap:7px}.meal-timeline-rail:after{content:"";position:absolute;z-index:0;top:70px;bottom:-24px;left:50%;width:1px;background:linear-gradient(var(--primary-border),var(--border))}.meal-timeline-rail.with-date:after{top:82px}.meal-timeline-item:last-child .meal-timeline-rail:after{display:none}.meal-timeline-rail>span{width:44px;height:44px;z-index:1;flex:none;border:1px solid var(--primary-border);border-radius:50%;display:grid;place-items:center;color:var(--primary);background:linear-gradient(145deg,var(--timeline-icon-start),var(--primary-soft));box-shadow:0 5px 14px #0003}.meal-timeline-rail svg{width:19px}.meal-timeline-rail time{z-index:1;display:grid;justify-items:center;gap:2px;color:var(--text-secondary);font-size:10px;font-style:normal;line-height:1.2}.meal-timeline-rail time small{color:var(--text-tertiary);font-size:8px}.meal-timeline-rail time b{font-size:11px;font-weight:600}.meal-timeline-card{min-width:0;border:1px solid var(--border);border-radius:var(--radius-lg);position:relative;overflow:visible;background:linear-gradient(145deg,var(--surface-raised),var(--surface));box-shadow:var(--shadow-card);transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease}.meal-timeline-main{min-width:0;padding:10px;display:grid;grid-template-columns:clamp(82px,22vw,124px) minmax(0,1fr);align-items:center;gap:12px;color:var(--text);text-decoration:none}.meal-timeline-image{width:100%;height:clamp(112px,25vw,148px);min-width:0;max-height:148px;align-self:center;border-radius:var(--radius-md);overflow:hidden;display:grid;place-items:center;color:var(--primary);background:var(--surface-active)}.meal-timeline-image img{width:100%;height:100%;display:block;object-fit:cover;object-position:center}.meal-timeline-image svg{width:25px}.meal-timeline-content{min-width:0;display:flex;flex-direction:column;align-items:start;justify-content:center}.meal-timeline-content>small{color:var(--primary);font-size:10px;font-weight:700}.meal-timeline-title{width:100%;margin-top:4px;overflow:hidden;font-size:clamp(15px,3.5vw,19px);line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.meal-timeline-calories{margin-top:8px;color:var(--primary);font-size:clamp(19px,4vw,24px);line-height:1}.meal-timeline-calories i{font-size:.58em;font-style:normal;font-weight:600}.meal-macro-chips{width:100%;margin-top:12px;display:flex;flex-wrap:wrap;gap:5px}.meal-macro-chips>span{padding:5px 7px;border:1px solid rgb(255 255 255 / 4%);border-radius:8px;color:var(--text-secondary);background:var(--surface-active);font-size:8px;line-height:1;white-space:nowrap}.meal-timeline-card.with-menu .meal-timeline-content{padding-right:28px}.meal-card-menu{position:absolute;z-index:3;top:7px;right:6px}.meal-card-menu summary{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:var(--text-secondary);background:transparent;list-style:none;cursor:pointer}.meal-card-menu summary::-webkit-details-marker{display:none}.meal-card-menu summary svg{width:18px}.meal-card-menu>div{position:absolute;top:34px;right:0;width:132px;padding:5px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);box-shadow:0 10px 28px #0000006b}.meal-card-menu button{width:100%;min-height:38px;padding:7px 9px;border:0;border-radius:7px;color:var(--danger);background:transparent;font-size:10px;text-align:left;cursor:pointer}.meal-card-menu button:disabled{opacity:.5}.dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--primary)}.dot.pink{background:var(--protein)}.dot.green{background:var(--fat)}.empty-state{padding:36px 20px;border-radius:var(--radius-lg);background:var(--surface);text-align:center}.empty-state svg{color:var(--primary)}.empty-state h3{margin:10px 0 4px}.empty-state p{margin-bottom:0;font-size:14px}.capture-page{width:min(100%,var(--content-width));height:100dvh;min-height:0;margin:0 auto;padding-bottom:max(8px,env(safe-area-inset-bottom));overflow:hidden;display:flex;flex-direction:column}.capture-page .page-header,.capture-hint,.gallery-chip,.shutter-row,.photo-tip{flex:none}.capture-hint{margin:0 var(--page-gutter) 14px;font-size:13px;text-align:center}.capture-hint svg{width:13px;color:var(--primary);vertical-align:middle}.viewfinder{height:auto;min-height:0;max-height:620px;margin:0 var(--page-gutter);border-radius:var(--radius-xl);position:relative;overflow:hidden;flex:1 1 auto;display:grid;place-items:center;background:radial-gradient(circle at 50% 40%,#284d37,#0a1710)}.viewfinder video{width:100%;height:100%;object-fit:cover}.viewfinder video.front-camera{transform:scaleX(-1)}.camera-message{position:absolute;z-index:1;inset:0;padding:28px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#f1f7f3;text-align:center;background:radial-gradient(circle at 50% 40%,#284d37,#0a1710)}.camera-message>svg{width:42px;height:42px;color:var(--primary)}.camera-message>b{font-size:14px}.camera-message>p{max-width:360px;margin:0;color:#a8b9ad;font-size:12px}.camera-message>button{min-height:38px;padding:7px 14px;border:1px solid var(--primary);border-radius:var(--radius-sm);color:var(--primary);background:transparent;font-size:12px;cursor:pointer}.camera-spinner{width:34px;height:34px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.viewfinder>span{position:absolute;bottom:18px;padding:8px 12px;border-radius:var(--radius-sm);color:#f1f7f3;background:#000c;font-size:13px}.viewfinder>i{position:absolute;width:36px;height:36px;border-color:#fff}.viewfinder>i:nth-last-child(4){top:14px;left:14px;border-top:3px solid;border-left:3px solid;border-radius:10px 0 0}.viewfinder>i:nth-last-child(3){top:14px;right:14px;border-top:3px solid;border-right:3px solid;border-radius:0 10px 0 0}.viewfinder>i:nth-last-child(2){bottom:14px;left:14px;border-bottom:3px solid;border-left:3px solid;border-radius:0 0 0 10px}.viewfinder>i:last-child{right:14px;bottom:14px;border-right:3px solid;border-bottom:3px solid;border-radius:0 0 10px}.gallery-chip{min-height:40px;margin:14px auto;padding:8px 14px;border:0;border-radius:20px;display:flex;align-items:center;gap:7px;color:var(--primary);background:var(--surface-raised);font-size:11px;cursor:pointer}.gallery-chip svg{width:15px}.shutter-row{display:grid;grid-template-columns:1fr 88px 1fr;align-items:center}.shutter-row button{min-height:48px;border:0;display:grid;place-items:center;gap:4px;color:var(--text-secondary);background:transparent;font-size:10px;cursor:pointer}.shutter-row svg{width:24px}.shutter-row .shutter{width:72px;min-height:72px;height:72px;padding:0;justify-self:center;border:4px solid white;border-radius:50%;display:flex;align-items:center;justify-content:center;gap:0;line-height:0}.shutter i{width:56px;height:56px;flex:none;border:0;border-radius:50%;display:block;background:#fff}.photo-tip{display:block;margin:12px var(--page-gutter);color:var(--text-tertiary);font-size:9px;text-align:center}.photo-tip svg{width:12px;color:var(--primary);vertical-align:middle}.confirm-page{width:min(100%,var(--content-width));margin:0 auto;padding:0 var(--page-gutter) 28px}.confirm-page .page-header{padding-inline:0}.confirm-photo{height:clamp(240px,62vw,480px);border-radius:var(--radius-lg);position:relative;overflow:hidden;background:var(--surface)}.confirm-photo span{position:absolute;bottom:10px;left:10px;padding:7px 9px;border-radius:8px;color:var(--primary);background:#000c;font-size:10px}.confirm-context{margin-top:16px;padding:14px;border:1px solid var(--border);border-radius:var(--radius-md);display:grid;gap:8px;background:var(--surface);text-align:left}.confirm-context>span,.preview-title>span{color:var(--primary);font-size:10px;font-weight:700;letter-spacing:.06em}.confirm-meal-fields{display:grid;gap:8px}.confirm-meal-fields label{min-width:0;display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 10px;color:var(--text);font-size:12px;font-weight:700}.confirm-meal-fields label>small{color:var(--text-tertiary);font-size:9px;font-weight:400}.confirm-meal-fields select,.confirm-meal-fields input{width:100%;min-width:0;height:44px;grid-column:1 / -1;padding:0 11px;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);background:var(--surface-raised)}.confirm-context>p{margin:0;font-size:12px}.confirm-context textarea{width:100%;min-width:0;padding:11px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);outline:0;color:var(--text);background:var(--surface-raised);resize:vertical}.confirm-context textarea:focus{border-color:var(--primary)}.confirm-context>small{justify-self:end;color:var(--text-secondary);font-size:10px}.pre-analysis{padding:44px 12px;text-align:center}.pre-analysis>svg{width:38px;color:var(--primary)}.pre-analysis p{font-size:13px}.preview-title{margin-top:20px}.preview-title h2{margin:4px 0 0}.energy-card{margin:16px 0 20px;padding:18px;border:1px solid var(--primary-border);border-radius:var(--radius-md);background:var(--surface)}.energy-card>span{font-size:11px}.energy-card>strong{display:block;color:var(--primary);font-size:34px;letter-spacing:-.04em}.energy-card>strong small{font-size:11px}.confirm-page>h2{font-size:16px}.ingredient-list{display:grid;gap:8px}.ingredient-list article{min-height:60px;padding:10px;border-radius:var(--radius-sm);display:grid;grid-template-columns:38px 1fr auto 16px;align-items:center;gap:10px;background:var(--surface)}.ingredient-list article>span{width:38px;height:38px;border-radius:9px;display:grid;place-items:center;color:var(--primary);background:var(--surface-active)}.ingredient-list svg{width:16px}.ingredient-list b,.ingredient-list strong{font-size:14px}.ingredient-list small{display:block;margin-top:2px;color:var(--text-tertiary);font-size:11px}.preview-notice{margin:14px 0 0;padding:10px 12px;border-radius:var(--radius-sm);color:var(--success-text);background:var(--primary-soft);font-size:12px}.confirm-actions{display:grid;gap:8px;margin-top:16px}.profile-page{width:min(100%,var(--content-width));margin:0 auto;padding:24px var(--page-gutter)}.profile-page>h1{font-size:24px}.profile-identity{display:flex;align-items:center;gap:14px;margin:18px 0 22px}.avatar{width:68px;height:68px;aspect-ratio:1;flex:0 0 68px;border:2px solid #fff;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:linear-gradient(135deg,#287a4a,var(--primary));font-size:28px;font-weight:800;line-height:1}.profile-identity h2{margin:0 0 3px}.profile-identity p{margin:0;font-size:13px}.profile-identity span{display:inline-block;margin-top:6px;padding:4px 8px;border-radius:12px;color:var(--primary);background:var(--primary-soft);font-size:11px}.goal-card{padding:18px;border:1px solid var(--border);border-radius:var(--radius-lg);position:relative;background:var(--surface-raised);box-shadow:var(--shadow-card)}.goal-card>span{font-size:13px;font-weight:700}.goal-card>button{position:absolute;top:10px;right:10px;width:40px;height:40px;border:0;border-radius:50%;background:var(--surface-active);cursor:pointer}.goal-card svg{width:14px}.goal-number{display:flex;align-items:center;justify-content:space-between;margin:12px 0}.goal-number small{display:block;color:var(--text-secondary);font-size:11px}.goal-number strong{display:block;margin:4px 0;font-size:29px}.goal-number strong i,.goal-number span{color:var(--text-secondary);font-size:11px;font-style:normal}.ring{--goal-ring-color: var(--primary);width:68px;height:68px;padding:6px;flex:none;border-radius:50%;display:grid;background:conic-gradient(var(--goal-ring-color) var(--goal-progress, 0%),var(--track) 0);font-size:14px;font-weight:700}.ring.over{--goal-ring-color: var(--danger);color:var(--danger)}.ring>span{border-radius:50%;display:grid;place-items:center;align-content:center;background:var(--surface-raised)}.ring small{color:var(--text-secondary);font-size:6px}.profile-macros{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:10px}.profile-macros span{min-width:0;display:grid;gap:3px;color:var(--text-secondary);font-size:10px}.profile-macros b{color:var(--text);font-size:12px}.profile-page>h3{margin:24px 4px 10px;color:var(--text-secondary);font-size:12px;letter-spacing:.08em}.theme-setting{min-height:68px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--surface);box-shadow:var(--shadow-card)}.theme-setting>div{min-width:0;display:grid;gap:4px}.theme-setting b{font-size:14px}.theme-setting small{color:var(--text-tertiary);font-size:11px}.settings-list{border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;background:var(--surface)}.settings-list button{width:100%;min-height:64px;padding:9px 10px;border:0;border-bottom:1px solid var(--border);display:grid;grid-template-columns:40px 1fr 28px;align-items:center;gap:10px;background:transparent;text-align:left;cursor:pointer}.settings-list button:last-child{border-bottom:0}.settings-list button>span{width:40px;height:40px;border-radius:var(--radius-sm);display:grid;place-items:center;background:var(--surface-active)}.settings-list svg{width:17px}.settings-list b{font-size:14px}.settings-list small{display:block;margin-top:3px;color:var(--text-tertiary);font-size:11px}.settings-list .logout b,.settings-list .logout>span{color:var(--danger)}.toggle{width:28px;height:16px;border-radius:12px;position:relative;background:#555}.toggle:after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:#fff}.toggle.on{background:var(--primary)}.toggle.on:after{left:14px}.profile-facts{margin-top:14px;display:flex;justify-content:center;gap:8px;color:var(--text-tertiary);font-size:11px}.profile-facts svg{width:13px}.avatar img{width:100%;height:100%;min-width:100%;min-height:100%;aspect-ratio:1;border-radius:inherit;display:block;object-fit:cover;object-position:center}.form-page,.resource-page,.stats-page{width:min(100%,var(--content-width));margin:0 auto;padding:20px var(--page-gutter) 36px}.form-page>form,.resource-form{display:grid;gap:12px}.form-page>p{max-width:560px}.success-card,.danger-zone,.settings-form,.resource-form,.hero-metric,.plan-detail,.chart-card,.streak-card{padding:20px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.success-card p,.danger-zone p{margin:6px 0 18px}.text-button{display:flex;align-items:center;text-decoration:none}.account-avatar{margin-bottom:24px;display:flex;align-items:center;gap:10px}.account-avatar>span,.account-avatar>img{width:76px;height:76px;border-radius:50%;display:grid;place-items:center;object-fit:cover;background:var(--surface-raised);font-size:28px;font-weight:800}.account-avatar label,.account-avatar button,.resource-heading button{min-height:40px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);font-size:12px;cursor:pointer}.settings-page>form{margin-bottom:28px}.settings-form{display:grid;gap:12px;margin-bottom:28px}.settings-form label,.select-field{min-height:52px;padding:8px 12px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--surface-raised);font-size:13px;font-weight:600}.settings-form select,.select-field select,.filter-bar select{padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.switch-row input{width:20px;height:20px;accent-color:var(--primary)}.danger-zone{margin-top:28px;border-color:#6b343a}.danger-zone h2{color:var(--error)}.button.danger{margin-top:12px;border:1px solid #754047;color:var(--danger);background:var(--danger-soft)}.account-page{width:min(100%,640px);margin:0 auto;padding:8px var(--page-gutter) 40px}.account-hero{padding:18px;border:1px solid var(--primary-border);border-radius:var(--radius-xl);display:flex;align-items:center;gap:16px;background:linear-gradient(145deg,var(--account-hero-start),var(--surface));box-shadow:var(--shadow-card)}.account-avatar-mobile{width:86px;height:86px;flex:none;border:3px solid rgb(255 255 255 / 82%);border-radius:50%;position:relative;background:var(--surface-active);box-shadow:0 10px 24px #0000003d}.account-avatar-mobile>img,.account-avatar-mobile>span{width:100%;height:100%;border-radius:inherit;display:grid;place-items:center;object-fit:cover;font-size:30px;font-weight:800}.account-avatar-mobile>label{position:absolute;right:-3px;bottom:-3px;width:34px;height:34px;border:3px solid var(--surface);border-radius:50%;display:grid;place-items:center;color:var(--primary-text);background:var(--primary);cursor:pointer}.account-avatar-mobile>label svg{width:15px}.account-avatar-mobile>label.uploading{cursor:wait}.mini-spinner{width:14px;height:14px;border:2px solid rgb(6 33 15 / 30%);border-top-color:var(--primary-text);border-radius:50%;animation:spin .7s linear infinite}.account-identity{min-width:0;flex:1}.account-identity h1{margin:0 0 4px;overflow:hidden;font-size:21px;text-overflow:ellipsis;white-space:nowrap}.account-identity>p{margin:0;overflow:hidden;color:var(--text-secondary);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.account-photo-actions{margin-top:12px;display:flex;flex-wrap:wrap;gap:7px}.account-photo-actions label,.account-photo-actions button{min-height:34px;padding:6px 9px;border:1px solid var(--border);border-radius:18px;display:flex;align-items:center;gap:5px;color:var(--text-secondary);background:var(--translucent-surface);font-size:10px;font-weight:600;cursor:pointer}.account-photo-actions label.disabled,.account-photo-actions button:disabled{opacity:.55;cursor:wait}.account-photo-actions svg{width:13px}.account-section-heading{margin:26px 4px 10px;display:flex;align-items:center;gap:11px}.account-section-heading>span{width:38px;height:38px;flex:none;border-radius:12px;display:grid;place-items:center;color:var(--primary);background:var(--primary-soft)}.account-section-heading svg{width:17px}.account-section-heading h2{margin:0 0 2px;font-size:16px}.account-section-heading p{margin:0;font-size:10px;line-height:1.4}.account-card{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;background:var(--surface);box-shadow:var(--shadow-card)}.account-profile-form{padding:14px;display:grid;gap:12px}.account-input-row{display:grid;gap:8px}.account-input-row>span{display:grid;gap:2px;font-size:12px;font-weight:700}.account-input-row small{color:var(--text-tertiary);font-size:9px;font-weight:400}.account-input-row input,.account-danger input{width:100%;min-width:0;height:48px;padding:0 13px;border:1px solid var(--border);border-radius:var(--radius-sm);outline:0;color:var(--text);background:var(--surface-raised)}.account-input-row input:focus,.account-danger input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #6edc8c1a}.account-readonly-row{min-height:54px;padding:10px 12px;border-radius:var(--radius-sm);display:flex;align-items:center;gap:11px;background:var(--surface-raised)}.account-readonly-row>svg{width:17px;flex:none;color:var(--text-tertiary)}.account-readonly-row>div{min-width:0;display:grid;gap:3px}.account-readonly-row span{color:var(--text-tertiary);font-size:9px}.account-readonly-row strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.account-save-button{min-height:46px;margin-top:2px;font-size:13px}.preference-list{display:grid}.preference-row{min-height:68px;padding:10px 12px;border-bottom:1px solid var(--border);display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:10px;cursor:pointer}.preference-row:last-child{border-bottom:0}.preference-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;color:var(--primary);background:var(--surface-active)}.preference-icon svg{width:17px}.preference-copy{min-width:0;display:grid;gap:3px}.preference-copy b{font-size:12px}.preference-copy small{color:var(--text-tertiary);font-size:9px;line-height:1.35}.preference-row select{max-width:124px;min-height:38px;padding:6px 8px;border:0;border-radius:9px;outline:0;color:var(--text);background:var(--surface-raised);font-size:11px;font-weight:600;text-align:right;cursor:pointer}.mobile-switch{width:44px;height:26px;margin:0;border:0;border-radius:15px;position:relative;appearance:none;background:var(--track);cursor:pointer;transition:background-color .18s ease}.mobile-switch:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 2px 5px #00000047;transition:transform .18s ease}.mobile-switch:checked{background:var(--primary)}.mobile-switch:checked:after{transform:translate(18px)}.mobile-switch:disabled,.preference-row select:disabled{opacity:.55;cursor:wait}.account-danger{margin-top:28px;border:1px solid #623239;border-radius:var(--radius-lg);overflow:hidden;background:var(--danger-soft)}.account-danger summary{min-height:68px;padding:12px 14px;display:grid;grid-template-columns:40px minmax(0,1fr) 24px;align-items:center;gap:10px;list-style:none;cursor:pointer}.account-danger summary::-webkit-details-marker{display:none}.account-danger summary>span{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;color:var(--danger);background:#ff858a1a}.account-danger summary svg{width:17px}.account-danger summary>div{min-width:0;display:grid;gap:3px}.account-danger summary b{color:var(--danger);font-size:12px}.account-danger summary small{color:var(--text-secondary);font-size:9px;line-height:1.4}.account-danger summary>svg{color:var(--text-tertiary);transition:transform .18s ease}.account-danger[open] summary>svg{transform:rotate(180deg)}.account-danger form{padding:0 14px 14px;border-top:1px solid #623239;display:grid;gap:10px}.account-danger form>p{margin:12px 0 0;color:var(--text-secondary);font-size:10px}.account-danger form>label{display:grid;gap:7px;color:var(--text-secondary);font-size:10px;font-weight:600}.account-danger .button.danger{min-height:46px;margin-top:0;font-size:12px}.hero-metric{margin-bottom:20px;text-align:center}.hero-metric>svg{width:30px;color:var(--primary)}.hero-metric>span{display:block;color:var(--text-secondary);font-size:12px}.hero-metric>strong{display:block;margin:4px;font-size:38px}.hero-metric>strong small{font-size:13px}.hero-metric p{margin:0}.resource-form{margin-bottom:28px}.resource-form h2{margin-bottom:4px}.form-grid{display:grid;gap:10px}.inline-actions{display:flex;gap:8px}.resource-heading{margin:24px 0 12px;display:flex;align-items:center;justify-content:space-between;gap:12px}.resource-heading h1,.resource-heading h2{margin:0}.resource-heading>span{color:var(--text-secondary);font-size:12px}.resource-heading button{display:flex;align-items:center;gap:5px}.resource-heading button svg{width:16px}.resource-list,.plan-list,.browse-list{display:grid;gap:8px}.resource-list article,.plan-list button,.browse-list a{min-height:68px;padding:10px;border:1px solid var(--border);border-radius:var(--radius-md);display:grid;grid-template-columns:42px minmax(0,1fr) 40px 40px;align-items:center;gap:9px;color:var(--text);background:var(--surface);text-align:left;text-decoration:none}.resource-icon,.plan-list button>span{width:42px;height:42px;border-radius:var(--radius-sm);display:grid;place-items:center;color:var(--primary);background:var(--surface-active)}.resource-icon svg,.plan-list svg{width:18px}.resource-list b,.plan-list b,.browse-list b{font-size:14px}.resource-list small,.plan-list small,.browse-list small{display:block;margin-top:3px;color:var(--text-secondary);font-size:11px}.resource-list article>button{width:40px;height:40px;border:0;border-radius:50%;background:transparent;cursor:pointer}.resource-list article>button svg{width:17px}.destructive-icon{color:var(--danger)}.plan-list button{width:100%;grid-template-columns:42px minmax(0,1fr) 24px;cursor:pointer}.plan-list button.current{border-color:var(--primary-border);background:var(--primary-soft)}.plan-detail{margin-top:16px;position:relative;text-align:center}.plan-detail>svg{width:28px;color:var(--primary)}.plan-detail>span{display:block;margin-top:4px;color:var(--text-secondary)}.plan-detail>strong{display:block;margin:6px;font-size:34px}.plan-detail>strong small{font-size:12px}.plan-detail>div{display:grid;grid-template-columns:repeat(3,1fr)}.plan-detail>div b,.plan-detail>div small{display:block}.plan-detail>div small{color:var(--text-secondary);font-size:10px}.close-detail{position:absolute;top:8px;right:8px;width:40px;height:40px;border:0;background:transparent;font-size:24px}.filter-bar{margin-bottom:16px;padding:10px;border-radius:var(--radius-md);display:flex;align-items:center;gap:8px;overflow-x:auto;background:var(--surface)}.filter-bar>svg{width:18px;flex:none;color:var(--primary)}.filter-bar input{min-width:128px;padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--surface-raised)}.filter-bar span{color:var(--text-tertiary);font-size:11px}.meal-type-filter select{min-width:0;flex:1}.browse-list a{grid-template-columns:64px minmax(0,1fr) 24px}.meal-browse-row{min-width:0;border:1px solid var(--border);border-radius:var(--radius-md);display:grid;grid-template-columns:minmax(0,1fr) 46px;align-items:stretch;overflow:hidden;background:var(--surface)}.browse-list .meal-browse-row>a{min-width:0;min-height:92px;padding:10px;border:0;border-radius:0;grid-template-columns:64px minmax(0,1fr) 20px;background:transparent;box-shadow:none}.meal-browse-content{min-width:0;display:grid;align-content:center;gap:3px}.meal-browse-content>span{color:var(--primary);font-size:10px;font-weight:600}.meal-browse-content>b{overflow:hidden;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.meal-nutrition-summary{display:grid;gap:2px;margin-top:2px}.meal-nutrition-summary strong{color:var(--text);font-size:11px;font-weight:600;line-height:1.35}.meal-nutrition-summary>div{display:flex;flex-wrap:wrap;gap:3px 8px}.meal-nutrition-summary small{margin:0;color:var(--text-secondary);font-size:9px}.meal-delete-button{width:46px;min-height:100%;border:0;border-left:1px solid var(--border);display:grid;place-items:center;color:var(--danger);background:transparent;cursor:pointer}.meal-delete-button svg{width:17px}.meal-delete-button:disabled{opacity:.45}.browse-image{width:64px;height:64px;border-radius:var(--radius-sm);overflow:hidden;display:grid;place-items:center;color:var(--primary);background:var(--surface-active)}.browse-list p{margin:3px 0 0;font-size:11px}.detail-hero-image{width:100%;max-height:420px;margin:0 auto 16px;border-radius:var(--radius-lg);display:block;object-fit:cover;object-position:center;background:var(--surface)}.editable-items{display:grid;gap:12px;margin-bottom:12px}.editable-items article{padding:12px;border:1px solid var(--border);border-radius:var(--radius-md);position:relative;background:var(--surface)}.remove-item{position:absolute;top:4px;right:4px;z-index:1;width:40px;height:40px;border:0;color:var(--danger);background:transparent}.remove-item svg{width:17px}.editable-items article>.field{margin-right:36px}.nutrition-inputs{margin-top:8px;display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.meal-detail-page>.button{margin-top:10px}.date-total{margin-bottom:18px;display:flex;align-items:stretch;gap:10px}.date-total>label,.date-total>div{flex:1;padding:12px;border-radius:var(--radius-md);background:var(--surface)}.date-total label{display:grid;gap:6px;font-size:11px}.date-total input{padding:6px;border:1px solid var(--border);border-radius:7px;background:var(--surface-raised)}.date-total>div{display:grid;grid-template-columns:28px 1fr;align-content:center}.date-total svg{grid-row:1 / 3;color:var(--primary)}.date-total span{color:var(--text-secondary);font-size:10px}.date-total b{font-size:15px}.quick-links{margin:-8px 0 18px;display:flex;gap:8px}.quick-links a{flex:1;min-height:40px;border:1px solid var(--border);border-radius:var(--radius-sm);display:grid;place-items:center;color:var(--primary);background:var(--surface);font-size:12px;font-weight:600;text-decoration:none}.saved-notice{padding:10px 12px;border-radius:var(--radius-sm);color:var(--success-text);background:var(--primary-soft);font-size:12px}@media(hover:hover)and (pointer:fine){:where(button:not(:disabled),a[href],.account-avatar label):hover{filter:brightness(1.12)}.field:hover{border-color:#41614f;background:var(--surface-raised)}:where(input:not([type=checkbox]):not([type=range]):not([type=file]),textarea,select):hover{border-color:#4b705b;box-shadow:0 0 0 1px #ffffff0a}:where(.meal-timeline-card,.browse-list a,.plan-list button,.settings-list button):hover{border-color:#41614f;background:var(--surface-raised);box-shadow:0 8px 22px #0000003d}}@media(prefers-reduced-motion:reduce){:where(button,a,input,textarea,select,.account-avatar label,.meal-timeline-card){transition-duration:.01ms!important}:where(button,a,.account-avatar label):active{transform:none}}.meal-detail{width:min(100%,var(--content-width));min-height:100dvh;margin:0 auto;padding-bottom:36px}.header-action{width:40px;height:40px;border:0;border-radius:50%;display:grid;place-items:center;background:var(--surface);cursor:pointer}.header-action svg{width:18px}.meal-detail-hero{height:clamp(230px,62vw,430px);margin:0 var(--page-gutter);border-radius:var(--radius-xl);position:relative;overflow:hidden;display:grid;place-items:center;background:linear-gradient(145deg,#214731,#0b1811)}.meal-detail-hero:after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,#000000b8);pointer-events:none}.meal-image>img,.browse-image>img,.confirm-photo>img,.meal-detail-hero>img{width:100%;height:100%;display:block;object-fit:cover;object-position:center}.meal-detail-hero>svg{width:54px;height:54px;color:var(--primary)}.meal-detail-hero>span{position:absolute;z-index:1;bottom:14px;left:14px;min-height:32px;padding:7px 10px;border:1px solid rgb(255 255 255 / 14%);border-radius:18px;display:flex;align-items:center;gap:6px;background:#0a0a0ab8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:11px;font-weight:600}.meal-detail-hero>span svg{width:14px;color:var(--primary)}.meal-detail-content,.meal-edit-content{padding:22px var(--page-gutter) 0}.meal-title-block{display:flex;align-items:start;justify-content:space-between;gap:14px}.meal-title-block h1{margin:0 0 6px;font-size:clamp(24px,6vw,32px)}.meal-title-block p{margin:0;display:flex;align-items:center;gap:6px;font-size:12px}.meal-title-block p svg{width:15px}.calorie-badge{min-width:76px;padding:10px;border-radius:var(--radius-md);display:grid;grid-template-columns:18px 1fr;align-items:center;color:var(--primary);background:var(--primary-soft)}.calorie-badge svg{width:16px}.calorie-badge strong{font-size:18px;line-height:1}.calorie-badge small{grid-column:2;margin-top:3px;color:#9bd8ad;font-size:9px}.meal-note{margin:16px 0 0;padding:12px 14px;border-left:3px solid var(--primary);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--surface);font-size:13px;font-style:italic}.nutrition-card{margin:20px 0 26px;padding:18px;border:1px solid var(--primary-border);border-radius:var(--radius-lg);background:linear-gradient(145deg,var(--nutrition-card-start),var(--surface));box-shadow:var(--shadow-card)}.nutrition-card-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.nutrition-card-heading>div{display:grid}.nutrition-card-heading span,.nutrition-card-heading>small{color:var(--text-secondary);font-size:10px}.nutrition-card-heading strong{margin-top:2px;font-size:20px}.nutrition-card-heading>small{padding:5px 8px;border-radius:12px;background:var(--surface-raised)}.detail-macros{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.detail-macros>div{min-width:0}.detail-macros span{display:block;overflow:hidden;color:var(--text-secondary);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.detail-macros b{display:block;margin:2px 0 7px;font-size:15px}.detail-secondary-nutrients{margin-top:16px;padding-top:14px;border-top:1px solid var(--border);display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.detail-secondary-nutrients>div{min-width:0;padding:0 10px;display:grid;gap:3px;text-align:center}.detail-secondary-nutrients>div:first-child{padding-left:0}.detail-secondary-nutrients>div:last-child{padding-right:0}.detail-secondary-nutrients>div+div{border-left:1px solid var(--border)}.detail-secondary-nutrients span{color:var(--text-secondary);font-size:9px}.detail-secondary-nutrients b{font-size:13px}.meal-section-title{margin:22px 2px 12px;display:flex;align-items:end;justify-content:space-between;gap:12px}.meal-section-title>div>span{color:var(--primary);font-size:9px;font-weight:700;letter-spacing:.08em}.meal-section-title h2{margin:2px 0 0;font-size:18px}.meal-section-title>span{color:var(--text-secondary);font-size:11px}.meal-section-title>button{min-height:38px;padding:7px 11px;border:1px solid var(--border);border-radius:var(--radius-sm);display:flex;align-items:center;gap:5px;color:var(--primary);background:var(--surface);font-size:11px;font-weight:700;cursor:pointer}.meal-section-title>button svg{width:15px}.detail-ingredients{display:grid;gap:9px}.detail-ingredients article{min-height:82px;padding:12px;border:1px solid var(--border);border-radius:var(--radius-md);display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:11px;background:var(--surface);box-shadow:var(--shadow-card)}.ingredient-number{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:var(--primary);background:var(--primary-soft);font-size:12px;font-weight:700}.detail-ingredients h3{margin:0 0 3px;overflow:hidden;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.detail-ingredients p{margin:0 0 6px;font-size:10px}.detail-ingredients>article>strong{color:var(--primary);font-size:17px;text-align:right}.detail-ingredients>article>strong small{display:block;color:var(--text-secondary);font-size:8px;font-weight:500}.mini-macros{display:flex;gap:5px}.mini-macros span{padding:3px 5px;border-radius:5px;color:var(--text-secondary);background:var(--surface-active);font-size:8px}.mini-macros span:nth-child(2){color:var(--protein)}.mini-macros span:nth-child(3){color:var(--fat)}.meal-detail-actions{display:grid;gap:10px;margin-top:22px}.delete-text{min-height:44px;border:0;display:flex;align-items:center;justify-content:center;gap:7px;color:var(--danger);background:transparent;font-size:12px;font-weight:600;cursor:pointer}.delete-text svg{width:16px}.meal-detail.is-editing{padding-bottom:94px}.meal-edit-content{display:grid;gap:18px}.edit-section{padding:16px;border:1px solid var(--border);border-radius:var(--radius-lg);display:grid;gap:12px;background:var(--surface)}.edit-kicker{color:var(--primary);font-size:9px;font-weight:700;letter-spacing:.09em}.edit-section label,.portion-row label,.macro-edit-row label{display:grid;gap:6px;color:var(--text-secondary);font-size:10px;font-weight:600}.edit-section input,.edit-section select,.edit-section textarea,.meal-item-edit-list input{width:100%;min-width:0;border:1px solid var(--border);border-radius:var(--radius-sm);outline:0;color:var(--text);background:var(--surface-raised)}.edit-section input,.edit-section select{height:46px;padding:0 12px}.edit-section textarea{padding:11px 12px;resize:vertical}.edit-section input:focus,.edit-section select:focus,.edit-section textarea:focus,.meal-item-edit-list input:focus{border-color:var(--primary)}.meal-context-section h2{margin:0;font-size:18px}.meal-context-section>p{margin:-4px 0 4px;color:var(--text-secondary);font-size:12px;line-height:1.6}.meal-context-section>small{justify-self:end;margin-top:-8px;color:var(--text-secondary);font-size:10px}.refinement-preview{display:grid;gap:12px}.refinement-preview .preview-title,.refinement-preview .energy-card{margin:0}.edit-row{display:grid;grid-template-columns:.8fr 1.2fr;gap:8px}.meal-item-edit-list{display:grid;gap:12px}.meal-item-edit-list article{padding:14px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.meal-item-edit-list article>header{display:grid;grid-template-columns:30px minmax(0,1fr) 40px;align-items:center;gap:8px}.meal-item-edit-list article>header>span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:var(--primary);background:var(--primary-soft);font-size:10px;font-weight:700}.meal-item-edit-list article>header input{height:42px;padding:0 10px;font-size:13px;font-weight:700}.meal-item-edit-list article>header button{width:40px;height:40px;border:0;border-radius:50%;display:grid;place-items:center;color:var(--danger);background:transparent}.meal-item-edit-list article>header button svg{width:16px}.portion-row{margin-top:12px;display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.portion-row input{height:40px;padding:0 8px;font-size:11px}.macro-edit-row{margin-top:12px;padding-top:12px;border-top:1px solid var(--border);display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.macro-edit-row label{position:relative}.macro-edit-row input{height:42px;padding:0 22px 0 7px;font-size:11px}.macro-edit-row small{position:absolute;right:6px;bottom:13px;color:var(--text-tertiary);font-size:8px}.edit-action-bar{position:fixed;z-index:11;right:0;bottom:0;left:0;width:min(100%,var(--content-width));min-height:76px;margin:auto;padding:10px var(--page-gutter) max(10px,env(safe-area-inset-bottom));border-top:1px solid var(--border);display:grid;grid-template-columns:.7fr 1.3fr;gap:8px;background:var(--nav-background);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.edit-action-bar button{min-height:50px;border:1px solid var(--border);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;gap:7px;background:var(--surface);font-size:12px;font-weight:700;cursor:pointer}.edit-action-bar button:last-child{border-color:var(--primary);color:var(--primary-text);background:var(--primary)}.edit-action-bar button:disabled{opacity:.5}.edit-action-bar svg{width:17px}.stats-page>header{display:flex;align-items:center;justify-content:space-between}.stats-page>header span{color:var(--primary);font-size:12px;font-weight:700}.stats-page>header h1{margin:2px 0 0}.stats-page>header svg{width:32px;color:var(--primary)}.range-picker{margin:18px 0;padding:4px;border:1px solid var(--border);border-radius:var(--radius-md);display:grid;grid-template-columns:repeat(3,1fr);gap:4px;background:var(--surface)}.range-picker button{min-height:42px;border:0;border-radius:var(--radius-sm);color:var(--text-secondary);background:transparent;font-size:12px;font-weight:700;cursor:pointer}.range-picker button.active{color:var(--primary-text);background:var(--primary);box-shadow:0 2px 10px #6edc8c29}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stats-grid article{min-height:132px;padding:16px;border:1px solid var(--border);border-radius:var(--radius-md);display:grid;align-content:start;background:var(--surface)}.stats-grid svg{width:20px;margin-bottom:10px;color:var(--primary)}.stats-grid span{color:var(--text-secondary);font-size:11px}.stats-grid strong{margin-top:3px;font-size:26px}.stats-grid small{color:var(--text-tertiary);font-size:10px}.chart-card{margin-top:16px}.chart-card>div:first-child span{color:var(--text-secondary);font-size:11px}.bar-chart{height:180px;margin-top:20px;display:flex;align-items:end;gap:4px;overflow-x:auto}.bar-chart>div{min-width:14px;height:100%;flex:1;display:flex;flex-direction:column;justify-content:end;align-items:center;gap:5px}.bar-chart i{width:70%;min-height:2px;border-radius:5px 5px 2px 2px;background:var(--primary)}.bar-chart i.reached{background:var(--fat)}.bar-chart small{color:var(--text-tertiary);font-size:8px}.macro-totals{margin-top:12px;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.macro-totals>div{padding:12px;border-radius:var(--radius-sm);display:grid;background:var(--surface)}.macro-totals span{color:var(--text-secondary);font-size:10px}.macro-totals b{font-size:16px}.streak-card{margin-top:16px;display:flex;gap:14px}.streak-card>span{font-size:32px}.streak-card h2{margin-bottom:4px}.streak-card p{margin:0;font-size:12px}@media(min-width:600px){:root{--page-gutter: clamp(24px, 5vw, 40px)}.welcome,.auth-page,.onboarding,.diary-page,.profile-page{padding-top:32px}.calorie-progress-card,.goal-card,.form-card,.recommend-card{padding:24px}.calorie-progress-overview{grid-template-columns:170px minmax(0,1fr);gap:28px}.meal-timeline-item{grid-template-columns:60px minmax(0,1fr);gap:14px}.meal-timeline-main{padding:12px;gap:15px}.bottom-nav{box-shadow:0 -12px 30px #0000002e}}@media(max-width:420px){.choice-grid.four{grid-template-columns:repeat(2,1fr)}.pwa-status{grid-template-columns:1fr;gap:12px}.pwa-status-actions{justify-content:end}.account-hero{padding:14px;gap:12px}.account-avatar-mobile{width:78px;height:78px}.account-photo-actions{margin-top:9px}.account-section-heading{margin-top:22px}.calorie-progress-card{padding:16px}.calorie-progress-overview{gap:13px}.calorie-macro-grid>div{padding-inline:6px}.meal-timeline{gap:13px}.meal-timeline-item{grid-template-columns:46px minmax(0,1fr);gap:8px}.meal-timeline-rail>span{width:40px;height:40px}.meal-timeline-rail:after{top:66px;bottom:-21px}.meal-timeline-rail.with-date:after{top:78px}.meal-timeline-rail svg{width:17px}.meal-timeline-main{padding:8px;grid-template-columns:clamp(78px,22vw,92px) minmax(0,1fr);gap:9px}.meal-timeline-image{height:118px;max-height:118px}.meal-timeline-card.with-menu .meal-timeline-content{padding-right:23px}.meal-macro-chips{margin-top:9px;gap:4px}.meal-macro-chips>span{padding:4px 6px;font-size:7px}}@media(max-width:360px){.calorie-progress-overview{grid-template-columns:108px minmax(0,1fr)}.calorie-progress-copy>strong{font-size:24px}.calorie-progress-card>header>small{max-width:112px;overflow:hidden;text-overflow:ellipsis}.preference-row select{width:100%;max-width:none;grid-column:2 / 4;text-align:left}}@media(max-height:700px){.welcome{padding-top:20px}.welcome-copy{margin:24px 0}.mascot{font-size:64px}.capture-hint{margin-bottom:8px}.gallery-chip{margin-block:8px}.photo-tip{margin-block:6px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
