/* IngSoft V81.2 — Sistema estructural premium para Observatorio, Publicaciones, Datos, Citar y Contacto
   Corrección integrada, no parche: define una capa final coherente de contraste, legibilidad,
   composición editorial, tarjetas, tablas, formularios y trazabilidad pública. */

:root{
  --v812-navy:#06152A;
  --v812-ink:#071832;
  --v812-ink-2:#16395B;
  --v812-ink-3:#315D7F;
  --v812-blue:#0B73D9;
  --v812-blue-2:#075F98;
  --v812-cyan:#24C8F2;
  --v812-red:#E41E2B;
  --v812-soft:#F4F9FD;
  --v812-white:#FFFFFF;
  --v812-line:#BFDDF2;
  --v812-line-2:#D6E8F6;
  --v812-shadow:0 22px 54px rgba(7,24,50,.12);
  --v812-shadow-soft:0 12px 30px rgba(7,24,50,.10);
}

/* ==========================================================================
   1. Observatorio: trazabilidad bajo gráfica con contraste correcto
   ========================================================================== */
body.page-observatorio #chartFootnotes,
body[v97-observatorio] #chartFootnotes,
html body #chartFootnotes.chart-footnotes{
  margin:22px 0 0 !important;
  padding:20px 24px !important;
  border-radius:24px !important;
  background:linear-gradient(180deg,#FFFFFF 0%,#F6FBFF 100%) !important;
  border:1px solid var(--v812-line) !important;
  box-shadow:var(--v812-shadow-soft) !important;
  color:var(--v812-ink) !important;
  -webkit-text-fill-color:initial !important;
  opacity:1 !important;
  overflow:visible !important;
}
body.page-observatorio #chartFootnotes *,
body[v97-observatorio] #chartFootnotes *,
html body #chartFootnotes.chart-footnotes *{
  color:var(--v812-ink) !important;
  -webkit-text-fill-color:var(--v812-ink) !important;
  opacity:1 !important;
  text-shadow:none !important;
  filter:none !important;
}
body.page-observatorio #chartFootnotes strong,
body[v97-observatorio] #chartFootnotes strong,
html body #chartFootnotes.chart-footnotes strong{
  display:block !important;
  margin-bottom:8px !important;
  color:#061426 !important;
  -webkit-text-fill-color:#061426 !important;
  font-weight:950 !important;
}
body.page-observatorio #chartFootnotes ul,
body[v97-observatorio] #chartFootnotes ul,
html body #chartFootnotes.chart-footnotes ul{
  margin:.4rem 0 0 1.2rem !important;
  padding:0 !important;
  display:grid !important;
  gap:.46rem !important;
}
body.page-observatorio #chartFootnotes li,
body[v97-observatorio] #chartFootnotes li,
html body #chartFootnotes.chart-footnotes li{
  color:var(--v812-ink-2) !important;
  -webkit-text-fill-color:var(--v812-ink-2) !important;
  font-weight:720 !important;
  line-height:1.45 !important;
}
body.page-observatorio #chartFootnotes li::marker,
body[v97-observatorio] #chartFootnotes li::marker,
html body #chartFootnotes.chart-footnotes li::marker{
  color:var(--v812-blue-2) !important;
}
body.page-observatorio #chartFootnotes a,
body[v97-observatorio] #chartFootnotes a,
html body #chartFootnotes.chart-footnotes a{
  color:var(--v812-blue-2) !important;
  -webkit-text-fill-color:var(--v812-blue-2) !important;
  font-weight:950 !important;
  text-decoration:none !important;
  overflow-wrap:anywhere !important;
  word-break:break-word !important;
}
body.page-observatorio #chartFootnotes a:hover,
body[v97-observatorio] #chartFootnotes a:hover{
  text-decoration:underline !important;
}

/* Mantiene los paneles oscuros de la derecha con lectura correcta. */
body.page-observatorio .source-live-panel,
body[v97-observatorio] .source-live-panel{
  background:linear-gradient(145deg,#06152A,#0A294A) !important;
  border:1px solid rgba(139,212,255,.40) !important;
  color:#F7FBFF !important;
  -webkit-text-fill-color:initial !important;
  box-shadow:0 22px 52px rgba(0,0,0,.24) !important;
}
body.page-observatorio .source-live-panel *,
body[v97-observatorio] .source-live-panel *{
  color:#F7FBFF !important;
  -webkit-text-fill-color:#F7FBFF !important;
  opacity:1 !important;
  text-shadow:none !important;
}
body.page-observatorio .source-live-panel a,
body.page-observatorio #sourceTrace a,
body[v97-observatorio] .source-live-panel a,
body[v97-observatorio] #sourceTrace a{
  color:#8FE2FF !important;
  -webkit-text-fill-color:#8FE2FF !important;
  font-weight:900 !important;
  overflow-wrap:anywhere !important;
}

/* ==========================================================================
   2. Páginas institucionales reconstruidas visualmente: base común
   ========================================================================== */
body.page-publicaciones,
body.page-datasets,
body.page-citar,
body.page-contacto{
  background:#F2F7FC !important;
  color:var(--v812-ink) !important;
  -webkit-text-fill-color:initial !important;
}
body.page-publicaciones main,
body.page-datasets main,
body.page-citar main,
body.page-contacto main{
  background:linear-gradient(180deg,#F8FCFF 0%,#EFF6FC 48%,#F8FCFF 100%) !important;
}
body.page-publicaciones .v8099-first-screen,
body.page-datasets .v8099-first-screen,
body.page-citar .v8099-first-screen,
body.page-contacto .v8099-first-screen{
  padding-top:clamp(3rem,6vw,5.25rem) !important;
}
body.page-publicaciones .section-light,
body.page-datasets .section-light,
body.page-citar .section-light,
body.page-contacto .section-light{
  background:linear-gradient(180deg,#F8FCFF 0%,#EEF7FE 100%) !important;
  color:var(--v812-ink) !important;
  -webkit-text-fill-color:initial !important;
}
body.page-publicaciones .section-dark,
body.page-datasets .section-dark,
body.page-citar .section-dark,
body.page-contacto .section-dark{
  background:radial-gradient(circle at 18% 0%,rgba(36,200,242,.18),transparent 34%),linear-gradient(135deg,#06152A 0%,#09233F 58%,#04101F 100%) !important;
  color:#F7FBFF !important;
  -webkit-text-fill-color:initial !important;
}
body.page-publicaciones .section-dark *,
body.page-datasets .section-dark *,
body.page-citar .section-dark *,
body.page-contacto .section-dark *{
  color:#F7FBFF !important;
  -webkit-text-fill-color:#F7FBFF !important;
  text-shadow:none !important;
}
body.page-publicaciones .section-dark p,
body.page-datasets .section-dark p,
body.page-citar .section-dark p,
body.page-contacto .section-dark p,
body.page-publicaciones .section-dark span:not(.eyebrow),
body.page-datasets .section-dark span:not(.eyebrow),
body.page-citar .section-dark span:not(.eyebrow),
body.page-contacto .section-dark span:not(.eyebrow){
  color:#D8F0FF !important;
  -webkit-text-fill-color:#D8F0FF !important;
}
body.page-publicaciones h1, body.page-publicaciones h2, body.page-publicaciones h3,
body.page-datasets h1, body.page-datasets h2, body.page-datasets h3,
body.page-citar h1, body.page-citar h2, body.page-citar h3,
body.page-contacto h1, body.page-contacto h2, body.page-contacto h3{
  color:var(--v812-ink) !important;
  -webkit-text-fill-color:var(--v812-ink) !important;
  letter-spacing:-.025em !important;
  text-shadow:none !important;
}
body.page-publicaciones p, body.page-publicaciones li,
body.page-datasets p, body.page-datasets li,
body.page-citar p, body.page-citar li,
body.page-contacto p, body.page-contacto li{
  color:var(--v812-ink-2) !important;
  -webkit-text-fill-color:var(--v812-ink-2) !important;
  line-height:1.66 !important;
  font-weight:620 !important;
}
body.page-publicaciones a,
body.page-datasets a,
body.page-citar a,
body.page-contacto a{
  color:var(--v812-blue-2) !important;
  -webkit-text-fill-color:var(--v812-blue-2) !important;
}
body.page-publicaciones .container,
body.page-datasets .container,
body.page-citar .container,
body.page-contacto .container,
body.page-publicaciones .wide,
body.page-datasets .wide,
body.page-citar .wide,
body.page-contacto .wide{
  max-width:1180px !important;
}
body.page-publicaciones .section-head,
body.page-datasets .section-head,
body.page-citar .section-head,
body.page-contacto .section-head{
  gap:1.2rem !important;
  align-items:end !important;
  margin-bottom:1.8rem !important;
}
body.page-publicaciones .eyebrow,
body.page-datasets .eyebrow,
body.page-citar .eyebrow,
body.page-contacto .eyebrow{
  display:inline-flex !important;
  align-items:center !important;
  gap:.65rem !important;
  width:max-content !important;
  max-width:100% !important;
  padding:.56rem 1rem !important;
  border-radius:999px !important;
  background:#FFFFFF !important;
  border:1px solid #9ED3F2 !important;
  color:#06152A !important;
  -webkit-text-fill-color:#06152A !important;
  font-weight:950 !important;
  letter-spacing:.13em !important;
  text-transform:uppercase !important;
  box-shadow:0 10px 20px rgba(7,24,50,.08) !important;
}
body.page-publicaciones .eyebrow::before,
body.page-datasets .eyebrow::before,
body.page-citar .eyebrow::before,
body.page-contacto .eyebrow::before{
  content:"" !important;
  display:block !important;
  width:44px !important;
  height:5px !important;
  border-radius:999px !important;
  background:var(--v812-red) !important;
}
body.page-publicaciones .panel,
body.page-datasets .panel,
body.page-citar .panel,
body.page-contacto .panel,
body.page-publicaciones .card,
body.page-datasets .card,
body.page-citar .card,
body.page-contacto .card,
body.page-publicaciones .notice-panel,
body.page-contacto .contact-card,
body.page-citar .citation-generator,
body.page-datasets .dataset-card{
  background:#FFFFFF !important;
  border:1px solid var(--v812-line-2) !important;
  border-radius:28px !important;
  color:var(--v812-ink) !important;
  -webkit-text-fill-color:initial !important;
  box-shadow:var(--v812-shadow) !important;
}
body.page-publicaciones .panel *,
body.page-datasets .panel *,
body.page-citar .panel *,
body.page-contacto .panel *,
body.page-publicaciones .card *,
body.page-datasets .card *,
body.page-citar .card *,
body.page-contacto .card *,
body.page-contacto .contact-card *,
body.page-citar .citation-generator *,
body.page-datasets .dataset-card *{
  text-shadow:none !important;
  opacity:1 !important;
}

/* Botones premium reutilizables */
body.page-publicaciones .btn,
body.page-datasets .btn,
body.page-citar .btn,
body.page-contacto .btn,
body.page-publicaciones .tag,
body.page-datasets .tag,
body.page-citar .tag,
body.page-contacto .tag{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:44px !important;
  padding:.75rem 1rem !important;
  border-radius:999px !important;
  border:1px solid rgba(11,115,217,.35) !important;
  background:linear-gradient(135deg,#0B73D9,#24C8F2) !important;
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
  font-weight:950 !important;
  text-decoration:none !important;
  box-shadow:0 14px 28px rgba(11,115,217,.20) !important;
}
body.page-publicaciones .btn-secondary,
body.page-datasets .btn-secondary,
body.page-citar .btn-secondary,
body.page-contacto .btn-secondary{
  background:#FFFFFF !important;
  color:#075F98 !important;
  -webkit-text-fill-color:#075F98 !important;
  border-color:#9ED3F2 !important;
  box-shadow:0 10px 20px rgba(7,24,50,.08) !important;
}

/* ==========================================================================
   3. Publicaciones: lista académica clara
   ========================================================================== */
body.page-publicaciones .publication-list{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:1rem !important;
}
body.page-publicaciones .publication{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  align-items:center !important;
  gap:1rem !important;
  padding:1.15rem 1.25rem !important;
  background:#FFFFFF !important;
  border:1px solid var(--v812-line-2) !important;
  border-radius:22px !important;
  box-shadow:0 12px 30px rgba(7,24,50,.08) !important;
  color:var(--v812-ink) !important;
  -webkit-text-fill-color:initial !important;
}
body.page-publicaciones .publication h3{
  margin:0 0 .35rem !important;
  font-size:clamp(1.02rem,1.55vw,1.25rem) !important;
  line-height:1.28 !important;
  color:var(--v812-ink) !important;
  -webkit-text-fill-color:var(--v812-ink) !important;
}
body.page-publicaciones .publication p{
  margin:0 !important;
  color:var(--v812-ink-2) !important;
  -webkit-text-fill-color:var(--v812-ink-2) !important;
}
body.page-publicaciones .feature-band,
body.page-publicaciones .v93-doi-panel{
  border-radius:28px !important;
  padding:2rem !important;
}

/* ==========================================================================
   4. Datos: tarjetas y flujo metodológico
   ========================================================================== */
body.page-datasets .dataset-grid{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(245px,1fr)) !important;
  gap:1rem !important;
}
body.page-datasets .dataset-card{
  padding:1.35rem !important;
  min-height:220px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:space-between !important;
}
body.page-datasets .dataset-card h3{
  margin:.65rem 0 .4rem !important;
}
body.page-datasets .dataset-tag,
body.page-datasets code,
body.page-datasets .schema-badge{
  display:inline-flex !important;
  width:max-content !important;
  max-width:100% !important;
  padding:.45rem .75rem !important;
  border-radius:999px !important;
  background:#EEF8FF !important;
  border:1px solid #B7D8EE !important;
  color:#075F98 !important;
  -webkit-text-fill-color:#075F98 !important;
  font-weight:900 !important;
  font-family:inherit !important;
  white-space:normal !important;
}
body.page-datasets .method-flow{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr)) !important;
  gap:1rem !important;
  margin:1.5rem 0 !important;
}
body.page-datasets .flow-step{
  background:rgba(255,255,255,.10) !important;
  border:1px solid rgba(139,212,255,.28) !important;
  border-radius:20px !important;
  padding:1rem !important;
}
body.page-datasets .schema-badge-row{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:.65rem !important;
}

/* ==========================================================================
   5. Citar: generador, DOI, matriz y tablas
   ========================================================================== */
body.page-citar .citation-generator{
  padding:1.65rem !important;
}
body.page-citar .citation-generator-grid,
body.page-citar .citation-meta{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:1rem !important;
}
body.page-citar .citation-meta{
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  margin-top:1rem !important;
}
body.page-citar .citation-field label,
body.page-citar label{
  display:block !important;
  margin:0 0 .45rem !important;
  color:var(--v812-ink) !important;
  -webkit-text-fill-color:var(--v812-ink) !important;
  font-weight:950 !important;
}
body.page-citar select,
body.page-citar input,
body.page-citar textarea,
body.page-contacto input,
body.page-contacto textarea{
  width:100% !important;
  border:1px solid #B7D8EE !important;
  border-radius:16px !important;
  background:#FFFFFF !important;
  color:var(--v812-ink) !important;
  -webkit-text-fill-color:var(--v812-ink) !important;
  padding:.9rem 1rem !important;
  font:inherit !important;
  font-weight:750 !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9) !important;
}
body.page-citar .citation-output,
body.page-citar .quote-box{
  display:block !important;
  background:#F8FCFF !important;
  color:var(--v812-ink) !important;
  -webkit-text-fill-color:var(--v812-ink) !important;
  border:1px solid #B7D8EE !important;
  border-radius:20px !important;
  padding:1rem 1.1rem !important;
  white-space:pre-wrap !important;
  word-break:break-word !important;
  overflow-wrap:anywhere !important;
  font-family:inherit !important;
  font-size:.97rem !important;
  line-height:1.62 !important;
  min-height:128px !important;
}
body.page-citar .citation-meta-item,
body.page-citar .fact,
body.page-contacto .fact{
  background:#F3F8FD !important;
  border:1px solid #D6E8F6 !important;
  border-radius:18px !important;
  padding:1rem !important;
  color:var(--v812-ink) !important;
  -webkit-text-fill-color:initial !important;
}
body.page-citar .citation-meta-item b,
body.page-citar .fact b,
body.page-contacto .fact b{
  display:block !important;
  color:var(--v812-ink) !important;
  -webkit-text-fill-color:var(--v812-ink) !important;
  margin-bottom:.35rem !important;
}
body.page-citar .format-badges{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:.55rem !important;
  margin-top:1rem !important;
}
body.page-citar .format-badges span{
  display:inline-flex !important;
  padding:.45rem .7rem !important;
  border-radius:999px !important;
  background:#EEF8FF !important;
  border:1px solid #B7D8EE !important;
  color:#075F98 !important;
  -webkit-text-fill-color:#075F98 !important;
  font-weight:900 !important;
}
body.page-citar .data-table,
body.page-citar table{
  width:100% !important;
  border-collapse:separate !important;
  border-spacing:0 !important;
  overflow:hidden !important;
  border-radius:22px !important;
  background:#FFFFFF !important;
  color:var(--v812-ink) !important;
  -webkit-text-fill-color:initial !important;
  box-shadow:var(--v812-shadow-soft) !important;
}
body.page-citar th,
body.page-citar td{
  padding:.95rem 1rem !important;
  border-bottom:1px solid #D6E8F6 !important;
  vertical-align:top !important;
  color:var(--v812-ink) !important;
  -webkit-text-fill-color:var(--v812-ink) !important;
}
body.page-citar th{
  background:#06152A !important;
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
  font-weight:950 !important;
}
body.page-citar td a{
  color:#075F98 !important;
  -webkit-text-fill-color:#075F98 !important;
  font-weight:900 !important;
}

/* ==========================================================================
   6. Contacto: formulario y datos institucionales visibles
   ========================================================================== */
body.page-contacto .contact-grid{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(340px,.82fr) !important;
  gap:1.4rem !important;
  align-items:start !important;
}
body.page-contacto .panel,
body.page-contacto .contact-card{
  padding:1.7rem !important;
}
body.page-contacto .fact-list{
  display:grid !important;
  gap:.8rem !important;
  margin-top:1.25rem !important;
}
body.page-contacto .form-static{
  display:grid !important;
  gap:.95rem !important;
  margin-top:1rem !important;
}
body.page-contacto .field label{
  display:block !important;
  color:var(--v812-ink) !important;
  -webkit-text-fill-color:var(--v812-ink) !important;
  font-weight:950 !important;
  margin-bottom:.4rem !important;
}
body.page-contacto textarea{
  min-height:150px !important;
  resize:vertical !important;
}

/* ==========================================================================
   7. Responsive y limpieza final
   ========================================================================== */
@media(max-width:980px){
  body.page-publicaciones .publication,
  body.page-contacto .contact-grid,
  body.page-citar .citation-generator-grid,
  body.page-citar .citation-meta{
    grid-template-columns:1fr !important;
  }
  body.page-publicaciones .tag{
    width:100% !important;
  }
}
@media(max-width:680px){
  body.page-publicaciones .section-head,
  body.page-datasets .section-head,
  body.page-citar .section-head,
  body.page-contacto .section-head{
    display:block !important;
  }
  body.page-publicaciones .eyebrow,
  body.page-datasets .eyebrow,
  body.page-citar .eyebrow,
  body.page-contacto .eyebrow{
    width:100% !important;
    justify-content:flex-start !important;
    white-space:normal !important;
  }
  html body #chartFootnotes.chart-footnotes{
    padding:16px 18px !important;
    border-radius:20px !important;
  }
}
