/* Nutrition: a compact entry workspace, with reports available on demand. */
.wb-nutrition.page-nutrition { overflow: visible; display: flex; flex-direction: column; gap: 18px; }
.wb-nutrition .wb-header { margin-bottom: 0; }
.wb-nutrition .nu-toolbar-controls { gap: 12px; }
.wb-nutrition .nu-date-nav { display: flex; align-items: center; gap: 4px; min-width: 0; }
.wb-nutrition #nuToday { font-variant-numeric: tabular-nums; font-weight: 500; }
.wb-nutrition .nu-tools { position: relative; }
.wb-nutrition .nu-tools > summary { display: flex; gap: 8px; align-items: center; min-height: 44px; padding: 8px 10px; font-size: .875rem; cursor: pointer; color: var(--text-dim); }
.wb-nutrition .nu-tool-options { position: absolute; top: calc(100% + 6px); right: 0; z-index: 12; display: grid; gap: 6px; width: 280px; max-width: calc(100vw - 40px); padding: 10px; border: 1px solid var(--border); border-radius: 9px; background: var(--panel); box-shadow: 0 8px 24px #0002; }
.wb-nutrition .nu-tool-options .btn { justify-content: flex-start; text-align: left; }
.wb-nutrition #nuGrid.nu-workspace { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(310px, 1fr) !important; gap: 18px; align-items: start; }
.wb-nutrition .nu-workspace > * { min-width: 0; }
.wb-nutrition .nu-composer { border-top: 3px solid var(--accent); }
.wb-nutrition .nu-summary { background: var(--bg-2); }
.wb-nutrition .nu-slot-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; padding: 0; margin-bottom: 12px; border: 0; background: transparent; }
.wb-nutrition .nu-slot-tabs .tab { padding: 8px 6px; min-height: 44px; white-space: normal; color: var(--text-dim); font: 500 .875rem/1.35 var(--font-body); letter-spacing: 0; border-radius: 6px; }
.wb-nutrition .nu-slot-tabs .tab.active { background: var(--accent-soft); color: var(--accent); box-shadow: inset 0 -2px var(--accent); }
.wb-nutrition .nu-entry-input { display: flex; align-items: flex-start; gap: 8px; }
.wb-nutrition #nuText { flex: 1 1 auto; min-width: 0; min-height: 68px; max-height: 200px; resize: vertical; }
.wb-nutrition .nu-compose-footer { display: flex; align-items: center; justify-content: space-between; gap: 8px 14px; margin-top: 10px; flex-wrap: wrap; }
.wb-nutrition .nu-exact-toggle { display: flex; align-items: center; gap: 8px; min-height: 44px; font-size: .875rem; color: var(--text-dim); cursor: pointer; }
.wb-nutrition .nu-exact-toggle input { width: 18px; height: 18px; accent-color: var(--accent); }
.wb-nutrition #nuExactFields { margin-top: 10px; gap: 10px; }
.wb-nutrition .field { gap: 5px; min-width: 0; font: 500 .875rem/1.4 var(--font-body); color: var(--text-dim); }
.wb-nutrition .field .input { width: 100%; }
.wb-nutrition #nuVoiceStatus:empty, .wb-nutrition #nuAutocomplete:empty { display: none; }
.wb-nutrition #nuVoiceStatus { display: block; margin-top: 8px; font-size: .875rem; }
.wb-nutrition #nuAutocomplete { gap: 6px; margin-top: 8px; }
.wb-nutrition .chip { min-height: 44px; padding: 8px 10px; font: 500 .8125rem/1.4 var(--font-body); white-space: normal; text-align: left; }
.wb-nutrition .nu-favorite { display: inline-flex; align-items: center; max-width: 100%; border: 1px solid var(--border); border-radius: 7px; }
.wb-nutrition .nu-favorite .chip { border: 0; background: transparent; overflow-wrap: anywhere; }
.wb-nutrition #nuFavChips { margin-block: 4px 10px; gap: 8px; }
.wb-nutrition .nu-detail > summary { min-height: 44px; padding: 10px 0; font: 500 .875rem/1.4 var(--font-body); color: var(--text-dim); cursor: pointer; overflow-wrap: anywhere; }
.wb-nutrition .nu-detail > summary svg { vertical-align: -.2em; margin-right: 5px; }
.wb-nutrition .nu-detail > summary:hover { color: var(--accent); }
.wb-nutrition .nu-detail[open] > summary { margin-bottom: 8px; }
.wb-nutrition .nu-favorites { margin-top: 10px; border-top: 1px solid var(--border); }
.wb-nutrition .nu-journal-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.wb-nutrition .nu-journal-heading .card-title { margin: 0; }
.wb-nutrition #nuSlots { display: flex; flex-direction: column; gap: 8px; }
.wb-nutrition .slot { padding: 0; border: 1px solid var(--border); border-radius: 7px; overflow: hidden; }
.wb-nutrition .slot-head { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; width: 100%; min-height: 44px; padding: 10px 12px; border: 0; border-bottom: 1px solid transparent; background: var(--bg-2); color: var(--text); text-align: left; font: 500 .875rem/1.4 var(--font-body); letter-spacing: 0; text-transform: none; cursor: pointer; }
.wb-nutrition .slot-head .cnt { font: 400 .8125rem/1.4 var(--font-body); color: var(--text-dim); }
.wb-nutrition .slot.selected .slot-head { color: var(--accent); background: var(--accent-soft); }
.wb-nutrition .nu-slot-marker { margin-left: auto; }
.wb-nutrition .slot-body { padding: 0 12px; }
.wb-nutrition .slot-body:empty { display: none; }
.wb-nutrition .entry-line { gap: 8px; flex-wrap: nowrap; padding: 10px 0; align-items: center; font-size: .9375rem; }
.wb-nutrition .entry-food { overflow-wrap: anywhere; line-height: 1.45; }
.wb-nutrition .entry-macros-mobile { display: block; margin-top: 3px; font: 400 .8125rem/1.4 var(--font-body); color: var(--text-dim); }
.wb-nutrition .entry-macros-desktop { display: none; }
.wb-nutrition .entry-line .acts { display: flex; gap: 0; opacity: 1; flex-shrink: 0; }
.wb-nutrition .entry-line .acts .btn { min-height: 44px; min-width: 44px; width: 44px; padding: 10px; }
.wb-nutrition .entry-line summary { min-height: 44px; align-content: center; font-size: .8125rem; }
.wb-nutrition .entry-line details .mono { font: 400 .8125rem/1.45 var(--font-body) !important; overflow-wrap: anywhere; }
.wb-nutrition .nu-analysis-options { margin-top: 12px; border-top: 1px solid var(--border); }
.wb-nutrition .nu-analysis-controls { display: flex; align-items: flex-end; gap: 10px; flex-wrap: wrap; }
.wb-nutrition .nu-analysis-controls .field { flex: 1; }
.wb-nutrition #nuMeta { font-size: .8125rem; overflow-wrap: anywhere; }
.wb-nutrition .nu-stat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 !important; }
.wb-nutrition .nu-stat { padding: 4px 10px !important; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.wb-nutrition .nu-stat:first-child { padding-left: 0 !important; }
.wb-nutrition .nu-stat + .nu-stat { border-left: 1px solid var(--border); }
.wb-nutrition .nu-stat .label { min-height: 0; font: 500 .8125rem/1.4 var(--font-body); text-transform: none; letter-spacing: 0; color: var(--text-dim); }
.wb-nutrition .nu-stat .value { margin-top: 5px; font: 600 1.5rem/1.2 var(--font-body) !important; font-variant-numeric: tabular-nums; }
.wb-nutrition .target-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 10px; margin-bottom: 10px; }
.wb-nutrition .target-row .lbl { font: 500 .875rem/1.4 var(--font-body); text-transform: none; letter-spacing: 0; }
.wb-nutrition .target-row .val { grid-column: 2; grid-row: 1; min-width: 0; font: 400 .8125rem/1.4 var(--font-body); font-variant-numeric: tabular-nums; }
.wb-nutrition .target-row .progress { grid-column: 1 / -1; grid-row: 2; width: 100%; height: 5px; }
.wb-nutrition .nu-energy-details { margin-top: 12px; border-top: 1px solid var(--border); }
.wb-nutrition .tbl { font: 400 .875rem/1.4 var(--font-body); }
.wb-nutrition .tbl .mono { font-family: var(--font-body); font-variant-numeric: tabular-nums; }
.wb-nutrition .nu-formula { margin-top: 10px; font-size: .8125rem; }
.wb-nutrition .nu-secondary { display: flex; flex-direction: column; gap: 18px; }
.wb-nutrition .nu-secondary > .nu-detail, .wb-nutrition .nu-statistics { padding-block: 6px; }
.wb-nutrition .nu-secondary > .nu-detail[open], .wb-nutrition .nu-statistics[open] { padding-bottom: 18px; }
.wb-nutrition .nu-burn-form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px; }
.wb-nutrition .nu-burn-form .field { flex: 1 1 100px; }
.wb-nutrition #nuBurnHint { margin-top: 10px; font-size: .875rem; }
.wb-nutrition .nu-period-heading .right { display: flex; flex-wrap: wrap; gap: 6px; margin-left: 0; }
.wb-nutrition .nu-period-chart { display: flex; gap: 3px; height: 80px; overflow-x: auto; margin-bottom: 12px; padding: 3px; }
.wb-nutrition .nu-period-day { position: relative; flex: 1 0 44px; min-width: 44px; min-height: 44px; display: flex; justify-content: center; align-items: flex-end; padding: 0 4px 22px; border: 0; background: transparent; color: var(--text-dim); border-radius: 4px; cursor: pointer; }
.wb-nutrition .nu-period-bar { display: block; width: 100%; max-height: 100%; border-radius: 3px 3px 0 0; }
.wb-nutrition .nu-period-day[aria-pressed='true'] { background: var(--accent-soft); color: var(--accent); }
.wb-nutrition .nu-period-day-label { position: absolute; bottom: 0; font: 400 .75rem/1.4 var(--font-body); }
.wb-nutrition .nu-detail-hint { margin-left: 12px; font-weight: 400; color: var(--text-dim); }
.wb-nutrition .nu-stats-panel { margin: 0; padding: 0; border: 0; background: transparent; }
.wb-nutrition .nu-stats-title { display: none; }
.wb-nutrition .nu-stats-header { margin-bottom: 10px; }
.wb-nutrition .nu-stats-period-label { font: 400 .875rem/1.4 var(--font-body); margin-bottom: 16px; }
.wb-nutrition .nu-stats-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 18px; }
.wb-nutrition .nu-stats-grid:last-child { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.wb-nutrition :is(.nu-kpi-card, .nu-chart-card, .nu-info-card) { min-width: 0; padding: 18px; border-radius: 8px; }
.wb-nutrition .nu-kpi-label { font: 500 .8125rem/1.4 var(--font-body); text-transform: none; letter-spacing: 0; color: var(--text-dim); }
.wb-nutrition .nu-kpi-value { font: 600 1.5rem/1.3 var(--font-body); font-variant-numeric: tabular-nums; }
.wb-nutrition .nu-stats-charts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-bottom: 18px; }
.wb-nutrition .nu-chart-wide { grid-column: auto; }
.wb-nutrition :is(.nu-chart-title, .nu-info-title) { font: 600 .9375rem/1.4 var(--font-body); }
.wb-nutrition .nu-chart-subtitle { font-size: .8125rem; color: var(--text-dim); }
.wb-nutrition .nu-canvas { height: 220px; }
.wb-nutrition :is(.nu-streak-value, .nu-extreme-value) { font: 500 .875rem/1.4 var(--font-body); }
.wb-nutrition :is(.nu-streak-row, .nu-extreme-row) { gap: 12px; align-items: baseline; }
.wb-nutrition .nu-topfood-name { white-space: normal; overflow-wrap: anywhere; }
.wb-nutrition.nu-modal { --font-body: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif; padding: 20px; }
.wb-nutrition.nu-modal .modal-head h3 { font: 600 1.125rem/1.4 var(--font-body); }
.wb-nutrition.nu-modal .nu-move-opt { min-height: 44px; font: 500 .9375rem/1.4 var(--font-body); }
.wb-nutrition.nu-modal .list-item { flex-wrap: wrap; }
.wb-nutrition.nu-modal .list-item .faint { font: 400 .8125rem/1.4 var(--font-body) !important; }
@media (max-width: 1050px) {
  .wb-nutrition #nuGrid.nu-workspace { grid-template-columns: minmax(0, 1.2fr) minmax(280px, 1fr) !important; }
  .wb-nutrition .nu-toolbar-controls { margin-left: 0; }
  .wb-nutrition .entry-line { flex-wrap: wrap; }
  .wb-nutrition .entry-line .acts { margin-left: auto; }
}
@media (max-width: 760px) {
  .wb-nutrition #nuGrid.nu-workspace { grid-template-columns: minmax(0, 1fr) !important; }
  .wb-nutrition .nu-stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wb-nutrition .nu-stats-grid:last-child { grid-template-columns: minmax(0, 1fr); }
  .wb-nutrition .nu-stats-charts { grid-template-columns: minmax(0, 1fr); }
  .wb-nutrition .nu-toolbar-controls { width: 100%; justify-content: space-between; }
  .wb-nutrition .nu-date-nav { flex: 1; }
  .wb-nutrition #nuToday { flex: 1; white-space: normal; }
  .wb-nutrition.nu-modal .grid.cols-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
  .wb-nutrition.page-nutrition, .wb-nutrition .nu-secondary { gap: 14px; }
  .wb-nutrition .nu-toolbar-controls { flex-wrap: wrap; }
  .wb-nutrition .nu-tools { margin-left: auto; }
  .wb-nutrition .nu-slot-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wb-nutrition .nu-compose-footer .btn.primary { flex: 1 1 100%; }
  .wb-nutrition .nu-detail-hint { display: block; margin: 4px 0 0 22px; font-size: .8125rem; }
  .wb-nutrition .nu-stat .value { font-size: 1.25rem !important; }
  .wb-nutrition .entry-line > div { flex-basis: 100% !important; }
  .wb-nutrition.nu-modal .grid.cols-3 { grid-template-columns: minmax(0, 1fr); }
  .wb-nutrition.nu-modal .grid.cols-3 > .field { grid-column: auto !important; }
}
