/* Calculadora de viabilidade FV — Kaminari Engenharia. Mobile-first. */
:root{
  --vb-azul:#1c2b3d; --vb-azul2:#2b425d; --vb-ambar:#f3af2f; --vb-ambar2:#e59f1f;
  --vb-fundo:#f5f6f8; --vb-linha:#dfe4ea; --vb-texto:#22303f; --vb-suave:#56657a;
  --vb-ok:#176c3a; --vb-ok-bg:#e8f5ed; --vb-lim:#8a5a00; --vb-lim-bg:#fff4dc; --vb-erro:#a5281b; --vb-erro-bg:#fdecea;
  --vb-raio:12px; --vb-sombra:0 1px 3px rgba(20,40,60,.08),0 4px 16px rgba(20,40,60,.05);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--vb-fundo);color:var(--vb-texto);font:400 17px/1.55 "Source Sans 3",system-ui,-apple-system,"Segoe UI",sans-serif}
body.vb-embed{background:transparent}
h1,h2,h3,legend{font-family:"Montserrat","Segoe UI",sans-serif;color:var(--vb-azul);line-height:1.25;margin:0}
h1{font-size:clamp(1.55rem,4.5vw,2.2rem);font-weight:700}
h2{font-size:1.3rem;font-weight:700}
h3{font-size:1.08rem;font-weight:600;margin-bottom:.6rem}
a{color:#0b5cad}
[x-cloak]{display:none!important}
.vb-pular{position:absolute;left:-999px;top:0;background:#fff;padding:.6rem 1rem;z-index:10}
.vb-pular:focus{left:.5rem;top:.5rem}
:focus-visible{outline:3px solid var(--vb-ambar);outline-offset:2px}

.vb-topo{background:var(--vb-azul);padding:.8rem 1rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.vb-topo img{display:block;height:34px;width:auto}
.vb-parceiro{color:#dfe7f0;font-size:.95rem}
.vb-main{max-width:920px;margin:0 auto;padding:1.2rem 1rem 3rem}
.vb-embed .vb-main{padding:.25rem}
.vb-rodape{background:var(--vb-azul);color:#cfd8e3;text-align:center;padding:1.4rem 1rem;font-size:.95rem}
.vb-rodape a{color:#ffd37a}
.vb-rodape p{margin:.2rem 0}

.vb-hero{margin:.6rem 0 1.2rem}
.vb-sub{color:var(--vb-suave);font-size:1.08rem;margin:.6rem 0 0;max-width:62ch}
.vb-cartao{background:#fff;border-radius:var(--vb-raio);box-shadow:var(--vb-sombra);padding:1.2rem;margin:0 0 1.1rem;border-top:3px solid var(--vb-ambar)}
@media(min-width:640px){.vb-cartao{padding:1.6rem 1.8rem}}

/* passos */
.vb-passos{list-style:none;display:flex;gap:.3rem;margin:0 0 1.1rem;padding:0}
.vb-passos li{flex:1}
.vb-passos button{width:100%;background:none;border:0;border-bottom:3px solid var(--vb-linha);padding:.35rem .1rem .5rem;font:600 .82rem "Montserrat",sans-serif;color:var(--vb-suave);cursor:pointer;display:flex;align-items:center;gap:.35rem;justify-content:center}
.vb-passos button:disabled{cursor:default}
.vb-passos .n{display:inline-grid;place-items:center;width:1.5rem;height:1.5rem;border-radius:50%;background:var(--vb-linha);color:var(--vb-azul);font-size:.8rem}
.vb-passos .ativo button{border-color:var(--vb-ambar);color:var(--vb-azul)}
.vb-passos .ativo .n{background:var(--vb-ambar)}
.vb-passos .feito button{border-color:var(--vb-azul);color:var(--vb-azul)}
.vb-passos .feito .n{background:var(--vb-azul);color:#fff}
@media(max-width:420px){.vb-passos button span:not(.n){display:none}}

/* formulário */
fieldset{border:0;margin:0;padding:0;min-width:0}
legend{font-size:1.18rem;font-weight:700;margin-bottom:.9rem;padding:0}
.vb-grade{display:grid;grid-template-columns:repeat(12,1fr);gap:.9rem 1rem}
.vb-campo{grid-column:span 12;display:block;font-weight:600;font-size:.98rem}
@media(min-width:640px){.vb-c3{grid-column:span 3}.vb-c4{grid-column:span 4}.vb-c6{grid-column:span 6}.vb-c8{grid-column:span 8}.vb-c9{grid-column:span 9}}
.vb-rotulo{display:block;font-weight:600;font-size:.98rem;margin:1rem 0 .4rem}
.vb-campo .vb-rotulo{margin-top:0}
.vb-opc{font-weight:400;color:var(--vb-suave);font-size:.85rem}
input[type=text],input[type=tel],input[type=email],select{display:block;width:100%;margin-top:.3rem;padding:.7rem .8rem;border:1.5px solid #b9c3cf;border-radius:8px;background:#fff;font:400 1rem inherit;font-family:inherit;color:var(--vb-texto);min-height:46px}
input:focus,select:focus{border-color:var(--vb-ambar2);outline:3px solid rgba(243,175,47,.35);outline-offset:0}
input:disabled{background:#eef1f4}
.vb-ajuda{color:var(--vb-suave);font-size:.92rem;font-weight:400;margin:.35rem 0 0}
.vb-dica{font-weight:400;font-size:.92rem;margin-top:.3rem}
.vb-dica summary{cursor:pointer;color:#0b5cad;display:inline-block;padding:.15rem 0}
.vb-dica p,.vb-dica ul{color:var(--vb-suave);margin:.3rem 0 .2rem}
.vb-dica-larga{margin-top:.9rem}
.vb-expansivel summary{cursor:pointer;color:#0b5cad;font-weight:600}
.vb-meses{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-top:.6rem}
@media(min-width:640px){.vb-meses{grid-template-columns:repeat(6,1fr)}}
.vb-meses label{font-weight:600;font-size:.85rem}
.vb-opcoes{display:grid;grid-template-columns:1fr;gap:.55rem}
@media(min-width:560px){.vb-opcoes{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}
.vb-compacto{grid-template-columns:repeat(2,1fr)}
.vb-opcao{position:relative;display:block;cursor:pointer}
.vb-opcao input{position:absolute;opacity:0;inset:0;width:100%;height:100%;cursor:pointer;margin:0}
.vb-opcao span{display:block;border:1.5px solid #b9c3cf;border-radius:10px;padding:.75rem .9rem;font-weight:600;background:#fff;min-height:48px}
.vb-opcao small{display:block;font-weight:400;color:var(--vb-suave);font-size:.88rem}
.vb-opcao input:checked+span{border-color:var(--vb-azul);background:#eef3f9;box-shadow:inset 0 0 0 1px var(--vb-azul)}
.vb-opcao input:focus-visible+span{outline:3px solid var(--vb-ambar);outline-offset:2px}
.vb-check{display:flex;gap:.6rem;align-items:flex-start;font-weight:400}
.vb-check input{width:22px;height:22px;margin-top:.15rem;flex:none;accent-color:var(--vb-azul)}
.vb-check small{color:var(--vb-suave)}
.vb-hp{position:absolute;left:-5000px;height:0;overflow:hidden}

.vb-auto{position:relative}
.vb-sugestoes{position:absolute;z-index:5;left:0;right:0;top:100%;background:#fff;border-radius:8px;box-shadow:0 8px 24px rgba(20,40,60,.18);max-height:280px;overflow:auto}
.vb-sugestoes:empty{display:none}
.vb-sugestao{display:block;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--vb-linha);padding:.7rem .9rem;font:400 1rem inherit;font-family:inherit;cursor:pointer;color:var(--vb-texto)}
.vb-sugestao:hover,.vb-sugestao:focus{background:#eef3f9}
.vb-sugestao small{color:var(--vb-suave)}
.vb-sugestao-vazia{margin:0;padding:.7rem .9rem;color:var(--vb-suave);font-weight:400}
.vb-ok-inline{margin:0;font-weight:400}
.vb-ok-inline small{color:var(--vb-suave)}

.vb-acoes{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap;margin-top:1.4rem}
.vb-btn,.vb-btn-sec{display:inline-block;border-radius:9px;padding:.8rem 1.4rem;font:700 1rem "Montserrat",sans-serif;cursor:pointer;text-decoration:none;min-height:48px;border:0}
.vb-btn{background:var(--vb-ambar);color:var(--vb-azul)}
.vb-btn:hover{background:var(--vb-ambar2)}
.vb-btn[disabled]{opacity:.6;cursor:wait}
.vb-btn-sec{background:#e9edf2;color:var(--vb-azul);border:1px solid #c9d2dc;font-weight:600}
.vb-btn-grande{width:100%;font-size:1.08rem;margin-top:1rem}
@media(min-width:640px){.vb-btn-grande{width:auto;padding:.95rem 2.2rem}}
.htmx-indicator{opacity:0;transition:opacity .2s;color:var(--vb-suave)}
.htmx-request .htmx-indicator,.htmx-request.htmx-indicator{opacity:1}

/* alertas */
.vb-alerta{border-radius:10px;padding:.85rem 1rem;margin:0 0 1rem;border-left:5px solid}
.vb-alerta ul{margin:.3rem 0 0;padding-left:1.2rem}
.vb-alerta-erro{background:var(--vb-erro-bg);border-color:var(--vb-erro);color:#6d1a12}
.vb-alerta-aviso{background:var(--vb-lim-bg);border-color:#d99a1c;color:#5c3d00}
.vb-alerta-ok{background:var(--vb-ok-bg);border-color:var(--vb-ok);color:#0f4a27}

/* resultado */
#vb-resultado:focus{outline:none}
.vb-veredito{border-top-width:6px}
.vb-veredito.vb-ok{border-color:var(--vb-ok);background:linear-gradient(#f1faf4,#fff 70%)}
.vb-veredito.vb-ambar{border-color:#d99a1c;background:linear-gradient(#fff8e8,#fff 70%)}
.vb-veredito.vb-erro{border-color:var(--vb-erro);background:linear-gradient(#fdf1ef,#fff 70%)}
.vb-selo{display:inline-block;margin:0 0 .5rem;padding:.2rem .7rem;border-radius:999px;font:700 .8rem "Montserrat",sans-serif;letter-spacing:.04em;color:#fff}
.vb-ok .vb-selo{background:var(--vb-ok)} .vb-ambar .vb-selo{background:var(--vb-lim)} .vb-erro .vb-selo{background:var(--vb-erro)}
.vb-veredito h2{font-size:clamp(1.4rem,4vw,1.9rem)}
.vb-explicacao{font-size:1.1rem;margin:.6rem 0 0;max-width:68ch}
.vb-numeros{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem;margin:0 0 1.1rem}
@media(min-width:760px){.vb-numeros{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}}
.vb-num{background:#fff;border-radius:var(--vb-raio);box-shadow:var(--vb-sombra);padding:.9rem 1rem}
.vb-num span{display:block;color:var(--vb-suave);font-size:.88rem}
.vb-num strong{display:block;font:700 1.22rem/1.25 "Montserrat",sans-serif;color:var(--vb-azul);margin:.15rem 0}
.vb-num small{color:var(--vb-suave);font-size:.84rem}
.vb-nota{color:var(--vb-suave);font-size:.95rem;margin:-.4rem 0 1.1rem}
.vb-graficos{display:grid;gap:1.6rem}
@media(min-width:820px){.vb-graficos{grid-template-columns:1fr 1fr}}
.vb-canvas{position:relative;height:260px}
.vb-tabela{border-collapse:collapse;width:100%;font-size:.9rem}
.vb-tabela th,.vb-tabela td{border-bottom:1px solid var(--vb-linha);padding:.3rem .4rem;text-align:right}
.vb-tabela th:first-child,.vb-tabela td:first-child{text-align:left}
.vb-alt{border:1px solid var(--vb-linha);border-radius:10px;padding:.8rem 1rem;margin:.6rem 0}
.vb-alt p{margin:.15rem 0}
.vb-alt-principal{border-color:var(--vb-azul);background:#f4f7fb}
.vb-alt-titulo{font-weight:700;color:var(--vb-azul)}
.vb-tag{display:inline-block;background:var(--vb-lim-bg);color:var(--vb-lim);border-radius:999px;padding:.05rem .6rem;font-size:.78rem;font-weight:600;vertical-align:middle}
.vb-premissas dl{display:grid;grid-template-columns:1fr;gap:.15rem .9rem;margin:0;font-size:.95rem}
@media(min-width:640px){.vb-premissas dl{grid-template-columns:max-content 1fr}}
.vb-premissas dt{font-weight:600;color:var(--vb-azul)}
.vb-premissas dd{margin:0 0 .45rem;color:var(--vb-suave)}
.vb-legal{font-size:.88rem;color:var(--vb-suave);border-top:1px solid var(--vb-linha);padding-top:.7rem;margin:.9rem 0 0}
.vb-cta{border-top-color:var(--vb-azul);background:linear-gradient(#f4f7fb,#fff 60%)}
.vb-cta h3{font-size:1.2rem}
.vb-conteudo ul{padding-left:1.2rem}
.vb-conteudo li{margin:.35rem 0}
.vb-conteudo h3{margin-top:1.2rem}
@media print{.vb-topo,.vb-rodape,.vb-form,.vb-cta{display:none}}
