/* Outdoor AQI freshness (2026-09 program) — the source + real age of the
   headline outdoor AQI on the home hero portholes and the /intelligence +
   /pricing outdoor panels, and the SLATE state once the api flags the reading
   past its freshness ceiling. Degraded is never red: the value is old, not
   severe. Marketing-authored (see home-verdict.css / local-situation.css for
   the same convention); loaded after the page CSS from shell.php. */

/* ── Home hero portholes ─────────────────────────────────────────────── */
.porthole .pm-fresh {
  display: block;
  margin-top: var(--ts-space-10);
  font: 500 .55rem/1.2 var(--ts-font-mono);
  letter-spacing: .02em;
  white-space: nowrap;
  color: var(--ts-on-media-text-dim);
}

/* Stale reading: ring, tier and pill go slate; the value stays (old ≠ absent). */
.porthole[data-stale="true"] {
  --porthole-ring: var(--ts-on-media-text-dim);
}

.porthole[data-stale="true"] .porthole-badge {
  background: var(--ts-on-media-scrim-strong);
  color: var(--ts-on-media-text);
  box-shadow: none;
}

/* ── /intelligence outdoor context + /pricing outdoor tile ───────────── */
.appcloud-conditions__fresh,
.pricing-outdoor__fresh {
  display: block;
  margin-top: var(--ts-space-10);
  font: 500 .68rem/1.3 var(--ts-font-mono);
  letter-spacing: .01em;
  color: var(--ts-muted);
}

.appcloud-conditions__metric[data-stale="true"] strong[data-outdoor-aqi] {
  color: var(--ts-muted);
}

.pricing-outdoor__fresh[data-stale="true"] {
  color: var(--ts-muted);
  border-top: 1px solid var(--ts-rule);
  padding-top: var(--ts-space-10);
}
