body {
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: 0;
  padding: 0;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serf;
  background: #fff;
}


@-webkit-keyframes flash {
  0%, 50%, 100% {
    opacity: 1;
  }

  25%, 75% {
    opacity: 0.2;
  }
}

@keyframes flash {
  0%, 50%, 100% {
    opacity: 1;
  }

  25%, 75% {
    opacity: 0.2;
  }
}

.warn {
  -webkit-animation-duration: 5s;
  -webkit-animation-fill-mode: both;
  -webkit-animation-iteration-count: 1;
  -webkit-animation-name: flash;
  animation-duration: 5s;
  animation-fill-mode: both;
  animation-iteration-count: 1;
  animation-name: flash;
}

div.graph, div.progress {
  width: 100%;
  height: 100%;
}

svg {
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.node rect, .node polygon {
  stroke-width: 2.0px;
  stroke: #bbb;
}

/* DROP states */
.node.initialized :first-child, rect.initialized {
  fill: #ffe;
}

.node.writing :first-child, rect.writing {
  fill: #ecde7b;
}

.node.completed :first-child, rect.completed {
  fill: #7bdc7b;
}

.node.expired :first-child, rect.expired {
  fill: #700000;
}

.node.cancelled :first-child, rect.cancelled {
  fill: #cccccc;
}

.node.deleted :first-child, rect.deleted {
  color: #700000;
}

/* AppDROP states */
.node.not_run :first-child, rect.not_run {
  fill: #ffe;
}

.node.running :first-child, rect.running {
  fill: #ecde7b;
}

.node.finished :first-child, rect.finished {
  fill: #7bdc7b;
}

.node.error :first-child, rect.error {
  fill: #e44f33;
}

.node.container polygon {
  stroke-dasharray: 5;
}

.node g div {
  width: 180px;
  height: 60px;
  color: #000;
  overflow: hidden;
}

.node polygon+g div div {
	padding-left: 20%
}

.node rect+g div div {
	padding-left: 2%
}

.edgeLabel text {
  width: 50px;
  fill: #fff;
}

.edgePath path {
  stroke: #999;
  stroke-width: 1.5px;
  fill: #999;
}

.notes {
  font-size: 90%;
}

.drop-label span {
  display: block;
}