:root{--bg:#f6f5f1;--surface:#fff;--surface-2:#eeede7;--ink:#191917;--ink-2:#57564f;--ink-3:#8f8d85;--line:#e4e2da;--line-strong:#cfccc2;--accent:#2e5e4e;--accent-soft:#e4ece7;--danger:#b42318;--danger-soft:#fbedeb;--font-sans:"DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-serif:"Fraunces", Georgia, "Times New Roman", serif;--radius-sm:.625rem;--radius:1rem;--radius-lg:1.5rem;--sidebar-w:15rem;--rail-w:4.75rem;--ease:cubic-bezier(.2, .7, .2, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}html,body{width:100%;height:100%}body{font-family:var(--font-sans);background-color:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:1rem;line-height:1.55}#root{width:100%;height:100%}input,button,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}a{color:inherit;text-decoration:none}::selection{background-color:var(--accent-soft);color:var(--ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.input-label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-top:1.25rem;margin-bottom:.5rem;font-size:.72rem;font-weight:500;display:block}input[type=text],input[type=email],input[type=password]{width:100%;height:3rem;color:var(--ink);background-color:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);transition:border-color .2s var(--ease), box-shadow .2s var(--ease);margin-bottom:.5rem;padding:0 1rem;font-size:.95rem;display:block}input[type=text]:hover,input[type=email]:hover,input[type=password]:hover{border-color:var(--line-strong)}input[type=text]:focus,input[type=email]:focus,input[type=password]:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft);outline:none}textarea{width:100%;min-height:7.5rem;color:var(--ink);background-color:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);resize:vertical;transition:border-color .2s var(--ease), box-shadow .2s var(--ease);margin-bottom:.5rem;padding:.875rem 1rem;font-size:.95rem;line-height:1.55;display:block}textarea:hover{border-color:var(--line-strong)}textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft);outline:none}textarea:disabled{opacity:.6;cursor:not-allowed}input::placeholder,textarea::placeholder{color:#b5b3aa}input:disabled{opacity:.6;cursor:not-allowed}.primary-btn{letter-spacing:.01em;color:#fff;background-color:var(--ink);width:100%;min-height:3rem;transition:background-color .2s var(--ease), transform .2s var(--ease);border:none;border-radius:999px;justify-content:center;align-items:center;padding:0 1.5rem;font-size:.95rem;font-weight:500;display:inline-flex}.primary-btn:hover{background-color:var(--accent)}.primary-btn:active{transform:scale(.98)}.primary-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.outline-btn{white-space:nowrap;height:2.5rem;color:var(--ink);border:1px solid var(--line-strong);transition:color .2s var(--ease), background-color .2s var(--ease), border-color .2s var(--ease);background:0 0;border-radius:999px;flex:none;padding:0 1.25rem;font-size:.85rem;font-weight:500}.outline-btn:hover{color:#fff;background-color:var(--ink);border-color:var(--ink)}.error-text{color:var(--danger);margin-bottom:1rem;font-size:.8rem}.page{width:100%;min-width:0;height:100%;animation:page-in .5s var(--ease) both;flex:1;padding:clamp(1.75rem,4vw,3.5rem) clamp(1.25rem,5vw,4.5rem);overflow-y:auto}.page>*{max-width:72rem}.page-title{font-family:var(--font-serif);letter-spacing:-.025em;color:var(--ink);margin-bottom:.75rem;font-size:clamp(2rem,4.5vw,3.25rem);font-weight:400;line-height:1.08}.page .page-subtitle{max-width:38rem;color:var(--ink-2);margin-bottom:clamp(2rem,4vw,3rem);font-size:clamp(.95rem,1.4vw,1.05rem)}.section-heading{font-family:var(--font-sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin:2.75rem 0 1rem;font-size:.72rem;font-weight:500}.page-footnote{max-width:40rem;color:var(--ink-3);border-top:1px solid var(--line);margin-top:3rem;padding-top:1.25rem;font-size:.8rem}@keyframes page-in{0%{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.sidnaveOuterContainer{flex:0 0 var(--sidebar-w);width:var(--sidebar-w);height:100%;color:var(--ink);background-color:var(--bg);border-right:1px solid var(--line)}.dyp-side{flex-direction:column;height:100%;padding:2rem 1rem;display:flex;overflow:hidden}.dyp-side:before{content:"NutriTrack";font-family:var(--font-serif);letter-spacing:-.02em;white-space:nowrap;color:var(--ink);padding:0 .75rem 2.5rem;font-size:1.5rem;font-weight:400;display:block}.dyp-side ul{flex-direction:column;gap:.25rem;list-style:none;display:flex}.asideListItem{border-radius:var(--radius-sm);color:var(--ink-2);cursor:pointer;transition:background-color .2s var(--ease), color .2s var(--ease);align-items:center;gap:.875rem;padding:.7rem .75rem;display:flex}.asideListItem:hover{background-color:var(--surface-2);color:var(--ink)}.asideListItem span{text-align:center;filter:grayscale();opacity:.75;transition:filter .25s var(--ease), opacity .25s var(--ease);flex:0 0 1.5rem;font-size:1rem}.asideListItem:hover span{filter:none;opacity:1}.asideListItem-active,.asideListItem-active:hover{color:var(--ink);background-color:var(--surface);box-shadow:inset 0 0 0 1px var(--line)}.asideListItem-active span{filter:none;opacity:1}.asideListItem p{white-space:nowrap;text-overflow:ellipsis;transition:opacity .2s var(--ease);font-size:.925rem;font-weight:500;overflow:hidden}.sidebarOpenBtn{display:none}@media (width>=48.0625rem) and (width<=64rem){.sidnaveOuterContainer{flex-basis:var(--rail-w);width:var(--rail-w);border-right:none}.dyp-side{z-index:50;width:var(--rail-w);background-color:var(--bg);border-right:1px solid var(--line);transition:width .3s var(--ease);padding:1.75rem .75rem;position:fixed;top:0;bottom:0;left:0}.dyp-side:before{content:"N";text-align:center;padding:0 0 2.25rem}.asideListItem{padding:.75rem}.asideListItem p{opacity:0}.dyp-side.showSidebar{width:var(--sidebar-w)}.dyp-side.showSidebar:before{content:"NutriTrack";text-align:left;padding-left:.75rem}.dyp-side.showSidebar .asideListItem p{opacity:1}.sidebarOpenBtn{left:calc((var(--rail-w) - 2.5rem) / 2);z-index:60;width:2.5rem;height:2.5rem;color:var(--ink-2);background-color:var(--surface);border:1px solid var(--line);transition:border-color .2s var(--ease), color .2s var(--ease);border-radius:50%;justify-content:center;align-items:center;font-size:1rem;display:flex;position:fixed;bottom:1.5rem}.sidebarOpenBtn:hover{color:var(--ink);border-color:var(--ink)}}@media (width<=48rem){.sidnaveOuterContainer{z-index:50;border-right:none;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);width:100%;height:auto;padding-bottom:env(safe-area-inset-bottom);background-color:#f6f5f1e0;position:fixed;bottom:0;left:0;right:0}.sidebarOpenBtn{display:none}.dyp-side{height:auto;padding:.4rem .5rem}.dyp-side:before{display:none}.dyp-side ul{flex-direction:row;justify-content:space-around;gap:0}.asideListItem{flex-direction:column;flex:1;gap:.2rem;min-width:0;padding:.5rem .25rem}.asideListItem:hover{background-color:#0000}.asideListItem span{flex:none;font-size:1.15rem}.asideListItem p{letter-spacing:.01em;max-width:100%;font-size:.68rem}}.layout{background-color:var(--bg);flex-direction:row;width:100%;height:100dvh;display:flex}.layout>.page{flex:1;min-width:0}@media (width<=48rem){.layout>.page{padding-bottom:calc(6rem + env(safe-area-inset-bottom))}}.auth-wrapper{background-color:var(--bg);width:100%;min-height:100dvh;display:flex}.auth-brand-panel{background-color:var(--accent-soft);color:var(--accent);flex-direction:column;flex:0 0 44%;padding:clamp(2rem,4vw,3.5rem);display:flex;position:relative;overflow:hidden}.auth-brand-panel:before,.auth-brand-panel:after{content:"";pointer-events:none;border:1px solid #2e5e4e2e;border-radius:50%;position:absolute}.auth-brand-panel:before{width:34rem;height:34rem;top:-9rem;right:-13rem}.auth-brand-panel:after{width:22rem;height:22rem;top:-3rem;right:-7rem}.auth-logo{background-color:var(--surface);border-radius:50%;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;margin-bottom:auto;font-size:1.2rem;display:flex;position:relative}.auth-brand-title{font-family:var(--font-serif);letter-spacing:-.04em;color:var(--accent);margin-top:4rem;font-size:clamp(2.75rem,6vw,5rem);font-weight:300;line-height:1;position:relative}.auth-brand-text{max-width:22rem;font-family:var(--font-serif);color:var(--ink-2);margin-top:1.25rem;font-size:clamp(1.05rem,1.6vw,1.3rem);font-style:italic;font-weight:300;line-height:1.45;position:relative}.auth-form-panel{flex:1;justify-content:center;align-items:center;min-width:0;padding:clamp(2rem,5vw,4rem) clamp(1.25rem,5vw,4rem);display:flex}.auth-form{width:100%;max-width:24rem;animation:page-in .5s var(--ease) both}.auth-form .error-text,.small-card .error-text{margin:.25rem 0 0;line-height:1.4}.input-hint{color:var(--ink-3);margin-top:.25rem;font-size:.78rem}.auth-heading{font-family:var(--font-serif);letter-spacing:-.025em;color:var(--ink);margin-bottom:.5rem;font-size:clamp(1.9rem,3.5vw,2.4rem);font-weight:400;line-height:1.1}.auth-subheading{color:var(--ink-2);margin-bottom:1.25rem;font-size:.95rem}.auth-row-between{color:var(--ink-2);justify-content:space-between;align-items:center;margin-top:.75rem;font-size:.85rem;display:flex}.checkbox-label{color:var(--ink-2);align-items:center;gap:.4rem;display:flex}.checkbox-label input{width:auto;margin:0}.auth-form .primary-btn,.small-card .primary-btn{margin-top:1.75rem;margin-bottom:.75rem}.auth-footer-text{text-align:center;color:var(--ink-2);margin-top:1.5rem;font-size:.9rem}.signuplink{color:var(--ink);border-bottom:1px solid var(--ink);cursor:pointer;transition:color .2s var(--ease), border-color .2s var(--ease);margin-left:.25rem;font-weight:600;display:inline}.signuplink:hover{color:var(--accent);border-color:var(--accent)}.link-text{color:var(--ink-2);cursor:pointer;transition:color .2s var(--ease);font-size:.9rem;font-weight:500}.link-text:hover{color:var(--ink)}.success-text{color:var(--accent);margin-bottom:1rem;font-size:.85rem}.centered-wrapper{background-color:var(--bg);justify-content:center;align-items:center;width:100%;min-height:100dvh;padding:clamp(1.25rem,5vw,3rem);display:flex}.small-card{background-color:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);width:100%;max-width:27rem;animation:page-in .5s var(--ease) both;padding:clamp(1.75rem,5vw,2.75rem)}.small-card-icon{background-color:var(--surface-2);border-radius:50%;justify-content:center;align-items:center;width:3rem;height:3rem;margin-bottom:1.5rem;font-size:1.25rem;display:flex}.back-link{text-align:center;margin-top:1.25rem;display:block}.logout-card{text-align:center}.logout-icon{background-color:var(--danger-soft);margin:0 auto 1.5rem}.logout-card .auth-subheading{max-width:20rem;margin:0 auto}.logout-btn-row{gap:.75rem;margin-top:2rem;display:flex}.secondary-btn,.danger-btn{min-height:3rem;transition:background-color .2s var(--ease), border-color .2s var(--ease), transform .2s var(--ease);border-radius:999px;flex:1;padding:0 1.25rem;font-size:.95rem;font-weight:500}.secondary-btn{color:var(--ink);border:1px solid var(--line-strong);background-color:#0000}.secondary-btn:hover{border-color:var(--ink)}.danger-btn{color:#fff;background-color:var(--danger);border:1px solid var(--danger)}.danger-btn:hover{background-color:#8f1c13}.secondary-btn:active,.danger-btn:active{transform:scale(.98)}@media (width<=64rem){.auth-brand-panel{flex-basis:40%}.auth-brand-panel:before{width:26rem;height:26rem;right:-12rem}.auth-brand-panel:after{width:16rem;height:16rem;right:-6rem}}@media (width<=48rem){.auth-wrapper{flex-direction:column}.auth-brand-panel{flex:none;padding:1.5rem 1.25rem 2rem}.auth-brand-panel:before{width:18rem;height:18rem;top:-8rem;right:-7rem}.auth-brand-panel:after{width:11rem;height:11rem;top:-4rem;right:-3rem}.auth-brand-title{margin-top:2rem;font-size:2.5rem}.auth-brand-text{margin-top:.5rem;font-size:1rem}.auth-form-panel{align-items:flex-start;padding:2rem 1.25rem 3rem}}@media (width<=24rem){.logout-btn-row{flex-direction:column-reverse}}.page-topbar{justify-content:flex-end;align-items:center;gap:.75rem;margin-bottom:clamp(1.5rem,4vw,2.5rem);display:flex}.bell-icon{letter-spacing:.04em;text-transform:capitalize;height:2.25rem;color:var(--ink-2);border:1px solid var(--line);cursor:pointer;transition:color .2s var(--ease), border-color .2s var(--ease);border-radius:999px;align-items:center;padding:0 1rem;font-size:.8rem;font-weight:500;display:inline-flex}.bell-icon:hover{color:var(--ink);border-color:var(--ink)}.avatar-chip{align-items:center;gap:.5rem;display:flex}.avatar-circle{width:2.25rem;height:2.25rem;font-family:var(--font-serif);text-transform:uppercase;color:#fff;background-color:var(--accent);border-radius:50%;justify-content:center;align-items:center;font-size:1rem;display:flex}.hero-card{color:#f6f5f1;background-color:var(--accent);border-radius:var(--radius-lg);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.5rem 2rem;padding:clamp(1.75rem,4vw,3rem);display:flex;position:relative;overflow:hidden}.hero-card:before,.hero-card:after{content:"";pointer-events:none;border:1px solid #ffffff24;border-radius:50%;position:absolute}.hero-card:before{width:26rem;height:26rem;top:-12rem;right:-8rem}.hero-card:after{width:15rem;height:15rem;top:-6.5rem;right:-2.5rem}.hero-card>*{position:relative}.hero-heading{font-family:var(--font-serif);letter-spacing:-.02em;margin-bottom:.75rem;font-size:clamp(1.5rem,3vw,2.25rem);font-weight:400;line-height:1.15}.hero-text{color:#f6f5f1bf;max-width:34rem;font-size:.95rem}.hero-btn{white-space:nowrap;min-height:3rem;color:var(--ink);transition:background-color .2s var(--ease), transform .2s var(--ease);background-color:#f6f5f1;border:none;border-radius:999px;padding:0 1.5rem;font-size:.9rem;font-weight:500}.hero-btn:hover{background-color:#fff;transform:translateY(-1px)}.stat-grid{background-color:var(--line);border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:repeat(4,1fr);gap:1px;display:grid;overflow:hidden}.stat-card{background-color:var(--surface);flex-direction:column;padding:clamp(1.25rem,2.5vw,1.75rem);display:flex}.stat-icon{filter:grayscale();opacity:.7;margin-bottom:1.5rem;font-size:1.1rem}.stat-label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-bottom:.4rem;font-size:.72rem;font-weight:500}.stat-value{font-family:var(--font-serif);letter-spacing:-.02em;color:var(--ink);font-size:clamp(1.4rem,2.4vw,1.9rem);font-weight:400;line-height:1.15}.stat-sub{color:var(--ink-3);margin-top:.35rem;font-size:.8rem}@media (width<=64rem){.stat-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=48rem){.hero-card{flex-direction:column;align-items:stretch}.hero-btn{width:100%}}@media (width<=26rem){.stat-grid{grid-template-columns:1fr}}.avatar-name{color:var(--ink-2);font-size:.875rem;font-weight:500}.meal-list{background-color:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.meal-row{border-bottom:1px solid var(--line);align-items:center;gap:1rem 1.25rem;padding:1.1rem clamp(1rem,2.5vw,1.5rem);display:flex}.meal-row:last-child{border-bottom:none}.meal-row-icon{background-color:var(--surface-2);border-radius:50%;flex:none;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;font-size:1.2rem;display:flex}.meal-row-info{flex:1;min-width:0}.meal-row-name{font-family:var(--font-serif);color:var(--ink);font-size:1.15rem}.meal-row-desc{color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;text-transform:capitalize;font-size:.85rem;overflow:hidden}.meal-row-kcal{font-family:var(--font-serif);color:var(--ink);font-variant-numeric:tabular-nums;flex:none;font-size:1.25rem}.meal-row-kcal span{font-family:var(--font-sans);color:var(--ink-3);font-size:.75rem}.steps-grid{grid-template-columns:repeat(3,1fr);gap:clamp(1.25rem,3vw,2.5rem);display:grid}.step-card{border-top:1px solid var(--ink);padding-top:1.25rem}.step-number{font-family:var(--font-serif);color:var(--ink-3);margin-bottom:.5rem;font-size:.95rem;font-style:italic}.step-title{font-family:var(--font-serif);color:var(--ink);margin-bottom:.35rem;font-size:1.25rem}.step-text{color:var(--ink-2);font-size:.9rem}@media (width<=48rem){.avatar-name{display:none}.meal-row{flex-wrap:wrap}.meal-row .outline-btn{width:100%}.steps-grid{grid-template-columns:1fr}}.meal-tabs{grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:1.25rem;display:grid}.meal-tab{text-align:left;background-color:var(--surface);border:1px solid var(--line);border-radius:var(--radius);transition:border-color .2s var(--ease), background-color .2s var(--ease);grid-template-columns:auto 1fr;grid-template-areas:"icon label""icon status";align-items:center;column-gap:.875rem;padding:1rem 1.25rem;display:grid}.meal-tab:hover{border-color:var(--line-strong)}.meal-tab:disabled{cursor:not-allowed}.meal-tab-active,.meal-tab-active:hover{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.meal-tab-icon{background-color:var(--surface-2);filter:grayscale();width:2.5rem;height:2.5rem;transition:filter .2s var(--ease);border-radius:50%;grid-area:icon;justify-content:center;align-items:center;font-size:1.15rem;display:flex}.meal-tab-active .meal-tab-icon{filter:none}.meal-tab-label{font-family:var(--font-serif);color:var(--ink);grid-area:label;font-size:1.15rem;line-height:1.2}.meal-tab-status{color:var(--ink-3);grid-area:status;font-size:.78rem}.add-food-grid{grid-template-columns:2fr 1fr;gap:1.25rem;margin-bottom:1.25rem;display:grid}.add-food-card{background-color:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);flex-direction:column;min-width:0;padding:clamp(1.5rem,3vw,2rem);display:flex}.card-heading{font-family:var(--font-serif);letter-spacing:-.015em;color:var(--ink);font-size:clamp(1.3rem,2.2vw,1.6rem);font-weight:400;line-height:1.2}.input-meta{color:var(--ink-3);justify-content:space-between;gap:1rem;font-size:.78rem;display:flex}.char-count{font-variant-numeric:tabular-nums;flex:none}.char-count-over{color:var(--danger)}.example-row{flex-wrap:wrap;align-items:center;gap:.5rem;margin:1.25rem 0 .5rem;display:flex}.example-label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-right:.25rem;font-size:.72rem;font-weight:500}.example-chip{color:var(--ink-2);background-color:var(--bg);border:1px solid var(--line);text-align:left;transition:color .2s var(--ease), border-color .2s var(--ease);border-radius:999px;padding:.4rem .85rem;font-size:.8rem}.example-chip:hover{color:var(--ink);border-color:var(--ink)}.example-chip:disabled{cursor:not-allowed;opacity:.6}.add-food-card .error-text{margin:1rem 0 0}.add-food-card .primary-btn{margin-top:1.5rem}.photo-card .primary-btn{margin-top:auto}.upload-box{text-align:center;min-height:9rem;color:var(--ink-2);background-color:var(--bg);border:1.5px dashed var(--line-strong);border-radius:var(--radius);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.25rem;margin:1.25rem 0;padding:1.5rem 1rem;font-size:.9rem;display:flex}.upload-icon{filter:grayscale();opacity:.7;margin-bottom:.5rem;font-size:1.5rem}.upload-sub{max-width:16rem;color:var(--ink-3);font-size:.8rem}.nutrition-result{background-color:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}.result-heading{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;padding:1rem clamp(1.25rem,3vw,2rem);font-size:.72rem;font-weight:500;display:flex}.result-date{letter-spacing:0;text-transform:none;color:var(--ink-3);font-size:.78rem}.result-empty{text-align:center;color:var(--ink-2);padding:clamp(2rem,5vw,3.5rem) clamp(1.25rem,3vw,2rem);font-size:.9rem}.result-empty-title{font-family:var(--font-serif);color:var(--ink);margin-bottom:.25rem;font-size:1.35rem}.result-summary{border-bottom:1px solid var(--line);padding:clamp(1.25rem,3vw,2rem)}.result-input{font-family:var(--font-serif);color:var(--ink-2);overflow-wrap:anywhere;margin-bottom:1.5rem;font-size:clamp(1.1rem,2vw,1.35rem);font-style:italic;font-weight:300;line-height:1.4}.result-stats{grid-template-columns:repeat(4,1fr);gap:1.5rem;display:grid}.result-stats>div{border-left:1px solid var(--line);flex-direction:column;gap:.2rem;padding-left:1rem;display:flex}.stat-key{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-size:.7rem;font-weight:500}.stat-val{font-family:var(--font-serif);color:var(--ink);font-size:clamp(1.2rem,2.2vw,1.6rem)}.macro-split{margin-top:1.75rem}.macro-bar{border-radius:999px;gap:2px;height:.5rem;display:flex;overflow:hidden}.macro-segment{height:100%;display:block}.macro-legend{color:var(--ink-2);flex-wrap:wrap;gap:.5rem 1.25rem;margin-top:.75rem;font-size:.8rem;display:flex}.macro-legend span{align-items:center;gap:.4rem;display:inline-flex}.macro-dot{border-radius:50%;width:.5rem;height:.5rem;display:inline-block}.macro-protein{background-color:var(--accent)}.macro-carbs{background-color:#c9a86a}.macro-fat{background-color:#d98a6c}.table-scroll{overflow-x:auto}.nutrition-table{border-collapse:collapse;width:100%;min-width:40rem;font-size:.9rem}.nutrition-table th,.nutrition-table td{text-align:left;border-bottom:1px solid var(--line);padding:.9rem 1rem}.nutrition-table th:first-child,.nutrition-table td:first-child{padding-left:clamp(1.25rem,3vw,2rem)}.nutrition-table th:last-child,.nutrition-table td:last-child{padding-right:clamp(1.25rem,3vw,2rem)}.nutrition-table th{letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;color:var(--ink-3);background-color:var(--bg);font-size:.7rem;font-weight:500}.nutrition-table td{color:var(--ink-2)}.nutrition-table .num{text-align:right;font-variant-numeric:tabular-nums}.nutrition-table .food-cell{color:var(--ink);text-transform:capitalize;font-weight:500}.nutrition-table tbody tr:hover td{background-color:var(--bg)}.nutrition-table tfoot td{color:var(--ink);border-bottom:none;border-top:1px solid var(--ink);font-weight:600}.result-note{color:var(--ink-3);border-top:1px solid var(--line);padding:1rem clamp(1.25rem,3vw,2rem);font-size:.8rem}@media (width<=64rem){.add-food-grid{grid-template-columns:1fr}.upload-box{min-height:6rem}}@media (width<=48rem){.meal-tabs{gap:.5rem}.meal-tab{text-align:center;grid-template-columns:1fr;grid-template-areas:"icon""label""status";justify-items:center;row-gap:.25rem;padding:.875rem .5rem}.meal-tab-label{font-size:1rem}.meal-tab-status{font-size:.7rem}.input-meta span:first-child{display:none}.input-meta{justify-content:flex-end}.result-stats{grid-template-columns:repeat(2,1fr);gap:1.25rem}}.filter-row{flex-wrap:wrap;gap:.5rem;margin-bottom:clamp(1.75rem,3vw,2.5rem);display:flex}.filter-chip{white-space:nowrap;height:2.5rem;color:var(--ink-2);border:1px solid var(--line-strong);transition:color .2s var(--ease), border-color .2s var(--ease), background-color .2s var(--ease);background-color:#0000;border-radius:999px;flex:none;padding:0 1.1rem;font-size:.875rem}.filter-chip:hover{color:var(--ink);border-color:var(--ink)}.filter-chip-active,.filter-chip-active:hover{color:#fff;background-color:var(--ink);border-color:var(--ink)}.food-list{border-top:1px solid var(--line);flex-direction:column;display:flex}.food-row{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;padding:clamp(1.25rem,2.5vw,1.75rem) 0;display:flex}.food-icon{width:3.5rem;height:3.5rem;transition:transform .3s var(--ease);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:1.5rem;display:flex;background-color:var(--surface-2)!important}.food-row:hover .food-icon{transform:rotate(-8deg)scale(1.05)}.food-info{flex:1;min-width:12rem}.food-name{font-family:var(--font-serif);letter-spacing:-.015em;color:var(--ink);margin-bottom:.2rem;font-size:1.3rem;font-weight:400}.food-desc{max-width:40rem;color:var(--ink-2);font-size:.9rem}.recommend-tip{max-width:40rem;font-family:var(--font-serif);color:var(--ink-2);margin-bottom:1.5rem;font-size:clamp(1.05rem,1.8vw,1.25rem);font-style:italic;font-weight:300;line-height:1.45}.food-meta{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin-top:.4rem;font-size:.75rem;font-weight:500}@media (width<=48rem){.filter-row{scrollbar-width:none;flex-wrap:nowrap;margin-inline:-1.25rem;padding-inline:1.25rem;overflow-x:auto}.filter-row::-webkit-scrollbar{display:none}.food-row{align-items:flex-start}.food-icon{width:3rem;height:3rem;font-size:1.3rem}.food-info{min-width:0}.outline-btn{width:100%}}.profile-hero{border-bottom:1px solid var(--line);align-items:center;gap:1.5rem;padding-bottom:clamp(1.75rem,3vw,2.5rem);display:flex}.profile-avatar{width:clamp(4rem,8vw,5.5rem);height:clamp(4rem,8vw,5.5rem);font-family:var(--font-serif);text-transform:uppercase;color:#fff;background-color:var(--accent);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:clamp(1.6rem,3vw,2.2rem);font-weight:400;display:flex}.profile-name{font-family:var(--font-serif);color:var(--ink);font-size:1.5rem}.profile-tagline{font-family:var(--font-serif);color:var(--ink-2);font-size:clamp(1.1rem,2vw,1.35rem);font-style:italic;font-weight:300}.section-head{justify-content:space-between;align-items:center;display:flex}.info-list,.settings-list{background-color:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.info-row,.settings-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:1.1rem 1.25rem;font-size:.95rem;display:flex}.info-row:last-child,.settings-row:last-child{border-bottom:none}.info-row span:first-child{color:var(--ink-3);flex:none;font-size:.85rem}.info-row span:last-child{text-align:right;overflow-wrap:anywhere;min-width:0;font-weight:500}.settings-row{cursor:pointer;transition:background-color .2s var(--ease)}.settings-row:after{content:"→";color:var(--ink-3);transition:transform .2s var(--ease), color .2s var(--ease)}.settings-row:hover{background-color:var(--bg)}.settings-row:hover:after{color:var(--ink);transform:translate(3px)}.settings-row-disabled{color:var(--ink-3);cursor:not-allowed}.settings-row-disabled:hover{background-color:#0000}.settings-row-disabled:after{content:"Nothing to clear";font-size:.8rem}.settings-row-disabled:hover:after{color:var(--ink-3);transform:none}.settings-row-danger{color:var(--danger)}@media (width<=36rem){.profile-hero{flex-direction:column;align-items:flex-start;gap:1rem}.info-row{flex-direction:column;align-items:flex-start;gap:.2rem}.info-row span:last-child{text-align:left}}.appContainer{width:100%;height:100%;min-height:100%}
