/* Forecast flow: setup, analyzing, results, list (DESIGN_SPEC §3.14–3.20, §3.27, §4.1).
   Namespaced classes only; loaded after components.css. Numbers at weight 500, tabular.
   Sizes, colours and spacing follow the owner's design (art/markup.html, RESULTS / THE LIST / PHONE). */

.ef-danger-text { color: var(--danger-fg); }
.ef-eyebrow--flat { margin-bottom: 0; }
.ef-textlink { font: 500 12px var(--font-mono); letter-spacing: .04em; text-transform: uppercase; color: var(--text-muted); text-decoration: underline; text-underline-offset: 2px; }
.ef-phonly { display: none; }

/* Activate header + step tabs (design: "✓ Setup", "2 Results", no circled numbers; 22px under the title) */
.ef-pagehead .ef-h1 + .ef-meta { margin-top: 6px; }
header.ef-stack > .ef-stepper { margin-top: 10px; }
.ef-stepper__step { gap: 10px; }
.ef-stepper__label { font: 600 14px var(--font-sans); color: var(--text-muted); gap: 0; }
.ef-stepper__num { display: inline; width: auto; height: auto; border: 0; border-radius: 0; font: 500 14px var(--font-sans); margin-right: 4px; }
.ef-stepper__link { font: 600 14px var(--font-sans); color: var(--ink); text-decoration-color: var(--a28); }
.ef-stepper__sub { font: 400 13px var(--font-sans); color: var(--text-muted); margin-top: -8px; min-height: 17px; }

/* Stepper: "Analyzing…" without a percentage */
.ef-stepper__step.is-indeterminate .ef-stepper__bar { overflow: hidden; }
.ef-stepper__step.is-indeterminate .ef-stepper__fill { width: 35% !important; animation: ef-indet 1.4s ease-in-out infinite; }

/* Setup: locked banner */
.ef-lockbanner { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px 16px; align-items: center; padding: 14px 18px; border-radius: var(--r-note); border: 1px solid var(--a14); background: var(--bg-app); }
@media (max-width: 640px) { .ef-lockbanner { grid-template-columns: minmax(0, 1fr); } .ef-lockbanner > * { justify-self: start; } }

/* Results: benchmarks-only note and how-to strip */
.ef-benchnote { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; align-items: start; padding: 14px 16px; border-radius: var(--r-note); background: var(--bg-bench); border: 1px solid var(--warn-border); }
.ef-benchnote p { margin: 0; font: 400 14px/1.5 var(--font-sans); color: var(--text-strong); text-wrap: pretty; }
.ef-benchnote__badge { display: inline-flex; align-items: center; height: 24px; padding: 0 10px; border-radius: var(--r-pill); background: #fff; border: 1px solid var(--warn-border); color: var(--warn-fg); font: 500 11px var(--font-mono); letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }
.ef-howto { border-radius: var(--r-panel); background: var(--bg-app); border: 1px solid var(--a14); padding: 18px 22px; }
.ef-howto ol { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 16px 24px; }
.ef-howto li { display: flex; gap: 12px; align-items: flex-start; }
.ef-howto__num { flex-shrink: 0; width: 24px; height: 24px; border-radius: 50%; background: var(--ink); color: var(--on-dark); display: grid; place-items: center; font: 500 12px var(--font-sans); }
.ef-howto__title { font: 600 14px var(--font-sans); color: var(--ink); }
.ef-howto .ef-meta { font: 400 13px/1.5 var(--font-sans); color: var(--text); margin-top: 2px; text-wrap: pretty; }

/* Results: hero */
.ef-result { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 32px; align-items: center; padding: 26px 28px; overflow: hidden; }
.ef-result::before { top: 0; border-radius: 0; }
.ef-result .ef-eyebrow { margin: 0 0 10px; }
.ef-result__sentence { font: 500 21px/1.4 var(--font-display); letter-spacing: -.015em; color: var(--ink); text-wrap: pretty; font-variant-numeric: tabular-nums; }
.ef-result__side { padding-left: 28px; border-left: 1px solid var(--a08); min-width: 130px; text-align: right; }
.ef-result__acc { font: 500 48px/1 var(--font-display); letter-spacing: -.03em; }
.ef-result__acclabel { font: 500 14px var(--font-sans); color: var(--text-strong); margin-top: 8px; }
.ef-result__basis { font: 400 13px var(--font-sans); color: var(--text-muted); margin-top: 2px; white-space: nowrap; }

/* Results: list-size section */
.ef-lssec { gap: 14px; padding: 22px 24px 20px; }
.ef-lssec__head { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; }
.ef-lssec__head label { display: block; font: 600 16px var(--font-sans); }
.ef-lssec__head .ef-meta { margin-top: 2px; }
.ef-lslegend { display: flex; gap: 14px; flex-shrink: 0; padding-top: 4px; font: 400 12px var(--font-sans); color: var(--text-strong); }
.ef-lslegend > span { display: inline-flex; align-items: center; gap: 6px; }
.ef-lslegend__line { width: 16px; height: 3px; border-radius: 2px; background: var(--orange); }

.ef-lschart { position: relative; height: 250px; margin-top: 6px; }
.ef-lschart__y { position: absolute; top: 0; left: 0; font: 500 12px var(--font-sans); color: var(--text-muted); }
.ef-lschart__plot { position: absolute; left: 0; right: 0; top: 10px; height: 240px; cursor: crosshair; touch-action: pan-y; }
.ef-lschart__svg { display: block; width: 100%; height: 100%; overflow: visible; }
.ef-lschart__grid { stroke: var(--a07); stroke-width: 1; }
.ef-lschart__base { stroke: var(--a14); stroke-width: 1; }
.ef-lschart__full { fill: none; stroke: var(--warm-curve); stroke-width: 2.5; }
.ef-lschart__cut { fill: none; stroke-width: 3; }
.ef-lschart__sug, .ef-lschart__cur, .ef-lschart__ghost { position: absolute; top: 12px; bottom: 8px; width: 0; pointer-events: none; }
.ef-lschart__sug { border-left: 1.5px dashed var(--text-muted); }
.ef-lschart__suglabel { position: absolute; top: -4px; left: 6px; padding: 0 4px; background: #fff; white-space: nowrap; font: 500 12px var(--font-mono); letter-spacing: .04em; text-transform: uppercase; color: var(--text-muted); }
.ef-lschart__cur { border-left: 2px solid var(--ink); margin-left: -1px; }
.ef-lschart__ghost { border-left: 1px solid var(--a28); }
.ef-lschart__dot { position: absolute; width: 14px; height: 14px; margin: -7px 0 0 -7px; border-radius: 50%; background: #fff; border: 3px solid var(--ink); pointer-events: none; box-sizing: border-box; }
.ef-lschart__tip { position: absolute; padding: 6px 10px; border-radius: var(--r-seg); background: var(--ink); color: var(--on-dark); font: 500 12px/1.3 var(--font-sans); font-variant-numeric: tabular-nums; white-space: nowrap; pointer-events: none; }
.ef-lschart__tip.is-hover { background: var(--dark-2); }

.ef-range { position: relative; height: 28px; }
.ef-range__track, .ef-range__fill { position: absolute; left: 0; top: 11px; height: 6px; border-radius: var(--r-bar); }
.ef-range__track { right: 0; background: var(--a08); }
.ef-range__fill { background: var(--orange); }
.ef-range__sug { display: none; }
.ef-range__thumb { position: absolute; top: 2px; width: 24px; height: 24px; margin-left: -12px; border-radius: 50%; background: #fff; border: 2px solid var(--ink); box-shadow: 0 2px 6px rgba(22,17,11,.2); pointer-events: none; box-sizing: border-box; }
.ef-range__input { position: absolute; left: -12px; top: 2px; width: calc(100% + 24px); height: 28px; margin: 0; opacity: 0; cursor: ew-resize; }
.ef-range__input:disabled { cursor: default; }
.ef-range:focus-within .ef-range__thumb { box-shadow: var(--focus-ring); }
.ef-range__axis { display: flex; justify-content: space-between; margin-top: -6px; font: 500 12px var(--font-sans); color: var(--text-muted); }
.ef-range__axis .ef-num { color: var(--text-muted); }

.ef-statstrip { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); border-radius: var(--r-box); background: var(--bg-app); border: 1px solid var(--a08); }
.ef-stat { padding: 12px 16px; border-left: 1px solid var(--a08); }
.ef-stat:first-child { border-left: 0; }
.ef-stat__num { font: 500 20px var(--font-display); color: var(--ink); }
.ef-stat__label { font: 400 13px var(--font-sans); color: var(--text); }
.ef-stat__phlabel { display: none; }
.ef-lssec__context { margin: 0; font-variant-numeric: tabular-nums; }

/* Results: "less accurate further down" */
.ef-split { padding: 20px 22px; border-radius: var(--r-note); border: 1px solid var(--warn-border); background: var(--bg-note); }
.ef-split__full { display: flex; flex-direction: column; gap: 14px; }
.ef-split__full .ef-title { font: 600 15px var(--font-sans); margin: 0 0 4px; }
.ef-split__full .ef-body { color: var(--text-strong); }
.ef-split__rows { display: flex; flex-direction: column; gap: 8px; font: 400 14px var(--font-sans); color: var(--ink); font-variant-numeric: tabular-nums; }
.ef-split__row { display: grid; grid-template-columns: 90px minmax(0, 1fr) 270px; gap: 14px; align-items: center; }
.ef-split__name { font-weight: 500; }
.ef-split__track { height: 8px; border-radius: var(--r-bar); background: var(--warm-track); overflow: hidden; }
.ef-split__fill { display: block; height: 100%; border-radius: var(--r-bar); background: var(--ink); }
.ef-split__fill.is-next { background: var(--warm-next); }
.ef-split__short { display: none; margin: 0; font: 400 13px/1.5 var(--font-sans); color: var(--text-strong); }
.ef-split__short b { font-weight: 600; color: var(--ink); }

/* Bars (why these registrants) */
.ef-why { padding: 20px 24px; gap: 14px; }
.ef-why h2 { margin: 0; }
.ef-bars { display: flex; flex-direction: column; gap: 14px; }
.ef-bars__row { display: grid; grid-template-columns: minmax(0, 1fr) 180px 80px; gap: 16px; align-items: center; }
.ef-bars__label { font: 500 14px var(--font-sans); color: var(--ink); }
.ef-bars__track { height: 6px; border-radius: var(--r-bar); background: var(--bg-peach); overflow: hidden; }
.ef-bars__fill { display: block; height: 100%; border-radius: var(--r-bar); background: var(--orange); }
.ef-bars__count { font: 500 13px var(--font-sans); text-align: right; white-space: nowrap; }
.ef-stand .ef-small { margin: 4px 0 0; }
.ef-stand__row { grid-template-columns: minmax(0, 1fr) auto; }
.ef-stand__nums { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; white-space: nowrap; }
.ef-stand__list { font: 500 13px var(--font-sans); color: var(--ink); }
.ef-stand__none { margin: 0; color: var(--text-strong); }
/* "Who's on your list, by registration type" (design 2026-10-13), at the foot of the why card. */
.ef-restypes { display: flex; flex-direction: column; gap: 10px; padding-top: 14px; border-top: 1px solid var(--a08); }
.ef-restypes:first-child { padding-top: 0; border-top: 0; }
.ef-restypes[hidden] { display: none; }
.ef-restypes__title { margin: 0; font: 600 14px var(--font-sans); color: var(--ink); }
.ef-restypes__legend { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 6px 24px; }
.ef-restypes__legend li { display: flex; justify-content: space-between; align-items: center; gap: 8px; font: 400 13px var(--font-sans); color: var(--text-strong); }
.ef-restypes__legend .ef-num { color: var(--ink); }
.ef-restypes .ef-small { margin: 0; }

/* Results aside */
.ef-results__aside { gap: 14px; }
.ef-basis { gap: 10px; }
.ef-basis .ef-body { color: var(--ink); }
.ef-stake { gap: 12px; overflow: hidden; }
.ef-result::before { top: 0; border-radius: 0; }
/* "What no-shows cost you" (design 2026-10-13): the no-show costs row first, then break-even,
   then the conditional savings band. Figures at weight 500. */
.ef-stake__sav { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; border-radius: 12px; background: #FFF1E2; border: 1px solid #FFD3A6; }
.ef-stake__savlabel { font: 500 13px var(--font-sans); color: #7A3E00; }
.ef-stake__range { font: 500 22px/1.15 var(--font-display); letter-spacing: -.02em; color: var(--ink); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ef-stake__savsub { font: 400 13px/1.45 var(--font-sans); color: var(--text-strong); font-variant-numeric: tabular-nums; text-wrap: pretty; }
.ef-stake__row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 12px; padding: 10px 0; border-top: 1px solid var(--a08); border-bottom: 1px solid var(--a08); }
.ef-stake__name { font: 500 13px var(--font-sans); color: var(--ink); }
.ef-stake__val { font: 500 15px var(--font-display); color: var(--ink); font-variant-numeric: tabular-nums; white-space: nowrap; text-align: right; }
.ef-stake__rowsub { grid-column: 1 / -1; font: 400 12px/1.4 var(--font-sans); color: var(--text-muted); font-variant-numeric: tabular-nums; }
.ef-stake .ef-small { font-variant-numeric: tabular-nums; }
/* Results: "Why 220?" note under the slider */
.ef-sugnote { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 10px; align-items: start; padding: 12px 16px; border-radius: var(--r-box); background: #FFF1E2; font: 400 13px/1.55 var(--font-sans); color: var(--text-strong); }
.ef-sugnote p { margin: 1px 0 0; text-wrap: pretty; }
.ef-sugnote strong { font-weight: 600; color: var(--ink); }
.ef-sugnote__icon { width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; font: 600 11px var(--font-sans); background: var(--orange); color: var(--ink); }
.ef-sugnote.is-none { background: #F4F1EC; }
.ef-sugnote.is-none .ef-sugnote__icon { background: #E3DED6; color: var(--text-strong); }
/* Results: one plain paragraph under the note, the rest behind an (i) toggle (owner 2026-10-20). */
.ef-lssec__plain { margin: 0; color: var(--text-strong); text-wrap: pretty; }
.ef-more { background: #fff; }
.ef-more > summary { min-height: 52px; font: 500 14px var(--font-sans); }
.ef-more__i { width: 20px; height: 20px; flex-shrink: 0; border-radius: 50%; display: grid; place-items: center; border: 1.5px solid var(--text-muted); font: 600 11px/1 var(--font-sans); color: var(--text-muted); }
.ef-more__body { display: flex; flex-direction: column; gap: 16px; padding-bottom: 20px; }
.ef-more .ef-why { display: flex; flex-direction: column; padding: 16px 0 0; border-top: 1px solid var(--a08); }
.ef-more .ef-whybox:empty { display: none; }
.ef-results__cta { gap: 0; }
.ef-results__cta .ef-btn { min-height: 48px; font-size: 12px; letter-spacing: .02em; }
.ef-results__cta .ef-small { margin-top: 10px; font: 400 13px var(--font-sans); color: var(--text-muted); text-align: center; }

/* Analyzing */
.ef-analyzing__status { flex: 1 1 320px; }
.ef-analyzing .ef-two-col__main { flex: 999 1 480px; gap: 24px; }

/* The list */
.ef-listpage .ef-two-col__aside { gap: 14px; }
.ef-listcard { border-radius: var(--r-panel); }
.ef-listcard__head { padding: 18px 20px; border-bottom: 1px solid var(--a08); }
.ef-listcard__head .ef-title { margin: 0; }
.ef-listcard__head .ef-title .ef-num { font-weight: 500; }
.ef-listcard__head .ef-meta { margin-top: 2px; }
.ef-listcard__toolbar { display: flex; gap: 10px; align-items: center; padding: 12px 20px; background: var(--bg-app); border-bottom: 1px solid var(--a08); }
.ef-listcard__search { flex: 1; max-width: none; height: 38px; padding: 0 12px; }
.ef-listcard__sort { display: flex; align-items: center; gap: 8px; font: 500 13px var(--font-sans); color: var(--text); white-space: nowrap; }
.ef-select { height: 38px; padding: 0 10px; border-radius: var(--r-pill); border: 1px solid var(--a18); background: #fff; font: 400 14px var(--font-sans); color: var(--ink); }
.ef-rtable { display: flex; flex-direction: column; font: 400 14px var(--font-sans); color: var(--text-strong); }
.ef-rtable__row { display: grid; grid-template-columns: 64px 120px minmax(0, 1fr) minmax(0, 2.4fr); align-items: stretch; }
.ef-rtable__row > * { display: flex; align-items: center; min-width: 0; padding: 11px 12px; border-bottom: 1px solid var(--a07); }
.ef-rtable__row > :first-child { padding-left: 20px; }
.ef-rtable__row > :last-child { padding: 8px 20px 8px 12px; }
.ef-rtable__body .ef-rtable__row:hover { background: var(--bg-app); }
.ef-rtable__row--head > * { padding-top: 10px; padding-bottom: 10px; font: 500 12px var(--font-sans); color: var(--text-muted); border-bottom-color: var(--a08); }
.ef-rtable__row--head > :last-child { padding: 10px 20px 10px 12px; }
.ef-rtable__row--empty { grid-template-columns: minmax(0, 1fr); }
.ef-rtable__row--empty > * { justify-content: center; padding: 24px; border-bottom: 0; }
.ef-rtable__body[aria-busy="true"] { opacity: .55; }
.ef-rtable__rank, .ef-rtable__id { font-weight: 500; color: var(--ink); font-variant-numeric: tabular-nums; }
.ef-rtable__type { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ef-whychips { display: flex; gap: 6px; align-items: center; flex-wrap: nowrap; min-width: 0; width: 100%; }
.ef-whychips .ef-chip { height: 24px; padding: 0 8px; border-radius: var(--r-chip); background: var(--bg-app); border-color: var(--a12); font: 500 12px/24px var(--font-sans); overflow: hidden; text-overflow: ellipsis; min-width: 0; flex: 0 1 auto; display: block; }
.ef-whychips__more { font: 500 12px var(--font-sans); color: var(--text-muted); white-space: nowrap; flex-shrink: 0; }
.ef-rtable__foot { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 12px 20px; font: 400 13px var(--font-sans); color: var(--text-muted); }
.ef-rtable__foot .ef-row { gap: 6px; }
.ef-rtable__foot .ef-btn { min-height: 36px; padding: 0 12px; box-shadow: none; }
.ef-rtable__foot .ef-btn:disabled { opacity: .6; color: var(--text-muted); border-color: var(--a12); }
.ef-riskcard, .ef-whocard { gap: 12px; }
.ef-riskcard h2, .ef-whocard h2 { margin: 0; }
.ef-whocard { gap: 10px; }
.ef-riskrow { display: flex; flex-direction: column; gap: 4px; }
.ef-riskrow__top { display: flex; justify-content: space-between; font: 400 13px var(--font-sans); color: var(--text-strong); }
.ef-riskrow__top .ef-num { color: var(--ink); }
.ef-riskrow__track { height: 5px; border-radius: var(--r-bar); background: var(--bg-peach); }
.ef-riskrow__fill { display: block; height: 100%; border-radius: var(--r-bar); background: var(--orange); }
.ef-stack-bar { display: flex; gap: 2px; height: 8px; border-radius: var(--r-bar); overflow: hidden; }
.ef-stack-bar__seg { flex-basis: 0; min-width: 3px; }
.ef-stack-legend { display: flex; flex-direction: column; gap: 10px; }
.ef-stack-legend li { display: flex; justify-content: space-between; align-items: center; font: 400 13px var(--font-sans); color: var(--text-strong); }
.ef-stack-legend__name { display: flex; align-items: center; gap: 8px; }
.ef-stack-legend__sw { width: 8px; height: 8px; border-radius: 2px; }
.ef-listpage__cta .ef-btn { min-height: 48px; font-size: 14px; }
/* Locked preview (before the first push): placeholder rows blurred and fading, then the unlock panel.
   Shared with the push preview (.ef-pu-ghost). The rows carry made-up dots, never real data. */
.ef-ghostrow { user-select: none; pointer-events: none; }
.ef-rtable__body .ef-ghostrow:hover { background: none; }
.ef-ghostrow[data-ghost="1"] { opacity: .85; }
.ef-ghostrow[data-ghost="2"] { opacity: .6; }
.ef-ghostrow[data-ghost="3"] { opacity: .35; }
.ef-ghostrow__blur { filter: blur(5px); }
.ef-rtable__foot--lock { padding: 0; }
.ef-lockpanel { width: 100%; padding: 16px 20px; display: flex; flex-wrap: wrap; gap: 12px 16px; align-items: center; justify-content: space-between; background: var(--bg-app); border-top: 1px solid var(--a08); }
.ef-lockpanel__text { display: flex; gap: 10px; align-items: flex-start; min-width: 0; flex: 1 1 280px; font: 400 13px/1.5 var(--font-sans); color: var(--text-strong); text-wrap: pretty; }
.ef-lockpanel__text b { font-weight: 600; color: var(--ink); }
.ef-lockpanel__icon { flex-shrink: 0; margin-top: 1px; color: var(--orange); }
.ef-lockpanel .ef-btn { min-height: 40px; padding: 0 16px; border-radius: var(--r-pill); white-space: nowrap; }
@media (max-width: 720px) {
  .ef-lockpanel { padding: 14px 16px; }
  .ef-rtable__row--head { display: none; }
  .ef-rtable__row { grid-template-columns: 44px minmax(0, 1fr); }
  .ef-rtable__row > * { border-bottom: 0; padding: 4px 10px; }
  .ef-rtable__row { border-bottom: 1px solid var(--a07); padding: 6px 0; }
  .ef-rtable__row > :first-child { padding-left: 16px; grid-row: span 3; align-items: flex-start; padding-top: 6px; }
  .ef-rtable__row > :nth-child(3) { color: var(--text-muted); }
  .ef-rtable__row > :last-child { padding: 4px 16px 6px 10px; }
  .ef-whychips { flex-wrap: wrap; }
  .ef-listcard__head, .ef-listcard__toolbar, .ef-rtable__foot { padding-left: 16px; padding-right: 16px; }
}

/* Results at phone width (design PHONE frame): compact step strip, no chart and no money block,
   the "Why these registrants" and basis cards in the main column, a sticky CTA at the bottom. */
@media (max-width: 640px) {
  .ef-phonly { display: block; }
  /* The event title stays for screen readers; the phone frame shows the compact step strip instead. */
  .ef-reshead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .ef-phstep { margin: -10px 0 -4px; }
  .ef-phstep__row { display: flex; justify-content: space-between; align-items: center; }
  .ef-phstep__label { font: 500 13px var(--font-sans); color: var(--ink); }
  .ef-phstep__pill { font: 500 12px var(--font-sans); color: var(--text-strong); background: var(--bg-peach); padding: 3px 9px; border-radius: var(--r-pill); }
  .ef-phstep__bars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; margin-top: 8px; }
  .ef-phstep__bars span { height: 3px; border-radius: var(--r-bar); background: var(--a08); }
  .ef-phstep__bars span.is-done { background: var(--ink); }
  .ef-phstep__bars span.is-on { background: var(--orange); }
  .ef-results .ef-two-col__main { gap: 12px; }
  .ef-more { padding: 0 16px; }
  .ef-howto, .ef-lssec__help, .ef-lslegend, .ef-lschart, .ef-range__axis, .ef-lssec .ef-sugnote, .ef-lssec__context { display: none; }
  .ef-result { display: block; padding: 18px; }
  .ef-result .ef-eyebrow { display: none; }
  .ef-result__sentence { font: 500 20px/1.32 var(--font-display); letter-spacing: 0; }
  .ef-result__side { display: flex; align-items: baseline; gap: 8px; margin-top: 14px; padding: 12px 0 0; border-left: 0; border-top: 1px solid var(--a08); text-align: left; min-width: 0; }
  .ef-result__acc { font-size: 40px; letter-spacing: 0; }
  .ef-result__acclabel { margin: 0; }
  .ef-result__basis { display: none; }
  .ef-lssec { padding: 16px; gap: 12px; }
  .ef-lssec__head label { font-size: 15px; }
  .ef-range { height: 44px; margin-top: 0; }
  .ef-range__track, .ef-range__fill { top: 26px; }
  .ef-range__sug { display: block; position: absolute; top: 15px; height: 28px; border-left: 1.5px dashed var(--text-muted); }
  .ef-range__suglabel { position: absolute; top: -15px; left: 0; transform: translateX(-50%); font: 500 11px var(--font-sans); color: var(--text-muted); white-space: nowrap; }
  .ef-range__thumb { top: 15px; width: 28px; height: 28px; margin-left: -14px; }
  .ef-range__input { left: -14px; top: 10px; width: calc(100% + 28px); height: 40px; }
  .ef-statstrip { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; border: 0; background: none; border-radius: 0; }
  .ef-stat { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 0; border: 0; }
  .ef-stat__label { display: none; }
  .ef-stat__phlabel { display: block; order: 1; font: 400 14px var(--font-sans); color: var(--text-strong); }
  .ef-stat__num { order: 2; font: 500 14px var(--font-sans); }
  .ef-split { padding: 14px 16px; border-radius: var(--r-item); }
  .ef-split__full { display: none; }
  .ef-split__short { display: block; }
  .ef-phbasis { padding: 14px 16px; border-radius: var(--r-item); background: var(--bg-app); border: 1px solid var(--a14); }
  .ef-phbasis .ef-rel { display: inline-flex; }
  .ef-phbasis p { margin: 8px 0 0; font: 400 13px/1.5 var(--font-sans); color: var(--ink); }
  .ef-results__aside > :not(.ef-results__cta) { display: none; }
  .ef-results__aside { position: static; }
  .ef-results__cta { position: fixed; left: 0; right: 0; bottom: 0; z-index: var(--z-menu); padding: 12px 16px 28px; background: #fff; border-top: 1px solid var(--a08); }
  .ef-results__cta .ef-btn { min-height: 50px; font-size: 15px; letter-spacing: .03em; }
  .ef-results__cta .ef-small { display: none; }
  /* The fixed CTA bar is ~91px tall: the last row (price) clears it, toasts sit above it, and the
     support launcher steps aside (lifted, it would cover the price row; help stays in the ☰ drawer). */
  .ef-results { padding-bottom: 0; }
  .ef-content:has(.ef-results__cta) { padding-bottom: 107px; }
  body:has(.ef-results__cta) .ef-launcher { display: none; }
  body:has(.ef-results__cta) .ef-toast-host { bottom: 163px; }
  .ef-app.is-drawer-open .ef-results__cta { display: none; } /* it sits above the drawer layer */
}
@media (prefers-reduced-motion: reduce) { .ef-stepper__step.is-indeterminate .ef-stepper__fill { animation: none; } }
.ef-results .ef-two-col__main > div:empty { display: none; }
