body.vs-site .vsrh.vsrh-calorie-page {
  width: min(1220px, calc(100% - 32px));
  margin: 0 auto;
  padding-block: clamp(1.25rem, 4vw, 3rem) clamp(2.5rem, 6vw, 5rem);
}
body.vs-site .vsrh-calorie-page .vsrh-calorie-mode { max-width: 48rem; }
body.vs-site .vsrh-calorie-page .vsrh-calorie-inputs { margin-top: 1.4rem; }
body.vs-site .vsrh-calorie-page .vsrh-calorie-amount { max-width: 38rem; margin-top: 1.4rem; }
body.vs-site .vsrh-calorie-page .vsrh-calorie-amount input { max-width: 18rem; }
body.vs-site .vsrh-calorie-page .vsrh-calorie-list-section { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--vsrh-line); }
body.vs-site .vsrh-calorie-page .vsrh-calorie-list { display: grid; gap: .9rem; margin-block: 1rem 1.5rem; }
body.vs-site .vsrh-calorie-page .vsrh-calorie-item { display: grid; grid-template-columns: minmax(0, 1fr) minmax(7.5rem, 10rem) minmax(5rem, auto) auto; gap: 1rem; align-items: center; padding: 1.1rem; border: 1px solid var(--vsrh-line); border-radius: 14px; background: var(--vsrh-soft); }
body.vs-site .vsrh-calorie-page .vsrh-calorie-item > * { min-width: 0; }
body.vs-site .vsrh-calorie-page .vsrh-calorie-item-name h4 { margin-bottom: .35rem; font-size: 1rem; letter-spacing: 0; line-height: 1.45; overflow-wrap: anywhere; }
body.vs-site .vsrh-calorie-page .vsrh-calorie-item-name p { font-size: .85rem; margin: 0; }
body.vs-site .vsrh-calorie-page .vsrh-calorie-item-quantity label { font-size: .85rem; margin-bottom: .2rem; }
body.vs-site .vsrh-calorie-page .vsrh-calorie-item-energy { margin: 0; font-size: 1.1rem; font-weight: 750; font-variant-numeric: tabular-nums; }
body.vs-site .vsrh-calorie-page .vsrh-calorie-remove { font-size: .9rem; overflow-wrap: normal; }
body.vs-site .vsrh-calorie-page .vsrh-calorie-portions { max-width: 36rem; }
body.vs-site .vsrh-calorie-page .vsrh-calorie-portions input { max-width: 12rem; }
body.vs-site .vsrh-calorie-page .vsrh-calorie-sources { font-size: .94rem; }
body.vs-site .vsrh-calorie-page .vsrh-calorie-sources li + li { margin-top: 1rem; }
body.vs-site .vsrh-calorie-page .vsrh-calorie-sources span { display: block; margin-top: .25rem; color: var(--vsrh-muted); }
body.vs-site .vsrh-calorie-page .vsrh-calorie-calculator select { min-width: 0; max-width: 100%; white-space: normal; }
body.vs-site .vsrh-calorie-page .vsrh-calorie-calculator [data-vsk-selected] { padding: .7rem .85rem; border-radius: 9px; background: var(--vsrh-cream); color: var(--vsrh-ink); }
body.vs-site .vsrh-calorie-page .vsrh-calorie-calculator [data-vsk-selected] a { font-weight: 650; }
@media (max-width: 900px) {
  body.vs-site .vsrh-calorie-page .vsrh-calorie-item { grid-template-columns: minmax(0, 1fr) minmax(7rem, 9rem); }
  body.vs-site .vsrh-calorie-page .vsrh-calorie-item-energy { align-self: center; }
  body.vs-site .vsrh-calorie-page .vsrh-calorie-remove { justify-self: start; }
}
@media (max-width: 480px) {
  body.vs-site .vsrh-calorie-page .vsrh-calorie-item { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: .8rem; }
  body.vs-site .vsrh-calorie-page .vsrh-calorie-item-name { grid-column: 1 / -1; }
  body.vs-site .vsrh-calorie-page .vsrh-calorie-item-quantity { grid-column: 1; }
  body.vs-site .vsrh-calorie-page .vsrh-calorie-item-energy { grid-column: 2; text-align: right; }
  body.vs-site .vsrh-calorie-page .vsrh-calorie-remove { grid-column: 1 / -1; padding-inline: 0; }
}
/* Large recipe totals remain readable without breaking numbers in the middle. */
body.vs-site .vsrh-calorie-page [data-vsk-food] .vsrh-result-value { font-size: clamp(1.5rem, 6vw, 3.5rem); }
@media (max-width: 480px) {
  body.vs-site .vsrh.vsrh-calorie-page h1 { font-size: clamp(1.4rem, 6.5vw, 1.8rem); }
  body.vs-site .vsrh.vsrh-calorie-page h2 { font-size: clamp(1.25rem, 5.5vw, 1.5rem); }
  body.vs-site .vsrh-calorie-page .vsrh-hero { padding: 1.1rem; }
}

/* Editable products, optional recipe portions and training sections. */
body.vs-site .vsrh-calorie-page .vsrh-calorie-row-actions { display: flex; flex-direction: column; align-items: flex-start; gap: .2rem; }
body.vs-site .vsrh-calorie-page .vsrh-calorie-row-actions .vsrh-reset { margin: 0; min-height: 44px; }
body.vs-site .vsrh-calorie-page .vsrh-calorie-item :disabled { opacity: .6; cursor: not-allowed; }
body.vs-site .vsrh-calorie-page .vsrh-calorie-portion-fields { padding-top: .5rem; }
body.vs-site .vsrh-calorie-page [data-vsk-equal-fields] { margin-top: 1.2rem; }
body.vs-site .vsrh-calorie-page [data-vsk-edit-note] { margin-bottom: 1.2rem; }
body.vs-site .vsrh-calorie-page .vsrh-sport-item-energy { white-space: pre-line; font-size: .94rem; line-height: 1.65; }
body.vs-site .vsrh-calorie-page [data-vsk-weighed-fields] input { max-width: 18rem; }
@media (max-width: 480px) {
  body.vs-site .vsrh-calorie-page .vsrh-calorie-row-actions { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; gap: .3rem 1.1rem; }
}

/* Optional nutrient data and category controls share the existing calculator layout. */
body.vs-site .vsrh-calorie-page .vsrh-manual-nutrients { padding: 1rem; border: 1px solid var(--vsrh-line); border-radius: 12px; background: var(--vsrh-soft); }
body.vs-site .vsrh-calorie-page .vsrh-manual-nutrients summary { min-height: 44px; cursor: pointer; font-weight: 700; line-height: 1.5; color: var(--vsrh-ink); }
body.vs-site .vsrh-calorie-page .vsrh-manual-nutrients .vsrh-form-grid { margin-top: 1rem; }
body.vs-site .vsrh-calorie-page .vsrh-nutrient-toggle { margin-bottom: 1.5rem; }
body.vs-site .vsrh-calorie-page .vsrh-nutrient-toggle label { display: flex; align-items: flex-start; gap: .7rem; font-weight: 650; line-height: 1.5; cursor: pointer; }
body.vs-site .vsrh-calorie-page .vsrh-nutrient-toggle input { width: 20px; height: 20px; flex: 0 0 auto; margin: .15rem 0 0; accent-color: var(--vsrh-green); }
body.vs-site .vsrh-calorie-page .vsrh-nutrient-results { margin-top: 1.5rem; }
body.vs-site .vsrh-calorie-page .vsrh-nutrient-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: .9rem; margin-block: .8rem 1rem; }
body.vs-site .vsrh-calorie-page .vsrh-nutrient-card { min-width: 0; padding: 1rem; border: 1px solid rgba(255, 255, 255, .3); border-radius: 12px; background: rgba(255, 255, 255, .06); }
body.vs-site .vsrh-calorie-page .vsrh-nutrient-results :where(h4, h5, p) { color: #fff; }
body.vs-site .vsrh-calorie-page .vsrh-nutrient-card h5 { margin: 0 0 .5rem; font-size: 1.05rem; }
body.vs-site .vsrh-calorie-page .vsrh-nutrient-card p { margin: .5rem 0 0; font-size: .95rem; line-height: 1.6; }
body.vs-site .vsrh-calorie-page .vsrh-nutrient-card .vsrh-nutrient-missing { font-weight: 650; }
body.vs-site .vsrh-calorie-page :where(.vsrh-nutrient-card, .vsrh-manual-nutrients, .vsrh-nutrient-toggle, .vsrh-calorie-item-name h4) { overflow-wrap: normal; word-break: normal; hyphens: none; }

/* A menu counts one serving of each recipe component. */
body.vs-site .vsrh-calorie-page .vsrh-menu-toggle { margin-top: 1.5rem; }
body.vs-site .vsrh-calorie-page .vsrh-menu-controls { padding: 1rem; margin-block: 1rem; border: 1px solid var(--vsrh-line); border-radius: 12px; background: var(--vsrh-soft); }
body.vs-site .vsrh-calorie-page .vsrh-menu-controls h4 { margin-top: 0; }
body.vs-site .vsrh-calorie-page .vsrh-menu-controls-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: 1rem; }
body.vs-site .vsrh-calorie-page .vsrh-menu-controls-grid input { max-width: 12rem; }
body.vs-site .vsrh-calorie-page .vsrh-menu-item-group { margin-top: .75rem; max-width: 18rem; }
body.vs-site .vsrh-calorie-page .vsrh-menu-item-group label { font-size: .9rem; }
body.vs-site .vsrh-calorie-page .vsrh-menu-results { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr)); gap: 1rem; margin-block: 1.5rem; }
body.vs-site .vsrh-calorie-page .vsrh-menu-result { min-width: 0; padding: 1rem; border: 1px solid rgba(255, 255, 255, .3); border-radius: 12px; }
body.vs-site .vsrh-calorie-page .vsrh-menu-result :where(h4, p) { color: #fff; }
body.vs-site .vsrh-calorie-page .vsrh-menu-result h4 { margin: 0 0 .7rem; }
body.vs-site .vsrh-calorie-page .vsrh-menu-result p { font-size: .95rem; line-height: 1.6; margin: .5rem 0 0; }
body.vs-site .vsrh-calorie-page .vsrh-menu-serving, body.vs-site .vsrh-calorie-page .vsrh-menu-result .vsrh-nutrient-missing { font-weight: 700; }
body.vs-site .vsrh-calorie-page :where(.vsrh-menu-toggle, .vsrh-menu-controls, .vsrh-menu-item-group, .vsrh-menu-result) { overflow-wrap: normal; word-break: normal; hyphens: none; }
