.page-concept-detail #main-content { margin-top: 0; }
.concept-shell { width: min(76rem, calc(100% - 2rem)); margin: 0 auto; padding: var(--s-5) 0 var(--s-8); color: var(--recipe-ink); }
.concept-workspace-back { flex-shrink: 0; display: block; width: fit-content; max-width: 100%; margin-left: auto; font-size: var(--recipe-font-control); text-align: right; }
/* Shared concept intent lives on the canvas; definition uses a managed dialog. */
.concept-definition-modal .modal-dialog { width: min(40rem, calc(100vw - 2rem)); }
.concept-definition__form { display: grid; gap: var(--s-2); min-width: 0; }
.concept-definition__form label { font-weight: 600; }
.concept-definition__form label span { color: var(--recipe-muted); font-weight: 400; }
.concept-definition__form input, .concept-definition__form textarea { width: 100%; box-sizing: border-box; padding: var(--s-2); min-height: var(--recipe-control-touch); font: inherit; }
.concept-definition__form textarea { resize: vertical; }
.concept-definition__form p { margin: 0; font-size: var(--recipe-font-compact); color: var(--recipe-muted); overflow-wrap: anywhere; }
.concept-canvas-actions { display: flex; align-items: center; flex-wrap: wrap; gap: var(--s-2); }
.concept-core-status { flex-basis: 100%; margin: 0; font-size: var(--recipe-font-compact); color: var(--recipe-muted); overflow-wrap: anywhere; }
.concept-core-status:empty { display: none; }
.concept-shell .btn.concept-save-icon { width: var(--recipe-control-touch); height: var(--recipe-control-touch); min-height: var(--recipe-control-touch); padding: 0; flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; justify-self: start; border: 1px solid var(--recipe-line-strong); background: var(--recipe-surface); color: var(--recipe-ink); font-size: var(--recipe-font-body); }
.concept-save-icon:disabled { color: var(--recipe-muted); opacity: .6; }
@media (max-width: 820px) {
  .concept-definition-modal .modal-dialog { width: 100%; }
}
.concept-hero { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s-5); padding-bottom: var(--s-5); border-bottom: 1px solid var(--recipe-line-strong); }
.concept-hero__copy { max-width: 50rem; }
.concept-eyebrow { margin: 0 0 var(--s-2); color: var(--recipe-muted); font: 700 var(--recipe-font-metadata)/1.2 var(--font-sans); letter-spacing: .1em; text-transform: uppercase; }
.concept-hero h1 { margin: 0; font: 600 var(--recipe-font-campaign-title)/1.1 var(--font-serif); letter-spacing: -.03em; }
.concept-deck { max-width: 64ch; margin: var(--s-3) 0 0; color: var(--recipe-muted); font-size: var(--recipe-font-subheading); line-height: 1.55; }
.concept-facts, .concept-hero__actions, .implementation-badges { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2) var(--s-4); }
.concept-facts { margin-top: var(--s-4); color: var(--recipe-muted); font-size: var(--recipe-font-control); }
.concept-facts > span { padding-right: var(--s-3); border-right: 1px solid var(--recipe-line); }
.concept-facts > span:last-child { padding-right: 0; border-right: 0; }
.concept-hero__actions { flex-shrink: 0; max-width: 28rem; justify-content: flex-end; }

.dynamic-workspace { margin-top: var(--s-5); border: 1px solid var(--recipe-line); border-top: 3px solid var(--recipe-accent); background: var(--recipe-surface); }
.dynamic-workspace__intro { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s-5); padding: var(--s-5); border-bottom: 1px solid var(--recipe-line); }
.dynamic-workspace__intro h2, .implementation-section h2 { margin: 0; font: 600 var(--recipe-font-display)/1.1 var(--font-serif); }
.dynamic-workspace__intro p:not(.concept-eyebrow) { max-width: 62ch; margin: var(--s-2) 0 0; color: var(--recipe-muted); }
.dynamic-release { flex: 0 0 auto; padding: var(--s-2) var(--s-3); border: 1px solid var(--recipe-line); color: var(--recipe-muted); font-size: var(--recipe-font-control); }
.dynamic-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(18rem, .48fr); align-items: start; }
.dynamic-controls { grid-column: 1 / -1; padding: var(--s-4) var(--s-5); border-bottom: 1px solid var(--recipe-line); background: var(--recipe-surface-muted); }
.dynamic-controls fieldset { display: grid; grid-template-columns: minmax(12rem, .85fr) minmax(12rem, 1fr) minmax(18rem, 1.4fr); align-items: center; gap: var(--s-4); min-width: 0; margin: 0; padding: 0; border: 0; }
.dynamic-controls legend { margin-bottom: var(--s-3); font: 600 var(--recipe-font-heading)/1.2 var(--font-serif); }
.dynamic-number-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: var(--s-2); }
.dynamic-number-row label { grid-row: 1; }
.dynamic-number-row input, .dynamic-number-row select { grid-row: 2; }
.dynamic-number-row input, .dynamic-number-row select { width: 100%; min-height: var(--recipe-control-touch); box-sizing: border-box; }
.dynamic-number-row label, .dynamic-slider-label { color: var(--recipe-muted); font-size: var(--recipe-font-control); }
.dynamic-slider-label { display: block; }
.dynamic-controls input[type="range"] { width: 100%; min-height: var(--recipe-control-touch); margin: var(--s-2) 0; accent-color: var(--recipe-accent-strong); }
.dynamic-anchor-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-2); }
.dynamic-anchor-links button { min-height: var(--recipe-control-touch); padding: var(--s-3); border: 1px solid var(--recipe-line); border-radius: var(--recipe-radius-small); background: var(--recipe-surface); color: var(--recipe-ink); text-align: left; cursor: pointer; }
.dynamic-anchor-links button:hover { border-color: var(--recipe-accent-strong); }
.dynamic-anchor-links button[aria-pressed="true"] { border-color: var(--recipe-accent-strong); background: var(--recipe-accent-wash); }
.dynamic-anchor-links strong, .dynamic-anchor-links span { display: block; }
.dynamic-anchor-links span { margin-top: var(--s-1); color: var(--recipe-muted); font-size: var(--recipe-font-control); }
.dynamic-range-note { margin: var(--s-3) 0 0; color: var(--recipe-muted); font-size: var(--recipe-font-compact); line-height: 1.5; }
.dynamic-result { grid-column: 2; grid-row: 2; min-width: 0; padding: var(--s-4); border-left: 1px solid var(--recipe-line); }
.dynamic-result__heading { display: flex; flex-direction: column; align-items: flex-start; gap: var(--s-2); }
.dynamic-result__heading h3 { margin: 0; font: 600 var(--recipe-font-title)/1.15 var(--font-serif); }
.dynamic-state { flex: 0 0 auto; padding: var(--s-2) var(--s-3); border: 1px solid var(--recipe-line-strong); border-radius: var(--recipe-radius-status); font-size: var(--recipe-font-compact); font-weight: 700; }
.dynamic-state--anchor { border-color: var(--recipe-success); background: var(--recipe-success-wash); color: var(--recipe-success); }
.dynamic-state--interpolated { background: var(--recipe-information-wash); color: var(--recipe-information); }
.dynamic-state--extrapolated { border-color: var(--recipe-warning-strong); background: var(--recipe-warning-wash); color: var(--recipe-warning-strong); }
.dynamic-result__metrics, .implementation-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: var(--s-4) 0; background: var(--recipe-line); border: 1px solid var(--recipe-line); }
.dynamic-result__metrics div, .implementation-metrics div { min-width: 0; padding: var(--s-3); background: var(--recipe-surface); }
.dynamic-result__metrics dt, .implementation-metrics dt { color: var(--recipe-muted); font-size: var(--recipe-font-metadata); text-transform: uppercase; letter-spacing: .06em; }
.dynamic-result__metrics dd, .implementation-metrics dd { margin: var(--s-1) 0 0; font-weight: 650; overflow-wrap: anywhere; }
.dynamic-result__metrics { grid-template-columns: minmax(0, 1fr); margin: var(--s-3) 0; }
.dynamic-result__metrics div { padding: var(--s-2) var(--s-3); }
.dynamic-warnings { border-left: 3px solid var(--recipe-warning-strong); padding: var(--s-2) var(--s-3); background: var(--recipe-warning-wash); color: var(--recipe-warning-strong); }
.dynamic-warnings p { margin: var(--s-1) 0; font-size: var(--recipe-font-control); line-height: 1.45; }
.dynamic-result__recipe, .implementation-content, .concept-analysis__body { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-5); }
.dynamic-result__recipe { grid-template-columns: minmax(0, 1fr); gap: var(--s-4); padding: var(--s-2) 0 var(--s-3); font-size: var(--recipe-font-control); }
.dynamic-result__recipe-details { margin-top: var(--s-3); border-top: 1px solid var(--recipe-line); }
.dynamic-result__recipe-details summary { min-height: var(--recipe-control-touch); display: flex; align-items: center; gap: var(--s-2); font-weight: 700; cursor: pointer; }
.dynamic-result__recipe-details summary::before { content: "+"; color: var(--recipe-muted); }
.dynamic-result__recipe-details[open] summary::before { content: "−"; }
.dynamic-result__recipe h4, .implementation-content h4 { margin: 0 0 var(--s-2); font-size: var(--recipe-font-subheading); }
.dynamic-result__recipe ul, .dynamic-result__recipe ol, .implementation-content ul, .implementation-content ol { margin: 0; padding-left: 1.35rem; line-height: 1.55; }
.dynamic-result__recipe li + li, .implementation-content li + li { margin-top: var(--s-2); }
.dynamic-result__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-3); margin-top: var(--s-3); }
.dynamic-save-status { color: var(--recipe-muted); font-size: var(--recipe-font-control); }

.implementation-section { margin-top: var(--s-8); }
.concept-implementations-modal .modal-dialog { width: min(70rem, calc(100vw - 2rem)); max-width: none; max-height: calc(100dvh - 2rem); margin: 1rem auto; box-sizing: border-box; overflow: hidden; }
.concept-implementations-modal .modal-body { min-height: 0; min-width: 0; overflow-wrap: anywhere; }
.concept-implementations-modal .implementation-section { margin: 0; }
.concept-implementations-modal .implementation-section > p { margin-top: 0; color: var(--recipe-muted); }
.implementation-section__heading { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--s-5); padding-bottom: var(--s-4); }
.implementation-section__heading > p { max-width: 32rem; margin: 0; color: var(--recipe-muted); }
.implementation-switcher { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid var(--recipe-line-strong); }
.implementation-switcher button { min-height: var(--recipe-control-touch); padding: var(--s-4); border: 0; border-right: 1px solid var(--recipe-line); background: var(--recipe-surface-muted); color: var(--recipe-muted); text-align: left; cursor: pointer; }
.implementation-switcher button:last-child { border-right: 0; }
.implementation-switcher button[aria-selected="true"] { background: var(--recipe-surface); color: var(--recipe-ink); box-shadow: var(--recipe-shadow-selection-inset); }
.implementation-switcher span, .implementation-switcher small { display: block; }
.implementation-switcher span { font-weight: 700; }
.implementation-switcher small { margin-top: var(--s-1); color: inherit; }
.implementation-panel { padding: var(--s-5); border: 1px solid var(--recipe-line-strong); border-top: 0; background: var(--recipe-surface); }
.implementation-panel[hidden] { display: none; }
.implementation-panel__header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s-4); }
.implementation-panel__header h3 { margin: var(--s-2) 0 0; font: 600 var(--recipe-font-title)/1.15 var(--font-serif); }
.implementation-panel__header p { max-width: 60ch; margin: var(--s-2) 0 0; color: var(--recipe-muted); }
.implementation-badges span { padding: var(--s-1) var(--s-2); border: 1px solid var(--recipe-line); color: var(--recipe-muted); font-size: var(--recipe-font-metadata); text-transform: uppercase; letter-spacing: .06em; }
.concept-analysis-modal .modal-dialog { width: min(52rem, calc(100vw - 2rem)); max-width: none; max-height: calc(100dvh - 2rem); margin: 1rem auto; box-sizing: border-box; overflow: hidden; }
.concept-analysis-modal .modal-body { min-width: 0; min-height: 0; overflow-wrap: anywhere; }
.concept-analysis__body { grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); }
.concept-analysis__body ul { padding-left: 1.25rem; }
.concept-analysis__body li { padding-block: .25rem; }
.concept-analysis__body h3 { margin: 0; font-size: var(--recipe-font-subheading); }

.page-concept-detail :focus-visible { outline: var(--recipe-focus-ring); outline-offset: var(--recipe-focus-offset); }
@media (max-width: 1050px) {
  .dynamic-controls fieldset { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dynamic-anchor-links { grid-column: 1 / -1; }
}
@media (max-width: 820px) {
  .concept-hero, .dynamic-workspace__intro, .implementation-section__heading, .implementation-panel__header { align-items: stretch; flex-direction: column; }
  .concept-hero__actions { justify-content: flex-start; }
  .dynamic-layout { display: flex; flex-direction: column; align-items: stretch; }
  .dynamic-result { order: 2; border-left: 0; border-bottom: 1px solid var(--recipe-line); }
  .dynamic-result__metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .dynamic-result__recipe, .implementation-content, .concept-analysis__body { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) {
  .concept-implementations-modal .modal-dialog { margin: 0; max-height: 100dvh; padding: 1rem; }
  .concept-shell { width: min(100% - 1rem, 76rem); padding-top: var(--s-3); }
  .concept-hero h1 { font-size: var(--recipe-font-campaign-title); }
  .concept-hero { gap: var(--s-3); padding-bottom: var(--s-3); }
  .concept-deck { font-size: var(--recipe-font-body); }
  .concept-facts { gap: var(--s-2); margin-top: var(--s-3); }
  .dynamic-workspace__intro { gap: var(--s-2); }
  .dynamic-workspace__intro h2 { font-size: var(--recipe-font-title); }
  .dynamic-release { align-self: flex-start; }
  .dynamic-controls fieldset { grid-template-columns: minmax(0, 1fr); gap: var(--s-3); }
  .dynamic-workspace__intro, .dynamic-controls, .dynamic-result, .implementation-panel { padding: var(--s-4); }
  .dynamic-number-row { grid-template-columns: 1fr 1fr; }
  .dynamic-result__metrics, .implementation-metrics { grid-template-columns: minmax(0, 1fr); }
  .dynamic-result__metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dynamic-result__metrics div:last-child { grid-column: 1 / -1; }
  .implementation-switcher { grid-template-columns: minmax(0, 1fr); }
  .implementation-switcher button { border-right: 0; border-bottom: 1px solid var(--recipe-line); }
  .implementation-switcher button:last-child { border-bottom: 0; }
  .implementation-panel__header .btn { width: 100%; }
}

/* Model curation stays beside the graph and ahead of secondary diagnostics. */
.model-editor { min-width: 0; padding-bottom: var(--s-4); margin-bottom: var(--s-4); border-bottom: 1px solid var(--recipe-line); }
.model-editor h3 { margin: 0; font: 600 var(--recipe-font-title)/1.2 var(--font-serif); }
.model-editor p, .model-editor li { font-size: var(--recipe-font-control); line-height: 1.5; overflow-wrap: anywhere; }
.model-editor fieldset { border: 0; padding: 0; margin: var(--s-3) 0; min-width: 0; }
.model-editor legend, .model-editor summary { font-weight: 700; }
.model-editor summary { cursor: pointer; padding: var(--s-3) 0; }
.model-editor label { display: block; margin: var(--s-2) 0; font-size: var(--recipe-font-control); }
.model-editor input:not([type="checkbox"]):not([type="hidden"]), .model-editor select, .model-editor textarea { box-sizing: border-box; width: 100%; min-height: var(--recipe-control-touch); }
.model-editor input[type="checkbox"] { margin-right: var(--s-2); }
.model-editor__range { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s-2); }
.model-editor__checks { color: var(--recipe-warning-strong); }
.model-editor__activation { margin: var(--s-4) 0; padding-top: var(--s-3); border-top: 1px solid var(--recipe-line); }
/* Reconciliation-style workbench: one left inspector/editor and a wide canvas. */
.concept-shell { width: min(100rem, calc(100% - 2rem)); padding-top: var(--s-3); }
.concept-hero { align-items: center; flex-wrap: wrap; gap: var(--s-4); padding-bottom: var(--s-3); }
.concept-hero__copy { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--s-1) var(--s-3); min-width: 0; }
.concept-hero__copy > .concept-eyebrow { flex-basis: 100%; margin: 0; }
.concept-hero h1 { font-size: var(--recipe-font-title); line-height: 1.2; overflow-wrap: anywhere; }
.concept-facts { margin: 0; gap: var(--s-2); font-size: var(--recipe-font-compact); }
.concept-hero__actions { flex-wrap: wrap; gap: var(--s-1); max-width: 100%; }
.concept-hero__actions .btn { min-height: var(--recipe-control-touch); white-space: nowrap; padding: var(--s-2) var(--s-3); }
.concept-menu { position: relative; }
.concept-menu > summary { cursor: pointer; list-style: none; }
.concept-menu > summary::-webkit-details-marker { display: none; }
.concept-menu__links { position: absolute; right: 0; top: 100%; z-index: 20; display: grid; min-width: 14rem; padding: var(--s-2); border: 1px solid var(--recipe-line); background: var(--recipe-surface); box-shadow: var(--recipe-shadow-overlay); }
.concept-menu__links a { padding: var(--s-3); font-size: var(--recipe-font-control); }
.dynamic-workspace { margin-top: var(--s-3); }
.dynamic-layout { grid-template-columns: minmax(18rem, 21rem) minmax(0, 1fr); }
.concept-sidebar { grid-column: 1; grid-row: 1; min-width: 0; max-height: calc(100dvh - 12rem); overflow: auto; position: sticky; top: var(--s-4); border-right: 1px solid var(--recipe-line); background: var(--recipe-surface-muted); }
.concept-sidebar > summary { display: none; }
.concept-sidebar .dynamic-result { padding: var(--s-4); border: 0; }
.dynamic-layout .dynamic-graph-stage { grid-column: 2; grid-row: 1; }
.dynamic-layout .dynamic-graph-frame { height: clamp(28rem, calc(100dvh - 16rem), 52rem); }
.model-editor { margin-bottom: 0; padding-bottom: var(--s-3); }
.model-editor h3 { font-size: var(--recipe-font-heading); }
.model-editor label { text-transform: none; letter-spacing: normal; }
.dynamic-result > .dynamic-selected:first-child { margin-top: 0; padding-top: 0; border-top: 0; margin-bottom: var(--s-4); }
@media (max-width: 820px) {
  .concept-hero { flex-direction: row; flex-wrap: wrap; gap: var(--s-2); }
  .concept-hero__actions { justify-content: flex-start; }
  .concept-sidebar { order: 1; position: static; max-height: none; overflow: visible; border-right: 0; border-bottom: 1px solid var(--recipe-line); }
  .concept-sidebar > summary { display: flex; align-items: center; justify-content: space-between; min-height: var(--recipe-control-touch); padding: var(--s-2) var(--s-4); cursor: pointer; font-weight: 700; }
  .concept-sidebar > summary::after { content: "+"; }
  .concept-sidebar[open] > summary::after { content: "−"; }
  .dynamic-layout .dynamic-graph-stage { order: 2; }
  .dynamic-layout .dynamic-graph-frame { height: clamp(25rem, calc(100dvh - 18rem), 36rem); }
}
@media (max-width: 560px) {
  .concept-shell { width: calc(100% - 1rem); padding-top: var(--s-2); }
  .concept-hero h1 { font-size: var(--recipe-font-title); }
  .concept-hero__actions { width: 100%; }
  .concept-hero__actions .btn { white-space: normal; }
}

.concept-sidebar .dynamic-controls { padding: var(--s-3) 0; margin-bottom: var(--s-4); }
.concept-sidebar .dynamic-controls fieldset { display: block; }
.concept-sidebar .dynamic-slider-control, .concept-sidebar .dynamic-anchor-links { margin-top: var(--s-3); }
.recipe-model {
  border-top: 1px solid var(--recipe-line);
  padding-top: 1rem;
}
.recipe-model__actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .5rem;
}
.recipe-model__canvas-frame { position: relative; }
.recipe-model__concept-add { position: absolute; z-index: 3; width: var(--recipe-control-touch); height: var(--recipe-control-touch); min-height: var(--recipe-control-touch); padding: 0; border-radius: var(--recipe-radius-status); display: grid; place-items: center; font-size: var(--recipe-font-title); line-height: 1; box-shadow: var(--recipe-shadow-overlay); }
.recipe-model__concept-add[hidden] { display: none; }
.recipe-model__canvas-tools { position: absolute; top: var(--s-2); right: var(--s-2); z-index: 2; display: flex; align-items: flex-start; gap: var(--s-2); max-width: calc(100% - var(--s-4)); }
.recipe-model__canvas-tools .btn { min-height: var(--recipe-control-touch); background: var(--recipe-surface); white-space: nowrap; }
.recipe-model__view-menu > summary { display: flex; align-items: center; gap: var(--s-1); list-style: none; cursor: pointer; }
.recipe-model__view-menu > summary::-webkit-details-marker { display: none; }
.recipe-model__view-menu[open] > summary { background: var(--recipe-accent-wash); }
.recipe-model__view-options { position: absolute; top: calc(100% + var(--s-1)); right: 0; width: min(16rem, calc(100vw - var(--s-8))); box-sizing: border-box; display: grid; gap: var(--s-1); padding: var(--s-2) var(--s-3); border: 1px solid var(--recipe-line-strong); background: var(--recipe-surface); box-shadow: var(--recipe-shadow-overlay); }
.recipe-model__view-options .recipe-model__evidence-toggle { min-height: var(--recipe-control-touch); margin: 0; font-size: var(--recipe-font-control); text-transform: none; letter-spacing: normal; }
.recipe-model > [data-model-status]:empty { display: none; }
.recipe-model__canvas-status { font-size: var(--recipe-font-compact); margin-block: .3rem .75rem; }
.recipe-model__dialog [data-model-feedback]:empty { display: none; }
.recipe-model__dialog .modal-dialog { width: min(56rem, calc(100vw - 2rem)); max-width: none; max-height: calc(100dvh - 2rem); margin: 1rem auto; box-sizing: border-box; overflow: hidden; }
.recipe-model__dialog .modal-body { min-width: 0; min-height: 0; overflow-wrap: anywhere; }
.recipe-model__layout { display: grid; grid-template-columns: minmax(18rem, 22rem) minmax(0, 1fr); gap: 1rem; }
.recipe-model__sidebar {
  background: var(--recipe-surface-muted);
  border: 1px solid var(--recipe-line);
  padding: 1rem;
  max-height: calc(100dvh - 12rem);
  overflow-y: auto;
  position: sticky;
  top: 1rem;
  align-self: start;
}
.recipe-model__sidebar > summary { display: none; }

.recipe-model__menu { display: grid; gap: var(--s-1); padding-bottom: var(--s-3); margin-bottom: var(--s-3); border-bottom: 1px solid var(--recipe-line); min-width: 0; }
.recipe-model__menu h3:not(:first-child) { margin-top: var(--s-3); }
.recipe-model__sidebar .recipe-model__menu h3 { font: 700 var(--recipe-font-control)/1.3 var(--font-sans); color: var(--recipe-muted); margin-bottom: var(--s-1); }
.recipe-model__menu .btn { width: 100%; min-height: var(--recipe-control-touch); box-sizing: border-box; display: flex; align-items: center; justify-content: flex-start; text-align: left; white-space: normal; padding: var(--s-2) var(--s-3); border-color: transparent; background: transparent; font-size: var(--recipe-font-control); overflow-wrap: anywhere; }
.recipe-model__menu .btn:hover { background: var(--recipe-accent-wash); border-color: var(--recipe-line); }
.recipe-model__menu .btn:focus-visible { outline: 2px solid var(--recipe-accent-strong); outline-offset: -2px; }
.recipe-model__sidebar .recipe-model__menu a.btn { margin: 0; }

.recipe-model__sidebar section, .recipe-model__sidebar details { margin-block: 1rem; }
.recipe-model__sidebar details > summary { cursor: pointer; font-weight: 600; padding-block: .4rem; }
.recipe-model__sidebar h3 { font-size: var(--recipe-font-heading); margin-block: .7rem; }
.recipe-model__sidebar h4 { font-size: var(--recipe-font-body); margin-block: .7rem; }
.recipe-model__field { display: grid; gap: .3rem; margin-block: .75rem; font-size: var(--recipe-font-control); text-transform: none; letter-spacing: normal; }
.recipe-model__field input, .recipe-model__field select, .recipe-model__field textarea { width: 100%; min-width: 0; box-sizing: border-box; }
.recipe-model__field textarea { min-height: 6rem; resize: vertical; }
.recipe-model__check { display: flex; gap: .5rem; align-items: flex-start; margin-block: .6rem; font-size: var(--recipe-font-control); }
.recipe-model__check input { flex: 0 0 auto; width: auto; margin-top: .25rem; }
.recipe-model__control { border-bottom: 1px solid var(--recipe-line); padding-bottom: .5rem; }
.recipe-model__inspector { border-top: 1px solid var(--recipe-line); padding-top: .5rem; }
.recipe-model__stage { min-width: 0; }
.recipe-model__core { background: var(--recipe-surface); border: 1px solid var(--recipe-line); padding: 1rem; }
.recipe-model__core h2 { margin: 0; }
.recipe-model__eyebrow { color: var(--recipe-muted); font-size: var(--recipe-font-compact); margin: 0 0 .3rem; }
.recipe-model__sidebar [data-servings-summary] { font-weight: 700; font-size: var(--recipe-font-compact); }
.recipe-model__core [data-servings-controls] { margin-block: 1.5rem; }
.recipe-model input[type="range"] { accent-color: var(--recipe-accent); min-height: 2.75rem; cursor: pointer; }
.recipe-model__ingredient-control { border-top: 1px solid var(--recipe-line); padding-block: .25rem; }
.recipe-model__ingredient-control .recipe-model__field { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); align-items: center; margin: 0; gap: .5rem; }
.recipe-model__ingredient-control .recipe-model__field > span { overflow-wrap: anywhere; }
.recipe-model__ingredient-control > span { font-size: var(--recipe-font-compact); color: var(--recipe-muted); }
.recipe-model__removed { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.recipe-model__removed:empty { display: none; }
.recipe-model__removed:not(:empty) { margin-bottom: .75rem; }
.recipe-model__core .recipe-model__canvas { border: 0; background-color: var(--recipe-canvas); background-image: radial-gradient(var(--recipe-line) 1px, transparent 1px); background-size: 20px 20px; }
.recipe-model__core input[type="number"] { max-width: 10rem; }
.recipe-model__servings-row { display: grid; grid-template-columns: minmax(0, 1fr) 4.5rem; align-items: end; gap: .5rem; }
.recipe-model__servings-row .recipe-model__field { margin: .25rem 0 .5rem; gap: 0; }
.recipe-model__baseline { margin-bottom: .5rem; }
.recipe-model__baseline .recipe-model__field { grid-template-columns: minmax(0, 1fr) 4.5rem; align-items: center; margin: 0; }
.recipe-model__baseline small { display: block; color: var(--recipe-muted); font-size: var(--recipe-font-compact); margin-top: .25rem; }
.recipe-model__baseline small[hidden] { display: none; }
.recipe-model__sidebar [data-model-panel="controls"] { margin-top: 0; }
.recipe-model__ingredient-grid { list-style: none; padding: 0; margin: 1rem 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: .75rem; }
.recipe-model__ingredient-grid li { border: 1px solid var(--recipe-line); background: var(--recipe-surface-muted); padding: 1rem; display: grid; align-content: start; gap: .4rem; overflow-wrap: anywhere; }
.recipe-model__ingredient-name { font-size: var(--recipe-font-body); }
.recipe-model__ingredient-amount { font-size: var(--recipe-font-heading); }
.recipe-model__scaling-note { color: var(--recipe-muted); font-size: var(--recipe-font-compact); }
.recipe-model__canvas { height: clamp(26rem, 65dvh, 48rem); border: 1px solid var(--recipe-line); background: var(--recipe-surface); }
.recipe-model__evidence-toggle { display: flex; gap: .5rem; align-items: center; margin-block: .5rem; }
.recipe-model__evidence-toggle input { width: auto; }
.recipe-model__relationships { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--s-5); align-content: start; align-items: start; }
.recipe-model__relationships > section { min-width: 0; }
.recipe-model__relationship-list { list-style: none; padding: 0; margin: var(--s-3) 0; display: grid; gap: var(--s-2); }
.recipe-model__relationship-list .btn { width: 100%; text-align: left; justify-content: flex-start; white-space: normal; overflow-wrap: anywhere; }
.recipe-model__relationship-list .btn[aria-pressed="true"] { border-color: var(--recipe-accent-strong); background: var(--recipe-accent-wash); }
.recipe-model__relationship-actions, [data-relationship-actions] { display: flex; flex-wrap: wrap; gap: var(--s-2); }
.recipe-model__relationship-note { color: var(--recipe-muted); font-size: var(--recipe-font-control); }
.recipe-model__relationships [data-relationship-feedback]:empty { display: none; }
@media (max-width: 640px) { .recipe-model__relationships { grid-template-columns: minmax(0, 1fr); gap: var(--s-3); } }
.recipe-model__result { padding-block: 1rem; }
.recipe-model__result li { padding-block: .35rem; }
.recipe-model__provenance { display: block; color: var(--recipe-muted); }
.recipe-model__issue { border-left: 3px solid var(--recipe-warning-strong); padding-left: .75rem; }
.recipe-model__state { font-weight: 600; }
.recipe-model__sidebar p, .recipe-model__sidebar small { overflow-wrap: anywhere; }
.recipe-model__sidebar a { display: block; margin-block: .5rem; }
.recipe-model__sheet .modal-dialog { max-height: calc(100dvh - 2rem); margin-block: 1rem; }
.recipe-model__inspector { min-width: 0; overflow-wrap: anywhere; }
.recipe-model__sheet .modal-body { min-width: 0; }
.recipe-model__editor .modal-dialog { width: min(56rem, calc(100vw - 2rem)); max-width: none; max-height: calc(100dvh - 2rem); margin: 1rem auto; box-sizing: border-box; overflow: hidden; }
.recipe-model__editor .modal-body { min-height: 0; min-width: 0; overflow-wrap: anywhere; }
.recipe-model__editor details { margin-block: 1rem; border-top: 1px solid var(--recipe-line); padding-top: .75rem; }
.recipe-model__editor summary { cursor: pointer; font-weight: 600; padding-block: .4rem; }
.recipe-model__editor .modal-footer { display: flex; flex-wrap: wrap; gap: .5rem; }
.recipe-model .recipe-model__field { text-transform: none; letter-spacing: normal; }
/* Use the viewport as the workspace, as on the reconciliation surfaces. */
.page-recipe-workspace .concept-shell { padding-block: var(--s-1); }
.page-recipe-workspace .concept-hero { gap: var(--s-1) var(--s-3); padding-bottom: var(--s-1); }
.page-recipe-workspace .concept-hero__copy > .concept-eyebrow { display: none; }
.page-recipe-workspace .concept-hero__actions .btn { padding: .4rem .6rem; }
.page-recipe-workspace .recipe-model { border-top: 0; padding-top: .5rem; }
.recipe-model__layout { gap: .65rem; }
.recipe-model__sidebar, .recipe-model__core { padding: .65rem; }
.recipe-model__sidebar h3 { margin-top: 0; margin-bottom: .35rem; }
.recipe-model__canvas-status { margin-block: .25rem .4rem; }
.recipe-model__canvas-status:empty { display: none; }
.recipe-model__ingredient-control { padding-block: 0; }
.recipe-model__sidebar input[type="range"] { margin-block: 0; }
@media (min-width: 821px) and (min-height: 600px) {
  body.page-recipe-workspace { display: flex; flex-direction: column; height: 100dvh; min-height: 0; padding-bottom: 0; overflow: hidden; }
  .page-recipe-workspace > .navbar { flex: 0 0 auto; }
  .page-recipe-workspace #main-content { display: flex; flex-direction: column; flex: 1 1 0; min-height: 0; }
  .page-recipe-workspace .concept-shell { display: flex; flex-direction: column; flex: 1 1 0; min-height: 0; box-sizing: border-box; }
  .page-recipe-workspace .concept-hero { flex: 0 0 auto; }
  .page-recipe-workspace .recipe-model { display: flex; flex-direction: column; flex: 1 1 0; min-height: 0; }
  .page-recipe-workspace .recipe-model__layout { flex: 1 1 0; min-height: 0; grid-template-columns: minmax(16rem, 19rem) minmax(0, 1fr); }
  .page-recipe-workspace .recipe-model__sidebar { max-height: 100%; min-height: 0; box-sizing: border-box; position: static; }
  .page-recipe-workspace .recipe-model__stage, .page-recipe-workspace .recipe-model__core { display: flex; flex-direction: column; min-height: 0; }
  .page-recipe-workspace .recipe-model__core { flex: 1 1 0; }
  .page-recipe-workspace .recipe-model__canvas-frame { flex: 1 1 0; min-height: 0; }
  .page-recipe-workspace .recipe-model__canvas { position: absolute; inset: 0; height: 100%; width: 100%; }
}
@media (max-width: 820px) {
  .recipe-model__dialog .modal-dialog { width: 100%; margin: 0; max-height: 100dvh; padding: 1rem; }
  .concept-analysis-modal .modal-dialog { width: 100%; margin: 0; max-height: 100dvh; padding: 1rem; }
  .recipe-model__layout { grid-template-columns: minmax(0, 1fr); }
  .recipe-model__sidebar { max-height: none; position: static; }
  .recipe-model__sidebar > summary { display: list-item; }
  .recipe-model__canvas { height: 40rem; }
  .recipe-model__actions .btn { flex: 1 1 auto; }
  .recipe-model__editor .modal-dialog { width: 100%; margin: 0; max-height: 100dvh; padding: 1rem; }
}
