.nutrient-field{display:flex;flex-direction:column;gap:var(--space-xxs)}.nutrient-field label{font-size:var(--font-size-body-secondary);color:var(--color-text-secondary)}.nutrient-field input:disabled{opacity:.5}.nutrient-field-error{margin:0;font-size:var(--font-size-body-secondary);color:var(--color-error-text)}.food-create{display:flex;flex-direction:column;gap:var(--space-md)}.food-create-nudge{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-body-secondary)}.food-create-paste{display:flex;flex-direction:column;gap:var(--space-xxs)}.food-create-paste label{color:var(--color-text-secondary);font-size:var(--font-size-body-secondary)}.food-create-paste button{align-self:flex-start}.food-create-notice{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-body-secondary)}.food-create-banner{margin:0;color:var(--color-text);font-size:var(--font-size-body-secondary);font-weight:600}.food-create form{display:flex;flex-direction:column;gap:var(--space-md)}.food-create form>button[type=submit]{align-self:flex-start}.food-create-field{display:flex;flex-direction:column;gap:var(--space-xxs)}.food-create-field label{color:var(--color-text-secondary);font-size:var(--font-size-body-secondary)}.food-create-error{margin:0;color:var(--color-error-text);font-size:var(--font-size-body-secondary)}.food-create-nutrients{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--space-sm) var(--space-md);border:none;margin:0;padding:0}.food-create-nutrients>legend{grid-column:1 / -1;padding:0;margin:0 0 var(--space-xxs);font-size:var(--font-size-subtitle);line-height:var(--line-height-subtitle);font-weight:600;color:var(--color-text)}.food-create-nutrients>button{grid-column:1 / -1;justify-self:start}.food-create-nutrients>.food-create-micros,.food-create-nutrients>.food-create-error{grid-column:1 / -1}.food-create-micros{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--space-sm) var(--space-md)}.v-dialog{width:calc(100% - var(--space-xl));max-width:480px;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-xl);background-color:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-lg)}.v-dialog:not([open]){display:none}.v-dialog[open]{display:flex;flex-direction:column;max-height:calc(100vh - var(--space-xl) - var(--space-xl));max-height:calc(100dvh - var(--space-xl) - var(--space-xl));overflow:hidden}.v-dialog--wide{max-width:960px}.v-dialog::backdrop{background:color-mix(in srgb,var(--color-navy-hero) 60%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}@media(prefers-reduced-transparency:reduce){.v-dialog::backdrop{-webkit-backdrop-filter:none;backdrop-filter:none}}.v-dialog:focus{outline:none;box-shadow:var(--shadow-lg)}.v-dialog-header{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--color-divider)}.v-dialog-title{margin:0;font-size:var(--font-size-title);line-height:var(--line-height-title);font-weight:var(--font-weight-title)}.v-dialog-close{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-xs);border:none;border-radius:var(--radius-md);background:none;color:var(--color-text-secondary);cursor:pointer;transition:background-color var(--motion-fast) ease}.v-dialog-close:hover:not(:disabled){background-color:var(--color-subtle);color:var(--color-text)}.v-dialog-close:disabled{color:var(--color-inactive);cursor:default}.v-dialog-body{padding:var(--space-lg);flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}.v-dialog-footer{flex:0 0 auto;display:flex;justify-content:flex-end;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border-top:1px solid var(--color-divider)}.snackbar-region{position:fixed;bottom:var(--space-lg);left:50%;transform:translate(-50%);z-index:200}.snackbar{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);background-color:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md)}.snackbar-message{font-size:var(--font-size-body)}.snackbar-action{border:none;background:none;color:var(--color-text);font-size:var(--font-size-body);font-weight:var(--font-weight-subtitle);text-decoration:underline;cursor:pointer}.snackbar-dismiss{border:none;background:none;color:var(--color-text-secondary);cursor:pointer}.foods-page{display:flex;flex-direction:column;gap:var(--space-xl)}.foods-section{display:flex;flex-direction:column;gap:var(--space-sm)}.foods-heading{margin:0;font-size:var(--font-size-subtitle);font-weight:var(--font-weight-subtitle);color:var(--color-text)}.foods-status,.foods-empty,.foods-descope{margin:0;font-size:var(--font-size-body-secondary);color:var(--color-text-secondary)}.foods-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-xs)}.foods-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.foods-row-name{font-size:var(--font-size-body);color:var(--color-text)}.foods-row-actions{display:flex;gap:var(--space-xs)}.foods-confirm-body{margin:0;color:var(--color-text)}.progress-ring{display:inline-flex;flex-direction:column;align-items:center;gap:var(--space-xxs)}.progress-ring-dial{position:relative;display:inline-grid;place-items:center}.progress-ring-dial>svg{display:block}.progress-ring-percent{position:absolute;font-size:var(--font-size-caption);font-weight:var(--font-weight-caption);color:var(--color-text)}.progress-ring-percent--lg{font-size:var(--font-size-title-compact);line-height:var(--line-height-title-compact);font-weight:var(--font-weight-title-compact);letter-spacing:var(--letter-spacing-title-compact)}.progress-ring-name{font-size:var(--font-size-caption);font-weight:var(--font-weight-caption);letter-spacing:var(--letter-spacing-caption);color:var(--color-text-secondary)}.progress-ring-animate{transition:stroke-dashoffset var(--motion-base) ease}.day-rings{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--space-md)}.day-rings-coverage{width:100%;margin:var(--space-xs) 0 0;font-size:var(--font-size-caption);color:var(--color-text-secondary)}.macro-donut{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm)}.macro-donut-dial{position:relative;display:inline-grid;place-items:center}.macro-donut-dial>svg{display:block}.macro-donut-dial-stack{position:absolute;display:flex;flex-direction:column;align-items:center}.macro-donut-dial-value{font-size:var(--font-size-title-compact);line-height:var(--line-height-title-compact);font-weight:var(--font-weight-title-compact);letter-spacing:var(--letter-spacing-title-compact);color:var(--color-text)}.macro-donut-dial-label{font-size:var(--font-size-caption);line-height:var(--line-height-caption);font-weight:var(--font-weight-caption);letter-spacing:var(--letter-spacing-caption);color:var(--color-text-secondary)}.macro-donut-legend{width:100%;margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--space-xxs)}.macro-donut-legend li{font-size:var(--font-size-body-secondary);line-height:var(--line-height-body-secondary);color:var(--color-text)}.macro-donut-swatch{width:var(--space-sm);height:var(--space-sm);border-radius:var(--space-xxs);flex-shrink:0}.macro-donut-label{font-weight:var(--font-weight-caption);letter-spacing:var(--letter-spacing-caption)}.macro-donut-values{margin-left:auto;color:var(--color-text-secondary)}.macro-donut-kcal{font-size:var(--font-size-body-secondary);color:var(--color-text-secondary)}.metric-tooltip{position:relative;display:inline-block}.metric-tooltip--active{z-index:1}.metric-tooltip--row{display:flex;align-items:center;gap:var(--space-xs);width:100%}.metric-tooltip-bubble{position:absolute;bottom:calc(100% + var(--space-xxs));left:50%;transform:translate(-50%);max-width:12rem;width:max-content;padding:var(--space-xxs) var(--space-xs);border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-md);font-size:var(--font-size-caption);line-height:var(--line-height-caption);text-align:center;white-space:normal;opacity:0;visibility:hidden}.metric-tooltip-bubble--animate{transition:opacity var(--motion-base) ease}.metric-tooltip-bubble--visible{opacity:1;visibility:visible}.nutrient-bar{display:flex;flex-direction:column;gap:var(--space-xxs)}.nutrient-bar-header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-xs);font-size:var(--font-size-body-secondary);color:var(--color-text)}.nutrient-bar-percent{color:var(--color-text-secondary)}.nutrient-bar-track{height:var(--space-xs);border-radius:var(--radius-pill);background-color:var(--color-gauge-track);overflow:hidden}.nutrient-bar-fill{height:100%;border-radius:var(--radius-pill)}.nutrient-value-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-xs);font-size:var(--font-size-body-secondary);color:var(--color-text)}.nutrient-value-row-value{color:var(--color-text-secondary)}.score-chip{display:inline-flex;align-items:center;padding:var(--space-xxs) var(--space-xs);border-radius:var(--radius-pill);background-color:var(--color-surface);font-size:var(--font-size-caption);line-height:var(--line-height-caption);font-weight:var(--font-weight-caption)}.score-chip-text{display:inline-flex;align-items:center;gap:var(--space-xxs)}.consistency-ring{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs)}.consistency-ring-compact{flex-direction:row;align-items:center}.consistency-lapse{margin:0;max-width:16rem;font-size:var(--font-size-caption);color:var(--color-text-secondary);text-align:center}.slot-header{display:flex;align-items:center;gap:var(--space-xs);color:var(--color-text)}.slot-header-icon{flex-shrink:0;color:var(--color-text-secondary)}.slot-header-name{font-size:var(--font-size-subtitle);line-height:var(--line-height-subtitle);font-weight:var(--font-weight-subtitle)}.slot-header-time{margin-left:auto;font-size:var(--font-size-caption);color:var(--color-text-secondary)}.signals-consent-card{display:flex;flex-direction:column;gap:var(--space-sm);max-width:32rem}.signals-consent-heading{margin:0;font-size:var(--font-size-subtitle);line-height:var(--line-height-subtitle);font-weight:var(--font-weight-subtitle)}.signals-consent-body{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-body-secondary);line-height:var(--line-height-body-secondary)}.signals-consent-error{margin:0;color:var(--color-error-text);font-size:var(--font-size-body-secondary)}.history-page{display:flex;flex-direction:column;gap:var(--space-md)}.history-status,.history-empty-copy,.history-scan-nudge{margin:0;color:var(--color-text-secondary)}.history-empty{display:flex;flex-direction:column;gap:var(--space-xs)}.history-empty-copy{font-size:var(--font-size-body)}.history-scan-nudge{font-size:var(--font-size-body-secondary)}.history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-sm)}.history-row{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);min-height:var(--size-min-target)}.history-thumb{width:40px;height:40px;border-radius:var(--radius-sm);flex-shrink:0}img.history-thumb{object-fit:cover}.history-thumb-placeholder{display:flex;align-items:center;justify-content:center;background:var(--color-subtle)}.history-thumb-placeholder-mark{width:20px;height:20px;object-fit:contain}.history-row-main{display:flex;flex-direction:column;gap:var(--space-xxs);flex:1 1 auto;min-width:0}.history-row-link{color:var(--color-text);font-size:var(--font-size-body);font-weight:var(--font-weight-subtitle)}.history-row-brand{font-size:var(--font-size-body-secondary);color:var(--color-text-secondary)}.history-row-date{font-size:var(--font-size-caption);color:var(--color-text-secondary)}.history-row-link--inert{color:var(--color-text-secondary);cursor:default}.history-status-chip{flex-shrink:0;display:inline-flex;padding:var(--space-xxs) var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-text-secondary);font-size:var(--font-size-caption);font-weight:var(--font-weight-body-secondary)}.history-row .score-chip{padding:var(--space-xxs) var(--space-sm);font-size:var(--font-size-body-secondary);line-height:var(--line-height-body-secondary);font-weight:var(--font-weight-subtitle)}.history-confirm-body{margin:0;color:var(--color-text)}.score-ring{position:relative;display:inline-flex}.score-ring-visual{position:relative;display:inline-grid;place-items:center;width:100%;height:100%}.score-ring-visual>svg{display:block}.score-ring-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-xxs);padding:0 var(--space-sm);text-align:center;pointer-events:none}.score-ring-score{font-size:var(--font-size-display);line-height:var(--line-height-display);font-weight:var(--font-weight-display);letter-spacing:var(--letter-spacing-display);color:var(--color-text)}.score-ring-sub-band{font-size:var(--font-size-overline);line-height:var(--line-height-overline);font-weight:var(--font-weight-overline);letter-spacing:var(--letter-spacing-overline);text-transform:uppercase;color:var(--color-text-secondary)}.score-ring-band-only{font-size:var(--font-size-title);line-height:var(--line-height-title);font-weight:var(--font-weight-title);letter-spacing:var(--letter-spacing-title);color:var(--color-text);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.score-ring-animate{transition:stroke-dashoffset var(--motion-slow) ease-out}.section-card{display:flex;flex-direction:column;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:visible}.section-card-header{display:flex;align-items:center;justify-content:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);position:relative;border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:linear-gradient(to right,color-mix(in srgb,var(--section-card-accent) 15%,transparent),color-mix(in srgb,var(--section-card-accent) 5%,transparent))}:root[data-theme=navy] .section-card-header{background:color-mix(in srgb,var(--section-card-accent) 10%,transparent)}.section-card-icon{display:inline-flex;flex-shrink:0}.section-card-title{margin:0;font-size:var(--font-size-overline);line-height:var(--line-height-overline);font-weight:var(--font-weight-overline);letter-spacing:var(--letter-spacing-overline);text-transform:uppercase;text-align:center}.section-card-body{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md);padding-top:var(--space-sm)}.section-card--details>.section-card-header{cursor:pointer;list-style:none}.section-card--details>.section-card-header::-webkit-details-marker{display:none}.section-card--details:not([open])>.section-card-header{border-radius:var(--radius-lg)}.section-card-chevron{position:absolute;right:var(--space-md);flex-shrink:0;transition:transform var(--motion-fast) ease}details[open]>.section-card-header>.section-card-chevron{transform:rotate(180deg)}.report-issue-body{display:flex;flex-direction:column;gap:var(--space-md)}.report-issue-field{display:flex;flex-direction:column;gap:var(--space-xxs)}.report-issue-char-count{margin:0;align-self:flex-end;color:var(--color-text-secondary);font-size:var(--font-size-caption)}.report-issue-status{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-body-secondary)}.product-page{display:flex;flex-direction:column;gap:var(--space-md)}.product-status{margin:0;color:var(--color-text-secondary)}.product-image{width:160px;height:160px;object-fit:cover;border-radius:var(--radius-md)}.product-brand{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-body-secondary)}.product-hero,.product-hero-info{display:flex;flex-direction:column;gap:var(--space-md)}@media(min-width:960px){.product-hero{display:grid;grid-template-columns:160px minmax(0,1fr);grid-template-areas:"image info";align-items:start;gap:var(--space-lg)}.product-hero>.product-image{grid-area:image}.product-hero>.product-hero-info{grid-area:info}.product-hero.product-hero--no-image{grid-template-columns:minmax(0,1fr);grid-template-areas:"info"}}.product-serving,.product-verdict-summary{margin:0;color:var(--color-text);font-size:var(--font-size-body)}.product-section{display:flex;flex-direction:column;gap:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--color-divider)}.product-section.section-card{display:flex;flex-direction:column;gap:0;padding-top:0;border-top:none}.product-heading{margin:0;font-size:var(--font-size-subtitle);font-weight:var(--font-weight-subtitle);color:var(--color-text)}.product-nutrition{margin:0;display:grid;grid-template-columns:minmax(0,1fr);row-gap:var(--space-xxs);column-gap:var(--space-md)}@media(min-width:960px){.product-nutrition{grid-template-columns:repeat(2,minmax(0,1fr))}}.product-nutrition-row{display:flex;justify-content:space-between;gap:var(--space-sm);font-size:var(--font-size-body);color:var(--color-text)}.product-nutrition-row dt{color:var(--color-text-secondary)}.product-nutrition-row dd{margin:0;font-weight:var(--font-weight-subtitle)}.product-nutrition-more summary{cursor:pointer;color:var(--color-text-secondary);font-size:var(--font-size-body-secondary);font-weight:var(--font-weight-subtitle)}.product-nutrition-more .product-nutrition{margin-top:var(--space-sm)}.product-goal-category{display:flex;flex-direction:column;gap:var(--space-xs)}.product-goal-category-label{margin:0;font-size:var(--font-size-caption);font-weight:var(--font-weight-subtitle);text-transform:uppercase;letter-spacing:.5px}.product-goal-category-label--helping{color:var(--color-success-text)}.product-goal-category-label--hurting{color:var(--color-error-text)}.product-goal-item-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--space-xs)}.product-goal-item{margin:0;padding-left:var(--space-md);position:relative;font-size:var(--font-size-body);color:var(--color-text)}.product-goal-item--helping:before{content:"✓";position:absolute;left:0;color:var(--color-success-text)}.product-goal-item--hurting:before{content:"!";position:absolute;left:0;font-weight:var(--font-weight-subtitle);color:var(--color-error-text)}.product-ingredients{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-sm)}.product-ingredient{display:flex;flex-direction:column;gap:var(--space-xxs)}.product-ingredient-name{margin:0;font-size:var(--font-size-body);font-weight:var(--font-weight-subtitle);color:var(--color-text)}.product-ingredient-body{margin:0;font-size:var(--font-size-body-secondary);color:var(--color-text)}.product-ingredient-meta,.product-disclaimer{margin:0;font-size:var(--font-size-caption);color:var(--color-text-secondary)}.product-ingredient-category{margin:0;font-size:var(--font-size-caption);color:var(--color-text-secondary);text-transform:capitalize}.product-ingredient-impact{display:inline-flex;align-items:center;gap:var(--space-xxs);margin:0;font-size:var(--font-size-caption);font-weight:var(--font-weight-subtitle);color:var(--color-text)}.product-ingredient-impact-dot{width:8px;height:8px;border-radius:var(--radius-pill);flex-shrink:0}.product-recommendation-pill{align-self:flex-start;margin:0;padding:var(--space-xxs) var(--space-sm);border-radius:var(--radius-pill);background-color:var(--color-divider);color:var(--color-text);font-size:var(--font-size-caption);font-weight:var(--font-weight-subtitle)}.product-verdict-reasoning{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-body-secondary);font-style:italic}.product-benefit-list,.product-concern-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--space-xs)}.product-benefit-item,.product-concern-item{margin:0;padding-left:var(--space-md);position:relative;font-size:var(--font-size-body);color:var(--color-text)}.product-benefit-item:before{content:"✓";position:absolute;left:0;color:var(--color-success-text)}.product-concern-item:before{content:"!";position:absolute;left:0;font-weight:var(--font-weight-subtitle);color:var(--color-warning-text)}.product-flag-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--space-xs)}.product-flag-item{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--space-xs)}.product-flag-badge{display:inline-flex;padding:var(--space-xxs) var(--space-sm);border:1px solid var(--color-warning);border-radius:var(--radius-pill);color:var(--color-text);font-size:var(--font-size-caption);font-weight:var(--font-weight-subtitle)}.easy-to-overeat-note{color:var(--color-text-secondary);font-size:.85rem;line-height:1.45;margin:.5rem 0 0}.easy-to-overeat-note strong{color:var(--color-text);font-weight:600}.product-flag-reason{color:var(--color-text-secondary);font-size:var(--font-size-body-secondary)}.product-status-scoring{margin:0;color:var(--color-text-secondary)}.product-status-scoring--empty{margin:0;padding:0;min-height:0}.note.product-status-error{flex-direction:column;align-items:flex-start;gap:var(--space-sm)}.product-status-error p{margin:0}.product-bookmark{display:flex;align-items:center;gap:var(--space-sm)}.product-bookmark-status{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-body-secondary)}.product-recs-list{list-style:none;margin:0;padding:0;display:flex;gap:var(--space-sm);overflow-x:auto}.product-recs-item{flex:0 0 auto;width:160px}.product-recs-link{display:flex;flex-direction:column;gap:var(--space-xxs);height:100%;padding:var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text)}.product-recs-image{width:100%;height:96px;object-fit:cover;border-radius:var(--radius-sm)}.product-recs-name{font-size:var(--font-size-body-secondary);font-weight:var(--font-weight-subtitle);color:var(--color-text)}.product-recs-brand{font-size:var(--font-size-caption);color:var(--color-text-secondary)}.product-report-issue{display:flex}.profile{display:flex;flex-direction:column;gap:var(--space-lg)}.profile-section{display:flex;flex-direction:column;gap:var(--space-sm)}.profile-section.card{border-radius:var(--radius-md)}.profile-heading{font-size:var(--font-size-subtitle);line-height:var(--line-height-subtitle);font-weight:var(--font-weight-subtitle);margin:0}.profile-subheading{font-size:var(--font-size-body);font-weight:var(--font-weight-subtitle);margin:0}.profile-note{color:var(--color-text-secondary);font-size:var(--font-size-body-secondary);line-height:var(--line-height-body-secondary);margin:0}.profile-switch-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md)}.profile-switch-copy{display:flex;flex-direction:column;gap:var(--space-xxs);min-width:0}.profile-switch-label{font-size:var(--font-size-body);color:var(--color-text)}.profile-switch-desc{color:var(--color-text-secondary);font-size:var(--font-size-caption);line-height:var(--line-height-caption);margin:0}.profile-switch{flex:0 0 auto;display:inline-flex;align-items:center;padding:0;border:none;background:transparent;cursor:pointer;min-height:var(--size-min-target)}.profile-switch-track{display:inline-flex;align-items:center;width:44px;height:26px;padding:3px;border-radius:var(--radius-pill);background:var(--color-inactive);transition:background-color var(--motion-fast) ease}.profile-switch-thumb{width:20px;height:20px;border-radius:var(--radius-pill);background:var(--color-text-inverse);transition:transform var(--motion-fast) ease}.profile-switch[aria-checked=true] .profile-switch-track{background:var(--color-primary)}.profile-switch[aria-checked=true] .profile-switch-thumb{transform:translate(18px)}.profile-switch:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px;border-radius:var(--radius-pill)}@media(prefers-reduced-motion:reduce){.profile-switch-track,.profile-switch-thumb{transition:none}}.profile-card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.profile-tier-badge{flex:0 0 auto;padding:var(--space-xxs) var(--space-sm);border-radius:var(--radius-pill);background-color:var(--color-primary);color:var(--color-text-inverse);font-size:var(--font-size-caption);font-weight:var(--font-weight-subtitle)}.profile-detail-rows{display:flex;flex-direction:column;gap:var(--space-sm)}.profile-detail-row{display:flex;flex-direction:column;gap:var(--space-xxs)}.profile-detail-label{color:var(--color-text-secondary);font-size:var(--font-size-caption)}.profile-detail-value-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.profile-detail-value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text);font-size:var(--font-size-body)}.profile-dialog-body{display:flex;flex-direction:column;gap:var(--space-md)}.profile-dialog-row{display:flex;gap:var(--space-sm)}.profile-dialog-row .profile-dialog-field{flex:1;min-width:0}.profile-dialog-field{display:flex;flex-direction:column;gap:var(--space-xxs)}.profile-dialog-status{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-body-secondary)}.profile-goal-fieldset{display:flex;flex-direction:column;gap:var(--space-md);margin:0;padding:0;border:0}.profile-goal-group,.profile-theme-group{display:flex;flex-direction:column;gap:var(--space-xs)}.profile-goal-status{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-body-secondary);line-height:var(--line-height-body-secondary)}.profile-email{margin:0;font-size:var(--font-size-body);color:var(--color-text)}.profile-email-label{color:var(--color-text-secondary)}.profile-email-value{font-weight:var(--font-weight-subtitle)}.profile-delete{display:flex;flex-direction:column;gap:var(--space-xxs);margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--color-divider)}.profile-datasources-list{display:flex;flex-direction:column;gap:var(--space-sm);margin:0;padding:0;list-style:none}.profile-datasource-item{display:flex;flex-direction:column;gap:var(--space-xxs)}.profile-datasource-name{font-size:var(--font-size-body);font-weight:var(--font-weight-subtitle);color:var(--color-text)}.profile-datasource-meta{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-caption);line-height:var(--line-height-caption)}.profile-datasource-link{align-self:flex-start;color:var(--color-primary);font-size:var(--font-size-caption)}.profile-version{margin:0;padding:var(--space-sm) 0;text-align:center;color:var(--color-text-secondary);font-size:var(--font-size-caption);line-height:var(--line-height-caption)}.progress-page{display:flex;flex-direction:column;gap:var(--space-md)}.progress-error{margin:0;color:var(--color-error-text);font-size:var(--font-size-body-secondary)}.progress-log{display:flex;flex-direction:column}.progress-form{display:flex;flex-direction:column;gap:var(--space-md);margin:0;padding:0;border:0}.progress-field{display:flex;flex-direction:column;gap:var(--space-xxs)}.progress-field label,.progress-unit-legend{color:var(--color-text-secondary);font-size:var(--font-size-body-secondary)}.progress-stats{display:flex;flex-direction:column;gap:var(--space-sm)}.progress-stat{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-sm);margin:0}.progress-stat-label{color:var(--color-text-secondary);font-size:var(--font-size-body-secondary)}.progress-stat-value{font-size:var(--font-size-subtitle);line-height:var(--line-height-subtitle);font-weight:var(--font-weight-subtitle)}.progress-sparkline-wrap{display:flex;justify-content:center}.progress-sparkline{width:100%;height:auto;max-width:100%}.progress-sparkline-line{stroke:var(--color-viz-2);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.progress-empty{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-body-secondary)}.progress-entries{display:flex;flex-direction:column}.progress-entries-heading{font-size:var(--font-size-subtitle);line-height:var(--line-height-subtitle);margin:0 0 var(--space-sm)}.progress-entries-list{display:flex;flex-direction:column;gap:var(--space-xs);list-style:none;margin:0;padding:0}.progress-entry-row{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface)}.progress-entry-date{flex:1;color:var(--color-text)}.progress-entry-weight{color:var(--color-text-secondary);font-size:var(--font-size-body-secondary)}.progress-entry-actions{display:flex;gap:var(--space-xs)}.progress-revoke{display:flex;margin-top:var(--space-sm)}.progress-revoke-confirm-body{margin:0;color:var(--color-text-secondary)}.app-atmosphere.signin-backdrop{--signin-backdrop-tint: color-mix(in srgb, var(--color-navy-hero) 25%, transparent);background-color:var(--color-navy-hero);background-image:linear-gradient(var(--signin-backdrop-tint),var(--signin-backdrop-tint)),url(/assets/hero-bg-C1J1YPnT.jpg);background-image:linear-gradient(var(--signin-backdrop-tint),var(--signin-backdrop-tint)),image-set(url(/assets/hero-bg-CP-ih1nr.avif) type("image/avif"),url(/assets/hero-bg-DYdiFoqv.webp) type("image/webp"),url(/assets/hero-bg-C1J1YPnT.jpg) type("image/jpeg"))}.signin-brand{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-xl);text-align:center}.signin-brand-logo{width:64px;height:64px;border-radius:50%;object-fit:contain}.signin-tagline{margin:0;padding:var(--space-xs) var(--space-md);border-radius:var(--radius-pill);background-color:color-mix(in srgb,var(--color-navy-hero) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--color-on-hero-secondary);font-size:var(--font-size-body-secondary);line-height:var(--line-height-body-secondary)}@supports not (backdrop-filter: blur(8px)){.signin-tagline{background-color:var(--color-navy-hero)}}@media(prefers-reduced-transparency:reduce){.signin-tagline{background-color:var(--color-navy-hero);-webkit-backdrop-filter:none;backdrop-filter:none}}@media print,(forced-colors:active){.signin-tagline{background:none;-webkit-backdrop-filter:none;backdrop-filter:none;color:var(--color-text-secondary)}}.signin-card.card{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-lg);background-color:var(--color-navy-surface)}.signin-message{margin:0;color:var(--color-text-secondary)}.signin-form{display:flex;flex-direction:column;gap:var(--space-md)}.signin-resend{display:flex;flex-direction:column;align-items:center;gap:var(--space-xxs)}.signin-resend-status{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-body-secondary);line-height:var(--line-height-body-secondary)}.targets-setup{display:flex;flex-direction:column;gap:var(--space-md)}.targets-setup-intro,.targets-setup-note{color:var(--color-text-secondary);font-size:var(--font-size-body-secondary);line-height:var(--line-height-body-secondary);margin:0}.targets-setup-loading{color:var(--color-text-secondary);font-size:var(--font-size-body-secondary);margin:0}.targets-setup-saved{display:flex;flex-direction:column;gap:var(--space-xxs);padding:var(--space-sm) var(--space-md);border:1px solid var(--color-success);border-radius:var(--radius-md);color:var(--color-text);background:var(--color-surface)}.targets-setup-success{font-weight:600;margin:0}.targets-setup-result-range{font-size:var(--font-size-subtitle);line-height:var(--line-height-subtitle);font-weight:600;margin:0}.targets-setup-result-caption{color:var(--color-text-secondary);font-size:var(--font-size-caption);line-height:var(--line-height-caption);margin:0}.targets-setup-current-estimate{display:flex;flex-direction:column;gap:var(--space-xxs);padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);background:var(--color-surface)}.targets-setup-form{display:flex;flex-direction:column;gap:var(--space-md)}.targets-setup-progress{color:var(--color-text-secondary);font-size:var(--font-size-caption);margin:0}.targets-setup-step{display:flex;flex-direction:column;gap:var(--space-sm)}.targets-setup-step-heading{font-size:var(--font-size-subtitle);line-height:var(--line-height-subtitle);margin:0}.targets-setup-step-heading:focus-visible,.targets-setup-success:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.targets-setup-field,.targets-setup-row{display:flex;flex-direction:column;gap:var(--space-xxs)}.targets-setup-field label,.targets-setup-row label,.targets-setup-unit-legend{color:var(--color-text-secondary);font-size:var(--font-size-body-secondary)}.targets-setup-ftin{display:flex;gap:var(--space-sm)}.targets-setup-ftin .targets-setup-field{flex:1}.targets-setup-options,.targets-setup-behavioral-group{display:flex;flex-direction:column;gap:var(--space-xs)}.targets-setup-behavioral-heading{font-size:var(--font-size-body);line-height:var(--line-height-body);font-weight:600;margin:0}.targets-setup-rows{display:flex;flex-direction:column;gap:var(--space-sm)}.targets-setup-actions{display:flex;gap:var(--space-sm);align-items:center}.targets-setup-error{color:var(--color-error-text);font-size:var(--font-size-body-secondary);margin:0}.targets-setup-hint{color:var(--color-text-secondary);font-size:var(--font-size-body-secondary);margin:0}.targets-setup-screening{border:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-sm)}.targets-setup-screening legend{padding:0}.note.targets-setup-screening-advisory--empty,.note.targets-setup-allocation-advisory--empty{border-left:0;padding:0;min-height:0}.targets-setup-option-badge{margin-left:var(--space-xs);font-size:var(--font-size-caption);font-weight:600;letter-spacing:.04em;color:var(--color-primary-text);border:1px solid currentcolor;border-radius:var(--radius-sm);padding:0 var(--space-xs)}.targets-setup-result-disclaimer{color:var(--color-text-secondary);font-size:var(--font-size-body-secondary);margin:0}.targets-summary{display:flex;flex-direction:column;gap:var(--space-md)}.targets-summary-goal-chip{color:var(--color-text-secondary);font-size:var(--font-size-body-secondary);margin:0}.targets-summary-calories-card{display:flex;flex-direction:column;gap:var(--space-xxs)}.targets-summary-card-label{display:flex;align-items:center;gap:var(--space-xs);color:var(--color-text-secondary);font-size:var(--font-size-body-secondary);margin:0}.targets-summary-card-value{font-size:var(--font-size-subtitle);line-height:var(--line-height-subtitle);font-weight:600;margin:0}.targets-summary-card-caption{color:var(--color-text-secondary);font-size:var(--font-size-caption);margin:0}.targets-summary-macros-heading{font-size:var(--font-size-body);line-height:var(--line-height-body);font-weight:600;margin:0}.targets-summary-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-sm)}.targets-summary-macro-card{display:flex;flex-direction:column;gap:var(--space-xxs)}.targets-summary-chip{display:inline-flex;align-items:center;font-size:var(--font-size-caption);font-weight:600;letter-spacing:.04em;color:var(--color-primary-text);border:1px solid currentcolor;border-radius:var(--radius-sm);padding:0 var(--space-xs)}.targets-summary-micros summary{cursor:pointer;color:var(--color-text);font-size:var(--font-size-body-secondary);font-weight:600}.targets-summary-micro-rows{display:flex;flex-direction:column;gap:var(--space-xs);margin-top:var(--space-sm)}.targets-summary-micro-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);font-size:var(--font-size-body-secondary)}.targets-summary-micro-label{display:flex;align-items:center;gap:var(--space-xs);color:var(--color-text-secondary)}.targets-summary-micro-value{color:var(--color-text);font-weight:600}.targets-setup-replaces-custom{color:var(--color-text-secondary);font-size:var(--font-size-body-secondary);line-height:var(--line-height-body-secondary);margin:0}.daily-recap-card{display:flex;flex-direction:column;gap:var(--space-xs);margin-block-end:var(--space-md)}.daily-recap-card.card{padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md)}.daily-recap-title{margin:0;font-size:var(--font-size-caption);line-height:var(--line-height-caption);font-weight:var(--font-weight-caption);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary)}.daily-recap-status{margin:0;min-height:var(--line-height-caption);font-size:var(--font-size-caption);line-height:var(--line-height-caption);color:var(--color-text-secondary);overflow-wrap:break-word}.daily-recap-prose{display:flex;flex-direction:column;gap:var(--space-sm)}.daily-recap-headline{margin:0;font-size:var(--font-size-subtitle);line-height:var(--line-height-subtitle);font-weight:var(--font-weight-subtitle);color:var(--color-text);overflow-wrap:break-word}.daily-recap-body{margin:0;font-size:var(--font-size-body);line-height:var(--line-height-body);color:var(--color-text);overflow-wrap:break-word}.daily-recap-group{display:flex;flex-direction:column;gap:var(--space-xxs)}.daily-recap-subheading{margin:0;font-size:var(--font-size-caption);line-height:var(--line-height-caption);font-weight:var(--font-weight-caption);color:var(--color-text-secondary)}.daily-recap-list{margin:0;padding-inline-start:var(--space-md);display:flex;flex-direction:column;gap:var(--space-xxs)}.daily-recap-item{font-size:var(--font-size-body);line-height:var(--line-height-body);color:var(--color-text);overflow-wrap:break-word}.daily-recap-facts{margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-xs);font-size:var(--font-size-caption);line-height:var(--line-height-caption);color:var(--color-text-secondary)}.daily-recap-day-score{font-size:var(--font-size-subtitle);line-height:var(--line-height-subtitle);font-weight:var(--font-weight-subtitle);color:var(--color-text)}.daily-recap-targets{overflow-wrap:break-word}.daily-recap-teaser{margin:0;font-size:var(--font-size-caption);line-height:var(--line-height-caption);color:var(--color-text-secondary);overflow-wrap:break-word}.daily-recap-retry{align-self:flex-start}.daily-recap-card .daily-recap-status--working{animation:daily-recap-pulse 2.4s ease-in-out infinite}@keyframes daily-recap-pulse{0%,to{opacity:1}50%{opacity:.62}}@media(prefers-reduced-motion:reduce){.daily-recap-card .daily-recap-status--working{animation:none}}.key-nutrients-hint{margin:0 0 var(--space-md);color:var(--color-text-secondary);font-size:var(--font-size-body-secondary)}.key-nutrients-group{border:none;margin:0 0 var(--space-md);padding:0}.key-nutrients-group-heading{padding:0 0 var(--space-xs);color:var(--color-text-secondary);font-size:var(--font-size-body-secondary);font-weight:var(--font-weight-subtitle);text-transform:uppercase;letter-spacing:.02em}.key-nutrients-options{display:flex;flex-direction:column;gap:var(--space-xs)}.key-nutrients-cap-note{margin:var(--space-sm) 0 0;color:var(--color-text-secondary);font-size:var(--font-size-body-secondary)}.key-nutrients-error{margin:var(--space-sm) 0 0;color:var(--color-error-text);font-size:var(--font-size-body-secondary)}.day-nutrients{display:flex;flex-direction:column;gap:var(--space-md)}.day-nutrients-heading{margin:0;font-size:var(--font-size-subtitle);font-weight:var(--font-weight-subtitle);line-height:var(--line-height-subtitle);color:var(--color-text)}.day-nutrients-grid{display:flex;flex-direction:column;gap:var(--space-lg)}@media(min-width:960px){.day-nutrients-grid{display:grid;grid-template-columns:1fr 1fr;align-items:start}}.day-nutrients-table{width:100%;border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.day-nutrients-caption{padding:var(--space-sm) var(--space-md);text-align:left;font-size:var(--font-size-body);font-weight:var(--font-weight-subtitle);color:var(--color-text);border-bottom:1px solid var(--color-border)}.day-nutrients-table th,.day-nutrients-table td{padding:var(--space-xs) var(--space-md);text-align:left}.day-nutrients-table thead th{font-size:var(--font-size-caption);line-height:var(--line-height-caption);font-weight:var(--font-weight-subtitle);color:var(--color-text-secondary);border-bottom:1px solid var(--color-border)}.day-nutrients-table tbody th{font-size:var(--font-size-body-secondary);line-height:var(--line-height-body-secondary);font-weight:var(--font-weight-body);color:var(--color-text)}.day-nutrients-table tbody td{font-size:var(--font-size-body-secondary);line-height:var(--line-height-body-secondary);color:var(--color-text-secondary)}.day-nutrients-table tbody tr:not(:last-child) th,.day-nutrients-table tbody tr:not(:last-child) td{border-bottom:1px solid var(--color-border)}.today-page{display:flex;flex-direction:column;gap:var(--space-lg)}.today-date-nav{display:flex;align-items:center;gap:var(--space-sm)}.today-date-heading{margin:0;flex:1;font-size:var(--font-size-subtitle);font-weight:var(--font-weight-subtitle);line-height:var(--line-height-subtitle);color:var(--color-text)}.today-subtitle{margin:0;font-size:var(--font-size-body-secondary);line-height:var(--line-height-body-secondary);color:var(--color-text-secondary)}.today-nav-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-sm)}.today-view-toggle{flex-shrink:0}.today-view-toggle .segmented-option[aria-current=page]{background-color:color-mix(in srgb,var(--color-primary) 12%,var(--color-surface));font-weight:var(--font-weight-subtitle)}.today-total-kcal,.today-estimates-note{margin:0;font-size:var(--font-size-caption);line-height:var(--line-height-caption);color:var(--color-text-secondary)}.today-empty{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-md);padding:var(--space-xl);border-radius:var(--radius-lg);background-color:color-mix(in srgb,var(--color-primary) 6%,var(--color-surface));border:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.today-empty-text{margin:0;color:var(--color-text-secondary)}.today-copy-failed{margin:0;font-size:var(--font-size-caption);color:var(--color-error-text)}.today-slot.card{padding:var(--space-lg)}.today-slot-heading{margin:0 0 var(--space-sm);font-size:var(--font-size-subtitle);font-weight:var(--font-weight-subtitle);line-height:var(--line-height-subtitle)}.today-slot-macros{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-xs) var(--space-md);margin:0 0 var(--space-sm);font-size:var(--font-size-body-secondary);color:var(--color-text-secondary)}.today-slot-macro{white-space:nowrap}.today-slot-macro-kcal{font-weight:var(--font-weight-subtitle);color:var(--color-text)}.today-slot-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--space-sm)}.today-entry-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);width:100%;min-height:var(--size-min-target);padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:var(--font-size-body);text-align:left;cursor:pointer}.today-entry-label{flex:1;display:flex;flex-direction:column;min-width:0}.today-entry-name{overflow-wrap:break-word}.today-entry-food-count{color:var(--color-text-secondary);font-size:var(--font-size-body-secondary)}.today-entry-meta{display:flex;align-items:baseline;gap:var(--space-sm);color:var(--color-text-secondary);font-size:var(--font-size-body-secondary);white-space:nowrap}.today-rail{margin-top:var(--space-xl)}.today-rail-content{display:flex;flex-direction:column;gap:var(--space-lg)}.today-log-food-inline{margin-bottom:var(--space-lg)}.today-log-food-inline .btn.btn--primary{width:100%}.today-rail-inline{display:flex;flex-direction:column;gap:var(--space-lg);margin-top:var(--space-xl)}.today-rail-card{display:flex;flex-direction:column;gap:var(--space-md)}.today-rail-card.card{padding:var(--space-lg)}.today-rail-heading{margin:0;font-size:var(--font-size-body);font-weight:var(--font-weight-subtitle);color:var(--color-text)}.today-nutrients-heading-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.today-nutrients-edit{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-xs);border:none;border-radius:var(--radius-md);background:none;color:var(--color-text-secondary);cursor:pointer;transition:background-color var(--motion-fast) ease}.today-nutrients-edit:hover{background-color:var(--color-subtle);color:var(--color-text)}.today-nutrients-empty,.today-teaser-body{margin:0;font-size:var(--font-size-body-secondary);line-height:var(--line-height-body-secondary);color:var(--color-text-secondary)}.today-day-type{display:flex;flex-direction:column;gap:var(--space-xs);margin-bottom:var(--space-md)}.today-day-type-legend{font-size:var(--font-size-body-secondary);font-weight:var(--font-weight-subtitle);color:var(--color-text)}.today-day-type-helper{margin:0;font-size:var(--font-size-caption);color:var(--color-text-secondary)}.today-day-type-error{margin:0;font-size:var(--font-size-caption);color:var(--color-error-text)}.today-day-badge{margin:0;font-size:var(--font-size-caption);color:var(--color-text-secondary)}.note.today-insight-hint{align-items:flex-start;max-width:560px;margin:0 auto 16px;justify-content:center;text-align:center}.today-insight-hint-body{margin:0;font-size:var(--font-size-body-secondary);color:var(--color-text-secondary)}.week-page{display:flex;flex-direction:column;gap:var(--space-lg)}.week-grid-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.week-grid-wrap:focus-visible{outline-offset:-3px;box-shadow:inset 0 0 0 5px var(--color-focus-halo)}.week-grid{width:100%;border-collapse:collapse}.week-grid th,.week-grid td{padding:var(--space-sm) var(--space-md);text-align:left}.week-head-row th{font-size:var(--font-size-caption);line-height:var(--line-height-caption);font-weight:var(--font-weight-subtitle);color:var(--color-text-secondary);border-bottom:1px solid var(--color-border)}.week-row:not(:last-child) th,.week-row:not(:last-child) td{border-bottom:1px solid var(--color-border)}.week-day-label{font-size:var(--font-size-body);font-weight:var(--font-weight-subtitle);color:var(--color-text);white-space:nowrap}.week-slot-cell{text-align:center}.week-slot-dot{display:inline-block;width:var(--space-sm);height:var(--space-sm);border-radius:var(--radius-pill);background:var(--color-primary)}.week-kcal-cell{min-width:12rem}.week-kcal{display:block;margin-bottom:var(--space-xs);font-size:var(--font-size-caption);line-height:var(--line-height-caption);color:var(--color-text-secondary)}.week-macros{display:flex;flex-wrap:wrap;gap:0 var(--space-sm);margin-bottom:var(--space-xs);font-size:var(--font-size-caption);line-height:var(--line-height-caption);color:var(--color-text-secondary)}.week-macro{white-space:nowrap}.week-score-cell{text-align:center;white-space:nowrap}.week-averages{padding:var(--space-lg);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.week-heading{margin:0 0 var(--space-md);font-size:var(--font-size-subtitle);line-height:var(--line-height-subtitle);font-weight:var(--font-weight-subtitle);color:var(--color-text)}.week-rail-content{display:flex;flex-direction:column;gap:var(--space-lg)}.week-rail-card.card{padding:var(--space-lg)}.week-weekly-days{margin:var(--space-xs) 0 0;font-size:var(--font-size-caption);line-height:var(--line-height-caption);color:var(--color-text-secondary)}.week-weekly-aim{margin:var(--space-sm) 0 0;font-size:var(--font-size-body);line-height:var(--line-height-body);color:var(--color-text)}.app-atmosphere{position:fixed;inset:0;z-index:-1;pointer-events:none;--atmosphere-wash: color-mix(in srgb, var(--color-bg) 93%, transparent);background-color:var(--color-bg);background-image:linear-gradient(var(--atmosphere-wash),var(--atmosphere-wash)),url(/assets/hero-bg-C1J1YPnT.jpg);background-image:linear-gradient(var(--atmosphere-wash),var(--atmosphere-wash)),image-set(url(/assets/hero-bg-CP-ih1nr.avif) type("image/avif"),url(/assets/hero-bg-DYdiFoqv.webp) type("image/webp"),url(/assets/hero-bg-C1J1YPnT.jpg) type("image/jpeg"));background-position:center;background-size:cover;background-repeat:no-repeat}:root[data-theme=navy] .app-atmosphere{--atmosphere-wash: color-mix(in srgb, var(--color-bg) 94%, transparent)}@media print,(forced-colors:active),(prefers-reduced-transparency:reduce){.app-atmosphere{display:none}}.app-shell{display:grid;grid-template-columns:240px minmax(0,1fr);grid-template-rows:1fr auto;grid-template-areas:"sidebar main" "sidebar rail";min-height:100vh}@media(min-width:1280px){.app-shell{grid-template-columns:240px minmax(0,1fr) 320px;grid-template-rows:1fr;grid-template-areas:"sidebar main rail"}}@media(max-width:767px){.app-shell{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr auto;grid-template-areas:"sidebar" "main" "rail"}}.app-sidebar{grid-area:sidebar;display:flex;flex-direction:column;gap:var(--space-lg);padding:var(--space-lg) var(--space-md);background-color:var(--color-navy-surface);border-right:1px solid var(--color-navy-border)}@media(min-width:768px){.app-sidebar{position:sticky;top:0;height:100vh;overflow-y:auto}}.app-sidebar-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.app-brand{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--font-size-subtitle);font-weight:var(--font-weight-title);letter-spacing:var(--letter-spacing-subtitle);color:var(--color-on-navy)}.app-beta-badge{padding:2px 8px;border-radius:var(--radius-pill);border:1px solid currentColor;font-size:11px;font-weight:var(--font-weight-subtitle);letter-spacing:.08em;text-transform:uppercase;color:var(--color-shell-accent);align-self:center}.app-nav-overline{margin:0;font-size:var(--font-size-overline);line-height:var(--line-height-overline);font-weight:var(--font-weight-overline);letter-spacing:var(--letter-spacing-overline);text-transform:uppercase;color:var(--color-on-navy-secondary)}.app-brand-mark{width:28px;height:28px;border-radius:50%;object-fit:contain;flex-shrink:0}.app-menu-toggle{display:none;padding:var(--space-xs) var(--space-md);border:1px solid var(--color-navy-border);border-radius:var(--radius-sm);background-color:transparent;color:var(--color-on-navy);font-size:var(--font-size-body);cursor:pointer}.app-sidebar-menu{display:flex;flex-direction:column;flex:1;min-height:0}@media(max-width:767px){.app-menu-toggle{display:inline-flex;align-items:center}.app-sidebar-menu{display:none}.app-sidebar-menu.is-open{display:flex}.app-sidebar{border-right:none;border-bottom:1px solid var(--color-navy-border);gap:var(--space-sm)}}.app-nav{display:flex;flex-direction:column;flex:1;min-height:0;gap:var(--space-md)}.app-nav-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-xxs);flex:1}.app-nav-link{display:flex;align-items:center;gap:var(--space-sm);min-height:var(--size-min-target);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);color:var(--color-on-navy-secondary);text-decoration:none;font-size:var(--font-size-body);border-left:3px solid transparent;transition:background-color var(--motion-fast) ease}.app-nav-link:hover{background-color:color-mix(in srgb,var(--color-accent) 12%,transparent);color:var(--color-on-navy)}.app-nav-link[aria-current=page]{background-color:var(--color-navy-subtle);border-left-color:var(--color-shell-accent);color:var(--color-shell-accent);font-weight:var(--font-weight-subtitle)}:root[data-theme=navy] .app-nav-link[aria-current=page]{background-color:color-mix(in srgb,var(--color-accent) 14%,transparent);color:var(--color-on-navy)}.app-nav-icon{flex-shrink:0;color:var(--color-on-navy-secondary)}.app-nav-link:hover .app-nav-icon,.app-nav-link[aria-current=page] .app-nav-icon{color:var(--color-shell-accent)}.app-profile-row{margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--color-navy-border);border-radius:0}.app-theme-toggle{align-self:flex-start;display:inline-flex;align-items:center;justify-content:center;width:var(--size-min-target);height:var(--size-min-target);margin-top:var(--space-sm);border:1px solid var(--color-navy-border);border-radius:var(--radius-sm);background-color:transparent;color:var(--color-on-navy-secondary);cursor:pointer;transition:background-color var(--motion-fast) ease,color var(--motion-fast) ease}.app-theme-toggle:hover{background-color:color-mix(in srgb,var(--color-accent) 12%,transparent);color:var(--color-on-navy)}.app-main{grid-area:main;padding:var(--space-xl);min-width:0}.app-main:focus{outline:none}.page-container{width:100%;max-width:840px;margin-inline:auto}.page-container--narrow{max-width:560px}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-lg)}.page-header-overline{margin:0 0 var(--space-xxs);font-size:var(--font-size-overline);line-height:var(--line-height-overline);font-weight:var(--font-weight-overline);letter-spacing:var(--letter-spacing-overline);text-transform:uppercase;color:var(--color-text-secondary)}.page-header-title{margin:0;font-size:var(--font-size-title);line-height:var(--line-height-title);font-weight:var(--font-weight-title);letter-spacing:var(--letter-spacing-title)}.page-header-actions{display:flex;gap:var(--space-sm);align-items:center}.app-rail{grid-area:rail;padding:var(--space-xl) var(--space-lg);min-width:0}@media(min-width:1280px){.app-rail{border-left:1px solid var(--color-border)}}.app-rail:empty{display:none}.app-loading{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--space-lg);background-color:var(--color-bg)}.barcode-panel{display:flex;flex-direction:column;gap:var(--space-sm)}.barcode-panel-form{display:flex;flex-direction:column;gap:var(--space-xxs)}.barcode-panel-error{margin:0;font-size:var(--font-size-body-secondary);line-height:var(--line-height-body-secondary);color:var(--color-error-text)}.barcode-panel-quota{margin:0;font-size:var(--font-size-body-secondary);color:var(--color-text-secondary)}.barcode-panel-progress{margin:0;min-height:var(--line-height-body-secondary);font-size:var(--font-size-body-secondary);line-height:var(--line-height-body-secondary);color:var(--color-text-secondary)}.barcode-panel-product{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-subtle)}.barcode-panel-product-info{display:flex;flex-direction:column;gap:var(--space-xxs)}.barcode-panel-product-name{margin:0;font-size:var(--font-size-body);font-weight:var(--font-weight-subtitle);color:var(--color-text)}.barcode-panel-product-brand{margin:0;font-size:var(--font-size-body-secondary);color:var(--color-text-secondary)}.barcode-panel-error-row{flex-direction:column;align-items:flex-start}.barcode-panel-error-row p{margin:0}.barcode-panel-list{display:flex;flex-direction:column;gap:var(--space-md);margin:0;padding:0;list-style:none}.barcode-panel-row{display:flex;flex-direction:column;gap:var(--space-xxs)}.barcode-panel-row-label{margin:0;font-size:var(--font-size-body-secondary);font-weight:var(--font-weight-subtitle);color:var(--color-text)}.meal-nutrition-box{display:flex;flex-direction:column;gap:var(--space-xs)}.meal-nutrition-estimated{margin:0;font-size:var(--font-size-caption);color:var(--color-text-secondary)}.meal-nutrition-rows{display:flex;flex-direction:column;gap:var(--space-xxs)}.meal-nutrition-row{display:flex;align-items:baseline;flex-wrap:wrap;justify-content:space-between;gap:var(--space-sm)}.meal-nutrition-row-label{min-width:0;overflow-wrap:anywhere;color:var(--color-text-secondary);font-size:var(--font-size-body-secondary)}.meal-nutrition-row-value{min-width:0;overflow-wrap:anywhere;color:var(--color-text);font-size:var(--font-size-body-secondary);font-weight:600}.meal-nutrition-box-total .meal-nutrition-row-calories .meal-nutrition-row-label,.meal-nutrition-box-total .meal-nutrition-row-calories .meal-nutrition-row-value{font-size:var(--font-size-subtitle);font-weight:700}.meal-nutrition-coverage{font-weight:400;color:var(--color-text-secondary)}.meal-nutrition-micros{display:flex;flex-direction:column;gap:var(--space-xxs);padding-top:var(--space-xs)}.meal-nutrition-micros-heading{margin:0;font-size:var(--font-size-caption);color:var(--color-text-secondary)}.meal-nutrition-row-micro .meal-nutrition-row-label,.meal-nutrition-row-micro .meal-nutrition-row-value{font-size:var(--font-size-caption);font-weight:400}.portion-stepper{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-sm) 0}.portion-stepper-row{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-sm)}.portion-stepper-label{min-width:72px;font-size:var(--font-size-body-secondary);color:var(--color-text-secondary)}.portion-stepper-controls{display:flex;align-items:center;min-width:0;max-width:100%;flex-wrap:wrap;gap:var(--space-xs)}.portion-stepper-step.btn{min-width:var(--size-min-target);min-height:var(--size-min-target);padding:0}.portion-stepper-input.input{width:72px;text-align:center}.portion-stepper-unit.select{width:auto;min-width:0;max-width:100%}.portion-stepper-error{margin:0;font-size:var(--font-size-body-secondary);color:var(--color-error-text)}.portion-stepper-hint{margin:0;font-size:var(--font-size-body-secondary);color:var(--color-text-secondary)}.portion-stepper-other{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.portion-stepper-other-panel{display:flex;flex-direction:column;gap:var(--space-sm)}.portion-stepper-suggestion{display:flex;flex-direction:column;gap:var(--space-xs)}.portion-stepper-suggestion-value{margin:0;font-size:var(--font-size-body-secondary);color:var(--color-text)}.portion-stepper-manual{display:flex;flex-direction:column;gap:var(--space-xs)}.quick-add{border-top:1px solid var(--color-border);margin-top:var(--space-sm);padding-top:var(--space-sm)}.quick-add-macros-toggle{appearance:none;background:none;border:none;min-height:var(--size-min-target);padding:var(--space-xs) 0;font-size:var(--font-size-body-secondary);font-weight:var(--font-weight-body);color:var(--color-text-secondary);cursor:pointer}.quick-add-form{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-xs) 0}.quick-add-field{display:flex;flex-direction:column;gap:var(--space-xxs)}.quick-add-field label{font-size:var(--font-size-body-secondary);color:var(--color-text-secondary)}.quick-add-macros{display:flex;flex-direction:column;gap:var(--space-sm)}.quick-add-error{margin:0;font-size:var(--font-size-body-secondary);color:var(--color-error-text)}.search-panel{display:flex;flex-direction:column;gap:var(--space-sm)}.search-panel-label{font-size:var(--font-size-body-secondary);color:var(--color-text-secondary)}.search-panel-filter{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--font-size-body-secondary);color:var(--color-text-secondary)}.search-panel-results{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-xxs)}.search-panel-option-row{display:flex;flex-direction:column;gap:var(--space-xxs)}.search-panel-option{display:flex;flex-direction:column;gap:var(--space-xxs);min-height:var(--size-min-target);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--font-size-body);cursor:pointer}.search-panel-option[aria-selected=true],.search-panel-option:hover{background:var(--color-subtle)}.search-panel-option-meta{font-size:var(--font-size-body-secondary);color:var(--color-text-secondary)}.search-panel-stack{display:flex;flex-direction:column;gap:var(--space-xs)}.search-panel-empty-copy,.search-panel-tips{margin:0;font-size:var(--font-size-body-secondary);line-height:var(--line-height-body-secondary);color:var(--color-text-secondary)}.search-panel-scan-nudge{margin:0;font-size:var(--font-size-caption);line-height:var(--line-height-body-secondary);color:var(--color-text-secondary)}.search-panel-option-badge{align-self:flex-start;padding:var(--space-xxs) var(--space-xs);border:1px solid var(--color-border);border-radius:var(--radius-pill);font-size:var(--font-size-overline);font-weight:var(--font-weight-overline);color:var(--color-text-secondary)}.search-panel-status{margin:0;font-size:var(--font-size-caption);color:var(--color-text-secondary)}.search-panel-source-chips{display:flex;flex-wrap:wrap;gap:var(--space-xxs);padding:0 var(--space-sm)}.search-panel-source-chip{appearance:none;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);padding:var(--space-xxs) var(--space-xs);font-size:var(--font-size-overline);font-weight:var(--font-weight-overline);color:var(--color-text-secondary);cursor:pointer}.search-panel-source-chip:hover:not(:disabled){color:var(--color-text)}.search-panel-source-chip[aria-selected=true]{color:var(--color-text);background:var(--color-subtle);border-color:var(--color-primary)}.search-panel-source-chip:disabled{cursor:default;opacity:.6}.search-panel-option-source-info{display:flex;align-items:center;gap:var(--space-xs)}.search-panel-option-calories{font-size:var(--font-size-body-secondary);color:var(--color-text-secondary)}.add-food-meal-time{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-md);margin-bottom:var(--space-sm)}.add-food-meal-time-field{display:flex;flex-direction:column;gap:var(--space-xxs)}.add-food-meal-time-label{font-size:var(--font-size-caption);color:var(--color-text-secondary)}.add-food-meal-time-field .input{width:auto}.add-food-tabs{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-xs);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-sm)}.add-food-tab{appearance:none;background:none;border:none;border-bottom:2px solid transparent;padding:var(--space-xs) var(--space-sm);font-size:var(--font-size-body);font-weight:var(--font-weight-body);color:var(--color-text-secondary);cursor:pointer;transition:color var(--motion-fast) ease,border-color var(--motion-fast) ease}.add-food-tab:hover:not([aria-selected=true]){color:var(--color-text)}.add-food-tab[aria-selected=true]{color:var(--color-text);font-weight:var(--font-weight-subtitle);border-bottom-width:3px;border-bottom-color:var(--color-primary)}.add-food-panel{min-height:120px}.describe-panel{display:flex;flex-direction:column;gap:var(--space-md)}.describe-locked{display:flex;flex-direction:column;gap:var(--space-xxs);align-items:flex-start}.describe-locked-badge{font-size:var(--font-size-caption);font-weight:var(--font-weight-subtitle);letter-spacing:var(--letter-spacing-caption);color:var(--color-primary-text)}.describe-locked-desc{margin:0;font-size:var(--font-size-body-secondary);line-height:var(--line-height-body-secondary);color:var(--color-text-secondary)}.describe-field{display:flex;flex-direction:column;gap:var(--space-xxs)}.describe-label{font-size:var(--font-size-body-secondary);font-weight:var(--font-weight-subtitle)}.describe-textarea{resize:vertical}.describe-servings{max-width:6rem}.describe-servings-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-xs)}.describe-servings-count{font-size:var(--font-size-body-secondary)}.describe-help,.describe-char-count,.describe-disclaimer,.describe-request-id,.describe-status{margin:0;font-size:var(--font-size-body-secondary);line-height:var(--line-height-body-secondary);color:var(--color-text-secondary)}.describe-char-count{align-self:flex-end}.describe-submit,.describe-use{align-self:flex-start}.describe-failure{display:flex;flex-direction:column;gap:var(--space-xs);align-items:flex-start}.describe-results{display:flex;flex-direction:column;gap:var(--space-sm)}.describe-results-heading{margin:0;font-size:var(--font-size-subtitle);line-height:var(--line-height-subtitle)}.describe-results-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-xs)}.describe-results-item{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-xs)}.describe-item-name{overflow-wrap:anywhere}.describe-item-amount,.describe-item-calories,.describe-item-provenance,.describe-item-matched{font-size:var(--font-size-body-secondary);color:var(--color-text-secondary)}.describe-item-amount,.describe-item-calories{white-space:nowrap}.describe-item-matched{overflow-wrap:anywhere}.add-food-empty{margin:var(--space-sm) 0;font-size:var(--font-size-body-secondary);line-height:var(--line-height-body-secondary);color:var(--color-text-secondary)}.add-food-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-xxs)}.add-food-row{appearance:none;width:100%;display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-sm);background:var(--color-subtle);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-xs) var(--space-sm);font-size:var(--font-size-body);color:var(--color-text);text-align:left;cursor:pointer}.add-food-row:disabled{color:var(--color-inactive);cursor:default}.add-food-row-meta{font-size:var(--font-size-caption);color:var(--color-text-secondary)}.add-food-row-actions{display:flex;gap:var(--space-sm);align-items:stretch}.add-food-row-actions .add-food-row{flex:1 1 auto}.add-food-error{margin:var(--space-xs) 0 0;font-size:var(--font-size-body-secondary);line-height:var(--line-height-body-secondary);color:var(--color-error-text)}.add-food-plate{margin-top:var(--space-sm)}.add-food-plate-count{margin:0;min-height:var(--line-height-body-secondary);font-size:var(--font-size-body-secondary);line-height:var(--line-height-body-secondary);color:var(--color-text-secondary)}.add-food-plate-list{list-style:none;margin:var(--space-xxs) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-xxs)}.add-food-plate-item{display:flex;align-items:center;gap:var(--space-xxs);background:var(--color-subtle);border:1px solid var(--color-border);border-radius:var(--radius-pill);padding:var(--space-xxs) var(--space-xxs) var(--space-xxs) var(--space-sm);font-size:var(--font-size-caption);color:var(--color-text);max-width:100%}.add-food-plate-item-name{overflow-wrap:anywhere}.add-food-plate-item-provenance,.add-food-plate-item-amount{white-space:nowrap;color:var(--color-text-secondary)}.add-food-plate-item-amount:before{content:"·";margin-right:var(--space-xxs)}button.add-food-plate-item-amount{appearance:none;background:transparent;border:none;padding:0;font:inherit;cursor:pointer}button.add-food-plate-item-amount:hover:not(:disabled){color:var(--color-text);text-decoration:underline}button.add-food-plate-item-amount:disabled{cursor:default}.add-food-plate-item-editor{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xxs);flex:1 1 auto;min-width:0}.add-food-plate-item-qty.input{width:4.5rem;padding:0 var(--space-xs);text-align:center}.add-food-plate-item-unit.select{width:auto;min-width:7rem;max-width:100%;padding:0 var(--space-xs);font-size:var(--font-size-caption)}.add-food-plate-item-error,.add-food-plate-item-hint{flex:1 1 100%;margin:0;font-size:var(--font-size-caption)}.add-food-plate-item-error{color:var(--color-error-text)}.add-food-plate-item-hint{color:var(--color-text-secondary)}.add-food-plate-remove{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;appearance:none;background:transparent;border:none;padding:0;border-radius:var(--radius-pill);color:var(--color-text-secondary);cursor:pointer}.add-food-plate-remove:hover:not(:disabled){color:var(--color-text);background-color:var(--color-surface)}.add-food-plate-remove:disabled{color:var(--color-inactive);cursor:default}.add-food-confirm-title{margin:0 0 var(--space-xs);font-size:var(--font-size-subtitle);font-weight:var(--font-weight-subtitle);color:var(--color-text)}.add-food-confirm-body{margin:0 0 var(--space-sm);font-size:var(--font-size-body-secondary);line-height:var(--line-height-body-secondary);color:var(--color-text-secondary)}.add-food-confirm-actions{display:flex;gap:var(--space-sm);justify-content:flex-end}@media(min-width:768px){.add-food-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-template-areas:"tabs plate" "panel plate" "quickadd plate" "error error";align-items:start;gap:var(--space-lg)}.add-food-grid>.add-food-top-group,.add-food-grid>.add-food-confirm{grid-area:tabs}.add-food-grid>.add-food-panel{grid-area:panel}.add-food-grid>.quick-add{grid-area:quickadd}.add-food-grid>.add-food-error{grid-area:error}.add-food-grid>.add-food-plate{grid-area:plate;margin-top:0}}.insight-card{display:flex;flex-direction:column;gap:var(--space-md);margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--color-border)}.insight-heading{margin:0;font-size:var(--font-size-caption);font-weight:var(--font-weight-caption);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary)}.insight-score{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.insight-score-label{font-size:var(--font-size-body);color:var(--color-text)}.insight-pairings{display:flex;flex-direction:column;gap:var(--space-xs)}.insight-pairing-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-sm)}.insight-pairing{padding:var(--space-sm) 0 var(--space-sm) var(--space-sm);border-left:3px solid var(--color-band-good)}.insight-pairing--conflict{border-left-color:var(--color-band-fair)}.insight-pairing--missing_enhancer{border-left-color:var(--color-text-secondary)}.insight-pairing-message{margin:0;font-size:var(--font-size-body-secondary);color:var(--color-text)}.insight-pairing-cite{margin:var(--space-xxs) 0 0;font-size:var(--font-size-caption);color:var(--color-text-secondary)}.insight-narrative{display:flex;flex-direction:column;gap:var(--space-xxs)}.insight-narrative-text{margin:0;font-size:var(--font-size-body-secondary);line-height:1.5;color:var(--color-text)}.insight-pending,.insight-quiet{margin:0;font-size:var(--font-size-body-secondary);color:var(--color-text-secondary)}.insight-pending--pulse{animation:insight-pulse 1.4s ease-in-out infinite}@keyframes insight-pulse{0%,to{opacity:.55}50%{opacity:1}}@media(prefers-reduced-motion:reduce){.insight-pending--pulse{animation:none}}.insight-locked{display:flex;flex-direction:column;gap:var(--space-xs)}.insight-locked-count{margin:0;font-size:var(--font-size-subtitle);font-weight:var(--font-weight-subtitle);color:var(--color-text)}.insight-locked-body{margin:0;font-size:var(--font-size-body-secondary);color:var(--color-text-secondary)}.insight-weekly-unlock{margin-top:var(--space-xs);display:flex;flex-direction:column;gap:var(--space-xs)}.insight-weekly-label{margin:0;font-size:var(--font-size-caption);font-weight:var(--font-weight-caption);color:var(--color-accent)}.meal-detail-total{display:flex;flex-direction:column;gap:var(--space-xs);padding-bottom:var(--space-md);margin-bottom:var(--space-sm);border-bottom:1px solid var(--color-border)}.meal-detail-total-heading{margin:0;font-size:var(--font-size-subtitle);font-weight:var(--font-weight-subtitle);color:var(--color-text)}.meal-detail-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-md)}.meal-detail-item{display:flex;flex-direction:column;gap:var(--space-xs);padding-bottom:var(--space-sm);border-bottom:1px solid var(--color-border)}.meal-detail-item-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);flex-wrap:wrap}.meal-detail-item-name{min-width:0;overflow-wrap:anywhere;font-size:var(--font-size-body);color:var(--color-text)}.meal-detail-item-portion{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-xs)}.meal-detail-step.btn{min-width:var(--size-min-target);min-height:var(--size-min-target);padding:0}.meal-detail-qty.input{width:5rem;padding:0 var(--space-xs);text-align:center}.meal-detail-unit-select.select{width:auto;min-width:7rem;max-width:100%;padding:0 var(--space-xs);font-size:var(--font-size-body-secondary)}.meal-detail-remove{margin-left:auto;flex-shrink:0}.meal-detail-item--removed{opacity:.5}.meal-detail-item--added{border-left:2px solid var(--color-accent);padding-left:var(--space-xs)}.meal-detail-qty-error,.meal-detail-error{margin:0;font-size:var(--font-size-body-secondary);color:var(--color-error-text)}.meal-detail-hint{margin:0;font-size:var(--font-size-caption);color:var(--color-text-secondary)}.meal-detail-slots{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm) 0}.meal-detail-section-label{font-size:var(--font-size-body-secondary);color:var(--color-text-secondary)}.meal-detail-save-meal{display:flex;flex-direction:column;gap:var(--space-xs);padding-top:var(--space-sm)}.meal-detail-items-column{display:flex;flex-direction:column;gap:var(--space-md)}.meal-detail-add-food{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--color-border)}.meal-detail-meta-row{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-sm)}.meal-detail-meta-row .input{flex:1;min-width:0}.meal-detail-save-meal-row{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-sm)}.meal-detail-name-input.input{flex:1;min-width:0;padding:0 var(--space-sm)}.meal-detail-save-confirm{margin:0;min-height:0;font-size:var(--font-size-body-secondary);color:var(--color-text-secondary)}.meal-detail-save-all-confirm{margin:0;align-self:center;font-size:var(--font-size-body-secondary);color:var(--color-text-secondary)}.meal-detail-confirm{display:flex;flex-direction:column;gap:var(--space-sm)}.meal-detail-confirm-title{margin:0;font-size:var(--font-size-subtitle);font-weight:var(--font-weight-subtitle);color:var(--color-text)}.meal-detail-confirm-body{margin:0;font-size:var(--font-size-body-secondary);line-height:var(--line-height-body-secondary);color:var(--color-text-secondary)}.meal-detail-confirm-actions{display:flex;flex-wrap:wrap;gap:var(--space-sm);justify-content:flex-end}@media(prefers-reduced-motion:reduce){.meal-detail-item,.meal-detail-total{transition:none}}@media(min-width:768px){.meal-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-template-areas:"items rail" "slots slots" "error error";align-items:start;gap:var(--space-lg)}.meal-detail-grid>.meal-detail-items-column{grid-area:items}.meal-detail-grid>.meal-detail-rail{grid-area:rail;display:flex;flex-direction:column;gap:var(--space-md);align-self:start}.meal-detail-grid>.meal-detail-slots{grid-area:slots}.meal-detail-grid>.meal-detail-error{grid-area:error}}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light;--color-primary: #2ecc71;--color-accent: #1abc9c;--color-navy: #1e3a5f;--color-primary-text: #0b6b63;--color-accent-text: #0b6b63;--color-navy-surface: #f3f0e8;--color-navy-subtle: #eaf4ef;--color-navy-border: #dde5df;--color-on-navy: #142523;--color-on-navy-secondary: #4a5d57;--color-shell-accent: #0b6b63;--color-navy-hero: #0b2e26;--color-hero-surface: #10382f;--color-on-hero: #f0f4f8;--color-on-hero-secondary: #a7c4ba;--font-family-base: "Inter Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--color-bg: #faf9f5;--color-surface: #ffffff;--color-subtle: #eaf4ef;--color-text: #142523;--color-text-secondary: #4a5d57;--color-text-inverse: #ffffff;--color-border: #dde5df;--color-divider: #dde5df;--color-inactive: #999999;--color-error: #d96c5f;--color-error-text: #9e3320;--color-error-fill: #9e3320;--color-warning: #e5a943;--color-success: #27ae60;--color-info: #3498db;--color-warning-text: #8a5a00;--color-success-text: #1e7a46;--color-ring-fill: #1c7d45;--color-ring-fill-overflow: #1d6fa5;--color-focus-ring: #2d83bc;--color-focus-halo: #f5f9fc;--color-band-excellent: #1a7f3d;--color-band-good: #547810;--color-band-fair: #7b4a00;--color-band-poor: #a01e32;--color-band-limit: #851212;--color-viz-1: #1c7d45;--color-viz-2: #1d6fa5;--color-viz-3: #7b4a00;--color-gauge-track: #dde5df;--space-xxs: 4px;--space-xs: 8px;--space-sm: 12px;--space-md: 16px;--space-lg: 20px;--space-xl: 24px;--space-xxl: 32px;--space-xxxl: 48px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-pill: 999px;--font-size-display: 56px;--line-height-display: 64px;--font-weight-display: 800;--letter-spacing-display: -1px;--font-size-title: 22px;--line-height-title: 28px;--font-weight-title: 700;--letter-spacing-title: -.2px;--font-size-subtitle: 17px;--line-height-subtitle: 22px;--font-weight-subtitle: 600;--letter-spacing-subtitle: 0px;--font-size-title-compact: 20px;--line-height-title-compact: 26px;--font-weight-title-compact: 700;--letter-spacing-title-compact: -.3px;--font-size-body: 15px;--line-height-body: 22px;--font-weight-body: 400;--letter-spacing-body: 0px;--font-size-body-secondary: 14px;--line-height-body-secondary: 20px;--font-weight-body-secondary: 400;--letter-spacing-body-secondary: 0px;--font-size-caption: 12px;--line-height-caption: 16px;--font-weight-caption: 600;--letter-spacing-caption: .2px;--font-size-overline: 11px;--line-height-overline: 14px;--font-weight-overline: 700;--letter-spacing-overline: 1.2px;--motion-fast: .15s;--motion-base: .3s;--motion-slow: 1.5s;--shadow-none: none;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .08);--shadow-md: 0 2px 6px rgba(0, 0, 0, .1);--shadow-lg: 0 6px 12px rgba(0, 0, 0, .14);--size-min-target: 44px}@media print{:root{color-scheme:light;--color-bg: #faf9f5;--color-surface: #ffffff;--color-subtle: #eaf4ef;--color-text: #142523;--color-text-secondary: #4a5d57}}:root[data-theme=navy]{color-scheme:dark;--color-bg: #0e1b2d;--color-surface: #152843;--color-subtle: #1b324f;--color-text: #f0f4f8;--color-text-secondary: #a6b7cc;--color-text-inverse: #0e1b2d;--color-primary-text: #2ecc71;--color-accent-text: #1abc9c;--color-border: #1f3a5f;--color-divider: #1f3a5f;--color-inactive: #6b7e94;--color-error-text: #ff8a80;--color-error-fill: #ff8a80;--color-error: #ff6b6b;--color-warning: #ffb75a;--color-info: #5dade2;--color-warning-text: #ffb75a;--color-success-text: #2ecc71;--color-ring-fill: #2ecc71;--color-ring-fill-overflow: #5dade2;--shadow-sm: 0 1px 2px rgba(31, 58, 95, .45);--shadow-md: 0 2px 6px rgba(31, 58, 95, .5);--shadow-lg: 0 6px 12px rgba(31, 58, 95, .55);--color-band-excellent: #34d399;--color-band-good: #a3e635;--color-band-fair: #facc15;--color-band-poor: #fb923c;--color-band-limit: #f87171;--color-gauge-track: #1f3a5f;--color-viz-1: #27ae60;--color-viz-2: #3d8fd1;--color-viz-3: #ca8410;--color-navy-surface: #152843;--color-navy-subtle: #1b324f;--color-navy-border: #1f3a5f;--color-on-navy: #f0f4f8;--color-on-navy-secondary: #a6b7cc;--color-shell-accent: #2ecc71;--color-navy-hero: #0e1b2d;--color-hero-surface: #152843;--color-on-hero-secondary: #a6b7cc}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:var(--font-family-base);font-size:var(--font-size-body);font-weight:var(--font-weight-body);line-height:var(--line-height-body);color:var(--color-text);background-color:var(--color-bg)}:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:1px;box-shadow:0 0 0 5px var(--color-focus-halo)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}button,input,select,textarea,[role=button]{min-width:var(--size-min-target);min-height:var(--size-min-target)}.skip-link{position:absolute;top:var(--space-xs);left:var(--space-xs);z-index:100;padding:var(--space-sm) var(--space-md);background-color:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-sm);text-decoration:none;transform:translateY(-250%)}.skip-link:focus{transform:translateY(0)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media print{.app-sidebar{display:none}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);min-height:var(--size-min-target);padding:var(--space-xs) var(--space-md);border:1px solid transparent;border-radius:var(--radius-md);font-size:var(--font-size-body);font-weight:var(--font-weight-subtitle);letter-spacing:var(--letter-spacing-body);text-decoration:none;cursor:pointer;transition:background-color var(--motion-fast) ease}.btn:disabled{opacity:.55;cursor:default}.btn--primary{background-color:var(--color-primary);color:var(--color-navy)}.btn--primary:hover:not(:disabled){background-color:color-mix(in srgb,var(--color-primary) 92%,var(--color-navy))}.btn--secondary{background-color:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}.btn--secondary:hover:not(:disabled){background-color:var(--color-subtle)}.btn--tertiary{background:transparent;border-color:transparent;color:var(--color-primary-text)}.btn--tertiary:hover:not(:disabled){background-color:var(--color-subtle)}.btn--destructive{background-color:var(--color-error-fill);color:var(--color-text-inverse)}.btn--destructive:hover:not(:disabled){background-color:color-mix(in srgb,var(--color-error-fill) 85%,var(--color-text))}.btn--destructive-outline{background-color:var(--color-surface);border-color:var(--color-error-text);color:var(--color-error-text)}.btn--destructive-outline:hover:not(:disabled){background-color:color-mix(in srgb,var(--color-error-text) 8%,var(--color-surface))}.btn--pill{border-radius:var(--radius-pill)}.btn--sm{font-size:var(--font-size-body-secondary);padding:0 var(--space-md)}.btn--start{align-self:flex-start}.input,.select{min-height:var(--size-min-target);padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-surface);color:var(--color-text);font-size:var(--font-size-body);width:100%}.input[aria-invalid=true],.select[aria-invalid=true]{border-color:var(--color-error-text)}input[type=radio],input[type=checkbox]{width:20px;height:20px;min-width:0;min-height:0;accent-color:var(--color-primary)}.option-card{display:flex;flex-direction:column;gap:var(--space-xxs);padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);transition:border-color var(--motion-fast) ease,background-color var(--motion-fast) ease}.option-card:has(input:disabled){opacity:.6}.option-card:hover:not(:has(input:disabled)){border-color:var(--color-text-secondary)}.option-card:has(input:checked){border:2px solid var(--color-primary-text);background-color:color-mix(in srgb,var(--color-primary) 8%,var(--color-surface))}.option-card label{display:flex;align-items:flex-start;gap:var(--space-sm);min-height:var(--size-min-target);font-weight:var(--font-weight-subtitle);color:var(--color-text);cursor:pointer}.option-card-desc{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-body-secondary);line-height:var(--line-height-body-secondary)}.segmented{display:inline-flex;flex-wrap:wrap;gap:1px;background-color:var(--color-border);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.segmented-option{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xxs);min-height:var(--size-min-target);padding:0 var(--space-md);font-size:var(--font-size-body-secondary);color:var(--color-text);background-color:var(--color-surface);cursor:pointer}.segmented-option:has(input:checked){background-color:color-mix(in srgb,var(--color-primary) 12%,var(--color-surface));font-weight:var(--font-weight-subtitle)}.segmented-option:has(input:disabled){opacity:.6;cursor:not-allowed}@media(forced-colors:active){.option-card:has(input:checked),.segmented-option:has(input:checked){outline:2px solid Highlight;outline-offset:-2px}}.card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-md)}.card--flat{box-shadow:var(--shadow-none)}.card-title{margin:0 0 var(--space-sm);font-size:var(--font-size-subtitle);line-height:var(--line-height-subtitle);font-weight:var(--font-weight-subtitle);letter-spacing:var(--letter-spacing-subtitle)}.note{display:flex;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);margin:0;border-left:3px solid var(--color-info);border-radius:var(--radius-sm);background-color:color-mix(in srgb,var(--color-info) 8%,var(--color-surface));color:var(--color-text);font-size:var(--font-size-body-secondary);line-height:var(--line-height-body-secondary)}.note--warning{border-left-color:var(--color-warning);background-color:color-mix(in srgb,var(--color-warning) 10%,var(--color-surface))}.note--error{border-left-color:var(--color-error);background-color:color-mix(in srgb,var(--color-error) 10%,var(--color-surface))}
