html[data-app-state="loading"] body > :not(#app-boot) { visibility: hidden; }
#app-boot { position: fixed; inset: 0; z-index: 100; display: grid; align-content: center; justify-items: center; gap: 12px; padding: 24px; background: var(--paper); color: var(--ink); text-align: center; }
#app-boot p { margin: 0; }
#app-boot .boot-brand { font-size: 24px; font-weight: 700; }
#app-boot a { color: var(--ink); text-underline-offset: 4px; }
html[data-app-state="ready"] #app-boot { display: none; }
.input-hint, .input-error { display: block; margin-top: 6px; font-size: 13px; line-height: 1.5; font-weight: 400; }
.input-hint { color: var(--muted); }
.input-error { color: #963c27; }
.input-error[hidden], .input-adjustment[hidden], .input-guide-notice[hidden] { display: none; }
.input-adjustment, .input-guide-notice, .schedule-input-summary { font-size: 14px; line-height: 1.6; margin: 12px 0; }
.input-adjustment { padding: 12px 14px; background: var(--paper); border: 1px solid var(--line); border-radius: 8px; }
.input-guide-notice { color: #963c27; }
.schedule-input-summary { font-weight: 600; }
.ambient-fields:has(> #cooling-field[hidden]) > label:first-child { grid-column: 1 / -1; }
input[aria-invalid="true"], select[aria-invalid="true"] { border-color: #963c27; }

:root {
  --font: 'DM Sans', Arial, sans-serif;
  --display: 'Barlow Condensed', 'Arial Narrow', Arial, sans-serif;
  color-scheme:light;
  --paper:#f5f3ec;
  --ink:#233c34;
  --green:#193c35;
  --muted:#66716a;
  --line:#dedfd4;
  --accent:#ac4a2f;
  --gold:#d8ba77;
  --white:#fffef9;
  font-family:var(--font);
  font-synthesis:none
}

* {
  box-sizing:border-box
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink)
}
button,input,select {
  font:inherit
}
button,a,input,select {
  -webkit-tap-highlight-color:transparent
}
button {
  cursor:pointer
}
a {
  color:inherit
}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible {
  outline:3px solid var(--accent);
  outline-offset:3px
}
[hidden] {
  display:none!important
}
.topbar {
  height:88px;
  border-bottom:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:0 5vw
}
.brand {
  font-family:Georgia,serif;
  font-size:26px;
  font-weight:bold;
  text-decoration:none;
  display:flex;
  gap:10px;
  align-items:center
}
.brandmark {
  width:39px;
  height:39px;
  border:1px solid var(--green);
  border-radius:50%;
  display:grid;
  place-items:center;
  font-size:31px;
  line-height:1;
  padding-bottom:6px
}
.beta {
  font:10px Arial,sans-serif;
  letter-spacing:1px;
  border:1px solid #c6c9bd;
  padding:4px 5px;
  border-radius:3px;
  margin-left:3px
}
.local-badge {
  font-size:12px;
  color:var(--muted)
}
.local-badge span {
  color:#63856a;
  font-size:10px;
  margin-right:7px
}
main {
  max-width:1450px;
  margin:auto;
  padding:0 5vw
}
.intro {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:56px 0 46px;
  gap:30px
}
.eyebrow {
  font-size:10px;
  letter-spacing:2px;
  font-weight:700;
  margin:0 0 14px;
  color:var(--accent)
}
h1 {
  font-family:Georgia,'Times New Roman',serif;
  font-size:clamp(42px,4.7vw,67px);
  line-height:1.03;
  letter-spacing:-2.5px;
  font-weight:400;
  margin:0 0 20px
}
.lead {
  font-size:14px;
  line-height:1.8;
  color:var(--muted);
  margin:0
}
.intro-stamp {
  flex-shrink:0;
  width:165px;
  height:165px;
  border:1px solid #b9bdab;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  margin-right:34px;
  transform:rotate(9deg);
  outline:1px solid #b9bdab;
  outline-offset:7px;
  gap:8px
}
.intro-stamp>span {
  font-size:8px;
  letter-spacing:1.5px
}
.intro-stamp strong {
  font:56px Georgia,serif
}
.intro-stamp strong span {
  font-size:27px
}
.workspace {
  display:grid;
  grid-template-columns:minmax(315px,0.8fr) minmax(0,1.5fr);
  gap:36px;
  align-items:start
}
.panel {
  background:var(--white);
  border:1px solid var(--line);
  border-radius:9px
}
.settings {
  padding:27px 28px
}
.panel-heading {
  padding-bottom:22px;
  border-bottom:1px solid var(--line)
}
h2 {
  font:26px Georgia,serif;
  margin:0;
  letter-spacing:-.5px
}
.panel-heading h2 {
  font-size:24px
}
.panel-heading .eyebrow {
  margin-bottom:10px
}
fieldset {
  border:0;
  border-bottom:1px solid var(--line);
  margin:0;
  padding:22px 0 7px;
  min-width:0
}
legend {
  float:none;
  width:100%;
  font-size:13px;
  font-weight:700;
  padding:0 0 17px
}
label {
  display:flex;
  flex-direction:column;
  gap:8px;
  font-size:11px;
  font-weight:600;
  margin:0 0 16px;
  color:#4d5d53
}
.form-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:15px;
  clear:both
}
input,select {
  width:100%;
  min-width:0;
  border:1px solid #d7dacf;
  border-radius:5px;
  background:#fff;
  color:var(--ink);
  height:43px;
  padding:0 10px;
  font-size:13px;
  font-weight:400
}
input[type=datetime-local] {
  font-size:13px
}
input:hover,select:hover {
  border-color:#8c9b88
}
.field-note {
  font-size:10px;
  line-height:1.6;
  color:var(--muted);
  clear:both
}
.primary {
  background:var(--green);
  color:white;
  width:100%;
  display:flex;
  justify-content:space-between;
  align-items:center;
  border:0;
  border-radius:5px;
  padding:16px;
  font-size:13px;
  margin-top:23px
}
.primary:hover {
  background:#275247
}
.primary span {
  font-size:20px
}
.text-button {
  display:block;
  border:0;
  background:transparent;
  color:var(--muted);
  font-size:11px;
  margin:15px auto 0;
  padding:5px;
  text-decoration:underline;
  text-underline-offset:4px
}
.results-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:5px 0 24px;
  gap:15px
}
.results-heading .eyebrow {
  margin-bottom:10px
}
.model-tag {
  font-size:9px;
  white-space:nowrap;
  background:#e9eadd;
  border:1px solid #dadccf;
  padding:7px 9px;
  border-radius:20px
}
.recipe-summary {
  background:var(--green);
  color:#fffef3;
  border-radius:8px;
  padding:27px 29px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:15px
}
.summary-caption {
  font-size:9px;
  letter-spacing:2px;
  color:#c0c9b3
}
.recipe-summary h3 {
  font:30px Georgia,serif;
  margin:10px 0 9px
}
.recipe-summary p {
  font-size:11px;
  color:#c3cfc2;
  margin:0;
  line-height:1.5
}
.hydration-badge {
  display:flex;
  flex-direction:column;
  align-items:center;
  border-left:1px solid #527067;
  padding-left:25px
}
.hydration-badge strong {
  font:37px Georgia,serif;
  color:var(--gold)
}
.hydration-badge span {
  font-size:9px;
  color:#c3cfc2;
  margin-top:7px
}
.ingredient-grid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:12px;
  margin-top:15px
}
.ingredient {
  background:var(--white);
  padding:21px 24px;
  border-radius:7px;
  border:1px solid var(--line)
}
.ingredient h3 {
  font-size:11px;
  font-weight:400;
  margin:0 0 10px;
  color:#526055
}
.ingredient-value {
  font:35px Georgia,serif;
  margin:0 0 7px;
  letter-spacing:-1px
}
.ingredient-value span {
  font:14px Arial,sans-serif;
  letter-spacing:0;
  color:var(--muted)
}
.ingredient-caption {
  font-size:10px;
  color:var(--muted);
  margin:0;
  line-height:1.4
}
.water-note {
  font-size:11px;
  line-height:1.7;
  padding:14px 3px;
  color:var(--muted)
}
.note {
  background:#f0e5cb;
  border-radius:5px;
  padding:13px;
  font-size:12px;
  line-height:1.6;
  margin-bottom:15px
}
.schedule {
  padding:25px 25px 16px
}
.preparation-note {
  padding:20px 24px;
  margin:0 0 16px
}
.preparation-note h3 {
  font:21px Georgia,serif;
  margin:0 0 10px
}
.preparation-note p {
  font-size:12px;
  line-height:1.8;
  color:var(--muted);
  margin:0
}
button:disabled {
  opacity:.5;
  cursor:default
}
.schedule-heading {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px
}
.schedule-heading .eyebrow {
  font-size:9px;
  margin-bottom:8px
}
.schedule h3 {
  font:25px Georgia,serif;
  margin:0
}
.duration {
  font-size:10px;
  padding:7px 9px;
  border-radius:4px;
  background:#f0f0e8;
  white-space:nowrap
}
.timeline {
  list-style:none;
  padding:0;
  margin:25px 0 12px
}
.timeline li {
  display:grid;
  grid-template-columns:29px 1fr auto;
  gap:12px;
  position:relative;
  padding:0 0 22px;
  align-items:start
}
.timeline li:last-child {
  padding-bottom:0
}
.timeline li:not(:last-child):before {
  content:'';
  position:absolute;
  left:13px;
  top:29px;
  bottom:1px;
  width:1px;
  background:#dddcd0
}
.step-number {
  width:28px;
  height:28px;
  border:1px solid #d7d8c9;
  border-radius:50%;
  display:grid;
  place-items:center;
  font-size:9px;
  color:#74806d;
  background:var(--white)
}
.timeline li:last-child .step-number {
  background:var(--accent);
  color:white;
  border-color:var(--accent)
}
.timeline h4 {
  font-size:12px;
  font-weight:600;
  margin:1px 0 5px
}
.timeline p {
  font-size:10px;
  line-height:1.5;
  color:var(--muted);
  margin:0
}
.timeline time {
  font-size:11px;
  padding-top:2px;
  white-space:nowrap
}
.oven-note {
  border-left:2px solid var(--accent);
  padding:0 0 0 18px;
  margin:25px 3px
}
.oven-note .eyebrow {
  font-size:9px
}
.oven-note h3 {
  font:20px Georgia,serif;
  margin:9px 0
}
.oven-note p {
  font-size:11px;
  color:var(--muted);
  line-height:1.8;
  max-width:570px;
  margin:0
}
.actions {
  display:flex;
  gap:12px;
  justify-content:flex-end
}
.actions button {
  font-size:11px;
  border:1px solid #ced2c4;
  border-radius:5px;
  padding:11px 13px;
  background:transparent;
  color:var(--ink)
}
.actions button:hover {
  background:#e7e8dc
}
.error {
  background:#f7e4dc;
  border:1px solid #b7745c;
  padding:22px;
  color:#7e2d17;
  border-radius:7px;
  font-size:14px;
  line-height:1.6
}
.method-note {
  border-top:1px solid var(--line);
  margin-top:45px;
  padding:28px 0 35px;
  display:flex;
  gap:18px;
  align-items:start
}
.note-icon {
  display:grid;
  place-items:center;
  border:1px solid #a6ad9b;
  border-radius:50%;
  width:21px;
  height:21px;
  flex-shrink:0;
  font:italic 14px Georgia,serif
}
.method-note h2 {
  font:17px Georgia,serif;
  letter-spacing:0;
  margin:0 0 9px
}
.method-note p {
  font-size:11px;
  line-height:1.8;
  color:var(--muted);
  margin:0 0 5px;
  max-width:1000px
}
footer {
  border-top:1px solid var(--line);
  padding:25px 5vw;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px
}
footer .brand {
  font-size:20px
}
footer p,footer>span {
  font-size:10px;
  color:var(--muted)
}

@media(min-width:1600px) {
  main {
  padding:0 60px
}

}
@media(max-width:1050px) {
  .workspace {
  gap:22px;
  grid-template-columns:minmax(300px,.85fr) minmax(0,1.15fr)
}
.settings {
  padding:24px 20px
}
.recipe-summary {
  padding:24px 20px
}
.recipe-summary h3 {
  font-size:25px
}
.hydration-badge {
  padding-left:15px
}
.schedule {
  padding:23px 18px
}
.timeline li {
  grid-template-columns:26px 1fr;
  gap:10px
}
.timeline time {
  grid-column:2;
  padding:0;
  margin-top:-7px
}
.timeline li {
  padding-bottom:23px
}
.model-tag {
  display:none
}

}
@media(max-width:740px) {
  .topbar {
  height:72px;
  padding:0 6vw
}
.brand {
  font-size:23px
}
.local-badge {
  font-size:10px
}
.brandmark {
  display:none
}
main {
  padding:0 6vw
}
.intro {
  padding:37px 0 32px
}
.intro-stamp {
  display:none
}
h1 {
  font-size:46px;
  letter-spacing:-1.8px
}
.lead {
  font-size:12px
}
.lead br {
  display:none
}
.workspace {
  grid-template-columns:1fr;
  gap:32px
}
.results-heading {
  padding:0 0 20px
}
.settings {
  padding:23px
}
.timeline li {
  grid-template-columns:28px 1fr auto
}
.timeline time {
  grid-column:auto;
  margin:0;
  padding-top:2px
}
.ingredient {
  padding:20px
}
.recipe-summary h3 {
  font-size:26px
}
.method-note {
  margin-top:33px
}
footer {
  flex-wrap:wrap;
  padding:24px 6vw;
  gap:8px
}
footer>span {
  display:none
}
.results-heading h2 {
  font-size:29px
}
.model-tag {
  display:inline;
  font-size:8px
}
.actions {
  justify-content:start
}
.intro .eyebrow {
  font-size:9px
}

}

@media(max-width:390px) {
  .timeline li {
  grid-template-columns:25px 1fr
}
.timeline time {
  grid-column:2;
  margin-top:-7px
}
.hydration-badge {
  padding-left:12px
}
.recipe-summary {
  padding:22px 17px
}
.recipe-summary h3 {
  font-size:23px
}
.hydration-badge strong {
  font-size:31px
}
.local-badge {
  font-size:9px
}
.ingredient-value {
  font-size:31px
}
.model-tag {
  display:none
}

}

@media print {
  body {
  background:white;
  color:black
}
.topbar,.intro,.settings,.actions,footer,.results-heading .model-tag {
  display:none
}
main {
  padding:0;
  max-width:none
}
.workspace {
  display:block
}
.results {
  width:100%
}
.recipe-summary {
  background:white;
  color:black;
  border:1px solid #aaa
}
.recipe-summary p,.summary-caption,.hydration-badge strong,.hydration-badge span {
  color:black
}
.ingredient-grid {
  grid-template-columns:repeat(4,1fr)
}
.ingredient {
  padding:13px
}
.ingredient-value {
  font-size:28px
}
.schedule {
  break-inside:avoid
}
.timeline li {
  padding-bottom:14px
}
.method-note {
  margin-top:20px;
  padding:15px 0
}
.oven-note {
  margin:15px 0
}
.results-heading {
  padding-bottom:15px
}

}
/* Expanded calculator and the local working guide. */
.topnav{display:flex;align-items:center;gap:22px;font-size:12px}.topnav>a{text-decoration:none;text-underline-offset:5px}.topnav>a:hover{text-decoration:underline}
.equipment-options, .temperature-panel details{margin:0 0 15px;padding:12px;border:1px solid var(--line);border-radius:6px}.equipment-options summary,.temperature-panel summary{cursor:pointer;font-size:12px;font-weight:600;margin-bottom:12px}.equipment-options label:last-of-type{margin-bottom:0}
.temperature-panel,.mixing-console,.growth-targets,.phase-detail{padding:22px 24px;margin-bottom:16px}.temperature-panel h3,.mixing-console h3,.growth-targets h3,.phase-detail h3{font:22px Georgia,serif;margin:0 0 12px}.temperature-panel .inline-controls{display:flex;flex-wrap:wrap;align-items:end;gap:10px}.inline-controls label{flex:1 1 180px;margin-bottom:0}.temperature-panel button,.mixing-console button,.growth-targets button{font-size:12px;min-height:40px;border:1px solid #b9c3b2;background:#edf0e7;color:var(--ink);border-radius:5px;padding:9px 12px}.temperature-panel .text-button,.mixing-console .text-button{background:transparent;border:0;font-size:11px;margin:6px 0 0}.temperature-panel details{margin:16px 0 0}
.mixing-console h4{font:21px Georgia,serif;margin:15px 0 8px}.mixing-console progress{width:100%;height:8px;accent-color:var(--green)}.mixing-console output{display:block;font:48px Georgia,serif;letter-spacing:2px;padding:14px 0;color:var(--green)}.guide-actions{display:flex;gap:10px;flex-wrap:wrap}.guide-water{font-size:12px;line-height:1.7;background:#f1eee2;padding:11px;border-radius:5px}.check-label{display:flex;flex-direction:row;align-items:start;gap:10px;font-size:12px;line-height:1.6;margin:15px 0}.check-label input{width:18px;height:18px;flex-shrink:0;padding:0;margin-top:1px}.mixing-console form{margin-top:15px}.mixing-console form button{background:var(--green);color:var(--white)}
.growth-row{display:grid;grid-template-columns:135px 1fr;align-items:center;gap:16px;margin:15px 0}.growth-row p{font-size:12px;line-height:1.7;color:var(--muted);margin:0}.growth-chart{height:105px;display:flex;align-items:end;justify-content:center;gap:15px;border-bottom:1px solid var(--line)}.growth-chart span{width:48px;min-height:36px;height:36px;background:#e8cf9c;border:1px solid #c3a575;border-radius:7px 7px 0 0;display:flex;align-items:center;justify-content:center;font-size:10px;transition:height .7s ease}.growth-chart .growth-initial{background:#eeeadf}.growth-expanded .growth-target{height:calc(36px * var(--growth))}
.phase-link{font:inherit;border:0;background:transparent;padding:0;text-align:left;color:inherit;text-decoration:underline;text-decoration-color:#c5ccbd;text-underline-offset:4px}.phase-link:hover{color:var(--accent)}.phase-detail p{font-size:12px;line-height:1.8;color:var(--muted)}.cooking-facts{font-size:12px;line-height:1.8;margin:14px 0}.cooking-facts h4{font-size:13px;margin:0 0 6px}.cooking-facts h5{font-size:11px;margin:11px 0 2px;color:var(--muted)}.cooking-facts ul{margin:0 0 8px;padding-left:18px}.oven-note>div>p{font-size:11px;color:var(--muted);line-height:1.8}#app-status{font-size:12px;line-height:1.7;padding:10px 0;margin:12px 0;color:var(--accent)}#app-status:empty{display:none}
@media(max-width:900px){.topnav .local-badge{display:none}.topnav{gap:14px;font-size:11px}}
@media(max-width:740px){.temperature-panel,.mixing-console,.growth-targets,.phase-detail{padding:20px}.temperature-panel .inline-controls{display:grid;grid-template-columns:1fr}.growth-row{grid-template-columns:100px 1fr;gap:13px}.growth-chart{gap:7px}.growth-chart span{width:40px}.topnav{gap:10px;font-size:10px}.topnav>a:last-of-type{max-width:95px}.mixing-console output{font-size:43px}.recipe-summary h3{overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){.growth-chart span{transition:none}html{scroll-behavior:auto}}
@media print{.topnav,.mixing-console,.temperature-panel .inline-controls,.temperature-panel details,.growth-targets button,.phase-detail,#app-status{display:none!important}.temperature-panel,.growth-targets{break-inside:avoid}.phase-link{text-decoration:none}.cooking-facts{break-inside:avoid}.cooking-facts h4{font-size:12px}}

/* Modern Artisan Lab — presentation only. Keep planner and form contracts intact. */
:root {
  --paper: #ede9df;
  --white: #fbf8f0;
  --ink: #263126;
  --muted: #5b6354;
  --line: #d2d1bf;
  --green: #526643;
  --accent: #526643;
  --gold: #e8cc92;
  --surface-secondary: #e1e5d6;
  --accent-hover: #3d5035;
  --olive-deep: #2f432e;
  --on-olive: #fbf8f0;
  --on-olive-muted: #d3ddc9;
  --olive-border: #6c7d5e;
  --field-surface: #fffdf8;
  --field-border: #b7c0a9;
  font-family: var(--font);
  font-size: 14px;
  font-variant-numeric: tabular-nums;
}
.dough-lab ::selection { background: #dce4d6; color: var(--ink); }
.dough-lab { line-height: 1.5; accent-color: var(--green); scrollbar-color: #babeb4 var(--paper); }
.dough-lab input { caret-color: var(--green); }
.dough-lab :is(button, a, input, select, summary):focus-visible { outline: 2px solid var(--green); outline-offset: 3px; }
.skip-link { position: absolute; left: 24px; top: -100px; z-index: 10; background: var(--white); padding: 12px 16px; border: 1px solid var(--green); border-radius: 6px; }
.skip-link:focus { top: 8px; }
@media screen {
  .dough-lab .topbar { height: 64px; padding: 0 max(24px, calc((100vw - 1280px) / 2)); background: var(--olive-deep); color: var(--on-olive); border-bottom: 0; }
  .dough-lab .brand { font-family: inherit; font-size: 20px; font-weight: 650; letter-spacing: -.025em; gap: 10px; }
  .dough-lab .brandmark { display: grid; width: 30px; height: 30px; border-radius: 7px; font-family: Georgia, serif; font-size: 25px; padding-bottom: 4px; background: var(--gold); color: var(--olive-deep); border: 0; }
  .dough-lab .beta { color: var(--muted); border: 0; border-left: 1px solid var(--line); border-radius: 0; padding: 2px 0 2px 12px; letter-spacing: .06em; font-size: 11px; }
  .dough-lab .topbar .beta { color: var(--on-olive-muted); border-color: var(--olive-border); }
  .dough-lab .topnav { align-self: stretch; gap: 24px; font-size: 13px; }
  .dough-lab .topnav > a { display: flex; align-items: center; border-bottom: 2px solid transparent; padding-top: 2px; color: var(--on-olive-muted); }
  .dough-lab .topnav > a[aria-current] { color: var(--on-olive); border-color: var(--gold); font-weight: 600; }
  .dough-lab .local-badge { font-size: 12px; color: var(--on-olive-muted); }
  .dough-lab .local-badge span { color: var(--gold); }
  .dough-lab .topbar :is(a, button):focus-visible { outline-color: var(--gold); outline-offset: -5px; }
  .dough-lab main { max-width: 1328px; padding: 0 24px; }
  .dough-lab .intro { padding: 28px 0 24px; gap: 0; }
  .dough-lab h1 { font: 650 28px/1.25 var(--font); letter-spacing: -.025em; margin: 0 0 8px; color: var(--olive-deep); }
  .dough-lab .lead { font-size: 13px; line-height: 1.6; max-width: 75ch; }
  .dough-lab .lead br { display: none; }
  .dough-lab .intro-stamp { display: none; }
  .dough-lab .eyebrow { display: none; }
  .dough-lab .workspace { grid-template-columns: minmax(340px, .85fr) minmax(0, 1.4fr); gap: 28px; }
  .dough-lab .settings { padding: 20px 24px; border-radius: 8px; background: var(--surface-secondary); border-color: #c0c8b1; }
  .dough-lab .panel-heading { padding-bottom: 16px; border-color: #bac4ab; color: var(--olive-deep); }
  .dough-lab h2, .dough-lab .panel-heading h2 { font: 600 17px/1.4 var(--font); letter-spacing: -.015em; }
  .dough-lab fieldset { padding: 16px 0 8px; border-color: #c0c8b1; }
  .dough-lab legend { padding: 0 0 4px; font-size: 13px; font-weight: 650; color: var(--olive-deep); }
  .dough-lab label { color: #51564e; font-size: 12px; font-weight: 500; gap: 6px; margin-bottom: 12px; }
  .dough-lab .form-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; }
  .dough-lab input, .dough-lab select { height: 40px; border-color: var(--field-border); border-radius: 6px; font-size: 14px; background: var(--field-surface); font-weight: 400; padding: 0 10px; }
  .dough-lab input:hover, .dough-lab select:hover { border-color: #939d8b; }
  .dough-lab input:disabled, .dough-lab select:disabled { background: var(--surface-secondary); color: var(--muted); }
  .dough-lab input[type='datetime-local'] { font-size: 13px; max-width: 100%; }
  .dough-lab .field-note { font-size: 12px; line-height: 1.6; margin: 8px 0 12px; }
  .dough-lab .primary { border-radius: 6px; padding: 11px 14px; min-height: 44px; margin-top: 20px; font-size: 14px; font-weight: 600; }
  .dough-lab .primary:hover { background: var(--accent-hover); }
  .dough-lab .primary span { display: none; }
  .dough-lab .text-button { font-size: 12px; line-height: 1.5; min-height: 36px; margin-top: 8px; padding: 7px 4px; text-underline-offset: 3px; }
  .dough-lab .text-button:hover { color: var(--accent-hover); }
  .dough-lab .results { min-width: 0; }
  .dough-lab .results-heading { min-height: 61px; padding: 0 0 16px; align-items: center; color: var(--olive-deep); }
  .dough-lab .model-tag { display: inline; background: transparent; border: 0; padding: 0; border-radius: 0; color: var(--muted); font-size: 12px; white-space: normal; text-align: right; }
  .dough-lab .recipe-summary { background: var(--olive-deep); color: var(--on-olive); border: 1px solid var(--olive-deep); border-bottom: 0; border-radius: 8px 8px 0 0; padding: 24px; }
  .dough-lab .summary-caption { font-size: 12px; letter-spacing: 0; color: var(--on-olive-muted); }
  .dough-lab .recipe-summary h3 { font: 650 24px/1.3 var(--font); letter-spacing: -.025em; margin: 6px 0 8px; overflow-wrap: anywhere; }
  .dough-lab .recipe-summary p { font-size: 12px; color: var(--on-olive-muted); line-height: 1.6; }
  .dough-lab .hydration-badge { padding-left: 20px; border-color: var(--olive-border); align-items: flex-end; }
  .dough-lab .hydration-badge strong { font: 600 28px/1.2 var(--font); color: var(--gold); letter-spacing: -.025em; }
  .dough-lab .hydration-badge span { font-size: 12px; color: var(--on-olive-muted); margin-top: 4px; }
  .dough-lab .ingredient-grid { display: block; margin: 0; padding: 0 24px; background: var(--white); border: 1px solid var(--line); border-top: 0; border-radius: 0 0 8px 8px; }
  .dough-lab .ingredient { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; column-gap: 16px; row-gap: 2px; padding: 12px 0; border: 0; border-top: 1px solid var(--line); border-radius: 0; background: transparent; }
  .dough-lab .ingredient h3 { font: 600 14px/1.5 var(--font); color: var(--ink); margin: 0; }
  .dough-lab .ingredient-value { grid-column: 2; grid-row: 1 / 3; align-self: center; text-align: right; font: 600 23px/1.3 var(--font); letter-spacing: -.02em; margin: 0; white-space: nowrap; color: var(--olive-deep); }
  .dough-lab .ingredient-value span { font: 400 13px/1.5 var(--font); color: var(--muted); }
  .dough-lab .ingredient-caption { grid-column: 1; font-size: 12px; line-height: 1.5; }
  .dough-lab .water-note { padding: 12px 0 16px; font-size: 12px; line-height: 1.6; }
  .dough-lab .results .panel { padding: 20px 0; margin: 0; border: 0; border-top: 1px solid var(--line); border-radius: 0; background: transparent; }
  .dough-lab .results h3:not(.ingredient h3):not(.recipe-summary h3) { font: 600 16px/1.4 var(--font); letter-spacing: -.01em; margin: 0 0 10px; color: var(--olive-deep); }
  .dough-lab .preparation-note p, .dough-lab .phase-detail p { font-size: 14px; line-height: 1.7; }
  .dough-lab .equipment-options, .dough-lab .temperature-panel details { background: transparent; border: 0; border-top: 1px solid var(--line); border-radius: 0; padding: 12px 0 0; margin: 8px 0 16px; }
  .dough-lab summary { color: var(--muted); font-size: 12px; cursor: pointer; min-height: 28px; }
  .dough-lab summary:hover { color: var(--ink); }
  .dough-lab details:not([open]) > summary { margin-bottom: 0; }
  .dough-lab .temperature-panel details { margin: 16px 0 0; }
  .dough-lab .temperature-panel .inline-controls { gap: 8px; }
  .dough-lab .temperature-panel button, .dough-lab .mixing-console button, .dough-lab .growth-targets button, .dough-lab .actions button { border: 1px solid #d5d8cf; background: var(--white); color: var(--ink); border-radius: 6px; min-height: 40px; padding: 9px 12px; font: 500 12px/1.5 var(--font); }
  .dough-lab .temperature-panel button:hover, .dough-lab .mixing-console button:hover, .dough-lab .growth-targets button:hover, .dough-lab .actions button:hover { background: var(--surface-secondary); border-color: #939d8b; }
  .dough-lab .temperature-panel .text-button, .dough-lab .mixing-console .text-button { background: transparent; border: 0; padding: 9px 4px; margin: 0; color: var(--muted); }
  .dough-lab .mixing-console h4 { font: 600 15px/1.5 var(--font); }
  .dough-lab .mixing-console output { font: 600 40px/1.3 var(--font); letter-spacing: 0; }
  .dough-lab .guide-water, .dough-lab .note { background: var(--surface-secondary); border-radius: 6px; font-size: 12px; line-height: 1.6; }
  .dough-lab .check-label input { width: 18px; height: 18px; }
  .dough-lab .growth-chart span { background: #dce4d6; border-color: #a3b296; border-radius: 4px 4px 0 0; color: var(--ink); }
  .dough-lab .growth-chart .growth-initial { background: var(--surface-secondary); border-color: #d5d8cf; }
  .dough-lab .duration { font-size: 12px; background: var(--olive-deep); color: var(--on-olive); padding: 5px 8px; }
  .dough-lab .timeline { margin: 20px 0 12px; }
  .dough-lab .timeline li { grid-template-columns: 26px minmax(0,1fr) auto; gap: 12px; padding-bottom: 20px; }
  .dough-lab .step-number { width: 26px; height: 26px; border-color: #d5d8cf; border-radius: 6px; font-size: 11px; color: var(--muted); }
  .dough-lab .timeline li:not(:last-child)::before { left: 12px; top: 30px; bottom: 4px; background: var(--line); }
  .dough-lab .timeline li:last-child .step-number { background: var(--olive-deep); color: var(--on-olive); border-color: var(--olive-deep); }
  .dough-lab .timeline h4 { font-size: 13px; margin: 2px 0 4px; }
  .dough-lab .timeline p { font-size: 12px; }
  .dough-lab .timeline time { font-size: 12px; padding-top: 3px; grid-column: auto; margin: 0; }
  .dough-lab .phase-link { text-decoration-color: #b7c1ae; }
  .dough-lab .oven-note { border: 0; border-top: 1px solid var(--line); margin: 0; padding: 20px 0; }
  .dough-lab .oven-note p { font-size: 12px; }
  .dough-lab .actions { justify-content: flex-start; gap: 8px; flex-wrap: wrap; padding: 8px 0; }
  .dough-lab .error { background: #fbf0e9; color: #87391e; border-color: #dfb8a7; font-size: 14px; padding: 16px; }
  .dough-lab .method-note { margin-top: 28px; padding: 20px 0 28px; gap: 0; }
  .dough-lab .note-icon { display: none; }
  .dough-lab .method-note h2 { font: 600 14px/1.5 var(--font); margin-bottom: 8px; }
  .dough-lab .method-note p { font-size: 12px; max-width: 100ch; }
  .dough-lab footer { padding: 20px max(24px, calc((100vw - 1280px) / 2)); }
  .dough-lab footer .brand { font-size: 16px; }
  .dough-lab footer p, .dough-lab footer > span { font-size: 11px; }
  #recipe-form, #results-title { scroll-margin-top: 20px; }
  .dough-lab :is(.ingredient-value, .ingredient-value span, .hydration-badge strong, .recipe-summary h3, .mixing-console output, .timeline time, input, select) { font-variant-numeric: tabular-nums; }
  .dough-lab :is(.mixing-console > p, .oven-note > div > p, .growth-row p, .method-note p) { font-size: 14px; }
  .dough-lab input::placeholder { color: var(--muted); opacity: 1; }
}
@media screen and (max-width: 1000px) {
  .dough-lab .workspace { grid-template-columns: minmax(300px, .9fr) minmax(0, 1.15fr); gap: 20px; }
  .dough-lab .settings { padding: 20px; }
  .dough-lab .recipe-summary { padding: 18px; }
  .dough-lab .ingredient-grid { padding: 0 18px; }
  .dough-lab .timeline li { grid-template-columns: 26px minmax(0,1fr); }
  .dough-lab .timeline time { grid-column: 2; margin-top: -8px; padding: 0; }
  .dough-lab .temperature-panel .inline-controls { display: grid; grid-template-columns: 1fr; }
}
@media screen and (max-width: 740px) {
  .dough-lab .topbar { height: 60px; padding: 0 16px; }
  .dough-lab .brand { font-size: 18px; gap: 8px; }
  .dough-lab .topbar .beta { display: none; }
  .dough-lab .topnav { gap: 16px; font-size: 12px; }
  .dough-lab main { padding: 0 16px; }
  .dough-lab .intro { padding: 24px 0 20px; }
  .dough-lab h1 { font-size: 23px; }
  .dough-lab .lead { font-size: 12px; }
  .dough-lab .workspace { grid-template-columns: minmax(0,1fr); gap: 24px; }
  .dough-lab .settings { padding: 20px 16px; }
  .dough-lab .results-heading { min-height: 0; padding-bottom: 16px; }
  .dough-lab .results-heading h2 { font-size: 17px; }
  .dough-lab .model-tag { max-width: 38%; font-size: 11px; }
  .dough-lab input, .dough-lab select { font-size: 16px; min-height: 44px; }
  .dough-lab input[type='datetime-local'] { font-size: 14px; }
  .dough-lab .temperature-panel details .form-row { grid-template-columns: minmax(0,1fr); }
  .dough-lab .recipe-summary { padding: 18px 16px; gap: 12px; }
  .dough-lab .recipe-summary h3 { font-size: 21px; }
  .dough-lab .hydration-badge { padding-left: 12px; }
  .dough-lab .hydration-badge strong { font-size: 25px; }
  .dough-lab .hydration-badge span { font-size: 11px; }
  .dough-lab .ingredient-grid { padding: 0 16px; }
  .dough-lab .ingredient-value { font-size: 22px; }
  .dough-lab .text-button, .dough-lab .actions button, .dough-lab .guide-actions button { min-height: 44px; }
  .dough-lab .growth-row { grid-template-columns: 100px minmax(0,1fr); }
  .dough-lab footer { padding: 20px 16px; }
}
@media print {
  .skip-link { display: none; }
  .ingredient-grid { display: block; }
  .ingredient { display: grid; grid-template-columns: 1fr auto; padding: 8px; border: 0; border-bottom: 1px solid #ddd; }
  .ingredient-value { grid-column: 2; grid-row: 1 / 3; text-align: right; margin: 0; font: 600 20px var(--font); }
  .ingredient h3, .ingredient-caption { margin: 0; }
  .ingredient-caption { grid-column: 1; }
}

/* Guided calculator: one configuration step, one live recipe. */
@media screen {
  .step-calculator .workspace { grid-template-columns: minmax(0, 1fr) minmax(340px, .57fr); gap: 24px; }
  .step-calculator .settings { padding: 0; background: var(--field-surface); border-color: var(--line); overflow: hidden; }
  .wizard-heading { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 20px 24px 12px; }
  .wizard-count { color: var(--muted); font-size: 12px; font-variant-numeric: tabular-nums; }
  .wizard-progress { display: block; width: calc(100% - 48px); height: 4px; margin: 0 24px; appearance: none; border: 0; border-radius: 4px; overflow: hidden; background: var(--surface-secondary); }
  .wizard-progress::-webkit-progress-bar { background: var(--surface-secondary); }
  .wizard-progress::-webkit-progress-value { background: var(--green); }
  .wizard-progress::-moz-progress-bar { background: var(--green); }
  .wizard-progress-text { color: var(--muted); font-size: 12px; margin: 6px 24px 12px; }
  .wizard-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-bottom: 1px solid var(--line); padding: 0 12px; }
  .wizard-tab { position: relative; display: flex; gap: 8px; align-items: center; min-width: 0; padding: 14px 8px; border: 0; border-bottom: 2px solid transparent; background: transparent; color: var(--muted); text-align: left; font-size: 12px; }
  .wizard-tab:hover { background: #f0f0e6; color: var(--ink); }
  .wizard-tab[aria-selected='true'] { border-bottom-color: #bf6b30; color: var(--olive-deep); }
  .wizard-step-number { display: grid; place-items: center; flex: 0 0 22px; width: 22px; height: 22px; border: 1px solid #b9c2ad; border-radius: 50%; font-size: 11px; font-variant-numeric: tabular-nums; }
  .wizard-tab[aria-selected='true'] .wizard-step-number, .wizard-tab.is-complete .wizard-step-number { color: var(--on-olive); background: var(--olive-deep); border-color: var(--olive-deep); }
  .wizard-tab-copy { min-width: 0; }
  .wizard-step-name { display: block; font-weight: 600; line-height: 1.4; }
  .wizard-step-summary { display: block; font-size: 11px; font-weight: 400; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 130px; margin-top: 3px; }
  .calculator-step { padding: 24px 28px 12px; }
  .dough-lab .calculator-step .step-title { font: 650 23px/1.3 var(--font); letter-spacing: -.025em; color: var(--olive-deep); margin: 0 0 6px; text-align: center; }
  .step-description { margin: 0 0 20px; text-align: center; font-size: 13px; color: var(--muted); line-height: 1.6; }
  .dough-lab .calculator-step fieldset { padding: 0; margin: 0; border: 0; }
  .dough-lab .calculator-step fieldset + fieldset { padding-top: 4px; }
  .dough-lab .calculator-step legend { padding: 0 0 12px; font-size: 15px; }
  .step-calculator .equipment-layout { display: block; }
  .choice-section { margin-bottom: 16px; }
  .choice-label { color: var(--ink); font-size: 13px; font-weight: 600; margin: 0 0 10px; }
  .equipment-choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .choices-machine .equipment-choices { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .equipment-choice { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; min-width: 0; min-height: 88px; border: 1px solid var(--line); border-radius: 8px; padding: 12px; background: var(--white); color: var(--muted); text-align: center; }
  .equipment-choice strong { font: 600 14px/1.4 var(--font); color: var(--ink); }
  .equipment-choice small { font-size: 12px; line-height: 1.4; }
  .equipment-choice:hover { border-color: var(--green); background: #f0f1e7; }
  .equipment-choice[aria-checked='true'] { background: var(--surface-secondary); border-color: var(--green); color: var(--olive-deep); }
  .equipment-choice[aria-checked='true']::after { content: ''; position: absolute; right: 10px; top: 10px; width: 6px; height: 6px; background: var(--green); border-radius: 50%; }
  .equipment-icon { display: inline-flex; width: 28px; height: 28px; color: var(--green); }
  .equipment-icon svg { display: block; width: 100%; height: 100%; }
  .pizza-picker { border: 1px solid #d1b58f; border-radius: 8px; background: #fff9ee; margin-bottom: 14px; }
  .dough-lab .pizza-picker-summary { display: flex; align-items: center; gap: 16px; padding: 14px; margin: 0; cursor: pointer; list-style: none; min-height: 94px; color: var(--ink); }
  .pizza-picker-summary::-webkit-details-marker { display: none; }
  .pizza-picker-summary img { object-fit: cover; border-radius: 6px; background: #252824; flex-shrink: 0; }
  .pizza-picker-copy { flex: 1; min-width: 0; }
  .pizza-picker-copy strong { display: block; font-size: 19px; font-weight: 650; line-height: 1.35; }
  .pizza-picker-copy small { display: block; font-size: 12px; color: var(--muted); font-weight: 400; line-height: 1.5; margin-top: 5px; }
  .pizza-picker-chevron { flex-shrink: 0; width: 8px; height: 8px; border-right: 1px solid var(--green); border-bottom: 1px solid var(--green); transform: rotate(45deg); margin: 0 5px 4px; font-size: 0; }
  .pizza-picker[open] .pizza-picker-chevron { transform: rotate(225deg); margin-top: 8px; }
  .pizza-picker-options { display: grid; padding: 0 12px 12px; gap: 4px; }
  .pizza-picker-option { display: flex; align-items: center; gap: 12px; text-align: left; min-height: 56px; padding: 8px; border: 0; border-radius: 6px; color: var(--ink); background: transparent; font: 500 14px/1.4 var(--font); }
  .pizza-picker-option img { object-fit: cover; border-radius: 4px; }
  .pizza-picker-option:hover, .pizza-picker-option[aria-pressed='true'] { background: var(--surface-secondary); }
  .oven-options { border-top: 1px solid var(--line); padding-top: 12px; margin: 12px 0 0; }
  .dough-lab .oven-options-title { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0 12px; font-weight: 600; font-size: 13px; list-style: none; }
  .oven-options-title::-webkit-details-marker { display: none; }
  .oven-options-title::before { content: ''; width: 7px; height: 7px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: rotate(-45deg); margin-top: 5px; }
  .oven-options[open] .oven-options-title::before { transform: rotate(45deg); }
  .oven-options-title > span:first-child { flex: 1; }
  .oven-selection { font-size: 12px; font-weight: 400; color: var(--muted); }
  .dough-lab .step-calculator .equipment-options { margin-top: 12px; }
  .wizard-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 24px; border-top: 1px solid var(--line); background: #f4f3eb; }
  .wizard-previous, .wizard-next { border: 1px solid var(--field-border); border-radius: 6px; min-height: 44px; padding: 11px 16px; font: 600 13px/1.4 var(--font); }
  .wizard-previous { color: var(--ink); background: transparent; }
  .wizard-previous:hover { background: var(--surface-secondary); }
  .wizard-next { background: var(--green); color: var(--on-olive); border-color: var(--green); }
  .wizard-next:hover { background: var(--accent-hover); border-color: var(--accent-hover); }
  .step-calculator .wizard-actions .primary { width: auto; margin: 0; min-height: 44px; padding: 11px 16px; font-size: 13px; }
  .wizard-error { margin: 0 24px 18px; padding: 12px; color: #87391e; background: #fbf0e9; border: 1px solid #dfb8a7; border-radius: 6px; font-size: 13px; }
  .verified-examples { padding: 12px 24px; }
  .verified-examples > summary { font-size: 12px; }
  .step-calculator .verified-examples .text-button { margin: 4px 0 0; text-align: left; }
  .step-calculator .results { position: sticky; top: 20px; }
  .step-calculator .results-heading { min-height: 44px; padding-bottom: 12px; }
  .step-calculator .results-heading h2 { font-size: 16px; }
  .step-calculator .model-tag { font-size: 11px; max-width: 45%; }
  .step-calculator .recipe-summary { padding: 20px; }
  .step-calculator .recipe-summary h3 { font-size: 21px; }
  .step-calculator .hydration-badge { padding-left: 14px; }
  .step-calculator .hydration-badge strong { font-size: 27px; }
  .step-calculator .ingredient-grid { padding: 0 20px; }
  .step-calculator .ingredient { padding: 10px 0; }
  .step-calculator .ingredient-value { font-size: 22px; font-variant-numeric: tabular-nums; }
  .step-calculator .water-note { font-size: 12px; padding-bottom: 12px; }
  .result-procedure { border-top: 1px solid var(--line); }
  .dough-lab .result-procedure > summary { padding: 14px 0; font-size: 13px; font-weight: 600; color: var(--olive-deep); }
  .step-calculator .results:has(.result-procedure[open]) { position: static; }
  .mobile-recipe-bar, .mobile-results-close { display: none; }
}
@media screen and (min-width: 901px) and (max-width: 1100px) {
  .step-calculator .workspace { grid-template-columns: minmax(0, 1fr) 340px; gap: 20px; }
  .calculator-step { padding: 24px 20px 12px; }
  .wizard-step-summary { display: none; }
  .wizard-tab { flex-direction: column; text-align: center; padding: 12px 4px; }
  .pizza-picker-summary img { width: 64px; height: 56px; }
  .pizza-picker-copy strong { font-size: 17px; }
  .equipment-choice { padding: 12px 8px; }
}
@media screen and (max-width: 900px) {
  .step-calculator { padding-bottom: calc(76px + env(safe-area-inset-bottom)); }
  .step-calculator .workspace { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .step-calculator .intro { padding: 24px 0 20px; }
  .step-calculator .results { display: none; }
  .step-calculator.mobile-results-open .results { display: block; position: fixed; z-index: 30; inset: 76px 12px calc(84px + env(safe-area-inset-bottom)); padding: 0 16px 16px; overflow-y: auto; overscroll-behavior: contain; background: var(--field-surface); border: 1px solid var(--field-border); border-radius: 8px; }
  .step-calculator .results-heading { position: sticky; z-index: 1; top: 0; background: var(--field-surface); padding: 16px 0; gap: 8px; }
  .step-calculator .results-heading .model-tag { display: none; }
  .mobile-results-close { display: block; background: transparent; border: 1px solid var(--field-border); color: var(--ink); border-radius: 6px; min-height: 36px; padding: 6px 12px; font-size: 12px; }
  .mobile-recipe-bar { display: flex; position: fixed; z-index: 40; bottom: 0; left: 0; right: 0; width: 100%; min-height: 64px; align-items: center; justify-content: space-between; gap: 16px; background: var(--olive-deep); color: var(--on-olive); border: 0; padding: 14px 20px calc(14px + env(safe-area-inset-bottom)); text-align: left; }
  .mobile-recipe-values { font-size: 13px; font-variant-numeric: tabular-nums; line-height: 1.5; }
  .mobile-recipe-bar strong { font-size: 13px; white-space: nowrap; border: 1px solid var(--olive-border); border-radius: 6px; padding: 8px 12px; }
  .mobile-recipe-bar:focus-visible { outline-color: var(--gold); outline-offset: -4px; }
  .step-calculator .method-note { margin-top: 24px; }
}
@media screen and (max-width: 600px) {
  .wizard-heading { padding: 18px 16px 12px; }
  .wizard-progress { width: calc(100% - 32px); margin: 0 16px; }
  .wizard-progress-text { margin-left: 16px; margin-right: 16px; }
  .wizard-steps { padding: 0 4px; }
  .wizard-tab { flex-direction: column; gap: 6px; padding: 12px 4px; text-align: center; }
  .wizard-step-name { font-size: 12px; }
  .wizard-step-summary { display: none; }
  .calculator-step { padding: 22px 16px 12px; }
  .dough-lab .calculator-step .step-title { font-size: 21px; }
  .step-description { font-size: 12px; margin-bottom: 20px; }
  .dough-lab .pizza-picker-summary { padding: 12px; gap: 12px; }
  .pizza-picker-summary img { width: 64px; height: 58px; }
  .pizza-picker-copy strong { font-size: 17px; }
  .pizza-picker-copy small { font-size: 12px; }
  .pizza-picker-chevron { width: 7px; height: 7px; margin-right: 2px; }
  .equipment-choice { min-height: 92px; padding: 12px 8px; gap: 6px; }
  .equipment-choice strong { font-size: 13px; }
  .equipment-choice small { font-size: 11px; }
  .equipment-icon { width: 26px; height: 26px; }
  .wizard-actions { padding: 16px; gap: 8px; }
  .wizard-previous, .wizard-next, .step-calculator .wizard-actions .primary { font-size: 12px; padding: 11px 12px; }
  .wizard-next { max-width: 72%; }
  .verified-examples { padding: 12px 16px; }
  .step-calculator .date-fields { grid-template-columns: minmax(0, 1fr); }
  .mobile-recipe-bar { gap: 10px; padding-left: 16px; padding-right: 16px; }
  .mobile-recipe-values { font-size: 12px; }
  .mobile-recipe-bar strong { font-size: 12px; padding: 8px 10px; }
}
@media print {
  .wizard-heading, .wizard-progress, .wizard-progress-text, .wizard-steps, .wizard-actions, .verified-examples, .mobile-recipe-bar, .mobile-results-close, .result-procedure > summary { display: none !important; }
  .result-procedure > :not(summary) { display: block !important; }
  .result-procedure { content-visibility: visible !important; }
  .result-procedure::details-content { content-visibility: visible !important; display: block !important; }
}

/* Calculated recipe: configuration gives way to doses and the real phases. */
@media screen {
  .recipe-overview, .recipe-body { display: contents; }
  .recipe-complete, .recipe-cover, .recipe-stats { display: none; }
  .dough-lab .process-title { font: 650 22px/1.3 var(--font); letter-spacing: -.02em; color: var(--olive-deep); margin: 24px 0 16px; }
  .process-workspace { margin-top: 20px; }
  .process-phase-nav { position: sticky; top: 12px; z-index: 5; display: flex; gap: 6px; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: thin; padding: 6px; border: 1px solid var(--line); border-radius: 8px; background: #f2f3e9; }
  .process-phase-button { display: flex; align-items: center; gap: 8px; flex-shrink: 0; min-height: 44px; border: 1px solid transparent; border-radius: 6px; padding: 10px 12px; background: transparent; color: var(--muted); white-space: nowrap; font: 500 13px/1.4 var(--font); }
  .process-phase-button:hover { background: var(--field-surface); color: var(--ink); }
  .process-phase-button[aria-selected='true'] { background: var(--olive-deep); color: var(--on-olive); border-color: var(--olive-deep); }
  .process-phase-number { display: grid; place-items: center; width: 20px; height: 20px; border: 1px solid #b7c0a9; border-radius: 50%; font-size: 11px; font-variant-numeric: tabular-nums; }
  .process-phase-button[aria-selected='true'] .process-phase-number { border-color: var(--olive-border); }
  .process-phase-reading { margin-top: 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--field-surface); padding: 24px; }
  .process-phase-counter { margin: 0 0 8px; font-size: 12px; color: var(--muted); font-variant-numeric: tabular-nums; }
  .dough-lab .process-phase-reading #phase-detail { border: 0; padding: 0; margin: 0; }
  .dough-lab .process-phase-reading #phase-detail h3 { font-size: 24px; font-weight: 650; }
  .phase-support .preparation-note h3 { display: none; }
  .phase-actions { display: flex; justify-content: space-between; gap: 12px; padding-top: 18px; margin-top: 18px; border-top: 1px solid var(--line); }
  .phase-actions button, .edit-recipe { border: 1px solid var(--field-border); border-radius: 6px; min-height: 44px; padding: 10px 14px; background: var(--field-surface); color: var(--olive-deep); font: 600 13px/1.5 var(--font); }
  .phase-actions button:hover, .edit-recipe:hover { background: var(--surface-secondary); }
  .phase-actions button:last-child { background: var(--green); border-color: var(--green); color: var(--on-olive); }
  .phase-actions button:last-child:hover { background: var(--accent-hover); }
  .step-calculator.recipe-mode { padding-bottom: 0; }
  .step-calculator.recipe-mode .intro, .step-calculator.recipe-mode .settings, .step-calculator.recipe-mode .mobile-recipe-bar, .step-calculator.recipe-mode .mobile-results-close { display: none; }
  .step-calculator.recipe-mode .workspace { display: block; padding-top: 24px; }
  .step-calculator.recipe-mode .results { display: block; position: static; width: auto; inset: auto; overflow: visible; padding: 0; background: transparent; border: 0; border-radius: 0; }
  .step-calculator.recipe-mode .results-heading { position: static; background: transparent; display: flex; flex-wrap: wrap; gap: 12px; padding: 0 0 16px; }
  .step-calculator.recipe-mode .results-heading h2 { font-size: 21px; }
  .recipe-mode .results-heading .actions { display: flex; padding: 0; margin-left: auto; }
  .recipe-mode .recipe-complete { display: flex; align-items: center; justify-content: space-between; gap: 16px; background: var(--surface-secondary); color: var(--olive-deep); padding: 12px 20px; border: 1px solid var(--line); border-bottom: 0; border-radius: 8px 8px 0 0; font-size: 13px; }
  .recipe-mode .recipe-overview { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); border: 1px solid var(--line); border-top: 0; border-radius: 0 0 8px 8px; overflow: hidden; background: var(--field-surface); }
  .recipe-mode .recipe-cover { display: block; position: relative; min-height: 420px; overflow: hidden; background: var(--olive-deep); }
  .recipe-cover > img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
  .recipe-cover-copy { position: absolute; left: 24px; right: 24px; bottom: 24px; padding: 16px 18px; background: var(--olive-deep); color: var(--on-olive); border-radius: 6px; }
  .dough-lab .recipe-cover-copy h2 { color: var(--on-olive); font: 650 30px/1.2 var(--font); letter-spacing: -.025em; margin: 0 0 8px; }
  .recipe-image-caption { font-size: 12px; color: var(--on-olive-muted); }
  .recipe-mode .recipe-body { display: block; padding: 24px 28px; min-width: 0; }
  .step-calculator.recipe-mode .recipe-summary { display: block; padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--ink); }
  .recipe-mode .recipe-summary .summary-caption { display: none; }
  .step-calculator.recipe-mode .recipe-summary h3 { font-size: 23px; margin: 0 0 8px; }
  .recipe-mode .recipe-summary p { color: var(--muted); }
  .recipe-mode .recipe-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 18px 0; margin: 18px 0 0; }
  .recipe-stat { padding: 0 16px; border-left: 1px solid var(--line); min-width: 0; }
  .recipe-stat > span { display: block; font-size: 12px; color: var(--muted); margin-bottom: 6px; }
  .recipe-stat > strong { display: block; font: 600 24px/1.35 var(--font); color: var(--olive-deep); letter-spacing: -.025em; font-variant-numeric: tabular-nums; }
  .recipe-stat:first-of-type > strong { font-size: 21px; }
  .recipe-mode .hydration-badge { align-items: flex-start; justify-content: flex-end; flex-direction: column-reverse; padding: 0 16px 0 0; border: 0; }
  .recipe-mode .hydration-badge strong { color: var(--olive-deep); font-size: 30px; font-variant-numeric: tabular-nums; }
  .recipe-mode .hydration-badge span { color: var(--muted); font-size: 12px; margin: 0 0 6px; }
  .step-calculator.recipe-mode .ingredient-grid { border: 0; border-radius: 0; padding: 0; background: transparent; }
  .step-calculator.recipe-mode .ingredient:first-child { border-top: 0; }
  .step-calculator.recipe-mode .water-note { background: #eef1e6; border: 1px solid var(--line); border-radius: 6px; padding: 12px; margin: 14px 0; }
  .recipe-mode .recipe-body > .temperature-panel { padding: 18px 0 0; margin-top: 18px; }
  .recipe-mode .recipe-body .temperature-panel .inline-controls { display: flex; flex-wrap: wrap; gap: 8px; }
  .recipe-mode .result-procedure { margin-top: 28px; border: 0; }
  .recipe-mode .result-procedure > summary { display: none; }
  .recipe-mode .result-procedure .process-title { font-size: 24px; margin: 0 0 18px; }
  .step-calculator.recipe-mode .results .schedule { padding: 22px 24px; border: 1px solid var(--line); border-radius: 8px; background: var(--field-surface); margin-bottom: 24px; }
  .recipe-mode .timeline { display: flex; gap: 6px; overflow-x: auto; overscroll-behavior-x: contain; padding-bottom: 8px; margin: 18px 0 8px; }
  .recipe-mode .timeline li { display: block; flex: 1 0 148px; padding: 12px; border: 1px solid var(--line); border-radius: 6px; background: var(--white); }
  .recipe-mode .timeline .step-number, .recipe-mode .timeline li::before { display: none; }
  .recipe-mode .timeline li[data-phase-id='mix'], .recipe-mode .timeline li[data-phase-id='bulk'], .recipe-mode .timeline li[data-phase-id='proof'] { background: #e9eedf; }
  .recipe-mode .timeline li[data-phase-id='cold'] { background: #e8eef0; }
  .recipe-mode .timeline li[data-phase-id='prebake'], .recipe-mode .timeline li[data-phase-id='bake'] { background: #f3ead7; }
  .recipe-mode .timeline h4 { margin: 0 0 8px; }
  .recipe-mode .timeline time { display: block; margin: 12px 0 0; white-space: normal; font-size: 12px; }
  .recipe-mode .timeline .phase-link { font-size: 13px; text-decoration: none; }
  .recipe-mode .timeline .phase-link:hover { text-decoration: underline; }
}
@media screen and (max-width: 1000px) {
  .recipe-mode .recipe-body { padding: 22px; }
  .recipe-mode .recipe-cover-copy { left: 18px; right: 18px; bottom: 18px; padding: 14px; }
  .dough-lab .recipe-cover-copy h2 { font-size: 26px; }
  .recipe-mode .recipe-stat { padding-left: 10px; padding-right: 10px; }
  .recipe-mode .recipe-stat > strong { font-size: 21px; }
}
@media screen and (max-width: 760px) {
  .step-calculator.recipe-mode .workspace { padding-top: 20px; }
  .recipe-mode .recipe-overview { grid-template-columns: minmax(0, 1fr); }
  .recipe-mode .recipe-cover { height: 230px; min-height: 230px; }
  .recipe-mode .recipe-body { padding: 20px; }
  .recipe-mode .recipe-complete { padding: 12px 16px; font-size: 12px; gap: 12px; }
  .recipe-mode .edit-recipe { font-size: 12px; padding: 9px 12px; white-space: nowrap; }
  .recipe-mode .recipe-stats { padding: 16px 0; }
  .recipe-mode .recipe-stat > strong { font-size: 20px; }
  .recipe-mode .hydration-badge strong { font-size: 27px; }
  .recipe-mode .hydration-badge { padding-right: 8px; }
  .recipe-mode .recipe-stat { padding-left: 10px; padding-right: 8px; }
  .recipe-mode .recipe-body .temperature-panel .inline-controls { display: grid; grid-template-columns: minmax(0, 1fr); }
  .step-calculator.recipe-mode .results .schedule { padding: 18px 16px; }
  .recipe-mode .result-procedure .process-title { font-size: 21px; }
  .process-phase-reading { padding: 20px 16px; }
  .process-phase-nav { top: 6px; }
  .process-phase-button { padding: 9px 10px; font-size: 12px; }
  .phase-actions { gap: 8px; }
  .phase-actions button { font-size: 12px; padding: 10px 12px; }
  .recipe-mode .results-heading .actions { margin-left: 0; width: 100%; }
}
@media screen {
  .phase-artwork { margin: 20px 0; padding: 20px; background: #f5f6f0; border: 1px solid var(--line); border-radius: 8px; }
  .phase-artwork[hidden] { display: none; }
  .phase-artwork-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
  .phase-artwork-grid figure { margin: 0; min-width: 0; }
  .phase-artwork-grid figcaption { color: var(--ink); font-size: 14px; font-weight: 600; margin: 12px 0; }
  .phase-artwork button { min-height: 44px; padding: 10px 14px; border: 1px solid var(--field-border); border-radius: 6px; background: var(--white); color: var(--olive-deep); font: inherit; }
  .phase-artwork .dm-rise-ball { transform: scale(1.3,1.38); transform-origin: 0 0; }
  .single-portion-visual .native-single-dough { transform-box: view-box; transform-origin: 250px 229px; transform: scaleY(var(--growth)); }
  .native-single-goal, .native-single-label { transform: translateY(calc(-107px * (var(--growth) - 1))); }
  .native-growth-vessel .volume-fill { transform-box: view-box; transform-origin: 112px 181px; transform: scaleY(1); transition: transform 2.7s ease-in-out; }
  .native-growth-vessel .dm-rise-mass { transform-origin: 0 0; transform: scaleY(1); transition: transform 2.7s ease-in-out; }
  .growth-expanded .native-growth-vessel .volume-fill, .growth-expanded .native-growth-vessel .dm-rise-mass { transform: scaleY(var(--growth)); }
  .native-volume-goal { transform: translateY(calc(-90px * (var(--growth) - 1))); }
  .native-mass-goal { transform: translateY(calc(-48px * (var(--growth) - 1))); }
  .native-growth-vessel .amount-label, .native-growth-vessel .dm-svg-target { font-size: 22px; font-weight: 650; fill: var(--olive-deep); }
}
@media screen and (max-width: 600px) { .phase-artwork { padding: 16px; } .phase-artwork-grid { grid-template-columns: minmax(0, 1fr); } }
@media (prefers-reduced-motion: reduce) { .native-growth-vessel .volume-fill, .native-growth-vessel .dm-rise-mass { transition: none; } }
@media print { .phase-artwork button { display: none !important; } .phase-artwork-grid { display: grid; grid-template-columns: 1fr 1fr; } }
@media print {
  .recipe-cover, .recipe-complete, .process-phase-nav, .phase-actions, .process-phase-counter { display: none !important; }
  .phase-support[hidden] { display: block !important; }
  .cooking-facts[hidden] { display: block !important; }
  .recipe-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
  .recipe-overview, .recipe-body, .process-workspace, .process-phase-reading { display: block; border: 0; padding: 0; }
}

/* Observed calculator flow: explicit quantity modes and guide entry. */
@media screen {
  .step-calculator .equipment-choice { align-items: flex-start; text-align: left; }
  .quantity-choices .equipment-choices { grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); }
  .quantity-choices .equipment-choice { min-height: 88px; justify-content: flex-start; }
  .guide-launch, .go-to-process { display: none; }
  .recipe-mode .guide-launch { display: block; border-top: 1px solid var(--line); margin-top: 20px; padding-top: 20px; }
  .guide-launch h3 { margin: 0 0 8px; font-size: 18px; }
  .guide-launch p { color: var(--muted); font-size: 14px; line-height: 1.6; }
  .guide-launch button { min-height: 44px; border: 1px solid var(--green); border-radius: 6px; padding: 10px 14px; background: var(--green); color: var(--white); font: inherit; }
  .guide-launch button:hover { background: var(--accent-hover); }
  .recipe-mode .go-to-process { display: inline-flex; align-items: center; min-height: 44px; margin-top: 12px; color: var(--olive-deep); text-underline-offset: 4px; }
  .active-guide-indicator { position: fixed; bottom: 12px; left: 50%; transform: translateX(-50%); z-index: 30; width: max-content; max-width: calc(100% - 24px); display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 12px; border: 1px solid var(--olive-border); border-radius: 8px; background: var(--olive-deep); color: var(--on-olive); }
  .active-guide-indicator[hidden] { display: none; }
  .active-guide-indicator button { min-height: 44px; padding: 9px 12px; border: 1px solid var(--olive-border); border-radius: 6px; color: var(--on-olive); background: var(--green); font: inherit; }
  .active-guide-indicator button:hover { background: var(--accent-hover); }
  .active-guide-indicator button:focus-visible { outline-color: var(--gold); }
  .active-guide-time { font-size: 20px; font-weight: 600; font-variant-numeric: tabular-nums; }
  .has-active-guide-indicator { padding-bottom: 150px; }
  .has-active-guide-indicator .mobile-recipe-bar { display: none; }
  #mixing-console, #recipe-process { scroll-margin-top: 90px; }
}
@media screen and (max-width: 600px) {
  .active-guide-indicator { width: calc(100% - 24px); }
  .active-guide-indicator > [role='status'] { flex: 1; }
  .active-guide-indicator button { flex: 1 1 40%; }
}
@media print {
  .active-guide-indicator, .guide-launch, .go-to-process { display: none !important; }
}

/* Dedicated execution workspace, matching the observed guided-session flow. */
@media screen {
  .guide-mode { overflow: hidden; }
  .guided-workspace { inset: 0; width: 100%; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0 24px 40px; border: 0; background: var(--field-surface); color: var(--ink); overflow-y: auto; }
  .guided-workspace::backdrop { background: var(--field-surface); }
  .guided-workspace-header { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; max-width: 1080px; margin: auto; padding: 16px 0; border-bottom: 1px solid var(--line); }
  .guided-workspace-header h2 { flex: 1 1 260px; margin: 0; font-size: 17px; }
  .guided-phase-status { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .guided-workspace button { min-height: 44px; border: 1px solid var(--field-border); border-radius: 6px; padding: 10px 16px; font: 600 14px/1.5 var(--font); color: var(--ink); background: var(--white); }
  .guided-workspace button:hover { background: var(--surface-secondary); }
  .guided-workspace-stage, .guided-execution { max-width: 704px; margin: 32px auto; }
  .guided-workspace-stage h3 { font-size: 28px; line-height: 1.25; margin: 0 0 24px; color: var(--olive-deep); text-align: center; }
  .guided-workspace-stage p { font-size: 15px; line-height: 1.65; }
  .guided-workspace-stage label { display: grid; gap: 8px; margin: 0 0 20px; font-size: 14px; }
  .guided-workspace-stage select { width: 100%; min-height: 48px; font: inherit; background: var(--white); color: var(--ink); border: 1px solid var(--field-border); border-radius: 6px; padding: 10px; }
  .guided-workspace-stage > button:first-of-type, .guided-advance { background: var(--green); color: var(--white); border-color: var(--green); }
  .guided-workspace-stage > button:first-of-type:hover, .guided-advance:hover { background: var(--accent-hover); }
  .guided-ingredient-checks { margin: 24px 0; }
  .guided-workspace-stage .guided-ingredient-check { grid-template-columns: 22px minmax(0,1fr) auto; align-items: center; gap: 12px; min-height: 56px; border: 1px solid var(--line); border-radius: 12px; background: var(--white); padding: 14px 18px; margin: 0 0 8px; }
  .guided-ingredient-check input, .guided-water-preparation input { width: 20px; height: 20px; }
  .guided-ingredient-check strong { font-variant-numeric: tabular-nums; }
  .guided-water-preparation { padding: 18px; background: var(--surface-secondary); border-radius: 8px; margin: 24px 0; }
  .guided-workspace-stage .check-label { display: flex; align-items: center; gap: 10px; margin-bottom: 0; }
  .guided-execution .mixing-console { padding: 0; border: 0; background: transparent; }
  .guided-execution .mixing-console > .eyebrow, .guided-execution .guide-actions > button:nth-child(2), .guided-execution #guide-next, .guided-execution .mixing-console > .text-button { display: none; }
  .dough-lab .guided-execution .mixing-console output { font: 650 76px/1.2 var(--font); letter-spacing: -.025em; text-align: center; margin: 24px 0; color: var(--olive-deep); }
  .dough-lab .guided-execution .mixing-console h4 { font-size: 23px; line-height: 1.35; }
  .guided-execution .mixing-console > h3, .guided-execution .mixing-console > .guide-context, .guided-execution .mixing-console > .guide-water, .guided-execution .mixing-console > progress { display: none; }
  .guided-execution .mixing-console > h4 { text-align: center; }
  .guided-context-details { border-top: 1px solid var(--line); margin-top: 24px; padding-top: 16px; }
  .guided-context-details summary { cursor: pointer; min-height: 44px; font-size: 14px; }
  .guided-execution .mixing-console .guide-up-next { padding: 16px; margin-top: 20px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface-secondary); }
  .dough-lab .guided-execution .guide-up-next h4 { font-size: 16px; margin: 0 0 8px; }
  .guided-execution .guide-actions { justify-content: center; }
  .dough-lab .guided-execution .mixing-console button { min-height: 44px; font-size: 14px; }
  .guided-execution .guided-advance { width: 100%; margin-top: 16px; }
  .guided-execution .guided-work-more { width: 100%; margin-top: 10px; }
  .guided-execution label:has(#guide-checkpoint) { display: none; }
  .guided-workspace [hidden] { display: none !important; }
}
@media screen and (max-width: 600px) {
  .guided-workspace { padding: 0 16px 24px; }
  .guided-workspace-header { gap: 8px; }
  .guided-workspace-header h2 { flex-basis: 100%; font-size: 16px; }
  .guided-workspace-header button { flex: 1; padding: 9px 10px; font-size: 12px; }
  .guided-workspace-stage, .guided-execution { margin-top: 24px; }
  .guided-workspace-stage h3 { font-size: 24px; }
  .dough-lab .guided-execution .mixing-console output { font-size: 64px; }
}
@media print { .guided-workspace { display: none !important; } }
@media screen {
  .timeline-phase-icon { display: none; }
  .recipe-mode .timeline-phase-icon { display: grid; place-items: center; width: 36px; height: 36px; padding: 6px; border: 1px solid var(--field-border); border-radius: 50%; color: var(--green); background: var(--field-surface); margin: 0 0 10px; }
  .timeline-phase-icon svg { width: 100%; height: 100%; }
}
@media print { .timeline-phase-icon { display: none !important; } }
@media screen {
  .growth-row[hidden] { display: none !important; }
  .growth-row:has(.has-growth-vessel) { grid-template-columns: minmax(0, 430px) minmax(0, 1fr); }
  .has-growth-vessel { height: auto; display: block; border: 0; }
  .has-growth-vessel > .growth-initial, .has-growth-vessel > .growth-target { display: none; }
  .growth-chart .native-growth-vessel { display: block; width: 100%; height: auto; min-height: 0; border: 0; border-radius: 0; background: transparent; }
  .native-growth-vessel svg { display: block; width: 100%; height: auto; overflow: visible; color: var(--muted); }
  .native-vessel-dough { fill: var(--gold); transform-origin: 128px 224px; transform: scaleY(1); transition: transform 2.7s ease-in-out; }
  .native-vessel-goal { fill: none; stroke: var(--green); stroke-width: 2; transform: translateY(calc(-72px * (var(--growth) - 1))); }
  .native-growth-vessel text { fill: var(--muted); font: 13px var(--font); }
  .native-growth-vessel .native-vessel-target { fill: var(--olive-deep); font-size: 23px; font-weight: 650; }
  .growth-expanded .native-vessel-dough { transform: scaleY(var(--growth)); }
}
@media screen and (max-width: 760px) { .growth-row:has(.has-growth-vessel) { grid-template-columns: minmax(0, 1fr); gap: 12px; } }
@media (prefers-reduced-motion: reduce) { .native-vessel-dough { transition: none; } }
@media screen {
  .schedule-phase-bar { display: none; }
  .recipe-mode .schedule-phase-bar { display: flex; gap: 3px; height: 58px; overflow-x: auto; margin: 18px 0 14px; border-radius: 6px; }
  .schedule-phase-segment { flex-basis: 0; flex-shrink: 1; min-width: 36px; overflow: hidden; padding: 10px 6px; border: 1px solid var(--field-border); border-radius: 4px; background: var(--surface-secondary); color: var(--olive-deep); font: 600 12px/1.4 var(--font); text-overflow: ellipsis; white-space: nowrap; }
  .schedule-phase-segment[data-phase-id='cold'] { background: #e8eef0; }
  .schedule-phase-segment[data-phase-id='bake'], .schedule-phase-segment[data-phase-id='prebake'] { background: var(--gold); }
  .schedule-phase-segment[aria-pressed='true'] { border-color: var(--green); outline: 1px solid var(--green); outline-offset: -3px; }
  .schedule-phase-preview { min-height: 20px; color: var(--muted); font-size: 12px; }
  .recipe-mode .timeline li.schedule-endpoint { display: none; }
}
@media print { .schedule-phase-bar, .schedule-phase-preview { display: none !important; } }
@media screen {
  .quantity-stepper { display: grid; grid-template-columns: 44px minmax(0, 1fr) 44px; align-items: stretch; }
  .quantity-stepper button { display: grid; place-items: center; width: 44px; min-height: 44px; padding: 10px; border: 1px solid var(--field-border); border-radius: 6px; background: var(--white); color: var(--olive-deep); }
  .quantity-stepper button:hover { background: var(--surface-secondary); }
  .quantity-stepper svg { width: 20px; height: 20px; }
  .quantity-stepper input { text-align: center; min-width: 0; border-radius: 0; padding: 0 4px; }
  .wizard-tab:disabled { cursor: default; }
}
@media screen {
  .reference-visual svg { display: block; width: 100%; height: auto; }
  .guided-machine-visual { max-width: 280px; margin: 12px auto 24px; }
  .guided-phone { max-width: 260px; margin: 24px auto; }
  .guided-machine-visual.is-running .pa-tool { transform-origin: 160px 90px; animation: pizza-tool-turn 1.2s ease-in-out infinite; }
  .guided-machine-visual.is-running .pa-dough { transform-origin: 160px 174px; animation: pizza-dough-fold 1.2s ease-in-out infinite; }
  @keyframes pizza-tool-turn { 0%,100% { transform: rotate(-9deg); } 50% { transform: rotate(9deg); } }
  @keyframes pizza-dough-fold { 0%,100% { transform: scaleX(.94) rotate(-3deg); } 50% { transform: scaleX(1.03) rotate(3deg); } }
}
@media (prefers-reduced-motion: reduce) { .guided-machine-visual .pa-tool, .guided-machine-visual .pa-dough { animation: none !important; } }
@media screen {
  .step-calculator:not(.recipe-mode) .workspace { display: block; max-width: 900px; margin-left: auto; margin-right: auto; }
  .step-calculator:not(.recipe-mode) .results, .step-calculator:not(.recipe-mode) .mobile-recipe-bar, .step-calculator:not(.recipe-mode) .topnav a[href='#results-title'] { display: none; }
  .quantity-mode-details[hidden] { display: none; }
}
@media screen {
  .recipe-mode .recipe-cover-copy { top: 28px; bottom: auto; background: transparent; padding: 0; }
  .dough-lab.recipe-mode .recipe-cover-copy h2 { color: var(--on-olive); font-size: 28px; }
  .recipe-mode .recipe-image-caption { color: var(--on-olive); }
  .step-calculator.recipe-mode .ingredient-water { padding: 14px 12px; margin: 4px 0; border: 1px solid #c3d7df; border-radius: 6px; background: #eef5f7; }
}
@media screen and (max-width: 760px) {
  .recipe-mode .recipe-cover-copy { top: 20px; }
  .dough-lab.recipe-mode .recipe-cover-copy h2 { font-size: 23px; }
}
/* Phase detail follows the observed reading order and nested gesture workflow. */
@media screen {
  .recipe-mode .schedule-inactive { display: none !important; }
  .dough-lab .process-phase-reading { color: #171916; }
  .phase-tag { display: inline-block; padding: 4px 8px; border-radius: 3px; background: #f3f4ef; color: #171916; font-size: 11px; line-height: 1.6; }
  .dough-lab .process-phase-reading #phase-detail h3 { color: #171916; font-size: 28px; line-height: 1.25; margin: 14px 0 10px; }
  .dough-lab .process-phase-reading .phase-subtitle { color: #626e59; font-size: 14px; line-height: 1.65; margin: 0 0 22px; }
  .dough-lab .process-phase-reading .phase-intro { margin-bottom: 18px; }
  .phase-instructions { padding-left: 24px; margin: 20px 0; color: #171916; font-size: 14px; line-height: 1.75; }
  .phase-instructions li { padding-left: 5px; margin-bottom: 12px; }
  .phase-instructions li::marker { color: #a8652f; }
  .phase-tip, .phase-timing { margin: 18px 0 8px; color: var(--muted); font-size: 13px; }
  .phase-tip summary, .phase-timing summary { cursor: pointer; padding: 10px 0; min-height: 40px; }
  .phase-ingredient-summary { display: flex; gap: 12px 24px; flex-wrap: wrap; padding: 16px; background: #f4f5ef; border-radius: 8px; margin: 18px 0; font-size: 14px; }
  .phase-actions { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; border: 0; padding-top: 8px; margin-top: 24px; }
  .phase-actions .process-phase-counter { margin: 0; text-align: center; font-size: 12px; }
  .phase-actions button:first-child { justify-self: start; }
  .phase-actions button:last-child { justify-self: end; background: #171916; border-color: #171916; color: #fff; }
  .process-phase-reading .phase-support-oven { margin-top: 0; padding-top: 0; border: 0; }
  .process-phase-reading .oven-note { margin: 0; padding: 0; border: 0; background: transparent; }
  .process-phase-reading #oven-title, .process-phase-reading .cooking-facts > h4, .process-phase-reading .cooking-subtitle { display: none; }
  .process-phase-reading .cooking-facts { margin: 0; font: inherit; }
  .phase-artwork.has-dress-steps { padding: 0; border: 1px solid #dfe4d8; border-radius: 16px; overflow: hidden; background: #fafbf7; }
  .dress-step-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; padding: 10px; border-bottom: 1px solid #dfe4d8; }
  .dress-step-tabs button { border: 0; border-radius: 9px; background: transparent; color: #626e59; padding: 10px 5px; font: 500 12px/1.5 var(--font); text-align: center; }
  .dress-step-tabs button span { display: block; width: 25px; line-height: 23px; border: 1px solid #aab29f; border-radius: 50%; margin: 0 auto 6px; }
  .dress-step-tabs button[aria-selected=true] { background: #303a2d; color: white; }
  .dress-step-tabs button[aria-selected=true] span { background: #e6b077; border-color: #e6b077; color: #303a2d; }
  .dress-step-panel { padding: 22px; }
  .dress-step-panel[hidden], .dress-motion-tools[hidden] { display: none !important; }
  .dress-step-count { font-size: 12px; font-weight: 600; letter-spacing: 2px; color: #8b6a42; margin: 0; }
  .dress-step-panel h4 { font-size: 25px; line-height: 1.3; margin: 8px 0; color: #171916; }
  .dress-step-panel .reference-visual { width: 100%; max-width: 680px; margin: 4px auto 12px; }
  .dress-step-panel .reference-visual svg { width: 100%; height: auto; max-height: none; overflow: visible; }
  .dress-step-panel p { font-size: 15px; line-height: 1.65; color: #3e4938; margin: 12px 0; }
  .dress-step-panel .dress-side-note { color: #626e59; font-size: 12px; }
  .dress-step-panel svg .dm-side-caption { font-size: 19px; }
  .dress-motion-tools { display: flex; justify-content: flex-end; align-items: center; gap: 10px; padding: 0 22px 16px; }
  .dress-motion-status { margin-right: auto; font-size: 12px; color: #626e59; }
  .dress-step-actions { display: flex; justify-content: space-between; gap: 12px; border-top: 1px solid #e3e7df; padding: 14px; }
  .dress-step-actions button, .dress-motion-tools button { font-size: 12px; min-height: 40px; padding: 10px; }
  .guided-water-preparation { padding: 22px; background: #eff8fb; border: 2px solid #478da1; border-radius: 18px; color: #214e60; }
  .water-preparation-label { font-size: 11px; font-weight: 600; letter-spacing: 1.5px; color: #955123; }
  .guided-water-preparation h4 { text-align: left; font-size: 18px; margin: 4px 0 8px; color: #214e60; }
  .guided-workspace-stage .guided-water-preparation p { font-size: 18px; line-height: 1.5; margin: 8px 0 16px; }
  .water-initial-reference { font-weight: 700; }
  .water-portions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .water-portions > div { display: grid; text-align: center; background: white; border-radius: 14px; padding: 16px 8px; }
  .water-portions svg { width: 85px; height: auto; display: block; margin: auto; }
  .water-portions strong { font-size: 30px; color: #214e60; font-variant-numeric: tabular-nums; }
  .water-portions span { font-size: 11px; font-weight: 700; margin-top: 10px; }
  .guided-workspace-stage .guided-water-preparation label { display: flex; align-items: center; gap: 12px; font-weight: 700; margin-top: 20px; font-size: 17px; color: #214e60; }
  .guided-water-preparation input { min-width: 23px; height: 23px; accent-color: #285d70; }
  .guided-workspace-stage .guided-water-note { font-size: 13px; color: #626e59; }
  .adjustment-feedback:empty { display: none; }
  .adjustment-feedback { padding: 12px 14px; margin: 16px 0; border: 1px solid var(--field-border); border-radius: 6px; background: #edf3e6; color: #304327; font-size: 14px; line-height: 1.6; }
  .adjustment-feedback.is-error { border-color: #ba7359; background: #fff1eb; color: #812e1b; }
  input[aria-invalid=true] { border-color: #a54227 !important; outline-color: #a54227; }
}
@media screen and (max-width: 550px) {
  .dress-step-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dress-step-panel { padding: 14px; }
  .dress-step-panel svg .dm-side-caption { font-size: 25px; }
  .dress-motion-tools { padding: 0 14px 12px; flex-wrap: wrap; }
  .dress-motion-status { flex-basis: 100%; }
  .guided-water-preparation { padding: 16px; }
  .water-portions strong { font-size: 27px; }
  .dough-lab .process-phase-reading #phase-detail h3 { font-size: 25px; }
  .phase-actions button { font-size: 12px; padding: 10px; }
}
@media print {
  .dress-step-tabs, .dress-step-actions, .dress-motion-tools { display: none !important; }
  .dress-step-panel[hidden] { display: block !important; }
  .dress-step-panel { break-inside: avoid; }
  .dress-step-panel .reference-visual { max-width: 420px; }
  .dress-step-panel svg { width: 100%; height: auto; }
}
/* Public reference phase structure, scoped to observed copy only. */
.reference-phase-copy { color: #171916; font-size: 14px; line-height: 1.7; }
.reference-phase-copy h3 { font-size: 28px; line-height: 1.25; margin: 14px 0 10px; color: #171916; }
.reference-phase-copy h4 { font-size: 20px; line-height: 1.35; color: #303a2d; margin: 12px 0; }
.reference-phase-copy p { font-size: 14px; line-height: 1.7; margin: 14px 0; }
.reference-phase-copy .phase-subtitle { color: #626e59; font-size: 14px; max-width: 620px; line-height: 1.7; margin: 0 0 22px; }
.reference-phase-copy .phase-small-note { font-size: 12px; color: #626e59; margin: 18px 0 0; }
.reference-phase-copy ol { padding-left: 24px; margin: 22px 0; }
.reference-phase-copy ol > li { padding-left: 5px; margin-bottom: 12px; }
.reference-phase-copy ol > li::marker { color: #a8652f; }
.reference-phase-copy .bake-overview { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 20px 0; }
.reference-phase-copy .bake-overview > div { padding: 16px; background: #f2f4ed; border: 1px solid #d4ddcb; border-radius: 10px; }
.reference-phase-copy .bake-overview span, .reference-phase-copy .bake-overview strong { display: block; }
.reference-phase-copy .bake-overview span { font-size: 14px; color: #58634e; margin-bottom: 6px; }
.reference-phase-copy .bake-overview strong { font-size: 20px; color: #283e2c; line-height: 1.35; }
.reference-phase-copy .bake-steps { padding-left: 26px; }
.reference-phase-copy .bake-steps > li { border-bottom: 1px solid #e1e6da; padding: 0 0 14px 8px; margin-bottom: 18px; }
.reference-phase-copy .bake-steps > li:last-child { border: 0; }
.reference-phase-copy .bake-steps > li::marker { color: #9a531b; font-weight: 700; }
.reference-phase-copy .bake-step-title { display: block; color: #30482e; font-size: 17px; }
.reference-phase-copy .bake-steps p { font-size: 16px; line-height: 1.65; margin: 8px 0 0; }
.reference-phase-copy .oven-suitability { padding: 16px 18px; margin: 14px 0 20px; background: #f0f4e9; border-left: 3px solid #789260; border-radius: 0 8px 8px 0; }
.reference-phase-copy .oven-suitability > span { font-size: 12px; letter-spacing: 1px; color: #647354; display: block; }
.reference-phase-copy .oven-suitability strong { display: block; font-size: 25px; font-weight: 600; margin: 6px 0; }
.reference-phase-copy .oven-suitability[data-level=avoid] { background: #fff0e9; border-color: #b76c44; }
.reference-phase-copy .oven-suitability[data-level=limited], .reference-phase-copy .oven-suitability[data-level=medium], .reference-phase-copy .oven-suitability[data-level=strong] { background: #faf3e5; border-color: #ba974e; }
.reference-phase-copy .oven-suitability[data-level=perfect] { background: linear-gradient(115deg, #fff4d7, #fffaf0); border-color: #c39328; }
.reference-phase-copy .oven-suitability[data-level=pending] { background: #f2f3f0; border-color: #899181; }
.reference-phase-copy .affinity-star { display: inline-block; color: #a77513; font-size: 24px; line-height: 1; vertical-align: 1px; margin-right: 4px; }
.unverified-procedure { padding: 12px 14px; background: #faf3e5; border: 1px solid #ba974e; border-radius: 6px; font-size: 14px; line-height: 1.7; }
@media (max-width: 520px) { .reference-phase-copy .bake-overview { grid-template-columns: 1fr; } .reference-phase-copy .bake-overview strong { font-size: 19px; } .reference-phase-copy h3 { font-size: 25px; } }


/* Observed procedure component layouts */


























































































































.observed-procedure-copy .water-advice{ margin: 15px 0px 0px; padding: 11px 14px; background: rgb(240, 245, 246); border-left: 3px solid rgb(106, 156, 175); font-size: 13px; line-height: 1.6; color: rgb(50, 85, 100); }
.observed-procedure-copy .water-advice strong{ font-weight: 700; }









































.observed-procedure-copy .volume-layout{ display: grid; grid-template-columns: minmax(220px, 1fr) 1fr; gap: 30px; align-items: center; margin: 23px 0px; }




.observed-procedure-copy .volume-note strong{ display: block; font: 700 44px var(--display); color: rgb(169, 75, 8); }
.observed-procedure-copy .volume-note p{ font-size: 13px; line-height: 1.7; color: var(--muted); margin: 6px 0px; }
.observed-procedure-copy .animate-volume{ border: 1px solid rgb(213, 213, 204); background: white; border-radius: 6px; padding: 9px 12px; font-size: 12px; margin-top: 10px; }
















@media (max-width: 1050px){.observed-procedure-copy .volume-layout{ gap: 14px; }}
@media (max-width: 760px){.observed-procedure-copy .volume-layout{ grid-template-columns: 1fr 1fr; gap: 10px; }
.observed-procedure-copy .volume-note strong{ font-size: 34px; }
.observed-procedure-copy .volume-note p{ font-size: 12px; }}
@media (max-width: 380px){.observed-procedure-copy .volume-layout{ grid-template-columns: 1fr; }
.observed-procedure-copy .volume-note strong{ font-size: 32px; }}

@media print{.observed-procedure-copy .header-right,.observed-procedure-copy .setup,.observed-procedure-copy .page-intro,.observed-procedure-copy .pizza-cover,.observed-procedure-copy .outline-button,.observed-procedure-copy .phase-nav,.observed-procedure-copy .print-button,.observed-procedure-copy .phase-next,.observed-procedure-copy .animate-volume,.observed-procedure-copy footer,.observed-procedure-copy .readiness-note,.observed-procedure-copy .skip-link{ display: none !important; }
.observed-procedure-copy .volume-layout{ grid-template-columns: 160px 1fr; }
.observed-procedure-copy .water-advice{ print-color-adjust: exact; }}























































































































.observed-procedure-copy .tray-pair{ display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.observed-procedure-copy .tray-pair figure{ margin: 0px; min-width: 0px; }

.observed-procedure-copy .tray-pair figcaption{ padding: 0px 20px 20px; }
.observed-procedure-copy .tray-pair figcaption span{ display: block; font-size: 10px; letter-spacing: 1px; color: rgb(105, 121, 92); margin: 4px 0px 8px; }
.observed-procedure-copy .tray-pair figcaption strong{ font: 600 25px/1.1 var(--display); display: block; }
.observed-procedure-copy .tray-pair figcaption p{ font-size: 12px; color: rgb(104, 121, 92); line-height: 1.6; margin: 8px 0px 0px; }
.observed-procedure-copy .tray-footer{ display: flex; gap: 20px; align-items: center; border-top: 1px solid rgb(214, 223, 205); padding-top: 15px; }
.observed-procedure-copy .tray-footer p{ font-size: 11px; line-height: 1.8; color: rgb(100, 113, 88); max-width: 660px; margin: 0px; }
.observed-procedure-copy .tray-footer button{ flex-shrink: 0; white-space: nowrap; border: 1px solid rgb(191, 206, 179); border-radius: 6px; background: rgb(249, 251, 246); color: rgb(77, 102, 56); font-size: 12px; padding: 10px 12px; }
.observed-procedure-copy .tray-comparison{ margin: 22px 0px; background: rgb(244, 246, 239); border-radius: 10px; padding: 8px 12px 15px; }
.observed-procedure-copy .tray-pair{ gap: 5px; }
.observed-procedure-copy .tray-pair figcaption{ padding: 0px 10px 15px; }
.observed-procedure-copy .tray-pair figcaption strong{ font-size: 22px; }
.observed-procedure-copy .tray-footer{ display: block; }
.observed-procedure-copy .tray-footer button{ margin-top: 10px; }
.observed-procedure-copy .tray-playing .grown-ball{ animation: 1.4s cubic-bezier(0.22, 0.61, 0.36, 1) 0s 1 normal both running observed-tray-rise; transform-box: view-box; }




@media (max-width: 1050px){.observed-procedure-copy .tray-footer{ flex-wrap: wrap; gap: 12px; }}
@media (max-width: 760px){.observed-procedure-copy .tray-pair{ gap: 12px; grid-template-columns: 1fr; }
.observed-procedure-copy .tray-pair figcaption{ padding: 0px 12px 16px; }
.observed-procedure-copy .tray-pair figcaption strong{ font-size: 25px; }
.observed-procedure-copy .tray-footer{ display: block; }
.observed-procedure-copy .tray-footer button{ margin-top: 12px; }
.observed-procedure-copy .tray-pair{ grid-template-columns: 1fr; }}
@media (prefers-reduced-motion: reduce){.observed-procedure-copy .tray-playing .grown-ball{ animation: auto ease 0s 1 normal none running none !important; }}
@media print{.observed-procedure-copy .graph-explorer,.observed-procedure-copy .measurement-details,.observed-procedure-copy .graph-mobile-hint,.observed-procedure-copy .tray-footer button{ display: none; }
.observed-procedure-copy .tray-pair,.observed-procedure-copy .tray-pair{ grid-template-columns: 1fr 1fr; }}





































.observed-procedure-copy .container-reference{ display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 14px 12px 0px; font-size: 14px; color: rgb(70, 92, 56); }
.observed-procedure-copy .container-reference span{ color: rgb(105, 118, 94); }

.observed-procedure-copy .tray-playing.single-comparison .grown-ball{ animation: 1.4s cubic-bezier(0.22, 0.61, 0.36, 1) 0s 1 normal both running observed-single-rise; }

@media (max-width: 760px){.observed-procedure-copy .container-reference{ font-size: 13px; }}
@media (prefers-reduced-motion: reduce){.observed-procedure-copy .tray-playing.single-comparison .grown-ball{ animation: auto ease 0s 1 normal none running none !important; }}
.observed-procedure-copy .ingredient-chip{ display: inline-block; border-radius: 5px; font-weight: 600; padding: 2px 7px; line-height: 1.5; }
.observed-procedure-copy .ingredient-chip.flour{ background: rgb(245, 229, 203); color: rgb(114, 81, 30); }
.observed-procedure-copy .ingredient-chip.water{ background: rgb(220, 238, 251); color: rgb(21, 91, 137); }
.observed-procedure-copy .ingredient-chip.yeast{ background: rgb(240, 223, 252); color: rgb(118, 48, 143); }
.observed-procedure-copy .ingredient-chip.salt{ background: rgb(219, 238, 233); color: rgb(27, 101, 85); }
.observed-procedure-copy .ingredient-chip.oil{ background: rgb(255, 240, 177); color: rgb(121, 96, 19); }
.observed-procedure-copy .ingredient-chip.ice{ background: rgb(225, 245, 250); color: rgb(35, 107, 128); }
.observed-procedure-copy .ingredient-key{ display: flex; gap: 8px; flex-wrap: wrap; font-size: 13px; margin: 20px 0px; }
.observed-procedure-copy .mix-start-card{ background: rgb(255, 248, 237); border: 2px solid rgb(222, 154, 82); border-radius: 11px; padding: 22px; margin-top: 22px; }
.observed-procedure-copy .mix-start-card h4{ font: 600 29px/1.15 var(--display); margin: 8px 0px 16px; }
.observed-procedure-copy .mix-start-card p:last-child{ font-size: 14px; line-height: 1.7; margin: 14px 0px 0px; color: rgb(113, 92, 63); }
.observed-procedure-copy .mix-start-ingredients{ display: flex; flex-wrap: wrap; gap: 10px; font-size: 15px; }






@media (max-width: 760px){.observed-procedure-copy .mix-start-card{ padding: 18px; }
.observed-procedure-copy .mix-start-card h4{ font-size: 26px; }}
@media print{.observed-procedure-copy .mix-start-card,.observed-procedure-copy .ingredient-chip{ print-color-adjust: exact; }}

































































































































.observed-procedure-copy .mix-tutorial{ display: flex; align-items: center; gap: 16px; padding: 18px; margin: 22px 0px; border: 1px solid rgb(215, 197, 173); border-radius: 10px; background: rgb(255, 248, 237); color: rgb(133, 71, 19); text-decoration: none; }
.observed-procedure-copy .mix-tutorial > span:first-child{ font-size: 24px; }
.observed-procedure-copy .mix-tutorial small,.observed-procedure-copy .mix-tutorial strong,.observed-procedure-copy .mix-tutorial > span > span{ display: block; }
.observed-procedure-copy .mix-tutorial small{ font-size: 12px; letter-spacing: 0.04em; }
.observed-procedure-copy .mix-tutorial strong{ font-size: 18px; margin: 5px 0px; }
.observed-procedure-copy .mix-tutorial > span > span{ font-size: 14px; }
.observed-procedure-copy .mix-tutorial:hover{ background: rgb(255, 240, 216); }
.observed-procedure-copy .mix-tutorial:focus-visible{ outline: rgb(169, 83, 19) solid 3px; outline-offset: 4px; }












































































































































































































































































































































.observed-procedure-copy #dm-mixing-guide .dm-roman-order .ingredient-chip{ padding: 14px; display: block; font-size: 16px; }
































.observed-procedure-copy .dm-teglia-visual{ margin: 24px 0px; padding: 20px; border: 1px solid rgb(224, 228, 217); border-radius: 16px; background: rgb(250, 251, 247); overflow: hidden; }
.observed-procedure-copy .dm-visual-heading{ display: flex; justify-content: space-between; gap: 12px; align-items: center; flex-wrap: wrap; }
.observed-procedure-copy .dm-visual-heading > span{ font-size: 10px; letter-spacing: 1.4px; color: rgb(103, 116, 94); font-weight: 700; }
.observed-procedure-copy .dm-visual-heading strong{ font: 600 20px var(--display); color: rgb(48, 56, 43); }
.observed-procedure-copy .dm-teglia-visual svg{ display: block; width: 100%; height: auto; margin: 8px 0px; }
.observed-procedure-copy .dm-teglia-visual figcaption{ font-size: 13px; line-height: 1.55; color: rgb(93, 103, 85); margin: 0px; }





.observed-procedure-copy .dm-rise-play .dm-rise-mass,.observed-procedure-copy .dm-rise-play .dm-rise-ball{ animation-play-state: running; }












.observed-procedure-copy .dm-mass-visual{ max-width: 640px; }
.observed-procedure-copy .dm-portions-visual{ max-width: 720px; }
.observed-procedure-copy .dm-cassette-pair{ display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 18px; text-align: center; }
.observed-procedure-copy .dm-cassette-pair p{ font-size: 13px; line-height: 1.35; margin: 0px; color: rgb(86, 102, 76); }
.observed-procedure-copy .dm-cassette-pair .dm-ready-label{ color: rgb(172, 87, 29); font-weight: 600; }
.observed-procedure-copy .dm-cassette-pair span{ display: block; font-size: 12px; line-height: 1.4; color: rgb(94, 103, 89); }
.observed-procedure-copy .dm-cassette-pair svg{ margin: 8px 0px; }


@media (max-width: 550px){.observed-procedure-copy .dm-teglia-visual{ padding: 12px; }
.observed-procedure-copy .dm-mass-visual .dm-svg-initial,.observed-procedure-copy .dm-mass-visual .dm-svg-target{ font-size: 18px; }
.observed-procedure-copy .dm-mass-visual .dm-svg-caption{ display: none; }
.observed-procedure-copy .dm-cassette-pair{ gap: 8px; }}
























































































































































































































































@keyframes observed-tray-rise{
  0% { transform: scale(0.85); }
  100% { transform: scale(1); }
}
@keyframes observed-single-rise{
  0% { transform: scaleY(0.666667); }
  100% { transform: scaleY(1); }
}
.observed-phase-visual{display:contents}.observed-phase-visual svg{display:block;width:100%;height:auto;max-width:100%}

/* Original phase typography, hosted locally under SIL OFL 1.1. */
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:600;font-display:swap;src:url('./assets/barlow-condensed-600-latin.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:700;font-display:swap;src:url('./assets/barlow-condensed-700-latin.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:800;font-display:swap;src:url('./assets/barlow-condensed-800-latin.woff2') format('woff2')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:400;font-display:swap;src:url('./assets/dm-sans-400-latin.woff2') format('woff2')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:500;font-display:swap;src:url('./assets/dm-sans-500-latin.woff2') format('woff2')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:600;font-display:swap;src:url('./assets/dm-sans-600-latin.woff2') format('woff2')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:700;font-display:swap;src:url('./assets/dm-sans-700-latin.woff2') format('woff2')}
.process-phase-reading{--font:'DM Sans',Arial,sans-serif;--display:'Barlow Condensed','Arial Narrow',Arial,sans-serif;font-family:var(--font)}
.reference-phase-copy{font-family:var(--font,'DM Sans',Arial,sans-serif);font-size:16px;line-height:1.5}.reference-phase-copy h3{font-family:var(--display,'Barlow Condensed','Arial Narrow',Arial,sans-serif);font-size:31px;line-height:1.1;font-weight:700}.reference-phase-copy p{font-size:16px;line-height:1.5}.reference-phase-copy .phase-subtitle{font-size:14px;line-height:1.7}.reference-phase-copy .phase-tag{font-size:12px}.reference-phase-copy .phase-small-note{font-size:12px}

/* Observed phase reading rules. Scope keeps configuration and branding intact. */
.reference-phase-copy h3{ font: 700 31px/1.1 var(--display); margin-bottom: 12px; }
.reference-phase-copy .phase-subtitle{ color: var(--muted); font-size: 14px; max-width: 620px; line-height: 1.7; }
.reference-phase-copy ol{ padding-left: 22px; margin: 20px 0px 0px; }
.reference-phase-copy li{ font-size: 14px; line-height: 1.7; margin-bottom: 10px; padding-left: 6px; }
.reference-phase-copy li::marker{ color: rgb(162, 74, 9); font-weight: 600; }
.reference-phase-copy .tray-comparison{ margin: 22px 0px; background: rgb(244, 246, 239); border-radius: 10px; padding: 8px 12px 15px; }
.reference-phase-copy .tray-pair{ gap: 5px; }
.reference-phase-copy .tray-pair figcaption{ padding: 0px 10px 15px; }
.reference-phase-copy .tray-pair figcaption strong{ font-size: 22px; }
.reference-phase-copy .tray-footer{ display: block; }
.reference-phase-copy .tray-footer button{ margin-top: 10px; }
.reference-phase-copy .flour-suitability > span{ font-size: 9px; letter-spacing: 1px; color: rgb(100, 115, 84); display: block; }
.reference-phase-copy .flour-suitability strong{ display: block; font: 600 25px var(--display); margin: 6px 0px; }
.reference-phase-copy .flour-suitability p{ font-size: 12px; line-height: 1.6; color: rgb(101, 113, 90); margin: 0px; }
.reference-phase-copy .flour-suitability[data-level="limited"],.reference-phase-copy .flour-suitability[data-level="medium"],.reference-phase-copy .flour-suitability[data-level="strong"]{ background: rgb(250, 243, 229); border-color: rgb(186, 151, 78); }
.reference-phase-copy .flour-suitability[data-level="avoid"]{ background: rgb(255, 240, 233); border-color: rgb(183, 108, 68); }
.reference-phase-copy .flour-suitability[data-level="perfect"]{ background: linear-gradient(115deg, rgb(255, 244, 215), rgb(255, 250, 240)); border-color: rgb(195, 147, 40); }
.reference-phase-copy .flour-suitability .affinity-star{ display: inline-block; color: rgb(167, 117, 19); font-size: 24px; line-height: 1; vertical-align: 1px; margin-right: 4px; }
.reference-phase-copy .oven-suitability > span{ font-size: 12px; }
.reference-phase-copy .oven-suitability p{ font-size: 14px; }
.reference-phase-copy .oven-suitability[data-level="pending"]{ background: rgb(242, 243, 240); border-color: rgb(137, 145, 129); }
.reference-phase-copy .flour-suitability[data-level="pending"]{ background: rgb(242, 242, 239); border-color: rgb(170, 170, 170); }
.reference-phase-copy h3{margin-top:0}.reference-phase-copy p{margin:0 0 16px}.reference-phase-copy .phase-subtitle{margin:0 0 14px}.reference-phase-copy .phase-small-note{margin:18px 0 0}.reference-phase-copy .bake-steps p{margin:8px 0 0}.reference-phase-copy .oven-suitability p{font-size:14px;line-height:1.6;margin:0}

/* DoughMetry visual measurements, 30 October 2026. Presentation only;
   the existing olive palette, input contracts and recipe data are preserved. */
@media screen {
  .dough-lab { font-family: var(--font); font-size: 16px; }
  .dough-lab .topbar { height: 74px; }
  .dough-lab main { max-width: 1360px; padding-inline: 28px; }
  .dough-lab .intro { padding: 17px 0 10px; }
  .dough-lab h1 { font: 650 25px/30px system-ui,sans-serif; letter-spacing: -.8px; margin-bottom: 7px; }
  .dough-lab .lead { font: 400 13px/1.6 system-ui,sans-serif; }
  .step-calculator:not(.recipe-mode) .workspace { max-width: 880px; }
  .step-calculator .settings { border-radius: 14px; }
  .wizard-heading { padding: 14px 20px 10px; }
  .dough-lab .wizard-heading h2 { font: 700 20px/1.5 var(--font); letter-spacing: -.5px; margin: 0; }
  .wizard-progress { height: 5px; width: calc(100% - 40px); margin: 12px 20px 0; }
  .wizard-progress-text { font-size: 11px; margin: 6px 20px 8px; }
  .wizard-tab { justify-content: center; gap: 7px; min-height: 58px; padding: 14px 2px 18px; border-bottom-width: 3px; text-align: center; }
  .wizard-tab-copy { flex: 0 1 auto; }
  .wizard-step-summary { display: none; }
  .wizard-step-name { font-size: 12px; line-height: 1.5; }
  .wizard-tab:disabled { opacity: .65; }
  .calculator-step { padding: 28px 28px 0; }
  .dough-lab .calculator-step .step-title { font: 700 30px/1.12 var(--display); letter-spacing: 0; text-align: left; margin-bottom: 14px; }
  .step-description { font-size: 14px; line-height: 1.7; text-align: left; margin-bottom: 28px; }
  .dough-lab .calculator-step legend { font: 600 25px/1.2 var(--display); padding-bottom: 20px; }
  .dough-lab .calculator-step label { font-size: 14px; font-weight: 600; gap: 9px; margin-bottom: 24px; }
  .dough-lab .calculator-step .form-row { gap: 18px; }
  .dough-lab .calculator-step :is(input, select) { height: 49px; min-height: 49px; border-radius: 7px; padding: 10px 13px; font-size: 16px; }
  .dough-lab .calculator-step input[type='datetime-local'] { font-size: 16px; }
  .dough-lab .calculator-step .field-note { font-size: 13px; line-height: 1.65; }
  .choice-section { margin-bottom: 25px; }
  .choice-label { font-size: 14px; line-height: 1.5; margin-bottom: 9px; }
  .equipment-choices { gap: 8px; align-items: stretch; }
  .equipment-choice { align-items: flex-start; justify-content: center; text-align: left; padding: 16px; gap: 8px; min-height: 116px; background: var(--field-surface); color: var(--ink); }
  .equipment-choice strong { font: 600 16px/1.5 var(--font); }
  .equipment-choice small { color: var(--muted); font-size: 14px; line-height: 1.5; }
  .equipment-choice[aria-checked='true'] { border-width: 2px; padding: 15px; }
  .equipment-choice[aria-checked='true']::after { content: none; }
  .equipment-choice[aria-checked='true'] strong { color: var(--olive-deep); }
  .equipment-icon { display: grid; place-items: center; width: 48px; height: 48px; flex: 0 0 48px; padding: 10px; border: 1px solid var(--field-border); border-radius: 12px; background: var(--surface-secondary); color: var(--green); }
  .equipment-choice[aria-checked='true'] .equipment-icon { background: var(--field-surface); border-color: var(--green); }
  .choices-container .equipment-choice { min-height: 158px; padding: 20px; gap: 10px; justify-content: flex-start; }
  .choices-container .equipment-choice[aria-checked='true'] { padding: 19px; }
  .quantity-choices .equipment-choice { min-height: 88px; }
  .choices-division .equipment-choice { min-height: 124px; justify-content: flex-start; }
  .dough-lab .pizza-picker { max-width: 680px; margin: 22px auto 28px; border-radius: 14px; }
  .dough-lab .pizza-picker-summary { min-height: 116px; padding: 20px 24px; gap: 15px; }
  .pizza-picker-summary img { width: 90px; height: 90px; border-radius: 9px; }
  .pizza-picker-copy strong { font: 600 27px/1.08 var(--display); }
  .pizza-picker-copy small { font-size: 12px; line-height: 1.5; margin-top: 6px; }
  .pizza-picker-option { font: 600 23px/1.1 var(--display); padding: 9px 6px; border-radius: 9px; }
  .pizza-picker-option img { width: 81px; height: 54px; border-radius: 6px; }
  .pizza-picker-options { max-height: 400px; overflow-y: auto; overscroll-behavior: contain; }
  .oven-options { margin-top: 30px; padding-top: 22px; }
  .dough-lab .oven-options-title { font-size: 14px; min-height: 44px; }
  .wizard-actions { padding: 24px 28px; margin-top: 28px; background: transparent; }
  .wizard-previous { border-color: transparent; background: transparent; font-size: 13px; }
  .wizard-next, .step-calculator .wizard-actions .primary { min-height: 49px; min-width: 220px; border-radius: 12px; padding: 12px 22px; font: 700 14px/1.5 var(--font); }
  .wizard-next { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
  .wizard-next::after { content: ''; flex: 0 0 8px; width: 8px; height: 8px; border-top: 1px solid currentColor; border-right: 1px solid currentColor; transform: rotate(45deg); }
  .quantity-stepper { grid-template-columns: 39px minmax(0,1fr) 39px; border: 1px solid var(--field-border); border-radius: 7px; overflow: hidden; }
  .quantity-stepper button { width: 39px; min-height: 47px; border: 0; border-radius: 0; padding: 8px; background: var(--white); }
  .dough-lab .quantity-stepper input { height: 47px; min-height: 47px; border: 0; padding-inline: 4px; appearance: textfield; }
  .quantity-stepper input::-webkit-inner-spin-button { appearance: none; }

  .recipe-mode .recipe-complete { padding: 15px 24px; border-radius: 14px 14px 0 0; }
  .recipe-mode .recipe-overview { border-radius: 0 0 14px 14px; }
  .recipe-mode .recipe-cover::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgb(0 0 0 / .85), rgb(0 0 0 / .25) 54%, rgb(0 0 0 / .02)); pointer-events: none; }
  .recipe-mode .recipe-cover-copy { z-index: 1; top: 27px; left: 30px; right: 30px; bottom: auto; padding: 0; }
  .dough-lab.recipe-mode .recipe-cover-copy h2 { font: 700 43px/.98 var(--display); letter-spacing: .1px; margin: 12px 0 18px; }
  .recipe-mode .recipe-image-caption { display: block; font-size: 11px; line-height: 1.5; }
  .recipe-mode .recipe-body { padding: 25px 30px 28px; }
  .step-calculator.recipe-mode .recipe-summary h3 { font: 700 21px/1.4 var(--font); letter-spacing: -.5px; }
  .recipe-mode .recipe-stats { border-top: 0; margin-top: 22px; padding: 0 0 20px; margin-bottom: 8px; }
  .recipe-stat > span, .recipe-mode .hydration-badge span { font-size: 11px; margin-bottom: 4px; }
  .recipe-mode .recipe-stat > strong, .recipe-mode .hydration-badge strong { font: 600 35px/1.1 var(--display); letter-spacing: 0; }
  .recipe-mode .recipe-stat { padding-inline: 20px; }
  .recipe-mode .hydration-badge { padding-right: 20px; }
  .step-calculator.recipe-mode .ingredient { padding-block: 11px; }
  .step-calculator.recipe-mode .ingredient-value { font: 600 16px/1.5 var(--font); letter-spacing: 0; }
  .recipe-mode .ingredient-value span { font-size: 12px; }
  .recipe-mode .ingredient h3 { display: flex; align-items: center; gap: 10px; }
  .recipe-mode .ingredient h3::before { content: ''; width: 6px; height: 6px; flex: 0 0 6px; border-radius: 50%; background: var(--green); }
  .step-calculator.recipe-mode .ingredient-water { grid-template-columns: minmax(0,1fr) auto auto; min-height: 84px; column-gap: 18px; }
  .recipe-mode .ingredient-water h3 { grid-column: 1; grid-row: 1; align-self: center; }
  .recipe-mode .ingredient-water h3::before { background: #3482b6; }
  .recipe-mode .ingredient-water .ingredient-caption { grid-column: 2; grid-row: 1; align-self: center; text-align: center; color: #325564; font: 600 28px/1.1 var(--display); margin: 0; }
  .recipe-mode .ingredient-water .ingredient-caption::before { content: 'Temperatura acqua'; display: block; margin-bottom: 6px; font: 400 10px/1.5 var(--font); }
  .recipe-mode .ingredient-water .ingredient-value { grid-column: 3; grid-row: 1; padding-left: 18px; border-left: 1px solid #c3d7df; }
  .step-calculator.recipe-mode .water-note { font-size: 13px; background: #eef5f7; border-color: #c3d7df; color: #325564; padding: 11px 14px; }
  .recipe-mode .result-procedure { margin-top: 52px; }
  .recipe-mode .result-procedure .process-title { font: 700 35px/1.1 var(--display); margin-bottom: 27px; }
  .step-calculator.recipe-mode .results .schedule { padding: 24px; border-radius: 16px; background: var(--olive-deep); color: var(--on-olive); border-color: var(--olive-deep); }
  #schedule-title { font: 600 28px/1.1 var(--display); color: var(--on-olive); }
  .recipe-mode .schedule .duration { background: transparent; color: var(--gold); font: 600 36px/1.1 var(--display); padding: 0; }
  .recipe-mode .timeline { display: grid; grid-template-columns: repeat(auto-fit,minmax(120px,1fr)); gap: 12px; overflow: visible; margin: 22px 0 0; padding: 0; }
  .dough-lab.recipe-mode .timeline li { min-width: 0; padding: 0 0 10px; border: 0; background: transparent; }
  .recipe-mode .timeline li[data-phase-id] { background: transparent; }
  .recipe-mode .timeline-phase-icon { width: 38px; height: 38px; padding: 8px; border-radius: 10px; background: var(--olive-deep); border-color: var(--olive-border); color: var(--on-olive-muted); margin-bottom: 12px; }
  .dough-lab.recipe-mode .timeline .phase-link { color: var(--on-olive); font-size: 14px; line-height: 1.5; }
  .recipe-mode .timeline p, .recipe-mode .timeline time, .recipe-mode .schedule .field-note, .recipe-mode .schedule-phase-preview { color: var(--on-olive-muted); font-size: 12px; line-height: 1.6; }
  .recipe-mode .timeline time { margin-top: 12px; }
  .recipe-mode .schedule-phase-bar { height: 48px; gap: 0; margin: 18px 0 8px; border-radius: 8px; overflow: hidden; }
  .schedule-phase-segment { min-width: 0; min-height: 48px; padding: 0; border: 0; border-radius: 0; background: var(--green); font-size: 0; }
  .schedule-phase-segment[data-phase-id='cold'] { background: #79a0b1; }
  .schedule-phase-segment[data-phase-id='mix'] { background: #7b846e; }
  .schedule-phase-segment[data-phase-id='preCold'] { background: #a79775; }
  .schedule-phase-segment[data-phase-id='proof'] { background: #b6a371; }
  .schedule-phase-segment[data-phase-id='bake'], .schedule-phase-segment[data-phase-id='prebake'] { background: var(--gold); }
  .schedule-phase-segment[aria-pressed='true'] { outline-color: var(--on-olive); outline-offset: -3px; }
  .schedule-phase-segment:focus-visible { outline-color: var(--gold); outline-offset: -4px; }
  .process-phase-nav { padding: 8px; border-radius: 12px; }
  .process-phase-button { font: 500 14px/1.5 var(--font); border-radius: 7px; }
  .process-phase-button[aria-selected='true'] .process-phase-number { background: var(--gold); color: var(--olive-deep); border-color: var(--gold); }
  .process-phase-reading { max-width: 1000px; margin-inline: auto; padding: 28px 32px; border-radius: 12px; }
  .dough-lab .process-phase-reading #phase-detail h3 { font: 700 31px/1.1 var(--display); }

  .guided-workspace { position: fixed; font-family: Arial,sans-serif; font-size: 16px; }
  .guided-workspace-header { position: sticky; top: 0; z-index: 2; background: var(--field-surface); padding: 12px 24px; }
  .guided-workspace-header h2 { font: 700 16px/1.5 Arial,sans-serif; letter-spacing: 1px; }
  .guided-workspace button { font: 700 15px/1.3 Arial,sans-serif; border-radius: 12px; padding: 13px 18px; min-height: 46px; }
  .guided-workspace-stage, .guided-execution { max-width: 704px; margin: 28px auto 48px; }
  .guided-workspace-stage h3 { font: 700 38px/1.12 Arial,sans-serif; margin: 10px 0 20px; text-align: left; }
  .guided-workspace-stage label { font-weight: 700; }
  .guided-workspace-stage select { border-radius: 12px; padding: 13px; }
  .guided-workspace-stage .guided-ingredient-check:has(input:checked) { background: var(--surface-secondary); border-color: var(--green); }
  .dough-lab .guided-execution .mixing-console output { font: 700 90px/1.15 Arial,sans-serif; letter-spacing: 0; }
  .dough-lab .guided-execution .mixing-console h4 { font-family: Arial,sans-serif; font-size: 28px; }
  .guided-execution .mixing-console .guide-up-next { padding: 16px 20px; border-radius: 16px; background: var(--white); }
  .dough-lab .guided-execution .mixing-console .guide-up-next h4 { font: 700 18px/1.35 Arial,sans-serif; }
  .guided-workspace .guided-advance { background: var(--green); color: var(--on-olive); border-color: var(--green); }
  .guided-workspace .guided-advance:hover { background: var(--accent-hover); }
  .guided-execution .mixing-console:has(.guided-machine-visual:not([hidden]) > .reference-visual:only-child) { display: grid; grid-template-columns: minmax(0,1fr) 180px; column-gap: 30px; align-items: center; }
  .guided-execution .mixing-console > * { grid-column: 1 / -1; }
  .dough-lab .guided-execution .mixing-console:has(.guided-machine-visual > .reference-visual:only-child) #guide-clock { grid-column: 1; grid-row: 3; text-align: left; margin-block: 16px; }
  .guided-execution .guided-machine-visual:has(> .reference-visual:only-child) { grid-column: 2; grid-row: 3; width: 180px; max-width: 100%; margin: 0; }
}
@media screen and (min-width: 900px) {
  .dough-lab #calculator-step-0 .step-title, #calculator-step-0 > .step-description { text-align: center; }
  .pizza-picker-copy strong { font-size: 26px; }
}
@media screen and (max-width: 1050px) {
  .calculator-step { padding: 23px 23px 0; }
  .wizard-tab { flex-direction: row; }
  .recipe-mode .recipe-body { padding: 24px; }
  .recipe-mode .timeline { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .dough-lab.recipe-mode .timeline li { padding: 12px; border: 1px solid var(--olive-border); border-radius: 10px; }
}
@media screen and (max-width: 760px) {
  .dough-lab main { padding-inline: 18px; }
  .dough-lab h1 { font-size: 25px; }
  .dough-lab .calculator-step .step-title { font-size: 28px; }
  .step-description { font-size: 13px; }
  .wizard-step-name { font-size: 10px; }
  .wizard-tab { flex-direction: column; padding: 14px 2px 18px; }
  .wizard-actions { padding: 22px; gap: 12px; }
  .wizard-next, .step-calculator .wizard-actions .primary { min-width: 0; max-width: 78%; font-size: 13px; }
  .dough-lab .pizza-picker-summary { gap: 10px; padding: 20px 24px; }
  .pizza-picker-summary img { width: 78px; height: 62px; }
  .pizza-picker-copy strong { font-size: 24px; }
  .pizza-picker-copy small { font-size: 11px; }
  .recipe-mode .recipe-cover { min-height: 250px; height: 250px; }
  .recipe-mode .recipe-cover-copy { left: 24px; right: 24px; top: 27px; }
  .dough-lab.recipe-mode .recipe-cover-copy h2 { font-size: 39px; }
  .recipe-mode .recipe-complete { font-size: 12px; padding: 12px 16px; }
  .recipe-mode .recipe-stat { padding-inline: 14px; }
  .recipe-mode .hydration-badge { padding-right: 14px; }
  .recipe-mode .recipe-stat > strong, .recipe-mode .hydration-badge strong { font-size: 28px; }
  .recipe-mode .result-procedure { margin-top: 36px; }
  .recipe-mode .result-procedure .process-title { font-size: 29px; }
  .process-phase-reading { padding: 23px; }
  .process-phase-nav { padding: 6px; border-radius: 9px; }
  .guided-workspace-header { padding: 10px 0; }
  .guided-workspace-header h2 { flex-basis: 100%; font-size: 13px; }
  .guided-workspace-header button { padding: 10px 12px; }
  .guided-workspace-stage h3 { font-size: 28px; }
  .dough-lab .guided-execution .mixing-console output { font-size: 66px; }
  .guided-execution .mixing-console:has(.guided-machine-visual:not([hidden]) > .reference-visual:only-child) { grid-template-columns: minmax(0,1fr) minmax(90px,33%); column-gap: 12px; }
}
@media screen and (max-width: 650px) {
  .step-calculator.recipe-mode .results .schedule { padding: 20px 16px; }
  .recipe-mode .timeline { grid-template-columns: minmax(0,1fr); gap: 9px; }
  .dough-lab.recipe-mode .timeline li { display: grid; grid-template-columns: 38px minmax(0,1fr); gap: 0 12px; }
  .recipe-mode .timeline-phase-icon { grid-row: 1/3; margin: 0; }
  .recipe-mode .timeline time { grid-column: 2; margin-top: 8px; }
  .dough-lab.recipe-mode .timeline li.schedule-endpoint { display: none; }
}
@media screen and (max-width: 420px) {
  .dough-lab main { padding-inline: 10px; }
  .calculator-step { padding: 20px 20px 0; }
  .wizard-steps { padding-inline: 8px; }
  .wizard-step-name { font-size: 10px; }
  .choices-machine .equipment-choice { align-items: center; padding: 12px 8px; }
  .choices-machine .equipment-choice[aria-checked='true'] { padding: 11px 7px; }
  .choices-machine .equipment-choice strong { font-size: 14px; }
  .choices-container .equipment-choice { padding: 16px; }
  .choices-container .equipment-choice[aria-checked='true'] { padding: 15px; }
  .dough-lab .pizza-picker-summary { padding: 16px; }
  .pizza-picker-summary img { width: 64px; height: 62px; }
  .recipe-mode .recipe-body { padding: 20px; }
  .recipe-mode .recipe-stat { padding-inline: 10px; }
  .recipe-mode .recipe-stat > strong, .recipe-mode .hydration-badge strong { font-size: 24px; }
  .step-calculator.recipe-mode .ingredient-water { column-gap: 10px; padding-inline: 10px; }
  .recipe-mode .ingredient-water .ingredient-value { padding-left: 10px; }
  .recipe-mode .ingredient-water .ingredient-caption { font-size: 24px; }
  .process-phase-reading { padding: 20px; }
}

/* Second comparison pass: the same controls and results in the observed layout. */
@media screen {
  .dough-lab main { padding-inline: 20px; }
  .wizard-guide { padding: 0 20px; margin: 0 0 8px; font-size: 14px; line-height: 1.7; color: var(--muted); }
  .wizard-tab.is-complete:not([aria-selected='true']) .wizard-step-number { background: var(--surface-secondary); color: var(--olive-deep); border-color: var(--line); }
  .step-context { margin: 0 0 10px; font-size: 11px; font-weight: 700; letter-spacing: 1.4px; color: var(--green); }
  .dough-lab .calculator-step .step-title { margin-bottom: 28px; }
  .step-description:not(.pizza-picker-note), #calculator-step-1 legend { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .dough-lab .pizza-picker { margin-bottom: 14px; }
  .pizza-picker-note { text-align: center; font-size: 13px; margin: 0 0 28px; }
  .pizza-picker-caption { display: block; font-size: 10px; font-weight: 500; letter-spacing: 1.5px; text-transform: uppercase; color: var(--green); margin-bottom: 6px; }
  .wizard-actions { margin: 28px 28px 0; padding: 24px 0 0; }
  .wizard-previous:disabled { visibility: hidden; }
  .wizard-next { min-height: 53px; }
  .dough-lab .reference-ranges { display: block; }
  .dough-lab .calculator-step .reference-range-field { display: block; margin: 24px 0; }
  .reference-range-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
  .reference-range-value, .reference-range-number { display: flex; align-items: baseline; font: 700 22px/1.2 var(--display); color: var(--green); }
  .dough-lab .calculator-step .reference-range-number input { width: 62px; height: 29px; min-height: 29px; border: 0; border-radius: 0; background: transparent; padding: 0; text-align: right; font: inherit; color: inherit; appearance: textfield; }
  .reference-range-number input::-webkit-inner-spin-button { appearance: none; }
  .dough-lab .calculator-step input.reference-range { appearance: auto; display: block; width: 100%; height: 24px; min-height: 24px; margin: 9px 0; border: 0; padding: 0; background: transparent; accent-color: var(--green); cursor: pointer; }
  .reference-range-ends { display: flex; justify-content: space-between; gap: 12px; font-size: 11px; font-weight: 400; color: var(--muted); }
  .reference-range-field .input-hint { font-size: 12px; }
  .flour-catalog-options { margin: 12px 0 22px; font-size: 13px; }
  .flour-catalog-options > summary { cursor: pointer; color: var(--green); min-height: 36px; padding: 8px 0; }
  .flour-catalog-options[open] { padding: 14px 16px; background: var(--surface-secondary); border: 1px solid var(--line); border-radius: 12px; }
  .flour-catalog-options[open] > summary { margin-bottom: 12px; }
  .flour-facts { padding: 20px; margin: -6px 0 14px; background: var(--surface-secondary); border: 1px solid var(--line); border-radius: 9px; }
  .flour-facts[hidden] { display: none; }
  .flour-details { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
  .flour-facts span { display: block; font-size: 12px; color: var(--muted); }
  .flour-facts strong { display: block; font: 600 27px/1.2 var(--display); }
  .flour-details strong { margin-top: 4px; }
  .flour-details small { display: block; margin-top: 4px; font-size: 12px; color: var(--muted); }
  .flour-assessment { display: flex; align-items: center; gap: 14px; margin: 0 0 18px; padding: 0 0 18px; color: var(--olive-deep); border-bottom: 1px solid var(--field-border); }
  .flour-assessment[hidden], .flour-assessment .equipment-icon[hidden] { display: none; }
  .flour-assessment .equipment-icon { flex: 0 0 28px; width: 28px; height: 28px; padding: 0; border: 0; border-radius: 0; background: transparent; color: inherit; }
  .flour-assessment .equipment-icon svg { width: 28px; height: 28px; }
  .flour-assessment:not(.is-caution) .equipment-icon svg { fill: currentColor; stroke-width: 1; }
  .flour-assessment strong { display: block; font: 700 30px/1.15 var(--display); }
  .flour-assessment div > span { display: block; margin-top: 5px; font-size: 13px; line-height: 1.5; color: inherit; }
  .flour-assessment.is-caution { color: #87391e; }
  @media (max-width: 650px) { .flour-facts { padding: 18px 16px; } .flour-details { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 14px; } }
  @media (max-width: 380px) { .flour-details strong { font-size: 24px; } }
  #flour-guidance { font-size: 14px; line-height: 1.65; }
  .dough-lab .calculator-step .fridge-switch { display: flex; flex-direction: row; gap: 16px; align-items: center; margin: 0; padding: 16px 0 24px; cursor: pointer; }
  .fridge-switch-copy { flex: 1; min-width: 0; }
  .fridge-switch-copy strong { display: block; font-size: 14px; }
  .fridge-switch-copy small { display: block; font-size: 12px; font-weight: 400; margin-top: 4px; color: var(--muted); }
  .fridge-switch .equipment-icon { width: 34px; height: 34px; flex-basis: 34px; border: 0; padding: 4px; background: transparent; }
  .dough-lab .calculator-step .fridge-switch > input { position: relative; appearance: none; width: 44px; min-width: 44px; height: 26px; min-height: 26px; padding: 0; border: 0; border-radius: 20px; background: var(--line); cursor: pointer; }
  .fridge-switch > input::before { content: ''; position: absolute; width: 20px; height: 20px; left: 3px; top: 3px; border-radius: 50%; background: var(--field-surface); }
  .dough-lab .calculator-step .fridge-switch > input:checked { background: var(--olive-deep); }
  .fridge-switch > input:checked::before { transform: translateX(18px); }

  .recipe-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 23px; }
  .dough-lab.recipe-mode .recipe-summary .recipe-heading h3:first-child { font: 700 21px/1.5 var(--font); margin: 0; letter-spacing: -.5px; }
  .step-calculator.recipe-mode .recipe-heading #yield { font: 400 12px/1.5 var(--font); margin: 0; color: var(--muted); letter-spacing: 0; text-align: right; }
  .recipe-mode .recipe-summary #summary-detail { font-size: 11px; margin: -13px 0 20px; }
  .recipe-mode .recipe-stat > strong, .recipe-mode .hydration-badge strong { white-space: nowrap; font-size: 35px; }
  .recipe-mode .hydration-badge .metric-number { display: inline; margin: 0; font: inherit; color: inherit; }
  .metric-unit { font: 400 15px/1.5 var(--font); color: var(--muted); margin-left: 4px; }
  .recipe-mode .hydration-badge { flex-direction: column-reverse; }
  .recipe-mode .recipe-stat { padding-inline: 20px; }
  .recipe-mode .ingredient[data-ingredient='0'] h3::before { background: #b48a4d; }
  .recipe-mode .ingredient[data-ingredient='11'] h3::before { background: #80c5d4; }
  .recipe-mode .ingredient[data-ingredient='20'] h3::before { background: #9c62ba; }
  .recipe-mode .ingredient[data-ingredient='30'] h3::before { background: #438c78; }
  .recipe-mode .ingredient[data-ingredient='40'] h3::before { background: #caab32; }
  .recipe-mode .recipe-body > .temperature-panel { padding: 22px; margin: 22px 0 0; border: 1px solid var(--field-border); border-radius: 14px; background: var(--white); }
  .dough-lab.recipe-mode #temperature-title { font: 600 27px/1.15 var(--display); margin: 0 0 10px; }
  .recipe-mode #temperature-description { margin: 0 0 18px; color: var(--muted); font-size: 14px; line-height: 1.6; }
  .dough-lab.recipe-mode .recipe-body .temperature-panel .inline-controls { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 10px 12px; }
  .recipe-mode .temperature-panel .inline-controls > label { grid-column: 1; margin: 0; min-width: 0; font-size: 13px; }
  .dough-lab.recipe-mode #measured-dough-temp { height: 56px; min-height: 56px; width: 100%; margin-top: 6px; padding: 10px 12px; border-radius: 9px; background: var(--field-surface); font: 600 24px/1.3 var(--font); }
  .recipe-mode #measured-dough-temp::placeholder { color: var(--muted); opacity: 1; font-size: 15px; font-weight: 400; }
  .dough-lab.recipe-mode .temperature-panel #apply-temperature { grid-column: 2; grid-row: 1; min-height: 50px; margin-bottom: 3px; padding: 12px 18px; border-color: var(--green); border-radius: 9px; background: var(--green); color: var(--white); font: 600 14px/1.5 var(--font); }
  .dough-lab.recipe-mode .temperature-panel #apply-temperature:hover { background: var(--accent-hover); border-color: var(--accent-hover); }
  .recipe-mode .temperature-panel #clear-temperature { grid-column: 1 / -1; justify-self: start; min-height: 36px; padding: 6px 0; }
  .dough-lab.recipe-mode .temperature-panel details { margin: 14px 0 0; padding-top: 14px; }
  .recipe-mode .temperature-panel details > summary { font-size: 13px; line-height: 1.5; margin: 0; }
  .recipe-mode .temperature-panel details[open] > summary { margin-bottom: 16px; }
  .recipe-mode .temperature-panel details button { margin-top: 10px; }
  .recipe-mode .guide-launch { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; align-items: center; gap: 20px; margin-top: 20px; padding: 24px 22px; border: 1px solid var(--field-border); border-radius: 14px; background: var(--surface-secondary); }
  .recipe-mode .guide-launch > .equipment-icon { width: 44px; height: 44px; padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--green); }
  .recipe-mode .guide-launch > .equipment-icon svg { width: 44px; height: 44px; }
  .dough-lab.recipe-mode #guide-launch-title { margin: 0 0 6px; font: 700 26px/1.2 var(--font); letter-spacing: -.025em; color: var(--olive-deep); }
  .recipe-mode .guide-launch p { margin: 0; color: var(--olive-deep); font-size: 14px; line-height: 1.6; }
  .recipe-mode .guide-launch button { display: inline-flex; justify-content: center; align-items: center; gap: 10px; min-height: 50px; padding: 12px 18px; border-radius: 9px; font-weight: 600; font-size: 14px; line-height: 1.5; }
  .recipe-mode .guide-launch button::after { content: ''; width: 7px; height: 7px; border-top: 1.5px solid currentColor; border-right: 1.5px solid currentColor; transform: rotate(45deg); flex: 0 0 7px; }
  @media (max-width: 650px) {
    .recipe-mode .recipe-body > .temperature-panel { padding: 20px 18px; }
    .dough-lab.recipe-mode .recipe-body .temperature-panel .inline-controls { grid-template-columns: minmax(0, 1fr); }
    .dough-lab.recipe-mode .temperature-panel #apply-temperature { grid-column: 1; grid-row: auto; width: 100%; margin-bottom: 0; }
    .recipe-mode .guide-launch { grid-template-columns: 36px minmax(0, 1fr); gap: 14px; padding: 22px 18px; }
    .recipe-mode .guide-launch > .equipment-icon, .recipe-mode .guide-launch > .equipment-icon svg { width: 36px; height: 36px; }
    .dough-lab.recipe-mode #guide-launch-title { font-size: 24px; }
    .recipe-mode .guide-launch button { grid-column: 1 / -1; width: 100%; margin-top: 4px; }
  }
  .schedule-bounds { display: flex; justify-content: space-between; gap: 20px; margin: 16px 0 15px; color: var(--on-olive-muted); font-size: 13px; }
  .schedule-bounds > div:last-child { text-align: right; }
  .schedule-bounds strong { display: block; margin-top: 5px; color: var(--on-olive); font-size: 16px; font-weight: 500; }
  .dough-lab.recipe-mode .timeline li { display: flex; flex-direction: column; align-items: flex-start; }
  .recipe-mode .timeline li > div { display: contents; }
  .recipe-mode .timeline h4 { order: 1; font-weight: 500; }
  .recipe-mode .timeline h4::before { content: attr(data-route-number); color: var(--on-olive-muted); font-size: 12px; }
  .recipe-mode .timeline .phase-link { font-weight: 500; }
  .timeline-cue { order: 2; display: block; margin: 5px 0 12px; min-height: 42px; color: var(--gold); font-size: 14px; line-height: 1.5; }
  .recipe-mode .timeline time { order: 3; display: block; margin: 0; padding: 0; font-size: 12px; }
  .timeline-start b { font-weight: 500; font-size: 14px; color: var(--on-olive); }
  .recipe-mode .timeline time small { display: block; font: inherit; color: var(--on-olive-muted); }
  .recipe-mode .timeline p { order: 4; margin-top: 6px; }
  .recipe-mode .timeline li.has-duration p::before { content: 'Durata ≈ '; }
  .timeline-phase-icon { order: 0; }
  .dough-lab.recipe-mode .timeline li.schedule-endpoint { display: none; }
  .guided-workspace-header h2 > span { font-size: 10px; letter-spacing: 1px; color: var(--muted); }
  .dough-lab .guided-workspace-header h2 { text-transform: uppercase; }
  .guided-workspace button:disabled { cursor: not-allowed; opacity: .5; }
  .guided-workspace .guided-workspace-stage > p { font: 400 16px/1.5 Arial,sans-serif; margin: 0 0 14px; }
  .guided-workspace .guided-workspace-stage > .guided-stage-context { font: 700 12px/1.5 Arial,sans-serif; margin-bottom: 14px; }
  .guided-workspace .guided-workspace-stage > label { font: 700 16px/1.5 Arial,sans-serif; margin: 18px 0; }
  .guided-workspace .guided-workspace-stage select { min-height: 52px; font: 700 16px/1.5 Arial,sans-serif; padding: 13px; }
  .guided-workspace-stage .guided-ingredient-check { min-height: 58px; padding: 15px; font: 400 16px/1.5 Arial,sans-serif; }
  .guided-workspace-stage .guided-ingredient-check strong { font-size: 16px; white-space: nowrap; }
  .guided-phone-card { display: grid; grid-template-columns: minmax(160px, 240px) minmax(0, 1fr); align-items: center; gap: 22px; padding: 20px; margin: 22px 0; border: 1px solid var(--line); border-radius: 16px; background: var(--white); }
  .guided-phone-card .guided-phone { width: 100%; max-width: 240px; margin: 0; }
  .guided-workspace-stage .guided-phone-card p { font: 400 16px/1.5 Arial,sans-serif; margin: 0; }
  .guided-stage-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
  .guided-workspace .guided-primary, .guided-workspace #guide-finish-form button[type='submit'] { background: var(--olive-deep); border-color: var(--olive-deep); color: var(--on-olive); }
  .guided-workspace .guided-primary:hover, .guided-workspace #guide-finish-form button[type='submit']:hover { background: var(--accent-hover); border-color: var(--accent-hover); }
  .dough-lab .guided-workspace .mixing-console .guide-actions .guided-advance { width: auto; margin: 0; background: var(--white); color: var(--olive-deep); border-color: var(--field-border); }
  .dough-lab .guided-workspace .mixing-console .guide-actions .guided-advance:hover { background: var(--surface-secondary); }
  .dough-lab .guided-execution .mixing-console .guided-current > .guided-speed-reference { margin: 16px 0 0; padding-top: 14px; border-top: 1px solid var(--line); color: var(--olive-deep); font: 400 14px/1.5 Arial,sans-serif; }
  .guided-execution .mixing-console .guide-up-next p { font: 400 15px/1.5 Arial,sans-serif; margin: 8px 0 0; }
  .dough-lab .guided-workspace .mixing-console > .check-label { display: flex; align-items: center; gap: 10px; margin: 20px 0; font: 400 14px/1.5 Arial,sans-serif; }
  .guided-workspace .mixing-console > .check-label input { width: 20px; height: 20px; min-height: 20px; flex: 0 0 20px; }
  .guided-execution .is-guide-finished > p.field-note { margin: 0 0 20px; color: var(--ink); font: 400 16px/1.5 Arial,sans-serif; }
  .guided-workspace #guide-finish-form { margin: 22px 0; }
  .guided-workspace #guide-finish-form label { display: grid; gap: 8px; margin: 18px 0; min-width: 0; font: 700 16px/1.5 Arial,sans-serif; }
  .dough-lab .guided-workspace #guide-finish-form input { width: 100%; min-width: 0; max-width: 100%; height: 54px; padding: 13px; border-radius: 12px; background: var(--field-surface); font: 700 16px/1.5 Arial,sans-serif; }
  .guided-workspace .is-guide-finished > .actions { display: flex; flex-wrap: wrap; gap: 10px; padding-top: 18px; margin-top: 24px; border-top: 1px solid var(--line); }
  .dough-lab .guided-workspace .is-guide-finished > .actions button:first-child:not(:only-child) { background: var(--olive-deep); border-color: var(--olive-deep); color: var(--on-olive); }
  @media (max-width: 600px) {
    .guided-workspace-header h2 { flex-basis: 100%; }
    .guided-workspace .guided-workspace-header button { flex: 0 0 auto; min-height: 40px; padding: 9px 12px; font-size: 13px; white-space: nowrap; }
    .guided-phone-card { grid-template-columns: minmax(0, 1fr); gap: 14px; padding: 18px; }
    .guided-phone-card .guided-phone { margin-inline: auto; max-width: 220px; }
    .guided-stage-actions { display: grid; grid-template-columns: minmax(0, 1fr); }
    .guided-stage-actions button, .guided-workspace #guide-finish-form button[type='submit'] { width: 100%; }
    .guided-execution .mixing-console .guide-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dough-lab .guided-workspace .mixing-console .guide-actions .guided-advance { grid-column: 1 / -1; }
    .guided-workspace .is-guide-finished > .actions { flex-direction: column; }
  }
  .guided-workspace-stage h3 { font: 700 38px/1.05 var(--display); text-align: center; }
  .dough-lab .guided-execution .mixing-console > h4 { font: 700 38px/1.05 var(--display); }
  .guided-phase-count { color: var(--green); font-size: 12px; letter-spacing: 1.4px; margin: 0 0 14px; }
  .guided-phase-count::before { content: attr(data-pizza) ' · '; }
  .guided-phase-route { display: flex; gap: 5px; margin: 0 0 22px; }
  .guided-phase-route i { height: 5px; flex: 1; border-radius: 5px; background: var(--line); }
  .guided-phase-route .is-complete { background: var(--olive-border); }
  .guided-phase-route .is-current { background: var(--green); }
  .guided-current { padding: 18px 22px; margin: 20px 0; border: 1px solid var(--field-border); border-radius: 14px; background: var(--field-surface); }
  .guided-current-label { display: block; margin: 0 0 10px; text-transform: uppercase; font-size: 11px; font-weight: 700; letter-spacing: 1.6px; color: var(--green); }
  .dough-lab .guided-execution .mixing-console .guided-current > p { font: 400 18px/1.5 Arial,sans-serif; margin: 0; color: var(--ink); }
  .guided-current .guide-ingredients { display: flex; flex-wrap: wrap; gap: 4px 16px; list-style: none; padding: 0; margin: 12px 0 0; font-size: 16px; line-height: 1.5; }
  .guided-execution .mixing-console:has(.guided-machine-visual:not([hidden]) > .reference-visual:only-child) { grid-template-columns: minmax(0,1fr) 320px; }
  .guided-execution .guided-machine-visual:has(> .reference-visual:only-child) { width: 320px; padding: 8px; border: 1px solid var(--line); border-radius: 18px; background: var(--white); grid-row: 4; margin: 10px 0 14px; }
  .guided-execution .guided-machine-visual.is-checkpoint { width: 100%; max-width: none; margin: 20px 0 24px; }
  .dough-lab .guided-execution .is-checking-structure #guide-clock, .guided-execution .is-checking-structure .guide-actions { display: none; }
  .dough-lab .guided-execution .guided-checkpoint h5 { margin: 0 0 8px; font: 700 28px/1.15 var(--display); color: var(--olive-deep); }
  .guided-checkpoint-hint { margin: 0 0 20px; font: 400 16px/1.5 Arial,sans-serif; color: var(--ink); }
  .guided-checkpoint-choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .guided-checkpoint-choice { display: flex; flex-direction: column; min-width: 0; padding: 18px 16px; border: 1px solid var(--field-border); border-radius: 16px; background: var(--field-surface); }
  .guided-checkpoint-choice > .reference-visual { margin: 0 0 16px; }
  .guided-checkpoint-choice > .reference-visual svg { width: 100%; height: 126px; object-fit: contain; }
  .guided-checkpoint-outcome { display: flex; align-items: flex-start; gap: 8px; margin-bottom: 6px; color: var(--olive-deep); font: 700 20px/1.3 Arial,sans-serif; }
  .guided-checkpoint-outcome .equipment-icon { width: 21px; height: 26px; flex: 0 0 21px; padding: 0; border: 0; border-radius: 0; background: transparent; color: inherit; }
  .guided-checkpoint-outcome .equipment-icon svg { width: 21px; height: 21px; }
  .guided-checkpoint-choice.needs-work .guided-checkpoint-outcome { color: #87391e; }
  .guided-checkpoint-choice > p { flex: 1; margin: 0 0 18px; font: 400 16px/1.5 Arial,sans-serif; color: var(--ink); }
  .dough-lab .guided-workspace .mixing-console .guided-checkpoint-choice button { width: 100%; min-height: 48px; margin: 0; border-radius: 11px; }
  .dough-lab .guided-workspace .mixing-console .guided-checkpoint-choice .guided-advance { background: var(--olive-deep); color: var(--on-olive); border-color: var(--olive-deep); }
  .dough-lab .guided-workspace .mixing-console .guided-checkpoint-choice .guided-advance:hover { background: var(--accent-hover); border-color: var(--accent-hover); }
  .dough-lab .guided-workspace .mixing-console .guided-checkpoint-choice .guided-work-more { background: var(--field-surface); color: var(--olive-deep); border-color: var(--field-border); }
  .dough-lab .guided-workspace .mixing-console .guided-checkpoint-choice .guided-work-more:hover { background: var(--surface-secondary); }
  @media (max-width: 600px) { .guided-checkpoint-choices { grid-template-columns: minmax(0, 1fr); gap: 14px; } .guided-checkpoint-choice > .reference-visual svg { height: 110px; } }
  .dough-lab .guided-execution .mixing-console:has(.guided-machine-visual > .reference-visual:only-child) #guide-clock { grid-row: 4; }
  .guided-execution .mixing-console > .guided-phase-count { grid-row: 1; }
  .guided-execution .mixing-console > .guided-phase-route { grid-row: 2; }
  .guided-execution .mixing-console > h4 { grid-row: 3; }
  #guide-clock.clock-leading-zero::before { content: '0'; }
  .guided-execution .mixing-console .guide-actions { justify-content: flex-start; gap: 10px; }
  .dough-lab .guided-execution .mixing-console .guide-actions button:first-child { background: var(--olive-deep); border-color: var(--olive-deep); color: var(--on-olive); font-weight: 700; }
  .guided-workspace .guided-advance { background: var(--surface-secondary); color: var(--olive-deep); border-color: var(--field-border); }
  .guided-workspace .guided-advance:hover { background: var(--line); }
  .guided-execution .mixing-console .guide-up-next { margin-top: 22px; }
  .guided-workspace .mixing-console > .guided-phase-count { font: 700 12px/1.5 Arial,sans-serif; margin: 0 0 14px; }
  .dough-lab .guided-execution .mixing-console > h4 { margin: 0 0 20px; }
  .guided-illustration-caption { display: block; text-align: center; font-size: 13px; line-height: 18px; margin-top: -8px; }
  .dough-lab .guided-workspace .mixing-console button { font: 700 15px/1.3 Arial,sans-serif; min-height: 46px; padding: 13px 18px; border-radius: 12px; }
  .dough-lab .guided-workspace .mixing-console .guided-advance { background: var(--surface-secondary); color: var(--olive-deep); border-color: var(--field-border); }
  .dough-lab .guided-workspace .mixing-console .guide-actions button:first-child { background: var(--olive-deep); color: var(--on-olive); border-color: var(--olive-deep); }
  .guided-workspace-stage .guided-stage-context { font: 700 12px/1.5 Arial,sans-serif; letter-spacing: 2px; text-transform: uppercase; color: var(--green); margin: 0 0 16px; }
  .guided-load { padding: 18px 22px; margin: 20px 0; border: 1px solid var(--field-border); border-radius: 14px; background: var(--field-surface); }
  .guided-workspace-stage .guided-load > p { font-size: 21px; line-height: 1.45; font-weight: 600; }
  .guided-load .guide-ingredients { display: flex; gap: 8px 18px; flex-wrap: wrap; list-style: none; padding: 0; font-size: 16px; }
  #guide-clock::after { content: attr(data-status); display: block; font: 400 13px/1.5 Arial,sans-serif; color: var(--muted); margin-top: 12px; letter-spacing: 0; }
  .recipe-mode .results-heading { min-height: 0; padding: 0; margin: 0; }
  .recipe-mode .results-heading > :is(div,.model-tag) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .recipe-mode .process-header { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 27px; }
  .recipe-mode .process-header .process-title { margin-bottom: 0; }
  .process-header #print { flex-shrink: 0; padding: 8px 0; border: 0; border-bottom: 1px solid var(--field-border); background: transparent; color: var(--ink); font: 400 13px/1.5 var(--font); }
  .recipe-mode .recipe-body > .actions { display: block; padding: 0; margin: 17px 0 0; }
  .recipe-mode .recipe-body > .actions #download { width: 100%; text-align: left; font-size: 13px; min-height: 45px; background: var(--field-surface); }
}
@media screen and (min-width: 900px) {
  #calculator-step-0 .step-context { text-align: center; }
}
@media screen and (max-width: 760px) {
  .dough-lab main { padding-inline: 10px; }
  .wizard-guide { font-size: 12px; }
  .recipe-mode .recipe-stat { padding-inline: 14px; }
  .recipe-mode .recipe-stat > strong, .recipe-mode .hydration-badge strong { font-size: 34px; white-space: normal; }
  .recipe-heading { display: block; }
  .step-calculator.recipe-mode .recipe-heading #yield { text-align: left; margin-top: 4px; }
  .recipe-mode .recipe-summary #summary-detail { margin-top: -14px; }
  .schedule-bounds, .schedule-bounds strong { font-size: 12px; }
  .timeline-cue { min-height: 0; }
  .guided-workspace-stage h3, .dough-lab .guided-execution .mixing-console > h4 { font-size: 28px; }
  .guided-execution .mixing-console:has(.guided-machine-visual:not([hidden]) > .reference-visual:only-child) { grid-template-columns: minmax(0,1fr) minmax(90px,38%); }
  .dough-lab .guided-execution .mixing-console .guided-current > p { font-size: 16px; }
  .guided-current { padding: 16px; }
  .wizard-tab { flex-direction: row; gap: 7px; }
  .wizard-step-number { width: 19px; height: 19px; flex-basis: 19px; }
  .guided-load { padding: 16px; }
  .recipe-mode .process-header { gap: 12px; align-items: flex-end; }
  .process-header #print { font-size: 11px; }
}
@media screen and (max-width: 650px) {
  .dough-lab.recipe-mode .timeline li { display: grid; grid-template-columns: 38px minmax(0,1fr); align-items: start; }
  .recipe-mode .timeline-phase-icon { grid-column: 1; grid-row: 1/5; }
  .recipe-mode .timeline h4, .recipe-mode .timeline .timeline-cue, .recipe-mode .timeline time, .recipe-mode .timeline p { grid-column: 2; margin-bottom: 0; }
  .recipe-mode .timeline .timeline-cue { margin-top: 3px; margin-bottom: 8px; }
}
@media screen and (max-width: 420px) {
  .wizard-actions { margin-inline: 20px; }
  .recipe-mode .recipe-stat { padding-inline: 10px; }
  .recipe-mode .recipe-stat > strong, .recipe-mode .hydration-badge strong { font-size: 30px; }
  .metric-unit { font-size: 13px; }
}
@media print {
  .wizard-guide, .step-context, .fridge-switch, .reference-range, .reference-range-ends { display: none !important; }
  .schedule-bounds { display: none; }
  .process-header #print { display: none; }
}
