﻿:root {
    --color-1: #e36c54;
    --color-2: #ff8e73;
    --color-3: #16697A;
    --color-4: #489FB5;
    --color-5: #231651;
    --color-6: #163117;
}
body {
    background-color: black;
    color: white;
    height: 100dvh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
body > main,
body .BottomArea {
    display: flex;
    flex-direction: row;
    flex: 1;
    width: 100dvw;
    overflow: auto;
}
body .BottomArea main {
    min-width: 500px;
    width: 100dvw;
}
body .BottomArea aside {
    flex: 1;
    min-width: 300px;
    border-left: 5px solid white;
    padding: 15px;
    display: flex;
    flex-direction: column;
    gap: 15px;
    overflow: auto;
    transition: all ease 500ms;
}
body .BottomArea aside:not(:has(.Product)) {
    min-width: 0;
    max-width: 0;
    border: none;
    padding: 0;
}
body .BottomArea aside .Product {
    background-color: var(--color-1);
    display: flex;
    flex-direction: row;
    min-height: auto;
    max-width: 100%;
    align-items: center;
    padding: 15px;
    gap: 15px;
    opacity: 0;
    animation-name: FadeIn;
    animation-fill-mode: forwards;
    animation-duration: 500ms;
    animation-delay: 350ms;
    animation-play-state: running;
    user-select: none;
}
body .BottomArea aside .Product:hover {
    background-color: var(--color-2);
    cursor: pointer;
}
body .BottomArea aside .Product img {
    max-height: 150px;
    height: 150px;
    max-width: 100px;
    width: 100px;
    object-fit: contain;
}
body .BottomArea aside .Product img:only-child {
    max-height: 100%;
    height: 100%;
}
body .BottomArea aside .Product div:first-of-type {
    justify-content: end;
}
body .BottomArea aside .Product div {
    display: flex;
    flex-direction: column;
    gap: 15px;
    height: 100%;
}
body .BottomArea aside .Product div span:first-of-type {
    flex: 1;
}
body .BottomArea aside .Product div button {
    background-color: var(--color-3);
    color: white;
    border: 5px solid white;
    padding: 15px;
    cursor: pointer;
}
body .BottomArea aside .Product div button:hover {
    background-color: var(--color-4);
}
body .BottomArea aside .Product div label {
    border: 5px solid white;
    padding: 15px 0;
    text-align: center;
    background-color: white;
    color: black;
}
body .BottomArea aside .Product div .TillControls {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: end;
    flex: 0;
}
body .BottomArea aside .Product div .TillControls label {
    flex: 1;
}
body .BottomArea aside .Product div button:disabled {
    background-color: gray;
    border-color: gray;
    cursor: default;
}

@media screen and (max-width: 784px) {
    body .BottomArea aside {
        display: none;
    }
}

body .Dashboard {
    display: flex;
    flex-direction: column;
    gap: 30px;
    align-items: center;
    justify-content: center;
    flex: 1;
    padding: 15px;
}
body .Dashboard .Apps {
    display: flex;
    flex-direction: row;
    gap: 30px;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
}
body .Dashboard .Apps a {
    display: flex;
    flex-direction: column;
    min-width: 150px;
    max-width: 150px;
    background-color: var(--color-1);
    border: 5px solid var(--color-1);
    padding: 15px;
    gap: 15px;
    transition: all ease-in-out 150ms;
    color: white;
    text-decoration: none;
}
body .Dashboard .Apps a img {
    height: 150px;
    object-fit: contain;
}
body .Dashboard .Apps a span {
    text-align: center;
    font-size: 16pt;
}
body .Dashboard .Apps a:hover {
    background-color: var(--color-2);
    border-color: white;
}

body .Tills {
    flex: 1;
    display: flex;
    flex-direction: column;
    max-height: 100dvh;
}
body .Tills .Inputs {
    display: flex;
    flex-direction: row;
}
body .Tills .Inputs input {
    flex: 1;
    padding: 30px;
    background-color: var(--color-1);
    border-left: none;
    border-top: 5px solid white;
    border-bottom: 5px solid white;
    border-right: none;
    outline: none;
    color: white;
    text-align: center;
}
body .Tills .Inputs input:active,
body .Tills .Inputs input:focus {
    background-color: var(--color-2);
}
body .Tills .Inputs a {
    border: 5px solid white;
    background-color: var(--color-1);
    padding: 30px;
    color: white;
    cursor: pointer;
    text-decoration: none;
}
body .Tills .Inputs a:hover,
body .Tills .Inputs a:focus {
    background-color: var(--color-2);
}
body .Tills .Inputs a:only-child {
    flex: 1;
    text-align: center;
}
body .Tills ul {
    margin: 0;
    padding: 0;
    list-style: none;
    flex: 1;
    overflow: auto;
    scroll-behavior: smooth;
    scroll-snap-type: block;
}
body .Tills ul li {
    display: none;
    flex-direction: row;
    align-items: center;
    border-bottom: 5px solid white;
    background-color: var(--color-3);
    color: white;
    text-decoration: none;
    scroll-snap-align: start;
}
body .Tills ul li:nth-of-type(even) {
    background-color: var(--color-4);
}
body .Tills ul li.Show {
    display: flex;
}
body .Tills ul li a {
    padding: 30px;
    display: flex;
    flex-direction: column;
    gap: 15px;
    color: white;
    text-decoration: none;
}
body .Tills ul li a:first-of-type {
    flex: 1;
}
body .Tills ul li a:last-of-type:hover {
    background-color: lightcoral;
}
body .Tills ul li:hover {
    background-color: var(--color-5);
}
body .Tills form {
    display: flex;
    flex-direction: column;
    gap: 15px;
    padding: 15px;
    width: calc(100% - 30px);
    max-width: 700px;
    align-self: center;
}
body .Tills form fieldset {
    border: none;
    padding: 0;
    display: flex;
    flex-direction: row;
}
body .Tills form fieldset button,
body .Tills form fieldset input,
body .Tills form fieldset label {
    flex: 1;
    padding: 15px;
    border: 5px solid transparent;
}
body .Tills form fieldset button,
body .Tills form fieldset input {
    border: 5px solid white;
    background-color: var(--color-1);
    color: white;
    outline: none;
}
body .Tills form fieldset button {
    cursor: pointer;
}
body .Tills form fieldset button:active,
body .Tills form fieldset button:focus,
body .Tills form fieldset button:hover,
body .Tills form fieldset input:active,
body .Tills form fieldset input:focus {
    background-color: var(--color-2);
}
body .Tills form fieldset button {
    flex: 1;
}

body .Sales {
    flex: 1;
    display: flex;
    flex-direction: column;
    max-height: 100dvh;
}
body .Sales .Inputs {
    display: flex;
    flex-direction: row;
}
body .Sales .Inputs input {
    flex: 1;
    padding: 30px;
    background-color: var(--color-1);
    border-left: none;
    border-top: 5px solid white;
    border-bottom: 5px solid white;
    border-right: none;
    outline: none;
    color: white;
    text-align: center;
}
body .Sales .Inputs input:active,
body .Sales .Inputs input:focus {
    background-color: var(--color-2);
}
body .Sales .Inputs select {
    background-color: var(--color-1);
    border: 5px solid white;
    color: white;
    text-align: center;
    outline: none;
    word-wrap: break-word;
    padding: 30px 0;
    max-width: 250px;
}
body .Sales .Inputs button,
body .Sales .Inputs a {
    border: 5px solid white;
    background-color: var(--color-1);
    padding: 30px;
    color: white;
    cursor: pointer;
    text-decoration: none;
    align-content: center;
    text-align: center;
    user-select: none;
}
body .Sales .Inputs button:hover,
body .Sales .Inputs button:focus,
body .Sales .Inputs a:hover,
body .Sales .Inputs a:focus {
    background-color: var(--color-2);
}
body .Sales .Inputs a:only-child {
    flex: 1;
    text-align: center;
}
body .Sales .Inputs a:last-of-type {
    flex: 0;
    min-width: fit-content;
}

@media screen and (max-width: 815px) {
    body .Sales .Inputs {
        flex-wrap: wrap;
    }
    body .Sales .Inputs a:first-of-type {
        width: 100%;
    }
    body .Sales .Inputs input:first-of-type {
        border-left: 5px solid white;
    }
}
@media screen and (max-width: 681px) {
    body .Sales .Inputs .ScanMembersCard {
        flex: 1 !important;
    }
}

body .Sales ul {
    margin: 0;
    padding: 0;
    list-style: none;
    flex: 1;
    overflow: auto;
    scroll-behavior: smooth;
    scroll-snap-type: block;
}
body .Sales ul li {
    display: none;
    flex-direction: row;
    align-items: center;
    border-bottom: 5px solid white;
    background-color: var(--color-3);
    color: white;
    text-decoration: none;
    scroll-snap-align: start;
}
body .Sales ul li:nth-of-type(even) {
    background-color: var(--color-4);
}
body .Sales ul li.Show {
    display: flex;
}
body .Sales ul li a {
    padding: 30px;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 15px;
    color: white;
    text-decoration: none;
    word-wrap: break-word;
}
body .Sales ul li a:first-of-type {
    flex: 1;
}
body .Sales ul li:hover {
    background-color: var(--color-5);
}
body .Sales form {
    display: flex;
    flex-direction: column;
    gap: 15px;
    padding: 15px;
    width: calc(100% - 30px);
    max-width: 700px;
    align-self: center;
}
body .Sales form fieldset {
    border: none;
    padding: 0;
    display: flex;
    flex-direction: row;
}
body .Sales form fieldset button,
body .Sales form fieldset input,
body .Sales form fieldset label {
    flex: 1;
    padding: 15px;
    border: 5px solid transparent;
}
body .Sales form fieldset button,
body .Sales form fieldset input {
    border: 5px solid white;
    background-color: var(--color-1);
    color: white;
    outline: none;
}
body .Sales form fieldset button {
    cursor: pointer;
}
body .Sales form fieldset button:active,
body .Sales form fieldset button:focus,
body .Sales form fieldset button:hover,
body .Sales form fieldset input:active,
body .Sales form fieldset input:focus {
    background-color: var(--color-2);
}
body .Sales form fieldset button {
    flex: 1;
}

body .Sale {
    display: flex;
    flex-direction: row;
    max-height: 100dvh;
    user-select: none;
    overflow: hidden;
}
body .Sale .Details {
    display: flex;
    flex-direction: column;
    min-width: fit-content;
    border-right: 5px solid white;
    height: 100dvh;
    overflow: auto;
}
body .Sale .Details fieldset {
    border: none;
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
}
body .Sale .Details fieldset span:first-of-type {
    flex: 1;
}
body .Sale .Details fieldset:has(button){
    align-content: end;
}
body .Sale .Details fieldset button {
    min-width: 100%;
    flex: 0;
}
body .Sale .List {
    display: flex;
    flex-direction: row;
    gap: 15px;
    padding: 15px;
    flex-wrap: wrap;
    overflow: auto;
    width: 100dvw;
}
body .Sale .List div {
    background-color: var(--color-1);
    padding: 15px;
    max-height: fit-content;
    height: fit-content;
}
body .Sale .List div fieldset {
    border: none;
    display: flex;
    gap: 30px;
}
body .Sale .List div fieldset label:first-of-type {
    flex: 1;
}
body .Sale .Details fieldset a,
body .Sale .Details fieldset button,
body .Sale .List div fieldset button {
    background-color: var(--color-1);
    color: white;
    border: 5px solid white;
    padding: 15px;
    flex: 1;
    cursor: pointer;
    text-decoration: none;
    text-align: center;
}
body .Sale .Details fieldset a:hover,
body .Sale .Details fieldset button:hover,
body .Sale .List div fieldset button:hover {
    background-color: var(--color-2);
}
body .Sale .Details fieldset:last-of-type {
    flex: 1;
    align-items: end;
}

body .GiftCards {
    flex: 1;
    display: flex;
    flex-direction: column;
    max-height: 100dvh;
}
body .GiftCards .Inputs {
    display: flex;
    flex-direction: row;
}
body .GiftCards .Inputs input {
    flex: 1;
    padding: 30px;
    background-color: var(--color-1);
    border-left: none;
    border-top: 5px solid white;
    border-bottom: 5px solid white;
    border-right: none;
    outline: none;
    color: white;
    text-align: center;
}
body .GiftCards .Inputs input:active,
body .GiftCards .Inputs input:focus {
    background-color: var(--color-2);
}
body .GiftCards .Inputs select {
    background-color: var(--color-1);
    border: 5px solid white;
    color: white;
    text-align: center;
    outline: none;
    word-wrap: break-word;
    padding: 30px 0;
    max-width: 250px;
}
body .GiftCards .Inputs a {
    border: 5px solid white;
    background-color: var(--color-1);
    padding: 30px;
    color: white;
    cursor: pointer;
    text-decoration: none;
    align-content: center;
    text-align: center;
}
body .GiftCards .Inputs a:hover,
body .GiftCards .Inputs a:focus {
    background-color: var(--color-2);
}
body .GiftCards .Inputs a:only-child {
    flex: 1;
    text-align: center;
}
body .GiftCards .Inputs a:last-of-type {
    flex: 0;
    min-width: fit-content;
}

@media screen and (max-width: 815px) {
    body .GiftCards .Inputs {
        flex-wrap: wrap;
    }
    body .GiftCards .Inputs a:first-of-type {
        width: 100%;
    }
    body .GiftCards .Inputs input:first-of-type {
        border-left: 5px solid white;
    }
}

body .GiftCards ul {
    margin: 0;
    padding: 0;
    list-style: none;
    flex: 1;
    overflow: auto;
    scroll-behavior: smooth;
    scroll-snap-type: block;
}
body .GiftCards ul li {
    display: none;
    flex-direction: row;
    align-items: center;
    border-bottom: 5px solid white;
    background-color: var(--color-3);
    color: white;
    text-decoration: none;
    scroll-snap-align: start;
}
body .GiftCards ul li:nth-of-type(even) {
    background-color: var(--color-4);
}
body .GiftCards ul li.Show {
    display: flex;
}
body .GiftCards ul li a {
    padding: 30px;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 15px;
    color: white;
    text-decoration: none;
    word-wrap: break-word;
}
body .GiftCards ul li a:first-of-type {
    flex: 1;
}
body .GiftCards ul li:hover {
    background-color: var(--color-5);
}
body .GiftCards form {
    display: flex;
    flex-direction: column;
    gap: 15px;
    padding: 15px;
    width: calc(100% - 30px);
    max-width: 700px;
    align-self: center;
}
body .GiftCards form fieldset {
    border: none;
    padding: 0;
    display: flex;
    flex-direction: row;
}
body .GiftCards form fieldset button,
body .GiftCards form fieldset input,
body .GiftCards form fieldset label {
    flex: 1;
    padding: 15px;
    border: 5px solid transparent;
}
body .GiftCards form fieldset button,
body .GiftCards form fieldset input {
    border: 5px solid white;
    background-color: var(--color-1);
    color: white;
    outline: none;
}
body .GiftCards form fieldset button {
    cursor: pointer;
}
body .GiftCards form fieldset button:active,
body .GiftCards form fieldset button:focus,
body .GiftCards form fieldset button:hover,
body .GiftCards form fieldset input:active,
body .GiftCards form fieldset input:focus {
    background-color: var(--color-2);
}
body .GiftCards form fieldset button {
    flex: 1;
}


body .GiftCard {
    display: flex;
    flex-direction: row;
    max-height: 100dvh;
    user-select: none;
    overflow: hidden;
    flex: 1;
}
body .GiftCard .Details {
    display: flex;
    flex-direction: column;
    min-width: fit-content;
    height: 100dvh;
    flex: 1;
    overflow: auto;
}
body .GiftCard .Details fieldset {
    border: none;
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    width: 25%;
    align-self: center;
}
body .GiftCard .Details fieldset:first-of-type {
    width: 100%;
}
body .GiftCard .Details fieldset span:first-of-type {
    flex: 1;
}
body .GiftCard .Details fieldset:has(button){
    align-content: end;
}
body .GiftCard .Details fieldset button {
    min-width: 100%;
    flex: 0;
}
body .GiftCard .Details fieldset a,
body .GiftCard .Details fieldset button {
    background-color: var(--color-1);
    color: white;
    border: 5px solid white;
    padding: 15px;
    flex: 1;
    cursor: pointer;
    text-decoration: none;
    text-align: center;
}
body .GiftCard .Details fieldset a:hover,
body .GiftCard .Details fieldset button:hover {
    background-color: var(--color-2);
}
body .GiftCard .Details fieldset:last-of-type {
    align-items: start;
}

body .CashDrawer {
    width: 100dvw;
    height: calc(100dvh - 30px);
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 15px;
    padding: 15px;
    justify-content: start;
    align-content: start;
    overflow: auto;
}
body .CashDrawer button,
body .CashDrawer a {
    height: fit-content;
    background-color: var(--color-1);
    color: white;
    max-width: fit-content;
    padding: 15px;
    border-radius: 15px;
    text-decoration: none;
    border: none;
}
body .CashDrawer button:hover,
body .CashDrawer a:hover {
    background-color: var(--color-2);
}
body .CashDrawer form {
    width: 100%;
    max-height: 80%;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 15px;
    padding: 15px;
    justify-content: center;
    overflow: auto;
}
body .CashDrawer form fieldset {
    display: flex;
    flex-direction: column;
    gap: 15px;
    text-align: center;
    border: none;
    background-color: var(--color-1);
}
body .CashDrawer form fieldset input {
    border: none;
    padding: 15px;
    text-align: center;
}
body .CashDrawer form button[type='submit'] {
    background-color: var(--color-1);
    color: white;
    border: none;
    padding: 15px;
    cursor: pointer;
    min-width: 100%;
}
body .CashDrawer form button[type='submit']:hover {
    background-color: var(--color-2);
}
body .CashDrawer form > output {
    border: 5px solid var(--color-1);
    color: white;
    padding: 15px;
    text-align: center;
    width: 100%;
}

body nav {
    background-color: var(--color-1);
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    user-select: none;
}
body nav span,
body nav button,
body nav a {
    background-color: var(--color-1);
    color: white;
    text-decoration: none;
    outline: none;
    border-top: none;
    border-bottom: 5px solid white;
    border-right: 5px solid white;
    border-left: 5px solid white;
    padding: 15px;
    cursor: pointer;
}
body nav button:hover,
body nav a:hover {
    background-color: var(--color-2);
}
body nav a.TakePaymentButton {
    background-color: #79d579;
    color: black;
}
body nav a.TakePaymentButton:hover {
    background-color: #a3f8a3;
    color: black;
}
body nav .dropdown {
    position: relative;
}
body nav .dropdown button {
    width: 100%;
    white-space: nowrap;
}
body nav .dropdown div {
    position: absolute;
    display: flex;
    flex-direction: column;
    min-width: calc(100% - 10px);
    overflow: visible;
    left: -300dvw;
    z-index: 2;
}
body nav .dropdown div button,
body nav .dropdown div a {
    border-left: 5px solid white;
    white-space: nowrap;
}
body nav .dropdown div span:first-child,
body nav .dropdown div button:first-child,
body nav .dropdown div a:first-child {
    border-top: none;
}
body nav .dropdown button:hover ~ div,
body nav .dropdown:hover div {
    left: auto;
    max-height: 80dvh;
    overflow: auto;
}
body nav .dropdown:hover.rightSide div {
    right: 0;
}
body nav .dropdown button:hover ~ div,
body nav .dropdown:hover div {
    z-index: 3;
}
body nav .dropdown:last-of-type {
    flex: 1;
}
body nav a.Disabled,
body nav a.Disabled:hover,
body nav .dropdown.Disabled button {
    background-color: dimgray;
    cursor: default;
    color: white;
}
body nav .dropdown.Disabled div {
    display: none;
}

body nav .dropdown .StatusBrakeDown {
    display: grid;
    grid-template-columns: auto 1fr;
    border-left: 5px solid white;
    border-right: 5px solid white;
    border-bottom: 5px solid white;
}
body nav .dropdown .StatusBrakeDown span {
    grid-column: 1/3;
    display: grid;
    grid-template-columns: subgrid;
    border: none;
    white-space: nowrap;
}
body nav .dropdown .StatusBrakeDown span span:first-of-type {
    grid-column: 1/2;
}
body nav .dropdown .StatusBrakeDown span span:last-of-type {
    grid-column: 2/3;
}

body nav .dropdown:has(.PriceBrakeDown) button {
    background-color: var(--color-6);
    text-align: left;
}
body nav .dropdown .PriceBrakeDown {
    border-left: 5px solid white;
    border-right: 5px solid white;
    border-bottom: 5px solid white;
    display: grid;
    grid-template-columns: auto 1fr;
}
body nav .dropdown .PriceBrakeDown span {
    background-color: var(--color-6);
    border: none;
    grid-column: 1/3;
    display: grid;
    grid-template-columns: subgrid;
}
body nav .dropdown .PriceBrakeDown span span:first-of-type {
    grid-column: 1/2;
}
body nav .dropdown .PriceBrakeDown span span:last-of-type {
    grid-column: 2/3;
}
body nav .dropdown:has(.PriceBrakeDown) button:hover ~ div,
body nav .dropdown:has(.PriceBrakeDown):hover div {
    right: 0;
}

@media screen and (max-width: 596px) {
    body nav a:nth-of-type(2) {
        flex-grow: 1;
    }
}
@media screen and (min-width: 955px) {
    body nav .dropdown:first-of-type > button {
        display: none;
    }
    body nav .dropdown:first-of-type > div {
        display: flex;
        flex-direction: row;
        position: relative;
        left: auto;
    }
}

.ScreenSizeError {
    display: none;
}

.LoginPad {
    border: 5px solid white;
    display: flex;
    flex-direction: column;
    margin: auto;
}
.LoginPad .Input {
    background-color: var(--color-1);
    border: none;
    border-bottom: 5px solid white;
    font-size: 24pt;
    height: 24pt;
    color: white;
    outline: none;
    padding: 15px;
    display: flex;
    justify-content: center;
    gap: 15px;
}
.LoginPad .KeyPad {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    grid-template-rows: 1fr 1fr 1fr 1fr;
    flex: 1;
    gap: 15px;
    padding: 15px;
}
.LoginPad .Input {
    cursor: default;
    user-select: none;
}
.LoginPad .KeyPad button {
    background-color: var(--color-1);
    color: white;
    border: 5px solid white;
    display: flex;
    flex: 1;
    justify-content: center;
    align-items: center;
    padding: 15px;
    cursor: pointer;
}
.LoginPad .KeyPad button:hover {
    background-color: var(--color-2);
}
.LoginPad .KeyPad button:disabled {
    background-color: dimgray;
}

.LocationSelection {
    flex: 1;
    display: flex;
    flex-direction: column;
}
.LocationSelection h1 {
    text-align: center;
    margin: 0;
    padding: 30px;
    border-bottom: 5px solid white;
}
.LocationSelection .List {
    flex: 1;
    display: flex;
    flex-wrap: wrap;
    height: fit-content;
    justify-content: center;
    align-items: start;
    width: 100%;
    gap: 15px;
    padding: 30px 0;
    overflow: auto;
    scroll-snap-type: y mandatory;
    scroll-padding-top: 30px;
    scroll-behavior: smooth;
}
.LocationSelection .List .Location {
    background-color: var(--color-1);
    flex: 1 0 250px;
    max-width: 250px;
    min-height: 250px;
    text-align: center;
    padding: 0 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all ease-in-out 250ms;
    cursor: pointer;
    border: 15px solid var(--color-1);
    scroll-snap-align: start;
}
.LocationSelection .List .Location h2 {
    margin: 0;
}
.LocationSelection .List .Location:hover {
    background-color: var(--color-2);
    border: 15px solid white;
}

main:has(.ProductBrowser) {
    overflow: hidden;
}
.ProductBrowser[data-search-term-key="BarProductSearch"] {
    --color-1: #16697A;
    --color-2: #489FB5;
    --color-3: #e36c54;
    --color-4: #ff8e73;
}
.ProductBrowser {
    display: flex;
    flex-direction: column;
    flex: 1;
    max-height: 100%;
}
.ProductBrowser .Search {
    display: flex;
}
.ProductBrowser .Search input {
    flex: 1;
    padding: 15px;
    border: 5px solid var(--color-3);
    outline: none;
}
.ProductBrowser .Search button {
    background-color: var(--color-1);
    color: white;
    border: 5px solid var(--color-3);
    padding: 15px;
}
.ProductBrowser .List {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 15px;
    justify-content: center;
    overflow: auto;
    padding: 15px 0;
}
.ProductBrowser .List .Product {
    background-color: var(--color-1);
    display: none;
    flex-direction: row;
    min-height: 250px;
    max-height: 250px;
    min-width: 350px;
    max-width: 350px;
    align-items: center;
    padding: 15px;
    gap: 15px;
    user-select: none;
}
.ProductBrowser .List .Product.Show {
    display: flex;
    animation-name: FadeIn;
    animation-fill-mode: forwards;
    animation-duration: 500ms;
    animation-play-state: running;
}
.ProductBrowser .List .Product:hover {
    background-color: var(--color-2);
    cursor: pointer;
}
.ProductBrowser .List .Product:has(.AddProduct[disabled]) {
    background-color: dimgray;
    cursor: default;
}
@keyframes FadeIn {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 100%;
    }
}
.ProductBrowser .List .Product img {
    max-height: 150px;
    height: 150px;
    max-width: 150px;
    width: 150px;
    object-fit: contain;
}
.ProductBrowser .List .Product img:only-child {
    max-height: 100%;
    height: 100%;
}
.ProductBrowser .List .Product div:first-of-type {
    justify-content: end;
}
.ProductBrowser .List .Product div {
    display: flex;
    flex-direction: column;
    gap: 15px;
    flex: 1;
    height: 100%;
}
.ProductBrowser .List .Product div span:first-of-type {
    flex: 1;
}
.ProductBrowser .List .Product div button {
    background-color: var(--color-3);
    color: white;
    border: 5px solid white;
    padding: 15px;
    cursor: pointer;
}
.ProductBrowser .List .Product div button:hover {
    background-color: var(--color-4);
}
.ProductBrowser .List .Product div label {
    border: 5px solid white;
    padding: 15px 0;
    text-align: center;
    background-color: white;
    color: black;
}
.ProductBrowser .List .Product div .TillControls {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: end;
    flex: 0;
}
.ProductBrowser .List .Product div .TillControls button:first-of-type {
    width: 100%;
}
.ProductBrowser .List .Product div .TillControls label {
    flex: 1;
}
.ProductBrowser .List .Product div .TillControls:has(label:empty) button,
.ProductBrowser .List .Product div .TillControls:has(label:empty) label {
    display: none;
}
.ProductBrowser .List .Product div .TillControls:has(label:empty) button:first-of-type {
    display: block;
}
.ProductBrowser .List .Product div .TillControls:has(label:not(:empty)) button,
.ProductBrowser .List .Product div .TillControls:has(label:not(:empty)) label {
    display: block;
}
.ProductBrowser .List .Product div .TillControls:has(label:not(:empty)) button:first-of-type {
    display: none;
}
.ProductBrowser .List .Product div button:disabled {
    background-color: gray;
    border-color: gray;
    cursor: default;
}

.Training {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    height: fit-content;
    padding: 15px;
    gap: 15px;
}
.Training a {
    background-color: var(--color-1);
    padding: 15px;
    color: white;
    text-decoration: none;
    height: fit-content;
    border: 5px solid white;
    width: 100%;
    text-align: center;
}
.Training div {
    flex: 1;
    min-width: 450px;
    max-width: 450px;
    max-height: 100%;
    display: flex;
    flex-direction: column;
    gap: 15px;
    background-color: var(--color-1);
    border: 5px solid white;
    padding: 15px;
}
.Training div video {
    max-width: 100%;
    object-fit: contain;
}
.Training div span {
    font-size: 24pt;
    text-align: center;
}

dialog {
    background-color: var(--color-1);
    color: white;
    border: none;
    outline: none;
    flex-direction: column;
    width: calc(100dvw - 45px);
    max-width: 500px;
    height: fit-content;
    max-height: calc(100dvh - 45px);
    padding: 15px;
    border-radius: 15px;
    user-select: none;
}
dialog h1 {
    margin: 0;
}
dialog p {
    margin: 0;
}
dialog form {
    display: flex;
    flex-direction: column;
    gap: 15px;
    margin: 15px 0 0 0;
    overflow: auto;
    padding: 0 5px;
    min-height: 50px;
}
dialog .TableContainer {
    max-height: 70%;
    display: flex;
    overflow: auto;
}
dialog table {
    flex: 1;
    text-align: center;
    border-collapse: collapse;
}
dialog table thead {
    position: sticky;
    top: 0;
    left: 0;
}
dialog table thead tr th {
    background-color: var(--color-2);
}
dialog table thead tr th,
dialog table tbody tr td,
dialog table tfoot tr td {
    padding-top: 15px;
    padding-bottom: 15px;
}
dialog table tbody tr:nth-of-type(odd) {
    background-color: var(--color-3);
}
dialog table tbody tr:nth-of-type(even) {
    background-color: var(--color-4);
}
dialog table tfoot {
    position: sticky;
    bottom: 0;
    left: 0;
}
dialog table tfoot tr {
    background-color: var(--color-2);
}
dialog fieldset {
    display: flex;
    flex: 1;
    border: none;
    padding: 0;
    margin: 0;
    gap: 15px;
}
dialog select {
    border: none;
    outline: none;
    padding: 15px;
}
dialog input {
    padding: 15px;
    outline: none;
    flex: 1;
}
dialog input[type='button'],
dialog button {
    background-color: lightgreen;
    border: none;
    outline: none;
    padding: 15px;
    flex: 1;
}
dialog fieldset input {
    flex: 2;
}
dialog::backdrop {
    background-color: #cccccccc;
}
dialog input[type='range'] {
    flex: 1;
    border: none;
    height: 66pt;
    outline: none;
    background-color: transparent;
    -webkit-appearance: none;
    padding-left: 0;
    padding-right: 0;
}
dialog input[type='range']::-webkit-slider-runnable-track {
    background: var(--color-3);
    border-radius: 50px;
}
dialog input[type='range']::-moz-range-track {
    height: 50px;
    background: var(--color-3);
    border-radius: 50px;
}
dialog input[type='range']::-webkit-slider-thumb {
    height: 50px;
    width: 50px;
    background: white;
    -webkit-appearance: none;
    border-radius: 50%;
}
dialog input[type='range']::-moz-range-thumb {
    height: 50px;
    width: 50px;
    background: white;
    -webkit-appearance: none;
    border-radius: 50%;
    border: none;
}
dialog input[type='range'] ~ output {
    font-size: 24pt;
    padding: 15px;
    text-align: center;
}
dialog.Error {
    background-color: lightcoral;
    color: white;
    text-align: center;
}
dialog.QuantityPicker,
dialog.PrintPreview,
dialog.Information {
    text-align: center;
    gap: 15px;
}
dialog.Information .Details {
    border: 5px solid white;
    padding: 15px;
    display: flex;
    flex-direction: column;
    gap: 15px;
}
dialog.Information .Details section {
    display: flex;
    flex-direction: row;
}
dialog.PrintPreview {
    max-width: 583px;
    height: 100dvh;
}
dialog.PrintPreview iframe {
    flex: 1;
}
dialog.QuantityPicker .InputArea {
    display: flex;
}
dialog.QuantityPicker .InputArea input {
    background-color: white;
    color: black;
    padding: 15px;
    text-align: center;
    outline: none;
    border: none;
    flex: 1;
}
dialog.ProductBrowser {
    max-width: 90dvw;
    max-height: 90%;
}
dialog.ProductBrowser .List .Product {
    background-color: var(--color-2);
    min-height: fit-content;
    max-height: fit-content;
}
dialog.DiscountBrowser .List {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 15px;
    justify-content: center;
}
dialog.DiscountBrowser .List .DiscountItem {
    flex: 1;
    min-width: 150px;
    max-width: 150px;
    padding: 15px;
    text-align: center;
    border: 5px solid white;
    cursor: pointer;
}
dialog.DiscountBrowser .List .DiscountItem.Applied,
dialog.DiscountBrowser .List .DiscountItem:hover {
    border-color: var(--color-2);
    background-color: var(--color-2);
}
dialog.CaptureMembershipCard .CameraDisplay {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
}
dialog.CaptureMembershipCard .CameraDisplay label {
    background-color: var(--color-2);
    border-left: 5px solid white;
    border-right: 5px solid white;
    border-top: 5px solid white;
    flex: 1;
    text-align: center;
    padding: 15px;
}
dialog.CaptureMembershipCard .CameraDisplay input[type='radio'] {
    display: none;
}
dialog.CaptureMembershipCard .CameraDisplay input[type='radio']:checked ~ label {
    background-color: var(--color-1);
}
dialog.CaptureMembershipCard .CameraDisplay #qrCodeReader {
    width: 100%;
    border: 5px solid white;
    outline: none;
    position: relative;
}
dialog .ReaderDisplay {
    display: flex;
    flex-direction: column;
    gap: 15px;
}
dialog .ReaderDisplay fieldset input {
    display: none;
}
dialog .ReaderDisplay fieldset label {
    background-color: var(--color-2);
    border: 5px solid white;
    padding: 15px;
    flex: 1;
    text-align: center;
}
dialog .ReaderDisplay fieldset input:checked ~ label {
    background-color: var(--color-1);
}
dialog.SaleRefunding {
    max-width: 80dvw;
    width: fit-content;
}
dialog.SaleRefunding .TableContainer {
    max-height: 300px;
}
dialog.SaleRefunding th {
    padding: 15px;
    min-width: fit-content;
    white-space: nowrap;
}
dialog.SaleRefunding input {
    max-width: 5ex;
    background-color: #ffffff33;
    border: none;
    padding: 5px 15px;
    color: white;
}
dialog.SaleRefunding input[type='checkbox']{
    width: 100%;
    appearance: none;
    padding: 5px 0;
}
dialog.SaleRefunding input[type='checkbox']:before {
    content: '⠀';
    border: 5px solid white;
    display: block;
    width: calc(100% - 20px);
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}
dialog.SaleRefunding input[type='checkbox']:checked:before {
    content: '✓';
    background-color: lightgreen;
}
dialog.CashDeposit {
    max-width: min(100%, 650px);
    text-align: center;
}
dialog.CashDeposit form .Inputs {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 15px;
    justify-content: center;
}
dialog.CashDeposit form .Inputs fieldset {
    display: flex;
    flex-direction: column;
    gap: 0;
    min-width: 10ex;
    max-width: 10%;
    text-align: center;
}
dialog.CashDeposit form .Inputs fieldset label {
    margin-bottom: 15px;
}
dialog.CashDeposit form .Inputs fieldset input {
    width: calc(100% - 30px);
    border: none;
    text-align: center;
    appearance: textfield;
    -moz-appearance:textfield;
}
dialog.CashDeposit form .Inputs fieldset input::-webkit-outer-spin-button,
dialog.CashDeposit form .Inputs fieldset input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
dialog.CashDeposit form .Inputs fieldset:has(output) {
    min-width: 100%;
}

@media screen and (max-width: 499px) {
    body {
        display: flex;
    }
    body nav {
        display: none;
    }
    body .BottomArea {
        display: none;
    }
    body .ScreenSizeError {
        display: block;
        margin: auto;
        font-size: 24pt;
    }
    dialog {
        display: none;
    }
}
.DeviceTest {
    display: flex;
    flex-direction: row;
    gap: 15px;
    padding: 15px;
}
.DeviceTest > div {
    display: flex;
    flex-direction: column;
    gap: 15px;
    padding: 15px;
    min-width: 300px;
    max-width: 300px;
}
.DeviceTest > div > h1 {
    text-align: center;
}
.DeviceTest > div > output {
    white-space: pre-wrap;
    border: 2px solid white;
    padding: 15px;
    overflow: scroll;
}
.DeviceTest > div > button {
    border: none;
    background-color: var(--color-3);
    padding: 15px;
    cursor: pointer;
}
.DeviceTest > div > button:hover {
    background-color: var(--color-4);
}
.DeviceTest > div > button:disabled {
    background-color: gray;
}