/* ---------- SIMULADOR STANDALONE (extraído/adaptado do index.html) ---------- */
.sim-intro{font-size:clamp(1.05rem,1.15vw,1.2rem);color:var(--ink-2);margin-bottom:26px;line-height:1.75;text-align:justify;hyphens:auto;-webkit-hyphens:auto}

.info-i{
  display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;
  border-radius:50%;background:var(--gray-light);color:var(--ink-2);font-size:.68rem;font-weight:700;
  font-style:normal;font-family:Georgia,serif;cursor:help;position:relative;vertical-align:middle;margin-left:2px;
}
.info-i:hover{background:var(--emerald);color:#fff}
.info-i::after{
  content:attr(data-tip);position:absolute;top:135%;left:50%;transform:translateX(-50%);
  width:220px;background:var(--navy);color:#fff;font-size:.74rem;font-weight:400;line-height:1.4;
  padding:9px 11px;border-radius:8px;opacity:0;pointer-events:none;transition:opacity .15s ease;z-index:90;
  box-shadow:0 6px 16px rgba(0,0,0,.2);
}
.info-i:hover::after,.info-i:focus::after{opacity:1}
/* usadas por JS (ver sim-shared.js/guide.js) para evitar que a dica saia do ecrã */
.info-i.tip-left::after{left:0;transform:none}
.info-i.tip-right::after{left:auto;right:0;transform:none}
@media(max-width:480px){ .info-i::after{width:180px;font-size:.7rem} }

.sit-select{font-family:'Montserrat',system-ui,sans-serif;font-weight:700;font-size:.9rem;padding:11px 13px;border:1px solid var(--line);border-radius:8px;width:100%;background:#fff;color:var(--ink)}

.panel-solo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(28px,4vw,64px);align-items:stretch;
  background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:clamp(24px,2.6vw,44px);margin:28px 0 40px}
.panel-solo h2{font-size:1.2rem;font-weight:700;margin-bottom:6px}
.panel-solo .desc{font-size:1rem;color:var(--ink-2);margin-bottom:20px}

/* campo empilhado: label (+ tooltip) em cima, campo a toda a largura por baixo —
   evita truncar texto de opções longas (ex.: "Casado, dois titulares") e cabe em qualquer largura de ecrã */
.in-row{margin-bottom:15px}
.in-row label{display:block;font-size:.85rem;color:var(--ink-2);margin-bottom:6px}
.in-row input[type=number]{
  font-family:'Montserrat',system-ui,sans-serif;font-weight:700;font-size:.94rem;padding:11px 13px;border:1px solid var(--line);
  border-radius:8px;background:#fff;width:100%;color:var(--ink)
}
.in-row input:focus,.in-row select:focus{outline:2px solid var(--emerald);outline-offset:-1px;border-color:transparent}

.result{background:var(--navy);color:#fff;border-radius:13px;padding:clamp(28px,3vw,48px);
  display:flex;flex-direction:column;justify-content:center}
.result .rlabel{font-size:.85rem;color:#8b95a8;text-transform:uppercase;letter-spacing:.05em;font-weight:600}
.result .rbig{font-family:'Montserrat',system-ui,sans-serif;font-weight:800;font-size:clamp(2.5rem,4vw,3.8rem);
  color:var(--emerald);letter-spacing:-.03em;line-height:1;margin:10px 0 16px}
.result .rnote{font-size:.95rem;color:#cbd3e1;line-height:1.6}
.rgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:24px;padding-top:20px;border-top:1px solid rgba(255,255,255,.12)}
.rgrid div span{display:block;font-size:.76rem;color:#8b95a8;margin-bottom:3px}
.rgrid div b{font-family:'Montserrat',system-ui,sans-serif;font-weight:700;font-size:1.3rem}

/* variante "destaque" — para quando um valor do rgrid é na verdade a resposta principal do simulador
   (ex: taxa de esforço no crédito habitação, poupança em juros na amortização) */
.rgrid .destaque{grid-column:1/-1;background:rgba(16,185,129,.08);border:1px solid rgba(16,185,129,.25);
  border-radius:10px;padding:14px 16px;margin-bottom:2px}
.rgrid .destaque span{color:#B9C6DA;font-weight:600;font-size:.8rem}
.rgrid .destaque b{font-size:1.9rem;color:var(--emerald);letter-spacing:-.02em}
.disclaim{font-size:.74rem;color:var(--caption);margin-top:14px}

/* ---------- GRÁFICO NO PAINEL DE RESULTADO (donut/barra, SVG leve, sem dependências) ---------- */
.result-chart{margin:22px 0 4px;display:flex;align-items:center;gap:24px}
.result-chart svg{flex:none}
.result-chart .chart-legend{flex:1;display:flex;flex-direction:column;gap:11px;min-width:0}
.chart-legend-item{display:flex;align-items:center;gap:10px;font-size:.9rem}
.chart-legend-item .dot{width:12px;height:12px;border-radius:50%;flex:none}
.chart-legend-item .lbl{color:#B9C6DA;flex:1;min-width:0}
.chart-legend-item .val{font-family:'Montserrat',system-ui,sans-serif;font-weight:700;color:#fff;white-space:nowrap;font-size:1.02rem}
.result-chart-donut circle{transition:stroke-dasharray 1s cubic-bezier(.22,1,.36,1)}
.line-chart text{font-family:'Montserrat',system-ui,sans-serif}

/* tooltip partilhado dos gráficos (donut + linhas) — ver sim-shared.js */
.cf-chart-tip{
  position:absolute;top:0;left:0;pointer-events:none;z-index:60;
  background:#fff;color:var(--ink,#1a2233);font-size:.78rem;line-height:1.5;
  padding:7px 11px;border-radius:8px;box-shadow:0 10px 24px rgba(0,0,0,.28);
  white-space:nowrap;opacity:0;transform:translate(-50%,-110%);transition:opacity .12s ease;
}
.cf-chart-tip.show{opacity:1}
.cf-chart-tip .cf-tip-x{font-weight:700;color:var(--ink-2,#6b7686);margin-bottom:2px;font-size:.72rem;text-transform:uppercase;letter-spacing:.03em}
.cf-chart-tip .cf-tip-row{display:flex;align-items:center;gap:6px}
.cf-chart-tip .cf-tip-dot{width:8px;height:8px;border-radius:50%;flex:none}
@media (prefers-reduced-motion:reduce){ .cf-chart-tip{transition:none} }
.employer-note{font-size:.76rem;color:#8b95a8;margin-top:16px;padding-top:14px;border-top:1px dashed rgba(255,255,255,.14);line-height:1.55}
.employer-note b{color:#cbd3e1;font-family:'Montserrat',system-ui,sans-serif}
@media (prefers-reduced-motion:reduce){ .result-chart-donut circle{transition:none} }

/* barra empilhada (usada no simulador de juros compostos) */
.stack-bar{height:42px;border-radius:9px;overflow:hidden;display:flex;width:100%;background:rgba(255,255,255,.06)}
.stack-bar div{height:100%;transition:width 1s cubic-bezier(.22,1,.36,1)}

/* barras de comparação lado a lado (cenários independentes, não partes de um todo) */
.cmpbar-row{display:grid;grid-template-columns:130px 1fr auto;gap:12px;align-items:center;margin-bottom:16px}
.cmpbar-label{font-size:.86rem;color:#B9C6DA}
.cmpbar-track{height:28px;border-radius:7px;background:rgba(255,255,255,.06);overflow:hidden}
.cmpbar-fill{height:100%;border-radius:7px;transition:width 1s cubic-bezier(.22,1,.36,1)}
.cmpbar-val{font-family:'Montserrat',system-ui,sans-serif;font-weight:700;font-size:1rem;color:#fff;white-space:nowrap}

/* barra de progresso simples (já tens vs falta) */
.progress-track{height:18px;border-radius:9px;overflow:hidden;margin:18px 0 10px}
.progress-fill{height:100%;border-radius:7px;transition:width 1s cubic-bezier(.22,1,.36,1)}

/* ---------- FAQ (reutiliza o padrão .qa do index.html) ---------- */
.qa{border-top:1px solid var(--line);padding:16px 0}
.qa button{width:100%;text-align:left;background:none;border:0;font:inherit;font-size:1rem;font-weight:700;
  color:var(--ink);cursor:pointer;display:flex;justify-content:space-between;align-items:center;padding:0}
.qa button:after{content:"+";font-size:1.3rem;color:var(--emerald-text);flex:none;margin-left:12px}
.qa.open button:after{content:"–"}
.qa .ans{max-height:0;overflow:hidden;transition:max-height .25s ease}
.qa.open .ans{max-height:400px;padding-top:10px}
.qa .ans p{font-size:.98rem;color:var(--ink-2);line-height:1.65;margin:0}

/* ---------- RESPONSIVE ---------- */
@media(max-width:940px){
  .panel-solo{grid-template-columns:1fr}
}
@media(max-width:620px){
  .rgrid{grid-template-columns:1fr 1fr;gap:10px}
  .result-chart{flex-direction:column;align-items:flex-start;gap:14px}
  .cmpbar-row{grid-template-columns:1fr;gap:4px}
  .cmpbar-val{justify-self:end}
}
@media(max-width:400px){
  .result-chart{align-items:center}
}

