:root {
  --teal: #0F6E56;
  --teal-mid: #1D9E75;
  --teal-light: #E1F5EE;
  --teal-pale: #F0FAF6;
  --teal-800: #085041;
  --ink: #0D1117;
  --gray: #57606A;
  --gray-2: #8B949E;
  --gray-light: #F6F8FA;
  --border: #D0D7DE;
  --white: #FFFFFF;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body {
  font-family: 'DM Sans', sans-serif;
  color: var(--ink);
  background: var(--white);
  line-height: 1.6;
}
nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 2rem;
  border-bottom: 1px solid var(--border);
  background: rgba(255,255,255,.95);
  position: sticky;
  top: 0;
  z-index: 100;
}
.brand {
  font-family: 'Instrument Serif', serif;
  font-size: 20px;
  color: var(--teal);
  text-decoration: none;
}
.nav-links { display: flex; align-items: center; gap: 1.5rem; list-style: none; }
.nav-links a { font-size: 14px; color: var(--gray); text-decoration: none; }
.nav-links a:hover { color: var(--ink); }
.nav-cta {
  background: var(--teal) !important;
  color: var(--white) !important;
  padding: 8px 20px;
  border-radius: 8px;
  font-weight: 500;
}
.wrap { max-width: 920px; margin: 0 auto; padding: 2.5rem 1.5rem 4rem; }
.crumb { font-size: 13px; color: var(--gray); margin-bottom: 1.25rem; }
.crumb a { color: var(--teal); text-decoration: none; }
h1 {
  font-family: 'Instrument Serif', serif;
  font-size: clamp(28px, 4vw, 42px);
  line-height: 1.15;
  letter-spacing: -.02em;
  margin-bottom: .75rem;
}
.lead { color: var(--gray); font-size: 17px; margin-bottom: 2rem; max-width: 640px; }
h2 {
  font-family: 'Instrument Serif', serif;
  font-size: 26px;
  margin: 2.25rem 0 .75rem;
}
p { margin-bottom: 1rem; }
table { width: 100%; border-collapse: collapse; font-size: 14px; margin: 1.25rem 0 2rem; }
th, td { text-align: left; padding: .65rem .75rem; border-bottom: 1px solid var(--border); vertical-align: top; }
th { background: var(--teal-pale); color: var(--teal-800); font-weight: 500; }
code { font-size: 13px; background: var(--gray-light); padding: 1px 6px; border-radius: 4px; }
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 1rem; margin: 1.5rem 0; }
.card {
  display: block;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 1.1rem 1.2rem;
  text-decoration: none;
  color: inherit;
}
.card:hover { border-color: var(--teal-mid); }
.card strong { display: block; color: var(--teal); margin-bottom: .25rem; }
.card span { font-size: 13px; color: var(--gray); }
.note {
  background: var(--teal-pale);
  border-left: 3px solid var(--teal);
  padding: .9rem 1rem;
  font-size: 14px;
  margin: 1.5rem 0;
}
.cta {
  display: inline-block;
  margin-top: 1.5rem;
  background: var(--teal);
  color: var(--white);
  text-decoration: none;
  padding: 12px 22px;
  border-radius: 10px;
  font-weight: 500;
}
footer {
  border-top: 1px solid var(--border);
  padding: 1.5rem 2rem;
  font-size: 13px;
  color: var(--gray);
  text-align: center;
}
footer a { color: var(--teal); text-decoration: none; }
.wrap-wide { max-width: 1040px; }
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); border: 0;
}
.busca-bar {
  display: grid;
  grid-template-columns: 1fr 260px auto;
  gap: .6rem;
  margin: 1.25rem 0 .5rem;
}
.busca-bar input,
.busca-bar select,
.busca-bar button {
  font-family: 'DM Sans', sans-serif;
  font-size: 15px;
  padding: 11px 14px;
  border-radius: 9px;
  border: 1px solid var(--border);
}
.busca-bar input:focus,
.busca-bar select:focus { outline: 2px solid var(--teal-light); border-color: var(--teal-mid); }
.busca-bar button {
  background: var(--teal);
  color: var(--white);
  border: none;
  font-weight: 500;
  cursor: pointer;
}
.busca-meta { font-size: 13px; color: var(--gray); margin-bottom: 1rem; }
.busca-vacio { color: var(--gray); }
#resultados .sub { font-size: 12px; color: var(--gray); margin-top: .2rem; }
#resultados a { color: var(--teal); text-decoration: none; }
.sat-grid-aviso {
  background: #fff3cd;
  border-left: 3px solid #856404;
  color: #856404;
  padding: .75rem 1rem;
  font-size: 14px;
  margin: 0 0 1rem;
}
.sat-grid-panel {
  margin: 1.25rem 0 2rem;
  overflow-x: auto;
}
table.sat-grid {
  margin: 0;
  font-size: 14px;
}
table.sat-grid th {
  background: #f3f4f6;
  color: #374151;
  font-weight: 600;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .03em;
}
.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter {
  font-size: 14px;
  color: var(--gray);
  margin-bottom: .85rem;
}
.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select {
  font-family: 'DM Sans', sans-serif;
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 4px 8px;
}
.dataTables_wrapper .dataTables_info,
.dataTables_wrapper .dataTables_paginate {
  font-size: 13px;
  color: var(--gray);
  margin-top: .85rem;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.current {
  background: var(--teal-pale) !important;
  border-color: var(--teal) !important;
  color: var(--teal-800) !important;
}
.imago-badge {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.imago-badge-active { background: #d4edda; color: #155724; }
.imago-badge-inactive { background: #f8d7da; color: #721c24; }
.imago-mp-cell {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.imago-mp-val {
  display: inline-flex;
  min-width: 1.75em;
  justify-content: center;
  padding: 2px 8px;
  border-radius: 4px;
  font-weight: 700;
  font-size: 12px;
  line-height: 1.3;
}
.imago-mp-val-0 { background: #d4edda; color: #155724; }
.imago-mp-val-01 { background: #fff3cd; color: #856404; }
.imago-mp-val-1 { background: #f8d7da; color: #721c24; }
.imago-mp-label { font-weight: 400; font-size: 13px; }
@media (max-width: 720px) {
  .nav-links { display: none; }
  nav { padding: 1rem; }
  .busca-bar { grid-template-columns: 1fr; }
}
