body { font-family: "Open Sans"; background: #fff; font-size: 16px; }
input, select { font-family: "Open Sans"; font-size: 16px; }
body, html { margin: 0; padding: 0; height: 100%; overflow: hidden; }

.lds-ring {
  display: inline-block;
  position: absolute;
  top: 50%; left: 50%;
  margin-left: -40px;
  margin-top: -40px;
  width: 80px;
  height: 80px;
}
.lds-ring div {
  box-sizing: border-box;
  display: block;
  position: absolute;
  width: 64px;
  height: 64px;
  margin: 8px;
  border: 8px solid #000;
  border-radius: 50%;
  animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
  border-color: #000 transparent transparent transparent;
}
.lds-ring div:nth-child(1) {
  animation-delay: -0.45s;
}
.lds-ring div:nth-child(2) {
  animation-delay: -0.3s;
}
.lds-ring div:nth-child(3) {
  animation-delay: -0.15s;
}
@keyframes lds-ring {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

.button { display: inline-block; font-size: 20px; line-height: 30px; color: #fff; white-space: nowrap; padding: 5px 15px; cursor: pointer; border-radius: 5px; text-align: center; font-weight: 600; user-select: none; transition: all .2s ease; text-transform: uppercase; }
.button.log_out { background: #FF0000; }
.button.cancel,.button.reset,.button.back { background: #FF0000; }
.button.hold { background: #4285F4; }
.button.history,.button.build_package { background: #858585; }
.button.packages,.button.items { background: orange; }
.button.pay,.button.filter { background: #6AA84F; }
.button:active { filter: brightness(66%); transform: translateY(2px); }

#header { background: #bbb; height: 60px; border: 1px solid #333; }
#header .branding { height: 60px; padding: 0 15px; border-right: 1px solid rgba(255,255,255,.3); float: left; }
#header .branding img { max-height: 60px; max-width: 150px; position: relative; top: 50%; transform: translateY(-50%); }
#header .button.log_out { position: absolute; top: 10px; right: 20px; width: 120px; }
#header .button.refresh { position: absolute; top: 10px; right: 180px; width: 40px; background: #4285F4; }
#header .queue { position: absolute; top: 10px; right: 235px; width: 40px; color: #fff; padding: 7px; font-size: 120%; }

#main { border: 1px solid #333; border-top: 0; position: absolute; top: 62px; left: 0; right: 0; bottom: 0; min-width: 1194px; }

input { padding: 10px; border: 1px solid #333; }
input[type="submit"] { min-width: 50px; }
form input[type="submit"].on { background: #6AA84F; color: #fff; }
form input[type="submit"].alert { background: #FF0000; color: #fff; }
input[type="submit"][value="#"] { display: none; }
select { padding: 10px; }

.transaction_input { position: absolute; top: 20px; left: 20px; right: calc(33% + 20px); bottom: 136px; }

.transaction { position: absolute; top: 0; right: 0; bottom: 0; width: 33%; background: #eee; border-left: 1px solid #333; }
.transaction .data { position: absolute; top: 0; bottom: 306px; left: 0; right: 0; overflow: auto; }
.transaction .data table { width: 100%; padding: 20px; border-spacing: 0; }
.transaction .data th { text-align: left; padding: 10px; background: #ccc; position: sticky; top: 0; }
.transaction .data th[align="right"] { text-align: right; }
.transaction .data td { padding: 10px; }

.transaction .totals { position: absolute; bottom: 0; left: 0; right: 0; height: 305px; border-top: 1px solid #333; }
.transaction .totals table { width: 100%; padding: 15px 10px; border-spacing: 0; }
.transaction .totals td { padding: 5px 10px; font-size: 24px }
.transaction .totals tr:nth-child(1) td { font-weight: bold; }
.transaction .totals tr:nth-child(4) td { font-weight: bold; }

.transaction .totals .buttons { position: absolute; bottom: 0; left: 20px; right: 20px; height: 100px; }
.transaction .totals .buttons .button { position: absolute; width: calc(30% - 20px); padding: 0; line-height: 80px; }
.transaction .totals .buttons .button.cancel { left: 0; }
.transaction .totals .buttons .button.hold { left: 30%; }
.transaction .totals .buttons .button.pay { left: 60%; width: 40%; }

.transaction .totals .buttons.disabled { filter: saturate(50%); opacity: .5; pointer-events: none; }
.transaction .totals .buttons .button.disabled { filter: saturate(50%); opacity: .5; pointer-events: none; }

#barcode_search_barcode { width: 30%; }
#product_search_form input { width: 20%; }
#package_search_form input { width: 30%; }

#product_search_results, #package_search_results { position: absolute; top: 137px; bottom: 0; left: 0; right: 0; overflow: auto; }
#product_search_results.category_overview { top: 176px; }
#package_search_results { display: none; top: 70px; }
#package_search_results.package_overview { top: 60px; }
#product_search_results table, #package_search_results table { width: 100%; border-spacing: 0; }
#product_search_results th, #package_search_results th { text-align: left; padding: 10px; background: #ccc; }
#product_search_results th[align="right"], #package_search_results th[align="right"] { text-align: right; }
#product_search_results td, #package_search_results td{ padding: 5px 10px; }
#product_search_results tr:nth-child(even) td,#package_search_results tr:nth-child(even) td { background: #eee; }

#button_home { position: absolute; top: 137px; left: 20px; background: orange; display: none; width: 120px; }
#button_back_category { display: none; position: absolute; top: 137px; left: 180px; width: 120px; }
#pos_main_categories { position: absolute; top: 176px; bottom: 136px; left: 20px; right: calc(33% + 20px); overflow: auto; }
#pos_main_categories .category { position: relative; float: left; width: 180px; height: 180px; margin-right: 10px; margin-top: 10px; cursor: pointer; text-align: center; color: #333; }
#pos_main_categories .category.background:after { content: ''; background: linear-gradient(to bottom, #eee, #ddd); position: absolute; left: 0; width: 180px; height: 150px; border-radius: 6px; }
#pos_main_categories .category .image { position: absolute; left: 0; width: 180px; height: 150px; border-radius: 6px; }
#pos_main_categories .category span { position: absolute; left: 0; right: 0; bottom: 5px; vertical-align: bottom; line-height: initial; }
#product_search_results .category_parent_product { float: left; width: 180px; height: 180px; margin-right: 10px; margin-top: 10px; cursor: pointer; text-align: center; }
#product_search_results .category_parent_product .img { width: 180px; height: 150px; }
#product_search_results .category_parent_product span { margin-top: 10px; }

#customer_search_results { position: absolute; top: 0; bottom: 0; left: 0; right: 0; overflow: auto; }
#customer_search_results table { width: 100%; border-spacing: 0; }
#customer_search_results th { text-align: left; padding: 10px; background: #ccc; }
#customer_search_results th[align="right"] { text-align: right; }
#customer_search_results td { padding: 5px 10px; }
#customer_search_results tr:nth-child(even) td { background: #eee; }

#customer { position: absolute; left: 0; right: 0; bottom: 0; height: 135px; border-top: 1px solid #333; right: calc(33%); background: #eee; }
#customer input { width: 35%; }
#customer form { position: absolute; left: 20px; right: 20px; top: 20px; }

#payscreen, #discountscreen, #notescreen, #chargescreen, #holdscreen, #customerlist, #historyscreen, #customer_address_screen, #loqate_screen, #receipt, #receipt_gifts, #deliveryscreen, #returnscreen { display: none; position: absolute; top: 0; left: 0; right: calc(33% + 1px); bottom: 0; background: #fff; }

.keypad input[type="button"] { width: 70px; height: 70px; float: left; }

#payscreen .inner, #discountscreen .inner, #notescreen .inner, #chargescreen .inner, #returnscreen .inner { position: absolute; left: 50%; top: 10%; transform: translateX(-50%); width: 528px; }
#payscreen .inner { top: 3%; width: 780px; }
#holdscreen .inner, #historyscreen .inner, #receipt .inner, #receipt_gifts .inner, #customerlist .inner, #customer_address_screen .inner, #loqate_screen .inner, #deliveryscreen .inner { position: absolute; left: 20px; right: 20px; top: 20px; bottom: 0; }

#payscreen .keypad, #discountscreen .keypad, #chargescreen .keypad { float: left; }
#payscreen .methods, #discountscreen .methods, #chargescreen .methods { float: left; margin-left: 36px; width: 180px; }
#payscreen .methods { width: 460px; }
#payscreen .methods input, #discountscreen .methods input, #chargescreen .methods input { margin-bottom: 10px; }
#payscreen .methods .button.pay { padding: 15px 15px; }

#payment_amount, #pay_installments_amount, #charge_amount, #discount_amount { width: 186px; }

#customer_name,#customer_email,#customer_number { background: #fff; border: 1px solid #333; padding: 11px; color: #333; }
#customer_name.validated, #customer_email.validated,#customer_number.validated { background: #eeffee !important; border: 1px solid #393; color: #030; }

#login { display: none;  position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: #fff; }
#login .inner { position: absolute; left: 50%; top: 10%; transform: translateX(-50%); }

#email_receipt { position: absolute; left: 70%; top: 57px; margin-left: -85px; }
#tax_free { position: absolute; left: 70%; top: 57px; margin-left: -185px; }

.checkbox { display: inline-block; font-size: 15px; line-height: 26px; color: #fff; white-space: nowrap; padding: 3px 10px; cursor: pointer; border-radius: 5px; text-align: center; font-weight: 600; user-select: none; transition: all .2s ease; text-transform: uppercase; }
.checkbox:active { filter: brightness(66%); transform: translateY(2px); }
.checkbox { background: #A8A8A8; color: #8a8a8a; }
.checkbox.on { background: #6AA84F; color: #fff; }
.checkbox+span { color: #8a8a8a; }
.checkbox.on+span { color: #000; }

#holdscreen h3, #historyscreen h3, #customer_address_screen h3, #loqate_screen h3 { margin: 0 0 20px 0; }

#loqate_screen #loqate_error { color: #cc3333; font-size: 80%; font-weight: bold; }
#loqate_screen #loqate_results { position: absolute; top: 100px; bottom: 20px; left: 0; right: 0; overflow: auto; }
#loqate_screen #loqate_results tr:nth-child(even) td { background: #eee; }
#loqate_screen #loqate_results td { padding: 5px 0; }

#receipt_gifts .vouchers .voucher+.voucher { margin-top: 20px; }

@media screen and (max-width: 1350px) {
  .button { font-size: 16px; }
}

@media screen and (max-width: 1450px) {
  #main .transaction_input .button { margin-left: -5px; font-size: 18px; }
}

@media screen and (max-width: 1350px) {
  #main .transaction_input .button { margin-left: -5px; font-size: 16px; padding: 5px 10px; }
}

#overlay_message { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,.5); }
#overlay_message .message { position: absolute; top: 50%; left: 50%; padding: 50px; transform: translate(-50%,-50%); background: #ddd; border: 2px solid #666; }
#overlay_message .message .button { display: block; margin-top: 30px; background: #999; }