/* ══════════════════════════════════════════════════════════════
   ficha.css — réplica fiel do Formulário de Admissão (A4 retrato)
   Todas as medidas internas em pt, espelhando a geometria do PDF
   original (595,28 × 841,89 pt).
   ══════════════════════════════════════════════════════════════ */

.ficha {
  --verde: #65a34a;
  --vermelho: #b5362b;
  --vermelho-obs: #c00800;
  --tinta: #1d1d1b;
  --campo: #f6f6f6;
  --foto-bg: #edf6f3;
  --borda: 1.1pt solid var(--verde);

  position: relative;
  box-sizing: border-box;
  width: 595.28pt;
  height: 841.89pt;
  padding: 11.5pt 9.8pt 9.4pt 11.5pt;
  background: #fff;
  color: var(--tinta);
  font-family: Georgia, "Times New Roman", "Liberation Serif", serif;
  font-weight: 700;
  font-variant-ligatures: none;
  overflow: hidden;
  /* garante que fundos e cores saiam na impressão / PDF */
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

/* moldura arredondada externa */
.ficha::before {
  content: "";
  position: absolute;
  inset: 11.5pt 9.8pt 9.4pt 11.5pt;
  border: var(--borda);
  border-radius: 5pt;
  pointer-events: none;
}

.ficha p { margin: 0; }

/* ── blocos ─────────────────────────────────────────────────── */
.bl {
  box-sizing: border-box;
  padding-left: 11.5pt;
  padding-right: 18.4pt;
}
.bl + .bl { border-top: var(--borda); }

.bl--cabecalho  { height: 144pt; }
.bl--loja       { height: 59pt;   padding-top: 9.5pt; }
.bl--pessoais   { height: 196pt;  padding-top: 14.5pt; padding-left: 7.5pt; }
.bl--maconicas  { height: 85pt;   padding-top: 17.5pt; }
.bl--cerimonia  { height: 85.5pt; padding-top: 16.5pt; }
.bl--assinaturas{ position: relative; height: 251.5pt; padding-top: 18pt; padding-left: 13.5pt; }

/* ── cabeçalho ──────────────────────────────────────────────── */
.bl--cabecalho {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8pt;
  padding-top: 9pt;
  padding-left: 8pt;
  padding-right: 8pt;
}
.brasao {
  width: 62pt;
  height: auto;
  flex: 0 0 auto;
  margin-top: 4pt;
}
.cabecalho__texto {
  flex: 1;
  text-align: center;
  padding-top: 2pt;
}
.ficha .ct-titulo  { font-size: 13.5pt; line-height: 1.28; color: var(--vermelho); }
.ficha .ct-sub     { font-size: 9.5pt;  line-height: 1.32; }
.ficha .ct-sub--menor { font-size: 8.5pt; margin-top: 13pt; }
.ficha .ct-italico { font-size: 9.5pt;  line-height: 1.32; font-style: italic; }
.ficha .ct-form    { font-size: 13pt;   line-height: 1.5; margin-top: 1.5pt; }

/* ── títulos de seção ───────────────────────────────────────── */
.sec {
  font-size: 9.5pt;
  color: var(--verde);
  text-transform: uppercase;
  letter-spacing: 0.15pt;
  margin-bottom: 8.5pt;
}

/* ── linhas de rótulo + campo ───────────────────────────────── */
.ln {
  display: flex;
  align-items: stretch;
  height: 17pt;
}
.ln + .ln { margin-top: 5.5pt; }

.rot {
  flex: 0 0 auto;
  width: var(--w, auto);
  display: flex;
  align-items: center;
  font-size: 8pt;
  text-transform: uppercase;
  letter-spacing: 0;
  white-space: nowrap;
  padding-right: 4pt;
}
.rot--dir  { justify-content: flex-end; padding-right: 5pt; }
.rot--livre{ width: auto; padding-left: 5pt; }

.cmp {
  flex: 1 1 auto;
  width: var(--w, auto);
  min-width: 0;
  display: flex;
  align-items: center;
  padding: 0 5pt;
  background: var(--campo);
  font-size: 9pt;
  line-height: 1;
  overflow: hidden;
  white-space: nowrap;
}
.cmp[style*="--w"] { flex: 0 0 auto; }
.cmp--centro { justify-content: center; padding: 0 3pt; }

.txt {
  flex: 0 0 auto;
  width: var(--w, auto);
  display: flex;
  align-items: center;
  font-size: 9pt;
}

/* ── informações pessoais ───────────────────────────────────── */
.pessoais__corpo { display: flex; }
.foto {
  flex: 0 0 auto;
  width: 84pt;
  height: 112pt;
  background: var(--foto-bg);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.foto img { width: 70pt; height: auto; }
.foto.foto--preenchida img { width: 100%; height: 100%; object-fit: cover; }
.pessoais__campos { flex: 1; min-width: 0; margin-left: 26pt; }

/* ── graus (radio) ──────────────────────────────────────────── */
.ln--graus { margin-top: 8pt; }
.ln--graus .rot { width: 190pt; }
.grau {
  flex: 1 1 0;
  display: flex;
  align-items: center;
  gap: 5pt;
  font-size: 7.8pt;
  white-space: nowrap;
  overflow: hidden;
}
.bolinha {
  flex: 0 0 auto;
  width: 10pt;
  height: 10pt;
  border: 1.3pt solid #7a2119;
  border-radius: 50%;
  position: relative;
}
.grau--marcado .bolinha::after {
  content: "";
  position: absolute;
  inset: 1.8pt;
  border-radius: 50%;
  background: var(--tinta);
}

/* ── assinaturas ────────────────────────────────────────────── */
.assin-grade {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  column-gap: 10pt;
  row-gap: 8pt;
  margin: 7pt -16.4pt 0 -7pt;
}
.assin { display: flex; flex-direction: column; }
.assin__caixa {
  height: 60pt;
  border: 1pt solid var(--tinta);
}
.assin p {
  margin-top: 3pt;
  text-align: center;
  font-size: 8.5pt;
  text-transform: uppercase;
  letter-spacing: 0.1pt;
}
.assin--declaracao {
  flex-direction: row;
  align-items: center;
  gap: 5pt;
  padding-left: 7pt;
  height: 17pt;
}
.assin--declaracao .rot { width: auto; }
.cmp--check {
  flex: 0 0 auto;
  width: 27pt;
  height: 17pt;
  font-size: 11pt;
  color: #65b32e;
}
.cmp--check b { visibility: hidden; }
.ficha.tem-fe .cmp--check b { visibility: visible; }

/* ── observações ────────────────────────────────────────────── */
.obs {
  margin: 6pt 92pt 0 -6pt;
  color: var(--vermelho-obs);
  font-size: 6.8pt;
  line-height: 1.5;
}

/* versão do formulário + carimbo de emissão — canto inferior direito */
.ficha .rodape-meta {
  position: absolute;
  right: 20pt;
  bottom: 9pt;
  text-align: right;
  line-height: 1.45;
  color: var(--verde);
}
.ficha .versao  { font-size: 6.8pt; letter-spacing: 0.2pt; }
.ficha .emissao { font-size: 6pt; }
.ficha .emissao:empty { display: none; }

/* ══════════════════════════════════════════════════════════════
   Impressão — sobra apenas a ficha, em escala 1:1
   ══════════════════════════════════════════════════════════════ */
@page { size: A4 portrait; margin: 0; }

@media print {
  .topbar,
  .painel--form { display: none !important; }

  html, body { background: #fff; margin: 0; padding: 0; height: auto; }
  .split { display: block; height: auto; }
  .painel--preview { display: block; padding: 0; background: #fff; overflow: visible; }
  .palco { display: block; padding: 0; height: auto; min-height: 0; }
  .folha-wrap {
    transform: none !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
  }
  .ficha {
    box-shadow: none !important;
    margin: 0 !important;
    break-inside: avoid;
    page-break-inside: avoid;
  }
}
