/* Event-page screens (push, pushed, live, finished). Namespaced .ef-ep-*; tokens from tokens.css. */

/* ── Tables ─────────────────────────────────────────────────────────────── */
.ef-ep-tablewrap { overflow-x: auto; border: 1px solid var(--a14); border-radius: var(--r-note); }
.ef-ep-tablewrap--scroll { max-height: 520px; overflow-y: auto; }
.ef-ep-table { width: 100%; border-collapse: collapse; font: 400 14px/1.4 var(--font-sans); color: var(--text-strong); }
.ef-ep-table th { position: sticky; top: 0; z-index: 1; background: var(--bg-app); text-align: left; font: 500 12px var(--font-sans); color: var(--text-muted); padding: 10px 14px; border-bottom: 1px solid var(--a08); white-space: nowrap; }
.ef-ep-table td { padding: 10px 14px; border-bottom: 1px solid var(--a07); vertical-align: middle; }
.ef-ep-table tbody tr:last-child td { border-bottom: 0; }
.ef-ep-table tbody tr:hover { background: var(--bg-app); }
.ef-ep-table td.ef-num { color: var(--ink); white-space: nowrap; }
.ef-ep-table--compact td, .ef-ep-table--compact th { padding: 8px 12px; }
.ef-ep-table--compact th { white-space: normal; }
/* Who's registered sits in a narrow column: keep all four columns visible instead of scrolling. */
.ef-ep-table--compact { font-size: 13px; }
.ef-ep-table--compact td, .ef-ep-table--compact th { padding: 8px 10px; }
.ef-ep-table--compact th:not(:first-child), .ef-ep-table--compact td:not(:first-child) { text-align: right; }
.ef-ep-table .ef-chips { gap: 4px; }
.ef-ep-chip--missing { border: 1px dashed var(--warn-dot); }

/* ── Push ───────────────────────────────────────────────────────────────── */
.ef-ep-push { flex-direction: row-reverse; }
.ef-ep-pushaside { gap: 0; border: 1px solid var(--a14); border-radius: var(--r-card); background: #fff; overflow: hidden; box-shadow: var(--sh-card); }
.ef-ep-price { padding: 18px 20px; background: var(--bg-app); border-bottom: 1px solid var(--a08); }
.ef-ep-price__val { font: var(--fw-number) 30px/1.15 var(--font-display); letter-spacing: -.02em; color: var(--ink); font-variant-numeric: tabular-nums; }
.ef-ep-pushaside__body { padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 14px; }
.ef-ep-check { display: flex; flex-direction: column; gap: 6px; font: 400 13px/1.45 var(--font-sans); color: var(--text-strong); }
.ef-ep-check .is-pending { color: var(--warn-fg); }
.ef-ep-legend { margin-bottom: 4px; }
.ef-ep-sched { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border: 1px solid var(--a12); border-radius: var(--r-box); background: #fff; cursor: pointer; transition: all var(--t-fast); }
.ef-ep-sched.is-on { border-color: var(--ink); background: var(--bg-app); }
.ef-ep-sched input { margin-top: 3px; accent-color: var(--ink); }
.ef-ep-sched__label { display: block; font: 600 14px var(--font-sans); color: var(--ink); }
.ef-ep-sched__help { display: block; font: 400 12px/1.45 var(--font-sans); color: var(--text-muted); }
.ef-ep-hour { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font: 500 13px var(--font-sans); color: var(--text-strong); }
.ef-ep-select { height: 34px; padding: 0 10px; border: 1px solid var(--a18); border-radius: var(--r-pill); background: #fff; font: 500 13px var(--font-sans); font-variant-numeric: tabular-nums; }
.ef-ep-consent { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border: 1px solid var(--a14); border-radius: var(--r-note); font: 400 13px/1.5 var(--font-sans); color: var(--text-strong); cursor: pointer; transition: border-color var(--t-fast); }
.ef-ep-consent.is-on { border-color: var(--ink); }
.ef-ep-consent input { margin-top: 3px; width: 16px; height: 16px; accent-color: var(--ink); flex-shrink: 0; }
.ef-ep-consent b { font-weight: 500; }
.ef-ep-paybtn { transition: opacity var(--t-fast); }
.ef-ep-progress { display: flex; flex-direction: column; gap: 8px; }
.ef-ep-progress__bar { height: 8px; border-radius: var(--r-bar); background: var(--a08); overflow: hidden; }
.ef-ep-progress__bar span { display: block; height: 100%; background: var(--orange); border-radius: var(--r-bar); transition: width .2s linear; }
/* No count yet: a moving fill instead of a made-up width (ef-indet lives in components.css). */
.ef-ep-progress__bar.is-indeterminate span { width: 30%; animation: ef-indet 1.4s ease-in-out infinite; transition: none; }
@media (prefers-reduced-motion: reduce) { .ef-ep-progress__bar.is-indeterminate span { animation: ef-pulse 2.4s ease-in-out infinite; } }
.ef-ep-sumcards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr)); gap: 12px; }
.ef-ep-sumcards .ef-card { gap: 6px; }

/* Fields */
.ef-ep-fieldlist { display: flex; flex-direction: column; gap: 10px; }
.ef-ep-field { display: flex; flex-direction: column; gap: 10px; padding: 14px 16px; border: 1px solid var(--a12); border-radius: var(--r-item); background: #fff; }
.ef-ep-field.is-linked { background: var(--bg-app); }
.ef-ep-field__top { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; gap: 12px; align-items: center; }
.ef-ep-field__st { width: 26px; height: 26px; border-radius: 50%; border: 1.5px solid var(--a28); display: grid; place-items: center; font: 500 12px var(--font-sans); color: var(--text-muted); }
.ef-ep-field.is-linked .ef-ep-field__st { border: 0; background: var(--ok-dot); color: #fff; }
.ef-ep-field__name code { word-break: break-word; }
.ef-ep-field__copy { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.ef-ep-opt { display: inline-flex; align-items: center; height: 24px; padding: 0 8px; border-radius: var(--r-chip); background: var(--bg-peach); font: 500 12px var(--font-sans); color: var(--text-strong); }
.ef-ep-howto { display: flex; flex-direction: column; gap: 10px; padding-top: 4px; }
.ef-ep-field__optsblock { display: flex; flex-direction: column; gap: 8px; padding-left: 38px; }
.ef-ep-field__optshead { font: 500 13px var(--font-sans); color: var(--ink); }
.ef-ep-field__opts { gap: 6px; }
/* "Create 3 fields": numbered steps (1 add in Swoogo, 2 let us find them) */
.ef-ep-fstep { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 12px; align-items: start; }
.ef-ep-fstep--cream { margin: 0 -24px -22px; padding: 18px 24px 20px; background: var(--bg-app); border-top: 1px solid var(--a08); border-radius: 0 0 var(--r-panel) var(--r-panel); }
.ef-ep-fstep__num { width: 28px; height: 28px; border-radius: 50%; background: var(--ink); color: var(--on-dark); display: grid; place-items: center; font: 600 13px var(--font-sans); }
.ef-ep-fstep__body { min-width: 0; }
.ef-ep-fstep__body h3 { margin: 3px 0 2px; }
.ef-ep-fstep__split { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px 16px; }
@media (max-width: 640px) { .ef-ep-field__optsblock { padding-left: 0; } }

/* ── Pushed ─────────────────────────────────────────────────────────────── */
.ef-ep-pushedgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr)); gap: 16px; align-items: start; }
.ef-ep-pushed { padding: 28px; }
.ef-ep-pushed__icon { width: 36px; height: 36px; border-radius: 10px; font-size: 16px; }
.ef-ep-pushed .ef-row .ef-btn { align-self: flex-start; }

/* ── Suggested actions ──────────────────────────────────────────────────── */
.ef-ep-sa { display: flex; flex-direction: column; gap: 6px; }
.ef-ep-sa__item { border: 1px solid var(--a06); border-radius: var(--r-item); background: #fff; transition: border-color var(--t-fast); }
.ef-ep-sa__item:hover { border-color: var(--a18); }
.ef-ep-sa__item.is-open { border-color: var(--ink); }
.ef-ep-sa__row { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; padding-right: 12px; }
.ef-ep-sa__row > .ef-ep-sa__head { flex: 1 1 380px; min-width: 0; width: auto; }
.ef-ep-sa__item.is-done { background: var(--ok-box-bg); }
.ef-ep-sa__status { flex-shrink: 0; margin-left: auto; min-height: 32px; padding: 0 12px; border: 1px solid var(--a18); border-radius: var(--r-pill); background: #fff; font: 500 11px var(--font-mono); letter-spacing: .04em; text-transform: uppercase; color: var(--text-muted); white-space: nowrap; cursor: pointer; transition: background var(--t-fast), border-color var(--t-fast), color var(--t-fast); }
.ef-ep-sa__status:hover { border-color: var(--ink); color: var(--ink); }
.ef-ep-sa__status.is-on { background: var(--ok-bg); border-color: var(--ok-box-border); color: var(--ok-fg); }
.ef-ep-sa__status:disabled { opacity: .6; cursor: progress; }
.ef-ep-sa__head { width: 100%; display: grid; grid-template-columns: 18px minmax(0, 1fr) auto auto 22px; gap: 12px; align-items: center; min-height: 58px; padding: 8px 14px; border: 0; background: none; text-align: left; font-family: var(--font-sans); border-radius: var(--r-item); }
.ef-ep-sa__dot { width: 12px; height: 12px; border-radius: 50%; background: var(--text-faint); display: grid; place-items: center; font-size: 8px; color: #fff; justify-self: center; }
.ef-ep-sa__dot.is-standard { background: var(--standard-dot); }
.ef-ep-sa__dot.is-done { width: 18px; height: 18px; background: var(--ok-dot); }
.ef-ep-sa__text { display: flex; flex-direction: column; min-width: 0; }
.ef-ep-sa__action { font: 600 14px/1.3 var(--font-sans); color: var(--ink); }
.ef-ep-sa__group { font: 400 13px/1.3 var(--font-sans); color: var(--text-muted); }
.ef-ep-sa__item.is-done .ef-ep-sa__action { color: var(--text-muted); }
.ef-ep-sa__count { font: 500 13px var(--font-sans); color: var(--ink); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ef-ep-sa__i { width: 20px; height: 20px; border-radius: 50%; border: 1px solid var(--a22); display: grid; place-items: center; font: italic 600 12px Georgia, serif; color: var(--text-muted); }
.ef-ep-sa__item.is-open .ef-ep-sa__i { background: var(--ink); border-color: var(--ink); color: #fff; }
.ef-ep-sa__body { padding: 0 16px 16px 44px; display: flex; flex-direction: column; gap: 8px; animation: ef-rise .2s ease; }
.ef-ep-sa__lift { font: 400 13px var(--font-sans); color: var(--text-strong); }
.ef-ep-sa__lift .ef-num { font-size: 15px; }
.ef-ep-sa__doneline { font: 500 13px var(--font-sans); color: var(--ok-fg); }
.ef-ep-sa__counter { font-variant-numeric: tabular-nums; }

/* ── Live ───────────────────────────────────────────────────────────────── */
.ef-ep-head { align-items: flex-end; }
.ef-ep-head .ef-h1 { margin: 0; }
.ef-ep-head > .ef-stack > .ef-row { gap: 10px; }
.ef-ep-head > .ef-stack > p.ef-meta { font-size: 14px; margin-top: -2px; font-variant-numeric: tabular-nums; }
.ef-ep-head > .ef-row { gap: 8px; }
.ef-ep-morewrap { position: relative; }
.ef-ep-more { width: 40px; height: 40px; min-height: 40px; padding: 0; border: 1px solid var(--a18); border-radius: var(--r-pill); background: #fff; color: var(--ink); font: 500 18px/1 var(--font-sans); letter-spacing: 0; text-transform: none; }
.ef-ep-menu { top: calc(100% + 8px); right: 0; left: auto; width: 230px; }
.ef-ep-menu .ef-menu__item.is-inert { cursor: default; }
/* The nightly-mode item (2026-10-26): the choice, and what it means under it. */
.ef-ep-menu__two { display: grid; gap: 2px; padding: 8px 0; }
.ef-ep-menu__sub { font: 400 12px/1.4 var(--font-sans); color: var(--text-muted); }
.ef-ep-stats { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 12px; }
.ef-ep-stat { gap: 2px; box-shadow: none; }
.ef-ep-stat .ef-eyebrow { margin: 0; }
.ef-ep-stat__sentence { margin-top: 8px; font: var(--fw-number) 20px/1.35 var(--font-display); letter-spacing: -.01em; color: var(--ink); text-wrap: pretty; font-variant-numeric: tabular-nums; }
.ef-ep-stat__sub { margin-top: 8px; font: 400 13px/1.45 var(--font-sans); color: var(--text); font-variant-numeric: tabular-nums; }
.ef-ep-stat__big + .ef-ep-stat__sub { margin-top: 0; }
.ef-ep-stat__pct { font: 400 13px/1.45 var(--font-sans); color: var(--text-muted); font-variant-numeric: tabular-nums; }
.ef-ep-stat__pct + .ef-ep-stat__sub { margin-top: 0; }
/* Forecast ready, not pushed (owner 2026-10-28): counts, the forecast's date, the way to Push. */
/* Not its own .ef-ep-ready: that is the green "✓ ready" pill (below), which turned this card into a circle. */
.ef-ep-notpushed { margin-top: 20px; max-width: 760px; }
.ef-ep-notpushed .ef-eyebrow, .ef-ep-notpushed .ef-title, .ef-ep-notpushed .ef-body, .ef-ep-notpushed .ef-meta { margin: 0; }
.ef-ep-notpushed__stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; }
.ef-ep-notpushed__stats:empty { display: none; }
.ef-ep-notpushed__asof { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
.ef-ep-notpushed__go { flex-wrap: wrap; gap: 10px; margin-top: 4px; }
.ef-ep-stat__big { margin-top: 8px; font: var(--fw-number) 30px/1.15 var(--font-display); color: var(--ink); font-variant-numeric: tabular-nums; }
.ef-ep-stat__foot { margin-top: auto; padding-top: 10px; border-top: 1px solid var(--a08); display: flex; flex-direction: column; gap: 4px; font: 400 12px var(--font-sans); color: var(--text-muted); }
.ef-ep-stat__sub + .ef-ep-stat__foot { margin-top: auto; }
.ef-ep-stat__row { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.ef-ep-stat__val { font: 500 13px var(--font-sans); color: var(--ink); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ef-ep-stat__row > span:first-child { min-width: 0; }
/* A value's range on its own line under the row (2026-10-22: it wrapped both sides when inline). */
.ef-ep-stat__note { margin-top: -2px; text-align: right; font: 400 12px var(--font-sans); color: var(--text-muted); font-variant-numeric: tabular-nums; }
.ef-ep-stat .ef-ok-text { color: var(--ok-fg); }
.ef-ep-livegrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 24px; align-items: start; }
.ef-ep-livegrid__col { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.ef-ep-sec { gap: 16px; }
.ef-ep-panel { padding: 20px 22px; box-shadow: none; }
.ef-ep-panel .ef-meta { margin-top: 2px; }
.ef-ep-sechead { flex-wrap: wrap; align-items: baseline; gap: 4px 16px; }
/* Add UTM & email reports panel (D6). Backend not built: actions answer "Not active yet". */
.ef-ep-rep { display: flex; flex-direction: column; animation: ef-rise var(--t-rise) ease; }
.ef-ep-rep__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 16px; align-items: start; }
.ef-ep-rep__sec { display: flex; flex-direction: column; gap: 10px; padding: 16px 18px; border: 1px solid var(--a12); border-radius: var(--r-note); background: #fff; min-width: 0; }
.ef-ep-rep__sec > .ef-btn { align-self: flex-start; }
.ef-ep-rep__off { margin: 0; padding: 10px 12px; border-radius: var(--r-field); background: var(--bg-bench); border: 1px solid var(--warn-border); font: 400 13px/1.5 var(--font-sans); color: var(--warn-fg); }
.ef-ep-rep__off b { font-weight: 600; }
.ef-ep-rep__file { font: 400 13px var(--font-sans); color: var(--text-strong); max-width: 100%; }
.ef-ep-devrow { gap: 24px; align-items: flex-start; }
.ef-ep-devrow > .ef-two-col__main { flex: 999 1 520px; min-width: 0; }
/* The live event page gets more room on a wide screen (owner 2026-10-22); other pages keep
   --content-max. The cards on the right get a little wider so their text wraps less. */
.ef-content:has(.ef-ep-tabs) { max-width: 1440px; }
.ef-ep-devrow > .ef-two-col__aside { flex-basis: 340px; }
.ef-ep-liveaside { flex: 1 1 300px; gap: 14px; }
.ef-ep-asidecard { gap: 8px; box-shadow: none; }
.ef-ep-asidecard.ef-card--accent { padding: 20px; }
.ef-ep-asidecard .ef-eyebrow { margin: 0; }
.ef-ep-asidecard.ef-card--cream { gap: 10px; }
.ef-ep-asidecard__body { margin: 0; font: 400 14px/1.5 var(--font-sans); color: var(--text-strong); }
.ef-ep-asidecard__body.is-ink { color: var(--ink); }
.ef-title--17 { font-size: 17px; margin: 0; }
.ef-ep-asidecard .ef-strong { color: var(--ink); font-weight: var(--fw-number); }
.ef-ep-paid .ef-dl { font-size: 14px; gap: 8px 16px; }
.ef-ep-paid .ef-dl dt { color: var(--text-strong); }

/* "How is this developing?": flush card, chart then an edge-to-edge table */
.ef-ep-dev { padding: 0; gap: 0; overflow: hidden; box-shadow: none; }
.ef-ep-dev > .ef-ep-sechead { padding: 18px 20px 0; }
.ef-ep-dev > .ef-ep-sechead .ef-meta { margin: 0; }

/* Chart (design: 700×140 viewBox, baseline at 110, dated points) */
.ef-ep-chart { position: relative; margin: 0; padding: 12px 20px 4px; }
.ef-ep-chart__tip { position: absolute; transform: translate(-50%, calc(-100% - 10px)); padding: 6px 10px; border-radius: 8px; background: var(--ink); color: #fff; font: 400 12px var(--font-sans); font-variant-numeric: tabular-nums; white-space: nowrap; pointer-events: none; z-index: 2; }
.ef-ep-chart__tip[hidden] { display: none; }
.ef-ep-chart__pt.is-hover { stroke-width: 4; }
.ef-ep-chart__pt.is-last.is-hover { stroke: var(--ink); stroke-width: 3; }
.ef-ep-chart__svg { display: block; width: 100%; height: 140px; overflow: visible; }
.ef-ep-chart__base { stroke: var(--a08); }
.ef-ep-chart__line { fill: none; stroke: var(--orange); stroke-width: 2.5; stroke-linejoin: round; }
.ef-ep-chart__pt { fill: #fff; stroke: var(--orange); stroke-width: 2; }
.ef-ep-chart__pt.is-last { fill: var(--ink); stroke: none; }
.ef-ep-chart__lbl { font: 400 12px var(--font-sans); fill: var(--text-muted); }
.ef-ep-chart__val { font: 500 13px var(--font-sans); fill: var(--ink); font-variant-numeric: tabular-nums; }
.ef-ep-chart__title { margin: 0 0 2px; font: 500 12px var(--font-sans); color: var(--text-muted); }
.ef-ep-chart__empty { padding: 8px 20px; }

/* Refresh table */
.ef-ep-rtable { width: 100%; table-layout: fixed; border-collapse: collapse; font: 400 13px var(--font-sans); color: var(--text-strong); font-variant-numeric: tabular-nums; }
.ef-ep-rtable th { padding: 10px 8px; font: 500 12px var(--font-sans); color: var(--text-muted); text-align: right; border-top: 1px solid var(--a08); border-bottom: 1px solid var(--a08); white-space: nowrap; }
.ef-ep-rtable th:first-child { text-align: left; padding-left: 20px; width: 15.6%; }
.ef-ep-rtable th:last-child, .ef-ep-rtable tbody tr:not(.ef-ep-xtr) td:last-child { padding-right: 20px; }
.ef-ep-rtable tbody tr:not(.ef-ep-xtr) td { padding: 2px 8px; text-align: right; font-weight: 500; color: var(--ink); border-bottom: 1px solid var(--a07); }
.ef-ep-rtable tbody tr:not(.ef-ep-xtr) td:first-child { text-align: left; padding-left: 14px; }
.ef-ep-rtable tbody tr:not(.ef-ep-xtr):hover td, .ef-ep-rtable tr.is-open td { background: var(--bg-app); }
.ef-ep-rtable tbody tr:last-child td { border-bottom: 0; }
.ef-ep-rtable tbody tr:not(.ef-ep-xtr) td.ef-ep-added { color: var(--ok-fg); } /* outranks the generic ink cell rule above */
.ef-ep-rowbtn { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 8px 0 4px; border: 0; background: none; font: 500 13px var(--font-sans); color: var(--ink); white-space: nowrap; cursor: pointer; }
.ef-ep-rowbtn__chev { width: 12px; color: var(--text-muted); }
.ef-ep-xtr td { padding: 12px 20px 16px 38px; background: var(--bg-app); border-bottom: 1px solid var(--a07); }
.ef-ep-xrow { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; font: 500 13px/1.7 var(--font-sans); color: var(--ink); }
.ef-ep-xrow__h { font: 500 12px var(--font-sans); color: var(--text-muted); }
.ef-ep-xrow__h.is-added { color: var(--ok-fg); }
.ef-ep-ids { font-variant-numeric: tabular-nums; word-break: break-word; max-height: 220px; overflow-y: auto; }
.ef-ep-leftlist { display: flex; flex-direction: column; }
.ef-ep-leftlist li { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 8px; min-height: 28px; }
.ef-ep-leftlist__why { font: 400 12px var(--font-sans); color: var(--text-muted); }
.ef-ep-donechip { display: inline-flex; align-items: center; gap: 4px; height: 20px; padding: 0 8px; border-radius: var(--r-pill); background: var(--ok-bg); color: var(--ok-fg); font: 500 11px var(--font-sans); }
/* Pushed runs (owner 2026-10-26, live.js refreshTable): a quiet chip by the date and a light tint;
   in push mode every row has it, so neither may shout. The chip wraps under the date in a narrow cell. */
.ef-ep-datecell { display: flex; flex-wrap: wrap; align-items: center; column-gap: 2px; }
.ef-ep-pushchip { display: inline-flex; align-items: center; height: 18px; margin: 2px 0 4px 4px; padding: 0 7px; border-radius: var(--r-pill); background: var(--solid-bg); color: var(--solid-fg); font: 500 11px var(--font-sans); white-space: nowrap; }
.ef-ep-rtable tbody tr.is-pushed:not(.is-open):not(:hover) td { background: var(--bg-note); }
/* What changed since the last push, over the chart (live.js sinceLastPush). */
.ef-ep-dev__since { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; padding: 10px 20px 0; }
.ef-ep-dev__sinceline { margin: 0; font: 400 14px/1.5 var(--font-sans); color: var(--text-strong); }
.ef-ep-dev__review { padding: 0; border: 0; background: none; font: 500 14px var(--font-sans); color: var(--ink); text-decoration: underline; cursor: pointer; }

/* Who's registered */
.ef-ep-whowrap { display: grid; grid-template-columns: 128px minmax(0, 1fr); gap: 24px; align-items: center; }
/* Returning vs new donut (owner 2026-10-22, live.js whoDonut). Navy + amber passed the dataviz
   validator (CVD ΔE 28, normal 32); the cards beside it are the legend and carry the numbers. */
.ef-ep-donut { position: relative; width: 128px; height: 128px; margin: 0; }
.ef-ep-donut__svg { display: block; width: 100%; height: 100%; }
.ef-ep-donut__seg { fill: none; stroke-linecap: butt; }
.ef-ep-donut__seg.is-ret, .ef-ep-swatch.is-ret { stroke: #46529E; background: #46529E; }
.ef-ep-donut__seg.is-new, .ef-ep-swatch.is-new { stroke: #C98A3E; background: #C98A3E; }
.ef-ep-donut__seg.is-unk { stroke: var(--warm-dash); }
.ef-ep-donut__mid { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.ef-ep-donut__pct { font: var(--fw-number) 22px/1.1 var(--font-display); color: var(--ink); font-variant-numeric: tabular-nums; }
.ef-ep-donut__cap { font: 400 11px var(--font-sans); color: var(--text-muted); }
.ef-ep-swatch { display: inline-block; width: 8px; height: 8px; border-radius: 2px; flex-shrink: 0; }
.ef-ep-swatch.is-no { background: var(--orange); }
.ef-ep-swatch.is-yes { background: var(--ok-dot); }
.ef-ep-whogrid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.ef-ep-who { display: flex; flex-direction: column; min-width: 0; }
.ef-ep-who__h { display: flex; align-items: center; gap: 6px; font: 500 13px var(--font-sans); color: var(--text-strong); }
.ef-ep-who__n { margin-top: 4px; font: var(--fw-number) 24px/1.2 var(--font-display); color: var(--ink); font-variant-numeric: tabular-nums; }
.ef-ep-who__pct { font: 400 14px var(--font-sans); color: var(--text-muted); }
.ef-ep-who__exp { font: 400 12px/1.5 var(--font-sans); color: var(--text-muted); font-variant-numeric: tabular-nums; }
.ef-ep-rttable { width: 100%; border-collapse: collapse; font: 400 13px var(--font-sans); color: var(--text-strong); font-variant-numeric: tabular-nums; }
.ef-ep-rttable th { padding: 0 0 6px; font: 500 12px var(--font-sans); color: var(--text-muted); text-align: left; border-bottom: 1px solid var(--a07); }
.ef-ep-rttable td { padding: 8px 0; border-bottom: 1px solid var(--a07); }
.ef-ep-rttable td:first-child { color: var(--ink); font-weight: 500; }
.ef-ep-rttable th:nth-child(2), .ef-ep-rttable td:nth-child(2) { width: 90px; text-align: right; }
.ef-ep-rttable th:nth-child(3), .ef-ep-rttable td:nth-child(3) { width: 150px; text-align: right; }
.ef-ep-who__note { margin: 0; padding: 12px 14px; border-radius: var(--r-field); background: var(--bg-app); font: 400 13px/1.5 var(--font-sans); color: var(--text-strong); }
.ef-ep-who__note .ef-strong { font-weight: 500; color: var(--ink); }

/* Acquisition card (Task 10; redesigned 2026-10-28): how registrants found you, per UTM / reference
   field. Best and worst three on top, then the table: highest earlier no-show first, the rate as a
   badge against the values' own average. Numbers stay 400-500, never bold. */
.ef-acq .ef-seg { margin-top: 4px; }
.ef-acq__tops { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 16px; }
.ef-acq__top { padding: 12px 14px; border-radius: var(--r-field); background: var(--bg-app); }
.ef-acq__tophead { margin: 0 0 8px; font: 500 12px var(--font-sans); color: var(--text-muted); }
.ef-acq__top ol { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; }
.ef-acq__top li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 10px; font: 400 13px var(--font-sans); color: var(--ink); }
.ef-acq__topname { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ef-acq__topnow { min-width: 52px; text-align: right; font: 400 12px var(--font-sans); color: var(--text-muted); font-variant-numeric: tabular-nums; }
.ef-acq__avg { margin: 8px 0 0; }
.ef-acq__wrap { overflow-x: auto; margin-top: 16px; }
.ef-acq-table { width: 100%; border-collapse: collapse; font: 400 13px var(--font-sans); color: var(--text-strong); font-variant-numeric: tabular-nums; }
.ef-acq-table th { padding: 0 0 8px 12px; font: 500 12px var(--font-sans); color: var(--text-muted); text-align: left; border-bottom: 1px solid var(--a07); white-space: nowrap; }
.ef-acq-table th:first-child, .ef-acq-table td:first-child { padding-left: 0; }
.ef-acq-table td { padding: 9px 0 9px 12px; border-bottom: 1px solid var(--a07); }
.ef-acq-table tbody tr:last-child td { border-bottom: 0; }
.ef-acq-table .ef-num { text-align: right; width: 1%; white-space: nowrap; }
.ef-acq__val { color: var(--ink); overflow-wrap: anywhere; }
.ef-acq__moves { display: inline-block; margin-left: 8px; font: 500 11px var(--font-sans); }
.ef-acq__moves.is-high { color: var(--danger-fg); }
.ef-acq__moves.is-low { color: var(--ok-fg); }
.ef-acq-table tr.is-notnow td, .ef-acq-table tr.is-notnow .ef-acq__val { color: var(--text-muted); }
.ef-acq__sortbtn { padding: 0; border: 0; background: none; font: inherit; color: inherit; cursor: pointer; }
.ef-acq__sortbtn:hover, .ef-acq__sort.is-sorted .ef-acq__sortbtn { color: var(--ink); }
.ef-acq__sort.is-sorted .ef-acq__sortbtn::after { content: ' \2193'; }
.ef-acq__sort.is-sorted.is-up .ef-acq__sortbtn::after { content: ' \2191'; }
.ef-acq__rate { display: inline-block; min-width: 44px; padding: 2px 8px; border-radius: var(--r-pill); text-align: center; background: var(--a07); font: 500 12px var(--font-sans); color: var(--text-strong); }
.ef-acq__rate.is-high { background: var(--danger-bg); color: var(--danger-fg); }
.ef-acq__rate.is-low { background: var(--ok-bg); color: var(--ok-fg); }
.ef-acq__rate.is-thin { background: none; color: var(--text-muted); font-weight: 400; }
.ef-acq__more { margin-top: 12px; }
.ef-acq__foot { margin-top: 8px; }
@media (max-width: 640px) { .ef-acq__tops { grid-template-columns: 1fr; } }

/* Signals: risky and protective side by side */
.ef-ep-sigcols { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 24px; }
.ef-ep-sig__col { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.ef-ep-sig__head { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.ef-ep-sig__head h3 { margin: 0; display: flex; align-items: center; gap: 8px; font: 600 14px var(--font-sans); color: var(--ink); }
.ef-ep-sig__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--orange); }
.ef-ep-sig__dot.is-prot { background: var(--ok-dot); }
.ef-ep-sig__side { font: 500 12px var(--font-sans); color: var(--text-muted); white-space: nowrap; }
.ef-ep-sig { display: flex; flex-direction: column; gap: 10px; }
.ef-ep-sig__item { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; align-items: baseline; }
/* "i" toggletip beside a signal label: hover/focus shows, click pins (touch). 16px glyph, 36px hit area. */
.ef-ep-sig__info { position: relative; display: inline-grid; place-items: center; width: 16px; height: 16px; margin-left: 6px; padding: 0; border: 1px solid var(--a22); border-radius: 50%; background: none; font: 600 10px/1 var(--font-sans); color: var(--text-muted); vertical-align: 1px; cursor: pointer; }
.ef-ep-sig__info::before { content: ''; position: absolute; inset: -10px; }
.ef-ep-sig__info:hover, .ef-ep-sig__info[aria-expanded="true"] { color: var(--ink); border-color: var(--ink); }
.ef-ep-sig__tip { position: absolute; z-index: var(--z-menu); left: 0; right: 0; top: calc(100% + 4px); padding: 10px 12px; border-radius: var(--r-note); background: #fff; border: 1px solid var(--a14); box-shadow: var(--sh-menu); font: 400 12px/1.5 var(--font-sans); color: var(--text); visibility: hidden; opacity: 0; transition: opacity var(--t-fast), visibility var(--t-fast); }
.ef-ep-sig__info[aria-expanded="true"] ~ .ef-ep-sig__tip, .ef-ep-sig__info:focus-visible ~ .ef-ep-sig__tip { visibility: visible; opacity: 1; }
@media (hover: hover) { .ef-ep-sig__text:hover .ef-ep-sig__tip { visibility: visible; opacity: 1; transition-delay: .2s; } }
@media (prefers-reduced-motion: reduce) { .ef-ep-sig__tip { transition: none; } }
.ef-ep-sig__text { font: 500 13px var(--font-sans); color: var(--ink); }
.ef-ep-sig__x { font: 500 13px var(--font-sans); color: var(--text-muted); font-variant-numeric: tabular-nums; }
.ef-ep-sig__x.is-prot { color: var(--ok-fg); }
.ef-ep-sig__track { grid-column: 1 / -1; height: 4px; border-radius: var(--r-bar); background: var(--a08); overflow: hidden; }
.ef-ep-sig__fill { display: block; height: 100%; border-radius: var(--r-bar); background: var(--orange); }
.ef-ep-sig__fill.is-prot { background: var(--ok-dot); }
.ef-ep-sig__n { grid-column: 1 / -1; font: 400 12px var(--font-sans); color: var(--text-muted); font-variant-numeric: tabular-nums; }
.ef-ep-sig__foot { margin: 0; font: 400 12px/1.5 var(--font-sans); color: var(--text-muted); }
/* Grouped by kind of fact (2026-10-22): one heading row for the two sides, then per group its
   risky rows left and protective rows right. Narrow: the columns stack and each says its side. */
.ef-ep-sigpanel { container-type: inline-size; }
.ef-ep-sigpanel .ef-ep-sigcols { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.ef-ep-siggrp { display: flex; flex-direction: column; gap: 10px; padding-top: 14px; border-top: 1px solid var(--a08); }
.ef-ep-siggrp__h { margin: 0; font: 600 13px var(--font-sans); color: var(--text-strong); }
.ef-ep-sig__kind { display: none; font: 500 12px var(--font-sans); color: var(--text-muted); }
.ef-ep-sigsmall { display: flex; flex-direction: column; gap: 14px; }
.ef-ep-sigsmall[open] { padding-bottom: 4px; }
@container (max-width: 440px) {
  .ef-ep-sigpanel .ef-ep-sigcols { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .ef-ep-sigheads { display: none; }
  .ef-ep-sig__kind { display: block; }
  .ef-ep-sig__col:empty { display: none; }
}

/* Suggested actions on the live page (Working on it / Done / Skip) */
.ef-ep-sa__title { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
.ef-ep-sa__counter { font: 500 11px var(--font-mono); letter-spacing: .04em; text-transform: uppercase; color: var(--text-muted); font-variant-numeric: tabular-nums; }
.ef-ep-lsa { display: flex; flex-direction: column; gap: 8px; }
.ef-ep-lsa__parts { display: flex; flex-direction: column; gap: 20px; }
.ef-ep-lsa__part { display: flex; flex-direction: column; gap: 8px; }
.ef-ep-lsa__parth { margin: 0; font: 500 11px var(--font-mono); letter-spacing: .05em; text-transform: uppercase; color: var(--text-muted); }
.ef-ep-lsa__item { border: 1px solid var(--a06); border-radius: var(--r-item); background: var(--bg-app); overflow: hidden; transition: border-color var(--t-fast); }
.ef-ep-lsa__item.is-open { border-color: var(--ink); }
.ef-ep-lsa__item.is-done { background: #F2FAF5; }
.ef-ep-lsa__item.is-skip { background: #fff; }
.ef-ep-lsa__row { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; padding-right: 12px; }
.ef-ep-lsa__head { flex: 1 1 380px; min-width: 0; display: grid; grid-template-columns: 8px minmax(0, 1fr) auto 22px; gap: 12px; align-items: center; padding: 12px 16px; border: 0; background: none; text-align: left; cursor: pointer; font-family: var(--font-sans); }
.ef-ep-lsa__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--text-faint); }
.ef-ep-lsa__dot.is-standard { background: var(--standard-dot); }
.ef-ep-lsa__text { min-width: 0; }
.ef-ep-lsa__todo { display: block; font: 600 14px/1.35 var(--font-sans); color: var(--ink); }
.ef-ep-lsa__item.is-done .ef-ep-lsa__todo { text-decoration: line-through; }
.ef-ep-lsa__item.is-skip .ef-ep-lsa__todo { color: var(--text-muted); }
.ef-ep-lsa__group { display: block; font: 400 13px/1.35 var(--font-sans); color: var(--text-muted); }
.ef-ep-lsa__tag { display: inline-flex; align-items: center; height: 20px; padding: 0 8px; border-radius: var(--r-pill); background: var(--ok-bg); color: var(--ok-fg); font: 500 10px var(--font-mono); letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; }
.ef-ep-lsa__tag.is-standard { background: var(--standard-bg); color: var(--standard-fg); }
.ef-ep-lsa__count { font: 500 13px var(--font-sans); color: var(--text-strong); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ef-ep-lsa__i { width: 22px; height: 22px; border-radius: 50%; background: var(--a08); color: var(--text); display: grid; place-items: center; font: italic 600 12px Georgia, serif; }
.ef-ep-lsa__item.is-open .ef-ep-lsa__i { background: var(--ink); color: var(--on-dark); }
/* Quiet by default (2026-10-27): a hairline, not a peach block on every row. */
.ef-ep-lsa__seg { display: inline-flex; flex-shrink: 0; margin-left: auto; padding: 3px; gap: 2px; border-radius: var(--r-field); background: transparent; box-shadow: inset 0 0 0 1px var(--a08); }
.ef-ep-lsa__opt:hover:not([aria-disabled="true"]):not(.is-on) { color: var(--ink); }
.ef-ep-lsa__opt { min-height: 30px; padding: 0 10px; border: 0; border-radius: var(--r-seg); background: transparent; font: 500 11px var(--font-mono); letter-spacing: .03em; text-transform: uppercase; color: var(--text-muted); white-space: nowrap; cursor: pointer; }
.ef-ep-lsa__opt.is-on { background: #fff; color: var(--ink); box-shadow: var(--sh-seg); }
.ef-ep-lsa__opt.is-done { background: var(--ok-bg); color: var(--ok-fg); }
.ef-ep-lsa__opt[aria-disabled="true"] { cursor: default; }
.ef-ep-lsa__body { padding: 0 16px 14px 36px; display: flex; flex-direction: column; gap: 6px; animation: ef-rise .2s ease; }
.ef-ep-lsa__why { margin: 0; font: 400 13px/1.55 var(--font-sans); color: var(--text-strong); text-wrap: pretty; }
.ef-ep-lsa__because { margin: 0; font: 400 12px var(--font-sans); color: var(--text-muted); }
.ef-ep-lsa__because b { font-weight: 600; color: var(--text-strong); }
.ef-ep-lsa__done { margin: 0; font: 500 12px var(--font-sans); color: var(--ok-fg); }

/* ── Finished ───────────────────────────────────────────────────────────── */
.ef-ep-result { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 32px; align-items: center; padding: 26px 28px; box-shadow: none; }
.ef-ep-result .ef-eyebrow { margin: 0 0 10px; }
.ef-ep-result__sentence { margin: 0; font: var(--fw-number) 26px/1.3 var(--font-display); letter-spacing: -.015em; color: var(--ink); text-wrap: pretty; }
.ef-ep-result__exp { margin: 10px 0 0; font: 400 14px/1.5 var(--font-sans); color: var(--text); }
.ef-ep-cbars { display: flex; flex-direction: column; gap: 14px; }
.ef-ep-cbar { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 12px; align-items: baseline; }
.ef-ep-cbar__label { font: 600 14px var(--font-sans); color: var(--ink); }
.ef-ep-cbar__label span { font-weight: 400; color: var(--text-muted); }
.ef-ep-cbar__val { font: 500 14px var(--font-sans); color: var(--ink); font-variant-numeric: tabular-nums; }
.ef-ep-cbar__track { grid-column: 1 / -1; display: flex; gap: 2px; height: 10px; border-radius: var(--r-bar); overflow: hidden; }
.ef-ep-cbar__no { display: block; background: var(--orange); }
.ef-ep-cbar__yes { display: block; background: var(--ok-dot); }
.ef-ep-cbar__legend { display: flex; flex-wrap: wrap; gap: 6px 16px; font: 400 12px var(--font-sans); color: var(--text-muted); }
.ef-ep-cbar__legend span { display: inline-flex; align-items: center; gap: 6px; }
.ef-ep-cbar__caveat { margin: 0; padding-top: 12px; border-top: 1px solid var(--a08); font: 400 13px/1.5 var(--font-sans); color: var(--text-strong); }
.ef-ep-final { padding: 0; gap: 0; overflow: hidden; box-shadow: none; }
.ef-ep-final__head { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 16px 20px; border-bottom: 1px solid var(--a08); }
.ef-ep-final__head h2 { margin: 0; }
.ef-ep-csv { padding: 0; border: 0; background: none; font: 500 13px var(--font-sans); color: var(--ink); text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
.ef-ep-csv:disabled { opacity: .6; cursor: progress; }
.ef-ep-ftable { width: 100%; table-layout: fixed; border-collapse: collapse; font: 400 14px var(--font-sans); color: var(--text-strong); }
.ef-ep-ftable th { position: static; background: #fff; padding: 10px 12px; font: 500 12px var(--font-sans); color: var(--text-muted); text-align: left; border-bottom: 1px solid var(--a08); }
.ef-ep-ftable td { padding: 11px 12px; border-bottom: 1px solid var(--a07); }
.ef-ep-ftable td:last-child { padding-top: 8px; padding-bottom: 8px; }
.ef-ep-ftable th:first-child, .ef-ep-ftable td:first-child { width: 72px; padding-left: 20px; }
.ef-ep-ftable th:last-child, .ef-ep-ftable td:last-child { padding-right: 20px; }
.ef-ep-ftable tbody tr:hover { background: var(--bg-app); }
.ef-ep-ftable td.is-strong { font-weight: 500; color: var(--ink); font-variant-numeric: tabular-nums; }
.ef-ep-ftable td.is-c { color: var(--ink); font-variant-numeric: tabular-nums; }
.ef-ep-ftable td.is-nc { color: var(--text-muted); }
.ef-ep-outcome { display: inline-flex; align-items: center; height: 24px; padding: 0 10px; border-radius: var(--r-pill); font: 500 12px var(--font-sans); background: var(--neutral-bg); color: var(--neutral-fg); }
.ef-ep-outcome.is-no_show { background: var(--risk-bg); color: var(--risk-fg); }
.ef-ep-outcome.is-attended { background: var(--ok-bg); color: var(--ok-fg); }
/* Share report: inert until a share link exists (DATA marker in finished.js), drawn as the design's secondary button. */
.ef-ep-share[aria-disabled="true"] { opacity: 1; color: var(--ink); cursor: default; }
.ef-ep-headbtns { gap: 8px; }
.ef-ep-pager { padding: 12px 20px; font: 400 13px var(--font-sans); color: var(--text-muted); }

/* ── Narrow ─────────────────────────────────────────────────────────────── */
@media (max-width: 960px) {
  .ef-ep-pushaside { position: static; order: 2; }
  .ef-ep-stats { grid-template-columns: 1fr 1fr; }
  .ef-ep-stat--wide { grid-column: 1 / -1; }
  .ef-ep-livegrid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
  .ef-ep-stats { grid-template-columns: 1fr; }
  .ef-ep-field__top { grid-template-columns: 26px minmax(0, 1fr); }
  .ef-ep-field__copy { grid-column: 1 / -1; justify-content: flex-start; }
  .ef-ep-sa__head { grid-template-columns: 18px minmax(0, 1fr) auto; }
  .ef-ep-sa__head .ef-tag, .ef-ep-sa__i { display: none; }
  .ef-ep-sa__body { padding-left: 16px; }
  .ef-ep-head > .ef-row { width: 100%; }
  .ef-ep-table { font-size: 13px; }
  .ef-ep-table td, .ef-ep-table th { padding: 8px 10px; }
  .ef-ep-dev, .ef-ep-final { overflow-x: auto; }
  .ef-ep-whogrid, .ef-ep-xrow { grid-template-columns: 1fr; }
  .ef-ep-xtr td { padding-left: 20px; }
  .ef-ep-lsa__head { grid-template-columns: 8px minmax(0, 1fr) auto; }
  .ef-ep-lsa__tag, .ef-ep-lsa__i { display: none; }
  .ef-ep-lsa__body { padding-left: 16px; }
  .ef-ep-lsa__seg { margin: 0 0 10px 16px; }
  .ef-ep-result { padding: 22px 20px; gap: 24px; }
  .ef-ep-result__sentence { font-size: 22px; }
}

/* Live: what went wrong last (2026-10-13). Swoogo's reason and ids wrap on a phone. */
.ef-ep-health { margin: 0 0 16px; }
.ef-ep-health p { margin: 0 0 6px; }
/* Push again: the confirm under the header (live.js repushPanel). */
.ef-ep-repush { display: grid; gap: 10px; margin: 0 0 16px; }
.ef-ep-repush .ef-title:focus { outline: none; }
.ef-ep-repush .ef-body { margin: 0; }
.ef-ep-repush__body { display: grid; gap: 10px; }
.ef-ep-repush-result { margin: 0 0 16px; }
.ef-ep-repush-result .ef-btn { min-height: 0; padding: 0 6px; font-size: 18px; }
/* Refresh now (2026-10-20): the confirm under the header and the "refreshing" line (live.js refreshNowControl). */
.ef-ep-rn { display: grid; gap: 10px; margin: 0 0 16px; }
.ef-ep-rn .ef-title:focus { outline: none; }
.ef-ep-rn .ef-body { margin: 0; }
.ef-ep-rn__body { display: grid; gap: 10px; }
.ef-ep-rnstatus:empty { display: none; }
.ef-ep-rnstatus { margin: 0 0 16px; }
.ef-ep-rnstatus .ef-meta { margin: 0; }
.ef-ep-refreshnow[aria-busy="true"] { cursor: default; }
/* Unlock and redo setup (2026-10-20): the notice on the event page and the setup step, and the confirm's bullets. */
.ef-unlocked { margin: 0 0 16px; }
.ef-unlocked .ef-alert { align-items: center; }
.ef-unlocked__go { white-space: nowrap; }
/* Cancel unlock (2026-10-26): a link-style button before the way on. */
.ef-unlocked__actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; justify-content: flex-end; }
.ef-unlocked__cancel, .ef-unlocked__lock { white-space: nowrap; }
.ef-unlocked__why { margin: 4px 0 0; font-size: 13px; color: var(--text-muted); }
/* Bundle places (2026-10-20): registrants held back because the bundle is full (live.js bundleNotice). */
.ef-ep-bundle { margin: 0 0 16px; }
.ef-ep-bundle .ef-alert + div:not(:empty) { margin-top: 8px; }
.ef-ep-bundle p { margin: 0 0 6px; }
.ef-ep-bundle p:last-child { margin-bottom: 0; }
.ef-ep-bundle__go { white-space: nowrap; }
.ef-unlock__list { margin: 0 0 4px; padding-left: 20px; display: grid; gap: 8px; font: 400 14px/1.5 var(--font-sans); color: var(--text-strong); }
.ef-ep-health__more summary { cursor: pointer; font-size: 13px; color: var(--text-muted); }
.ef-ep-health__more code { display: block; margin-top: 6px; font: 400 12px/1.45 var(--font-mono); color: var(--text-muted); white-space: pre-wrap; overflow-wrap: anywhere; }

/* ── Live tabs: Overview · The list · Actions (design 2026-10-13) ─────────────── */
.ef-ep-tabs { display: flex; flex-wrap: wrap; gap: 4px; border-bottom: 1px solid var(--a12); margin-top: -6px; }
.ef-ep-tab { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px; border: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; background: none; font: 600 14px var(--font-sans); color: var(--text-muted); cursor: pointer; white-space: nowrap; text-decoration: none; }
.ef-ep-tab:hover { color: var(--ink); }
.ef-ep-tab[aria-selected="true"] { color: var(--ink); border-bottom-color: var(--orange); }
.ef-ep-tab__n { display: inline-flex; align-items: center; height: 20px; padding: 0 8px; border-radius: var(--r-pill); background: var(--a06); font: 500 11px var(--font-sans); color: var(--text-muted); font-variant-numeric: tabular-nums; }
.ef-ep-tab__n:empty { display: none; }
.ef-ep-tab[aria-selected="true"] .ef-ep-tab__n { background: var(--bg-peach); color: #7A3E00; }
.ef-ep-tabpanel { display: flex; flex-direction: column; gap: 24px; }
.ef-ep-tabpanel[hidden] { display: none; }

/* Shared bits: mono kicker, numbered steps, pill buttons */
.ef-ep-k { font: 500 11px var(--font-mono); letter-spacing: .05em; text-transform: uppercase; color: var(--text-muted); }
.ef-ep-steps { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.ef-ep-steps li { display: flex; gap: 10px; align-items: flex-start; font: 400 13px/1.5 var(--font-sans); color: var(--ink); }
.ef-ep-steps__n { flex-shrink: 0; width: 20px; height: 20px; border-radius: 6px; background: var(--bg-peach); color: #7A3E00; display: grid; place-items: center; font: 500 11px var(--font-sans); }
.ef-ep-steps__t { min-width: 0; text-wrap: pretty; }
.ef-ep-steps--white .ef-ep-steps__n { background: #fff; }
.ef-ep-steps--muted li { color: var(--text-strong); }
.ef-ep-pill { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 14px; border: 1px solid var(--a18); border-radius: var(--r-pill); background: #fff; font: 500 11px var(--font-mono); letter-spacing: .03em; text-transform: uppercase; color: var(--ink); cursor: pointer; white-space: nowrap; text-decoration: none; align-self: flex-start; }
.ef-ep-pill:hover { border-color: var(--ink); }
.ef-ep-pill--cta { border-color: transparent; background: var(--cta); }
.ef-ep-pill--cta:hover { border-color: transparent; background: var(--orange); }
.ef-ep-pill:disabled { opacity: .6; cursor: progress; }

/* Suggested actions: how to do it, filter, CSV */
.ef-ep-how { margin: 6px 0 4px; padding: 12px 14px; border-radius: 12px; background: #fff; border: 1px solid var(--a08); display: flex; flex-direction: column; gap: 8px; }
.ef-ep-lsa__btns { margin-top: 6px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }

/* How many calls */

/* Standard follow-ups + where to work from */
.ef-ep-std { gap: 14px; }
.ef-ep-std__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 12px; align-items: start; }
.ef-ep-stdcard { border: 1px solid var(--a12); border-radius: 18px; background: var(--bg-app); padding: 16px; display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.ef-ep-stdcard__head { display: flex; flex-direction: column; gap: 4px; }
.ef-ep-stdcard__title { margin: 0; font: 600 18px/1.25 var(--font-display); letter-spacing: -.01em; color: var(--ink); text-wrap: pretty; }
.ef-ep-stdcard__who { margin: 0; font: 400 13px/1.5 var(--font-sans); color: var(--text); text-wrap: pretty; }
/* Folded steps (2026-10-22): a row like the script toggle, the steps under it when open. */
.ef-ep-fold { border-top: 1px solid var(--a08); }
.ef-ep-fold > .ef-ep-fold__sum { display: flex; align-items: center; gap: 10px; min-height: 44px; font: 600 14px var(--font-sans); color: var(--ink); cursor: pointer; list-style: none; }
.ef-ep-fold > .ef-ep-fold__sum::-webkit-details-marker { display: none; }
.ef-ep-fold > .ef-ep-fold__sum::after { content: '+'; margin-left: auto; flex-shrink: 0; width: 24px; height: 24px; border-radius: 50%; background: var(--a06); display: grid; place-items: center; font: 500 14px/1 var(--font-sans); color: var(--ink); }
.ef-ep-fold[open] > .ef-ep-fold__sum::after { content: '−'; }
.ef-ep-fold > .ef-ep-fold__sum:focus-visible { box-shadow: var(--focus-ring); border-radius: 8px; outline: none; }
.ef-ep-fold > .ef-ep-steps { padding-bottom: 10px; }
.ef-ep-stdcard .ef-ep-script { padding-top: 0; }
/* "Set up your plan" (2026-10-27): the scan and "Who matters most?" as two steps in one card, folded when both are done. */
.ef-card.ef-ep-setup, .ef-card.ef-ep-follow { display: block; }
.ef-ep-setup__sum { display: flex; align-items: flex-start; gap: 12px; cursor: pointer; list-style: none; border-radius: 10px; }
.ef-ep-setup__sum::-webkit-details-marker { display: none; }
.ef-ep-setup__sum::after { content: '+'; flex-shrink: 0; width: 24px; height: 24px; border-radius: 50%; background: var(--a06); display: grid; place-items: center; font: 500 14px/1 var(--font-sans); color: var(--ink); }
.ef-ep-setup[open] > .ef-ep-setup__sum::after { content: '−'; }
.ef-ep-setup__sum:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.ef-ep-setup__head { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.ef-ep-setup__head .ef-title { margin: 0; }
.ef-ep-setup__count { flex-shrink: 0; }
.ef-ep-setup__count.is-done, .ef-ep-setup__done { background: var(--ok-box-bg); color: var(--ok-fg); }
/* One step open at a time (2026-10-27): each step folds to its title and what was chosen. */
.ef-ep-setup__steps { display: flex; flex-direction: column; margin-top: 16px; }
.ef-ep-setup__step { padding: 14px 0; border-top: 1px solid var(--a08); }
.ef-ep-setup__step:last-child { padding-bottom: 0; }
.ef-ep-setup__stepsum { display: flex; align-items: center; gap: 12px; cursor: pointer; list-style: none; border-radius: 10px; }
.ef-ep-setup__stepsum::-webkit-details-marker { display: none; }
.ef-ep-setup__stepsum:focus:not(:focus-visible) { outline: none; }
.ef-ep-setup__stepsum::after { content: '+'; flex-shrink: 0; width: 24px; height: 24px; border-radius: 50%; background: var(--a06); display: grid; place-items: center; font: 500 14px/1 var(--font-sans); color: var(--ink); }
.ef-ep-setup__step[open] > .ef-ep-setup__stepsum::after { content: '−'; }
.ef-ep-setup__stepsum:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.ef-ep-setup__stephead { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.ef-ep-setup__steph { margin: 0; font: 600 16px/1.3 var(--font-sans); color: var(--ink); }
.ef-ep-setup__eyebrow { margin: 0; display: flex; align-items: center; gap: 8px; }
.ef-ep-setup__stepbody { display: flex; flex-direction: column; gap: 14px; padding-top: 10px; }
.ef-ep-setup__why { margin: 0; max-width: 80ch; }
/* Setup pills (Actions tab redesign 2026-10-28): the setup is a section, no longer folded; the
   pills are the progress and the way back into a step. */
.ef-ep-setup > .ef-ep-setup__sum { cursor: default; }
.ef-ep-setup > .ef-ep-setup__sum::after { content: none; }
.ef-ep-setup__pills { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 14px; }
.ef-ep-setup__pill { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 16px 0 8px; border-radius: var(--r-pill); border: 1px solid var(--a10); background: var(--bg-card); color: var(--ink); font: 600 14px/1.2 var(--font-sans); cursor: pointer; }
.ef-ep-setup__pill:hover { border-color: var(--a22); }
/* Phone (2026-10-29): the three pills share one row instead of stacking; it scrolls sideways when tight. */
@media (max-width: 640px) {
  .ef-ep-setup__pills { flex-wrap: nowrap; gap: 6px; overflow-x: auto; scrollbar-width: none; margin-inline: -4px; padding: 2px 4px; }
  .ef-ep-setup__pills::-webkit-scrollbar { display: none; }
  .ef-ep-setup__pill { flex: none; gap: 6px; padding: 0 12px 0 6px; font-size: 13px; white-space: nowrap; }
  .ef-ep-setup__pilldot { flex: none; width: 22px; height: 22px; font-size: 11px; }
}
.ef-ep-setup__pill:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.ef-ep-setup__pilldot { width: 28px; height: 28px; border-radius: 50%; background: var(--neutral-bg); color: var(--text-muted); display: grid; place-items: center; font: 600 13px/1 var(--font-sans); }
.ef-ep-setup__pill.is-done .ef-ep-setup__pilldot { background: var(--ok-bg); color: #1F7A45; }
.ef-ep-setup__pill.is-current { background: var(--bg-peach); border-color: var(--orange); }
.ef-ep-setup__pill.is-current .ef-ep-setup__pilldot { background: var(--cta); color: var(--ink); }
/* The step's own card loses its frame, title and lead inside the setup card: the step says both. */
.ef-ep-setup__stepbody > .ef-card, .ef-ep-follow__body > .ef-card { border: 0; border-radius: 0; box-shadow: none; padding: 0; background: transparent; }
.ef-ep-setup__stepbody .ef-ep-cardhead { display: none; }
/* "More ways to follow up" (2026-10-27): the follow-ups and suggested actions, folded under the plan. */
.ef-ep-follow[open] > .ef-ep-setup__sum::after { content: '−'; }
.ef-ep-follow__body { display: flex; flex-direction: column; gap: 22px; margin-top: 16px; }
.ef-ep-follow__body > .ef-card { padding-top: 18px; border-top: 1px solid var(--a08); }
/* Action playbook (2026-10-27): one block per step, one card per action, the "Who matters most?" card. Numbers 500, never bold. */
/* Actions tab redesign (2026-10-28): figures, a timeline, steps of cards and a side panel beside them. */
.ef-ep-pb { gap: 16px; }
.ef-ep-pb__flag { margin: 0; }
.ef-ep-pb__hint { margin: 0; color: var(--text-strong); }
/* Figures: large numbers, weight 500 (never bold). */
.ef-ep-pb__figures { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); gap: 10px; }
.ef-ep-pb__fig { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; border-radius: var(--r-figure); background: var(--bg-note); border: 1px solid var(--a08); min-width: 0; }
.ef-ep-pb__fignum { font: var(--fw-number) 32px/1.05 var(--font-display); letter-spacing: -.01em; color: var(--ink); font-variant-numeric: tabular-nums; }
.ef-ep-pb__figlabel { font: 600 14px/1.35 var(--font-sans); color: var(--ink); }
.ef-ep-pb__figsub { font-size: 13px; }
.ef-ep-pb__recheck { min-height: 36px; }
.ef-ep-pb__recheck[aria-busy="true"] { cursor: default; }
/* Header: title + lead, and when the sessions were checked as a quiet line on the right (2026-10-29). */
.ef-ep-pb__head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 8px 16px; }
.ef-ep-pb__head > .ef-grow { min-width: min(100%, 320px); }   /* on a phone the checked line wraps under, the title keeps the width */
.ef-ep-pb__checked { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.ef-ep-pb__checked > .ef-meta { margin: 0; }
.ef-ep-pb__figdate { font: var(--fw-number) 13px var(--font-sans); color: var(--ink); font-variant-numeric: tabular-nums; }
/* Timeline (2026-10-29): a track of steps joined by a line, ending on the event day, so it no longer
   reads as a second row of figures. The next step is orange, a late one red, a done one green. */
.ef-ep-pb__maplist { list-style: none; margin: 0; padding: 4px 0 0; display: flex; }
.ef-ep-pb__maplist > li { position: relative; flex: 1 1 0; min-width: 0; }
.ef-ep-pb__maplist > li:not(:last-child)::after { content: ''; position: absolute; top: 15px; left: 40px; right: 8px; height: 2px; border-radius: 1px; background: var(--a12); }
.ef-ep-pb__maplist > li:has(> .is-done):not(:last-child)::after { background: var(--ok-dot); }
.ef-ep-pb__tile { width: 100%; display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 0 12px 4px 0; border: 0; border-radius: var(--r-item); background: none; text-align: left; cursor: pointer; font: inherit; color: var(--ink); }
.ef-ep-pb__tile:hover .ef-ep-pb__tilet { text-decoration: underline; text-underline-offset: 3px; }
.ef-ep-pb__tile:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.ef-ep-pb__dot { flex: none; width: 32px; height: 32px; margin-bottom: 8px; border-radius: 50%; display: grid; place-items: center; box-sizing: border-box; border: 2px solid var(--a18); background: var(--bg-card); font: 500 13px/1 var(--font-mono); color: var(--text-muted); }
.ef-ep-pb__tile.is-next .ef-ep-pb__dot { background: var(--orange); border-color: var(--orange); color: var(--ink); }
.ef-ep-pb__tile.is-done .ef-ep-pb__dot { background: var(--ok-bg); border-color: var(--ok-dot); color: var(--ok-fg); }
.ef-ep-pb__tile--day { cursor: default; }
.ef-ep-pb__tile--day .ef-ep-pb__dot { background: var(--ink); border-color: var(--ink); color: var(--bg-card); font-size: 14px; }
.ef-ep-pb__tilen { min-height: 18px; display: flex; align-items: center; gap: 6px; font: 500 11px/1.6 var(--font-mono); letter-spacing: .05em; text-transform: uppercase; color: var(--text-muted); }
.ef-ep-pb__tilestate { padding: 0 6px; border-radius: var(--r-pill); background: var(--bg-peach); color: var(--ink); }
.ef-ep-pb__tilet { font: 600 15px/1.3 var(--font-sans); color: var(--ink); }
.ef-ep-pb__tilew, .ef-ep-pb__tiles { font: 400 12px/1.45 var(--font-sans); color: var(--text-muted); font-variant-numeric: tabular-nums; }
.ef-ep-pb__tile.is-done .ef-ep-pb__tiles { color: var(--ok-fg); }
/* Narrow: the track runs down, dot on the left, the line between the dots. */
@media (max-width: 640px) {
  .ef-ep-pb__maplist { flex-direction: column; }
  .ef-ep-pb__maplist > li { padding-bottom: 14px; }
  .ef-ep-pb__maplist > li:not(:last-child)::after { top: 36px; bottom: 2px; left: 15px; right: auto; width: 2px; height: auto; }
  .ef-ep-pb__tile { display: grid; grid-template-columns: 32px minmax(0, 1fr); column-gap: 12px; padding: 0; }
  .ef-ep-pb__dot { grid-row: 1 / span 4; margin: 0; }
  .ef-ep-pb__tilen:empty { display: none; }
}
/* The open action's panel is a drawer docked to the window's right edge, full height (owner
   2026-10-28: "full height on the side, not a floating thing"). The plan card drops its size
   containment, which would make it the drawer's containing block. On a wide screen the page makes
   room for the drawer, so the cards stay in view beside it; narrower, it lies over the page. */
.ef-ep-pb.ef-ep-panel { container-type: normal; }
.ef-ep-pb__layout { display: block; }
.ef-ep-pb__panelhost:empty { display: none; }
/* Only while the drawer shows: a hidden tab that still holds it must not keep the page aside. */
@media (min-width: 1100px) { .ef-main:has(.ef-ep-pbpanel):not(:has([hidden] .ef-ep-pbpanel)) .ef-content { margin-right: var(--pb-drawer-w); } }
.ef-ep-pb__steps { display: flex; flex-direction: column; gap: 20px; }
.ef-ep-pb__step { display: flex; flex-direction: column; gap: 12px; padding-top: 16px; border-top: 1px solid var(--a08); }
.ef-ep-pb__stephead { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; }
.ef-ep-pb__steph { margin: 0; font: var(--fw-heading) 18px/1.3 var(--font-display); color: var(--ink); scroll-margin-top: 80px; }
.ef-ep-pb__steph:focus { outline: none; }
.ef-ep-pb__stepwhen { background: var(--bg-peach); }
.ef-ep-pb__stepcount { margin-left: auto; font-variant-numeric: tabular-nums; }
.ef-ep-pb__more { align-self: flex-start; min-height: 44px; }
.ef-ep-pb__list { display: flex; flex-direction: column; gap: 8px; }
/* A card is a full-width row (2026-10-29, was a third-wide tile): icon, what to do and why, then the
   count and the channel on the right, and › to open it. On a phone the count drops under the title. */
.ef-ep-pbcard { display: flex; align-items: center; gap: 16px; padding: 12px 16px; min-height: 44px; border-radius: var(--r-item); border: 1px solid var(--a10); background: var(--bg-note); text-align: left; font: inherit; color: var(--ink); cursor: pointer; transition: border-color .15s ease, box-shadow .15s ease; }
.ef-ep-pbcard::after { content: '›'; flex: none; font: 400 22px/1 var(--font-sans); color: var(--text-muted); }
.ef-ep-pbcard:hover { border-color: var(--a22); box-shadow: 0 4px 12px rgba(13,15,28,.06); }
.ef-ep-pbcard:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.ef-ep-pbcard.is-selected { border: 2px solid var(--orange); background: var(--bg-peach); padding: 11px 15px; }
.ef-ep-pbcard.is-done { opacity: .7; }
.ef-ep-pbcard__top { flex: 1 1 auto; min-width: 0; display: flex; align-items: center; gap: 12px; }
.ef-ep-pbcard__icon { flex-shrink: 0; width: 36px; height: 36px; border-radius: 10px; background: var(--bg-peach); color: var(--ink); display: grid; place-items: center; }
.ef-ep-pbcard__main { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
/* Text flow, not flex (2026-10-27): the "new" tag follows the last word instead of wrapping onto its own line. */
.ef-ep-pbcard__title { display: block; font: 600 15px/1.35 var(--font-sans); }
.ef-ep-pbcard__new { display: inline-flex; vertical-align: 2px; margin-left: 2px; white-space: nowrap; }
.ef-ep-pbcard__why { font: 400 13px/1.4 var(--font-sans); color: var(--text-muted); }
.ef-ep-pbcard__state { flex-shrink: 0; background: var(--ok-box-bg); color: var(--ok-fg); }
.ef-ep-pbcard__foot { flex: none; display: flex; align-items: center; justify-content: flex-end; gap: 12px; }
.ef-ep-pbcard__n { font: var(--fw-number) 13px var(--font-sans); color: var(--ink); font-variant-numeric: tabular-nums; text-align: right; }
.ef-ep-pbcard__later { display: block; color: var(--text-muted); }
.ef-ep-pbcard__ch { padding: 2px 9px; border-radius: var(--r-pill); border: 1px solid var(--a12); background: var(--bg-card); font: 600 12px/1.5 var(--font-sans); color: var(--text-strong); }
@media (max-width: 640px) {
  .ef-ep-pbcard { flex-wrap: wrap; gap: 10px; }
  .ef-ep-pbcard::after { display: none; }
  .ef-ep-pbcard__foot { width: 100%; justify-content: space-between; padding-left: 48px; }
  .ef-ep-pbcard__n { text-align: left; }
}
/* The side panel: why, who, the message and Done. On a phone it covers the page. */
:root { --pb-drawer-w: 440px; }
.ef-ep-pbpanel { position: fixed; top: 0; right: 0; bottom: 0; z-index: var(--z-drawer); width: min(var(--pb-drawer-w), 100vw); box-sizing: border-box; display: flex; flex-direction: column; gap: 14px; padding: 20px 24px 28px; border-left: 1px solid var(--a10); background: var(--bg-card); box-shadow: -12px 0 32px rgba(13,15,28,.08); overflow-y: auto; overscroll-behavior: contain; animation: ef-pb-drawer .2s ease; }
@keyframes ef-pb-drawer { from { transform: translateX(24px); opacity: 0; } to { transform: none; opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .ef-ep-pbpanel { animation: none; } }
.ef-ep-pbpanel:focus { outline: none; }
.ef-ep-pbpanel__head { display: flex; align-items: center; gap: 8px; }
.ef-ep-pbpanel__eyebrow { flex: 1 1 auto; min-width: 0; }
.ef-ep-pbpanel__back { display: none; }
.ef-ep-pbpanel__close, .ef-ep-pbpanel__back { min-width: 44px; min-height: 44px; border: 1px solid var(--a10); border-radius: var(--r-pill); background: var(--bg-card); color: var(--ink); font: 600 14px var(--font-sans); cursor: pointer; }
.ef-ep-pbpanel__close:focus-visible, .ef-ep-pbpanel__back:focus-visible, .ef-ep-pbpanel__tab:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.ef-ep-pbpanel__title { margin: 0; font: var(--fw-heading) 20px/1.25 var(--font-display); color: var(--ink); }
.ef-ep-pbpanel__why { display: flex; flex-direction: column; gap: 4px; }
.ef-ep-pbpanel__why p { margin: 0; font: 400 14px/1.5 var(--font-sans); color: var(--text-strong); }
.ef-ep-pbpanel__tabs { display: flex; gap: 4px; padding: 3px; border-radius: var(--r-pill); background: var(--neutral-bg); width: fit-content; }
.ef-ep-pbpanel__tab { min-height: 36px; padding: 0 14px; border: 0; border-radius: var(--r-pill); background: transparent; font: 600 13px var(--font-sans); color: var(--text-muted); cursor: pointer; font-variant-numeric: tabular-nums; }
.ef-ep-pbpanel__tab.is-on { background: var(--bg-card); color: var(--ink); box-shadow: 0 1px 2px rgba(13,15,28,.08); }
.ef-ep-pbpanel__whobox, .ef-ep-pbpanel__msgbox { display: flex; flex-direction: column; gap: 10px; }
.ef-ep-pbpanel__whobox > p, .ef-ep-pbpanel__msgbox > p { margin: 0; }
.ef-ep-pbpanel__who { width: 100%; border-collapse: collapse; font: 400 13px/1.4 var(--font-sans); font-variant-numeric: tabular-nums; }
.ef-ep-pbpanel__who th { text-align: left; font: 500 11px/1.6 var(--font-mono); letter-spacing: .05em; text-transform: uppercase; color: var(--text-muted); padding: 6px 8px; border-bottom: 1px solid var(--a08); }
.ef-ep-pbpanel__who td { padding: 7px 8px; border-bottom: 1px solid var(--a06); }
.ef-ep-pbpanel__more { align-self: flex-start; }
.ef-ep-pbpanel__whoacts { display: flex; flex-wrap: wrap; gap: 8px; }
.ef-ep-pbpanel__msgbox .ef-ep-script { padding-top: 0; }
.ef-ep-pbcard__quote { margin: 0; }
/* The confirm email (2026-10-29): the email with its blocks, each with its Action signals condition
   and its count (numbers 500, never bold), then the setup guide. */
.ef-ep-confirm { display: flex; flex-direction: column; gap: 10px; }
.ef-ep-confirm__body { display: flex; flex-direction: column; gap: 10px; padding: 16px 18px; }
.ef-ep-confirm__text { margin: 0; max-width: 68ch; font: 400 15px/1.6 var(--font-sans); color: var(--ink); white-space: pre-line; overflow-wrap: break-word; }
.ef-ep-confirm__btns { display: flex; flex-wrap: wrap; gap: 8px; }
.ef-ep-confirm__btn { padding: 6px 14px; border-radius: 8px; border: 1px solid var(--a14); background: #fff; font: 500 14px/1.4 var(--font-sans); color: var(--ink); }
.ef-ep-confirm__btn--yes { background: var(--ink); border-color: var(--ink); color: #fff; }
.ef-ep-confirm__block { display: flex; flex-direction: column; gap: 4px; padding: 10px 12px; border: 1px dashed #E3A660; border-radius: 10px; background: var(--bg-peach); }
.ef-ep-confirm__blockhead { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 12px; }
.ef-ep-confirm__label { font: 500 13px/1.4 var(--font-sans); color: var(--ink); }
.ef-ep-confirm__n { font: 500 13px/1.4 var(--font-sans); font-variant-numeric: tabular-nums; color: var(--text); }
.ef-ep-confirm__cond { font: 500 11px/1.5 var(--font-mono); letter-spacing: .03em; color: #7A3E00; overflow-wrap: break-word; }
@media (max-width: 480px) { .ef-ep-confirm__body { padding-left: 14px; padding-right: 14px; } }
.ef-ep-pbcard__facts { margin: 0; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 12px; font: 400 13px/1.45 var(--font-sans); color: var(--text); }
.ef-ep-pbcard__facts dt { font: 500 11px/1.8 var(--font-mono); letter-spacing: .05em; text-transform: uppercase; color: var(--text-muted); }
.ef-ep-pbcard__facts dd { margin: 0; min-width: 0; overflow-wrap: break-word; }
.ef-ep-pbpanel__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-top: auto; padding-top: 12px; border-top: 1px solid var(--a08); padding-right: 52px; }  /* clear of the help launcher (fixed, bottom right) */
.ef-ep-pbpanel__foot .ef-ep-sa__status { margin-left: auto; min-height: 44px; }
@media (max-width: 640px) {
  .ef-ep-pbpanel { width: 100vw; border-left: 0; box-shadow: none; padding: 16px; }
  .ef-ep-pbpanel__back { display: inline-flex; align-items: center; padding: 0 12px; }
  .ef-ep-pbpanel__close { display: none; }
  .ef-ep-pb__stepcount { margin-left: 0; width: 100%; }
}
.ef-ep-pbset { gap: 14px; }
.ef-ep-pbset__group { margin: 0; padding: 0; border: 0; min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.ef-ep-pbset__group > legend { padding: 0; margin-bottom: 8px; }
/* Who / offers / travel side by side when the card is wide enough (2026-10-27). */
.ef-ep-pbset__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 18px 28px; align-items: start; }
.ef-ep-pbset__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.ef-ep-pbset__note, .ef-ep-pbset__role { margin: 0; }
.ef-ep-pbset .ef-checkchip:has(input:disabled) { cursor: default; opacity: .75; }
.ef-ep-pbset__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
.ef-ep-pbset__save[aria-disabled="true"] { opacity: .55; cursor: not-allowed; }
.ef-ep-pbset__privacy summary { cursor: pointer; width: fit-content; min-height: 32px; display: flex; align-items: center; font: 500 13px var(--font-sans); color: var(--text-muted); text-decoration: underline; text-underline-offset: 3px; }
.ef-ep-pbset__privtext { margin: 6px 0 8px; max-width: 72ch; font: 400 13px/1.5 var(--font-sans); color: var(--text); }
/* Event scan + consult (Phase 3, 2026-10-27). Numbers 500 at most, never bold. */
.ef-ep-scan { gap: 14px; }
.ef-ep-scan__body { display: flex; flex-direction: column; gap: 12px; }
.ef-ep-scan__lines { display: flex; flex-direction: column; gap: 4px; }
.ef-ep-scan__line { margin: 0; font: 400 14px/1.45 var(--font-sans); color: var(--text); font-variant-numeric: tabular-nums; }
.ef-ep-scan__line.ef-meta { font-size: 13px; color: var(--text-muted); }
.ef-ep-scan__q { margin: 0; font: 600 16px/1.35 var(--font-sans); color: var(--ink); }
.ef-ep-scan__why { margin: -8px 0 0; }
.ef-ep-scan__type { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
/* The question is the select's label until confirmed (2026-10-29): question above, select under it. */
.ef-ep-scan__type:has(> .ef-ep-scan__q) { flex-direction: column; align-items: flex-start; }
.ef-ep-scan__select { min-width: 200px; max-width: 100%; }
.ef-ep-scan__group { margin: 0; padding: 0; border: 0; min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.ef-ep-scan__group > legend { padding: 0; margin-bottom: 8px; }
/* What we read and the type question beside the facts on a wide card (2026-10-27). */
.ef-ep-scan__grid { display: grid; grid-template-columns: 1fr; gap: 18px 32px; align-items: start; }
@container (min-width: 760px) { .ef-ep-scan__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); } }
.ef-ep-scan__col { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.ef-ep-scan__facts { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 10px; }
.ef-ep-scan__facts--wrap { flex-direction: row; flex-wrap: wrap; gap: 8px; }
.ef-ep-scan__more { align-self: flex-start; min-height: 32px; }
@media (pointer: coarse) { .ef-ep-scan__more { min-height: 44px; } }
.ef-ep-scan__fact { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.ef-ep-scan__fact .ef-checkchip { align-self: flex-start; }
.ef-ep-scan .ef-checkchip:has(input:disabled) { cursor: default; opacity: .75; }
.ef-ep-scan__ev > .ef-ep-pbset__site { font-weight: 600; color: var(--ink); }
.ef-ep-scan__ev { margin: 0 0 0 12px; font: 400 12px/1.45 var(--font-sans); color: var(--text-muted); overflow-wrap: anywhere; }
.ef-ep-scan__role { margin: 0; }
.ef-ep-scan__site { max-width: 440px; }
.ef-ep-scan__site-add { align-self: flex-start; }
.ef-ep-scan__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
/* What the scan read, one quiet line beside Scan again (2026-10-29). */
.ef-ep-scan__brief { font-size: 12.5px; font-variant-numeric: tabular-nums; text-align: right; }
@media (max-width: 640px) { .ef-ep-scan__foot > .ef-grow { display: none; } .ef-ep-scan__brief { flex-basis: 100%; text-align: left; order: 5; } }
/* What we read + Scan again, the first line of step 1 (2026-11-02, one column). */
.ef-ep-scan__top { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
.ef-ep-scan__top > .ef-ep-scan__brief { text-align: left; flex: 1 1 260px; order: 0; }
/* The website field opens on its own line under the row; Scan now sits beside it before a scan. */
.ef-ep-scan__top > .ef-ep-scan__site, .ef-ep-scan__top > .ef-ep-scan__site-add:has(.ef-ep-scan__site) { flex-basis: 100%; order: 5; }
.ef-ep-scan__top > .ef-ep-scan__site-add { align-self: center; }
.ef-ep-scan__siterow { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px 12px; }
.ef-ep-scan__siterow > .ef-ep-scan__site { flex: 1 1 280px; }
.ef-ep-scan__siterow > .ef-ep-scan__site-add { align-self: center; }
.ef-ep-scan__body > .ef-ep-offers { margin-top: 6px; }
.ef-ep-scan__save ~ .ef-ep-scan__go { margin-left: auto; }
.ef-ep-scan [aria-disabled="true"] { cursor: not-allowed; }
.ef-ep-consult { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin: -8px 24px; }
.ef-ep-consult__text { margin: 0; font: 400 14px/1.4 var(--font-sans); color: var(--text-muted); }
/* "Needs Risk rank · ＋ Add field": one quiet line, not a banner. */
.ef-ep-needs.ef-ep-needs--quiet { margin: 0; padding: 0; background: none; border: 0; justify-content: flex-start; gap: 4px 10px; }
.ef-ep-needs.ef-ep-needs--quiet .ef-ep-needs__line { font-weight: 500; color: var(--text-strong); }
.ef-ep-needs__add { min-height: 32px; padding: 0; border: 0; background: none; font: 600 13px var(--font-sans); color: var(--ink); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.ef-ep-needs__add:hover { color: var(--text-muted); }
.ef-ep-needs__add:focus-visible { box-shadow: var(--focus-ring); border-radius: 6px; outline: none; }
.ef-ep-needs { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 12px; padding: 12px 14px; border-radius: 14px; background: var(--bg-peach); border: 1px solid #F5D3A8; }
.ef-ep-needs__line { font: 600 13px var(--font-sans); color: #7A3E00; }
.ef-ep-needs .ef-ep-pill { align-self: center; }
.ef-ep-nudgehost:empty { display: none; }
.ef-ep-ready { align-self: flex-start; display: inline-flex; align-items: center; min-height: 28px; padding: 4px 12px; border-radius: var(--r-pill); background: var(--ok-bg); color: var(--ok-fg); font: 500 12px/1.4 var(--font-sans); }
.ef-ep-script { border-top: 1px solid var(--a08); padding-top: 10px; display: flex; flex-direction: column; gap: 10px; }
.ef-ep-script__toggle { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 44px; padding: 0; border: 0; background: none; cursor: pointer; text-align: left; }
.ef-ep-script__toggle:focus-visible { box-shadow: var(--focus-ring); border-radius: 8px; }
.ef-ep-script__label { flex: 1; font: 600 14px var(--font-sans); color: var(--ink); }
.ef-ep-script__chev { flex-shrink: 0; width: 24px; height: 24px; border-radius: 50%; background: var(--a06); display: grid; place-items: center; font: 500 14px var(--font-sans); color: var(--ink); }
.ef-ep-script__body { display: flex; flex-direction: column; gap: 12px; min-width: 0; animation: ef-rise .2s ease; }

/* Call script and email template (design 2026-10-15): the call guide's vocabulary, compact. */
.ef-ph { padding: 0 5px; border: 1px dashed #E3A660; border-radius: 6px; background: #FFF4E5; color: #7A3E00; -webkit-box-decoration-break: clone; box-decoration-break: clone; overflow-wrap: break-word; }
.ef-ep-script .ef-copy { min-height: 44px; padding: 0 16px; }
.ef-ep-script .ef-copy:hover { border-color: var(--ink); }
.ef-ep-script .ef-copy:focus-visible { box-shadow: var(--focus-ring); }
.ef-sc-call { padding: 14px 16px; border-radius: 14px; background: #fff; border: 1px solid var(--a08); }
.ef-sc-head { display: flex; justify-content: flex-end; margin: -4px 0 -6px; }
.ef-sc-link { display: inline-flex; align-items: center; gap: 4px; min-height: 32px; padding: 0 4px; font: 500 13px var(--font-sans); color: var(--ink); text-decoration: underline; text-decoration-color: var(--a18); text-underline-offset: 3px; }
.ef-sc-link:hover { text-decoration-color: var(--ink); }
.ef-sc-link:focus-visible { box-shadow: var(--focus-ring); border-radius: 6px; }
.ef-sc-prep { display: flex; flex-direction: column; gap: 6px; padding: 12px 14px; border-radius: 12px; background: var(--bg-peach); border: 1px solid #F5D3A8; }
.ef-sc-prep .ef-ep-k { color: #7A3E00; }
.ef-sc-prep__t { margin: 0; max-width: 70ch; font: 400 14px/1.5 var(--font-sans); color: var(--ink); text-wrap: pretty; }
.ef-sc-rules { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.ef-sc-rule { max-width: 100%; padding: 6px 10px; border-radius: 10px; background: #fff; border: 1px solid #F5D3A8; font: 400 12px/1.45 var(--font-sans); color: var(--text-muted); }
.ef-sc-rule b { font-weight: 500; color: var(--ink); }
.ef-sc-steps { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 16px; }
.ef-sc-step { display: grid; grid-template-columns: 20px minmax(0, 1fr); column-gap: 10px; row-gap: 8px; align-items: start; }
.ef-sc-step__h { grid-column: 2; margin: 0; font: 600 14px/20px var(--font-sans); color: var(--ink); }
.ef-sc-step__c { grid-column: 2; min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.ef-sc-say { margin: 0; max-width: 70ch; padding: 12px 14px; border-radius: 12px; border-left: 3px solid var(--cta); background: var(--bg-app); font: 400 15px/1.55 var(--font-sans); color: var(--ink); text-wrap: pretty; overflow-wrap: break-word; }
.ef-sc-tip { margin: 0; max-width: 70ch; font: 400 13px/1.45 var(--font-sans); color: var(--text-muted); text-wrap: pretty; overflow-wrap: break-word; }
.ef-sc-why { display: flex; flex-direction: column; gap: 6px; }
.ef-sc-replies { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 8px; }
.ef-sc-reply { min-width: 0; display: flex; flex-direction: column; gap: 8px; padding: 12px; border-radius: 12px; background: #fff; border: 1px solid var(--a10); }
.ef-sc-reply .ef-sc-say { padding: 10px 12px; }
.ef-sc-reply .ef-sc-tip { margin-top: auto; }
.ef-sc-lists { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 8px; }
.ef-sc-may, .ef-sc-never { min-width: 0; display: flex; flex-direction: column; gap: 8px; padding: 12px 14px; border-radius: 14px; }
.ef-sc-may { border: 1px solid var(--ok-box-border); background: #F6FBF8; }
.ef-sc-never { border: 1px solid #F1D3CB; background: #FDF4F1; }
.ef-sc-box__h { margin: 0; font: 600 14px var(--font-sans); color: var(--ink); }
.ef-sc-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.ef-sc-list li { display: flex; gap: 8px; min-width: 0; font: 400 14px/1.5 var(--font-sans); color: var(--ink); }
.ef-sc-list li > span:last-child { min-width: 0; overflow-wrap: break-word; }
.ef-sc-mark { flex-shrink: 0; font-weight: 600; }
.ef-sc-may .ef-sc-mark { color: var(--ok-fg); }
.ef-sc-never .ef-sc-mark { color: #B3261E; }
.ef-sc-maynote { margin: 0; font: 400 12px/1.5 var(--font-sans); color: var(--text-strong); }
.ef-sc-lists--compact .ef-sc-may, .ef-sc-lists--compact .ef-sc-never { gap: 6px; padding: 10px 12px; border-radius: 12px; }
.ef-sc-lists--compact .ef-sc-box__h, .ef-sc-lists--compact .ef-sc-list li { font-size: 13px; }
.ef-sc-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.ef-sc-send { margin: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 10px; font: 400 14px/1.5 var(--font-sans); color: var(--ink); }
.ef-sc-send__t { min-width: 0; max-width: 70ch; text-wrap: pretty; }
.ef-sc-mail { min-width: 0; border: 1px solid var(--a14); border-radius: 14px; background: #fff; }
.ef-sc-mail__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px; padding: 12px 18px; border-bottom: 1px solid var(--a08); }
.ef-sc-mail__subj { flex: 1 1 220px; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.ef-sc-mail__subject { font: 500 15px/1.45 var(--font-sans); color: var(--ink); overflow-wrap: break-word; }
.ef-sc-mail__body { margin: 0; max-width: 68ch; padding: 16px 18px; font: 400 15px/1.6 var(--font-sans); color: var(--ink); white-space: pre-line; overflow-wrap: break-word; }
.ef-sc-mail__foot { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; padding: 10px 18px; border-top: 1px solid var(--a08); }
@media (max-width: 480px) {
  .ef-sc-call { padding: 12px; }
  .ef-sc-step__c { grid-column: 1 / -1; }
  .ef-sc-say { font-size: 16px; }
  .ef-sc-mail__head, .ef-sc-mail__body, .ef-sc-mail__foot { padding-left: 14px; padding-right: 14px; }
  .ef-sc-mail__foot { justify-content: flex-start; }
}
.ef-ep-note { margin: 0; font: 400 12px/1.5 var(--font-sans); color: var(--text-muted); text-wrap: pretty; }
/* "Start here: save your list as a report": one folded row above the follow-ups. */
.ef-ep-fold.ef-ep-use { border: 1px solid var(--a10); border-radius: 14px; padding: 0 14px; background: var(--bg-card, #fff); }
.ef-ep-fold.ef-ep-use > .ef-ep-steps { padding-bottom: 14px; }

/* ── Call guide (/events/:id/call-guide) ───────────────────────────────────── */
.ef-cg { display: flex; flex-direction: column; gap: 16px; max-width: 920px; animation: ef-rise .3s ease; }
.ef-cg__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 16px 24px; }
.ef-cg__headtext { flex: 1 1 380px; min-width: 0; }
.ef-cg__eyebrow { margin: 0 0 8px; }
.ef-cg__title { margin: 0; font: 600 30px/1.15 var(--font-display); letter-spacing: -.02em; color: var(--ink); }
.ef-cg__sub { margin: 8px 0 0; max-width: 600px; font: 400 15px/1.5 var(--font-sans); color: var(--text-strong); text-wrap: pretty; }
.ef-cg__tools { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.ef-cg__lang { display: inline-flex; padding: 3px; gap: 2px; border-radius: var(--r-field); background: var(--bg-peach); }
.ef-cg__lang button { min-height: 34px; min-width: 44px; padding: 0 10px; border: 0; border-radius: var(--r-seg); background: transparent; font: 500 12px var(--font-mono); letter-spacing: .04em; color: var(--ink); cursor: pointer; }
.ef-cg__lang button[aria-pressed="true"] { background: #fff; box-shadow: var(--sh-seg); }
.ef-cg__rules { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr)); gap: 8px; }
.ef-cg__rule { display: flex; flex-direction: column; gap: 2px; padding: 12px 14px; border-radius: 14px; background: var(--bg-app); border: 1px solid var(--a10); }
.ef-cg__rule b { font: 600 14px/1.35 var(--font-sans); color: var(--ink); }
.ef-cg__rule span { font: 400 12px/1.45 var(--font-sans); color: var(--text-muted); }
.ef-cg__sec { border: 1px solid var(--a14); border-radius: 20px; padding: 20px 22px; display: flex; flex-direction: column; gap: 12px; background: #fff; }
.ef-cg__h { margin: 0; font: 600 17px var(--font-sans); color: var(--ink); }
.ef-cg__say { margin: 0; padding: 16px 18px; border-radius: 14px; background: var(--bg-app); font: 400 17px/1.55 var(--font-sans); color: var(--ink); text-wrap: pretty; }
.ef-cg__say--sm { font-size: 16px; flex: 1; }
.ef-cg__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 10px; }
.ef-cg__col { display: flex; flex-direction: column; gap: 6px; }
.ef-cg__replies { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 10px; }
.ef-cg__reply { display: flex; flex-direction: column; gap: 8px; padding: 14px 16px; border-radius: 14px; background: var(--bg-app); border: 1px solid var(--a08); }
.ef-cg__badge { display: inline-flex; align-items: center; align-self: flex-start; height: 24px; padding: 0 10px; border-radius: var(--r-pill); font: 500 12px var(--font-sans); white-space: nowrap; }
.ef-cg__badge.is-yes { background: var(--ok-bg); color: var(--ok-fg); }
.ef-cg__badge.is-maybe { background: var(--warn-bg); color: var(--warn-fg); }
.ef-cg__badge.is-no { background: var(--standard-bg); color: var(--text-strong); }
.ef-cg__replysay { margin: 0; font: 400 15px/1.55 var(--font-sans); color: var(--ink); text-wrap: pretty; }
.ef-cg__note { margin: auto 0 0; font: 400 12px/1.45 var(--font-sans); color: var(--text-muted); }
.ef-cg__vmnote { margin: 0; font: 400 13px var(--font-sans); color: var(--text-muted); }
.ef-cg__lists { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 12px; }
.ef-cg__may, .ef-cg__never { border-radius: 20px; padding: 18px 20px; display: flex; flex-direction: column; gap: 10px; }
.ef-cg__may { border: 1px solid var(--ok-box-border); background: #F6FBF8; }
.ef-cg__never { border: 1px solid #F1D3CB; background: #FDF4F1; }
.ef-cg__lists h2 { margin: 0; font: 600 15px var(--font-sans); color: var(--ink); }
.ef-cg__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.ef-cg__list li { display: flex; gap: 10px; font: 400 14px/1.5 var(--font-sans); color: var(--ink); }
.ef-cg__mark { font-weight: 600; }
.ef-cg__may .ef-cg__mark { color: var(--ok-fg); }
.ef-cg__never .ef-cg__mark { color: #B3261E; }
.ef-cg__maynote { margin: 0; font: 400 12px/1.5 var(--font-sans); color: var(--text-strong); }

@media (max-width: 640px) {
  .ef-ep-tab { padding: 0 10px; }
  .ef-ep-stdcard { padding: 14px; }
  /* Call guide on a phone (design 390): rules as chips, headings as kickers, notes left out. */
  .ef-cg { gap: 14px; }
  .ef-cg__title { font-size: 24px; }
  .ef-cg__sub { font-size: 14px; }
  .ef-cg__tools { width: 100%; }
  .ef-cg__lang button { min-height: 44px; min-width: 48px; }
  .ef-cg__rules { display: flex; flex-wrap: wrap; gap: 6px; }
  .ef-cg__rule { min-height: 28px; justify-content: center; padding: 4px 10px; border-radius: var(--r-pill); }
  .ef-cg__rule b { font: 500 12px var(--font-sans); }
  .ef-cg__rule span { display: none; }
  .ef-cg__sec { padding: 0; border: 0; border-radius: 0; gap: 6px; background: none; }
  .ef-cg__h { font: 500 11px var(--font-mono); letter-spacing: .05em; text-transform: uppercase; color: var(--text-muted); }
  .ef-cg__say, .ef-cg__say--sm { padding: 14px; font-size: 15px; }
  .ef-cg__col .ef-ep-k, .ef-cg__note, .ef-cg__vmnote, .ef-cg__may { display: none; }
  .ef-cg__reply { padding: 12px 14px; background: #fff; border-color: var(--a10); }
  .ef-cg__never { padding: 14px; border-radius: 14px; }
}

/* Printing the call guide: the page only, no app chrome. */
@media print {
  .ef-sidebar, .ef-topbar, .ef-cg__tools { display: none !important; }
  .ef-app { display: block; height: auto; }
  .ef-main { margin: 0; border: 0; box-shadow: none; overflow: visible; }
  .ef-content { padding: 0; max-width: none; }
  .ef-cg { animation: none; }
  .ef-cg__sec, .ef-cg__may, .ef-cg__never, .ef-cg__rule, .ef-cg__reply { break-inside: avoid; }
}

/* The list tab (design isLiveList): search, count, action chips, table. IDs only. */
.ef-ep-ll { padding: 0; overflow: hidden; }
.ef-ep-ll__bar { padding: 14px 20px 0; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; }
.ef-ep-ll__search { flex: 0 1 220px; min-width: 150px; }
.ef-ep-ll__count { margin-left: auto; display: flex; align-items: center; gap: 10px; font: 400 13px var(--font-sans); color: var(--text-muted); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ef-ep-ll__clear { padding: 0; border: 0; background: none; font: 500 12px var(--font-mono); letter-spacing: .03em; text-transform: uppercase; color: var(--ink); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.ef-ep-ll__bar .ef-ep-pill { align-self: center; }
.ef-ep-ll__chips { padding: 12px 20px 14px; display: flex; flex-wrap: wrap; gap: 6px; border-bottom: 1px solid var(--a08); }
.ef-ep-ll__chip { display: inline-flex; align-items: center; gap: 8px; min-height: 34px; padding: 0 12px; border: 1px solid var(--a14); border-radius: var(--r-pill); background: #fff; color: var(--ink); font: 500 13px var(--font-sans); cursor: pointer; white-space: nowrap; }
.ef-ep-ll__chip.is-on { background: var(--ink); border-color: var(--ink); color: var(--on-dark); }
.ef-ep-ll__n { font-variant-numeric: tabular-nums; opacity: .75; }
.ef-ep-ll__dot { flex: none; width: 7px; height: 7px; border-radius: 50%; }
.ef-ep-ll__sel { padding: 14px 20px; background: var(--bg-app); border-bottom: 1px solid var(--a08); }
.ef-ep-ll__seltodo { font: 600 15px var(--font-sans); color: var(--ink); }
.ef-ep-ll__sel p { margin: 2px 0 0; font: 400 13px/1.5 var(--font-sans); color: var(--text-strong); text-wrap: pretty; }
.ef-ep-ll__nudge:empty { display: none; }
.ef-ep-ll__nudge { margin: 12px 20px; }
.ef-ep-ll__table { max-height: 620px; overflow: auto; font: 400 13px var(--font-sans); color: var(--text-strong); font-variant-numeric: tabular-nums; }
.ef-ep-ll__row { display: grid; grid-template-columns: 52px 100px 110px minmax(0, .8fr) minmax(0, 1.6fr); gap: 12px; align-items: center; padding: 9px 20px; border-bottom: 1px solid var(--a06, rgba(13,15,28,.06)); }
.ef-ep-ll__table.is-notype .ef-ep-ll__row { grid-template-columns: 52px 100px minmax(0, .7fr) minmax(0, 1.8fr); }
.ef-ep-ll__table.is-notype .ef-ep-ll__row > :nth-child(3) { display: none; }
.ef-ep-ll__row:hover:not(.ef-ep-ll__row--head) { background: var(--bg-app); }
/* A row opens its registrant's detail (2026-10-22). */
.ef-ep-ll__pending { margin: 0 20px 4px; padding: 10px 14px; border-radius: var(--r-item); background: var(--bg-app); font: 400 13px var(--font-sans); color: var(--ink); }
.ef-ep-ll__row.is-clickable { cursor: pointer; }
.ef-ep-ll__row.is-clickable:focus-visible { outline: 2px solid var(--accent, #FF8500); outline-offset: -2px; }
.ef-ep-ll__row.is-open { background: var(--bg-app); border-bottom-color: transparent; }
.ef-ep-ll__detail { padding: 4px 20px 18px 84px; background: var(--bg-app); border-bottom: 1px solid var(--a08); cursor: default; }
.ef-ep-ll__dcols { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, 1fr); gap: 24px; }
.ef-ep-ll__dcol { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.ef-ep-ll__dcol .ef-meta { margin: 0; }
.ef-ep-ll__d-action { display: flex; align-items: center; gap: 8px; margin: 0; color: var(--ink); font-weight: 500; }
.ef-ep-ll__d-foot { margin: 14px 0 0; font-size: 12px; }
.ef-ep-ll__row--head { position: sticky; top: 0; z-index: 1; background: #fff; padding-top: 10px; padding-bottom: 10px; border-bottom-color: var(--a08); font: 500 12px var(--font-sans); color: var(--text-muted); }
.ef-ep-ll__strong { font-weight: 500; color: var(--ink); }
.ef-ep-ll__action { display: flex; align-items: center; gap: 8px; min-width: 0; color: var(--ink); }
.ef-ep-ll__action > span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* Why on the list: one tag per signal, wrapping, so every reason reads in full (2026-10-22). */
.ef-ep-ll__why { display: flex; flex-wrap: wrap; gap: 4px 6px; color: var(--text-muted); }
.ef-ep-ll__reason { display: inline-block; max-width: 100%; padding: 2px 8px; border: 1px solid var(--a08); border-radius: 999px; background: var(--bg-app); font: 400 12px/1.4 var(--font-sans); color: var(--ink); overflow-wrap: anywhere; }
.ef-ep-ll__reason.is-more { color: var(--text-muted); cursor: help; }
/* Held back, bundle full (2026-10-20): on the ranked list, not in Swoogo. */
.ef-ep-ll__held { flex-shrink: 0; }
.ef-ep-ll__row.is-held .ef-ep-ll__strong { color: var(--text-muted); }
.ef-ep-ll__empty, .ef-ep-ll__loading { margin: 0; padding: 28px 20px; text-align: center; font: 400 14px var(--font-sans); color: var(--text-muted); }
.ef-ep-ll__loading { display: flex; justify-content: center; align-items: center; gap: 8px; }
@media (max-width: 640px) {
  .ef-ep-ll__count { margin-left: 0; }
  .ef-ep-ll__row, .ef-ep-ll__table.is-notype .ef-ep-ll__row { grid-template-columns: 44px minmax(0, 1fr) minmax(0, 1.2fr); }
  .ef-ep-ll__row > :nth-child(3) { display: none; }
  /* The reasons stay visible on a phone: their own line under the ID and the action. */
  .ef-ep-ll__row > :nth-child(5) { grid-column: 2 / -1; }
  .ef-ep-ll__row--head > :nth-child(5) { display: none; }
  .ef-ep-ll__detail { padding: 4px 16px 16px; }
  .ef-ep-ll__dcols { grid-template-columns: 1fr; gap: 14px; }
}

/* ── Event-day forecast (2026-10-21, live.js statRow / whoSection) ───────────────────────
   Four stat cards when the no-shows-on-event-day card is there (.ef-ep-stats--4): one row on a
   wide screen; the forecast card on its own row with three cards under it below 1400px (was
   1200: at 1300 the small cards were ~200px and every row wrapped, owner 2026-10-22); one column
   on a phone. A card that is still narrow stacks its rows: label, then value under it. The registration-type table gains two event-day columns and scrolls
   sideways inside its panel when it does not fit. */
.ef-ep-stats--4 { grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr)); }
.ef-ep-stat { container-type: inline-size; }
@container (max-width: 220px) {
  .ef-ep-stat__row { flex-direction: column; align-items: flex-start; gap: 0; }
  .ef-ep-stat__note { text-align: left; margin-top: 0; }
}
.ef-ep-stat__basis { text-wrap: pretty; }
/* ── Stat row as two panels (owner 2026-10-22, live.js statRow) ─────────────────────────────
   Your list on the left, the whole event beside it (owner 2026-10-22). Whole event, left to right: registered now → expected on the day → no-shows and attendees (one
   tinted box: the two parts of the expected total). Your list beside it. "about" is a small word in
   front of a number, never part of it. Below 1100px the panels stack; a narrow event panel turns its
   flow into a column with the arrows pointing down. */
.ef-ep-stats--split { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }   /* your list | whole event */
.ef-ep-panel { gap: 12px; box-shadow: none; container-type: inline-size; }
.ef-ep-panel__h { margin: 0; }
.ef-ep-flow { display: flex; align-items: stretch; gap: 10px; }
.ef-ep-step { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.ef-ep-step__label { font: 500 13px/1.3 var(--font-sans); color: var(--text-strong); }
.ef-ep-step .ef-ep-stat__big { margin-top: 4px; }
.ef-ep-step__line { font: 400 12px/1.45 var(--font-sans); color: var(--text-muted); font-variant-numeric: tabular-nums; }
.ef-ep-step__arrow { flex: none; align-self: center; font: 400 18px/1 var(--font-sans); color: var(--text-faint-dark); }
.ef-ep-dayparts { flex: 2 1 0; min-width: 0; display: flex; align-items: flex-start; gap: 16px; padding: 12px 14px; background: var(--bg-app); border-radius: var(--r-box); }
/* The steps outside the tinted box start as low as the ones inside it, so every label is on one line. */
.ef-ep-flow > .ef-ep-step { padding-top: 12px; }
.ef-ep-dayparts--early { flex: 1 1 0; }
.ef-ep-panel__basis { margin-top: auto; padding-top: 10px; border-top: 1px solid var(--a08); font: 400 12px var(--font-sans); color: var(--text-muted); }
.ef-ep-listhead { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.ef-ep-listhead .ef-ep-stat__big { margin-top: 0; }
.ef-ep-panel--list .ef-ep-stat__sentence { margin-top: 0; font-size: 18px; }
.ef-ep-panel .ef-ep-stat__foot { margin-top: auto; }
.ef-ep-stat__approx { font: 400 15px var(--font-sans); color: var(--text-muted); letter-spacing: 0; }
@container (max-width: 560px) {
  .ef-ep-flow { flex-direction: column; }
  .ef-ep-flow > .ef-ep-step { padding-top: 0; }
  .ef-ep-step__arrow { align-self: flex-start; transform: rotate(90deg); margin-left: 4px; }
}
@media (max-width: 1100px) {
  .ef-ep-stats--split { grid-template-columns: minmax(0, 1fr); }
}
.ef-ep-rtwrap { overflow-x: auto; }
.ef-ep-rttable--day th:nth-child(n+2), .ef-ep-rttable--day td:nth-child(n+2) { width: auto; padding-left: 12px; text-align: right; }
.ef-ep-rttable--day td:nth-child(n+2) { white-space: nowrap; }
@media (max-width: 1400px) {
  .ef-ep-stats--4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ef-ep-stats--4 .ef-ep-stat--wide { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .ef-ep-stats--4 { grid-template-columns: 1fr; }
}

/* ── New ranking, not in Swoogo yet (2026-10-22, live.js pendingCard / pendingListNote) ──────
   The review-and-push card at the top of Overview, its one-line form after "Not now", and the
   note over the list tab. Numbers keep the normal number weight (.ef-num, never bold). */
.ef-ep-pendinghost:empty { display: none; }
.ef-ep-pendinghost { margin: 0 0 16px; }
.ef-ep-pending { display: grid; gap: 10px; border-left: 3px solid var(--warn-dot); }
.ef-ep-pending .ef-title:focus { outline: none; }
.ef-ep-pending__head .ef-eyebrow { margin: 0 0 4px; }
.ef-ep-pending__head .ef-meta { margin: 4px 0 0; }
.ef-ep-pending__change, .ef-ep-pending__places, .ef-ep-pending__nightly { margin: 0; }
.ef-ep-pending__places { font: 400 14px var(--font-sans); color: var(--text-strong); }
.ef-ep-pending .ef-ep-bundle { margin: 0; }
.ef-ep-pending__actions { display: grid; gap: 8px; }
.ef-ep-pending__actions .ef-meta { margin: 0; }
.ef-ep-pending--min { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 10px 14px; border-radius: 12px; background: var(--bg-app); }
.ef-ep-pending__minline { font: 400 14px var(--font-sans); color: var(--text-strong); }
.ef-ep-pending__review { padding: 0; border: 0; background: none; font: 500 14px var(--font-sans); color: var(--ink); text-decoration: underline; cursor: pointer; }
.ef-ep-pending-list { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 0 12px; }
.ef-ep-pending-list .ef-meta { margin: 0; }

/* ── What if your list were a different size? (owner 2026-10-26, live.js whatIfCard) ──────
   Display only, in the Overview main column under "How is this developing?". Two parts: size, slider
   and marks left; figures, difference and split note right. The track is the results page's
   (.ef-range, flow.css) with a solid tick at the list now and a dashed one at our suggested size
   (the results page's suggested mark). Numbers keep the number weight (.ef-num, never bold). */
.ef-ep-devrow { container: ef-devrow / inline-size; }
.ef-ep-wi { container: ef-wi / inline-size; gap: 16px; box-shadow: none; }
.ef-ep-wi__head .ef-eyebrow { margin: 0 0 4px; }
.ef-ep-wi__head .ef-title { margin: 0; }
.ef-ep-wi__head .ef-meta { margin: 4px 0 0; }
.ef-ep-wi__body { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px 32px; align-items: start; }
.ef-ep-wi__pick, .ef-ep-wi__figs { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.ef-ep-wi__figs { padding-left: 32px; border-left: 1px solid var(--a08); }
.ef-ep-wi__size { margin: 0; font: 400 15px var(--font-sans); color: var(--text-strong); }
.ef-ep-wi__size .ef-num { font: var(--fw-number) 24px/1.15 var(--font-display); letter-spacing: -.01em; }
/* Centred on the track: 6px track at top 11px (phone: 26px), a 16px tick; the suggested one taller and dashed. */
.ef-ep-wi__tick { position: absolute; top: 6px; height: 16px; width: 0; margin-left: -1px; pointer-events: none; }
.ef-ep-wi__tick.is-now { border-left: 2px solid var(--ink); }
.ef-ep-wi__tick.is-sug { top: 3px; height: 22px; border-left: 1.5px dashed var(--text-muted); }
.ef-ep-wi__axis { display: grid; gap: 6px; font: 400 13px var(--font-sans); color: var(--text-strong); }
.ef-ep-wi__mark { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 12px; min-height: 24px; }
.ef-ep-wi__marklabel { display: inline-flex; align-items: center; gap: 8px; }
.ef-ep-wi__key { width: 0; height: 12px; }
.ef-ep-wi__mark.is-now .ef-ep-wi__key { border-left: 2px solid var(--ink); }
.ef-ep-wi__mark.is-sug .ef-ep-wi__key { height: 14px; border-left: 1.5px dashed var(--text-muted); }
.ef-ep-wi__go { min-height: 24px; padding: 0; border: 0; background: none; font: 500 13px var(--font-sans); color: var(--ink); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.ef-ep-wi__dl { margin: 0; font-size: 14px; gap: 8px 16px; }
.ef-ep-wi__dl dt { color: var(--text-strong); }
.ef-ep-wi__diff { margin: 0; font: 400 14px/1.5 var(--font-sans); color: var(--ink); font-variant-numeric: tabular-nums; }
.ef-ep-wi__large { padding: 10px 12px; border-radius: var(--r-item); border: 1px solid var(--warn-border); background: var(--bg-note); font: 400 13px/1.5 var(--font-sans); color: var(--text-strong); font-variant-numeric: tabular-nums; }
.ef-ep-wi__large p { margin: 0; }
.ef-ep-wi__large .ef-ep-wi__largehead { font-weight: 500; color: var(--ink); }
.ef-ep-wi__large .ef-ep-wi__largerow { margin-top: 2px; }
.ef-ep-wi__note { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; padding-top: 12px; border-top: 1px solid var(--a08); }
.ef-ep-wi__note p { margin: 0; font: 400 13px/1.5 var(--font-sans); color: var(--text-muted); }
.ef-ep-wi__note .ef-num { color: var(--text-muted); }
/* One column: when the aside has wrapped under the main column (the dev row is narrower than
   main 520 + gap 24 + aside 340), when the card itself is narrow, and on a phone. */
@container ef-devrow (max-width: 883px) {
  .ef-ep-wi__body { grid-template-columns: minmax(0, 1fr); }
  .ef-ep-wi__figs { padding: 14px 0 0; border-left: 0; border-top: 1px solid var(--a08); }
}
@container ef-wi (max-width: 640px) {
  .ef-ep-wi__body { grid-template-columns: minmax(0, 1fr); }
  .ef-ep-wi__figs { padding: 14px 0 0; border-left: 0; border-top: 1px solid var(--a08); }
}
@media (max-width: 640px) {
  .ef-ep-wi__body { grid-template-columns: minmax(0, 1fr); }
  .ef-ep-wi__figs { padding: 14px 0 0; border-left: 0; border-top: 1px solid var(--a08); }
  .ef-ep-wi__tick { top: 21px; }
  .ef-ep-wi__tick.is-sug { top: 18px; }
}

/* "How is this developing?" (2026-10-26): the line, full width (2026-10-28) */
.ef-ep-chart__anchor { fill: transparent; stroke: none; }
.ef-ep-chart__soon { margin: 2px 0 0; }
.ef-ep-chart__tip span { display: block; }

/* Upgrade nudges (owner 2026-10-27): a calm note in the card it is about, the What if note's look.
   Developing card: many joined the list. What if: our suggested size catches more. Paid: few places left. */
.ef-ep-churn, .ef-ep-wi__nudge, .ef-ep-paid__low {
  padding: 10px 12px; border-radius: var(--r-item); border: 1px solid var(--warn-border); background: var(--bg-note);
  font: 400 13px/1.5 var(--font-sans); color: var(--text-strong); font-variant-numeric: tabular-nums;
}
.ef-ep-churn { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin: 10px 20px 0; }
.ef-ep-churn p, .ef-ep-wi__nudge p { margin: 0; }
.ef-ep-wi__nudge { margin-top: 10px; }
.ef-ep-paid__low { margin: 8px 0 0; }
.ef-ep-churn__go, .ef-ep-wi__nudgego { min-height: 24px; padding: 0; border: 0; background: none; font: 500 13px var(--font-sans); color: var(--ink); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.ef-ep-wi__nudgego { margin-top: 4px; }

/* The question after Refresh now (owner 2026-10-28): what the push changes, at a glance. New in the
   orange and leaving in the grey of "Changes to your list"; staying in a quiet ink. Numbers 500. */
.ef-ep-ask { display: flex; flex-direction: column; gap: 10px; margin: 0 0 14px; }
.ef-ep-ask__meta { margin: 0; }
.ef-ep-ask__total { margin: 0; font: 400 15px/1.4 var(--font-sans); color: var(--text-strong); }
.ef-ep-ask__total .ef-num, .ef-ep-ask__rowhead .ef-num { font-weight: 500; }
.ef-ep-ask__bar { display: flex; gap: 2px; height: 10px; border-radius: var(--r-bar); background: var(--a08); overflow: hidden; }
.ef-ep-ask__seg { display: block; height: 100%; min-width: 3px; }
.ef-ep-ask__seg.is-stay { background: var(--ink); opacity: .22; }
.ef-ep-ask__seg.is-new { background: var(--orange); opacity: .75; }
.ef-ep-ask__rows { list-style: none; margin: 2px 0 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.ef-ep-ask__row { display: flex; align-items: flex-start; gap: 10px; }
.ef-ep-ask__dot { flex: none; width: 10px; height: 10px; margin-top: 5px; border-radius: 3px; }
.ef-ep-ask__row.is-new .ef-ep-ask__dot { background: var(--orange); opacity: .75; }
.ef-ep-ask__row.is-left .ef-ep-ask__dot { background: transparent; border: 1.5px dashed var(--text-muted); }
.ef-ep-ask__row.is-stay .ef-ep-ask__dot { background: var(--ink); opacity: .22; }
.ef-ep-ask__rowtext { display: flex; flex-direction: column; gap: 1px; }
.ef-ep-ask__rowhead { font: 400 14px/1.4 var(--font-sans); color: var(--text-strong); }
.ef-ep-ask__places { padding: 10px 12px; border-radius: var(--r-item); background: var(--bg-note); font: 400 13px/1.5 var(--font-sans); color: var(--text-strong); }
.ef-ep-ask__places .ef-num { font-weight: 500; }
.ef-ep-ask__meter { height: 6px; margin-top: 6px; border-radius: var(--r-bar); background: var(--a08); overflow: hidden; }
.ef-ep-ask__meter span { display: block; height: 100%; background: var(--orange); opacity: .6; }
.ef-ep-ask__meter span.is-full { opacity: 1; }
.ef-ep-ask__held { margin: 6px 0 0; }

/* Refresh table: the newest 5, "Show all" under it (owner 2026-10-28). The link look of "Review and push". */
.ef-ep-rtable__foot { display: flex; justify-content: center; padding: 10px 20px 14px; border-top: 1px solid var(--a08); }
.ef-ep-rtable__more { min-height: 32px; padding: 0 8px; border: 0; background: none; font: 500 13px var(--font-sans); color: var(--ink); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }

/* Who answered the confirm email (2026-10-29): the picked field, the counts and the field picker. */
.ef-ep-confirm__answers { display: grid; gap: 8px; margin-top: 16px; }
.ef-ep-confirm__counts { margin: 0; font-weight: 500; }
.ef-ep-confirm__ansacts { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.ef-ep-confirm__picker { display: grid; gap: 8px; max-width: 420px; }
.ef-ep-confirm__picker select { width: 100%; }
/* What is inside the confirm email, on its plan card (2026-10-29). */
.ef-ep-pbcard__inside { display: flex; flex-direction: column; gap: 6px; margin-top: 6px; }
.ef-ep-pbcard__chips { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.ef-ep-pbcard__insidek { font: 400 13px/1.4 var(--font-sans); color: var(--text-muted); }
.ef-ep-pbcard__chip { font: 500 12px/1.3 var(--font-sans); padding: 3px 8px; border: 1px dashed #E3A660; border-radius: 999px; background: var(--bg-peach); color: var(--text); }
/* The confirm email in the side panel (2026-10-29): one card per part, the text to copy in each. */
.ef-ep-pbinside { display: grid; gap: 8px; margin: 4px 0 14px; }
.ef-ep-pbinside__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.ef-ep-pbinside__offk { margin-top: 10px; }
.ef-ep-pbpart { border: 1px solid #EBDDCB; border-left: 3px solid #E3A660; border-radius: 12px; background: var(--bg-card); }
.ef-ep-pbpart__inner { display: grid; gap: 6px; padding: 0 14px 12px; }
.ef-ep-pbpart.is-off { border-style: dashed; border-left: 1px dashed #E3A660; background: transparent; }
.ef-ep-pbpart__head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 10px 14px; cursor: pointer; list-style: none; border-radius: 12px; }
.ef-ep-pbpart__head::-webkit-details-marker { display: none; }
.ef-ep-pbpart__head:focus-visible { outline: 2px solid #E3A660; outline-offset: 2px; }
.ef-ep-pbpart__chev { width: 8px; height: 8px; border-right: 1.5px solid var(--text-muted); border-bottom: 1.5px solid var(--text-muted); transform: rotate(45deg); margin: 0 2px 3px 4px; transition: transform .15s ease; }
.ef-ep-pbpart__d[open] .ef-ep-pbpart__chev { transform: rotate(-135deg); margin-bottom: -3px; }
.ef-ep-pbpart__name { font: 500 15px/1.35 var(--font-sans); color: var(--text); }
.ef-ep-pbpart__n { margin-left: auto; font: 400 13px/1.4 var(--font-sans); color: var(--text-muted); }
.ef-ep-pbpart__why, .ef-ep-pbpart__how { margin: 0; font: 400 13px/1.45 var(--font-sans); color: var(--text-muted); }
.ef-ep-pbpart__how { font-size: 12px; }
.ef-ep-pbpart__cond { justify-self: start; }
.ef-ep-pbpart__mail { margin-top: 2px; }
.ef-ep-pbpart__body { display: grid; gap: 8px; padding: 10px 12px; }
/* Coming up (2026-10-29): steps that wait on the confirm email, shown so the plan reads as a sequence. */
.ef-ep-pb__tile.is-waiting .ef-ep-pb__dot { border-style: dashed; color: var(--text-muted); }
.ef-ep-pb__tile.is-waiting .ef-ep-pb__tilet { color: var(--text-muted); }
.ef-ep-pb__tile.is-waiting .ef-ep-pb__tilestate { background: none; border: 1px dashed var(--a18); color: var(--text-muted); }
.ef-ep-pbcard.is-waiting { background: none; border-style: dashed; }
.ef-ep-pbcard.is-waiting .ef-ep-pbcard__title { color: var(--text-muted); }
.ef-ep-pb__step.is-waiting .ef-ep-pb__steph { color: var(--text-muted); }
/* Free seats on the event day (2026-10-29): the count, the table, the copy for the door team. */
.ef-ep-free { display: grid; gap: 10px; margin-top: 12px; }
.ef-ep-free__table td:nth-child(n+3), .ef-ep-free__table th:nth-child(n+3) { text-align: right; font-variant-numeric: tabular-nums; }
.ef-ep-free blockquote { white-space: pre-line; }
/* Step 1, what you offer (2026-11-02): the offers with their quote, the travel band, what it adds. */
.ef-ep-offers { display: grid; gap: 10px; margin: 0; padding: 0; border: 0; min-width: 0; }
.ef-ep-offers__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px 12px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 400px), 1fr)); align-items: start; }
.ef-ep-offers__item { display: grid; gap: 4px; }
/* Who a choice reaches (2026-11-02): one quiet line under the chip, aligned with the quote line. */
.ef-ep-offers__reach { margin: 0 0 0 12px; font: 400 12px/1.45 var(--font-sans); color: var(--text-muted); }
/* The livestream is not an offer to come: it starts its own row, after the offers. */
.ef-ep-offers__item--apart { grid-column: 1 / -1; padding-top: 8px; border-top: 1px solid var(--a10); }
.ef-ep-offers__travel { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; margin-top: 2px; }
.ef-ep-offers__travel .ef-ep-pbset__privacy[open] { flex-basis: 100%; }
.ef-ep-offers__alone { display: grid; gap: 10px; margin-top: 4px; padding-top: 12px; border-top: 1px solid var(--a10); }
.ef-ep-scan__moreabout { margin-top: 14px; }
.ef-ep-scan__moreabout > summary { cursor: pointer; font: 500 13px/1.4 var(--font-sans); color: var(--text-muted); }
.ef-ep-scan__moreabout > ul { margin-top: 10px; }
