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

/* ==========================================================================
   IDENTIDADE VISUAL: VERDE-OLIVA, VERDE-FLORESTA, GRAFITE, BRANCO E LARANJA
   ========================================================================== */
:root {
  --bg-primary: #f8fafc;
  --bg-secondary: #ffffff;
  --bg-card: #ffffff;
  --bg-card-hover: #f1f5f9;
  --border-color: #cbd5e1; /* Borda mais definida */
  --border-highlight: #1e4620;
  --text-main: #0f172a; /* Preto/Grafite de ALTO CONTRASTE */
  --text-muted: #334155; /* Texto secundário bem legível */
  --text-heading: #020617;
  --color-olive: #4A5D23;
  --color-forest: #1e4620;
  --color-graphite: #0f172a;
  --color-orange: #c2410c;
  --color-orange-bg: #fff7ed;
  --color-olive-bg: #f4f7f0;
  --grid-line: rgba(15, 23, 42, 0.05);
  --shadow-card: 0 4px 12px -2px rgba(0, 0, 0, 0.08);
}

.dark {
  --bg-primary: #0a0f18; /* Fundo escuro imersivo */
  --bg-secondary: #0f172a;
  --bg-card: #0f172a; /* Card escuro grafite sólido */
  --bg-card-hover: #1e293b;
  --border-color: #334155; /* Borda nítida no escuro */
  --border-highlight: #10b981;
  --text-main: #f8fafc; /* Branco puro de ALTO CONTRASTE */
  --text-muted: #cbd5e1; /* Cinza claro bem nítido */
  --text-heading: #ffffff;
  --color-olive: #84cc16;
  --color-forest: #10b981;
  --color-graphite: #0f172a;
  --color-orange: #fb923c;
  --color-orange-bg: rgba(249, 115, 22, 0.2);
  --color-olive-bg: rgba(104, 138, 56, 0.2);
  --grid-line: rgba(255, 255, 255, 0.04);
  --shadow-card: 0 6px 20px -2px rgba(0, 0, 0, 0.6);
}

body {
  font-family: 'Inter', sans-serif;
  background-color: var(--bg-primary);
  color: var(--text-main);
  scroll-behavior: smooth;
  overflow-x: hidden;
  transition: background-color 0.25s ease, color 0.25s ease;
}

.font-mono {
  font-family: 'JetBrains Mono', monospace;
}

/* Oculta qualquer resquício de botão ou widget de terceiros no topo e canto esquerdo */
[vw], [vw-access-button], .vw-plugin-top-wrapper, div[vw], .vlibras-enabled,
#whatsapp-top-button, .wa-top-btn, [data-wa-top] {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
  width: 0 !important;
  height: 0 !important;
  max-width: 0 !important;
  max-height: 0 !important;
  position: absolute !important;
  left: -9999px !important;
}

/* Fixação perfeita e sem frestas para o topo unificado */
.sticky.top-0 {
  position: -webkit-sticky !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 50 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Scrollbar estilizada */
::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
::-webkit-scrollbar-track {
  background: var(--bg-primary);
}
::-webkit-scrollbar-thumb {
  background: var(--border-color);
  border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
  background: var(--color-olive);
}

/* Grade sutil */
.bg-grid-tactical {
  background-image: linear-gradient(to right, var(--grid-line) 1px, transparent 1px),
                    linear-gradient(to bottom, var(--grid-line) 1px, transparent 1px);
  background-size: 32px 32px;
}

.tactical-border {
  border: 1px solid var(--border-color);
  box-shadow: var(--shadow-card);
}

.tactical-tag {
  letter-spacing: 0.06em;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  padding: 0.25rem 0.6rem;
  border-radius: 0.375rem;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

/* Checkboxes customizados */
.tactical-checkbox {
  appearance: none;
  background-color: var(--bg-card);
  border: 2px solid var(--border-color);
  border-radius: 5px;
  width: 1.25rem;
  height: 1.25rem;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
  position: relative;
  flex-shrink: 0;
}

.tactical-checkbox:checked {
  background-color: var(--color-forest);
  border-color: var(--color-forest);
}

.tactical-checkbox:checked::after {
  content: '✓';
  color: #fff;
  font-size: 0.85rem;
  font-weight: bold;
}

.item-checked {
  text-decoration: line-through;
  opacity: 0.55;
}

/* Abas ativas */
.tab-btn.active {
  background-color: #4A5D23 !important;
  color: #ffffff !important;
  font-weight: 700;
  border-color: #4A5D23 !important;
}

/* Slots Google AdSense */
.adsense-wrapper {
  margin: 1.5rem auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.adsense-label {
  font-size: 0.65rem;
  font-family: 'JetBrains Mono', monospace;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: 0.35rem;
}

.adsense-placeholder {
  min-height: 90px;
  width: 100%;
  max-width: 970px;
  background-color: var(--bg-card);
  border: 1px dashed var(--border-color);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px;
  color: var(--text-muted);
  font-size: 0.75rem;
}

/* Modal styles */
.modal-backdrop {
  backdrop-filter: blur(5px);
  background-color: rgba(15, 23, 42, 0.75);
}

/* Impressão Limpa em A4 */
@media print {
  body {
    background-color: #ffffff !important;
    color: #000000 !important;
    font-size: 11pt !important;
  }
  .no-print, header, nav, footer, .adsense-wrapper, #cookie-banner, #theme-toggle, aside, .tab-btn {
    display: none !important;
  }
  .print-area {
    display: block !important;
    width: 100% !important;
    color: #000000 !important;
    page-break-after: always;
  }
  .print-area * {
    color: #000000 !important;
    border-color: #666666 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  /* Isolamento automático quando o modal estiver aberto na hora de imprimir */
  body:has(#modal-download-doc:not(.hidden)) main {
    display: none !important;
  }
  #modal-download-doc:not(.hidden) {
    position: static !important;
    display: block !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
  }
  #modal-download-doc:not(.hidden) > div {
    max-width: 100% !important;
    box-shadow: none !important;
    border: none !important;
    padding: 0 !important;
  }
}

/* ==========================================================================
   OTIMIZAÇÃO DE LEGIBILIDADE (MODO CLARO E MODO ESCURO)
   ========================================================================== */
p, span, li, label {
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

/* Modo Claro: Texto encorpado e sem cinza apagado */
body:not(.dark) {
  color: #0f172a !important;
}

body:not(.dark) .text-slate-600,
body:not(.dark) .text-slate-500 {
  color: #334155 !important; /* Ardósia escuro de alto contraste */
}

body:not(.dark) .text-slate-700 {
  color: #1e293b !important;
}

body:not(.dark) .border-slate-200 {
  border-color: #cbd5e1 !important;
}

/* Modo Escuro: Cartões e Títulos com contraste perfeito */
.dark body {
  background-color: #0a0f18 !important;
  color: #f8fafc !important;
}

.dark article {
  background-color: #0f172a !important;
  border-color: #334155 !important;
}

.dark .text-slate-400 {
  color: #94a3b8 !important;
}

.dark .text-slate-500,
.dark .text-slate-600 {
  color: #cbd5e1 !important;
}

.dark .prose h3 {
  color: #fbbf24 !important; /* Âmbar nítido no escuro */
}

/* ==========================================================================
   FORÇA CONTRASTE PERFEITO DOS CARDS NO MODO ESCURO E CLARO (ZERO FALHAS)
   ========================================================================== */
.dark #articles-grid article,
.dark article,
html.dark article {
  background-color: #0f172a !important;
  border: 1px solid #334155 !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4) !important;
}

.dark #articles-grid article h4,
html.dark article h4 {
  color: #ffffff !important;
}

.dark #articles-grid article p,
html.dark article p {
  color: #cbd5e1 !important;
}

.dark #articles-grid article .cat-badge,
html.dark article .cat-badge {
  background-color: #143616 !important;
  color: #86efac !important;
  border: 1px solid #2d6a4f !important;
  font-weight: 700 !important;
}

.dark #articles-grid article button,
html.dark article button {
  background-color: #1e4620 !important;
  color: #ffffff !important;
}

/* Modo Claro: Cards nítidos com fundo branco, títulos pretos e resumos escuros */
html:not(.dark) #articles-grid article {
  background-color: #ffffff !important;
  border: 1px solid #cbd5e1 !important;
}

html:not(.dark) #articles-grid article h4 {
  color: #0f172a !important;
  font-weight: 800 !important;
}

html:not(.dark) #articles-grid article p {
  color: #1e293b !important;
}

/* ==========================================================================
   VÍDEOS: CONTAINER 16:9 RESPONSIVO E THUMBNAILS VIBRANTES
   ========================================================================== */
.video-player-container {
  position: relative !important;
  width: 100% !important;
  aspect-ratio: 16 / 9 !important;
  min-height: 200px !important;
  background-color: #020617 !important;
  overflow: hidden !important;
  display: block !important;
}

.video-player-container img.video-thumb {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
}

.video-player-container iframe {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  border: 0 !important;
}

