/* =====================================================================
   VISUAL DA BUSCA CEP
   Usa as cores do site (variáveis de _nucleo/estilo.css), então
   funciona nos modos claro e escuro. Classes começam com .bc-
   Sem animações: leve no celular.
   ===================================================================== */

/* ---------- Base ---------- */
.bc { display: grid; gap: 1rem; margin-top: .4rem; }
.bc [hidden] { display: none !important; }
.bc-cartao, .bc-resultado { padding: 1.1rem 1rem 1.2rem; min-width: 0; }
.bc-rotulo-campo { display: block; margin-bottom: .45rem; font-weight: 700; color: var(--titulo); }
.bc-rotulo { margin: 0 0 .4rem; font-size: .8rem; font-weight: 700; color: var(--texto-2); text-transform: uppercase; letter-spacing: .04em; }
.bc-dica { margin: .55rem 0 0; font-size: .84rem; color: var(--texto-2); line-height: 1.5; }
.bc-status { min-height: 1.2em; margin: .6rem 0 0; font-size: .92rem; color: var(--texto-2); }
.bc-status:empty { margin: 0; min-height: 0; }
.bc-erro { color: var(--perigo); font-weight: 600; }
.bc-link { border: 0; background: none; padding: 0; font: inherit; color: var(--primaria); font-weight: 700; text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }

/* ---------- Abas ---------- */
.bc-abas { display: flex; gap: 3px; padding: 4px; border-radius: 18px; background: var(--superficie-2); }
.bc-abas button { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: .2rem; flex: 1 1 0; min-width: 0; min-height: 56px; padding: .3rem .3rem; border: 0; border-radius: 14px; background: transparent; color: var(--texto-2); font-weight: 650; font-size: .72rem; line-height: 1.15; text-align: center; cursor: pointer; }
.bc-abas button span { max-width: 100%; overflow-wrap: anywhere; }
.bc-abas .ico { width: 20px; height: 20px; flex: none; }
.bc-abas [aria-selected="true"] { background: var(--superficie); color: var(--titulo); box-shadow: inset 0 0 0 1px var(--borda), var(--sombra); }
.bc-abas [aria-selected="true"] .ico { color: var(--destaque-texto); }

/* ---------- Campos ---------- */
.bc-linha { display: flex; flex-wrap: wrap; gap: .5rem; }
.bc-linha .btn { flex: 1 0 auto; min-height: 52px; }
.bc-entrada { flex: 999 1 200px; min-width: 0; width: 100%; min-height: 52px; font-size: 1.2rem; font-weight: 700; letter-spacing: .04em; font-variant-numeric: tabular-nums; }
.bc-entrada::placeholder { font-weight: 500; letter-spacing: 0; }
.bc-campo { min-width: 0; }
.bc-campo .entrada { width: 100%; min-height: 48px; }
.bc-grade-end, .bc-grade-dist { display: grid; gap: .8rem; }
.bc-texto { width: 100%; min-height: 140px; padding: .7rem .8rem; border: 1.5px solid var(--borda); border-radius: var(--raio-p); background: var(--superficie); color: var(--texto); font: inherit; font-size: .95rem; line-height: 1.5; resize: vertical; }
.bc-texto:focus { outline: none; border-color: var(--primaria); box-shadow: 0 0 0 3px var(--primaria-suave); }
.bc-linha-botoes { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .8rem; }

/* Últimas consultas */
.bc-recentes { margin-top: 1rem; padding-top: .9rem; border-top: 1px solid var(--borda); }
.bc-recentes ul { list-style: none; margin: 0; padding: 0; }
.bc-recentes li { display: flex; flex-wrap: wrap; align-items: baseline; gap: .2rem .6rem; padding: .45rem 0; border-bottom: 1px solid var(--borda); font-size: .92rem; }
.bc-recentes li:last-child { border-bottom: 0; }
.bc-recentes small { color: var(--texto-2); overflow-wrap: anywhere; }

/* ---------- Ficha do CEP ---------- */
.bc-resultado { border: 1.5px solid color-mix(in srgb, var(--destaque) 45%, var(--borda)); scroll-margin-top: calc(var(--topo-h) + 12px); }
.bc-resultado:focus, .bc-dist:focus { outline: none; }
.bc-selo { display: inline-block; margin: 0; padding: .3rem .7rem; border-radius: 999px; background: var(--destaque-suave); color: var(--destaque-texto); font-size: .82rem; font-weight: 800; }
.bc-r-cep { margin: .55rem 0 .15rem; font-size: clamp(1.5rem, 7vw, 2rem); line-height: 1.15; font-variant-numeric: tabular-nums; }
.bc-r-rua { margin: 0; font-size: 1.08rem; font-weight: 700; color: var(--titulo); overflow-wrap: anywhere; }
.bc-r-cidade { margin: .1rem 0 1rem; font-weight: 600; color: var(--texto-2); }
.bc-ficha { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 140px), 1fr)); gap: .5rem; margin: 0 0 .6rem; }
.bc-ficha div { padding: .6rem .75rem; border-radius: 12px; background: var(--superficie-2); min-width: 0; }
.bc-ficha dt { font-size: .76rem; font-weight: 700; color: var(--texto-2); }
.bc-ficha dd { margin: .1rem 0 0; font-weight: 700; color: var(--titulo); overflow-wrap: anywhere; }
.bc-fonte { margin: .8rem 0 0; font-size: .8rem; color: var(--texto-2); }
.bc-acoes { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; }
.bc-acoes .btn { flex: 1 1 auto; }
.bc-mais { margin: .9rem 0 0; font-weight: 700; }

/* ---------- CEP pelo endereço ---------- */
#bc-end-res { margin-top: 1rem; padding-top: .9rem; border-top: 1px solid var(--borda); }
.bc-lista-end { list-style: none; margin: 0; padding: 0; }
.bc-lista-end li { display: grid; gap: .1rem; padding: .6rem 0; border-bottom: 1px solid var(--borda); }
.bc-lista-end li:last-child { border-bottom: 0; }
.bc-end-topo { display: flex; flex-wrap: wrap; align-items: baseline; gap: .2rem .8rem; }
.bc-end-cep { font-size: 1.08rem; color: var(--titulo); font-variant-numeric: tabular-nums; }
.bc-end-rua { font-weight: 600; overflow-wrap: anywhere; }
.bc-lista-end small { color: var(--texto-2); }

/* ---------- Distância ---------- */
.bc-dist { margin-top: 1rem; padding-top: .9rem; border-top: 1px solid var(--borda); }
.bc-rota { margin: 0 0 .8rem; font-weight: 700; color: var(--titulo); overflow-wrap: anywhere; }
.bc-numeros { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); gap: .5rem; }
.bc-numeros div { display: grid; gap: .15rem; padding: .8rem .9rem; border-radius: 14px; background: var(--superficie-2); }
.bc-numeros div:first-child { background: var(--destaque-suave); }
.bc-num-grande { font-family: var(--fonte-titulo, inherit); font-size: clamp(1.35rem, 6vw, 1.75rem); font-weight: 800; color: var(--titulo); font-variant-numeric: tabular-nums; }
.bc-num-rotulo { font-size: .82rem; font-weight: 600; color: var(--texto-2); }
.bc-dist-notas { margin: .9rem 0 0; padding-left: 1.1rem; font-size: .9rem; line-height: 1.55; }
.bc-dist-notas li + li { margin-top: .3rem; }

/* ---------- Vários CEPs ---------- */
.bc-tabela th, .bc-tabela td { padding: .55rem .5rem; font-size: .88rem; vertical-align: top; }
.bc-tabela td:first-child { white-space: nowrap; font-variant-numeric: tabular-nums; font-weight: 700; }
#bc-lote-res { margin-top: 1rem; }

/* ---------- Páginas de caso, estados e cidades ---------- */
.bc-casos { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr)); gap: .5rem; }
.bc-casos a { display: flex; align-items: center; gap: .5rem; min-height: 48px; padding: .55rem .8rem; border: 1px solid var(--borda); border-radius: var(--raio-p); background: var(--superficie); font-weight: 700; color: var(--titulo); text-decoration: none; }
.bc-casos a:hover { border-color: var(--primaria); }
.bc-estados { margin: .6rem 0 1rem; }
.bc-estados a.chip { min-width: 3rem; justify-content: center; }
.bc-estados a[aria-current="page"] { background: var(--primaria); border-color: var(--primaria); color: var(--sobre-primaria); }
.bc-cidades { columns: 2 150px; column-gap: 1.2rem; margin: .5rem 0 1rem; padding: 0; list-style: none; }
.bc-cidades li { break-inside: avoid; padding: .2rem 0; }
.bc-cidades a { overflow-wrap: anywhere; }
.bc-indice { display: flex; flex-wrap: wrap; gap: .25rem; margin: .4rem 0 .8rem; }
.bc-indice a { display: inline-flex; justify-content: center; min-width: 2.1rem; padding: .3rem .4rem; border-radius: 8px; background: var(--superficie-2); font-weight: 700; text-decoration: none; }
.bc-letra { margin: 1rem 0 .2rem; font-size: 1.05rem; scroll-margin-top: calc(var(--topo-h) + 12px); }
.bc-tabela-local td:last-child, .bc-tabela-local th:last-child { text-align: right; white-space: nowrap; }
.bc-dados-cidade { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); gap: .5rem; margin: 0 0 1rem; padding: 0; }
.bc-dados-cidade div { padding: .65rem .8rem; border-radius: 12px; background: var(--superficie-2); min-width: 0; }
.bc-dados-cidade dt { font-size: .76rem; font-weight: 700; color: var(--texto-2); }
.bc-dados-cidade dd { margin: .1rem 0 0; font-weight: 800; color: var(--titulo); overflow-wrap: anywhere; }

/* ---------- Computador ---------- */
@media (min-width: 760px) {
  .bc-cartao, .bc-resultado { padding: 1.4rem 1.5rem 1.5rem; }
  .bc-abas button { flex-direction: row; gap: .45rem; font-size: .88rem; min-height: 48px; }
  .bc-acoes .btn { flex: 0 0 auto; }
  .bc-grade-end { grid-template-columns: 11rem 1fr 1.4fr; }
  .bc-grade-dist { grid-template-columns: 1fr 1fr; }
  .bc-cidades { columns: 4 160px; }
}

/* ---------- Impressão: só a ficha ---------- */
@media print {
  .bc-resultado { border: 0; box-shadow: none; padding: 0; }
}
