html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
  color: var(--bs-secondary-color);
  text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
  text-align: start;
}
/* Menu superior: links sempre legíveis sobre o fundo azul (não só ao passar o mouse) */
.navbar.bg-primary .navbar-nav .nav-link,
.navbar.bg-primary .navbar-nav .nav-link.dropdown-toggle {
  color: rgba(255, 255, 255, 0.9);
}

.navbar.bg-primary .navbar-nav .nav-link:hover,
.navbar.bg-primary .navbar-nav .nav-link:focus,
.navbar.bg-primary .navbar-nav .nav-link.active,
.navbar.bg-primary .navbar-nav .nav-link.show {
  color: #fff;
}

/* ===================== Responsividade (celular) ===================== */

/* Rodapé no fluxo normal da página (antes era fixo e cortava no celular) */
html, body { min-height: 100%; }
body {
  margin-bottom: 0;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}
body > .container { flex: 1 0 auto; }

/* Nada de rolagem lateral */
body { overflow-x: hidden; }
img, canvas { max-width: 100%; }

@media (max-width: 767.98px) {
  /* 16px nos campos evita o zoom automático do iPhone ao tocar */
  .form-control, .form-select, .input-group-text { font-size: 16px; }
  .form-control-lg, .input-group-lg > .form-control { font-size: 1.15rem; }

  .titulo-pagina { font-size: 1.3rem; }
  .small-mobile { font-size: .875rem; }
  h1.h2 { font-size: 1.4rem; }
  h1.h3 { font-size: 1.3rem; }
  h2 { font-size: 1.3rem; }

  .container, .container-fluid { padding-left: 12px; padding-right: 12px; }
  main { padding-bottom: .5rem !important; }

  .card-header h5, .card-header .h5 { font-size: 1rem; }
  .card-body h4 { font-size: 1.1rem; }

  /* Resumo do cálculo: líquido em destaque */
  .resumo-liquido {
    background: rgba(25, 135, 84, .08);
    border-radius: .5rem;
    padding: .5rem 0;
    margin-bottom: .5rem;
  }
  .resumo-liquido h4 { font-size: 1.6rem !important; }

  /* Tabelas mais compactas */
  .table { font-size: .85rem; }
  .table > :not(caption) > * > * { padding: .4rem .35rem; }
  .tabela-faixas { font-size: .8rem; }
  caption { font-size: .75rem; }

  /* Botões e alvos de toque confortáveis */
  .btn { min-height: 44px; }
  .btn-sm { min-height: 36px; }
  .navbar .nav-link, .dropdown-item { padding-top: .6rem; padding-bottom: .6rem; }

  /* Linhas "rótulo: valor" do resultado: mais espaço para o rótulo, sem quebrar em 2 linhas */
  #areaResultados .card-body > .row { align-items: baseline; }
  #areaResultados .card-body > .row > .col-6:first-child { flex: 0 0 64%; max-width: 64%; font-size: .9rem; }
  #areaResultados .card-body > .row > .col-6.text-end { flex: 0 0 36%; max-width: 36%; white-space: nowrap; }

  .breadcrumb { font-size: .8rem; margin-bottom: .5rem; }
  .accordion-button { font-size: .95rem; padding: .85rem 1rem; }
  .lead { font-size: 1rem; }
}
