/* Vistoria Fácil · site. Cor da marca #295E6E. Pensado primeiro para o celular. */
:root {
    --vf: #295E6E;
    --vf-dark: #1d4552;
    --vf-soft: #e8f1f4;
    --vf-accent: #f0a63b;
    --bs-primary: #295E6E;
    --bs-primary-rgb: 41, 94, 110;
    --bs-link-color: #295E6E;
    --bs-link-color-rgb: 41, 94, 110;
    --bs-link-hover-color: #1d4552;
    --bs-link-hover-color-rgb: 29, 69, 82;
    --bs-body-font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}
body { color: #1f2d33; background: #f6f9fa; }
.btn-primary { --bs-btn-bg: #295E6E; --bs-btn-border-color: #295E6E; --bs-btn-hover-bg: #1f4a57; --bs-btn-hover-border-color: #1f4a57;
    --bs-btn-active-bg: #1d4552; --bs-btn-active-border-color: #1d4552; --bs-btn-disabled-bg: #295E6E; --bs-btn-disabled-border-color: #295E6E; }
.btn-outline-primary { --bs-btn-color: #295E6E; --bs-btn-border-color: #295E6E; --bs-btn-hover-bg: #295E6E; --bs-btn-hover-border-color: #295E6E;
    --bs-btn-active-bg: #295E6E; --bs-btn-active-border-color: #295E6E; }
.text-bg-primary { background-color: #295E6E !important; }
.text-primary { color: #295E6E !important; }
.form-control:focus, .form-select:focus { border-color: #5b95a6; box-shadow: 0 0 0 .2rem rgba(41, 94, 110, .18); }
.form-check-input:checked { background-color: #295E6E; border-color: #295E6E; }
.form-range::-webkit-slider-thumb { background: #295E6E; }
.form-range::-moz-range-thumb { background: #295E6E; }
.progress-bar { background-color: #295E6E; }

.vf-nav { background: #fff; border-bottom: 1px solid #e3ecef; }
.vf-nav .nav-link.active { color: var(--vf); font-weight: 600; }
.vf-footer { background: var(--vf-dark); color: #fff; }
.vf-footer a { color: #cfe3ea; text-decoration: none; }
.vf-footer a:hover { color: #fff; text-decoration: underline; }

.vf-hero { background: linear-gradient(135deg, rgba(29, 69, 82, .94), rgba(41, 94, 110, .86)), url('/img/fundo-vistorias.jpg') center/cover; color: #fff; padding: 3.5rem 0 4rem; }
.vf-hero h1 { font-weight: 700; letter-spacing: -.02em; }
.vf-hero .lead { color: #dcecf1; }
.vf-hero .btn-light { color: var(--vf-dark); font-weight: 600; }
.vf-section { padding: 2.5rem 0; }
.vf-card { background: #fff; border: 1px solid #e3ecef; border-radius: 14px; padding: 1.25rem; height: 100%; }
.vf-icon { width: 44px; height: 44px; border-radius: 12px; background: var(--vf-soft); color: var(--vf); display: inline-flex; align-items: center; justify-content: center; font-size: 1.4rem; margin-bottom: .75rem; }
.vf-passo { width: 34px; height: 34px; border-radius: 50%; background: var(--vf); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-weight: 700; }

/* Cartões de plano */
.plano { background: #fff; border: 1px solid #dbe6ea; border-radius: 16px; padding: 1.25rem; height: 100%; display: flex; flex-direction: column; position: relative; }
.plano.destaque { border: 2px solid var(--vf); box-shadow: 0 8px 24px rgba(41, 94, 110, .15); }
.plano .selo { position: absolute; top: -12px; left: 1rem; background: var(--vf-accent); color: #3b2a07; font-size: .75rem; font-weight: 700; padding: .15rem .6rem; border-radius: 999px; }
.plano .nome { font-weight: 700; font-size: 1.15rem; }
.plano .preco { font-size: 2rem; font-weight: 800; color: var(--vf); line-height: 1.1; }
.plano .preco small { font-size: .9rem; font-weight: 500; color: #6b7b82; }
.plano .de { color: #8a979c; text-decoration: line-through; font-size: .95rem; }
.plano .economia { background: #e3f5e8; color: #1b6b35; font-weight: 700; font-size: .78rem; padding: .1rem .5rem; border-radius: 999px; }
.plano ul { list-style: none; padding: 0; margin: 1rem 0; flex: 1; }
.plano li { padding: .2rem 0; }
.plano li::before { content: "✓"; color: var(--vf); font-weight: 700; margin-right: .5rem; }

/* Assistente de cadastro */
.passos { display: flex; gap: .5rem; margin-bottom: 1.25rem; }
.passos .p { flex: 1; text-align: center; font-size: .8rem; color: #8a979c; border-bottom: 4px solid #dbe6ea; padding-bottom: .4rem; }
.passos .p.ativo { color: var(--vf); border-color: var(--vf); font-weight: 700; }
.passos .p.feito { color: var(--vf); border-color: #8db5c2; }
.passo { display: none; }
.passo.ativo { display: block; }
.campo-erro { color: #b02a37; font-size: .85rem; margin-top: .2rem; }
.is-invalid + .campo-erro, .campo-erro:not(:empty) { display: block; }
.cartao-box { background: var(--vf-soft); border-radius: 12px; padding: 1rem; }
.chave-prefixo { background: #eef3f5; }

/* Plataforma da empresa */
.plat-wrap { display: flex; min-height: calc(100vh - 56px); }
.plat-menu { width: 230px; background: #fff; border-right: 1px solid #e3ecef; padding: 1rem .75rem; flex-shrink: 0; }
.plat-menu a { display: block; padding: .5rem .75rem; border-radius: 8px; color: #35484f; text-decoration: none; margin-bottom: 2px; }
.plat-menu a:hover { background: var(--vf-soft); }
.plat-menu a.active { background: var(--vf); color: #fff; }
.plat-main { flex: 1; min-width: 0; padding: 1.25rem; }
@media (max-width: 991.98px) {
    .plat-wrap { display: block; }
    .plat-menu { width: auto; border-right: 0; border-bottom: 1px solid #e3ecef; display: flex; flex-wrap: nowrap; overflow-x: auto; gap: .25rem; padding: .5rem; }
    .plat-menu a { white-space: nowrap; margin: 0; }
    .plat-menu .menu-titulo { display: none; }
}
.kpi { font-size: 2rem; font-weight: 800; color: var(--vf); line-height: 1.1; }
.matriz td, .matriz th { text-align: center; vertical-align: middle; }
.matriz td:first-child, .matriz th:first-child { text-align: left; }
.foto-vistoria { width: 120px; height: 90px; object-fit: cover; border-radius: 8px; border: 1px solid #dbe6ea; }
.assinatura-img { max-width: 220px; max-height: 110px; background: #fff; border: 1px solid #dbe6ea; border-radius: 8px; }
.table > :not(caption) > * > * { vertical-align: middle; }
.bo-nav { background: #14323b; }
