/* BNIC-33 — tema visual unificado entre módulos (Fase de repaginação, 19/06/2026).
   Sobrescreve só cor/fonte via CSS, sem tocar a lógica de nenhum app. */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

:root {
  --bnic-bg: #f8fafc;
  --bnic-text: #0f172a;
  --bnic-primary: #1d4ed8;
  --bnic-primary-hover: #1e40af;
  --bnic-accent: #059669;
  --bnic-navy: #0f172a;
  --bnic-radius: 0.75rem;
  --bnic-shadow: 0 1px 3px 0 rgba(15,23,42,.06), 0 1px 2px -1px rgba(15,23,42,.04);
  --bnic-shadow-hover: 0 8px 30px rgba(15,23,42,.08);
}

html, body {
  font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
}
.font-sans {
  font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
}

/* Unifica CTA/destaque (indigo -> azul primário do portal) */
.bg-indigo-600 { background-color: var(--bnic-primary) !important; }
.hover\:bg-indigo-700:hover { background-color: var(--bnic-primary-hover) !important; }
.bg-indigo-700 { background-color: var(--bnic-primary-hover) !important; }
.bg-indigo-400 { background-color: #60a5fa !important; }
.bg-indigo-800 { background-color: #1e3a8a !important; }
.bg-indigo-50 { background-color: #eff6ff !important; }
.text-indigo-600 { color: var(--bnic-primary) !important; }
.text-indigo-700 { color: var(--bnic-primary-hover) !important; }
.hover\:text-indigo-600:hover { color: var(--bnic-primary) !important; }
.border-indigo-600 { border-color: var(--bnic-primary) !important; }
.border-indigo-100 { border-color: #dbeafe !important; }
.border-indigo-200 { border-color: #bfdbfe !important; }
.focus\:ring-indigo-500:focus { --tw-ring-color: var(--bnic-primary) !important; }

/* Suaviza a faixa ciano dos Manifestos pro tom navy do portal */
.bg-cyan-300 { background-color: var(--bnic-navy) !important; color: #fff !important; }

/* ===== Polish premium (19/06/2026) ===== */

/* Contraste melhorado para acessibilidade (WCAG AA) */
.text-slate-400 { color: #64748b !important; }

/* Transições suaves e consistentes em todo elemento interativo */
button, a, input, select, textarea {
  transition: background-color .15s ease, color .15s ease, border-color .15s ease, box-shadow .15s ease, opacity .15s ease, transform .15s ease !important;
}

/* Fade-in sutil ao carregar qualquer página do portal */
body {
  animation: bnic-fade-in .35s ease;
}
@keyframes bnic-fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* Scrollbar discreto e moderno (Webkit/Blink) */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background-color: #cbd5e1; border-radius: 8px; border: 2px solid transparent; background-clip: content-box; }
::-webkit-scrollbar-thumb:hover { background-color: #94a3b8; }

/* Sombra levemente mais "premium" nos cards/painéis com shadow-sm */
.shadow-sm {
  box-shadow: var(--bnic-shadow) !important;
}

/* ===== Refinamento institucional (19/06/2026) ===== */

/* Tabelas com linhas zebradas — reduz fadiga visual em dados densos */
table tbody tr:nth-child(even) {
  background-color: #f8fafc !important;
}
table tbody tr:nth-child(odd) {
  background-color: #ffffff !important;
}
/* Mantém hover visível sobre o zebra */
table tbody tr:hover {
  background-color: #f1f5f9 !important;
}

/* Cabeçalho de tabela fixo ao rolar (sticky) */
table thead {
  position: sticky;
  top: 0;
  z-index: 10;
}
table thead th {
  background-color: #f8fafc !important;
}

/* Badges de status consistentes em todo o portal */
.bg-amber-50, [class*="bg-amber-50"] { background-color: #fffbeb !important; }
.text-amber-700, [class*="text-amber-700"] { color: #b45309 !important; }
.bg-red-50, [class*="bg-red-50"] { background-color: #fef2f2 !important; }
.text-red-700, [class*="text-red-700"] { color: #b91c1c !important; }
.bg-emerald-50, [class*="bg-emerald-50"] { background-color: #ecfdf5 !important; }
.text-emerald-700, [class*="text-emerald-700"] { color: #047857 !important; }
.bg-green-100, [class*="bg-green-100"] { background-color: #dcfce7 !important; }
.text-green-700, [class*="text-green-700"] { color: #15803d !important; }
.bg-blue-50, [class*="bg-blue-50"] { background-color: #eff6ff !important; }
.text-blue-700, [class*="text-blue-700"] { color: #1d4ed8 !important; }

/* Scroll horizontal contido — wrapper de tabela não vaza da tela */
.overflow-x-auto {
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: #cbd5e1 transparent;
}

/* As tabelas de manifesto têm ajuste próprio em
   /esgoto-manifestos/tabelas.css (31/07/2026). */

/* ===== UX Refinamento (19/06/2026) ===== */

/* Padroniza green (obsoleto) → emerald (padrão do portal) */
.bg-green-600 { background-color: var(--bnic-accent) !important; }
.hover\:bg-green-700:hover { background-color: #047857 !important; }
.bg-green-700 { background-color: #047857 !important; }
.bg-green-50 { background-color: #ecfdf5 !important; }
.text-green-600 { color: var(--bnic-accent) !important; }

/* Hover com elevação sutil em cards de KPI, tabelas e painéis */
.rounded-2xl.border:not(input):not(select):not(textarea):not(td):not(th):hover {
  box-shadow: var(--bnic-shadow-hover) !important;
  transform: translateY(-1px) !important;
  transition: box-shadow .2s ease, transform .2s ease !important;
}
.rounded-xl.border:not(input):not(select):not(textarea):not(td):not(th):hover {
  box-shadow: var(--bnic-shadow-hover) !important;
  transform: translateY(-1px) !important;
  transition: box-shadow .2s ease, transform .2s ease !important;
}

/* Fonte mínima legível para badges e labels (uso prolongado em escritório) — aplica via atributo style no DOM */

/* Header com glassmorphism sutil em todos os módulos */
header.bg-white, [class*="header"] [class*="bg-white"] {
  backdrop-filter: blur(12px) !important;
  background-color: rgba(255,255,255,.85) !important;
}
