:root  {
  color-scheme:light;
  --paper:#f7f5f0;
  --ink:#111;
  --slate:#555b60;
  --line:#dddad3;
  --signal:#b7f34a;
  --display:"Space Grotesk",Arial,sans-serif;
  --body:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif
}
* {
  box-sizing:border-box
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:1rem/1.6 var(--body)
}
h1,h2,h3,p {
  margin:0
}
h1,h2,h3 {
  font-family:var(--display)
}
h1 {
  font-size:clamp(2rem,4vw,3rem);
  line-height:1.06;
  letter-spacing:-.055em;
  margin:.65rem 0 1rem
}
h2 {
  font-size:1.4rem;
  letter-spacing:-.035em;
  font-weight:500;
  margin-bottom:1rem
}
h3 {
  font-size:1rem
}
p+p {
  margin-top:.8rem
}
.page {
  width:min(calc(100% - 3rem),76rem);
  margin:auto
}
header {
  min-height:5rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  border-bottom:1px solid var(--line)
}
.wordmark {
  font-family:var(--display);
  font-size:1.125rem;
  letter-spacing:-.055em;
  font-weight:700
}
.cursor {
  background:var(--signal);
  padding-inline:.1em
}
.small {
  font-size:.875rem;
  color:var(--slate)
}
.eyebrow {
  font-size:.75rem;
  letter-spacing:.13em;
  font-weight:600
}
.intro {
  padding:2rem 0;
  max-width:47rem
}
.setup {
  border-block:1px solid var(--line);
  padding:1.5rem 0
}
.setup-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem
}
.workbench {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);
  gap:4rem;
  padding-top:2rem
}
.workbench>section {
  min-width:0
}
label {
  display:block;
  font-size:.9rem;
  font-weight:600;
  margin-bottom:.35rem
}
input,select,textarea,button {
  font:inherit;
  color:var(--ink);
  max-width:100%;
  border-radius:0
}
input,select,textarea {
  width:100%;
  min-height:2.8rem;
  background:#fffdf8;
  border:1px solid #898984;
  padding:.5rem .65rem
}
input:disabled,select:disabled {
  background:#ece9e2;
  color:#555
}
textarea {
  resize:vertical;
  min-height:5rem
}
button {
  background:transparent;
  border:1px solid var(--ink);
  padding:.6rem .9rem;
  min-height:2.8rem;
  cursor:pointer;
  line-height:1.4
}
button.signal {
  background:var(--signal);
  font-weight:600
}
button:disabled {
  cursor:default;
  opacity:.6
}
a {
  color:var(--ink);
  text-underline-offset:.2em
}
fieldset {
  border:0;
  padding:0;
  margin:1.5rem 0
}
legend {
  font-size:.8rem;
  font-weight:600;
  color:var(--slate)
}
.field {
  border-top:1px solid var(--line);
  padding:1rem 0
}
.field-row {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:.8rem
}
.field-row label {
  font-weight:400;
  font-size:.8rem
}
.field>label {
  margin-bottom:.7rem
}
.field .small {
  margin:.5rem 0
}
.error {
  color:#9c2921;
  font-size:.875rem;
  margin-top:.5rem
}
.error:empty {
  display:none
}
[aria-invalid="true"] {
  border:2px solid #9c2921
}
.field details {
  margin:.75rem 0 0;
  border:0;
  padding:0
}
.field summary {
  font-size:.875rem
}
details {
  border-top:1px solid var(--line);
  padding:1rem 0
}
summary {
  cursor:pointer;
  min-height:2.75rem;
  font-weight:600;
  display:list-item;
  list-style-position:inside
}
details>p {
  margin:.7rem 0
}
details input,details textarea {
  margin:.5rem 0
}
#error-summary {
  border:1px solid #9c2921;
  padding:1rem;
  margin-top:1rem
}
.metric {
  border-top:1px solid var(--line);
  padding:1rem 0;
  overflow-wrap:anywhere
}
.metric-value {
  font-family:var(--display);
  font-size:1.7rem;
  line-height:1.25;
  letter-spacing:-.025em;
  margin:.5rem 0
}
.metric.secondary .metric-value {
  font-size:1.25rem
}
.evidence {
  font-size:.75rem;
  letter-spacing:.02em;
  font-weight:600
}
.metric details {
  margin-top:.65rem;
  border:0;
  padding:0
}
.metric summary {
  font-size:.8rem
}
.metric ul {
  margin:.25rem 0;
  padding-left:1.2rem
}
.comparison-value {
  border-left:2px solid var(--ink);
  padding-left:.8rem;
  margin-top:.8rem
}
.delta {
  font-size:.875rem
}
.interpretation {
  border-top:1px solid var(--ink);
  padding-top:1.4rem
}
.interpretation ul {
  padding-left:1.2rem
}
.interpretation li {
  margin:.6rem 0
}
.actions {
  margin-top:2rem;
  padding:1.5rem 0;
  border-block:1px solid var(--line);
  display:flex;
  gap:.7rem;
  flex-wrap:wrap
}
.actions p {
  flex-basis:100%
}
.handoff {
  padding:2rem 0;
  max-width:46rem
}
footer {
  border-top:1px solid var(--line);
  padding:1.5rem 0;
  font-size:.8rem;
  color:var(--slate)
}
:focus-visible {
  outline:3px solid var(--ink);
  outline-offset:4px
}
.skip-link {
  position:absolute;
  top:1rem;
  left:1rem;
  padding:.7rem;
  background:var(--ink);
  color:var(--paper);
  transform:translateY(-200%)
}
.skip-link:focus {
  transform:none
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap
}
[hidden] {
  display:none!important
}
#print-summary {
  display:none
}
.unknown-confirm {
  border:1px solid var(--line);
  padding:.7rem;
  margin-top:.5rem
}
.unknown-confirm button {
  margin:.3rem
}
#period-help {
  margin-top:1rem
}
.return-link {
  display:inline-block;
  padding:.7rem 0
}
.review-action {
  margin:1rem 0
}
@media(max-width:850px) {
  .workbench {
    grid-template-columns:minmax(0,1fr);
    gap:2rem
  }
  .setup-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
}
@media(max-width:480px) {
  .page {
    width:calc(100% - 2rem)
  }
  header {
    flex-wrap:wrap;
    padding:1rem 0;
    gap:.4rem
  }
  .setup-grid {
    grid-template-columns:minmax(0,1fr)
  }
  .intro {
    padding:1.5rem 0
  }
  .field-row {
    grid-template-columns:minmax(0,1fr)
  }
  .metric-value {
    font-size:1.5rem
  }
  .actions button {
    width:100%
  }
}
@media print {
  @page {
    margin:16mm
  }
  body {
    background:white;
    color:black;
    font-size:10pt
  }
  .page,body>noscript {
    display:none
  }
  #print-summary {
    display:block
  }
  #print-summary h1 {
    font-size:22pt;
    letter-spacing:-.03em
  }
  #print-summary h2 {
    font-size:15pt;
    margin-top:1.5rem
  }
  #print-summary h3 {
    margin-top:1rem
  }
  #print-summary p,#print-summary li {
    overflow-wrap:anywhere
  }
  #print-summary .print-entry {
    break-inside:avoid;
    border-bottom:1px solid #bbb;
    padding:.5rem 0
  }
  #print-summary .small {
    color:#333;
    font-size:9pt
  }
  #print-summary ul {
    padding-left:1.2rem
  }
}

.metric-value.unavailable {
  font:1rem/1.5 var(--body);
  letter-spacing:0;
  color:var(--slate);
}
#scenario-details {
  margin-top:1rem;
  padding:.5rem 0 0;
}
.evidence-key strong { color:var(--ink); }
.intro,.field,.interpretation,.setup { overflow-wrap:anywhere; }
@media print {
  #print-summary h2,#print-summary h3 { break-after:avoid; }
}

.setup-grid > div { min-width:0; }
