/* AcolheAPS — components.css: cards, badges, botões, chips, painéis */

/* ── Cards ──────────────────────────────────────────── */
.card {
  background: var(--card);
  border-radius: var(--r);
  padding: 1.25rem;
  box-shadow: var(--shadow-card);
  border: 1px solid var(--borda-sm);
}
.card + .card { margin-top: 0.75rem; }

/* Proto card (módulo home) */
.proto-grid { display: grid; gap: 1rem; padding: 0 0 2rem; }
.proto-card {
  background: var(--card);
  border-radius: var(--r);
  overflow: hidden;
  box-shadow: var(--shadow-card);
  border: 1px solid var(--borda-sm);
  display: flex;
  flex-direction: column;
}
.proto-img-area {
  /* Gradiente original restaurado */
  background: linear-gradient(160deg, #eee4d2 0%, #f4e8d4 50%, #eae0cc 100%);
  padding: 14px 12px 0;
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 300px;
  position: relative;
  overflow: hidden;
}
.proto-img-area::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 30% 60%, rgba(107,139,74,0.18) 0%, transparent 60%),
    radial-gradient(circle at 80% 20%, rgba(200,151,58,0.15) 0%, transparent 50%);
}
.proto-img-area img {
  width: min(94%, 310px);
  height: 292px;
  object-fit: contain;
  object-position: center center;
  filter: sepia(6%) saturate(88%) brightness(1.02);
  position: relative;
  z-index: 1;
  display: block;
}
.proto-body { padding: 1.25rem; flex: 1; display: flex; flex-direction: column; gap: 0.5rem; }
.proto-tag {
  display: inline-block;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--verde);
  background: var(--verde-50);
  border: 1px solid rgba(107,139,74,0.25);
  border-radius: 4px;
  padding: 2px 7px;
  width: fit-content;
}
.card-title { font-size: 1.2rem; font-weight: 700; color: var(--teal); font-family: var(--font-serif); }
.card-desc { font-size: 0.87rem; color: var(--txt-m); flex: 1; }

/* ── Botões ─────────────────────────────────────────── */
.btn-proto {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--teal);
  color: #fff;
  text-decoration: none;
  font-weight: 600;
  font-size: 0.9rem;
  border-radius: var(--r-sm);
  padding: 0.75rem 1.25rem;
  min-height: var(--tap-min);
  transition: background var(--transition), transform var(--transition);
  margin-top: 0.25rem;
}
.btn-proto:hover { background: var(--teal-light); color: #fff; transform: translateY(-1px); }
.btn-proto:active { transform: translateY(0); }

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  border-radius: var(--r-sm);
  font-weight: 600;
  font-size: 0.85rem;
  padding: 0.55rem 1rem;
  min-height: var(--tap-min);
  transition: background var(--transition), color var(--transition);
  cursor: pointer;
  border: none;
  text-decoration: none;
}
.btn-primary  { background: var(--teal); color: #fff; }
.btn-primary:hover { background: var(--teal-light); color: #fff; }
.btn-ghost    { background: transparent; color: var(--teal); border: 1.5px solid var(--teal); }
.btn-ghost:hover { background: var(--teal-50); }
.btn-sm { padding: 0.4rem 0.75rem; font-size: 0.78rem; min-height: 36px; }
.btn-danger { background: var(--urgencia); color: #fff; }

/* ── Badges ─────────────────────────────────────────── */
.badge {
  display: inline-flex; align-items: center; gap: 0.3rem;
  font-size: 0.7rem; font-weight: 700; letter-spacing: 0.03em;
  border-radius: 20px; padding: 2px 8px; white-space: nowrap;
}
.badge img { width: 11px; height: 11px; object-fit: contain; }

/* Categorias */
.badge-cat-exame             { background: var(--teal-50); color: var(--teal); border: 1px solid rgba(27,79,107,0.15); }
.badge-cat-vacina            { background: var(--verde-50); color: #3a5020; border: 1px solid rgba(107,139,74,0.2); }
.badge-cat-orientacao        { background: var(--azul-50); color: #3a5075; border: 1px solid rgba(139,164,196,0.25); }
.badge-cat-avaliacao_clinica { background: var(--teal-50); color: var(--teal); border: 1px solid rgba(27,79,107,0.15); }
.badge-cat-sinal_alerta      { background: rgba(166,48,32,0.1); color: var(--urgencia); border: 1px solid rgba(166,48,32,0.2); }
.badge-cat-encaminhamento    { background: var(--ambar-50); color: #7a5800; border: 1px solid rgba(212,168,67,0.3); }

/* Prioridade */
.badge-prio-alta     { background: rgba(166,48,32,0.1); color: var(--urgencia); border: 1px solid rgba(166,48,32,0.2); }
.badge-prio-urgencia { background: rgba(166,48,32,0.15); color: var(--urgencia); border: 1px solid rgba(166,48,32,0.3); }
.badge-prio-atencao  { background: var(--ambar-50); color: #7a5800; border: 1px solid rgba(212,168,67,0.3); }

/* Trilha */
.badge-trilha { background: var(--ambar-50); color: #7a5800; border: 1px solid rgba(212,168,67,0.3); }

/* Legado */
.badge-alta, .badge-urgencia { background: rgba(166,48,32,0.1); color: var(--urgencia); border: 1px solid rgba(166,48,32,0.25); }
.badge-atencao { background: var(--ambar-50); color: #7a5800; border: 1px solid rgba(212,168,67,0.35); }
.badge-rotina  { background: var(--verde-50); color: #3a5020; border: 1px solid rgba(107,139,74,0.25); }
.badge-exame    { background: var(--teal-50); color: var(--teal); border: 1px solid rgba(27,79,107,0.15); }
.badge-vacina   { background: var(--verde-50); color: #3a5020; border: 1px solid rgba(107,139,74,0.2); }
.badge-orientacao { background: var(--azul-50); color: #3a5075; border: 1px solid rgba(139,164,196,0.25); }
.badge-avaliacao_clinica { background: var(--teal-50); color: var(--teal); border: 1px solid rgba(27,79,107,0.15); }
.badge-sinal_alerta { background: rgba(166,48,32,0.1); color: var(--urgencia); border: 1px solid rgba(166,48,32,0.2); }
.badge-encaminhamento { background: var(--ambar-50); color: #7a5800; border: 1px solid rgba(212,168,67,0.3); }

/* ── Chips de condições modificadoras ───────────────── */
.chips-container {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding: 0.75rem 0;
}
.chip {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.4rem 0.85rem;
  border-radius: 20px;
  border: 1.5px solid var(--borda);
  background: #fff;
  color: var(--txt-m);
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  transition: all var(--transition);
  min-height: 36px;
  white-space: nowrap;
}
.chip:hover { border-color: var(--teal); color: var(--teal); background: var(--teal-50); }
.chip[aria-pressed="true"] {
  background: var(--teal);
  color: #fff;
  border-color: var(--teal);
}
.chip-urgencia[aria-pressed="true"] { background: var(--urgencia); border-color: var(--urgencia); }
.chip-atencao[aria-pressed="true"]  { background: var(--ambar); border-color: var(--ambar); color: var(--txt); }

/* ── Painel expansível (detalhe, justificativa, fonte) ─ */
.painel {
  background: var(--teal-50);
  border: 1px solid rgba(27,79,107,0.12);
  border-radius: var(--r-sm);
  margin-top: 0.5rem;
  overflow: hidden;
}
.painel-header {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.75rem 1rem;
  background: none;
  border: none;
  font-weight: 600;
  font-size: 0.85rem;
  color: var(--teal);
  cursor: pointer;
  min-height: var(--tap-min);
  text-align: left;
  gap: 0.5rem;
}
.painel-header:hover { background: rgba(27,79,107,0.05); }
.painel-icon {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  transition: transform var(--transition);
}
.painel-header[aria-expanded="true"] .painel-icon { transform: rotate(180deg); }
.painel-body { padding: 0 1rem 1rem; font-size: 0.85rem; color: var(--txt); }

/* Justificativa "Por que apareceu?" */
.painel-justificativa { background: var(--teal-50); border-color: rgba(27,79,107,0.12); }
.painel-fonte         { background: var(--verde-50); border-color: rgba(107,139,74,0.15); }
.painel-alerta-atencao { background: var(--ambar-50); border-color: rgba(212,168,67,0.3); }
.painel-alerta-urgencia { background: rgba(166,48,32,0.07); border-color: rgba(166,48,32,0.2); }

/* ── Alertas de painel ──────────────────────────────── */
.alerta-box {
  border-radius: var(--r-sm);
  padding: 1rem;
  margin-bottom: 0.75rem;
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
}
.alerta-box-rotina   { background: var(--verde-50); border: 1px solid rgba(107,139,74,0.2); }
.alerta-box-atencao  { background: var(--ambar-50); border: 1px solid rgba(212,168,67,0.35); }
.alerta-box-alto_risco { background: var(--terracota-50); border: 1px solid rgba(196,114,42,0.3); }
.alerta-box-urgencia {
  background: rgba(166,48,32,0.08);
  border: 2px solid rgba(166,48,32,0.35);
}
.alerta-icon { font-size: 1.2rem; flex-shrink: 0; line-height: 1; margin-top: 0.1rem; }
.alerta-content { flex: 1; min-width: 0; }
.alerta-titulo { font-weight: 700; font-size: 0.88rem; margin-bottom: 0.25rem; }
.alerta-box-urgencia .alerta-titulo { color: var(--urgencia); }
.alerta-box-atencao  .alerta-titulo { color: #7a5800; }
.alerta-mensagem { font-size: 0.83rem; color: var(--txt); }

/* ── SUS badge ──────────────────────────────────────── */
.sus-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--verde);
  background: var(--verde-50);
  border: 1px solid rgba(107,139,74,0.25);
  border-radius: 20px;
  padding: 4px 10px;
}

/* ── Hero intro (index) ─────────────────────────────── */
.intro-hero {
  text-align: center;
  padding: 2rem 0 1rem;
}
.intro-logo { margin: 0 auto 1rem; width: min(220px, 55vw); }
.intro-eyebrow {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--verde);
  margin-bottom: 0.4rem;
}
.intro-title {
  font-family: var(--font-serif);
  font-size: clamp(1.2rem, 5vw, 1.6rem);
  color: var(--teal);
  margin-bottom: 0.75rem;
}
.intro-text { font-size: 0.9rem; color: var(--txt-m); max-width: 480px; margin: 0 auto; }

/* ── Empty state ────────────────────────────────────── */
.empty-state {
  text-align: center;
  padding: 2.5rem 1rem;
  color: var(--txt-l);
  font-size: 0.9rem;
}
.empty-state strong { display: block; font-size: 1.1rem; color: var(--txt-m); margin-bottom: 0.5rem; }

/* ── Toast / notificação leve ───────────────────────── */
.toast {
  position: fixed;
  bottom: 1.5rem;
  left: 50%;
  transform: translateX(-50%) translateY(100px);
  background: var(--teal);
  color: #fff;
  padding: 0.6rem 1.25rem;
  border-radius: 20px;
  font-size: 0.85rem;
  font-weight: 600;
  z-index: 900;
  pointer-events: none;
  transition: transform 0.25s ease, opacity 0.25s ease;
  opacity: 0;
  white-space: nowrap;
}
.toast.show { transform: translateX(-50%) translateY(0); opacity: 1; }


/* ── AcolheAPS: badges clínicos revisados ─────────────────────
   Padroniza categorias e prioridades para evitar rótulos crus como
   "muito_alta" ou categorias sem estilo. */
.badge {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 1.35rem;
  padding: 0.18rem 0.55rem;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.015em;
  white-space: nowrap;
}

.badge-prio-importante,
.badge-prio-alta {
  background: rgba(212,168,67,0.16);
  color: #735313;
  border: 1px solid rgba(212,168,67,0.34);
}

.badge-prio-atencao,
.badge-prio-media {
  background: rgba(139,164,196,0.17);
  color: #344d73;
  border: 1px solid rgba(139,164,196,0.32);
}

.badge-prio-critico,
.badge-prio-muito_alta,
.badge-prio-critica,
.badge-prio-urgencia {
  background: rgba(166,48,32,0.12);
  color: #8e2d20;
  border: 1px solid rgba(166,48,32,0.28);
}

.badge-cat-exame,
.badge-cat-seguimento_laboratorial {
  background: var(--teal-50);
  color: var(--teal);
  border: 1px solid rgba(27,79,107,0.15);
}

.badge-cat-exame_fisico,
.badge-cat-avaliacao_clinica,
.badge-cat-rastreamento {
  background: rgba(27,79,107,0.08);
  color: var(--teal);
  border: 1px solid rgba(27,79,107,0.14);
}

.badge-cat-vacina,
.badge-cat-vacinacao {
  background: var(--verde-50);
  color: #3a5020;
  border: 1px solid rgba(107,139,74,0.22);
}

.badge-cat-orientacao,
.badge-cat-anamnese,
.badge-cat-cuidado_compartilhado {
  background: rgba(139,164,196,0.14);
  color: #385273;
  border: 1px solid rgba(139,164,196,0.26);
}

.badge-cat-estratificacao_risco {
  background: rgba(212,168,67,0.14);
  color: #6f4f10;
  border: 1px solid rgba(212,168,67,0.30);
}

.badge-cat-sinal_alerta,
.badge-cat-seguranca_medicamentosa {
  background: rgba(166,48,32,0.10);
  color: #8e2d20;
  border: 1px solid rgba(166,48,32,0.24);
}

.badge-cat-medicamento_suplementacao,
.badge-cat-medicamento_condicional,
.badge-cat-tratamento {
  background: rgba(183,111,58,0.12);
  color: #7a3f1c;
  border: 1px solid rgba(183,111,58,0.24);
}

.badge-cat-seguimento,
.badge-cat-agendamento,
.badge-cat-organizacao_do_cuidado,
.badge-cat-organizacao_da_rede,
.badge-cat-encaminhamento {
  background: rgba(244,232,205,0.82);
  color: #684c1c;
  border: 1px solid rgba(212,168,67,0.26);
}

/* ── Ajustes responsivos dos módulos da página inicial ──────────────── */
.proto-grid-home {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
  align-items: stretch;
  gap: clamp(1rem, 2.4vw, 1.5rem);
  max-width: 1080px;
  margin-inline: auto;
}

.proto-grid-home .proto-card {
  min-height: 100%;
  border-radius: calc(var(--r) + 6px);
  transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition);
}

.proto-grid-home .proto-card:hover,
.proto-grid-home .proto-card:focus-within {
  transform: translateY(-2px);
  box-shadow: 0 16px 38px rgba(27, 79, 107, 0.14);
  border-color: rgba(27, 79, 107, 0.18);
}

.proto-grid-home .proto-img-area {
  min-height: clamp(150px, 19vw, 210px);
  padding: clamp(0.5rem, 1.5vw, 0.75rem) clamp(0.5rem, 1.5vw, 1rem) 0;
}

.proto-grid-home .proto-img-area img {
  width: min(90%, 260px);
  height: clamp(140px, 18vw, 190px);
  object-fit: contain;
}

.proto-card-pessoa-idosa .proto-img-area img {
  width: min(80%, 240px);
  height: clamp(130px, 17vw, 180px);
}

.proto-grid-home .proto-body {
  min-height: 0;
  padding: 1rem;
}

.proto-grid-home .card-desc {
  line-height: 1.62;
}

@media (min-width: 880px) {
  .proto-grid-home {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 420px) {
  .proto-grid-home {
    gap: 1rem;
  }

  .proto-grid-home .proto-img-area {
    min-height: 150px;
  }

  .proto-grid-home .proto-img-area img,
  .proto-card-pessoa-idosa .proto-img-area img {
    width: min(88%, 220px);
    height: 140px;
  }
}
