.visible-transition {
    transition-delay: 0s;
    transition-duration: 1s;
    transition-property: all;
    transition-timing-function: ease;
}

.collapse-pane {
    background: #A0A0A0;
    bottom: 0;
    position: absolute;
    margin-bottom: 0.5em;
    margin-right: 0.5em;
    margin-left: 0.5em;
    border-radius: 5px;
    padding: 0.5em;
    z-index: 5;
    opacity: 0.7;
    cursor: pointer;
}

.search-input {
    vertical-align: middle;
    width: 145px;
    opacity: 1;
}

.button-input {
    vertical-align: middle;
    width: 24px;
    opacity: 0.4;
    cursor: pointer;
}

.button-input-toggled {
    border-radius: 5px;
    background-color: #505050;
}

.button-input:focus {
    outline: none;
}

.invisible {
    display: none;
}


.selected {
    background-color: #FFFF33;
}

.prettyprint ol.linenums > li {
    list-style-type: decimal;
    !important
}


body {
    margin: 0;
    padding: 0;
    height: 100vh;
    width: 100vw;
    overflow:hidden;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

p {
    text-align: center;
    overflow: overlay;
    position: relative;
}

marker {
    fill: #080808;
}

g rect {
    fill: #F0F0F0;
    stroke: #080808;
    stroke-width: 2px;
}

g.dead {
    opacity: .5;
}

g.unsorted rect {
    opacity: 0.5;
}

div.scrollable {
    overflow-y: _croll; overflow-x: hidden;
}

g.turbonode[relToHover="input"] rect {
    stroke: #67e62c;
    stroke-width: 16px;
}

g.turbonode[relToHover="output"] rect {
    stroke: #d23b14;
    stroke-width: 16px;
}

path[relToHover="input"] {
    stroke: #67e62c;
    stroke-width: 16px;
}

path[relToHover="output"] {
    stroke: #d23b14;
    stroke-width: 16px;
}


g.turbonode:hover rect {
  stroke: #000000;
  stroke-width: 7px;
}

g.control rect {
    fill: #EFCC00;
    stroke: #080808;
    stroke-width: 5px;
}

g.javascript rect {
    fill: #DD7E6B;
}

g.simplified rect {
    fill: #3C78D8;
}

g.machine rect {
    fill: #6AA84F;
}

g.input rect {
    fill: #CFE2F3;
}

g.selected rect {
    fill: #FFFF33;
}

circle.bubbleStyle {
    fill: #080808;
    fill-opacity: 0.0;
    stroke: #080808;
    stroke-width: 2px;
}

circle.bubbleStyle:hover {
    stroke-width: 3px;
}

circle.filledBubbleStyle {
    fill: #080808;
    stroke: #080808;
    stroke-width: 2px;
}

circle.filledBubbleStyle:hover {
    fill: #080808;
    stroke-width: 3px;
}

circle.halfFilledBubbleStyle {
    fill: #808080;
    stroke: #101010;
    stroke-width: 2px;
}

circle.halfFilledBubbleStyle:hover {
    fill: #808080;
    stroke-width: 3px;
}

path {
    fill: none;
    stroke: #080808;
    stroke-width: 4px;
    cursor: default;
}

path:hover {
    stroke-width: 6px;
}

path.hidden {
    fill: none;
    stroke-width: 0;
}

path.link.selected {
    stroke: #FFFF33;
}

pre.prettyprint {
  border: none !important;
  padding: 0px;
}

li.L1,
li.L3,
li.L5,
li.L7,
li.L9 {
    background: none !important
}

li.nolinenums {
  list-style-type:none;
}

ul.noindent {
  -webkit-padding-start: 0px;
  -webkit-margin-before: 0px;
  -webkit-margin-after: 0px;
}

input:hover, .collapse-pane:hover input {
    opacity: 1;
    cursor: pointer;
}

span.linkable-text {
    text-decoration: underline;
}

span.linkable-text:hover {
    cursor: pointer;
    font-weight: bold;
}


#left {
    float: left; height: 100%; background-color: #FFFFFF;
}

#middle {
    float:left; height: 100%; background-color: #F8F8F8;
}

#right {
    float: right; background-color: #FFFFFF;
}


#disassembly-collapse {
    right: 0;
}

#source-collapse {
    left: 0;
}

#graph-toolbox-anchor {
    height: 0px;
}

#graph-toolbox {
    position: relative;
    top: 1em;
    left: 25px;
    border: 2px solid #eee8d5;
    border-radius: 5px;
    padding: 0.7em;
    z-index: 5;
    background: rgba(100%, 100%, 100%, 0.7);
}

#disassembly-toolbox {
    position: relative;
    top: 1em;
    left: 0.7em;
    border: 2px solid #eee8d5;
    border-radius: 5px;
    padding: 0.7em;
    z-index: 5;
}

#load-file {
    position: absolute;
    top: 0;
    right: 0;
    margin-top: 0.5em;
    margin-right: 0.5em;
    z-index: 5;
    opacity: 0.7;
}

#load-file input {
    background: #A0A0A0;
    border-radius: 5px;
    padding: 0.5em;
}

#hidden-file-upload {
    display: none;
}

.prof {
    cursor: default;
}

tspan {
    font-size: 500%;
    font-family: sans-serif;
}

text {
    dominant-baseline: text-before-edge;
}

.resizer-left {
    position:absolute;
    width: 4px;
    height:100%;
    background: #a0a0a0;
    cursor: pointer;
}

.resizer-left.snapped {
    width: 12px;
}

.resizer-left:hover {
    background: orange;
}

.resizer-left.dragged {
    background: orange;
}

.resizer-right {
    position:absolute;
    width: 4px;
    height:100%;
    background: #a0a0a0;
    cursor: pointer;
}

.resizer-right.snapped {
    width: 12px;
}

.resizer-right:hover {
    background: orange;
}

.resizer-right.dragged {
    background: orange;
}