/* ===========================================================
   Cashier's desk — thin layer over UIkit
   Structure/layout = UIkit classes (uk-card, uk-grid, uk-button...).
   Here we only set the brand green + the few bespoke bits.
   Loaded after UIkit, so these overrides win.
   =========================================================== */
html {
  color: #000;
  font-size: 18px;
  font-weight: 400;
  line-height: normal;
}

body {
  background-color: #f4f6f8;
  font-family:
    -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial,
    sans-serif;
}

.uk-button {
  color: #fff;
  font-size: 14px;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  text-transform: uppercase;
  border-radius: 15px;
  padding: 15px 30px;

  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.uk-button-default {
  border: 1px solid #d7d7d7;
  background: #fff;

  color: #000;

  text-transform: inherit;
}

.uk-button-primary:hover,
.uk-button-primary:focus {
  background: #7ca633 !important;
}
.uk-button-primary:disabled {
  background: #d7d7d7 !important;
  color: #fff;
}

.uk-text-primary {
  color: #2362cd;
  font-size: 18px;
  font-style: normal;
  font-weight: 600;
  line-height: normal;
}

.uk-margin {
  margin-bottom: 16px;
}

.uk-card {
  border-radius: 30px;
  padding: 20px;
  box-shadow: none;
  color: #000;
}

hr {
  border-top: 1px solid #d7d7d7;
}

.uk-text-muted {
  color: #76757d;
  font-size: 16px;
  font-weight: 400;
  line-height: normal;
}

.uk-list > * > ul,
.uk-list > :nth-child(n + 2) {
  margin-top: 20px;
}

.uk-icon-button {
  border-radius: 999px;
  border: 1px solid #d7d7d7;
  background: #fff;
}

.uk-input.vaucher {
  height: 55px;
}
.uk-input,
.uk-select:not([multiple]):not([size]) {
  background: #eef3ff;
  color: #76757d;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  border-radius: 15px;

  height: 60px;
}
.uk-input:focus {
  border: 1px solid #67a100;
}

.uk-h3 {
  color: #000;
  font-size: 25px;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}

.uk-modal-dialog {
  border-radius: 20px;
  background: #fff;
  padding: 40px 30px;
}

/* --- Brand green on UIkit primary buttons (ADD / OK / SELECT) --- */
.uk-button-primary {
  background-color: #67a100;
}
.uk-button-primary:hover,
.uk-button-primary:focus {
  background-color: #67A100-dark;
}

/* discount line + green accents */
.uk-text-success {
  color: #67a100 !important;
}

/* round qty steppers turn green on hover */
.qty .uk-icon-button:hover {
  background-color: #67a100;
  color: #fff;
}
.qty__val {
  min-width: 14px;
  text-align: center;
  font-weight: 600;
}

.uk-search-default .uk-search-input {
  height: 60px;
  background: #eef3ff;
  padding-left: 18px;
  border: solid 1px #eef3ff;
}
.uk-search-default .uk-search-input:focus {
  border-color: #67a100;
  background: #eef3ff;
}

.uk-card-default {
  border-radius: 30px;
  border: 1px solid #d7d7d7;
  background: #fff;
  padding: 17px;
}

/* LEFT SIDEBAR */
.left-sidebar {
  width: 550px;
}
@media (max-width: 959px) {
  .left-sidebar {
    width: 100%;
  }
}

.order-number {
  color: #000;
  font-size: 25px;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}

.scan-card {
  height: 60px;
  padding: 11px;
  background: #f0f7e6;
  border: 1px dashed #67a100;
  border-radius: 15px;
  color: #67A100-dark;

  color: #67a100;
  font-size: 16px;
  font-style: normal;
  font-weight: 600;
  line-height: normal;
  text-transform: initial;
}
.scan-card:hover {
  background: #e4f1d6;
  color: #67A100-dark;
}

.cart-item__name {
  color: #1a1a1a;
  font-size: 22px;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}

.dashed-hr {
  border-top: 1.5px dashed #d7d7d7;
}

.uk-h1.total {
  color: #000;
  font-size: 30px;
  font-weight: 700;
}

.pay-btn {
  padding: 15px 0px;
  min-height: 60px;
}

/* Product card image: square, beige placeholder, cover image */
.product {
  position: relative;
  height: 100%;
}
.product__price {
  margin-top: auto;
}

/* ссылка кроет всю карточку, а кнопки остаются кликабельными поверх неё */
.product .uk-button {
  position: relative;
  z-index: 1;
}

.product__img {
  aspect-ratio: 1 / 1;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 220px;
  border-radius: 25px;
  border: 1px solid #d7d7d7;
  margin-bottom: 18px;
}
.product__name {
  color: #76757d;
  text-align: center;
  font-size: 20px;
  font-style: normal;
  font-weight: 600;
  line-height: normal;
  margin-bottom: 18px !important;
}
.product__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.uk-h4.product__price {
  color: #000;
  text-align: center;
  font-size: 22px;
  font-style: normal;
  font-weight: 600;
  line-height: normal;
  margin-top: auto;
  margin-bottom: 32px !important;
}
.add-btn {
  padding: 10px;
}

.product {
  transition:
    box-shadow 0.15s ease,
    transform 0.15s ease;
}
.product:hover {
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.1);
}

/* Search field subtle tint to match the mockup */
.uk-search-input {
  background-color: #eef1fb;
}

/* Scan-card modal */
.scan-modal {
  max-width: 460px;
  padding: 26px 30px 28px;
  border-radius: 18px;
}
.scan-modal__accent {
  display: block;
  width: 150px;
  height: 2px;
  margin: 0 auto;
  background: #f0a868;
}
.scan-modal__card {
  width: 200px;
  margin-bottom: 40px;
}
.btn-cancel {
  background: #f0f0f0;
  color: #000;
}
.btn-cancel:hover {
  background: #e2e2e2;
  color: #1f2329;
}

.scan-modal__btn.scan-result-btn {
  color: #fff;
  font-size: 18px;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  text-transform: initial;
}

.receipt-confirm {
  margin-top: 34px !important;
}
.receipt-input {
  background: #eef3ff !important;
}

.uk-button-link.uk-modal-close {
  color: #76757d;
  font-size: 18px;
  font-style: normal;
  font-weight: 600;
  line-height: normal;
  text-transform: initial;
  padding: 0 10px;
}
.uk-button-link.uk-modal-close:hover {
  text-decoration: underline;
  color: #000;
}

/* Cash payment modal */
.cash-display {
  min-height: 48px;
  font-size: 30px;
  font-weight: 700;
}

.num-btn {
  height: 60px;
  width: 100%;
  background: #f0f3f6;
  color: #000;
  font-size: 20px;
  font-weight: 700;
  border-radius: 15px;
}
.num-btn:hover {
  background: #e6e7ec;
  color: #1f2329;
}

.num-btn--clear {
  background: #ffebeb;
  color: #d9534f;
}

.num-btn--clear:hover {
  background: #fbdede;
  color: #e0563f;
}

.cash-summary {
  background: #f8fafc;
  border-left: 10px solid #60a000;
  border-radius: 20px;
  padding: 27px 20px;
  margin-top: 33px !important;
  margin-bottom: 40px;
}
.cash-summary > div + div {
  margin-top: 4px;
}
.cash-summary #cash-change {
  font-size: 30px;
}

.uk-form-label {
  color: #000;
  font-size: 16px;
  font-style: normal;
  font-weight: 600;
  line-height: normal;
}

.cash-input {
  margin-top: 7px !important;
  margin-bottom: 31px;
}
.uk-modal-title {
  font-size: 25px;
  line-height: normal;
  margin-bottom: 21px;
}

#cash-total,
#cash-received,
#cash-change {
  color: #000;
  font-size: 20px;
  font-weight: 700;
}

/* ===========================================================
   Client-facing screen (client.html)
   =========================================================== */
.client-screen {
  background-color: #f4f6f8;
}

.client-screen__wrap > div {
  width: 100%;
  min-width: 0; /* Важно для корректной работы flex в колонке */
}

.client-screen__wrap {
  height: calc(100vh - 120px);
  padding: 60px;
  overflow: hidden;
  background: #f4f6f8;
}

.client-screen__left {
  width: 60%;
  min-width: 0;
  border-radius: 30px 0 0 30px;
  background: linear-gradient(306deg, #fcfdf9 7.95%, #f0f7e6 92.22%);
  box-sizing: border-box;
}

.subheader {
  color: #000;
  font-size: 20px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}
.client-thanks {
  margin-top: 28px;
  color: #67a100;
  font-size: 40px;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}

.client-screen__right {
  width: 40%;
  min-width: 0;
  padding: 56px 30px;
  background: #fff;
  border-radius: 0 30px 30px 0;
  display: flex;
  flex-direction: column;
  border-left: 1px solid #d7d7d7;
  box-sizing: border-box;
}
.purchase {
  color: #000;
  font-size: 30px;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
.client-logo {
  height: 57px;
}
.thanks-page__purchase {
  border-top: 2px solid #d7d7d7;
  margin-top: 19px;
  margin-bottom: 15px;
}

.client-items li {
  padding: 10px 0;
}

.client-items .uk-text-bold {
  color: #1a1a1a;
  font-size: 22px;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}

.client-items .uk-text-muted.uk-text-small {
  color: #76757d !important;
  font-size: 18px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  margin-top: 2px;
}
.thanks-page__list-item {
  margin-top: 10px;
  margin-bottom: 0px;
}
.thanks-page__price {
  color: #76757d !important;
  font-size: 20px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}

.client-total {
  background: #f8fafc;
  border-left: 10px solid #60a000;
  border-radius: 20px;
  padding: 18px 28px;
}
.client-total__label {
  font-size: 21px;
  font-weight: 500;
  color: #76757d !important;
  text-transform: uppercase;
}
.client-total__amount {
  margin: 9px 0 19px;
  color: #000;
  font-size: 55px;
  font-style: normal;
  font-weight: 900;
  line-height: normal;
  letter-spacing: 2.75px;
}

/* fallback for narrow screens */
/* Дополнения к существующему медиа-запросу (max-width: 960px) */
@media (max-width: 960px) {
  .client-screen__wrap {
    flex-direction: column;
    height: auto;
    padding: 15px; /* Уменьшим отступы для мобилок */
  }

  .client-screen__left {
    min-height: 250px; /* Сделаем блок благодарности компактнее */
    padding: 20px;
    border-radius: 30px 30px 0 0;
    text-align: center;
  }

  .client-screen__right {
    border-radius: 0 0 30px 30px;
    padding: 20px;
    border-left: none; /* Убираем бордер, так как блоки теперь один под другим */
  }

  /* Масштабируем сумму, чтобы она не вылезала за экран */
  .client-total__amount {
    font-size: 40px; /* Уменьшаем шрифт суммы для узких экранов */
    letter-spacing: 1px;
  }

  /* Адаптируем элементы списка для мобильных */
  .client-items .uk-text-bold {
    font-size: 18px; /* Чуть меньше размер товара */
  }

  .client-items .uk-text-muted.uk-text-small {
    font-size: 15px;
  }
}

/* ===========================================================
   Order History (order-history.html)
   =========================================================== */
.hist {
  background-color: #f4f6f8;
  padding: 20px;
}
.hist-page {
  padding: 24px 50px;
  background: #fff;
  border-radius: 20px;
}
.order-page__buttons {
  gap: 10px;
}

.hist-head p {
  margin-top: 6px;
  max-width: 760px;
}

.manager {
  text-transform: uppercase;
}

.hist-filters {
  margin-bottom: 20px;
  padding: 20px;
  background: #f5f5f5;
  border-radius: 14px;
}

.uk-input.hist-field {
  border: 1px solid #eef3ff;
}
.uk-input.hist-field:focus {
  border: 1px solid #67a100;
}

.uk-select {
  padding-left: 40px;
}
.uk-select:focus {
  border-color: #67a100;
}

.uk-select.hist-field:not([multiple]):not([size]) {
  -webkit-appearance: none;
  appearance: none;
  padding-right: 40px;
  background:
    url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path d="M12 15L7 10H17L12 15Z" fill="%231D1B20"/></svg>')
      no-repeat right 14px center / 16px,
    #eef1fb;
}
/* открытый/сфокусированный селект — стрелка вверх */
.uk-select.hist-field:not([multiple]):not([size]):focus {
  background:
    url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path d="M12 9L7 14H17L12 9Z" fill="%231D1B20"/></svg>')
      no-repeat right 14px center / 16px,
    #eef1fb;
}

thead {
  background: #f5f5f5;
}
.hist-table th {
  padding-top: 30px;
  padding-bottom: 30px;
}
.uk-table td {
  padding-top: 30px;
  padding-bottom: 30px;
}

.hist-table th {
  border-bottom: 2px solid #67a100;
  color: #1f2329;
  font-weight: 700;
  text-transform: none;
  font-size: 15px;
}
.hist-table td {
  font-size: 15px;
}
.hist-order {
  font-size: 17px;
  font-weight: 700;
}
.hist-receipt {
  color: #8a8f98;
  font-size: 13px;
}
.hist-action {
  color: #1f2329;
  font-weight: 600;
  white-space: nowrap;
}
.hist-action:hover {
  color: #67A100-dark;
}

/* payment-method pills */
.pm {
  display: inline-block;
  padding: 6px 16px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.03em;
}
.pm--card {
  background: #e7f0ff;
  color: #2f6bff;
}
.pm--cashcard {
  background: #fff3e0;
  color: #e8920c;
}
.pm--cash {
  background: #eaf6e2;
  color: #5fa315;
}
.pm--gift {
  background: #fbeaf6;
  color: #c0489a;
}
.pm--canceled {
  background: #fdecec;
  color: #e0563f;
}

@media (max-width: 960px) {
  .manager,
  .hist-btn {
    width: 100%;
  }
}

/* ===========================================================
   Login screen (login.html)
   =========================================================== */
.login {
  background-color: #f4f6f8;
}

.login-wrap {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

.login-card {
  position: relative;
  width: 100%;
  max-width: 500px;
  padding: 20px 40px 50px 40px;
  border-radius: 30px;
  background: #fff;
  border-top: 13px solid #60a000;
}
/* зелёная «шапка», выглядывающая над карточкой */

.login-logo {
  display: block;
  height: 80px;
  margin: 0 auto 54px;
}
.login-title {
  margin-bottom: 14px;
  text-align: center;
  font-size: 40px;
  font-weight: 700;
}

.login-version {
  margin-top: 14px;
  text-align: center;
  color: #b8bcc4;
  font-size: 13px;
  font-weight: 600;
}

.pos-message {
  margin-top: 12px;
  font-size: 14px;
}
.pos-message.is-error {
  color: #c62828;
}
.pos-message.is-success {
  color: #67a100;
}
.pos-hidden {
  display: none !important;
}
.product__variant {
  margin: 10px 0;
}
.product__sku {
  min-height: 18px;
}
.cart-item {
  gap: 12px;
}
.cart-item__meta {
  line-height: 1.35;
}
.cart-item__remove {
  color: #c62828;
  font-size: 13px;
}
.totals .payment-line {
  color: #2362cd;
}
.scan-card.is-scanned {
  background: #eef8e4;
  color: #5b8611;
}
.scan-modal__input {
  text-align: center;
  letter-spacing: 1px;
}
.cash-display {
  min-height: 48px;
  font-size: 30px;
  font-weight: 700;
}
.client-items li {
  border-bottom: 1px solid #eee;
  padding-bottom: 10px;
  margin-bottom: 10px;
}
.hist-loading,
.products-loading,
.cart-empty {
  color: #76757d;
  text-align: center;
  padding: 16px;
}

/* ===========================================================
   POS polished notifications and removable payments/cards
   =========================================================== */
.pos-toast-container {
  position: fixed;
  top: 22px;
  right: 22px;
  z-index: 99999;
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: min(380px, calc(100vw - 32px));
  pointer-events: none;
}
.pos-toast {
  pointer-events: auto;
  display: grid;
  grid-template-columns: 34px 1fr 24px;
  align-items: center;
  gap: 12px;
  min-height: 70px;
  padding: 14px 16px;
  border-radius: 20px;
  background: #fff;
  border: 1px solid #d7d7d7;
  box-shadow: 0 18px 48px rgba(23, 28, 39, 0.14);
  transform: translateX(24px);
  opacity: 0;
  transition:
    opacity 0.2s ease,
    transform 0.2s ease;
}
.pos-toast.is-visible {
  transform: translateX(0);
  opacity: 1;
}
.pos-toast.is-removing {
  transform: translateX(24px);
  opacity: 0;
}
.pos-toast__icon {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  color: #fff;
  background: #67a100;
}
.pos-toast--error .pos-toast__icon {
  background: #e0563f;
}
.pos-toast__text {
  color: #1f2329;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.3;
}
.pos-toast__close {
  border: 0;
  background: transparent;
  color: #76757d;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  padding: 0;
}
.pos-toast__close:hover {
  color: #1f2329;
}
.pos-icon-remove {
  position: absolute;
  right: 38px;
  top: 94px;
  width: 42px;
  height: 42px;
  border-radius: 14px;
  border: 1px solid #ffd8d2;
  background: #fff2ef;
  color: #e0563f;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 3;
}
.pos-icon-remove:hover {
  background: #ffe4df;
  color: #c43f2b;
}
.pos-mini-remove {
  width: 26px;
  height: 26px;
  margin-left: 6px;
  border: 1px solid #ffd8d2;
  background: #fff2ef;
  color: #e0563f;
  border-radius: 9px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  vertical-align: middle;
  cursor: pointer;
}
.pos-mini-remove:hover {
  background: #ffe4df;
  color: #c43f2b;
}
.hist-products {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.hist-products__name {
  color: #1f2329;
  font-weight: 700;
}
.hist-products__qty {
  color: #76757d;
  font-weight: 600;
}
.hist-delete {
  background: #fff2ef !important;
  color: #e0563f !important;
  border: 1px solid #ffd8d2 !important;
  padding: 9px 14px;
  font-size: 13px;
  border-radius: 12px;
}
.hist-delete:hover {
  background: #ffe4df !important;
  color: #c43f2b !important;
}
.left-sidebar .uk-card {
  position: relative;
}
@media (max-width: 960px) {
  .pos-icon-remove {
    right: 28px;
    top: 88px;
  }
}
