.diary-toolbar,.date-controls,.date-controls form,.catalog-caption,.food-card-top,.food-card-bottom,.pagination {
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
}
.diary-toolbar,.catalog-caption {
  justify-content:space-between;
  margin:24px 0;
}
.date-controls form {
  gap:10px;
}
.date-controls form input[type=date] {
  width:auto;
  min-height:44px;
  background:var(--input);
  color:var(--text);
  border:1px solid var(--input-border);
  border-radius:10px;
  padding:9px;
}
.date-controls label {
  font-size:12px;
}
.icon-button {
  padding:12px 16px;
}
.nutrition-stats {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  margin-bottom:28px;
}
.nutrition-stat {
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:23px;
  min-width:0;
}
.nutrition-stat:first-child {
  background:var(--banner-bg);
  color:var(--banner-ink);
  border-color:var(--banner-line);
}
.nutrition-stat>span {
  font-size:13px;
}
.nutrition-stat strong {
  display:block;
  font-size:clamp(24px,2.7vw,38px);
  font-weight:550;
  margin:15px 0;
  letter-spacing:-1px;
  overflow-wrap:anywhere;
}
.nutrition-stat small {
  font-size:13px;
  font-weight:400;
  letter-spacing:0;
}
.nutrition-stat p {
  color:var(--muted);
  font-size:11px;
  margin:0;
}
.nutrition-stat:first-child p {
  color:var(--banner-muted);
}
.diary-columns {
  display:grid;
  grid-template-columns:minmax(0,1.65fr) minmax(260px,1fr);
  gap:24px;
  align-items:start;
}
.meal-stack,.diary-aside,.product-form {
  display:grid;
  gap:20px;
}
.meal-panel {
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
}
.meal-panel header {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:18px 22px;
}
.meal-panel header>div {
  display:flex;
  align-items:center;
  gap:12px;
}
.meal-panel h2 {
  font-size:17px;
  margin:0;
}
.meal-symbol {
  color:var(--lime);
  font-size:25px;
  width:28px;
}
.meal-add {
  display:grid;
  place-items:center;
  color:var(--text);
  background:var(--raised);
  border:1px solid var(--line);
  border-radius:50%;
  width:40px;
  height:40px;
  font-size:24px;
  text-decoration:none;
}
.meal-add:hover {
  background:var(--lime);
  color:var(--ink);
}
.meal-empty {
  padding:0 22px 22px;
  color:var(--muted);
  font-size:13px;
  margin:0;
}
.meal-entry {
  border-top:1px solid var(--line);
  padding:22px;
  display:flex;
  justify-content:space-between;
  gap:16px;
}
.meal-entry>div:first-child {
  min-width:0;
  overflow-wrap:anywhere;
}
.meal-entry h3 {
  font-size:16px;
  margin:10px 0 6px;
}
.meal-entry h3 small {
  font-size:12px;
  font-weight:400;
}
.meal-entry p {
  font-size:12px;
  color:var(--muted);
  margin:7px 0;
}
.meal-entry .eyebrow {
  font-size:10px;
  letter-spacing:1px;
}
.entry-macros {
  display:flex;
  gap:9px;
  flex-wrap:wrap;
  font-size:12px;
  color:var(--muted);
  margin-top:12px;
}
.entry-actions {
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:13px;
  flex-shrink:0;
}
.entry-actions strong {
  font-size:18px;
  white-space:nowrap;
}
.entry-actions small {
  font-size:11px;
  font-weight:400;
}
.entry-actions a {
  font-size:12px;
  color:var(--text);
  text-underline-offset:4px;
}
.entry-source {
  font-size:11px;
  margin-top:14px;
  color:var(--muted);
}
.entry-source summary {
  cursor:pointer;
}
.diary-aside .panel {
  padding:24px;
}
.day-status h2,.micronutrients h2,.portion-preview h2 {
  font-size:21px;
  margin:14px 0;
}
.day-status p,.portion-preview p {
  line-height:1.65;
  font-size:13px;
}
.day-status .button {
  width:100%;
  margin:12px 0;
}
.nutrient-row {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  padding:14px 0;
  border-bottom:1px solid var(--line);
  font-size:13px;
}
.nutrient-row strong {
  text-align:right;
  font-weight:500;
  white-space:nowrap;
}
.nutrient-row span small {
  display:block;
  color:var(--muted);
  font-size:10px;
  margin-top:5px;
}
.nutrient-row strong small {
  font-size:11px;
  font-weight:400;
  color:var(--muted);
}
.micronutrients>p {
  font-size:12px;
  line-height:1.7;
}
.catalog-filters {
  display:grid;
  grid-template-columns:minmax(180px,2fr) minmax(180px,1.5fr) auto auto;
  gap:18px;
  align-items:end;
  padding:24px;
}
.catalog-mine {
  display:flex;
  align-items:center;
  gap:8px;
  font-size:12px;
  min-height:46px;
}
.catalog-mine input[type=checkbox] {
  width:18px;
  height:18px;
  accent-color:var(--lime);
}
.catalog-caption {
  font-size:12px;
  color:var(--muted);
}
.food-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.food-card {
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:23px;
  display:flex;
  flex-direction:column;
  min-width:0;
}
.food-card-top {
  justify-content:space-between;
  gap:8px;
}
.food-card .eyebrow {
  font-size:9px;
  letter-spacing:1px;
}
.food-origin {
  font-size:10px;
  padding:5px 8px;
  border:1px solid var(--line);
  border-radius:8px;
  color:var(--muted);
}
.food-card h2 {
  font-size:19px;
  line-height:1.4;
  margin:20px 0 8px;
  overflow-wrap:anywhere;
}
.food-card h2 a {
  color:var(--text);
  text-decoration:none;
}
.food-card h2 a:hover {
  text-decoration:underline;
}
.food-card p {
  font-size:12px;
  line-height:1.5;
  margin:0 0 8px;
}
.food-energy {
  margin-top:auto;
  padding:22px 0;
  display:flex;
  gap:8px;
  align-items:baseline;
  flex-wrap:wrap;
}
.food-energy strong {
  font-size:22px;
  font-weight:500;
}
.food-energy small,.food-energy>span {
  font-size:11px;
}
.food-card-bottom {
  justify-content:space-between;
  border-top:1px solid var(--line);
  padding-top:18px;
  gap:10px;
}
.food-card-bottom .button,.food-card-bottom .text-link {
  font-size:12px;
}
.food-card-bottom .button {
  padding:10px 13px;
}
.pagination {
  justify-content:center;
  margin:30px 0;
}
.empty-catalog {
  grid-column:1/-1;
}
.entry-layout {
  display:grid;
  grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr);
  gap:24px;
  align-items:start;
}
.entry-layout .panel {
  padding:28px;
}
.portion-preview {
  overflow-wrap:anywhere;
}
.portion-preview #preview-values {
  margin:24px 0;
}
.product-form .panel {
  padding:28px;
}
.product-form h2 {
  font-size:22px;
  margin-top:0;
}
.product-form .panel>p {
  font-size:13px;
  line-height:1.7;
  margin-bottom:26px;
}
.active-row {
  display:grid;
  grid-template-columns:2fr 1fr 1fr auto;
  gap:16px;
  align-items:start;
  border-top:1px solid var(--line);
  padding:20px 0;
}
.active-row .field:last-child input {
  width:20px;
  height:20px;
  margin-top:12px;
}
.nutrient-fields {
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.nutrition-stat,.food-card {
  transition:border-color .2s;
}
.food-card:hover {
  border-color:var(--input-hover);
}
@media(max-width:1200px) {
  .catalog-filters {
    grid-template-columns:1fr 1fr;
  }
  .food-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .diary-columns {
    grid-template-columns:minmax(0,1.5fr) minmax(240px,1fr);
  }
  .nutrition-stat {
    padding:18px;
  }
  .entry-layout {
    grid-template-columns:1fr;
  }
  .portion-preview {
    max-width:none;
  }
}
@media(max-width:900px) {
  .diary-columns {
    grid-template-columns:1fr;
  }
  .diary-aside {
    grid-template-columns:1fr 1fr;
  }
  .nutrition-stats {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .nutrient-fields {
    grid-template-columns:1fr 1fr;
  }
}
@media(max-width:600px) {
  .sidebar nav {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .diary-toolbar,.date-controls {
    gap:12px;
  }
  .date-controls form {
    flex:1;
  }
  .date-controls label {
    width:100%;
  }
  .date-controls {
    align-items:flex-end;
  }
  .date-controls form input[type=date] {
    max-width:165px;
  }
  .diary-aside,.food-grid,.catalog-filters {
    grid-template-columns:1fr;
  }
  .meal-entry {
    padding:18px 16px;
    gap:10px;
  }
  .meal-panel header {
    padding:18px 16px;
  }
  .entry-actions strong {
    font-size:16px;
  }
  .nutrition-stat strong {
    font-size:29px;
  }
  .nutrition-stats {
    gap:10px;
  }
  .nutrition-stat {
    padding:18px 14px;
  }
  .active-row {
    grid-template-columns:1fr 1fr;
  }
  .active-row>.field:first-child {
    grid-column:1/-1;
  }
  .nutrient-fields {
    grid-template-columns:1fr;
  }
  .entry-layout .panel,.product-form .panel {
    padding:22px 18px;
  }
  .catalog-caption {
    align-items:start;
  }
  .catalog-caption span:last-child {
    max-width:240px;
  }
  .entry-macros {
    gap:5px;
  }
}
.catalog-mine input[type=checkbox],.active-row .field input[type=checkbox] {
  min-height:20px;
  max-width:20px;
  flex-shrink:0;
  padding:0;
}
.catalog-filters .field {
  margin-bottom:0;
}
.date-controls form {
  max-width:420px;
}
.date-controls form label {
  width:100%;
}
.date-controls form input[type=date] {
  width:170px;
}
.date-controls {
  align-items:flex-end;
}
.date-controls form {
  display:grid;
  grid-template-columns:minmax(120px,170px) auto;
  max-width:none;
  flex:0 1 auto;
}
.date-controls form label {
  grid-column:1/-1;
}
.date-controls form input[type=date] {
  width:100%;
  min-width:0;
}
.date-controls form .errorlist {
  grid-column:1/-1;
}
@media(max-width:600px) {
  .sidebar nav {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    width:100%;
  }
  .sidebar nav a {
    font-size:13px;
    padding:10px 12px;
  }
  .date-controls {
    gap:10px;
  }
  .date-controls form {
    grid-template-columns:minmax(110px,150px) auto;
  }
  .date-controls form input[type=date] {
    max-width:none;
  }
}
/* Daily flow, personal catalog and recipe builder. */
.diary-tabs { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 26px; }
.diary-tabs a { padding:10px 16px; border:1px solid var(--line); border-radius:30px; font-size:13px; color:var(--muted); }
.diary-tabs a[aria-current],.diary-tabs a:hover { background:var(--nav-active); color:var(--text); border-color:var(--input-hover); }
.history-picker { border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:18px 0; margin:22px 0; }
.history-picker summary,.report-micros summary { cursor:pointer; color:var(--text); font-size:14px; }
.history-picker .date-controls { margin-top:20px; }
.history-notice,.report-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; margin:24px 0; }
.history-notice { background:var(--raised); border:1px solid var(--line); border-radius:12px; padding:18px; }
.report-heading h2 { font-size:21px; margin:0; }
.report-heading p { font-size:13px; margin-bottom:0; }
.report-heading .text-link { font-size:12px; }
.meal-add { width:auto; height:auto; min-height:40px; border-radius:10px; font-size:12px; padding:10px 12px; white-space:nowrap; }
.personal-choices { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin:24px 0; }
.personal-choices article,.recipe-tip { background:var(--raised); border:1px solid var(--line); border-radius:var(--radius); padding:24px; }
.personal-choices h2 { font-size:19px; margin:14px 0 8px; }
.personal-choices p,.recipe-tip p { font-size:13px; line-height:1.7; color:var(--muted); }
.personal-choices .button { font-size:12px; margin-top:10px; }
.recipe-tip { margin-bottom:26px; }
.catalog-filters { grid-template-columns:minmax(180px,2fr) minmax(180px,1fr) auto; }
.ingredient-row { display:grid; grid-template-columns:minmax(0,2fr) minmax(120px,1fr) auto; gap:20px; border-top:1px solid var(--line); padding:24px 0; align-items:start; }
.ingredient-row .field { margin-bottom:0; }
.ingredient-unit { margin:8px 0; }
.ingredient-remove { display:flex; align-items:center; gap:8px; font-size:12px; margin-top:30px; }
.ingredient-remove input[type=checkbox] { width:20px; height:20px; min-height:20px; padding:0; }
.ingredient-deleted { opacity:.55; }
.recipe-ingredients { padding-left:20px; }
.recipe-ingredients li { margin:18px 0; font-size:13px; }
.recipe-ingredients span,.recipe-ingredients small { display:block; margin-top:6px; color:var(--muted); }
.recipe-ingredients small { font-size:11px; }
.report-filter { display:flex; align-items:end; gap:20px; flex-wrap:wrap; padding:24px; }
.report-filter .field { margin:0; flex:1; }
.report-filter .errorlist { width:100%; }
.report-table-wrap { overflow-x:auto; }
.report-table { width:100%; border-collapse:collapse; font-size:13px; }
.report-table th,.report-table td { text-align:left; border-bottom:1px solid var(--line); padding:16px 12px; white-space:nowrap; }
.report-table thead { color:var(--muted); font-size:12px; }
.report-table small { display:block; color:var(--muted); margin-top:4px; }
.report-micros { margin:20px 0; }
@media(max-width:800px) {
  .personal-choices,.catalog-filters { grid-template-columns:1fr; }
  .ingredient-row { grid-template-columns:minmax(0,1fr) auto; gap:14px; }
  .ingredient-row>.field { grid-column:1/-1; }
  #recipe-preview .nutrition-stats { grid-template-columns:1fr 1fr; }
}
@media(max-width:520px) {
  .meal-panel h2 { font-size:15px; }
  .meal-panel header>div { gap:7px; }
  .meal-symbol { width:20px; font-size:21px; }
  .meal-add { padding:10px 8px; }
  .report-filter { display:grid; grid-template-columns:1fr; }
  .history-picker .date-controls form { grid-template-columns:minmax(100px,140px) auto; }
  .diary-tabs a { font-size:12px; padding:10px 12px; }
  .consumption-context { font-size:14px; }
}
