/* =================== SESSION LIVENESS BADGE ===================
   Site-wide floating badge (session-badge.js, rendered from _Layout on every
   authenticated page). Bottom-left corner; on the CEO Task Tracker page it
   stacks just above that page's version badge. Subtle while the session is
   healthy; loud + pulsing when it has expired so the user can't miss that
   anything they POST will NOT be saved until they sign in again. */
.session-badge {
  position: fixed;
  bottom: 40px;
  left: 12px;
  z-index: 100000;
  font-size: 11px;
  font-weight: 700;
  padding: 4px 11px;
  border-radius: 12px;
  color: #fff;
  letter-spacing: .3px;
  line-height: 1.4;
  font-family: 'Inter', system-ui, sans-serif;
  box-shadow: 0 4px 12px rgba(0, 0, 0, .18);
  user-select: none;
  transition: background .25s, opacity .25s;
  max-width: 320px;
}

.session-badge.ss-checking { background: #64748b; opacity: .7;  pointer-events: none; }
.session-badge.ss-alive    { background: #16a34a; opacity: .6;  pointer-events: none; }
.session-badge.ss-offline  { background: #f59e0b; opacity: .95; cursor: pointer; }
.session-badge.ss-dead     { background: #dc2626; opacity: 1;   cursor: pointer; animation: ss-pulse 1.4s ease-in-out infinite; }

@keyframes ss-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(220, 38, 38, .55); }
  50%      { box-shadow: 0 0 0 8px rgba(220, 38, 38, 0); }
}
