/* components/pulse.css — live market pulse cards
 * Rendered by js/pulse.js from /data/pulse.json. The JSON is a snapshot a
 * mission regenerates — the site literally eats its own dogfood.
 */

.pulse-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr));
  gap: var(--qi-space-lg);
}
.pulse {
  background: var(--qi-glass);
  border: 0.5px solid var(--qi-glass-border-subtle);
  border-radius: var(--qi-radius-xl);
  padding: var(--qi-space-xl);
  backdrop-filter: blur(24px) saturate(1.6);
  -webkit-backdrop-filter: blur(24px) saturate(1.6);
  display: flex;
  flex-direction: column;
  transition: border-color var(--qi-dur-fast), transform var(--qi-dur-fast);
}
.pulse:hover { border-color: var(--qi-glass-border); transform: translateY(-3px); }
.pulse__title { font: var(--qi-font-title-sm); display: flex; align-items: center; gap: var(--qi-space-sm); }
.pulse__live {
  width: 0.5rem; height: 0.5rem; border-radius: 50%;
  background: var(--qi-energy);
  box-shadow: 0 0 8px var(--qi-glow);
  flex-shrink: 0;
}
.pulse__unit {
  font: var(--qi-font-caption);
  color: var(--qi-text-muted);
  margin-bottom: var(--qi-space-md);
}
.pulse__chart { width: 100%; height: 4.5rem; margin: var(--qi-space-sm) 0 var(--qi-space-md); }
.pulse__chart path.line {
  fill: none;
  stroke: var(--qi-accent);
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.pulse__chart path.area {
  fill: url(#pulse-grad);
  opacity: 0.25;
}
.pulse__chart circle { fill: var(--qi-energy); }
.pulse__stats { display: flex; flex-direction: column; gap: 4px; flex: 1; }
.pulse__stat {
  display: flex; justify-content: space-between; align-items: baseline;
  font: var(--qi-font-body-sm); color: var(--qi-text-muted);
}
.pulse__stat b { color: var(--qi-text); font-weight: 600; font-variant-numeric: tabular-nums; }
.pulse__source {
  margin-top: var(--qi-space-md);
  padding-top: var(--qi-space-sm);
  border-top: 0.5px solid var(--qi-glass-border-subtle);
  font: var(--qi-font-caption);
  color: var(--qi-text-muted);
}
