/* PF Tech shared design tokens + primitives (ops-console aesthetic).
   Palette is the PF Tech brand; data values are monospace/tabular for an
   instrument-readout feel. No external fonts (CSP 'self'). */
:root {
  /* brand */
  --brand-blue: #1582c7;
  --brand-blue-d: #0d5f94;
  --brand-cyan: #44d9e6;
  --green: #50b498;
  --green-2: #87c268;
  --green-3: #9ad27c;
  --green-4: #4caf50;
  --green-4-d: #256d2a; /* darkened brand green — AA text contrast on the light/tinted top bar */
  --grey: #666666;
  --muted: #a8a8a8;
  /* neutrals */
  --ink: #14181c;
  --ink-2: #3a444d;
  --border: #e3e8ec;
  --surface: #ffffff;
  --bg: #eef1f4;
  --bar: #0f1720;
  --topbar: #10233a; /* dark navy ops top bar */
  --radius: 5px;
  --mono: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
  --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --shadow: 0 1px 2px rgba(15, 23, 32, 0.06), 0 1px 3px rgba(15, 23, 32, 0.04);
}

body {
  font-family: var(--sans);
  color: var(--ink);
  background: var(--bg);
}
:focus-visible {
  outline: 2px solid var(--brand-blue);
  outline-offset: 2px;
}

/* Card */
.card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

/* Section heading */
.sec-h {
  font-size: 0.7rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--grey);
  font-weight: 700;
}

/* Live indicator */
.live {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.64rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--green-3);
}
.live-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--green-4);
  box-shadow: 0 0 0 0 rgba(76, 175, 80, 0.6);
  animation: live-pulse 2.2s infinite;
}
@keyframes live-pulse {
  70% {
    box-shadow: 0 0 0 6px rgba(76, 175, 80, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(76, 175, 80, 0);
  }
}
@media (prefers-reduced-motion: reduce) {
  .live-dot {
    animation: none;
  }
}
