/* ASTRO GECIAP - Sistema visual (tokens + refino)
   Identidade Policia Penal de Goias: verde institucional dessaturado sobre
   neutros levemente tintados de verde. Server-rendered (Bootstrap 5). */

:root {
  /* Paleta institucional */
  --pp-ink:        #14241c;   /* off-black esverdeado (nao usar #000) */
  --pp-green:      #15633f;   /* verde institucional (acento unico) */
  --pp-green-700:  #0f4d31;
  --pp-green-300:  #5fae86;
  --pp-surface:    #f4f6f5;   /* fundo geral, tinta verde */
  --pp-card:       #ffffff;
  --pp-line:       #e3e8e5;   /* bordas */
  --pp-muted:      #5d6b64;   /* texto secundario */
  --pp-ink-2:      #233a2e;

  --pp-radius: 0.65rem;
  --pp-shadow: 0 1px 2px rgba(20,36,28,.06), 0 8px 24px -16px rgba(20,36,28,.18);

  /* Bootstrap overrides */
  --bs-primary: var(--pp-green);
  --bs-link-color: var(--pp-green-700);
  --bs-link-hover-color: var(--pp-ink);
  --bs-body-color: #1f2a24;
  --bs-border-color: var(--pp-line);
}

body {
  font-size: 0.9rem;
  background: var(--pp-surface);
  color: var(--bs-body-color);
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

/* Numeros tabulares em monospace (metricas) */
.num-mono, .kpi-hero .num, .kpi-strip .num {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
  letter-spacing: -0.01em;
}

h1,h2,h3,h4,h5,h6,.h5 { letter-spacing: -0.015em; }

/* ---- Navbar institucional ---- */
.navbar.bg-dark {
  background: linear-gradient(180deg, var(--pp-ink-2), var(--pp-ink)) !important;
  border-bottom: 2px solid var(--pp-green);
}
.navbar-brand { font-weight: 700; letter-spacing: .5px; }
.navbar .nav-link { font-weight: 500; opacity: .82; transition: opacity .15s ease, color .15s ease; }
.navbar .nav-link:hover { opacity: 1; }
.navbar .nav-link.active { opacity: 1; font-weight: 600; color: var(--pp-green-300) !important; }

/* ---- Cards / superficies ---- */
.card {
  border: 1px solid var(--pp-line);
  border-radius: var(--pp-radius);
  box-shadow: var(--pp-shadow);
}
.card-header {
  font-weight: 600;
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: .04em;
  background: transparent;
  border-bottom: 1px solid var(--pp-line);
}
.border { border-color: var(--pp-line) !important; }
.rounded { border-radius: var(--pp-radius) !important; }

/* ---- Botoes: acento institucional + feedback tatil ---- */
.btn { transition: transform .08s ease, box-shadow .15s ease, background-color .15s ease; }
.btn:active { transform: translateY(1px); }
.btn-primary, .btn-success {
  --bs-btn-bg: var(--pp-green); --bs-btn-border-color: var(--pp-green);
  --bs-btn-hover-bg: var(--pp-green-700); --bs-btn-hover-border-color: var(--pp-green-700);
  --bs-btn-active-bg: var(--pp-green-700); --bs-btn-active-border-color: var(--pp-green-700);
}
.btn-outline-primary, .btn-outline-success {
  --bs-btn-color: var(--pp-green-700); --bs-btn-border-color: var(--pp-green);
  --bs-btn-hover-bg: var(--pp-green); --bs-btn-hover-border-color: var(--pp-green);
  --bs-btn-active-bg: var(--pp-green-700);
}
.text-success { color: var(--pp-green) !important; }
.bg-success { background-color: var(--pp-green) !important; }
.badge.bg-success { background-color: var(--pp-green) !important; }

/* ---- Tabelas ---- */
.table th {
  font-size: 0.74rem;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--pp-muted);
  font-weight: 600;
}
.table td { font-size: 0.86rem; vertical-align: middle; }
.table-hover tbody tr:hover { background: #f0f4f1; }

/* ---- Forms ---- */
.form-label { font-weight: 600; color: var(--pp-ink-2); }
.form-control:focus, .form-select:focus {
  border-color: var(--pp-green-300);
  box-shadow: 0 0 0 .2rem rgba(21,99,63,.15);
}

/* ---- Mapa (Leaflet) ---- */
.marker-custom { background: transparent !important; border: none !important; }
#mapa { border-radius: var(--pp-radius); }
.leaflet-popup-content { font-size: 0.85rem; line-height: 1.4; }
.leaflet-popup-content hr { border-color: var(--pp-line); }

/* ---- Estado vazio ---- */
.estado-vazio { color: var(--pp-muted); text-align: center; padding: 2.5rem 1rem; }
.estado-vazio .bi { font-size: 2rem; opacity: .4; display: block; margin-bottom: .5rem; }
