/* ===== Cockpit Phase 3 · M2  Continuous Pre-Flight =======================
   Ambient on-canvas heat + stale badges. The overlay is a sibling of the
   canvas content (never mutates it), pointer-events:none; only the stale
   badge opts back into clicks. Absent entirely in classic mode.
   ========================================================================= */
#sh-overlay {
  position: absolute; inset: 0; z-index: 6; pointer-events: none; overflow: hidden;
  font-family: var(--sans, 'Plus Jakarta Sans', system-ui, sans-serif);
}
.sh-heat { position: absolute; pointer-events: none; border-radius: 16px; }
.sh-heat-glow {
  position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  transition: box-shadow .5s ease; box-shadow: none;
}
.sh-heat-idle .sh-heat-glow { box-shadow: none; }

/* stale badge — top-right corner of the section, clickable */
.sh-stale {
  position: absolute; top: 10px; right: 14px; pointer-events: none; opacity: 0;
  display: inline-flex; align-items: center; gap: 4px;
  font: 700 9.5px var(--sans); letter-spacing: .04em; text-transform: uppercase;
  color: #fff; background: var(--clay, #ba4526); border: 0;
  padding: 4px 9px; border-radius: 999px; cursor: pointer;
  box-shadow: 0 4px 12px -3px rgba(186, 69, 38, .5); transform: translateY(-4px);
  transition: opacity .2s, transform .2s, background .14s;
}
.sh-heat.sh-stale-on .sh-stale { pointer-events: auto; opacity: 1; transform: none; animation: shStalePulse 1.8s ease-in-out infinite; }
.sh-stale:hover { background: var(--clay-deep, #8f3319); }
@keyframes shStalePulse { 0%, 100% { box-shadow: 0 4px 12px -3px rgba(186, 69, 38, .5); } 50% { box-shadow: 0 4px 18px -1px rgba(186, 69, 38, .8); } }

@media (prefers-reduced-motion: reduce) {
  .sh-heat-glow { transition: none; }
  .sh-heat.sh-stale-on .sh-stale { animation: none; }
}
