

html {
  font-family: Arial, Helvetica, sans-serif;
  touch-action: manipulation;
}

svg {
  width: 2.5vw;
  height: 2.5vw;
}

button {
  color: black;
}

p {
  margin: 0;
  padding: 0;
}

.container {
  --uib-size: 45px;
  --uib-color: black;
  --uib-speed: 2.5s;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: var(--uib-size);
  width: var(--uib-size);
}

.slice {
  position: relative;
  height: calc(var(--uib-size) / 6);
  width: 100%;
}

.slice::before,
.slice::after {
  --uib-a: calc(var(--uib-speed) / -2);
  --uib-b: calc(var(--uib-speed) / -6);
  content: '';
  position: absolute;
  top: 0;
  left: calc(50% - var(--uib-size) / 12);
  height: 100%;
  width: calc(100% / 6);
  border-radius: 50%;
  background-color: var(--uib-color);
  flex-shrink: 0;
  animation: orbit var(--uib-speed) linear infinite;
  transition: background-color 0.3s ease;
}

.slice:nth-child(1)::after {
  animation-delay: var(--uib-a);
}

.slice:nth-child(2)::before {
  animation-delay: var(--uib-b);
}

.slice:nth-child(2)::after {
  animation-delay: calc(var(--uib-a) + var(--uib-b));
}

.slice:nth-child(3)::before {
  animation-delay: calc(var(--uib-b) * 2);
}
.slice:nth-child(3)::after {
  animation-delay: calc(var(--uib-a) + var(--uib-b) * 2);
}

.slice:nth-child(4)::before {
  animation-delay: calc(var(--uib-b) * 3);
}
.slice:nth-child(4)::after {
  animation-delay: calc(var(--uib-a) + var(--uib-b) * 3);
}

.slice:nth-child(5)::before {
  animation-delay: calc(var(--uib-b) * 4);
}
.slice:nth-child(5)::after {
  animation-delay: calc(var(--uib-a) + var(--uib-b) * 4);
}

.slice:nth-child(6)::before {
  animation-delay: calc(var(--uib-b) * 5);
}
.slice:nth-child(6)::after {
  animation-delay: calc(var(--uib-a) + var(--uib-b) * 5);
}

@keyframes orbit {
  0% {
    transform: translateX(calc(var(--uib-size) * 0.25)) scale(0.73684);
    opacity: 0.65;
  }
  5% {
    transform: translateX(calc(var(--uib-size) * 0.235)) scale(0.684208);
    opacity: 0.58;
  }
  10% {
    transform: translateX(calc(var(--uib-size) * 0.182)) scale(0.631576);
    opacity: 0.51;
  }
  15% {
    transform: translateX(calc(var(--uib-size) * 0.129)) scale(0.578944);
    opacity: 0.44;
  }
  20% {
    transform: translateX(calc(var(--uib-size) * 0.076)) scale(0.526312);
    opacity: 0.37;
  }
  25% {
    transform: translateX(0%) scale(0.47368);
    opacity: 0.3;
  }
  30% {
    transform: translateX(calc(var(--uib-size) * -0.076)) scale(0.526312);
    opacity: 0.37;
  }
  35% {
    transform: translateX(calc(var(--uib-size) * -0.129)) scale(0.578944);
    opacity: 0.44;
  }
  40% {
    transform: translateX(calc(var(--uib-size) * -0.182)) scale(0.631576);
    opacity: 0.51;
  }
  45% {
    transform: translateX(calc(var(--uib-size) * -0.235)) scale(0.684208);
    opacity: 0.58;
  }
  50% {
    transform: translateX(calc(var(--uib-size) * -0.25)) scale(0.73684);
    opacity: 0.65;
  }
  55% {
    transform: translateX(calc(var(--uib-size) * -0.235)) scale(0.789472);
    opacity: 0.72;
  }
  60% {
    transform: translateX(calc(var(--uib-size) * -0.182)) scale(0.842104);
    opacity: 0.79;
  }
  65% {
    transform: translateX(calc(var(--uib-size) * -0.129)) scale(0.894736);
    opacity: 0.86;
  }
  70% {
    transform: translateX(calc(var(--uib-size) * -0.076)) scale(0.947368);
    opacity: 0.93;
  }
  75% {
    transform: translateX(0%) scale(1);
    opacity: 1;
  }
  80% {
    transform: translateX(calc(var(--uib-size) * 0.076)) scale(0.947368);
    opacity: 0.93;
  }
  85% {
    transform: translateX(calc(var(--uib-size) * 0.129)) scale(0.894736);
    opacity: 0.86;
  }
  90% {
    transform: translateX(calc(var(--uib-size) * 0.182)) scale(0.842104);
    opacity: 0.79;
  }
  95% {
    transform: translateX(calc(var(--uib-size) * 0.235)) scale(0.789472);
    opacity: 0.72;
  }
  100% {
    transform: translateX(calc(var(--uib-size) * 0.25)) scale(0.73684);
    opacity: 0.65;
  }
}

.admin-product-item {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  width: calc(100% - 2vw);
  background-color: #f0f0f0;
  border: 1px solid black;
  border-radius: 1vw;
  padding: 1vw;
  margin-bottom: 2vw;
}

.admin-product-item-title {
  flex: 2;
  font-size: 1.6vw;
  font-weight: bold;
  padding-right: 1vw;
}

.admin-product-item-stock, .admin-product-item-price-list, .admin-product-item-cost {
  flex: 1;
  text-align: center;
}

.admin-product-item-stock, .admin-product-item-price-list-item, .admin-product-item-price-list-title, .admin-product-item-cost {
  font-size: 1.4vw;
}

.admin-product-item-price-list-title {
  font-weight: bold;
}

.admin-product-item-edit {
  cursor: pointer;
}

.admin-products-list {
  display: flex;
  flex-direction: column;
  align-items: start;
}

.account-infos-container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin-top: 5vw;
}

.account-infos-item {
  display: flex;
  flex-direction: column;
  margin-bottom: 5vw;
}

.account-infos-item svg {
  width: 2vw;
  height: 2vw;
  cursor: pointer;
}

.account-infos-item-content {
  font-size: 1.5vw;
  margin-right: 1vw;
}

.account-infos-item-title {
  font-size: 2vw;
  font-weight: bold;
  margin-bottom: 1vw;
}

.basket-bottom-message {
  font-size: 1.5vw;
  margin-bottom: 3vw;
  margin-top: 1vw;
}

.basket-delivery-text {
  font-size: 1.5vw;
  margin-bottom: 2vw;
}

.basket-discount-code {
  display: flex;
  flex-direction: row;
  align-items: center;
}

.basket-discount-apply-button {
  border: none;
  background-color: #f0f0f0;
  font-size: 1.5vw;
  padding: 0.5vw 1vw;
  border-radius: 1vw;
  cursor: pointer;
  transition: background-color 0.15s;
}

.basket-discount-apply-button:hover {
  background-color: #e0e0e0;
}

.basket-discount-input {
  font-size: 1.5vw;
  padding: 0.5vw;
  border: 1px solid black;
  border-radius: 1vw;
  margin-right: 0.1vw;
  width: 15vw;
}

.basket-item {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid black;
  padding-top: 1vw;
  padding-bottom: 1vw;
  font-size: 1.5vw;
}

.basket-item img {
  width: 8vw;
  height: 8vw;
  border: 1px solid black;
  border-radius: 1vw;
}

.basket-item-remove {
  cursor: pointer;
  width: 3vw;
  height: 3vw;
}

.basket-item-title {
  font-weight: bold;
  width: 30vw;
}

.basket-items {
  margin-top: 5vw;
  margin-bottom: 2vw;
}

.basket-total-price {
  font-size: 2vw;
  font-weight: bold;
}

.basket-validate-button {
  border: none;
  background-color: #35f600;
  font-size: 1.5vw;
  padding: 1vw 2vw;
  border-radius: 2vw;
  cursor: pointer;
  transition: background-color 0.15s;
}

.basket-validate-button:hover {
  background-color: #52cc00;
}

.header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  box-sizing: border-box;
  background-color: #ffffff;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
  height: 5vw;
  border-bottom: 1px solid black;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
}

.color-blue {
  background-color: #00d0ff;
}

.color-green {
  background-color: #00ec08;
}

.color-purple {
  background-color: #ac6efe;
}

.color-red {
  background-color: #ff5656;
}

.color-yellow {
  background-color: #ffd500;
}

.header-account {
  height: 3vw;
  margin-right: 2vw;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  font-size: 1.5vw;
  border: 1px solid black;
  border-radius: 5vw;
  cursor: pointer;
  background-color: #f0f0f0;
  transition: background-color 0.15s;
  z-index: 100;
}

.header-account:hover {
  background-color: #e0e0e0;
}

.header-account p {
  margin-left: 0.5vw;
}

.header-buttons {
  display: flex;
  flex-direction: row;
  align-items: center;
}

.header-logo-title {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: start;
}

.header-logo-title img {
  width: 4vw;
  margin-left: 1vw;
}

.header-title {
  font-size: 2.5vw;
  font-weight: bold;
  margin-left: 1vw;
}

.hide-overflow {
  overflow: hidden;
}

.home-order {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  background-color: #f0f0f0;
  border: 1px solid black;
  border-radius: 5vw;
  width: calc(100% - 4vw);
  padding-top: 1vw;
  padding-bottom: 1vw;
  padding-left: 2vw;
  padding-right: 2vw;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
  margin-bottom: 2vw;
}

.home-order-cancel {
  border: none;
  background-color: rgb(255, 129, 129);
  padding-left: 1vw;
  padding-right: 1vw;
  padding-top: 0.5vw;
  padding-bottom: 0.5vw;
  border-radius: 1vw;
  font-size: 1.3vw;
  cursor: pointer;
  transition: background-color 0.15s;
}

.home-order-cancel:hover {
  background-color: rgb(255, 100, 100);
}

.home-order-date {
  font-size: 1.7vw;
}

.home-order-items {
  width: 20vw;
}

.home-order-items-admin {
  width: 10vw;
}

.home-order-section {
  margin-top: 10vw;
  margin-bottom: 10vw;
  width: 100%;
}

.home-orders-section {
  width: 100%;
}

.home-order-status {
  border: 1px solid black;
  border-radius: 5vw;
  padding-left: 1vw;
  padding-right: 1vw;
  padding-top: 0.5vw;
  padding-bottom: 0.5vw;
  width: 13vw;
  text-align: center;
}

.home-order-total {
  font-size: 1.5vw;
}

.loading-screen {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: white;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  z-index: 100;
}

.loading-screen p {
  font-size: 3vw;
  font-weight: 600;
  margin-bottom: 3vw;
}

.main-container {
  margin-left: 10vw;
  margin-top: 5vw;
  padding: 2vw;
}

.main-title {
  font-size: 3vw;
  font-weight: bold;
  margin-bottom: 2vw;
}

.main-title-right-button {
  padding: 0.5vw;
  margin-left: 1.5vw;
  border: 2px solid black;
  border-radius: 5vw;
  margin-bottom: 2vw;
  cursor: pointer;
  background-color: white;
  transition: background-color 0.15s;
}

.main-title-right-button:hover {
  background-color: #f0f0f0;
}

.main-subtitle {
  font-size: 2vw;
  font-weight: bold;
  margin-bottom: 1vw;
}

.money-mouvements-list {
  border-top: 2px solid black;
  margin-top: 2vw;
  padding-top: 2vw;
  display: flex;
  flex-direction: column;
  align-items: start;
}

.money-mouvement {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  background-color: #f0f0f0;
  border: 1px solid black;
  border-radius: 1vw;
  padding: 1vw;
  width: calc(100% - 2vw);
  margin-top: 2vw;
  font-size: 1.4vw;
}

.money-mouvement-edit {
  cursor: pointer;
}

.money-mouvement-text {
  flex: 2;
  text-align: center;
}

.money-mouvement-text-amount {
  flex: 1;
  text-align: center;
}

.money-mouvement-text-small {
  flex: 1;
  text-align: left;
}

.money-mouvement-status {
  flex: 1;
  text-align: center;
  margin-right: 2vw;
  padding-left: 1vw;
  padding-right: 1vw;
  padding-top: 0.5vw;
  padding-bottom: 0.5vw;
  border: 1px solid black;
  border-radius: 3vw;
}

.navbar {
  position: fixed;
  z-index: 0;
  top: 5vw;
  left: 0;
  bottom: 0;
  width: 10vw;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  border-right: 1px solid black;
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.5);
  background-color: white;
}

.navbar-item {
  flex: 1;
  background-color: #f0f0f0;
  border: none;
  font-size: 1.3vw;
  cursor: pointer;
  transition: background-color 0.15s;
}

.navbar-item-current {
  flex: 1;
  background-color: #e0e0e0;
  border: none;
  font-size: 1.3vw;
  cursor: pointer;
  transition: background-color 0.15s;
}

.navbar-item:hover {
  background-color: #e0e0e0;
}

.orders-more-button {
  cursor: pointer;
  border: 2px solid black;
  border-radius: 5vw;
  background-color: #f0f0f0;
  transition: background-color 0.15s;
}

.orders-more-button:hover {
  background-color: #c1c1c1;
}

.orders-summary-text {
  text-align: center;
  font-size: 1.4vw;
  padding-bottom: 5vw;
}

.pay-button {
  cursor: pointer;
  border: 1px solid black;
  display: flex;
  flex-direction: column;
  align-items: center;
  border-radius: 1vw;
  background-color: #dadada;
  font-size: 1.2vw;
}

.reward-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-evenly;
  background-color: #f0f0f0;
  border: 1px solid black;
  padding: 1vw;
  border-radius: 3vw;
  margin-bottom: 3vw;
  margin-right: 2vw;
}

.reward-item svg {
  width: 3vw;
  height: 3vw;
}

.reward-item-button {
  border: none;
  background-color: #ffcc00;
  font-size: 1.3vw;
  padding: 0.5vw 1vw;
  border-radius: 2vw;
  cursor: pointer;
  margin-top: 1vw;
  transition: background-color 0.15s;
}

.reward-item-button:hover {
  background-color: #e6b800;
}

.reward-item-price {
  font-size: 1.5vw;
  margin-bottom: 1vw;
}

.reward-item-title {
  font-size: 1.5vw;
  font-weight: bold;
  margin-bottom: 1vw;
}

.rewards-infos {
  font-size: 1.5vw;
  margin-bottom: 2vw;
}

.rewards-store {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: start;
}

.shop-basket-view {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 1vw;
  position: fixed;
  top: 50vh;
  right: 15vw;
  background-color: #f0f0f0;
  border: 1px solid black;
  border-radius: 2vw;
  cursor: pointer;
  transition: background-color 0.15s;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
}

.shop-basket-view:hover {
  background-color: #e0e0e0;
}

.shop-basket-view p {
  font-size: 1.5vw;
  font-weight: bold;
  margin-top: 1vw;
}

.shop-item {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: start;
  background-color: #f0f0f0;
  border: 1px solid black;
  padding: 1vw;
  border-radius: 3vw;
  margin-bottom: 3vw;
  width: 50%;
}

.shop-item img {
  width: 20vw;
  border: 1px solid black;
  border-radius: 2vw;
  margin-right: 2vw;
}

.shop-item-add-button {
  border: none;
  background-color: #00c9f6;
  font-size: 1.5vw;
  padding: 1vw 2vw;
  border-radius: 2vw;
  cursor: pointer;
  margin-top: 3vw;
  transition: background-color 0.15s;
}

.shop-item-add-button:hover {
  background-color: #00aacc;
}

.shop-item-infos {
  display: flex;
  flex-direction: column;
  align-items: start;
  justify-content: space-between;
  height: 19vw;
}

.shop-item-name {
  font-size: 2vw;
  font-weight: bold;
}

.shop-item-price {
  font-size: 1.5vw;
}

.shop-item-quantity {
  display: flex;
  flex-direction: row;
  align-items: center;
}

.shop-item-quantity p {
  font-size: 1.5vw;
  margin: 0 1vw;
}

.shop-item-quantity svg {
  cursor: pointer;
  width: 2vw;
}