/* GraCity overrides — capa de corrección sobre el bundle compilado.
   1) Restaura el tema claro en componentes con colores oscuros hardcodeados
      (solo cuando <html> no tiene la clase .dark).
   2) Reconduce los tokens de acento azul heredados (--primary/--ring)
      a la identidad verde GraCity.
   Documentado en docs/bundle-patches.md */

/* ---------- Acento de marca (afecta a login y focus rings) ---------- */
:root {
  --primary: #237a58;
  --primary-foreground: #f4faf6;
  --ring: #237a58;
}

/* ---------- Tema claro: componentes con estilos oscuros fijos ---------- */
html:not(.dark) .verification-page {
  color: var(--gc-text);
  background: var(--gc-ink);
}
html:not(.dark) .verification-page header p {
  color: var(--gc-muted);
}
html:not(.dark) .verification-summary article,
html:not(.dark) .verification-row,
html:not(.dark) .derived-card,
html:not(.dark) .cross-ops-status,
html:not(.dark) .cross-irr-review,
html:not(.dark) .cross-source-history,
html:not(.dark) .cross-source-history-item,
html:not(.dark) .maintenance-category-card,
html:not(.dark) .comparison-panel {
  background: var(--gc-panel);
}
html:not(.dark) .cross-irr-item {
  background: var(--gc-panel-raised, #fbfdf9);
}
html:not(.dark) .verification-row span,
html:not(.dark) .derived-card p,
html:not(.dark) .cross-irr-item span,
html:not(.dark) .cross-irr-item small,
html:not(.dark) .cross-source-history-item small,
html:not(.dark) .notification-note {
  color: var(--gc-muted);
}
html:not(.dark) .count-row b,
html:not(.dark) .contract-row strong,
html:not(.dark) .derived-value,
html:not(.dark) .cross-ops-metrics strong,
html:not(.dark) .cross-irr-item b,
html:not(.dark) .access-table tbody th,
html:not(.dark) .chart-interpretation-note strong,
html:not(.dark) .breeam-independent-value,
html:not(.dark) .blue-contract-formula,
html:not(.dark) .normalized-comparison strong {
  color: var(--gc-text);
}
html:not(.dark) .comparison-zone-picker label {
  color: var(--gc-muted);
  background: var(--gc-panel);
}
html:not(.dark) .comparison-zone-picker label:has(input:checked) {
  color: var(--gc-text);
}
html:not(.dark) .real-map-panel {
  background: var(--gc-panel);
  border-color: var(--gc-line);
  box-shadow: 0 1.5rem 3rem #1c2a2714;
}
html:not(.dark) .utci-severity-legend {
  background: var(--gc-panel);
  border-color: var(--gc-line);
}
html:not(.dark) .utci-severity-items span {
  color: var(--gc-text);
}
html:not(.dark) .observation-decision-strip > div {
  background: var(--gc-panel);
  border-color: var(--gc-line);
}
html:not(.dark) .kpi-card > strong small,
html:not(.dark) .score-ring small,
html:not(.dark) .environment-metrics small {
  color: var(--gc-muted);
}
html:not(.dark) .cross-ops-badge.pending {
  color: var(--gc-muted);
  background: #73817b14;
}
html:not(.dark) .button.secondary {
  color: var(--gc-text);
  background: #237a5812;
  border-color: #237a5838;
}
html:not(.dark) .button.secondary:hover {
  color: var(--gc-text);
  background: #237a5822;
}

/* ---------- Chip PENDIENTE duplicado ----------
   El bundle pinta el estado por JS ("PENDIENTE") y CSS añade
   otro " · PENDIENTE" vía ::after. El texto JS ya lo comunica. */
.status-pending::after {
  content: none;
}


/* ---------- Leyendas con abreviaturas (tooltips sin tocar el bundle) ---------- */
span:has-text("AirGradient"),
span:has-text("AEMET"),
span:has-text("Copernicus"),
span:has-text("Sentinel-3 LST"),
span:has-text("ERA5 CDS"),
span:has-text("Plantae") {
  position: relative;
  cursor: help;
}
span:has-text("AirGradient"):hover::after {
  content: "AirGradient: estación de calidad de aire (temperatura, humedad y partículas PM2.5)";
}
span:has-text("Plantae"):hover::after {
  content: "Plantae: sondas de humedad de suelo en tiempo real (bridge propio)";
}
span:has-text("AEMET"):hover::after {
  content: "AEMET: Agencia Estatal de Meteorología (estaciones 3194U/3195)";
}
span:has-text("Copernicus"):hover::after {
  content: "Copernicus: servicio de observación de la Tierra de la UE";
}
span:has-text("Sentinel-3 LST"):hover::after {
  content: "LST: Land Surface Temperature (temperatura superficial por satélite)";
}
span:has-text("ERA5 CDS"):hover::after {
  content: "ERA5: reanálisis climático ECMWF · CDS: Climate Data Store";
}
small:has-text("CONN-V1"),
small:has-text("IHB-V1"),
small:has-text("IEF-V1"),
th:has-text("PM2.5"),
th:has-text("UTCI") {
  cursor: help;
}
