/* Estimator quality-of-life layer. Loads AFTER the estimator's own inline styles.
   Purely presentational: none of the pricing logic lives here. */

/* 1. Continue / Submit buttons stay visible but faded until the page is complete. */
.rb-btn.hidden-btn{ display:inline-flex; opacity:.4; cursor:not-allowed; filter:saturate(.6); box-shadow:none; }
.rb-btn.hidden-btn:hover{ transform:none; }
.rb-btn:not(.hidden-btn){ transition:opacity .2s, filter .2s; }
.rb-btn[disabled]{ pointer-events:auto; } /* keep the not-allowed cursor + tooltip */

/* 2. Step indicator */
.qol-progress{ width:94%; max-width:1400px; margin:20px auto 4px; padding:0 6.5%; box-sizing:border-box; }
.qol-progress .txt{ font-size:14px; font-weight:700; color:var(--rb-teal); margin-bottom:8px; letter-spacing:.02em; }
.qol-progress .txt span{ font-weight:500; color:#5a6467; }
.qol-progress .bar{ height:6px; background:#e4e4e1; border-radius:6px; overflow:hidden; }
.qol-progress .bar i{ display:block; height:100%; width:0; background:var(--rb-accent); border-radius:6px; transition:width .3s; }

/* 3. Readable small print */
.need-card p{ font-size:14px; }
.sheet-swatch p, .field-hint, .carpenter-card .cmeta, .ipanel dt, .ipanel dd{ font-size:14px; }
.disclosure{ font-size:14px; color:#5f6a6c; }
.swatch-btn span{ font-size:12.5px; }
.icap{ font-size:11.5px; }
.level-card p{ font-size:15px; color:#4f585a; }
.level-card p.level-for{ font-size:14.5px; }
.demo-banner{ font-size:13.5px; }
#resultIntro{ font-size:15.5px !important; color:#4f585a !important; }
.rb-label{ font-size:15px; }

/* 4. Result actions */
.qol-actions{ margin-top:22px; display:flex; gap:12px; flex-wrap:wrap; align-items:center; }
.qol-actions .rb-btn{ font-size:15px; }
.qol-note{ margin-top:10px; font-size:13.5px; color:#5f6a6c; }

/* "i" on each price band, with a short explanation underneath */
.tier-card{ position:relative; }
.tier-card .tier-i{ position:absolute; top:10px; right:10px; width:26px; height:26px; margin:0; border-color:rgba(255,255,255,.75); color:#fff; font-size:14px; }
.tier-card .tier-i:hover{ background:#fff; color:#161d1f; border-color:#fff; }
.tier-card .tier-i[aria-expanded="true"]{ background:#fff; color:#161d1f; border-color:#fff; }
.ipanel[hidden]{ display:none; }
#tierInfo{ margin:12px 0 4px; }
#tierInfo h4{ margin:0 0 4px; }

/* The printable / saveable estimate letter (built by estimator-qol.js when "Print" is used) */
.est-letter{ display:none; }
@media print{
  @page{ margin:0; }
  body > *:not(#estLetter){ display:none !important; }
  body{ background:#fff !important; }
  .est-letter{ display:block; padding:16mm 18mm; color:#161d1f; font-family:'Segoe UI', Arial, sans-serif; font-size:11pt; line-height:1.45; background:#fff; }
}
.est-letter .el-head{ display:flex; align-items:center; justify-content:space-between; gap:18px; }
.est-letter .el-logo{ height:54px; width:auto; }
.est-letter .el-co{ text-align:right; font-size:8.5pt; line-height:1.4; color:#3d4749; }
.est-letter .el-co b{ font-size:10.5pt; color:#1B505B; }
.est-letter .el-rule{ height:3px; background:#1B505B; margin:10px 0 18px; }
.est-letter .el-date{ margin:0 0 14px; color:#3d4749; }
.est-letter .el-att{ margin:0 0 4px; }
.est-letter .el-title{ font-size:20pt; color:#1B505B; margin:18px 0 6px; }
.est-letter h2{ font-size:12.5pt; color:#1B505B; margin:16px 0 6px; }
.est-letter p{ margin:0 0 8px; }
.est-letter .el-sm{ font-size:9.5pt; color:#3d4749; }
.est-letter .el-tab{ border-collapse:collapse; width:100%; margin:0 0 6px; }
.est-letter .el-tab th{ width:34%; text-align:left; font-weight:600; padding:4px 8px 4px 0; vertical-align:top; color:#3d4749; border-bottom:1px solid #d7d5cc; }
.est-letter .el-tab td{ padding:4px 0; border-bottom:1px solid #d7d5cc; }
.est-letter .el-tiers{ border-collapse:collapse; width:100%; margin:6px 0 10px; }
.est-letter .el-tiers td{ padding:10px 12px; border:1px solid #1B505B; }
.est-letter .el-tn{ width:32%; background:#1B505B; color:#fff; font-weight:700; text-transform:uppercase; letter-spacing:.05em; font-size:10pt; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
.est-letter .el-tr{ font-size:15pt; font-weight:700; }
.est-letter .el-tr small{ display:block; font-size:9.5pt; font-weight:400; color:#3d4749; }
.est-letter .el-means{ margin:8px 0 0; padding:0; list-style:none; font-size:9.5pt; color:#3d4749; }
.est-letter .el-means li{ margin:0 0 5px; }
.est-letter .el-disc{ border:2px solid #1B505B; border-radius:6px; padding:10px 14px; margin:14px 0; background:#eef4f3; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
.est-letter .el-disc span{ display:block; margin-top:4px; font-size:10pt; }
.est-letter .el-foot{ margin-top:22px; padding-top:8px; border-top:1px solid #d7d5cc; font-size:8.5pt; color:#5f6a6c; text-align:center; }
