/* Estimator App - Shelter-Builder-style layout, One Day Trim palette (vars from styles.css) */
.est-app{--line:#e4dacd;--line2:#cfc2b1;--soft:#2f5d5014;--bad:#a12}
.est-app .hero.sub{background:radial-gradient(1200px 400px at 20% -10%,#2f5d501f,transparent),var(--band);color:var(--ink);border-bottom:1px solid var(--line)}
.est-app .hero.sub h1{color:var(--ink);letter-spacing:-.02em;font-weight:800}
.est-app .hero .lead{color:var(--muted)}
.est-app .calc-band{background:var(--bg);padding-bottom:6rem}
.est-app #estApp{max-width:820px}
.est-app .est-progress{display:flex;gap:.5rem;list-style:none;padding:0;margin:0 0 1.25rem}
.est-app .est-progress li{flex:1;font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.est-app .est-progress li::before{content:"";display:block;height:6px;border-radius:99px;background:var(--line);margin-bottom:.4rem;transition:background .35s}
.est-app .est-progress li.done{background:none;padding:0;border-radius:0}
.est-app .est-progress li.done::before{background:var(--acc)}
.est-app .est-progress li.cur{color:var(--ink);font-weight:700}
.est-app .est-progress li.cur::before{background:linear-gradient(90deg,var(--acc),var(--acc2))}
.est-app .est-step{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1.5rem;box-shadow:0 14px 40px rgba(43,38,33,.08);animation:estIn .35s ease}
@keyframes estIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.est-app .est-step{animation:none}}
.est-app .est-step h2{color:var(--ink);font-size:1.35rem;letter-spacing:-.01em;margin-top:0}
.est-app .est-step h2:focus{outline:none}
.est-app .note,.est-app legend,.est-app small{color:var(--muted)}
.est-app legend{font-weight:700;color:var(--ink)}
.est-app .est-choice{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.est-app .est-choice .btn small{display:block;font-weight:500;color:var(--muted);margin-top:.3rem}
.est-app .est-choice .btn,.est-app .est-choice .btn.primary{background:var(--bg);color:var(--ink);border:1px solid var(--line2);border-radius:14px;padding:1.6rem 1rem;font-size:1.15rem;font-weight:700;text-align:left;transition:transform .15s,border-color .2s,background .2s,box-shadow .2s}
.est-app .est-choice .btn.primary{border-color:var(--acc)}
.est-app .est-choice .btn:hover,.est-app .est-choice .btn:focus-visible{border-color:var(--acc);background:#fff;box-shadow:0 0 0 3px var(--soft);transform:translateY(-2px)}
.est-app .btn{border-radius:10px;font-weight:700;min-height:44px;transition:background .2s,transform .15s}
.est-app .btn.primary{background:var(--acc);border:2px solid var(--acc);color:#fff}
.est-app .btn.primary:hover{background:#244a40;transform:translateY(-1px)}
.est-app .btn.ghost{background:#fff;color:var(--acc);border:2px solid var(--acc)}
.est-app .btn.ghost:hover{background:var(--soft)}
.est-app .group,.est-app fieldset{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:1rem;margin:0 0 1rem}
.est-app label{color:var(--ink)}
.est-app select,.est-app input[type=number],.est-app input[type=file]{background:#fff;color:var(--ink);border:1px solid #bfb3a3;border-radius:8px;padding:.6rem;min-height:44px;font:inherit}
.est-app select:focus,.est-app input:focus{outline:3px solid #f2b84b;outline-offset:1px}
.est-app input[type=checkbox]{accent-color:var(--acc);width:20px;height:20px}
.est-app .est-diagram{background:var(--band);border-radius:12px;padding:1rem;border:1px solid var(--line)}
.est-app .est-diagram svg{background:#fff;border-radius:8px}
.est-app .link,.est-app .est-step a{color:var(--acc)}
.est-app .big-num{font-size:clamp(2.2rem,7vw,3.4rem);font-weight:800;color:var(--acc);letter-spacing:-.02em;margin:.25rem 0}
.est-app #estResult{background:linear-gradient(135deg,#b8743a14,transparent),#fff;border:1px solid #b8743a59;border-radius:14px;padding:1.25rem}
.est-app .placeholder-flag{background:#fbefe2;color:#7a4a1f;border:1px solid #e3c39f;border-radius:10px}
.est-app .errors{color:var(--bad)}
.est-app .notice{color:var(--ink)}
.est-app .next{display:flex;gap:.75rem;flex-wrap:wrap}
@media (max-width:600px){.est-app .est-choice{grid-template-columns:1fr}.est-app .est-step{padding:1.1rem}.est-app .est-progress li{font-size:.68rem}}
