/* ACNSG Social — ajustes de interface (Bootstrap local) */
:root { --acnsg-primaria: #1f4e79; }
.navbar.bg-primary { background-color: var(--acnsg-primaria) !important; }
.btn-primary { background-color: var(--acnsg-primaria); border-color: var(--acnsg-primaria); }
.btn-primary:hover, .btn-primary:focus { background-color: #163a5a; border-color: #163a5a; }
a { color: #14507e; }
.ficha-cabecalho .marcador-foto { width: 72px; height: 72px; border-radius: 50%; background: #dfe6ee; color: #4a5c70; display: flex; align-items: center; justify-content: center; font-size: 1.8rem; }
.ficha-cabecalho img.foto-id { width: 72px; height: 72px; object-fit: cover; border-radius: 50%; }
.linha-tempo { border-left: 3px solid #cfd8e3; padding-left: 1rem; }
.linha-tempo .item { position: relative; margin-bottom: 1rem; }
.linha-tempo .item::before { content: ""; position: absolute; left: -1.45rem; top: .45rem; width: .9rem; height: .9rem; border-radius: 50%; background: #1f4e79; border: 2px solid #fff; }
.linha-tempo .item.restrito::before { background: #b02a37; }
.linha-tempo .item.cancelado::before { background: #6c757d; }
.galeria .card img { width: 100%; height: 160px; object-fit: cover; }
.tabela-compacta td, .tabela-compacta th { padding: .35rem .5rem; }
.texto-preservado { white-space: pre-wrap; }
.painel-indicador { font-size: 2rem; font-weight: 600; line-height: 1; }
.offline-aviso { display: none; }
body.offline .offline-aviso { display: block; }
.form-control:focus, .form-select:focus { box-shadow: 0 0 0 .25rem rgba(31, 78, 121, .3); border-color: var(--acnsg-primaria); }
/* Abordagem rápida (uso em campo, no celular): alvos grandes e uma coluna. */
.rapida { max-width: 640px; margin: 0 auto; }
.rapida .card-body { padding: .85rem; }
.rapida legend { font-size: .8rem; letter-spacing: .04em; margin-bottom: .5rem; }
.rapida .form-label { font-weight: 600; margin-bottom: .3rem; }
.rapida .form-control, .rapida .form-select { min-height: 3rem; font-size: 1rem; }
.rapida .form-text { margin-top: .15rem; }
/* O RadioSelect/CheckboxSelectMultiple do Django gera <div><label><input>texto</label></div>:
   cada opção vira um cartão grande, para acertar com o dedo em pé na rua. */
.rapida .escolhas > div > div { margin-bottom: .4rem; }
.rapida .escolhas > div > div:last-child { margin-bottom: 0; }
.rapida .escolhas label { display: flex; align-items: flex-start; gap: .65rem; margin: 0; padding: .7rem .75rem; border: 1px solid var(--bs-border-color); border-radius: .5rem; background: #fff; font-size: 1rem; line-height: 1.3; cursor: pointer; }
.rapida .escolhas input { flex: 0 0 auto; width: 1.35rem; height: 1.35rem; margin: 0; accent-color: var(--acnsg-primaria); }
.rapida .escolhas label:has(input:checked) { border-color: var(--acnsg-primaria); box-shadow: inset 0 0 0 1px var(--acnsg-primaria); font-weight: 600; }
.rapida .escolhas label:has(input:focus-visible) { outline: 2px solid var(--acnsg-primaria); outline-offset: 2px; }
.rapida .acoes-rapida .btn { min-height: 3.25rem; font-size: 1.05rem; }
.rapida .acoes-rapida { position: sticky; bottom: 0; z-index: 3; padding: .6rem .5rem; margin: 0 -.5rem; border-top: 1px solid var(--bs-border-color); background: #fff; box-shadow: 0 -.25rem .75rem rgba(0, 0, 0, .08); }
.rapida form { padding-bottom: .25rem; }
@media (min-width: 576px) {
  .rapida .escolhas > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .4rem; }
  .rapida .escolhas > div > div { margin-bottom: 0; }
  .rapida .escolhas label { height: 100%; }
}
@media print {
  body { background: #fff !important; font-size: 11pt; }
  .d-print-none, nav, footer, .btn, .alert, .toast, .pagination { display: none !important; }
  main { padding: 0 !important; }
  .card { border: 0 !important; box-shadow: none !important; }
  a { text-decoration: none; color: inherit; }
  .relatorio-impressao h1 { font-size: 16pt; }
  .relatorio-impressao h2 { font-size: 13pt; margin-top: 1rem; border-bottom: 1px solid #999; }
  .relatorio-impressao table { width: 100%; border-collapse: collapse; }
  .relatorio-impressao th, .relatorio-impressao td { border: 1px solid #bbb; padding: 3px 5px; }
  .quebra-antes { page-break-before: always; }
}
