.nutrition-page {
    display: grid;
    gap: 12px;
}

/* Shared trainer topbar follows the same compact vertical rhythm as training pages.
   nutrition-page is a grid, so neutralize the shared margins that would otherwise
   stack with grid gap and create a ~28px hole before the workspace. */
.nutrition-page > #topbar {
    margin-bottom: 0;
}
.nutrition-page > #topbar + .block {
    margin-top: -4px;
}

.nutrition-workspace {
    min-height: 220px;
}

/* Today starts in an explicit unknown state. Runtime-controlled content is laid out but
   remains visually hidden until both display settings and the first day payload resolve. */
.nutrition-workspace[data-nutrition-view="today"][data-today-ui-state="initializing"] .nutrition-today-runtime,
.nutrition-workspace[data-nutrition-view="today"][data-today-ui-state="initializing"] .nutrition-welcome {
    visibility: hidden;
    pointer-events: none;
}
.nutrition-workspace[data-nutrition-view="today"][data-today-ui-state="ready"] .nutrition-today-runtime {
    visibility: visible;
}

.nutrition-food-form { display: grid; gap: 10px; margin-top: 14px; }
.nutrition-food-form fieldset { margin: 0; padding: 10px 12px; border: 1px solid var(--border-main, #9fb3cc); border-radius: 12px; }
.nutrition-food-form legend { padding: 0 6px; font-weight: 700; }
.nutrition-food-grid { display: grid; grid-template-columns: minmax(180px,1.55fr) repeat(6,minmax(82px,.72fr)); gap: 8px; align-items: end; }
.nutrition-food-name { grid-column: auto; }
.nutrition-food-grid label { display: grid; min-width: 0; gap: 5px; }
.nutrition-food-grid input { width: 100%; box-sizing: border-box; }
.nutrition-food-grid output { display: flex; min-height: 40px; box-sizing: border-box; align-items: center; padding: 7px 10px; border: 1px solid var(--border-main, #9fb3cc); border-radius: 9px; background: var(--surface-overlay-soft, rgba(140,153,170,.10)); font-weight: 600; }
.nutrition-secondary-button { min-height: 40px; padding: 8px 18px; border: 1px solid var(--border-main, #9fb3cc); border-radius: 10px; background: transparent; color: inherit; font-weight: 700; cursor: pointer; }
.nutrition-food-list-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 22px; }
.nutrition-food-list-toolbar h3 { margin: 0; }
.nutrition-food-list-controls { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.nutrition-food-list-controls input, .nutrition-food-list-controls select { min-height: 38px; box-sizing: border-box; }
.nutrition-food-list-controls input { width: min(260px, 38vw); }
.nutrition-food-list { display: grid; gap: 8px; margin-top: 10px; }
.nutrition-food-card { position: relative; display: grid; grid-template-columns: minmax(180px, 1.6fr) repeat(5, minmax(70px, .65fr)) auto; gap: 10px; align-items: center; padding: 10px 12px; border: 1px solid var(--border-main, #9fb3cc); border-radius: 11px; }
.nutrition-food-card.is-archived { opacity: .62; }
.nutrition-food-card.is-collection { border-color: color-mix(in srgb, var(--border-main, #9fb3cc) 65%, #4ca67c 35%); background: color-mix(in srgb, var(--surface-bg-soft, #fff) 92%, #63bd91 8%); }
.nutrition-food-card strong, .nutrition-food-card span { min-width: 0; }
.nutrition-food-card small { display: block; opacity: .7; }
.nutrition-food-card-actions { display: flex; gap: 7px; justify-content: flex-end; }
.nutrition-food-card button { min-height: 34px; padding: 5px 10px; border: 1px solid var(--border-main, #9fb3cc); border-radius: 8px; background: transparent; color: inherit; cursor: pointer; }
.nutrition-card-icon-button, .nutrition-food-card .nutrition-card-icon-button, .nutrition-recipe-item .nutrition-card-icon-button, .nutrition-recipe-card .nutrition-card-icon-button, .nutrition-day-item-actions .nutrition-card-icon-button { display: inline-flex; width: 36px; min-width: 36px; height: 36px; min-height: 36px; align-items: center; justify-content: center; box-sizing: border-box; padding: 4px; border: 1px solid var(--border-main, #9fb3cc); border-radius: 8px; background: transparent; color: inherit; cursor: pointer; }
.nutrition-card-icon-button:hover, .nutrition-card-icon-button:focus-visible { background: var(--surface-overlay-hover, rgba(140,153,170,.16)); }
.nutrition-card-icon-button.nutrition-card-icon-button-danger { border-color: rgba(190,55,65,.58); background: rgba(190,55,65,.10); }
.nutrition-card-icon-button.nutrition-card-icon-button-danger:hover, .nutrition-card-icon-button.nutrition-card-icon-button-danger:focus-visible { background: rgba(190,55,65,.20); }
.nutrition-card-icon-button img, .nutrition-card-system-marker img { display: block; width: 26px; height: 26px; object-fit: contain; }
.nutrition-card-system-marker { display: inline-flex; width: 36px; height: 36px; align-items: center; justify-content: center; justify-self: center; opacity: .78; }
.nutrition-food-badges { position: absolute; left: 8px; bottom: 4px; display: flex; gap: 3px; pointer-events: none; }
.nutrition-food-badges:empty { display: none; }
.nutrition-food-badges img { width: 20px; height: 20px; object-fit: contain; }
.nutrition-food-source-badge { padding: 2px 7px; border-radius: 999px; background: rgba(55,157,108,.16); color: var(--text-main, inherit); font-size: 11px; font-weight: 700; }
.nutrition-food-card.has-badges { padding-bottom: 27px; }
.nutrition-food-sources { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 18px; padding: 11px 13px; border: 1px solid var(--border-main, #9fb3cc); border-radius: 12px; }
.nutrition-food-sources h3, .nutrition-food-sources p { margin: 0; }
.nutrition-food-source-list { display: flex; gap: 7px; flex-wrap: wrap; justify-content: flex-end; }
.nutrition-food-source-button, .nutrition-food-source-fixed, .nutrition-food-source-my { min-height: 36px; padding: 6px 13px; border: 1px solid var(--border-main, #9fb3cc); border-radius: 999px; background: transparent; color: inherit; font-weight: 700; }
.nutrition-food-source-button { cursor: pointer; opacity: .58; }
.nutrition-food-source-button[aria-pressed="true"], .nutrition-food-source-fixed { border-color: #3fa878; background: rgba(63,168,120,.16); opacity: 1; }
.nutrition-food-source-my { display: inline-flex; align-items: center; justify-content: center; border-color: #c49a36; background: #f3d98a; color: #5f4710; box-shadow: inset 0 1px 0 rgba(255,255,255,.46); opacity: 1; cursor: default; user-select: none; }
html[data-theme="dark"] .nutrition-food-source-my, body.dark-theme .nutrition-food-source-my { border-color: #b8943d; background: #8a6d28; color: #fff2bd; box-shadow: none; }
.nutrition-food-empty { padding: 18px; border: 1px dashed var(--border-main, #9fb3cc); border-radius: 11px; text-align: center; opacity: .75; }
.nutrition-food-pagination { display: flex; align-items: center; justify-content: center; gap: 12px; margin-top: 12px; }
.nutrition-workspace[data-nutrition-view="foods"][data-show-ethanol="0"] .nutrition-food-ethanol { display: none; }
.nutrition-workspace[data-nutrition-view="foods"][data-show-ethanol="0"] .nutrition-food-grid { grid-template-columns: minmax(180px,1.55fr) repeat(5,minmax(82px,.72fr)); }
.nutrition-workspace[data-nutrition-view="foods"][data-show-ethanol="0"] .nutrition-food-card { grid-template-columns: minmax(180px, 1.6fr) repeat(4, minmax(70px, .65fr)) auto; }
.nutrition-recipe-form { display: grid; gap: 12px; margin-top: 18px; }
.nutrition-recipe-form fieldset { margin: 0; padding: 14px; border: 1px solid var(--border-main, #9fb3cc); border-radius: 12px; }
.nutrition-recipe-form legend { padding: 0 6px; font-weight: 700; }
.nutrition-recipe-head { display: grid; grid-template-columns: 2fr 1fr; gap: 10px; }
.nutrition-recipe-head label, .nutrition-recipe-add label { display: grid; gap: 5px; }
.nutrition-recipe-add { display: grid; grid-template-columns: minmax(220px, 1fr) auto; gap: 10px; align-items: end; }
.nutrition-recipe-food-results { display: flex; gap: 7px; flex-wrap: wrap; padding: 10px; border: 1px solid var(--border-main, #9fb3cc); border-radius: 10px; }
.nutrition-recipe-food-results[hidden] { display: none; }
.nutrition-recipe-food-results button { padding: 6px 10px; border: 1px solid var(--border-main, #9fb3cc); border-radius: 999px; background: transparent; color: inherit; cursor: pointer; }
.nutrition-recipe-food-results button.is-external-source, .nutrition-library-result.is-external-source, .nutrition-day-similar-card.is-external-source { border-color: #3d82db; box-shadow: inset 0 0 0 1px rgba(61,130,219,.20); }
.nutrition-recipe-item-head, .nutrition-recipe-item { display: grid; grid-template-columns: minmax(180px, 1.6fr) repeat(4,minmax(65px,.55fr)) minmax(85px,.7fr) minmax(65px,.55fr) 36px; gap: 7px; align-items: center; }
.nutrition-recipe-item-head { padding: 0 9px; font-size: 12px; opacity: .72; }
.nutrition-recipe-items { display: grid; gap: 7px; }
.nutrition-recipe-item { padding: 8px; border: 1px solid var(--border-main, #9fb3cc); border-radius: 10px; }
.nutrition-recipe-item.is-external-source, .nutrition-day-item.is-external-source { border-color: #3d82db; box-shadow: inset 0 0 0 1px rgba(61,130,219,.14); }
.nutrition-recipe-item input { width: 100%; min-width: 0; box-sizing: border-box; }
.nutrition-recipe-item input.nutrition-recipe-calculated { background: var(--surface-overlay-soft, rgba(140,153,170,.12)); color: inherit; font-weight: 700; text-align: center; opacity: 1; }
.nutrition-recipe-item output { padding: 0 4px; }
.nutrition-recipe-item button { min-height: 34px; padding: 5px 9px; border: 1px solid var(--border-main, #9fb3cc); border-radius: 8px; background: transparent; color: inherit; cursor: pointer; }
.nutrition-recipe-summary { display: grid; grid-template-columns: minmax(120px,1.2fr) repeat(6,minmax(70px,.65fr)); align-items: end; }
.nutrition-recipe-summary > strong { align-self: center; }
.nutrition-recipe-summary span { min-width: 0; }
.nutrition-recipe-summary label { display: grid; gap: 5px; }
.nutrition-recipe-summary output { min-height: 40px; padding: 8px 9px; box-sizing: border-box; border: 1px solid var(--border-main, #9fb3cc); border-radius: 9px; background: var(--surface-overlay-soft, rgba(140,153,170,.10)); font-weight: 700; }
.nutrition-recipe-library-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 24px; }
.nutrition-recipe-library-head h3 { margin: 0; }
.nutrition-recipe-library { display: grid; max-height: 690px; gap: 8px; margin-top: 10px; padding-right: 3px; overflow-y: auto; scrollbar-gutter: stable; }
.nutrition-recipe-manual-save-hint { grid-column: 1 / -1; color: #17824a; font-style: italic; }
.nutrition-create-suggestions { grid-column: 1 / -1; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; padding: 7px 9px; border: 1px dashed color-mix(in srgb, var(--border-main, #9fb3cc) 58%, #299865 42%); border-radius: 10px; background: color-mix(in srgb, var(--surface-bg-soft, transparent) 91%, #73c99d 9%); }
.nutrition-create-suggestions[hidden] { display: none; }
.nutrition-create-suggestions > small { margin-right: 3px; color: var(--text-soft, inherit); font-style: italic; }
.nutrition-recipe-card { display: grid; grid-template-columns: minmax(180px,1fr) repeat(5,minmax(65px,.55fr)) auto; gap: 9px; align-items: center; padding: 10px 12px; border: 1px solid var(--border-main, #9fb3cc); border-radius: 11px; }
.nutrition-recipe-card.is-archived { opacity: .62; }
.nutrition-recipe-card small { display: block; opacity: .7; }
.nutrition-recipe-card-actions { display: flex; gap: 6px; }
.nutrition-recipe-card button { min-height: 34px; padding: 5px 9px; border: 1px solid var(--border-main, #9fb3cc); border-radius: 8px; background: transparent; color: inherit; cursor: pointer; }
.nutrition-workspace[data-nutrition-view="foods"][data-show-ethanol="0"] .nutrition-recipe-ethanol { display: none; }
.nutrition-workspace[data-nutrition-view="foods"][data-show-ethanol="0"] .nutrition-recipe-item-head,
.nutrition-workspace[data-nutrition-view="foods"][data-show-ethanol="0"] .nutrition-recipe-item { grid-template-columns: minmax(180px,1.6fr) repeat(3,minmax(65px,.55fr)) minmax(85px,.7fr) minmax(65px,.55fr) 36px; }
.nutrition-workspace[data-nutrition-view="foods"][data-show-ethanol="0"] .nutrition-recipe-summary { grid-template-columns: minmax(120px,1.2fr) repeat(5,minmax(70px,.65fr)); }

.nutrition-settings-form { display: grid; gap: 14px; max-width: none; margin-top: 18px; }
.nutrition-settings-form fieldset { display: grid; gap: 10px; margin: 0; padding: 14px; border: 1px solid var(--border-main, #9fb3cc); border-radius: 12px; }
.nutrition-settings-form legend { padding: 0 6px; font-weight: 700; }
.nutrition-setting-row { display: grid; grid-template-columns: auto 1fr; align-items: start; gap: 10px; cursor: pointer; }
.nutrition-setting-row input { margin-top: 3px; }
.nutrition-setting-row span { display: grid; gap: 3px; }
.nutrition-setting-row small { opacity: .72; }
.nutrition-radio { display: inline-flex; align-items: center; gap: 6px; margin-right: 18px; cursor: pointer; }
.nutrition-settings-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.nutrition-settings-status[data-state="error"] { color: #b3261e; }
.nutrition-settings-status[data-state="success"] { color: #168447; }
.nutrition-weight-form { padding-top: 6px; border-top: 1px solid var(--border-main, #9fb3cc); }
.nutrition-weight-editor { display: grid; grid-template-columns: repeat(2, minmax(140px, 1fr)); gap: 10px; }
.nutrition-weight-editor label { display: grid; gap: 5px; }
.nutrition-weight-editor input { width: 100%; box-sizing: border-box; }
.nutrition-target-form { padding-top: 6px; border-top: 1px solid var(--border-main, #9fb3cc); }
.nutrition-energy-form { padding-top: 6px; border-top: 1px solid var(--border-main, #9fb3cc); }
.nutrition-energy-grid { display: grid; grid-template-columns: repeat(4, minmax(130px, 1fr)); gap: 10px; align-items: end; }
.nutrition-energy-grid label { display: grid; min-width: 0; gap: 5px; }
.nutrition-energy-grid input, .nutrition-energy-grid select { width: 100%; box-sizing: border-box; }
.nutrition-energy-grid output { display: flex; min-height: 40px; box-sizing: border-box; align-items: center; padding: 7px 10px; border: 1px solid var(--border-main, #9fb3cc); border-radius: 9px; }
.nutrition-energy-grid .nutrition-fat-field { max-width: none; margin: 0; }
.nutrition-energy-youth-warning { padding: 10px 12px; border: 1px solid #d98900; border-radius: 9px; background: rgba(255,174,0,.12); color: inherit; }
.nutrition-energy-form.is-pediatric .nutrition-fat-field,
.nutrition-energy-form.is-pediatric [name="daily_steps"] { opacity: .58; }
.nutrition-target-meta { display: grid; grid-template-columns: repeat(3, minmax(150px, 1fr)); gap: 10px; }
.nutrition-target-meta label { display: grid; gap: 5px; }
.nutrition-target-meta small { min-height: 1.2em; opacity: .72; }
.nutrition-mode-switch { display: flex; gap: 16px; flex-wrap: wrap; padding: 8px 0; }
.nutrition-mode-switch label { cursor: pointer; }
.nutrition-macro-head, .nutrition-macro-row { display: grid; grid-template-columns: minmax(100px, 1fr) minmax(90px, .8fr) minmax(90px, .8fr) minmax(130px, 1fr); gap: 8px; align-items: center; }
.nutrition-macro-head { padding-top: 6px; font-size: 12px; opacity: .7; }
.nutrition-macro-row input, .nutrition-macro-row select, .nutrition-target-meta input, .nutrition-kcal-field input { width: 100%; box-sizing: border-box; }
.nutrition-target-warning { padding: 9px 12px; border: 1px solid #d55; border-radius: 9px; color: #b3261e; }
.nutrition-history-snapshot-notice { margin: 10px 0 2px; padding: 9px 12px; border: 1px solid var(--danger-color, #d55); border-radius: 9px; background: rgba(198,40,40,.08); color: var(--danger-text, #b3261e); font-size: .9rem; font-weight: 600; }

.nutrition-diary-toolbar { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px 18px; align-items: center; margin-top: 16px; padding: 10px 12px; border: 1px solid var(--border-main, #9fb3cc); border-radius: 12px; }
.nutrition-diary-visualization { margin-top: 14px; border: 1px solid var(--border-main, #9fb3cc); border-radius: 11px; }
.nutrition-diary-visualization > summary { padding: 10px 12px; font-weight: 700; cursor: pointer; }
.nutrition-diary-visualization .nutrition-diary-toolbar { margin-top: 0; border-width: 1px 0 0; border-radius: 0 0 11px 11px; }
.nutrition-diary-switches { display: flex; gap: 10px 18px; flex-wrap: wrap; }
.nutrition-switch { position: relative; display: inline-flex; align-items: center; gap: 7px; cursor: pointer; font-size: 13px; }
.nutrition-switch input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.nutrition-switch-track { position: relative; width: 34px; height: 19px; flex: 0 0 auto; border-radius: 999px; background: var(--control-border, #8c99aa); transition: background .18s ease; }
.nutrition-switch-track::after { content: ''; position: absolute; width: 15px; height: 15px; top: 2px; left: 2px; border-radius: 50%; background: var(--text-inverse, #fff); box-shadow: 0 1px 3px rgba(0,0,0,.28); transition: transform .18s ease; }
.nutrition-switch input:checked + .nutrition-switch-track { background: var(--accent, #2b67e8); }
.nutrition-switch input:checked + .nutrition-switch-track::after { transform: translateX(15px); }
.nutrition-switch input:focus-visible + .nutrition-switch-track { outline: 2px solid var(--focus-ring, #ff9800); outline-offset: 2px; }
.nutrition-switch:has(input:disabled) { cursor: default; opacity: .5; }
.nutrition-switch input:disabled { cursor: default; }
.nutrition-chart-mode { display: flex; align-items: center; gap: 8px; font-size: 13px; }
.nutrition-chart-mode select { min-width: 150px; }
.nutrition-day-macro-chart { display: grid; grid-template-columns: minmax(100px,.4fr) minmax(290px,.9fr) minmax(280px,1.15fr); gap: 16px; align-items: center; margin-top: 12px; padding: 10px 14px; border: 1px solid var(--border-main, #9fb3cc); border-radius: 12px; color: var(--text-main, #172033); }
.nutrition-day-macro-chart-body { display: flex; align-items: center; justify-content: flex-end; gap: 18px; }
.nutrition-day-macro-donuts { display: flex; align-items: center; gap: 12px; }
.nutrition-day-macro-donut { display: grid; width: 92px; height: 92px; flex: 0 0 92px; place-items: center; border-radius: 50%; }
.nutrition-day-macro-donut::before { grid-area: 1 / 1; width: 58px; height: 58px; border-radius: 50%; background: var(--surface-bg, var(--surface-bg-raised, #eef4fc)); content: ''; }
.nutrition-day-macro-donut span { z-index: 1; grid-area: 1 / 1; max-width: 52px; font-size: 11px; font-weight: 700; text-align: center; }
.nutrition-day-macro-legend { display: grid; gap: 7px; min-width: 130px; }
.nutrition-day-macro-legend span { display: grid; grid-template-columns: 10px 1fr; gap: 7px; align-items: center; }
.nutrition-day-macro-legend i { width: 10px; height: 10px; border-radius: 50%; background: #4f83e3; }
.nutrition-day-macro-legend span:nth-child(2) i { background: #e7a84b; }
.nutrition-day-macro-legend span:nth-child(3) i { background: #62b879; }
.nutrition-day-macro-legend span:nth-child(4) i { background: #d85858; }
.nutrition-day-macro-legend output { font-weight: 700; }
.nutrition-day-plan-chart { display: grid; gap: 7px; padding-left: 16px; border-left: 1px solid var(--border-overlay, rgba(140,153,170,.28)); }
.nutrition-day-plan-chart > p { margin: 4px 0; font-size: 12px; opacity: .72; }
.nutrition-day-plan-chart > div { display: grid; gap: 6px; }
.nutrition-day-plan-row { display: grid; grid-template-columns: 42px minmax(100px,1fr) 48px; gap: 8px; align-items: center; font-size: 12px; }
.nutrition-day-plan-row > div { height: 9px; overflow: hidden; border-radius: 999px; background: var(--surface-bg-strong, rgba(140,153,170,.18)); }
.nutrition-day-plan-row i { display: block; width: 0; height: 100%; border-radius: inherit; background: #4f83e3; transition: width .16s ease; }
.nutrition-day-plan-row output { font-weight: 700; text-align: right; }
.nutrition-day-plan-row.is-over i { background: #d98745; }
.nutrition-day-plan-row.is-empty-target { opacity: .45; }
.nutrition-diary-toolbar .nutrition-settings-status { grid-column: 1 / -1; min-height: 0; font-size: 12px; }
.nutrition-diary-toolbar .nutrition-settings-status:empty { display: none; }
.nutrition-diary-toolbar.is-saving { opacity: .78; }
.nutrition-diary-placeholder { min-height: 100px; }
.nutrition-day-datebar { display: flex; align-items: end; gap: 8px; flex-wrap: wrap; margin-top: 14px; }
.nutrition-day-datebar label { display: grid; gap: 4px; }
.nutrition-day-datebar input { min-height: 40px; box-sizing: border-box; }
.nutrition-day-state { margin-left: auto; padding: 6px 10px; border: 1px solid var(--border-main, #9fb3cc); border-radius: 999px; font-size: 13px; }
.nutrition-day-context { display: flex; justify-content: flex-end; align-items: center; gap: 8px; margin-top: 10px; }
.nutrition-day-add { display: grid; grid-template-columns: minmax(220px,1fr) auto; gap: 10px; align-items: end; margin-top: 14px; }
.nutrition-day-add label { display: grid; gap: 4px; }
.nutrition-day-item-head, .nutrition-day-item { display: grid; grid-template-columns: minmax(170px,1.5fr) repeat(3,minmax(56px,.55fr)) minmax(64px,.6fr) repeat(2,minmax(58px,.5fr)) 118px; gap: 7px; align-items: center; }
.nutrition-day-item-head { margin-top: 14px; padding: 8px 9px; border-radius: 8px; background: var(--surface-overlay-soft, rgba(140,153,170,.10)); font-size: 12px; font-weight: 700; opacity: .92; }
.nutrition-day-item-head > span { text-align: center; }
.nutrition-day-item-head > span:first-child { text-align: left; }
.nutrition-day-items { display: grid; gap: 7px; margin: 6px 0; }
.nutrition-day-section-tools { display: flex; justify-content: flex-end; margin: 8px 0; }
.nutrition-day-section-tools[hidden] { display: none; }
.nutrition-day-section { display: grid; gap: 6px; padding: 8px; border: 1px solid var(--border-main, #9fb3cc); border-radius: 12px; background: var(--surface-overlay-subtle, rgba(140,153,170,.04)); }
.nutrition-day-section-heading { display: flex; min-height: 34px; align-items: center; justify-content: space-between; gap: 8px; padding: 0 3px; }
.nutrition-day-section-heading .nutrition-card-icon-button { width: 31px; min-width: 31px; height: 31px; min-height: 31px; }
.nutrition-day-section-actions { display: flex; align-items: center; gap: 5px; }
.nutrition-day-section-items { display: grid; gap: 7px; }
.nutrition-day-section-items:empty { display: none; }
.nutrition-day-section-summary { display: grid; grid-template-columns: minmax(92px,1.2fr) repeat(6,minmax(54px,.65fr)); gap: 7px; align-items: center; padding: 7px 9px 2px; border-top: 1px solid var(--border-overlay, rgba(140,153,170,.28)); text-align: center; }
.nutrition-day-section-summary strong { text-align: left; }
.nutrition-day-section-summary span { display: grid; gap: 2px; }
.nutrition-day-section-summary small { font-size: 10px; opacity: .7; }
.nutrition-day-section-summary output { font-weight: 700; }
.nutrition-day-item { padding: 8px; border: 1px solid var(--border-main, #9fb3cc); border-radius: 10px; }
.nutrition-day-item.saved-macros-hidden { grid-template-columns: minmax(170px,1.5fr) minmax(64px,.6fr) minmax(58px,.5fr) 118px; }
.nutrition-workspace[data-nutrition-view="today"][data-show-ethanol="0"] .nutrition-day-item.saved-macros-hidden { grid-template-columns: minmax(170px,1.5fr) minmax(64px,.6fr) minmax(58px,.5fr) 118px; }
.nutrition-day-item.saved-macros-hidden .nutrition-day-saved-macro { display: none; }
.nutrition-workspace[data-nutrition-view="today"][data-show-saved-macros="0"] .nutrition-day-item-head { grid-template-columns: minmax(170px,1.5fr) minmax(64px,.6fr) minmax(58px,.5fr) 118px; }
.nutrition-workspace[data-nutrition-view="today"][data-show-saved-macros="0"][data-show-ethanol="0"] .nutrition-day-item-head { grid-template-columns: minmax(170px,1.5fr) minmax(64px,.6fr) minmax(58px,.5fr) 118px; }
.nutrition-workspace[data-nutrition-view="today"][data-show-saved-macros="0"] .nutrition-day-saved-macro-head { display: none; }
.nutrition-workspace[data-nutrition-view="today"][data-show-saved-macros="0"] .nutrition-day-item-head > .nutrition-day-ethanol,
.nutrition-workspace[data-nutrition-view="today"][data-show-saved-macros="0"] .nutrition-day-item.saved-macros-hidden .nutrition-day-ethanol { display: none; }
.nutrition-workspace[data-nutrition-view="today"][data-show-saved-macros="0"] .nutrition-day-item.is-manual .nutrition-day-field small { display: block; }
.nutrition-day-item input { width: 100%; min-width: 0; box-sizing: border-box; }
.nutrition-day-field { display: grid; min-width: 0; gap: 3px; }
.nutrition-day-field small { overflow: hidden; color: inherit; font-size: 11px; opacity: .72; text-overflow: ellipsis; white-space: nowrap; }
.nutrition-day-item .nutrition-day-field small { display: none; }
.nutrition-day-calculated output { display: flex; min-height: 40px; align-items: center; justify-content: center; box-sizing: border-box; padding: 8px; border: 1px solid var(--border-main, #9fb3cc); border-radius: 8px; background: var(--surface-overlay-soft, rgba(140,153,170,.12)); font-weight: 700; }
.nutrition-day-item-actions { display: flex; align-self: center; gap: 5px; }
.nutrition-day-item-actions button { min-height: 34px; padding: 5px 8px; border: 1px solid var(--border-main, #9fb3cc); border-radius: 8px; background: transparent; color: inherit; cursor: pointer; }
.nutrition-day-similar { grid-column: 1 / -1; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; padding-top: 2px; }
.nutrition-day-similar[hidden] { display: none; }
.nutrition-day-similar > small { opacity: .7; }
.nutrition-day-similar-card { display: inline-flex; align-items: center; gap: 5px; min-height: 30px; padding: 4px 8px; border: 1px solid var(--border-main, #9fb3cc); border-radius: 999px; background: var(--surface-overlay-soft, rgba(140,153,170,.08)); color: inherit; cursor: pointer; }
.nutrition-day-similar-card img { width: 17px; height: 17px; object-fit: contain; }
.nutrition-day-similar-card span { font-size: 11px; opacity: .7; }
.nutrition-day-item > .nutrition-day-similar { grid-column: 1 / -1; }
.nutrition-day-manual-save { flex: 0 0 auto; }
.nutrition-day-manual-save.is-saved { opacity: .55; }
.nutrition-day-summary { display: grid; grid-template-columns: minmax(120px,1.2fr) repeat(6,minmax(70px,.65fr)); gap: 8px; align-items: end; margin: 12px 0; padding: 10px; border: 1px solid var(--border-main, #9fb3cc); border-radius: 11px; }
.nutrition-day-summary { text-align: center; }
.nutrition-day-summary strong { align-self: center; text-align: center; }
.nutrition-day-summary span { display: grid; gap: 3px; text-align: center; }
.nutrition-day-summary small { opacity: .7; }
.nutrition-day-summary output { font-weight: 700; }
.nutrition-day-summary .nutrition-day-total-per-kg { opacity: .72; font-size: 10px; line-height: 1.05; white-space: nowrap; }
.nutrition-workspace[data-nutrition-view="today"][data-show-ethanol="0"] .nutrition-day-ethanol { display: none; }
.nutrition-workspace[data-nutrition-view="today"][data-show-ethanol="0"] .nutrition-day-item-head,
.nutrition-workspace[data-nutrition-view="today"][data-show-ethanol="0"] .nutrition-day-item { grid-template-columns: minmax(170px,1.5fr) repeat(3,minmax(56px,.55fr)) minmax(64px,.6fr) minmax(58px,.5fr) 118px; }
.nutrition-workspace[data-nutrition-view="today"][data-show-ethanol="0"] .nutrition-day-summary { grid-template-columns: minmax(120px,1.2fr) repeat(5,minmax(70px,.65fr)); }
.nutrition-workspace[data-nutrition-view="today"][data-show-ethanol="0"] .nutrition-day-section-summary { grid-template-columns: minmax(92px,1.2fr) repeat(5,minmax(54px,.65fr)); }
.nutrition-workspace input[type="number"], .nutrition-workspace output { text-align: center; }
.nutrition-workspace input[type="search"] { border-color: color-mix(in srgb, var(--border-main, #9fb3cc) 55%, #299865 45%); background: color-mix(in srgb, var(--input-bg, #fff) 88%, #73c99d 12%); color: var(--input-text, #172033); font-style: italic; }
.nutrition-workspace input[type="search"]:focus { outline: 2px solid rgba(41,152,101,.30); border-color: #299865; }
.nutrition-add-manual-button { border-color: #2e9d68; background: color-mix(in srgb, transparent 78%, #42b77c 22%); }
.nutrition-add-section-button { border-color: #d88927; background: color-mix(in srgb, transparent 78%, #efa53d 22%); }
.nutrition-add-manual-button:hover, .nutrition-add-manual-button:focus-visible { background: color-mix(in srgb, transparent 64%, #42b77c 36%); }
.nutrition-add-section-button:hover, .nutrition-add-section-button:focus-visible { background: color-mix(in srgb, transparent 64%, #efa53d 36%); }

.nutrition-settings-form input[type="number"], .nutrition-settings-form input[type="date"], .nutrition-settings-form select,
.nutrition-weight-form input[type="number"], .nutrition-weight-form input[type="date"], .nutrition-fat-field input, .nutrition-chart-mode select {
    min-height: 40px; padding: 7px 10px; border: 1px solid var(--input-border, #9fb3cc); border-radius: 9px; background: var(--input-bg, #fff); color: var(--input-text, #172033); font: inherit;
}
.nutrition-settings-form input::placeholder { color: var(--input-placeholder, #6b7280); }
.nutrition-settings-form input:disabled,
.nutrition-settings-form input[readonly],
.nutrition-settings-form select:disabled {
    background: var(--input-readonly-bg, rgba(140,153,170,.14));
    color: var(--text-soft, #475569);
    opacity: 1;
}
.nutrition-settings-form input:focus, .nutrition-settings-form select:focus, .nutrition-weight-form input:focus, .nutrition-fat-field input:focus, .nutrition-chart-mode select:focus { outline: 2px solid color-mix(in srgb, var(--focus-ring, #2b67e8) 34%, transparent); border-color: var(--input-border-hover, var(--focus-ring, #2b67e8)); }
.nutrition-action-button { min-height: 40px; padding: 8px 18px; border: 1px solid var(--accent-border, #245bd2); border-radius: 10px; background: var(--action-primary-bg, var(--accent, #2b67e8)); color: var(--action-primary-text, #fff); font-weight: 700; cursor: pointer; }
.nutrition-action-button:hover { background: var(--action-primary-bg-hover, var(--accent-hover, #245bd2)); }
.nutrition-action-button:disabled { opacity: .55; cursor: default; }
/* Closed current day: keep the action visible while making the read-only state obvious. */
.nutrition-workspace.nutrition-day-closed { box-shadow: inset 0 0 0 2px var(--border-overlay, rgba(100,116,139,.28)); }
.nutrition-workspace.nutrition-day-closed .nutrition-day-macro-chart,
.nutrition-workspace.nutrition-day-closed .nutrition-day-add,
.nutrition-workspace.nutrition-day-closed .nutrition-day-item-head,
.nutrition-workspace.nutrition-day-closed .nutrition-day-items,
.nutrition-workspace.nutrition-day-closed .nutrition-food-empty,
.nutrition-workspace.nutrition-day-closed .nutrition-day-summary {
    opacity: .68;
    filter: grayscale(.35);
}
.nutrition-workspace.nutrition-day-closed .nutrition-day-add,
.nutrition-workspace.nutrition-day-closed .nutrition-day-item-head,
.nutrition-workspace.nutrition-day-closed .nutrition-day-items,
.nutrition-workspace.nutrition-day-closed .nutrition-food-empty,
.nutrition-workspace.nutrition-day-closed .nutrition-day-summary {
    background: var(--surface-overlay-subtle, rgba(127,127,127,.06));
}
.nutrition-dialog { width: min(94vw, 520px); padding: 0; border: 1px solid var(--border-main, #9fb3cc); border-radius: 14px; background: var(--surface-bg-raised, #eef4fc); color: inherit; box-shadow: 0 18px 55px rgba(0,0,0,.28); }
.nutrition-dialog::backdrop { background: var(--modal-backdrop-bg, rgba(8,18,35,.56)); }
.nutrition-dialog-card { display: grid; gap: 14px; padding: 18px; }
.nutrition-dialog-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 18px; }
.nutrition-dialog-heading .nutrition-card-icon-button { font-size: 24px; line-height: 1; }
.nutrition-history-month { display: grid; grid-template-columns: auto minmax(160px,1fr); align-items: center; gap: 12px; }
.nutrition-history-month input { min-height: 40px; }
.nutrition-history-calendar { display: grid; grid-template-columns: repeat(7,1fr); gap: 5px; }
.nutrition-history-calendar span, .nutrition-history-calendar button { position: relative; min-height: 40px; padding: 5px; border: 1px solid transparent; border-radius: 8px; background: transparent; color: inherit; text-align: center; }
.nutrition-history-calendar .nutrition-history-weekday { min-height: auto; font-size: 11px; opacity: .65; }
.nutrition-history-calendar button { border-color: var(--border-main, #9fb3cc); cursor: pointer; }
.nutrition-history-calendar button:disabled { opacity: .35; cursor: default; }
.nutrition-history-calendar button.has-entry::after { content: ''; position: absolute; left: 50%; bottom: 3px; width: 5px; height: 5px; border-radius: 50%; background: var(--accent, #2b67e8); transform: translateX(-50%); }
.nutrition-history-calendar button.is-selected { outline: 2px solid #2b67e8; }
.nutrition-history-hint { margin: 0; font-size: 12px; opacity: .72; }
.nutrition-save-date-tools { display: grid; grid-template-columns: minmax(180px,1fr) auto; gap: 10px; align-items: end; }
.nutrition-save-date-tools label { display: grid; gap: 5px; }
.nutrition-save-date-tools input { min-height: 40px; box-sizing: border-box; }
.nutrition-save-date-tools > div, .nutrition-save-dialog-actions { display: flex; gap: 8px; justify-content: flex-end; flex-wrap: wrap; }
.nutrition-save-reset { display: grid; gap: 9px; margin: 0; padding: 12px; border: 1px solid var(--border-main, #9fb3cc); border-radius: 10px; }
.nutrition-save-reset label { display: flex; align-items: center; gap: 7px; cursor: pointer; }
.nutrition-save-dialog .nutrition-settings-status:empty { display: none; }
.nutrition-section-form label { display: grid; gap: 5px; }
.nutrition-section-presets, .nutrition-placement-actions { display: flex; gap: 7px; flex-wrap: wrap; }
.nutrition-section-presets .nutrition-secondary-button { min-height: 34px; padding: 6px 11px; }
.nutrition-placement-section-row { display: grid; grid-template-columns: minmax(160px,1fr) auto; gap: 8px; }
.nutrition-placement-section-row select { min-height: 40px; }
.nutrition-library-result { display: inline-flex; align-items: center; gap: 6px; }
.nutrition-library-result img { width: 18px; height: 18px; object-fit: contain; }
.nutrition-weight-form { max-width: none; }
.nutrition-weight-editor { grid-template-columns: minmax(150px, 1fr) minmax(130px, 1fr); align-items: end; }
.nutrition-fat-field { display: grid; gap: 5px; max-width: 250px; margin-top: 8px; }
.nutrition-help-button { display: inline-grid; place-items: center; width: 21px; height: 21px; padding: 0; border: 1px solid #2b67e8; border-radius: 50%; background: transparent; color: #2b67e8; font-weight: 800; cursor: pointer; }
.nutrition-weight-source { display: block; margin: -2px 0 2px; opacity: .72; }
.nutrition-mode-switch label { position: relative; display: inline-flex; align-items: center; cursor: pointer; }
.nutrition-mode-option { display: inline-flex; align-items: center; gap: 5px; }
.nutrition-mode-switch input { position: absolute; opacity: 0; }
.nutrition-mode-switch span { padding: 8px 12px; border: 1px solid var(--border-main, #9fb3cc); border-radius: 999px; }
.nutrition-mode-switch input:checked + span { border-color: var(--accent-border, #2b67e8); background: var(--accent-soft, rgba(43,103,232,.12)); box-shadow: inset 0 0 0 1px var(--accent-border, #2b67e8); }
.nutrition-mode-switch input:focus-visible + span { outline: 2px solid var(--focus-ring, #ff9800); outline-offset: 2px; }
.nutrition-strength-distribution input:disabled + span { opacity: .45; filter: grayscale(1); cursor: not-allowed; }
.nutrition-strength-distribution label:has(input:disabled) { cursor: not-allowed; }
.nutrition-strength-shell { position: relative; margin-top: 20px; }
.nutrition-strength-heading { display: flex; align-items: center; gap: 6px; width: fit-content; margin: 0; padding: 3px 9px; border: 1px solid var(--border-main, #9fb3cc); border-radius: 999px; background: var(--surface-bg-raised, #fff); font-size: .9em; font-weight: 700; position: absolute; z-index: 2; top: -14px; left: 12px; }
.nutrition-strength-heading input { margin: 0; }
.nutrition-strength-settings { margin-top: 0 !important; padding: 12px !important; }
.nutrition-strength-fields { display: grid; grid-template-columns: minmax(0,1fr) 278px; gap: 10px; align-items: start; }
.nutrition-strength-main { min-width: 0; }
.nutrition-strength-numbers { display: grid; grid-template-columns: max-content 70px max-content 70px; gap: 8px; align-items: center; }
.nutrition-strength-numbers label { display: contents; }
.nutrition-strength-numbers input { width: 70px; }
.nutrition-strength-distribution { display: grid; gap: 8px; margin: 12px 0 0; }
.nutrition-training-week { grid-template-columns: auto 42px auto 42px auto 42px; gap: 4px 6px; min-width: 0; padding: 7px 9px; border: 1px solid var(--border-main, #9fb3cc); border-radius: 16px; background: var(--surface-overlay-subtle, rgba(127,127,127,.04)); align-self: start; }
.nutrition-training-week p, .nutrition-training-week [role="alert"] { grid-column: 1/-1; }
.nutrition-training-week [role="alert"]:empty { display: none; }
.nutrition-training-week p { text-align: center; font-weight: 700; font-size: .88em; line-height: 1.15; }
.nutrition-training-week label { display: contents; }
.nutrition-training-week label span { align-self: center; text-align: right; opacity: .72; }
.nutrition-training-week .nutrition-training-sunday span { grid-column: 5; color: var(--danger-text, #c62828); font-weight: 700; opacity: 1; }
.nutrition-training-week .nutrition-training-sunday input { grid-column: 6; }
.nutrition-settings-form .nutrition-training-week input[type="number"] { width: 42px; min-height: 23px; height: 23px; padding: 1px 3px; text-align: center; }
@media (max-width: 760px) { .nutrition-strength-heading { margin-left: 8px; } .nutrition-strength-fields { grid-template-columns: 1fr; } .nutrition-strength-numbers { grid-template-columns: max-content 70px; } .nutrition-training-week { grid-template-columns: repeat(7,minmax(38px,1fr)); min-width: 0; border-radius: 14px; } .nutrition-training-week label { display: grid; gap: 3px; } .nutrition-training-week label span { text-align: center; } .nutrition-settings-form .nutrition-training-week input[type="number"] { width: 100%; } }
.nutrition-macro-head, .nutrition-macro-row { grid-template-columns: minmax(90px, 1fr) minmax(82px, .8fr) minmax(82px, .8fr) 46px minmax(125px, 1fr); }
.nutrition-macro-assessment { display: inline-flex; min-height: 32px; align-items: center; justify-content: center; font-size: 18px; cursor: help; }
.nutrition-rate-control { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 5px; align-items: center; }
.nutrition-rate-control input { min-width: 0; width: 100%; box-sizing: border-box; }
.nutrition-mini-modal { width: min(520px,94vw); }
.nutrition-mini-modal p { white-space: pre-line; line-height: 1.5; }
.nutrition-rate-guide { width: 100%; border-collapse: collapse; margin-top: 12px; }
.nutrition-rate-guide th, .nutrition-rate-guide td { padding: 9px 10px; border-bottom: 1px solid var(--border-main, #9fb3cc); text-align: left; vertical-align: top; }
.nutrition-rate-guide th:last-child, .nutrition-rate-guide td:last-child { width: 32%; white-space: nowrap; font-variant-numeric: tabular-nums; }
.nutrition-rate-guide th { background: var(--input-readonly-bg, rgba(140,153,170,.14)); }
.nutrition-rate-guide-note { margin: 12px 0 0; opacity: .78; font-size: .92em; }
.nutrition-kcal-field.is-calculated input, .nutrition-macro-row.is-calculated input { background: var(--input-readonly-bg, rgba(140,153,170,.14)); color: color-mix(in srgb, currentColor 62%, transparent); cursor: not-allowed; }
.nutrition-target-form[data-auto-energy="1"] input[name="protein_g"], .nutrition-target-form[data-auto-energy="1"] input[name="fat_g"] { background: var(--input-readonly-bg, rgba(140,153,170,.14)); color: color-mix(in srgb, currentColor 62%, transparent); cursor: not-allowed; }
.nutrition-goal-option-warning { color: var(--danger-text, #c62828); font-weight: 700; }
.nutrition-energy-breakdown-card { margin-top: 14px; overflow: hidden; border: 1px solid var(--border-main, #9fb3cc); border-radius: 12px; background: var(--surface-overlay-subtle, rgba(127,127,127,.035)); }
.nutrition-energy-breakdown-card > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 13px; background: var(--input-readonly-bg, rgba(140,153,170,.14)); font-weight: 700; cursor: pointer; list-style: none; }
.nutrition-energy-breakdown-collapsed { display: none; flex: 1; align-items: center; justify-content: space-between; gap: 14px; font-variant-numeric: tabular-nums; }
.nutrition-energy-breakdown-card:not([open]) .nutrition-energy-breakdown-title { display: none; }
.nutrition-energy-breakdown-card:not([open]) .nutrition-energy-breakdown-collapsed { display: flex; }
.nutrition-energy-breakdown-collapsed { display: none; flex: 1; align-items: center; justify-content: space-between; gap: 14px; font-variant-numeric: tabular-nums; }
.nutrition-energy-breakdown-card:not([open]) .nutrition-energy-breakdown-title { display: none; }
.nutrition-energy-breakdown-card:not([open]) .nutrition-energy-breakdown-collapsed { display: flex; }
.nutrition-energy-breakdown-card > summary::-webkit-details-marker { display: none; }
.nutrition-energy-breakdown-toggle::before { content: '−'; display: grid; place-items: center; width: 24px; height: 24px; border: 1px solid var(--border-main, #9fb3cc); border-radius: 50%; }
.nutrition-energy-breakdown-card:not([open]) .nutrition-energy-breakdown-toggle::before { content: '+'; }
.nutrition-energy-breakdown { width: 100%; margin: 0; border-collapse: collapse; }
.nutrition-energy-breakdown th, .nutrition-energy-breakdown td { padding: 9px 13px; border-top: 1px solid var(--border-main, #9fb3cc); }
.nutrition-energy-breakdown th { text-align: left; font-weight: 500; }
.nutrition-energy-breakdown td { text-align: right; font-variant-numeric: tabular-nums; }
.nutrition-energy-breakdown .is-context { color: var(--text-muted, #64748b); }
.nutrition-energy-breakdown .is-contribution td { color: var(--accent-text, #1769d2); }
.nutrition-energy-breakdown .is-goal td { color: var(--danger-text, #c62828); font-weight: 700; }
.nutrition-energy-breakdown .is-maintenance { background: color-mix(in srgb, var(--accent-soft, #dbeafe) 45%, transparent); }
.nutrition-energy-breakdown .is-total { background: color-mix(in srgb, var(--accent-soft, #dbeafe) 75%, transparent); font-size: 1.04em; }
.nutrition-energy-breakdown .is-total th, .nutrition-energy-breakdown .is-total td { font-weight: 800; }
@media (max-width: 640px) { .nutrition-energy-breakdown-collapsed { align-items: flex-start; flex-direction: column; gap: 3px; } }
@media (max-width: 640px) { .nutrition-energy-breakdown-collapsed { align-items: flex-start; flex-direction: column; gap: 3px; } }
.nutrition-kcal-hint { grid-column: 3 / -1; align-self: center; opacity: .72; }
.nutrition-kcal-hint.is-in-range { color: #168447; opacity: 1; }
.nutrition-kcal-hint.is-out-of-range { color: #a86100; opacity: 1; }
.nutrition-modal[hidden] { display: none; }
.nutrition-modal { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; padding: 18px; background: var(--modal-backdrop-bg, rgba(12,20,35,.68)); }
.nutrition-modal-dialog { position: relative; width: min(720px, 94vw); max-height: 92vh; overflow: auto; padding: 18px; border: 1px solid var(--border-main, #9fb3cc); border-radius: 14px; background: var(--surface-bg-raised, #fff); color: var(--text-main, #172033); box-shadow: 0 20px 60px rgba(0,0,0,.3); }
.nutrition-modal-dialog h3 { margin: 0 42px 8px 0; }
.nutrition-modal-dialog img { display: block; width: 100%; height: auto; margin-top: 14px; border-radius: 10px; }
.nutrition-modal-close { position: absolute; top: 10px; right: 10px; width: 34px; height: 34px; border: 0; border-radius: 50%; background: var(--control-bg, rgba(140,153,170,.18)); color: var(--control-text, inherit); font-size: 24px; cursor: pointer; }
.nutrition-collections { display: grid; gap: 12px; margin-top: 14px; }
.nutrition-collections > .nutrition-settings-status:empty { display: none; }
.nutrition-collection-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 12px; }
.nutrition-collection-card { display: flex; flex-direction: column; align-items: stretch; gap: 10px; min-width: 0; min-height: 0; padding: 14px 16px; border: 1px solid var(--border-main, #9fb3cc); border-radius: 13px; background: var(--surface-bg-soft, rgba(255,255,255,.34)); color: var(--text-main, inherit); }
.nutrition-collection-card.is-subscribed { border-color: #55a985; background: color-mix(in srgb, var(--surface-bg-soft, #fff) 88%, #42b883 12%); }
.nutrition-collection-card-body { display: flex; flex: 1 1 auto; flex-direction: column; gap: 7px; min-width: 0; }
.nutrition-collection-card-heading { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.nutrition-collection-card h3, .nutrition-collection-card p { margin: 0; }
.nutrition-collection-card p { color: var(--text-muted, #64748b); line-height: 1.42; overflow-wrap: anywhere; }
.nutrition-collection-badge { padding: 3px 8px; border-radius: 999px; background: rgba(39,174,96,.16); color: #168447; font-size: 12px; font-weight: 700; }
.nutrition-collection-meta { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: auto; padding-top: 2px; color: var(--text-muted, #64748b); font-size: 12px; }
.nutrition-collection-actions { display: flex; gap: 6px; justify-content: flex-end; margin-left: auto; width: auto; }
.nutrition-collection-actions .nutrition-collection-icon-button { width: 36px; min-width: 36px; height: 36px; min-height: 36px; padding: 2px; border: 0; border-radius: 50%; background: transparent; transition: background-color .15s ease, transform .15s ease; }
.nutrition-collection-actions .nutrition-collection-icon-button img { width: 32px; height: 32px; }
.nutrition-collection-actions .nutrition-collection-icon-button:hover,
.nutrition-collection-actions .nutrition-collection-icon-button:focus-visible { transform: translateY(-1px); }
.nutrition-collection-icon-button-view:hover, .nutrition-collection-icon-button-view:focus-visible { background: rgba(100,116,139,.12); }
.nutrition-collection-icon-button-subscribe { background: rgba(34,139,91,.08); }
.nutrition-collection-icon-button-subscribe:hover, .nutrition-collection-icon-button-subscribe:focus-visible { background: rgba(34,139,91,.18); }
.nutrition-collection-icon-button-unsubscribe { background: rgba(190,55,65,.08); }
.nutrition-collection-icon-button-unsubscribe:hover, .nutrition-collection-icon-button-unsubscribe:focus-visible { background: rgba(190,55,65,.16); }
.nutrition-collection-preview { width: min(760px, 94vw); }
.nutrition-collection-preview .nutrition-dialog-card { width:auto; max-width:none; height:min(88vh,850px); max-height:min(88vh,850px); box-sizing:border-box; overflow:hidden; grid-template-rows:auto auto minmax(0,1fr) auto; }
.nutrition-collection-preview-description { margin:0; color:var(--text-muted,#64748b); line-height:1.4; }
.nutrition-collection-preview-items { display: grid; align-content:start; gap: 7px; min-height:0; overflow-y:auto; overflow-x:hidden; padding-right:4px; overscroll-behavior:contain; }
.nutrition-collection-preview-item { display: grid; grid-template-columns: minmax(160px, 1.5fr) repeat(4, minmax(60px,.55fr)); gap: 8px; align-items: center; padding: 9px 10px; border: 1px solid var(--border-main, #9fb3cc); border-radius: 10px; }
.nutrition-collection-preview-item small { display: block; opacity: .7; }

@media (max-width: 680px) {
    .nutrition-target-meta { grid-template-columns: 1fr; }
    .nutrition-energy-grid { grid-template-columns: 1fr 1fr; }
    .nutrition-food-grid { grid-template-columns: 1fr 1fr; }
    .nutrition-food-name { grid-column: 1 / -1; }
    .nutrition-food-card { grid-template-columns: 1fr 1fr; }
    .nutrition-food-card strong, .nutrition-food-card-actions { grid-column: 1 / -1; }
    .nutrition-food-list-toolbar { align-items: stretch; flex-direction: column; }
    .nutrition-food-sources { align-items: stretch; flex-direction: column; }
    .nutrition-food-source-list { justify-content: flex-start; }
    .nutrition-food-list-controls { justify-content: flex-start; }
    .nutrition-food-list-controls input { width: 100%; }
    .nutrition-recipe-head, .nutrition-recipe-add { grid-template-columns: 1fr; }
    .nutrition-recipe-item-head { display: none; }
    .nutrition-recipe-item, .nutrition-workspace[data-nutrition-view="foods"][data-show-ethanol="0"] .nutrition-recipe-item { grid-template-columns: 1fr 1fr; }
    .nutrition-recipe-item > :first-child, .nutrition-recipe-item button { grid-column: 1 / -1; }
    .nutrition-recipe-summary, .nutrition-workspace[data-nutrition-view="foods"][data-show-ethanol="0"] .nutrition-recipe-summary { grid-template-columns: 1fr 1fr; }
    .nutrition-recipe-card { grid-template-columns: 1fr 1fr; }
    .nutrition-recipe-card strong, .nutrition-recipe-card-actions { grid-column: 1 / -1; }
    .nutrition-weight-editor { grid-template-columns: 1fr; }
    .nutrition-macro-head { display: none; }
    .nutrition-macro-row { grid-template-columns: 1fr 1fr; padding: 10px 0; border-top: 1px solid var(--border-main, #9fb3cc); }
    .nutrition-macro-row strong { grid-column: 1 / -1; }
    .nutrition-macro-assessment { grid-column: 1 / -1; justify-content: flex-start; }
    .nutrition-kcal-hint { grid-column: 2; }
    .nutrition-diary-toolbar { grid-template-columns: 1fr; }
    .nutrition-day-datebar { align-items: stretch; }
    .nutrition-day-datebar label { flex: 1 1 160px; }
    .nutrition-day-state { margin-left: 0; }
    .nutrition-day-add { grid-template-columns: 1fr; }
    .nutrition-save-date-tools { grid-template-columns: 1fr; }
    .nutrition-day-item-head { display: none; }
    .nutrition-day-item, .nutrition-day-item.saved-macros-hidden, .nutrition-workspace[data-nutrition-view="today"][data-show-ethanol="0"] .nutrition-day-item, .nutrition-workspace[data-nutrition-view="today"][data-show-ethanol="0"] .nutrition-day-item.saved-macros-hidden { grid-template-columns: 1fr 1fr; }
    .nutrition-day-item .nutrition-day-field small { display: block; }
    .nutrition-day-item > .nutrition-day-field:first-child, .nutrition-day-item-actions { grid-column: 1 / -1; }
    .nutrition-day-section-summary, .nutrition-workspace[data-nutrition-view="today"][data-show-ethanol="0"] .nutrition-day-section-summary { grid-template-columns: repeat(2,1fr); }
    .nutrition-day-section-summary strong { grid-column: 1 / -1; text-align: center; }
    .nutrition-day-summary, .nutrition-workspace[data-nutrition-view="today"][data-show-ethanol="0"] .nutrition-day-summary { grid-template-columns: 1fr 1fr; }
    .nutrition-day-summary strong { grid-column: 1 / -1; }
    .nutrition-chart-mode { align-items: stretch; flex-direction: column; }
    .nutrition-day-macro-chart { grid-template-columns: 1fr; }
    .nutrition-day-macro-chart-body { justify-content: space-between; flex-wrap: wrap; }
    .nutrition-day-plan-chart { padding: 12px 0 0; border-top: 1px solid var(--border-overlay, rgba(140,153,170,.28)); border-left: 0; }
    .nutrition-collection-card { min-height: 0; }
    .nutrition-collection-actions { width: auto; }
    .nutrition-collection-preview-item { grid-template-columns: 1fr 1fr; }
    .nutrition-collection-preview-item strong { grid-column: 1 / -1; }
}

@media (max-width: 430px) {
    .nutrition-energy-grid { grid-template-columns: 1fr; }
}


/* Ethanol is intentionally visually distinct from ordinary macros. */
.nutrition-day-item-head > .nutrition-day-ethanol {
    color: #b42318;
    font-weight: 800;
}
.nutrition-day-field.nutrition-day-ethanol input {
    border-color: color-mix(in srgb, #d92d20 62%, var(--border-main, #9fb3cc) 38%);
    background: color-mix(in srgb, var(--control-bg, #fff) 86%, #d92d20 14%);
    color: var(--text-main, inherit);
}
.nutrition-day-field.nutrition-day-ethanol small,
.nutrition-day-summary .nutrition-day-ethanol small,
.nutrition-day-section-summary .nutrition-day-ethanol small {
    color: #b42318;
    font-weight: 800;
    opacity: 1;
}
.nutrition-day-summary .nutrition-day-ethanol,
.nutrition-day-section-summary .nutrition-day-ethanol {
    border-radius: 8px;
    background: color-mix(in srgb, transparent 84%, #d92d20 16%);
}
.nutrition-day-item input.is-invalid {
    border-color: #d92d20 !important;
    box-shadow: 0 0 0 2px color-mix(in srgb, transparent 72%, #d92d20 28%);
    background: color-mix(in srgb, var(--control-bg, #fff) 84%, #d92d20 16%);
}


/* Inline validation for a manual food row. */
.nutrition-day-item-validation {
    grid-column: 1 / -1;
    margin-top: 6px;
    padding: 9px 12px;
    border: 1px solid #d92d20;
    border-radius: 9px;
    background: color-mix(in srgb, var(--surface-bg-raised, #fff) 82%, #d92d20 18%);
    color: #b42318;
    font-weight: 700;
    line-height: 1.35;
}
.nutrition-day-item.has-validation-error {
    border-color: #d92d20;
}


/* Unified macro validation: Today, Your food and Recipe calculator. */
.nutrition-inline-validation {
    grid-column: 1 / -1;
    margin-top: 6px;
    padding: 9px 12px;
    border: 1px solid #d92d20;
    border-radius: 9px;
    background: color-mix(in srgb, var(--surface-bg-raised, #fff) 82%, #d92d20 18%);
    color: #b42318;
    font-weight: 700;
    line-height: 1.35;
}
.nutrition-food-form.has-validation-error fieldset,
.nutrition-recipe-item.has-validation-error {
    border-color: #d92d20;
}
.nutrition-food-form input.is-invalid,
.nutrition-recipe-item input.is-invalid {
    border-color: #d92d20 !important;
    box-shadow: 0 0 0 2px color-mix(in srgb, transparent 72%, #d92d20 28%);
    background: color-mix(in srgb, var(--control-bg, #fff) 84%, #d92d20 16%);
}
.nutrition-food-ethanol input,
.nutrition-recipe-item input.nutrition-recipe-ethanol {
    border-color: color-mix(in srgb, #d92d20 62%, var(--border-main, #9fb3cc) 38%);
    background: color-mix(in srgb, var(--control-bg, #fff) 86%, #d92d20 14%);
}
.nutrition-food-ethanol > span,
.nutrition-recipe-item-head .nutrition-recipe-ethanol {
    color: #b42318;
    font-weight: 800;
    opacity: 1;
}

/* Secondary creation path for an opened recipe. */
.nutrition-save-as-new-button {
    min-height: 38px;
    padding: 8px 14px;
    border: 1px solid #b59ad8;
    border-radius: 9px;
    background: #e8dcf5;
    color: #4f356f;
    font-weight: 700;
    cursor: pointer;
}
.nutrition-save-as-new-button:hover:not(:disabled) {
    background: #decef0;
    border-color: #9e7bc9;
}
.nutrition-save-as-new-button:focus-visible {
    outline: 2px solid #9e7bc9;
    outline-offset: 2px;
}
.nutrition-save-as-new-button:disabled {
    background: rgba(232, 220, 245, .42);
    border-color: rgba(181, 154, 216, .42);
    color: rgba(79, 53, 111, .46);
    cursor: not-allowed;
    opacity: .72;
}
html[data-theme="dark"] .nutrition-save-as-new-button,
body.dark-theme .nutrition-save-as-new-button {
    background: #58446f;
    border-color: #8f73ad;
    color: #f1e8fb;
}
html[data-theme="dark"] .nutrition-save-as-new-button:hover:not(:disabled),
body.dark-theme .nutrition-save-as-new-button:hover:not(:disabled) {
    background: #675080;
}
html[data-theme="dark"] .nutrition-save-as-new-button:disabled,
body.dark-theme .nutrition-save-as-new-button:disabled {
    background: rgba(88, 68, 111, .38);
    border-color: rgba(143, 115, 173, .38);
    color: rgba(241, 232, 251, .42);
}

.nutrition-danger-button {
    min-height: 40px;
    padding: 8px 18px;
    border: 1px solid #d98f8f;
    border-radius: 10px;
    background: #d96b6b;
    color: #fff;
    font-weight: 700;
    cursor: pointer;
}
.nutrition-danger-button:hover:not(:disabled) {
    background: #ca5959;
    border-color: #ca7373;
}
.nutrition-danger-button:focus-visible {
    outline: 2px solid #ca7373;
    outline-offset: 2px;
}
.nutrition-danger-button:disabled {
    opacity: .55;
    cursor: default;
}
html[data-theme="dark"] .nutrition-danger-button,
body.dark-theme .nutrition-danger-button {
    background: #a95050;
    border-color: #c77878;
    color: #fff;
}
html[data-theme="dark"] .nutrition-danger-button:hover:not(:disabled),
body.dark-theme .nutrition-danger-button:hover:not(:disabled) {
    background: #b95a5a;
}

.nutrition-field-hint { display: block; margin-top: 5px; color: var(--text-muted, #64748b); font-size: 12px; line-height: 1.35; }
.nutrition-search-empty { display: block; padding: 9px 11px; color: var(--text-muted, #64748b); }
.nutrition-settings-panel { margin: 0; }
.nutrition-settings-panel > summary { display: none; }
.nutrition-settings-panel + .nutrition-settings-panel { margin-top: 14px; }
.nutrition-food-sources-inline { margin-top: 10px; }
@media (max-width: 680px) {
  .nutrition-settings-panel { border: 1px solid var(--border-main, #9fb3cc); border-radius: 12px; overflow: hidden; }
  .nutrition-settings-panel > summary { display: block; padding: 12px 14px; font-weight: 700; cursor: pointer; background: var(--surface-bg-soft, rgba(255,255,255,.34)); }
  .nutrition-settings-panel > .nutrition-settings-form { padding: 12px; }
  .nutrition-settings-panel > .nutrition-settings-form fieldset { border: 0; padding: 0; }
  .nutrition-settings-panel > .nutrition-settings-form fieldset > legend { display: none; }
}

.nutrition-page-size { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.nutrition-page-size select { min-width: 72px; }
.nutrition-food-pagination { flex-wrap: nowrap; overflow-x: auto; justify-content: flex-start; padding-bottom: 3px; scrollbar-width: thin; }
.nutrition-food-pagination > * { flex: 0 0 auto; }
.nutrition-food-pagination .nutrition-secondary-button { white-space: nowrap; }
@media (min-width: 901px) { .nutrition-food-pagination { justify-content: center; } }

.nutrition-recipe-water-note { margin: 9px 0 0; padding: 8px 10px; border-left: 3px solid rgba(79,131,227,.55); border-radius: 0 8px 8px 0; background: rgba(79,131,227,.07); color: var(--text-muted, #64748b); font-size: 12px; line-height: 1.4; }

.nutrition-day-macro-chart[hidden] { display: none !important; }

/* Mobile density pass: Today, Foods and saved Recipes. */
@media (max-width: 680px) {
    .nutrition-page,
    .nutrition-workspace,
    .nutrition-food-list,
    .nutrition-recipe-library,
    .nutrition-day-items,
    .nutrition-day-section,
    .nutrition-day-section-items {
        min-width: 0;
        max-width: 100%;
        box-sizing: border-box;
    }

    /* Keep meal/day totals on one compact line instead of a tall 2-column block. */
    .nutrition-day-summary,
    .nutrition-workspace[data-nutrition-view="today"][data-show-ethanol="0"] .nutrition-day-summary {
        grid-template-columns: minmax(78px, 1.15fr) repeat(6, minmax(0, .72fr));
        gap: 4px;
        align-items: center;
        margin: 8px 0;
        padding: 8px 7px;
    }
    .nutrition-workspace[data-nutrition-view="today"][data-show-ethanol="0"] .nutrition-day-summary {
        grid-template-columns: minmax(78px, 1.15fr) repeat(5, minmax(0, .72fr));
    }
    .nutrition-day-summary strong {
        grid-column: auto;
        font-size: 13px;
        line-height: 1.15;
    }
    .nutrition-day-summary span { gap: 1px; }
    .nutrition-day-summary small { font-size: 9px; line-height: 1.05; }
    .nutrition-day-summary output { font-size: 13px; line-height: 1.1; }

    .nutrition-day-section-summary,
    .nutrition-workspace[data-nutrition-view="today"][data-show-ethanol="0"] .nutrition-day-section-summary {
        grid-template-columns: minmax(66px, 1.05fr) repeat(6, minmax(0, .68fr));
        gap: 3px;
        padding: 6px 4px 2px;
    }
    .nutrition-workspace[data-nutrition-view="today"][data-show-ethanol="0"] .nutrition-day-section-summary {
        grid-template-columns: minmax(66px, 1.05fr) repeat(5, minmax(0, .68fr));
    }
    .nutrition-day-section-summary strong {
        grid-column: auto;
        text-align: left;
        font-size: 11px;
        line-height: 1.1;
    }
    .nutrition-day-section-summary small { font-size: 8px; }
    .nutrition-day-section-summary output { font-size: 12px; }

    /* One name row + one dense values row for diary positions. */
    .nutrition-day-item,
    .nutrition-workspace[data-nutrition-view="today"][data-show-ethanol="0"] .nutrition-day-item {
        grid-template-columns: repeat(6, minmax(0, 1fr)) auto;
        gap: 5px;
        padding: 7px;
    }
    .nutrition-workspace[data-nutrition-view="today"][data-show-ethanol="0"] .nutrition-day-item {
        grid-template-columns: repeat(5, minmax(0, 1fr)) auto;
    }
    .nutrition-day-item.saved-macros-hidden {
        grid-template-columns: repeat(2, minmax(0, 1fr)) auto;
    }
    .nutrition-workspace[data-nutrition-view="today"][data-show-ethanol="0"] .nutrition-day-item.saved-macros-hidden {
        grid-template-columns: repeat(2, minmax(0, 1fr)) auto;
    }
    .nutrition-day-item > .nutrition-day-field:first-child {
        grid-column: 1 / -1;
    }
    .nutrition-day-item-actions {
        grid-column: auto;
        align-self: end;
        justify-content: flex-end;
    }
    .nutrition-day-item .nutrition-day-field small {
        display: block;
        font-size: 9px;
        line-height: 1;
        text-align: center;
    }
    .nutrition-day-item > .nutrition-day-field:first-child small { text-align: left; }
    .nutrition-day-item input,
    .nutrition-day-calculated output {
        min-height: 34px;
        padding: 5px 4px;
        font-size: 13px;
    }
    .nutrition-day-item-actions .nutrition-card-icon-button {
        width: 32px;
        min-width: 32px;
        height: 32px;
        min-height: 32px;
        padding: 3px;
    }
    .nutrition-day-item-actions .nutrition-card-icon-button img { width: 23px; height: 23px; }

    /* Food library: remove the desktop min-width grid that caused the empty area and horizontal scroll. */
    .nutrition-food-card,
    .nutrition-workspace[data-nutrition-view="foods"][data-show-ethanol="0"] .nutrition-food-card {
        width: 100%;
        min-width: 0;
        grid-template-columns: repeat(5, minmax(0, 1fr)) auto;
        gap: 5px;
        padding: 8px 9px;
        box-sizing: border-box;
    }
    .nutrition-workspace[data-nutrition-view="foods"][data-show-ethanol="0"] .nutrition-food-card {
        grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
    }
    .nutrition-food-card strong {
        grid-column: 1 / -1;
        line-height: 1.2;
        overflow-wrap: anywhere;
    }
    .nutrition-food-card span { font-size: 12px; }
    .nutrition-food-card small { font-size: 9px; line-height: 1; }
    .nutrition-food-card-actions {
        grid-column: auto;
        align-self: end;
        gap: 5px;
    }
    .nutrition-food-card.has-badges { padding-bottom: 24px; }
    .nutrition-food-list { overflow-x: clip; }

    /* Saved recipes: same compact card contract as the food library. */
    .nutrition-recipe-card {
        width: 100%;
        min-width: 0;
        grid-template-columns: repeat(5, minmax(0, 1fr)) auto;
        gap: 5px;
        padding: 8px 9px;
        box-sizing: border-box;
    }
    .nutrition-recipe-card strong {
        grid-column: 1 / -1;
        line-height: 1.2;
        overflow-wrap: anywhere;
    }
    .nutrition-recipe-card span { font-size: 12px; }
    .nutrition-recipe-card small { font-size: 9px; line-height: 1; }
    .nutrition-recipe-card-actions {
        grid-column: auto;
        align-self: end;
        justify-content: flex-end;
        gap: 5px;
    }
    .nutrition-recipe-library {
        padding-right: 0;
        overflow-x: clip;
        scrollbar-gutter: auto;
    }
}

/* Mobile foods follow-up: keep badges out of metrics and remove remaining intrinsic-width overflow. */
@media (max-width: 680px) {
    .nutrition-workspace[data-nutrition-view="foods"],
    .nutrition-workspace[data-nutrition-view="foods"] .nutrition-food-form,
    .nutrition-workspace[data-nutrition-view="foods"] .nutrition-food-form fieldset,
    .nutrition-workspace[data-nutrition-view="foods"] .nutrition-food-grid,
    .nutrition-workspace[data-nutrition-view="foods"] .nutrition-food-list-toolbar,
    .nutrition-workspace[data-nutrition-view="foods"] .nutrition-food-list-controls,
    .nutrition-workspace[data-nutrition-view="foods"] .nutrition-food-sources,
    .nutrition-workspace[data-nutrition-view="foods"] .nutrition-food-source-list,
    .nutrition-workspace[data-nutrition-view="foods"] .nutrition-food-pagination {
        width: 100%;
        min-width: 0;
        max-width: 100%;
        box-sizing: border-box;
    }

    /* fieldset keeps a min-content width in some mobile browsers unless reset explicitly */
    .nutrition-workspace[data-nutrition-view="foods"] .nutrition-food-form fieldset {
        min-inline-size: 0;
    }

    .nutrition-workspace[data-nutrition-view="foods"] .nutrition-food-list-toolbar,
    .nutrition-workspace[data-nutrition-view="foods"] .nutrition-food-sources {
        align-items: stretch;
        flex-direction: column;
        gap: 9px;
    }

    .nutrition-workspace[data-nutrition-view="foods"] .nutrition-food-list-controls,
    .nutrition-workspace[data-nutrition-view="foods"] .nutrition-food-source-list {
        justify-content: flex-start;
    }

    .nutrition-workspace[data-nutrition-view="foods"] .nutrition-food-list-controls > label,
    .nutrition-workspace[data-nutrition-view="foods"] .nutrition-food-list-controls input,
    .nutrition-workspace[data-nutrition-view="foods"] .nutrition-food-list-controls select {
        min-width: 0;
        max-width: 100%;
    }

    .nutrition-workspace[data-nutrition-view="foods"] .nutrition-food-source-button,
    .nutrition-workspace[data-nutrition-view="foods"] .nutrition-food-source-fixed,
    .nutrition-workspace[data-nutrition-view="foods"] .nutrition-food-source-my {
        max-width: 100%;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    /* Badges are a real row below the values, not an absolute layer over them. */
    .nutrition-workspace[data-nutrition-view="foods"] .nutrition-food-card.has-badges {
        padding-bottom: 8px;
    }
    .nutrition-workspace[data-nutrition-view="foods"] .nutrition-food-badges {
        position: static;
        grid-column: 1 / -1;
        display: flex;
        min-width: 0;
        align-items: center;
        gap: 4px;
        padding-top: 1px;
    }
    .nutrition-workspace[data-nutrition-view="foods"] .nutrition-food-source-badge {
        min-width: 0;
        max-width: 100%;
        overflow-wrap: anywhere;
        line-height: 1.2;
    }

    html,
    body {
        max-width: 100%;
    }
}


/* Nutrition day clock */
.nutrition-day-clock-settings { display: grid; grid-column: 1 / -1; grid-template-columns: minmax(180px, 1fr) minmax(160px, 220px); gap: 10px 14px; align-items: end; width: 100%; margin-top: 8px; }
.nutrition-day-clock-settings label { display: grid; gap: 5px; font-size: .92rem; }
.nutrition-day-clock-settings input, .nutrition-day-clock-settings select { width: 100%; }
.nutrition-day-boundary-warning { grid-column: 1 / -1; margin: 0; font-size: .88rem; color: var(--text-muted); }
@media (max-width: 640px) { .nutrition-day-clock-settings { grid-template-columns: 1fr; } .nutrition-day-boundary-warning { grid-column: auto; } }

.nutrition-history-edit-dialog .nutrition-dialog-card { max-width: 560px; }
.nutrition-history-edit-dialog p { margin: 0; line-height: 1.45; }
.nutrition-day-context #nutrition-day-edit-history { margin-inline-start: auto; }
.nutrition-day-closed { border-color: var(--border-main, #9aa7b6); background: color-mix(in srgb, var(--surface-card, #fff) 82%, #7f8790 18%); }

.nutrition-history-edit-timer { font-variant-numeric: tabular-nums; font-weight: 700; opacity: .82; }
.nutrition-history-edit-expired-dialog p { margin: 0; line-height: 1.45; }

/* Nutrition fill suggestion */
.nutrition-fill-advice[hidden] { display:none !important; }
.nutrition-fill-advice { display:flex; align-items:center; justify-content:center; gap:6px; margin:10px 0 2px; font-size:.94rem; color:var(--text-muted); }
.nutrition-fill-link { border:0; padding:0; background:transparent; color:var(--link-color, #356fbd); font:inherit; font-weight:700; text-decoration:underline; text-underline-offset:2px; cursor:pointer; }
.nutrition-fill-dialog { width:min(94vw, 760px); max-width:760px; max-height:min(88vh, 820px); overflow:hidden; }
.nutrition-fill-dialog .nutrition-dialog-card { width:auto; max-width:none; height:min(88vh, 820px); max-height:min(88vh, 820px); box-sizing:border-box; overflow:hidden; grid-template-rows:auto auto minmax(0,1fr) auto; }
.nutrition-fill-dialog .nutrition-dialog-heading { position:sticky; top:-18px; z-index:2; margin:-18px -18px 0; padding:18px; background:var(--surface-bg-raised, #eef4fc); border-bottom:1px solid var(--border-main, #c9d0da); }
.nutrition-fill-dialog .nutrition-fill-results { min-width:0; min-height:0; overflow-y:auto; overflow-x:hidden; padding-right:4px; overscroll-behavior:contain; }
.nutrition-fill-dialog .nutrition-fill-group,
.nutrition-fill-dialog .nutrition-fill-option,
.nutrition-fill-dialog .nutrition-fill-option-items { min-width:0; }
.nutrition-fill-remaining { margin:0; color:var(--text-muted); }
.nutrition-fill-results { display:grid; gap:14px; }
.nutrition-fill-group { display:grid; gap:8px; }
.nutrition-fill-group > h4 { margin:0; font-size:.95rem; }
.nutrition-fill-option { display:grid; gap:8px; padding:12px; border:1px solid var(--border-main, #c9d0da); border-radius:10px; background:var(--surface-card, rgba(255,255,255,.5)); }
.nutrition-fill-option-items { display:grid; gap:5px; }
.nutrition-fill-option-item { display:flex; justify-content:space-between; gap:12px; }
.nutrition-fill-option-item strong { overflow-wrap:anywhere; }
.nutrition-fill-option-summary { margin:0; font-size:.88rem; color:var(--text-muted); }
.nutrition-fill-option .nutrition-action-button { justify-self:end; }
@media (max-width:640px) { .nutrition-fill-option-item { align-items:flex-start; } .nutrition-fill-option .nutrition-action-button { width:100%; justify-self:stretch; } }

/* Nutrition fill dialog controls and daily preferences */
.nutrition-fill-dialog .nutrition-fill-toolbar {
    position:sticky;
    top:-18px;
    z-index:3;
    margin:-18px -18px 14px;
    padding:18px;
    display:grid;
    gap:10px;
    background:var(--surface-bg-raised, #eef4fc);
    border-bottom:1px solid var(--border-main, #c9d0da);
}
.nutrition-fill-dialog .nutrition-fill-toolbar .nutrition-dialog-heading {
    position:static;
    margin:0;
    padding:0;
    border:0;
    background:transparent;
}
.nutrition-fill-toolbar-controls {
    display:flex;
    align-items:center;
    gap:7px;
    min-width:0;
    flex-wrap:wrap;
    font-size:.9rem;
    font-weight:600;
}
.nutrition-fill-relaxed-toggle {
    display:inline-flex;
    align-items:center;
    gap:7px;
    width:max-content;
    max-width:100%;
    font-size:.9rem;
    font-weight:600;
    color:var(--text-main);
    cursor:pointer;
}
.nutrition-fill-mass-limit {
    display:flex;
    align-items:center;
    gap:8px;
    width:max-content;
    max-width:100%;
}
.nutrition-fill-mass-limit select {
    min-width:90px;
}
.nutrition-fill-relaxed-toggle[hidden] { display:none !important; }
.nutrition-fill-relaxed-toggle input { margin:0; }
.nutrition-fill-pack-filters { display:flex; align-items:center; gap:5px; flex-wrap:wrap; }
.nutrition-fill-pack-filter {
    min-width:32px;
    height:30px;
    padding:0 9px;
    border:1px solid #1f63df;
    border-radius:8px;
    background:#2c68dc;
    color:#fff;
    font:inherit;
    font-weight:700;
    cursor:pointer;
}
.nutrition-fill-pack-filter.is-enabled { border-color:#179257; background:#2caf72; }
.nutrition-fill-image-button,
.nutrition-fill-star {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:0;
    background:transparent;
    padding:2px;
    cursor:pointer;
}
.nutrition-fill-image-button { margin-left:auto; width:34px; height:34px; }
.nutrition-fill-image-button img { width:28px; height:28px; object-fit:contain; }
.nutrition-fill-star { flex:0 0 auto; width:27px; height:27px; }
.nutrition-fill-star img { width:23px; height:23px; object-fit:contain; }
.nutrition-fill-option-identity { display:flex; align-items:center; gap:7px; min-width:0; }
.nutrition-fill-option-identity strong { min-width:0; overflow-wrap:anywhere; }
@media (max-width:640px) {
    .nutrition-fill-toolbar-controls > span { width:100%; }
    .nutrition-fill-image-button { margin-left:0; }
}

/* Nutrition fill suggestion: explicit dark-theme palette.
   The global accent color may be bright; this dialog keeps readable neutral surfaces. */
html[data-theme="dark"] .nutrition-fill-dialog .nutrition-dialog-card,
body.dark-theme .nutrition-fill-dialog .nutrition-dialog-card {
    background:#101827;
    color:#e8edf5;
}
html[data-theme="dark"] .nutrition-fill-dialog .nutrition-fill-toolbar,
body.dark-theme .nutrition-fill-dialog .nutrition-fill-toolbar {
    background:#101827;
    border-bottom-color:#334155;
}
html[data-theme="dark"] .nutrition-fill-dialog .nutrition-dialog-heading,
body.dark-theme .nutrition-fill-dialog .nutrition-dialog-heading,
html[data-theme="dark"] .nutrition-fill-dialog .nutrition-fill-toolbar-controls,
body.dark-theme .nutrition-fill-dialog .nutrition-fill-toolbar-controls,
html[data-theme="dark"] .nutrition-fill-dialog .nutrition-fill-group > h4,
body.dark-theme .nutrition-fill-dialog .nutrition-fill-group > h4 {
    color:#e8edf5;
}
html[data-theme="dark"] .nutrition-fill-dialog .nutrition-fill-remaining,
body.dark-theme .nutrition-fill-dialog .nutrition-fill-remaining,
html[data-theme="dark"] .nutrition-fill-dialog .nutrition-fill-option-summary,
body.dark-theme .nutrition-fill-dialog .nutrition-fill-option-summary {
    color:#aeb9c8;
}
html[data-theme="dark"] .nutrition-fill-dialog .nutrition-fill-option,
body.dark-theme .nutrition-fill-dialog .nutrition-fill-option {
    border-color:#3a4b63;
    background:#1b2636;
    color:#edf2f7;
    box-shadow:none;
}
html[data-theme="dark"] .nutrition-fill-dialog .nutrition-fill-option-item,
body.dark-theme .nutrition-fill-dialog .nutrition-fill-option-item,
html[data-theme="dark"] .nutrition-fill-dialog .nutrition-fill-option-item strong,
body.dark-theme .nutrition-fill-dialog .nutrition-fill-option-item strong {
    color:#edf2f7;
}
html[data-theme="dark"] .nutrition-fill-dialog .nutrition-card-icon-button,
body.dark-theme .nutrition-fill-dialog .nutrition-card-icon-button {
    border-color:#465a73;
    color:#e8edf5;
}
html[data-theme="dark"] .nutrition-fill-dialog .nutrition-card-icon-button:hover,
html[data-theme="dark"] .nutrition-fill-dialog .nutrition-card-icon-button:focus-visible,
body.dark-theme .nutrition-fill-dialog .nutrition-card-icon-button:hover,
body.dark-theme .nutrition-fill-dialog .nutrition-card-icon-button:focus-visible {
    background:#243248;
}

/* Nutrition fill preference explanation */
.nutrition-fill-preference-hint {
    display:flex;
    align-items:center;
    gap:7px;
    margin:0;
    font-size:.86rem;
    font-weight:400;
    line-height:1.35;
    color:var(--text-muted);
}
.nutrition-fill-preference-hint img {
    flex:0 0 auto;
    width:22px;
    height:22px;
    object-fit:contain;
}
.nutrition-fill-image-button[hidden] { display:none !important; }
html[data-theme="dark"] .nutrition-fill-dialog .nutrition-fill-preference-hint,
body.dark-theme .nutrition-fill-dialog .nutrition-fill-preference-hint { color:#aebbd0; }

/* Administrator-enabled diagnostics for the hidden "Чем добрать" block. */
.nutrition-fill-debug[hidden] { display:none !important; }
.nutrition-fill-debug { margin:10px 0; padding:10px 12px; border:1px dashed var(--border-color, #63717d); border-radius:8px; font-size:.82rem; line-height:1.35; }
.nutrition-fill-debug strong { display:block; margin-bottom:6px; }
.nutrition-fill-debug-row { display:grid; grid-template-columns:22px minmax(180px,1fr) minmax(120px,auto); gap:6px; align-items:start; padding:2px 0; }
.nutrition-fill-debug-ok { color:#63c77b; font-weight:700; }
.nutrition-fill-debug-fail { color:#ef6b73; font-weight:700; }
.nutrition-fill-debug-wait { color:#e7b64e; font-weight:700; }
.nutrition-fill-debug-value { color:var(--text-muted); text-align:right; overflow-wrap:anywhere; }
@media (max-width:640px) { .nutrition-fill-debug-row { grid-template-columns:22px 1fr; } .nutrition-fill-debug-value { grid-column:2; text-align:left; } }

/* Fill suggestion quality: exact vs approximate */
.nutrition-fill-quality-legend {
    display:flex;
    align-items:center;
    gap:14px;
    flex-wrap:wrap;
    margin:0;
    padding:8px 10px;
    border:1px solid var(--border-main, #c9d0da);
    border-radius:9px;
    background:var(--surface-card, rgba(255,255,255,.42));
    font-size:.86rem;
    color:var(--text-muted);
}
.nutrition-fill-quality-legend-item { display:inline-flex; align-items:center; gap:6px; }
.nutrition-fill-quality-swatch { width:15px; height:15px; border:1px solid rgba(0,0,0,.16); border-radius:3px; box-sizing:border-box; }
.nutrition-fill-quality-swatch.is-strict { background:#dff3e6; }
.nutrition-fill-quality-swatch.is-relaxed { background:#f8e3c8; }
.nutrition-fill-option { position:relative; }
.nutrition-fill-option.is-strict { background:#e9f7ee; border-color:#a9d7b8; }
.nutrition-fill-option.is-relaxed { background:#fbecd9; border-color:#e2bf91; }
.nutrition-fill-quality-badge {
    justify-self:start;
    display:inline-flex;
    align-items:center;
    min-height:22px;
    padding:2px 8px;
    border-radius:999px;
    font-size:.76rem;
    font-weight:700;
    line-height:1.2;
}
.nutrition-fill-option.is-strict .nutrition-fill-quality-badge { background:#ccebd7; color:#1d6338; }
.nutrition-fill-option.is-relaxed .nutrition-fill-quality-badge { background:#f3d4ad; color:#754716; }
html[data-theme="dark"] .nutrition-fill-quality-legend,
body.dark-theme .nutrition-fill-quality-legend { background:#202a39; border-color:#46546a; color:#aebbd0; }
html[data-theme="dark"] .nutrition-fill-quality-swatch.is-strict,
body.dark-theme .nutrition-fill-quality-swatch.is-strict { background:#315b43; border-color:#5d8c6f; }
html[data-theme="dark"] .nutrition-fill-quality-swatch.is-relaxed,
body.dark-theme .nutrition-fill-quality-swatch.is-relaxed { background:#684b2f; border-color:#98704a; }
html[data-theme="dark"] .nutrition-fill-dialog .nutrition-fill-option.is-strict,
body.dark-theme .nutrition-fill-dialog .nutrition-fill-option.is-strict { background:#233c31; border-color:#4f795f; }
html[data-theme="dark"] .nutrition-fill-dialog .nutrition-fill-option.is-relaxed,
body.dark-theme .nutrition-fill-dialog .nutrition-fill-option.is-relaxed { background:#463625; border-color:#796044; }
html[data-theme="dark"] .nutrition-fill-option.is-strict .nutrition-fill-quality-badge,
body.dark-theme .nutrition-fill-option.is-strict .nutrition-fill-quality-badge { background:#315b43; color:#c7efd5; }
html[data-theme="dark"] .nutrition-fill-option.is-relaxed .nutrition-fill-quality-badge,
body.dark-theme .nutrition-fill-option.is-relaxed .nutrition-fill-quality-badge { background:#684b2f; color:#f4d9b7; }

/* Saved recipe used as a component of another recipe. */
.nutrition-recipe-food-results button,
.nutrition-create-suggestions .nutrition-day-similar-card { display: inline-flex; align-items: center; gap: 6px; }
.nutrition-recipe-food-results button > img,
.nutrition-create-suggestions .nutrition-day-similar-card > img { width: 18px; height: 18px; object-fit: contain; flex: 0 0 auto; }
.nutrition-recipe-item.is-recipe-source { border-color: color-mix(in srgb, var(--border-main, #9fb3cc) 65%, #7c5ac7 35%); }
.nutrition-recipe-component-cell { display:flex; align-items:center; gap:6px; min-width:0; }
.nutrition-recipe-component-cell > input { flex:1 1 auto; min-width:0; }
.nutrition-recipe-source-badge { display:inline-flex; flex:0 0 28px; width:28px; height:28px; align-items:center; justify-content:center; opacity:.9; }
.nutrition-recipe-source-badge img { display:block; width:24px; height:24px; object-fit:contain; }


/* Today summary: compact table, plan thermometers and fixed charts. */
.nutrition-day-context:empty { display: none; }
.nutrition-day-actions { display: flex; align-items: center; gap: 8px; }
.nutrition-day-actions .nutrition-day-history-button { margin-inline-start: auto; }
.nutrition-day-history-button.is-return-highlight {
    outline: 2px solid var(--accent, #f59e0b);
    outline-offset: 2px;
    box-shadow: 0 0 0 4px rgba(245, 158, 11, .16);
}
.nutrition-day-actions .nutrition-settings-status:empty { display: none; }
.nutrition-day-summary[hidden] { display: none !important; }
.nutrition-day-summary {
    position: relative;
    display: block;
    margin-top: 22px;
    padding: 22px 12px 12px;
    text-align: initial;
}
.nutrition-day-summary-title {
    position: absolute;
    inset-block-start: 0;
    inset-inline-start: 14px;
    transform: translateY(-50%);
    z-index: 1;
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 3px 12px;
    border: 1px solid var(--border-main, #9fb3cc);
    border-radius: 999px;
    background: var(--surface-bg, #fff);
    box-shadow: 0 2px 7px rgba(28, 47, 76, .09);
    font-size: .88rem;
    line-height: 1.2;
    white-space: nowrap;
}
.nutrition-day-summary-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
}
.nutrition-day-summary-table { min-width: 0; }
.nutrition-day-summary-row {
    display: grid;
    grid-template-columns: minmax(86px, 1.15fr) minmax(72px, .75fr) minmax(74px, .75fr) minmax(118px, 1.1fr);
    gap: 8px;
    align-items: center;
    min-height: 34px;
    padding: 4px 6px;
    border-top: 1px solid var(--border-overlay, rgba(140,153,170,.22));
}
.nutrition-day-summary-row:first-child { border-top: 0; }
.nutrition-day-summary-row > span,
.nutrition-day-summary-row > output { min-width: 0; }
.nutrition-day-summary-head {
    min-height: 26px;
    padding-top: 0;
    color: var(--text-muted, #66758b);
    font-size: .76rem;
    font-weight: 700;
}
.nutrition-day-summary-head > span:not(:first-child) { text-align: center; }
.nutrition-day-summary-row > output,
.nutrition-day-summary-row > span[role="cell"]:not(:first-child) { text-align: center; }
.nutrition-day-summary-row > span:first-child { font-weight: 800; }
.nutrition-day-summary-row.is-protein > span:first-child { color: #4f83e3; }
.nutrition-day-summary-row.is-fat > span:first-child { color: #d58b27; }
.nutrition-day-summary-row.is-carb > span:first-child { color: #3e9b61; }
.nutrition-day-summary-row.is-ethanol > span:first-child { color: #c94b4b; }
.nutrition-day-summary-row.is-kcal > span:first-child { color: var(--text-main, inherit); }
.nutrition-day-summary-mass-total {
    display: flex;
    justify-content: flex-end;
    gap: 7px;
    padding: 7px 6px 0;
    color: var(--text-muted, #66758b);
    font-size: .78rem;
}
.nutrition-day-summary-mass-total output { color: var(--text-main, inherit); font-weight: 700; }
.nutrition-day-plan-meter {
    --plan-progress: 0%;
    position: relative;
    isolation: isolate;
    display: grid;
    place-items: center;
    min-height: 23px;
    overflow: hidden;
    border: 1px solid var(--border-overlay, rgba(140,153,170,.35));
    border-radius: 999px;
    background: color-mix(in srgb, var(--surface-overlay-soft, rgba(140,153,170,.10)) 82%, transparent);
    font-size: .76rem;
    font-weight: 800;
    line-height: 1;
}
.nutrition-day-plan-meter::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    z-index: -1;
    width: var(--plan-progress);
    background: #77a7e8;
    transition: width .2s ease, background-color .2s ease;
}
.nutrition-day-plan-meter.is-target::before { background: #75c58f; }
.nutrition-day-plan-meter.is-over::before { background: #e5a15f; }
.nutrition-day-plan-meter output { color: var(--text-main, #243247); text-shadow: 0 1px 0 rgba(255,255,255,.35); }
.nutrition-day-summary-charts {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 16px;
    padding-inline-start: 18px;
    border-inline-start: 1px solid var(--border-overlay, rgba(140,153,170,.28));
}
.nutrition-day-summary-charts .nutrition-day-macro-donut {
    inline-size: 108px;
    block-size: 108px;
    min-inline-size: 108px;
    min-block-size: 108px;
    max-inline-size: 108px;
    max-block-size: 108px;
    flex: 0 0 108px;
    aspect-ratio: 1 / 1;
}
.nutrition-day-summary-charts .nutrition-day-macro-donut > span {
    width: 64px;
    height: 64px;
    display: grid;
    place-items: center;
    padding: 0;
    border-radius: 50%;
    background: var(--surface-bg, #fff);
}
.nutrition-day-summary-charts .nutrition-day-macro-donut img { width: 42px; height: 42px; object-fit: contain; }
html[data-theme="dark"] .nutrition-day-summary-title,
body.dark-theme .nutrition-day-summary-title { box-shadow: 0 2px 8px rgba(0,0,0,.28); }
html[data-theme="dark"] .nutrition-day-plan-meter output,
body.dark-theme .nutrition-day-plan-meter output { color: #eef4ff; text-shadow: 0 1px 1px rgba(0,0,0,.5); }
@media (max-width: 760px) {
    .nutrition-fill-mass-limit { width:100%; justify-content:space-between; }
    .nutrition-day-summary-layout { grid-template-columns: 1fr; gap: 12px; }
    .nutrition-day-summary-charts {
        justify-content: center;
        padding: 12px 0 0;
        border-inline-start: 0;
        border-top: 1px solid var(--border-overlay, rgba(140,153,170,.28));
    }
    .nutrition-day-actions { flex-wrap: wrap; }
    .nutrition-day-actions .nutrition-settings-status { order: 3; flex-basis: 100%; }
}
@media (max-width: 520px) {
    .nutrition-day-summary { padding-inline: 7px; }
    .nutrition-day-summary-row {
        grid-template-columns: minmax(52px,.8fr) minmax(56px,.7fr) minmax(58px,.72fr) minmax(92px,1.25fr);
        gap: 4px;
        padding-inline: 2px;
    }
    .nutrition-day-summary-head { font-size: .66rem; }
    .nutrition-day-summary-row { font-size: .78rem; }
    .nutrition-day-plan-meter { min-height: 21px; font-size: .68rem; }
    .nutrition-day-summary-charts .nutrition-day-macro-donut {
        inline-size: 92px;
        block-size: 92px;
        min-inline-size: 92px;
        min-block-size: 92px;
        max-inline-size: 92px;
        max-block-size: 92px;
        flex-basis: 92px;
    }
    .nutrition-day-summary-charts .nutrition-day-macro-donut > span { width: 54px; height: 54px; }
    .nutrition-day-summary-charts .nutrition-day-macro-donut img { width: 36px; height: 36px; }
}

/* Goals and parameters: save actions and prominent intro hint. */
.nutrition-save-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; }
.nutrition-save-button img { width:20px; height:20px; object-fit:contain; flex:0 0 auto; }

/* Save icons: keep them readable on filled action buttons in both themes. */
.nutrition-save-button img {
    filter: brightness(0) invert(1);
    opacity: .92;
}
.nutrition-save-button:disabled img {
    opacity: .58;
}

/* Text button icons: use the PNG alpha channel as a mask so the icon follows currentColor. */
.nutrition-text-icon {
    --nutrition-button-icon: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5em;
}
.nutrition-text-icon::before,
.nutrition-text-icon.icon-after::after {
    content: "";
    width: 1.15em;
    height: 1.15em;
    flex: 0 0 1.15em;
    background-color: currentColor;
    -webkit-mask: var(--nutrition-button-icon) center / contain no-repeat;
    mask: var(--nutrition-button-icon) center / contain no-repeat;
}
.nutrition-text-icon.icon-after::before { display: none; }
.nutrition-text-icon.icon-save { --nutrition-button-icon: url('images/pic_save.png'); }
.nutrition-text-icon.icon-add { --nutrition-button-icon: url('images/btn_add.png'); }
.nutrition-text-icon.icon-clean { --nutrition-button-icon: url('images/btn_clean.png'); }
.nutrition-text-icon.icon-edit { --nutrition-button-icon: url('images/btn_edit.png'); }
.nutrition-text-icon.icon-delete { --nutrition-button-icon: url('images/btn_delete.png'); }
.nutrition-text-icon.icon-view { --nutrition-button-icon: url('images/btn_view.png'); }
.nutrition-text-icon.icon-sum { --nutrition-button-icon: url('images/pic_sum.png'); }
.nutrition-text-icon.icon-new { --nutrition-button-icon: url('images/pic_new.png'); }
.nutrition-text-icon.icon-first { --nutrition-button-icon: url('images/pic_l2.png'); }
.nutrition-text-icon.icon-prev,
.nutrition-text-icon.icon-back { --nutrition-button-icon: url('images/pic_l1.png'); }
.nutrition-text-icon.icon-next { --nutrition-button-icon: url('images/pic_r1.png'); }
.nutrition-text-icon.icon-last { --nutrition-button-icon: url('images/pic_r2.png'); }
.nutrition-text-icon:disabled::before,
.nutrition-text-icon:disabled::after { opacity: .78; }


/* Pagination: compact icon-only controls, no horizontal scroller. */
.nutrition-food-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
    overflow: visible;
    padding-bottom: 0;
}
.nutrition-pagination-icon {
    --nutrition-button-icon: none;
    position: relative;
    display: inline-grid;
    width: 42px;
    height: 42px;
    min-width: 42px;
    min-height: 42px;
    padding: 0;
    place-items: center;
    border-radius: 50%;
    color: currentColor;
}
.nutrition-pagination-icon::before {
    width: 24px;
    height: 24px;
    background: currentColor;
    content: "";
    -webkit-mask: var(--nutrition-button-icon) center / contain no-repeat;
    mask: var(--nutrition-button-icon) center / contain no-repeat;
}
.nutrition-pagination-icon.icon-first { --nutrition-button-icon: url('images/pic_l2.png'); }
.nutrition-pagination-icon.icon-prev  { --nutrition-button-icon: url('images/pic_l1.png'); }
.nutrition-pagination-icon.icon-next  { --nutrition-button-icon: url('images/pic_r1.png'); }
.nutrition-pagination-icon.icon-last  { --nutrition-button-icon: url('images/pic_r2.png'); }
.nutrition-pagination-icon:disabled { opacity: .42; }

/* Recipe totals must not inherit the Today summary block layout. */
.nutrition-workspace[data-nutrition-view="foods"] .nutrition-recipe-summary {
    position: static;
    display: grid;
    grid-template-columns: minmax(120px,1.2fr) repeat(6,minmax(70px,.65fr));
    gap: 8px;
    align-items: end;
    margin: 12px 0;
    padding: 10px;
    text-align: center;
}
.nutrition-workspace[data-nutrition-view="foods"][data-show-ethanol="0"] .nutrition-recipe-summary {
    grid-template-columns: minmax(120px,1.2fr) repeat(5,minmax(70px,.65fr));
}
.nutrition-workspace[data-nutrition-view="foods"] .nutrition-recipe-summary > strong {
    position: static;
    transform: none;
    align-self: center;
    text-align: center;
}
.nutrition-workspace[data-nutrition-view="foods"] .nutrition-recipe-summary > span {
    display: grid;
    gap: 3px;
    min-width: 0;
    text-align: center;
}
@media (max-width: 680px) {
    .nutrition-workspace[data-nutrition-view="foods"] .nutrition-recipe-summary,
    .nutrition-workspace[data-nutrition-view="foods"][data-show-ethanol="0"] .nutrition-recipe-summary {
        grid-template-columns: 1fr 1fr;
    }
    .nutrition-workspace[data-nutrition-view="foods"] .nutrition-recipe-summary > strong { grid-column: 1 / -1; }
}

/* Nutrition workspace cleanup: tab navigation already names the active section. */
.nutrition-workspace > h2 { display:none; }

/* Shared contextual note used inside the block it describes. */
.nutrition-context-note {
    display:block;
    margin:10px 0 0;
    padding:9px 11px;
    border-left:3px solid rgba(79,131,227,.55);
    border-radius:0 9px 9px 0;
    background:rgba(79,131,227,.07);
    color:var(--text-muted, #64748b);
    font-size:12px;
    line-height:1.4;
    font-style:normal;
    font-weight:400;
}
html[data-theme="dark"] .nutrition-context-note,
body.theme-dark .nutrition-context-note,
body.dark-theme .nutrition-context-note {
    background:rgba(111,155,235,.11);
    border-left-color:rgba(130,169,239,.72);
    color:var(--text-muted, #a7b4c7);
}
.nutrition-targets-units-note { grid-column:1 / -1; }

/* The water explanation belongs to the water component card. */
.nutrition-recipe-item.is-water .nutrition-recipe-water-note {
    grid-column:1 / -1;
    margin:2px 0 0;
}

/* Personal library: one clean title row, one clean filter row. */
.nutrition-food-list-toolbar {
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:12px;
    margin-top:22px;
}
.nutrition-food-library-head {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    min-width:0;
}
.nutrition-food-library-head h3 {
    margin:0;
    white-space:nowrap;
}
.nutrition-food-library-head .nutrition-switch { margin-left:auto; }
.nutrition-food-list-controls {
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(240px,.72fr);
    align-items:end;
    gap:14px;
    min-width:0;
}
.nutrition-food-list-controls > label {
    display:grid;
    grid-template-columns:max-content minmax(0,1fr);
    align-items:center;
    gap:9px;
    min-width:0;
}
.nutrition-food-list-controls input,
.nutrition-food-list-controls select {
    width:100%;
    min-width:0;
    max-width:none;
}
@media (max-width:680px) {
    .nutrition-food-library-head { align-items:flex-start; }
    .nutrition-food-library-head h3 { white-space:normal; }
    .nutrition-food-list-controls { grid-template-columns:1fr; gap:9px; }
    .nutrition-food-list-controls > label { grid-template-columns:1fr; gap:5px; }
}

/* Nutrition workspace refinement: compact sources and recipe totals. */
.nutrition-day-actions .nutrition-day-today-button { margin-left:auto; }
.nutrition-day-actions .nutrition-day-today-button:not([hidden]) + .nutrition-day-history-button { margin-left:0; }

.nutrition-floating-title {
    position:absolute;
    top:0;
    left:18px;
    z-index:1;
    margin:0;
    padding:5px 16px;
    border:1px solid var(--border-main, #9fb3cc);
    border-radius:999px;
    background:var(--surface-main, #fff);
    transform:translateY(-50%);
    font-size:16px;
    line-height:1.1;
    white-space:nowrap;
}
.nutrition-food-sources-inline {
    position:relative;
    display:grid;
    gap:8px;
    margin-top:24px;
    padding:22px 12px 10px;
}
.nutrition-food-source-list { display:flex; flex-wrap:wrap; gap:6px; }
.nutrition-food-source-list > * {
    min-height:28px;
    padding:4px 10px;
    border-radius:999px;
    font-size:12px;
    line-height:1.15;
}
.nutrition-food-sources-note { margin-top:2px; font-size:12px; }

.nutrition-recipe-summary {
    position:relative !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto !important;
    gap:18px !important;
    align-items:center !important;
    margin:24px 0 12px !important;
    padding:25px 16px 14px !important;
    border:1px solid var(--border-main, #9fb3cc);
    border-radius:14px;
    text-align:left !important;
}
.nutrition-recipe-summary-values {
    display:grid;
    grid-template-columns:repeat(3,minmax(90px,1fr));
    gap:8px;
}
.nutrition-recipe-summary-values > span {
    display:grid;
    gap:3px;
    min-width:0;
    padding:8px 10px;
    border:1px solid var(--border-main, #9fb3cc);
    border-radius:10px;
    background:var(--surface-overlay-soft, rgba(140,153,170,.10));
    text-align:center;
}
.nutrition-recipe-summary-values small { font-weight:700; }
.nutrition-recipe-summary-values output { font-size:18px; font-weight:700; }
.nutrition-recipe-summary-values .is-protein small { color:#4f83e3; }
.nutrition-recipe-summary-values .is-fat small { color:#d88920; }
.nutrition-recipe-summary-values .is-carb small { color:#319a52; }
.nutrition-recipe-summary-values .is-ethanol small { color:#d94852; }
.nutrition-recipe-summary-charts { display:flex; gap:14px; align-items:center; }
.nutrition-recipe-donut {
    position:relative;
    width:112px;
    height:112px;
    min-width:112px;
    aspect-ratio:1/1;
    border-radius:50%;
    flex:0 0 auto;
}
.nutrition-recipe-donut::after {
    position:absolute;
    inset:24%;
    border-radius:50%;
    background:var(--surface-main, #fff);
    content:"";
}
.nutrition-recipe-donut > span { position:absolute; inset:31%; z-index:1; display:grid; place-items:center; }
.nutrition-recipe-donut img { display:block; width:100%; height:100%; object-fit:contain; }
.nutrition-recipe-list-controls {
    display:grid;
    grid-template-columns:minmax(220px,1fr) minmax(220px,1fr);
    gap:12px;
    margin-top:10px;
}
.nutrition-recipe-list-controls label { display:flex; align-items:center; gap:8px; }
.nutrition-recipe-list-controls input,
.nutrition-recipe-list-controls select { min-width:0; width:100%; }

@media (max-width: 760px) {
    .nutrition-recipe-summary { grid-template-columns:1fr !important; }
    .nutrition-recipe-summary-values { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .nutrition-recipe-summary-charts { justify-content:center; }
    .nutrition-recipe-list-controls { grid-template-columns:1fr; }
}

/* Nutrition cleanup 3: exact day-action states and compact recipe/source layouts. */
.nutrition-food-source-list {
    justify-content:flex-start;
}

.nutrition-workspace[data-nutrition-view="foods"] .nutrition-recipe-summary {
    position:relative !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto !important;
    align-items:center !important;
    gap:12px !important;
    min-height:0 !important;
    margin:24px 0 12px !important;
    padding:24px 12px 12px !important;
    text-align:left !important;
}
.nutrition-workspace[data-nutrition-view="foods"] .nutrition-recipe-summary[hidden] {
    display:none !important;
}
.nutrition-workspace[data-nutrition-view="foods"] .nutrition-recipe-summary > .nutrition-floating-title {
    position:absolute !important;
    top:0 !important;
    left:14px !important;
    width:auto !important;
    max-width:calc(100% - 28px) !important;
    padding:5px 16px !important;
    transform:translateY(-50%) !important;
    border:1px solid var(--border-main, #9fb3cc) !important;
    border-radius:999px !important;
    background:var(--surface-main, #fff) !important;
    font-size:16px !important;
    line-height:1.1 !important;
    white-space:nowrap !important;
    z-index:1;
}
.nutrition-workspace[data-nutrition-view="foods"] .nutrition-recipe-summary-values {
    display:grid !important;
    grid-template-columns:repeat(6,minmax(72px,1fr)) !important;
    gap:7px !important;
    min-width:0;
}
.nutrition-workspace[data-nutrition-view="foods"][data-show-ethanol="0"] .nutrition-recipe-summary-values {
    grid-template-columns:repeat(5,minmax(78px,1fr)) !important;
}
.nutrition-workspace[data-nutrition-view="foods"] .nutrition-recipe-summary-values > span {
    padding:6px 7px !important;
    min-height:58px;
    align-content:center;
}
.nutrition-workspace[data-nutrition-view="foods"] .nutrition-recipe-summary-values small {
    font-size:12px;
    line-height:1.1;
}
.nutrition-workspace[data-nutrition-view="foods"] .nutrition-recipe-summary-values output {
    font-size:17px;
}
.nutrition-workspace[data-nutrition-view="foods"] .nutrition-recipe-summary-charts {
    display:flex !important;
    gap:9px !important;
    align-items:center !important;
    justify-content:flex-end;
}
.nutrition-workspace[data-nutrition-view="foods"] .nutrition-recipe-donut {
    width:88px !important;
    height:88px !important;
    min-width:88px !important;
}

@media (max-width: 900px) {
    .nutrition-workspace[data-nutrition-view="foods"] .nutrition-recipe-summary {
        grid-template-columns:1fr !important;
    }
    .nutrition-workspace[data-nutrition-view="foods"] .nutrition-recipe-summary-charts {
        justify-content:center;
    }
}
@media (max-width: 680px) {
    .nutrition-workspace[data-nutrition-view="foods"] .nutrition-recipe-summary-values,
    .nutrition-workspace[data-nutrition-view="foods"][data-show-ethanol="0"] .nutrition-recipe-summary-values {
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    }
}


/* Dark theme: floating section titles must use a dark surface instead of the light fallback. */
html[data-theme="dark"] .nutrition-floating-title,
body.dark-theme .nutrition-floating-title,
html[data-theme="dark"] .nutrition-workspace[data-nutrition-view="foods"] .nutrition-recipe-summary > .nutrition-floating-title,
body.dark-theme .nutrition-workspace[data-nutrition-view="foods"] .nutrition-recipe-summary > .nutrition-floating-title {
    background: #111b2a !important;
    border-color: #465a73 !important;
    color: inherit;
}

/* Dark theme: keep native date/month picker affordances visible on dark inputs. */
html[data-theme="dark"] .nutrition-workspace input[type="date"]::-webkit-calendar-picker-indicator,
html[data-theme="dark"] .nutrition-workspace input[type="month"]::-webkit-calendar-picker-indicator,
body.dark-theme .nutrition-workspace input[type="date"]::-webkit-calendar-picker-indicator,
body.dark-theme .nutrition-workspace input[type="month"]::-webkit-calendar-picker-indicator,
body.theme-dark .nutrition-workspace input[type="date"]::-webkit-calendar-picker-indicator,
body.theme-dark .nutrition-workspace input[type="month"]::-webkit-calendar-picker-indicator {
  filter: invert(1) brightness(1.55);
  opacity: .92;
  cursor: pointer;
}

/* Nutrition workspace consistency: every tab starts at the same vertical offset. */
.nutrition-workspace {
    box-sizing: border-box;
    padding-top: 14px;
}
.nutrition-workspace[data-nutrition-view="today"] > .nutrition-diary-visualization,
.nutrition-workspace[data-nutrition-view="foods"] > .nutrition-food-form,
.nutrition-workspace[data-nutrition-view="foods"] > .nutrition-recipe-form,
.nutrition-workspace[data-nutrition-view="collections"] > .nutrition-collections {
    margin-top: 0 !important;
}
.nutrition-workspace[data-nutrition-view="settings"] > .nutrition-settings-panel > .nutrition-settings-form {
    margin-top: 0 !important;
}

/* Major sections are separated by whitespace/cards, not horizontal splitter lines. */
.nutrition-weight-form,
.nutrition-energy-form,
.nutrition-target-form {
    padding-top: 0;
    border-top: 0;
}


/* Compact form polish: daily total mass, food creation row and recipe header. */
.nutrition-day-summary-mass-total {
    width: max-content;
    margin: 7px 6px 0 auto;
    padding: 5px 10px;
    border: 1px solid var(--border-overlay, rgba(140,153,170,.35));
    border-radius: 999px;
    background: var(--surface-overlay-soft, rgba(140,153,170,.10));
    color: var(--text-main, inherit);
    font-size: .86rem;
    font-weight: 700;
    line-height: 1.2;
}
.nutrition-day-summary-mass-total output {
    font-size: .95rem;
    font-weight: 900;
}

.nutrition-workspace[data-nutrition-view="foods"] .nutrition-food-form fieldset {
    padding: 8px 10px 9px;
}
.nutrition-workspace[data-nutrition-view="foods"] .nutrition-food-grid {
    gap: 6px;
}
.nutrition-workspace[data-nutrition-view="foods"] .nutrition-food-grid label {
    gap: 3px;
}
.nutrition-workspace[data-nutrition-view="foods"] .nutrition-food-grid input,
.nutrition-workspace[data-nutrition-view="foods"] .nutrition-food-grid output {
    min-height: 34px;
    height: 34px;
}
.nutrition-workspace[data-nutrition-view="foods"] .nutrition-food-grid output {
    padding-top: 5px;
    padding-bottom: 5px;
}
.nutrition-workspace[data-nutrition-view="foods"] .nutrition-food-kcal-field {
    align-self: end;
}

.nutrition-workspace[data-nutrition-view="foods"] .nutrition-recipe-form fieldset {
    padding: 10px 12px 11px;
}
.nutrition-workspace[data-nutrition-view="foods"] .nutrition-recipe-head {
    grid-template-columns: minmax(0, 1.15fr) minmax(320px, 1fr);
    gap: 14px;
    align-items: end;
}
.nutrition-workspace[data-nutrition-view="foods"] .nutrition-recipe-head input {
    box-sizing: border-box;
    width: 100%;
    height: 38px;
    min-height: 38px;
}
.nutrition-workspace[data-nutrition-view="foods"] .nutrition-recipe-name-field {
    display: grid;
    grid-template-rows: auto 38px;
    gap: 4px;
    min-width: 0;
}
.nutrition-workspace[data-nutrition-view="foods"] .nutrition-recipe-output-field {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: 40px auto;
    gap: 4px 12px;
    align-items: center;
    min-width: 0;
}
.nutrition-workspace[data-nutrition-view="foods"] .nutrition-recipe-output-field > .nutrition-recipe-output-label {
    grid-column: 1;
    grid-row: 1;
    align-self: center;
    min-width: 0;
}
.nutrition-workspace[data-nutrition-view="foods"] .nutrition-recipe-output-field > .nutrition-recipe-output-control {
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
}
.nutrition-workspace[data-nutrition-view="foods"] .nutrition-recipe-output-field > .nutrition-inline-validation {
    grid-column: 1 / -1;
    grid-row: 2;
}

@media (max-width: 720px) {
    .nutrition-workspace[data-nutrition-view="foods"] .nutrition-recipe-head {
        grid-template-columns: 1fr;
        gap: 8px;
    }
    .nutrition-workspace[data-nutrition-view="foods"] .nutrition-recipe-output-field {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 4px 8px;
    }
}

/* Nutrition UI contract: autonomous library/settings blocks. */
.nutrition-library-block {
    position: relative;
    display: grid;
    gap: 12px;
    margin-top: 28px;
    padding: 24px 12px 12px;
    border: 1px solid var(--border-main, #9fb3cc);
    border-radius: 12px;
    background: var(--surface-main, transparent);
}
.nutrition-library-block > .nutrition-floating-title {
    left: 14px;
    font-size: 14px;
    padding: 4px 13px;
}
.nutrition-library-block .nutrition-food-list-toolbar,
.nutrition-library-block .nutrition-recipe-library-head {
    margin-top: 0;
}
.nutrition-library-block .nutrition-food-library-head,
.nutrition-library-block .nutrition-recipe-library-head {
    min-height: 28px;
    justify-content: flex-end;
}
.nutrition-library-block .nutrition-food-list-controls,
.nutrition-library-block .nutrition-recipe-list-controls {
    margin-top: 0;
}
.nutrition-library-block .nutrition-food-sources-inline {
    margin-top: 8px;
}
.nutrition-library-block .nutrition-food-list,
.nutrition-library-block .nutrition-recipe-library {
    margin-top: 0;
}
.nutrition-library-block .nutrition-food-pagination {
    margin-top: 4px;
}
.nutrition-recipe-library {
    max-height: none !important;
    overflow-y: visible !important;
    padding-right: 0 !important;
    scrollbar-gutter: auto !important;
}

/* Settings blocks use the same floating-title language; save belongs to its block. */
.nutrition-workspace[data-nutrition-view="settings"] .nutrition-settings-form {
    margin-top: 0;
}
.nutrition-workspace[data-nutrition-view="settings"] .nutrition-settings-form fieldset {
    position: relative;
    gap: 12px;
    margin-top: 20px;
    padding: 26px 14px 14px;
}
.nutrition-workspace[data-nutrition-view="settings"] .nutrition-settings-form fieldset > legend {
    position: absolute;
    top: 0;
    left: 14px;
    z-index: 1;
    width: auto;
    max-width: calc(100% - 28px);
    margin: 0;
    padding: 4px 13px;
    border: 1px solid var(--border-main, #9fb3cc);
    border-radius: 999px;
    background: var(--surface-bg, #f7faff);
    transform: translateY(-50%);
    font-size: 14px;
    line-height: 1.1;
    white-space: nowrap;
}
.nutrition-workspace[data-nutrition-view="settings"] .nutrition-settings-form fieldset > .nutrition-settings-actions {
    margin-top: 2px;
    padding-top: 2px;
}
.nutrition-workspace[data-nutrition-view="settings"] .nutrition-settings-panel + .nutrition-settings-panel {
    margin-top: 10px;
}

@media (max-width: 720px) {
    .nutrition-library-block { padding: 24px 10px 10px; }
    .nutrition-library-block .nutrition-food-library-head,
    .nutrition-library-block .nutrition-recipe-library-head { justify-content: flex-start; }
    .nutrition-workspace[data-nutrition-view="settings"] .nutrition-settings-form fieldset > legend {
        max-width: calc(100% - 20px);
        left: 10px;
    }
}
.nutrition-workspace[data-nutrition-view="settings"] .nutrition-settings-panel {
    border: 0 !important;
    border-radius: 0 !important;
    overflow: visible !important;
    background: transparent !important;
}
.nutrition-workspace[data-nutrition-view="settings"] .nutrition-settings-panel > summary {
    display: none !important;
}
.nutrition-workspace[data-nutrition-view="settings"] .nutrition-settings-panel > .nutrition-settings-form {
    padding: 0 !important;
}

/* N1.1: explain top-down save inheritance without adding another visual pattern. */
.nutrition-workspace[data-nutrition-view="settings"] .nutrition-settings-cascade-note {
    margin-top: 6px;
}

/* Gentle first-entry reminder for an empty active nutrition day. */
.nutrition-morning-tip {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin:10px 0 14px;
    padding:11px 13px;
    border:1px solid rgba(196,145,20,.34);
    border-left:4px solid rgba(196,145,20,.72);
    border-radius:10px;
    background:rgba(234,179,8,.10);
    color:var(--text-muted, #64748b);
    font-size:.9rem;
    line-height:1.4;
}
.nutrition-morning-tip[hidden] { display:none !important; }
.nutrition-morning-tip > div { min-width:0; }
.nutrition-morning-tip strong { color:var(--text-main, #1f2937); margin-right:5px; }
.nutrition-morning-tip-link {
    flex:0 0 auto;
    padding:6px 10px;
    border:1px solid rgba(196,145,20,.42);
    border-radius:999px;
    color:#8a6200;
    background:rgba(255,255,255,.42);
    text-decoration:none;
    font-size:.86rem;
    font-weight:600;
    white-space:nowrap;
}
.nutrition-morning-tip-link:hover { background:rgba(234,179,8,.16); }
html[data-theme="dark"] .nutrition-morning-tip,
body.theme-dark .nutrition-morning-tip,
body.dark-theme .nutrition-morning-tip {
    background:rgba(234,179,8,.10);
    border-color:rgba(234,179,8,.24);
    border-left-color:rgba(234,179,8,.62);
    color:var(--text-muted, #a7b4c7);
}
html[data-theme="dark"] .nutrition-morning-tip-link,
body.theme-dark .nutrition-morning-tip-link,
body.dark-theme .nutrition-morning-tip-link { background:rgba(255,255,255,.04); color:#e7c75d; border-color:rgba(234,179,8,.34); }
@media (max-width:680px) {
    .nutrition-morning-tip { align-items:flex-start; flex-direction:column; gap:8px; }
}


/* Percentage labels centered on nutrition donut sectors. */
.nutrition-day-macro-donut { position: relative; }
.nutrition-donut-percent {
    position: absolute;
    left: var(--donut-label-x, 50%);
    top: var(--donut-label-y, 50%);
    z-index: 3;
    transform: translate(-50%, -50%);
    min-width: 18px;
    padding: 0 1px;
    color: #fff;
    font-family: inherit;
    font-size: 17px;
    font-weight: 700;
    line-height: 1;
    text-align: center;
    text-shadow: 0 1px 2px rgba(15,23,42,.95), 0 0 1px rgba(15,23,42,.95);
    pointer-events: none;
    user-select: none;
}
html[data-theme="dark"] .nutrition-donut-percent,
body.theme-dark .nutrition-donut-percent,
body.dark-theme .nutrition-donut-percent {
    color: #111;
    text-shadow: 0 1px 2px rgba(255,255,255,.98), 0 0 1px rgba(255,255,255,.98);
}
@media (max-width: 760px) {
    .nutrition-donut-percent { font-size: 16px; }
}

/* Guest Nutrition: local provisional stage. */
.nutrition-provisional-notice {
    position: relative;
    display: flex;
    gap: 5px;
    align-items: flex-start;
    flex-direction: column;
    flex-wrap: wrap;
    margin: 0 0 14px;
    padding: 13px 16px 13px 54px;
    border: 1px solid rgba(67, 132, 224, .42);
    border-radius: 12px;
    background: linear-gradient(105deg, rgba(84, 153, 242, .15), rgba(117, 180, 244, .06));
    box-shadow: 0 4px 14px rgba(40, 91, 159, .09);
}
.nutrition-provisional-notice::before {
    content: "i";
    position: absolute;
    left: 16px;
    top: 50%;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    color: #fff;
    background: #357fdf;
    font-size: 16px;
    font-weight: 800;
    font-style: normal;
    line-height: 24px;
    text-align: center;
    transform: translateY(-50%);
    box-shadow: 0 2px 7px rgba(36, 100, 181, .3);
}
.nutrition-provisional-notice strong { color: var(--text-main); font-size: 15px; line-height: 1.3; }
.nutrition-provisional-notice span { opacity: .9; line-height: 1.4; }
html[data-theme="dark"] .nutrition-provisional-notice,
body.dark-theme .nutrition-provisional-notice {
    border-color: rgba(104, 166, 245, .5);
    background: linear-gradient(105deg, rgba(52, 112, 190, .28), rgba(32, 62, 101, .18));
    box-shadow: 0 5px 18px rgba(0, 0, 0, .18);
}
.nutrition-provisional-settings-more { margin-top: 12px; }

/* Guest Nutrition progressive benefits reuse the public SEO join-block visual language. */
.nutrition-page > .guest-stage-benefits {
    margin-top: 16px;
}

/* Guest Nutrition: honest per-view benefits / progression copy. */
.nutrition-stage-benefits .nutrition-benefits-current {
    margin-top: 12px;
    padding: 9px 11px;
    border-radius: 9px;
    background: var(--surface-overlay-soft, rgba(110, 128, 150, .08));
    line-height: 1.45;
}
.nutrition-stage-benefits .nutrition-benefits-current strong {
    display: block;
    margin-bottom: 3px;
}
.nutrition-benefits-details > summary {
    cursor: pointer;
    font-weight: 700;
    list-style-position: inside;
}
.nutrition-benefits-details[open] > summary { margin-bottom: 10px; }
.nutrition-stage-benefits .nutrition-benefits-next-label {
    margin: 12px 0 0;
}
.nutrition-stage-benefits .nutrition-benefit-provisional-only[hidden] {
    display: none !important;
}

.nutrition-guest-progress { font-weight: 600; }
.nutrition-guest-unlock { flex-basis: 100%; padding-top: 6px; border-top: 1px solid var(--border-soft, rgba(110,128,150,.22)); }
.nutrition-graph-inline { display: grid; gap: 12px; }
.nutrition-graph-inline-head h2 { margin: 0 0 5px; }

/* T8.2: compact system-guest status card. The lower "Benefits" block remains separate. */
.nutrition-system-guest-card {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    margin: 0 0 12px;
    padding: 9px 11px;
    border: 1px solid #a9d7b8;
    border-radius: 11px;
    background: #e9f7ee;
    box-shadow: 0 4px 12px rgba(38, 92, 57, .07);
}
.nutrition-system-guest-stats {
    align-self: center;
    min-width: 148px;
    overflow: hidden;
    border: 1px solid rgba(65, 126, 84, .22);
    border-radius: 7px;
    background: rgba(255,255,255,.42);
    font-size: .82rem;
    line-height: 1.15;
}
.nutrition-system-guest-stats dl { margin: 0; }
.nutrition-system-guest-stats dl > div {
    display: grid;
    grid-template-columns: auto minmax(18px, auto);
    align-items: center;
    gap: 8px;
    padding: 3px 6px;
    border-bottom: 1px solid rgba(65, 126, 84, .11);
}
.nutrition-system-guest-stats dl > div:last-child { border-bottom: 0; }
.nutrition-system-guest-stats dt,
.nutrition-system-guest-stats dd { margin: 0; }
.nutrition-system-guest-stats dt { white-space: nowrap; }
.nutrition-system-guest-stats dd {
    min-width: 18px;
    text-align: right;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}
.nutrition-system-guest-copy {
    display: flex;
    min-width: 0;
    flex-direction: column;
    justify-content: center;
    gap: 4px;
}
.nutrition-system-guest-title { font-size: 1rem; }
.nutrition-system-guest-lead { line-height: 1.32; }
.nutrition-system-guest-card .nutrition-guest-next,
.nutrition-system-guest-card .nutrition-guest-unlock {
    padding-top: 4px;
    border-top: 1px solid rgba(65, 126, 84, .16);
}
body.dark-theme .nutrition-system-guest-card {
    border-color: rgba(113, 184, 133, .52);
    background: rgba(38, 92, 57, .26);
    box-shadow: 0 6px 18px rgba(0,0,0,.16);
}
body.dark-theme .nutrition-system-guest-stats { background: rgba(0,0,0,.14); }
@media (max-width: 720px) {
    .nutrition-system-guest-card { grid-template-columns: 1fr; gap: 7px; }
    .nutrition-system-guest-stats { width: fit-content; max-width: 100%; }
}

/* Mobile fix: "Your food" new-item editor must never preserve the desktop 5/6-column grid. */
@media (max-width: 680px) {
    .nutrition-workspace[data-nutrition-view="foods"] .nutrition-food-grid,
    .nutrition-workspace[data-nutrition-view="foods"][data-show-ethanol="0"] .nutrition-food-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }

    .nutrition-workspace[data-nutrition-view="foods"] .nutrition-food-grid > label {
        min-width: 0;
        max-width: 100%;
    }

    .nutrition-workspace[data-nutrition-view="foods"] .nutrition-food-name {
        grid-column: 1 / -1;
    }

    .nutrition-workspace[data-nutrition-view="foods"] .nutrition-food-grid input,
    .nutrition-workspace[data-nutrition-view="foods"] .nutrition-food-grid output {
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }

    .nutrition-workspace[data-nutrition-view="foods"] .nutrition-food-kcal-field output {
        overflow-wrap: anywhere;
    }
}

@media (max-width: 360px) {
    .nutrition-workspace[data-nutrition-view="foods"] .nutrition-food-grid,
    .nutrition-workspace[data-nutrition-view="foods"][data-show-ethanol="0"] .nutrition-food-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .nutrition-workspace[data-nutrition-view="foods"] .nutrition-food-name {
        grid-column: auto;
    }
}

/* Closed nutrition day: keep read-only state legible in dark theme. */
html[data-theme="dark"] .nutrition-workspace.nutrition-day-closed,
body.dark-theme .nutrition-workspace.nutrition-day-closed,
body.theme-dark .nutrition-workspace.nutrition-day-closed {
    background: color-mix(in srgb, var(--surface-card, #172235) 88%, #596273 12%);
    border-color: var(--border-main, #46546a);
    box-shadow: inset 0 0 0 2px rgba(148,163,184,.16);
    color: var(--text-main, #e7edf7);
}

html[data-theme="dark"] .nutrition-workspace.nutrition-day-closed .nutrition-day-macro-chart,
html[data-theme="dark"] .nutrition-workspace.nutrition-day-closed .nutrition-day-add,
html[data-theme="dark"] .nutrition-workspace.nutrition-day-closed .nutrition-day-item-head,
html[data-theme="dark"] .nutrition-workspace.nutrition-day-closed .nutrition-day-items,
html[data-theme="dark"] .nutrition-workspace.nutrition-day-closed .nutrition-food-empty,
html[data-theme="dark"] .nutrition-workspace.nutrition-day-closed .nutrition-day-summary,
body.dark-theme .nutrition-workspace.nutrition-day-closed .nutrition-day-macro-chart,
body.dark-theme .nutrition-workspace.nutrition-day-closed .nutrition-day-add,
body.dark-theme .nutrition-workspace.nutrition-day-closed .nutrition-day-item-head,
body.dark-theme .nutrition-workspace.nutrition-day-closed .nutrition-day-items,
body.dark-theme .nutrition-workspace.nutrition-day-closed .nutrition-food-empty,
body.dark-theme .nutrition-workspace.nutrition-day-closed .nutrition-day-summary,
body.theme-dark .nutrition-workspace.nutrition-day-closed .nutrition-day-macro-chart,
body.theme-dark .nutrition-workspace.nutrition-day-closed .nutrition-day-add,
body.theme-dark .nutrition-workspace.nutrition-day-closed .nutrition-day-item-head,
body.theme-dark .nutrition-workspace.nutrition-day-closed .nutrition-day-items,
body.theme-dark .nutrition-workspace.nutrition-day-closed .nutrition-food-empty,
body.theme-dark .nutrition-workspace.nutrition-day-closed .nutrition-day-summary {
    opacity: .86;
    filter: grayscale(.12);
    background: rgba(255,255,255,.025);
    border-color: rgba(148,163,184,.28);
}

html[data-theme="dark"] .nutrition-workspace.nutrition-day-closed input:disabled,
html[data-theme="dark"] .nutrition-workspace.nutrition-day-closed input[readonly],
html[data-theme="dark"] .nutrition-workspace.nutrition-day-closed select:disabled,
body.dark-theme .nutrition-workspace.nutrition-day-closed input:disabled,
body.dark-theme .nutrition-workspace.nutrition-day-closed input[readonly],
body.dark-theme .nutrition-workspace.nutrition-day-closed select:disabled,
body.theme-dark .nutrition-workspace.nutrition-day-closed input:disabled,
body.theme-dark .nutrition-workspace.nutrition-day-closed input[readonly],
body.theme-dark .nutrition-workspace.nutrition-day-closed select:disabled {
    background: rgba(255,255,255,.055);
    border-color: rgba(148,163,184,.30);
    color: #d7dfec;
    -webkit-text-fill-color: #d7dfec;
    opacity: 1;
}

html[data-theme="dark"] .nutrition-workspace.nutrition-day-closed .nutrition-day-calculated output,
body.dark-theme .nutrition-workspace.nutrition-day-closed .nutrition-day-calculated output,
body.theme-dark .nutrition-workspace.nutrition-day-closed .nutrition-day-calculated output {
    background: rgba(255,255,255,.045);
    border-color: rgba(148,163,184,.28);
    color: #e7edf7;
}

/* Dark theme: system-guest "welcome back" card must use the dark surface and readable text. */
html[data-theme="dark"] .nutrition-system-guest-card,
body.theme-dark .nutrition-system-guest-card,
body.dark-theme .nutrition-system-guest-card {
    border-color: rgba(113, 184, 133, .52);
    background: rgba(38, 92, 57, .26);
    color: #e6f4ea;
    box-shadow: 0 6px 18px rgba(0,0,0,.16);
}
html[data-theme="dark"] .nutrition-system-guest-card .nutrition-system-guest-title,
html[data-theme="dark"] .nutrition-system-guest-card .nutrition-system-guest-lead,
html[data-theme="dark"] .nutrition-system-guest-card .nutrition-guest-next,
html[data-theme="dark"] .nutrition-system-guest-card .nutrition-guest-unlock,
html[data-theme="dark"] .nutrition-system-guest-card dt,
html[data-theme="dark"] .nutrition-system-guest-card dd,
body.theme-dark .nutrition-system-guest-card .nutrition-system-guest-title,
body.theme-dark .nutrition-system-guest-card .nutrition-system-guest-lead,
body.theme-dark .nutrition-system-guest-card .nutrition-guest-next,
body.theme-dark .nutrition-system-guest-card .nutrition-guest-unlock,
body.theme-dark .nutrition-system-guest-card dt,
body.theme-dark .nutrition-system-guest-card dd,
body.dark-theme .nutrition-system-guest-card .nutrition-system-guest-title,
body.dark-theme .nutrition-system-guest-card .nutrition-system-guest-lead,
body.dark-theme .nutrition-system-guest-card .nutrition-guest-next,
body.dark-theme .nutrition-system-guest-card .nutrition-guest-unlock,
body.dark-theme .nutrition-system-guest-card dt,
body.dark-theme .nutrition-system-guest-card dd {
    color: #e6f4ea;
}
html[data-theme="dark"] .nutrition-system-guest-stats,
body.theme-dark .nutrition-system-guest-stats,
body.dark-theme .nutrition-system-guest-stats {
    border-color: rgba(129, 190, 146, .34);
    background: rgba(0,0,0,.18);
}
html[data-theme="dark"] .nutrition-system-guest-stats dl > div,
body.theme-dark .nutrition-system-guest-stats dl > div,
body.dark-theme .nutrition-system-guest-stats dl > div {
    border-bottom-color: rgba(129, 190, 146, .18);
}
html[data-theme="dark"] .nutrition-system-guest-card .nutrition-guest-next,
html[data-theme="dark"] .nutrition-system-guest-card .nutrition-guest-unlock,
body.theme-dark .nutrition-system-guest-card .nutrition-guest-next,
body.theme-dark .nutrition-system-guest-card .nutrition-guest-unlock,
body.dark-theme .nutrition-system-guest-card .nutrition-guest-next,
body.dark-theme .nutrition-system-guest-card .nutrition-guest-unlock {
    border-top-color: rgba(129, 190, 146, .24);
}

/* System guest: prominent but non-blocking browser-session risk entry point. */
.nutrition-system-guest-card {
    grid-template-columns: max-content minmax(0, 1fr) 84px;
}

/* Critical public hero fallback: this file is linked directly, while main.css
   is injected by theme.js and can briefly be stale during a rolling deploy. */
.landing-hero {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 250px;
    margin: 0 0 14px;
    overflow: hidden;
    border: 1px solid #8eb9ef;
    border-radius: 15px;
}
.landing-hero-training { background: #f4f9ff url('images/training_start_hero.webp') right center / cover no-repeat; }
.landing-hero-nutrition { background: #f4f9ff url('images/nutrition_hero_v2.webp') right center / cover no-repeat; }
.landing-hero-copy { position: relative; z-index: 1; width: 66%; padding: 22px 24px; }
.landing-hero h1, .landing-hero h2 { margin: 0 0 10px; color: #0b1730; font-size: clamp(26px,3vw,34px); line-height: 1.08; }
.landing-hero p { max-width: 580px; margin: 0 0 14px; color: var(--text-muted); line-height: 1.45; }
.landing-hero-features { display: flex; flex-wrap: wrap; gap: 12px 18px; }
.landing-hero-feature { display: inline-flex; align-items: center; gap: 8px; color: #0b1730; font-size: 13px; font-weight: 700; }
.landing-hero-feature img { width: 42px; height: 42px; flex: 0 0 42px; border-radius: 50%; object-fit: cover; box-shadow: 0 3px 10px rgba(42,78,122,.16); }
html[data-theme="dark"] .landing-hero::before, body.dark-theme .landing-hero::before { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(7,17,31,.98),rgba(7,17,31,.92) 42%,rgba(7,17,31,.54) 61%,rgba(7,17,31,.08) 82%); pointer-events:none; }
html[data-theme="dark"] .landing-hero h1, html[data-theme="dark"] .landing-hero h2, html[data-theme="dark"] .landing-hero-feature,
body.dark-theme .landing-hero h1, body.dark-theme .landing-hero h2, body.dark-theme .landing-hero-feature { color:#f3f6fb; }
html[data-theme="dark"] .landing-hero p, body.dark-theme .landing-hero p { color:#bac5d5; opacity:1; }
@media (max-width:700px) {
    .landing-hero { min-height:390px; align-items:flex-start; background-position:62% bottom; background-size:auto 62%; }
    .landing-hero-copy { width:100%; padding:20px 18px; background:linear-gradient(180deg,rgba(244,249,255,.98),rgba(244,249,255,.9) 70%,rgba(244,249,255,0)); }
    html[data-theme="dark"] .landing-hero::before, body.dark-theme .landing-hero::before { background:linear-gradient(180deg,rgba(7,17,31,.98),rgba(7,17,31,.92) 47%,rgba(7,17,31,.42) 68%,rgba(7,17,31,.08)); }
    html[data-theme="dark"] .landing-hero-copy, body.dark-theme .landing-hero-copy { background:none; }
    .landing-hero h1, .landing-hero h2 { font-size:27px; }
    .landing-hero-features { gap:8px 12px; }
    .landing-hero-feature { font-size:12px; }
    .landing-hero-feature img { width:38px; height:38px; flex-basis:38px; }
}

/* Unified Nutrition/Training first-use hero v2. */
.nutrition-welcome.landing-hero {
    display: flex;
    min-height: 250px;
    grid-template-columns: none;
    background: #f4f9ff url('images/nutrition_hero_v2.webp') right center / cover no-repeat;
}
.nutrition-welcome.landing-hero .nutrition-welcome-copy {
    width: 66%;
    padding: 22px 24px;
}
.nutrition-welcome.landing-hero h2 {
    font-size: clamp(26px, 3vw, 34px);
    color: #0b1730;
}
.nutrition-welcome.landing-hero .nutrition-welcome-features {
    gap: 12px 18px;
    margin-top: 0;
    flex-wrap: wrap;
}
.nutrition-welcome.landing-hero .nutrition-welcome-feature img {
    width: 42px;
    height: 42px;
    flex-basis: 42px;
    border-radius: 50%;
    object-fit: cover;
    box-shadow: 0 3px 10px rgba(42,78,122,.16);
}
html[data-theme="dark"] .nutrition-welcome.landing-hero h2,
body.dark-theme .nutrition-welcome.landing-hero h2 {
    color: #f3f6fb;
}
html[data-theme="dark"] .nutrition-welcome.landing-hero p,
body.dark-theme .nutrition-welcome.landing-hero p {
    color: #bac5d5;
    opacity: 1;
}
@media (max-width: 760px) {
    .nutrition-welcome.landing-hero {
        min-height: 390px;
        background-position: 62% bottom;
        background-size: auto 62%;
    }
    .nutrition-welcome.landing-hero .nutrition-welcome-copy {
        width: 100%;
        padding: 20px 18px;
        background: linear-gradient(180deg, rgba(244,249,255,.98) 0%, rgba(244,249,255,.9) 70%, rgba(244,249,255,0) 100%);
    }
    .nutrition-welcome.landing-hero .nutrition-welcome-features { gap: 8px 12px; }
    .nutrition-welcome.landing-hero .nutrition-welcome-feature img { width: 38px; height: 38px; flex-basis: 38px; }
}
.training-system-guest-card {
    grid-template-columns: minmax(0, 1fr) 84px;
}

/* Public nutrition/training landing parity. Kept in the domain stylesheet so
   the public pages stay aligned without changing the global site contract. */
.public-training-workspace {
    min-height: 220px;
}
.public-training-workspace > #app {
    min-width: 0;
}
.landing-hero::before {
    content: "";
    position: absolute;
    z-index: 0;
    inset: 0;
    background: linear-gradient(90deg, rgba(247,251,255,.99) 0%, rgba(247,251,255,.96) 43%, rgba(247,251,255,.76) 59%, rgba(247,251,255,0) 76%);
    pointer-events: none;
}
.landing-hero .landing-hero-copy,
.nutrition-welcome.landing-hero .nutrition-welcome-copy {
    position: relative;
    z-index: 1;
    box-sizing: border-box;
    width: 68%;
    padding: 22px 24px;
    font-family: inherit;
}
.landing-hero h1,
.landing-hero h2,
.nutrition-welcome.landing-hero h2 {
    max-width: 540px;
    margin: 0 0 10px;
    color: #0b1730;
    font-family: inherit;
    font-size: clamp(26px, 3vw, 34px);
    font-weight: 750;
    line-height: 1.08;
    letter-spacing: -.02em;
}
.landing-hero p,
.nutrition-welcome.landing-hero p {
    max-width: 510px;
    margin: 0 0 14px;
    color: #53647c;
    font-family: inherit;
    font-size: 14px;
    line-height: 1.45;
    opacity: 1;
}
.landing-hero-features,
.nutrition-welcome.landing-hero .nutrition-welcome-features {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 10px 14px;
    margin-top: 0;
}
.landing-hero-feature,
.nutrition-welcome.landing-hero .nutrition-welcome-feature {
    display: inline-flex;
    align-items: center;
    flex: 0 1 auto;
    gap: 7px;
    min-width: 0;
    color: #0b1730;
    font-family: inherit;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
}
.landing-hero-feature img,
.nutrition-welcome.landing-hero .nutrition-welcome-feature img {
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    border-radius: 50%;
    object-fit: cover;
}
html[data-theme="dark"] .landing-hero::before,
body.dark-theme .landing-hero::before {
    background: linear-gradient(90deg, rgba(7,17,31,.98) 0%, rgba(7,17,31,.92) 43%, rgba(7,17,31,.58) 61%, rgba(7,17,31,.08) 82%);
}
html[data-theme="dark"] .landing-hero h1,
html[data-theme="dark"] .landing-hero h2,
html[data-theme="dark"] .landing-hero-feature,
html[data-theme="dark"] .nutrition-welcome.landing-hero .nutrition-welcome-feature,
body.dark-theme .landing-hero h1,
body.dark-theme .landing-hero h2,
body.dark-theme .landing-hero-feature,
body.dark-theme .nutrition-welcome.landing-hero .nutrition-welcome-feature {
    color: #f3f6fb;
}
html[data-theme="dark"] .landing-hero p,
body.dark-theme .landing-hero p {
    color: #c0ccdc;
}
@media (max-width: 760px) {
    .landing-hero .landing-hero-copy,
    .nutrition-welcome.landing-hero .nutrition-welcome-copy {
        width: 100%;
        padding: 20px 18px;
    }
    .landing-hero-features,
    .nutrition-welcome.landing-hero .nutrition-welcome-features {
        flex-wrap: wrap;
        gap: 8px 12px;
    }
    .landing-hero-feature,
    .nutrition-welcome.landing-hero .nutrition-welcome-feature {
        font-size: 12px;
    }
    .landing-hero-feature img,
    .nutrition-welcome.landing-hero .nutrition-welcome-feature img {
        width: 36px;
        height: 36px;
        flex-basis: 36px;
    }
}
.nutrition-system-guest-risk-button {
    width: 84px;
    height: 84px;
    align-self: center;
    justify-self: end;
    padding: 4px;
    border: 1px solid rgba(167, 122, 0, .38);
    border-radius: 12px;
    background: rgba(255, 193, 7, .08);
    cursor: pointer;
    transition: transform .14s ease, background-color .14s ease, border-color .14s ease;
}
.nutrition-system-guest-risk-button:hover,
.nutrition-system-guest-risk-button:focus-visible {
    border-color: rgba(167, 122, 0, .66);
    background: rgba(255, 193, 7, .16);
    transform: translateY(-1px);
}
.nutrition-system-guest-risk-button:focus-visible {
    outline: 2px solid var(--focus-ring, #ff9800);
    outline-offset: 2px;
}
.nutrition-system-guest-risk-button img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.nutrition-guest-risk-modal-dialog {
    width: min(610px, 94vw);
}
.nutrition-guest-risk-modal-dialog p {
    line-height: 1.55;
}
.nutrition-guest-risk-storage {
    padding: 11px 13px;
    border-left: 3px solid #2f9d59;
    border-radius: 8px;
    background: rgba(47, 157, 89, .09);
    font-weight: 600;
}
.nutrition-guest-risk-cta {
    display: inline-flex;
    margin-top: 5px;
}
html[data-theme="dark"] .nutrition-system-guest-risk-button,
body.theme-dark .nutrition-system-guest-risk-button,
body.dark-theme .nutrition-system-guest-risk-button {
    border-color: rgba(245, 190, 50, .46);
    background: rgba(245, 190, 50, .10);
}
html[data-theme="dark"] .nutrition-system-guest-risk-button:hover,
html[data-theme="dark"] .nutrition-system-guest-risk-button:focus-visible,
body.theme-dark .nutrition-system-guest-risk-button:hover,
body.theme-dark .nutrition-system-guest-risk-button:focus-visible,
body.dark-theme .nutrition-system-guest-risk-button:hover,
body.dark-theme .nutrition-system-guest-risk-button:focus-visible {
    border-color: rgba(245, 190, 50, .72);
    background: rgba(245, 190, 50, .18);
}
@media (max-width: 720px) {
    .nutrition-system-guest-card {
        grid-template-columns: minmax(0, 1fr) 62px;
        gap: 7px 10px;
    }
    .nutrition-system-guest-stats,
    .nutrition-system-guest-copy { grid-column: 1; }
    .nutrition-system-guest-risk-button {
        grid-column: 2;
        grid-row: 1 / span 2;
        width: 62px;
        height: 62px;
        align-self: center;
    }
}


/* Unified "Your food" editor surface. */
.nutrition-editor-launcher {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 4px 0 14px;
}
.nutrition-editor-launch-button {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 42px;
    padding: 8px 15px;
    border: 1px solid #2e9d68;
    border-radius: 12px;
    background: color-mix(in srgb, transparent 78%, #42b77c 22%);
    color: inherit;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}
.nutrition-editor-launch-button:hover,
.nutrition-editor-launch-button:focus-visible {
    background: color-mix(in srgb, transparent 64%, #42b77c 36%);
}
.nutrition-editor-launch-button img {
    width: 24px;
    height: 24px;
    object-fit: contain;
}
.nutrition-unified-editor {
    padding: 12px;
    border-radius: 14px;
    margin: 4px 0 16px;
}
.nutrition-unified-editor-create {
    background: color-mix(in srgb, transparent 84%, #79c99a 16%);
}
.nutrition-unified-editor-edit {
    background: color-mix(in srgb, transparent 84%, #77a9e8 16%);
}
html[data-theme="dark"] .nutrition-unified-editor-create,
body.dark-theme .nutrition-unified-editor-create {
    background: color-mix(in srgb, transparent 86%, #2f9f68 14%);
}
html[data-theme="dark"] .nutrition-unified-editor-edit,
body.dark-theme .nutrition-unified-editor-edit {
    background: color-mix(in srgb, transparent 86%, #4d84c8 14%);
}
@media (max-width: 520px) {
    .nutrition-editor-launcher { display: grid; grid-template-columns: 1fr 1fr; }
    .nutrition-editor-launch-button { justify-content: center; padding-inline: 8px; }
}

/* Unified Your Food editor visibility contract: author display rules must never override [hidden]. */
.nutrition-editor-launcher[hidden],
.nutrition-unified-editor[hidden] {
    display: none !important;
}


/* Unified food library: editor/action visibility and own-source filters. */
.nutrition-unified-editor .nutrition-save-as-new-button[hidden] { display: none !important; }
.nutrition-food-source-my { cursor: pointer; user-select: none; transition: opacity .15s ease, background-color .15s ease, border-color .15s ease; }
.nutrition-food-source-my[aria-pressed="false"] { background: transparent; border-color: #c49a36; color: #7a5a12; opacity: .62; }
.nutrition-food-source-my[aria-pressed="true"] { background: #f3d98a; border-color: #c49a36; color: #5f4710; opacity: 1; }
.nutrition-food-source-my:hover { opacity: 1; }
html[data-theme="dark"] .nutrition-food-source-my[aria-pressed="false"], body.dark-theme .nutrition-food-source-my[aria-pressed="false"] { background: transparent; border-color: #b8943d; color: #e6ca75; }
html[data-theme="dark"] .nutrition-food-source-my[aria-pressed="true"], body.dark-theme .nutrition-food-source-my[aria-pressed="true"] { background: #8a6d28; border-color: #b8943d; color: #fff2bd; }

/* Recipe editor layout: one coherent editor fieldset; output mass belongs to the totals block. */
.nutrition-recipe-editor-fields { display:grid; gap:12px; }
.nutrition-recipe-editor-fields .nutrition-recipe-head { grid-template-columns:1fr; }
.nutrition-recipe-summary-output {
    grid-column:1 / -1;
    display:grid;
    grid-template-columns:minmax(220px,1fr) minmax(120px,220px);
    gap:10px 16px;
    align-items:center;
    margin-top:2px;
    padding-top:12px;
    border-top:1px solid color-mix(in srgb, var(--border-main, #9fb3cc) 70%, transparent);
}
.nutrition-recipe-summary-output > span { min-width:0; }
.nutrition-recipe-summary-output > input { width:100%; min-width:0; box-sizing:border-box; }
.nutrition-recipe-summary-output > .nutrition-inline-validation { grid-column:1 / -1; }
@media (max-width:680px) {
    .nutrition-recipe-summary-output { grid-template-columns:1fr; }
}


/* Recipe editor polish: full-width name and output-mass resync control. */
.nutrition-recipe-editor-fields .nutrition-recipe-name-field {
    width: 100%;
    max-width: none;
    grid-column: 1 / -1;
}
.nutrition-recipe-editor-fields .nutrition-recipe-name-field > input {
    width: 100%;
    max-width: none;
    box-sizing: border-box;
}
.nutrition-recipe-output-control {
    display: grid;
    grid-template-columns: 40px 128px;
    gap: 8px;
    align-items: center;
    justify-content: end;
    min-width: 0;
}
.nutrition-recipe-output-control > input {
    width: 128px;
    min-width: 0;
    box-sizing: border-box;
    text-align: right;
}
@media (max-width: 420px) {
    .nutrition-recipe-output-control {
        grid-template-columns: 38px 108px;
        gap: 6px;
    }
    .nutrition-recipe-output-control > input {
        width: 108px;
    }
    .nutrition-recipe-output-sync {
        width: 38px;
        height: 38px;
        min-width: 38px;
    }
}
.nutrition-recipe-output-sync {
    width: 40px;
    height: 40px;
    min-width: 40px;
    padding: 7px;
    display: inline-grid;
    place-items: center;
    border: 1px solid var(--border-main, #9fb3cc);
    border-radius: 9px;
    background: var(--surface-main, transparent);
    cursor: pointer;
}
.nutrition-recipe-output-sync img { width: 24px; height: 24px; object-fit: contain; }
.nutrition-recipe-output-sync:disabled { opacity: .38; cursor: default; }
.nutrition-recipe-output-sync:not(:disabled):hover { filter: brightness(.96); }


/* First-use welcome for an empty nutrition diary. */
.nutrition-welcome {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(210px, .65fr);
    min-height: 176px;
    margin: 4px 0 14px;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--border-main, #9fb3cc) 72%, #4f83e3 28%);
    border-radius: 16px;
    background:
        radial-gradient(circle at 79% 18%, rgba(79,131,227,.12), transparent 34%),
        color-mix(in srgb, var(--surface-bg, #fff) 92%, #eaf3ff 8%);
}
.nutrition-welcome[hidden] { display: none !important; }
.nutrition-welcome-copy {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    padding: 18px 12px 17px 24px;
}
.nutrition-welcome h2 {
    max-width: 560px;
    margin: 0;
    color: var(--text-main, #172033);
    font-size: clamp(1.42rem, 2.15vw, 2rem);
    line-height: 1.08;
    letter-spacing: -.025em;
}
.nutrition-welcome p {
    max-width: 610px;
    margin: 8px 0 0;
    color: var(--text-main, #172033);
    font-size: .9rem;
    line-height: 1.38;
    opacity: .76;
}
.nutrition-welcome-features {
    display: flex;
    align-items: center;
    gap: 10px 22px;
    flex-wrap: nowrap;
    margin-top: 14px;
}
.nutrition-welcome-feature {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
    color: var(--text-main, #172033);
    font-size: .88rem;
    font-weight: 650;
    white-space: nowrap;
}
.nutrition-welcome-feature img {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    object-fit: contain;
}
.nutrition-welcome-art {
    align-self: end;
    justify-self: end;
    width: min(100%, 320px);
    max-height: 176px;
    margin: 0 4px 0 auto;
    object-fit: contain;
    object-position: right bottom;
}

@media (max-width: 920px) and (min-width: 761px) {
    .nutrition-welcome { grid-template-columns: minmax(0, 1.65fr) minmax(190px, .55fr); }
    .nutrition-welcome-copy { padding-left: 20px; }
    .nutrition-welcome-features { gap: 8px 14px; }
    .nutrition-welcome-feature { font-size: .82rem; }
    .nutrition-welcome-feature img { width: 31px; height: 31px; flex-basis: 31px; }
    .nutrition-welcome-art { width: min(100%, 270px); max-height: 168px; }
}

@media (max-width: 760px) {
    .nutrition-welcome { grid-template-columns: 1fr; min-height: 0; }
    .nutrition-welcome-copy { padding: 18px 16px 14px; }
    .nutrition-welcome h2 { font-size: clamp(1.35rem, 6vw, 1.75rem); }
    .nutrition-welcome p { font-size: .87rem; }
    .nutrition-welcome-features { gap: 10px 16px; flex-wrap: wrap; margin-top: 14px; }
    .nutrition-welcome-feature { flex: 0 1 auto; font-size: .84rem; }
    .nutrition-welcome-feature img { width: 32px; height: 32px; flex-basis: 32px; }
    .nutrition-welcome-art { width: min(78%, 330px); max-height: 130px; margin: -10px auto 0; object-position: center bottom; }
}

/* Weak/fallback search results: deliberately a little less certain visually. */
.nutrition-library-result.is-weak-search-match,
.nutrition-recipe-food-results button.is-weak-search-match,
.nutrition-day-similar-card.is-weak-search-match,
.nutrition-food-card.is-weak-search-match > strong {
    color: color-mix(in srgb, var(--text-main, currentColor) 82%, #b55a5a 18%);
}

/* Nutrition item images: one stable square slot across library, diary and collections. */
.nutrition-item-image { display:inline-flex; width:56px; height:56px; min-width:56px; box-sizing:border-box; align-items:center; justify-content:center; align-self:center; justify-self:center; overflow:hidden; padding:3px; border:1px solid var(--border-main,#9fb3cc); border-radius:12px; background:var(--surface-bg-raised,#fff); color:var(--text-muted,#718096); }
button.nutrition-item-image { cursor:pointer; }
button.nutrition-item-image:hover, button.nutrition-item-image:focus-visible { border-color:var(--accent,#2874d0); box-shadow:0 0 0 2px color-mix(in srgb,var(--accent,#2874d0) 22%,transparent); }
.nutrition-item-image img { display:block; width:100%; height:100%; object-fit:contain; }
.nutrition-image-placeholder-mark { display:grid; width:38px; height:38px; place-items:center; border:1px dashed currentColor; border-radius:9px; font-size:25px; line-height:1; opacity:.62; }
.nutrition-food-card { grid-template-columns:64px minmax(180px,1.6fr) repeat(5,minmax(70px,.65fr)) auto; }
.nutrition-workspace[data-nutrition-view="foods"][data-show-ethanol="0"] .nutrition-food-card { grid-template-columns:64px minmax(180px,1.6fr) repeat(4,minmax(70px,.65fr)) auto; }
.nutrition-collection-preview-item { grid-template-columns:64px minmax(160px,1.5fr) repeat(4,minmax(60px,.55fr)); }
.nutrition-day-item-head, .nutrition-day-item { grid-template-columns:58px minmax(170px,1.5fr) repeat(3,minmax(56px,.55fr)) minmax(64px,.6fr) repeat(2,minmax(58px,.5fr)) 118px; }
.nutrition-workspace[data-nutrition-view="today"][data-show-ethanol="0"] .nutrition-day-item-head,
.nutrition-workspace[data-nutrition-view="today"][data-show-ethanol="0"] .nutrition-day-item { grid-template-columns:58px minmax(170px,1.5fr) repeat(3,minmax(56px,.55fr)) minmax(64px,.6fr) minmax(58px,.5fr) 118px; }
.nutrition-day-item.saved-macros-hidden,
.nutrition-workspace[data-nutrition-view="today"][data-show-ethanol="0"] .nutrition-day-item.saved-macros-hidden { grid-template-columns:58px minmax(170px,1.5fr) minmax(64px,.6fr) minmax(58px,.5fr) 118px; }
.nutrition-workspace[data-nutrition-view="today"][data-show-saved-macros="0"] .nutrition-day-item-head { grid-template-columns:58px minmax(170px,1.5fr) minmax(64px,.6fr) minmax(58px,.5fr) 118px; }
.nutrition-workspace[data-nutrition-view="today"][data-show-saved-macros="0"][data-show-ethanol="0"] .nutrition-day-item-head { grid-template-columns:58px minmax(170px,1.5fr) minmax(64px,.6fr) minmax(58px,.5fr) 118px; }
.nutrition-image-dialog { width:min(780px,95vw); }
.nutrition-image-dialog .nutrition-dialog-card { width:auto; max-width:none; height:min(88vh,850px); max-height:min(88vh,850px); box-sizing:border-box; overflow:hidden; grid-template-rows:auto minmax(0,1fr) auto auto; }
.nutrition-image-dialog-header { display:grid; gap:8px; }
.nutrition-image-hint { margin:0 0 10px; opacity:.78; }
.nutrition-image-scroll-area { min-height:0; overflow-y:auto; overflow-x:hidden; padding-right:4px; overscroll-behavior:contain; }
.nutrition-image-custom-section,.nutrition-image-recommended-section,.nutrition-image-standard-section { display:grid; gap:8px; }
.nutrition-image-custom-section[hidden],.nutrition-image-recommended-section[hidden] { display:none !important; }
.nutrition-image-custom-section,.nutrition-image-recommended-section { margin-bottom:14px; }
.nutrition-image-type-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(62px,1fr)); align-content:start; gap:7px; }
.nutrition-image-custom-item { position:relative; display:block; min-width:0; }
.nutrition-image-custom-item > .nutrition-image-type { width:100%; }
.nutrition-image-custom-delete { position:absolute; z-index:2; top:-6px; right:-6px; display:grid; width:24px; height:24px; min-width:24px; min-height:24px; place-items:center; padding:2px; border:1px solid var(--border-main,#9fb3cc); border-radius:50%; background:var(--surface-bg-raised,#fff); cursor:pointer; box-shadow:0 1px 4px rgba(0,0,0,.22); }
.nutrition-image-custom-delete img { display:block; width:18px; height:18px; object-fit:contain; }
.nutrition-image-custom-delete:hover,.nutrition-image-custom-delete:focus-visible { border-color:var(--accent,#2874d0); background:var(--surface-overlay-hover,rgba(140,153,170,.18)); }
.nutrition-image-custom-delete:disabled { opacity:.45; cursor:wait; }
.nutrition-image-type { min-height:62px; padding:4px; border:1px solid var(--border-main,#9fb3cc); border-radius:11px; background:var(--surface-bg-raised,#fff); cursor:pointer; }
.nutrition-image-type img { display:block; width:52px; height:52px; margin:auto; object-fit:contain; }
.nutrition-image-type:hover, .nutrition-image-type:focus-visible, .nutrition-image-type.is-selected { border-color:var(--accent,#2874d0); background:color-mix(in srgb,var(--accent,#2874d0) 11%,var(--surface-bg-raised,#fff)); }
.nutrition-image-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.nutrition-image-crop { display:grid; justify-items:center; gap:12px; margin-top:12px; }
.nutrition-image-crop[hidden] { display:none; }
.nutrition-image-transform-editor { display:grid; grid-template-columns:88px minmax(240px,384px) 92px; grid-template-rows:58px minmax(240px,384px); align-items:stretch; justify-content:center; width:min(584px,94vw); }
.nutrition-image-axis-caption { grid-column:1; grid-row:1; align-self:center; justify-self:center; margin:0 0 2px 8px; transform:rotate(-45deg); transform-origin:center; font-size:13px; font-weight:700; white-space:nowrap; }
.nutrition-image-crop canvas { grid-column:2; grid-row:2; display:block; width:100%; height:auto; max-width:384px; aspect-ratio:1; touch-action:none; border:1px solid var(--border-main,#9fb3cc); border-radius:12px; background:repeating-conic-gradient(rgba(120,130,145,.12) 0 25%,transparent 0 50%) 50%/18px 18px; }
.nutrition-image-slider-control { display:flex; align-items:center; gap:7px; min-width:0; }
.nutrition-image-slider-control > input[type="range"] { min-width:0; flex:1 1 auto; }
.nutrition-image-control-label { flex:0 0 auto; font-weight:700; white-space:nowrap; }
.nutrition-image-value-field { display:inline-flex; flex:0 0 auto; align-items:center; gap:2px; font-size:12px; }
.nutrition-image-value-field input { width:48px; min-width:0; box-sizing:border-box; padding:3px 4px; border:1px solid var(--border-main,#9fb3cc); border-radius:6px; background:var(--control-bg,var(--surface-bg-raised,#fff)); color:inherit; text-align:right; font:inherit; }
.nutrition-image-scale-x-control { grid-column:2; grid-row:1; align-self:end; padding:0 0 10px; }
.nutrition-image-scale-y-control { grid-column:1; grid-row:2; position:relative; flex-direction:column; justify-content:center; padding:0 8px 0 0; }
.nutrition-image-scale-y-control > input[type="range"] { width:280px; max-width:72vw; flex:0 0 auto; transform:rotate(-90deg); }
.nutrition-image-scale-y-control .nutrition-image-control-label { position:absolute; top:2px; left:24px; }
.nutrition-image-scale-y-control .nutrition-image-value-field { position:absolute; bottom:0; right:10px; }
.nutrition-image-side-controls { grid-column:3; grid-row:2; display:grid; grid-template-rows:minmax(210px,1fr) repeat(3,44px); justify-items:center; align-items:center; row-gap:18px; min-height:0; padding-left:10px; }
.nutrition-image-rotation-control { position:relative; width:78px; min-height:210px; height:100%; flex-direction:column; justify-content:center; }
.nutrition-image-rotation-control > input[type="range"] { position:absolute; top:42%; left:50%; width:180px; max-width:52vw; transform:translate(-50%,-50%) rotate(-90deg); }
.nutrition-image-rotation-control .nutrition-image-control-label { position:absolute; top:50%; right:-6px; transform:translateY(-50%) rotate(-90deg); }
.nutrition-image-rotation-control .nutrition-image-value-field { position:absolute; bottom:14px; left:50%; transform:translateX(-50%); }
.nutrition-image-transform-button { display:grid; width:44px; height:44px; min-width:44px; min-height:44px; place-items:center; padding:4px; border:1px solid var(--border-main,#9fb3cc); border-radius:10px; background:var(--surface-overlay-soft,rgba(140,153,170,.10)); color:inherit; cursor:pointer; }
.nutrition-image-transform-button img { display:block; width:34px; height:34px; object-fit:contain; }
.nutrition-image-transform-button[aria-pressed="true"] { border-color:var(--accent,#2874d0); background:color-mix(in srgb,var(--accent,#2874d0) 18%,var(--surface-bg-raised,#fff)); box-shadow:inset 0 0 0 1px var(--accent,#2874d0); }
.nutrition-image-transform-button:hover,.nutrition-image-transform-button:focus-visible { background:var(--surface-overlay-hover,rgba(140,153,170,.18)); }
.nutrition-image-transform-button .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; }
.nutrition-image-scale-xy-control { width:min(500px,90vw); }
.nutrition-image-scale-xy-control > input[type="range"] { flex:1 1 auto; }
.nutrition-image-background-options { display:flex; width:min(500px,90vw); align-items:center; justify-content:center; flex-wrap:wrap; gap:8px 18px; }
.nutrition-image-background-options .nutrition-switch { width:auto; gap:7px; cursor:pointer; }
.nutrition-image-background-options .nutrition-switch input { margin:0; }
.nutrition-image-background-options .nutrition-switch:has(input:disabled) span:last-child { opacity:.48; }
@media (max-width:640px) {
    .nutrition-image-transform-editor { grid-template-columns:64px minmax(190px,1fr) 66px; grid-template-rows:54px auto; width:min(100%,94vw); }
    .nutrition-image-axis-caption { margin-left:4px; font-size:11px; }
    .nutrition-image-value-field input { width:42px; }
    .nutrition-image-scale-y-control { padding-right:4px; }
    .nutrition-image-scale-y-control > input[type="range"] { width:210px; }
    .nutrition-image-rotation-control > input[type="range"] { width:145px; max-width:46vw; }
    .nutrition-image-side-controls { grid-template-rows:minmax(170px,1fr) repeat(3,38px); padding-left:5px; row-gap:14px; }
    .nutrition-image-rotation-control { width:58px; min-height:170px; }
    .nutrition-image-rotation-control .nutrition-image-control-label { right:-10px; font-size:11px; }
    .nutrition-image-rotation-control .nutrition-image-value-field { bottom:10px; }
    .nutrition-image-transform-button { width:38px; height:38px; min-width:38px; min-height:38px; }
    .nutrition-image-transform-button img { width:30px; height:30px; }
    .nutrition-image-scale-x-control { gap:4px; }
    .nutrition-image-scale-x-control .nutrition-image-value-field,.nutrition-image-scale-y-control .nutrition-image-value-field,.nutrition-image-rotation-control .nutrition-image-value-field { font-size:11px; }
}

@media (max-width:760px) {
    .nutrition-food-card, .nutrition-workspace[data-nutrition-view="foods"][data-show-ethanol="0"] .nutrition-food-card { grid-template-columns:56px repeat(4,minmax(0,1fr)) auto; }
    .nutrition-food-card > .nutrition-item-image { grid-column:1; grid-row:1 / 3; }
    .nutrition-food-card > strong { grid-column:2 / -1; }
    .nutrition-collection-preview-item { grid-template-columns:56px 1fr 1fr; }
    .nutrition-collection-preview-item > strong { grid-column:2 / -1; }
    .nutrition-day-item { grid-template-columns:56px repeat(6,minmax(0,1fr)) auto; }
    .nutrition-workspace[data-nutrition-view="today"][data-show-ethanol="0"] .nutrition-day-item { grid-template-columns:56px repeat(5,minmax(0,1fr)) auto; }
    .nutrition-day-item.saved-macros-hidden,
    .nutrition-workspace[data-nutrition-view="today"][data-show-ethanol="0"] .nutrition-day-item.saved-macros-hidden,
    .nutrition-workspace[data-nutrition-view="today"][data-show-saved-macros="0"] .nutrition-day-item.saved-macros-hidden,
    .nutrition-workspace[data-nutrition-view="today"][data-show-saved-macros="0"][data-show-ethanol="0"] .nutrition-day-item.saved-macros-hidden { grid-template-columns:56px minmax(0,1fr) minmax(58px,.5fr) auto; }
    .nutrition-day-item > .nutrition-item-image { grid-column:1; grid-row:1 / 3; }
    .nutrition-day-item > .nutrition-day-field[data-field="name"] { grid-column:2 / -1; }
    .nutrition-day-item .nutrition-day-item-actions {
        grid-column:auto;
        align-self:center;
        justify-self:end;
        justify-content:flex-end;
    }
}

/* Primary nutrition lists: keep image-bearing cards dense without changing their controls. */
.nutrition-food-card {
    grid-template-columns:56px minmax(180px,1.6fr) repeat(5,minmax(70px,.65fr)) auto;
    padding:0 12px 0 0;
}
.nutrition-workspace[data-nutrition-view="foods"][data-show-ethanol="0"] .nutrition-food-card {
    grid-template-columns:56px minmax(180px,1.6fr) repeat(4,minmax(70px,.65fr)) auto;
}
.nutrition-food-card.has-badges { padding-bottom:27px; }
.nutrition-day-item { padding:0 8px 0 0; }
.nutrition-item-image { padding:0; }
.nutrition-food-metric-value { display:block; font-size:1.2em; line-height:1.08; font-weight:700; }
.nutrition-library-result .nutrition-suggestion-item-image,
.nutrition-day-similar-card .nutrition-suggestion-item-image {
    flex:0 0 auto;
    border-radius:4px;
}

@media (max-width:760px) {
    .nutrition-food-card,
    .nutrition-workspace[data-nutrition-view="foods"][data-show-ethanol="0"] .nutrition-food-card { grid-template-columns:56px repeat(4,minmax(0,1fr)) auto; }
    .nutrition-day-item { padding-left:0; }
}

@media (max-width:680px) {
    .nutrition-food-card,
    .nutrition-workspace[data-nutrition-view="foods"][data-show-ethanol="0"] .nutrition-food-card { padding-left:0; }
    .nutrition-workspace[data-nutrition-view="foods"] .nutrition-food-card.has-badges { padding-bottom:8px; }
}

/* N-settings UX: calculation mode leads the dependency flow; keep the business forms intact. */
.nutrition-calculation-mode-panel {
    margin-top: 10px;
}
.nutrition-calculation-mode-panel > fieldset {
    position: relative;
    display: grid;
    gap: 10px;
    margin: 20px 0 0;
    padding: 26px 14px 14px;
    border: 1px solid var(--border-main, #9fb3cc);
    border-radius: 12px;
}
.nutrition-calculation-mode-panel > fieldset > legend {
    position: absolute;
    top: 0;
    left: 14px;
    z-index: 1;
    width: auto;
    margin: 0;
    padding: 4px 13px;
    border: 1px solid var(--border-main, #9fb3cc);
    border-radius: 999px;
    background: var(--surface-bg, #f7faff);
    transform: translateY(-50%);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.1;
    white-space: nowrap;
}
.nutrition-mode-switch-primary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    padding: 0;
}
.nutrition-mode-switch-primary .nutrition-mode-option { display: block; min-width: 0; }
.nutrition-mode-switch-primary .nutrition-mode-option > span {
    display: flex;
    box-sizing: border-box;
    min-height: 42px;
    height: 100%;
    align-items: center;
    justify-content: center;
    padding: 7px 12px;
    text-align: center;
    font-weight: 700;
    line-height: 1.2;
}
.nutrition-mode-required-hint {
    margin: -2px 0 0;
    color: var(--text-muted, #64748b);
    font-size: .82rem;
}
.nutrition-mode-explanations {
    overflow: hidden;
    border: 1px solid var(--border-overlay, rgba(140,153,170,.35));
    border-radius: 10px;
    background: var(--surface-overlay-subtle, rgba(127,127,127,.035));
}
.nutrition-mode-explanations > summary {
    padding: 7px 10px;
    cursor: pointer;
    font-size: .88rem;
    font-weight: 700;
}
.nutrition-mode-description {
    min-width: 0;
    padding: 9px 10px;
    border: 1px solid var(--border-overlay, rgba(140,153,170,.25));
    border-radius: 9px;
    background: var(--surface-bg-raised, rgba(255,255,255,.35));
}
.nutrition-mode-description-current {
    margin: 0 8px 8px;
    border-color: var(--accent-border, #2b67e8);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent-border, #2b67e8) 30%, transparent);
}
.nutrition-mode-description strong { display: block; margin-bottom: 4px; font-size: .88rem; }
.nutrition-mode-description p { margin: 0; color: var(--text-muted, #64748b); font-size: .82rem; line-height: 1.4; }

/* Mode dependencies: replace the noisy forest of asterisks with contextual highlighting. */
.nutrition-workspace[data-nutrition-view="settings"] .is-mode-required > span:first-child,
.nutrition-workspace[data-nutrition-view="settings"] .nutrition-macro-row.is-mode-required > strong,
.nutrition-workspace[data-nutrition-view="settings"] .nutrition-strength-shell.is-mode-required .nutrition-strength-heading {
    font-weight: 800;
    color: var(--accent-text, #1769d2);
}
.nutrition-workspace[data-nutrition-view="settings"] label.is-mode-required input:not([type="checkbox"]):not([type="radio"]),
.nutrition-workspace[data-nutrition-view="settings"] label.is-mode-required select,
.nutrition-workspace[data-nutrition-view="settings"] .nutrition-macro-row.is-mode-required input:not([readonly]),
.nutrition-workspace[data-nutrition-view="settings"] .nutrition-macro-row.is-mode-required select {
    border-color: color-mix(in srgb, var(--accent-border, #2b67e8) 76%, var(--input-border, #9fb3cc));
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent-border, #2b67e8) 20%, transparent);
}
.nutrition-workspace[data-nutrition-view="settings"] .nutrition-macro-row.is-mode-required {
    border-radius: 9px;
    background: color-mix(in srgb, var(--accent-soft, rgba(43,103,232,.12)) 34%, transparent);
}

/* Compact the high-frequency settings form without collapsing its semantic sections. */
.nutrition-workspace[data-nutrition-view="settings"] .nutrition-settings-form input[type="number"],
.nutrition-workspace[data-nutrition-view="settings"] .nutrition-settings-form input[type="date"],
.nutrition-workspace[data-nutrition-view="settings"] .nutrition-settings-form select,
.nutrition-workspace[data-nutrition-view="settings"] .nutrition-weight-form input[type="number"],
.nutrition-workspace[data-nutrition-view="settings"] .nutrition-weight-form input[type="date"] {
    min-height: 34px;
    height: 34px;
    padding: 5px 8px;
}
.nutrition-workspace[data-nutrition-view="settings"] .nutrition-context-note {
    margin: 0;
    padding: 7px 9px;
    line-height: 1.3;
}
.nutrition-workspace[data-nutrition-view="settings"] .nutrition-settings-form fieldset {
    gap: 9px;
    padding-bottom: 11px;
}
.nutrition-workspace[data-nutrition-view="settings"] .nutrition-energy-grid,
.nutrition-workspace[data-nutrition-view="settings"] .nutrition-weight-editor { gap: 8px 10px; }

@media (max-width: 720px) {
    /* Root section names must stay visible on phones. Earlier generic rules are intentionally overridden. */
    .nutrition-workspace[data-nutrition-view="settings"] .nutrition-settings-panel {
        border: 1px solid var(--border-main, #9fb3cc) !important;
        border-radius: 11px !important;
        overflow: hidden !important;
        background: var(--surface-main, transparent) !important;
        margin-top: 10px !important;
    }
    .nutrition-workspace[data-nutrition-view="settings"] .nutrition-settings-panel > summary {
        display: block !important;
        padding: 8px 11px;
        background: var(--surface-bg-soft, rgba(255,255,255,.34));
        font-weight: 800;
        cursor: pointer;
    }
    .nutrition-workspace[data-nutrition-view="settings"] .nutrition-settings-panel > .nutrition-settings-form {
        padding: 8px 9px 9px !important;
    }
    .nutrition-workspace[data-nutrition-view="settings"] .nutrition-settings-panel > .nutrition-settings-form fieldset {
        margin: 0;
        padding: 0;
        border: 0;
    }
    .nutrition-workspace[data-nutrition-view="settings"] .nutrition-settings-panel > .nutrition-settings-form fieldset > legend {
        display: none !important;
    }

    .nutrition-calculation-mode-panel {
        margin-top: 10px;
        border: 1px solid var(--border-main, #9fb3cc);
        border-radius: 11px;
        overflow: hidden;
    }
    .nutrition-calculation-mode-panel > fieldset {
        margin: 0;
        padding: 9px;
        border: 0;
        border-radius: 0;
    }
    .nutrition-calculation-mode-panel > fieldset > legend {
        position: static;
        display: block;
        width: calc(100% + 18px);
        max-width: none;
        margin: -9px -9px 0;
        padding: 8px 11px;
        border: 0;
        border-bottom: 1px solid var(--border-overlay, rgba(140,153,170,.22));
        border-radius: 0;
        background: var(--surface-bg-soft, rgba(255,255,255,.34));
        transform: none;
        white-space: normal;
        font-size: inherit;
        font-weight: 800;
    }
    .nutrition-mode-switch-primary { grid-template-columns: 1fr; gap: 6px; }
    .nutrition-mode-switch-primary .nutrition-mode-option > span { min-height: 35px; justify-content: flex-start; text-align: left; padding: 6px 10px; }

    /* Two useful columns are viable on typical phone widths; long activity selector gets the full row. */
    .nutrition-workspace[data-nutrition-view="settings"] .nutrition-weight-editor,
    .nutrition-workspace[data-nutrition-view="settings"] .nutrition-energy-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 7px 8px;
    }
    .nutrition-workspace[data-nutrition-view="settings"] .nutrition-energy-grid .nutrition-energy-activity-field {
        grid-column: 1 / -1;
    }
    .nutrition-workspace[data-nutrition-view="settings"] .nutrition-energy-grid label,
    .nutrition-workspace[data-nutrition-view="settings"] .nutrition-weight-editor label { gap: 3px; }

    /* Strength-training editor: controls stay inside the card and Sunday obeys the same grid as every other day. */
    .nutrition-strength-shell { margin-top: 18px; }
    .nutrition-strength-settings { padding: 11px 8px 8px !important; }
    .nutrition-strength-fields { grid-template-columns: minmax(0, 1fr); gap: 8px; }
    .nutrition-strength-numbers { grid-template-columns: minmax(0, 1fr); gap: 6px; }
    .nutrition-strength-numbers label {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 58px;
        gap: 7px;
        align-items: center;
    }
    .nutrition-strength-numbers input { width: 58px; max-width: 100%; }
    .nutrition-strength-distribution { margin-top: 8px; gap: 5px; }
    .nutrition-strength-distribution label { display: flex; align-items: flex-start; gap: 6px; }
    .nutrition-training-week {
        grid-template-columns: repeat(7, minmax(0, 1fr));
        gap: 4px;
        padding: 6px;
    }
    .nutrition-training-week label { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2px; min-width: 0; }
    .nutrition-training-week label span { grid-column: auto !important; text-align: center !important; font-size: .8rem; }
    .nutrition-training-week label input,
    .nutrition-training-week .nutrition-training-sunday input { grid-column: auto !important; width: 100% !important; min-width: 0; min-height: 25px !important; height: 25px !important; padding: 1px 2px !important; }
    .nutrition-training-week > p { order: 0; }
    .nutrition-training-week [data-training-day="1"] { order: 1; }
    .nutrition-training-week [data-training-day="2"] { order: 2; }
    .nutrition-training-week [data-training-day="3"] { order: 3; }
    .nutrition-training-week [data-training-day="4"] { order: 4; }
    .nutrition-training-week [data-training-day="5"] { order: 5; }
    .nutrition-training-week [data-training-day="6"] { order: 6; }
    .nutrition-training-week [data-training-day="7"] { order: 7; }
    .nutrition-training-week > [role="alert"] { order: 8; }

    /* Daily targets: keep numeric values, assessment and basis on one compact line. */
    .nutrition-workspace[data-nutrition-view="settings"] .nutrition-macro-row {
        grid-template-columns: minmax(64px, .85fr) minmax(58px, .75fr) 28px minmax(92px, 1fr);
        gap: 5px;
        padding: 7px 4px;
    }
    .nutrition-workspace[data-nutrition-view="settings"] .nutrition-macro-row > strong { grid-column: 1 / -1; }
    .nutrition-workspace[data-nutrition-view="settings"] .nutrition-macro-assessment {
        grid-column: auto;
        justify-content: center;
    }
    .nutrition-workspace[data-nutrition-view="settings"] .nutrition-rate-control { min-width: 0; }
    .nutrition-workspace[data-nutrition-view="settings"] .nutrition-rate-control input { min-width: 0; }
    .nutrition-workspace[data-nutrition-view="settings"] .nutrition-kcal-field {
        grid-template-columns: minmax(90px, 1fr) minmax(90px, .9fr);
    }
    .nutrition-workspace[data-nutrition-view="settings"] .nutrition-kcal-field > strong { grid-column: 1; }
    .nutrition-workspace[data-nutrition-view="settings"] .nutrition-kcal-hint { grid-column: 1 / -1; }
}

@media (max-width: 360px) {
    .nutrition-workspace[data-nutrition-view="settings"] .nutrition-weight-editor { grid-template-columns: 1fr; }
    .nutrition-workspace[data-nutrition-view="settings"] .nutrition-energy-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .nutrition-workspace[data-nutrition-view="settings"] .nutrition-energy-grid .nutrition-energy-activity-field { grid-column: 1 / -1; }
}

/* N-settings UX: persistent hint visibility, global collapsible sections and collapsed dirty-save affordance. */
.nutrition-settings-display-controls {
    display: flex;
    justify-content: flex-end;
    margin: 2px 0 10px;
    padding: 0 2px;
}
.nutrition-settings-hints-hidden .nutrition-context-note { display: none !important; }

.nutrition-workspace[data-nutrition-view="settings"] .nutrition-settings-panel,
.nutrition-workspace[data-nutrition-view="settings"] .nutrition-calculation-mode-panel {
    border: 1px solid var(--border-main, #9fb3cc) !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    background: var(--surface-main, transparent) !important;
    margin-top: 10px !important;
}
.nutrition-workspace[data-nutrition-view="settings"] .nutrition-settings-panel > summary,
.nutrition-workspace[data-nutrition-view="settings"] .nutrition-calculation-mode-panel > summary {
    display: flex !important;
    align-items: center;
    gap: 8px;
    min-height: 38px;
    box-sizing: border-box;
    padding: 8px 11px !important;
    list-style: none;
    cursor: pointer;
    background: var(--surface-bg-soft, rgba(255,255,255,.34));
    font-weight: 800;
    user-select: none;
}
.nutrition-workspace[data-nutrition-view="settings"] .nutrition-settings-panel > summary::-webkit-details-marker,
.nutrition-workspace[data-nutrition-view="settings"] .nutrition-calculation-mode-panel > summary::-webkit-details-marker { display: none; }
.nutrition-workspace[data-nutrition-view="settings"] .nutrition-settings-panel > summary > span:first-child,
.nutrition-workspace[data-nutrition-view="settings"] .nutrition-calculation-mode-panel > summary > span:first-child { flex: 1 1 auto; min-width: 0; }
.nutrition-workspace[data-nutrition-view="settings"] .nutrition-settings-panel > summary::after,
.nutrition-workspace[data-nutrition-view="settings"] .nutrition-calculation-mode-panel > summary::after {
    content: "+";
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    display: inline-grid;
    place-items: center;
    border: 1px solid var(--border-overlay, rgba(140,153,170,.35));
    border-radius: 999px;
    line-height: 1;
    font-size: 16px;
    font-weight: 800;
}
.nutrition-workspace[data-nutrition-view="settings"] .nutrition-settings-panel[open] > summary::after,
.nutrition-workspace[data-nutrition-view="settings"] .nutrition-calculation-mode-panel[open] > summary::after { content: "−"; }

.nutrition-workspace[data-nutrition-view="settings"] .nutrition-settings-panel > .nutrition-settings-form {
    padding: 9px 11px 11px !important;
}
.nutrition-workspace[data-nutrition-view="settings"] .nutrition-settings-panel > .nutrition-settings-form fieldset {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}
.nutrition-workspace[data-nutrition-view="settings"] .nutrition-settings-panel > .nutrition-settings-form fieldset > legend { display: none !important; }

.nutrition-workspace[data-nutrition-view="settings"] .nutrition-calculation-mode-panel > fieldset {
    margin: 0 !important;
    padding: 10px 11px 11px !important;
    border: 0 !important;
    border-radius: 0 !important;
}
.nutrition-workspace[data-nutrition-view="settings"] .nutrition-calculation-mode-panel > fieldset > legend { display: none !important; }

.nutrition-panel-mini-save {
    flex: 0 0 auto;
    width: 28px;
    height: 28px;
    padding: 3px;
    border: 1px solid var(--accent-border, #2b67e8);
    border-radius: 7px;
    background: color-mix(in srgb, var(--accent-soft, rgba(43,103,232,.14)) 70%, transparent);
    cursor: pointer;
}
.nutrition-panel-mini-save[hidden] { display: none !important; }
.nutrition-panel-mini-save img { display: block; width: 100%; height: 100%; object-fit: contain; }

.nutrition-mode-switch-primary .nutrition-mode-option input:checked + span::before {
    content: "✅";
    flex: 0 0 auto;
    margin-right: 6px;
    font-size: .95em;
    line-height: 1;
}

@media (max-width: 720px) {
    .nutrition-settings-display-controls { justify-content: flex-start; margin-bottom: 8px; }
    .nutrition-workspace[data-nutrition-view="settings"] .nutrition-settings-panel > summary,
    .nutrition-workspace[data-nutrition-view="settings"] .nutrition-calculation-mode-panel > summary { min-height: 36px; padding: 7px 9px !important; }
    .nutrition-workspace[data-nutrition-view="settings"] .nutrition-settings-panel > .nutrition-settings-form { padding: 8px 9px 9px !important; }
    .nutrition-workspace[data-nutrition-view="settings"] .nutrition-calculation-mode-panel > fieldset { padding: 8px 9px 9px !important; }
}

/* Today diary: safer destructive actions, duplicated long-list add controls and adaptive suggestions. */
.nutrition-day-add-zone { position: relative; }
.nutrition-day-add-zone-bottom { margin: 10px 0 4px; }
.nutrition-day-library-results.is-drop-up { position: absolute; left: 0; right: 0; bottom: calc(100% + 4px); z-index: 35; max-height: min(240px, 42vh); overflow-y: auto; background: var(--surface-main, #fff); box-shadow: 0 8px 24px rgba(15,23,42,.18); }
.nutrition-day-item { position: relative; }
.nutrition-delete-confirm { position: absolute; right: 8px; top: 8px; z-index: 12; display: flex; align-items: center; gap: 8px; max-width: calc(100% - 16px); padding: 6px 8px; border: 1px solid var(--border-main, #9fb3cc); border-radius: 9px; background: var(--surface-main, #fff); box-shadow: 0 5px 16px rgba(15,23,42,.18); font-size: 13px; }
.nutrition-delete-confirm-button { min-height: 30px; padding: 4px 10px; white-space: nowrap; }
html[data-theme="dark"] .nutrition-day-library-results.is-drop-up,
html[data-theme="dark"] .nutrition-delete-confirm,
body.dark-theme .nutrition-day-library-results.is-drop-up,
body.dark-theme .nutrition-delete-confirm,
body.theme-dark .nutrition-day-library-results.is-drop-up,
body.theme-dark .nutrition-delete-confirm { background: var(--surface-main, #0b1320); }
@media (max-width: 680px) {
    .nutrition-day-library-results.is-drop-up { max-height: min(210px, 34vh); }
    .nutrition-delete-confirm { left: 8px; right: 8px; justify-content: space-between; }
}

/* Trainer nutrition T2: diary/history are strictly read-only. */
.nutrition-trainer-readonly-note {
    display: flex;
    gap: .45rem;
    align-items: baseline;
    flex-wrap: wrap;
    margin: 0 0 .75rem;
    padding: .65rem .8rem;
    border-left: 3px solid currentColor;
    background: var(--panel-muted, rgba(120, 140, 170, .10));
}
.nutrition-trainer-readonly .nutrition-day-add-zone,
.nutrition-trainer-readonly #nutrition-day-section-tools,
.nutrition-trainer-readonly #nutrition-fill-advice,
.nutrition-trainer-readonly #nutrition-fill-debug,
.nutrition-trainer-readonly #nutrition-day-save,
.nutrition-trainer-readonly #nutrition-day-edit-history,
.nutrition-trainer-readonly #nutrition-day-delete-history,
.nutrition-trainer-readonly #nutrition-day-edit-save,
.nutrition-trainer-readonly #nutrition-day-edit-cancel,
.nutrition-trainer-readonly .nutrition-day-item-actions {
    display: none !important;
}
.nutrition-trainer-readonly .nutrition-day-item-head > :last-child {
    display: none;
}
.nutrition-trainer-readonly .nutrition-day-item input:disabled {
    opacity: 1;
    cursor: default;
}

/* Trainer nutrition T3: athlete weight stays visible but self-managed. */
.nutrition-settings-panel-readonly input[readonly] {
    background: rgba(148, 163, 184, .12);
    cursor: default;
}
.nutrition-trainer-weight-readonly-note {
    border-style: dashed;
}

/* Trainer nutrition access state: keep the shared trainer switcher usable without loading athlete data. */
.nutrition-trainer-access-denied {
    display: grid;
    gap: .55rem;
    max-width: 920px;
    margin: 1rem auto;
}
.nutrition-trainer-access-denied h2,
.nutrition-trainer-access-denied p {
    margin: 0;
}


