/* Safety & Incident (.sf) — Signal in-slot page. Tokens are injected on .sf-root at runtime
   (light + dark) by the viewmodel; this file is structure/animation only, fully namespaced. */
.sf-root { font-family: 'Plus Jakarta Sans', system-ui, sans-serif; -webkit-font-smoothing: antialiased; }
/* Embedded in the PM3 project tab: force NORMAL FLOW (content-sized) so the safety panel sits inside
   the .pm3-section and never overlays the PM3 tab strip / project header. !important is required
   because another module (documentSearch) also uses the `.sf-root` class and sets it to
   position:absolute; inset:0; overflow:hidden — that global rule would otherwise leak onto this page
   and turn the embedded tab into a full-viewport overlay. */
.sf-root.sf-embedded {
  position: static !important;
  inset: auto !important;
  top: auto !important; right: auto !important; bottom: auto !important; left: auto !important;
  height: auto !important;
  display: block !important;
  overflow: visible !important;
  background: transparent !important;
}
.sf-root *,
.sf-root *::before,
.sf-root *::after { box-sizing: border-box; }
.sf-mono { font-family: 'IBM Plex Mono', ui-monospace, monospace; }
.sf-row { transition: background .12s; }
.sf-row:hover { background: var(--surface-2, #FAFBFE); }
.sf-act { transition: filter .14s; }
.sf-act:hover { filter: brightness(.97); }
@keyframes sf-pop { 0% { transform: translateY(8px); opacity: 0; } 100% { transform: translateY(0); opacity: 1; } }
.sf-toast { animation: sf-pop .25s var(--ease, cubic-bezier(.2,.8,.2,1)); }
