html {
  font-size: 14px;
}

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

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 0;
}

/* _OrderPageCore: tall menu strip when host layout does not supply a flex height chain (e.g. customer portals). */
.order-page-menu-viewport--fill-available:not(.order-page-menu-viewport--simple2-flex) {
  height: calc(100dvh - 9.5rem);
  min-height: 240px;
}

/*
 * /OnlineOrder + _Layout only (Order.cshtml adds .checkout-page-root--pos-layout): the old inline
 * calc(100vh - 150px) stacked under the navbar and above the footer, so the document was taller than
 * one screen and the copyright footer sat mid-scroll. Fill the middle flex region instead.
 */
body > .container-fluid.flex-grow-1.d-flex.flex-column:has(main > .checkout-page-root--pos-layout) {
  min-height: 0;
}
body > .container-fluid.flex-grow-1.d-flex.flex-column:has(main > .checkout-page-root--pos-layout) > main.flex-grow-1.d-flex.flex-column {
  min-height: 0;
}
main > .checkout-page-root--pos-layout {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.checkout-page-root--pos-layout > .container-fluid {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.checkout-page-root--pos-layout .order-page-menu-viewport--fill-available:not(.order-page-menu-viewport--simple2-flex) {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  height: auto !important;
  max-height: none !important;
  overflow-y: auto;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
  color: var(--bs-secondary-color);
  text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
  text-align: start;
}

.admin-menu-section legend,
.admin-menu-section .card-title,
.admin-menu-section .card-text,
.admin-menu-section .btn {
  font-size: calc(1em + 4pt);
}

.top-menu-link {
  font-size: calc(1rem + 4pt);
  font-weight: 600;
}

.welcome-text {
  font-size: calc(1rem + 4pt);
}

/* Match .top-menu-link / .welcome-text in the navbar */
.nav-logout-btn {
  font-size: calc(1rem + 4pt);
  font-weight: 600;
  line-height: 1.25;
  padding: 0.35rem 0.85rem;
}

.clock-status-text {
  font-size: calc(0.875rem + 4pt);
}

/* Admin customers list — scrollable table */
.customer-admin-list-scroll {
  max-height: 70vh;
  overflow-y: auto;
}

/* Admin items list: paged + scrollable grid */
.items-admin-grid-scroll {
  max-height: 70vh;
  overflow-y: auto;
}

/* Admin item option mappings list: paged + scrollable + alternating row gray */
.item-option-mappings-grid-scroll {
  max-height: 70vh;
  overflow-y: auto;
}
.item-option-mapping-grid-alt > td {
  background-color: #f0f1f3 !important;
}

/* Item Option Mappings — alternating rows in the item-options dropdown */
.item-option-mapping-dropdown .item-option-mapping-dd-stripe {
  background-color: #f0f1f3;
  border-radius: 0.25rem;
}
.item-option-mapping-dropdown .item-option-mapping-dd-stripe > .dropdown-item {
  background-color: transparent;
}
.item-option-mapping-dropdown .item-option-mapping-dd-stripe > .dropdown-item:hover,
.item-option-mapping-dropdown .item-option-mapping-dd-stripe > .dropdown-item:focus {
  background-color: #e4e6ea;
}