/* ═══════════════════════════════════════════════════════════════════════
   RESUMEN — «Cómo va Erika» (views/indicadores.js, contrato 4.11.0)
   Series: conversaciones en violeta (#5B4BFF, 5.4:1 sobre blanco; #8B80FF
   en oscuro, definidos en vidrio.css) y derivaciones en naranja (≥ 3:1
   contra la superficie en los dos temas). El texto usa siempre los tokens
   de tinta, nunca el color de la serie.
   ═══════════════════════════════════════════════════════════════════════ */
:root {
  --viz-1: #5b4bff;
  --viz-2: #eb6834;
  /* El resto de las barras cuando una sola va en el acento: 3.3:1 sobre blanco. */
  --viz-gris: #8a8d9a;
}

.dark {
  --viz-1: #8b80ff;
  --viz-2: #d95926;
  --viz-gris: #6f7280;
}

.resumen-indicadores {
  display: grid;
  gap: var(--space-4);
  margin-bottom: var(--space-8);
}

.resumen-cabeza {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
}

.resumen-cabeza h2 {
  margin: 0;
}

.resumen-titulo {
  display: grid;
  gap: 2px;
}

/* Qué días cubren las cifras: sin esto «30 días» no dice desde cuándo. */
.resumen-rango {
  margin: 0;
  font-size: var(--text-sm);
  color: var(--ink-muted);
}

.resumen-rango:empty {
  display: none;
}

.resumen-periodos {
  mask-image: none;
}

.resumen-cuerpo {
  display: grid;
  gap: var(--space-4);
  transition: opacity var(--dur-control) var(--ease);
}

/* Cambio de período: lo anterior queda a la vista, atenuado, hasta que llega lo nuevo. */
.resumen-recargando {
  opacity: 0.55;
  pointer-events: none;
}

/* ── Cifras: cuatro principales y cuatro de contexto ── */
.resumen-cifras-bloque {
  display: grid;
  gap: var(--space-3);
}

.resumen-cifras {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: var(--space-3);
}

.resumen-cifra {
  display: grid;
  align-content: start;
  gap: 2px;
  padding: var(--space-4);
  border: 1px solid var(--hairline);
  border-radius: var(--radius-lg);
  background: var(--surface);
}

.resumen-cifra p {
  margin: 0;
}

.resumen-cifra-etiqueta {
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--ink-muted);
}

/* Cifras sueltas en dígitos proporcionales: los tabulares se ven flojos en grande. */
.resumen-cifra-valor {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-family: var(--font-display);
  font-size: var(--text-2xl);
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: var(--leading-tight);
  color: var(--ink);
}

.resumen-cifra-detalle {
  font-size: var(--text-sm);
  color: var(--ink-muted);
}

.resumen-cifras-sec .resumen-cifra {
  padding: var(--space-3) var(--space-4);
  background: var(--surface-sunken);
  box-shadow: none;
}

.resumen-cifras-sec .resumen-cifra-valor {
  font-size: var(--text-lg);
}

/* Estado: el texto lo dice («Sin fallas» / «N fallas»); el icono y el color lo refuerzan. */
.resumen-cifra-icono {
  flex: none;
  width: 18px;
  height: 18px;
}

.resumen-cifra-ok .resumen-cifra-valor {
  color: var(--fc-ok);
}

.resumen-cifra-alerta .resumen-cifra-valor {
  color: var(--fc-danger);
}

.resumen-cifra-alerta {
  border-color: rgb(var(--color-danger) / 0.4);
  background: var(--fc-danger-bg);
}

/* Teléfono: dos por fila, así las ocho cifras no empujan los gráficos tres pantallas abajo. */
@media (max-width: 560px) {
  .resumen-cifras {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-2);
  }

  .resumen-cifra,
  .resumen-cifras-sec .resumen-cifra {
    padding: var(--space-3);
  }

  .resumen-cifra-valor {
    font-size: var(--text-xl);
  }

  .resumen-cifras-sec .resumen-cifra-valor {
    font-size: var(--text-md);
  }

  .resumen-cifra-etiqueta,
  .resumen-cifra-detalle {
    font-size: var(--text-xs);
  }
}

/* ── Esqueleto de la primera carga ── */
.resumen-esqueleto {
  display: grid;
  gap: var(--space-3);
}

.resumen-esqueleto-pieza {
  min-height: 112px;
  border-radius: var(--radius-lg);
  background: var(--surface-sunken);
  border: 1px solid var(--hairline-soft);
}

.resumen-cifras-sec > .resumen-esqueleto-pieza {
  min-height: 84px;
}

.resumen-esqueleto-grafico {
  min-height: 300px;
}

/* ── Gráficos ── */
.resumen-graficos {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4);
}

/* `margin: 0`: el margen de `.card` se sumaba al hueco de la cuadrícula (32px entre filas, 16px entre columnas). */
.resumen-grafico {
  display: grid;
  align-content: start;
  gap: var(--space-2);
  min-width: 0;
  margin: 0;
}

.resumen-grafico-ancho {
  grid-column: 1 / -1;
}

@media (max-width: 900px) {
  .resumen-graficos {
    grid-template-columns: minmax(0, 1fr);
  }
}

.resumen-grafico-titulo {
  margin: 0;
  font-size: var(--text-md);
}

.resumen-grafico-sub {
  margin: 0;
  font-size: var(--text-sm);
  color: var(--ink-muted);
}

.resumen-svg {
  display: block;
  width: 100%;
  height: auto;
}

.resumen-eje {
  fill: var(--ink-muted);
  font-family: var(--font-body);
  font-size: 12px;
}

.resumen-rejilla {
  stroke: var(--hairline);
  stroke-width: 1;
}

.resumen-serie-1 {
  fill: var(--viz-1);
}

.resumen-serie-2 {
  fill: var(--viz-2);
}

.resumen-linea-2 {
  fill: none;
  stroke: var(--viz-2);
  stroke-width: 2;
  stroke-linejoin: round;
}

/* Anillo de 2px del color de la superficie: el punto se despega de la barra. */
.resumen-punto-2 {
  fill: var(--viz-2);
  stroke: var(--surface);
  stroke-width: 2;
}

.resumen-pista rect:hover {
  opacity: 0.8;
}

/* ── Gráficos que se recorren (por día, por hora) ── */
.resumen-recorrible {
  display: grid;
  gap: var(--space-2);
}

.resumen-recorrible .resumen-leyenda {
  margin: 0;
}

.resumen-recorrible > .resumen-svg {
  touch-action: pan-y;
  cursor: crosshair;
  border-radius: var(--radius-sm);
}

/* La lectura de lo señalado: un renglón fijo arriba del gráfico (alto reservado, sin saltos). */
.resumen-lectura {
  min-height: calc(var(--text-sm) * 1.55 * 2);
  margin: 0;
  font-size: var(--text-sm);
  font-variant-numeric: tabular-nums;
  color: var(--ink-secondary);
}

.resumen-foco {
  fill: var(--ink);
  opacity: 0.07;
}

.resumen-foco-oculto {
  display: none;
}

/* ── Leyenda ── */
.resumen-leyenda {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  margin: 0 0 var(--space-2);
  padding: 0;
  list-style: none;
  font-size: var(--text-sm);
  color: var(--ink-secondary);
}

.resumen-leyenda li {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.resumen-muestra {
  width: 12px;
  height: 12px;
  border-radius: 3px;
}

.resumen-muestra.resumen-serie-1 {
  background: var(--viz-1);
}

.resumen-muestra.resumen-serie-2 {
  background: var(--viz-2);
}

/* La leyenda imita la marca: la serie que es línea lleva una raya, no un cuadrado. */
.resumen-muestra.resumen-linea {
  width: 16px;
  height: 3px;
  border-radius: 2px;
  background: var(--viz-2);
}

/* ── Barras horizontales ── */
.resumen-barras {
  display: grid;
  gap: var(--space-3);
  margin: 0;
  padding: 0;
  list-style: none;
}

.resumen-barras li {
  display: grid;
  gap: 4px;
}

.resumen-barras-nombre {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0 var(--space-2);
  font-size: var(--text-sm);
  color: var(--ink);
}

.resumen-barras-nota {
  color: var(--ink-muted);
  font-variant-numeric: tabular-nums;
}

.resumen-barras-pistas {
  display: grid;
  gap: 4px;
}

.resumen-pista-fila {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 3.5rem;
  align-items: center;
  gap: var(--space-2);
}

.resumen-pista {
  display: block;
  width: 100%;
  height: 12px;
  border-radius: 4px;
  background: var(--surface-sunken);
}

.resumen-barras-valor {
  font-size: var(--text-sm);
  font-variant-numeric: tabular-nums;
  text-align: right;
  color: var(--ink-secondary);
}

/* ── «Ver datos» ── */
.resumen-datos > summary {
  width: fit-content;
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--ink-muted);
  cursor: pointer;
}

.resumen-datos[open] > .table-wrap {
  margin-top: var(--space-2);
  max-height: 280px;
  overflow: auto;
}

/* Teléfono o pantalla de dedo: «Ver datos» con un blanco de 44px de alto. */
@media (max-width: 767.98px), (pointer: coarse) {
  .resumen-datos > summary {
    padding: 12px 0;
  }
}

.resumen-tecnico-h2 {
  margin-top: var(--space-6);
}
