body { background: #f6f8fb; }
.navbar-brand { letter-spacing: .3px; }
.card { border: none; border-radius: 12px; }
code { color: #b00020; }

/* Stepper avanzamento firma (dashboard) */
.flow { display: inline-flex; align-items: center; gap: 0; }
.flow .st {
  width: 28px; height: 28px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 14px; line-height: 1; transition: transform .12s ease;
}
.flow .st:hover { transform: translateY(-1px); }
.flow .st.done  { background: #16a34a; color: #fff; box-shadow: 0 1px 3px rgba(22,163,74,.35); }
.flow .st.stuck { background: #fff7ed; color: #d97706; border: 2px solid #f59e0b;
                  animation: pulse 1.6s infinite; }
.flow .st.todo  { background: #eef1f6; color: #b6bdca; }
.flow .sep { width: 14px; height: 2px; background: #e5e7eb; }
.flow .sep.on { background: #16a34a; }
@keyframes pulse {
  0%   { box-shadow: 0 0 0 0 rgba(245,158,11,.45); }
  70%  { box-shadow: 0 0 0 6px rgba(245,158,11,0); }
  100% { box-shadow: 0 0 0 0 rgba(245,158,11,0); }
}
