/* Planning workspace and its printable reference sheet. */
.plan-hero,
.plan-workspace,
.plan-output {
  --plan-line: #d1d5d9;
  --plan-wash: #eff2f5;
  --plan-warm: #f4ece2;
}
.plan-hero {
  display: grid;
  grid-template-columns: minmax(0, 2.1fr) minmax(14rem, 1fr);
  align-items: end;
  gap: clamp(20px, 4vw, 58px);
  margin: 0 0 clamp(21px, 3.2vw, 40px);
  padding: clamp(20px, 4vw, 42px) 0 0;
}
.plan-hero h1 {
  max-width: 23em;
  margin: .12em 0 .35em;
  color: var(--ink);
  font: 600 clamp(29px, 4.1vw, 50px)/1.34 var(--serif);
}
.plan-hero p { max-width: 54em; margin: .45em 0; }
.plan-pin {
  padding: clamp(13px, 2vw, 22px);
  border-block-start: 3px solid var(--rust);
  background: var(--plan-warm);
  font-size: .95rem;
}
.plan-pin :is(h2,h3) { margin: 0 0 .3em; font: 600 1.14rem/1.5 var(--serif); }
.plan-pin p { margin: .25em 0; }
.plan-workspace,
.plan-output { min-inline-size: 0; }
.plan-workspace { margin-block: 1rem 2.7rem; }
.plan-step {
  min-inline-size: 0;
  margin: 0 0 1.35rem;
  padding: clamp(15px, 2.2vw, 25px);
  border: 1px solid var(--plan-line);
  border-block-start: 3px solid var(--blue);
  border-radius: 3px;
  background: var(--white);
}
.plan-step :is(h2,h3,legend) { color: var(--ink); }
.plan-step h2,
.plan-step legend { margin: 0 0 .35em; font: 600 clamp(19px, 2.3vw, 26px)/1.5 var(--serif); }
.plan-step > p { margin: .3em 0 .85em; color: var(--muted); }
.plan-scenes {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 10px;
  padding: 0;
  margin: .8rem 0 .2rem;
}
.plan-scenes label {
  display: grid;
  grid-template-columns: 1.15em minmax(0,1fr);
  align-content: start;
  align-items: start;
  gap: .15em .6em;
  min-height: 48px;
  padding: 13px 14px;
  border: 1px solid #a5aeb7;
  border-radius: 3px;
  background: var(--white);
  cursor: pointer;
}
.plan-scenes label > :not(input) { grid-column: 2; }
.plan-scenes input[type="radio"],
.plan-source-list input[type="checkbox"] {
  width: 1.05rem;
  height: 1.05rem;
  margin: .28em 0 0;
  accent-color: var(--rust);
}
.plan-scenes label b,
.plan-scenes label small { display: block; }
.plan-scenes label b { color: var(--ink); font-size: 1rem; line-height: 1.55; }
.plan-scenes label small { margin-top: .22em; color: var(--muted); font-size: .84rem; line-height: 1.6; }
.plan-scenes label:has(input:checked) { border-color: var(--rust); background: var(--plan-warm); box-shadow: inset 0 -2px var(--rust); }
.plan-fields { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,15em),1fr)); align-items: start; gap: 14px 18px; margin: .8rem 0; }
.plan-fields label { display: block; min-width: 0; font-size: .92rem; font-weight: 650; color: var(--blue); }
.plan-fields :is(select,input,textarea) {
  display: block;
  width: 100%;
  min-height: 44px;
  margin: .3rem 0 0;
  padding: .45rem .65rem;
  border: 1px solid #8995a2;
  border-radius: 3px;
  background: var(--white);
  color: var(--ink);
  font: 400 1rem/1.6 var(--sans);
}
.plan-fields textarea { min-height: 5em; resize: vertical; }
.plan-source-list { margin: .8rem 0 0; }
details.plan-source-list,
.plan-source-list details { border: 1px solid var(--plan-line); border-radius: 3px; background: var(--white); }
.plan-source-list summary { min-height: 44px; padding: .55rem .8rem; color: var(--blue); cursor: pointer; font-size: .95rem; font-weight: 650; }
.plan-source-list summary::marker { color: var(--rust); }
.plan-source-list details + details { margin-top: .4rem; }
.plan-source-list :is(ul,ol) { margin-block: .25rem .75rem; }
.plan-source-list label { display: flex; align-items: flex-start; gap: .55em; padding: .42rem .8rem; min-height: 40px; cursor: pointer; line-height: 1.6; }
.plan-source-list input[type="checkbox"] { flex: none; }
.plan-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 9px 12px; margin: 1rem 0; }
.plan-actions :is(button,a) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: .45rem 1.05rem;
  border: 1px solid var(--blue);
  border-radius: 3px;
  color: var(--blue);
  background: var(--white);
  font: 650 .95rem/1.5 var(--sans);
  text-align: center;
  cursor: pointer;
}
.plan-actions :is(button[type="submit"],.button.primary) { background: var(--blue); color: var(--white); }
.plan-actions :is(button,a):hover { text-decoration: underline; text-underline-offset: .22em; }
.plan-actions button:disabled { opacity: .55; cursor: default; }
:is(.plan-workspace,.plan-output) :is(button,a,input,select,textarea,summary):focus-visible,
.plan-scenes label:has(input:focus-visible) { outline: 3px solid var(--rust); outline-offset: 3px; }
.plan-output { scroll-margin-block-start: 18px; margin: 1.4rem 0 2.8rem; }
.plan-empty {
  border: 1px dashed #8796a4;
  border-radius: 3px;
  padding: clamp(16px, 2.3vw, 27px);
  color: var(--muted);
  background: var(--plan-wash);
}
.plan-empty p { margin: .3em 0; }
.plan-sheet {
  min-width: 0;
  padding: clamp(18px,3vw,36px);
  border: 1px solid var(--plan-line);
  border-block-start: 5px solid var(--blue);
  border-radius: 3px;
  background: var(--white);
}
.plan-sheet-head { padding-bottom: .8rem; border-bottom: 1px solid var(--plan-line); }
.plan-sheet-head :is(h2,h3) { margin: .15em 0; font-family: var(--serif); font-size: clamp(22px,3vw,32px); line-height: 1.45; }
.plan-sheet-head :is(small,.eyebrow) { color: var(--rust); }
.plan-sheet-head p { margin: .25em 0; }
.plan-summary { padding: .75rem 1rem; margin: 1.05rem 0; border-inline-start: 3px solid var(--rust); background: var(--plan-warm); }
.plan-summary p { margin: .25em 0; }
.plan-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem 1.2rem; }
.plan-grid > *, .plan-row { min-width: 0; }
.plan-row { margin: .15rem 0; padding: .65rem 0; border-bottom: 1px solid var(--rule); }
.plan-sheet :is(h3,h4,dt) { color: var(--blue); }
.plan-row :is(h3,h4,dt), .plan-grid :is(h3,h4,dt) { margin: 0 0 .25em; font-size: 1.01rem; line-height: 1.55; }
.plan-row :is(p,dd), .plan-grid :is(p,dd) { margin: .15em 0; }
.plan-evidence { margin: 1rem 0; padding: .78rem 1rem; background: var(--plan-wash); }
.plan-evidence :is(p,ul,ol),.plan-feedback p { margin-block: .3em; }
.plan-source { margin: .8rem 0; color: var(--muted); font-size: .87rem; line-height: 1.7; overflow-wrap: anywhere; }
:is(.plan-sheet,.plan-evidence,.plan-source,.plan-feedback) a { color: var(--blue); text-decoration: underline; text-underline-offset: .2em; }
.plan-feedback { margin: 1rem 0; padding: .7rem 1rem; border-inline-start: 3px solid var(--blue); background: var(--plan-wash); }
.plan-status { margin: .4rem 0; color: var(--blue); font-weight: 600; font-size: .91rem; }
.plan-status:empty { margin: 0; }
.plan-print-only { display: none; }

@media (min-width:1050px) {
  .plan-workspace:has(> form):has(> .plan-output) { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.12fr); gap: clamp(18px,2vw,30px); align-items: start; }
  .plan-workspace:has(> form) > .plan-output { margin-block-start: 0; }
  .plan-workspace:has(> form):has(> .plan-output) > form .plan-scenes { grid-template-columns: 1fr; }
}
@media (max-width:800px) {
  .plan-hero { grid-template-columns: 1fr; gap: 12px; align-items: start; }
  .plan-scenes { grid-template-columns: 1fr; gap: 6px; }
  .plan-scenes label { padding: 10px 12px; }
}
@media (max-width:600px) {
  .plan-grid { grid-template-columns: 1fr; gap: .35rem; }
  .plan-workspace { margin-block-end: 1.4rem; }
  .plan-sheet,.plan-step { padding: 14px; }
  .plan-output { margin-block-start: 1rem; }
  .plan-actions { align-items: stretch; }
  .plan-actions :is(button,a) { flex: 1 1 auto; }
}

@page { size: A4 portrait; margin: 14mm 15mm; }
@media print {
  /* Keep the ancestor chain and the generated sheet, even when controls and output
     live in different wrappers. Hidden, unselected material stays hidden. */
  body:has(.plan-output) :not(.plan-output):not(.plan-output *):not(:has(.plan-output)) { display: none !important; }
  body:has(.plan-output) :not(.plan-output):has(.plan-output) { display: block !important; max-width: none; width: auto; min-height: 0; margin: 0; padding: 0; border: 0; background: white; }
  .plan-output :not(.plan-sheet,.plan-sheet *,.plan-evidence,.plan-evidence *,.plan-source,.plan-source *,.plan-print-only,.plan-print-only *):not(:has(.plan-sheet,.plan-evidence,.plan-source,.plan-print-only)) { display: none !important; }
  body:has(.plan-output) { margin: 0; color: #102432; background: #fff; font: 10pt/1.45 var(--sans); letter-spacing: 0; }
  .plan-output { margin: 0; padding: 0; }
  .plan-print-only { display: block; }
  .plan-output :is(.plan-no-print,.plan-empty,.plan-actions,.plan-status,button,select,input,textarea),
  body:has(.plan-output) .plan-no-print { display: none !important; }
  .plan-sheet,.plan-output,.plan-summary,.plan-grid,.plan-evidence,.plan-source,.plan-feedback { height: auto !important; max-height: none !important; overflow: visible !important; box-shadow: none; }
  .plan-sheet { margin: 0; padding: 0; border: 0; background: white; }
  .plan-sheet-head { padding-bottom: 2mm; }
  .plan-sheet-head :is(h2,h3) { font-size: 17pt; }
  .plan-summary,.plan-evidence,.plan-feedback { padding: 1.5mm 3mm; margin: 2.5mm 0; border-inline-start: 1pt solid #687886; background: white; }
  .plan-grid { display: block; }
  .plan-row { padding: 1.4mm 0; }
  .plan-source { margin: 1.5mm 0; font-size: 8.5pt; }
  .plan-sheet :is(h2,h3,h4,dt), .plan-source :is(h2,h3,h4) { break-after: avoid; }
  .plan-row,.plan-sheet-head,.plan-source li { break-inside: avoid; }
  .plan-output p,.plan-output li { widows: 2; orphans: 2; }
  .plan-output a { color: inherit; }
  .plan-output a[href]::after { content: none !important; }
}
@media print {
  .plan-output:not(:has(.plan-sheet:not([hidden]))) { display: none !important; }
  .plan-output details:has(.plan-source,.plan-evidence)::details-content,
  .plan-output details:is(.plan-source,.plan-evidence)::details-content { content-visibility: visible; display: contents; }
}

#future-page [hidden]{display:none!important}
.plan-source-list .plan-fields label{display:block}
.plan-source-list>p,.plan-source-list>.plan-grid,.plan-source-list>.plan-fields{margin:.45rem .9rem .9rem}
#materials{margin:1.2rem 0 2rem}
.plan-row dl{display:grid;gap:.34rem;margin:.35rem 0}
.plan-row dl>div{display:grid;grid-template-columns:8.3em minmax(0,1fr);gap:.6rem}
.plan-row dt{font:650 .88rem/1.6 var(--sans)}
.plan-row details>summary,.plan-sheet details>summary{cursor:pointer;padding:.35rem 0;color:var(--blue)}
.plan-source ol{padding-left:1.5em}
.plan-source li{margin-block:.6em}
.plan-sheet-head h2:focus{outline:0}
@media(max-width:620px){.plan-row dl>div{grid-template-columns:1fr;gap:0}.plan-row dl>div+div{margin-top:.35rem}}
@media print{.plan-row dl>div{grid-template-columns:7.8em minmax(0,1fr)}}

.plan-materials{margin:1.6rem 0 3rem;padding:clamp(16px,2.5vw,30px);border-top:3px solid var(--blue);background:var(--white)}
.plan-materials h2{margin:.1em 0 .65em;font:600 clamp(22px,2.7vw,32px)/1.45 var(--serif)}
.plan-materials h3{margin:1.15rem 0 .35rem;font:600 1.1rem/1.55 var(--serif)}
.plan-materials p{margin:.35rem 0;font-size:.95rem;line-height:1.8}
.plan-materials a{color:var(--blue);text-decoration:underline;text-underline-offset:.2em}
.plan-views{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.plan-views article{padding:.7rem .8rem;border-left:2px solid var(--blue);background:#eff2f5}
.plan-views h4{margin:0;color:var(--ink);font-size:.96rem}
.plan-views p{margin:.2rem 0 0;font-size:.91rem}
.plan-materials details>p{margin:.5rem .8rem 1rem}
#plan-known-guide{margin:.7rem 0 0;font-size:.9rem}
@media(max-width:730px){.plan-views{grid-template-columns:1fr}.plan-fields select[name="known"]{min-width:0}}

/* Three readings of the work: documented experience and two developing proposals. */
#future-page [hidden] { display: none !important; }
#future-page,
#future-page :is(.plan-hero,.future-paths,.future-story-grid,.plan-workspace,.plan-fields) > * { min-width: 0; }
#future-page :is(.plan-hero,.future-paths,.future-story,.plan-workspace,.plan-materials) {
  scroll-margin-block-start: 1.25rem;
}
.plan-hero .plan-pin {
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: .35rem;
  padding: clamp(17px, 2.5vw, 28px);
  color: #fffdfa;
  background: var(--ink);
  border: 0;
  border-inline-start: 4px solid #c38665;
}
.plan-hero .plan-pin :is(h2,h3,b,strong) { color: inherit; }
.plan-hero .plan-pin :is(.over,.eyebrow,small) { color: #ecc7ac; }
.plan-hero .plan-pin p { color: #f0efe9; line-height: 1.8; }
.plan-hero .plan-pin a {
  align-self: flex-start;
  color: #fffdfa;
  text-decoration: underline;
  text-underline-offset: .24em;
}
.plan-hero .plan-pin a:focus-visible { outline: 3px solid #ffcc9d; outline-offset: 3px; }
.future-paths {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 12px;
  margin: 1rem 0 clamp(20px, 3vw, 34px);
}
.future-paths > :not(.future-path-card) { grid-column: 1/-1; }
.future-path-card {
  --path-accent: var(--blue);
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: .35rem;
  padding: clamp(15px, 2vw, 24px);
  border: 1px solid var(--rule);
  border-block-start: 3px solid var(--path-accent);
  border-radius: 3px;
  background: var(--white);
}
.future-path-card.proven { background: #edf1f5; }
.future-path-card.proposed { --path-accent: var(--rust); border-block-start-style: dashed; }
.future-path-card :is(.over,.eyebrow,small) { color: var(--path-accent); font-size: .82rem; font-weight: 700; }
.future-path-card :is(h2,h3) {
  margin: .05em 0 .15em;
  color: var(--ink);
  font: 600 clamp(18px, 2vw, 24px)/1.5 var(--serif);
}
.future-path-card p { margin: 0; color: var(--ink); font-size: .94rem; line-height: 1.8; }
.future-path-card a,
.future-story a,
.plan-question a { color: var(--blue); text-decoration: underline; text-underline-offset: .2em; }
.future-path-card > a { align-self: flex-start; margin-top: auto; padding-block: .6em .1em; font-size: .91rem; font-weight: 650; }
.future-path-card a:focus-visible,
.future-story :is(a,summary):focus-visible,
.plan-question a:focus-visible { outline: 3px solid var(--rust); outline-offset: 3px; }
.future-story {
  margin: 1.1rem 0;
  border: 1px solid var(--rule);
  border-radius: 3px;
  background: var(--white);
}
.future-story > summary {
  padding: .7rem clamp(14px, 2vw, 22px);
  min-height: 44px;
  color: var(--blue);
  cursor: pointer;
  font-size: 1rem;
  font-weight: 650;
  line-height: 1.65;
}
.future-story > summary::marker { color: var(--rust); }
.future-story > summary:hover { background: #f3eee7; }
.future-story[open] > summary { border-bottom: 1px solid var(--rule); }
.future-story-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 0;
  padding: 1rem clamp(14px, 2vw, 22px);
}
.future-story-grid article { padding-inline: 1rem; border-inline-start: 1px solid var(--rule); }
.future-story-grid article:first-child { border: 0; padding-inline-start: 0; }
.future-story-grid article:last-child { padding-inline-end: 0; }
.future-story-grid :is(h3,h4) { margin: 0 0 .35em; color: var(--blue); font: 600 1.06rem/1.6 var(--serif); }
.future-story-grid small { color: var(--rust); font-weight: 650; }
.future-story-grid p { margin: .3em 0; font-size: .93rem; line-height: 1.8; }
.plan-question {
  margin: 1rem 0;
  padding: .65rem clamp(14px, 2vw, 22px);
  border: 0;
  border-inline-start: 3px solid var(--rust);
  background: #f4ece2;
  color: var(--ink);
  font: 550 clamp(18px,2.1vw,24px)/1.68 var(--serif);
}
.plan-question p { margin: .2em 0; }
.plan-question :is(cite,small) { display: block; margin-top: .4em; font: 400 .86rem/1.7 var(--sans); color: var(--muted); }
.plan-step-no {
  display: inline-block;
  margin-inline-end: .5em;
  padding-inline-end: .5em;
  border-inline-end: 1px solid #ceb8a8;
  color: var(--rust);
  font: 650 .77em/1.2 var(--sans);
  font-variant-numeric: tabular-nums;
  vertical-align: .08em;
}
@media (max-width:740px) {
  .future-paths,.future-story-grid { grid-template-columns: 1fr; }
  .future-paths { gap: 9px; }
  .future-story-grid article,.future-story-grid article:first-child {
    padding: .7rem 0;
    border: 0;
  }
  .future-story-grid article + article { border-top: 1px solid var(--rule); }
  .future-story-grid article:first-child { padding-top: 0; }
  .future-story-grid article:last-child { padding-bottom: 0; }
  .plan-step-no { margin-inline-end: .35em; padding-inline-end: .35em; }
}
@media print {
  .future-paths,.future-story,.plan-hero .plan-pin { display: none !important; }
  .plan-sheet .plan-question { color: #162b3c; background: white; padding-block: 1mm; }
}

.stance-band {
  margin: 1.5rem 0 1rem;
  padding: clamp(18px, 3vw, 32px);
  border-inline-start: 4px solid var(--rust);
  background: #f2eee7;
}
.stance-band h2, .showroom-note h3 { margin: .2em 0 .4em; color: var(--ink); font-family: var(--serif); }
.stance-band h2 { font-size: clamp(22px, 2.6vw, 32px); line-height: 1.45; }
.stance-band > p, .stance-band details p { max-width: 64em; margin: .5em 0; }
.stance-sequence { display: flex; flex-wrap: wrap; gap: .55em 1em; list-style: none; padding: 0; margin: .8em 0; }
.stance-sequence li { color: var(--blue); font-weight: 650; }
.stance-sequence li + li::before { content: '→'; color: var(--rust); margin-inline-end: .8em; }
.stance-band summary { padding: .6em 0; cursor: pointer; color: var(--blue); font-weight: 650; }
.showroom-note { padding: 1em clamp(14px, 2vw, 24px); margin: 1.1rem 0; border-inline-start: 3px solid var(--rust); background: #f4efe8; }
@media (max-width:650px) {
  .stance-sequence { display: grid; gap: .1em; }
  .stance-sequence li + li::before { content: '↓'; margin-inline-end: .5em; }
  .stance-sequence li:first-child { padding-inline-start: 1.55em; }
}

.model-origin {
  display: flex;
  flex-wrap: wrap;
  gap: .35em 1.1em;
  align-items: baseline;
  margin: .7rem 0;
  padding: .8rem 1.1rem;
  background: #edf1f5;
  border-inline-start: 3px solid var(--blue);
}
.model-origin span { flex: 1 1 22rem; }
.opening-context { margin: 1.2rem 0; padding: clamp(16px, 2.5vw, 28px); border: 1px solid #cad6dd; border-radius: 8px; background: #f5f8fa; }
.opening-context[hidden] { display: none; }
.opening-context h3 { margin: 0 0 .6rem; color: var(--ink); font: 650 1.3rem/1.5 var(--serif); }
.opening-context > p { margin: .6rem 0; }
.opening-chain { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.6rem; list-style: none; padding: 0; margin: 1.2rem 0; }
.opening-chain li { position: relative; min-width: 0; padding: 1rem; border: 1px solid #d0dce3; background: #fff; border-radius: 5px; }
.opening-chain li + li::before { content: '⇆'; position: absolute; left: -1.5rem; top: 1.1rem; width: 1.4rem; text-align: center; color: var(--blue); font-size: 1.3rem; }
.opening-chain strong { display: block; color: var(--blue); font-size: 1.1rem; line-height: 1.5; }
.opening-chain strong span { display: block; font-size: 1rem; }
.opening-chain p { margin: .55rem 0 0; font-size: 1rem; line-height: 1.7; }
.opening-return { padding-top: .8rem; border-top: 1px solid #d0dce3; }
.opening-practice { margin-top: 1.1rem; padding: 1rem 1.2rem; border-left: 3px solid var(--blue); background: #fff; }
.opening-practice h4 { margin: 0 0 .5rem; font-size: 1.05rem; }
.opening-practice p { margin: .5rem 0; }
@media (max-width: 750px) {
  .opening-chain { grid-template-columns: 1fr; gap: 1.5rem; }
  .opening-chain li + li::before { content: '⇅'; left: calc(50% - .7rem); top: -1.55rem; }
}
.future-path-card[id] { scroll-margin-block-start: 1.25rem; }
@media (min-width: 68rem) {
  .future-paths { grid-template-columns: repeat(6,minmax(0,1fr)); }
  .future-paths > .future-path-card { grid-column: span 2; }
  .future-paths > :is(#opening-reform,#green-remodel) { grid-column: span 3; }
}

.planner-entries { display: flex; align-items: center; flex-wrap: wrap; gap: .6rem 1.2rem; }
.planner-entries .smalllink { padding-block: .65rem; }
.plan-mode-bar {
  display: grid;
  grid-template-columns: 1.35fr minmax(15rem, .9fr);
  align-items: center;
  gap: 1rem 2rem;
  padding: clamp(1rem, 2vw, 1.5rem);
  margin: 1.2rem 0 1.65rem;
  background: #edf6fb;
  border-inline-start: 4px solid #397693;
}
.plan-mode-bar p { margin: .25rem 0 0; color: var(--ink); }
.plan-mode-bar .plan-fields { display: block; margin: 0; }
.job-step { border-block-start-color: #488199; }
.job-step > h3 { margin: 1.3rem 0 .35rem; font: 650 1.06rem/1.6 var(--sans); }
.job-step .plan-fields { margin-block: .85rem 1.15rem; }
.job-step .plan-fields:last-child { margin-block-end: 0; }
.job-step .job-value, .job-step .job-pair { grid-template-columns: 1fr; }
.job-step .job-responsibilities { grid-template-columns: repeat(auto-fit,minmax(min(100%,15rem),1fr)); }
.job-step textarea { min-height: 5em; }
.plan-job-output { padding: clamp(1rem,2.2vw,1.6rem); }
.plan-job-output dl { margin: .75rem 0 0; }
.plan-job-output dl > div {
  display: grid;
  gap: .1rem 1.1rem;
  grid-template-columns: minmax(9em, 13em) minmax(0, 1fr);
  padding: .6rem 0;
  border-top: 1px solid var(--plan-line);
}
.plan-job-output dt { font-weight: 650; }
.plan-job-output dd { margin: 0; line-height: 1.7; overflow-wrap: anywhere; }
@media (min-width:780px) {
  .job-step .job-pair { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width:680px) {
  .plan-mode-bar { grid-template-columns: minmax(0,1fr); gap: .75rem; }
  .planner-entries { align-items: flex-start; flex-direction: column; }
  .plan-job-output dl > div { grid-template-columns: 1fr; }
}
@media print {
  .plan-job-output { break-inside: auto; }
  .plan-job-output dl > div { break-inside: avoid; }
}

/* Keep the next choice and the resulting work visible at a glance. */
#future-page .plan-progress {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .55rem;
  margin: 1rem 0 .55rem;
}
#future-page .plan-progress button {
  display: flex;
  align-items: center;
  gap: .7rem;
  min-width: 0;
  min-height: 74px;
  padding: .75rem .9rem;
  border: 1px solid #cadbe4;
  border-radius: 5px;
  color: #203e55;
  background: #fff;
  text-align: left;
  font: 650 1rem/1.5 var(--sans);
  cursor: pointer;
}
#future-page .plan-progress-number {
  flex: none;
  display: grid;
  place-items: center;
  width: 2.2rem;
  height: 2.2rem;
  border-radius: 50%;
  background: #edf5fa;
  font-size: .9rem;
}
#future-page .plan-progress small { display: block; margin-top: .1rem; color: #556b7b; font-size: .83rem; font-weight: 400; }
#future-page .plan-progress [aria-current="step"] { border-color: #ad6f45; background: #fff9f1; box-shadow: inset 0 -3px #c58a60; }
#future-page .plan-progress .is-complete { background: #f4f9fd; border-color: #91b3c8; }
#future-page .plan-progress .is-complete .plan-progress-number { background: #365d78; color: #fff; }
#future-page .plan-help { margin: .4rem 0 1rem; color: #465d70; font-size: .95rem; line-height: 1.75; }
#future-page .plan-benefit-detail { margin: 0; align-self: start; }
#future-page .plan-benefit-detail > label { margin: .3rem .8rem .9rem; }
#future-page .plan-selected { display: block; margin: .5rem 0 0; padding: .5rem .7rem; border-inline-start: 2px solid #90b2c7; color: #28465d; background: #f1f7fb; font: 400 .95rem/1.7 var(--sans); overflow-wrap: anywhere; }
#future-page .plan-source-list > label { display: block; color: #29465a; font-size: 1rem; }
#future-page .plan-source-list > label :is(textarea,input) { display: block; width: 100%; min-height: 44px; margin: .4rem 0; padding: .6rem .7rem; border: 1px solid #9bafbe; border-radius: 4px; background: #fff; color: #203447; font: 400 1rem/1.7 var(--sans); }
#future-page .plan-source-list > label textarea { min-height: 6em; resize: vertical; }
#future-page .plan-draft-bar { margin: .6rem 0; padding: .65rem 1rem; border: 1px solid #c7dbe8; background: #f4f9fd; }
#future-page .plan-draft-bar button:last-child { border-color: #d1dce4; font-weight: 400; }
#future-page .plan-stale { padding: .8rem 1rem; border-inline-start: 3px solid #b7794c; background: #fff7eb; }
#future-page .plan-stale p { margin: 0 0 .5rem; }
#future-page .plan-stale button { min-height: 44px; padding: .5rem .9rem; border: 1px solid #875a3c; border-radius: 4px; background: #fff; color: #613f2b; font: 650 1rem/1.5 var(--sans); cursor: pointer; }
#future-page .plan-output.is-stale .plan-sheet { border-block-start-color: #b7c3cc; }
#future-page .plan-output > .plan-actions { margin-block: .7rem; }
#future-page .plan-output .plan-row { margin-block: 1.3rem; padding: 1rem 0; }
#future-page .plan-row > h3 { margin: .3rem 0 .9rem; font: 600 clamp(20px,2.2vw,26px)/1.5 var(--serif); }
#future-page .plan-row dl { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .8rem; }
#future-page .plan-row dl > .plan-task { display: block; min-width: 0; padding: .9rem 1rem; background: #f2f8fc; border-top: 3px solid #89adc5; }
#future-page .plan-row dl > .plan-task-2 { background: #fff9f1; border-top-color: #c28b61; }
#future-page .plan-row dl > :is(.plan-task-0,.plan-task-4) { grid-column: 1/-1; padding: .55rem .8rem; border-top: 0; background: #fff; }
#future-page .plan-row dt { margin: 0 0 .4rem; font: 650 1rem/1.6 var(--sans); }
#future-page .plan-row dd { font-size: 1rem; line-height: 1.85; }
@media (max-width:760px) {
  #future-page .plan-progress { gap: .35rem; }
  #future-page .plan-progress button { display: block; min-height: 92px; padding: .65rem .5rem; font-size: .9rem; }
  #future-page .plan-progress-number { width: 1.7rem; height: 1.7rem; margin-bottom: .3rem; font-size: .8rem; }
  #future-page .plan-progress small { font-size: .78rem; }
  #future-page .plan-row dl { grid-template-columns: 1fr; }
}
@media print {
  body:has(.plan-output) { font-size: 11pt; }
  .plan-source { font-size: 11pt; }
  #future-page .plan-row dl { display: block; }
  #future-page .plan-row dl > .plan-task { padding: 1.5mm 0; border: 0; background: #fff; }
  #future-page .plan-row :is(dt,dd) { font-size: 11pt; line-height: 1.5; }
  #future-page .plan-row { break-inside: auto; }
  #future-page .plan-row dl > .plan-task { break-inside: avoid; }
  #future-page .plan-progress { display: none!important; }
  #future-page .plan-stale:not([hidden]),#future-page .plan-stale:not([hidden]) > p { display: block!important; }
  #future-page .plan-stale:not([hidden]) { padding: 2mm 3mm; margin-bottom: 3mm; border: 1pt solid #805334; color: #513b2e; background: white; }
  #future-page .plan-stale button { display: none!important; }
}

#future-page .plan-selection-field { min-width: 0; }
#future-page .plan-selection-field:has(> label[hidden]) { display: none !important; }
