/* 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; }

@media print{
  body *{ visibility:hidden; }
  #resultStep, #resultStep *{ visibility:visible; }
  #resultStep{ position:absolute; left:0; top:0; width:100%; }
  .qol-actions, .qol-note{ display:none !important; }
}
