/* ── Variáveis ACA ────────────────────────────────────────────────────── */
:root {
  --aca-red:    #c0392b;
  --aca-yellow: #f1c40f;
  --aca-dark:   #1a1a1a;
  --aca-light:  #fafafa;
}

/* ── Layout geral ─────────────────────────────────────────────────────── */
body {
  background-color: #f4f6f9;
  font-family: 'Segoe UI', system-ui, sans-serif;
}

/* ── Navbar ───────────────────────────────────────────────────────────── */
.aca-navbar {
  background-color: var(--aca-red);
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
}

.aca-logo-nav {
  background: var(--aca-yellow);
  color: var(--aca-dark);
  font-weight: 900;
  font-size: .85rem;
  padding: 2px 7px;
  border-radius: 4px;
  letter-spacing: .5px;
}

/* ── Login ────────────────────────────────────────────────────────────── */
.aca-login-bg {
  background: linear-gradient(135deg, #c0392b 0%, #922b21 100%);
}

.aca-login-card {
  width: 100%;
  max-width: 400px;
  border-radius: 12px;
  overflow: hidden;
}

.aca-login-header {
  background: linear-gradient(135deg, #c0392b, #922b21);
}

.aca-logo-login {
  background: var(--aca-yellow);
  color: var(--aca-dark);
  font-weight: 900;
  font-size: 1.6rem;
  width: 60px;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  letter-spacing: 1px;
}

/* ── Botão primário ───────────────────────────────────────────────────── */
.aca-btn-primary {
  background-color: var(--aca-red);
  border-color: var(--aca-red);
  color: #fff;
}
.aca-btn-primary:hover, .aca-btn-primary:focus {
  background-color: #a93226;
  border-color: #a93226;
  color: #fff;
}

/* ── Card header ──────────────────────────────────────────────────────── */
.aca-card-header {
  background-color: var(--aca-red);
  color: #fff;
  font-weight: 600;
  font-size: .9rem;
  padding: .6rem 1rem;
}

/* ── Cards do dashboard ───────────────────────────────────────────────── */
.aca-card-stat {
  border-radius: 10px;
  transition: transform .15s;
}
.aca-card-stat:hover { transform: translateY(-2px); }

.aca-stat-icon {
  width: 48px;
  height: 48px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
}

/* ── Badges de categoria ──────────────────────────────────────────────── */
.aca-badge-fundador   { background-color: #6f42c1; color: #fff; }
.aca-badge-efetivo    { background-color: #0d6efd; color: #fff; }
.aca-badge-colaborador{ background-color: #0dcaf0; color: #000; }
.aca-badge-honorario  { background-color: #ffc107; color: #000; }

.aca-badge-fundador, .aca-badge-efetivo,
.aca-badge-colaborador, .aca-badge-honorario {
  display: inline-block;
  padding: .25em .6em;
  font-size: .75em;
  font-weight: 600;
  border-radius: .375rem;
}

/* ── Badges de situação de associado ─────────────────────────────────── */
.aca-badge-sit-ativo    { background-color: #198754; color: #fff; display:inline-block; padding:.25em .6em; font-size:.75em; font-weight:600; border-radius:.375rem; }
.aca-badge-sit-inativo  { background-color: #6c757d; color: #fff; display:inline-block; padding:.25em .6em; font-size:.75em; font-weight:600; border-radius:.375rem; }
.aca-badge-sit-excluido { background-color: #dc3545; color: #fff; display:inline-block; padding:.25em .6em; font-size:.75em; font-weight:600; border-radius:.375rem; }

/* ── Badges de status de programa/projeto ────────────────────────────── */
.aca-badge-status-ativo        { background-color: #198754; color:#fff; display:inline-block; padding:.25em .6em; font-size:.75em; font-weight:600; border-radius:.375rem; }
.aca-badge-status-inativo      { background-color: #6c757d; color:#fff; display:inline-block; padding:.25em .6em; font-size:.75em; font-weight:600; border-radius:.375rem; }
.aca-badge-status-concluido    { background-color: #0d6efd; color:#fff; display:inline-block; padding:.25em .6em; font-size:.75em; font-weight:600; border-radius:.375rem; }
.aca-badge-status-suspenso     { background-color: #ffc107; color:#000; display:inline-block; padding:.25em .6em; font-size:.75em; font-weight:600; border-radius:.375rem; }
.aca-badge-status-planejado    { background-color: #adb5bd; color:#000; display:inline-block; padding:.25em .6em; font-size:.75em; font-weight:600; border-radius:.375rem; }
.aca-badge-status-em_andamento { background-color: #0dcaf0; color:#000; display:inline-block; padding:.25em .6em; font-size:.75em; font-weight:600; border-radius:.375rem; }

/* ── Tabelas ──────────────────────────────────────────────────────────── */
.table > :not(caption) > * > * { padding: .6rem .75rem; }

/* ── Badges de status de atendimento ─────────────────────────────────── */
.aca-badge-at-rascunho    { background-color: #adb5bd; color:#000; display:inline-block; padding:.25em .6em; font-size:.75em; font-weight:600; border-radius:.375rem; }
.aca-badge-at-aprovado    { background-color: #0dcaf0; color:#000; display:inline-block; padding:.25em .6em; font-size:.75em; font-weight:600; border-radius:.375rem; }
.aca-badge-at-em_execucao { background-color: #fd7e14; color:#fff; display:inline-block; padding:.25em .6em; font-size:.75em; font-weight:600; border-radius:.375rem; }
.aca-badge-at-concluido   { background-color: #198754; color:#fff; display:inline-block; padding:.25em .6em; font-size:.75em; font-weight:600; border-radius:.375rem; }
.aca-badge-at-cancelado   { background-color: #dc3545; color:#fff; display:inline-block; padding:.25em .6em; font-size:.75em; font-weight:600; border-radius:.375rem; }
.aca-badge-at-desistencia    { background-color: #6f42c1; color:#fff; display:inline-block; padding:.25em .6em; font-size:.75em; font-weight:600; border-radius:.375rem; }
.aca-badge-at-nao_localizado { background-color: #495057; color:#fff; display:inline-block; padding:.25em .6em; font-size:.75em; font-weight:600; border-radius:.375rem; }

/* ── Timeline de status ───────────────────────────────────────────────── */
.aca-timeline { display:flex; gap:0; margin-bottom:1.5rem; }
.aca-timeline-step { flex:1; text-align:center; position:relative; padding:.5rem .25rem; font-size:.75rem; }
.aca-timeline-step::before {
  content:''; position:absolute; top:50%; left:0; right:0;
  height:3px; background:#dee2e6; z-index:0; transform:translateY(-120%);
}
.aca-timeline-step:first-child::before { left:50%; }
.aca-timeline-step:last-child::before  { right:50%; }
.aca-timeline-dot {
  width:28px; height:28px; border-radius:50%; border:3px solid #dee2e6;
  background:#fff; margin:0 auto .25rem; position:relative; z-index:1;
  display:flex; align-items:center; justify-content:center; font-size:.7rem;
}
.aca-timeline-step.done .aca-timeline-dot { background:#198754; border-color:#198754; color:#fff; }
.aca-timeline-step.active .aca-timeline-dot { background:#0d6efd; border-color:#0d6efd; color:#fff; }
.aca-timeline-step.done::before, .aca-timeline-step.active::before { background:#198754; }

/* ── Responsivo ───────────────────────────────────────────────────────── */
@media (max-width: 576px) {
  .aca-login-card { margin: 1rem; }
  main.container-fluid { padding-left: .75rem !important; padding-right: .75rem !important; }
}

/* ── Impressão ────────────────────────────────────────────────────────── */
@media print {
  .no-print { display: none !important; }
}

@page {
  margin-top: 9cm;
  margin-bottom: 2cm;
  margin-left: 3cm;
  margin-right: 2cm;
}

/* Compactado para caber em folha única (margem superior de 9cm = timbrado). */
.print-body {
  font-family: 'Times New Roman', Times, serif;
  font-size: 10.5pt;
  line-height: 1.3;
  color: #000;
}

.print-title {
  text-align: center;
  font-size: 12.5pt;
  font-weight: bold;
  text-transform: uppercase;
  margin-bottom: .55rem;
  letter-spacing: .5px;
}

.print-section {
  margin-bottom: .4rem;
  page-break-inside: avoid;
}

.print-label {
  font-weight: bold;
  font-size: 8.5pt;
  text-transform: uppercase;
  color: #555;
}

.print-field {
  border-bottom: 1px solid #000;
  min-height: 1.3em;
  margin-bottom: .15rem;
  padding: 0 2px;
}

.print-sign-area {
  margin-top: .6rem;
  page-break-inside: avoid;
}

/* Assinaturas empilhadas: a do beneficiário em cima, ocupando a linha inteira,
   e a do responsável da ACA embaixo. O protocolo (comprovante de uma página)
   é apertado demais para isso e mantém o modelo lado a lado no próprio
   template. */
.print-sign-line {
  text-align: center;
}

.print-sign-line hr {
  border-top: 1px solid #000;
  margin-bottom: .2rem;
}

.print-sign-line small {
  font-size: 8.5pt;
}

/* Beneficiário: sempre a primeira. Linha do tamanho da página e espaço em
   branco acima dela. Muitos são idosos ou pouco alfabetizados e assinam com
   letras grandes: assim a assinatura não esbarra no texto nem extrapola. */
.print-sign-line:first-child {
  padding-top: 1.5cm;
}

/* Responsável da ACA: embaixo, linha mais curta e centralizada, com espaço
   menor — assina normalmente. */
.print-sign-line:last-child {
  padding-top: .6cm;
  max-width: 65%;
  margin: 0 auto;
}
