.bom {
    background: #ddd;
    border: solid 1px #ccc;
}

.bom table {
    border-spacing: 0;
    border-collapse: collapse;
    text-align: left;
    table-layout: auto;
}

.bom table > thead {
    background: #452992;
    color: #fff;
}

.bom table > tbody {
    font-family: "Segoe UI", monospace;
    font-size: 1em;
    line-height: 130%;
}

.bom table > tbody td > *,
.bom table > thead th > * {
    padding: 7px 10px;
}

.bom table > tbody tr:not(:first-child) td {
    border-top: solid 1px #bbb;
}

.bom tbody td.product_quantity,
.bom tbody td.service_quantity {
    text-align: center;
}

.bom tbody tr.service {
    background: #fed;
}

.EW + .PWP, .PWP + .PWL {
    margin-left: 30px;
}

.no-margin {
    margin-left: 0 !important;
}

.bomArea .checkArea label {
    height: auto;
}

.bom td input {
    width: 40px;
    text-align: center;
    background: transparent;
    border-radius: 0;
    border: none;
    border-bottom: solid 1px transparent;
}

.bom td input:hover,
.bom td input:focus {
    background: rgba(255, 255, 255, .4);
    border-bottom-color: #999;
}

.bom td input.input-rd {
    pointer-events: none;
}

.bom .service_quantity input:hover,
.bom .service_quantity input:focus {
    background: rgba(255, 255, 255, 1);
    border-bottom-color: #bbb;
}

input[type=number]:not(:focus):not(:hover)::-webkit-inner-spin-button,
input[type=number]:not(:focus):not(:hover)::-webkit-outer-spin-button {
    opacity: 0;
}

.circularButton {
    color: #452992;
    border: solid 1px #96d;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    margin-top: 5px;
    cursor: pointer;
    box-shadow: 0 3px 3px -1px rgba(0, 0, 0, .3);
    -webkit-transition: all 100ms ease;
    -moz-transition: all 100ms ease;
    -ms-transition: all 100ms ease;
    -o-transition: all 100ms ease;
    transition: all 100ms ease;
    outline: none;
}

.circularButton:hover {
    background-color: #452992;
    color: #fff;
    border-color: #02b405;
    -webkit-transform: scale(1.1);
    -moz-transform: scale(1.1);
    -ms-transform: scale(1.1);
    -o-transform: scale(1.1);
    transform: scale(1.1);
    box-shadow: 0 4px 6px -2px rgba(0, 0, 0, .4);
}

.circularButton:active {
    -webkit-transition-duration: 50ms;
    -moz-transition-duration: 50ms;
    -ms-transition-duration: 50ms;
    -o-transition-duration: 50ms;
    transition-duration: 50ms;
    -webkit-transform: scale(.9) translateY(5px);
    -moz-transform: scale(.9) translateY(5px);
    -ms-transform: scale(.9) translateY(5px);
    -o-transform: scale(.9) translateY(5px);
    transform: scale(.9) translateY(5px);
    background-color: #02b405;
    color: #99b;
    border-color: #181330;
    box-shadow: 0 0 6px rgba(0, 0, 0, .3);
}

.libraries > nav li {
    background: #bbb;
    margin: 10px 10px 0;
    padding: 5px;
    text-align: center;
    -webkit-transform: scale(.9) translateY(2px);
    -moz-transform: scale(.9) translateY(2px);
    -ms-transform: scale(.9) translateY(2px);
    -o-transform: scale(.9) translateY(2px);
    transform: scale(.9) translateY(2px);
    -webkit-transition: all 200ms ease;
    -moz-transition: all 200ms ease;
    -ms-transition: all 200ms ease;
    -o-transition: all 200ms ease;
    transition: all 200ms ease;
    cursor: pointer;
}

.libraries > nav li.active {
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -ms-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1);
    background: #ccc;
}

.libraries > .sheets {
    background: #ccc;
    padding: 10px;
    margin: 0 -20px;
}

.libraries > .sheets > ul > li {
    display: none;
    -webkit-transform: scale(.94);
    -moz-transform: scale(.94);
    -ms-transform: scale(.94);
    -o-transform: scale(.94);
    transform: scale(.94);
    opacity: 0;
    -webkit-transition: all 300ms ease;
    -moz-transition: all 300ms ease;
    -ms-transition: all 300ms ease;
    -o-transition: all 300ms ease;
    transition: all 300ms ease;
}

.libraries > .sheets > ul > li.active {
    display: block;
}

.libraries > .sheets > ul > li.visible {
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -ms-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1);
    opacity: 1;
}

.library.bom {
    background: none;
    border: none;
}

.library table {
    background: #fff;
}

.library table thead {
    line-height: 10px;
    font-size: .8em;
    font-weight: normal;
    background: #777;
}

.library h3 {
    background: #452992;
    color: #fff;
    padding: 8px;
}

.library h3 {
    margin-top: 20px;
}

.library.bom table > tbody td > *,
.library.bom table > thead th > * {
    padding: 4px 5px;
}

.library.bom table tbody tr.service {
    background: #eef;
}

.library.bom table tbody tr:not(.service) {
    cursor: pointer;
}

.library.bom table tbody tr:not(.service):hover,
.library.bom table tbody tr:not(.service):hover + tr.service {
    background: #ffa;
}

.library.bom table tbody tr:not(.service):hover + tr.service {
    color: #22c;
    opacity: .7;
}

.library.bom table tbody tr:last-child {
    border-bottom: solid 1px #bbb;
}

.bom table button {
    padding: 2px 6px 3px;
    line-height: 100%;
}

.version-list a {
    display: inline-block;
    color: #555;
    font-size: 1.2em;
    margin: 0 1px;
    padding: 2px 5px;
    background: #ddf;
    border-radius: 4px;
    border: solid 1px #bbe;
}

.version-list a:first-of-type {
    margin-left: 5px;
}

.version-list a.active {
    background: #ccf;
    border-color: #99d;
    color: #227;
    box-shadow: 0 1px 5px rgba(0, 0, 0, .3);
    cursor: default;
}

.version-list a:hover {
    background: #ccf;
}

.updateOutput {
    background: #DDD;
    line-height: 140%;
    margin-bottom: 10px;
    border: solid 2px #BBB;
    padding: 10px 10px 15px;
}

.updateOutput > div {
    font-family: monospace;
    font-size: 13px;
    padding: 0 15px;
    max-height: 300px;
    overflow-y: scroll;
    overflow-x: hidden;
}

.updateOutput em {
    color: red;
    font-weight: bold;
}

.updateOutput pre {
    tab-size: 4;
}