/*
  IngSoft V84.25 — Contrato definitivo de contraste para fichas clave/valor
  Corrección estructural: todo componente marcado como data-contrast="light-kv",
  .kv-card, .v83-proof-list, .key-value-grid o ficha reproducible se considera
  superficie clara de lectura. Por contrato, etiqueta y valor usan tinta oscura.
*/

:root{
  --v8425-ink:#06152A;
  --v8425-ink-2:#183553;
  --v8425-ink-3:#355A78;
  --v8425-card:#FFFFFF;
  --v8425-card-2:#EEF7FD;
  --v8425-line:#B9D9ED;
}

/* Contrato base para cualquier ficha/key-value clara del sistema */
html body [data-contrast="light-kv"],
html body .kv-card,
html body .proof-card,
html body .meta-card,
html body .stat-card,
html body .v83-proof-list > div,
html body .kv-grid > div,
html body .key-value-grid > div{
  background:linear-gradient(180deg,var(--v8425-card) 0%,var(--v8425-card-2) 100%) !important;
  border-color:var(--v8425-line) !important;
  color:var(--v8425-ink) !important;
  -webkit-text-fill-color:var(--v8425-ink) !important;
  opacity:1 !important;
  visibility:visible !important;
  filter:none !important;
  mix-blend-mode:normal !important;
  text-shadow:none !important;
}

/* Limpieza de herencias que blanqueaban textos internos */
html body [data-contrast="light-kv"] *,
html body .kv-card *,
html body .proof-card *,
html body .meta-card *,
html body .stat-card *,
html body .v83-proof-list > div *,
html body .kv-grid > div *,
html body .key-value-grid > div *{
  opacity:1 !important;
  visibility:visible !important;
  filter:none !important;
  mix-blend-mode:normal !important;
  text-shadow:none !important;
  -webkit-text-stroke:0 !important;
  background-image:none !important;
  -webkit-background-clip:border-box !important;
  background-clip:border-box !important;
}

/* Etiquetas clave: tinta institucional oscura */
html body [data-contrast="light-kv"] :is(dt,.kv-label,.key,.label,.meta-label,.field-label,h1,h2,h3,h4,h5,h6,strong,b),
html body .kv-card :is(dt,.kv-label,.key,.label,.meta-label,.field-label,h1,h2,h3,h4,h5,h6,strong,b),
html body .v83-proof-list > div > dt,
html body .kv-grid > div > dt,
html body .key-value-grid > div > dt{
  color:var(--v8425-ink) !important;
  -webkit-text-fill-color:var(--v8425-ink) !important;
  opacity:1 !important;
  visibility:visible !important;
  font-weight:950 !important;
}

/* Valores y guiones: tinta secundaria oscura */
html body [data-contrast="light-kv"] :is(dd,.kv-value,.value,.meta-value,.field-value,p,li,span,small,label),
html body .kv-card :is(dd,.kv-value,.value,.meta-value,.field-value,p,li,span,small,label),
html body .v83-proof-list > div > dd,
html body .kv-grid > div > dd,
html body .key-value-grid > div > dd{
  color:var(--v8425-ink-2) !important;
  -webkit-text-fill-color:var(--v8425-ink-2) !important;
  opacity:1 !important;
  visibility:visible !important;
  font-weight:850 !important;
}

html body [data-contrast="light-kv"] dd:empty::before,
html body .v83-proof-list > div > dd:empty::before,
html body .kv-grid > div > dd:empty::before,
html body .key-value-grid > div > dd:empty::before{
  content:"—" !important;
  color:var(--v8425-ink-3) !important;
  -webkit-text-fill-color:var(--v8425-ink-3) !important;
  opacity:1 !important;
  visibility:visible !important;
  font-weight:900 !important;
}

/* Observatorio: ficha reproducible por contrato de sección, no por parche local */
html body.page-observatorio #reproducibilidad-ingsoft .v83-repro-proof .v83-proof-panel,
html body.page-observatorio #reproducibilidad-ingsoft .v83-repro-proof [data-contrast="light-kv"],
html body.page-observatorio #reproducibilidad-ingsoft .v83-repro-proof .kv-card{
  background:linear-gradient(180deg,#FFFFFF 0%,#F1F8FD 100%) !important;
  color:var(--v8425-ink) !important;
  -webkit-text-fill-color:var(--v8425-ink) !important;
}

html body.page-observatorio #reproducibilidad-ingsoft .v83-repro-proof .v83-proof-list dt,
html body.page-observatorio #reproducibilidad-ingsoft .v83-repro-proof .v83-proof-list dt *,
html body.page-observatorio #reproducibilidad-ingsoft .v83-repro-proof [data-contrast="light-kv"] dt,
html body.page-observatorio #reproducibilidad-ingsoft .v83-repro-proof [data-contrast="light-kv"] dt *{
  color:#06152A !important;
  -webkit-text-fill-color:#06152A !important;
  opacity:1 !important;
  visibility:visible !important;
  font-weight:950 !important;
}

html body.page-observatorio #reproducibilidad-ingsoft .v83-repro-proof .v83-proof-list dd,
html body.page-observatorio #reproducibilidad-ingsoft .v83-repro-proof .v83-proof-list dd *,
html body.page-observatorio #reproducibilidad-ingsoft .v83-repro-proof [data-contrast="light-kv"] dd,
html body.page-observatorio #reproducibilidad-ingsoft .v83-repro-proof [data-contrast="light-kv"] dd *{
  color:#183553 !important;
  -webkit-text-fill-color:#183553 !important;
  opacity:1 !important;
  visibility:visible !important;
  font-weight:850 !important;
}

html body.page-observatorio #reproducibilidad-ingsoft .v83-repro-proof .v83-proof-list dd:empty::before,
html body.page-observatorio #reproducibilidad-ingsoft .v83-repro-proof [data-contrast="light-kv"] dd:empty::before{
  content:"—" !important;
  color:#355A78 !important;
  -webkit-text-fill-color:#355A78 !important;
  opacity:1 !important;
  visibility:visible !important;
  font-weight:900 !important;
}
