/* Calculadoras Engine v1.0 — layout estrutural.
 * As CORES/medidas vêm das vars --calc-* declaradas no <style> escopado por
 * instância (com valores concretos + !important nas peças críticas — padrão
 * da casa contra tema/builder/otimizador de CSS, herdado do Quiz Engine). */

.calc-app{max-width:640px;margin:0 auto;box-sizing:border-box;height:auto;min-height:0;overflow:visible}
.calc-app *,.calc-app *:before,.calc-app *:after{box-sizing:border-box}
.calc-loading{text-align:center;color:#999;padding:30px 0}

.calc-title{margin:0 0 10px;color:var(--calc-title-color,#2d241d);font-size:var(--calc-title-size,26px);line-height:1.25}
.calc-intro{margin:0 0 18px;color:var(--calc-intro-color,#5a4c3f);line-height:1.6}

/* ---------- campos ---------- */
.calc-fields{display:flex;flex-direction:column;gap:14px;margin:0 0 18px}
.calc-field{min-width:0}
.calc-label{display:block;margin:0 0 6px;font-weight:700;color:var(--calc-label-color,#2d241d);font-size:var(--calc-label-size,15px);line-height:1.4}
.calc-input-wrap{display:flex;align-items:center;gap:8px;min-width:0}
.calc-input{flex:1 1 auto;min-width:0;padding:10px 12px;font-size:16px;line-height:1.4;height:auto}
.calc-unit{flex:0 0 auto;font-weight:700;color:var(--calc-unit-color,#8a7a66);white-space:nowrap}
.calc-slider{padding:0;accent-color:var(--calc-slider-color,#a8853b)}
.calc-slider-value{flex:0 0 auto;min-width:64px;text-align:right;font-weight:700;color:var(--calc-label-color,#2d241d);white-space:nowrap}

/* ---------- botão ---------- */
.calc-btn{display:block;margin:0 auto;border:0;cursor:pointer;font-weight:700;font-size:16px;letter-spacing:.03em;transition:background .15s ease,color .15s ease;white-space:normal}

/* ---------- resultado ---------- */
.calc-result{margin:20px 0 0;padding:22px;text-align:center}
.calc-result[hidden]{display:none}
.calc-pop{animation:calcpop .35s ease}
@keyframes calcpop{from{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}
.calc-result-label{font-weight:700;letter-spacing:.05em;text-transform:uppercase;font-size:13px;color:var(--calc-result-label-color,#a8853b);margin:0 0 6px}
.calc-result-value{font-weight:800;font-size:var(--calc-value-size,34px);line-height:1.15;color:var(--calc-result-value-color,#2d241d)}
.calc-result-range{margin:12px 0 0;line-height:1.55;color:var(--calc-range-text-color,#5a4c3f)}
.calc-result-range:empty{display:none}
.calc-offer{margin:14px 0 0;line-height:1.55;color:var(--calc-offer-text-color,#2d241d)}
.calc-cta-wrap{margin:16px 0 0}
.calc-cta{display:inline-block;text-decoration:none;font-weight:700;transition:background .15s ease,color .15s ease}

/* ---------- erro ---------- */
.calc-error{margin:14px 0 0;padding:10px 14px;border-radius:8px;background:#fdeeee;color:#b32d2e;text-align:center;line-height:1.5}
.calc-error[hidden]{display:none}

/* ---------- mobile ---------- */
@media (max-width:520px){
  .calc-result-value{font-size:calc(var(--calc-value-size,34px)*0.82)}
  .calc-btn{width:100%}
}
