/* Ballpark estimator (engine module `estimator`; runtime: estimator.js). Palette/theme tokens only
   (--ink, --muted, --line, --card, --card-hover, --soft, --dark, --dark-ink, --dark-muted, --dark-panel,
   --dark-line, --accent, --accent-deep, --button, --radius, --font-display, --font-body), so every
   theme and palette restyles it. `dark:true` swaps the card to the dark band tokens. */
.est{--est-surface:var(--card,#fff);--est-ink:var(--ink);--est-muted:var(--muted);--est-line:var(--line);--est-hover:var(--card-hover,var(--card));
 --est-soft:var(--soft,var(--panel));--est-strong:var(--accent-deep);--est-r:var(--radius,12px);
 --est-mono:ui-monospace,'SFMono-Regular','SF Mono',Menlo,Consolas,'Liberation Mono',monospace;
 display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);grid-template-areas:'intro card' 'aside card';grid-template-rows:auto 1fr;gap:0 clamp(40px,6vw,96px);align-items:start}
.est-dark{--est-surface:var(--dark-panel);--est-ink:var(--dark-ink);--est-muted:var(--dark-muted);--est-line:var(--dark-line);--est-hover:rgb(255 255 255 / .045);--est-soft:rgb(255 255 255 / .06);--est-strong:var(--accent)}
.est [hidden]{display:none!important}
.est .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* intro column */
.est-intro{grid-area:intro;padding-top:6px}
.est-title{font-size:clamp(34px,3.7vw,54px);line-height:1.08;letter-spacing:-.02em;margin:16px 0 18px}
.est .est-lead{margin:0;max-width:30em;color:var(--est-muted);font-size:17px;line-height:1.7}
.est-aside{grid-area:aside}
.est-how{list-style:none;margin:34px 0 0;padding:0;border-top:1px solid var(--est-line);max-width:26em}
.est-how li{display:flex;align-items:baseline;gap:16px;padding:15px 0;border-bottom:1px solid var(--est-line);font-weight:600;font-size:15.5px}
.est-how b{font:600 11px/1 var(--est-mono);letter-spacing:.14em;color:var(--est-strong)}
.est .est-talk{margin:22px 0 0;font-size:15px;line-height:1.6;color:var(--est-muted)}
.est-talk a{color:var(--est-ink);font-weight:700;text-underline-offset:4px}

/* card */
.est-card{grid-area:card;position:relative;min-width:0;box-sizing:border-box;background:var(--est-surface);color:var(--est-ink);border:1px solid var(--est-line);border-radius:calc(var(--est-r) * 1.34);
 padding:26px 30px 18px;box-shadow:0 30px 60px -38px rgb(var(--dark-rgb,14 16 18) / .42);scroll-margin-top:16px}
.est-form{margin:0;padding:0;border:0;background:none}
.est-stage{outline:none}
/* the site's global button hover (scale 1.04 + accent fill) is wrong for full-width option cards and text buttons */
.est .est-opt:not(:disabled):hover,.est .est-back:hover,.est .est-restart:hover,.est .est-copy:hover{transform:none}
.est .est-back:hover,.est .est-restart:hover,.est .est-copy:hover{background:none}

/* progress: mono step label + thin bar */
.est-progress{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 16px;margin:0 0 24px}
.est-steplabel{font:600 11px/1 var(--est-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--est-strong)}
.est-bar{flex:1 0 100%;height:3px;border-radius:2px;background:var(--est-line);overflow:hidden}
.est-bar i{display:block;height:100%;width:4%;background:var(--accent);transition:width .4s cubic-bezier(.2,.7,.2,1)}

/* "your ballpark" pill (after the ballpark screen) */
.est-pill{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 20px;padding:9px 10px 9px 16px;border-radius:999px;background:var(--dark);color:var(--dark-ink);border:1px solid var(--dark-line)}
.est-dark .est-pill{background:rgb(0 0 0 / .35)}
.est-pill span{font:600 10px/1 var(--est-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--dark-muted)}
.est-pill b{padding:6px 12px;border-radius:999px;background:rgb(255 255 255 / .08);font:600 14px/1.1 var(--font-display),Arial,sans-serif;font-variant-numeric:tabular-nums;white-space:nowrap}

/* question screens */
.est-crumb{margin:0 0 10px;font:600 10.5px/1.6 var(--est-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--est-muted);overflow-wrap:anywhere}
.est .est-q{margin:0 0 4px;font-family:var(--font-display),Arial,sans-serif;font-size:clamp(22px,2.1vw,27px);font-weight:600;line-height:1.22;letter-spacing:-.01em;color:var(--est-ink)}
.est .est-help{margin:6px 0 0;color:var(--est-muted);font-size:15px;line-height:1.55}
.est-options{display:grid;gap:10px;margin:20px 0 0}
.est-opt{appearance:none;-webkit-appearance:none;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;width:100%;min-height:62px;box-sizing:border-box;margin:0;
 padding:13px 14px 13px 20px;text-align:left;font:inherit;color:var(--est-ink);background:var(--est-surface);border:1px solid var(--est-line);border-radius:var(--est-r);cursor:pointer;
 -webkit-tap-highlight-color:transparent;transition:border-color .15s,background-color .15s,box-shadow .15s,transform .12s}
.est-opt-text{min-width:0}
.est-opt-label{display:block;font-weight:700;font-size:16.5px;line-height:1.3}
.est-opt-sub{display:block;margin-top:3px;font-size:14px;line-height:1.4;color:var(--est-muted)}
.est-chev{width:20px;height:20px;color:var(--est-muted);transition:transform .15s,color .15s}
.est-opt:hover{border-color:var(--est-ink);background:var(--est-hover)}
.est-opt:hover .est-chev{transform:translateX(3px);color:var(--est-strong)}
.est-opt:active{transform:scale(.99)}
.est-opt[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 4px 0 0 var(--accent);background:var(--est-hover)}
.est-opt[aria-pressed=true] .est-chev{color:var(--accent)}
.est .est-opt:focus-visible,.est-back:focus-visible,.est-restart:focus-visible,.est-copy:focus-visible,.est-card .btn:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.est-legal{display:flex;gap:10px;align-items:flex-start;margin:16px 0 0;padding:13px 15px;border-radius:calc(var(--est-r) * .8);background:var(--est-soft);font-size:13.5px;line-height:1.55;color:var(--est-ink)}
.est-legal svg{flex:none;width:18px;height:18px;margin-top:1px;color:var(--est-strong)}

/* ballpark readout */
.est-readout{container-type:inline-size;position:relative;margin:4px 0 0;padding:20px 24px 18px;border-radius:var(--est-r);background:var(--dark);color:var(--dark-ink);border:1px solid var(--dark-line);overflow:hidden}
.est-dark .est-readout{background:rgb(0 0 0 / .4)}
.est-readout::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent)}
.est-readout-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;min-height:22px}
.est .est-readout-label{margin:0;font:600 11px/1 var(--est-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--dark-muted)}
.est-readout .needs{font-size:10px}
.est-figure{margin:16px 0 10px;font-family:var(--font-display),Arial,sans-serif;font-weight:600;font-size:min(62px,calc(100cqi / (var(--est-len,11) * .74)));line-height:1.02;letter-spacing:-.025em;
 font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--dark-ink)}
.est-dash{color:var(--accent);font-weight:400}
.est-figure-quote{white-space:normal;font-size:clamp(24px,7.4cqi,34px);line-height:1.15;letter-spacing:-.015em}
.est-readout .est-typical{margin:-2px 0 10px;font-size:15px;font-weight:600;color:var(--dark-ink)}
.est-readout .est-for,.est-readout .est-rulenote{margin:0 0 4px;font-size:13.5px;line-height:1.5;color:var(--dark-muted)}
.est-readout .est-fine{margin:12px 0 0;padding-top:12px;border-top:1px solid var(--dark-line);font-size:13px;line-height:1.5;color:var(--dark-muted)}
.est .est-disclaimer{margin:12px 0 0;font-size:13px;line-height:1.5;color:var(--est-muted)}
.est .est-ask{margin:22px 0 0;font-weight:700;font-size:16px;color:var(--est-ink)}
.est-choices{grid-template-columns:1fr 1fr;margin-top:12px}
.est-choices .est-opt{min-height:58px;padding-left:18px}

/* name + note */
.est-field{margin:18px 0 0}
.est .est-field label{display:block;margin:0 0 7px;font-size:14px;font-weight:700;letter-spacing:0;color:var(--est-ink)}
.est-optional{font-weight:500;color:var(--est-muted)}
.est .est-field input,.est .est-field textarea{display:block;width:100%;box-sizing:border-box;min-height:56px;margin:0;padding:14px 16px;font:inherit;font-size:17px;line-height:1.4;color:var(--est-ink);
 background:var(--est-surface);border:1px solid var(--est-line);border-radius:calc(var(--est-r) * .8);box-shadow:none}
.est .est-field textarea{min-height:96px;resize:vertical}
.est .est-field input:focus-visible,.est .est-field textarea:focus-visible{outline:3px solid var(--accent);outline-offset:1px;border-color:var(--est-ink)}
.est .est-field [aria-invalid=true]{border-color:var(--accent-deep)}
.est .est-err{margin:7px 0 0;font-size:13.5px;font-weight:700;color:var(--est-strong)}
.est .est-go{width:100%;margin-top:22px;gap:10px;min-height:58px}
.est-go .est-chev,.est-actions .btn svg{color:currentColor}

/* final screen */
.est-summary{margin:20px 0 0;border-top:1px solid var(--est-line)}
.est-summary div{display:grid;grid-template-columns:minmax(0,10.5em) minmax(0,1fr);gap:4px 18px;padding:11px 0;border-bottom:1px solid var(--est-line)}
.est-summary dt{padding-top:3px;font:600 10.5px/1.6 var(--est-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--est-muted)}
.est-summary dd{margin:0;font-weight:600;font-size:15.5px;line-height:1.45;overflow-wrap:anywhere}
.est-actions{display:grid;grid-template-columns:1.35fr 1fr;gap:10px;margin:22px 0 0}
.est .est-actions .btn{width:100%;min-height:58px;gap:10px;padding:14px 18px;box-sizing:border-box}
.est-actions .btn svg{flex:none;width:20px;height:20px}
.est .est-call{background:transparent;color:var(--est-ink);border:1px solid var(--est-line)}
.est .est-call:hover{border-color:var(--est-ink)}
.est .est-desk{display:none;margin:14px 0 0;font-size:14px;line-height:1.6;color:var(--est-muted)}
.est-desk b{color:var(--est-ink);font-weight:700;white-space:nowrap}
.est-copy{appearance:none;margin:0 0 0 6px;padding:2px 0;background:none;border:0;font:inherit;font-weight:700;color:var(--est-strong);text-decoration:underline;text-underline-offset:4px;cursor:pointer}
@media(hover:hover) and (pointer:fine){.est .est-desk{display:block}}
.est .est-draftnote{margin:12px 0 0;font-size:12.5px;line-height:1.5;color:var(--est-muted)}

/* back / start over */
.est-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;margin-top:14px;border-top:1px solid var(--est-line);padding-top:6px}
.est-back,.est-restart{appearance:none;display:inline-flex;align-items:center;gap:4px;min-height:44px;margin:0;padding:8px 6px 8px 0;background:none;border:0;font:inherit;font-weight:700;font-size:14.5px;color:var(--est-ink);cursor:pointer}
.est-back svg{width:18px;height:18px}
.est-restart{margin-left:auto;padding:8px 0 8px 6px;font-weight:600;color:var(--est-muted);text-decoration:underline;text-underline-offset:4px}
.est-back:hover,.est-restart:hover{color:var(--est-strong)}
.est-noscript{margin:16px 0 0;font-size:15px}

@media(max-width:1049px){
 .est{grid-template-columns:minmax(0,1fr);grid-template-areas:'intro' 'card' 'aside';grid-template-rows:none}
 .est-intro{max-width:640px}.est-card{max-width:720px}.est-how{margin-top:30px}
 .est-title{font-size:clamp(32px,6vw,46px)}.est .est-lead{margin-bottom:30px}
}
@media(max-width:760px){
 .est-title{font-size:34px;margin:12px 0 12px}.est .est-lead{font-size:15.5px;line-height:1.6;margin-bottom:22px}
 .est-card{padding:20px 18px 12px;border-radius:var(--est-r)}
 .est-progress{margin-bottom:20px}
 .est .est-q{font-size:21px}
 .est-opt{padding:12px 12px 12px 16px;min-height:60px}
 .est-opt-label{font-size:16px}.est-opt-sub{font-size:13.5px}
 .est-readout{padding:18px 18px 16px}
 .est-summary div{grid-template-columns:minmax(0,7.4em) minmax(0,1fr);gap:4px 12px}
 .est-summary dd{font-size:15px}
 .est-actions{grid-template-columns:minmax(0,1fr)}
 .est-choices .est-opt{grid-template-columns:minmax(0,1fr);min-height:56px;padding:12px 14px;text-align:center}.est-choices .est-chev{display:none}
 .est-how{display:none}.est .est-talk{margin-top:18px}
}
@media(prefers-reduced-motion:reduce){.est-opt,.est-chev,.est-bar i{transition:none}.est-opt:active{transform:none}.est-opt:hover .est-chev{transform:none}}
