.component {
    position: absolute;
}

.nospace {
    overflow: visible;
    width: 0;
    height: 0;
    display: inline-block;
}

.unselectable {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.register {
    border: 1px solid rgb(30, 30, 30);
    background-color: rgba(200, 200, 200, 1);
    border-radius: 6px;
    padding: 5px;
    display: inline-block;
    height: 18px;
    width: 53px;
    line-height: 18px;
}

.register input {
    width: 53px;
    margin: 0;
    background-color: rgba(200, 200, 200, 1);
    border: 0 solid rgba(200, 200, 200, 1);
    font-family: monospace;
    color: rgb(0, 0, 0);
    text-align: center;
}

.register .connection, .memory .connection, .bitregister .connection {
    border: 1px solid rgb(30, 30, 30);
    min-width: 13px;
    height: 19px;
    line-height: 18px;
    text-align: center;
    border-radius: 3px;
    color: rgb(0, 0, 0);
    display: inline-block;
    position: absolute;
    cursor: pointer;
    overflow: hidden;
}

.register .toprow, .bitregister .toprow {
    top: -16px;
}

.register .bottomrow {
    top: 26px;
}

.register .grayback:active {
    background-color: rgb(255, 255, 255);
}

.memory {
    border: 1px solid rgb(30, 30, 30);
    background-color: rgba(200, 200, 200, 1);
    border-radius: 6px;
    padding: 5px 2px;
    display: inline-block;
    line-height: 18px;
}

.memory table {
    position: relative;
    top: -5px;
    font-family: monospace;
    border-spacing: 0;
    border-collapse: collapse;
}

.memory table td {
    min-width: 72px;
}

.memory table .address {
    text-align: center;
    padding-right: 5px;
    font-size: 13px;
}

.memory table .value {
    text-align: center;
    border-left: 1px solid rgb(40, 40, 40);
    padding-left: 5px;
    font-size: 13px;
}

.memory table .address span, .memory table .value span {
    display: inline-block;
}

.memory .toprow {
    top: -22px;
}

.bus-type {
    display: inline-block;
    position: absolute;
}

.bus .horizontal {
    border-top: 2px solid;
}

.wire .horizontal {
    border-top: 1px solid rgba(200, 200, 200, 0.6);
}

.bus .vertical {
    border-left: 2px solid;
}

.wire .vertical {
    border-left: 1px solid rgba(200, 200, 200, 0.6);
}

.bus .topleft {
    border-top: 2px solid;
    border-left: 2px solid;
    border-top-left-radius: 6px;
}

.wire .topleft {
    border-top: 1px solid rgba(200, 200, 200, 0.6);
    border-left: 1px solid rgba(200, 200, 200, 0.6);
    border-top-left-radius: 6px;
}

.bus .topright {
    border-top: 2px solid;
    border-right: 2px solid;
    border-top-right-radius: 6px;
}

.wire .topright {
    border-top: 1px solid rgba(200, 200, 200, 0.6);
    border-right: 1px solid rgba(200, 200, 200, 0.6);
    border-top-right-radius: 6px;
}

.bus .bottomleft {
    border-bottom: 2px solid;
    border-left: 2px solid;
    border-bottom-left-radius: 6px;
}

.wire .bottomleft {
    border-bottom: 1px solid rgba(200, 200, 200, 0.6);
    border-left: 1px solid rgba(200, 200, 200, 0.6);
    border-bottom-left-radius: 6px;
}

.bus .bottomright {
    border-bottom: 2px solid;
    border-right: 2px solid;
    border-bottom-right-radius: 6px;
}

.wire .bottomright {
    border-bottom: 1px solid rgba(200, 200, 200, 0.6);
    border-right: 1px solid rgba(200, 200, 200, 0.6);
    border-bottom-right-radius: 6px;
}

.busconnector {
    position: absolute;
    width: 5px;
    height: 5px;
    background-color: rgb(0, 0, 0);
}

.busconnectortoprow {
    top: -4px;
}

.busconnectorbottomrow {
    top: 20px;
}

.wireconnector {
    position: absolute;
    width: 3px;
    height: 3px;
    border: 1px solid rgb(30, 30, 30);
    cursor: pointer;
}

.wireconnector:active {
    box-shadow: 1px 1px 1px rgba(40, 40, 255, 0.3);
}

.wireconnectortoprowwrite {
    top: 2px;
}

.wireconnectortoprowread {
    top: 9px;
}

.wireconnectorbottomrowwrite {
    top: 14px;
}

.wireconnectorbottomrowread {
    top: 7px;
}

.grayback {
     background-color: rgb(200, 200, 200);
}

.read {
    background-color: rgb(122, 222, 103);
}

.write {
    background-color: rgb(255, 103, 97);
}

.label {
    position: absolute;
    width: auto;
    height: auto;
    padding: 0.2em;
    /*background-color: rgb(255, 255, 255);
    border-radius: 0.3em;
    border: 0.1em solid;*/
}

.switch {
    width: 18px;
    height: 12px;
    border: 1px solid rgb(30, 30, 30);
    background-color: rgba(200, 200, 200, 1);
    border-radius: 6px;
    cursor: pointer;
}

.switch .wireconnector {
    background-color: rgba(200, 200, 200, 1);
}

.led {
    width: 8px;
    height: 8px;
    border-radius: 8px;
    border: 1px solid rgb(30, 30, 30);
}

.negationcircle {
    position: absolute;
    width: 6px;
    height: 6px;
    border-radius: 6px;
    border: 1px solid rgb(0, 0, 0);
    background-color: rgb(200, 200, 200);
}

.bitregister {
    border: 1px solid rgb(30, 30, 30);
    background-color: rgb(200, 200, 200);
    border-radius: 6px;
    padding: 5px;
    display: inline-block;
    width: 26px;
    line-height: 10px;
}

.bitregister .bitconnections {
    border: 1px solid rgb(30, 30, 30);
    border-radius: 3px;
}

.flanktriggered {
    width: 3px;
    height: 5px;
    background: url("../images/Flank-triggered.svg") no-repeat;
}

.delay {
    position: absolute;
    width: 17px;
    height: 5px;
    background: url("../images/Delay.svg") no-repeat;
    cursor: pointer;
}

.delay-input {
    border: 1px solid rgb(30, 30, 30);
    background-color: rgba(200, 200, 200, 1);
    border-radius: 6px;
    position: absolute;
    z-index: 1000;
    top: 6px;
    left: -24px;
    padding: 5px;
    display: inline-block;
    height: 36px;
    width: 53px;
    line-height: 18px;
}

.delay-input input {
    width: 53px;
    margin: 0;
    background-color: rgba(200, 200, 200, 1);
    border: 0 solid rgba(200, 200, 200, 1);
    font-family: monospace;
    color: rgb(0, 0, 0);
    text-align: center;
}

.filter {
    border: 1px solid rgb(30, 30, 30);
    background-color: rgba(200, 200, 200, 1);
    border-radius: 6px;
    font-size: 8px;
}

.filter input {
    font-family: monospace;
}

.filteredit {
    padding: 5px;
    display: inline-block;
    height: 34px;
    width: 120px;
    line-height: 18px;
}

.filteredit input {
    margin: 0;
    background-color: rgba(200, 200, 200, 1);
    border: 0 solid rgba(200, 200, 200, 1);
    font-family: monospace;
    color: rgb(0, 0, 0);
    text-align: center;
    width: 120px;
}

.clock {
    width: 68px;
    height: 20px;
    border: 1px solid rgb(30, 30, 30);
    background-color: rgba(200, 200, 200, 1);
    border-radius: 6px;
}

.clock input {
    width: 53px;
    height: 14px;
    margin: 1px 0 0 0;
    background-color: rgba(200, 200, 200, 1);
    border: 0 solid rgba(200, 200, 200, 1);
    border-radius: 6px;
    font-family: monospace;
    color: rgb(0, 0, 0);
    text-align: center;
    position: absolute;
    left: 14px;
}

.touch-button {
    border: 1px solid rgb(30, 30, 30);
    width: 30px;
    height: 30px;
    font-size: 24px;
    position: relative;
    z-index: 2000;
    cursor: pointer;
}

.touch-button:active {
    background-color: rgb(255, 255, 255);
}