html {
  font-size: 14px;
  position: relative;
  min-height: 100%;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

body {
  margin: 0;
}

.erp-nav-link {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  width: 100%;
  border-radius: 0.75rem;
  padding: 0.5rem 0.75rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: rgb(51 65 85);
  text-decoration: none;
  transition: background-color 150ms ease, color 150ms ease, box-shadow 150ms ease;
}

.erp-nav-link .erp-sidebar-label {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.erp-nav-link:hover {
  background: rgb(250 245 255);
  color: rgb(15 23 42);
}

.erp-nav-link:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgb(128 0 128 / 18%);
}

.erp-nav-icon {
  flex: 0 0 auto;
  display: block;
}

.erp-nav-link[aria-current="page"] {
  background: rgb(243 232 255);
  color: rgb(128 0 128);
  box-shadow: inset 0 0 0 1px rgb(233 213 255);
}

.erp-nav-link[aria-current="page"] .erp-nav-icon {
  color: rgb(128 0 128);
}

@media (min-width: 1024px) {
  .erp-app-shell {
    padding-left: 18rem !important;
  }

  html.erp-sidebar-collapsed #sidebar {
    width: 5rem !important;
  }

  html.erp-sidebar-collapsed .erp-app-shell {
    padding-left: 5rem !important;
  }

  html.erp-sidebar-collapsed .erp-sidebar-label {
    display: none !important;
  }

  html.erp-sidebar-collapsed .erp-nav-link {
    justify-content: center;
    gap: 0;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
  }
}

html.erp-pjax-loading body {
  cursor: progress;
}

.erp-page-loader-bar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  opacity: 0;
  transform: translateY(-6px);
  transition: opacity 160ms ease, transform 160ms ease;
  z-index: 9999;
}

.erp-page-loader-bar-inner {
  height: 100%;
  width: min(260px, 35vw);
  background: linear-gradient(90deg, rgb(128 0 128 / 0%), rgb(255 255 255 / 70%), rgb(128 0 128), rgb(128 0 128 / 0%));
  transform: translateX(-60%);
  animation: erpLoaderBarMove 900ms ease-in-out infinite;
}

.erp-page-loader-pill {
  position: fixed;
  top: 12px;
  left: 50%;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.45rem 0.75rem;
  border-radius: 999px;
  background: rgb(255 255 255 / 96%);
  border: 1px solid rgb(226 232 240);
  box-shadow: 0 18px 55px rgb(15 23 42 / 18%);
  opacity: 0;
  transform: translate(-50%, -10px);
  transition: opacity 160ms ease, transform 160ms ease;
  z-index: 9999;
  pointer-events: none;
}

.erp-page-loader-spinner {
  width: 14px;
  height: 14px;
  border-radius: 999px;
  border: 2px solid rgb(128 0 128 / 18%);
  border-top-color: rgb(128 0 128);
  animation: erpLoaderSpin 800ms linear infinite;
}

.erp-page-loader-text {
  font-size: 12px;
  font-weight: 700;
  color: rgb(15 23 42);
  letter-spacing: 0.02em;
}

@keyframes erpLoaderSpin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

@keyframes erpLoaderBarMove {
  0% { transform: translateX(-60%); opacity: 0.55; }
  20% { opacity: 1; }
  100% { transform: translateX(360%); opacity: 0.7; }
}

html.erp-pjax-loading .erp-page-loader-bar,
html.erp-fullpage-loading .erp-page-loader-bar {
  opacity: 1;
  transform: translateY(0);
}

html.erp-pjax-loading .erp-page-loader-pill,
html.erp-fullpage-loading .erp-page-loader-pill {
  opacity: 1;
  transform: translate(-50%, 0);
}

.settings-tab-btn {
  transition: background-color 150ms ease, color 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
}

.settings-tab-btn:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgb(128 0 128 / 18%);
}

.settings-tab-btn[aria-selected="true"] {
  background: rgb(128 0 128);
  border-color: rgb(128 0 128 / 30%);
  color: rgb(255 255 255);
  box-shadow: inset 0 0 0 1px rgb(128 0 128 / 22%);
}

.settings-tab-btn[aria-selected="false"] {
  background: rgb(255 255 255);
  border-color: rgb(226 232 240);
  color: rgb(51 65 85);
}

.settings-tab-btn[aria-selected="false"]:hover {
  background: rgb(248 250 252);
}

.erp-break-anywhere {
  overflow-wrap: anywhere;
  word-break: break-word;
}

@keyframes posSpin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.pos-spinner {
  animation: posSpin 0.9s linear infinite;
  display: inline-block;
}

button.pos-action-btn.pos-btn-busy [data-pos-btn-state="normal"] {
  display: none !important;
}

button.pos-action-btn.pos-btn-busy [data-pos-btn-state="busy"] {
  display: inline-flex !important;
}

[data-pos-cart-scroll="true"] {
  scrollbar-gutter: stable;
  scrollbar-width: thin;
  scrollbar-color: rgb(148 163 184) rgb(241 245 249);
}

[data-pos-cart-scroll="true"]::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

[data-pos-cart-scroll="true"]::-webkit-scrollbar-track {
  background: rgb(241 245 249);
  border-radius: 999px;
}

[data-pos-cart-scroll="true"]::-webkit-scrollbar-thumb {
  background: rgb(148 163 184);
  border-radius: 999px;
  border: 2px solid rgb(241 245 249);
}

[data-pos-cart-scroll="true"]::-webkit-scrollbar-thumb:hover {
  background: rgb(100 116 139);
}

[data-reports-list-body="true"],
#reportBillPreviewBody {
  scrollbar-gutter: stable;
  scrollbar-width: thin;
  scrollbar-color: rgb(148 163 184) rgb(241 245 249);
}

[data-reports-list-body="true"]::-webkit-scrollbar,
#reportBillPreviewBody::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

[data-reports-list-body="true"]::-webkit-scrollbar-track,
#reportBillPreviewBody::-webkit-scrollbar-track {
  background: rgb(241 245 249);
  border-radius: 999px;
}

[data-reports-list-body="true"]::-webkit-scrollbar-thumb,
#reportBillPreviewBody::-webkit-scrollbar-thumb {
  background: rgb(148 163 184);
  border-radius: 999px;
  border: 2px solid rgb(241 245 249);
}

[data-reports-list-body="true"]::-webkit-scrollbar-thumb:hover,
#reportBillPreviewBody::-webkit-scrollbar-thumb:hover {
  background: rgb(100 116 139);
}

:root {
  --erp-footer-height: 40px;
  --erp-sidebar-width: 18rem;
  --erp-sidebar-collapsed-width: 5rem;
}

.erp-footer {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  height: calc(var(--erp-footer-height) + env(safe-area-inset-bottom));
  padding-bottom: env(safe-area-inset-bottom);
  z-index: 35;
}

.erp-footer-spacer {
  height: calc(var(--erp-footer-height) + env(safe-area-inset-bottom));
  flex: 0 0 auto;
}

@media (min-width: 1024px) {
  .erp-footer-auth {
    left: var(--erp-sidebar-width);
  }

  html.erp-sidebar-collapsed .erp-footer-auth {
    left: var(--erp-sidebar-collapsed-width);
  }
}
