:root {
  --primary-50: #eff6ff;
  --primary-100: #dbeafe;
  --primary-200: #bfdbfe;
  --primary-300: #93c5fd;
  --primary-400: #60a5fa;
  --primary-500: #3b82f6;
  --primary-600: #2563eb;
  --primary-700: #1d4ed8;
  --primary-800: #1e40af;
  --primary-900: #1e3a8a;
  --primary-500-rgb: 59, 130, 246;
  --primary-600-rgb: 37, 99, 235;
  --orange: var(--primary-500);
  --red: var(--primary-600);
  --yellow: #facc15;
  --green: #22c55e;
  --danger: #dc2626;
  --danger-soft: #fee2e2;
  --warning: #facc15;
  --success: #22c55e;
  --ink: #111827;
  --muted: #6b7280;
  --soft: var(--primary-50);
  --card: #ffffff;
  --line: var(--primary-200);
}

* { box-sizing: border-box; }
html, body { min-height: 100%; }
body {
  margin: 0;
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: linear-gradient(135deg, var(--primary-50) 0%, var(--primary-100) 45%, #fee2e2 100%);
  color: var(--ink);
}
button, input, textarea { font: inherit; }
button { cursor: pointer; touch-action: manipulation; }

.kiosk-shell {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.kiosk-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 22px 28px;
  background: rgba(255,255,255,.84);
  border-bottom: 3px solid rgba(var(--primary-500-rgb),.25);
  backdrop-filter: blur(18px);
  position: sticky;
  top: 0;
  z-index: 20;
}

.brand-lockup { display: flex; align-items: center; gap: 16px; }
.brand-mark {
  width: 64px; height: 64px; border-radius: 22px;
  display: grid; place-items: center;
  border: 0; padding: 0; cursor: pointer;
  background: linear-gradient(135deg, var(--orange), var(--red));
  color: white; font-size: 34px; box-shadow: 0 14px 28px rgba(var(--primary-500-rgb),.25);
  transition: transform .16s ease, box-shadow .16s ease;
}
.brand-mark:active { transform: scale(.96); }
.brand-mark:focus-visible { outline: 4px solid rgba(var(--primary-500-rgb),.35); outline-offset: 4px; }
.brand-title { font-size: 34px; font-weight: 1000; line-height: 1; letter-spacing: -.04em; }
.brand-subtitle { margin-top: 5px; font-size: 17px; color: var(--muted); font-weight: 800; }
.header-pill {
  border: 3px solid rgba(var(--primary-500-rgb),.2);
  background: white;
  border-radius: 999px;
  padding: 14px 22px;
  font-weight: 1000;
  color: var(--primary-800);
  font-size: 18px;
}
.header-cart-btn {
  border: 3px solid rgba(var(--primary-500-rgb),.24);
  background: #ffffff;
  border-radius: 999px;
  padding: 10px 14px 10px 10px;
  min-width: 205px;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  color: var(--primary-800);
  box-shadow: 0 14px 30px rgba(var(--primary-600-rgb),.08);
}
.header-cart-icon {
  width: 46px;
  height: 46px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, var(--orange), var(--red));
  color: white;
  font-size: 23px;
  box-shadow: 0 10px 20px rgba(var(--primary-500-rgb),.22);
}
.header-cart-btn strong {
  display: block;
  font-size: 20px;
  font-weight: 1000;
  line-height: 1;
  color: var(--primary-800);
  text-align: left;
}
.header-cart-btn small {
  display: block;
  margin-top: 3px;
  font-size: 13px;
  color: var(--muted);
  font-weight: 900;
  text-align: left;
}
.header-cart-btn em {
  font-style: normal;
  color: #111827;
  font-size: 18px;
  font-weight: 1000;
}

.kiosk-main {
  flex: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 390px;
  gap: 24px;
  padding: 24px;
}

.menu-pane { min-width: 0; }
.category-tabs {
  display: flex;
  align-items: center;
  gap: 10px;
  overflow-x: auto;
  padding: 0 0 14px;
  max-width: 100%;
  scrollbar-width: none;
  scroll-snap-type: x proximity;
}
.category-tabs::-webkit-scrollbar { display: none; }
.category-tab {
  flex: 0 0 auto;
  min-width: 106px;
  border: 2px solid rgba(254, 215, 170, .92);
  border-radius: 999px;
  padding: 11px 16px;
  background: rgba(255,255,255,.94);
  color: var(--primary-800);
  box-shadow: 0 10px 22px rgba(var(--primary-600-rgb),.07);
  font-size: 18px;
  font-weight: 1000;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  line-height: 1;
  white-space: nowrap;
  scroll-snap-align: start;
  transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
}
.category-tab span {
  display: inline-grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 999px;
  background: var(--primary-50);
  font-size: 16px;
  box-shadow: inset 0 0 0 1px rgba(254, 215, 170, .9);
}
.category-tab.active {
  background: linear-gradient(135deg, var(--orange), var(--red));
  color: white;
  border-color: rgba(255,255,255,.84);
  box-shadow: 0 14px 28px rgba(239,68,68,.18);
  transform: translateY(-1px);
}
.category-tab.active span {
  background: rgba(255,255,255,.22);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.26);
}

.category-section { margin-bottom: 36px; }
.section-title {
  display: flex; align-items: center; gap: 12px;
  margin: 8px 0 18px;
  font-size: 36px;
  font-weight: 1000;
  letter-spacing: -.04em;
}
.product-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  align-items: stretch;
}
.product-card {
  border: 0;
  text-align: left;
  min-height: 365px;
  background: rgba(255,255,255,.94);
  border-radius: 32px;
  padding: 18px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  box-shadow: 0 18px 38px rgba(17,24,39,.1);
  border: 3px solid rgba(255,255,255,.88);
  overflow: hidden;
  transition: transform .16s ease, box-shadow .16s ease;
}
.product-card:active { transform: scale(.98); }
.product-image {
  height: 165px;
  flex: 0 0 165px;
  border-radius: 25px;
  background:
    radial-gradient(circle at 22% 18%, rgba(255,255,255,.8), transparent 24%),
    linear-gradient(135deg, var(--primary-400), var(--primary-600));
  display: grid;
  place-items: center;
  color: white;
  font-size: clamp(38px, 5vw, 56px);
  font-weight: 1000;
  overflow: hidden;
}
.product-image img { width: 100%; height: 100%; object-fit: cover; }
.product-topline { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.product-name {
  font-size: clamp(21px, 1.45vw, 27px);
  line-height: 1.02;
  font-weight: 1000;
  letter-spacing: -.035em;
}
.product-badge { background: var(--primary-100); color: var(--primary-800); border-radius: 999px; padding: 7px 10px; font-size: 12px; font-weight: 1000; white-space: nowrap; }
.product-desc {
  color: var(--muted);
  font-size: clamp(14px, .95vw, 16px);
  font-weight: 750;
  line-height: 1.25;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.product-footer { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: auto; }
.product-price { font-size: clamp(25px, 1.65vw, 30px); font-weight: 1000; color: var(--primary-800); }
.add-chip { background: #111827; color: white; border-radius: 999px; padding: 12px 17px; font-weight: 1000; font-size: clamp(16px, 1.05vw, 18px); white-space: nowrap; }

.cart-pane {
  position: sticky;
  top: 120px;
  height: calc(100vh - 144px);
  background: rgba(255,255,255,.94);
  border-radius: 34px;
  box-shadow: 0 22px 50px rgba(17,24,39,.13);
  border: 3px solid rgba(255,255,255,.9);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.cart-header { padding: 24px; border-bottom: 2px solid var(--primary-100); }
.cart-title { font-size: 31px; font-weight: 1000; letter-spacing: -.04em; }
.cart-subtitle { color: var(--muted); font-weight: 800; margin-top: 4px; }
.cart-items { flex: 1; overflow-y: auto; padding: 16px; }
.empty-cart {
  height: 100%; display: grid; place-items: center; text-align: center;
  color: var(--primary-800); font-size: 22px; font-weight: 1000; padding: 24px;
}
.cart-item { background: var(--primary-50); border: 2px solid var(--primary-200); border-radius: 24px; padding: 14px; margin-bottom: 12px; }
.cart-item-row { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; }
.cart-item-name { font-size: 18px; font-weight: 1000; }
.cart-mods { margin-top: 6px; color: var(--primary-800); font-size: 13px; font-weight: 800; }
.qty-row { margin-top: 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.qty-controls { display: flex; align-items: center; gap: 8px; }
.qty-btn { width: 42px; height: 42px; border: 0; border-radius: 16px; background: white; color: var(--primary-800); font-weight: 1000; font-size: 22px; }
.qty-num { min-width: 26px; text-align: center; font-weight: 1000; font-size: 18px; }
.remove-btn { border: 0; background: #fee2e2; color: #991b1b; border-radius: 999px; padding: 10px 13px; font-weight: 1000; }
.cart-total-box { border-top: 2px solid var(--primary-100); padding: 20px 24px 24px; }
.total-line { display: flex; justify-content: space-between; font-size: 17px; font-weight: 900; color: #6b7280; margin-bottom: 10px; }
.total-line.grand { font-size: 30px; color: #111827; margin: 12px 0 18px; }
.checkout-btn, .primary-btn {
  width: 100%; border: 0; border-radius: 26px; padding: 22px 24px;
  background: linear-gradient(135deg, var(--green), #16a34a);
  color: white; font-size: 24px; font-weight: 1000;
  box-shadow: 0 18px 32px rgba(34,197,94,.28);
}
.checkout-btn:disabled { opacity: .45; cursor: not-allowed; filter: grayscale(.5); }
.secondary-btn { width: 100%; border: 0; border-radius: 22px; padding: 17px 20px; background: #111827; color: white; font-weight: 1000; font-size: 18px; }

.modal-backdrop {
  position: fixed; inset: 0; z-index: 50; display: none; align-items: center; justify-content: center;
  background: rgba(17,24,39,.62); padding: 24px;
}
.modal-backdrop.show { display: flex; }
.modal-card {
  width: min(860px, 100%); max-height: 92vh; overflow-y: auto;
  background: white; border-radius: 38px; padding: 30px;
  box-shadow: 0 30px 80px rgba(0,0,0,.28);
}
.modal-title { font-size: 38px; font-weight: 1000; letter-spacing: -.04em; margin: 0; }
.modal-desc { color: var(--muted); font-size: 18px; font-weight: 800; margin: 8px 0 22px; }
.mod-group { margin: 20px 0; }
.mod-group-title { font-size: 22px; font-weight: 1000; margin-bottom: 12px; }
.mod-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.mod-option {
  border: 3px solid var(--primary-200); background: var(--primary-50); border-radius: 24px; padding: 18px;
  display: flex; justify-content: space-between; gap: 12px; align-items: center;
  font-size: 19px; font-weight: 1000;
}
.mod-option.selected { background: #111827; border-color: #111827; color: white; }
.modal-actions { display: grid; grid-template-columns: 1fr 1.4fr; gap: 14px; margin-top: 24px; }
.cancel-btn { border: 0; border-radius: 26px; background: #f3f4f6; color: #111827; font-weight: 1000; font-size: 21px; }
.input-label { display: block; font-size: 17px; font-weight: 1000; margin: 14px 0 8px; }
.big-input, .big-textarea, .order-type-select {
  width: 100%; border: 3px solid var(--primary-200); border-radius: 22px; padding: 18px 20px;
  font-size: 22px; font-weight: 900; outline: none; background: var(--primary-50);
}
.big-textarea { min-height: 100px; resize: vertical; }
.confirm-box { background: #ecfdf5; border: 3px solid #86efac; border-radius: 30px; padding: 26px; text-align: center; }
.confirm-number { font-size: 62px; font-weight: 1000; color: #166534; letter-spacing: -.05em; }
.confirm-countdown {
  margin: 14px 0 20px;
  border: 3px solid #bbf7d0;
  background: #f0fdf4;
  color: #166534;
  border-radius: 24px;
  padding: 14px 16px;
  font-size: 20px;
  font-weight: 1000;
}
.confirm-countdown strong {
  display: inline-grid;
  place-items: center;
  min-width: 42px;
  height: 42px;
  margin: 0 4px;
  border-radius: 16px;
  background: #166534;
  color: white;
}
/* v1.7.20 - Online ordering: show a full-page loader immediately so default header text never flashes before restaurant data loads. */
.loading-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  place-items: center;
  min-height: 100dvh;
  padding: 24px;
  background: #fff7ed;
  font-size: clamp(34px, 9vw, 68px);
  line-height: 1.1;
  text-align: center;
  font-weight: 1000;
  color: var(--primary-800);
}
.loading-overlay.show { display: grid; }

.cart-modal-backdrop { padding: 18px; }
.cart-modal-card {
  width: min(720px, 100%);
  padding: 0;
  overflow: hidden;
}
.cart-modal-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 26px 28px 18px;
  border-bottom: 2px solid var(--primary-100);
}
.cart-modal-head .modal-desc { margin-bottom: 0; }
.cart-modal-close {
  border: 0;
  width: 54px;
  height: 54px;
  border-radius: 999px;
  background: #111827;
  color: white;
  font-size: 34px;
  line-height: 1;
  font-weight: 1000;
}
.cart-modal-items {
  max-height: min(52vh, 520px);
  overflow-y: auto;
  padding: 18px;
}
.cart-modal-total-box {
  border-top: 2px solid var(--primary-100);
  padding: 18px 28px 26px;
  background: rgba(255,247,237,.76);
}
.cart-modal-item {
  background: var(--primary-50);
  border: 2px solid var(--primary-200);
  border-radius: 24px;
  padding: 16px;
  margin-bottom: 12px;
}
.cart-modal-empty {
  min-height: 220px;
  display: grid;
  place-items: center;
  text-align: center;
  color: var(--primary-800);
  font-size: 24px;
  font-weight: 1000;
  padding: 24px;
}

.admin-placeholder, .kitchen-placeholder {
  min-height: 100vh; display: grid; place-items: center; padding: 28px;
}
.placeholder-card { max-width: 780px; background: white; border-radius: 34px; padding: 36px; box-shadow: 0 20px 50px rgba(17,24,39,.12); }
.placeholder-card h1 { font-size: 44px; margin: 0 0 12px; letter-spacing: -.05em; }
.placeholder-card p, .placeholder-card li { font-size: 20px; font-weight: 750; color: #4b5563; line-height: 1.45; }
.placeholder-card a { color: var(--primary-600); font-weight: 1000; }

@media (max-width: 1180px) {
  .kiosk-main { grid-template-columns: 1fr; }
  .cart-pane { display: none; }
  .product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 899px) and (min-width: 761px) {
  .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .kiosk-header { padding: 16px; }
  .brand-title { font-size: 26px; }
  .brand-mark { width: 52px; height: 52px; font-size: 28px; border-radius: 18px; }
  .header-cart-btn { min-width: 0; padding: 8px 10px 8px 8px; }
  .header-cart-icon { width: 42px; height: 42px; font-size: 21px; }
  .header-cart-btn strong { font-size: 17px; }
  .header-cart-btn small { font-size: 12px; }
  .header-cart-btn em { display: none; }
  .kiosk-main { padding: 14px; gap: 14px; }
  .category-tabs { gap: 8px; padding-bottom: 12px; }
  .category-tab { min-width: 94px; font-size: 16px; padding: 10px 13px; }
  .category-tab span { width: 24px; height: 24px; font-size: 15px; }
  .section-title { font-size: 30px; }
  .product-grid { grid-template-columns: 1fr; gap: 14px; }
  .product-card { min-height: 350px; border-radius: 28px; padding: 14px; }
  .product-image { height: 150px; flex-basis: 150px; }
  .cart-pane { border-radius: 28px; }
  .cart-modal-backdrop { padding: 10px; }
  .cart-modal-head { padding: 20px 20px 14px; }
  .cart-modal-items { padding: 14px; max-height: 50vh; }
  .cart-modal-total-box { padding: 16px 20px 20px; }
  .modal-card { padding: 22px; border-radius: 30px; }
  .modal-title { font-size: 31px; }
  .mod-grid, .modal-actions { grid-template-columns: 1fr; }
}

@media (min-width: 1500px) {
  .product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .product-card { min-height: 390px; }
  .product-image { height: 180px; flex-basis: 180px; }
}


/* Kitchen Display */
.kitchen-body {
  min-height: 100vh;
  background: #0f172a;
  color: #f8fafc;
}
.kitchen-shell {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background:
    radial-gradient(circle at top left, rgba(var(--primary-500-rgb),.32), transparent 32%),
    radial-gradient(circle at bottom right, rgba(34,197,94,.2), transparent 32%),
    #0f172a;
}
.kitchen-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  padding: 18px 24px;
  border-bottom: 2px solid rgba(255,255,255,.1);
  background: rgba(15,23,42,.82);
  backdrop-filter: blur(18px);
  position: sticky;
  top: 0;
  z-index: 25;
}
.kitchen-brand { display: flex; align-items: center; gap: 16px; }
.kitchen-mark {
  width: 58px;
  height: 58px;
  border-radius: 21px;
  display: grid;
  place-items: center;
  font-size: 31px;
  background: linear-gradient(135deg, var(--primary-500), var(--primary-600));
  box-shadow: 0 16px 40px rgba(var(--primary-500-rgb),.32);
}
.kitchen-brand h1 {
  margin: 0;
  font-size: clamp(24px, 2.7vw, 34px);
  line-height: 1;
  letter-spacing: -.045em;
  font-weight: 1000;
}
.kitchen-brand p {
  margin: 5px 0 0;
  color: #cbd5e1;
  font-size: clamp(13px, 1.25vw, 16px);
  font-weight: 850;
}
.kitchen-actions { display: flex; gap: 12px; flex-wrap: wrap; justify-content: flex-end; }
.kitchen-pill {
  border: 2px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.08);
  color: #f8fafc;
  border-radius: 999px;
  padding: 15px 20px;
  font-size: 18px;
  font-weight: 1000;
  text-decoration: none;
}
.kitchen-link { display: inline-flex; align-items: center; }
.kitchen-status-tabs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  padding: 16px 20px 0;
}
.kitchen-status-tab {
  border: 2px solid rgba(255,255,255,.16);
  border-radius: 24px;
  min-height: 76px;
  padding: 12px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: #f8fafc;
  background: rgba(255,255,255,.08);
  box-shadow: 0 14px 32px rgba(0,0,0,.16);
}
.kitchen-status-tab .tab-label {
  font-size: clamp(19px, 2.1vw, 30px);
  font-weight: 1000;
  letter-spacing: -.04em;
  line-height: 1;
}
.kitchen-status-tab .tab-count {
  min-width: 48px;
  height: 48px;
  border-radius: 17px;
  display: grid;
  place-items: center;
  background: #f8fafc;
  color: #0f172a;
  font-size: 24px;
  font-weight: 1000;
}
.kitchen-status-tab.tab-active.is-active { background: linear-gradient(135deg, var(--primary-500), var(--primary-600)); border-color: rgba(255,255,255,.22); }
.kitchen-status-tab.tab-scheduled.is-active { background: linear-gradient(135deg, #eab308, var(--primary-500)); border-color: rgba(255,255,255,.22); }
.kitchen-status-tab.tab-completed.is-active { background: linear-gradient(135deg, #22c55e, #16a34a); border-color: rgba(255,255,255,.22); }
.kitchen-status-tab.tab-menu-control.is-active { background: linear-gradient(135deg, #0ea5e9, #2563eb); border-color: rgba(255,255,255,.22); }
.kitchen-status-tab:not(.is-active) { opacity: .78; }
.kitchen-board {
  flex: 1;
  display: block;
  padding: 16px 20px 20px;
  min-height: 0;
}
.kitchen-column {
  background: rgba(255,255,255,.08);
  border: 2px solid rgba(255,255,255,.12);
  border-radius: 30px;
  overflow: hidden;
  display: none;
  flex-direction: column;
  min-height: calc(100vh - 285px);
}
.kitchen-column.is-active { display: flex; }
.column-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 18px 20px;
  border-bottom: 2px solid rgba(255,255,255,.12);
}
.column-header h2 {
  margin: 0;
  font-size: 30px;
  font-weight: 1000;
  letter-spacing: -.04em;
}
.column-header span {
  min-width: 48px;
  height: 48px;
  border-radius: 18px;
  display: grid;
  place-items: center;
  background: #f8fafc;
  color: #0f172a;
  font-size: 24px;
  font-weight: 1000;
}
.status-active .column-header { background: linear-gradient(135deg, var(--primary-500), var(--primary-600)); }
.status-scheduled .column-header { background: linear-gradient(135deg, #eab308, var(--primary-500)); }
.status-completed .column-header { background: linear-gradient(135deg, #22c55e, #16a34a); }
.order-stack {
  --masonry-row: 8px;
  --masonry-gap: 16px;
  flex: 1;
  overflow-y: auto;
  padding: 16px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  grid-auto-rows: var(--masonry-row);
  align-items: start;
  align-content: start;
  gap: var(--masonry-gap);
}
.order-stack .kitchen-order-card {
  width: 100%;
  height: auto;
  align-self: start;
  margin: 0;
}
.empty-kitchen {
  height: 160px;
  display: grid;
  place-items: center;
  text-align: center;
  color: #cbd5e1;
  font-size: 22px;
  font-weight: 1000;
  border: 2px dashed rgba(255,255,255,.18);
  border-radius: 24px;
}
.kitchen-order-card {
  background: #f8fafc;
  color: #0f172a;
  border-radius: 28px;
  padding: 18px;
  box-shadow: 0 18px 38px rgba(0,0,0,.22);
  border: 4px solid transparent;
}
.kitchen-order-card.card-active { border-color: var(--primary-400); }
.kitchen-order-card.card-scheduled { border-color: #facc15; }
.kitchen-order-card.card-ready { border-color: var(--primary-400); }
.kitchen-order-card.card-completed { border-color: #22c55e; opacity: .92; }
.order-card-top {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: flex-start;
  padding-bottom: 14px;
  border-bottom: 2px solid #e2e8f0;
}
.order-card-main-id {
  min-width: 0;
  flex: 1;
}
.order-card-title-row {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  flex-wrap: nowrap;
}
.order-card-title-row .kitchen-customer-name {
  font-size: clamp(22px, 2.15vw, 30px);
  line-height: 1;
  font-weight: 1000;
  letter-spacing: -.04em;
  color: #0f172a;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex: 1 1 auto;
  min-width: 0;
}
.order-card-title-row .order-number {
  margin-top: 0;
  font-size: clamp(18px, 1.7vw, 24px);
  line-height: 1;
  font-weight: 1000;
  letter-spacing: -.03em;
  color: #475569;
  white-space: nowrap;
  flex: 0 0 auto;
}
.kitchen-customer-name {
  font-size: clamp(30px, 3vw, 48px);
  line-height: .92;
  font-weight: 1000;
  letter-spacing: -.06em;
  color: #0f172a;
  word-break: break-word;
}
.order-number {
  margin-top: 8px;
  font-size: clamp(22px, 2.1vw, 34px);
  line-height: .95;
  font-weight: 1000;
  letter-spacing: -.055em;
  color: #334155;
  word-break: break-word;
}
.order-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 9px;
}
.order-meta span {
  background: #e2e8f0;
  color: #334155;
  border-radius: 999px;
  padding: 7px 10px;
  font-size: 13px;
  font-weight: 1000;
}
.order-total {
  font-size: 23px;
  font-weight: 1000;
  color: var(--primary-800);
  white-space: nowrap;
}
.kitchen-items { padding: 12px 0; }
.kitchen-item {
  background: #ffffff;
  border: 2px solid #e2e8f0;
  border-radius: 20px;
  padding: 13px;
  margin-bottom: 10px;
}
.kitchen-item-main {
  display: flex;
  gap: 10px;
  font-size: 22px;
  line-height: 1.1;
}
.kitchen-qty {
  min-width: 42px;
  color: var(--primary-600);
  font-weight: 1000;
}
.kitchen-mods {
  margin: 10px 0 0 52px;
  padding: 0;
  list-style: none;
  color: var(--primary-900);
  font-size: 16px;
  font-weight: 900;
}
.kitchen-mods li::before { content: '+ '; }
.kitchen-item-note, .kitchen-notes {
  margin-top: 10px;
  background: var(--primary-100);
  color: #78350f;
  border-radius: 16px;
  padding: 10px 12px;
  font-size: 15px;
  font-weight: 900;
}
.kitchen-card-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  margin-top: 14px;
}
.kitchen-action-btn, .kitchen-small-btn {
  border: 0;
  border-radius: 20px;
  padding: 17px 18px;
  font-size: 18px;
  font-weight: 1000;
  color: white;
}
.kitchen-action-btn.start { background: linear-gradient(135deg, var(--primary-500), var(--primary-600)); }
.kitchen-action-btn.ready { background: linear-gradient(135deg, #22c55e, #16a34a); }
.kitchen-action-btn.done { background: linear-gradient(135deg, #2563eb, #1d4ed8); }
.kitchen-action-btn.undo { background: linear-gradient(135deg, #64748b, #334155); }
.kitchen-small-btn { background: #0f172a; }
.completed-tray {
  padding: 0 20px 20px;
}
.completed-toggle {
  width: 100%;
  border: 2px solid rgba(255,255,255,.14);
  border-radius: 24px;
  padding: 17px 20px;
  background: rgba(255,255,255,.08);
  color: #f8fafc;
  font-size: 20px;
  font-weight: 1000;
}
.completed-toggle span {
  display: inline-grid;
  place-items: center;
  min-width: 36px;
  height: 36px;
  margin-left: 8px;
  border-radius: 14px;
  background: #f8fafc;
  color: #0f172a;
}
.completed-orders {
  display: none;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 16px;
}
.completed-orders.open { display: grid; }
.kitchen-toast {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 90;
  transform: translateY(20px);
  opacity: 0;
  pointer-events: none;
  background: #f8fafc;
  color: #0f172a;
  border-radius: 22px;
  padding: 18px 22px;
  font-size: 18px;
  font-weight: 1000;
  box-shadow: 0 18px 50px rgba(0,0,0,.3);
  transition: .18s ease;
}
.kitchen-toast.show { transform: translateY(0); opacity: 1; }

@media (max-width: 1180px) {
  .kitchen-column { min-height: calc(100vh - 300px); }
  .order-stack { grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); }
  .completed-orders.open { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .kitchen-header { align-items: flex-start; flex-direction: column; padding: 16px; }
  .kitchen-brand h1 { font-size: 25px; }
  .kitchen-mark { width: 56px; height: 56px; border-radius: 20px; font-size: 30px; }
  .kitchen-actions, .kitchen-pill { width: 100%; }
  .kitchen-pill { text-align: center; justify-content: center; }
  .kitchen-status-tabs { grid-template-columns: 1fr; padding: 14px 14px 0; }
  .kitchen-status-tab { min-height: 64px; }
  .kitchen-board { padding: 14px; }
  .kitchen-column { min-height: 440px; }
  .order-stack { grid-template-columns: 1fr; padding: 12px; }
  .column-header h2 { font-size: 25px; }
  .order-number { font-size: 36px; }
  .kitchen-card-actions { grid-template-columns: 1fr; }
}

/* Admin Menu Manager */
.admin-body {
  min-height: 100vh;
  margin: 0;
  background: radial-gradient(circle at top left, #fff7d6 0, #fff3c4 24%, #fde7d7 55%, #f8fafc 100%);
  color: #0f172a;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.admin-topbar {
  position: sticky;
  top: 0;
  z-index: 40;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  padding: 22px 28px;
  background: rgba(15, 23, 42, .94);
  color: white;
  box-shadow: 0 16px 40px rgba(15, 23, 42, .22);
}
.admin-brand { display: flex; align-items: center; gap: 18px; }
.admin-logo {
  width: 64px;
  height: 64px;
  display: grid;
  place-items: center;
  border-radius: 22px;
  font-size: 30px;
  background: linear-gradient(135deg, #ff7a18, var(--primary-600));
  box-shadow: 0 14px 30px rgba(239, 68, 68, .35);
}
.admin-brand h1 { margin: 0; font-size: clamp(28px, 3vw, 44px); line-height: .95; letter-spacing: -0.05em; }
.admin-brand p { margin: 8px 0 0; font-weight: 800; color: #cbd5e1; font-size: 17px; }
.admin-actions { display: flex; gap: 12px; flex-wrap: wrap; justify-content: flex-end; }
.admin-pill {
  color: white;
  text-decoration: none;
  border: 2px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.08);
  border-radius: 999px;
  padding: 15px 22px;
  font-weight: 950;
  font-size: 17px;
}
.admin-shell { padding: 24px; max-width: 1500px; margin: 0 auto; }
.admin-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 18px; }
.admin-stats article {
  background: rgba(255,255,255,.9);
  border: 2px solid rgba(var(--primary-500-rgb), .18);
  border-radius: 26px;
  padding: 18px 22px;
  box-shadow: 0 18px 40px rgba(15,23,42,.08);
}
.admin-stats strong { display: block; font-size: 42px; letter-spacing: -0.06em; line-height: .9; }
.admin-stats span { display: block; margin-top: 8px; color: #64748b; font-weight: 900; }
.admin-tabs { display: flex; gap: 14px; margin-bottom: 20px; overflow-x: auto; padding-bottom: 2px; }
.admin-tab {
  border: 0;
  border-radius: 22px;
  padding: 18px 26px;
  min-width: 170px;
  background: white;
  color: var(--primary-800);
  font-weight: 1000;
  font-size: 20px;
  box-shadow: 0 14px 32px rgba(15,23,42,.08);
  cursor: pointer;
}
.admin-tab.is-active { background: linear-gradient(135deg, #ff6b1a, var(--primary-600)); color: white; }
.admin-panel { display: none; }
.admin-panel.is-active { display: block; }
.admin-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 18px;
  background: rgba(255,255,255,.88);
  border-radius: 30px;
  padding: 22px;
  border: 2px solid rgba(var(--primary-500-rgb), .18);
}
.admin-panel-head.compact { padding: 18px; border-radius: 24px; }
.admin-panel-head h2 { margin: 0; font-size: 34px; letter-spacing: -0.05em; }
.admin-panel-head p { margin: 8px 0 0; color: #64748b; font-size: 16px; font-weight: 850; max-width: 720px; }
.admin-primary {
  border: 0;
  border-radius: 20px;
  padding: 17px 23px;
  background: #16a34a;
  color: white;
  font-size: 18px;
  font-weight: 1000;
  box-shadow: 0 18px 34px rgba(22, 163, 74, .22);
  cursor: pointer;
  white-space: nowrap;
}
.admin-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
.admin-item-grid { grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); }
.admin-category-grid { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.admin-card {
  background: white;
  border: 2px solid rgba(15,23,42,.08);
  border-radius: 28px;
  padding: 18px;
  box-shadow: 0 18px 44px rgba(15,23,42,.09);
}

.admin-item-preview {
  height: 150px;
  border-radius: 24px;
  overflow: hidden;
  display: grid;
  place-items: center;
  margin-bottom: 14px;
  background:
    radial-gradient(circle at 22% 18%, rgba(255,255,255,.8), transparent 24%),
    linear-gradient(135deg, var(--primary-400), var(--primary-600));
  color: white;
  font-size: 42px;
  font-weight: 1000;
  letter-spacing: -0.05em;
}
.admin-item-preview img { width: 100%; height: 100%; object-fit: cover; display: block; }
.admin-item-preview-fallback { text-shadow: 0 5px 18px rgba(0,0,0,.16); }
.admin-card.is-inactive { opacity: .58; filter: grayscale(.25); }
.admin-card-top { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; }
.admin-card h3 { margin: 0; font-size: 24px; line-height: 1; letter-spacing: -0.05em; }
.admin-card p { margin: 10px 0 0; color: #64748b; font-weight: 800; line-height: 1.25; }
.admin-price { margin-top: 14px; font-size: 28px; font-weight: 1000; color: var(--primary-800); letter-spacing: -0.05em; }
.admin-chip {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 7px 10px;
  background: var(--primary-100);
  color: var(--primary-800);
  font-size: 13px;
  font-weight: 1000;
  white-space: nowrap;
}
.admin-card-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 18px; }
.admin-small-btn {
  border: 0;
  border-radius: 15px;
  padding: 11px 14px;
  color: white;
  background: #0f172a;
  font-weight: 1000;
  cursor: pointer;
}
.admin-small-btn.secondary { background: var(--primary-500); }
.admin-small-btn.gray { background: #64748b; }
.admin-small-btn.danger { background: #dc2626; }
.admin-small-btn.good { background: #16a34a; }
.admin-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.admin-modal {
  position: fixed;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 22px;
  background: rgba(15,23,42,.72);
  z-index: 100;
}
.admin-modal.is-open { display: flex; }
.admin-modal-card {
  width: min(780px, 100%);
  max-height: min(90vh, 920px);
  overflow: auto;
  background: white;
  border-radius: 34px;
  padding: 26px;
  box-shadow: 0 40px 90px rgba(0,0,0,.34);
  position: relative;
}
.admin-modal-card h2 { margin: 0 44px 20px 0; font-size: 36px; letter-spacing: -0.05em; }
.admin-modal-close {
  position: absolute;
  right: 18px;
  top: 18px;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 50%;
  background: #fee2e2;
  color: #991b1b;
  font-size: 30px;
  font-weight: 1000;
  cursor: pointer;
}
.admin-form { display: grid; gap: 14px; }
.admin-form label { display: grid; gap: 7px; font-weight: 1000; color: #334155; }
.admin-form input, .admin-form select, .admin-form textarea {
  width: 100%;
  box-sizing: border-box;
  border: 2px solid #e2e8f0;
  border-radius: 18px;
  padding: 15px 16px;
  font: inherit;
  font-weight: 800;
  outline: none;
}
.admin-form textarea { min-height: 110px; resize: vertical; }
.admin-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.admin-check-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 10px; }
.admin-check-grid label {
  display: flex;
  align-items: center;
  gap: 8px;
  border: 2px solid #e2e8f0;
  border-radius: 15px;
  padding: 11px;
  font-weight: 900;
}
.admin-form-actions { display: flex; justify-content: flex-end; gap: 12px; margin-top: 8px; }
.admin-toast {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 200;
  opacity: 0;
  transform: translateY(12px);
  transition: .2s ease;
  background: #0f172a;
  color: white;
  padding: 15px 18px;
  border-radius: 18px;
  font-weight: 1000;
  box-shadow: 0 22px 48px rgba(15,23,42,.25);
}
.admin-toast.is-showing { opacity: 1; transform: translateY(0); }
@media (max-width: 900px) {
  .admin-topbar { flex-direction: column; align-items: flex-start; }
  .admin-actions { width: 100%; justify-content: flex-start; }
  .admin-stats { grid-template-columns: repeat(2, 1fr); }
  .admin-panel-head { flex-direction: column; align-items: stretch; }
  .admin-primary { width: 100%; }
  .admin-two-col { grid-template-columns: 1fr; }
  .admin-form-row { grid-template-columns: 1fr; }
}
.admin-form input[type="file"] {
  background: var(--primary-50);
  border-style: dashed;
  cursor: pointer;
}
.admin-field-help {
  margin: -6px 0 2px;
  color: #64748b;
  font-size: 14px;
  font-weight: 850;
  line-height: 1.35;
}

.admin-form-preview {
  height: 190px;
  margin-bottom: 0;
}
.admin-upload-preview {
  height: 190px;
  border-radius: 24px;
  overflow: hidden;
  background: var(--primary-50);
  border: 3px solid var(--primary-200);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.45);
}
.admin-upload-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.admin-field-help.good {
  color: #15803d;
  background: #dcfce7;
  border-radius: 14px;
  padding: 10px 12px;
  margin-top: 8px;
}
.admin-primary:disabled,
.admin-small-btn:disabled {
  opacity: .6;
  cursor: wait;
}


.brand-mark img, .admin-logo img, .kitchen-mark img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;
  display: block;
}
.admin-settings-form { display: grid; gap: 18px; }
.settings-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; align-items: start; }
.settings-column { display: grid; gap: 18px; align-content: start; }
.settings-card {
  background: rgba(255,255,255,.94);
  border: 2px solid rgba(15,23,42,.08);
  border-radius: 28px;
  padding: 22px;
  box-shadow: 0 18px 44px rgba(15,23,42,.08);
  display: grid;
  gap: 14px;
  align-self: start;
}
.settings-card h3 { margin: 0; font-size: 26px; letter-spacing: -0.05em; }
.settings-card label { display: grid; gap: 8px; color: #334155; font-weight: 1000; }
.settings-card input,
.settings-card select,
.settings-card textarea {
  width: 100%;
  border: 2px solid #e2e8f0;
  border-radius: 18px;
  padding: 15px 16px;
  font: inherit;
  font-weight: 850;
  outline: none;
  background: white;
}
.settings-card textarea {
  min-height: 116px;
  resize: vertical;
  line-height: 1.3;
}
.settings-card input[type="color"] { height: 56px; padding: 6px; cursor: pointer; }
.settings-checks { display: grid; gap: 10px; }
.settings-checks label {
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--primary-50);
  border: 2px solid var(--primary-200);
  border-radius: 16px;
  padding: 12px;
}
.settings-checks input { width: 22px; height: 22px; }
.settings-note { margin: 0; color: #64748b; font-weight: 850; line-height: 1.35; }
.settings-card-payments {
  grid-column: 1 / -1;
}
.settings-card-payments .payments-fields-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  align-items: end;
}
.settings-card-payments .payments-fields-grid label {
  min-width: 0;
}
.settings-card-payments .payment-key-field {
  grid-column: span 2;
}
.settings-card-payments .payment-message {
  background: #f8fafc;
  border: 2px solid #e2e8f0;
  border-radius: 18px;
  padding: 14px 16px;
}
@media (max-width: 1180px) {
  .settings-card-payments .payments-fields-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .settings-card-payments .payment-key-field { grid-column: 1 / -1; }
}
@media (max-width: 720px) {
  .settings-card-payments .payments-fields-grid { grid-template-columns: 1fr; }
  .settings-card-payments .payment-key-field { grid-column: 1; }
}
.settings-actions { justify-content: flex-end; }
@media (max-width: 1100px) { .settings-grid { grid-template-columns: 1fr; } }


@media (min-width: 761px) and (max-width: 1180px) {
  .kitchen-header { padding: 18px 20px; }
  .kitchen-brand h1 { font-size: clamp(23px, 3vw, 32px); }
  .kitchen-mark { width: 60px; height: 60px; border-radius: 22px; font-size: 32px; }
  .kitchen-pill { padding: 13px 18px; font-size: 17px; }
  .column-header { padding: 16px 18px; }
  .column-header h2 { font-size: 30px; }
  .order-number { font-size: clamp(36px, 5vw, 52px); }
}


/* Kitchen ticket print view */
.print-status {
  border: 2px solid rgba(15,23,42,.08);
}
.print-status.queued { background: var(--primary-100); color: var(--primary-800); }
.print-status.printing { background: #fef3c7; color: #92400e; }
.print-status.printed { background: #dcfce7; color: #166534; }
.print-status.failed { background: #fee2e2; color: #991b1b; }
.print-status.not_queued { background: #e2e8f0; color: #334155; }

.ticket-body {
  min-height: 100vh;
  margin: 0;
  background: #e5e7eb;
  color: #111827;
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.ticket-page {
  min-height: 100vh;
  display: grid;
  place-items: start center;
  gap: 18px;
  padding: 24px;
}
.ticket-paper {
  width: min(420px, 100%);
  background: #ffffff;
  border: 2px solid #d1d5db;
  padding: 18px;
  box-shadow: 0 18px 50px rgba(0,0,0,.18);
}
.ticket-header {
  text-align: center;
  border-bottom: 3px dashed #111827;
  padding-bottom: 14px;
}
.ticket-restaurant {
  font-size: 22px;
  font-weight: 1000;
  letter-spacing: -.04em;
}
.ticket-label {
  margin-top: 5px;
  font-size: 13px;
  font-weight: 1000;
  letter-spacing: .12em;
}
.ticket-order-number {
  margin-top: 8px;
  font-size: 38px;
  line-height: 1;
  font-weight: 1000;
  letter-spacing: -.06em;
}
.ticket-meta-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin: 14px 0;
}
.ticket-meta-grid div {
  border: 2px solid #111827;
  border-radius: 10px;
  padding: 8px;
}
.ticket-meta-grid span,
.ticket-big-note span {
  display: block;
  font-size: 11px;
  text-transform: uppercase;
  font-weight: 1000;
  letter-spacing: .08em;
  color: #4b5563;
}
.ticket-meta-grid strong {
  display: block;
  margin-top: 3px;
  font-size: 15px;
  font-weight: 1000;
}
.ticket-divider {
  border-top: 3px dashed #111827;
  margin: 14px 0;
}
.ticket-item {
  padding: 12px 0;
  border-bottom: 2px solid #e5e7eb;
}
.ticket-item-main {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 22px;
  line-height: 1.08;
}
.ticket-item-main span {
  min-width: 44px;
  font-size: 25px;
  font-weight: 1000;
}
.ticket-item-main strong {
  font-weight: 1000;
}
.ticket-mod {
  margin: 6px 0 0 56px;
  font-size: 16px;
  font-weight: 900;
}
.ticket-note {
  margin: 8px 0 0 56px;
  background: var(--primary-100);
  border-radius: 8px;
  padding: 8px;
  font-weight: 900;
}
.ticket-big-note {
  margin-top: 14px;
  background: var(--primary-100);
  border: 2px solid #f59e0b;
  border-radius: 12px;
  padding: 12px;
}
.ticket-big-note strong {
  display: block;
  margin-top: 5px;
  font-size: 18px;
}
.ticket-totals div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 5px 0;
  font-size: 16px;
  font-weight: 900;
}
.ticket-totals .ticket-total {
  margin-top: 5px;
  border-top: 3px solid #111827;
  padding-top: 10px;
  font-size: 23px;
  font-weight: 1000;
}
.ticket-footer {
  margin-top: 14px;
  text-align: center;
  font-size: 12px;
  font-weight: 900;
  color: #4b5563;
}
.ticket-actions {
  display: flex;
  gap: 10px;
  width: min(420px, 100%);
}
.ticket-print-btn,
.ticket-close-btn {
  flex: 1;
  border: 0;
  border-radius: 18px;
  padding: 16px 18px;
  font-size: 17px;
  font-weight: 1000;
}
.ticket-print-btn { background: #111827; color: white; }
.ticket-close-btn { background: #ffffff; color: #111827; border: 2px solid #d1d5db; }

@media print {
  @page { size: 80mm auto; margin: 4mm; }
  body.ticket-body { background: white; }
  .ticket-page { display: block; min-height: 0; padding: 0; }
  .ticket-paper {
    width: 72mm;
    border: 0;
    box-shadow: none;
    padding: 0;
  }
  .no-print { display: none !important; }
}


/* Online Ordering Frontend */
.online-body {
  min-height: 100vh;
  background:
    radial-gradient(circle at 8% 0%, rgba(var(--primary-500-rgb),.2), transparent 32%),
    radial-gradient(circle at 90% 12%, rgba(239,68,68,.16), transparent 34%),
    var(--primary-50);
}
.online-shell {
  min-height: 100vh;
}
.online-hero {
  position: sticky;
  top: 0;
  z-index: 25;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  padding: 18px clamp(16px, 4vw, 44px);
  background: rgba(255,255,255,.88);
  border-bottom: 2px solid rgba(var(--primary-500-rgb),.2);
  backdrop-filter: blur(18px);
}
.online-brand {
  display: flex;
  align-items: center;
  gap: 16px;
  min-width: 0;
}
.online-logo {
  width: 62px;
  height: 62px;
  border-radius: 22px;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, var(--orange), var(--red));
  color: white;
  font-size: 34px;
  box-shadow: 0 14px 30px rgba(var(--primary-500-rgb),.25);
  overflow: hidden;
  flex: 0 0 auto;
}
.online-logo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.online-eyebrow {
  color: var(--primary-800);
  font-size: 13px;
  font-weight: 1000;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.online-brand h1 {
  margin: 1px 0 0;
  font-size: clamp(28px, 4vw, 48px);
  line-height: .95;
  font-weight: 1000;
  letter-spacing: -.055em;
}
.online-brand p {
  margin: 6px 0 0;
  color: var(--muted);
  font-size: clamp(14px, 1.4vw, 18px);
  font-weight: 800;
}
.online-cart-button {
  border: 0;
  border-radius: 999px;
  padding: 10px 14px;
  min-width: 84px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  background: #111827;
  color: white;
  box-shadow: 0 14px 30px rgba(17,24,39,.18);
}
.online-cart-button span {
  font-size: 24px;
}
.online-cart-button strong {
  min-width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: white;
  color: #111827;
  font-weight: 1000;
}
.online-layout {
  max-width: 1500px;
  margin: 0 auto;
  padding: 24px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 380px;
  gap: 24px;
}
.online-menu-area {
  min-width: 0;
}
.online-category-tabs {
  position: sticky;
  top: var(--online-category-sticky-top, 100px);
  z-index: 18;
  display: flex;
  gap: 10px;
  overflow-x: auto;
  padding: 0 0 14px;
  scrollbar-width: none;
}
.online-category-tabs::-webkit-scrollbar { display: none; }
.online-category-tab {
  flex: 0 0 auto;
  border: 2px solid rgba(254, 215, 170, .92);
  border-radius: 999px;
  padding: 11px 16px;
  background: rgba(255,255,255,.96);
  color: var(--primary-800);
  font-size: 16px;
  font-weight: 1000;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
  box-shadow: 0 10px 22px rgba(var(--primary-600-rgb),.07);
}
.online-category-tab span {
  width: 24px;
  height: 24px;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  background: var(--primary-50);
}
.online-category-tab.active {
  background: linear-gradient(135deg, var(--orange), var(--red));
  color: white;
  border-color: rgba(255,255,255,.84);
}
.online-section-title {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 6px 0 18px;
  font-size: clamp(30px, 4vw, 46px);
  line-height: 1;
  font-weight: 1000;
  letter-spacing: -.055em;
}
.online-product-list {
  display: grid;
  gap: 16px;
}
.online-product-card {
  width: 100%;
  border: 3px solid rgba(255,255,255,.9);
  border-radius: 30px;
  padding: 14px;
  background: rgba(255,255,255,.96);
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  gap: 16px;
  text-align: left;
  box-shadow: 0 18px 38px rgba(17,24,39,.09);
}
.online-product-card:active {
  transform: scale(.99);
}
.online-product-image,
.online-item-modal-image {
  border-radius: 24px;
  min-height: 132px;
  background:
    radial-gradient(circle at 22% 18%, rgba(255,255,255,.82), transparent 24%),
    linear-gradient(135deg, var(--primary-400), var(--primary-600));
  display: grid;
  place-items: center;
  overflow: hidden;
  color: white;
  font-size: 44px;
  font-weight: 1000;
}
.online-product-image img,
.online-item-modal-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.online-product-info {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.online-product-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.online-product-top h3 {
  margin: 0;
  font-size: clamp(22px, 2.3vw, 31px);
  line-height: 1.02;
  font-weight: 1000;
  letter-spacing: -.045em;
  color: #0f172a;
}
.online-product-top strong {
  color: var(--primary-800);
  font-size: clamp(22px, 2vw, 30px);
  font-weight: 1000;
  white-space: nowrap;
}
.online-product-info p {
  margin: 0;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.35;
  font-weight: 750;
}
.online-product-bottom {
  margin-top: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.online-product-badge {
  background: var(--primary-100);
  color: var(--primary-800);
  border-radius: 999px;
  padding: 7px 10px;
  font-size: 13px;
  font-weight: 1000;
}
.online-add-link {
  background: #111827;
  color: white;
  border-radius: 999px;
  padding: 11px 16px;
  font-weight: 1000;
  font-size: 16px;
}
.online-cart-panel {
  position: sticky;
  top: 116px;
  height: calc(100vh - 140px);
  background: rgba(255,255,255,.96);
  border: 3px solid rgba(255,255,255,.9);
  border-radius: 32px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 22px 50px rgba(17,24,39,.13);
}
.online-cart-head {
  padding: 22px;
  border-bottom: 2px solid var(--primary-100);
}
.online-cart-head h2 {
  margin: 0;
  font-size: 32px;
  line-height: 1;
  font-weight: 1000;
  letter-spacing: -.045em;
}
.online-cart-head p {
  margin: 5px 0 0;
  color: var(--muted);
  font-weight: 900;
}
.online-cart-items {
  flex: 1;
  overflow-y: auto;
  padding: 16px;
}
.online-cart-item {
  background: var(--primary-50);
  border: 2px solid var(--primary-200);
  border-radius: 24px;
  padding: 14px;
  margin-bottom: 12px;
}
.online-cart-footer {
  border-top: 2px solid var(--primary-100);
  padding: 20px;
  background: rgba(255,247,237,.72);
}
.online-empty {
  min-height: 150px;
  display: grid;
  place-items: center;
  text-align: center;
  color: var(--primary-800);
  font-size: 20px;
  font-weight: 1000;
  background: rgba(255,255,255,.7);
  border: 2px dashed var(--primary-200);
  border-radius: 26px;
  padding: 22px;
}
.online-cart-empty {
  min-height: 180px;
}
.online-item-modal-card {
  width: min(860px, calc(100vw - 24px));
  max-height: calc(100dvh - 24px);
  overflow: hidden;
  padding: 0;
  display: flex;
  flex-direction: column;
}
.online-item-modal-scroll {
  min-height: 0;
  overflow-y: auto;
  padding: 24px 30px 0;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}
.online-item-modal-card .modal-actions {
  position: sticky;
  bottom: 0;
  z-index: 5;
  margin: 0;
  padding: 16px 30px 24px;
  background: linear-gradient(180deg, rgba(255,255,255,.82), #ffffff 28%);
  border-top: 2px solid var(--primary-100);
}
.online-item-modal-image {
  height: clamp(150px, 24dvh, 240px);
  min-height: 150px;
  margin-bottom: 18px;
  flex-shrink: 0;
}
@media (max-width: 980px) {
  .online-layout {
    grid-template-columns: 1fr;
    padding: 16px;
  }
  .online-cart-panel {
    display: none;
  }
  .online-category-tabs {
    top: 88px;
  }
}
@media (max-width: 640px) {
  .online-hero {
    padding: 14px;
  }
  .online-logo {
    width: 52px;
    height: 52px;
    border-radius: 18px;
    font-size: 28px;
  }
  .online-brand p {
    display: none;
  }
  .online-product-card {
    grid-template-columns: 112px minmax(0, 1fr);
    gap: 12px;
    border-radius: 24px;
    padding: 12px;
  }
  .online-product-image {
    min-height: 112px;
    border-radius: 20px;
  }
  .online-product-info p {
    display: block;
    grid-area: desc;
    margin: -2px 0 0;
    font-size: 13px;
    line-height: 1.25;
    color: var(--muted);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .online-product-info p:empty {
    display: none;
  }
  .online-product-top {
    display: block;
  }
  .online-product-top h3 {
    font-size: 21px;
    color: #0f172a;
  }
  .online-product-top strong {
    display: block;
    margin-top: 5px;
    font-size: 22px;
  }
  .online-add-link {
    padding: 9px 13px;
  }
  .online-product-badge {
    display: none;
  }
}


/* Online ordering modal containment fix */
#onlineItemModal {
  align-items: center;
  padding: 12px;
}
#onlineItemModal .mod-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
#onlineItemModal .mod-option {
  min-width: 0;
  padding: 15px 18px;
}
#onlineItemModal .mod-option span {
  min-width: 0;
}
@media (max-width: 760px) {
  .online-item-modal-card {
    width: calc(100vw - 16px);
    max-height: calc(100dvh - 16px);
    border-radius: 28px;
  }
  .online-item-modal-scroll {
    padding: 18px 18px 0;
  }
  .online-item-modal-card .modal-actions {
    grid-template-columns: 1fr;
    padding: 14px 18px 18px;
  }
  #onlineItemModal .mod-grid {
    grid-template-columns: 1fr;
  }
  #onlineItemModal .mod-option {
    padding: 15px 16px;
  }
  .online-item-modal-image {
    height: 150px;
    min-height: 150px;
    border-radius: 22px;
  }
}


/* Kitchen packed masonry order layout */
.kitchen-column.is-active {
  display: flex;
}
.order-stack {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)) !important;
  grid-auto-rows: var(--masonry-row) !important;
  align-items: start !important;
  align-content: start !important;
}
.order-stack .kitchen-order-card {
  display: block !important;
  height: auto !important;
  align-self: start !important;
}
@media (min-width: 1180px) {
  .order-stack {
    grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)) !important;
  }
}
@media (max-width: 760px) {
  .order-stack {
    grid-template-columns: 1fr !important;
  }
}


/* Admin Accounting */
.accounting-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 18px;
}
.accounting-ranges {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.accounting-range {
  border: 0;
  border-radius: 18px;
  padding: 14px 18px;
  background: white;
  color: var(--primary-800);
  font-size: 17px;
  font-weight: 1000;
  box-shadow: 0 12px 26px rgba(15,23,42,.08);
}
.accounting-range.is-active {
  background: linear-gradient(135deg, #ff6b1a, var(--primary-600));
  color: white;
}
.accounting-custom {
  display: none;
  align-items: flex-end;
  gap: 10px;
  flex-wrap: wrap;
  background: rgba(255,255,255,.9);
  border: 2px solid rgba(var(--primary-500-rgb),.18);
  border-radius: 22px;
  padding: 12px;
}
.accounting-custom.is-showing { display: flex; }
.accounting-custom label {
  display: grid;
  gap: 5px;
  color: #64748b;
  font-size: 13px;
  font-weight: 1000;
}
.accounting-custom input {
  border: 2px solid var(--primary-200);
  border-radius: 14px;
  padding: 10px 12px;
  font-weight: 900;
  color: #0f172a;
  background: var(--primary-50);
}
.accounting-stats {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 18px;
}
.accounting-stats article {
  background: rgba(255,255,255,.92);
  border: 2px solid rgba(var(--primary-500-rgb),.18);
  border-radius: 26px;
  padding: 18px;
  box-shadow: 0 18px 40px rgba(15,23,42,.08);
}
.accounting-stats span {
  display: block;
  color: #64748b;
  font-size: 14px;
  font-weight: 1000;
}
.accounting-stats strong {
  display: block;
  margin-top: 8px;
  color: #0f172a;
  font-size: clamp(25px, 2.3vw, 38px);
  line-height: .95;
  font-weight: 1000;
  letter-spacing: -.055em;
}
.accounting-two-col {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 18px;
}
.accounting-card {
  background: rgba(255,255,255,.92);
  border: 2px solid rgba(var(--primary-500-rgb),.18);
  border-radius: 28px;
  padding: 20px;
  box-shadow: 0 18px 40px rgba(15,23,42,.08);
}
.accounting-card h3 {
  margin: 0 0 14px;
  font-size: 25px;
  line-height: 1;
  font-weight: 1000;
  letter-spacing: -.04em;
}
.accounting-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.accounting-card-head span {
  background: var(--primary-50);
  color: var(--primary-800);
  border: 2px solid var(--primary-200);
  border-radius: 999px;
  padding: 8px 12px;
  font-weight: 1000;
}
.accounting-mini-list {
  display: grid;
  gap: 10px;
}
.accounting-mini-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  border: 2px solid var(--primary-100);
  background: var(--primary-50);
  border-radius: 18px;
  padding: 12px 14px;
}
.accounting-mini-row span,
.accounting-mini-row strong {
  font-weight: 1000;
}
.accounting-mini-row span { color: #0f172a; }
.accounting-mini-row strong { color: var(--primary-800); text-align: right; }
.accounting-empty {
  color: #64748b;
  font-weight: 900;
  padding: 14px;
  background: #f8fafc;
  border-radius: 16px;
}
.accounting-table-wrap {
  overflow-x: auto;
  border-radius: 20px;
  border: 2px solid var(--primary-100);
}
.accounting-table {
  width: 100%;
  min-width: 850px;
  border-collapse: collapse;
  background: white;
}
.accounting-table th,
.accounting-table td {
  padding: 13px 14px;
  text-align: left;
  border-bottom: 1px solid var(--primary-100);
  font-weight: 850;
}
.accounting-table th {
  background: var(--primary-50);
  color: var(--primary-800);
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: .06em;
  font-weight: 1000;
}
.accounting-table td {
  color: #0f172a;
}
.acct-pill {
  display: inline-flex;
  border-radius: 999px;
  padding: 6px 10px;
  background: #e2e8f0;
  color: #334155;
  font-size: 13px;
  font-weight: 1000;
}
.acct-pill.payment-pending { background: var(--primary-100); color: var(--primary-800); }
.acct-pill.payment-paid { background: #dcfce7; color: #166534; }
.acct-pill.payment-failed { background: #fee2e2; color: #991b1b; }
.acct-pill.payment-refunded { background: #dbeafe; color: #1d4ed8; }

@media (max-width: 1180px) {
  .accounting-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .accounting-stats,
  .accounting-two-col {
    grid-template-columns: 1fr;
  }
  .accounting-toolbar {
    align-items: stretch;
  }
  .accounting-ranges,
  .accounting-custom {
    width: 100%;
  }
  .accounting-range {
    flex: 1 1 auto;
  }
}


/* Lobby Order Status Screen */
.lobby-body {
  min-height: 100vh;
  margin: 0;
  color: #f8fafc;
  background:
    radial-gradient(circle at top left, rgba(var(--primary-500-rgb),.28), transparent 34%),
    radial-gradient(circle at bottom right, rgba(34,197,94,.26), transparent 34%),
    #0f172a;
  overflow: hidden;
}
.lobby-shell {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
.lobby-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  padding: 28px 34px;
  background: rgba(15,23,42,.86);
  border-bottom: 2px solid rgba(255,255,255,.1);
  backdrop-filter: blur(18px);
}
.lobby-brand {
  display: flex;
  align-items: center;
  gap: 18px;
  min-width: 0;
}
.lobby-logo {
  width: 76px;
  height: 76px;
  border-radius: 26px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  background: linear-gradient(135deg, var(--orange), var(--red));
  color: white;
  font-size: 40px;
  box-shadow: 0 16px 40px rgba(var(--primary-500-rgb),.32);
  overflow: hidden;
}
.lobby-logo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.lobby-brand h1 {
  margin: 0;
  font-size: clamp(38px, 5vw, 76px);
  line-height: .9;
  font-weight: 1000;
  letter-spacing: -.06em;
}
.lobby-brand p {
  margin: 8px 0 0;
  color: #cbd5e1;
  font-size: clamp(18px, 1.8vw, 26px);
  font-weight: 900;
}
.lobby-time {
  text-align: right;
  flex: 0 0 auto;
}
.lobby-time span {
  display: block;
  font-size: clamp(34px, 4vw, 62px);
  line-height: .95;
  font-weight: 1000;
  letter-spacing: -.06em;
}
.lobby-time strong {
  display: block;
  margin-top: 8px;
  color: #cbd5e1;
  font-size: clamp(14px, 1.4vw, 20px);
}
.lobby-board {
  flex: 1;
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
  gap: 22px;
  padding: 24px;
}
.lobby-column {
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: 34px;
  background: rgba(255,255,255,.08);
  border: 2px solid rgba(255,255,255,.12);
  box-shadow: 0 22px 60px rgba(0,0,0,.22);
}
.lobby-column-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 22px 26px;
  border-bottom: 2px solid rgba(255,255,255,.12);
}
.lobby-column-head h2 {
  margin: 0;
  font-size: clamp(32px, 4vw, 62px);
  line-height: .95;
  font-weight: 1000;
  letter-spacing: -.055em;
}
.lobby-column-head span {
  min-width: 68px;
  height: 68px;
  display: grid;
  place-items: center;
  border-radius: 22px;
  background: #f8fafc;
  color: #0f172a;
  font-size: 36px;
  font-weight: 1000;
}
.lobby-preparing .lobby-column-head {
  background: linear-gradient(135deg, #eab308, var(--primary-500));
}
.lobby-ready .lobby-column-head {
  background: linear-gradient(135deg, #22c55e, #16a34a);
}
.lobby-orders {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  padding: 20px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  align-content: start;
  gap: 18px;
}
.lobby-order {
  border-radius: 28px;
  padding: 20px;
  background: #f8fafc;
  color: #0f172a;
  border: 4px solid transparent;
  box-shadow: 0 18px 38px rgba(0,0,0,.22);
}
.lobby-customer-name {
  font-size: clamp(30px, 3.1vw, 54px);
  line-height: .92;
  font-weight: 1000;
  letter-spacing: -.06em;
  word-break: break-word;
}
.lobby-order.is-preparing {
  border-color: #facc15;
}
.lobby-order.is-ready {
  border-color: #22c55e;
  background: #ecfdf5;
}
.lobby-order-number {
  margin-top: 10px;
  font-size: clamp(24px, 2.6vw, 42px);
  line-height: .95;
  font-weight: 1000;
  letter-spacing: -.06em;
  word-break: break-word;
  color: #334155;
}
.lobby-order-meta {
  margin-top: 14px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.lobby-order-meta span {
  background: #e2e8f0;
  color: #334155;
  border-radius: 999px;
  padding: 8px 12px;
  font-size: clamp(13px, 1.2vw, 17px);
  font-weight: 1000;
}
.lobby-empty {
  grid-column: 1 / -1;
  min-height: 220px;
  display: grid;
  place-items: center;
  text-align: center;
  border: 2px dashed rgba(255,255,255,.18);
  border-radius: 28px;
  color: #cbd5e1;
  font-size: clamp(24px, 3vw, 40px);
  font-weight: 1000;
}
.lobby-ready.is-flashing {
  animation: lobbyFlash 1.6s ease;
}
@keyframes lobbyFlash {
  0%, 100% { box-shadow: 0 22px 60px rgba(0,0,0,.22); }
  25%, 75% { box-shadow: 0 0 0 8px rgba(34,197,94,.34), 0 30px 80px rgba(34,197,94,.28); }
}
.lobby-footer {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding: 16px 28px 22px;
  color: #cbd5e1;
  font-size: clamp(14px, 1.4vw, 20px);
  font-weight: 900;
}
@media (max-width: 900px) {
  .lobby-body { overflow: auto; }
  .lobby-header { align-items: flex-start; flex-direction: column; padding: 20px; }
  .lobby-time { text-align: left; }
  .lobby-board { grid-template-columns: 1fr; padding: 16px; }
  .lobby-column { min-height: 360px; }
  .lobby-footer { flex-direction: column; padding: 14px 18px 20px; }
}


/* Lobby card emphasis tweak */
@media (max-width: 900px) {
  .lobby-customer-name {
    font-size: clamp(28px, 6vw, 46px);
  }
  .lobby-order-number {
    font-size: clamp(22px, 5vw, 34px);
  }
}


/* Kitchen card name-first layout */
@media (max-width: 900px) {
  .kitchen-customer-name {
    font-size: clamp(28px, 5vw, 42px);
  }
  .order-number {
    font-size: clamp(21px, 4vw, 30px);
  }
  .order-card-title-row {
    gap: 8px;
  }
  .order-card-title-row .kitchen-customer-name {
    font-size: clamp(20px, 4.6vw, 26px);
  }
  .order-card-title-row .order-number {
    font-size: clamp(17px, 3.8vw, 22px);
  }
}


/* Packed kitchen masonry cards - final override */
.order-stack {
  --masonry-row: 8px;
  --masonry-gap: 16px;
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)) !important;
  grid-auto-rows: var(--masonry-row) !important;
  align-items: start !important;
  align-content: start !important;
  gap: var(--masonry-gap) !important;
}
.order-stack .kitchen-order-card {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  align-self: start !important;
  margin: 0 !important;
}
@media (min-width: 1180px) {
  .order-stack {
    grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)) !important;
  }
}
@media (max-width: 760px) {
  .order-stack {
    grid-template-columns: 1fr !important;
  }
}


/* Kitchen compact header update */
.kitchen-actions {
  flex: 0 0 auto;
}
.kitchen-actions .kitchen-pill {
  white-space: nowrap;
}
@media (min-width: 761px) {
  .kitchen-actions,
  .kitchen-actions .kitchen-pill {
    width: auto;
  }
}

/* Kitchen Active / Scheduled / Completed flow */
.kitchen-order-card.card-active { border-color: var(--primary-400); }
.kitchen-order-card.card-scheduled { border-color: #facc15; }
.kitchen-order-card.card-completed { border-color: #22c55e; opacity: .94; }
.kitchen-action-btn.done { background: linear-gradient(135deg, #22c55e, #16a34a); }

.completed-tray { display: none !important; }


/* Scheduled online ordering */
.online-schedule-toggle {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 8px 0 14px;
}
.online-schedule-toggle label {
  border: 3px solid var(--primary-200);
  border-radius: 22px;
  padding: 15px 16px;
  background: var(--primary-50);
  color: var(--primary-800);
  font-size: 18px;
  font-weight: 1000;
  display: flex;
  align-items: center;
  gap: 10px;
}
.online-schedule-toggle input {
  width: 22px;
  height: 22px;
  accent-color: var(--orange);
}
.online-scheduled-fields {
  display: none;
  border: 3px solid var(--primary-200);
  border-radius: 24px;
  padding: 14px;
  background: #fffbeb;
  margin-bottom: 14px;
}
.online-scheduled-fields.is-showing {
  display: block;
}
.online-schedule-help {
  margin: 8px 0 0;
  font-size: 15px;
}
@media (max-width: 640px) {
  .online-schedule-toggle {
    grid-template-columns: 1fr;
  }
}


/* Kitchen prep time modal */
.kitchen-modal {
  position: fixed;
  inset: 0;
  z-index: 120;
  display: none;
  place-items: center;
  padding: 18px;
  background: rgba(2, 6, 23, .72);
  backdrop-filter: blur(12px);
}
.kitchen-modal.is-open {
  display: grid;
}
.kitchen-modal-card {
  position: relative;
  width: min(520px, 100%);
  background: #f8fafc;
  color: #0f172a;
  border-radius: 32px;
  padding: 28px;
  box-shadow: 0 30px 90px rgba(0,0,0,.45);
}
.kitchen-modal-close {
  position: absolute;
  top: 14px;
  right: 14px;
  border: 0;
  width: 46px;
  height: 46px;
  border-radius: 999px;
  background: #0f172a;
  color: white;
  font-size: 30px;
  line-height: 1;
  font-weight: 1000;
}
.kitchen-modal-card h2 {
  margin: 0;
  font-size: 38px;
  line-height: .95;
  letter-spacing: -.055em;
  font-weight: 1000;
}
.kitchen-modal-card p {
  margin: 12px 0 18px;
  color: #475569;
  font-size: 17px;
  line-height: 1.35;
  font-weight: 850;
}
.kitchen-modal-label {
  display: block;
  margin-bottom: 8px;
  color: #334155;
  font-size: 15px;
  font-weight: 1000;
}
.kitchen-modal-input {
  width: 100%;
  border: 3px solid var(--primary-200);
  border-radius: 22px;
  padding: 18px 20px;
  background: var(--primary-50);
  color: #0f172a;
  font-size: 34px;
  font-weight: 1000;
}
.kitchen-modal-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 18px;
}
@media (max-width: 760px) {
  .kitchen-modal-actions {
    grid-template-columns: 1fr;
  }
}


/* Scheduled order action confirmation */
.kitchen-order-card.card-scheduled .kitchen-card-actions {
  grid-template-columns: 1fr 1fr;
}


/* Kitchen local printer settings */
.kitchen-pill.is-warning {
  border-color: rgba(250, 204, 21, .55);
  color: var(--primary-100);
}
.kitchen-printer-modal-card {
  width: min(620px, 100%);
}
.kitchen-modal-select {
  appearance: none;
}
.kitchen-local-checks {
  margin-top: 16px;
  margin-bottom: 14px;
  color: #0f172a;
}
.kitchen-local-checks label {
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--primary-50);
  border: 3px solid var(--primary-200);
  border-radius: 20px;
  padding: 14px 16px;
  font-size: 17px;
  font-weight: 1000;
}
.kitchen-local-checks input {
  width: 24px;
  height: 24px;
  accent-color: var(--primary-500);
}
.printer-settings-preview {
  margin-top: 12px;
  border: 3px dashed var(--primary-200);
  border-radius: 20px;
  padding: 14px 16px;
  background: #fffbeb;
  color: var(--primary-800);
  font-size: 16px;
  font-weight: 1000;
}
.printer-modal-actions {
  grid-template-columns: 1fr 1fr 1fr;
}
@media (max-width: 760px) {
  .printer-modal-actions {
    grid-template-columns: 1fr;
  }
}


/* Kiosk secret settings */
.kiosk-header-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}
.kiosk-secret-settings {
  display: none !important;
  width: 46px;
  height: 46px;
  border: 0;
  border-radius: 999px;
  background: rgba(17, 24, 39, .045);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  opacity: .38;
  transition: opacity .16s ease, background .16s ease, transform .16s ease;
}
.kiosk-secret-settings span {
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: rgba(17, 24, 39, .62);
}
.kiosk-secret-settings:active {
  opacity: .8;
  transform: scale(.96);
}
.kiosk-secret-settings:hover {
  opacity: .65;
  background: rgba(17, 24, 39, .075);
}
.kiosk-settings-card {
  width: min(760px, 100%);
}
.kiosk-settings-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin: 18px 0;
}
.kiosk-settings-link {
  display: block;
  text-decoration: none;
  border: 3px solid var(--primary-200);
  background: var(--primary-50);
  border-radius: 24px;
  padding: 18px;
  color: #111827;
}
.kiosk-settings-link strong {
  display: block;
  font-size: 24px;
  line-height: 1;
  font-weight: 1000;
  letter-spacing: -.04em;
}
.kiosk-settings-link span {
  display: block;
  margin-top: 8px;
  color: #6b7280;
  font-size: 15px;
  line-height: 1.25;
  font-weight: 850;
}
.kiosk-secret-note {
  border: 2px dashed var(--primary-200);
  background: #fffbeb;
  color: var(--primary-800);
  border-radius: 20px;
  padding: 14px 16px;
  font-size: 15px;
  font-weight: 1000;
  margin-bottom: 16px;
}
@media (max-width: 760px) {
  .kiosk-header-actions {
    gap: 8px;
  }
  .kiosk-secret-settings {
    width: 40px;
    height: 40px;
  }
  .kiosk-secret-settings span {
    width: 5px;
    height: 5px;
  }
  .kiosk-settings-grid {
    grid-template-columns: 1fr;
  }
}


/* Kiosk payment terminal settings */
.kiosk-terminal-settings {
  display: grid;
  gap: 10px;
  margin: 18px 0;
}
.kiosk-terminal-settings .big-input,
.kiosk-terminal-settings .order-type-select {
  margin-bottom: 4px;
}
.kiosk-terminal-preview {
  margin-top: 8px;
  border: 3px dashed var(--primary-200);
  border-radius: 22px;
  padding: 15px 16px;
  background: #fffbeb;
  color: var(--primary-800);
  font-size: 15px;
  font-weight: 1000;
  line-height: 1.35;
}


/* Kitchen Menu Control */
.kitchen-menu-control {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 18px;
}
.kitchen-menu-control-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
}
.kitchen-menu-control-head h2 {
  margin: 0;
  font-size: clamp(30px, 4vw, 48px);
  line-height: .95;
  font-weight: 1000;
  letter-spacing: -.055em;
}
.kitchen-menu-control-head p {
  margin: 7px 0 0;
  color: #cbd5e1;
  font-size: 16px;
  font-weight: 850;
}
.kitchen-menu-control-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
  gap: 16px;
  align-items: start;
}
.menu-control-card {
  background: #f8fafc;
  color: #0f172a;
  border: 4px solid #22c55e;
  border-radius: 28px;
  padding: 18px;
  box-shadow: 0 18px 38px rgba(0,0,0,.22);
}
.menu-control-card.is-out {
  border-color: var(--primary-600);
  background: #fff7f7;
}
.menu-control-main {
  display: block;
  border-bottom: 2px solid #e2e8f0;
  padding-bottom: 12px;
}
.menu-control-category {
  color: #64748b;
  font-size: 14px;
  font-weight: 1000;
}
.menu-control-card h3 {
  margin: 0;
  font-size: clamp(22px, 2.1vw, 32px);
  line-height: .95;
  font-weight: 1000;
  letter-spacing: -.055em;
}
.menu-control-card p {
  margin: 9px 0 0;
  color: #475569;
  font-size: 15px;
  font-weight: 850;
}
.menu-control-status {
  flex: 0 0 auto;
  border-radius: 999px;
  padding: 8px 12px;
  background: #dcfce7;
  color: #166534;
  font-size: 14px;
  font-weight: 1000;
}
.menu-control-card.is-out .menu-control-status {
  background: #fee2e2;
  color: #991b1b;
}
.menu-control-actions {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  margin-top: 14px;
}
@media (min-width: 1050px) {
  .menu-control-actions {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 760px) {
  .kitchen-status-tabs {
    grid-template-columns: 1fr;
  }
  .kitchen-menu-control-head {
    display: block;
  }
  .kitchen-menu-control-head .kitchen-small-btn {
    width: 100%;
    margin-top: 12px;
  }
  .kitchen-menu-control-list {
    grid-template-columns: 1fr;
  }
}


/* POS Cashier */
.pos-body {
  min-height: 100vh;
  margin: 0;
  background:
    radial-gradient(circle at 8% 0%, rgba(var(--primary-500-rgb),.18), transparent 33%),
    radial-gradient(circle at 95% 15%, rgba(34,197,94,.16), transparent 33%),
    var(--primary-50);
  color: #0f172a;
}
.pos-shell {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
.pos-header {
  position: sticky;
  top: 0;
  z-index: 30;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 16px 22px;
  background: rgba(255,255,255,.9);
  border-bottom: 3px solid rgba(var(--primary-500-rgb),.22);
  backdrop-filter: blur(18px);
}
.pos-brand {
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
}
.pos-mark {
  width: 58px;
  height: 58px;
  border-radius: 21px;
  background: linear-gradient(135deg, var(--orange), var(--red));
  color: white;
  display: grid;
  place-items: center;
  font-size: 31px;
  box-shadow: 0 14px 30px rgba(var(--primary-500-rgb),.22);
  overflow: hidden;
}
.pos-mark img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.pos-brand h1 {
  margin: 0;
  font-size: clamp(25px, 3vw, 40px);
  line-height: .95;
  font-weight: 1000;
  letter-spacing: -.055em;
}
.pos-brand p {
  margin: 5px 0 0;
  color: #64748b;
  font-size: 15px;
  font-weight: 850;
}
.pos-header-actions {
  display: flex;
  gap: 10px;
  align-items: center;
}
.pos-pill {
  border: 2px solid var(--primary-200);
  background: #ffffff;
  color: var(--primary-800);
  border-radius: 999px;
  padding: 13px 16px;
  font-size: 16px;
  font-weight: 1000;
  box-shadow: 0 10px 22px rgba(var(--primary-600-rgb),.07);
}
.pos-tabs {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
  padding: 14px 18px 0;
}
.pos-tab {
  border: 2px solid rgba(254,215,170,.92);
  border-radius: 22px;
  min-height: 62px;
  padding: 9px 10px;
  background: rgba(255,255,255,.9);
  color: var(--primary-800);
  font-size: clamp(14px, 1.35vw, 20px);
  font-weight: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.pos-tab span {
  min-width: 32px;
  height: 32px;
  border-radius: 12px;
  display: inline-grid;
  place-items: center;
  background: var(--primary-50);
  color: var(--primary-800);
}
.pos-tab.is-active {
  background: linear-gradient(135deg, var(--orange), var(--red));
  color: white;
  border-color: rgba(255,255,255,.78);
}
.pos-tab.is-active span {
  background: rgba(255,255,255,.23);
  color: white;
}
.pos-main {
  flex: 1;
  min-height: 0;
  padding: 18px;
}
.pos-panel {
  display: none;
}
.pos-panel.is-active {
  display: block;
}
.pos-cashier-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 390px;
  gap: 18px;
  align-items: start;
}
.pos-menu-side {
  min-width: 0;
}
.pos-category-tabs {
  display: flex;
  gap: 9px;
  overflow-x: auto;
  padding: 0 0 12px;
  scrollbar-width: none;
}
.pos-category-tabs::-webkit-scrollbar { display: none; }
.pos-category-tab {
  flex: 0 0 auto;
  border: 2px solid var(--primary-200);
  background: #fff;
  color: var(--primary-800);
  border-radius: 999px;
  padding: 10px 14px;
  font-size: 15px;
  font-weight: 1000;
}
.pos-category-tab.active {
  background: linear-gradient(135deg, var(--orange), var(--red));
  color: white;
}
.pos-product-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
  gap: 14px;
}
.pos-product-card {
  border: 3px solid rgba(255,255,255,.88);
  background: rgba(255,255,255,.95);
  border-radius: 26px;
  padding: 12px;
  text-align: left;
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 12px;
  min-height: 132px;
  box-shadow: 0 16px 34px rgba(17,24,39,.09);
}
.pos-product-image {
  border-radius: 20px;
  background: linear-gradient(135deg, var(--primary-400), var(--primary-600));
  color: white;
  display: grid;
  place-items: center;
  font-size: 26px;
  font-weight: 1000;
  overflow: hidden;
}
.pos-product-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.pos-product-info {
  min-width: 0;
}
.pos-product-info h3 {
  margin: 0;
  font-size: 21px;
  line-height: 1;
  font-weight: 1000;
  letter-spacing: -.04em;
}
.pos-product-info p {
  margin: 6px 0 10px;
  color: #64748b;
  font-size: 13px;
  line-height: 1.2;
  font-weight: 750;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.pos-product-info div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.pos-product-info strong {
  color: var(--primary-800);
  font-size: 19px;
  font-weight: 1000;
}
.pos-product-info span {
  background: #111827;
  color: white;
  border-radius: 999px;
  padding: 8px 11px;
  font-size: 13px;
  font-weight: 1000;
}
.pos-cart-side {
  position: sticky;
  top: 148px;
  height: calc(100vh - 170px);
  background: rgba(255,255,255,.95);
  border-radius: 30px;
  border: 3px solid rgba(255,255,255,.9);
  box-shadow: 0 22px 50px rgba(17,24,39,.12);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.pos-cart-head {
  padding: 18px 20px;
  border-bottom: 2px solid var(--primary-100);
}
.pos-cart-head h2 {
  margin: 0;
  font-size: 31px;
  line-height: 1;
  font-weight: 1000;
  letter-spacing: -.045em;
}
.pos-cart-head p {
  margin: 5px 0 0;
  color: #64748b;
  font-weight: 850;
}
.pos-cart-items {
  flex: 1;
  overflow-y: auto;
  padding: 14px;
}
.pos-cart-item {
  background: var(--primary-50);
  border: 2px solid var(--primary-200);
  border-radius: 22px;
  padding: 13px;
  margin-bottom: 10px;
}
.pos-cart-total {
  border-top: 2px solid var(--primary-100);
  padding: 16px;
  background: rgba(255,247,237,.74);
  overflow-y: auto;
  max-height: 52vh;
}
.pos-notes {
  min-height: 78px;
}
.pos-pay-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  margin-top: 12px;
}
.pos-order-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
  gap: 16px;
  align-items: start;
}
.pos-order-card {
  background: #f8fafc;
  color: #0f172a;
  border-radius: 28px;
  padding: 18px;
  box-shadow: 0 18px 38px rgba(0,0,0,.14);
  border: 4px solid transparent;
}
.pos-order-card.card-active { border-color: var(--primary-400); }
.pos-order-card.card-scheduled { border-color: #facc15; }
.pos-order-card.card-completed { border-color: #22c55e; opacity: .94; }
.pos-settings-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}
.pos-settings-card {
  background: rgba(255,255,255,.95);
  border: 3px solid rgba(255,255,255,.9);
  border-radius: 30px;
  padding: 22px;
  box-shadow: 0 18px 40px rgba(17,24,39,.09);
}
.pos-settings-card h2 {
  margin: 0;
  font-size: 34px;
  line-height: 1;
  font-weight: 1000;
  letter-spacing: -.05em;
}
.pos-settings-card p {
  margin: 8px 0 16px;
  color: #64748b;
  font-size: 16px;
  font-weight: 850;
}
.pos-settings-card .primary-btn {
  width: 100%;
  margin-top: 14px;
}
.pos-settings-checks {
  margin-top: 12px;
  color: #0f172a;
}
.pos-settings-checks label {
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--primary-50);
  border: 3px solid var(--primary-200);
  border-radius: 20px;
  padding: 14px 16px;
  font-size: 17px;
  font-weight: 1000;
}
.pos-settings-checks input {
  width: 24px;
  height: 24px;
  accent-color: var(--primary-500);
}
@media (max-width: 1180px) {
  .pos-cashier-layout {
    grid-template-columns: 1fr;
  }
  .pos-cart-side {
    position: static;
    height: auto;
  }
  .pos-settings-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 760px) {
  .pos-header {
    align-items: flex-start;
    flex-direction: column;
  }
  .pos-header-actions {
    width: 100%;
  }
  .pos-pill {
    flex: 1;
  }
  .pos-tabs {
    grid-template-columns: 1fr;
  }
  .pos-product-grid {
    grid-template-columns: 1fr;
  }
  .pos-order-grid {
    grid-template-columns: 1fr;
  }
}


/* Refund visual placeholders */
.kitchen-action-btn.refund-visual,
.admin-small-btn.refund-visual {
  background: linear-gradient(135deg, #dc2626, #991b1b) !important;
  color: #ffffff !important;
}
.pos-order-card.card-completed .kitchen-card-actions,
.kitchen-order-card.card-completed .kitchen-card-actions {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.accounting-table th:last-child,
.accounting-table td:last-child {
  text-align: right;
}
@media (max-width: 760px) {
  .pos-order-card.card-completed .kitchen-card-actions,
  .kitchen-order-card.card-completed .kitchen-card-actions {
    grid-template-columns: 1fr;
  }
}


/* Admin Staff */
.admin-staff-grid {
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
}
.staff-card .admin-chip {
  background: #dcfce7;
  color: #166534;
}
.staff-contact-list {
  display: grid;
  gap: 6px;
  margin: 12px 0;
}
.staff-contact-list p {
  margin: 0;
  color: #334155;
  font-weight: 850;
}
.staff-contact-list strong {
  color: #0f172a;
}


/* Staff Device Login */
.device-login-backdrop {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  place-items: center;
  padding: 22px;
  background:
    radial-gradient(circle at 20% 10%, rgba(var(--primary-500-rgb),.30), transparent 34%),
    radial-gradient(circle at 80% 90%, rgba(34,197,94,.22), transparent 34%),
    rgba(15, 23, 42, .92);
  backdrop-filter: blur(18px);
}
.device-login-backdrop.is-showing {
  display: grid;
}
.device-login-card {
  width: min(520px, 100%);
  background: #ffffff;
  color: #0f172a;
  border-radius: 34px;
  padding: 30px;
  box-shadow: 0 32px 90px rgba(0,0,0,.38);
}
.device-login-icon {
  width: 74px;
  height: 74px;
  border-radius: 26px;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, var(--orange), var(--red));
  color: white;
  font-size: 36px;
  margin-bottom: 18px;
}
.device-login-card h2 {
  margin: 0;
  font-size: clamp(36px, 5vw, 54px);
  line-height: .9;
  letter-spacing: -.06em;
  font-weight: 1000;
}
.device-login-card p {
  margin: 12px 0 22px;
  color: #64748b;
  font-size: 17px;
  line-height: 1.35;
  font-weight: 850;
}
.device-login-card label {
  display: block;
  margin: 14px 0 8px;
  color: #334155;
  font-size: 15px;
  font-weight: 1000;
}
.device-login-card input {
  width: 100%;
  border: 3px solid var(--primary-200);
  border-radius: 22px;
  padding: 18px 20px;
  background: var(--primary-50);
  color: #0f172a;
  font-size: 24px;
  font-weight: 900;
}
.device-login-card button {
  width: 100%;
  margin-top: 18px;
  border: 0;
  border-radius: 24px;
  padding: 19px 22px;
  background: linear-gradient(135deg, var(--orange), var(--red));
  color: white;
  font-size: 22px;
  font-weight: 1000;
}
.device-login-card button:disabled {
  opacity: .72;
}
.device-login-error {
  min-height: 24px;
  margin-top: 12px;
  color: #b91c1c;
  font-size: 15px;
  font-weight: 1000;
  text-align: center;
}


/* Admin menu CSV import/export */
.admin-menu-tools {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: wrap;
}
@media (max-width: 760px) {
  .admin-menu-tools {
    width: 100%;
  }
  .admin-menu-tools .admin-primary,
  .admin-menu-tools .admin-secondary {
    flex: 1 1 100%;
  }
}


/* Admin Branding */
.branding-form {
  display: grid;
  gap: 18px;
}
.branding-card {
  background: rgba(255,255,255,.92);
  border: 2px solid rgba(var(--primary-500-rgb),.18);
  border-radius: 28px;
  padding: 22px;
  box-shadow: 0 18px 40px rgba(15,23,42,.08);
}
.branding-card h3 {
  margin: 0;
  font-size: 30px;
  line-height: 1;
  font-weight: 1000;
  letter-spacing: -.045em;
}
.branding-card p {
  margin: 8px 0 18px;
  color: #64748b;
  font-size: 16px;
  font-weight: 850;
}
.branding-color-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.branding-color-field {
  display: grid;
  grid-template-columns: 90px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  border: 2px solid var(--primary-100);
  background: var(--primary-50);
  border-radius: 22px;
  padding: 14px;
}
.branding-color-field span {
  grid-column: 1 / -1;
  color: var(--primary-800);
  font-size: 14px;
  font-weight: 1000;
}
.branding-color-field input[type="color"] {
  width: 90px;
  height: 58px;
  border: 0;
  background: transparent;
  padding: 0;
}
.branding-color-field input[type="text"] {
  min-width: 0;
  border: 2px solid var(--primary-200);
  background: white;
  border-radius: 16px;
  padding: 14px 15px;
  color: #0f172a;
  font-size: 18px;
  font-weight: 1000;
}
.branding-preview {
  --brand-primary: var(--primary-500);
  --brand-secondary: var(--primary-600);
  margin-top: 18px;
  display: flex;
  align-items: center;
  gap: 14px;
  border-radius: 28px;
  padding: 18px;
  color: white;
  background:
    radial-gradient(circle at 16% 16%, rgba(255,255,255,.22), transparent 30%),
    linear-gradient(135deg, var(--brand-primary), var(--brand-secondary));
}
.branding-preview-logo,
.branding-logo-preview {
  width: 74px;
  height: 74px;
  border-radius: 24px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  overflow: hidden;
  background: rgba(255,255,255,.22);
  font-size: 36px;
  font-weight: 1000;
}
.branding-preview-logo img,
.branding-logo-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.branding-preview strong {
  display: block;
  font-size: 30px;
  line-height: .95;
  font-weight: 1000;
  letter-spacing: -.05em;
}
.branding-preview span {
  display: block;
  margin-top: 5px;
  color: rgba(255,255,255,.88);
  font-weight: 900;
}
.branding-preview button {
  margin-left: auto;
  border: 0;
  border-radius: 999px;
  padding: 14px 18px;
  background: #0f172a;
  color: white;
  font-weight: 1000;
}
.branding-logo-upload {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  gap: 16px;
  align-items: center;
  border: 2px dashed var(--primary-200);
  background: var(--primary-50);
  border-radius: 24px;
  padding: 16px;
}
.branding-logo-preview {
  width: 96px;
  height: 96px;
  color: white;
  background: linear-gradient(135deg, var(--orange), var(--red));
}
.branding-logo-upload input[type="file"] {
  width: 100%;
  border: 2px solid var(--primary-200);
  border-radius: 18px;
  padding: 14px;
  background: white;
  color: #0f172a;
  font-weight: 900;
}
@media (max-width: 760px) {
  .branding-color-grid,
  .branding-logo-upload {
    grid-template-columns: 1fr;
  }
  .branding-preview {
    align-items: flex-start;
    flex-direction: column;
  }
  .branding-preview button {
    margin-left: 0;
    width: 100%;
  }
}


/* Admin Dashboard Stats */
.dashboard-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 18px;
}
.dashboard-kpis article {
  background: rgba(255,255,255,.94);
  border: 2px solid rgba(var(--primary-500-rgb),.18);
  border-radius: 28px;
  padding: 20px;
  box-shadow: 0 18px 40px rgba(15,23,42,.08);
}
.dashboard-kpis span {
  display: block;
  color: #64748b;
  font-size: 14px;
  font-weight: 1000;
}
.dashboard-kpis strong {
  display: block;
  margin-top: 9px;
  color: #0f172a;
  font-size: clamp(30px, 3vw, 48px);
  line-height: .9;
  letter-spacing: -.06em;
  font-weight: 1000;
}
.dashboard-kpis small {
  display: block;
  margin-top: 9px;
  color: var(--primary-800);
  font-size: 14px;
  font-weight: 1000;
}
.dashboard-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.dashboard-card {
  background: rgba(255,255,255,.94);
  border: 2px solid rgba(var(--primary-500-rgb),.18);
  border-radius: 30px;
  padding: 20px;
  box-shadow: 0 18px 40px rgba(15,23,42,.08);
  min-width: 0;
}
.dashboard-card.wide {
  grid-column: 1 / -1;
}
.dashboard-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
}
.dashboard-card-head h3 {
  margin: 0;
  font-size: 28px;
  line-height: 1;
  font-weight: 1000;
  letter-spacing: -.045em;
}
.dashboard-card-head span {
  border: 2px solid var(--primary-200);
  background: var(--primary-50);
  color: var(--primary-800);
  border-radius: 999px;
  padding: 8px 12px;
  font-size: 13px;
  font-weight: 1000;
}
.dash-bar-chart {
  min-height: 280px;
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 12px;
  align-items: end;
}
.dash-bar-col {
  min-width: 0;
  display: grid;
  gap: 8px;
  text-align: center;
  align-items: end;
}
.dash-bar-value {
  color: #0f172a;
  font-size: 13px;
  font-weight: 1000;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dash-bar-track {
  height: 185px;
  border-radius: 999px;
  background: var(--primary-100);
  display: flex;
  align-items: end;
  justify-content: center;
  overflow: hidden;
}
.dash-bar-track span {
  width: 100%;
  display: block;
  border-radius: 999px 999px 0 0;
  background: linear-gradient(180deg, var(--orange), var(--red));
  min-height: 8px;
}
.dash-bar-col strong {
  color: #0f172a;
  font-size: 14px;
  font-weight: 1000;
}
.dash-bar-col small {
  color: #64748b;
  font-size: 12px;
  font-weight: 900;
}
.dash-list-chart {
  display: grid;
  gap: 12px;
}
.dash-list-row {
  position: relative;
  overflow: hidden;
  border: 2px solid var(--primary-100);
  background: var(--primary-50);
  border-radius: 20px;
  padding: 14px;
  min-height: 68px;
}
.dash-list-row > div,
.dash-list-row > em {
  position: relative;
  z-index: 2;
}
.dash-list-row strong {
  display: block;
  color: #0f172a;
  font-size: 17px;
  line-height: 1;
  font-weight: 1000;
}
.dash-list-row span {
  display: block;
  margin-top: 6px;
  color: #64748b;
  font-size: 13px;
  font-weight: 900;
}
.dash-list-row em {
  position: absolute;
  top: 14px;
  right: 14px;
  color: var(--primary-800);
  font-style: normal;
  font-size: 14px;
  font-weight: 1000;
}
.dash-list-row i {
  position: absolute;
  inset: auto auto 0 0;
  height: 6px;
  border-radius: 0 999px 999px 0;
  background: linear-gradient(90deg, var(--orange), var(--red));
  z-index: 1;
}
.dash-donut-wrap {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  gap: 18px;
  align-items: center;
}
.dash-donut {
  width: 180px;
  height: 180px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #e2e8f0;
  position: relative;
  overflow: hidden;
}
.dash-donut::after {
  content: "";
  position: absolute;
  inset: 38px;
  border-radius: 50%;
  background: white;
}
.dash-donut strong,
.dash-donut span {
  position: relative;
  z-index: 2;
  display: block;
  text-align: center;
}
.dash-donut strong {
  font-size: 38px;
  line-height: .9;
  font-weight: 1000;
  letter-spacing: -.055em;
  color: #0f172a;
}
.dash-donut span {
  margin-top: 42px;
  position: absolute;
  color: #64748b;
  font-size: 13px;
  font-weight: 1000;
}
.dash-legend {
  display: grid;
  gap: 10px;
}
.dash-legend div {
  display: grid;
  grid-template-columns: 14px minmax(0, 1fr) auto;
  gap: 9px;
  align-items: center;
  color: #0f172a;
  font-weight: 1000;
}
.dash-legend i {
  width: 14px;
  height: 14px;
  border-radius: 999px;
}
.dash-legend span {
  color: #334155;
}
.dash-legend strong {
  color: var(--primary-800);
}
.dashboard-empty {
  border: 2px dashed var(--primary-200);
  border-radius: 20px;
  padding: 18px;
  color: #64748b;
  background: var(--primary-50);
  font-weight: 1000;
  text-align: center;
}
@media (max-width: 1180px) {
  .dashboard-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .dashboard-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 760px) {
  .dashboard-kpis {
    grid-template-columns: 1fr;
  }
  .dash-bar-chart {
    gap: 8px;
  }
  .dash-bar-track {
    height: 145px;
  }
  .dash-donut-wrap {
    grid-template-columns: 1fr;
    justify-items: center;
  }
  .dash-legend {
    width: 100%;
  }
}


/* Admin Login */
.admin-pill.danger {
  border-color: rgba(220,38,38,.22);
  color: #991b1b;
}
.admin-login-body {
  min-height: 100vh;
  margin: 0;
  background:
    radial-gradient(circle at 12% 8%, rgba(var(--primary-500-rgb),.28), transparent 34%),
    radial-gradient(circle at 90% 95%, rgba(239,68,68,.20), transparent 34%),
    var(--primary-50);
  display: grid;
  place-items: center;
  padding: 22px;
  color: #0f172a;
}
.admin-login-shell {
  width: min(520px, 100%);
}
.admin-login-card {
  background: rgba(255,255,255,.95);
  border: 3px solid rgba(255,255,255,.8);
  border-radius: 34px;
  padding: 32px;
  box-shadow: 0 30px 90px rgba(15,23,42,.18);
}
.admin-login-logo {
  width: 78px;
  height: 78px;
  border-radius: 27px;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, var(--orange), var(--red));
  color: white;
  font-size: 40px;
  margin-bottom: 18px;
}
.admin-login-card h1 {
  margin: 0;
  font-size: clamp(42px, 7vw, 64px);
  line-height: .88;
  letter-spacing: -.065em;
  font-weight: 1000;
}
.admin-login-card p {
  margin: 12px 0 22px;
  color: #64748b;
  font-size: 17px;
  font-weight: 850;
}
.admin-login-form {
  display: grid;
  gap: 12px;
}
.admin-login-form label {
  color: #334155;
  font-size: 15px;
  font-weight: 1000;
}
.admin-login-form input {
  width: 100%;
  border: 3px solid var(--primary-200);
  border-radius: 22px;
  padding: 17px 19px;
  background: var(--primary-50);
  color: #0f172a;
  font-size: 20px;
  font-weight: 900;
}
.admin-login-form button {
  margin-top: 8px;
  border: 0;
  border-radius: 24px;
  padding: 18px 22px;
  background: linear-gradient(135deg, var(--orange), var(--red));
  color: white;
  font-size: 22px;
  font-weight: 1000;
}
.admin-login-form .admin-remember-me {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  width: fit-content;
  margin: 3px 0 1px;
  color: #334155;
  cursor: pointer;
  user-select: none;
}
.admin-login-form .admin-remember-me input[type="checkbox"] {
  width: 22px;
  height: 22px;
  margin: 0;
  padding: 0;
  border-radius: 6px;
  accent-color: var(--primary-700);
}
.admin-login-form .admin-remember-me span {
  font-size: 15px;
  font-weight: 1000;
}
.admin-login-error {
  border: 2px solid #fecaca;
  background: #fef2f2;
  color: #991b1b;
  border-radius: 18px;
  padding: 13px 15px;
  margin-bottom: 18px;
  font-size: 15px;
  font-weight: 1000;
}


/* Restaurant Registration */
.register-shell {
  width: min(740px, 100%);
}
.register-card {
  max-height: calc(100vh - 44px);
  overflow-y: auto;
}
.register-form {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.register-form label,
.register-form button {
  grid-column: auto;
}
.register-form button {
  grid-column: 1 / -1;
}
.admin-login-link {
  display: block;
  margin-top: 18px;
  color: var(--primary-800);
  text-align: center;
  font-size: 15px;
  font-weight: 1000;
  text-decoration: none;
}
.admin-login-link:hover {
  text-decoration: underline;
}
@media (max-width: 760px) {
  .register-form {
    grid-template-columns: 1fr;
  }
}


/* Admin Locations */
.admin-location-switcher {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 2px solid rgba(var(--primary-500-rgb),.20);
  background: var(--primary-50);
  border-radius: 999px;
  padding: 7px 10px 7px 14px;
  color: var(--primary-800);
  font-size: 13px;
  font-weight: 1000;
}
.admin-location-switcher select {
  border: 0;
  background: white;
  color: #0f172a;
  border-radius: 999px;
  padding: 8px 12px;
  font-weight: 1000;
}
.admin-location-grid {
  grid-template-columns: repeat(auto-fit, minmax(330px, 1fr));
}
.location-card.is-selected-location {
  border-color: var(--orange);
  box-shadow: 0 20px 45px rgba(var(--primary-500-rgb),.16);
}
.location-card .admin-chip {
  background: #dbeafe;
  color: #1d4ed8;
}
@media (max-width: 760px) {
  .admin-location-switcher {
    width: 100%;
    justify-content: space-between;
    border-radius: 20px;
  }
  .admin-location-switcher select {
    flex: 1;
  }
}

/* Admin Locations */
.admin-location-switcher {
  display: flex;
  align-items: center;
  gap: 8px;
  background: rgba(255,255,255,.92);
  border: 2px solid rgba(254,215,170,.9);
  border-radius: 999px;
  padding: 8px 10px 8px 14px;
  box-shadow: 0 10px 22px rgba(var(--primary-600-rgb),.07);
}
.admin-location-switcher label {
  color: var(--primary-800);
  font-size: 13px;
  font-weight: 1000;
  line-height: 1;
}
.admin-location-switcher select {
  border: 0;
  outline: 0;
  background: var(--primary-50);
  color: #0f172a;
  border-radius: 999px;
  padding: 9px 12px;
  font-size: 14px;
  font-weight: 1000;
  max-width: 210px;
}
.admin-location-grid {
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
}
.location-card.is-current-location {
  border-color: var(--orange);
  box-shadow: 0 22px 48px rgba(var(--primary-500-rgb),.16);
}
.location-card.is-current-location .admin-chip {
  background: var(--primary-100);
  color: var(--primary-800);
}
@media (max-width: 900px) {
  .admin-location-switcher {
    width: 100%;
    justify-content: space-between;
    border-radius: 22px;
  }
  .admin-location-switcher select {
    max-width: none;
    flex: 1;
  }
}


/* Debug Center */
.debug-shell {
  padding-bottom: 48px;
}
.debug-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
  gap: 14px;
}
.debug-check {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  background: rgba(255,255,255,.94);
  border: 3px solid #e2e8f0;
  border-radius: 26px;
  padding: 16px;
  box-shadow: 0 16px 34px rgba(15,23,42,.08);
}
.debug-check.pass {
  border-color: #bbf7d0;
  background: #f0fdf4;
}
.debug-check.warn {
  border-color: #fde68a;
  background: #fffbeb;
}
.debug-check.error {
  border-color: #fecaca;
  background: #fef2f2;
}
.debug-check-icon {
  width: 52px;
  height: 52px;
  border-radius: 18px;
  display: grid;
  place-items: center;
  background: white;
  font-size: 25px;
}
.debug-check h3 {
  margin: 0;
  color: #0f172a;
  font-size: 18px;
  line-height: 1.1;
  font-weight: 1000;
}
.debug-check p {
  margin: 7px 0 0;
  color: #64748b;
  font-size: 14px;
  line-height: 1.35;
  font-weight: 850;
}
.debug-body .dashboard-kpis strong {
  word-break: break-word;
}
@media (max-width: 760px) {
  .debug-grid {
    grid-template-columns: 1fr;
  }
}


/* Staff Scheduling + Time Clock */
.staff-admin-layout {
  display: grid;
  gap: 22px;
}
.admin-section-minihead {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 12px;
}
.admin-section-minihead h3 {
  margin: 0;
  font-size: 30px;
  line-height: 1;
  font-weight: 1000;
  letter-spacing: -.045em;
}
.admin-section-minihead p {
  margin: 6px 0 0;
  color: #64748b;
  font-weight: 850;
}
.weekly-schedule-board {
  display: grid;
  grid-template-columns: repeat(7, minmax(210px, 1fr));
  gap: 12px;
  overflow-x: auto;
  padding-bottom: 6px;
}
.schedule-day-card {
  background: rgba(255,255,255,.94);
  border: 2px solid rgba(var(--primary-500-rgb),.18);
  border-radius: 26px;
  padding: 15px;
  min-width: 210px;
  box-shadow: 0 16px 34px rgba(15,23,42,.08);
}
.schedule-day-card h4 {
  margin: 0 0 12px;
  color: var(--primary-800);
  font-size: 18px;
  font-weight: 1000;
}
.schedule-shifts {
  display: grid;
  gap: 10px;
}
.schedule-shift {
  border: 2px solid var(--primary-200);
  background: var(--primary-50);
  border-radius: 20px;
  padding: 12px;
}
.schedule-shift strong,
.schedule-shift span,
.schedule-shift small,
.schedule-shift em {
  display: block;
}
.schedule-shift strong {
  color: #0f172a;
  font-size: 15px;
  font-weight: 1000;
}
.schedule-shift span {
  margin-top: 5px;
  color: #111827;
  font-size: 16px;
  font-weight: 1000;
}
.schedule-shift small {
  margin-top: 3px;
  color: #64748b;
  font-size: 13px;
  font-weight: 850;
}
.schedule-shift em {
  margin-top: 7px;
  color: var(--primary-800);
  font-size: 13px;
  font-style: normal;
  font-weight: 850;
}
.schedule-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7px;
  margin-top: 10px;
}
.schedule-empty {
  margin: 0;
  border: 2px dashed var(--primary-200);
  border-radius: 18px;
  padding: 13px;
  color: #64748b;
  font-weight: 900;
  text-align: center;
}
.time-clock-admin-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 12px;
}
.time-clock-admin-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
  gap: 12px;
  align-items: start;
  background: rgba(255,255,255,.94);
  border: 2px solid #e2e8f0;
  border-radius: 24px;
  padding: 15px;
  box-shadow: 0 12px 26px rgba(15,23,42,.06);
}
.time-clock-admin-row.is-open {
  border-color: #86efac;
  background: #f0fdf4;
}
.time-clock-admin-row strong {
  display: block;
  color: #0f172a;
  font-size: 17px;
  font-weight: 1000;
}
.time-clock-admin-row span {
  display: block;
  margin-top: 4px;
  color: #64748b;
  font-size: 13px;
  font-weight: 850;
}
.time-clock-admin-row p {
  margin: 0 0 5px;
  color: #334155;
  font-size: 14px;
  font-weight: 850;
}
.time-clock-pill {
  background: linear-gradient(135deg, #0ea5e9, #2563eb) !important;
  color: white !important;
  border-color: rgba(255,255,255,.22) !important;
}
.time-clock-modal-card {
  width: min(560px, 100%);
}
.time-clock-pin-input {
  text-align: center;
  letter-spacing: .35em;
  font-size: 34px !important;
  font-weight: 1000 !important;
}
.time-clock-status-box {
  margin-top: 15px;
  display: grid;
  gap: 8px;
  border: 3px dashed #bae6fd;
  border-radius: 22px;
  padding: 16px;
  background: #f0f9ff;
  color: #0f172a;
}
.time-clock-status-box strong {
  display: block;
  font-size: 18px;
  font-weight: 1000;
}
.time-clock-status-box span {
  display: block;
  color: #475569;
  font-size: 14px;
  font-weight: 850;
}
.time-clock-actions {
  grid-template-columns: 1fr 1fr;
}
@media (max-width: 1180px) {
  .weekly-schedule-board {
    grid-template-columns: repeat(7, 230px);
  }
}
@media (max-width: 760px) {
  .time-clock-admin-row,
  .time-clock-actions {
    grid-template-columns: 1fr;
  }
}


/* Restaurant Hours */
.restaurant-hours-board {
  display: grid;
  gap: 14px;
}
.restaurant-hours-row {
  display: grid;
  grid-template-columns: 1.2fr repeat(4, minmax(120px, 1fr)) minmax(180px, 1.4fr);
  gap: 12px;
  align-items: end;
  background: rgba(255,255,255,.94);
  border: 2px solid rgba(var(--primary-500-rgb),.18);
  border-radius: 26px;
  padding: 16px;
  box-shadow: 0 16px 34px rgba(15,23,42,.08);
}
.hours-day-title {
  display: grid;
  gap: 10px;
}
.hours-day-title strong {
  color: #0f172a;
  font-size: 22px;
  line-height: 1;
  font-weight: 1000;
}
.hours-closed-toggle {
  display: flex !important;
  align-items: center;
  gap: 9px;
  color: #991b1b !important;
  font-size: 14px !important;
  font-weight: 1000 !important;
}
.hours-closed-toggle input {
  width: 22px !important;
  height: 22px !important;
  accent-color: var(--primary-600);
}
.restaurant-hours-row label {
  display: grid;
  gap: 6px;
  color: #64748b;
  font-size: 13px;
  font-weight: 1000;
}
.restaurant-hours-row input[type="time"],
.restaurant-hours-row input[type="text"] {
  width: 100%;
  border: 2px solid var(--primary-200);
  background: var(--primary-50);
  color: #0f172a;
  border-radius: 16px;
  padding: 13px 14px;
  font-size: 16px;
  font-weight: 900;
}
.restaurant-hours-row input:disabled {
  opacity: .55;
  background: #f1f5f9;
}
.closed-ordering-card {
  border-color: #fecaca !important;
  background: #fef2f2 !important;
}
.closed-ordering-card h1 {
  color: #991b1b !important;
}
@media (max-width: 1180px) {
  .restaurant-hours-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .hours-day-title {
    grid-column: 1 / -1;
  }
}
@media (max-width: 760px) {
  .restaurant-hours-row {
    grid-template-columns: 1fr;
  }
}


/* Online ordering restaurant hours display */
.online-hero-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 0 0 auto;
}
.online-hours-card {
  position: relative;
  z-index: 25;
}
.online-hours-toggle {
  min-height: 62px;
  border: 0;
  border-radius: 22px;
  padding: 10px 14px;
  background: rgba(255,255,255,.94);
  color: #0f172a;
  display: grid;
  grid-template-columns: 12px minmax(0, 1fr);
  grid-template-rows: auto auto;
  gap: 2px 9px;
  align-items: center;
  text-align: left;
  box-shadow: 0 14px 28px rgba(15,23,42,.12);
  min-width: 210px;
}
.online-hours-toggle strong {
  font-size: 15px;
  line-height: 1.05;
  font-weight: 1000;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.online-hours-toggle em {
  grid-column: 2;
  color: #64748b;
  font-size: 12px;
  font-style: normal;
  font-weight: 900;
}
.hours-dot {
  width: 12px;
  height: 12px;
  border-radius: 999px;
  display: block;
  grid-row: 1 / 3;
}
.hours-dot.open {
  background: #22c55e;
  box-shadow: 0 0 0 5px rgba(34,197,94,.13);
}
.hours-dot.closed {
  background: var(--primary-600);
  box-shadow: 0 0 0 5px rgba(239,68,68,.13);
}
.online-hours-dropdown {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  width: min(360px, calc(100vw - 28px));
  background: rgba(255,255,255,.98);
  color: #0f172a;
  border: 2px solid var(--primary-200);
  border-radius: 24px;
  padding: 14px;
  box-shadow: 0 24px 64px rgba(15,23,42,.22);
  display: none;
}
.online-hours-card.show-hours .online-hours-dropdown {
  display: block;
}
.online-hours-dropdown-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 10px;
  margin-bottom: 8px;
  border-bottom: 2px solid var(--primary-100);
}
.online-hours-dropdown-head strong {
  font-size: 18px;
  font-weight: 1000;
}
.online-hours-dropdown-head span {
  color: #64748b;
  font-size: 13px;
  font-weight: 900;
}
.online-hours-list {
  display: grid;
  gap: 7px;
}
.online-hours-row {
  display: grid;
  grid-template-columns: 105px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  border-radius: 16px;
  padding: 9px 10px;
  background: var(--primary-50);
}
.online-hours-row.today {
  background: var(--primary-100);
  outline: 2px solid var(--primary-200);
}
.online-hours-row strong {
  font-size: 14px;
  font-weight: 1000;
}
.online-hours-row span {
  color: #475569;
  font-size: 13px;
  font-weight: 850;
  text-align: right;
}
@media (max-width: 760px) {
  .online-hero {
    align-items: stretch;
  }
  .online-hero-actions {
    width: 100%;
    justify-content: space-between;
  }
  .online-hours-card {
    flex: 1 1 auto;
    min-width: 0;
  }
  .online-hours-toggle {
    width: 100%;
    min-width: 0;
  }
  .online-hours-dropdown {
    left: 0;
    right: auto;
  }
}


/* Kiosk closed screen */
.kiosk-closed-screen {
  position: fixed;
  inset: 0;
  z-index: 9000;
  display: none;
  place-items: center;
  padding: 28px;
  background:
    radial-gradient(circle at 16% 12%, rgba(var(--primary-500-rgb),.28), transparent 32%),
    radial-gradient(circle at 82% 90%, rgba(239,68,68,.22), transparent 34%),
    rgba(15, 23, 42, .94);
  backdrop-filter: blur(20px);
}
.kiosk-closed-screen.is-showing {
  display: grid;
}
.kiosk-closed-card {
  width: min(780px, 100%);
  min-height: min(560px, calc(100vh - 56px));
  border-radius: 44px;
  background:
    radial-gradient(circle at top left, rgba(255,255,255,.18), transparent 42%),
    linear-gradient(135deg, var(--orange), var(--red));
  color: white;
  box-shadow: 0 36px 110px rgba(0,0,0,.38);
  display: grid;
  place-items: center;
  align-content: center;
  text-align: center;
  padding: clamp(32px, 6vw, 72px);
}
.kiosk-closed-icon {
  width: clamp(92px, 14vw, 150px);
  height: clamp(92px, 14vw, 150px);
  border-radius: 42px;
  display: grid;
  place-items: center;
  background: rgba(255,255,255,.20);
  box-shadow: inset 0 0 0 3px rgba(255,255,255,.20);
  font-size: clamp(52px, 8vw, 88px);
  margin-bottom: 28px;
}
.kiosk-closed-card h1 {
  margin: 0;
  font-size: clamp(58px, 9vw, 118px);
  line-height: .84;
  letter-spacing: -.075em;
  font-weight: 1000;
}
.kiosk-closed-card p {
  margin: 24px auto 0;
  max-width: 620px;
  color: rgba(255,255,255,.92);
  font-size: clamp(24px, 3.3vw, 42px);
  line-height: 1.08;
  font-weight: 900;
}
.kiosk-closed-hours {
  margin-top: 28px;
  display: grid;
  gap: 10px;
  justify-items: center;
}
.kiosk-closed-hours span {
  border-radius: 999px;
  padding: 12px 18px;
  background: rgba(15,23,42,.25);
  color: rgba(255,255,255,.94);
  font-size: clamp(16px, 2vw, 22px);
  font-weight: 1000;
}
@media (max-width: 760px) {
  .kiosk-closed-card {
    border-radius: 34px;
    min-height: calc(100vh - 56px);
  }
}


/* Legal pages + online footer */
.online-legal-footer {
  margin-top: 24px;
  padding: 18px 6px 34px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  color: #64748b;
  font-size: 13px;
  font-weight: 900;
}
.online-legal-footer a {
  color: var(--primary-800);
  text-decoration: none;
  font-weight: 1000;
}
.online-legal-footer a:hover {
  text-decoration: underline;
}
.legal-body {
  min-height: 100vh;
  margin: 0;
  background:
    radial-gradient(circle at 12% 8%, rgba(var(--primary-500-rgb),.22), transparent 34%),
    radial-gradient(circle at 90% 95%, rgba(239,68,68,.16), transparent 34%),
    var(--primary-50);
  color: #0f172a;
}
.legal-shell {
  width: min(920px, calc(100% - 32px));
  margin: 0 auto;
  padding: 34px 0 54px;
}
.legal-back {
  display: inline-flex;
  margin-bottom: 16px;
  color: var(--primary-800);
  font-size: 15px;
  font-weight: 1000;
  text-decoration: none;
}
.legal-card {
  background: rgba(255,255,255,.96);
  border: 3px solid rgba(255,255,255,.82);
  border-radius: 34px;
  padding: clamp(24px, 4vw, 46px);
  box-shadow: 0 28px 80px rgba(15,23,42,.13);
}
.legal-eyebrow {
  margin: 0 0 10px;
  color: var(--primary-800);
  font-size: 13px;
  font-weight: 1000;
  text-transform: uppercase;
  letter-spacing: .09em;
}
.legal-card h1 {
  margin: 0;
  font-size: clamp(44px, 7vw, 76px);
  line-height: .9;
  letter-spacing: -.065em;
  font-weight: 1000;
}
.legal-updated {
  margin: 12px 0 22px;
  color: #64748b;
  font-size: 15px;
  font-weight: 850;
}
.legal-callout {
  border: 3px solid #bbf7d0;
  background: #f0fdf4;
  color: #166534;
  border-radius: 24px;
  padding: 18px 20px;
  margin: 24px 0;
  font-size: clamp(20px, 2.6vw, 30px);
  line-height: 1.05;
  font-weight: 1000;
}
.legal-card h2 {
  margin: 28px 0 8px;
  color: #0f172a;
  font-size: 26px;
  line-height: 1;
  letter-spacing: -.035em;
  font-weight: 1000;
}
.legal-card p {
  color: #334155;
  font-size: 17px;
  line-height: 1.65;
  font-weight: 750;
}
.legal-card a {
  color: var(--primary-800);
  font-weight: 1000;
}


/* Customer tips */
.tip-section {
  margin: 16px 0;
  border: 3px solid var(--primary-100);
  border-radius: 24px;
  background: var(--primary-50);
  padding: 16px;
}
.tip-section h3 {
  margin: 0 0 12px;
  color: #0f172a;
  font-size: 24px;
  line-height: 1;
  font-weight: 1000;
  letter-spacing: -.04em;
}
.tip-options {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 9px;
  margin-bottom: 12px;
}
.tip-btn {
  border: 3px solid var(--primary-200);
  border-radius: 18px;
  background: white;
  color: var(--primary-800);
  padding: 13px 10px;
  font-size: 17px;
  font-weight: 1000;
}
.tip-btn.is-active {
  border-color: var(--orange);
  background: linear-gradient(135deg, var(--orange), var(--red));
  color: white;
}
.tip-custom-input {
  max-width: 240px;
}
@media (max-width: 760px) {
  .tip-options {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .tip-custom-input {
    max-width: none;
  }
}


/* Device logged-in indicator + approved logout */
.device-user-indicator {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  align-items: center;
  gap: 2px 8px;
  min-width: 190px;
  max-width: 280px;
  border: 2px solid rgba(255,255,255,.26);
  border-radius: 18px;
  padding: 8px 9px 8px 12px;
  background: rgba(15,23,42,.16);
  color: white;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.08);
}
.pos-header .device-user-indicator {
  background: rgba(255,255,255,.92);
  border-color: var(--primary-200);
  color: #0f172a;
}
.device-user-indicator span {
  grid-column: 1;
  color: rgba(255,255,255,.78);
  font-size: 11px;
  font-weight: 900;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pos-header .device-user-indicator span {
  color: #64748b;
}
.device-user-indicator strong {
  grid-column: 1;
  color: inherit;
  font-size: 14px;
  line-height: 1;
  font-weight: 1000;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.device-user-indicator button {
  grid-column: 2;
  grid-row: 1 / 3;
  border: 0;
  border-radius: 999px;
  padding: 8px 10px;
  background: rgba(239,68,68,.95);
  color: white;
  font-size: 12px;
  font-weight: 1000;
}
.device-logout-backdrop {
  position: fixed;
  inset: 0;
  z-index: 10050;
  display: none;
  place-items: center;
  padding: 22px;
  background: rgba(15,23,42,.72);
  backdrop-filter: blur(16px);
}
.device-logout-backdrop.is-showing {
  display: grid;
}
.device-logout-card {
  position: relative;
  width: min(520px, 100%);
  border-radius: 30px;
  background: white;
  color: #0f172a;
  padding: 30px;
  box-shadow: 0 30px 90px rgba(0,0,0,.30);
}
.device-logout-close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 999px;
  background: #f1f5f9;
  color: #0f172a;
  font-size: 26px;
  font-weight: 1000;
}
.device-logout-icon {
  width: 74px;
  height: 74px;
  border-radius: 24px;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, var(--orange), var(--red));
  color: white;
  font-size: 36px;
  margin-bottom: 16px;
}
.device-logout-card h2 {
  margin: 0;
  font-size: clamp(34px, 5vw, 54px);
  line-height: .9;
  letter-spacing: -.055em;
  font-weight: 1000;
}
.device-logout-card p {
  margin: 12px 0 18px;
  color: #64748b;
  font-size: 16px;
  font-weight: 850;
}
.device-logout-card label {
  display: block;
  margin-bottom: 7px;
  color: #334155;
  font-size: 14px;
  font-weight: 1000;
}
.device-logout-card input {
  width: 100%;
  border: 3px solid var(--primary-200);
  border-radius: 22px;
  padding: 18px;
  background: var(--primary-50);
  color: #0f172a;
  text-align: center;
  letter-spacing: .3em;
  font-size: 32px;
  font-weight: 1000;
}
.device-logout-card > button#deviceLogoutApprove {
  width: 100%;
  margin-top: 16px;
  border: 0;
  border-radius: 22px;
  padding: 17px 20px;
  background: linear-gradient(135deg, var(--orange), var(--red));
  color: white;
  font-size: 20px;
  font-weight: 1000;
}
.device-logout-error {
  margin-top: 12px;
  color: #991b1b;
  font-size: 14px;
  font-weight: 1000;
  min-height: 20px;
}
@media (max-width: 900px) {
  .device-user-indicator {
    min-width: 150px;
    max-width: 220px;
  }
  .device-user-indicator span {
    font-size: 10px;
  }
  .device-user-indicator strong {
    font-size: 13px;
  }
}


/* Admin interaction/layout fixes */
.admin-link-button,
.admin-file-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  cursor: pointer;
  user-select: none;
}
.admin-file-trigger input {
  display: none;
}
.staff-admin-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
}
.staff-admin-layout > section {
  min-width: 0;
}
.admin-section-minihead {
  display: block !important;
  margin-bottom: 14px;
}
.admin-section-minihead h3 {
  margin: 0 0 6px !important;
}
.admin-section-minihead p {
  margin: 0 !important;
  text-align: left !important;
  max-width: 100% !important;
}
.admin-staff-grid,
.admin-location-grid,
.time-clock-admin-list {
  width: 100%;
}
.weekly-schedule-board {
  width: 100%;
}
.admin-modal {
  z-index: 10000;
}
.admin-modal-card {
  overscroll-behavior: contain;
}


/* Compact Admin Header */
.admin-topbar {
  display: grid;
  grid-template-columns: minmax(280px, 1fr) auto minmax(420px, 1.35fr);
  align-items: center;
  gap: 18px;
  padding: 18px 32px !important;
  min-height: auto !important;
}
.admin-brand {
  min-width: 0;
}
.admin-logo {
  width: 58px !important;
  height: 58px !important;
  min-width: 58px !important;
  border-radius: 20px !important;
  font-size: 28px !important;
}
.admin-brand h1 {
  font-size: clamp(34px, 3.2vw, 50px) !important;
  line-height: .9 !important;
  letter-spacing: -.07em !important;
  margin: 0 !important;
}
.admin-brand p {
  font-size: 17px !important;
  line-height: 1.05 !important;
  margin-top: 8px !important;
}
.admin-location-switcher {
  align-self: center;
  padding: 9px 12px !important;
  border-radius: 999px !important;
  gap: 8px !important;
  white-space: nowrap;
}
.admin-location-switcher label,
.admin-location-switcher span {
  font-size: 13px !important;
}
.admin-location-switcher select {
  font-size: 14px !important;
  padding: 9px 34px 9px 14px !important;
  min-height: 38px !important;
}
.admin-actions {
  justify-content: flex-end !important;
  align-content: center;
  gap: 9px 10px !important;
}
.admin-pill {
  min-height: 44px !important;
  padding: 11px 18px !important;
  border-radius: 999px !important;
  font-size: 16px !important;
  line-height: 1 !important;
  white-space: nowrap;
}
@media (max-width: 1180px) {
  .admin-topbar {
    grid-template-columns: 1fr;
    padding: 18px 20px !important;
  }
  .admin-actions {
    justify-content: flex-start !important;
  }
}
@media (max-width: 760px) {
  .admin-topbar {
    gap: 14px;
  }
  .admin-brand h1 {
    font-size: 32px !important;
  }
  .admin-brand p {
    font-size: 14px !important;
  }
  .admin-pill {
    min-height: 40px !important;
    padding: 10px 14px !important;
    font-size: 14px !important;
  }
  .admin-location-switcher {
    width: 100%;
    justify-content: space-between;
  }
}


/* Admin header: Debug + Log Out only */
.admin-actions {
  grid-template-columns: none !important;
  display: flex !important;
  flex-wrap: wrap;
  justify-content: flex-end !important;
  align-items: center;
}
.admin-actions .admin-pill {
  min-width: 0 !important;
}


/* Admin title half-size */
.admin-brand h1 {
  font-size: clamp(24px, 1.6vw, 28px) !important;
  line-height: .95 !important;
  letter-spacing: -.045em !important;
}
.admin-brand p {
  font-size: 14px !important;
  line-height: 1.1 !important;
  margin-top: 6px !important;
}
.admin-logo {
  width: 46px !important;
  height: 46px !important;
  min-width: 46px !important;
  border-radius: 16px !important;
  font-size: 23px !important;
}
@media (max-width: 760px) {
  .admin-brand h1 {
    font-size: 24px !important;
  }
  .admin-brand p {
    font-size: 13px !important;
  }
}


/* Style Import / Export CSV controls */
.admin-menu-tools {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  flex-wrap: wrap;
}
.admin-menu-tools .admin-secondary,
.admin-menu-tools .admin-file-trigger,
.admin-menu-tools .admin-link-button {
  min-height: 48px;
  border: 3px solid var(--primary-200) !important;
  border-radius: 999px !important;
  padding: 12px 18px !important;
  background: var(--primary-50) !important;
  color: var(--primary-800) !important;
  font-size: 16px !important;
  line-height: 1 !important;
  font-weight: 1000 !important;
  text-decoration: none !important;
  box-shadow: 0 10px 26px rgba(var(--primary-600-rgb), .08);
  cursor: pointer;
}
.admin-menu-tools .admin-secondary:hover,
.admin-menu-tools .admin-file-trigger:hover,
.admin-menu-tools .admin-link-button:hover {
  background: var(--primary-100) !important;
  border-color: var(--primary-300) !important;
  transform: translateY(-1px);
}
.admin-menu-tools .admin-secondary:active,
.admin-menu-tools .admin-file-trigger:active,
.admin-menu-tools .admin-link-button:active {
  transform: translateY(0);
}
.admin-menu-tools .admin-primary {
  min-height: 58px;
  border-radius: 22px !important;
  padding-inline: 24px !important;
}
@media (max-width: 760px) {
  .admin-menu-tools {
    width: 100%;
    justify-content: stretch;
  }
  .admin-menu-tools .admin-secondary,
  .admin-menu-tools .admin-file-trigger,
  .admin-menu-tools .admin-link-button,
  .admin-menu-tools .admin-primary {
    flex: 1 1 100%;
    width: 100%;
  }
}


/* Full product image preview inside Menu Item modal */
.admin-modal-card {
  width: min(860px, calc(100vw - 32px)) !important;
}
.admin-form-preview.admin-item-preview {
  height: min(420px, 42vh) !important;
  min-height: 280px !important;
  width: 100% !important;
  border: 3px solid var(--primary-200) !important;
  border-radius: 26px !important;
  background: #fff !important;
  overflow: hidden !important;
  margin: 10px 0 12px !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.6);
}
.admin-form-preview.admin-item-preview img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
  display: block !important;
  background: #fff !important;
}
.admin-form-preview.admin-item-preview.admin-item-preview-fallback {
  background: linear-gradient(135deg, var(--primary-400), var(--primary-600)) !important;
}
@media (max-width: 760px) {
  .admin-form-preview.admin-item-preview {
    height: min(340px, 36vh) !important;
    min-height: 230px !important;
  }
}


/* Admin category/modifier group cleanup */
.admin-toggle-check {
  display: flex !important;
  align-items: center;
  gap: 14px;
  border: 3px solid var(--primary-200);
  border-radius: 22px;
  background: var(--primary-50);
  padding: 15px 16px;
  color: #0f172a !important;
  cursor: pointer;
}
.admin-toggle-check input {
  width: 26px !important;
  height: 26px !important;
  min-width: 26px;
  accent-color: var(--primary-500);
}
.admin-toggle-check span {
  display: grid;
  gap: 4px;
}
.admin-toggle-check strong {
  color: #0f172a;
  font-size: 17px;
  line-height: 1;
  font-weight: 1000;
}
.admin-toggle-check small {
  color: #64748b;
  font-size: 13px;
  line-height: 1.25;
  font-weight: 850;
}
.admin-required-modifier-toggle {
  margin: 4px 0 6px;
}


/* Style + Add Shift button */
#newShiftBtn {
  min-height: 58px !important;
  border: 0 !important;
  border-radius: 22px !important;
  padding: 17px 23px !important;
  background: linear-gradient(135deg, var(--primary-500), var(--primary-600)) !important;
  color: #fff !important;
  font-size: 18px !important;
  line-height: 1 !important;
  font-weight: 1000 !important;
  box-shadow: 0 18px 34px rgba(var(--primary-500-rgb), .24) !important;
  cursor: pointer;
  white-space: nowrap;
}
#newShiftBtn::before {
  content: '+';
  margin-right: 8px;
  font-weight: 1000;
}
#newShiftBtn:hover {
  transform: translateY(-1px);
  box-shadow: 0 22px 42px rgba(var(--primary-500-rgb), .30) !important;
}
#newShiftBtn:active {
  transform: translateY(0);
}
@media (max-width: 760px) {
  #newShiftBtn {
    width: 100%;
  }
}


/* Modal Cancel button styling */
.admin-modal-card .admin-actions .admin-secondary,
.admin-modal-card button.admin-secondary,
.admin-modal-card .admin-action-row .admin-secondary {
  min-height: 58px !important;
  border: 3px solid #cbd5e1 !important;
  border-radius: 22px !important;
  padding: 16px 24px !important;
  background: #e2e8f0 !important;
  color: #334155 !important;
  font-size: 18px !important;
  line-height: 1 !important;
  font-weight: 1000 !important;
  box-shadow: 0 16px 34px rgba(100, 116, 139, .18) !important;
  cursor: pointer;
  white-space: nowrap;
}
.admin-modal-card .admin-actions .admin-secondary:hover,
.admin-modal-card button.admin-secondary:hover,
.admin-modal-card .admin-action-row .admin-secondary:hover {
  background: #cbd5e1 !important;
  border-color: #94a3b8 !important;
  transform: translateY(-1px);
}
.admin-modal-card .admin-actions .admin-secondary:active,
.admin-modal-card button.admin-secondary:active,
.admin-modal-card .admin-action-row .admin-secondary:active {
  transform: translateY(0);
}


/* Stronger global secondary button styling */
.admin-secondary,
button.admin-secondary,
.admin-form-actions .admin-secondary {
  min-height: 58px !important;
  border: 3px solid #cbd5e1 !important;
  border-radius: 22px !important;
  padding: 16px 24px !important;
  background: #e2e8f0 !important;
  color: #334155 !important;
  font-size: 18px !important;
  line-height: 1 !important;
  font-weight: 1000 !important;
  box-shadow: 0 16px 34px rgba(100, 116, 139, .18) !important;
  cursor: pointer;
  white-space: nowrap;
}
.admin-secondary:hover,
button.admin-secondary:hover,
.admin-form-actions .admin-secondary:hover {
  background: #cbd5e1 !important;
  border-color: #94a3b8 !important;
  transform: translateY(-1px);
}
.admin-secondary:active,
button.admin-secondary:active,
.admin-form-actions .admin-secondary:active {
  transform: translateY(0);
}


/* Restaurant hours wording update */
.restaurant-hours-row label {
  white-space: normal;
}


/* Admin header actions: Debug + Log Out only */
.admin-actions {
  display: flex !important;
  flex-wrap: wrap;
  justify-content: flex-end !important;
  align-items: center !important;
  gap: 10px !important;
}
.admin-actions .admin-pill {
  min-width: 0 !important;
}


/* Staff PIN helper field */
.staff-pin-display {
  background: #f8fafc !important;
  color: #0f172a !important;
  border-color: #cbd5e1 !important;
  letter-spacing: .18em;
  font-weight: 1000 !important;
}


/* Admin left sidebar nav layout */
@media (min-width: 1100px) {
  .admin-shell {
    display: grid;
    grid-template-columns: 240px minmax(0, 1fr);
    gap: 22px;
    align-items: start;
  }

  .admin-tabs {
    grid-column: 1;
    grid-row: 1 / span 20;
    position: sticky;
    top: 24px;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    margin: 0;
    padding: 18px;
    border-radius: 30px;
    background: rgba(255,255,255,.78);
    border: 2px solid rgba(var(--primary-500-rgb),.16);
    box-shadow: 0 18px 40px rgba(15,23,42,.08);
    max-height: calc(100vh - 48px);
    overflow: auto;
    scrollbar-width: thin;
  }

  .admin-tabs::-webkit-scrollbar {
    width: 8px;
  }

  .admin-tab {
    width: 100%;
    min-width: 0;
    text-align: left;
    justify-content: flex-start;
    padding: 16px 18px;
    font-size: 19px;
    border-radius: 18px;
  }

  .admin-stats,
  .admin-panel {
    grid-column: 2;
  }

  .admin-stats {
    margin-bottom: 0;
  }
}

@media (max-width: 1099px) {
  .admin-tabs {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 2px;
  }
}

/* Admin dashboard: hide summary stat cards on tablet and mobile. */
@media (max-width: 1099px) {
  body.admin-body .admin-stats {
    display: none !important;
  }
}


/* Online ordering category scroll fix */
.online-category-tabs {
  background: rgba(255, 247, 237, .96);
  border-radius: 999px;
  padding: 10px 10px 14px !important;
  margin-bottom: 14px;
  backdrop-filter: blur(14px);
}
#onlineMenuPane {
  scroll-margin-top: calc(var(--online-category-sticky-top, 120px) + 92px);
}
@media (max-width: 760px) {
  .online-category-tabs {
    border-radius: 24px;
  }
}


/* POS cashier menu: force two columns */
.pos-product-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 16px !important;
}
.pos-product-card {
  grid-template-columns: 108px minmax(0, 1fr) !important;
  min-height: 150px !important;
}
.pos-product-info h3 {
  font-size: 23px !important;
}
.pos-product-info p {
  font-size: 14px !important;
}
@media (max-width: 980px) {
  .pos-product-grid {
    grid-template-columns: 1fr !important;
  }
}


/* Device login visible status/error */
.device-login-error {
  display: block;
  min-height: 28px !important;
  margin-top: 14px !important;
  color: #991b1b !important;
  font-size: 16px !important;
  font-weight: 1000 !important;
  text-align: center !important;
}


/* Debug device login table */
.debug-table-wrap {
  overflow-x: auto;
  margin-top: 16px;
}
.debug-table-wrap table {
  width: 100%;
  border-collapse: collapse;
  background: white;
  border-radius: 18px;
  overflow: hidden;
}
.debug-table-wrap th,
.debug-table-wrap td {
  padding: 12px 14px;
  border-bottom: 1px solid #e2e8f0;
  text-align: left;
  font-weight: 850;
}
.debug-table-wrap th {
  color: var(--primary-800);
  background: var(--primary-50);
  font-weight: 1000;
}


/* Device login clear saved session button */
.device-login-card .device-login-clear {
  margin-top: 10px !important;
  background: #e2e8f0 !important;
  color: #334155 !important;
  box-shadow: none !important;
  font-size: 16px !important;
  padding: 13px 18px !important;
}
.device-login-card .device-login-clear:hover {
  background: #cbd5e1 !important;
}


/* POS Current Sale: make the whole widget scroll with bottom breathing room */
.pos-cart-side {
  max-height: calc(100vh - 170px) !important;
  min-height: 0 !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  display: block !important;
  overscroll-behavior: contain;
  padding-bottom: max(36px, env(safe-area-inset-bottom)) !important;
}
.pos-cart-head {
  position: sticky;
  top: 0;
  z-index: 2;
  background: rgba(255,255,255,.96);
}
.pos-cart-items {
  min-height: 0 !important;
  overflow: visible !important;
}
.pos-cart-total {
  max-height: none !important;
  overflow: visible !important;
  padding-bottom: max(46px, env(safe-area-inset-bottom)) !important;
}
.pos-cart-total .checkout-btn,
.pos-cart-total .pos-pay-btn,
#posSendKitchenBtn,
#posPayCardBtn {
  width: 100% !important;
  max-width: 100% !important;
}
#posPayCardBtn {
  margin-bottom: 28px !important;
}
@media (max-height: 820px) {
  .pos-cart-side {
    max-height: calc(100vh - 138px) !important;
  }
  .pos-cart-head {
    padding: 12px 16px !important;
  }
  .pos-cart-total {
    padding: 12px 16px max(54px, env(safe-area-inset-bottom)) !important;
  }
  .pos-cart-total label,
  .pos-cart-total .input-label {
    margin-top: 8px !important;
  }
  .pos-cart-total .big-input,
  .pos-cart-total select,
  .pos-cart-total textarea {
    min-height: 52px !important;
    padding: 12px 14px !important;
  }
  #posOrderNotes {
    min-height: 76px !important;
  }
}


/* POS + Kitchen fullscreen support */
.pos-body:fullscreen,
.kitchen-body:fullscreen,
:fullscreen .pos-shell,
:fullscreen .kitchen-shell {
  width: 100vw;
  height: 100vh;
  overflow: hidden;
}
:-webkit-full-screen .pos-shell,
:-webkit-full-screen .kitchen-shell {
  width: 100vw;
  height: 100vh;
  overflow: hidden;
}

/* POS cashier menu scroll fix */
html:has(body.pos-body),
body.pos-body {
  height: 100%;
  overflow: hidden;
}
.pos-shell {
  height: 100vh;
  min-height: 100vh;
  overflow: hidden;
}
.pos-main {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.pos-panel.is-active {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
}
.pos-panel[data-pos-panel="cashier"].is-active {
  overflow: hidden;
}
.pos-cashier-layout {
  height: 100%;
  min-height: 0;
  align-items: stretch;
}
.pos-menu-side {
  min-height: 0;
  height: 100%;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.pos-category-tabs {
  flex: 0 0 auto;
}
.pos-product-grid {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  align-content: start;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  padding: 0 8px max(44px, env(safe-area-inset-bottom)) 0;
}
@media (max-width: 1180px) {
  body.pos-body {
    overflow: auto;
  }
  .pos-shell {
    min-height: 100vh;
    height: auto;
    overflow: visible;
  }
  .pos-main,
  .pos-panel.is-active,
  .pos-panel[data-pos-panel="cashier"].is-active,
  .pos-cashier-layout,
  .pos-menu-side {
    height: auto;
    overflow: visible;
  }
  .pos-product-grid {
    overflow: visible;
    padding-right: 0;
  }
}

/* POS order tabs: Active, Scheduled, and Completed should show two card columns on tablet/desktop. */
.pos-panel[data-pos-panel="active"] .pos-order-grid,
.pos-panel[data-pos-panel="scheduled"] .pos-order-grid,
.pos-panel[data-pos-panel="completed"] .pos-order-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 760px) {
  .pos-panel[data-pos-panel="active"] .pos-order-grid,
  .pos-panel[data-pos-panel="scheduled"] .pos-order-grid,
  .pos-panel[data-pos-panel="completed"] .pos-order-grid {
    grid-template-columns: 1fr;
  }
}

/* POS order tabs masonry: keeps uneven Active, Scheduled, and Completed cards tucked together. */
.pos-panel[data-pos-panel="active"] .pos-order-grid,
.pos-panel[data-pos-panel="scheduled"] .pos-order-grid,
.pos-panel[data-pos-panel="completed"] .pos-order-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  align-items: start;
}

.pos-panel[data-pos-panel="active"] .pos-order-grid.is-masonry,
.pos-panel[data-pos-panel="scheduled"] .pos-order-grid.is-masonry,
.pos-panel[data-pos-panel="completed"] .pos-order-grid.is-masonry {
  position: relative;
  display: block;
  width: 100%;
}

.pos-order-grid.is-masonry .pos-order-card {
  box-sizing: border-box;
  left: 0;
  top: 0;
  will-change: transform;
}

@media (max-width: 760px) {
  .pos-panel[data-pos-panel="active"] .pos-order-grid,
  .pos-panel[data-pos-panel="scheduled"] .pos-order-grid,
  .pos-panel[data-pos-panel="completed"] .pos-order-grid,
  .pos-panel[data-pos-panel="active"] .pos-order-grid.is-masonry,
  .pos-panel[data-pos-panel="scheduled"] .pos-order-grid.is-masonry,
  .pos-panel[data-pos-panel="completed"] .pos-order-grid.is-masonry {
    display: grid;
    grid-template-columns: 1fr;
  }

  .pos-order-grid.is-masonry .pos-order-card {
    position: static !important;
    width: auto !important;
    transform: none !important;
  }
}

/* Kitchen tablet 2-column grid final override */
@media (min-width: 761px) {
  .kitchen-column.is-active {
    display: flex !important;
  }

  .kitchen-column.is-active .order-stack {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
  }

  .kitchen-column.is-active .kitchen-menu-control-list {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
  }
}

@media (max-width: 760px) {
  .kitchen-column.is-active .order-stack,
  .kitchen-column.is-active .kitchen-menu-control-list {
    grid-template-columns: 1fr !important;
  }
}

/* Kitchen tablet fixed-height scroll final override */
html:has(body.kitchen-body),
body.kitchen-body {
  height: 100%;
  overflow: hidden;
}

body.kitchen-body {
  min-height: 100dvh;
}

.kitchen-shell {
  height: 100dvh;
  min-height: 0 !important;
  overflow: hidden;
}

.kitchen-header,
.kitchen-status-tabs {
  flex: 0 0 auto;
}

.kitchen-header {
  position: relative;
  top: auto;
}

.kitchen-board,
.kitchen-tab-board {
  flex: 1 1 auto;
  min-height: 0 !important;
  overflow: hidden !important;
}

.kitchen-column {
  height: 100%;
  min-height: 0 !important;
  max-height: 100%;
  overflow: hidden !important;
  flex-direction: column;
}

.kitchen-column.is-active {
  display: flex !important;
}

.kitchen-column .order-stack,
.kitchen-column .kitchen-menu-control {
  flex: 1 1 auto;
  min-height: 0 !important;
  height: 100%;
  max-height: 100%;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  padding-bottom: max(18px, env(safe-area-inset-bottom));
}

@media (min-width: 761px) {
  .kitchen-column.is-active .order-stack,
  .kitchen-column.is-active .kitchen-menu-control-list {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 760px) {
  html:has(body.kitchen-body),
  body.kitchen-body {
    overflow: hidden;
  }

  .kitchen-column.is-active .order-stack,
  .kitchen-column.is-active .kitchen-menu-control-list {
    grid-template-columns: 1fr !important;
  }
}

/* Kitchen tablet scroll hard fix: keep header/tabs fixed and make the active tab panel the scroll container. */
html:has(body.kitchen-body),
body.kitchen-body {
  height: 100%;
  margin: 0;
  overflow: hidden !important;
}

body.kitchen-body .kitchen-shell {
  height: 100vh;
  height: 100dvh;
  min-height: 0 !important;
  display: grid !important;
  grid-template-rows: auto auto minmax(0, 1fr);
  overflow: hidden !important;
}

body.kitchen-body .kitchen-header,
body.kitchen-body .kitchen-status-tabs {
  min-height: 0;
}

body.kitchen-body .kitchen-header {
  position: relative !important;
  top: auto !important;
}

body.kitchen-body .kitchen-board,
body.kitchen-body .kitchen-tab-board {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: hidden !important;
  display: block !important;
}

body.kitchen-body .kitchen-column {
  height: 100% !important;
  min-height: 0 !important;
  max-height: 100% !important;
  overflow: hidden !important;
  display: none !important;
  flex-direction: column !important;
}

body.kitchen-body .kitchen-column.is-active {
  display: flex !important;
}

body.kitchen-body .kitchen-column .order-stack,
body.kitchen-body .kitchen-column .kitchen-menu-control {
  flex: 1 1 0 !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  touch-action: pan-y;
  padding-bottom: max(80px, env(safe-area-inset-bottom)) !important;
}

body.kitchen-body .kitchen-column .kitchen-menu-control-list {
  overflow: visible !important;
}

@media (min-width: 761px) {
  body.kitchen-body .kitchen-column.is-active .order-stack,
  body.kitchen-body .kitchen-column.is-active .kitchen-menu-control-list {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 760px) {
  body.kitchen-body .kitchen-column.is-active .order-stack,
  body.kitchen-body .kitchen-column.is-active .kitchen-menu-control-list {
    grid-template-columns: 1fr !important;
  }
}

/* Location Hours modal containment */
.admin-modal-card.is-hours-modal {
  width: min(1010px, calc(100vw - 44px));
  max-height: min(88vh, 900px);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  padding: 22px 24px 0;
}
.admin-modal-card.is-hours-modal h2 {
  flex: 0 0 auto;
  margin-bottom: 10px;
  font-size: clamp(25px, 2.3vw, 34px);
}
.admin-form.is-hours-form {
  min-height: 0;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.location-hours-modal-shell {
  min-height: 0;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.location-hours-help {
  flex: 0 0 auto;
  margin: 0 0 10px;
}
.location-hours-modal-board {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 2px 6px 12px 0;
  gap: 10px;
}
.location-hours-modal-board .restaurant-hours-row {
  grid-template-columns: 132px repeat(4, minmax(112px, 1fr)) minmax(142px, 1.15fr);
  gap: 8px;
  padding: 12px;
  border-radius: 22px;
  box-shadow: 0 10px 22px rgba(15,23,42,.06);
}
.location-hours-modal-board .hours-day-title {
  gap: 8px;
}
.location-hours-modal-board .hours-day-title strong {
  font-size: 20px;
}
.location-hours-modal-board .hours-closed-toggle {
  font-size: 13px !important;
  gap: 7px;
}
.location-hours-modal-board .hours-closed-toggle input {
  width: 20px !important;
  height: 20px !important;
}
.location-hours-modal-board .restaurant-hours-row label {
  gap: 5px;
  font-size: 12px;
}
.location-hours-modal-board .restaurant-hours-row input[type="time"],
.location-hours-modal-board .restaurant-hours-row input[type="text"] {
  min-height: 44px;
  padding: 9px 11px;
  border-radius: 14px;
  font-size: 15px;
}
.location-hours-actions {
  flex: 0 0 auto;
  position: sticky;
  bottom: 0;
  z-index: 2;
  margin: 0 -24px;
  padding: 14px 24px 18px;
  background: linear-gradient(180deg, rgba(255,255,255,.78), #fff 38%);
  border-top: 1px solid rgba(226,232,240,.85);
}
@media (max-width: 920px) {
  .admin-modal-card.is-hours-modal {
    width: calc(100vw - 24px);
    max-height: 92vh;
    padding: 18px 16px 0;
  }
  .location-hours-modal-board .restaurant-hours-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .location-hours-modal-board .hours-day-title {
    grid-column: 1 / -1;
  }
  .location-hours-actions {
    margin: 0 -16px;
    padding: 12px 16px 16px;
  }
}
@media (max-width: 600px) {
  .location-hours-modal-board .restaurant-hours-row {
    grid-template-columns: 1fr;
  }
}

/* Location edit QR preview */
.location-qr-shell {
  margin: 10px 0 14px;
}
.location-qr-card {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: 16px;
  align-items: center;
  padding: 16px;
  border: 1px solid rgba(var(--primary-500-rgb),.35);
  border-radius: 24px;
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,247,237,.9));
  box-shadow: 0 12px 28px rgba(15,23,42,.06);
}
.location-qr-preview {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 220px;
  border-radius: 20px;
  background: #fff;
  border: 1px dashed rgba(148,163,184,.55);
  padding: 12px;
}
.location-qr-preview img {
  width: 100%;
  max-width: 200px;
  height: auto;
  display: block;
  border-radius: 16px;
}
.location-qr-meta {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}
.location-qr-meta strong {
  color: #0f172a;
  font-size: 18px;
}
.location-qr-url-field {
  width: 100%;
  min-width: 0;
  border: 1px solid rgba(148,163,184,.5);
  border-radius: 14px;
  padding: 10px 12px;
  font-size: 13px;
  color: #334155;
  background: rgba(255,255,255,.85);
}
.location-qr-inline-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}
.location-qr-inline-actions .admin-secondary,
.location-qr-inline-actions .admin-small-btn {
  margin: 0;
}
@media (max-width: 760px) {
  .location-qr-card {
    grid-template-columns: 1fr;
  }
  .location-qr-preview {
    min-height: 180px;
  }
  .location-qr-preview img {
    max-width: 170px;
  }
}

/* Location card QR on right side */
.location-card-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 260px;
  gap: 22px;
  align-items: start;
}
.location-card-main {
  min-width: 0;
}
.location-card-qr {
  align-self: stretch;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 16px;
  border-radius: 24px;
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,247,237,.95));
  border: 1px solid rgba(var(--primary-500-rgb),.28);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.75), 0 12px 26px rgba(15,23,42,.05);
}
.location-card-qr-head {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.location-card-qr-head strong {
  font-size: 20px;
  line-height: 1.1;
  color: #0f172a;
}
.location-card-qr-head span {
  font-size: 13px;
  font-weight: 800;
  color: #64748b;
}
.location-card-qr-preview {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px;
  border-radius: 20px;
  background: #fff;
  border: 1px dashed rgba(148,163,184,.5);
}
.location-card-qr-preview img {
  width: 100%;
  max-width: 176px;
  height: auto;
  display: block;
  border-radius: 14px;
}
.location-card-qr-actions {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}
.location-card-qr-actions .admin-small-btn,
.location-card-qr-actions .admin-secondary {
  width: 100%;
  justify-content: center;
}
@media (max-width: 1100px) {
  .location-card-layout {
    grid-template-columns: 1fr;
  }
  .location-card-qr {
    max-width: 280px;
  }
}
@media (max-width: 760px) {
  .location-card-qr {
    max-width: none;
  }
}

/* Tighter horizontal QR panel for Location cards */
@media (min-width: 1101px) {
  .location-card-layout {
    grid-template-columns: minmax(0, 1fr) minmax(520px, 620px);
    align-items: start;
  }
  .location-card-qr {
    align-self: start;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 170px;
    grid-template-areas:
      "head qr"
      "actions qr";
    gap: 12px 16px;
    padding: 16px 18px;
    border-radius: 22px;
  }
  .location-card-qr-head {
    grid-area: head;
    justify-content: center;
  }
  .location-card-qr-head strong {
    font-size: 24px;
  }
  .location-card-qr-head span {
    font-size: 15px;
  }
  .location-card-qr-preview {
    grid-area: qr;
    min-height: 150px;
    padding: 10px;
    border-radius: 18px;
  }
  .location-card-qr-preview img {
    max-width: 145px;
    border-radius: 12px;
  }
  .location-card-qr-actions {
    grid-area: actions;
    display: flex;
    gap: 10px;
    align-items: stretch;
  }
  .location-card-qr-actions .admin-small-btn,
  .location-card-qr-actions .admin-secondary {
    width: auto;
    flex: 1 1 0;
    min-height: 48px;
    padding: 10px 12px;
    border-radius: 16px;
    font-size: 15px;
    white-space: nowrap;
  }
}

/* Improved admin location card layout */
.location-card {
  padding: 22px 24px;
}
.location-card-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(360px, 0.95fr);
  gap: 22px;
  align-items: stretch;
}
.location-card-main {
  display: flex;
  flex-direction: column;
  min-width: 0;
  gap: 18px;
}
.location-card-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.location-card-title-block h3 {
  margin: 0;
  font-size: clamp(34px, 2.4vw, 44px);
  line-height: 1.02;
  letter-spacing: -0.04em;
}
.location-card-address {
  margin: 10px 0 0;
  color: #64748b;
  font-size: 17px;
  font-weight: 900;
}
.location-card-header .admin-chip {
  flex: 0 0 auto;
  margin-top: 6px;
}
.location-card-info-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 14px;
}
.location-info-item {
  min-width: 0;
  padding: 14px 16px;
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,250,245,.92));
  border: 1px solid rgba(var(--primary-500-rgb),.18);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
}
.location-info-label {
  display: block;
  margin-bottom: 6px;
  color: #64748b;
  font-size: 12px;
  font-weight: 1000;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.location-info-item strong {
  display: block;
  color: #0f172a;
  font-size: 18px;
  line-height: 1.25;
  overflow-wrap: anywhere;
}
.location-card-actions {
  margin-top: auto;
  gap: 12px;
}
.location-card-actions .admin-small-btn {
  min-height: 50px;
  padding-inline: 22px;
  border-radius: 18px;
  font-size: 18px;
}
.location-card-qr {
  align-self: stretch;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 170px;
  gap: 18px;
  align-items: center;
  padding: 18px 20px;
  border-radius: 26px;
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,247,237,.96));
  border: 1px solid rgba(var(--primary-500-rgb),.28);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.8), 0 10px 24px rgba(15,23,42,.05);
}
.location-card-qr-content {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
}
.location-card-qr-head {
  gap: 4px;
}
.location-card-qr-head strong {
  font-size: clamp(30px, 2.2vw, 40px);
  line-height: 1.02;
  letter-spacing: -0.04em;
}
.location-card-qr-head span {
  font-size: 16px;
  font-weight: 900;
}
.location-card-qr-text {
  margin: 0;
  color: #64748b;
  font-size: 14px;
  line-height: 1.5;
  max-width: 36ch;
}
.location-card-qr-preview {
  min-height: 0;
  padding: 10px;
  border-radius: 22px;
}
.location-card-qr-preview img {
  width: 100%;
  max-width: 148px;
}
.location-card-qr-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.location-card-qr-actions .admin-small-btn,
.location-card-qr-actions .admin-secondary {
  flex: 1 1 170px;
  width: auto;
  min-height: 50px;
  padding-inline: 18px;
  border-radius: 18px;
  justify-content: center;
  font-size: 17px;
  white-space: nowrap;
}
@media (max-width: 1320px) {
  .location-card-layout {
    grid-template-columns: minmax(0, 1.2fr) minmax(320px, .95fr);
  }
  .location-card-qr {
    grid-template-columns: minmax(0, 1fr) 150px;
  }
}
@media (max-width: 1100px) {
  .location-card-layout {
    grid-template-columns: 1fr;
  }
  .location-card-qr {
    grid-template-columns: minmax(0, 1fr) 170px;
  }
}
@media (max-width: 760px) {
  .location-card {
    padding: 18px;
  }
  .location-card-header {
    flex-direction: column;
    align-items: flex-start;
  }
  .location-card-info-grid {
    grid-template-columns: 1fr;
  }
  .location-card-qr {
    grid-template-columns: 1fr;
  }
  .location-card-qr-preview {
    justify-self: center;
  }
  .location-card-qr-actions {
    flex-direction: column;
  }
  .location-card-qr-actions .admin-small-btn,
  .location-card-qr-actions .admin-secondary {
    width: 100%;
    flex-basis: auto;
  }
}

/* Mobile polish for online ordering */
@media (max-width: 760px) {
  .online-shell {
    overflow-x: clip;
  }

  .online-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px 10px;
    padding: 12px 14px;
  }

  .online-brand {
    gap: 12px;
    min-width: 0;
    align-items: center;
  }

  .online-logo {
    width: 48px;
    height: 48px;
    border-radius: 16px;
    font-size: 24px;
    box-shadow: 0 10px 20px rgba(var(--primary-500-rgb),.18);
  }

  .online-eyebrow {
    font-size: 10px;
    letter-spacing: .14em;
    margin-bottom: 4px;
  }

  .online-brand h1 {
    font-size: clamp(24px, 8.4vw, 36px);
    line-height: .92;
    letter-spacing: -.05em;
  }

  .online-brand p {
    display: none;
  }

  .online-hero-actions {
    grid-column: 1 / -1;
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: stretch;
  }

  .online-hours-card {
    min-width: 0;
  }

  .online-hours-toggle {
    width: 100%;
    min-width: 0;
    min-height: 56px;
    border-radius: 20px;
    padding: 10px 12px;
    grid-template-columns: 10px minmax(0, 1fr);
    gap: 2px 10px;
  }

  .online-hours-toggle strong {
    font-size: 14px;
  }

  .online-hours-toggle em {
    font-size: 12px;
  }

  .hours-dot {
    width: 10px;
    height: 10px;
  }

  .online-cart-button {
    min-width: 76px;
    min-height: 56px;
    padding: 10px 12px;
    border-radius: 20px;
    gap: 8px;
    align-self: stretch;
  }

  .online-cart-button span {
    font-size: 20px;
  }

  .online-cart-button strong {
    min-width: 30px;
    height: 30px;
    font-size: 16px;
  }

  .online-layout {
    padding: 14px 12px 22px;
    gap: 16px;
  }

  .online-category-tabs {
    top: var(--online-category-sticky-top, 96px);
    gap: 8px;
    padding: 8px !important;
    margin-bottom: 10px;
    border-radius: 22px;
  }

  .online-category-tab {
    padding: 9px 14px;
    font-size: 14px;
    gap: 8px;
    box-shadow: 0 8px 18px rgba(var(--primary-600-rgb),.06);
  }

  .online-category-tab span {
    width: 22px;
    height: 22px;
    font-size: 14px;
  }

  .online-section-title {
    margin: 4px 0 12px;
    font-size: clamp(22px, 8vw, 34px);
    gap: 8px;
  }

  .online-product-list {
    gap: 12px;
  }

  .online-product-card {
    grid-template-columns: 98px minmax(0, 1fr);
    gap: 12px;
    padding: 12px;
    border-radius: 26px;
    box-shadow: 0 14px 28px rgba(17,24,39,.08);
  }

  .online-product-image {
    min-height: 98px;
    height: 98px;
    border-radius: 20px;
  }

  .online-product-info {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "title title"
      "desc desc"
      "price price"
      "badge cta";
    gap: 8px 10px;
    align-content: start;
  }

  .online-product-top,
  .online-product-bottom {
    display: contents;
  }

  .online-product-top h3 {
    grid-area: title;
    margin: 0;
    font-size: clamp(18px, 6.8vw, 24px);
    line-height: .98;
    color: #0f172a;
  }

  .online-product-top strong {
    grid-area: price;
    margin: 0;
    font-size: 20px;
    line-height: 1;
  }

  .online-product-info p {
    grid-area: desc;
    display: -webkit-box;
    margin: -2px 0 0;
    color: #64748b;
    font-size: clamp(13px, 3.8vw, 15px);
    line-height: 1.18;
    font-weight: 850;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .online-product-info p:empty {
    display: none;
  }

  .online-product-badge {
    grid-area: badge;
    align-self: end;
    justify-self: start;
    padding: 6px 10px;
    font-size: 12px;
  }

  .online-product-bottom > span:not(.online-product-badge):empty {
    display: none;
  }

  .online-add-link {
    grid-area: cta;
    justify-self: end;
    align-self: end;
    padding: 9px 14px;
    font-size: 14px;
    line-height: 1;
    min-width: 96px;
    text-align: center;
    border-radius: 999px;
  }
}

/* Online ordering header/nav refinement */
.online-eyebrow {
  display: none;
}
.online-brand p {
  display: block;
  margin: 8px 0 0;
  color: #64748b;
  font-size: clamp(13px, 1.25vw, 17px);
  line-height: 1.35;
  font-weight: 850;
}
.online-layout {
  padding-top: 10px;
}
.online-category-tabs {
  margin-top: 0;
}

@media (max-width: 760px) {
  .online-hero {
    gap: 10px 10px;
    padding: 12px 14px 10px;
    border-bottom-width: 1px;
  }

  .online-brand {
    align-items: flex-start;
  }

  .online-brand > div:last-child {
    min-width: 0;
  }

  .online-brand h1 {
    font-size: clamp(22px, 8.2vw, 34px);
    line-height: .94;
    margin: 0;
  }

  .online-brand p {
    display: block;
    margin-top: 6px;
    font-size: 12px;
    line-height: 1.3;
    font-weight: 850;
  }

  .online-layout {
    padding: 6px 12px 22px;
    gap: 14px;
  }

  .online-menu-area {
    margin-top: -2px;
  }

  .online-category-tabs {
    top: var(--online-category-sticky-top, 96px);
    padding: 8px 8px 8px !important;
    margin-bottom: 10px;
    border-radius: 22px;
  }
}

/* Mobile bottom category nav + stronger subtitle */
.online-brand p {
  color: #475569;
  font-weight: 900;
}

@media (max-width: 760px) {
  .online-brand p {
    display: block;
    margin-top: 8px;
    font-size: 13px;
    line-height: 1.4;
    color: #334155;
    font-weight: 950;
    max-width: 30ch;
  }

  .online-layout {
    padding-bottom: calc(108px + env(safe-area-inset-bottom, 0px));
  }

  .online-menu-area {
    min-width: 0;
  }

  .online-category-tabs {
    position: fixed;
    left: 12px;
    right: 12px;
    bottom: calc(10px + env(safe-area-inset-bottom, 0px));
    top: auto !important;
    z-index: 42;
    margin: 0;
    padding: 10px !important;
    border-radius: 24px;
    border: 1px solid rgba(254, 215, 170, .95);
    background: rgba(255, 247, 237, .96);
    box-shadow: 0 18px 40px rgba(15, 23, 42, .14);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    overflow-x: auto;
    scrollbar-width: none;
  }

  .online-category-tabs::after {
    content: "";
    flex: 0 0 2px;
  }

  .online-category-tab {
    min-height: 48px;
    padding: 9px 15px;
    font-size: 15px;
  }

  .online-category-tab span {
    width: 24px;
    height: 24px;
  }

  .online-section:last-child {
    padding-bottom: 8px;
  }
}

/* Mobile cart modal scroll hard fix */
body.online-modal-locked {
  overflow: hidden;
  touch-action: none;
}

#onlineCartModal.cart-modal-backdrop {
  align-items: center;
  justify-content: center;
  overflow: hidden;
  overscroll-behavior: contain;
}

#onlineCartModal .cart-modal-card {
  width: min(720px, calc(100vw - 24px));
  max-height: calc(100dvh - 24px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 0;
}

#onlineCartModal .cart-modal-head,
#onlineCartModal .cart-modal-total-box {
  flex: 0 0 auto;
}

#onlineCartModal .cart-modal-items {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}

@media (max-width: 760px) {
  #onlineCartModal.cart-modal-backdrop {
    padding: 10px;
    align-items: flex-end;
  }

  #onlineCartModal .cart-modal-card {
    width: 100%;
    height: min(86dvh, calc(100dvh - 20px));
    max-height: calc(100dvh - 20px);
    border-radius: 30px 30px 24px 24px;
  }

  #onlineCartModal .cart-modal-head {
    padding: 18px 20px 12px;
  }

  #onlineCartModal .cart-modal-head .modal-title {
    font-size: 33px;
    line-height: 1;
  }

  #onlineCartModal .cart-modal-close {
    width: 52px;
    height: 52px;
    font-size: 34px;
    flex: 0 0 auto;
  }

  #onlineCartModal .cart-modal-items {
    padding: 12px 14px;
  }

  #onlineCartModal .online-cart-item,
  #onlineCartModal .cart-modal-item {
    margin-bottom: 10px;
  }

  #onlineCartModal .cart-modal-total-box {
    padding: 14px 20px calc(18px + env(safe-area-inset-bottom, 0px));
    box-shadow: 0 -12px 24px rgba(15,23,42,.06);
  }

  #onlineCartModal .total-line {
    margin-bottom: 7px;
  }

  #onlineCartModal .total-line.grand {
    margin: 8px 0 12px;
    font-size: 28px;
  }

  #onlineCartModal .checkout-btn {
    padding: 17px 20px;
    border-radius: 24px;
    font-size: 22px;
  }
}

/* =========================================================
   Kitchen style alignment override
   Match kitchen visuals to the rest of the original warm/light UI
   ========================================================= */
body.kitchen-body {
  background:
    radial-gradient(circle at 8% 0%, rgba(var(--primary-500-rgb),.18), transparent 33%),
    radial-gradient(circle at 95% 15%, rgba(34,197,94,.16), transparent 33%),
    var(--primary-50) !important;
  color: #0f172a !important;
}

body.kitchen-body .kitchen-shell {
  background: transparent !important;
}

body.kitchen-body .kitchen-header {
  background: rgba(255,255,255,.9) !important;
  border-bottom: 3px solid rgba(var(--primary-500-rgb),.22) !important;
  box-shadow: 0 10px 24px rgba(var(--primary-600-rgb),.08);
}

body.kitchen-body .kitchen-mark {
  background: linear-gradient(135deg, var(--orange), var(--red)) !important;
  box-shadow: 0 14px 30px rgba(var(--primary-500-rgb),.22) !important;
}

body.kitchen-body .kitchen-brand h1,
body.kitchen-body .kitchen-brand p,
body.kitchen-body .kitchen-menu-control-head h2,
body.kitchen-body .column-header h2 {
  color: #0f172a !important;
}

body.kitchen-body .kitchen-brand p,
body.kitchen-body .kitchen-menu-control-head p {
  color: #64748b !important;
}

body.kitchen-body .kitchen-pill {
  border: 2px solid var(--primary-200) !important;
  background: #ffffff !important;
  color: var(--primary-800) !important;
  box-shadow: 0 10px 22px rgba(var(--primary-600-rgb),.07) !important;
}

body.kitchen-body .kitchen-status-tabs {
  padding: 14px 18px 0 !important;
}

body.kitchen-body .kitchen-status-tab {
  border: 2px solid rgba(254,215,170,.92) !important;
  background: rgba(255,255,255,.9) !important;
  color: var(--primary-800) !important;
  box-shadow: 0 14px 32px rgba(var(--primary-600-rgb),.08) !important;
}

body.kitchen-body .kitchen-status-tab .tab-count,
body.kitchen-body .column-header span,
body.kitchen-body .completed-toggle span {
  background: var(--primary-50) !important;
  color: var(--primary-800) !important;
}

body.kitchen-body .kitchen-status-tab:not(.is-active) {
  opacity: 1 !important;
}

body.kitchen-body .kitchen-column {
  background: rgba(255,255,255,.76) !important;
  border: 2px solid rgba(254,215,170,.92) !important;
  box-shadow: 0 18px 38px rgba(var(--primary-600-rgb),.08);
}

body.kitchen-body .column-header {
  border-bottom: 2px solid var(--primary-200) !important;
}

body.kitchen-body .status-active .column-header { background: linear-gradient(135deg, var(--primary-500), var(--primary-600)) !important; }
body.kitchen-body .status-scheduled .column-header { background: linear-gradient(135deg, #eab308, var(--primary-500)) !important; }
body.kitchen-body .status-completed .column-header { background: linear-gradient(135deg, #22c55e, #16a34a) !important; }
body.kitchen-body .status-menu-control .column-header,
body.kitchen-body .status-menu .column-header { background: linear-gradient(135deg, #0ea5e9, #2563eb) !important; }

body.kitchen-body .empty-kitchen {
  color: #64748b !important;
  border: 2px dashed var(--primary-200) !important;
  background: rgba(255,255,255,.68);
}

body.kitchen-body .kitchen-order-card,
body.kitchen-body .menu-control-card {
  background: #ffffff !important;
  color: #0f172a !important;
  box-shadow: 0 18px 38px rgba(15,23,42,.12) !important;
}

body.kitchen-body .order-card-top,
body.kitchen-body .menu-control-main {
  border-bottom: 2px solid #e2e8f0 !important;
}

body.kitchen-body .order-number,
body.kitchen-body .menu-control-category,
body.kitchen-body .menu-control-card p,
body.kitchen-body .order-meta span {
  color: #475569 !important;
}

body.kitchen-body .order-meta span {
  background: #e2e8f0 !important;
}

body.kitchen-body .order-total,
body.kitchen-body .kitchen-qty,
body.kitchen-body .menu-item-price {
  color: var(--primary-800) !important;
}

body.kitchen-body .kitchen-item {
  background: #ffffff !important;
  border: 2px solid #e2e8f0 !important;
}

body.kitchen-body .kitchen-mods {
  color: var(--primary-900) !important;
}

body.kitchen-body .kitchen-item-note,
body.kitchen-body .kitchen-notes {
  background: var(--primary-100) !important;
  color: #78350f !important;
}

body.kitchen-body .kitchen-small-btn {
  background: #0f172a !important;
  color: #ffffff !important;
}

body.kitchen-body .completed-toggle {
  border: 2px solid var(--primary-200) !important;
  background: rgba(255,255,255,.9) !important;
  color: var(--primary-800) !important;
}

body.kitchen-body .kitchen-menu-control {
  padding: 18px !important;
}

body.kitchen-body .menu-control-card {
  border-width: 3px !important;
}

body.kitchen-body .menu-control-status {
  background: #dcfce7 !important;
  color: #166534 !important;
}

body.kitchen-body .menu-control-card.is-out {
  background: #fff7f7 !important;
  border-color: var(--primary-600) !important;
}

body.kitchen-body .menu-control-card.is-out .menu-control-status {
  background: #fee2e2 !important;
  color: #991b1b !important;
}

body.kitchen-body .kitchen-toast {
  background: #ffffff !important;
  color: #0f172a !important;
  box-shadow: 0 18px 38px rgba(15,23,42,.14) !important;
}

/* =========================================================
   Admin style alignment override
   Match Admin to the original warm/light UI system
   ========================================================= */
body.admin-body {
  background:
    radial-gradient(circle at 8% 0%, rgba(var(--primary-500-rgb),.18), transparent 33%),
    radial-gradient(circle at 95% 15%, rgba(34,197,94,.12), transparent 33%),
    var(--primary-50) !important;
  color: #0f172a !important;
}

body.admin-body .admin-topbar {
  background: rgba(255,255,255,.92) !important;
  color: #0f172a !important;
  border-bottom: 3px solid rgba(var(--primary-500-rgb),.22) !important;
  box-shadow: 0 10px 24px rgba(var(--primary-600-rgb),.08) !important;
  backdrop-filter: blur(18px) !important;
}

body.admin-body .admin-logo {
  background: linear-gradient(135deg, var(--orange), var(--red)) !important;
  box-shadow: 0 14px 30px rgba(var(--primary-500-rgb),.22) !important;
}

body.admin-body .admin-brand h1 {
  color: #0f172a !important;
}

body.admin-body .admin-brand p {
  color: #64748b !important;
}

body.admin-body .admin-pill {
  color: var(--primary-800) !important;
  border: 2px solid var(--primary-200) !important;
  background: #ffffff !important;
  box-shadow: 0 10px 22px rgba(var(--primary-600-rgb),.07) !important;
}

body.admin-body .admin-pill.danger {
  background: #fff1f2 !important;
  border-color: #fecdd3 !important;
  color: #be123c !important;
}

body.admin-body .admin-stats article,
body.admin-body .admin-panel-head,
body.admin-body .admin-card,
body.admin-body .admin-modal-card,
body.admin-body .location-card,
body.admin-body .time-clock-admin-row,
body.admin-body .weekly-schedule-board,
body.admin-body .staff-admin-layout > section,
body.admin-body .admin-login-card {
  background: rgba(255,255,255,.94) !important;
  border: 2px solid rgba(var(--primary-500-rgb),.16) !important;
  box-shadow: 0 18px 40px rgba(15,23,42,.08) !important;
}

body.admin-body .admin-tab {
  border: 2px solid var(--primary-200) !important;
  background: rgba(255,255,255,.95) !important;
  color: var(--primary-800) !important;
  box-shadow: 0 12px 26px rgba(var(--primary-600-rgb),.07) !important;
}

body.admin-body .admin-tab.is-active {
  background: linear-gradient(135deg, var(--orange), var(--red)) !important;
  color: #ffffff !important;
  border-color: rgba(255,255,255,.8) !important;
}

body.admin-body .admin-primary {
  background: linear-gradient(135deg, #22c55e, #16a34a) !important;
  color: #fff !important;
  box-shadow: 0 18px 34px rgba(22,163,74,.22) !important;
}

body.admin-body .admin-small-btn {
  background: #0f172a !important;
  color: #fff !important;
}
body.admin-body .admin-small-btn.secondary { background: var(--primary-500) !important; }
body.admin-body .admin-small-btn.gray { background: #64748b !important; }
body.admin-body .admin-small-btn.danger { background: #dc2626 !important; }
body.admin-body .admin-small-btn.good { background: #16a34a !important; }

body.admin-body .admin-item-preview,
body.admin-body .admin-form-preview.admin-item-preview {
  background:
    radial-gradient(circle at 22% 18%, rgba(255,255,255,.8), transparent 24%),
    linear-gradient(135deg, var(--primary-400), var(--primary-600)) !important;
}

body.admin-body .admin-chip,
body.admin-body .location-card.is-current-location .admin-chip,
body.admin-body .location-card.is-selected-location .admin-chip,
body.admin-body .location-card .admin-chip {
  background: var(--primary-100) !important;
  color: var(--primary-800) !important;
}

body.admin-body .admin-price,
body.admin-body .time-clock-admin-row strong,
body.admin-body .admin-panel-head h2,
body.admin-body .admin-card h3,
body.admin-body .admin-stats strong {
  color: #0f172a !important;
}

body.admin-body .admin-card p,
body.admin-body .admin-panel-head p,
body.admin-body .admin-stats span,
body.admin-body .admin-section-minihead p,
body.admin-body .time-clock-admin-row span,
body.admin-body .time-clock-admin-row p,
body.admin-body .staff-card p,
body.admin-body .menu-control-category {
  color: #64748b !important;
}

body.admin-body .admin-price {
  color: var(--primary-800) !important;
}

body.admin-body .admin-form input,
body.admin-body .admin-form select,
body.admin-body .admin-form textarea,
body.admin-body .admin-login-form input,
body.admin-body .admin-location-switcher select,
body.admin-body .admin-modal-card input,
body.admin-body .admin-modal-card select,
body.admin-body .admin-modal-card textarea {
  border: 2px solid #e2e8f0 !important;
  background: #ffffff !important;
  color: #0f172a !important;
}

body.admin-body .admin-check-grid label,
body.admin-body .admin-toggle-check {
  border-color: #e2e8f0 !important;
  background: #fff !important;
}

body.admin-body .admin-location-switcher {
  background: rgba(255,255,255,.96) !important;
  border: 2px solid var(--primary-200) !important;
  box-shadow: 0 10px 22px rgba(var(--primary-600-rgb),.07) !important;
}

body.admin-body .admin-location-switcher label,
body.admin-body .admin-location-switcher span {
  color: var(--primary-800) !important;
}

body.admin-body .admin-location-switcher select {
  background: var(--primary-50) !important;
}

body.admin-body .location-card.is-current-location,
body.admin-body .location-card.is-selected-location {
  border-color: var(--orange) !important;
  box-shadow: 0 20px 45px rgba(var(--primary-500-rgb),.16) !important;
}

body.admin-body .admin-menu-tools .admin-secondary,
body.admin-body .admin-menu-tools .admin-file-trigger,
body.admin-body .admin-menu-tools .admin-link-button {
  border: 3px solid var(--primary-200) !important;
  background: var(--primary-50) !important;
  color: var(--primary-800) !important;
}

body.admin-body .admin-secondary,
body.admin-body button.admin-secondary,
body.admin-body .admin-form-actions .admin-secondary,
body.admin-body .admin-modal-card .admin-actions .admin-secondary,
body.admin-body .admin-modal-card button.admin-secondary,
body.admin-body .admin-modal-card .admin-action-row .admin-secondary {
  border: 3px solid #cbd5e1 !important;
  background: #e2e8f0 !important;
  color: #334155 !important;
}

body.admin-body .admin-modal {
  background: rgba(15,23,42,.72) !important;
}

body.admin-body .admin-modal-close {
  background: #fee2e2 !important;
  color: #991b1b !important;
}

body.admin-body .admin-toast {
  background: #0f172a !important;
  color: #fff !important;
}

/* Kitchen logout badge should match POS */
.kitchen-header .device-user-indicator {
  background: rgba(255,255,255,.92) !important;
  border-color: var(--primary-200) !important;
  color: #0f172a !important;
  box-shadow: 0 10px 22px rgba(var(--primary-600-rgb),.07), inset 0 0 0 1px rgba(255,255,255,.25) !important;
}
.kitchen-header .device-user-indicator span {
  color: #64748b !important;
}
.kitchen-header .device-user-indicator strong {
  color: #0f172a !important;
}
.kitchen-header .device-user-indicator button {
  background: rgba(239,68,68,.95) !important;
  color: #fff !important;
}

/* =========================================================
   Kiosk button shadow cleanup
   Remove box-shadows from kiosk cart and category buttons
   ========================================================= */
.header-cart-btn,
.header-cart-icon,
.category-tab,
.category-tab span,
.category-tab.active,
.category-tab.active span {
  box-shadow: none !important;
}


/* =========================================================
   Device background + header name sizing updates
   ========================================================= */
body,
body.pos-body,
body.kitchen-body,
body.admin-body,
body.online-body,
body.lobby-body,
body.admin-login-body,
body.legal-body {
  background: #F3F3F3 !important;
}

.kiosk-shell,
.pos-shell,
.kitchen-shell,
.online-shell,
.lobby-shell,
.admin-shell {
  background: transparent !important;
}

.pos-brand h1 {
  font-size: clamp(21px, 2.25vw, 32px) !important;
}

.kitchen-brand h1,
body.kitchen-body .kitchen-brand h1 {
  font-size: clamp(20px, 2.15vw, 28px) !important;
}

@media (max-width: 760px) {
  .pos-brand h1 { font-size: 20px !important; }
  .kitchen-brand h1,
  body.kitchen-body .kitchen-brand h1 { font-size: 20px !important; }
}

/* POS/Kitchen order card header sizing + Kitchen active tabs */
body.pos-body .pos-order-card .order-card-title-row,
body.kitchen-body .kitchen-order-card .order-card-title-row {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  flex-wrap: nowrap !important;
  min-width: 0 !important;
}

body.pos-body .pos-order-card .order-card-title-row .kitchen-customer-name,
body.kitchen-body .kitchen-order-card .order-card-title-row .kitchen-customer-name {
  font-size: clamp(30px, 2.65vw, 40px) !important;
  line-height: 1 !important;
  letter-spacing: -.045em !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  flex: 1 1 auto !important;
  min-width: 0 !important;
}

body.pos-body .pos-order-card .order-card-title-row .order-number,
body.kitchen-body .kitchen-order-card .order-card-title-row .order-number {
  margin-top: 0 !important;
  font-size: clamp(24px, 2.05vw, 32px) !important;
  line-height: 1 !important;
  letter-spacing: -.035em !important;
  white-space: nowrap !important;
  flex: 0 0 auto !important;
}

body.kitchen-body .kitchen-status-tab.is-active {
  background: linear-gradient(135deg, var(--orange), var(--red)) !important;
  color: #ffffff !important;
  border-color: rgba(255,255,255,.78) !important;
  box-shadow: 0 14px 32px rgba(var(--primary-500-rgb),.18) !important;
}

body.kitchen-body .kitchen-status-tab.is-active .tab-count {
  background: rgba(255,255,255,.23) !important;
  color: #ffffff !important;
}

body.kitchen-body .kitchen-status-tab.tab-scheduled.is-active,
body.kitchen-body .kitchen-status-tab.tab-completed.is-active,
body.kitchen-body .kitchen-status-tab.tab-menu-control.is-active {
  background: linear-gradient(135deg, var(--orange), var(--red)) !important;
}

@media (max-width: 900px) {
  body.pos-body .pos-order-card .order-card-title-row .kitchen-customer-name,
  body.kitchen-body .kitchen-order-card .order-card-title-row .kitchen-customer-name {
    font-size: clamp(24px, 5vw, 34px) !important;
  }
  body.pos-body .pos-order-card .order-card-title-row .order-number,
  body.kitchen-body .kitchen-order-card .order-card-title-row .order-number {
    font-size: clamp(20px, 4vw, 28px) !important;
  }
}

/* Staff admin cleanup: contained, consistent cards */
body.admin-body .staff-admin-layout {
  gap: 22px !important;
}

body.admin-body .staff-admin-layout > section {
  padding: 20px !important;
  border-radius: 30px !important;
  overflow: hidden !important;
}

body.admin-body .staff-admin-layout .admin-section-minihead {
  display: flex !important;
  align-items: flex-end !important;
  justify-content: space-between !important;
  gap: 14px !important;
  margin: 0 0 16px !important;
  padding-bottom: 12px !important;
  border-bottom: 2px solid rgba(var(--primary-500-rgb),.16) !important;
}

body.admin-body .staff-admin-layout .admin-section-minihead h3 {
  margin: 0 !important;
  font-size: 26px !important;
  line-height: 1 !important;
}

body.admin-body .staff-admin-layout .admin-section-minihead p {
  margin: 0 !important;
  font-size: 14px !important;
}

body.admin-body .admin-staff-grid {
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
  gap: 14px !important;
}

body.admin-body .staff-card {
  border-color: rgba(var(--primary-500-rgb),.20) !important;
  box-shadow: 0 10px 24px rgba(15,23,42,.06) !important;
}

body.admin-body .staff-card .admin-card-top {
  align-items: flex-start !important;
  gap: 12px !important;
}

body.admin-body .staff-card h3 {
  font-size: 22px !important;
}

body.admin-body .staff-contact-list {
  gap: 5px !important;
  margin: 12px 0 0 !important;
}

body.admin-body .staff-contact-list p {
  margin: 0 !important;
  font-size: 14px !important;
  line-height: 1.25 !important;
}

body.admin-body .weekly-schedule-board {
  width: 100% !important;
  display: grid !important;
  grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
  gap: 10px !important;
  overflow: visible !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

body.admin-body .schedule-day-card {
  min-width: 0 !important;
  padding: 12px !important;
  border-radius: 20px !important;
  box-shadow: none !important;
  background: #fff !important;
  border: 2px solid rgba(var(--primary-500-rgb),.18) !important;
}

body.admin-body .schedule-day-card h4 {
  margin: 0 0 10px !important;
  font-size: 14px !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

body.admin-body .schedule-empty {
  padding: 10px 8px !important;
  border-radius: 14px !important;
  font-size: 12px !important;
  line-height: 1 !important;
}

body.admin-body .schedule-shift {
  padding: 10px !important;
  border-radius: 16px !important;
}

body.admin-body .schedule-shift strong {
  font-size: 13px !important;
}

body.admin-body .schedule-shift span {
  font-size: 14px !important;
}

body.admin-body .schedule-actions {
  grid-template-columns: 1fr !important;
  gap: 6px !important;
}

body.admin-body .time-clock-admin-list {
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)) !important;
  gap: 12px !important;
}

body.admin-body .time-clock-admin-row {
  box-shadow: 0 10px 24px rgba(15,23,42,.06) !important;
  border-color: rgba(var(--primary-500-rgb),.18) !important;
}

@media (max-width: 1100px) {
  body.admin-body .weekly-schedule-board {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 720px) {
  body.admin-body .staff-admin-layout > section {
    padding: 16px !important;
    border-radius: 24px !important;
  }

  body.admin-body .staff-admin-layout .admin-section-minihead {
    display: block !important;
  }

  body.admin-body .weekly-schedule-board {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}


/* POS/Kitchen order sections: 3 columns on wide screens, 2 on tablets, 1 on mobile. */
@media (min-width: 1180px) {
  .pos-panel[data-pos-panel="active"] .pos-order-grid,
  .pos-panel[data-pos-panel="scheduled"] .pos-order-grid,
  .pos-panel[data-pos-panel="completed"] .pos-order-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  body.kitchen-body .kitchen-column.is-active .order-stack,
  .kitchen-column.is-active .order-stack {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (min-width: 761px) and (max-width: 1179px) {
  .pos-panel[data-pos-panel="active"] .pos-order-grid,
  .pos-panel[data-pos-panel="scheduled"] .pos-order-grid,
  .pos-panel[data-pos-panel="completed"] .pos-order-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.kitchen-body .kitchen-column.is-active .order-stack,
  .kitchen-column.is-active .order-stack {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 760px) {
  .pos-panel[data-pos-panel="active"] .pos-order-grid,
  .pos-panel[data-pos-panel="scheduled"] .pos-order-grid,
  .pos-panel[data-pos-panel="completed"] .pos-order-grid,
  body.kitchen-body .kitchen-column.is-active .order-stack,
  .kitchen-column.is-active .order-stack {
    grid-template-columns: 1fr !important;
  }
}


/* POS/Kitchen order cards: stack order number under name and hide top-right card total */
body.pos-body .pos-order-card .order-card-top,
body.kitchen-body .kitchen-order-card .order-card-top {
  justify-content: flex-start !important;
}

body.pos-body .pos-order-card .order-total,
body.kitchen-body .kitchen-order-card .order-total {
  display: none !important;
}

body.pos-body .pos-order-card .order-card-title-row,
body.kitchen-body .kitchen-order-card .order-card-title-row {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 5px !important;
  min-width: 0 !important;
}

body.pos-body .pos-order-card .order-card-title-row .kitchen-customer-name,
body.kitchen-body .kitchen-order-card .order-card-title-row .kitchen-customer-name {
  width: 100% !important;
  max-width: 100% !important;
  flex: 0 1 auto !important;
}

body.pos-body .pos-order-card .order-card-title-row .order-number,
body.kitchen-body .kitchen-order-card .order-card-title-row .order-number {
  margin-top: 0 !important;
  flex: 0 0 auto !important;
  color: #475569 !important;
}


/* Theme-token overrides */
.theme-preview-chip { display:inline-flex; align-items:center; gap:8px; font-weight:1000; color:var(--primary-800); }
.theme-preview-chip::before { content:""; width:18px; height:18px; border-radius:999px; background:linear-gradient(135deg,var(--primary-400),var(--primary-700)); box-shadow:0 0 0 4px var(--primary-100); }
.admin-primary, .checkout-btn, .primary-btn { background: linear-gradient(135deg, var(--primary-500), var(--primary-700)); }
.admin-secondary, .admin-tab, .pos-tab, .kitchen-status-tab, .online-category-tab, .category-tab { border-color: var(--primary-200); color: var(--primary-800); }
.admin-tab.is-active, .pos-tab.is-active, .kitchen-status-tab.is-active, .online-category-tab.is-active, .category-tab.is-active { background: linear-gradient(135deg, var(--primary-500), var(--primary-700)); color:#fff; border-color: transparent; }
.settings-card, .admin-card, .admin-stat, .online-product-card, .product-card, .kitchen-order-card, .pos-order-card { border-color: var(--primary-200); }


/* Online ordering cleanup: neutral category rail and improved full-width closed card */
.online-category-tabs {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

@media (max-width: 760px) {
  .online-category-tabs {
    background: rgba(255,255,255,.72) !important;
    border: 0 !important;
    box-shadow: none !important;
  }
}

.closed-ordering-card {
  width: 100% !important;
  max-width: none !important;
  border: 2px solid #fecaca !important;
  border-radius: 36px !important;
  padding: 40px 44px !important;
  margin: 0 0 18px !important;
  background: linear-gradient(135deg, #fff5f5 0%, #ffffff 100%) !important;
  box-shadow: 0 20px 48px rgba(15, 23, 42, .08) !important;
}
.closed-ordering-card h1 {
  font-size: clamp(40px, 5vw, 68px) !important;
  line-height: .95 !important;
  margin: 0 0 18px !important;
  color: #b91c1c !important;
}
.closed-ordering-card p {
  font-size: clamp(20px, 2vw, 28px) !important;
  line-height: 1.35 !important;
  font-weight: 850 !important;
  color: #475569 !important;
  margin: 0 0 10px !important;
}
.closed-ordering-card p:last-child {
  margin-bottom: 0 !important;
}
@media (max-width: 760px) {
  .closed-ordering-card {
    border-radius: 28px !important;
    padding: 28px 24px !important;
  }
  .closed-ordering-card h1 {
    font-size: clamp(32px, 10vw, 48px) !important;
  }
  .closed-ordering-card p {
    font-size: 18px !important;
  }
}


/* Online closed banner redesign */
.closed-ordering-card {
  width: 100% !important;
  max-width: none !important;
  min-height: 150px !important;
  height: 150px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: flex-start !important;
  gap: 8px !important;
  border: 0 !important;
  border-radius: 28px !important;
  padding: 22px 30px !important;
  margin: 0 0 18px !important;
  background: #7f1d1d !important;
  box-shadow: 0 18px 34px rgba(127, 29, 29, .18) !important;
}
.closed-ordering-card h1 {
  margin: 0 !important;
  font-size: clamp(28px, 3vw, 46px) !important;
  line-height: .95 !important;
  font-weight: 1000 !important;
  letter-spacing: -.05em !important;
  color: #ffffff !important;
}
.closed-ordering-card p {
  margin: 0 !important;
  font-size: clamp(14px, 1.1vw, 18px) !important;
  line-height: 1.25 !important;
  font-weight: 900 !important;
  color: rgba(255,255,255,.98) !important;
}
.closed-ordering-card .closed-ordering-inline {
  white-space: normal !important;
}
@media (max-width: 760px) {
  .closed-ordering-card {
    min-height: 150px !important;
    height: auto !important;
    padding: 18px 18px !important;
    border-radius: 22px !important;
    gap: 6px !important;
  }
  .closed-ordering-card h1 {
    font-size: clamp(24px, 7vw, 34px) !important;
  }
  .closed-ordering-card p {
    font-size: 14px !important;
  }
}

/* Primary theme propagation fixes for Kitchen and login screens */
body.kitchen-body .kitchen-status-tab {
  border-color: var(--primary-200) !important;
  background: rgba(255,255,255,.95) !important;
  color: var(--primary-800) !important;
  box-shadow: 0 12px 26px rgba(var(--primary-600-rgb),.07) !important;
}
body.kitchen-body .kitchen-status-tab .tab-count {
  background: var(--primary-50) !important;
  color: var(--primary-800) !important;
}
body.kitchen-body .kitchen-status-tab.is-active,
body.kitchen-body .kitchen-status-tab.tab-active.is-active,
body.kitchen-body .kitchen-status-tab.tab-scheduled.is-active,
body.kitchen-body .kitchen-status-tab.tab-completed.is-active,
body.kitchen-body .kitchen-status-tab.tab-menu-control.is-active {
  background: linear-gradient(135deg, var(--primary-500), var(--primary-700)) !important;
  color: #ffffff !important;
  border-color: transparent !important;
  box-shadow: 0 16px 34px rgba(var(--primary-600-rgb),.24) !important;
}
body.kitchen-body .kitchen-status-tab.is-active .tab-count {
  background: rgba(255,255,255,.22) !important;
  color: #ffffff !important;
}
body.kitchen-body .kitchen-pill,
body.kitchen-body .kitchen-modal-input,
body.kitchen-body .time-clock-status-box,
body.kitchen-body .kitchen-modal-card {
  border-color: var(--primary-200) !important;
}
body.kitchen-body .kitchen-action-btn.start,
body.kitchen-body .kitchen-action-btn.done,
body.kitchen-body .kitchen-modal-actions .done,
body.kitchen-body .prep-save,
body.kitchen-body .printer-save {
  background: linear-gradient(135deg, var(--primary-500), var(--primary-700)) !important;
  color: #ffffff !important;
}

body.admin-login-body .admin-login-card,
.device-login-card {
  border: 2px solid var(--primary-200) !important;
}
body.admin-login-body .admin-login-logo,
.device-login-icon,
body.admin-login-body .admin-login-form button,
.device-login-card button:not(.device-login-clear) {
  background: linear-gradient(135deg, var(--primary-500), var(--primary-700)) !important;
  color: #ffffff !important;
}
body.admin-login-body .admin-login-form input,
.device-login-card input {
  border-color: var(--primary-200) !important;
  background: var(--primary-50) !important;
}
body.admin-login-body .admin-login-form input:focus,
.device-login-card input:focus {
  border-color: var(--primary-500) !important;
  box-shadow: 0 0 0 4px rgba(var(--primary-500-rgb), .16) !important;
}
body.admin-login-body .admin-login-link,
.device-login-card .device-login-clear {
  color: var(--primary-800) !important;
}
.device-login-backdrop {
  background:
    radial-gradient(circle at 20% 10%, rgba(var(--primary-500-rgb),.34), transparent 34%),
    radial-gradient(circle at 80% 90%, rgba(var(--primary-600-rgb),.24), transparent 34%),
    rgba(15, 23, 42, .92) !important;
}


/* Online product titles stay neutral, not primary-theme colored */
.online-product-top h3 {
  color: #0f172a !important;
}
@media (max-width: 760px) {
  .online-product-top h3 {
    color: #0f172a !important;
  }
}

/* Online checkout mobile containment + scheduled datetime fix */
#onlineCheckoutModal {
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}

#onlineCheckoutModal .modal-card {
  width: min(860px, calc(100vw - 24px));
}

#onlineScheduledAt {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

@media (max-width: 760px) {
  #onlineCheckoutModal {
    align-items: flex-start;
    justify-content: center;
    padding: 10px 8px calc(96px + env(safe-area-inset-bottom, 0px));
  }

  #onlineCheckoutModal .modal-card {
    width: calc(100vw - 16px);
    max-height: none;
    overflow: visible;
    margin: 0 auto calc(110px + env(safe-area-inset-bottom, 0px));
    padding: 22px 20px calc(34px + env(safe-area-inset-bottom, 0px));
    border-radius: 28px;
  }

  #onlineCheckoutModal .big-input,
  #onlineCheckoutModal .big-textarea,
  #onlineCheckoutModal .order-type-select {
    max-width: 100%;
    min-width: 0;
    font-size: 19px;
    padding: 16px 16px;
  }

  #onlineCheckoutModal input[type="datetime-local"] {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    font-size: 16px;
    line-height: 1.15;
    padding: 15px 12px;
    text-align: left;
    -webkit-appearance: none;
    appearance: none;
  }

  .online-scheduled-fields {
    padding: 14px 12px;
    overflow: hidden;
  }

  #onlineCheckoutModal .modal-actions {
    position: sticky;
    bottom: 0;
    z-index: 5;
    margin: 22px -20px calc(-34px - env(safe-area-inset-bottom, 0px));
    padding: 14px 20px calc(20px + env(safe-area-inset-bottom, 0px));
    background: linear-gradient(180deg, rgba(255,255,255,.88), #ffffff 30%);
    border-top: 2px solid rgba(226,232,240,.85);
  }
}


/* Online ordering closed-store scheduling mode */
.online-schedule-toggle label.is-disabled {
  opacity: .48;
  cursor: not-allowed;
}
.online-schedule-toggle label.is-disabled input {
  cursor: not-allowed;
}


/* POS Menu tab uses the Kitchen Menu Control feature */
body.pos-body .pos-menu-control {
  height: 100%;
  min-height: 0;
  padding: 0;
}
body.pos-body .kitchen-menu-control-head h2 {
  color: #0f172a;
}
body.pos-body .kitchen-menu-control-head p,
body.pos-body .menu-control-card p,
body.pos-body .menu-control-category {
  color: #475569;
}
body.pos-body .kitchen-menu-control-list {
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}
body.pos-body .menu-control-card {
  box-shadow: 0 18px 38px rgba(15,23,42,.10);
}
@media (min-width: 761px) {
  body.pos-body .pos-tabs {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  body.pos-body .pos-tab {
    white-space: nowrap;
  }
}
@media (max-width: 1180px) and (min-width: 761px) {
  body.pos-body .pos-tab {
    min-height: 58px;
    padding: 8px 7px;
    border-radius: 18px;
    font-size: clamp(12px, 1.55vw, 17px);
    gap: 5px;
  }
  body.pos-body .pos-tab span {
    min-width: 26px;
    height: 26px;
    border-radius: 10px;
  }
}

/* Mobile online category/footer + checkout polish */
.confirm-number {
  white-space: nowrap !important;
  overflow-wrap: normal !important;
  word-break: keep-all !important;
  font-size: clamp(42px, 11vw, 58px) !important;
  line-height: 1.04 !important;
  letter-spacing: -.065em !important;
}

.cancel-btn {
  min-height: 68px !important;
  padding: 18px 22px !important;
  border-radius: 26px !important;
  background: #0f172a !important;
  color: #f8fafc !important;
  box-shadow: none !important;
}

.tip-custom-input {
  font-variant-numeric: tabular-nums;
}

@media (max-width: 760px) {
  .online-layout {
    padding-bottom: calc(122px + env(safe-area-inset-bottom, 0px)) !important;
  }

  .online-legal-footer {
    padding-bottom: calc(128px + env(safe-area-inset-bottom, 0px)) !important;
  }

  .online-category-tabs {
    background: rgba(15, 23, 42, .96) !important;
    border: 1px solid rgba(255,255,255,.10) !important;
    box-shadow: 0 18px 44px rgba(15, 23, 42, .30) !important;
  }

  .online-category-tab {
    background: #ffffff !important;
  }

  .online-category-tab.is-active {
    background: linear-gradient(135deg, var(--primary-500), var(--primary-700)) !important;
  }

  .confirm-number {
    font-size: clamp(40px, 10.4vw, 50px) !important;
  }
}

/* Mobile online category nav repositioned under header */
@media (max-width: 760px) {
  .online-layout {
    padding-bottom: 24px !important;
  }

  .online-legal-footer {
    padding-bottom: calc(34px + env(safe-area-inset-bottom, 0px)) !important;
  }

  .online-legal-footer {
    row-gap: 10px !important;
    column-gap: 18px !important;
    text-align: center !important;
  }

  .online-legal-footer > span,
  .online-legal-footer > a[href="privacy.php"] {
    flex: 0 0 100% !important;
    width: 100% !important;
    text-align: center !important;
  }

  .online-category-tabs {
    position: sticky !important;
    top: var(--online-category-sticky-top, 96px) !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    z-index: 34 !important;
    width: 100vw !important;
    max-width: 100vw !important;
    margin: 0 calc(50% - 50vw) 16px !important;
    padding: 12px 12px 12px !important;
    border-radius: 0 !important;
    border: 0 !important;
    border-top: 1px solid rgba(255,255,255,.08) !important;
    border-bottom: 1px solid rgba(255,255,255,.08) !important;
    background: rgba(15, 23, 42, .98) !important;
    box-shadow: 0 14px 28px rgba(15, 23, 42, .16) !important;
    backdrop-filter: blur(14px) !important;
    -webkit-backdrop-filter: blur(14px) !important;
  }

  .online-category-tab {
    min-height: 48px;
    padding: 9px 15px;
    background: rgba(255,255,255,.98) !important;
    color: var(--primary-800) !important;
  }

  .online-category-tab.active {
    background: linear-gradient(135deg, var(--primary-500), var(--primary-700)) !important;
    color: #ffffff !important;
    border-color: rgba(255,255,255,.24) !important;
  }

  .online-category-tab.active span {
    background: rgba(255,255,255,.22) !important;
    color: #ffffff !important;
  }
}


/* Mobile online category bar hugs header */
@media (max-width: 760px) {
  .online-layout {
    padding-top: 0 !important;
  }

  .online-menu-area {
    margin-top: 0 !important;
  }

  .online-category-tabs {
    margin: 0 calc(50% - 50vw) 16px !important;
  }
}

/* Online header solid + open/closed hours badge colors */
.online-hero {
  background: #ffffff !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.online-hours-card.is-open .online-hours-toggle {
  background: #16a34a !important;
  color: #f0fdf4 !important;
  box-shadow: 0 14px 28px rgba(22, 163, 74, .22) !important;
}

.online-hours-card.is-open .online-hours-toggle strong,
.online-hours-card.is-open .online-hours-toggle em {
  color: #f0fdf4 !important;
}

.online-hours-card.is-open .hours-dot.open {
  background: #dcfce7 !important;
  box-shadow: 0 0 0 5px rgba(220,252,231,.28) !important;
}

.online-hours-card.is-closed .online-hours-toggle {
  background: #dc2626 !important;
  color: #fef2f2 !important;
  box-shadow: 0 14px 28px rgba(220, 38, 38, .22) !important;
}

.online-hours-card.is-closed .online-hours-toggle strong,
.online-hours-card.is-closed .online-hours-toggle em {
  color: #fef2f2 !important;
}

.online-hours-card.is-closed .hours-dot.closed {
  background: #fee2e2 !important;
  box-shadow: 0 0 0 5px rgba(254,226,226,.28) !important;
}


/* Remove legacy closed banner + header drop shadows */
.closed-ordering-card {
  display: none !important;
}

.online-hero,
.online-hours-toggle,
.online-cart-button {
  box-shadow: none !important;
}

.online-hours-card.is-open .online-hours-toggle,
.online-hours-card.is-closed .online-hours-toggle {
  box-shadow: none !important;
}

/* Checkout buttons scroll with form + remove place order shadow */
#onlineCheckoutModal .primary-btn {
  box-shadow: none !important;
}

@media (max-width: 760px) {
  #onlineCheckoutModal .modal-actions {
    position: static !important;
    bottom: auto !important;
    z-index: auto !important;
    margin: 24px 0 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border-top: 0 !important;
  }

  #onlineCheckoutModal .modal-card {
    padding-bottom: calc(24px + env(safe-area-inset-bottom, 0px)) !important;
  }
}


/* Online payment placeholder page */
.online-payment-card {
  width: min(860px, calc(100vw - 24px));
  max-height: calc(100dvh - 24px);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.online-payment-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

#onlinePaymentModal .primary-btn {
  box-shadow: none !important;
}

@media (max-width: 760px) {
  #onlinePaymentModal {
    align-items: flex-start;
    padding: 10px 8px calc(20px + env(safe-area-inset-bottom, 0px));
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  .online-payment-card {
    width: calc(100vw - 16px);
    max-height: none;
    overflow: visible;
    border-radius: 28px;
    padding: 22px 20px calc(24px + env(safe-area-inset-bottom, 0px));
  }

  .online-payment-row {
    grid-template-columns: 1fr;
  }

  #onlinePaymentModal .modal-actions {
    position: static !important;
    margin-top: 24px !important;
    padding: 0 !important;
    background: transparent !important;
    border-top: 0 !important;
  }
}


/* Payment page helper note under labels */
.input-label .label-note {
  display: block;
  margin-top: 4px;
  color: #64748b;
  font-size: 13px;
  line-height: 1.25;
  font-weight: 850;
}


/* Online cart icon: flat white SVG for visibility */
.online-cart-icon {
  width: 26px;
  height: 26px;
  display: inline-grid;
  place-items: center;
  color: #ffffff;
  flex: 0 0 auto;
}

.online-cart-icon svg {
  width: 100%;
  height: 100%;
  display: block;
}

.online-cart-button span:not(.online-cart-icon) {
  font-size: 24px;
}

.pos-printer-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 14px;
}

@media (max-width: 760px) {
  .pos-printer-actions {
    grid-template-columns: 1fr;
  }
}

/* Settings-tab device logout cleanup */
.device-user-indicator-compact {
  grid-template-columns: minmax(0, 1fr) !important;
  min-width: 170px;
  max-width: 245px;
  padding-right: 12px !important;
}
.device-user-indicator-compact span,
.device-user-indicator-compact strong {
  grid-column: 1 !important;
}
.danger-settings-btn {
  width: 100%;
  border: 0;
  border-radius: 18px;
  padding: 15px 18px;
  background: linear-gradient(135deg, #ef4444, #be123c);
  color: #ffffff;
  font-size: 18px;
  font-weight: 1000;
  box-shadow: 0 16px 30px rgba(190,18,60,.18);
}
.device-settings-card {
  align-self: start;
}
body.kitchen-body .kitchen-status-tabs {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}
.kitchen-status-tab.tab-settings.is-active {
  background: linear-gradient(135deg, #64748b, #0f172a);
  border-color: rgba(255,255,255,.22);
}
body.kitchen-body .kitchen-status-tab.tab-settings.is-active {
  background: linear-gradient(135deg, #64748b, #0f172a) !important;
  color: #ffffff !important;
}
body.kitchen-body .kitchen-status-tab.tab-settings.is-active .tab-label {
  color: #ffffff !important;
}
.status-settings {
  background: rgba(255,255,255,.76) !important;
  border: 2px solid rgba(254,215,170,.92) !important;
}
.kitchen-settings-panel {
  padding: 20px;
  overflow: auto;
}
.kitchen-settings-card {
  max-width: 760px;
}
.settings-button-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  align-items: stretch;
}
.settings-button-grid .primary-btn,
.settings-button-grid .danger-settings-btn {
  margin-top: 0 !important;
  min-height: 58px;
}
@media (max-width: 980px) {
  body.kitchen-body .kitchen-status-tabs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .settings-button-grid {
    grid-template-columns: 1fr;
  }
}


/* v1.3.5: Kitchen/POS header cleanup and matching tablet nav sizing */
.pos-header .device-user-indicator,
.kitchen-header .device-user-indicator {
  display: none !important;
}

body.kitchen-body .kitchen-status-tabs {
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 10px !important;
  padding: 14px 18px 0 !important;
}

body.kitchen-body .kitchen-status-tab {
  min-height: 62px !important;
  padding: 9px 10px !important;
  border-radius: 22px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
}

body.kitchen-body .kitchen-status-tab .tab-label {
  font-size: clamp(14px, 1.35vw, 20px) !important;
  font-weight: 1000 !important;
  letter-spacing: -.04em !important;
  line-height: .98 !important;
  text-align: center !important;
}

body.kitchen-body .kitchen-status-tab .tab-count {
  min-width: 32px !important;
  width: auto !important;
  height: 32px !important;
  border-radius: 12px !important;
  font-size: 18px !important;
  flex: 0 0 auto !important;
}

@media (max-width: 1180px) and (min-width: 761px) {
  body.kitchen-body .kitchen-status-tab {
    min-height: 58px !important;
    padding: 8px 7px !important;
    border-radius: 18px !important;
    gap: 5px !important;
  }
  body.kitchen-body .kitchen-status-tab .tab-label {
    font-size: clamp(12px, 1.55vw, 17px) !important;
  }
  body.kitchen-body .kitchen-status-tab .tab-count {
    min-width: 26px !important;
    height: 26px !important;
    border-radius: 10px !important;
    font-size: 15px !important;
  }
}

@media (max-width: 980px) {
  body.kitchen-body .kitchen-status-tabs {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  }
}

/* Staff on-clock indicator for POS and Kitchen */
.staff-clock-pill {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  white-space: nowrap !important;
  padding: 12px 14px !important;
  font-size: 15px !important;
  min-width: 132px !important;
  background: #ffffff !important;
  color: var(--primary-800) !important;
  border: 2px solid var(--primary-200) !important;
  box-shadow: 0 10px 22px rgba(var(--primary-600-rgb),.07) !important;
}

.staff-clock-pill span {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 28px !important;
  min-height: 28px !important;
  padding: 0 8px !important;
  border-radius: 999px !important;
  background: #e0f2fe !important;
  color: #075985 !important;
  font-weight: 1000 !important;
}

.staff-clock-pill.has-staff-on-clock {
  background: linear-gradient(135deg, #0ea5e9, #2563eb) !important;
  color: #ffffff !important;
  border-color: rgba(255,255,255,.22) !important;
}

.staff-clock-pill.has-staff-on-clock span {
  background: rgba(255,255,255,.22) !important;
  color: #ffffff !important;
}

.staff-clock-tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 4px;
}

.time-clock-status-box .staff-clock-tag {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  width: auto;
  min-width: 126px;
  padding: 10px 12px;
  border-radius: 16px;
  background: #ffffff;
  border: 2px solid #bae6fd;
  color: #0f172a;
}

.time-clock-status-box .staff-clock-tag b {
  font-size: 15px;
  font-weight: 1000;
  line-height: 1.05;
}

.time-clock-status-box .staff-clock-tag small {
  font-size: 12px;
  font-weight: 850;
  color: #64748b;
}

@media (max-width: 980px) {
  .staff-clock-pill {
    min-width: auto !important;
    padding: 11px 12px !important;
    font-size: 14px !important;
  }
}

/* Clock button now carries the current staff-on-clock count. */
.time-clock-pill {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  white-space: nowrap !important;
}

.time-clock-pill .time-clock-count {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 28px !important;
  min-height: 28px !important;
  padding: 0 8px !important;
  margin-left: 2px !important;
  border-radius: 999px !important;
  background: linear-gradient(135deg, #3b82f6, #1d4ed8) !important;
  color: #ffffff !important;
  font-weight: 1000 !important;
  line-height: 1 !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 8px 18px rgba(37,99,235,.22) !important;
}

.time-clock-pill.has-staff-on-clock .time-clock-count {
  background: linear-gradient(135deg, #2563eb, #1e40af) !important;
}

/* =========================================================
   POS mobile cleanup: free page scroll + compact navigation
   ========================================================= */
@media (max-width: 760px) {
  html:has(body.pos-body),
  body.pos-body {
    height: auto !important;
    min-height: 100% !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }

  body.pos-body .pos-shell {
    height: auto !important;
    min-height: 100dvh !important;
    overflow: visible !important;
  }

  body.pos-body .pos-header {
    position: sticky !important;
    top: 0 !important;
    z-index: 60 !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    align-items: stretch !important;
    padding: max(10px, env(safe-area-inset-top)) 10px 10px !important;
  }

  body.pos-body .pos-brand {
    width: 100% !important;
    min-width: 0 !important;
  }

  body.pos-body .pos-brand h1 {
    font-size: clamp(19px, 6vw, 24px) !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  body.pos-body .pos-brand p {
    font-size: 12px !important;
    line-height: 1.15 !important;
    margin-top: 3px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  body.pos-body .pos-header-actions {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 7px !important;
    align-items: stretch !important;
  }

  body.pos-body .pos-pill,
  body.pos-body .kitchen-pill,
  body.pos-body .time-clock-pill {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 44px !important;
    padding: 9px 7px !important;
    border-radius: 16px !important;
    font-size: 12px !important;
    line-height: 1 !important;
    gap: 5px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  body.pos-body .time-clock-pill .time-clock-count,
  body.pos-body #posHeaderCartCount {
    min-width: 22px !important;
    min-height: 22px !important;
    height: 22px !important;
    padding: 0 6px !important;
    font-size: 12px !important;
    flex: 0 0 auto !important;
  }

  body.pos-body .pos-tabs {
    position: sticky !important;
    top: var(--pos-mobile-tabs-top, 112px) !important;
    z-index: 55 !important;
    display: flex !important;
    grid-template-columns: none !important;
    gap: 7px !important;
    padding: 8px 10px 9px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scrollbar-width: none !important;
    background: rgba(243,243,243,.96) !important;
    border-bottom: 1px solid rgba(var(--primary-500-rgb), .13) !important;
    -webkit-overflow-scrolling: touch !important;
  }

  body.pos-body .pos-tabs::-webkit-scrollbar {
    display: none !important;
  }

  body.pos-body .pos-tab {
    flex: 0 0 auto !important;
    min-width: 118px !important;
    min-height: 44px !important;
    padding: 7px 10px !important;
    border-radius: 16px !important;
    font-size: 13px !important;
    gap: 5px !important;
    white-space: nowrap !important;
  }

  body.pos-body .pos-tab span {
    min-width: 22px !important;
    width: auto !important;
    height: 22px !important;
    border-radius: 8px !important;
    padding: 0 6px !important;
    font-size: 12px !important;
  }

  body.pos-body .pos-main,
  body.pos-body .pos-panel.is-active,
  body.pos-body .pos-panel[data-pos-panel="cashier"].is-active,
  body.pos-body .pos-cashier-layout,
  body.pos-body .pos-menu-side,
  body.pos-body .pos-cart-side,
  body.pos-body .pos-product-grid {
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    overflow: visible !important;
  }

  body.pos-body .pos-main {
    display: block !important;
    padding: 10px !important;
  }

  body.pos-body .pos-cashier-layout {
    display: block !important;
  }

  body.pos-body .pos-category-tabs {
    position: sticky !important;
    top: var(--pos-mobile-cats-top, 176px) !important;
    z-index: 50 !important;
    margin: -2px -10px 10px !important;
    padding: 8px 10px 10px !important;
    background: rgba(243,243,243,.96) !important;
    border-bottom: 1px solid rgba(var(--primary-500-rgb), .10) !important;
  }

  body.pos-body .pos-category-tab {
    padding: 8px 11px !important;
    font-size: 13px !important;
    border-radius: 14px !important;
  }

  body.pos-body .pos-product-grid {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    padding: 0 0 12px !important;
  }

  body.pos-body .pos-product-card {
    grid-template-columns: 86px minmax(0, 1fr) !important;
    min-height: 118px !important;
    border-radius: 20px !important;
    padding: 10px !important;
    gap: 10px !important;
  }

  body.pos-body .pos-product-image {
    border-radius: 16px !important;
  }

  body.pos-body .pos-product-info h3 {
    font-size: 20px !important;
    line-height: .98 !important;
  }

  body.pos-body .pos-product-info p {
    font-size: 13px !important;
    margin: 5px 0 8px !important;
  }

  body.pos-body .pos-product-info strong {
    font-size: 18px !important;
  }

  body.pos-body .pos-product-info span {
    padding: 7px 10px !important;
    font-size: 12px !important;
  }

  body.pos-body .pos-cart-side {
    position: static !important;
    display: block !important;
    margin-top: 12px !important;
    border-radius: 22px !important;
    padding-bottom: max(24px, env(safe-area-inset-bottom)) !important;
  }

  body.pos-body .pos-cart-head {
    position: static !important;
  }

  body.pos-body .pos-cart-head h2 {
    font-size: 26px !important;
  }

  body.pos-body .pos-order-grid,
  body.pos-body .pos-panel[data-pos-panel="active"] .pos-order-grid,
  body.pos-body .pos-panel[data-pos-panel="scheduled"] .pos-order-grid,
  body.pos-body .pos-panel[data-pos-panel="completed"] .pos-order-grid,
  body.pos-body .pos-panel[data-pos-panel="active"] .pos-order-grid.is-masonry,
  body.pos-body .pos-panel[data-pos-panel="scheduled"] .pos-order-grid.is-masonry,
  body.pos-body .pos-panel[data-pos-panel="completed"] .pos-order-grid.is-masonry {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    padding-bottom: max(34px, env(safe-area-inset-bottom)) !important;
  }

  body.pos-body .pos-settings-grid {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    padding-bottom: max(34px, env(safe-area-inset-bottom)) !important;
  }

  body.pos-body .pos-settings-card {
    border-radius: 22px !important;
    padding: 16px !important;
  }

  body.pos-body .pos-settings-card h2 {
    font-size: 26px !important;
  }
}

@media (max-width: 380px) {
  body.pos-body .pos-header-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.pos-body .pos-tabs {
    top: var(--pos-mobile-tabs-top-small, 164px) !important;
  }

  body.pos-body .pos-category-tabs {
    top: var(--pos-mobile-cats-top-small, 228px) !important;
  }
}


/* =========================================================
   POS mobile cashier-only mode: compact header + cart/categories
   ========================================================= */
@media (max-width: 760px) {
  body.pos-body .pos-header {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 10px !important;
    align-items: center !important;
    padding: max(10px, env(safe-area-inset-top)) 10px 10px !important;
  }

  body.pos-body .pos-brand {
    grid-column: 1 !important;
    min-width: 0 !important;
  }

  body.pos-body .pos-header-actions {
    grid-column: 2 !important;
    width: auto !important;
    display: flex !important;
    justify-content: flex-end !important;
    gap: 0 !important;
  }

  body.pos-body #timeClockToggle,
  body.pos-body #posSoundToggle,
  body.pos-body #posRefreshBtn {
    display: none !important;
  }

  body.pos-body #posCartBtn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    min-width: 86px !important;
    min-height: 44px !important;
    padding: 10px 13px !important;
    border-radius: 16px !important;
    font-size: 14px !important;
    line-height: 1 !important;
    flex: 0 0 auto !important;
  }

  body.pos-body #posHeaderCartCount {
    display: inline-grid !important;
    place-items: center !important;
    margin-left: 7px !important;
    min-width: 24px !important;
    height: 24px !important;
    padding: 0 7px !important;
    border-radius: 999px !important;
    background: var(--primary-800) !important;
    color: #fff !important;
    font-weight: 1000 !important;
  }

  body.pos-body .pos-tabs {
    display: none !important;
  }

  body.pos-body .pos-panel:not([data-pos-panel="cashier"]) {
    display: none !important;
  }

  body.pos-body .pos-panel[data-pos-panel="cashier"] {
    display: block !important;
  }

  body.pos-body .pos-category-tabs {
    top: var(--pos-mobile-cats-cashier-top, 66px) !important;
    margin: -10px -10px 10px !important;
  }

  body.pos-body .pos-cart-side {
    scroll-margin-top: 126px !important;
  }
}

@media (max-width: 380px) {
  body.pos-body .pos-header-actions {
    display: flex !important;
  }

  body.pos-body .pos-category-tabs {
    top: var(--pos-mobile-cats-cashier-top-small, 66px) !important;
  }
}


/* v1.3.12: Mobile POS QR cards for POS and Kitchen settings */
.mobile-pos-qr-card {
  align-self: start;
}
.mobile-pos-qr-layout {
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr);
  gap: 16px;
  align-items: center;
}
.mobile-pos-qr-image {
  background: #ffffff;
  border: 3px solid rgba(15, 23, 42, .08);
  border-radius: 22px;
  padding: 10px;
  box-shadow: 0 12px 28px rgba(15, 23, 42, .08);
}
.mobile-pos-qr-image img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 12px;
}
.mobile-pos-qr-info {
  min-width: 0;
  display: grid;
  gap: 8px;
  align-content: center;
}
.mobile-pos-qr-info strong {
  color: #0f172a;
  font-size: 21px;
  font-weight: 1000;
  letter-spacing: -.03em;
  line-height: 1.05;
}
.mobile-pos-url-text {
  display: block;
  color: #475569;
  font-size: 13px;
  font-weight: 900;
  line-height: 1.3;
  overflow-wrap: anywhere;
  word-break: break-word;
}
body.kitchen-body .mobile-pos-qr-card {
  max-width: 760px;
}
@media (max-width: 760px) {
  .mobile-pos-qr-layout {
    grid-template-columns: 104px minmax(0, 1fr);
    gap: 12px;
  }
  .mobile-pos-qr-image {
    padding: 8px;
    border-radius: 18px;
  }
  .mobile-pos-qr-info strong {
    font-size: 18px;
    text-align: left;
  }
  .mobile-pos-url-text {
    font-size: 12px;
  }
}

/* v1.3.13: POS settings true two-column masonry + Kitchen settings spacing */
.pos-settings-grid.pos-settings-masonry {
  align-items: start;
}
.pos-settings-column {
  min-width: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
  align-content: start;
}
.kitchen-settings-panel {
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
  align-content: start;
}
@media (max-width: 1180px) {
  .pos-settings-column {
    gap: 14px;
  }
}
@media (max-width: 760px) {
  body.pos-body .pos-settings-column {
    gap: 12px !important;
  }
  .kitchen-settings-panel {
    gap: 14px;
  }
}

/* POS customer-facing tip screen */
.pos-tip-line {
  display: none;
}
.pos-tip-line.is-showing {
  display: flex;
}
.pos-customer-tip-screen {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  place-items: center;
  padding: 28px;
  background: radial-gradient(circle at top left, rgba(59,130,246,.22), rgba(15,23,42,.88)), rgba(15,23,42,.86);
}
.pos-customer-tip-screen.is-showing {
  display: grid;
}
.pos-tip-screen-open {
  overflow: hidden;
}
.pos-customer-tip-card {
  width: min(980px, 100%);
  max-height: calc(100vh - 56px);
  overflow-y: auto;
  background: #f8fafc;
  border: 5px solid rgba(255,255,255,.96);
  border-radius: 42px;
  box-shadow: 0 34px 90px rgba(15,23,42,.45);
  padding: 28px;
}
.pos-customer-tip-brand {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 22px;
}
.pos-customer-tip-brand span {
  display: block;
  color: #0f172a;
  font-size: 30px;
  line-height: 1;
  font-weight: 1000;
  letter-spacing: -.05em;
}
.pos-customer-tip-brand small {
  display: block;
  margin-top: 7px;
  color: var(--primary-700);
  font-size: 16px;
  font-weight: 950;
}
.pos-tip-back-btn {
  border: 3px solid var(--primary-200);
  background: white;
  color: #0f172a;
  border-radius: 999px;
  padding: 14px 18px;
  font-size: 16px;
  font-weight: 1000;
}
.pos-customer-tip-main {
  background: white;
  border: 3px solid var(--primary-100);
  border-radius: 34px;
  padding: 28px;
}
.pos-customer-tip-main h2 {
  margin: 0;
  color: #0f172a;
  font-size: clamp(42px, 5vw, 72px);
  line-height: .94;
  font-weight: 1000;
  letter-spacing: -.07em;
  text-align: center;
}
.pos-customer-tip-main p {
  margin: 14px 0 28px;
  color: #475569;
  font-size: 21px;
  font-weight: 900;
  text-align: center;
}
.pos-tip-choice-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}
.pos-tip-choice {
  min-height: 116px;
  border: 4px solid var(--primary-200);
  border-radius: 28px;
  background: #f8fafc;
  color: var(--primary-900);
  font-size: clamp(28px, 3.7vw, 44px);
  font-weight: 1000;
  letter-spacing: -.04em;
  box-shadow: 0 14px 28px rgba(15,23,42,.08);
}
.pos-tip-choice.is-active {
  color: white;
  border-color: var(--primary-700);
  background: linear-gradient(135deg, var(--primary-500), var(--primary-700));
  box-shadow: 0 18px 36px rgba(37,99,235,.26);
}
.pos-custom-tip-label {
  display: block;
  margin-top: 22px;
  color: #0f172a;
  font-size: 17px;
  font-weight: 1000;
}
.pos-custom-tip-input {
  width: 100%;
  max-width: 340px;
  margin-top: 8px;
  border: 3px solid var(--primary-200);
  border-radius: 24px;
  background: var(--primary-50);
  color: #0f172a;
  font-size: 30px;
  font-weight: 1000;
  padding: 18px 20px;
  outline: none;
}
.pos-custom-tip-input:focus {
  border-color: var(--primary-500);
  box-shadow: 0 0 0 5px rgba(59,130,246,.16);
}
.pos-customer-tip-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin: 18px 0;
}
.pos-customer-tip-summary > div {
  background: white;
  border: 3px solid var(--primary-100);
  border-radius: 22px;
  padding: 16px;
}
.pos-customer-tip-summary span {
  display: block;
  color: #64748b;
  font-size: 14px;
  font-weight: 1000;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.pos-customer-tip-summary strong {
  display: block;
  margin-top: 5px;
  color: #0f172a;
  font-size: 30px;
  line-height: 1;
  font-weight: 1000;
  letter-spacing: -.05em;
}
.pos-customer-tip-summary .pos-tip-grand {
  border-color: var(--primary-400);
  background: var(--primary-50);
}
.pos-tip-continue-btn {
  width: 100%;
  border: 0;
  border-radius: 28px;
  padding: 24px;
  color: white;
  background: linear-gradient(135deg, var(--primary-500), var(--primary-700));
  font-size: 32px;
  font-weight: 1000;
  letter-spacing: -.04em;
  box-shadow: 0 20px 44px rgba(37,99,235,.3);
}
@media (max-width: 760px) {
  .pos-customer-tip-screen {
    padding: 12px;
  }
  .pos-customer-tip-card {
    border-radius: 30px;
    padding: 18px;
    max-height: calc(100vh - 24px);
  }
  .pos-customer-tip-brand {
    align-items: flex-start;
    flex-direction: column;
  }
  .pos-tip-choice-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .pos-customer-tip-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .pos-customer-tip-main h2 {
    font-size: 38px;
  }
  .pos-tip-choice {
    min-height: 86px;
    font-size: 30px;
  }
}

/* v1.3.15 - Compact, reliable mobile customer tip screen */
@media (max-width: 760px) {
  .pos-customer-tip-screen {
    display: none;
    place-items: start center;
    align-items: start;
    justify-content: center;
    padding: 10px;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
  }
  .pos-customer-tip-screen.is-showing {
    display: grid;
  }
  .pos-customer-tip-card {
    width: 100%;
    max-width: 430px;
    max-height: none;
    min-height: auto;
    overflow: visible;
    border-width: 3px;
    border-radius: 24px;
    padding: 12px;
    margin: 0 auto 18px;
  }
  .pos-customer-tip-brand {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
  }
  .pos-customer-tip-brand span {
    font-size: 20px;
    line-height: 1.05;
    white-space: nowrap;
    max-width: 58vw;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .pos-customer-tip-brand small {
    margin-top: 3px;
    font-size: 12px;
  }
  .pos-tip-back-btn {
    padding: 9px 11px;
    border-width: 2px;
    font-size: 12px;
    white-space: nowrap;
  }
  .pos-customer-tip-main {
    border-width: 2px;
    border-radius: 22px;
    padding: 14px;
  }
  .pos-customer-tip-main h2 {
    font-size: clamp(28px, 8.2vw, 34px);
    line-height: .98;
    letter-spacing: -.055em;
  }
  .pos-customer-tip-main p {
    margin: 8px 0 14px;
    font-size: 14px;
    line-height: 1.2;
  }
  .pos-tip-choice-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }
  .pos-tip-choice {
    min-height: 58px;
    border-width: 3px;
    border-radius: 18px;
    font-size: 25px;
    box-shadow: none;
  }
  .pos-custom-tip-label {
    margin-top: 12px;
    font-size: 14px;
  }
  .pos-custom-tip-input {
    max-width: 100%;
    margin-top: 6px;
    border-width: 2px;
    border-radius: 18px;
    font-size: 23px;
    padding: 12px 14px;
  }
  .pos-customer-tip-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
    margin: 12px 0;
  }
  .pos-customer-tip-summary > div {
    border-width: 2px;
    border-radius: 18px;
    padding: 11px 12px;
  }
  .pos-customer-tip-summary span {
    font-size: 11px;
  }
  .pos-customer-tip-summary strong {
    font-size: 24px;
    margin-top: 4px;
  }
  .pos-tip-continue-btn {
    border-radius: 20px;
    padding: 16px 12px;
    font-size: 24px;
    line-height: 1.05;
    box-shadow: none;
  }
}

@media (max-width: 390px) {
  .pos-customer-tip-screen {
    padding: 8px;
  }
  .pos-customer-tip-card {
    border-radius: 20px;
    padding: 10px;
  }
  .pos-customer-tip-main h2 {
    font-size: 26px;
  }
  .pos-tip-choice {
    min-height: 54px;
    font-size: 23px;
  }
  .pos-customer-tip-summary strong {
    font-size: 22px;
  }
  .pos-tip-continue-btn {
    font-size: 22px;
  }
}

/* v1.3.16 - Compact tablet customer tip screen */
@media (min-width: 761px) and (max-width: 1180px) {
  .pos-customer-tip-screen {
    padding: 18px;
    place-items: center;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
  .pos-customer-tip-card {
    width: min(760px, calc(100vw - 36px));
    max-height: calc(100vh - 36px);
    border-width: 4px;
    border-radius: 30px;
    padding: 18px;
    overflow-y: auto;
  }
  .pos-customer-tip-brand {
    margin-bottom: 12px;
  }
  .pos-customer-tip-brand span {
    font-size: 22px;
  }
  .pos-customer-tip-brand small {
    margin-top: 4px;
    font-size: 13px;
  }
  .pos-tip-back-btn {
    padding: 10px 14px;
    border-width: 2px;
    font-size: 13px;
  }
  .pos-customer-tip-main {
    border-width: 2px;
    border-radius: 24px;
    padding: 18px;
  }
  .pos-customer-tip-main h2 {
    font-size: clamp(34px, 4vw, 44px);
    line-height: .96;
  }
  .pos-customer-tip-main p {
    margin: 8px 0 16px;
    font-size: 16px;
  }
  .pos-tip-choice-grid {
    gap: 12px;
  }
  .pos-tip-choice {
    min-height: 74px;
    border-width: 3px;
    border-radius: 20px;
    font-size: 30px;
    box-shadow: none;
  }
  .pos-custom-tip-label {
    margin-top: 12px;
    font-size: 13px;
  }
  .pos-custom-tip-input {
    max-width: 280px;
    margin-top: 6px;
    border-width: 2px;
    border-radius: 16px;
    padding: 12px 14px;
    font-size: 22px;
  }
  .pos-customer-tip-summary {
    gap: 10px;
    margin: 12px 0;
  }
  .pos-customer-tip-summary > div {
    border-width: 2px;
    border-radius: 16px;
    padding: 10px 12px;
  }
  .pos-customer-tip-summary span {
    font-size: 11px;
  }
  .pos-customer-tip-summary strong {
    font-size: 22px;
    margin-top: 3px;
  }
  .pos-tip-continue-btn {
    border-radius: 18px;
    padding: 15px 14px;
    font-size: 24px;
    line-height: 1.05;
    box-shadow: none;
  }
}

@media (min-width: 761px) and (max-width: 1180px) and (max-height: 720px) {
  .pos-customer-tip-screen {
    padding: 12px;
  }
  .pos-customer-tip-card {
    width: min(720px, calc(100vw - 24px));
    max-height: calc(100vh - 24px);
    padding: 14px;
    border-radius: 26px;
  }
  .pos-customer-tip-brand {
    margin-bottom: 8px;
  }
  .pos-customer-tip-main {
    padding: 14px;
  }
  .pos-customer-tip-main h2 {
    font-size: 34px;
  }
  .pos-customer-tip-main p {
    margin: 6px 0 12px;
    font-size: 14px;
  }
  .pos-tip-choice {
    min-height: 62px;
    font-size: 26px;
    border-radius: 18px;
  }
  .pos-custom-tip-label {
    margin-top: 9px;
  }
  .pos-custom-tip-input {
    padding: 9px 12px;
    font-size: 20px;
  }
  .pos-customer-tip-summary {
    margin: 9px 0;
  }
  .pos-customer-tip-summary > div {
    padding: 8px 10px;
  }
  .pos-customer-tip-summary strong {
    font-size: 20px;
  }
  .pos-tip-continue-btn {
    padding: 12px;
    font-size: 22px;
  }
}

/* v1.3.17 - Make customer tip screen fit fully on landscape tablets */
@media (min-width: 761px) and (max-width: 1180px) {
  .pos-customer-tip-screen {
    padding: 10px !important;
    overflow: hidden !important;
    place-items: center !important;
  }

  .pos-customer-tip-card {
    width: min(94vw, 740px) !important;
    max-height: calc(100vh - 20px) !important;
    overflow: hidden !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1.48fr) minmax(190px, .72fr) !important;
    grid-template-areas:
      "brand brand"
      "main summary"
      "main continue" !important;
    gap: 10px 12px !important;
    border-width: 3px !important;
    border-radius: 24px !important;
    padding: 14px !important;
  }

  .pos-customer-tip-brand {
    grid-area: brand !important;
    margin-bottom: 0 !important;
    min-height: 40px !important;
  }

  .pos-customer-tip-brand span {
    font-size: 20px !important;
    line-height: 1 !important;
  }

  .pos-customer-tip-brand small {
    margin-top: 3px !important;
    font-size: 12px !important;
  }

  .pos-tip-back-btn {
    padding: 8px 12px !important;
    border-width: 2px !important;
    font-size: 12px !important;
  }

  .pos-customer-tip-main {
    grid-area: main !important;
    padding: 14px !important;
    border-width: 2px !important;
    border-radius: 20px !important;
    min-width: 0 !important;
  }

  .pos-customer-tip-main h2 {
    font-size: clamp(28px, 3.25vw, 34px) !important;
    line-height: .98 !important;
    letter-spacing: -.055em !important;
  }

  .pos-customer-tip-main p {
    margin: 6px 0 10px !important;
    font-size: 13px !important;
    line-height: 1.15 !important;
  }

  .pos-tip-choice-grid {
    gap: 8px !important;
  }

  .pos-tip-choice {
    min-height: 54px !important;
    border-width: 2px !important;
    border-radius: 16px !important;
    font-size: 23px !important;
    box-shadow: none !important;
  }

  .pos-custom-tip-label {
    margin-top: 8px !important;
    font-size: 12px !important;
  }

  .pos-custom-tip-input {
    max-width: 230px !important;
    margin-top: 5px !important;
    border-width: 2px !important;
    border-radius: 14px !important;
    padding: 8px 10px !important;
    font-size: 18px !important;
  }

  .pos-customer-tip-summary {
    grid-area: summary !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    margin: 0 !important;
    align-self: stretch !important;
  }

  .pos-customer-tip-summary > div {
    padding: 8px 10px !important;
    border-width: 2px !important;
    border-radius: 14px !important;
    min-height: 0 !important;
  }

  .pos-customer-tip-summary span {
    font-size: 10px !important;
    line-height: 1 !important;
  }

  .pos-customer-tip-summary strong {
    font-size: 18px !important;
    line-height: 1 !important;
    margin-top: 3px !important;
  }

  .pos-tip-continue-btn {
    grid-area: continue !important;
    align-self: end !important;
    border-radius: 16px !important;
    padding: 13px 10px !important;
    min-height: 54px !important;
    font-size: 18px !important;
    line-height: 1.08 !important;
    box-shadow: none !important;
  }
}

@media (min-width: 761px) and (max-width: 1180px) and (max-height: 620px) {
  .pos-customer-tip-card {
    width: min(94vw, 700px) !important;
    padding: 10px !important;
    gap: 8px 10px !important;
  }

  .pos-customer-tip-brand {
    min-height: 34px !important;
  }

  .pos-customer-tip-brand span {
    font-size: 18px !important;
  }

  .pos-customer-tip-brand small,
  .pos-tip-back-btn {
    font-size: 11px !important;
  }

  .pos-customer-tip-main {
    padding: 10px !important;
  }

  .pos-customer-tip-main h2 {
    font-size: 28px !important;
  }

  .pos-customer-tip-main p {
    margin: 4px 0 8px !important;
    font-size: 12px !important;
  }

  .pos-tip-choice {
    min-height: 48px !important;
    font-size: 20px !important;
  }

  .pos-custom-tip-label {
    margin-top: 6px !important;
    font-size: 11px !important;
  }

  .pos-custom-tip-input {
    padding: 7px 9px !important;
    font-size: 16px !important;
  }

  .pos-customer-tip-summary {
    gap: 6px !important;
  }

  .pos-customer-tip-summary > div {
    padding: 7px 8px !important;
  }

  .pos-customer-tip-summary strong {
    font-size: 16px !important;
  }

  .pos-tip-continue-btn {
    min-height: 48px !important;
    padding: 10px 8px !important;
    font-size: 16px !important;
  }
}

/* v1.3.18 - tablet fit pass: make POS tip modal and cart density smaller */
@media (min-width: 761px) and (max-height: 920px) {
  .pos-customer-tip-screen {
    padding: 8px !important;
    overflow: hidden !important;
    place-items: center !important;
  }

  .pos-customer-tip-card {
    width: min(76vw, 720px) !important;
    max-width: 720px !important;
    max-height: calc(100dvh - 16px) !important;
    overflow: hidden !important;
    border-width: 3px !important;
    border-radius: 24px !important;
    padding: 12px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
  }

  .pos-customer-tip-brand {
    margin-bottom: 0 !important;
    gap: 10px !important;
    min-height: 34px !important;
  }

  .pos-customer-tip-brand span {
    font-size: 21px !important;
    line-height: 1 !important;
    letter-spacing: -.04em !important;
  }

  .pos-customer-tip-brand small {
    margin-top: 3px !important;
    font-size: 11px !important;
    line-height: 1 !important;
  }

  .pos-tip-back-btn {
    padding: 7px 11px !important;
    border-width: 2px !important;
    font-size: 11px !important;
    line-height: 1 !important;
  }

  .pos-customer-tip-main {
    padding: 12px !important;
    border-width: 2px !important;
    border-radius: 20px !important;
  }

  .pos-customer-tip-main h2 {
    font-size: clamp(29px, 3.5vw, 38px) !important;
    line-height: .95 !important;
    letter-spacing: -.055em !important;
  }

  .pos-customer-tip-main p {
    margin: 5px 0 10px !important;
    font-size: 12px !important;
    line-height: 1.1 !important;
  }

  .pos-tip-choice-grid {
    gap: 8px !important;
  }

  .pos-tip-choice {
    min-height: 52px !important;
    border-width: 2px !important;
    border-radius: 15px !important;
    font-size: 22px !important;
    line-height: 1 !important;
    box-shadow: none !important;
  }

  .pos-custom-tip-label {
    margin-top: 8px !important;
    font-size: 11px !important;
    line-height: 1 !important;
  }

  .pos-custom-tip-input {
    max-width: 230px !important;
    margin-top: 5px !important;
    border-width: 2px !important;
    border-radius: 14px !important;
    padding: 8px 10px !important;
    min-height: 42px !important;
    font-size: 18px !important;
    line-height: 1 !important;
  }

  .pos-customer-tip-summary {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 8px !important;
    margin: 8px 0 0 !important;
  }

  .pos-customer-tip-summary > div {
    border-width: 2px !important;
    border-radius: 14px !important;
    padding: 8px 9px !important;
    min-height: 48px !important;
  }

  .pos-customer-tip-summary span {
    font-size: 9px !important;
    line-height: 1 !important;
  }

  .pos-customer-tip-summary strong {
    margin-top: 3px !important;
    font-size: 17px !important;
    line-height: 1 !important;
  }

  .pos-tip-continue-btn {
    margin-top: 2px !important;
    border-radius: 17px !important;
    padding: 10px 12px !important;
    min-height: 46px !important;
    font-size: 20px !important;
    line-height: 1 !important;
    box-shadow: none !important;
  }
}

@media (min-width: 761px) and (max-height: 720px) {
  .pos-customer-tip-card {
    width: min(72vw, 680px) !important;
    max-height: calc(100dvh - 12px) !important;
    padding: 10px !important;
    border-radius: 22px !important;
    gap: 6px !important;
  }

  .pos-customer-tip-brand {
    min-height: 28px !important;
  }

  .pos-customer-tip-brand span {
    font-size: 18px !important;
  }

  .pos-customer-tip-brand small {
    font-size: 10px !important;
  }

  .pos-tip-back-btn {
    padding: 6px 10px !important;
    font-size: 10px !important;
  }

  .pos-customer-tip-main {
    padding: 9px !important;
    border-radius: 18px !important;
  }

  .pos-customer-tip-main h2 {
    font-size: clamp(24px, 3vw, 30px) !important;
  }

  .pos-customer-tip-main p {
    margin: 4px 0 7px !important;
    font-size: 10px !important;
  }

  .pos-tip-choice {
    min-height: 42px !important;
    border-radius: 13px !important;
    font-size: 18px !important;
  }

  .pos-custom-tip-label {
    margin-top: 6px !important;
    font-size: 10px !important;
  }

  .pos-custom-tip-input {
    min-height: 36px !important;
    padding: 6px 8px !important;
    font-size: 15px !important;
  }

  .pos-customer-tip-summary {
    gap: 6px !important;
    margin-top: 6px !important;
  }

  .pos-customer-tip-summary > div {
    min-height: 40px !important;
    padding: 6px 7px !important;
    border-radius: 12px !important;
  }

  .pos-customer-tip-summary span {
    font-size: 8px !important;
  }

  .pos-customer-tip-summary strong {
    font-size: 14px !important;
  }

  .pos-tip-continue-btn {
    min-height: 40px !important;
    padding: 8px 10px !important;
    border-radius: 14px !important;
    font-size: 17px !important;
  }
}

@media (min-width: 761px) and (max-height: 920px) {
  body.pos-body .pos-cashier-layout {
    grid-template-columns: minmax(0, 1fr) 320px !important;
    gap: 12px !important;
  }

  body.pos-body .pos-main {
    padding: 12px !important;
  }

  body.pos-body .pos-cart-side {
    top: 126px !important;
    height: calc(100vh - 142px) !important;
    max-height: calc(100vh - 142px) !important;
    border-radius: 22px !important;
    border-width: 2px !important;
  }

  body.pos-body .pos-cart-head {
    padding: 12px 14px !important;
    border-bottom-width: 1px !important;
  }

  body.pos-body .pos-cart-head h2 {
    font-size: 24px !important;
    line-height: .95 !important;
  }

  body.pos-body .pos-cart-head p {
    font-size: 13px !important;
    margin-top: 3px !important;
  }

  body.pos-body .pos-cart-items {
    padding: 10px !important;
  }

  body.pos-body .pos-cart-item {
    border-radius: 16px !important;
    padding: 9px !important;
    margin-bottom: 8px !important;
  }

  body.pos-body .pos-cart-total {
    padding: 11px 12px max(24px, env(safe-area-inset-bottom)) !important;
  }

  body.pos-body .total-line {
    font-size: 14px !important;
    margin-bottom: 5px !important;
  }

  body.pos-body .total-line.grand {
    font-size: 24px !important;
    margin: 7px 0 10px !important;
  }

  body.pos-body .input-label,
  body.pos-body .pos-cart-total label {
    font-size: 13px !important;
    margin-top: 7px !important;
    margin-bottom: 4px !important;
  }

  body.pos-body .big-input,
  body.pos-body .order-type-select,
  body.pos-body .big-textarea {
    min-height: 44px !important;
    border-width: 2px !important;
    border-radius: 15px !important;
    padding: 9px 11px !important;
    font-size: 18px !important;
  }

  body.pos-body .pos-notes,
  body.pos-body #posOrderNotes {
    min-height: 54px !important;
  }

  body.pos-body .pos-pay-grid {
    gap: 8px !important;
    margin-top: 9px !important;
  }

  body.pos-body #posSendKitchenBtn,
  body.pos-body #posPayCardBtn {
    min-height: 46px !important;
    border-radius: 16px !important;
    padding: 10px 12px !important;
    font-size: 15px !important;
  }
}


/* v1.3.19 POS/Kitchen cleanup */
.pos-cart-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.pos-cart-title { min-width: 0; }
.pos-clear-order-btn {
  border: 2px solid #fecaca;
  background: #fff;
  color: #b91c1c;
  border-radius: 999px;
  padding: 8px 12px;
  font-size: 13px;
  font-weight: 1000;
  white-space: nowrap;
  cursor: pointer;
}
.pos-clear-order-btn:disabled {
  opacity: .4;
  cursor: not-allowed;
}
.empty-cart { white-space: nowrap; }
@media (min-width: 761px) and (max-height: 920px) {
  body.pos-body .pos-clear-order-btn {
    padding: 6px 10px !important;
    font-size: 12px !important;
  }
}
@media (max-width: 760px) {
  .empty-cart { white-space: normal; }
}

/* v1.3.20 - Mobile POS item modal spacing/scroll fix */
@media (max-width: 760px) {
  body.pos-body #posItemModal.modal-backdrop {
    align-items: flex-start !important;
    justify-content: center !important;
    padding: calc(92px + env(safe-area-inset-top, 0px)) 14px calc(128px + env(safe-area-inset-bottom, 0px)) !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }

  body.pos-body #posItemModal .modal-card {
    width: 100% !important;
    max-width: 560px !important;
    max-height: none !important;
    overflow: visible !important;
    border-radius: 28px !important;
    padding: 18px !important;
    margin: 0 auto !important;
  }

  body.pos-body #posItemModal .modal-title {
    font-size: 28px !important;
    line-height: 1.02 !important;
  }

  body.pos-body #posItemModal .modal-desc {
    font-size: 15px !important;
    line-height: 1.18 !important;
    margin: 6px 0 14px !important;
  }

  body.pos-body #posItemModal .mod-group {
    margin: 16px 0 !important;
  }

  body.pos-body #posItemModal .mod-group-title {
    font-size: 24px !important;
    line-height: 1.05 !important;
    margin-bottom: 9px !important;
  }

  body.pos-body #posItemModal .mod-group-title span {
    display: inline-block !important;
    font-size: 16px !important;
    line-height: 1 !important;
  }

  body.pos-body #posItemModal .mod-grid {
    grid-template-columns: 1fr !important;
    gap: 9px !important;
  }

  body.pos-body #posItemModal .mod-option {
    border-width: 2px !important;
    border-radius: 20px !important;
    padding: 14px 16px !important;
    min-height: 60px !important;
    font-size: 20px !important;
    line-height: 1 !important;
  }

  body.pos-body #posItemModal .modal-actions {
    position: static !important;
    bottom: auto !important;
    z-index: auto !important;
    grid-template-columns: 1fr !important;
    gap: 9px !important;
    margin-top: 18px !important;
    padding: 0 0 4px !important;
    background: transparent !important;
  }

  body.pos-body #posItemModal .cancel-btn,
  body.pos-body #posItemModal .primary-btn {
    border-radius: 20px !important;
    padding: 15px 16px !important;
    min-height: 54px !important;
    font-size: 18px !important;
  }
}

@media (max-width: 390px) {
  body.pos-body #posItemModal.modal-backdrop {
    padding-top: calc(76px + env(safe-area-inset-top, 0px)) !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  body.pos-body #posItemModal .modal-card {
    padding: 14px !important;
    border-radius: 24px !important;
  }

  body.pos-body #posItemModal .mod-option {
    min-height: 54px !important;
    padding: 12px 14px !important;
    font-size: 18px !important;
  }
}


/* v1.3.21 - Mobile POS modifier modal: buttons scroll normally, not sticky */
@media (max-width: 760px) {
  body.pos-body #posItemModal.modal-backdrop {
    padding-bottom: calc(128px + env(safe-area-inset-bottom, 0px)) !important;
  }
  body.pos-body #posItemModal .modal-actions {
    position: static !important;
    inset: auto !important;
    z-index: auto !important;
    background: transparent !important;
    box-shadow: none !important;
  }
}

/* v1.3.22 - Mobile POS queue + cash button language */
.mobile-pos-queue-panel {
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(148, 163, 184, 0.26);
  border-radius: 28px;
  padding: 20px;
  min-height: 55vh;
}

.mobile-pos-queue-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 18px;
}

.mobile-pos-queue-head h2 {
  margin: 0;
  font-size: 30px;
  line-height: 1;
  color: #0f172a;
}

.mobile-pos-queue-head p {
  margin: 8px 0 0;
  color: #64748b;
  font-weight: 800;
}

.mobile-pos-queue-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 16px;
}

.mobile-queue-card {
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(147, 197, 253, 0.72);
  border-radius: 24px;
  padding: 16px;
  box-shadow: 0 14px 34px rgba(15, 23, 42, 0.08);
}

.mobile-queue-card-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(148, 163, 184, 0.22);
}

.mobile-queue-card-head h3 {
  margin: 0 0 5px;
  font-size: 22px;
  line-height: 1.05;
  color: #0f172a;
}

.mobile-queue-card-head p {
  margin: 0;
  color: #334155;
  font-weight: 900;
}

.mobile-queue-card-head span {
  white-space: nowrap;
  border-radius: 999px;
  background: #e0f2fe;
  color: #1e3a8a;
  padding: 7px 10px;
  font-size: 13px;
  font-weight: 1000;
  text-transform: capitalize;
}

.mobile-queue-items {
  list-style: none;
  padding: 0;
  margin: 12px 0;
  display: grid;
  gap: 8px;
}

.mobile-queue-items li {
  display: grid;
  gap: 3px;
  color: #0f172a;
  font-size: 15px;
}

.mobile-queue-items li span {
  color: #64748b;
  font-weight: 800;
}

.mobile-queue-notes {
  margin: 8px 0 0;
  padding: 10px;
  border-radius: 14px;
  background: #f8fafc;
  color: #334155;
  font-weight: 800;
}

.mobile-queue-actions {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 10px;
  margin-top: 14px;
}

.mobile-queue-empty {
  grid-column: 1 / -1;
  min-height: 180px;
}

@media (max-width: 760px) {
  body.pos-body .pos-tab[data-pos-tab="mobile-queue"],
  body.pos-body .pos-panel[data-pos-panel="mobile-queue"] {
    display: none !important;
  }
}


/* v1.3.24 POS queue/nav/cart final fixes */
@media (min-width: 761px) {
  body.pos-body .pos-tabs {
    display: grid !important;
    grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
    gap: 8px !important;
    padding: 12px 14px 0 !important;
  }
  body.pos-body .pos-tab {
    min-width: 0 !important;
    min-height: 52px !important;
    padding: 7px 7px !important;
    border-radius: 18px !important;
    font-size: clamp(12px, 1.18vw, 17px) !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    gap: 5px !important;
  }
  body.pos-body .pos-tab span {
    min-width: 24px !important;
    width: auto !important;
    height: 24px !important;
    border-radius: 9px !important;
    padding: 0 6px !important;
    font-size: 12px !important;
    flex: 0 0 auto !important;
  }
}

@media (min-width: 761px) and (max-height: 920px) {
  html:has(body.pos-body),
  body.pos-body {
    height: 100% !important;
    overflow: hidden !important;
  }
  body.pos-body .pos-shell {
    height: 100vh !important;
    min-height: 100vh !important;
    overflow: hidden !important;
  }
  body.pos-body .pos-main {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow: hidden !important;
    padding: 10px 12px 12px !important;
  }
  body.pos-body .pos-panel.is-active {
    height: 100% !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }
  body.pos-body .pos-panel[data-pos-panel="cashier"].is-active {
    overflow: hidden !important;
  }
  body.pos-body .pos-cashier-layout {
    height: 100% !important;
    min-height: 0 !important;
    grid-template-columns: minmax(0, 1fr) 320px !important;
    gap: 12px !important;
    align-items: stretch !important;
  }
  body.pos-body .pos-menu-side {
    height: 100% !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }
  body.pos-body .pos-product-grid {
    height: auto !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding-bottom: 42px !important;
  }
  body.pos-body .pos-cart-side {
    position: relative !important;
    top: auto !important;
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    align-self: stretch !important;
    border-radius: 22px !important;
    padding-bottom: 64px !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
  }
  body.pos-body .pos-cart-head {
    position: sticky !important;
    top: 0 !important;
    z-index: 4 !important;
    padding: 10px 12px !important;
    background: rgba(255,255,255,.97) !important;
  }
  body.pos-body .pos-cart-items {
    overflow: visible !important;
    padding: 8px 10px !important;
  }
  body.pos-body .pos-cart-total {
    max-height: none !important;
    overflow: visible !important;
    padding: 10px 12px 84px !important;
  }
  body.pos-body .pos-pay-grid {
    padding-bottom: 36px !important;
  }
  body.pos-body #posPayCardBtn {
    margin-bottom: 44px !important;
  }
}

@media (min-width: 761px) and (max-width: 1120px) {
  body.pos-body .pos-tabs {
    gap: 6px !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
  }
  body.pos-body .pos-tab {
    min-height: 48px !important;
    padding: 6px 5px !important;
    border-radius: 16px !important;
    font-size: clamp(11px, 1.25vw, 14px) !important;
    gap: 4px !important;
  }
  body.pos-body .pos-tab span {
    min-width: 20px !important;
    height: 20px !important;
    font-size: 11px !important;
    padding: 0 5px !important;
  }
}

/* Only phone-size mobile POS hides the queue/admin tabs; tablet POS keeps Queue visible. */
@media (max-width: 760px) {
  body.pos-body .pos-tab[data-pos-tab="mobile-queue"],
  body.pos-body .pos-panel[data-pos-panel="mobile-queue"] {
    display: none !important;
  }
  body.pos-body #posSendKitchenBtn {
    font-size: 0 !important;
  }
  body.pos-body #posSendKitchenBtn::after {
    content: "Send to POS";
    font-size: 28px !important;
  }
}


/* v1.3.25 - POS order tab scrolling + dependable mobile queue submit */
@media (min-width: 761px) and (max-height: 920px) {
  body.pos-body .pos-panel[data-pos-panel="active"].is-active,
  body.pos-body .pos-panel[data-pos-panel="scheduled"].is-active,
  body.pos-body .pos-panel[data-pos-panel="completed"].is-active,
  body.pos-body .pos-panel[data-pos-panel="mobile-queue"].is-active,
  body.pos-body .pos-panel[data-pos-panel="menu"].is-active,
  body.pos-body .pos-panel[data-pos-panel="settings"].is-active {
    height: 100% !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
    padding-bottom: 42px !important;
  }

  body.pos-body .pos-panel[data-pos-panel="active"] .pos-order-grid,
  body.pos-body .pos-panel[data-pos-panel="scheduled"] .pos-order-grid,
  body.pos-body .pos-panel[data-pos-panel="completed"] .pos-order-grid {
    margin-bottom: 42px !important;
  }
}

@media (max-width: 760px) {
  body.pos-body #posSendKitchenBtn {
    font-size: 0 !important;
  }
  body.pos-body #posSendKitchenBtn::after {
    content: "Send to POS" !important;
    font-size: 28px !important;
  }
}


/* v1.3.27 - Cleaner mobile POS queue cards + close clock modal after save */
@media (min-width: 761px) {
  body.pos-body .mobile-pos-queue-list {
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)) !important;
    gap: 12px !important;
  }

  body.pos-body .mobile-queue-card {
    border-radius: 18px !important;
    padding: 12px !important;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.07) !important;
  }

  body.pos-body .mobile-queue-card-head {
    gap: 8px !important;
    padding-bottom: 8px !important;
  }

  body.pos-body .mobile-queue-card-head h3 {
    font-size: 19px !important;
    margin-bottom: 2px !important;
  }

  body.pos-body .mobile-queue-card-head p,
  body.pos-body .mobile-queue-items li {
    font-size: 13px !important;
    line-height: 1.25 !important;
  }

  body.pos-body .mobile-queue-card-head span {
    font-size: 11px !important;
    padding: 5px 8px !important;
  }

  body.pos-body .mobile-queue-items {
    margin: 8px 0 !important;
    gap: 5px !important;
  }

  body.pos-body .mobile-queue-notes {
    margin-top: 6px !important;
    padding: 7px 9px !important;
    border-radius: 11px !important;
    font-size: 12px !important;
  }

  body.pos-body .mobile-queue-actions {
    grid-template-columns: 1fr auto !important;
    gap: 8px !important;
    margin-top: 10px !important;
    align-items: center !important;
  }

  body.pos-body .mobile-queue-actions .primary-btn,
  body.pos-body .mobile-queue-actions .cancel-btn {
    min-height: 44px !important;
    height: 44px !important;
    padding: 0 16px !important;
    border-radius: 15px !important;
    font-size: 16px !important;
    line-height: 1 !important;
  }

  body.pos-body .mobile-queue-actions .cancel-btn {
    min-width: 118px !important;
  }
}

@media (min-width: 761px) and (max-width: 1120px) {
  body.pos-body .mobile-pos-queue-list {
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)) !important;
  }

  body.pos-body .mobile-queue-actions .primary-btn,
  body.pos-body .mobile-queue-actions .cancel-btn {
    min-height: 40px !important;
    height: 40px !important;
    padding: 0 12px !important;
    border-radius: 13px !important;
    font-size: 14px !important;
  }

  body.pos-body .mobile-queue-actions .cancel-btn {
    min-width: 98px !important;
  }
}

/* v1.3.28 - POS manual amount item */
.pos-cart-add-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
}
.pos-cart-add-label {
  font-weight: 1000;
  letter-spacing: -0.02em;
}
#posHeaderCartCount {
  min-width: 28px;
  height: 28px;
  border-radius: 999px;
  display: inline-grid;
  place-items: center;
  background: var(--primary-700);
  color: #fff;
  padding: 0 8px;
}
.pos-manual-item-card {
  width: min(520px, 100%);
}
.pos-manual-amount {
  margin: 18px 0;
  border: 3px solid var(--primary-200);
  background: var(--primary-50);
  border-radius: 26px;
  padding: 20px;
  text-align: right;
  font-size: clamp(42px, 7vw, 64px);
  line-height: 1;
  font-weight: 1000;
  letter-spacing: -0.06em;
  color: #111827;
}
.pos-manual-keypad {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.pos-manual-keypad button {
  border: 2px solid var(--primary-200);
  background: #fff;
  color: var(--primary-900);
  border-radius: 22px;
  min-height: 64px;
  font-size: 26px;
  font-weight: 1000;
  box-shadow: 0 8px 18px rgba(17,24,39,.06);
}
.pos-manual-keypad button:active {
  transform: scale(.98);
}
#posManualItemAddBtn:disabled {
  opacity: .45;
  cursor: not-allowed;
  filter: grayscale(.4);
}
@media (max-width: 760px) {
  body.pos-body .pos-cart-add-pill {
    padding: 12px 14px !important;
    gap: 7px !important;
  }
  body.pos-body .pos-cart-add-label {
    font-size: 14px !important;
  }
  body.pos-body #posHeaderCartCount {
    min-width: 30px;
    height: 30px;
  }
  body.pos-body #posManualItemModal.modal-backdrop {
    align-items: flex-start !important;
    padding: calc(82px + env(safe-area-inset-top, 0px)) 14px calc(92px + env(safe-area-inset-bottom, 0px)) !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }
  body.pos-body .pos-manual-item-card {
    border-radius: 28px !important;
    padding: 18px !important;
  }
  body.pos-body .pos-manual-amount {
    padding: 16px !important;
    font-size: 46px !important;
  }
  body.pos-body .pos-manual-keypad button {
    min-height: 58px !important;
    border-radius: 18px !important;
    font-size: 24px !important;
  }
}

/* v1.3.29 - Compact manual POS item keypad modal */
body.pos-body .pos-manual-item-card {
  width: min(440px, 96vw) !important;
  max-height: 88vh !important;
  padding: 22px !important;
  border-radius: 30px !important;
  overflow-y: auto !important;
}
body.pos-body .pos-manual-item-card .modal-title {
  font-size: 32px !important;
  line-height: 1.02 !important;
  letter-spacing: -0.05em !important;
}
body.pos-body .pos-manual-item-card .modal-desc {
  font-size: 15px !important;
  line-height: 1.2 !important;
  margin: 6px 0 14px !important;
}
body.pos-body .pos-manual-item-card .input-label {
  font-size: 13px !important;
  margin: 10px 0 5px !important;
}
body.pos-body .pos-manual-item-card .big-input {
  min-height: 42px !important;
  border-width: 2px !important;
  border-radius: 16px !important;
  padding: 9px 14px !important;
  font-size: 18px !important;
}
body.pos-body .pos-manual-amount {
  margin: 12px 0 !important;
  border-width: 2px !important;
  border-radius: 20px !important;
  padding: 14px 18px !important;
  font-size: clamp(38px, 5.4vw, 48px) !important;
  min-height: 78px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
}
body.pos-body .pos-manual-keypad {
  gap: 8px !important;
}
body.pos-body .pos-manual-keypad button {
  min-height: 48px !important;
  border-width: 2px !important;
  border-radius: 16px !important;
  font-size: 21px !important;
  box-shadow: none !important;
}
body.pos-body .pos-manual-item-card .modal-actions {
  gap: 10px !important;
  margin-top: 14px !important;
}
body.pos-body .pos-manual-item-card .cancel-btn,
body.pos-body .pos-manual-item-card .primary-btn {
  min-height: 52px !important;
  height: 52px !important;
  border-radius: 18px !important;
  padding: 10px 14px !important;
  font-size: 18px !important;
  line-height: 1 !important;
}

@media (min-width: 761px) and (max-width: 1180px), (min-width: 761px) and (max-height: 900px) {
  body.pos-body .pos-manual-item-card {
    width: min(410px, 92vw) !important;
    max-height: 84vh !important;
    padding: 18px !important;
    border-radius: 26px !important;
  }
  body.pos-body .pos-manual-item-card .modal-title {
    font-size: 28px !important;
  }
  body.pos-body .pos-manual-item-card .modal-desc {
    font-size: 13px !important;
    margin-bottom: 10px !important;
  }
  body.pos-body .pos-manual-item-card .big-input {
    min-height: 38px !important;
    font-size: 16px !important;
    padding: 7px 12px !important;
  }
  body.pos-body .pos-manual-amount {
    min-height: 64px !important;
    margin: 9px 0 !important;
    padding: 10px 14px !important;
    font-size: 38px !important;
    border-radius: 18px !important;
  }
  body.pos-body .pos-manual-keypad {
    gap: 7px !important;
  }
  body.pos-body .pos-manual-keypad button {
    min-height: 40px !important;
    border-radius: 14px !important;
    font-size: 18px !important;
  }
  body.pos-body .pos-manual-item-card .modal-actions {
    margin-top: 11px !important;
    gap: 9px !important;
  }
  body.pos-body .pos-manual-item-card .cancel-btn,
  body.pos-body .pos-manual-item-card .primary-btn {
    min-height: 44px !important;
    height: 44px !important;
    border-radius: 15px !important;
    font-size: 16px !important;
  }
}

@media (max-width: 760px) {
  body.pos-body #posManualItemModal.modal-backdrop {
    padding: calc(76px + env(safe-area-inset-top, 0px)) 14px calc(86px + env(safe-area-inset-bottom, 0px)) !important;
  }
  body.pos-body .pos-manual-item-card {
    width: min(390px, 100%) !important;
    max-height: none !important;
    padding: 16px !important;
    border-radius: 24px !important;
  }
  body.pos-body .pos-manual-item-card .modal-title {
    font-size: 27px !important;
  }
  body.pos-body .pos-manual-item-card .modal-desc {
    font-size: 13px !important;
    margin: 5px 0 10px !important;
  }
  body.pos-body .pos-manual-item-card .big-input {
    min-height: 38px !important;
    font-size: 16px !important;
    padding: 7px 12px !important;
  }
  body.pos-body .pos-manual-amount {
    min-height: 62px !important;
    padding: 9px 13px !important;
    font-size: 36px !important;
    border-radius: 17px !important;
  }
  body.pos-body .pos-manual-keypad button {
    min-height: 39px !important;
    font-size: 18px !important;
    border-radius: 13px !important;
  }
  body.pos-body .pos-manual-item-card .cancel-btn,
  body.pos-body .pos-manual-item-card .primary-btn {
    min-height: 44px !important;
    height: 44px !important;
    font-size: 16px !important;
    border-radius: 15px !important;
  }
}

/* POS Gift Cards */
.pos-gift-card-top-btn {
  margin-left: auto;
  border-color: rgba(245, 158, 11, .38);
  background: linear-gradient(135deg, #fff7ed, #ffffff);
  color: #9a3412;
  white-space: nowrap;
}
.pos-gift-card-card {
  width: min(520px, calc(100vw - 24px));
  max-height: calc(100dvh - 24px);
  overflow: auto;
}
.pos-gift-card-toggle {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin: 0 0 16px;
  padding: 6px;
  border-radius: 24px;
  background: #f1f5f9;
}
.pos-gift-card-toggle button {
  border: 0;
  border-radius: 19px;
  padding: 14px 12px;
  background: transparent;
  color: #475569;
  font-size: 17px;
  font-weight: 1000;
}
.pos-gift-card-toggle button.is-active {
  background: linear-gradient(135deg, var(--orange), var(--red));
  color: #fff;
  box-shadow: 0 12px 24px rgba(249,115,22,.22);
}
.pos-gift-card-grid {
  display: grid;
  gap: 9px;
}

.pos-gift-card-mode-step {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin: 18px 0 4px;
}
.pos-gift-card-mode-step .primary-btn {
  min-height: 78px;
  font-size: 22px;
  border-radius: 24px;
}
.pos-gift-card-mode-step.is-hidden { display: none; }
.pos-gift-card-order-wrap.is-hidden,
.pos-gift-card-amount-wrap.is-hidden,
.pos-gift-card-pin-step.is-hidden,
#posGiftCardFormStep.is-hidden { display: none; }


.pos-gift-card-input.is-active {
  border-color: #2563eb;
  box-shadow: 0 0 0 4px rgba(37, 99, 235, .12);
  background: #fff;
}
.pos-gift-card-active-hint {
  display: inline-block;
  margin-left: 8px;
  color: #2563eb;
  font-weight: 1000;
}

.pos-gift-card-private-note {
  margin: 4px 0 14px;
  padding: 12px 14px;
  border-radius: 18px;
  background: #ecfeff;
  color: #155e75;
  font-size: 14px;
  font-weight: 1000;
  line-height: 1.35;
}
.pos-gift-card-pin-display {
  text-align: center;
  font-size: 34px;
  font-weight: 1000;
  letter-spacing: .22em;
}

.pos-gift-card-status {
  margin: 12px 0;
  padding: 12px 14px;
  border-radius: 18px;
  background: #fff7ed;
  color: #9a3412;
  font-size: 14px;
  font-weight: 900;
  line-height: 1.3;
}
.pos-gift-card-keypad {
  margin-top: 10px;
}
.pos-cart-item.is-gift-card {
  border-color: rgba(245, 158, 11, .35);
  background: linear-gradient(135deg, #fff7ed, #ffffff);
}
.qty-controls.gift-card-lock {
  min-width: 80px;
  justify-content: center;
  color: #9a3412;
  background: #ffedd5;
  border-color: #fed7aa;
}
.ticket-tearoff-note {
  margin-top: 30px;
  margin: 20px 0 12px;
  padding: 12px 0 14px;
  border-top: 3px dashed #111827;
  border-bottom: 3px dashed #111827;
  text-align: center;
}
.ticket-tearoff-note span {
  display: block;
  font-size: 17px;
  font-weight: 1000;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.ticket-tearoff-note strong {
  display: block;
  margin-top: 4px;
  font-size: 14px;
  font-weight: 1000;
  text-transform: uppercase;
}
.ticket-tearoff-note p {
  margin: 8px 0 0;
  font-size: 12px;
  line-height: 1.25;
  font-weight: 800;
}
.ticket-gift-card-certificate {
  margin: 34px 0 20px;
  padding: 20px 18px 18px;
  border: 6px solid #111827;
  outline: 2px solid #111827;
  outline-offset: -12px;
  text-align: center;
  page-break-inside: avoid;
}
.ticket-gift-card-icon { font-size: 36px; }
.ticket-gift-card-title {
  margin: 4px 0 12px;
  padding-bottom: 10px;
  border-bottom: 3px solid #111827;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.ticket-gift-card-title span {
  display: block;
  font-size: 16px;
  line-height: 1;
  font-weight: 1000;
}
.ticket-gift-card-title strong {
  display: block;
  margin-top: 3px;
  font-size: 27px;
  line-height: .95;
  font-weight: 1000;
}
.ticket-gift-card-value-label {
  margin-top: 8px;
  font-size: 13px;
  line-height: 1;
  font-weight: 1000;
  text-transform: uppercase;
  letter-spacing: .16em;
}
.ticket-gift-card-amount {
  margin: 4px 0 12px;
  font-size: 40px;
  line-height: 1;
  font-weight: 1000;
}
.ticket-gift-card-line {
  display: flex;
  justify-content: center;
  flex-direction: column;
  gap: 3px;
  padding: 9px 0 7px;
  border-top: 2px solid #111827;
  font-weight: 1000;
  text-transform: uppercase;
}
.ticket-gift-card-label {
  margin-top: 10px;
  padding-top: 9px;
  border-top: 2px solid #111827;
  font-size: 15px;
  font-weight: 1000;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.ticket-gift-card-order-number {
  margin: 5px 0 10px;
  font-size: 42px;
  line-height: 1;
  font-weight: 1000;
  letter-spacing: .1em;
}
.ticket-gift-card-certificate p {
  margin: 9px 0 0;
  font-size: 12px;
  line-height: 1.22;
  font-weight: 900;
}
@media (max-width: 860px) {
  .pos-gift-card-top-btn {
    order: 3;
    margin-left: 0;
  }
}

/* Eatery Kiosks custom on-screen keyboard */
body.nomnom-keyboard-open {
  padding-bottom: 332px;
}

.nn-keyboard {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 99999;
  transform: translateY(110%);
  transition: transform 0.18s ease, opacity 0.18s ease;
  pointer-events: none;
  opacity: 0;
}

.nn-keyboard.is-open {
  transform: translateY(0);
  pointer-events: auto;
  opacity: 1;
}

.nn-keyboard.is-floating {
  left: var(--nn-keyboard-left, 10px);
  right: auto;
  top: var(--nn-keyboard-top, 10px);
  bottom: auto;
  width: min(760px, calc(100vw - 18px));
  transform: translateY(8px) scale(.985);
}

.nn-keyboard.is-floating.is-open {
  transform: translateY(0) scale(1);
}

.nn-keyboard-shell {
  width: min(940px, calc(100vw - 12px));
  margin: 0 auto 6px;
  padding: 9px 10px 12px;
  border-radius: 22px;
  background: rgba(241, 245, 249, 0.98);
  border: 1px solid rgba(148, 163, 184, 0.78);
  box-shadow: 0 -18px 60px rgba(15, 23, 42, 0.22);
  color: #0f172a;
  -webkit-user-select: none;
  user-select: none;
  backdrop-filter: blur(18px);
}

.nn-keyboard.is-floating .nn-keyboard-shell {
  width: 100%;
  margin: 0;
  padding: 10px 11px 13px;
  border-radius: 24px;
  box-shadow: 0 22px 70px rgba(15, 23, 42, 0.24);
}

.nn-keyboard-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 2px 2px 8px;
}

.nn-keyboard-head strong {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 16px;
  color: #334155;
  font-weight: 950;
}

.nn-keyboard-close,
.nn-key {
  appearance: none;
  border: 0;
  touch-action: manipulation;
  cursor: pointer;
  font-family: inherit;
}

.nn-keyboard-close {
  flex: 0 0 auto;
  min-height: 42px;
  padding: 8px 18px;
  border-radius: 999px;
  background: #e2e8f0;
  color: #0f172a;
  font-size: 16px;
  font-weight: 950;
  box-shadow: inset 0 -2px 0 rgba(15, 23, 42, 0.12);
}

.nn-keypad-grid,
.nn-key-row {
  display: grid;
  gap: 8px;
}

.nn-keypad-grid-numeric {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.nn-keypad-grid-text {
  gap: 8px;
}

.nn-key-row {
  grid-template-columns: repeat(10, minmax(0, 1fr));
}

.nn-key-row-mid {
  padding: 0 5%;
  grid-template-columns: repeat(9, minmax(0, 1fr));
}

.nn-key-row-third {
  grid-template-columns: 1.45fr repeat(7, minmax(0, 1fr)) 1.45fr;
}

.nn-key-row-actions {
  grid-template-columns: 1fr 1fr 4.2fr 1fr 1fr 1.65fr;
}

.nn-key {
  min-height: 56px;
  border-radius: 12px;
  background: #ffffff;
  color: #0f172a;
  font-size: 21px;
  line-height: 1;
  font-weight: 950;
  border: 1px solid rgba(148, 163, 184, 0.62);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.96) inset,
    inset 0 -3px 0 rgba(15, 23, 42, 0.12),
    0 1px 2px rgba(15, 23, 42, 0.13);
}

.nn-keyboard.is-floating .nn-key {
  min-height: 58px;
  border-radius: 13px;
  font-size: 21px;
}

.nn-key:active,
.nn-key.is-active {
  transform: translateY(1px);
  background: #dbeafe;
}

.nn-key-action,
.nn-keyboard-close {
  background: #cbd5e1;
}

.nn-key-primary {
  background: #22c55e;
  color: #052e16;
  border-color: rgba(22, 163, 74, 0.8);
}

.nn-key-wide {
  grid-column: span 1;
}

.nn-key-span-2 {
  grid-column: span 2;
}

.nn-key-space {
  font-size: 19px;
}

[data-nomnom-keyboard-field] {
  caret-color: transparent;
}

@media (max-width: 700px) {
  body.nomnom-keyboard-open {
    padding-bottom: 344px;
  }
  .nn-keyboard-shell {
    width: calc(100vw - 8px);
    margin-bottom: 4px;
    padding: 8px 8px 12px;
    border-radius: 20px 20px 18px 18px;
  }
  .nn-keypad-grid,
  .nn-key-row {
    gap: 7px;
  }
  .nn-key {
    min-height: 54px;
    border-radius: 11px;
    font-size: 20px;
  }
  .nn-keyboard-head strong {
    font-size: 15px;
  }
  .nn-keyboard-close {
    min-height: 40px;
    padding: 7px 16px;
    font-size: 15px;
  }
  .nn-key-row-mid {
    padding: 0 5.25%;
  }
  .nn-key-row-actions {
    grid-template-columns: 1fr 1fr 3.6fr 1fr 1fr 1.55fr;
  }
  .nn-key-space {
    font-size: 18px;
  }
}

@media (max-width: 390px) {
  .nn-keypad-grid,
  .nn-key-row {
    gap: 6px;
  }
  .nn-key {
    min-height: 51px;
    font-size: 18px;
  }
  .nn-key-row-actions {
    grid-template-columns: .95fr .95fr 3.4fr .95fr .95fr 1.45fr;
  }
}

@media (max-height: 620px) {
  body.nomnom-keyboard-open {
    padding-bottom: 270px;
  }
  .nn-key {
    min-height: 42px;
    border-radius: 10px;
    font-size: 16px;
  }
  .nn-keyboard.is-floating .nn-key {
    min-height: 44px;
    font-size: 17px;
  }
  .nn-keyboard-shell {
    padding: 7px;
  }
  .nn-keyboard-head {
    padding-bottom: 6px;
  }
}

/* v1.3.34: inline keypad for Employee Time Clock */
.time-clock-keypad {
  margin-top: 14px;
  gap: 8px;
}
.time-clock-keypad button {
  min-height: 54px;
  border-radius: 18px;
  font-size: 23px;
}
.time-clock-actions .done:disabled {
  opacity: .45;
  cursor: not-allowed;
  filter: grayscale(.35);
}
@media (max-height: 760px) {
  .time-clock-modal-card {
    max-height: calc(100vh - 28px);
    overflow: auto;
  }
  .time-clock-keypad button {
    min-height: 46px;
    font-size: 21px;
  }
  .time-clock-status-box {
    padding: 12px;
  }
}

/* POS cart item editing affordance */
.pos-cart-item.is-editable {
  cursor: pointer;
  transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}
.pos-cart-item.is-editable:active {
  transform: scale(.985);
}
.pos-cart-item.is-editable:hover {
  border-color: var(--primary-400);
  box-shadow: 0 10px 24px rgba(15, 23, 42, .10);
}


/* v1.3.44 - Keep POS modals above sticky mobile headers */
body.pos-body .modal-backdrop,
body.pos-body #posItemModal.modal-backdrop,
body.pos-body #posGiftCardModal.modal-backdrop,
body.pos-body #posManualItemModal.modal-backdrop {
  z-index: 2000 !important;
}
body.pos-body .modal-backdrop .modal-card,
body.pos-body #posItemModal .modal-card,
body.pos-body #posGiftCardModal .modal-card,
body.pos-body #posManualItemModal .modal-card {
  position: relative !important;
  z-index: 2001 !important;
}
body.pos-body .nn-keyboard {
  z-index: 10050 !important;
}

/* v1.3.46 - Contained printed gift certificate block */
.ticket-tearoff-note {
  margin-top: 42px;
  padding: 16px 0 20px;
}
.ticket-tearoff-note span { font-size: 20px; }
.ticket-tearoff-note strong { font-size: 16px; }
.ticket-tearoff-note p { font-size: 14px; }
.ticket-gift-card-certificate {
  margin: 38px 0 30px;
  padding: 32px 22px 34px;
  border-width: 7px;
  outline-width: 3px;
  outline-offset: -17px;
  overflow: hidden;
}
.ticket-gift-card-title strong { font-size: 30px; }
.ticket-gift-card-value-label { font-size: 15px; margin-top: 12px; }
.ticket-gift-card-amount { font-size: 44px; margin-bottom: 20px; }
.ticket-gift-card-label { font-size: 17px; }
.ticket-gift-card-order-number { font-size: 44px; margin-bottom: 20px; }
.ticket-gift-card-line { font-size: 15px; padding: 13px 0 12px; margin-top: 8px; }
.ticket-gift-card-certificate p { font-size: 13px; line-height: 1.25; margin: 12px 0 0; }

/* v1.3.45 - Mobile POS header: keep location/title on top and align Gift Cards + cart below */
@media (max-width: 760px) {
  body.pos-body .pos-header {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(132px, .52fr) !important;
    grid-template-areas:
      "brand brand"
      "gift cart" !important;
    gap: 10px 10px !important;
    align-items: stretch !important;
    padding: max(10px, env(safe-area-inset-top)) 10px 10px !important;
  }

  body.pos-body .pos-brand {
    grid-area: brand !important;
    width: 100% !important;
  }

  body.pos-body .pos-gift-card-top-btn {
    grid-area: gift !important;
    order: 0 !important;
    width: 100% !important;
    margin: 0 !important;
    min-height: 50px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 17px !important;
    padding: 10px 12px !important;
    font-size: 14px !important;
  }

  body.pos-body .pos-header-actions {
    grid-area: cart !important;
    width: 100% !important;
    display: flex !important;
    align-items: stretch !important;
    justify-content: stretch !important;
    gap: 0 !important;
  }

  body.pos-body #timeClockToggle,
  body.pos-body #posSoundToggle,
  body.pos-body #posRefreshBtn {
    display: none !important;
  }

  body.pos-body #posCartBtn {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 50px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    border-radius: 17px !important;
    padding: 10px 10px !important;
    font-size: 14px !important;
  }

  body.pos-body #posHeaderCartCount {
    min-width: 30px !important;
    height: 30px !important;
    padding: 0 8px !important;
    font-size: 14px !important;
  }

  body.pos-body .pos-category-tabs {
    top: var(--pos-mobile-cats-cashier-top, 126px) !important;
  }
}

@media (max-width: 380px) {
  body.pos-body .pos-header {
    grid-template-columns: minmax(0, 1fr) minmax(118px, .50fr) !important;
    gap: 8px !important;
  }

  body.pos-body .pos-gift-card-top-btn,
  body.pos-body #posCartBtn {
    min-height: 48px !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
    font-size: 13px !important;
  }

  body.pos-body #posHeaderCartCount {
    min-width: 28px !important;
    height: 28px !important;
  }

  body.pos-body .pos-category-tabs {
    top: var(--pos-mobile-cats-cashier-top-small, 122px) !important;
  }
}

/* Worker Scheduler Modal */
body.admin-body .admin-small-btn.schedule,
.admin-small-btn.schedule {
  background: #2563eb;
  color: #ffffff;
  border-color: #2563eb;
}

body.admin-body .admin-modal-card.is-scheduler-modal,
.admin-modal-card.is-scheduler-modal {
  width: min(1680px, calc(100vw - 24px));
  max-height: calc(100vh - 24px);
  overflow: auto;
  padding: 22px;
}

body.admin-body .admin-form.is-scheduler-form,
.admin-form.is-scheduler-form {
  display: block;
}

.worker-scheduler {
  display: grid;
  gap: 12px;
}

.worker-scheduler-hero {
  position: sticky;
  top: 0;
  z-index: 4;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 14px;
  border: 2px solid var(--primary-200, #bfdbfe);
  border-radius: 22px;
  background: linear-gradient(135deg, #ffffff, #eff6ff);
}

.worker-scheduler-hero h3 {
  margin: 0;
  color: #0f172a;
  font-size: clamp(22px, 2vw, 30px);
  letter-spacing: -0.04em;
  font-weight: 1000;
}

.worker-scheduler-hero p,
.worker-schedule-help {
  margin: 4px 0 0;
  color: #64748b;
  font-weight: 850;
}

.worker-quick-shift {
  display: grid;
  grid-template-columns: minmax(170px, 1.15fr) minmax(120px, .8fr) minmax(120px, .8fr) minmax(160px, 1fr) auto;
  gap: 10px;
  align-items: end;
  padding: 12px;
  border: 2px solid #dbeafe;
  border-radius: 20px;
  background: #f8fafc;
}

.worker-quick-shift label {
  margin: 0;
}

.worker-quick-shift input,
.worker-quick-shift select {
  min-height: 48px;
  padding: 10px 12px;
  border-radius: 16px;
}

.worker-quick-shift .admin-primary {
  min-height: 48px;
  padding-inline: 18px;
  white-space: nowrap;
}

.worker-scheduler-board {
  max-height: calc(100vh - 330px);
  min-height: 430px;
  display: grid;
  grid-template-columns: repeat(7, minmax(154px, 1fr));
  gap: 10px;
  overflow: auto;
  padding: 2px 2px 8px;
  overscroll-behavior: contain;
}

.worker-schedule-day {
  min-width: 154px;
  border: 2px solid var(--primary-200, #bfdbfe);
  border-radius: 22px;
  background: #ffffff;
  overflow: hidden;
}

.worker-schedule-day h4 {
  position: sticky;
  top: 0;
  z-index: 1;
  margin: 0;
  padding: 10px 10px;
  color: #1d4ed8;
  background: #eff6ff;
  border-bottom: 2px solid #dbeafe;
  font-size: 14px;
  font-weight: 1000;
}

.worker-schedule-slot {
  min-height: 46px;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 6px;
  padding: 5px 6px;
  border-bottom: 1px dashed #dbeafe;
  transition: background .12s ease, box-shadow .12s ease;
}

.worker-schedule-slot.is-drop-target {
  background: #dbeafe;
  box-shadow: inset 0 0 0 2px #60a5fa;
}

.worker-slot-time {
  color: #64748b;
  font-size: 10px;
  font-weight: 1000;
  line-height: 1.1;
  padding-top: 4px;
}

.worker-slot-content {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.worker-shift-pill {
  width: 100%;
  display: grid;
  gap: 1px;
  text-align: left;
  border: 0;
  border-radius: 13px;
  padding: 8px 9px;
  background: #0f172a;
  color: #ffffff;
  cursor: grab;
  box-shadow: none;
  touch-action: none;
  user-select: none;
}

.worker-shift-pill:active {
  cursor: grabbing;
}

.worker-shift-pill.is-dragging {
  opacity: .55;
}

.worker-shift-pill strong {
  font-size: 12px;
  line-height: 1.05;
  font-weight: 1000;
}

.worker-shift-pill span {
  color: #ffffff;
  font-size: 11px;
  font-weight: 1000;
}

.worker-shift-pill small {
  color: #bfdbfe;
  font-size: 10px;
  font-weight: 900;
}

.worker-shift-mini-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px;
  margin-top: 4px;
}

.worker-drag-ghost,
.pos-staff-drag-ghost {
  position: fixed;
  z-index: 9999;
  pointer-events: none;
  width: 150px;
  opacity: .92;
  transform: translate(-50%, -50%) rotate(-1deg);
  box-shadow: 0 18px 40px rgba(15, 23, 42, .28);
}

.worker-shift-mini-actions .admin-small-btn {
  min-height: 28px;
  padding: 5px 6px;
  border-radius: 10px;
  font-size: 11px;
}

@media (max-width: 980px) {
  .worker-scheduler-board { grid-template-columns: repeat(7, minmax(138px, 1fr)); max-height: calc(100vh - 300px); }
  .worker-schedule-day { min-width: 138px; }
  .worker-quick-shift {
    grid-template-columns: 1fr 1fr;
  }
  .worker-quick-shift .admin-primary {
    grid-column: 1 / -1;
  }
}

@media (max-width: 640px) {
  body.admin-body .admin-modal-card.is-scheduler-modal,
  .admin-modal-card.is-scheduler-modal {
    width: calc(100vw - 16px);
    padding: 18px;
  }
  .worker-scheduler-hero {
    align-items: flex-start;
    flex-direction: column;
  }
  .worker-quick-shift {
    grid-template-columns: 1fr;
  }
}

/* POS staff schedule access */
.pos-staff-gift-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 0 0 auto;
}

.pos-staff-schedule-top-btn,
.pos-gift-card-top-btn {
  white-space: nowrap;
}

.pos-staff-schedule-card {
  width: min(1560px, 98vw);
  max-height: 94vh;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  display: flex;
  flex-direction: column;
  padding: clamp(18px, 2vw, 28px);
}

.pos-staff-schedule-head,
.pos-staff-schedule-toolbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.pos-staff-schedule-close {
  flex: 0 0 auto;
}

.pos-staff-pin-step.is-hidden,
.pos-staff-schedule-step.is-hidden,
.pos-staff-add-form.is-hidden {
  display: none !important;
}

.pos-staff-pin-step {
  max-width: 520px;
  margin: 0 auto;
  width: 100%;
}

.pos-staff-pin-input {
  text-align: center;
  letter-spacing: .45em;
  font-size: 30px;
  font-weight: 900;
}

.pos-staff-pin-keypad {
  margin-top: 14px;
}

.pos-staff-schedule-status {
  margin-top: 12px;
  border: 2px solid #bfdbfe;
  border-radius: 18px;
  padding: 12px 14px;
  background: #eff6ff;
  color: #0f172a;
  font-weight: 800;
  text-align: center;
}

.pos-staff-schedule-step {
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.pos-staff-schedule-toolbar {
  position: sticky;
  top: 0;
  z-index: 3;
  border: 2px solid #dbeafe;
  background: #f8fbff;
  border-radius: 18px;
  padding: 12px 14px;
}

.pos-staff-schedule-toolbar strong {
  display: block;
  color: #0f172a;
  font-size: 16px;
  font-weight: 950;
}

.pos-staff-schedule-toolbar span {
  color: #64748b;
  font-size: 12px;
  font-weight: 800;
}

.pos-staff-schedule-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 0 0 auto;
}

.pos-staff-add-toggle {
  min-height: 46px;
  padding: 0 18px;
}

.pos-staff-add-form {
  border: 2px solid #bfdbfe;
  background: #eff6ff;
  border-radius: 18px;
  padding: 12px;
}

.pos-staff-add-grid {
  display: grid;
  grid-template-columns: minmax(160px, 1.3fr) repeat(3, minmax(110px, .7fr)) minmax(150px, 1fr);
  gap: 10px;
}

.pos-staff-add-grid label span {
  display: block;
  color: #0f172a;
  font-size: 12px;
  font-weight: 950;
  margin-bottom: 4px;
}

.pos-staff-add-grid select,
.pos-staff-add-grid input {
  width: 100%;
  min-height: 46px;
  border: 2px solid #bfdbfe;
  border-radius: 14px;
  background: #fff;
  padding: 0 12px;
  color: #0f172a;
  font-weight: 900;
}

.pos-staff-add-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 10px;
}

.pos-staff-week-grid {
  min-height: 420px;
  max-height: calc(94vh - 250px);
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  display: grid;
  grid-template-columns: repeat(7, minmax(150px, 1fr));
  gap: 10px;
  padding: 2px 2px 8px;
  overscroll-behavior: contain;
}

.pos-staff-day-col {
  min-width: 150px;
  border: 2px solid #bfdbfe;
  border-radius: 18px;
  background: #ffffff;
  overflow: hidden;
}

.pos-staff-day-col h3 {
  position: sticky;
  top: 0;
  z-index: 1;
  margin: 0;
  padding: 10px 10px 8px;
  background: #eff6ff;
  color: #1d4ed8;
  font-size: 13px;
  font-weight: 950;
  border-bottom: 2px solid #bfdbfe;
}

.pos-staff-slot-list {
  display: grid;
  gap: 4px;
  padding: 7px;
}

.pos-staff-schedule-slot {
  min-height: 50px;
  border: 2px dashed #dbeafe;
  border-radius: 12px;
  padding: 5px;
  background: #f8fbff;
  transition: background .12s ease, border-color .12s ease, transform .12s ease;
}

.pos-staff-schedule-slot.is-drop-target {
  background: #dbeafe;
  border-color: #2563eb;
  transform: scale(1.01);
}

.pos-staff-slot-time {
  display: block;
  color: #64748b;
  font-size: 10px;
  font-weight: 950;
  line-height: 1;
  margin-bottom: 4px;
}

.pos-staff-slot-shifts {
  display: grid;
  gap: 4px;
}

.pos-staff-shift-pill {
  width: 100%;
  border: 0;
  border-radius: 11px;
  background: #0f172a;
  color: #ffffff;
  padding: 8px 9px;
  text-align: left;
  cursor: grab;
  box-shadow: none;
  touch-action: none;
  user-select: none;
}

.pos-staff-shift-pill:active,
.pos-staff-shift-pill.is-dragging {
  cursor: grabbing;
  opacity: .72;
}

.pos-staff-shift-pill strong,
.pos-staff-shift-pill span,
.pos-staff-shift-pill small {
  display: block;
  line-height: 1.15;
}

.pos-staff-shift-pill strong {
  font-size: 11px;
  font-weight: 950;
}

.pos-staff-shift-pill span {
  margin-top: 2px;
  font-size: 10px;
  font-weight: 900;
}

.pos-staff-shift-pill small {
  margin-top: 2px;
  color: #bfdbfe;
  font-size: 9px;
  font-weight: 800;
}

@media (max-width: 980px) {
  .pos-staff-gift-actions { gap: 6px; }
  .pos-staff-gift-actions .pos-pill { padding-left: 12px; padding-right: 12px; }
  .pos-staff-week-grid { grid-template-columns: repeat(7, minmax(138px, 1fr)); }
  .pos-staff-add-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pos-staff-schedule-toolbar { align-items: stretch; flex-direction: column; }
  .pos-staff-schedule-actions { justify-content: stretch; }
  .pos-staff-schedule-actions button { flex: 1 1 auto; }
}

.pos-staff-shift-pill.is-selected {
  outline: 3px solid #facc15;
  outline-offset: 2px;
}

/* v1.3.51 - POS tablet header button cleanup */
body.pos-body .pos-header {
  justify-content: flex-start !important;
}

body.pos-body .pos-brand {
  flex: 1 1 auto !important;
}

body.pos-body .pos-staff-gift-actions,
body.pos-body .pos-header-actions {
  gap: 10px !important;
}

body.pos-body .pos-staff-gift-actions {
  margin-right: 0 !important;
}

body.pos-body .pos-pill,
body.pos-body .time-clock-pill {
  min-height: 58px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 9px !important;
  border: 2px solid var(--primary-200) !important;
  background: rgba(255,255,255,.92) !important;
  color: var(--primary-800) !important;
  border-radius: 999px !important;
  padding: 13px 18px !important;
  font-size: 18px !important;
  font-weight: 1000 !important;
  line-height: 1 !important;
  box-shadow: 0 8px 18px rgba(15,23,42,.05) !important;
  white-space: nowrap !important;
}

body.pos-body .pos-gift-card-top-btn {
  border-color: rgba(202,138,4,.34) !important;
  color: #854d0e !important;
}

body.pos-body .time-clock-pill {
  border-color: var(--primary-200) !important;
}

body.pos-body .time-clock-pill .time-clock-count,
body.pos-body #posHeaderCartCount {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 32px !important;
  height: 32px !important;
  padding: 0 9px !important;
  margin-left: 3px !important;
  border-radius: 999px !important;
  background: linear-gradient(135deg, #2563eb, #1d4ed8) !important;
  color: #fff !important;
  font-size: 18px !important;
  font-weight: 1000 !important;
  line-height: 1 !important;
  box-shadow: none !important;
}

body.pos-body .pos-cart-add-pill {
  padding-right: 13px !important;
}

@media (min-width: 761px) and (max-width: 1180px) {
  body.pos-body .pos-header {
    gap: 8px !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  body.pos-body .pos-staff-gift-actions,
  body.pos-body .pos-header-actions {
    gap: 8px !important;
  }

  body.pos-body .pos-pill,
  body.pos-body .time-clock-pill {
    min-height: 52px !important;
    padding: 11px 13px !important;
    font-size: 15px !important;
  }

  body.pos-body .time-clock-pill .time-clock-count,
  body.pos-body #posHeaderCartCount {
    min-width: 28px !important;
    height: 28px !important;
    font-size: 15px !important;
    padding: 0 7px !important;
  }
}

/* v1.3.53 item-level notes */
.item-note-label {
  margin-top: 16px;
}
.item-note-input {
  min-height: 74px;
  max-height: 128px;
  resize: vertical;
  font-size: 18px;
  line-height: 1.3;
}
.cart-item-note {
  margin-top: 5px;
  color: #0f172a;
  font-weight: 800;
  font-size: 13px;
  line-height: 1.25;
  opacity: .82;
}
body.kiosk-body .cart-item-note,
body.online-order-body .cart-item-note {
  color: #9a3412;
  font-size: 14px;
}
body.pos-body .cart-item-note {
  color: #1d4ed8;
  font-size: 13px;
}
@media (max-width: 720px) {
  .item-note-input {
    min-height: 88px;
    font-size: 18px;
  }
  .cart-item-note {
    font-size: 13px;
  }
}

/* =========================================================
   Lobby / TV Order Status Board with menu photos + prices
   ========================================================= */
body.lobby-body {
  background:
    radial-gradient(circle at 8% 8%, rgba(var(--primary-500-rgb), .32), transparent 30%),
    radial-gradient(circle at 90% 86%, rgba(34, 197, 94, .22), transparent 34%),
    linear-gradient(135deg, #020617 0%, #0f172a 54%, #111827 100%) !important;
  color: #f8fafc;
  overflow: hidden;
}

body.lobby-body .lobby-shell {
  min-height: 100vh;
  max-height: 100vh;
  overflow: hidden;
  background: transparent !important;
}

body.lobby-body .lobby-header {
  min-height: 122px;
  padding: clamp(18px, 2vw, 28px) clamp(24px, 2.4vw, 42px);
  background: rgba(2, 6, 23, .72);
  border-bottom: 1px solid rgba(255,255,255,.14);
  box-shadow: 0 18px 60px rgba(0,0,0,.24);
}

body.lobby-body .lobby-brand h1 {
  max-width: 1180px;
  font-size: clamp(28px, 3.2vw, 62px);
  letter-spacing: -.055em;
}

body.lobby-body .lobby-brand p {
  color: #e2e8f0;
  font-size: clamp(16px, 1.25vw, 24px);
}

body.lobby-body .lobby-logo {
  width: clamp(62px, 5vw, 92px);
  height: clamp(62px, 5vw, 92px);
  border-radius: 26px;
  border: 2px solid rgba(255,255,255,.20);
}

body.lobby-body .lobby-time span {
  font-size: clamp(34px, 3.4vw, 66px);
}

body.lobby-tv-body .lobby-brand h1,
body.lobby-tv-body .lobby-time span {
  color: #ffffff !important;
  text-shadow: 0 3px 18px rgba(0,0,0,.45);
}

.lobby-tv-grid {
  flex: 1;
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(250px, .74fr) minmax(600px, 1.72fr) minmax(310px, .9fr);
  gap: clamp(14px, 1.25vw, 24px);
  padding: clamp(14px, 1.25vw, 24px);
  overflow: hidden;
}

body.lobby-body .lobby-board {
  min-height: 0;
  padding: 0;
  gap: clamp(14px, 1.15vw, 22px);
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
}

body.lobby-body .lobby-column,
.lobby-photo-panel,
.lobby-menu-panel {
  min-height: 0;
  overflow: hidden;
  border-radius: clamp(22px, 2vw, 36px);
  background: rgba(15, 23, 42, .74);
  border: 1px solid rgba(255,255,255,.14);
  box-shadow: 0 24px 70px rgba(0,0,0,.30);
  backdrop-filter: blur(16px);
}

body.lobby-body .lobby-column-head {
  padding: clamp(16px, 1.4vw, 24px);
}

body.lobby-body .lobby-column-head h2 {
  font-size: clamp(30px, 3vw, 60px);
}

body.lobby-body .lobby-column-head span {
  min-width: clamp(52px, 4vw, 72px);
  height: clamp(52px, 4vw, 72px);
  border-radius: 20px;
  font-size: clamp(27px, 2.5vw, 40px);
}

body.lobby-body .lobby-orders {
  padding: clamp(14px, 1.25vw, 22px);
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: clamp(12px, 1vw, 18px);
}

body.lobby-body .lobby-order {
  border-radius: 24px;
  padding: clamp(14px, 1.15vw, 20px);
  border-width: 4px;
}

body.lobby-body .lobby-customer-name {
  font-size: clamp(28px, 2.55vw, 52px);
}

body.lobby-body .lobby-order-number {
  font-size: clamp(24px, 2.25vw, 44px);
}

.lobby-photo-panel,
.lobby-menu-panel {
  display: flex;
  flex-direction: column;
}

.lobby-photo-head,
.lobby-menu-head {
  padding: 18px 20px;
  background: linear-gradient(135deg, rgba(var(--primary-500-rgb), .98), rgba(239, 68, 68, .94));
  border-bottom: 1px solid rgba(255,255,255,.18);
}

.lobby-photo-head span,
.lobby-menu-head span {
  display: block;
  color: rgba(255,255,255,.78);
  font-size: clamp(12px, .9vw, 16px);
  font-weight: 1000;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.lobby-photo-head strong,
.lobby-menu-head strong {
  display: block;
  margin-top: 4px;
  color: #ffffff;
  font-size: clamp(24px, 2.15vw, 42px);
  line-height: .92;
  font-weight: 1000;
  letter-spacing: -.055em;
}

.lobby-photo-viewport {
  position: relative;
  flex: 1;
  min-height: 0;
  overflow: hidden;
  padding: 16px;
  -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 42px, #000 calc(100% - 42px), transparent 100%);
  mask-image: linear-gradient(to bottom, transparent 0, #000 42px, #000 calc(100% - 42px), transparent 100%);
}

.lobby-photo-track {
  display: flex;
  flex-direction: column;
  gap: 16px;
  animation: lobbyPhotoScroll var(--lobby-scroll-seconds, 42s) linear infinite;
}

.lobby-photo-track:hover {
  animation-play-state: paused;
}

.lobby-photo-card {
  position: relative;
  min-height: clamp(150px, 17vh, 230px);
  overflow: hidden;
  border-radius: 26px;
  background: #111827;
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 18px 42px rgba(0,0,0,.28);
}

.lobby-photo-card img {
  width: 100%;
  height: 100%;
  min-height: clamp(150px, 17vh, 230px);
  object-fit: cover;
  display: block;
  transform: scale(1.02);
}

.lobby-photo-caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 12px;
  padding: 44px 16px 14px;
  background: linear-gradient(to top, rgba(2,6,23,.94), rgba(2,6,23,.10));
}

.lobby-photo-caption strong {
  min-width: 0;
  color: #ffffff;
  font-size: clamp(17px, 1.35vw, 25px);
  line-height: .98;
  font-weight: 1000;
  letter-spacing: -.035em;
}

.lobby-photo-caption span {
  flex: 0 0 auto;
  color: #fef08a;
  font-size: clamp(18px, 1.5vw, 28px);
  line-height: .95;
  font-weight: 1000;
}

@keyframes lobbyPhotoScroll {
  from { transform: translateY(0); }
  to { transform: translateY(-50%); }
}

.lobby-photo-empty,
.lobby-menu-empty {
  min-height: 180px;
  display: grid;
  place-items: center;
  text-align: center;
  color: #cbd5e1;
  border: 2px dashed rgba(255,255,255,.16);
  border-radius: 24px;
  padding: 20px;
  font-size: clamp(18px, 1.5vw, 28px);
  font-weight: 900;
}

.lobby-menu-list {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  padding: 16px;
}

.lobby-menu-category + .lobby-menu-category {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,.12);
}

.lobby-menu-category h3 {
  margin: 0 0 10px;
  color: #fef08a;
  font-size: clamp(20px, 1.65vw, 30px);
  line-height: 1;
  font-weight: 1000;
  letter-spacing: -.045em;
}

.lobby-menu-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: baseline;
  padding: clamp(7px, .72vw, 11px) 0;
  border-bottom: 1px dashed rgba(255,255,255,.13);
}

.lobby-menu-row span {
  min-width: 0;
  color: #f8fafc;
  font-size: clamp(17px, 1.35vw, 25px);
  line-height: 1.05;
  font-weight: 900;
  letter-spacing: -.03em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.lobby-menu-row strong {
  color: #86efac;
  font-size: clamp(18px, 1.45vw, 27px);
  line-height: 1;
  font-weight: 1000;
}

body.lobby-body .lobby-footer {
  padding: 12px 28px 18px;
  color: #e2e8f0;
  background: rgba(2, 6, 23, .38);
}

@media (max-width: 1200px) {
  body.lobby-body { overflow: auto; }
  body.lobby-body .lobby-shell { max-height: none; overflow: visible; }
  .lobby-tv-grid {
    grid-template-columns: 1fr;
    overflow: visible;
  }
  .lobby-photo-panel { min-height: 360px; }
  .lobby-photo-viewport { max-height: 420px; }
  body.lobby-body .lobby-board { grid-template-columns: 1fr; }
  .lobby-menu-list { overflow: visible; }
}

/* =========================================================
   Lobby display split: Tablet vs Android TV
   ========================================================= */
body.lobby-tablet-body {
  overflow: auto !important;
  background:
    radial-gradient(circle at 10% 10%, rgba(var(--primary-500-rgb), .18), transparent 30%),
    linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%) !important;
  color: #0f172a;
}

body.lobby-tablet-body .lobby-shell {
  min-height: 100vh;
  max-height: none;
  overflow: visible;
  background: transparent !important;
}

body.lobby-tablet-body .lobby-header {
  min-height: auto;
  padding: 18px 20px;
  background: rgba(255,255,255,.88);
  border-bottom: 1px solid rgba(15,23,42,.10);
  box-shadow: 0 12px 36px rgba(15,23,42,.10);
  color: #0f172a;
}

body.lobby-tablet-body .lobby-brand h1 {
  color: #0f172a;
  font-size: clamp(24px, 4vw, 42px);
}

body.lobby-tablet-body .lobby-brand p,
body.lobby-tablet-body .lobby-time strong {
  color: #475569;
}

body.lobby-tablet-body .lobby-time span {
  color: #0f172a;
  font-size: clamp(28px, 4vw, 46px);
}

.lobby-tablet-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, .36fr);
  gap: 18px;
  padding: 18px;
}

body.lobby-tablet-body .lobby-board {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  min-height: calc(100vh - 220px);
  padding: 0;
}

body.lobby-tablet-body .lobby-column,
.lobby-tablet-menu {
  overflow: hidden;
  border-radius: 26px;
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(15,23,42,.10);
  box-shadow: 0 20px 45px rgba(15,23,42,.12);
  color: #0f172a;
}

body.lobby-tablet-body .lobby-column-head h2 {
  color: #0f172a;
  font-size: clamp(28px, 3.4vw, 42px);
}

body.lobby-tablet-body .lobby-orders {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 14px;
  overflow: auto;
  padding: 16px;
}

body.lobby-tablet-body .lobby-order {
  background: #ffffff;
  color: #0f172a;
  border-radius: 22px;
  padding: 16px;
}

body.lobby-tablet-body .lobby-customer-name {
  color: #0f172a;
  font-size: clamp(26px, 3.2vw, 42px);
}

body.lobby-tablet-body .lobby-order-number {
  font-size: clamp(22px, 2.8vw, 36px);
}

.lobby-tablet-menu {
  display: flex;
  flex-direction: column;
  max-height: calc(100vh - 220px);
}

body.lobby-tablet-body .lobby-menu-head {
  padding: 16px 18px;
}

body.lobby-tablet-body .lobby-menu-head strong {
  font-size: clamp(24px, 2.8vw, 34px);
}

body.lobby-tablet-body .lobby-menu-list {
  overflow: auto;
  padding: 14px;
}

body.lobby-tablet-body .lobby-menu-category h3 {
  color: #b45309;
  font-size: 22px;
}

body.lobby-tablet-body .lobby-menu-row span {
  color: #0f172a;
  font-size: 18px;
}

body.lobby-tablet-body .lobby-menu-row strong {
  color: #15803d;
  font-size: 19px;
}

.lobby-tablet-photo-source {
  display: none !important;
}

body.lobby-tv-body button:focus-visible,
body.lobby-tv-body input:focus-visible,
body.lobby-tv-body .device-login-card button:focus,
body.lobby-tv-body .device-login-card input:focus {
  outline: 5px solid #fef08a;
  outline-offset: 4px;
  box-shadow: 0 0 0 9px rgba(254, 240, 138, .22);
}

body.lobby-tv-body .device-login-card {
  max-width: 720px;
  border-radius: 34px;
}

body.lobby-tv-body .device-login-card h2 {
  font-size: clamp(36px, 5vw, 68px);
}

body.lobby-tv-body .device-login-card p,
body.lobby-tv-body .device-login-card label,
body.lobby-tv-body .device-login-error {
  font-size: clamp(18px, 2vw, 28px);
}

body.lobby-tv-body .device-login-card input,
body.lobby-tv-body .device-login-card button {
  min-height: 68px;
  font-size: clamp(22px, 2.4vw, 34px);
}

@media (max-width: 900px) {
  .lobby-tablet-grid {
    grid-template-columns: 1fr;
    padding: 14px;
  }
  body.lobby-tablet-body .lobby-board {
    grid-template-columns: 1fr;
    min-height: 0;
  }
  .lobby-tablet-menu {
    max-height: none;
  }
}

/* v1.3.60 - scheduling width, open-hours-only board, tablet drag polish */
body.admin-body .admin-modal-card.is-scheduler-modal,
.admin-modal-card.is-scheduler-modal {
  width: calc(100vw - 16px) !important;
  max-width: none !important;
  height: calc(100vh - 16px) !important;
  max-height: calc(100vh - 16px) !important;
  border-radius: 28px !important;
  padding: clamp(14px, 1.4vw, 22px) !important;
}

body.admin-body .admin-modal-card.is-scheduler-modal h2,
.admin-modal-card.is-scheduler-modal h2 {
  margin-bottom: 12px !important;
  font-size: clamp(28px, 2.2vw, 40px) !important;
}

.worker-scheduler-board {
  max-height: calc(100vh - 270px) !important;
  min-height: 360px !important;
  grid-template-columns: repeat(7, minmax(132px, 1fr)) !important;
  gap: 8px !important;
  touch-action: pan-x pan-y;
}

.worker-schedule-day {
  min-width: 0 !important;
  border-radius: 18px !important;
}

.worker-schedule-slot {
  min-height: 42px !important;
  grid-template-columns: 40px minmax(0, 1fr) !important;
}

.worker-shift-pill {
  padding: 7px 8px !important;
  border-radius: 12px !important;
  touch-action: none !important;
  -webkit-user-drag: none;
  -webkit-touch-callout: none;
}

.worker-schedule-day.is-closed,
.pos-staff-day-col.is-closed {
  opacity: .78;
}

.worker-schedule-closed,
.pos-staff-schedule-closed {
  margin: 10px;
  min-height: 88px;
  display: grid;
  place-items: center;
  border: 2px dashed #cbd5e1;
  border-radius: 14px;
  color: #64748b;
  font-weight: 950;
  background: #f8fafc;
}

.pos-staff-schedule-card {
  width: min(1500px, calc(100vw - 14px)) !important;
  max-height: calc(100vh - 14px) !important;
  border-radius: 28px !important;
  overflow: auto !important;
}

.pos-staff-week-grid {
  max-height: calc(100vh - 235px) !important;
  min-height: 340px !important;
  grid-template-columns: repeat(7, minmax(128px, 1fr)) !important;
  gap: 8px !important;
  touch-action: pan-x pan-y;
}

.pos-staff-day-col {
  min-width: 0 !important;
  border-radius: 16px !important;
}

.pos-staff-schedule-slot {
  min-height: 42px !important;
  padding: 4px !important;
}

.pos-staff-shift-pill {
  touch-action: none !important;
  -webkit-user-drag: none;
  -webkit-touch-callout: none;
}

@media (max-width: 980px) {
  .worker-scheduler-board,
  .pos-staff-week-grid {
    grid-template-columns: repeat(7, minmax(122px, 1fr)) !important;
  }
  .worker-schedule-slot,
  .pos-staff-schedule-slot {
    min-height: 40px !important;
  }
}

/* v1.3.61 - one-day scheduler workflow */
.worker-scheduler-one-day {
  gap: 10px;
}
.worker-day-tabs,
.pos-staff-day-tabs {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 8px;
  padding: 6px;
  border: 2px solid #dbeafe;
  border-radius: 20px;
  background: #f8fbff;
}
.worker-day-tab,
.pos-staff-day-tab {
  display: grid;
  gap: 2px;
  min-height: 54px;
  border: 2px solid #cbd5e1;
  border-radius: 15px;
  background: #ffffff;
  color: #0f172a;
  font-weight: 1000;
  cursor: pointer;
  box-shadow: none;
}
.worker-day-tab span,
.pos-staff-day-tab span {
  font-size: 14px;
  line-height: 1;
}
.worker-day-tab small,
.pos-staff-day-tab small {
  color: #64748b;
  font-size: 10px;
  font-weight: 900;
}
.worker-day-tab.is-active,
.pos-staff-day-tab.is-active {
  border-color: #2563eb;
  background: linear-gradient(135deg, #2563eb, #1d4ed8);
  color: #ffffff;
}
.worker-day-tab.is-active small,
.pos-staff-day-tab.is-active small {
  color: #dbeafe;
}
.worker-one-day-board,
.pos-staff-one-day {
  border: 2px solid #bfdbfe;
  border-radius: 22px;
  background: #ffffff;
  overflow: hidden;
  min-height: 360px;
}
.worker-one-day-head,
.pos-staff-one-day-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 12px 14px;
  background: #eff6ff;
  border-bottom: 2px solid #bfdbfe;
}
.worker-one-day-head h4,
.pos-staff-one-day-head h3 {
  margin: 0;
  color: #1d4ed8;
  font-size: 20px;
  font-weight: 1000;
  letter-spacing: -0.03em;
}
.worker-one-day-head p,
.pos-staff-one-day-head p {
  margin: 2px 0 0;
  color: #64748b;
  font-size: 12px;
  font-weight: 900;
}
.worker-one-day-head strong,
.pos-staff-one-day-head strong {
  flex: 0 0 auto;
  border-radius: 999px;
  padding: 8px 12px;
  background: #dbeafe;
  color: #1d4ed8;
  font-size: 12px;
  font-weight: 1000;
}
.worker-one-day-scroll,
.pos-staff-one-day-scroll {
  max-height: calc(100vh - 360px);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  padding: 8px;
  display: grid;
  gap: 6px;
  touch-action: pan-y;
}
.worker-one-day-slot,
.pos-staff-one-day-slot {
  min-height: 58px !important;
  display: grid !important;
  grid-template-columns: 110px minmax(0, 1fr) !important;
  gap: 10px !important;
  align-items: stretch;
  border: 2px dashed #dbeafe !important;
  border-radius: 16px !important;
  background: #f8fbff;
  padding: 7px !important;
}
.worker-slot-start,
.pos-staff-slot-start {
  border: 0;
  border-radius: 13px;
  background: #e0f2fe;
  color: #075985;
  font-size: 14px;
  font-weight: 1000;
  cursor: pointer;
  box-shadow: none;
}
.worker-slot-start:active,
.pos-staff-slot-start:active {
  transform: scale(.98);
}
.worker-one-day-slot .worker-slot-content,
.pos-staff-one-day-slot .pos-staff-slot-shifts {
  align-content: start;
  display: grid;
  gap: 6px;
}
.worker-one-day-slot .worker-shift-pill,
.pos-staff-one-day-slot .pos-staff-shift-pill {
  max-width: 360px;
}
.worker-scheduler-one-day .worker-quick-shift {
  grid-template-columns: minmax(160px, .8fr) minmax(120px, .6fr) minmax(120px, .6fr) minmax(160px, 1fr) auto;
}
.pos-staff-week-grid {
  display: block !important;
  max-height: none !important;
  min-height: 0 !important;
  overflow: visible !important;
}
.pos-staff-add-grid {
  grid-template-columns: minmax(170px, 1.15fr) minmax(130px, .75fr) minmax(120px, .65fr) minmax(120px, .65fr) minmax(160px, 1fr) !important;
}
.pos-staff-schedule-step {
  min-height: 0;
}

@media (max-width: 980px) {
  .worker-day-tabs,
  .pos-staff-day-tabs {
    display: flex;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .worker-day-tab,
  .pos-staff-day-tab {
    min-width: 92px;
  }
  .worker-scheduler-one-day .worker-quick-shift,
  .pos-staff-add-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .worker-one-day-scroll,
  .pos-staff-one-day-scroll {
    max-height: calc(100vh - 350px);
  }
  .worker-one-day-slot,
  .pos-staff-one-day-slot {
    grid-template-columns: 96px minmax(0, 1fr) !important;
  }
}

@media (max-width: 640px) {
  .worker-scheduler-one-day .worker-quick-shift,
  .pos-staff-add-grid {
    grid-template-columns: 1fr !important;
  }
  .worker-one-day-head,
  .pos-staff-one-day-head {
    align-items: flex-start;
    flex-direction: column;
  }
  .worker-one-day-slot,
  .pos-staff-one-day-slot {
    grid-template-columns: 1fr !important;
  }
  .worker-slot-start,
  .pos-staff-slot-start {
    min-height: 44px;
  }
}

/* Mobile online hours dropdown z-index fix
   Keeps the View Hours panel above the sticky category/header rail on phones. */
body.online-body .online-hero {
  z-index: 90 !important;
}
body.online-body .online-hours-card {
  position: relative;
  z-index: 120 !important;
}
body.online-body .online-hours-card.show-hours {
  z-index: 220 !important;
}
body.online-body .online-hours-dropdown {
  z-index: 225 !important;
}
@media (max-width: 760px) {
  body.online-body .online-category-tabs {
    z-index: 40 !important;
  }
  body.online-body .online-hours-card.show-hours .online-hours-dropdown {
    max-height: min(64vh, 520px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
}

/* v1.3.64 - POS staff schedule employee x weekday matrix: Eatery Kiosks color pass */
.pos-staff-week-grid {
  display: block !important;
  overflow: auto !important;
  max-height: calc(100vh - 235px) !important;
  min-height: 0 !important;
  padding: 0 !important;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}
.pos-staff-matrix {
  min-width: 980px;
  padding: 4px;
}
.pos-staff-matrix-grid {
  display: grid;
  grid-template-columns: minmax(210px, 1.25fr) repeat(var(--pos-staff-days), minmax(116px, 1fr));
  gap: 6px;
  background: #ffffff;
}
.pos-staff-matrix-head,
.pos-staff-matrix-name,
.pos-staff-matrix-cell {
  min-height: 86px;
  border-radius: 18px;
  box-shadow: 0 10px 22px rgba(15, 23, 42, .06);
}
.pos-staff-matrix-head {
  display: grid;
  place-items: center;
  padding: 14px 10px;
  border: 2px solid rgba(var(--primary-500-rgb), .26);
  background: linear-gradient(135deg, var(--primary-700), var(--primary-500));
  color: #ffffff;
  text-align: center;
  font-size: clamp(18px, 2vw, 27px);
  line-height: 1.02;
  font-weight: 1000;
  letter-spacing: .035em;
}
.pos-staff-matrix-name-head {
  justify-items: start;
  text-align: left;
  padding-left: 28px;
  background: #0f172a;
  border-color: rgba(15, 23, 42, .2);
}
.pos-staff-matrix-name {
  display: grid;
  align-content: center;
  gap: 4px;
  padding: 14px 18px 14px 28px;
  border: 2px solid rgba(15, 23, 42, .12);
  background: #0f172a;
  color: #ffffff;
  overflow: hidden;
}
.pos-staff-matrix-name strong {
  display: block;
  font-size: clamp(17px, 1.8vw, 25px);
  line-height: 1.02;
  font-weight: 1000;
  letter-spacing: .025em;
  text-transform: uppercase;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pos-staff-matrix-name span {
  color: rgba(255, 255, 255, .78);
  font-size: 11px;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.pos-staff-matrix-cell {
  position: relative;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 3px;
  padding: 12px 8px;
  border: 2px solid var(--primary-200);
  background: #ffffff;
  color: #0f172a;
  text-align: center;
  cursor: pointer;
  user-select: none;
  touch-action: manipulation;
  transition: transform .12s ease, box-shadow .12s ease, filter .12s ease, border-color .12s ease;
}
.pos-staff-matrix-cell span {
  color: inherit;
  font-size: clamp(17px, 1.8vw, 25px);
  line-height: 1;
  font-weight: 1000;
  letter-spacing: .02em;
}
.pos-staff-matrix-cell small {
  border-radius: 999px;
  padding: 3px 7px;
  background: rgba(255, 255, 255, .2);
  color: #ffffff;
  font-size: 11px;
  font-weight: 1000;
}
.pos-staff-matrix-cell:hover,
.pos-staff-matrix-cell:focus-visible {
  filter: brightness(1.02);
  border-color: var(--primary-500);
  outline: 4px solid rgba(var(--primary-500-rgb), .2);
  outline-offset: -4px;
}
.pos-staff-matrix-cell.has-shift {
  border-color: rgba(var(--primary-600-rgb), .45);
  background: linear-gradient(135deg, var(--primary-700), var(--primary-500));
  color: #ffffff;
}
.pos-staff-matrix-cell.is-off {
  background: var(--primary-50);
  color: #334155;
}
.pos-staff-matrix-cell.is-off small {
  background: rgba(15, 23, 42, .08);
  color: #334155;
}
.pos-staff-matrix-cell.is-drop-target {
  transform: scale(.98);
  box-shadow: inset 0 0 0 5px var(--primary-500), 0 10px 22px rgba(15, 23, 42, .06);
}
.pos-staff-matrix-empty {
  grid-column: 1 / -1;
  min-height: 160px;
  display: grid;
  place-items: center;
  border: 2px dashed var(--primary-200);
  border-radius: 18px;
  color: var(--primary-800);
  font-size: 18px;
  font-weight: 1000;
  background: var(--primary-50);
}
.pos-staff-add-form:not(.is-hidden) {
  position: fixed;
  z-index: 12050;
  left: 50%;
  top: 50%;
  width: min(720px, calc(100vw - 28px));
  max-height: calc(100vh - 34px);
  overflow: auto;
  transform: translate(-50%, -50%);
  padding: 18px;
  border: 3px solid #bfdbfe;
  border-radius: 26px;
  background: #ffffff;
  box-shadow: 0 30px 90px rgba(15,23,42,.34);
}
.pos-staff-add-form:not(.is-hidden)::before {
  content: 'Set Employee Shift';
  display: block;
  margin-bottom: 12px;
  color: #0f172a;
  font-size: 24px;
  line-height: 1;
  font-weight: 1000;
  letter-spacing: -.04em;
}
.pos-staff-add-form:not(.is-hidden) .pos-staff-add-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}
.pos-staff-add-form:not(.is-hidden) .pos-staff-add-grid label:first-child,
.pos-staff-add-form:not(.is-hidden) .pos-staff-add-grid label:last-child {
  grid-column: 1 / -1;
}
.pos-staff-add-form:not(.is-hidden) .pos-staff-add-actions {
  justify-content: space-between;
  align-items: center;
  gap: 10px;
}
.pos-staff-clear-day {
  margin-right: auto;
}
@media (max-width: 760px) {
  .pos-staff-schedule-card {
    width: calc(100vw - 10px) !important;
    max-height: calc(100vh - 10px) !important;
    padding: 12px !important;
    border-radius: 22px !important;
  }
  .pos-staff-schedule-head,
  .pos-staff-schedule-toolbar {
    gap: 10px;
  }
  .pos-staff-week-grid {
    max-height: calc(100vh - 220px) !important;
  }
  .pos-staff-matrix {
    min-width: 840px;
  }
  .pos-staff-matrix-grid {
    grid-template-columns: 170px repeat(7, 95px);
  }
  .pos-staff-matrix-head,
  .pos-staff-matrix-name,
  .pos-staff-matrix-cell {
    min-height: 74px;
  }
  .pos-staff-matrix-name-head,
  .pos-staff-matrix-name {
    padding-left: 14px;
  }
  .pos-staff-add-form:not(.is-hidden) .pos-staff-add-grid {
    grid-template-columns: 1fr !important;
  }
  .pos-staff-add-form:not(.is-hidden) .pos-staff-add-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .pos-staff-clear-day {
    grid-column: 1 / -1;
    margin-right: 0;
  }
}
.pos-staff-clear-day,
.danger-btn.pos-staff-clear-day {
  border: 0;
  border-radius: 16px;
  min-height: 48px;
  padding: 0 16px;
  background: #fee2e2;
  color: #991b1b;
  font-size: 15px;
  font-weight: 1000;
  box-shadow: none;
}


/* v1.3.65 - Hide staff scheduling access on Mobile POS */
body.pos-mobile-body .pos-staff-schedule-top-btn {
  display: none !important;
}

@media (max-width: 760px) {
  body.pos-body .pos-staff-schedule-top-btn {
    display: none !important;
  }
}


/* v1.3.66 - compact staff scheduler for tablet/desktop POS */
.pos-staff-schedule-card {
  width: min(1180px, calc(100vw - 52px)) !important;
  max-height: calc(100vh - 34px) !important;
  padding: 14px 18px !important;
  border-radius: 22px !important;
}
.pos-staff-schedule-card .modal-title {
  font-size: clamp(24px, 2.4vw, 36px) !important;
  line-height: 1 !important;
  margin-bottom: 4px !important;
}
.pos-staff-schedule-card .modal-desc {
  font-size: clamp(13px, 1.2vw, 16px) !important;
  line-height: 1.25 !important;
}
.pos-staff-schedule-close {
  min-height: 48px !important;
  padding: 0 18px !important;
  border-radius: 17px !important;
  font-size: 16px !important;
}
.pos-staff-schedule-step {
  gap: 8px !important;
}
.pos-staff-schedule-toolbar {
  padding: 9px 12px !important;
  border-radius: 15px !important;
  gap: 10px !important;
}
.pos-staff-schedule-toolbar strong {
  font-size: 14px !important;
}
.pos-staff-schedule-toolbar span {
  font-size: 11px !important;
  line-height: 1.25 !important;
}
.pos-staff-schedule-actions {
  gap: 8px !important;
}
.pos-staff-add-toggle,
.pos-staff-schedule-actions .kitchen-small-btn {
  min-height: 40px !important;
  padding: 0 14px !important;
  border-radius: 15px !important;
  font-size: 15px !important;
}
.pos-staff-week-grid {
  max-height: calc(100vh - 205px) !important;
}
.pos-staff-matrix {
  min-width: 800px !important;
  padding: 2px !important;
}
.pos-staff-matrix-grid {
  grid-template-columns: 160px repeat(7, minmax(82px, 1fr)) !important;
  gap: 5px !important;
}
.pos-staff-matrix-head,
.pos-staff-matrix-name,
.pos-staff-matrix-cell {
  min-height: 62px !important;
  border-radius: 13px !important;
  box-shadow: 0 6px 14px rgba(15, 23, 42, .055) !important;
}
.pos-staff-matrix-head {
  padding: 8px 6px !important;
  font-size: clamp(15px, 1.6vw, 21px) !important;
  letter-spacing: .025em !important;
}
.pos-staff-matrix-name-head {
  padding-left: 16px !important;
}
.pos-staff-matrix-name {
  padding: 9px 10px 9px 16px !important;
  gap: 2px !important;
}
.pos-staff-matrix-name strong {
  font-size: clamp(14px, 1.4vw, 19px) !important;
  line-height: 1.04 !important;
}
.pos-staff-matrix-name span {
  font-size: 9px !important;
}
.pos-staff-matrix-cell {
  padding: 7px 5px !important;
  gap: 2px !important;
}
.pos-staff-matrix-cell span {
  font-size: clamp(14px, 1.45vw, 20px) !important;
  line-height: 1.03 !important;
}
.pos-staff-matrix-cell small {
  padding: 2px 6px !important;
  font-size: 9px !important;
}
.pos-staff-add-form:not(.is-hidden) {
  width: min(640px, calc(100vw - 72px)) !important;
  max-height: calc(100vh - 54px) !important;
  padding: 14px !important;
  border-radius: 20px !important;
}
.pos-staff-add-form:not(.is-hidden)::before {
  margin-bottom: 10px !important;
  font-size: 22px !important;
}
.pos-staff-add-form:not(.is-hidden) .pos-staff-add-grid {
  gap: 8px !important;
}
.pos-staff-add-form:not(.is-hidden) .pos-staff-add-grid label span {
  font-size: 11px !important;
}
.pos-staff-add-form:not(.is-hidden) input,
.pos-staff-add-form:not(.is-hidden) select {
  min-height: 42px !important;
  height: 42px !important;
  border-radius: 13px !important;
  font-size: 14px !important;
  padding: 0 12px !important;
}
.pos-staff-add-form:not(.is-hidden) .pos-staff-add-actions {
  margin-top: 10px !important;
  gap: 8px !important;
}
.pos-staff-add-form:not(.is-hidden) .pos-staff-add-actions button,
.pos-staff-clear-day,
.danger-btn.pos-staff-clear-day {
  min-height: 42px !important;
  border-radius: 13px !important;
  font-size: 14px !important;
  padding: 0 14px !important;
}
@media (max-width: 980px) {
  .pos-staff-schedule-card {
    width: calc(100vw - 32px) !important;
    padding: 12px !important;
  }
  .pos-staff-matrix {
    min-width: 760px !important;
  }
  .pos-staff-matrix-grid {
    grid-template-columns: 150px repeat(7, 82px) !important;
  }
  .pos-staff-matrix-head,
  .pos-staff-matrix-name,
  .pos-staff-matrix-cell {
    min-height: 58px !important;
  }
  .pos-staff-matrix-name strong,
  .pos-staff-matrix-cell span {
    font-size: 14px !important;
  }
}
@media (max-width: 760px) {
  .pos-staff-schedule-card {
    width: calc(100vw - 10px) !important;
    max-height: calc(100vh - 10px) !important;
    padding: 10px !important;
  }
  .pos-staff-week-grid {
    max-height: calc(100vh - 195px) !important;
  }
  .pos-staff-matrix {
    min-width: 724px !important;
  }
  .pos-staff-matrix-grid {
    grid-template-columns: 136px repeat(7, 78px) !important;
    gap: 4px !important;
  }
  .pos-staff-add-form:not(.is-hidden) {
    width: calc(100vw - 24px) !important;
    max-height: calc(100vh - 26px) !important;
    padding: 12px !important;
  }
}


/* v1.3.67 - unified Eatery Kiosks visual system pass
   Bold, readable, tablet-friendly: consistent buttons, cards, modals, tabs, and scheduler sizing. */
:root {
  --nn-navy: #0f172a;
  --nn-ink: #111827;
  --nn-muted: #475569;
  --nn-blue: var(--primary-600);
  --nn-blue-2: var(--primary-500);
  --nn-soft-blue: #eff6ff;
  --nn-border: #bfdbfe;
  --nn-border-strong: #93c5fd;
  --nn-card: rgba(255,255,255,.96);
  --nn-radius-sm: 12px;
  --nn-radius: 16px;
  --nn-radius-lg: 22px;
  --nn-shadow: 0 10px 24px rgba(15,23,42,.08);
  --nn-shadow-strong: 0 22px 60px rgba(15,23,42,.18);
}

body,
body.pos-body,
body.kitchen-body,
body.online-body,
body.admin-body,
body.lobby-body {
  color: var(--nn-ink);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* Buttons: one family, several intentions. */
.primary-btn,
.checkout-btn,
.admin-primary,
.ticket-print-btn,
.pos-staff-add-toggle,
.kitchen-action-btn.start,
.kitchen-action-btn.done,
.kitchen-action-btn.ready,
.online-add-btn,
.mobile-queue-actions .primary-btn {
  min-height: 42px;
  border: 0;
  border-radius: var(--nn-radius);
  padding: 0 16px;
  background: linear-gradient(135deg, var(--primary-600), var(--primary-500));
  color: #fff;
  font-size: clamp(14px, 1.05vw, 17px);
  font-weight: 950;
  letter-spacing: -.01em;
  box-shadow: 0 8px 18px rgba(var(--primary-600-rgb), .18);
}

.secondary-btn,
.cancel-btn,
.admin-secondary,
.ticket-close-btn,
.kitchen-small-btn,
.admin-small-btn.gray,
.mobile-queue-actions .cancel-btn {
  min-height: 42px;
  border-radius: var(--nn-radius);
  padding: 0 16px;
  background: var(--nn-navy);
  color: #fff;
  border: 1px solid rgba(15,23,42,.08);
  font-size: clamp(14px, 1.05vw, 17px);
  font-weight: 950;
  box-shadow: 0 8px 18px rgba(15,23,42,.12);
}

.cancel-btn:not(.pos-staff-schedule-close),
.admin-secondary,
.ticket-close-btn {
  background: #f8fafc;
  color: var(--nn-navy);
  border: 2px solid var(--nn-border);
  box-shadow: none;
}

.danger-btn,
.danger-settings-btn,
.admin-small-btn.danger,
.remove-btn {
  min-height: 40px;
  border-radius: var(--nn-radius-sm);
  border: 0;
  padding: 0 14px;
  background: #fee2e2;
  color: #991b1b;
  font-size: clamp(13px, 1vw, 16px);
  font-weight: 950;
  box-shadow: none;
}

.primary-btn:active,
.checkout-btn:active,
.secondary-btn:active,
.cancel-btn:active,
.admin-small-btn:active,
.kitchen-small-btn:active,
.pos-tab:active,
.category-tab:active,
.online-category-tab:active,
.kitchen-status-tab:active {
  transform: translateY(1px) scale(.99);
}

.primary-btn:disabled,
.checkout-btn:disabled,
.secondary-btn:disabled,
.cancel-btn:disabled,
.kitchen-small-btn:disabled {
  opacity: .48;
  filter: grayscale(.35);
  box-shadow: none;
}

/* Inputs/selects/textareas: consistent touch size without oversized forms. */
.big-input,
.kitchen-modal-input,
.order-type-select,
.admin-form input,
.admin-form select,
.admin-form textarea,
.pos-settings-card input,
.pos-settings-card select,
.pos-staff-add-form input,
.pos-staff-add-form select,
.online-checkout input,
.online-checkout select,
.online-checkout textarea,
textarea.big-textarea {
  min-height: 42px;
  border-radius: var(--nn-radius-sm);
  border: 2px solid var(--nn-border);
  background: #fff;
  color: var(--nn-ink);
  font-size: clamp(14px, 1.05vw, 16px);
  font-weight: 750;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.75);
}

.big-input:focus,
.kitchen-modal-input:focus,
.order-type-select:focus,
.admin-form input:focus,
.admin-form select:focus,
.admin-form textarea:focus,
.pos-settings-card input:focus,
.pos-settings-card select:focus,
.pos-staff-add-form input:focus,
.pos-staff-add-form select:focus,
.online-checkout input:focus,
.online-checkout select:focus,
.online-checkout textarea:focus,
textarea.big-textarea:focus {
  outline: 3px solid rgba(var(--primary-500-rgb), .18);
  border-color: var(--primary-500);
}

/* Cards: same radius, same border language, less random shadow. */
.product-card,
.online-product-card,
.pos-product-card,
.kitchen-order-card,
.pos-order-card,
.admin-card,
.admin-stat,
.settings-card,
.pos-settings-card,
.mobile-queue-card,
.cart-panel,
.cart-modal-item,
.mobile-pos-qr-card,
.lobby-card {
  border-radius: var(--nn-radius-lg) !important;
  border: 2px solid var(--nn-border) !important;
  background: var(--nn-card) !important;
  box-shadow: var(--nn-shadow) !important;
}

.product-card,
.online-product-card,
.pos-product-card {
  padding: clamp(12px, 1.35vw, 16px) !important;
}

.product-image,
.online-product-image,
.pos-product-image {
  border-radius: 18px !important;
}

.product-name,
.online-product-name,
.pos-product-name,
.kitchen-customer-name,
.mobile-queue-card-head h3 {
  color: var(--nn-navy);
  font-size: clamp(18px, 1.5vw, 24px) !important;
  line-height: 1.05 !important;
  font-weight: 1000 !important;
  letter-spacing: -.035em;
}

.product-price,
.online-product-price,
.pos-product-price,
.order-total {
  color: var(--primary-800);
  font-size: clamp(17px, 1.35vw, 22px) !important;
  line-height: 1.05 !important;
  font-weight: 1000 !important;
}

/* Tabs and category pills. */
.pos-tab,
.kitchen-status-tab,
.category-tab,
.online-category-tab,
.admin-tab {
  min-height: 42px;
  border-radius: 999px !important;
  padding: 0 15px !important;
  border: 2px solid var(--nn-border) !important;
  background: rgba(255,255,255,.94) !important;
  color: var(--primary-800) !important;
  font-size: clamp(13px, 1vw, 16px) !important;
  font-weight: 950 !important;
  box-shadow: 0 6px 14px rgba(15,23,42,.055) !important;
}

.pos-tab.is-active,
.kitchen-status-tab.is-active,
.category-tab.active,
.online-category-tab.is-active,
.admin-tab.is-active {
  background: linear-gradient(135deg, var(--primary-700), var(--primary-500)) !important;
  color: #fff !important;
  border-color: transparent !important;
  box-shadow: 0 10px 22px rgba(var(--primary-600-rgb), .22) !important;
}

.pos-tab span,
.kitchen-status-tab span,
.category-tab span,
.online-category-tab span {
  font-size: .92em !important;
}

/* Header action buttons. */
.pos-header-actions .primary-btn,
.pos-header-actions .secondary-btn,
.pos-header-actions .cancel-btn,
.pos-header-actions button,
.kitchen-header-actions button,
.header-pill,
.header-cart-btn {
  min-height: 40px !important;
  border-radius: 999px !important;
  padding: 0 14px !important;
  font-size: clamp(13px, 1vw, 16px) !important;
  font-weight: 950 !important;
  border: 2px solid var(--nn-border) !important;
  box-shadow: 0 6px 14px rgba(15,23,42,.055) !important;
}

.pos-header h1,
.kitchen-brand h1,
.brand-title,
.online-brand h1,
.admin-brand h1 {
  color: var(--nn-navy);
  font-size: clamp(24px, 2.5vw, 34px) !important;
  line-height: .98 !important;
  letter-spacing: -.055em !important;
  font-weight: 1000 !important;
}

.pos-header p,
.kitchen-brand p,
.brand-subtitle,
.online-brand p,
.admin-brand p {
  color: var(--nn-muted);
  font-size: clamp(12px, 1vw, 15px) !important;
  font-weight: 800 !important;
}

/* Modals: same card language and more contained tablet sizing. */
.modal-backdrop,
.admin-modal,
.kitchen-modal {
  z-index: 10000;
  background: rgba(15,23,42,.46) !important;
  backdrop-filter: blur(8px);
}

.modal-card,
.admin-modal-card,
.kitchen-modal-card,
.online-item-modal-card,
.cart-modal-card,
.pos-staff-schedule-card,
.pos-gift-card-card {
  border-radius: 24px !important;
  border: 2px solid var(--nn-border) !important;
  background: rgba(255,255,255,.97) !important;
  box-shadow: var(--nn-shadow-strong) !important;
}

.modal-card,
.kitchen-modal-card,
.pos-gift-card-card {
  padding: clamp(18px, 2vw, 26px) !important;
}

.modal-title,
.admin-modal-card h2,
.kitchen-modal-card h2,
.cart-modal-head .modal-title {
  color: var(--nn-navy);
  font-size: clamp(24px, 2.5vw, 34px) !important;
  line-height: 1 !important;
  letter-spacing: -.055em !important;
  font-weight: 1000 !important;
}

.modal-desc,
.kitchen-modal-card p,
.admin-modal-card p {
  color: var(--nn-muted);
  font-size: clamp(13px, 1.1vw, 16px) !important;
  line-height: 1.35 !important;
  font-weight: 750 !important;
}

.modal-actions {
  gap: 10px !important;
  margin-top: 16px !important;
}

/* Kitchen / POS order cards: bold but calmer. */
.kitchen-order-card,
.pos-order-card,
.mobile-queue-card {
  padding: 14px !important;
}

.kitchen-card-actions,
.mobile-queue-actions {
  gap: 8px !important;
}

.kitchen-card-actions .kitchen-action-btn,
.kitchen-card-actions .kitchen-small-btn,
.mobile-queue-actions button {
  min-height: 38px !important;
  border-radius: 14px !important;
  padding: 0 12px !important;
  font-size: 13px !important;
}

.order-number,
.order-time-badge,
.kitchen-badge {
  border-radius: 999px !important;
  font-size: 12px !important;
  font-weight: 950 !important;
}

/* Staff scheduler: compact matrix and compact editor modal. */
.pos-staff-schedule-card {
  width: min(1080px, calc(100vw - 56px)) !important;
  max-height: calc(100vh - 42px) !important;
  padding: 14px !important;
  overflow: hidden !important;
}

.pos-staff-schedule-card .modal-title {
  font-size: clamp(23px, 2vw, 31px) !important;
  margin: 0 0 3px !important;
}

.pos-staff-schedule-card .modal-desc {
  font-size: clamp(12px, 1vw, 14px) !important;
}

.pos-staff-schedule-head {
  gap: 12px !important;
  align-items: start !important;
}

.pos-staff-schedule-close {
  min-height: 44px !important;
  padding: 0 16px !important;
  border-radius: 16px !important;
  background: var(--nn-navy) !important;
  color: #fff !important;
  border: 0 !important;
  font-size: 14px !important;
  font-weight: 1000 !important;
}

.pos-staff-schedule-toolbar {
  margin-top: 8px !important;
  padding: 9px 10px !important;
  border-radius: 15px !important;
  border: 2px solid var(--nn-border) !important;
  background: rgba(239,246,255,.72) !important;
}

.pos-staff-schedule-toolbar strong { font-size: 13px !important; }
.pos-staff-schedule-toolbar span { font-size: 10.5px !important; line-height: 1.25 !important; }

.pos-staff-week-grid {
  margin-top: 10px !important;
  max-height: calc(100vh - 196px) !important;
  overflow: auto !important;
  border-radius: 18px !important;
}

.pos-staff-matrix {
  min-width: 760px !important;
  padding: 2px !important;
}

.pos-staff-matrix-grid {
  grid-template-columns: 146px repeat(7, minmax(76px, 1fr)) !important;
  gap: 5px !important;
}

.pos-staff-matrix-head,
.pos-staff-matrix-name,
.pos-staff-matrix-cell {
  min-height: 54px !important;
  border-radius: 12px !important;
  box-shadow: 0 4px 10px rgba(15,23,42,.05) !important;
}

.pos-staff-matrix-head {
  padding: 7px 5px !important;
  background: linear-gradient(135deg, var(--primary-700), var(--primary-500)) !important;
  color: #fff !important;
  font-size: clamp(13px, 1.2vw, 18px) !important;
  line-height: 1.02 !important;
  font-weight: 1000 !important;
}

.pos-staff-matrix-name-head,
.pos-staff-matrix-name {
  background: var(--nn-navy) !important;
  border-color: rgba(15,23,42,.2) !important;
}

.pos-staff-matrix-name-head { padding-left: 14px !important; }
.pos-staff-matrix-name { padding: 8px 8px 8px 14px !important; gap: 1px !important; }
.pos-staff-matrix-name strong { font-size: clamp(12px, 1.12vw, 16px) !important; line-height: 1.04 !important; }
.pos-staff-matrix-name span { font-size: 8px !important; letter-spacing: .08em !important; }

.pos-staff-matrix-cell {
  padding: 6px 4px !important;
  border-color: var(--nn-border) !important;
}

.pos-staff-matrix-cell span {
  font-size: clamp(12px, 1.14vw, 16px) !important;
  line-height: 1.02 !important;
  font-weight: 1000 !important;
}

.pos-staff-matrix-cell small {
  font-size: 8px !important;
  padding: 2px 5px !important;
}

.pos-staff-matrix-cell.has-shift {
  background: linear-gradient(135deg, var(--primary-700), var(--primary-500)) !important;
  color: #fff !important;
}

.pos-staff-matrix-cell.is-off {
  background: #f8fafc !important;
  color: #334155 !important;
}

.pos-staff-add-form:not(.is-hidden) {
  width: min(590px, calc(100vw - 92px)) !important;
  max-height: calc(100vh - 76px) !important;
  padding: 13px !important;
  border-radius: 19px !important;
  border: 2px solid var(--nn-border) !important;
  box-shadow: var(--nn-shadow-strong) !important;
}

.pos-staff-add-form:not(.is-hidden)::before {
  content: 'Set Employee Shift';
  margin-bottom: 9px !important;
  font-size: 20px !important;
  line-height: 1 !important;
  letter-spacing: -.04em !important;
  font-weight: 1000 !important;
  color: var(--nn-navy) !important;
}

.pos-staff-add-form:not(.is-hidden) .pos-staff-add-grid {
  gap: 8px !important;
}

.pos-staff-add-form:not(.is-hidden) .pos-staff-add-grid label span {
  font-size: 10.5px !important;
  font-weight: 950 !important;
  color: var(--nn-navy) !important;
}

.pos-staff-add-form:not(.is-hidden) input,
.pos-staff-add-form:not(.is-hidden) select {
  min-height: 39px !important;
  height: 39px !important;
  border-radius: 12px !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  padding: 0 11px !important;
}

.pos-staff-add-form:not(.is-hidden) .pos-staff-add-actions {
  margin-top: 9px !important;
  gap: 8px !important;
}

.pos-staff-add-form:not(.is-hidden) .pos-staff-add-actions button,
.pos-staff-clear-day,
.danger-btn.pos-staff-clear-day {
  min-height: 39px !important;
  border-radius: 12px !important;
  font-size: 13px !important;
  font-weight: 1000 !important;
  padding: 0 13px !important;
}

/* Online/mobile ordering: keep bold retail look but reduce giant elements. */
.online-hero h1,
.online-location-name {
  font-size: clamp(34px, 8vw, 54px) !important;
  line-height: .94 !important;
}

.online-hours-dropdown,
.online-hours-card {
  z-index: 12000 !important;
}

@media (max-width: 980px) {
  .pos-staff-schedule-card {
    width: calc(100vw - 28px) !important;
    max-height: calc(100vh - 28px) !important;
    padding: 12px !important;
  }
  .pos-staff-matrix { min-width: 710px !important; }
  .pos-staff-matrix-grid { grid-template-columns: 132px repeat(7, 76px) !important; gap: 4px !important; }
  .pos-staff-matrix-head,
  .pos-staff-matrix-name,
  .pos-staff-matrix-cell { min-height: 50px !important; }
  .pos-staff-matrix-name strong,
  .pos-staff-matrix-cell span { font-size: 12.5px !important; }
  .pos-staff-add-form:not(.is-hidden) { width: min(560px, calc(100vw - 52px)) !important; }
}

@media (max-width: 760px) {
  .modal-card,
  .admin-modal-card,
  .kitchen-modal-card,
  .online-item-modal-card,
  .cart-modal-card,
  .pos-gift-card-card {
    border-radius: 20px !important;
    padding: 16px !important;
  }
  .modal-title,
  .admin-modal-card h2,
  .kitchen-modal-card h2 { font-size: 25px !important; }
  .primary-btn,
  .checkout-btn,
  .secondary-btn,
  .cancel-btn,
  .kitchen-small-btn { min-height: 40px; font-size: 14px !important; }
  .pos-staff-schedule-card {
    width: calc(100vw - 10px) !important;
    max-height: calc(100vh - 10px) !important;
    padding: 10px !important;
  }
  .pos-staff-week-grid { max-height: calc(100vh - 185px) !important; }
  .pos-staff-matrix { min-width: 680px !important; }
  .pos-staff-matrix-grid { grid-template-columns: 124px repeat(7, 74px) !important; gap: 4px !important; }
  .pos-staff-matrix-head,
  .pos-staff-matrix-name,
  .pos-staff-matrix-cell { min-height: 48px !important; }
  .pos-staff-add-form:not(.is-hidden) {
    width: calc(100vw - 24px) !important;
    max-height: calc(100vh - 24px) !important;
    padding: 12px !important;
  }
  .pos-staff-add-form:not(.is-hidden) .pos-staff-add-grid { grid-template-columns: 1fr !important; }
}

/* Admin Staff Schedule Matrix - v1.3.68 */
body.admin-body .admin-panel-head.admin-staff-head {
  align-items: center;
  gap: 18px;
}

body.admin-body .staff-admin-layout.is-schedule-focused {
  display: grid;
  grid-template-columns: minmax(280px, 0.8fr) minmax(720px, 1.7fr);
  gap: 22px;
  align-items: start;
}

body.admin-body .admin-staff-team-panel,
body.admin-body .admin-staff-week-panel {
  min-width: 0;
}

body.admin-body .admin-staff-grid {
  grid-template-columns: 1fr;
  gap: 14px;
}

body.admin-body .admin-staff-compact-card {
  padding: 16px;
  border-radius: 18px;
}

body.admin-body .admin-staff-compact-card .admin-card-top h3 {
  font-size: 1.05rem;
  line-height: 1.1;
}

body.admin-body .admin-staff-compact-card .admin-card-top p,
body.admin-body .admin-staff-compact-card .staff-contact-list,
body.admin-body .admin-staff-compact-card .staff-contact-list p {
  font-size: 0.86rem;
  line-height: 1.35;
}

body.admin-body .admin-staff-matrix-shell {
  width: 100%;
  overflow: hidden;
}

body.admin-body .admin-staff-matrix-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
  padding: 12px 14px;
  border: 1px solid rgba(147, 197, 253, 0.75);
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(239, 246, 255, 0.95), rgba(255, 255, 255, 0.98));
  color: #0f172a;
}

body.admin-body .admin-staff-matrix-toolbar strong {
  font-size: 0.94rem;
}

body.admin-body .admin-staff-matrix-toolbar span {
  font-size: 0.82rem;
  font-weight: 800;
  color: #64748b;
  text-align: right;
}

body.admin-body .admin-staff-matrix-grid {
  display: grid;
  grid-template-columns: minmax(145px, 1.15fr) repeat(var(--admin-staff-days, 7), minmax(90px, 1fr));
  gap: 6px;
  overflow-x: auto;
  padding-bottom: 3px;
}

body.admin-body .admin-staff-matrix-head,
body.admin-body .admin-staff-matrix-name,
body.admin-body .admin-staff-matrix-cell {
  min-height: 62px;
  border: 2px solid #bfdbfe;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-weight: 950;
}

body.admin-body .admin-staff-matrix-head {
  color: #ffffff;
  background: linear-gradient(135deg, #2563eb, #0284c7);
  letter-spacing: 0.035em;
  font-size: 1rem;
  box-shadow: inset 0 -10px 22px rgba(15, 23, 42, 0.08);
}

body.admin-body .admin-staff-matrix-name-head {
  background: linear-gradient(135deg, #0f172a, #172033);
  justify-content: flex-start;
  padding-left: 16px;
  text-align: left;
}

body.admin-body .admin-staff-matrix-name {
  align-items: flex-start;
  flex-direction: column;
  padding: 12px 14px;
  color: #ffffff;
  background: linear-gradient(135deg, #0f172a, #172033);
  text-align: left;
}

body.admin-body .admin-staff-matrix-name strong {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.98rem;
  line-height: 1.05;
}

body.admin-body .admin-staff-matrix-name span {
  margin-top: 5px;
  color: #dbeafe;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

body.admin-body .admin-staff-matrix-cell {
  cursor: pointer;
  min-width: 90px;
  padding: 8px 6px;
  color: #334155;
  background: #f8fbff;
  transition: transform 0.14s ease, box-shadow 0.14s ease, border-color 0.14s ease;
}

body.admin-body .admin-staff-matrix-cell span {
  display: block;
  font-size: 0.98rem;
  line-height: 1.05;
}

body.admin-body .admin-staff-matrix-cell small {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  height: 24px;
  margin-left: 5px;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.16);
  color: inherit;
  font-size: 0.72rem;
}

body.admin-body .admin-staff-matrix-cell:hover,
body.admin-body .admin-staff-matrix-cell:focus-visible {
  transform: translateY(-1px);
  border-color: #60a5fa;
  box-shadow: 0 10px 22px rgba(37, 99, 235, 0.16);
  outline: none;
}

body.admin-body .admin-staff-matrix-cell.has-shift {
  color: #ffffff;
  border-color: rgba(37, 99, 235, 0.9);
  background: linear-gradient(135deg, #2563eb, #0284c7);
  box-shadow: inset 0 -12px 22px rgba(15, 23, 42, 0.1);
}

body.admin-body .admin-staff-matrix-cell.is-off {
  color: #334155;
  background: #f8fbff;
}

body.admin-body .admin-staff-matrix-cell.is-dragging {
  opacity: 0.55;
}

body.admin-body .admin-staff-matrix-cell.is-drop-target,
body.admin-body [data-schedule-drop-day].is-drop-target {
  outline: 3px solid rgba(34, 197, 94, 0.7);
  outline-offset: 2px;
}

body.admin-body .admin-staff-matrix-empty {
  grid-column: 1 / -1;
  padding: 22px;
  border: 2px dashed #bfdbfe;
  border-radius: 18px;
  color: #64748b;
  font-weight: 900;
  text-align: center;
}

body.admin-body .admin-modal-card.is-schedule-cell-modal {
  max-width: 720px;
}

body.admin-body .admin-shift-cell-form {
  display: grid;
  gap: 14px;
}

body.admin-body .admin-shift-cell-form label {
  font-size: 0.86rem;
}

body.admin-body .admin-shift-cell-form input,
body.admin-body .admin-shift-cell-form select {
  min-height: 48px;
  border-radius: 14px;
  font-size: 0.95rem;
}

body.admin-body .admin-secondary.danger-soft {
  color: #991b1b;
  border-color: #fecaca;
  background: #fff1f2;
}

@media (max-width: 1180px) {
  body.admin-body .staff-admin-layout.is-schedule-focused {
    grid-template-columns: 1fr;
  }
  body.admin-body .admin-staff-grid {
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  }
}

@media (max-width: 760px) {
  body.admin-body .admin-staff-matrix-grid {
    grid-template-columns: minmax(132px, 1.1fr) repeat(var(--admin-staff-days, 7), minmax(82px, 1fr));
  }
  body.admin-body .admin-staff-matrix-head,
  body.admin-body .admin-staff-matrix-name,
  body.admin-body .admin-staff-matrix-cell {
    min-height: 56px;
    border-radius: 12px;
  }
  body.admin-body .admin-staff-matrix-toolbar {
    display: block;
  }
  body.admin-body .admin-staff-matrix-toolbar span {
    display: block;
    margin-top: 4px;
    text-align: left;
  }
}
body.admin-body .staff-admin-layout.is-schedule-focused .weekly-schedule-board {
  display: block !important;
  grid-template-columns: none !important;
  gap: 0 !important;
  overflow: visible !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}


/* Admin Staff page full-width schedule refinement - v1.3.69 */
body.admin-body .staff-admin-layout.is-schedule-focused.is-full-week-row {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 16px !important;
  align-items: stretch !important;
}

body.admin-body .admin-section-minihead.compact-row {
  min-height: 0;
  padding-bottom: 10px;
  margin-bottom: 10px;
}

body.admin-body .admin-section-minihead.compact-row h3 {
  font-size: 1.28rem;
  line-height: 1.05;
}

body.admin-body .admin-section-minihead.compact-row p {
  font-size: 0.86rem;
}

body.admin-body .admin-staff-team-panel,
body.admin-body .admin-staff-week-panel {
  width: 100%;
}

body.admin-body .admin-staff-team-panel {
  padding-bottom: 18px;
}

body.admin-body .admin-staff-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)) !important;
  gap: 12px !important;
}

body.admin-body .admin-staff-compact-card {
  padding: 12px 14px !important;
  border-radius: 18px !important;
  min-height: 0 !important;
}

body.admin-body .admin-staff-mini-main {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
}

body.admin-body .admin-staff-avatar {
  width: 42px;
  height: 42px;
  border-radius: 14px;
  display: grid;
  place-items: center;
  color: #fff;
  background: linear-gradient(135deg, #0f172a, #1e3a8a);
  font-size: 1.05rem;
  font-weight: 950;
  box-shadow: inset 0 -8px 16px rgba(15, 23, 42, 0.15);
}

body.admin-body .admin-staff-mini-copy {
  min-width: 0;
}

body.admin-body .admin-staff-mini-copy h3 {
  margin: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 1rem !important;
  line-height: 1.1 !important;
}

body.admin-body .admin-staff-mini-copy p {
  margin: 3px 0 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #64748b;
  font-size: 0.78rem !important;
  font-weight: 900;
}

body.admin-body .admin-staff-compact-card .admin-chip {
  padding: 7px 9px;
  font-size: 0.76rem;
  white-space: nowrap;
}

body.admin-body .admin-staff-compact-card .compact-actions {
  margin-top: 10px;
  gap: 8px;
}

body.admin-body .admin-staff-compact-card .admin-small-btn {
  min-height: 34px;
  padding: 8px 13px;
  border-radius: 11px;
  font-size: 0.82rem;
}

body.admin-body .admin-staff-week-panel {
  padding: 18px !important;
}

body.admin-body .staff-admin-layout.is-schedule-focused .weekly-schedule-board {
  width: 100% !important;
  overflow: visible !important;
}

body.admin-body .admin-staff-matrix-shell {
  width: 100% !important;
  overflow: visible !important;
}

body.admin-body .admin-staff-matrix-toolbar {
  margin-bottom: 10px !important;
  padding: 10px 12px !important;
  border-radius: 16px !important;
}

body.admin-body .admin-staff-matrix-toolbar strong {
  font-size: 0.86rem !important;
}

body.admin-body .admin-staff-matrix-toolbar span {
  font-size: 0.76rem !important;
}

body.admin-body .admin-staff-matrix-grid {
  width: 100% !important;
  grid-template-columns: minmax(138px, 0.95fr) repeat(var(--admin-staff-days, 7), minmax(0, 1fr)) !important;
  gap: 7px !important;
  overflow-x: visible !important;
  padding-bottom: 0 !important;
}

body.admin-body .admin-staff-matrix-head,
body.admin-body .admin-staff-matrix-name,
body.admin-body .admin-staff-matrix-cell {
  min-width: 0 !important;
  min-height: 56px !important;
  border-radius: 13px !important;
}

body.admin-body .admin-staff-matrix-head {
  font-size: 0.86rem !important;
  letter-spacing: 0.04em !important;
}

body.admin-body .admin-staff-matrix-name-head {
  padding-left: 12px !important;
  font-size: 0.82rem !important;
}

body.admin-body .admin-staff-matrix-name {
  padding: 10px 11px !important;
}

body.admin-body .admin-staff-matrix-name strong {
  font-size: 0.86rem !important;
}

body.admin-body .admin-staff-matrix-name span {
  margin-top: 3px !important;
  font-size: 0.62rem !important;
}

body.admin-body .admin-staff-matrix-cell {
  padding: 6px 5px !important;
}

body.admin-body .admin-staff-matrix-cell span {
  font-size: 0.88rem !important;
  line-height: 1.03 !important;
}

body.admin-body .admin-staff-matrix-cell small {
  min-width: 19px !important;
  height: 19px !important;
  font-size: 0.62rem !important;
}

@media (max-width: 1120px) {
  body.admin-body .admin-staff-matrix-grid {
    grid-template-columns: minmax(126px, 0.9fr) repeat(var(--admin-staff-days, 7), minmax(76px, 1fr)) !important;
    overflow-x: auto !important;
  }
}

@media (max-width: 760px) {
  body.admin-body .admin-staff-grid {
    grid-template-columns: 1fr !important;
  }
  body.admin-body .admin-staff-mini-main {
    grid-template-columns: 38px minmax(0, 1fr);
  }
  body.admin-body .admin-staff-compact-card .admin-chip {
    grid-column: 2;
    justify-self: start;
  }
}

/* v1.3.70 schedule modal cleanup: no day selector; start/end sit together. */
#posStaffScheduleDaySelect[type="hidden"] {
  display: none !important;
}
.pos-staff-add-form:not(.is-hidden) .pos-staff-add-grid label:nth-of-type(2),
.pos-staff-add-form:not(.is-hidden) .pos-staff-add-grid label:nth-of-type(3) {
  grid-column: auto !important;
}
.pos-staff-add-form:not(.is-hidden) .pos-staff-add-grid label:first-of-type,
.pos-staff-add-form:not(.is-hidden) .pos-staff-add-grid label:last-of-type {
  grid-column: 1 / -1 !important;
}
body.admin-body .admin-shift-time-row {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (max-width: 520px) {
  body.admin-body .admin-shift-time-row {
    grid-template-columns: 1fr;
  }
}


/* v1.3.71 - Admin menu item modal checkbox containment
   Keeps modifier group labels inside their selector cards on narrow screens. */
body.admin-body .admin-form input[type="checkbox"],
body.admin-body .admin-modal-card input[type="checkbox"],
body.admin-body .admin-check-grid input[type="checkbox"] {
  width: 22px !important;
  min-width: 22px !important;
  max-width: 22px !important;
  height: 22px !important;
  min-height: 22px !important;
  padding: 0 !important;
  margin: 0 !important;
  flex: 0 0 22px !important;
  box-shadow: none !important;
  accent-color: var(--primary-500);
}

body.admin-body .admin-check-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr)) !important;
  width: 100% !important;
}

body.admin-body .admin-check-grid label {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 10px !important;
  width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  line-height: 1.15 !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
}

body.admin-body .admin-check-grid label span,
body.admin-body .admin-check-grid .admin-check-label-text {
  display: block !important;
  min-width: 0 !important;
  flex: 1 1 auto !important;
  overflow-wrap: anywhere !important;
}

@media (max-width: 760px) {
  body.admin-body .admin-modal {
    align-items: center !important;
    justify-content: center !important;
    padding: 10px !important;
    overflow-x: hidden !important;
  }

  body.admin-body .admin-modal-card {
    width: calc(100vw - 20px) !important;
    max-width: calc(100vw - 20px) !important;
    max-height: calc(100vh - 24px) !important;
    margin: 0 auto !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
  }

  body.admin-body .admin-check-grid {
    grid-template-columns: 1fr !important;
  }
}


/* Admin mobile swipe page transitions */
@media (max-width: 760px) {
  body.admin-body .admin-shell {
    overflow-x: hidden;
  }

  body.admin-body .admin-panel.is-active {
    transform-origin: center top;
    will-change: transform, opacity;
  }

  body.admin-body .admin-panel.admin-panel-slide-next {
    animation: adminPanelSlideNext .24s ease-out both;
  }

  body.admin-body .admin-panel.admin-panel-slide-prev {
    animation: adminPanelSlidePrev .24s ease-out both;
  }

  body.admin-body .admin-tabs {
    scroll-snap-type: x proximity;
  }

  body.admin-body .admin-tab {
    scroll-snap-align: center;
  }
}

@keyframes adminPanelSlideNext {
  from { opacity: .42; transform: translateX(34px); }
  to { opacity: 1; transform: translateX(0); }
}

@keyframes adminPanelSlidePrev {
  from { opacity: .42; transform: translateX(-34px); }
  to { opacity: 1; transform: translateX(0); }
}

@media (prefers-reduced-motion: reduce) {
  body.admin-body .admin-panel.admin-panel-slide-next,
  body.admin-body .admin-panel.admin-panel-slide-prev {
    animation: none !important;
  }
}

/* v1.3.75 - Admin header is no longer sticky and has no bottom shadow */
body.admin-body .admin-topbar {
  position: relative !important;
  top: auto !important;
  z-index: 10 !important;
  box-shadow: none !important;
}


/* v1.3.76 - Mobile POS button cleanup
   Makes phone POS actions easier to read, more consistent, and less oversized. */
@media (max-width: 760px) {
  body.pos-mobile-body .pos-cart-head {
    gap: 12px !important;
  }

  body.pos-mobile-body .pos-clear-order-btn {
    min-height: 36px !important;
    padding: 0 14px !important;
    border-radius: 999px !important;
    border: 2px solid #fecaca !important;
    background: #fff7f7 !important;
    color: #b91c1c !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    opacity: 1 !important;
  }

  body.pos-mobile-body .pos-clear-order-btn:disabled {
    opacity: .62 !important;
    color: #c08484 !important;
    border-color: #f8caca !important;
    background: #fff !important;
    filter: none !important;
  }

  body.pos-mobile-body .pos-pay-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    margin-top: 12px !important;
    padding-bottom: 16px !important;
  }

  body.pos-mobile-body #posSendKitchenBtn,
  body.pos-mobile-body #posPayCardBtn {
    min-height: 54px !important;
    border-radius: 18px !important;
    padding: 0 16px !important;
    font-size: 18px !important;
    font-weight: 950 !important;
    letter-spacing: -.02em !important;
    line-height: 1 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    white-space: nowrap !important;
    box-shadow: 0 10px 22px rgba(15,23,42,.12) !important;
  }

  body.pos-mobile-body #posSendKitchenBtn {
    background: linear-gradient(135deg, var(--primary-600), var(--primary-500)) !important;
    color: #fff !important;
  }

  body.pos-mobile-body #posPayCardBtn {
    background: linear-gradient(135deg, #1e3a8a, #1d4ed8) !important;
    color: #fff !important;
  }

  body.pos-mobile-body #posSendKitchenBtn,
  body.pos-mobile-body #posPayCardBtn,
  body.pos-mobile-body #posSendKitchenBtn::after {
    font-size: 18px !important;
  }

  body.pos-mobile-body #posSendKitchenBtn {
    font-size: 18px !important;
  }

  body.pos-mobile-body #posSendKitchenBtn::after {
    content: none !important;
  }

  body.pos-mobile-body #posPayCardBtn {
    margin-bottom: 0 !important;
  }

  body.pos-mobile-body #posSendKitchenBtn:disabled,
  body.pos-mobile-body #posPayCardBtn:disabled {
    opacity: .72 !important;
    filter: none !important;
    box-shadow: none !important;
    color: rgba(255,255,255,.98) !important;
  }

  body.pos-mobile-body #posSendKitchenBtn:disabled {
    background: linear-gradient(135deg, #a9b9e2, #95a7d8) !important;
  }

  body.pos-mobile-body #posPayCardBtn:disabled {
    background: linear-gradient(135deg, #a2b0cf, #8fa0c4) !important;
  }
}


/* v1.3.77 - Mobile POS current-sale containment + keyboard-friendly sizing */
@media (max-width: 760px) {
  body.pos-mobile-body {
    overflow-x: hidden !important;
  }

  body.pos-mobile-body .pos-shell,
  body.pos-mobile-body .pos-main,
  body.pos-mobile-body .pos-panel.is-active,
  body.pos-mobile-body .pos-cashier-layout,
  body.pos-mobile-body .pos-cart-side {
    width: 100% !important;
    max-width: 100vw !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
  }

  body.pos-mobile-body .pos-cashier-layout {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  body.pos-mobile-body .pos-cart-side {
    margin: 0 auto !important;
    border-radius: 22px !important;
  }

  body.pos-mobile-body .pos-cart-head,
  body.pos-mobile-body .pos-cart-items,
  body.pos-mobile-body .pos-cart-total {
    padding-left: 16px !important;
    padding-right: 16px !important;
    box-sizing: border-box !important;
  }

  body.pos-mobile-body .pos-cart-head h2 {
    font-size: clamp(30px, 8vw, 38px) !important;
    line-height: .95 !important;
    letter-spacing: -.045em !important;
  }

  body.pos-mobile-body .pos-cart-head p {
    font-size: clamp(20px, 5vw, 25px) !important;
    line-height: 1 !important;
  }

  body.pos-mobile-body .empty-cart {
    font-size: clamp(23px, 6vw, 31px) !important;
    line-height: 1.08 !important;
    padding: 42px 10px !important;
    text-align: center !important;
    white-space: normal !important;
  }

  body.pos-mobile-body .total-line {
    font-size: clamp(19px, 5vw, 24px) !important;
    line-height: 1.05 !important;
  }

  body.pos-mobile-body .total-line.grand {
    font-size: clamp(34px, 8.8vw, 45px) !important;
    line-height: 1 !important;
  }

  body.pos-mobile-body .total-line.grand span:last-child {
    font-size: clamp(34px, 8.8vw, 45px) !important;
  }

  body.pos-mobile-body .input-label,
  body.pos-mobile-body .pos-cart-total label {
    font-size: clamp(20px, 5.2vw, 26px) !important;
    line-height: 1.05 !important;
  }

  body.pos-mobile-body .big-input,
  body.pos-mobile-body .order-type-select,
  body.pos-mobile-body .big-textarea {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 56px !important;
    border-radius: 18px !important;
    padding: 12px 16px !important;
    font-size: 19px !important;
    box-sizing: border-box !important;
  }

  body.pos-mobile-body .pos-pay-grid {
    padding-bottom: max(18px, env(safe-area-inset-bottom)) !important;
  }
}

/* Extra compact when a phone keyboard leaves very little vertical room. */
@media (max-width: 760px) and (max-height: 720px) {
  body.pos-mobile-body .pos-cart-head {
    padding-top: 12px !important;
    padding-bottom: 12px !important;
  }

  body.pos-mobile-body .pos-cart-head h2 {
    font-size: 30px !important;
  }

  body.pos-mobile-body .pos-cart-head p {
    font-size: 20px !important;
  }

  body.pos-mobile-body .empty-cart {
    padding: 28px 8px !important;
    font-size: 24px !important;
  }

  body.pos-mobile-body .pos-cart-total {
    padding-top: 12px !important;
  }

  body.pos-mobile-body .total-line {
    font-size: 19px !important;
    margin-bottom: 6px !important;
  }

  body.pos-mobile-body .total-line.grand,
  body.pos-mobile-body .total-line.grand span:last-child {
    font-size: 36px !important;
  }

  body.pos-mobile-body .input-label,
  body.pos-mobile-body .pos-cart-total label {
    font-size: 20px !important;
    margin-top: 10px !important;
  }
}


/* v1.3.78 - Prevent iOS Mobile POS form zoom
   Keep system keyboard, but stop Safari from zooming when inputs/selects/textareas receive focus. */
@media (max-width: 760px) {
  html,
  body.pos-mobile-body {
    -webkit-text-size-adjust: 100% !important;
    text-size-adjust: 100% !important;
    touch-action: manipulation;
  }

  body.pos-mobile-body input,
  body.pos-mobile-body select,
  body.pos-mobile-body textarea {
    font-size: max(17px, 1rem) !important;
    line-height: 1.2 !important;
    transform: none !important;
    -webkit-text-size-adjust: 100% !important;
    text-size-adjust: 100% !important;
  }

  body.pos-mobile-body input:focus,
  body.pos-mobile-body select:focus,
  body.pos-mobile-body textarea:focus {
    font-size: max(17px, 1rem) !important;
    transform: none !important;
  }

  body.pos-mobile-body .pos-item-modal-card input,
  body.pos-mobile-body .pos-item-modal-card select,
  body.pos-mobile-body .pos-item-modal-card textarea,
  body.pos-mobile-body .modal-card input,
  body.pos-mobile-body .modal-card select,
  body.pos-mobile-body .modal-card textarea {
    font-size: max(17px, 1rem) !important;
  }
}


/* v1.3.79 - Tablet POS hold-for-later queue button */
.pos-send-queue-btn {
  background: #0f172a !important;
  color: #fff !important;
}

@media (min-width: 761px) {
  body.pos-body .pos-pay-grid.has-queue-btn,
  body.pos-body .pos-pay-grid {
    grid-template-columns: 1fr !important;
  }

  body.pos-body .pos-send-queue-btn {
    min-height: 46px !important;
    border-radius: 16px !important;
    font-size: 15px !important;
    font-weight: 950 !important;
  }
}

@media (max-width: 760px) {
  body.pos-mobile-body #posSendQueueBtn,
  body.pos-body #posSendQueueBtn {
    display: none !important;
  }
}


/* v1.3.80 - Settings cleanup: kitchen options moved to devices/locations */
.pos-prep-settings-card .primary-btn {
  width: 100%;
  margin-top: 12px;
}


/* v1.3.81 - Admin header cleanup: remove Debug from header and move Log Out into Settings */
body.admin-body .admin-topbar {
  grid-template-columns: minmax(0, 1fr) auto !important;
}

body.admin-body .admin-settings-logout-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  width: fit-content;
  margin-top: 14px;
  padding: 0 22px;
  border-radius: 999px;
  border: 2px solid #fecaca;
  background: #fff7f7;
  color: #be123c;
  text-decoration: none;
  font-weight: 950;
  box-shadow: none;
}

body.admin-body .admin-settings-logout-btn:active {
  transform: translateY(1px) scale(.99);
}

@media (max-width: 760px) {
  body.admin-body .admin-topbar {
    gap: 18px !important;
  }

  body.admin-body .admin-settings-logout-btn {
    width: 100%;
    min-height: 56px;
    font-size: 18px;
  }
}

/* v1.3.82 - Tablet POS queue: keep queue cards in 3 fixed columns instead of stretching a single card full width. */
@media (min-width: 761px) and (max-width: 1180px) {
  body.pos-body .pos-panel[data-pos-panel="mobile-queue"] .mobile-pos-queue-list {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 12px !important;
    align-items: start !important;
    justify-items: stretch !important;
  }

  body.pos-body .pos-panel[data-pos-panel="mobile-queue"] .mobile-queue-card {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  body.pos-body .pos-panel[data-pos-panel="mobile-queue"] .mobile-queue-actions {
    grid-template-columns: 1fr !important;
  }

  body.pos-body .pos-panel[data-pos-panel="mobile-queue"] .mobile-queue-actions .primary-btn,
  body.pos-body .pos-panel[data-pos-panel="mobile-queue"] .mobile-queue-actions .cancel-btn {
    width: 100% !important;
    min-width: 0 !important;
  }
}


/* v1.3.83 - Mobile Admin header layout
   Stack restaurant name/subtitle above the location selector on phones. */
@media (max-width: 760px) {
  body.admin-body .admin-topbar {
    grid-template-columns: 1fr !important;
    align-items: start !important;
    gap: 14px !important;
  }

  body.admin-body .admin-brand {
    width: 100% !important;
  }

  body.admin-body .admin-brand > div {
    width: 100% !important;
  }

  body.admin-body .admin-brand h1,
  body.admin-body .admin-brand p {
    max-width: 100% !important;
  }

  body.admin-body .admin-location-switcher {
    width: 100% !important;
    grid-column: 1 / -1 !important;
  }
}


/* v1.3.84 - Tablet POS drag menu item to cart */
@media (min-width: 761px) and (max-width: 1180px) {
  body.pos-body:not(.pos-mobile-body) .pos-product-card {
    touch-action: pan-y;
    cursor: grab;
    user-select: none;
    -webkit-user-select: none;
  }

  body.pos-body:not(.pos-mobile-body) .pos-product-card:active,
  body.pos-body:not(.pos-mobile-body) .pos-product-card.is-product-drag-source {
    cursor: grabbing;
  }

  body.pos-body:not(.pos-mobile-body) .pos-cart-side {
    transition: border-color .15s ease, box-shadow .15s ease, background .15s ease, transform .15s ease;
  }

  body.pos-body:not(.pos-mobile-body) .pos-cart-side.is-product-drag-over {
    border-color: var(--primary-500) !important;
    background: rgba(239, 246, 255, .98) !important;
    box-shadow: 0 0 0 6px rgba(var(--primary-500-rgb), .16), 0 24px 54px rgba(15, 23, 42, .16) !important;
    transform: translateY(-1px);
  }

  body.pos-body:not(.pos-mobile-body) .pos-cart-side.is-product-drag-over::before {
    content: "Drop item to add";
    position: absolute;
    inset: 12px 12px auto 12px;
    z-index: 8;
    min-height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--primary-600), var(--primary-500));
    color: #fff;
    font-weight: 950;
    font-size: 15px;
    pointer-events: none;
    box-shadow: 0 12px 24px rgba(var(--primary-600-rgb), .22);
  }
}

.pos-product-drag-ghost {
  position: fixed !important;
  left: 0 !important;
  top: 0 !important;
  z-index: 20000 !important;
  pointer-events: none !important;
  opacity: .94 !important;
  transform-origin: left top !important;
  box-shadow: 0 22px 52px rgba(15,23,42,.28) !important;
  border-color: var(--primary-500) !important;
  scale: .88;
}

body.pos-product-dragging {
  cursor: grabbing;
}


/* v1.3.85 - Tablet POS queue max width
   Prevents a single queued order from stretching across the full tablet queue tab. */
@media (min-width: 761px) and (max-width: 1180px) {
  body.pos-body .pos-panel[data-pos-panel="mobile-queue"].is-active {
    max-width: 1120px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body.pos-body .mobile-pos-queue-panel {
    max-width: 1120px !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
  }

  body.pos-body .mobile-pos-queue-list,
  body.pos-body .pos-panel[data-pos-panel="mobile-queue"] .mobile-pos-queue-list,
  body.pos-body .pos-panel[data-pos-panel="mobile-queue"].is-active .mobile-pos-queue-list {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 340px)) !important;
    justify-content: start !important;
    justify-items: stretch !important;
    align-items: start !important;
    gap: 14px !important;
    width: 100% !important;
  }

  body.pos-body .mobile-queue-card,
  body.pos-body .pos-panel[data-pos-panel="mobile-queue"] .mobile-queue-card,
  body.pos-body .pos-panel[data-pos-panel="mobile-queue"].is-active .mobile-queue-card {
    width: 100% !important;
    max-width: 340px !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  body.pos-body .mobile-queue-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }

  body.pos-body .mobile-queue-actions .primary-btn,
  body.pos-body .mobile-queue-actions .cancel-btn {
    width: 100% !important;
    min-width: 0 !important;
  }
}


/* v1.3.86 - Match Mobile POS item-modal action buttons */
@media (max-width: 760px) {
  body.pos-body #posItemModal .modal-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    padding-top: 18px !important;
    border-top: 2px solid var(--primary-100) !important;
  }

  body.pos-body #posItemModal .modal-actions .cancel-btn,
  body.pos-body #posItemModal .modal-actions .primary-btn,
  body.pos-body #posItemModal #posAddItemBtn {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    min-height: 58px !important;
    height: 58px !important;
    padding: 0 18px !important;
    border-radius: 22px !important;
    border: 2px solid var(--primary-200) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    font-size: 18px !important;
    font-weight: 950 !important;
    line-height: 1 !important;
    letter-spacing: -.015em !important;
    box-sizing: border-box !important;
  }

  body.pos-body #posItemModal .modal-actions .cancel-btn {
    background: var(--nn-navy) !important;
    color: #fff !important;
  }

  body.pos-body #posItemModal .modal-actions .primary-btn,
  body.pos-body #posItemModal #posAddItemBtn {
    background: linear-gradient(135deg, var(--primary-600), var(--primary-500)) !important;
    color: #fff !important;
    box-shadow: 0 10px 22px rgba(var(--primary-600-rgb), .18) !important;
  }
}


/* v1.3.87 - Stop iOS input zoom on mobile ordering fields
   iOS Safari zooms focused fields below 16px. Keep all customer-facing form fields at 16px+ on phones. */
@media (max-width: 760px) {
  body.online-order-body input,
  body.online-order-body select,
  body.online-order-body textarea,
  body.online-order-body .big-input,
  body.online-order-body .big-textarea,
  body.online-order-body .order-type-select,
  body.online-order-body .item-note-input,
  #onlineItemModal input,
  #onlineItemModal select,
  #onlineItemModal textarea,
  #onlineCheckoutModal input,
  #onlineCheckoutModal select,
  #onlineCheckoutModal textarea,
  body.kiosk-body input,
  body.kiosk-body select,
  body.kiosk-body textarea,
  body.kiosk-body .big-input,
  body.kiosk-body .big-textarea,
  body.kiosk-body .order-type-select {
    font-size: max(16px, 1rem) !important;
    -webkit-text-size-adjust: 100% !important;
    text-size-adjust: 100% !important;
  }

  #onlineItemNotes,
  #onlineOrderNotes,
  body.online-order-body textarea,
  body.kiosk-body textarea {
    font-size: 16px !important;
    line-height: 1.3 !important;
  }
}


/* v1.3.88 - Verified fixes: tablet queue card width + online/mobile item modal action button match */

/* Tablet POS Queue: keep queued orders in true 3-column cards, even when there is only one order. */
@media (min-width: 761px) and (max-width: 1400px) {
  body.pos-body .pos-panel[data-pos-panel="mobile-queue"].is-active {
    width: 100% !important;
    max-width: 1120px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
  }

  body.pos-body .pos-panel[data-pos-panel="mobile-queue"].is-active .mobile-pos-queue-panel,
  body.pos-body .mobile-pos-queue-panel {
    width: 100% !important;
    max-width: 1120px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
  }

  body.pos-body #mobilePosQueueList.mobile-pos-queue-list,
  body.pos-body .mobile-pos-queue-list {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 340px)) !important;
    justify-content: start !important;
    align-items: start !important;
    gap: 14px !important;
    width: 100% !important;
    max-width: 1048px !important;
    margin-left: 0 !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
  }

  body.pos-body #mobilePosQueueList.mobile-pos-queue-list > .mobile-queue-card,
  body.pos-body .mobile-pos-queue-list > .mobile-queue-card,
  body.pos-body .mobile-queue-card {
    width: 100% !important;
    max-width: 340px !important;
    min-width: 0 !important;
    justify-self: stretch !important;
    grid-column: auto / span 1 !important;
    box-sizing: border-box !important;
  }

  body.pos-body .mobile-queue-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    width: 100% !important;
  }

  body.pos-body .mobile-queue-actions .primary-btn,
  body.pos-body .mobile-queue-actions .cancel-btn {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }
}

/* Phone Online Ordering + Mobile POS item modal actions: make Cancel and Add the same size. */
@media (max-width: 760px) {
  body.online-order-body #onlineItemModal .modal-actions,
  body.pos-body #posItemModal .modal-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    width: 100% !important;
    padding: 16px 34px 22px !important;
    border-top: 2px solid var(--primary-100) !important;
    box-sizing: border-box !important;
  }

  body.online-order-body #onlineItemModal .modal-actions .cancel-btn,
  body.online-order-body #onlineItemModal .modal-actions .primary-btn,
  body.online-order-body #onlineItemModal #onlineAddItemBtn,
  body.pos-body #posItemModal .modal-actions .cancel-btn,
  body.pos-body #posItemModal .modal-actions .primary-btn,
  body.pos-body #posItemModal #posAddItemBtn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    min-height: 58px !important;
    height: 58px !important;
    padding: 0 18px !important;
    margin: 0 !important;
    border-radius: 22px !important;
    box-sizing: border-box !important;
    text-align: center !important;
    white-space: nowrap !important;
    font-size: 18px !important;
    font-weight: 950 !important;
    line-height: 1 !important;
    letter-spacing: -.015em !important;
    box-shadow: none !important;
  }

  body.online-order-body #onlineItemModal .modal-actions .cancel-btn,
  body.pos-body #posItemModal .modal-actions .cancel-btn {
    border: 2px solid var(--primary-200) !important;
    background: var(--nn-navy) !important;
    color: #fff !important;
  }

  body.online-order-body #onlineItemModal .modal-actions .primary-btn,
  body.online-order-body #onlineItemModal #onlineAddItemBtn,
  body.pos-body #posItemModal .modal-actions .primary-btn,
  body.pos-body #posItemModal #posAddItemBtn {
    border: 2px solid transparent !important;
    background: linear-gradient(135deg, var(--primary-600), var(--primary-500)) !important;
    color: #fff !important;
  }
}


/* v1.3.89 - Final mobile checkout/action button fixes
   Correct selectors for Online Ordering body class and hard-match POS checkout buttons. */
@media (max-width: 760px) {
  /* Mobile POS checkout buttons: same size and no giant pseudo-label. */
  body.pos-mobile-body .pos-cart-total .pos-pay-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    margin-top: 14px !important;
    padding: 0 0 18px !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  body.pos-mobile-body .pos-cart-total .pos-pay-grid #posSendKitchenBtn.checkout-btn,
  body.pos-mobile-body .pos-cart-total .pos-pay-grid #posPayCardBtn.primary-btn {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 58px !important;
    height: 58px !important;
    padding: 0 18px !important;
    margin: 0 !important;
    border-radius: 20px !important;
    border: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    white-space: nowrap !important;
    font-size: 20px !important;
    font-weight: 950 !important;
    line-height: 1 !important;
    letter-spacing: -.02em !important;
    box-sizing: border-box !important;
    box-shadow: none !important;
    transform: none !important;
  }

  body.pos-mobile-body .pos-cart-total .pos-pay-grid #posSendKitchenBtn.checkout-btn {
    background: linear-gradient(135deg, var(--primary-600), var(--primary-500)) !important;
    color: #fff !important;
  }

  body.pos-mobile-body .pos-cart-total .pos-pay-grid #posPayCardBtn.primary-btn {
    background: linear-gradient(135deg, #1d4ed8, #2563eb) !important;
    color: #fff !important;
  }

  body.pos-mobile-body .pos-cart-total .pos-pay-grid #posSendKitchenBtn.checkout-btn::before,
  body.pos-mobile-body .pos-cart-total .pos-pay-grid #posSendKitchenBtn.checkout-btn::after,
  body.pos-mobile-body .pos-cart-total .pos-pay-grid #posPayCardBtn.primary-btn::before,
  body.pos-mobile-body .pos-cart-total .pos-pay-grid #posPayCardBtn.primary-btn::after {
    content: none !important;
    display: none !important;
  }

  body.pos-mobile-body .pos-cart-total .pos-pay-grid #posSendKitchenBtn.checkout-btn:disabled,
  body.pos-mobile-body .pos-cart-total .pos-pay-grid #posPayCardBtn.primary-btn:disabled {
    opacity: .78 !important;
    filter: none !important;
    color: #fff !important;
  }

  body.pos-mobile-body .pos-cart-total .pos-pay-grid #posSendKitchenBtn.checkout-btn:disabled {
    background: #a7b8df !important;
  }

  body.pos-mobile-body .pos-cart-total .pos-pay-grid #posPayCardBtn.primary-btn:disabled {
    background: #9fb0d4 !important;
  }

  /* Online Ordering item modal buttons: the page body class is .online-body. */
  body.online-body #onlineItemModal .online-item-modal-card .modal-actions,
  body.kiosk-body #kioskItemModal .modal-actions,
  body.kiosk-body #itemModal .modal-actions,
  body.pos-mobile-body #posItemModal .modal-card .modal-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 16px 18px 20px !important;
    border-top: 2px solid var(--primary-100) !important;
    background: linear-gradient(180deg, rgba(255,255,255,.9), #fff 26%) !important;
    box-sizing: border-box !important;
  }

  body.online-body #onlineItemModal .online-item-modal-card .modal-actions .cancel-btn,
  body.online-body #onlineItemModal .online-item-modal-card .modal-actions .primary-btn,
  body.online-body #onlineItemModal .online-item-modal-card .modal-actions #onlineAddItemBtn,
  body.kiosk-body #kioskItemModal .modal-actions .cancel-btn,
  body.kiosk-body #kioskItemModal .modal-actions .primary-btn,
  body.kiosk-body #itemModal .modal-actions .cancel-btn,
  body.kiosk-body #itemModal .modal-actions .primary-btn,
  body.pos-mobile-body #posItemModal .modal-card .modal-actions .cancel-btn,
  body.pos-mobile-body #posItemModal .modal-card .modal-actions .primary-btn,
  body.pos-mobile-body #posItemModal .modal-card .modal-actions #posAddItemBtn {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 60px !important;
    height: 60px !important;
    padding: 0 18px !important;
    margin: 0 !important;
    border-radius: 22px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    white-space: nowrap !important;
    font-size: 18px !important;
    font-weight: 950 !important;
    line-height: 1 !important;
    letter-spacing: -.015em !important;
    box-sizing: border-box !important;
    box-shadow: none !important;
    transform: none !important;
  }

  body.online-body #onlineItemModal .online-item-modal-card .modal-actions .cancel-btn,
  body.kiosk-body #kioskItemModal .modal-actions .cancel-btn,
  body.kiosk-body #itemModal .modal-actions .cancel-btn,
  body.pos-mobile-body #posItemModal .modal-card .modal-actions .cancel-btn {
    border: 2px solid var(--primary-200) !important;
    background: var(--nn-navy) !important;
    color: #fff !important;
  }

  body.online-body #onlineItemModal .online-item-modal-card .modal-actions .primary-btn,
  body.online-body #onlineItemModal .online-item-modal-card .modal-actions #onlineAddItemBtn,
  body.kiosk-body #kioskItemModal .modal-actions .primary-btn,
  body.kiosk-body #itemModal .modal-actions .primary-btn,
  body.pos-mobile-body #posItemModal .modal-card .modal-actions .primary-btn,
  body.pos-mobile-body #posItemModal .modal-card .modal-actions #posAddItemBtn {
    border: 2px solid transparent !important;
    background: linear-gradient(135deg, var(--primary-600), var(--primary-500)) !important;
    color: #fff !important;
  }
}


/* v1.3.90 - Split POS header cart and manual item buttons */
.pos-cart-top-btn,
.pos-manual-item-top-btn {
  white-space: nowrap;
}

.pos-cart-top-btn #posHeaderCartCount {
  margin-left: 4px;
}

@media (max-width: 760px) {
  body.pos-body .pos-header {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    grid-template-areas:
      "brand brand brand"
      "gift cart item" !important;
    gap: 9px !important;
  }

  body.pos-body .pos-header-actions {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    grid-template-areas: "cart item" !important;
    gap: 9px !important;
    align-items: stretch !important;
    justify-content: stretch !important;
  }

  body.pos-body .pos-gift-card-top-btn,
  body.pos-body #posCartBtn,
  body.pos-body #posManualItemBtn {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 50px !important;
    border-radius: 17px !important;
    padding: 8px 8px !important;
    font-size: 14px !important;
    font-weight: 950 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 5px !important;
    line-height: 1 !important;
  }

  body.pos-body .pos-gift-card-top-btn {
    grid-area: gift !important;
  }

  body.pos-body #posCartBtn {
    grid-area: cart !important;
  }

  body.pos-body #posManualItemBtn {
    grid-area: item !important;
  }

  body.pos-body #posHeaderCartCount {
    min-width: 28px !important;
    height: 28px !important;
    padding: 0 7px !important;
    font-size: 13px !important;
    margin-left: 2px !important;
  }

  body.pos-body #posManualItemBtn {
    background: #0f172a !important;
    color: #fff !important;
    border-color: rgba(15,23,42,.12) !important;
  }
}

@media (max-width: 380px) {
  body.pos-body .pos-gift-card-top-btn,
  body.pos-body #posCartBtn,
  body.pos-body #posManualItemBtn {
    min-height: 46px !important;
    font-size: 13px !important;
    padding-left: 6px !important;
    padding-right: 6px !important;
  }

  body.pos-body #posHeaderCartCount {
    min-width: 24px !important;
    height: 24px !important;
    font-size: 12px !important;
  }
}


/* v1.3.91 - Tablet POS: remove top Cart button, keep + Item only */
@media (min-width: 761px) and (max-width: 1180px) {
  body.pos-body:not(.pos-mobile-body) #posCartBtn {
    display: none !important;
  }

  body.pos-body:not(.pos-mobile-body) #posManualItemBtn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
}


/* v1.3.92 - Verified POS header button cleanup
   Tablet/desktop POS: hide the non-useful Cart header button.
   Mobile POS: keep Gift / Cart / + Item as three even header buttons. */
body.pos-body:not(.pos-mobile-body) #posCartBtn {
  display: none !important;
}

@media (max-width: 760px) {
  body.pos-mobile-body .pos-header {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    grid-template-areas:
      "brand brand brand"
      "gift cart item" !important;
    gap: 9px !important;
    align-items: stretch !important;
    padding: max(10px, env(safe-area-inset-top)) 10px 10px !important;
  }

  body.pos-mobile-body .pos-brand {
    grid-area: brand !important;
    width: 100% !important;
    min-width: 0 !important;
  }

  body.pos-mobile-body .pos-staff-gift-actions,
  body.pos-mobile-body .pos-header-actions {
    display: contents !important;
  }

  body.pos-mobile-body .pos-staff-schedule-top-btn,
  body.pos-mobile-body #timeClockToggle,
  body.pos-mobile-body #posSoundToggle,
  body.pos-mobile-body #posRefreshBtn {
    display: none !important;
  }

  body.pos-mobile-body .pos-gift-card-top-btn {
    grid-area: gift !important;
  }

  body.pos-mobile-body #posCartBtn {
    grid-area: cart !important;
    display: inline-flex !important;
  }

  body.pos-mobile-body #posManualItemBtn {
    grid-area: item !important;
    display: inline-flex !important;
  }

  body.pos-mobile-body .pos-gift-card-top-btn,
  body.pos-mobile-body #posCartBtn,
  body.pos-mobile-body #posManualItemBtn {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 50px !important;
    height: 50px !important;
    border-radius: 17px !important;
    padding: 0 7px !important;
    margin: 0 !important;
    font-size: 14px !important;
    font-weight: 950 !important;
    line-height: 1 !important;
    letter-spacing: -.01em !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 5px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  body.pos-mobile-body #posManualItemBtn {
    background: #0f172a !important;
    color: #fff !important;
    border-color: rgba(15,23,42,.16) !important;
  }

  body.pos-mobile-body #posHeaderCartCount {
    flex: 0 0 auto !important;
    min-width: 24px !important;
    width: 24px !important;
    height: 24px !important;
    padding: 0 !important;
    margin-left: 1px !important;
    border-radius: 999px !important;
    font-size: 12px !important;
    line-height: 24px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  body.pos-mobile-body .pos-cart-label {
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: clip !important;
  }
}

@media (max-width: 380px) {
  body.pos-mobile-body .pos-header {
    gap: 7px !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
  }

  body.pos-mobile-body .pos-gift-card-top-btn,
  body.pos-mobile-body #posCartBtn,
  body.pos-mobile-body #posManualItemBtn {
    height: 46px !important;
    min-height: 46px !important;
    padding-left: 5px !important;
    padding-right: 5px !important;
    font-size: 13px !important;
    gap: 4px !important;
  }

  body.pos-mobile-body #posHeaderCartCount {
    min-width: 22px !important;
    width: 22px !important;
    height: 22px !important;
    font-size: 11px !important;
    line-height: 22px !important;
  }
}


/* v1.3.93 - Mobile POS header: restore Cart button and evenly space Gift / Cart / + Item.
   This override is intentionally max-width based so it works even if the URL is missing ?mobile=1. */
@media (max-width: 760px) {
  body.pos-body .pos-header {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    grid-template-areas:
      "brand brand brand"
      "gift cart item" !important;
    column-gap: 8px !important;
    row-gap: 10px !important;
    align-items: stretch !important;
  }

  body.pos-body .pos-brand {
    grid-area: brand !important;
    min-width: 0 !important;
    width: 100% !important;
  }

  body.pos-body .pos-staff-gift-actions,
  body.pos-body .pos-header-actions {
    display: contents !important;
  }

  body.pos-body .pos-staff-schedule-top-btn,
  body.pos-body #timeClockToggle,
  body.pos-body #posSoundToggle,
  body.pos-body #posRefreshBtn {
    display: none !important;
  }

  body.pos-body .pos-gift-card-top-btn {
    grid-area: gift !important;
  }

  body.pos-body #posCartBtn {
    grid-area: cart !important;
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  body.pos-body #posManualItemBtn {
    grid-area: item !important;
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  body.pos-body .pos-gift-card-top-btn,
  body.pos-body #posCartBtn,
  body.pos-body #posManualItemBtn {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    height: 50px !important;
    min-height: 50px !important;
    margin: 0 !important;
    padding: 0 6px !important;
    border-radius: 17px !important;
    font-size: 14px !important;
    font-weight: 950 !important;
    line-height: 1 !important;
    letter-spacing: -.01em !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 5px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  body.pos-body #posManualItemBtn {
    background: #0f172a !important;
    color: #fff !important;
    border-color: rgba(15, 23, 42, .18) !important;
  }

  body.pos-body #posHeaderCartCount {
    flex: 0 0 auto !important;
    min-width: 24px !important;
    width: 24px !important;
    height: 24px !important;
    padding: 0 !important;
    margin-left: 1px !important;
    border-radius: 999px !important;
    font-size: 12px !important;
    line-height: 24px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  body.pos-body .pos-cart-label {
    display: inline-block !important;
    min-width: 0 !important;
  }
}

@media (max-width: 380px) {
  body.pos-body .pos-header {
    column-gap: 6px !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
  }

  body.pos-body .pos-gift-card-top-btn,
  body.pos-body #posCartBtn,
  body.pos-body #posManualItemBtn {
    height: 46px !important;
    min-height: 46px !important;
    padding-left: 4px !important;
    padding-right: 4px !important;
    font-size: 13px !important;
    gap: 4px !important;
  }

  body.pos-body #posHeaderCartCount {
    min-width: 22px !important;
    width: 22px !important;
    height: 22px !important;
    font-size: 11px !important;
    line-height: 22px !important;
  }
}

/* Keep the Cart header button hidden only on tablet/desktop POS. */
@media (min-width: 761px) {
  body.pos-body:not(.pos-mobile-body) #posCartBtn {
    display: none !important;
  }
}


/* Online ordering header polish: clearer weekly-hours action + larger address/phone subtitle */
body.online-body .online-brand p#onlineRestaurantSubtitle {
  font-size: clamp(14px, 1.18vw, 18px) !important;
  line-height: 1.32 !important;
  font-weight: 950 !important;
  color: #475569 !important;
}

body.online-body .online-brand p#onlineRestaurantSubtitle .online-header-link {
  color: inherit !important;
  text-decoration: none !important;
  border-bottom: 2px solid rgba(59, 130, 246, .28);
  text-underline-offset: 3px;
}
body.online-body .online-brand p#onlineRestaurantSubtitle .online-header-link:active,
body.online-body .online-brand p#onlineRestaurantSubtitle .online-header-link:hover,
body.online-body .online-brand p#onlineRestaurantSubtitle .online-header-link:focus {
  color: var(--orange) !important;
  border-bottom-color: currentColor;
}
body.online-body .online-brand p#onlineRestaurantSubtitle .online-header-separator {
  color: #64748b;
}
body.online-body .online-hours-toggle em {
  font-size: clamp(12px, .95vw, 14px) !important;
  line-height: 1.1 !important;
  font-weight: 1000 !important;
}
@media (max-width: 760px) {
  body.online-body .online-brand p#onlineRestaurantSubtitle {
    font-size: clamp(14px, 3.65vw, 16px) !important;
    line-height: 1.24 !important;
    max-width: 38ch !important;
  }
  body.online-body .online-hours-toggle {
    min-height: 62px !important;
  }
  body.online-body .online-hours-toggle em {
    font-size: clamp(12px, 3.25vw, 14px) !important;
    white-space: normal !important;
  }
}

/* v1.3.95 - Mobile POS: force Cart button back between Gift and + Item even when mobile URL lacks ?mobile=1 */
@media (max-width: 760px) {
  body.pos-body:not(.pos-mobile-body) .pos-header,
  body.pos-mobile-body .pos-header {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    grid-template-areas:
      "brand brand brand"
      "gift cart item" !important;
    column-gap: 8px !important;
    row-gap: 10px !important;
    align-items: stretch !important;
  }

  body.pos-body:not(.pos-mobile-body) .pos-brand,
  body.pos-mobile-body .pos-brand {
    grid-area: brand !important;
    width: 100% !important;
    min-width: 0 !important;
  }

  body.pos-body:not(.pos-mobile-body) .pos-staff-gift-actions,
  body.pos-body:not(.pos-mobile-body) .pos-header-actions,
  body.pos-mobile-body .pos-staff-gift-actions,
  body.pos-mobile-body .pos-header-actions {
    display: contents !important;
  }

  body.pos-body:not(.pos-mobile-body) .pos-staff-schedule-top-btn,
  body.pos-body:not(.pos-mobile-body) #timeClockToggle,
  body.pos-body:not(.pos-mobile-body) #posSoundToggle,
  body.pos-body:not(.pos-mobile-body) #posRefreshBtn,
  body.pos-mobile-body .pos-staff-schedule-top-btn,
  body.pos-mobile-body #timeClockToggle,
  body.pos-mobile-body #posSoundToggle,
  body.pos-mobile-body #posRefreshBtn {
    display: none !important;
  }

  body.pos-body:not(.pos-mobile-body) .pos-gift-card-top-btn,
  body.pos-mobile-body .pos-gift-card-top-btn {
    grid-area: gift !important;
  }

  body.pos-body:not(.pos-mobile-body) #posCartBtn,
  body.pos-mobile-body #posCartBtn {
    grid-area: cart !important;
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  body.pos-body:not(.pos-mobile-body) #posManualItemBtn,
  body.pos-mobile-body #posManualItemBtn {
    grid-area: item !important;
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  body.pos-body:not(.pos-mobile-body) .pos-gift-card-top-btn,
  body.pos-body:not(.pos-mobile-body) #posCartBtn,
  body.pos-body:not(.pos-mobile-body) #posManualItemBtn,
  body.pos-mobile-body .pos-gift-card-top-btn,
  body.pos-mobile-body #posCartBtn,
  body.pos-mobile-body #posManualItemBtn {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    height: 50px !important;
    min-height: 50px !important;
    margin: 0 !important;
    padding: 0 6px !important;
    border-radius: 17px !important;
    font-size: 14px !important;
    font-weight: 950 !important;
    line-height: 1 !important;
    letter-spacing: -.01em !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 5px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  body.pos-body:not(.pos-mobile-body) #posManualItemBtn,
  body.pos-mobile-body #posManualItemBtn,
  body.pos-body:not(.pos-mobile-body) #posCartBtn,
  body.pos-mobile-body #posCartBtn {
    background: #0f172a !important;
    color: #fff !important;
    border-color: rgba(15, 23, 42, .18) !important;
  }

  body.pos-body:not(.pos-mobile-body) #posHeaderCartCount,
  body.pos-mobile-body #posHeaderCartCount {
    flex: 0 0 auto !important;
    min-width: 24px !important;
    width: 24px !important;
    height: 24px !important;
    padding: 0 !important;
    margin-left: 1px !important;
    border-radius: 999px !important;
    font-size: 12px !important;
    line-height: 24px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: #fff !important;
    color: #0f172a !important;
  }
}

@media (max-width: 380px) {
  body.pos-body:not(.pos-mobile-body) .pos-gift-card-top-btn,
  body.pos-body:not(.pos-mobile-body) #posCartBtn,
  body.pos-body:not(.pos-mobile-body) #posManualItemBtn,
  body.pos-mobile-body .pos-gift-card-top-btn,
  body.pos-mobile-body #posCartBtn,
  body.pos-mobile-body #posManualItemBtn {
    height: 46px !important;
    min-height: 46px !important;
    font-size: 13px !important;
    gap: 4px !important;
    padding-left: 4px !important;
    padding-right: 4px !important;
  }
}

/* v1.3.96 - Mobile POS checkout buttons: matched sizing and cleaner stacked actions */
@media (max-width: 760px) {
  body.pos-body .pos-cart-total .pos-pay-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    width: 100% !important;
    margin-top: 18px !important;
    padding: 0 0 max(24px, env(safe-area-inset-bottom)) !important;
    box-sizing: border-box !important;
  }

  body.pos-body .pos-cart-total .pos-pay-grid #posSendKitchenBtn.checkout-btn,
  body.pos-body .pos-cart-total .pos-pay-grid #posPayCardBtn.primary-btn {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: 60px !important;
    min-height: 60px !important;
    padding: 0 18px !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 18px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    white-space: nowrap !important;
    font-size: 22px !important;
    font-weight: 1000 !important;
    line-height: 1 !important;
    letter-spacing: -.02em !important;
    color: #fff !important;
    background: linear-gradient(135deg, #2563eb, #1d4ed8) !important;
    box-shadow: 0 10px 20px rgba(37, 99, 235, .18) !important;
    transform: none !important;
    box-sizing: border-box !important;
    appearance: none !important;
    -webkit-appearance: none !important;
  }

  body.pos-body .pos-cart-total .pos-pay-grid #posSendKitchenBtn.checkout-btn {
    font-size: 0 !important;
  }

  body.pos-body .pos-cart-total .pos-pay-grid #posSendKitchenBtn.checkout-btn::before {
    content: none !important;
    display: none !important;
  }

  body.pos-body .pos-cart-total .pos-pay-grid #posSendKitchenBtn.checkout-btn::after {
    content: "Send to POS" !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 22px !important;
    font-weight: 1000 !important;
    line-height: 1 !important;
    letter-spacing: -.02em !important;
  }

  body.pos-body .pos-cart-total .pos-pay-grid #posPayCardBtn.primary-btn {
    font-size: 22px !important;
  }

  body.pos-body .pos-cart-total .pos-pay-grid #posPayCardBtn.primary-btn::before,
  body.pos-body .pos-cart-total .pos-pay-grid #posPayCardBtn.primary-btn::after {
    content: none !important;
    display: none !important;
  }

  body.pos-body .pos-cart-total .pos-pay-grid #posSendKitchenBtn.checkout-btn:disabled,
  body.pos-body .pos-cart-total .pos-pay-grid #posPayCardBtn.primary-btn:disabled {
    opacity: .72 !important;
    filter: none !important;
    color: #fff !important;
    background: linear-gradient(135deg, #93a8d5, #7f96c8) !important;
    box-shadow: none !important;
  }
}


/* v1.3.99: mobile online ordering bottom cart */
#onlineCartPanel {
  scroll-margin-top: 110px;
}

@media (max-width: 980px) {
  body.online-body .online-layout {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  body.online-body .online-cart-panel {
    display: flex;
    position: static;
    top: auto;
    height: auto;
    overflow: hidden;
    margin-top: 4px;
    border-radius: 30px;
    box-shadow: 0 18px 36px rgba(17,24,39,.1);
  }

  body.online-body .online-cart-head {
    padding: 20px 18px 14px;
  }

  body.online-body .online-cart-head h2 {
    font-size: 28px;
  }

  body.online-body .online-cart-items {
    flex: 0 0 auto;
    max-height: none;
    overflow: visible;
    padding: 14px 16px 10px;
  }

  body.online-body .online-cart-footer {
    padding: 18px 16px 20px;
  }

  body.online-body .online-cart-button {
    scroll-margin-top: 100px;
  }
}

@media (max-width: 640px) {
  body.online-body .online-cart-panel {
    border-radius: 28px;
  }

  body.online-body .online-cart-head {
    padding: 18px 16px 12px;
  }

  body.online-body .online-cart-head h2 {
    font-size: 24px;
  }

  body.online-body .online-cart-items {
    padding: 12px 14px 8px;
  }

  body.online-body .online-cart-footer {
    padding: 16px 14px 18px;
  }

  body.online-body .online-cart-item {
    border-radius: 22px;
    padding: 13px;
  }
}


/* v1.3.102: editable online cart items */
.online-cart-item[data-key] {
  cursor: pointer;
  transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease;
}
.online-cart-item[data-key]:hover,
.online-cart-item[data-key]:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 12px 26px rgba(17,24,39,.08);
  border-color: rgba(var(--primary-500-rgb), .34);
  outline: none;
}
.online-cart-item .qty-btn,
.online-cart-item .remove-btn {
  position: relative;
  z-index: 1;
}


/* v1.3.103 - mobile admin swipeable weekly staff schedule */
body.admin-body .admin-staff-schedule-mobile {
  display: none;
}

body.admin-body .admin-staff-mobile-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
  padding: 12px 14px;
  border: 1px solid rgba(147, 197, 253, 0.75);
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(239, 246, 255, 0.95), rgba(255, 255, 255, 0.98));
  color: #0f172a;
}

body.admin-body .admin-staff-mobile-toolbar strong {
  font-size: 0.94rem;
}

body.admin-body .admin-staff-mobile-toolbar span {
  font-size: 0.82rem;
  font-weight: 800;
  color: #64748b;
  text-align: right;
}

body.admin-body .admin-staff-mobile-track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 100%;
  gap: 14px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
body.admin-body .admin-staff-mobile-track::-webkit-scrollbar {
  display: none;
}

body.admin-body .admin-staff-mobile-card {
  scroll-snap-align: start;
  background: #ffffff;
  border: 2px solid #bfdbfe;
  border-radius: 24px;
  padding: 16px;
  box-shadow: 0 14px 30px rgba(15, 23, 42, 0.08);
}

body.admin-body .admin-staff-mobile-card-head {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  margin-bottom: 14px;
  padding-bottom: 14px;
  border-bottom: 2px solid #dbeafe;
}

body.admin-body .admin-staff-mobile-avatar {
  width: 56px;
  height: 56px;
  border-radius: 18px;
  display: grid;
  place-items: center;
  color: #fff;
  background: linear-gradient(135deg, #0f172a, #1e40af);
  font-size: 1.35rem;
  font-weight: 950;
}

body.admin-body .admin-staff-mobile-copy {
  min-width: 0;
}

body.admin-body .admin-staff-mobile-copy h4 {
  margin: 0;
  font-size: 1.34rem;
  line-height: 1.05;
  letter-spacing: -0.03em;
  color: #0f172a;
}

body.admin-body .admin-staff-mobile-copy p {
  margin: 6px 0 0;
  color: #64748b;
  font-size: 0.9rem;
  font-weight: 900;
}

body.admin-body .admin-staff-mobile-days {
  display: grid;
  gap: 10px;
}

body.admin-body .admin-staff-mobile-day {
  width: 100%;
  border: 2px solid #bfdbfe;
  border-radius: 18px;
  background: #f8fbff;
  color: #334155;
  padding: 14px 14px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 10px;
  text-align: left;
  box-shadow: 0 8px 18px rgba(37, 99, 235, 0.06);
}

body.admin-body .admin-staff-mobile-day.has-shift {
  color: #ffffff;
  border-color: rgba(37, 99, 235, 0.9);
  background: linear-gradient(135deg, #2563eb, #0284c7);
}

body.admin-body .admin-staff-mobile-day.is-off {
  color: #334155;
  background: #f8fbff;
}

body.admin-body .admin-staff-mobile-day-name {
  font-size: 0.98rem;
  font-weight: 950;
}

body.admin-body .admin-staff-mobile-day-value {
  font-size: 1rem;
  font-weight: 950;
  white-space: nowrap;
}

body.admin-body .admin-staff-mobile-day small {
  min-width: 42px;
  justify-self: end;
  text-align: center;
  padding: 5px 8px;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.14);
  color: inherit;
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.03em;
}

body.admin-body .admin-staff-mobile-dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 12px;
}

body.admin-body .admin-staff-mobile-dot {
  width: 11px;
  height: 11px;
  border: 0;
  border-radius: 999px;
  background: #cbd5e1;
  box-shadow: inset 0 0 0 1px rgba(148, 163, 184, 0.6);
}

body.admin-body .admin-staff-mobile-dot.is-active {
  width: 26px;
  background: linear-gradient(135deg, #2563eb, #0284c7);
}

@media (max-width: 860px) {
  body.admin-body .admin-staff-schedule-desktop {
    display: none;
  }

  body.admin-body .admin-staff-schedule-mobile {
    display: block;
  }

  body.admin-body .admin-staff-mobile-toolbar {
    display: block;
  }

  body.admin-body .admin-staff-mobile-toolbar span {
    display: block;
    margin-top: 4px;
    text-align: left;
  }
}


/* v1.3.104 - mobile online ordering top-right plus button */
@media (max-width: 640px) {
  body.online-body .online-product-info {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "title cta"
      "desc desc"
      "price price"
      "badge badge";
    align-items: start;
    gap: 8px 10px;
  }

  body.online-body .online-product-top h3 {
    grid-area: title;
    padding-right: 2px;
  }

  body.online-body .online-add-link {
    grid-area: cta;
    align-self: start;
    justify-self: end;
    min-width: 52px;
    height: 42px;
    padding: 0 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0;
    line-height: 1;
    border-radius: 999px;
  }

  body.online-body .online-add-link::before {
    content: "+";
    font-size: 28px;
    font-weight: 1000;
    line-height: 1;
  }
}


/* v1.3.105 - mobile online ordering remove add button from cards */
@media (max-width: 640px) {
  body.online-body .online-product-info {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "title"
      "desc"
      "price"
      "badge";
    gap: 8px 0;
  }

  body.online-body .online-add-link {
    display: none !important;
  }

  body.online-body .online-product-bottom > span:not(.online-product-badge):empty {
    display: none !important;
  }

  body.online-body .online-product-top h3 {
    padding-right: 0;
  }
}


/* v1.3.106 - keep POS custom keyboard above device login overlay */
body.pos-body .device-login-backdrop.is-showing ~ .nn-keyboard,
body.pos-body .nn-keyboard {
  z-index: 10050 !important;
}


/* v1.3.107 - harden custom keyboard layering for every device login screen */
.device-login-backdrop.is-showing ~ .nn-keyboard,
body.pos-body .nn-keyboard,
body.kitchen-body .nn-keyboard,
body.lobby-body .nn-keyboard,
body .nn-keyboard {
  z-index: 12050 !important;
}

.device-login-backdrop.is-showing {
  z-index: 9999 !important;
}

/* v1.3.108 - Eatery Kiosks SaaS landing page */
:root {
  --saas-navy: #0f172a;
  --saas-blue: #2563eb;
  --saas-sky: #0284c7;
  --saas-orange: #f97316;
  --saas-red: #ef4444;
  --saas-green: #16a34a;
  --saas-ink: #111827;
  --saas-muted: #64748b;
  --saas-border: rgba(148, 163, 184, .28);
  --saas-card: rgba(255, 255, 255, .92);
  --saas-shadow: 0 24px 70px rgba(15, 23, 42, .12);
}

body.saas-landing-body {
  margin: 0;
  min-height: 100vh;
  color: var(--saas-ink);
  background:
    radial-gradient(circle at 10% 0%, rgba(249, 115, 22, .22), transparent 32%),
    radial-gradient(circle at 92% 6%, rgba(37, 99, 235, .18), transparent 30%),
    linear-gradient(180deg, #fff7ed 0%, #eff6ff 44%, #ffffff 100%);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.saas-landing-body * {
  box-sizing: border-box;
}

.saas-landing-body a {
  color: inherit;
  text-decoration: none;
}

.saas-nav {
  position: sticky;
  top: 0;
  z-index: 40;
  max-width: 1220px;
  margin: 0 auto;
  padding: 18px clamp(16px, 4vw, 32px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  backdrop-filter: blur(18px);
}

.saas-brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.saas-brand-mark {
  width: 46px;
  height: 46px;
  border-radius: 16px;
  display: grid;
  place-items: center;
  color: #fff;
  font-weight: 1000;
  font-size: 1.35rem;
  background: linear-gradient(135deg, var(--saas-orange), var(--saas-red));
  box-shadow: 0 16px 34px rgba(249, 115, 22, .24);
}

.saas-brand strong {
  display: block;
  font-size: 1.02rem;
  line-height: 1;
  letter-spacing: -.03em;
}

.saas-brand small {
  display: block;
  margin-top: 4px;
  color: var(--saas-muted);
  font-size: .76rem;
  font-weight: 850;
}

.saas-nav-links {
  display: flex;
  align-items: center;
  gap: 22px;
  color: #475569;
  font-size: .94rem;
  font-weight: 900;
}

.saas-nav-links a:hover {
  color: var(--saas-blue);
}

.saas-nav-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 950;
}

.saas-nav-login {
  padding: 11px 14px;
  color: #334155;
}

.saas-nav-cta,
.saas-btn.primary {
  border: 0;
  border-radius: 999px;
  padding: 13px 18px;
  color: #fff;
  background: linear-gradient(135deg, var(--saas-blue), var(--saas-sky));
  box-shadow: 0 18px 34px rgba(37, 99, 235, .22);
}

.saas-hero {
  max-width: 1220px;
  margin: 0 auto;
  padding: clamp(28px, 5vw, 72px) clamp(16px, 4vw, 32px) 44px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(420px, .9fr);
  gap: clamp(28px, 5vw, 70px);
  align-items: center;
}

.saas-pill {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  margin-bottom: 18px;
  padding: 10px 14px;
  border: 1px solid rgba(249, 115, 22, .24);
  border-radius: 999px;
  color: #9a3412;
  background: rgba(255, 255, 255, .74);
  font-size: .84rem;
  font-weight: 950;
  box-shadow: 0 12px 28px rgba(249, 115, 22, .08);
}

.saas-hero h1 {
  margin: 0;
  max-width: 740px;
  color: var(--saas-navy);
  font-size: clamp(3.2rem, 8vw, 6.7rem);
  line-height: .86;
  letter-spacing: -.085em;
  font-weight: 1000;
}

.saas-hero-lede {
  max-width: 660px;
  margin: 24px 0 0;
  color: #475569;
  font-size: clamp(1.05rem, 2vw, 1.34rem);
  line-height: 1.48;
  font-weight: 780;
}

.saas-hero-actions,
.saas-final-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
}

.saas-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  padding: 15px 22px;
  border-radius: 999px;
  font-size: 1rem;
  font-weight: 1000;
}

.saas-btn.secondary {
  border: 1px solid var(--saas-border);
  color: var(--saas-navy);
  background: rgba(255, 255, 255, .85);
  box-shadow: 0 14px 28px rgba(15, 23, 42, .08);
}

.saas-btn.secondary.light {
  color: #fff;
  border-color: rgba(255, 255, 255, .32);
  background: rgba(255, 255, 255, .12);
}

.saas-proof-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 18px;
  margin-top: 22px;
  color: #334155;
  font-size: .92rem;
  font-weight: 900;
}

.saas-product-stage {
  position: relative;
  min-height: 560px;
  border: 1px solid rgba(255, 255, 255, .75);
  border-radius: 42px;
  padding: 34px;
  background:
    radial-gradient(circle at 18% 16%, rgba(255, 255, 255, .9), transparent 30%),
    linear-gradient(145deg, rgba(255, 255, 255, .82), rgba(219, 234, 254, .74));
  box-shadow: var(--saas-shadow);
  overflow: hidden;
}

.saas-product-stage::before {
  content: "";
  position: absolute;
  inset: auto -20% -28% 22%;
  height: 310px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(249, 115, 22, .3), rgba(239, 68, 68, .18));
  filter: blur(12px);
}

.saas-device {
  position: absolute;
  border: 10px solid #0f172a;
  background: #fff;
  box-shadow: 0 28px 70px rgba(15, 23, 42, .22);
}

.saas-device.tablet {
  left: 30px;
  top: 54px;
  width: min(80%, 390px);
  min-height: 365px;
  border-radius: 34px;
  padding: 18px;
}

.saas-device.phone {
  right: 24px;
  top: 105px;
  width: 156px;
  min-height: 312px;
  border-radius: 32px;
  padding: 13px;
  z-index: 4;
}

.saas-device.kitchen {
  right: 56px;
  bottom: 34px;
  width: 275px;
  min-height: 210px;
  border-radius: 30px;
  padding: 15px;
  z-index: 3;
}

.saas-device-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
}

.saas-device-top span,
.saas-kitchen-head {
  color: #1d4ed8;
  font-size: .82rem;
  font-weight: 1000;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.saas-device-top strong {
  color: var(--saas-navy);
  font-size: 1.45rem;
  font-weight: 1000;
}

.saas-menu-preview {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.saas-menu-preview article {
  min-height: 90px;
  border-radius: 20px;
  padding: 12px;
  background: #fff7ed;
  border: 1px solid #fed7aa;
}

.saas-menu-preview b {
  display: block;
  color: var(--saas-navy);
  font-size: .9rem;
  line-height: 1.05;
}

.saas-menu-preview span {
  display: block;
  margin-top: 14px;
  color: #1d4ed8;
  font-weight: 1000;
}

.saas-cart-preview {
  margin-top: 14px;
  border-radius: 20px;
  padding: 14px;
  color: #fff;
  background: linear-gradient(135deg, #0f172a, #1e40af);
}

.saas-cart-preview span {
  display: block;
  font-weight: 900;
  margin-bottom: 10px;
}

.saas-cart-preview button {
  width: 100%;
  border: 0;
  border-radius: 999px;
  padding: 12px;
  color: #fff;
  background: linear-gradient(135deg, #22c55e, #16a34a);
  font-weight: 1000;
}

.saas-phone-hero {
  min-height: 64px;
  border-radius: 20px;
  display: grid;
  place-items: center;
  color: #fff;
  background: linear-gradient(135deg, var(--saas-orange), var(--saas-red));
  font-weight: 1000;
}

.saas-phone-card {
  height: 82px;
  margin-top: 10px;
  border-radius: 18px;
  background: linear-gradient(135deg, #fed7aa, #bfdbfe);
}

.saas-phone-lines span {
  display: block;
  height: 10px;
  margin-top: 10px;
  border-radius: 999px;
  background: #e2e8f0;
}

.saas-phone-lines span:nth-child(2) { width: 74%; }
.saas-phone-lines span:nth-child(3) { width: 58%; }

.saas-phone-total {
  margin-top: 16px;
  border-radius: 999px;
  padding: 12px 10px;
  color: #fff;
  text-align: center;
  background: #0f172a;
  font-size: .84rem;
  font-weight: 1000;
}

.saas-kitchen-head {
  margin-bottom: 10px;
}

.saas-ticket {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: 9px;
  padding: 14px;
  border-radius: 18px;
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  color: #1e3a8a;
  font-weight: 950;
}

.saas-ticket.active {
  color: #fff;
  background: linear-gradient(135deg, #2563eb, #0284c7);
}

.saas-ticket.scheduled {
  background: #fff7ed;
  border-color: #fed7aa;
  color: #9a3412;
}

.saas-value-strip,
.saas-section,
.saas-flow-section,
.saas-device-section,
.saas-final-cta,
.saas-footer {
  max-width: 1220px;
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(16px, 4vw, 32px);
  padding-right: clamp(16px, 4vw, 32px);
}

.saas-value-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin-top: 8px;
  margin-bottom: 44px;
}

.saas-value-strip article {
  padding: 18px;
  border: 1px solid var(--saas-border);
  border-radius: 24px;
  background: rgba(255, 255, 255, .78);
  box-shadow: 0 16px 38px rgba(15, 23, 42, .07);
}

.saas-value-strip strong {
  display: block;
  color: var(--saas-navy);
  font-size: 1rem;
  font-weight: 1000;
}

.saas-value-strip span {
  display: block;
  margin-top: 5px;
  color: var(--saas-muted);
  font-size: .88rem;
  font-weight: 820;
}

.saas-section,
.saas-flow-section {
  padding-top: 64px;
  padding-bottom: 64px;
}

.saas-section-head {
  max-width: 820px;
  margin: 0 auto 30px;
  text-align: center;
}

.saas-section-head.compact {
  max-width: 760px;
}

.saas-section-head span,
.saas-device-copy > span,
.saas-final-cta span {
  color: #ea580c;
  font-size: .83rem;
  font-weight: 1000;
  text-transform: uppercase;
  letter-spacing: .1em;
}

.saas-section-head h2,
.saas-device-copy h2,
.saas-final-cta h2 {
  margin: 8px 0 0;
  color: var(--saas-navy);
  font-size: clamp(2rem, 4vw, 3.7rem);
  line-height: .95;
  letter-spacing: -.06em;
  font-weight: 1000;
}

.saas-section-head p,
.saas-device-copy p {
  margin: 14px auto 0;
  color: #475569;
  font-size: 1.06rem;
  line-height: 1.55;
  font-weight: 760;
}

.saas-feature-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.saas-feature-card,
.saas-flow-grid article,
.saas-price-card {
  border: 1px solid var(--saas-border);
  border-radius: 28px;
  background: var(--saas-card);
  box-shadow: 0 18px 48px rgba(15, 23, 42, .08);
}

.saas-feature-card {
  padding: 22px;
}

.saas-icon {
  width: 52px;
  height: 52px;
  border-radius: 18px;
  display: grid;
  place-items: center;
  margin-bottom: 16px;
  background: #fff7ed;
  font-size: 1.45rem;
  box-shadow: inset 0 0 0 1px #fed7aa;
}

.saas-feature-card h3,
.saas-flow-grid h3,
.saas-price-card h3 {
  margin: 0;
  color: var(--saas-navy);
  font-size: 1.18rem;
  line-height: 1.1;
  font-weight: 1000;
  letter-spacing: -.035em;
}

.saas-feature-card p,
.saas-flow-grid p {
  margin: 10px 0 0;
  color: #64748b;
  line-height: 1.5;
  font-size: .94rem;
  font-weight: 760;
}

.saas-flow-section {
  border-radius: 44px;
  background:
    radial-gradient(circle at 0% 0%, rgba(249, 115, 22, .12), transparent 36%),
    linear-gradient(135deg, rgba(15, 23, 42, .97), rgba(30, 64, 175, .94));
}

.saas-flow-section .saas-section-head h2,
.saas-flow-section .saas-section-head span {
  color: #fff;
}

.saas-flow-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}

.saas-flow-grid article {
  padding: 22px;
  background: rgba(255, 255, 255, .1);
  border-color: rgba(255, 255, 255, .18);
  box-shadow: none;
}

.saas-flow-grid article > span {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  margin-bottom: 16px;
  color: #fff;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--saas-orange), var(--saas-red));
  font-weight: 1000;
}

.saas-flow-grid h3 {
  color: #fff;
}

.saas-flow-grid p {
  color: #dbeafe;
}

.saas-device-section {
  padding-top: 74px;
  padding-bottom: 72px;
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(320px, .8fr);
  gap: 40px;
  align-items: center;
}

.saas-device-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 20px;
}

.saas-device-tags span {
  padding: 10px 13px;
  border-radius: 999px;
  color: #1e3a8a;
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  font-size: .86rem;
  font-weight: 920;
}

.saas-screen-stack {
  position: relative;
  min-height: 380px;
}

.saas-screen {
  position: absolute;
  width: 74%;
  min-height: 160px;
  border: 9px solid #0f172a;
  border-radius: 30px;
  padding: 22px;
  color: #fff;
  box-shadow: 0 28px 62px rgba(15, 23, 42, .18);
}

.saas-screen b {
  display: block;
  font-size: 1.6rem;
  font-weight: 1000;
}

.saas-screen span {
  display: block;
  margin-top: 8px;
  font-weight: 900;
  opacity: .9;
}

.saas-screen.one {
  top: 0;
  left: 0;
  background: linear-gradient(135deg, var(--saas-orange), var(--saas-red));
}

.saas-screen.two {
  top: 110px;
  right: 0;
  background: linear-gradient(135deg, var(--saas-blue), var(--saas-sky));
}

.saas-screen.three {
  bottom: 0;
  left: 10%;
  background: linear-gradient(135deg, #0f172a, #1e40af);
}

.saas-pricing-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.saas-price-card {
  padding: 24px;
}

.saas-price-card.featured {
  transform: translateY(-10px);
  border-color: rgba(37, 99, 235, .42);
  box-shadow: 0 28px 70px rgba(37, 99, 235, .16);
}

.saas-plan {
  margin: 0 0 10px;
  color: #ea580c;
  font-size: .8rem;
  font-weight: 1000;
  text-transform: uppercase;
  letter-spacing: .1em;
}

.saas-price-card strong {
  display: block;
  margin-top: 10px;
  color: #475569;
  font-size: .95rem;
}

.saas-price-card ul {
  display: grid;
  gap: 10px;
  margin: 20px 0;
  padding: 0;
  list-style: none;
  color: #475569;
  font-weight: 840;
}

.saas-price-card li::before {
  content: "✓";
  margin-right: 8px;
  color: var(--saas-green);
  font-weight: 1000;
}

.saas-price-card a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  border-radius: 999px;
  color: #fff;
  background: #0f172a;
  font-weight: 1000;
}

.saas-price-card.featured a {
  background: linear-gradient(135deg, var(--saas-blue), var(--saas-sky));
}

.saas-final-cta {
  margin-top: 42px;
  margin-bottom: 42px;
  border-radius: 42px;
  padding-top: 42px;
  padding-bottom: 42px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 26px;
  color: #fff;
  background:
    radial-gradient(circle at 12% 0%, rgba(249, 115, 22, .42), transparent 34%),
    linear-gradient(135deg, #0f172a, #1e3a8a);
  box-shadow: var(--saas-shadow);
}

.saas-final-cta h2 {
  max-width: 820px;
  color: #fff;
  font-size: clamp(2rem, 4.4vw, 4rem);
}

.saas-final-cta span {
  color: #fed7aa;
}

.saas-final-actions {
  margin: 0;
  flex: 0 0 auto;
}

.saas-footer {
  padding-top: 28px;
  padding-bottom: 42px;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 20px;
  align-items: center;
  color: #475569;
}

.saas-footer nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 16px;
  font-size: .9rem;
  font-weight: 900;
}

.saas-footer p {
  grid-column: 1 / -1;
  margin: 0;
  color: #64748b;
  font-size: .88rem;
  font-weight: 760;
}

@media (max-width: 980px) {
  .saas-nav {
    align-items: flex-start;
  }

  .saas-nav-links {
    display: none;
  }

  .saas-hero {
    grid-template-columns: 1fr;
  }

  .saas-product-stage {
    min-height: 520px;
  }

  .saas-value-strip,
  .saas-feature-grid,
  .saas-flow-grid,
  .saas-pricing-grid,
  .saas-device-section {
    grid-template-columns: 1fr 1fr;
  }

  .saas-flow-grid {
    gap: 14px;
  }

  .saas-final-cta {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 640px) {
  .saas-nav {
    padding: 14px;
  }

  .saas-brand small,
  .saas-nav-login {
    display: none;
  }

  .saas-nav-cta {
    padding: 11px 13px;
    font-size: .86rem;
  }

  .saas-hero {
    padding-top: 28px;
  }

  .saas-hero h1 {
    font-size: clamp(3.05rem, 17vw, 4.8rem);
  }

  .saas-pill {
    border-radius: 18px;
    line-height: 1.25;
  }

  .saas-hero-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .saas-product-stage {
    min-height: 500px;
    padding: 18px;
    border-radius: 32px;
  }

  .saas-device.tablet {
    left: 16px;
    top: 34px;
    width: calc(100% - 58px);
    min-height: 310px;
    border-width: 7px;
    border-radius: 28px;
  }

  .saas-device.phone {
    right: 12px;
    top: 220px;
    width: 132px;
    min-height: 250px;
    border-width: 7px;
  }

  .saas-device.kitchen {
    left: 18px;
    right: auto;
    bottom: 18px;
    width: 210px;
    min-height: 162px;
    border-width: 7px;
    border-radius: 24px;
  }

  .saas-menu-preview {
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }

  .saas-menu-preview article {
    min-height: 70px;
    padding: 9px;
  }

  .saas-menu-preview span {
    margin-top: 8px;
  }

  .saas-value-strip,
  .saas-feature-grid,
  .saas-flow-grid,
  .saas-pricing-grid,
  .saas-device-section {
    grid-template-columns: 1fr;
  }

  .saas-section,
  .saas-flow-section {
    padding-top: 46px;
    padding-bottom: 46px;
  }

  .saas-flow-section,
  .saas-final-cta {
    border-radius: 30px;
  }

  .saas-device-section {
    padding-top: 52px;
    padding-bottom: 48px;
  }

  .saas-screen-stack {
    min-height: 330px;
  }

  .saas-screen {
    width: 84%;
    min-height: 125px;
    border-width: 7px;
    border-radius: 24px;
  }

  .saas-price-card.featured {
    transform: none;
  }

  .saas-footer {
    grid-template-columns: 1fr;
  }

  .saas-footer nav {
    justify-content: flex-start;
  }
}


/* v1.3.110 - SaaS Phase 2 account dashboard */
.account-body {
  min-height: 100vh;
}
.account-topbar {
  gap: 18px;
}
.account-logout-link,
.account-register-link {
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.account-shell {
  max-width: 1180px;
}
.account-panel {
  display: block !important;
}
.account-restaurant-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 18px;
}
.account-restaurant-card {
  display: grid;
  gap: 16px;
}
.account-restaurant-card h3 {
  margin: 0;
  font-size: 1.35rem;
  line-height: 1.05;
}
.account-restaurant-card p {
  margin: 6px 0 0;
  color: #64748b;
  font-weight: 850;
}
.account-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.account-card-meta span {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 7px 10px;
  background: #eff6ff;
  color: #1d4ed8;
  font-size: .78rem;
  font-weight: 950;
}
@media (max-width: 700px) {
  .account-topbar {
    align-items: flex-start;
  }
  .account-topbar .admin-primary {
    width: 100%;
  }
  .account-restaurant-grid {
    grid-template-columns: 1fr;
  }
}

/* v1.3.111 - SaaS roles and permissions */
.admin-role-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 8px 14px;
  border-radius: 999px;
  border: 2px solid rgba(147, 197, 253, .75);
  background: rgba(239, 246, 255, .95);
  color: #1d4ed8;
  font-size: .84rem;
  font-weight: 1000;
  letter-spacing: .03em;
  text-transform: uppercase;
  white-space: nowrap;
}
.admin-readonly-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 8px 13px;
  border-radius: 999px;
  border: 2px solid #dbeafe;
  background: #eff6ff;
  color: #64748b;
  font-size: .78rem;
  font-weight: 950;
}
[hidden] { display: none !important; }
@media (max-width: 760px) {
  .admin-role-badge {
    order: 3;
    width: 100%;
  }
}


/* v1.3.112 - SaaS Phase 4 plan and billing UI */
body.admin-body .admin-role-badge.plan {
  background: #fff7ed;
  color: #c2410c;
  border-color: #fed7aa;
}
.billing-plan-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 18px;
}
.billing-current-plan span {
  display: inline-flex;
  color: #64748b;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .06em;
  font-size: .78rem;
}
.billing-current-plan h3 {
  margin: 8px 0;
  font-size: clamp(1.8rem, 4vw, 2.7rem);
  letter-spacing: -.05em;
}
.billing-feature-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
  margin: 18px 0;
}
.billing-feature-card {
  border: 2px solid #dbeafe;
  border-radius: 18px;
  padding: 14px;
  background: #ffffff;
  display: grid;
  gap: 5px;
}
.billing-feature-card strong { color: #0f172a; }
.billing-feature-card span { color: #64748b; font-weight: 850; }
.billing-feature-card.is-enabled { border-color: #bbf7d0; background: #f0fdf4; }
.billing-feature-card.is-locked { border-color: #fed7aa; background: #fff7ed; }
.billing-plan-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(245px, 1fr));
  gap: 16px;
}
.billing-plan-card {
  display: grid;
  gap: 14px;
}
.billing-plan-card.is-current {
  border-color: #fb923c !important;
  box-shadow: 0 16px 34px rgba(249,115,22,.14) !important;
}
.billing-plan-card h3 { margin: 0 0 6px; }
.billing-plan-card strong { font-size: 1.7rem; color: #0f172a; }
.billing-plan-card ul {
  margin: 0;
  padding-left: 18px;
  color: #475569;
  font-weight: 850;
}
.account-card-meta .plan-warning,
.plan-warning { color: #b45309; }
@media (max-width: 760px) {
  .billing-plan-summary { grid-template-columns: 1fr; }
}

/* v1.3.113 - SaaS Phase 5 device session admin display */
body.admin-body .device-session-card {
  margin: 18px 0;
}
body.admin-body .device-session-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}
body.admin-body .device-session-head span {
  display: inline-flex;
  color: #2563eb;
  font-size: .78rem;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .06em;
}
body.admin-body .device-session-head h3 {
  margin: 4px 0 5px;
  color: #0f172a;
  font-size: 1.25rem;
  line-height: 1.05;
}
body.admin-body .device-session-head p {
  margin: 0;
  color: #64748b;
  font-weight: 800;
}
body.admin-body .device-session-head > strong {
  flex: 0 0 auto;
  border-radius: 999px;
  padding: 8px 12px;
  color: #14532d;
  background: #dcfce7;
  font-size: .86rem;
  font-weight: 950;
}
body.admin-body .device-session-table {
  display: grid;
  gap: 8px;
}
body.admin-body .device-session-row {
  display: grid;
  grid-template-columns: minmax(160px, 1.25fr) minmax(120px, .85fr) minmax(140px, 1fr) minmax(135px, .9fr) minmax(90px, .6fr);
  gap: 10px;
  align-items: center;
  padding: 11px 12px;
  border: 1px solid #dbeafe;
  border-radius: 14px;
  background: #f8fbff;
  color: #334155;
  font-weight: 850;
}
body.admin-body .device-session-row.is-head {
  color: #ffffff;
  background: linear-gradient(135deg, #0f172a, #1e40af);
  border-color: transparent;
  font-size: .82rem;
  text-transform: uppercase;
  letter-spacing: .04em;
}
body.admin-body .device-session-row span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}
body.admin-body .device-session-row small {
  display: block;
  margin-top: 2px;
  color: #64748b;
  font-size: .72rem;
  font-weight: 900;
  text-transform: uppercase;
}
body.admin-body .device-session-status {
  display: inline-flex;
  justify-content: center;
  min-width: 70px;
  padding: 6px 9px;
  border-radius: 999px;
  font-style: normal;
  font-size: .78rem;
  font-weight: 950;
}
body.admin-body .device-session-status.is-active {
  color: #166534;
  background: #dcfce7;
}
body.admin-body .device-session-status.is-muted {
  color: #64748b;
  background: #e2e8f0;
}
body.admin-body .admin-card-empty {
  padding: 18px;
  border: 2px dashed #bfdbfe;
  border-radius: 16px;
  color: #64748b;
  background: #f8fbff;
  font-weight: 900;
}
@media (max-width: 760px) {
  body.admin-body .device-session-head {
    display: block;
  }
  body.admin-body .device-session-head > strong {
    margin-top: 10px;
  }
  body.admin-body .device-session-row,
  body.admin-body .device-session-row.is-head {
    grid-template-columns: 1fr;
  }
  body.admin-body .device-session-row.is-head {
    display: none;
  }
}


/* v1.3.114 - Admin header cleanup: remove role/plan pills from the top header and keep only title + location selector. */
body.admin-body .admin-topbar {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: 18px !important;
  padding: 18px 32px !important;
}

body.admin-body .admin-brand {
  min-width: 0 !important;
}

body.admin-body .admin-brand h1 {
  font-size: clamp(30px, 2.5vw, 42px) !important;
  line-height: .96 !important;
  letter-spacing: -.055em !important;
}

body.admin-body .admin-brand p {
  margin-top: 6px !important;
  font-size: 15px !important;
  line-height: 1.2 !important;
  color: #64748b !important;
}

body.admin-body .admin-location-switcher {
  justify-self: end !important;
  margin-left: auto !important;
}

@media (max-width: 760px) {
  body.admin-body .admin-topbar {
    grid-template-columns: 1fr !important;
    padding: 16px 18px !important;
    gap: 12px !important;
  }

  body.admin-body .admin-brand h1 {
    font-size: 28px !important;
  }

  body.admin-body .admin-brand p {
    font-size: 14px !important;
  }

  body.admin-body .admin-location-switcher {
    justify-self: stretch !important;
    margin-left: 0 !important;
    width: 100% !important;
  }
}

/* v1.3.108 - POS Menu tab only: force a clean two-column item grid on tablet/desktop */
@media (min-width: 761px) {
  body.pos-body .pos-panel[data-pos-panel="menu"] .kitchen-menu-control-list {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 760px) {
  body.pos-body .pos-panel[data-pos-panel="menu"] .kitchen-menu-control-list {
    grid-template-columns: 1fr !important;
  }
}

.stripe-connect-card { grid-column: span 2; }
.stripe-action-row { display:flex; flex-wrap:wrap; gap:.65rem; margin-top:1rem; align-items:center; }
.stripe-status-list { display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap:.55rem; margin:.75rem 0; }
.stripe-status-list p { margin:0; padding:.7rem; border:1px solid rgba(15,23,42,.12); border-radius:14px; background:rgba(255,255,255,.64); }
.stripe-status-list strong.is-ready { color:#15803d; }
.stripe-status-list strong.is-warn { color:#b45309; }
.stripe-status-list strong.is-muted { color:#64748b; }
@media (max-width: 900px) {
  .stripe-connect-card { grid-column: span 1; }
  .stripe-status-list { grid-template-columns:1fr; }
}

/* v1.4.1 - Billing page clarity pass */
body.admin-body .billing-hero-head {
  align-items: center !important;
  border-color: #bfdbfe !important;
  background: linear-gradient(135deg, #ffffff 0%, #f8fbff 100%) !important;
}
body.admin-body .billing-page-kicker,
body.admin-body .billing-section-label span,
body.admin-body .billing-explain-card strong {
  display: inline-flex;
  color: #2563eb;
  font-size: .78rem;
  font-weight: 950;
  letter-spacing: .08em;
  text-transform: uppercase;
}
body.admin-body .billing-hero-head h2 {
  margin-top: 4px !important;
}
body.admin-body .billing-hero-head p {
  max-width: 880px;
  line-height: 1.35;
}
body.admin-body .billing-explain-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin: 18px 0;
}
body.admin-body .billing-explain-card {
  border: 2px solid #dbeafe;
  border-radius: 20px;
  padding: 16px;
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .05);
}
body.admin-body .billing-explain-card strong {
  color: #0f172a;
  letter-spacing: -.01em;
  text-transform: none;
  font-size: 1rem;
}
body.admin-body .billing-explain-card p {
  margin: 7px 0 0;
  color: #64748b;
  font-weight: 850;
  line-height: 1.35;
}
body.admin-body .billing-section-label {
  margin: 22px 0 10px;
  padding: 0 2px;
}
body.admin-body .billing-section-label span {
  color: #1d4ed8;
}
body.admin-body .billing-section-label p {
  margin: 5px 0 0;
  color: #64748b;
  font-weight: 850;
  line-height: 1.35;
}
body.admin-body .billing-primary-card {
  display: flex;
  flex-direction: column;
  min-height: 245px;
}
body.admin-body .billing-current-plan h3 {
  line-height: .98;
}
body.admin-body .billing-current-plan p {
  color: #64748b;
  font-weight: 850;
  line-height: 1.3;
}
body.admin-body .billing-status-line strong {
  color: #0f172a;
}
body.admin-body .stripe-connect-card {
  border-color: #bbf7d0 !important;
  background: linear-gradient(135deg, #ffffff 0%, #f0fdf4 100%) !important;
}
body.admin-body .stripe-connect-card h3 {
  font-size: clamp(1.65rem, 3vw, 2.35rem);
}
body.admin-body .stripe-status-list p {
  display: grid;
  gap: 2px;
  border: 2px solid #dcfce7;
  background: #ffffff;
  font-weight: 900;
}
body.admin-body .stripe-status-list p small {
  color: #2563eb;
  font-size: .72rem;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .05em;
}
body.admin-body .stripe-status-list strong {
  display: inline-flex;
  width: fit-content;
  margin-top: 3px;
  padding: 4px 9px;
  border-radius: 999px;
  background: #e2e8f0;
  font-size: .78rem;
  font-weight: 950;
}
body.admin-body .stripe-status-list strong.is-ready {
  color: #166534;
  background: #dcfce7;
}
body.admin-body .stripe-status-list strong.is-warn {
  color: #92400e;
  background: #fef3c7;
}
body.admin-body .stripe-status-list strong.is-muted {
  color: #475569;
  background: #e2e8f0;
}
body.admin-body .stripe-action-row .admin-primary,
body.admin-body .stripe-action-row .admin-secondary {
  min-height: 48px;
  padding-inline: 20px;
}
body.admin-body .billing-feature-grid {
  margin-top: 10px;
}
body.admin-body .billing-plan-grid {
  margin-top: 10px;
}
@media (max-width: 980px) {
  body.admin-body .billing-explain-grid {
    grid-template-columns: 1fr;
  }
}

/* v1.4.3 - Simplified Admin Billing page */
body.admin-body .billing-simple-head {
  align-items: center !important;
  border-color: #bfdbfe !important;
  background: #ffffff !important;
}

body.admin-body .billing-simple-head h2 {
  margin: 4px 0 6px !important;
  font-size: clamp(1.9rem, 3vw, 2.6rem) !important;
  letter-spacing: -.055em !important;
}

body.admin-body .billing-simple-head p {
  max-width: 900px !important;
  color: #64748b !important;
  font-weight: 850 !important;
  line-height: 1.35 !important;
}

body.admin-body .billing-simple-head p strong {
  color: #0f172a !important;
}

body.admin-body .billing-two-column {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 18px !important;
  margin-top: 18px !important;
}

body.admin-body .billing-simple-card {
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
  min-height: 0 !important;
  padding: 22px !important;
}

body.admin-body .billing-card-headline span,
body.admin-body .billing-page-kicker {
  display: inline-flex !important;
  color: #2563eb !important;
  font-size: .78rem !important;
  font-weight: 950 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}

body.admin-body .billing-card-headline h3 {
  margin: 8px 0 8px !important;
  color: #0f172a !important;
  font-size: clamp(1.7rem, 3vw, 2.45rem) !important;
  line-height: .98 !important;
  letter-spacing: -.055em !important;
}

body.admin-body .billing-card-headline p {
  margin: 0 !important;
  color: #64748b !important;
  font-weight: 850 !important;
  line-height: 1.35 !important;
}

body.admin-body .billing-plain-list {
  display: grid !important;
  gap: 8px !important;
  margin-top: auto !important;
}

body.admin-body .billing-plain-list p {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  margin: 0 !important;
  padding: 12px 14px !important;
  border: 1px solid #dbeafe !important;
  border-radius: 14px !important;
  background: #f8fbff !important;
  color: #64748b !important;
  font-weight: 900 !important;
}

body.admin-body .billing-plain-list p strong {
  color: #0f172a !important;
}

body.admin-body .billing-plain-list p span {
  color: #334155 !important;
  font-weight: 950 !important;
  text-align: right !important;
}

body.admin-body .billing-main-actions {
  margin-top: 0 !important;
}

body.admin-body .billing-main-actions .admin-primary,
body.admin-body .billing-main-actions .admin-secondary {
  min-height: 46px !important;
  padding: 12px 18px !important;
  font-size: .95rem !important;
}

body.admin-body .stripe-connect-card {
  grid-column: auto !important;
  border-color: #bbf7d0 !important;
  background: linear-gradient(135deg, #ffffff 0%, #f0fdf4 100%) !important;
}

body.admin-body .simple-status-list {
  grid-template-columns: 1fr !important;
  gap: 8px !important;
  margin: 0 !important;
}

body.admin-body .simple-status-list p {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  padding: 12px 14px !important;
  border: 1px solid #bbf7d0 !important;
  border-radius: 14px !important;
  background: #ffffff !important;
}

body.admin-body .simple-status-list p small {
  color: #0f172a !important;
  font-size: .9rem !important;
  font-weight: 950 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

body.admin-body .simple-status-list strong {
  flex: 0 0 auto !important;
  margin-top: 0 !important;
}

body.admin-body .billing-device-card {
  margin-top: 18px !important;
}

body.admin-body .billing-explain-grid,
body.admin-body .billing-section-label,
body.admin-body .billing-feature-grid,
body.admin-body .billing-plan-grid {
  display: none !important;
}

@media (max-width: 980px) {
  body.admin-body .billing-two-column {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 760px) {
  body.admin-body .billing-simple-card {
    padding: 18px !important;
  }
  body.admin-body .billing-plain-list p,
  body.admin-body .simple-status-list p {
    align-items: flex-start !important;
    flex-direction: column !important;
    gap: 5px !important;
  }
}

/* v1.4.4 - Billing header account button alignment */
body.admin-body .billing-simple-head > a.admin-primary {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  align-self: center !important;
  min-height: 56px !important;
  line-height: 1 !important;
  text-align: center !important;
  text-decoration: none !important;
  padding: 0 28px !important;
}

@media (max-width: 900px) {
  body.admin-body .billing-simple-head > a.admin-primary {
    width: 100% !important;
    min-height: 52px !important;
  }
}


/* v1.4.6 - Billing header action and removed admin stat tiles */
body.admin-body .admin-shell {
  padding-top: 28px !important;
}
body.admin-body .billing-simple-head {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 20px !important;
}
body.admin-body .billing-header-action {
  flex: 0 0 auto !important;
  align-self: center !important;
  min-height: 54px !important;
  padding: 0 28px !important;
  border-radius: 18px !important;
  font-size: 1rem !important;
  white-space: nowrap !important;
}
@media (max-width: 760px) {
  body.admin-body .billing-simple-head {
    align-items: stretch !important;
    flex-direction: column !important;
  }
  body.admin-body .billing-header-action {
    width: 100% !important;
  }
}

/* Admin Settings layout polish - v1.4.8 */
body.admin-body .settings-layout-v2 { max-width: 100%; }
body.admin-body .settings-grid.settings-grid-v2 {
  display: grid;
  grid-template-columns: minmax(280px, 0.9fr) minmax(520px, 1.6fr);
  grid-template-areas:
    "restaurant account"
    "checkout account";
  gap: 18px;
  align-items: stretch;
}
body.admin-body .settings-card-restaurant { grid-area: restaurant; }
body.admin-body .settings-card-checkout { grid-area: checkout; }
body.admin-body .settings-card-account { grid-area: account; }
body.admin-body .settings-grid-v2 .settings-card {
  min-height: 0;
  align-self: stretch;
}
body.admin-body .settings-card-headline {
  display: grid;
  gap: 4px;
  margin-bottom: 2px;
}
body.admin-body .settings-card-headline span {
  color: var(--primary-700);
  font-size: 13px;
  font-weight: 1000;
  letter-spacing: .14em;
  text-transform: uppercase;
}
body.admin-body .settings-card-headline h3 {
  margin: 0;
}
body.admin-body .settings-card select {
  width: 100%;
  border: 2px solid #e2e8f0;
  border-radius: 18px;
  padding: 15px 16px;
  font: inherit;
  font-weight: 850;
  outline: none;
  background: white;
  color: #0f172a;
}
body.admin-body .settings-card input:focus,
body.admin-body .settings-card select:focus {
  border-color: var(--primary-300);
  box-shadow: 0 0 0 4px rgba(var(--primary-500-rgb), .12);
}
body.admin-body .account-settings-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 16px;
  align-items: start;
}
body.admin-body .account-settings-grid .account-pin-field {
  grid-column: 1 / 2;
}
body.admin-body .settings-account-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 2px;
  padding-top: 4px;
}
body.admin-body .settings-account-footer .settings-note {
  max-width: 560px;
}
body.admin-body .settings-checks-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}
body.admin-body .settings-checks-row label {
  min-height: 58px;
  width: 100%;
  justify-content: flex-start;
  gap: 14px;
}
body.admin-body .settings-actions.settings-actions-v2 {
  justify-content: flex-end;
  margin-top: 0;
}
body.admin-body .settings-actions-v2 .admin-primary {
  min-width: 220px;
}
@media (max-width: 1180px) {
  body.admin-body .settings-grid.settings-grid-v2 {
    grid-template-columns: 1fr;
    grid-template-areas:
      "restaurant"
      "checkout"
      "account";
  }
}
@media (max-width: 760px) {
  body.admin-body .account-settings-grid,
  body.admin-body .settings-checks-row {
    grid-template-columns: 1fr;
  }
  body.admin-body .account-settings-grid .account-pin-field {
    grid-column: auto;
  }
  body.admin-body .settings-account-footer {
    align-items: stretch;
    flex-direction: column;
  }
  body.admin-body .settings-actions-v2 .admin-primary {
    width: 100%;
  }
}

/* v1.4.9 - Settings account card divided into Owner Info / Password / PIN */
body.admin-body .settings-card-account-v3 {
  display: flex;
  flex-direction: column;
  gap: 18px;
}
body.admin-body .settings-card-account-v3 > .settings-card-headline {
  margin-bottom: 0;
}
body.admin-body .account-section {
  border: 2px solid #e5efff;
  border-radius: 22px;
  background: linear-gradient(135deg, #ffffff 0%, #f8fbff 100%);
  padding: 18px;
}
body.admin-body .account-section-title {
  display: grid;
  gap: 2px;
  margin-bottom: 14px;
}
body.admin-body .account-section-title span {
  color: var(--primary-700);
  font-size: 12px;
  font-weight: 1000;
  letter-spacing: .14em;
  text-transform: uppercase;
}
body.admin-body .account-section-title h4 {
  margin: 0;
  color: #0f172a;
  font-size: 1.22rem;
  font-weight: 1000;
  letter-spacing: -.04em;
}
body.admin-body .settings-card-account-v3 .account-settings-grid {
  gap: 14px 16px;
}
body.admin-body .settings-card-account-v3 .account-pin-grid {
  grid-template-columns: minmax(260px, .5fr) minmax(0, 1fr);
}
body.admin-body .settings-card-account-v3 .account-pin-field {
  grid-column: 1 / 2;
}
body.admin-body .account-section-note {
  margin: 12px 0 0;
  max-width: none;
}
body.admin-body .settings-card-account-v3 .settings-account-footer {
  justify-content: flex-end;
  margin-top: auto;
  padding-top: 0;
}
@media (max-width: 760px) {
  body.admin-body .account-section {
    padding: 15px;
  }
  body.admin-body .settings-card-account-v3 .account-pin-grid {
    grid-template-columns: 1fr;
  }
  body.admin-body .settings-card-account-v3 .account-pin-field {
    grid-column: auto;
  }
}

/* v1.5.1 staff team cards cleanup */
body.admin-body .admin-staff-grid {
  grid-template-columns: repeat(auto-fit, minmax(360px, 1fr)) !important;
  gap: 16px !important;
}

body.admin-body .admin-staff-compact-card.admin-staff-pro-card {
  padding: 16px !important;
  border-radius: 22px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
  min-height: 168px !important;
}

body.admin-body .admin-staff-pro-top {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) auto;
  gap: 14px;
  align-items: start;
}

body.admin-body .admin-staff-pro-card .admin-staff-avatar {
  width: 54px;
  height: 54px;
  border-radius: 18px;
  font-size: 1rem;
  letter-spacing: -0.02em;
}

body.admin-body .admin-staff-pro-copy {
  min-width: 0;
}

body.admin-body .admin-staff-pro-copy h3 {
  margin: 1px 0 7px;
  font-size: 1.08rem !important;
  line-height: 1.12 !important;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
}

body.admin-body .admin-staff-pro-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  align-items: center;
}

body.admin-body .admin-staff-pro-meta span,
body.admin-body .admin-staff-pro-details span {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 6px 10px;
  border-radius: 999px;
  background: #f1f5f9;
  border: 1px solid #dbeafe;
  color: #334155;
  font-size: 0.78rem;
  font-weight: 950;
  line-height: 1;
}

body.admin-body .admin-staff-pro-card .admin-staff-wage {
  align-self: start;
  padding: 9px 12px !important;
  border-radius: 999px !important;
  font-size: 0.84rem !important;
}

body.admin-body .admin-staff-pro-details {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-left: 68px;
}

body.admin-body .admin-staff-actions {
  margin-top: auto !important;
  margin-left: 68px !important;
  display: flex !important;
  gap: 10px !important;
  align-items: center !important;
  justify-content: flex-start !important;
}

body.admin-body .admin-staff-actions .admin-small-btn {
  min-height: 40px !important;
  padding: 10px 16px !important;
  border-radius: 13px !important;
  font-size: 0.9rem !important;
}

@media (max-width: 900px) {
  body.admin-body .admin-staff-grid {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 560px) {
  body.admin-body .admin-staff-pro-top {
    grid-template-columns: 46px minmax(0, 1fr);
  }
  body.admin-body .admin-staff-pro-card .admin-staff-avatar {
    width: 46px;
    height: 46px;
    border-radius: 16px;
  }
  body.admin-body .admin-staff-pro-card .admin-staff-wage {
    grid-column: 2;
    justify-self: start;
  }
  body.admin-body .admin-staff-pro-details,
  body.admin-body .admin-staff-actions {
    margin-left: 0 !important;
  }
  body.admin-body .admin-staff-actions .admin-small-btn {
    flex: 1 1 0;
  }
}

/* v1.7.0 - Kiosk product cards: move Add + button to the right side of the card */
body.kiosk-body .product-card {
  position: relative !important;
  padding-right: clamp(86px, 8vw, 112px) !important;
}

body.kiosk-body .product-card .product-footer {
  justify-content: flex-start !important;
  padding-right: 0 !important;
}

body.kiosk-body .product-card .add-chip {
  position: absolute !important;
  top: 50% !important;
  right: clamp(12px, 1.2vw, 18px) !important;
  transform: translateY(-50%) !important;
  min-width: clamp(62px, 6vw, 78px) !important;
  min-height: clamp(62px, 6vw, 78px) !important;
  padding: 10px 12px !important;
  border-radius: 22px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  line-height: 1.05 !important;
  box-shadow: 0 12px 22px rgba(17, 24, 39, .18) !important;
}

@media (max-width: 760px) {
  body.kiosk-body .product-card {
    padding-right: 88px !important;
  }

  body.kiosk-body .product-card .add-chip {
    right: 12px !important;
    min-width: 62px !important;
    min-height: 62px !important;
    border-radius: 20px !important;
    font-size: 15px !important;
  }
}


/* v1.7.1 - Kiosk card Add + button anchored to the right edge */
.kiosk-shell .product-card,
body.kiosk-body .product-card {
  position: relative !important;
  padding-right: clamp(96px, 8vw, 124px) !important;
}

.kiosk-shell .product-card .product-footer,
body.kiosk-body .product-card .product-footer {
  justify-content: flex-start !important;
  gap: 0 !important;
  padding-right: 0 !important;
}

.kiosk-shell .product-card .add-chip,
body.kiosk-body .product-card .add-chip {
  position: absolute !important;
  right: clamp(16px, 1.4vw, 22px) !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  min-width: clamp(74px, 6.6vw, 92px) !important;
  min-height: clamp(58px, 5.3vw, 76px) !important;
  padding: 10px 14px !important;
  border-radius: 999px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  line-height: 1.05 !important;
  z-index: 3 !important;
}

@media (max-width: 760px) {
  .kiosk-shell .product-card,
  body.kiosk-body .product-card {
    padding-right: 94px !important;
  }

  .kiosk-shell .product-card .add-chip,
  body.kiosk-body .product-card .add-chip {
    right: 14px !important;
    min-width: 68px !important;
    min-height: 58px !important;
    font-size: 15px !important;
  }
}

/* v1.7.2 - Kiosk product cards: keep Add + inline to the right of the price */
.kiosk-shell .product-card,
body.kiosk-body .product-card {
  position: relative !important;
  padding: 18px !important;
}

.kiosk-shell .product-card .product-footer,
body.kiosk-body .product-card .product-footer {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  width: 100% !important;
  margin-top: auto !important;
  padding-right: 0 !important;
}

.kiosk-shell .product-card .product-price,
body.kiosk-body .product-card .product-price {
  flex: 0 0 auto !important;
}

.kiosk-shell .product-card .add-chip,
body.kiosk-body .product-card .add-chip {
  position: static !important;
  right: auto !important;
  top: auto !important;
  transform: none !important;
  z-index: auto !important;
  flex: 0 0 auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  padding: 12px 17px !important;
  border-radius: 999px !important;
  font-size: clamp(16px, 1.05vw, 18px) !important;
  line-height: 1 !important;
  box-shadow: none !important;
}

@media (max-width: 760px) {
  .kiosk-shell .product-card,
  body.kiosk-body .product-card {
    padding: 18px !important;
  }

  .kiosk-shell .product-card .add-chip,
  body.kiosk-body .product-card .add-chip {
    font-size: 15px !important;
    padding: 11px 15px !important;
  }
}

/* Admin menu item category sections + drag sorting */
.admin-menu-sections {
  display: grid;
  gap: 22px;
}
.admin-menu-category-section {
  border: 2px solid var(--primary-100);
  border-radius: 32px;
  background: rgba(255,255,255,.72);
  box-shadow: 0 18px 44px rgba(15,23,42,.08);
  padding: 16px;
}
.admin-menu-category-section.is-inactive {
  opacity: .66;
}
.admin-menu-category-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
  padding: 4px 4px 0;
}
.admin-menu-category-head > div {
  display: flex;
  align-items: center;
  gap: 12px;
}
.admin-menu-category-head span {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border-radius: 18px;
  background: var(--primary-100);
  font-size: 26px;
}
.admin-menu-category-head h3 {
  margin: 0;
  color: #0f172a;
  font-size: 30px;
  line-height: 1;
  letter-spacing: -0.06em;
  font-weight: 1000;
}
.admin-menu-category-head em {
  font-style: normal;
  color: #64748b;
  font-weight: 1000;
}
.admin-menu-sort-zone {
  min-height: 96px;
  border-radius: 24px;
  transition: background .16s ease, box-shadow .16s ease;
}
.admin-menu-sort-zone.is-drag-over {
  background: var(--primary-50);
  box-shadow: inset 0 0 0 3px var(--primary-300);
}
.admin-menu-item-card {
  position: relative;
  cursor: grab;
  transition: transform .16s ease, box-shadow .16s ease, opacity .16s ease;
}
.admin-menu-item-card:active {
  cursor: grabbing;
}
.admin-menu-item-card.is-dragging {
  opacity: .46;
  transform: scale(.985);
  box-shadow: 0 12px 30px rgba(15,23,42,.14);
}
.admin-drag-handle {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  background: rgba(15,23,42,.82);
  color: #fff;
  font-size: 20px;
  line-height: 1;
  font-weight: 1000;
  letter-spacing: -0.25em;
  box-shadow: 0 10px 22px rgba(15,23,42,.22);
  pointer-events: none;
}
.admin-empty-drop {
  min-height: 92px;
  display: grid;
  place-items: center;
  border: 2px dashed var(--primary-200);
  border-radius: 24px;
  background: #fff;
  color: #64748b;
  font-weight: 1000;
  text-align: center;
  padding: 18px;
}
@media (max-width: 760px) {
  .admin-menu-category-section { padding: 12px; border-radius: 26px; }
  .admin-menu-category-head { align-items: flex-start; flex-direction: column; }
  .admin-menu-category-head h3 { font-size: 24px; }
}

/* Admin modifiers page: one-column lists with card actions floated right */
body.admin-body .admin-modifiers-panel .admin-modifier-list {
  grid-template-columns: 1fr;
  gap: 14px;
}

body.admin-body .admin-modifiers-panel .admin-modifier-row-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  min-height: 116px;
}

body.admin-body .admin-modifiers-panel .admin-modifier-row-content {
  min-width: 0;
}

body.admin-body .admin-modifiers-panel .admin-modifier-row-card .admin-card-top {
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
}

body.admin-body .admin-modifiers-panel .admin-modifier-row-card .admin-card-top h3 {
  min-width: 0;
}

body.admin-body .admin-modifiers-panel .admin-modifier-row-card .admin-card-top .admin-chip {
  flex: 0 0 auto;
}

body.admin-body .admin-modifiers-panel .admin-row-actions {
  justify-content: flex-end;
  margin-top: 0;
  flex-wrap: nowrap;
}

@media (max-width: 720px) {
  body.admin-body .admin-modifiers-panel .admin-modifier-row-card {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  body.admin-body .admin-modifiers-panel .admin-row-actions {
    justify-content: flex-start;
    margin-top: 4px;
  }
}

/* v1.7.4 - Keep every menu/product photo contained in a true square */
.product-image,
.online-product-image,
.pos-product-image,
.admin-item-preview,
.admin-upload-preview,
.online-item-modal-image,
.lobby-photo,
.lobby-photo-card,
.lobby-menu-photo,
.lobby-tv-photo,
.lobby-tv-menu-photo {
  aspect-ratio: 1 / 1 !important;
  overflow: hidden !important;
  display: grid !important;
  place-items: center !important;
}

.product-image,
.online-product-image,
.pos-product-image {
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  flex: 0 0 auto !important;
  align-self: start !important;
}

.product-image img,
.online-product-image img,
.pos-product-image img,
.admin-item-preview img,
.admin-upload-preview img,
.online-item-modal-image img,
.lobby-photo img,
.lobby-photo-card img,
.lobby-menu-photo img,
.lobby-tv-photo img,
.lobby-tv-menu-photo img {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  display: block !important;
  object-fit: cover !important;
  object-position: center center !important;
}

.pos-product-card {
  align-items: start !important;
}

.pos-product-image {
  inline-size: 100% !important;
  block-size: auto !important;
}

.online-item-modal-image {
  width: min(100%, 360px) !important;
  min-height: 0 !important;
}

@media (max-width: 760px) {
  .product-image,
  .online-product-image,
  .pos-product-image {
    height: auto !important;
    min-height: 0 !important;
    flex-basis: auto !important;
  }
}

/* v1.7.5 - Keep Add buttons inside product cards on kiosk/POS */
body.kiosk-body .product-card,
.kiosk-shell .product-card {
  display: grid !important;
  grid-template-columns: clamp(92px, 8.5vw, 124px) minmax(0, 1fr) !important;
  grid-template-rows: auto minmax(0, 1fr) auto !important;
  column-gap: clamp(12px, 1.2vw, 18px) !important;
  row-gap: 8px !important;
  align-items: stretch !important;
  min-height: clamp(154px, 13vw, 188px) !important;
  padding: clamp(12px, 1.2vw, 16px) !important;
  overflow: hidden !important;
}

body.kiosk-body .product-card .product-image,
.kiosk-shell .product-card .product-image {
  grid-column: 1 !important;
  grid-row: 1 / 4 !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1 / 1 !important;
  align-self: center !important;
  min-height: 0 !important;
  max-height: none !important;
}

body.kiosk-body .product-card .product-topline,
.kiosk-shell .product-card .product-topline {
  grid-column: 2 !important;
  grid-row: 1 !important;
  min-width: 0 !important;
}

body.kiosk-body .product-card .product-name,
.kiosk-shell .product-card .product-name {
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

body.kiosk-body .product-card .product-desc,
.kiosk-shell .product-card .product-desc {
  grid-column: 2 !important;
  grid-row: 2 !important;
  min-width: 0 !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
  margin: 0 !important;
}

body.kiosk-body .product-card .product-footer,
.kiosk-shell .product-card .product-footer {
  grid-column: 2 !important;
  grid-row: 3 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  align-self: end !important;
}

body.kiosk-body .product-card .add-chip,
.kiosk-shell .product-card .add-chip {
  position: static !important;
  transform: none !important;
  flex: 0 0 auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  padding: 11px 17px !important;
  border-radius: 999px !important;
  font-size: clamp(15px, 1.05vw, 18px) !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

body.pos-body .pos-product-card {
  grid-template-columns: clamp(86px, 8vw, 116px) minmax(0, 1fr) !important;
  align-items: stretch !important;
  min-height: clamp(138px, 13vw, 168px) !important;
  overflow: hidden !important;
}

body.pos-body .pos-product-image {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1 / 1 !important;
  align-self: center !important;
  min-height: 0 !important;
}

body.pos-body .pos-product-info {
  min-width: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  overflow: hidden !important;
}

body.pos-body .pos-product-info h3 {
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

body.pos-body .pos-product-info p {
  display: -webkit-box !important;
  -webkit-line-clamp: 1 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: normal !important;
  margin-bottom: 8px !important;
}

body.pos-body .pos-product-info > div {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 10px !important;
  width: 100% !important;
  min-width: 0 !important;
  margin-top: auto !important;
}

body.pos-body .pos-product-info > div span {
  flex: 0 0 auto !important;
  white-space: nowrap !important;
  border-radius: 999px !important;
  padding: 10px 15px !important;
  line-height: 1 !important;
}

/* v1.7.7 - Restore POS product cards: full cards, square images, one-line descriptions, contained Add button */
body.pos-body:not(.pos-mobile-body) .pos-product-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 16px !important;
  align-content: start !important;
}

body.pos-body:not(.pos-mobile-body) .pos-product-card {
  display: grid !important;
  grid-template-columns: clamp(104px, 9vw, 132px) minmax(0, 1fr) !important;
  gap: 16px !important;
  align-items: stretch !important;
  min-height: clamp(154px, 12vw, 176px) !important;
  padding: 14px !important;
  overflow: hidden !important;
}

body.pos-body:not(.pos-mobile-body) .pos-product-image {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1 / 1 !important;
  align-self: center !important;
  border-radius: 18px !important;
  overflow: hidden !important;
}

body.pos-body:not(.pos-mobile-body) .pos-product-image img {
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  object-fit: cover !important;
  object-position: center center !important;
}

body.pos-body:not(.pos-mobile-body) .pos-product-info {
  min-width: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  overflow: hidden !important;
  padding: 2px 0 !important;
}

body.pos-body:not(.pos-mobile-body) .pos-product-info h3 {
  margin: 0 0 6px !important;
  font-size: clamp(24px, 2.35vw, 35px) !important;
  line-height: .95 !important;
  letter-spacing: -.055em !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

body.pos-body:not(.pos-mobile-body) .pos-product-info p {
  margin: 0 !important;
  color: #475569 !important;
  font-size: clamp(15px, 1.35vw, 21px) !important;
  line-height: 1.05 !important;
  font-weight: 850 !important;
  display: block !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

body.pos-body:not(.pos-mobile-body) .pos-product-info > div {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  width: 100% !important;
  min-width: 0 !important;
  margin-top: auto !important;
  padding-top: 8px !important;
}

body.pos-body:not(.pos-mobile-body) .pos-product-info strong {
  min-width: 0 !important;
  color: var(--primary-800) !important;
  font-size: clamp(23px, 2vw, 33px) !important;
  line-height: 1 !important;
  font-weight: 1000 !important;
  white-space: nowrap !important;
}

body.pos-body:not(.pos-mobile-body) .pos-product-info span {
  flex: 0 0 auto !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 74px !important;
  min-height: 48px !important;
  padding: 10px 16px !important;
  border-radius: 999px !important;
  background: #111827 !important;
  color: #fff !important;
  font-size: clamp(15px, 1.2vw, 19px) !important;
  font-weight: 1000 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

@media (max-width: 980px) {
  body.pos-body:not(.pos-mobile-body) .pos-product-grid {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 760px) {
  body.pos-body .pos-product-grid {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  body.pos-body .pos-product-card {
    display: grid !important;
    grid-template-columns: 86px minmax(0, 1fr) !important;
    gap: 10px !important;
    min-height: 118px !important;
    padding: 10px !important;
    overflow: hidden !important;
  }

  body.pos-body .pos-product-image {
    width: 86px !important;
    height: 86px !important;
    aspect-ratio: 1 / 1 !important;
    align-self: center !important;
  }

  body.pos-body .pos-product-info {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    min-width: 0 !important;
  }

  body.pos-body .pos-product-info h3 {
    margin: 0 0 4px !important;
    font-size: 20px !important;
    line-height: .98 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
  }

  body.pos-body .pos-product-info p {
    margin: 0 !important;
    font-size: 13px !important;
    line-height: 1.05 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    display: block !important;
  }

  body.pos-body .pos-product-info > div {
    margin-top: auto !important;
    padding-top: 6px !important;
  }
}

/* v1.5.2 - POS product card font sizing fix */
body.pos-body:not(.pos-mobile-body) .pos-product-card {
  min-height: 132px !important;
  padding: 11px !important;
  gap: 12px !important;
  grid-template-columns: 104px minmax(0, 1fr) !important;
  overflow: hidden !important;
}

body.pos-body:not(.pos-mobile-body) .pos-product-image {
  width: 125px !important;
  height: 125px !important;
  max-width: 100% !important;
  max-height: 100% !important;
  aspect-ratio: 1 / 1 !important;
  align-self: center !important;
  border-radius: 18px !important;
}

body.pos-body:not(.pos-mobile-body) .pos-product-info {
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  min-width: 0 !important;
  overflow: hidden !important;
}

body.pos-body:not(.pos-mobile-body) .pos-product-info h3 {
  margin: 0 0 4px !important;
  font-size: clamp(19px, 1.75vw, 25px) !important;
  line-height: .98 !important;
  letter-spacing: -.045em !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

body.pos-body:not(.pos-mobile-body) .pos-product-info p {
  margin: 0 !important;
  font-size: clamp(12px, 1.05vw, 15px) !important;
  line-height: 1.08 !important;
  font-weight: 800 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  display: block !important;
}

body.pos-body:not(.pos-mobile-body) .pos-product-info > div {
  margin-top: auto !important;
  padding-top: 5px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 10px !important;
}

body.pos-body:not(.pos-mobile-body) .pos-product-info strong {
  font-size: clamp(19px, 1.55vw, 25px) !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

body.pos-body:not(.pos-mobile-body) .pos-product-info span {
  min-width: 64px !important;
  min-height: 39px !important;
  padding: 8px 12px !important;
  font-size: clamp(12px, 1vw, 15px) !important;
  line-height: 1 !important;
}

@media (min-width: 761px) and (max-width: 1180px) {
  body.pos-body:not(.pos-mobile-body) .pos-product-card {
    min-height: 124px !important;
    grid-template-columns: 92px minmax(0, 1fr) !important;
    padding: 10px !important;
    gap: 10px !important;
  }

  body.pos-body:not(.pos-mobile-body) .pos-product-image {
    width: 92px !important;
    height: 92px !important;
  }

  body.pos-body:not(.pos-mobile-body) .pos-product-info h3 {
    font-size: clamp(18px, 2.05vw, 23px) !important;
  }

  body.pos-body:not(.pos-mobile-body) .pos-product-info p {
    font-size: clamp(12px, 1.35vw, 14px) !important;
  }

  body.pos-body:not(.pos-mobile-body) .pos-product-info strong {
    font-size: clamp(18px, 1.9vw, 23px) !important;
  }

  body.pos-body:not(.pos-mobile-body) .pos-product-info span {
    min-height: 36px !important;
    min-width: 60px !important;
    padding: 7px 11px !important;
    font-size: clamp(12px, 1.2vw, 14px) !important;
  }
}


/* v1.7.9 - Kiosk image-first cards: price pinned flush to top-right corner */
body.kiosk-body .product-grid,
.kiosk-shell .product-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: clamp(16px, 1.8vw, 22px) !important;
  align-items: stretch !important;
}

body.kiosk-body .product-card,
.kiosk-shell .product-card {
  position: relative !important;
  display: block !important;
  min-height: clamp(268px, 27vw, 330px) !important;
  height: clamp(268px, 27vw, 330px) !important;
  padding: 0 !important;
  border-radius: 18px !important;
  overflow: hidden !important;
  background: #111827 !important;
  border: 3px solid rgba(17, 24, 39, .78) !important;
  box-shadow: 0 12px 26px rgba(17, 24, 39, .16) !important;
}

body.kiosk-body .product-card .product-image,
.kiosk-shell .product-card .product-image {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: auto !important;
  border-radius: 0 !important;
  min-height: 0 !important;
  max-height: none !important;
  background: linear-gradient(135deg, var(--primary-300), var(--primary-700)) !important;
}

body.kiosk-body .product-card .product-image img,
.kiosk-shell .product-card .product-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  display: block !important;
}

body.kiosk-body .product-card .product-topline,
.kiosk-shell .product-card .product-topline {
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  z-index: 2 !important;
  display: block !important;
  min-width: 0 !important;
  padding: 13px 16px 15px !important;
  background: linear-gradient(180deg, rgba(17, 24, 39, .72), rgba(17, 24, 39, .94)) !important;
}

body.kiosk-body .product-card .product-name,
.kiosk-shell .product-card .product-name {
  color: #fff !important;
  font-size: clamp(17px, 1.85vw, 25px) !important;
  line-height: 1.16 !important;
  letter-spacing: -.025em !important;
  font-weight: 1000 !important;
  text-shadow: 0 2px 10px rgba(0, 0, 0, .36) !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

body.kiosk-body .product-card .product-desc,
.kiosk-shell .product-card .product-desc,
body.kiosk-body .product-card .add-chip,
.kiosk-shell .product-card .add-chip {
  display: none !important;
}

body.kiosk-body .product-card .product-footer,
.kiosk-shell .product-card .product-footer {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  z-index: 3 !important;
  display: block !important;
  width: auto !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.kiosk-body .product-card .product-price,
.kiosk-shell .product-card .product-price {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: #fff !important;
  background: rgba(17, 24, 39, .92) !important;
  border: 1px solid rgba(255, 255, 255, .18) !important;
  border-radius: 0 0 0 14px !important;
  padding: 8px 13px !important;
  font-size: clamp(17px, 1.65vw, 23px) !important;
  line-height: 1 !important;
  font-weight: 1000 !important;
  box-shadow: 0 8px 18px rgba(0, 0, 0, .18) !important;
}

body.kiosk-body .product-card .product-badge,
.kiosk-shell .product-card .product-badge {
  position: absolute !important;
  top: -999px !important;
  left: -999px !important;
}

@media (min-width: 900px) and (max-width: 1180px) {
  body.kiosk-body .product-grid,
  .kiosk-shell .product-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 899px) and (min-width: 641px) {
  body.kiosk-body .product-grid,
  .kiosk-shell .product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 640px) {
  body.kiosk-body .product-grid,
  .kiosk-shell .product-grid {
    grid-template-columns: 1fr !important;
  }

  body.kiosk-body .product-card,
  .kiosk-shell .product-card {
    height: 260px !important;
    min-height: 260px !important;
  }
}

/* Admin categories page: two-column row cards matching modifiers layout */
body.admin-body .admin-category-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

body.admin-body .admin-category-row-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  min-height: 116px;
}

body.admin-body .admin-category-row-content {
  min-width: 0;
}

body.admin-body .admin-category-row-card .admin-card-top {
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
}

body.admin-body .admin-category-row-card .admin-card-top h3 {
  min-width: 0;
}

body.admin-body .admin-category-row-card .admin-card-top .admin-chip {
  flex: 0 0 auto;
}

body.admin-body .admin-category-row-card .admin-row-actions {
  justify-content: flex-end;
  margin-top: 0;
  flex-wrap: nowrap;
}

@media (max-width: 980px) {
  body.admin-body .admin-category-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  body.admin-body .admin-category-row-card {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  body.admin-body .admin-category-row-card .admin-row-actions {
    justify-content: flex-start;
    margin-top: 4px;
  }
}

/* Admin menu items: polished 2-column horizontal grid cards */
body.admin-body .admin-item-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

body.admin-body .admin-menu-item-card {
  display: grid;
  grid-template-columns: 138px minmax(0, 1fr);
  gap: 16px;
  align-items: stretch;
  min-height: 206px;
  padding: 14px;
  border-color: rgba(var(--primary-500-rgb), .22);
  box-shadow: 0 16px 34px rgba(15, 23, 42, .075);
}

body.admin-body .admin-menu-item-card:hover {
  transform: translateY(-1px);
  box-shadow: 0 20px 42px rgba(15, 23, 42, .105);
}

body.admin-body .admin-menu-item-media {
  min-width: 0;
}

body.admin-body .admin-menu-item-card .admin-item-preview {
  width: 100%;
  height: auto;
  min-height: 138px;
  margin: 0;
  border-radius: 22px;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.45);
}

body.admin-body .admin-menu-item-content {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 10px;
  padding-right: 2px;
}

body.admin-body .admin-menu-item-card .admin-card-top {
  align-items: flex-start;
  gap: 10px;
  padding-right: 36px;
}

body.admin-body .admin-menu-item-card .admin-card-top h3 {
  font-size: 20px;
  line-height: 1.05;
  letter-spacing: -0.055em;
}

body.admin-body .admin-menu-item-card .admin-card-top p {
  margin-top: 5px;
  font-size: 12px;
  line-height: 1.15;
  color: var(--primary-700) !important;
}

body.admin-body .admin-menu-item-card .admin-chip {
  padding: 5px 8px;
  font-size: 11px;
}

body.admin-body .admin-menu-item-description,
body.admin-body .admin-menu-item-modifiers {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin-top: 8px;
  font-size: 12px;
  line-height: 1.25;
}

body.admin-body .admin-menu-item-description {
  -webkit-line-clamp: 2;
}

body.admin-body .admin-menu-item-modifiers {
  -webkit-line-clamp: 2;
}

body.admin-body .admin-menu-item-footer {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  margin-top: 4px;
}

body.admin-body .admin-menu-item-card .admin-price {
  margin: 0;
  font-size: 25px;
  line-height: 1;
  color: var(--primary-800) !important;
}

body.admin-body .admin-menu-item-card .admin-card-actions {
  margin: 0;
  gap: 8px;
  flex-wrap: nowrap;
  justify-content: flex-end;
}

body.admin-body .admin-menu-item-card .admin-small-btn {
  border-radius: 13px;
  padding: 10px 12px;
  font-size: 13px;
  line-height: 1;
}

body.admin-body .admin-menu-item-card .admin-drag-handle {
  top: 12px;
  right: 12px;
  width: 34px;
  height: 34px;
  border-radius: 13px;
  font-size: 17px;
}

@media (max-width: 1180px) {
  body.admin-body .admin-item-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  body.admin-body .admin-menu-item-card {
    grid-template-columns: 112px minmax(0, 1fr);
    min-height: 174px;
    gap: 12px;
    padding: 12px;
    border-radius: 24px;
  }

  body.admin-body .admin-menu-item-card .admin-item-preview {
    min-height: 112px;
    border-radius: 18px;
  }

  body.admin-body .admin-menu-item-footer {
    align-items: flex-start;
    flex-direction: column;
    gap: 8px;
  }

  body.admin-body .admin-menu-item-card .admin-price {
    font-size: 22px;
  }
}

@media (max-width: 520px) {
  body.admin-body .admin-menu-item-card {
    grid-template-columns: 1fr;
  }

  body.admin-body .admin-menu-item-card .admin-item-preview {
    min-height: 0;
  }
}


/* v1.5.4 - Staff Team cards 2-column polish */
body.admin-body .admin-staff-team-panel .admin-staff-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 16px !important;
  align-items: stretch !important;
}

body.admin-body .admin-team-card.admin-staff-pro-card {
  position: relative !important;
  min-height: 190px !important;
  padding: 18px !important;
  border-radius: 24px !important;
  background: linear-gradient(135deg, #ffffff 0%, #f8fbff 100%) !important;
  border: 2px solid #dbeafe !important;
  box-shadow: 0 18px 40px rgba(15, 23, 42, 0.06) !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 14px !important;
  overflow: hidden !important;
}

body.admin-body .admin-team-card.admin-staff-pro-card::before {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 6px;
  background: linear-gradient(180deg, #2563eb, #06b6d4);
  opacity: .95;
}

body.admin-body .admin-team-card.is-inactive::before {
  background: linear-gradient(180deg, #94a3b8, #64748b);
}

body.admin-body .admin-team-card-main {
  display: grid !important;
  grid-template-columns: 58px minmax(0, 1fr) !important;
  gap: 14px !important;
  align-items: start !important;
}

body.admin-body .admin-team-avatar.admin-staff-avatar {
  width: 58px !important;
  height: 58px !important;
  border-radius: 20px !important;
  font-size: 1.05rem !important;
  box-shadow: 0 12px 24px rgba(15, 23, 42, 0.14), inset 0 -10px 18px rgba(15, 23, 42, 0.18) !important;
}

body.admin-body .admin-team-copy {
  min-width: 0 !important;
}

body.admin-body .admin-team-title-row {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 12px !important;
  min-width: 0 !important;
}

body.admin-body .admin-team-title-row h3 {
  margin: 0 !important;
  color: #0f172a !important;
  font-size: 1.18rem !important;
  line-height: 1.08 !important;
  letter-spacing: -.04em !important;
  white-space: normal !important;
  overflow: visible !important;
}

body.admin-body .admin-team-title-row .admin-staff-wage {
  flex: 0 0 auto !important;
  margin: 0 !important;
  padding: 8px 11px !important;
  border-radius: 999px !important;
  background: #e8f2ff !important;
  color: #0b4fb3 !important;
  font-size: .84rem !important;
  font-weight: 1000 !important;
}

body.admin-body .admin-team-meta {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 7px !important;
  margin-top: 9px !important;
}

body.admin-body .admin-team-meta span {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 28px !important;
  padding: 6px 10px !important;
  border-radius: 999px !important;
  background: #eff6ff !important;
  border: 1px solid #dbeafe !important;
  color: #334155 !important;
  font-size: .76rem !important;
  font-weight: 1000 !important;
  line-height: 1 !important;
}

body.admin-body .admin-team-meta span.is-active {
  background: #dcfce7 !important;
  border-color: #bbf7d0 !important;
  color: #166534 !important;
}

body.admin-body .admin-team-meta span.is-inactive {
  background: #f1f5f9 !important;
  border-color: #cbd5e1 !important;
  color: #64748b !important;
}

body.admin-body .admin-team-details {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px !important;
  margin-left: 72px !important;
}

body.admin-body .admin-team-details span {
  min-width: 0 !important;
  padding: 10px 12px !important;
  border-radius: 16px !important;
  background: #ffffff !important;
  border: 1px solid #dbeafe !important;
  color: #475569 !important;
  font-size: .82rem !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.admin-body .admin-team-details span strong {
  display: block !important;
  margin-bottom: 3px !important;
  color: #0f172a !important;
  font-size: .64rem !important;
  font-weight: 1000 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
}

body.admin-body .admin-team-actions.admin-staff-actions {
  margin: auto 0 0 72px !important;
  display: flex !important;
  justify-content: flex-end !important;
  gap: 9px !important;
}

body.admin-body .admin-team-actions .admin-small-btn {
  min-height: 38px !important;
  padding: 9px 15px !important;
  border-radius: 12px !important;
  font-size: .84rem !important;
}

@media (max-width: 1180px) {
  body.admin-body .admin-staff-team-panel .admin-staff-grid {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 760px) {
  body.admin-body .admin-team-card.admin-staff-pro-card {
    min-height: 0 !important;
    padding: 15px !important;
  }
  body.admin-body .admin-team-card-main {
    grid-template-columns: 46px minmax(0, 1fr) !important;
    gap: 11px !important;
  }
  body.admin-body .admin-team-avatar.admin-staff-avatar {
    width: 46px !important;
    height: 46px !important;
    border-radius: 16px !important;
  }
  body.admin-body .admin-team-title-row {
    flex-direction: column !important;
    gap: 7px !important;
  }
  body.admin-body .admin-team-details,
  body.admin-body .admin-team-actions.admin-staff-actions {
    margin-left: 0 !important;
  }
  body.admin-body .admin-team-details {
    grid-template-columns: 1fr !important;
  }
  body.admin-body .admin-team-actions.admin-staff-actions {
    justify-content: stretch !important;
  }
  body.admin-body .admin-team-actions .admin-small-btn {
    flex: 1 1 0 !important;
  }
}

/* v1.5.4 - Team cards compact horizontal polish */
body.admin-body .admin-staff-team-panel .admin-staff-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 14px !important;
  align-items: stretch !important;
}

body.admin-body .admin-team-card.admin-staff-pro-card {
  min-height: 0 !important;
  padding: 16px !important;
  border-radius: 22px !important;
  background: #ffffff !important;
  border: 2px solid #dbeafe !important;
  box-shadow: 0 14px 32px rgba(15, 23, 42, 0.055) !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  overflow: visible !important;
}

body.admin-body .admin-team-card.admin-staff-pro-card::before {
  display: none !important;
}

body.admin-body .admin-team-card-main {
  display: grid !important;
  grid-template-columns: 52px minmax(0, 1fr) !important;
  gap: 13px !important;
  align-items: center !important;
}

body.admin-body .admin-team-avatar.admin-staff-avatar {
  width: 52px !important;
  height: 52px !important;
  border-radius: 17px !important;
  font-size: 1rem !important;
  background: #101a33 !important;
  color: #ffffff !important;
  box-shadow: 0 10px 22px rgba(15, 23, 42, 0.12) !important;
}

body.admin-body .admin-team-copy {
  min-width: 0 !important;
}

body.admin-body .admin-team-title-row {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 10px !important;
  min-width: 0 !important;
}

body.admin-body .admin-team-title-row h3 {
  margin: 0 !important;
  color: #0f172a !important;
  font-size: 1.08rem !important;
  line-height: 1.1 !important;
  letter-spacing: -.035em !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.admin-body .admin-team-title-row .admin-staff-wage {
  flex: 0 0 auto !important;
  margin: 0 !important;
  padding: 6px 10px !important;
  border-radius: 999px !important;
  background: #e8f2ff !important;
  color: #0b4fb3 !important;
  border: 1px solid #dbeafe !important;
  font-size: .78rem !important;
  font-weight: 1000 !important;
  letter-spacing: -.01em !important;
}

body.admin-body .admin-team-meta {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
  margin-top: 7px !important;
}

body.admin-body .admin-team-meta span {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 24px !important;
  padding: 5px 9px !important;
  border-radius: 999px !important;
  background: #f1f7ff !important;
  border: 1px solid #dbeafe !important;
  color: #334155 !important;
  font-size: .7rem !important;
  font-weight: 1000 !important;
  line-height: 1 !important;
}

body.admin-body .admin-team-meta span.is-active {
  background: #dcfce7 !important;
  border-color: #bbf7d0 !important;
  color: #166534 !important;
}

body.admin-body .admin-team-meta span.is-inactive {
  background: #f1f5f9 !important;
  border-color: #cbd5e1 !important;
  color: #64748b !important;
}

body.admin-body .admin-team-details {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px 12px !important;
  margin: 0 0 0 65px !important;
  min-width: 0 !important;
}

body.admin-body .admin-team-details span {
  min-width: 0 !important;
  max-width: 100% !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #526178 !important;
  font-size: .8rem !important;
  font-weight: 900 !important;
  line-height: 1.25 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.admin-body .admin-team-details span strong {
  display: inline !important;
  margin: 0 5px 0 0 !important;
  color: #94a3b8 !important;
  font-size: .64rem !important;
  font-weight: 1000 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}

body.admin-body .admin-team-actions.admin-staff-actions {
  margin: 0 0 0 65px !important;
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
  gap: 8px !important;
}

body.admin-body .admin-team-actions .admin-small-btn {
  min-height: 34px !important;
  padding: 8px 13px !important;
  border-radius: 11px !important;
  font-size: .78rem !important;
  line-height: 1 !important;
}

body.admin-body .admin-team-card.is-inactive {
  opacity: .76 !important;
  background: #f8fafc !important;
}

@media (max-width: 1180px) {
  body.admin-body .admin-staff-team-panel .admin-staff-grid {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 760px) {
  body.admin-body .admin-team-card.admin-staff-pro-card {
    padding: 14px !important;
  }
  body.admin-body .admin-team-card-main {
    grid-template-columns: 46px minmax(0, 1fr) !important;
    gap: 11px !important;
  }
  body.admin-body .admin-team-avatar.admin-staff-avatar {
    width: 46px !important;
    height: 46px !important;
    border-radius: 15px !important;
  }
  body.admin-body .admin-team-title-row {
    align-items: flex-start !important;
    flex-direction: column !important;
    gap: 7px !important;
  }
  body.admin-body .admin-team-details,
  body.admin-body .admin-team-actions.admin-staff-actions {
    margin-left: 0 !important;
  }
  body.admin-body .admin-team-actions.admin-staff-actions {
    justify-content: stretch !important;
  }
  body.admin-body .admin-team-actions .admin-small-btn {
    flex: 1 1 0 !important;
  }
}

/* v1.5.4 - Staff Team row cards stronger polish */
body.admin-body .admin-staff-team-panel .admin-staff-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 14px !important;
}

body.admin-body .admin-staff-team-panel .admin-staff-grid > .admin-team-row-card:only-child {
  grid-column: 1 / -1 !important;
}

body.admin-body .admin-team-row-card {
  display: grid !important;
  grid-template-columns: 62px minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: 16px !important;
  min-height: 92px !important;
  padding: 16px 18px !important;
  border-radius: 24px !important;
  border: 2px solid #dbeafe !important;
  background: linear-gradient(135deg, #ffffff 0%, #f8fbff 100%) !important;
  box-shadow: 0 14px 34px rgba(15, 23, 42, 0.06) !important;
  overflow: visible !important;
}

body.admin-body .admin-team-row-card::before {
  display: none !important;
}

body.admin-body .admin-team-avatar-wrap {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

body.admin-body .admin-team-row-card .admin-team-avatar {
  width: 56px !important;
  height: 56px !important;
  border-radius: 18px !important;
  background: #101a33 !important;
  color: #ffffff !important;
  font-size: 1.05rem !important;
  font-weight: 1000 !important;
  box-shadow: 0 12px 26px rgba(15, 23, 42, 0.16) !important;
}

body.admin-body .admin-team-row-main {
  min-width: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
}

body.admin-body .admin-team-row-title {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  min-width: 0 !important;
  flex-wrap: wrap !important;
}

body.admin-body .admin-team-row-title h3 {
  margin: 0 !important;
  color: #0f172a !important;
  font-size: 1.18rem !important;
  line-height: 1 !important;
  letter-spacing: -0.04em !important;
}

body.admin-body .admin-team-row-card .admin-team-meta {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
  margin: 0 !important;
}

body.admin-body .admin-team-row-card .admin-team-meta span {
  min-height: 24px !important;
  padding: 5px 9px !important;
  border-radius: 999px !important;
  background: #eff6ff !important;
  border: 1px solid #dbeafe !important;
  color: #334155 !important;
  font-size: .69rem !important;
  font-weight: 1000 !important;
  line-height: 1 !important;
}

body.admin-body .admin-team-row-card .admin-team-meta span.is-active {
  background: #dcfce7 !important;
  border-color: #bbf7d0 !important;
  color: #166534 !important;
}

body.admin-body .admin-team-row-card .admin-team-meta span.is-inactive {
  background: #f1f5f9 !important;
  border-color: #cbd5e1 !important;
  color: #64748b !important;
}

body.admin-body .admin-team-row-card .admin-team-details {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px 18px !important;
  margin: 0 !important;
  min-width: 0 !important;
}

body.admin-body .admin-team-row-card .admin-team-details span {
  display: inline-flex !important;
  align-items: baseline !important;
  gap: 6px !important;
  min-width: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: #475569 !important;
  font-size: .82rem !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.admin-body .admin-team-row-card .admin-team-details span strong {
  display: inline !important;
  margin: 0 !important;
  color: #94a3b8 !important;
  font-size: .64rem !important;
  font-weight: 1000 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}

body.admin-body .admin-team-row-side {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  justify-content: flex-end !important;
  flex-wrap: wrap !important;
}

body.admin-body .admin-team-row-card .admin-staff-wage {
  margin: 0 !important;
  padding: 8px 12px !important;
  border-radius: 999px !important;
  background: #e8f2ff !important;
  border: 1px solid #dbeafe !important;
  color: #0b4fb3 !important;
  font-size: .82rem !important;
  font-weight: 1000 !important;
  white-space: nowrap !important;
}

body.admin-body .admin-team-row-card .admin-team-actions {
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 8px !important;
}

body.admin-body .admin-team-row-card .admin-team-actions .admin-small-btn {
  min-height: 36px !important;
  padding: 8px 14px !important;
  border-radius: 12px !important;
  font-size: .78rem !important;
  line-height: 1 !important;
}

body.admin-body .admin-team-row-card.is-inactive {
  opacity: .72 !important;
  background: #f8fafc !important;
}

@media (max-width: 1180px) {
  body.admin-body .admin-staff-team-panel .admin-staff-grid {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 860px) {
  body.admin-body .admin-team-row-card {
    grid-template-columns: 50px minmax(0, 1fr) !important;
  }
  body.admin-body .admin-team-row-side {
    grid-column: 2 !important;
    justify-content: flex-start !important;
  }
  body.admin-body .admin-team-row-card .admin-team-avatar {
    width: 48px !important;
    height: 48px !important;
    border-radius: 16px !important;
  }
}

@media (max-width: 540px) {
  body.admin-body .admin-team-row-card {
    grid-template-columns: 1fr !important;
    text-align: left !important;
  }
  body.admin-body .admin-team-avatar-wrap,
  body.admin-body .admin-team-row-side {
    justify-content: flex-start !important;
    grid-column: auto !important;
  }
  body.admin-body .admin-team-row-card .admin-team-actions .admin-small-btn {
    flex: 1 1 0 !important;
  }
}

/* v1.5.4 ingredients tags - admin item cards + Kitchen/POS Menu Control */
.menu-control-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 9px;
}

.menu-control-tags span {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  border-radius: 999px;
  padding: 6px 9px;
  background: #eef2ff;
  border: 1px solid #c7d2fe;
  color: #312e81;
  font-size: 12px;
  line-height: 1;
  font-weight: 900;
  white-space: nowrap;
}

/* v1.5.4 ingredient tag entry - modal form */
body.admin-body .admin-tag-input {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  width: 100%;
  min-height: 52px;
  box-sizing: border-box;
  border: 2px solid var(--nn-border, #e2e8f0);
  border-radius: 18px;
  background: #fff;
  padding: 8px;
  cursor: text;
  transition: border-color .15s ease, box-shadow .15s ease;
}

body.admin-body .admin-tag-input:focus-within {
  outline: 3px solid rgba(var(--primary-500-rgb, 37, 99, 235), .16);
  border-color: var(--primary-500, #2563eb);
}

body.admin-body .admin-tag-list {
  display: contents;
}

body.admin-body .admin-tag-token {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  max-width: 100%;
  min-height: 34px;
  border: 1px solid var(--primary-200, #bfdbfe);
  border-radius: 999px;
  background: var(--primary-50, #eff6ff);
  color: var(--primary-800, #1e40af);
  padding: 6px 10px 6px 12px;
  font-size: 13px;
  line-height: 1;
  font-weight: 1000;
  box-shadow: 0 6px 14px rgba(15, 23, 42, .06);
  cursor: pointer;
}

body.admin-body .admin-tag-token span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.admin-body .admin-tag-token strong {
  display: inline-grid;
  place-items: center;
  width: 18px;
  height: 18px;
  border-radius: 999px;
  background: rgba(15, 23, 42, .08);
  color: var(--primary-900, #172554);
  font-size: 15px;
  line-height: 1;
}

body.admin-body .admin-tag-token:hover {
  transform: translateY(-1px);
  border-color: var(--primary-400, #60a5fa);
  background: var(--primary-100, #dbeafe);
}

body.admin-body .admin-tag-input input[data-tag-entry] {
  flex: 1 1 170px;
  min-width: 150px;
  width: auto;
  min-height: 34px;
  border: 0 !important;
  box-shadow: none !important;
  outline: none !important;
  border-radius: 0;
  padding: 6px 4px;
  background: transparent;
  font-weight: 900;
}

body.admin-body .admin-tag-input input[data-tag-entry]::placeholder {
  color: #94a3b8;
}

body.admin-body .admin-form input[data-tag-hidden] {
  display: none;
}

/* v1.5.4 stock menu: Items + Ingredients + Modifiers */
.kitchen-menu-control-list {
  display: block;
}
.menu-control-section {
  margin: 0 0 22px;
}
.menu-control-section-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 12px;
  padding: 12px 14px;
  border: 2px solid rgba(148, 163, 184, .35);
  border-radius: 20px;
  background: rgba(15, 23, 42, .78);
  color: #fff;
  box-shadow: 0 14px 30px rgba(0,0,0,.18);
}
.menu-control-section-title h3 {
  margin: 0;
  font-size: clamp(20px, 2.2vw, 30px);
  line-height: 1;
  font-weight: 1000;
  letter-spacing: -.04em;
}
.menu-control-section-title span {
  display: inline-grid;
  place-items: center;
  min-width: 34px;
  height: 34px;
  border-radius: 999px;
  background: #fff;
  color: #0f172a;
  font-weight: 1000;
}
.menu-control-section-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 16px;
  align-items: start;
}
.menu-control-category span {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 3px 8px;
  background: #e0f2fe;
  color: #075985;
  font-size: 12px;
  line-height: 1;
  font-weight: 1000;
}
.menu-control-card.menu-control-ingredient {
  border-color: #16a34a;
}
.menu-control-card.menu-control-modifier {
  border-color: #0ea5e9;
}
.menu-control-card.menu-control-ingredient.is-out,
.menu-control-card.menu-control-modifier.is-out {
  border-color: var(--primary-600);
}
.menu-control-ingredients {
  font-size: 13px !important;
  line-height: 1.25 !important;
}
.menu-control-ingredients strong {
  color: #0f172a;
  font-weight: 1000;
}
@media (max-width: 760px) {
  .menu-control-section-grid {
    grid-template-columns: 1fr;
  }
}


/* v1.5.4 Menu Control: search, two-column layout, and currently-off section */
.menu-control-search-wrap {
  position: sticky;
  top: 0;
  z-index: 5;
  margin: 0 0 16px;
  padding: 0 0 10px;
  background: inherit;
}
.menu-control-search {
  width: 100%;
  min-height: 54px;
  border: 2px solid rgba(147, 197, 253, .75);
  border-radius: 18px;
  background: #fff;
  color: #0f172a;
  box-shadow: 0 14px 30px rgba(15, 23, 42, .08);
  font-size: 18px;
  font-weight: 900;
  padding: 0 18px;
  outline: none;
}
.menu-control-search:focus {
  border-color: #2563eb;
  box-shadow: 0 0 0 4px rgba(37, 99, 235, .14), 0 14px 30px rgba(15, 23, 42, .10);
}
.menu-control-search::placeholder {
  color: #94a3b8;
}
.menu-control-section-grid,
body.pos-body .kitchen-menu-control-list .menu-control-section-grid,
body.kitchen-body .kitchen-menu-control-list .menu-control-section-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.menu-control-section-off .menu-control-section-title {
  background: linear-gradient(135deg, #991b1b, #ef4444);
  border-color: rgba(254, 202, 202, .85);
}
.menu-control-section-off .menu-control-card {
  border-color: #ef4444;
  background: #fff7f7;
}
@media (max-width: 820px) {
  .menu-control-section-grid,
  body.pos-body .kitchen-menu-control-list .menu-control-section-grid,
  body.kitchen-body .kitchen-menu-control-list .menu-control-section-grid {
    grid-template-columns: 1fr;
  }
}


/* v1.5.4 compact Menu Control cards + search submit */
.menu-control-search-wrap {
  display: flex;
  align-items: stretch;
  gap: 10px;
}
.menu-control-search-wrap .menu-control-search {
  flex: 1 1 auto;
  min-width: 0;
}
.menu-control-search-btn {
  flex: 0 0 auto;
  min-height: 54px;
  border: 0;
  border-radius: 18px;
  padding: 0 20px;
  background: #0f172a;
  color: #fff;
  font-size: 17px;
  font-weight: 1000;
  box-shadow: 0 14px 28px rgba(15, 23, 42, .14);
}
.menu-control-search-btn:active {
  transform: translateY(1px);
}
.menu-control-card {
  padding: 14px !important;
}
.menu-control-card .menu-control-main {
  display: block !important;
  padding-bottom: 12px !important;
}
.menu-control-card .menu-control-main h3 {
  margin: 0 !important;
}
.menu-control-card .menu-control-category,
.menu-control-card .menu-control-status,
.menu-control-card p,
.menu-control-ingredients {
  display: none !important;
}
.menu-control-actions {
  margin-top: 12px !important;
}
@media (max-width: 560px) {
  .menu-control-search-wrap {
    gap: 8px;
  }
  .menu-control-search-btn {
    padding: 0 14px;
    font-size: 15px;
  }
}

/* Compact one-button Menu Control cards */
.menu-control-card {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 14px !important;
  padding: 12px 14px !important;
  min-height: 68px !important;
}
.menu-control-card .menu-control-main {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  display: block !important;
  border-bottom: 0 !important;
  padding-bottom: 0 !important;
}
.menu-control-card .menu-control-main h3 {
  margin: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  font-size: clamp(18px, 1.7vw, 24px) !important;
  line-height: 1.05 !important;
}
.menu-control-actions {
  flex: 0 0 auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  margin-top: 0 !important;
  gap: 8px !important;
}
.menu-control-24h-btn {
  min-width: 118px !important;
  min-height: 46px !important;
  padding: 0 18px !important;
  border-radius: 999px !important;
  font-size: 17px !important;
  font-weight: 1000 !important;
  background: #fff7ed !important;
  color: #9a3412 !important;
  border: 2px solid #fed7aa !important;
  box-shadow: 0 10px 20px rgba(234, 88, 12, .12) !important;
}
.menu-control-toggle-btn {
  min-width: 82px !important;
  min-height: 46px !important;
  padding: 0 18px !important;
  border-radius: 999px !important;
  font-size: 18px !important;
  font-weight: 1000 !important;
}
.menu-control-card.is-in .menu-control-toggle-btn,
body.pos-body .menu-control-card.is-in .menu-control-toggle-btn,
body.kitchen-body .menu-control-card.is-in .menu-control-toggle-btn {
  background: #dcfce7 !important;
  color: #166534 !important;
  border-color: #bbf7d0 !important;
  box-shadow: 0 10px 20px rgba(22, 163, 74, .14) !important;
}
.menu-control-card.is-out .menu-control-toggle-btn,
body.pos-body .menu-control-card.is-out .menu-control-toggle-btn,
body.kitchen-body .menu-control-card.is-out .menu-control-toggle-btn {
  background: #fee2e2 !important;
  color: #991b1b !important;
  border-color: #fecaca !important;
  box-shadow: 0 10px 20px rgba(220, 38, 38, .14) !important;
}
@media (max-width: 560px) {
  .menu-control-card {
    gap: 10px !important;
    padding: 10px 12px !important;
  }
  .menu-control-24h-btn {
    min-width: 96px !important;
    min-height: 42px !important;
    padding: 0 12px !important;
    font-size: 15px !important;
  }
  .menu-control-toggle-btn {
    min-width: 70px !important;
    min-height: 42px !important;
    padding: 0 14px !important;
    font-size: 16px !important;
  }
}

/* v1.5.5 - Mobile POS category bar cleanup: keep category tabs above cards, not floating over them */
@media (max-width: 760px) {
  body.pos-body .pos-menu-side {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    overflow: visible !important;
  }

  body.pos-body .pos-category-tabs,
  body.pos-mobile-body .pos-category-tabs {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    z-index: 6 !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    order: -1 !important;
    display: flex !important;
    gap: 8px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    margin: 0 0 4px !important;
    padding: 4px 0 8px !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
  }

  body.pos-body .pos-category-tabs::-webkit-scrollbar,
  body.pos-mobile-body .pos-category-tabs::-webkit-scrollbar {
    display: none !important;
  }

  body.pos-body .pos-category-tab,
  body.pos-mobile-body .pos-category-tab {
    flex: 0 0 auto !important;
    min-height: 44px !important;
    padding: 0 14px !important;
    border-radius: 16px !important;
    border: 3px solid rgba(var(--primary-500-rgb), .24) !important;
    background: #ffffff !important;
    color: var(--primary-800) !important;
    box-shadow: 0 8px 20px rgba(15, 23, 42, .06) !important;
    font-size: 15px !important;
    font-weight: 1000 !important;
    white-space: nowrap !important;
  }

  body.pos-body .pos-category-tab.active,
  body.pos-mobile-body .pos-category-tab.active {
    background: linear-gradient(135deg, var(--primary-600), var(--primary-500)) !important;
    color: #ffffff !important;
    border-color: rgba(var(--primary-500-rgb), .28) !important;
    box-shadow: 0 10px 22px rgba(var(--primary-600-rgb), .18) !important;
  }

  body.pos-body .pos-product-grid,
  body.pos-mobile-body .pos-product-grid {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }
}


/* v1.5.5 - Match POS and Kitchen Menu on/off button styles */
body.pos-body .menu-control-toggle-btn,
body.kitchen-body .menu-control-toggle-btn {
  border: 2px solid transparent !important;
  background-image: none !important;
}
body.pos-body .menu-control-card.is-in .menu-control-toggle-btn,
body.kitchen-body .menu-control-card.is-in .menu-control-toggle-btn {
  background: #dcfce7 !important;
  color: #166534 !important;
  border-color: #bbf7d0 !important;
  box-shadow: 0 10px 20px rgba(22, 163, 74, .14) !important;
}
body.pos-body .menu-control-card.is-out .menu-control-toggle-btn,
body.kitchen-body .menu-control-card.is-out .menu-control-toggle-btn {
  background: #fee2e2 !important;
  color: #991b1b !important;
  border-color: #fecaca !important;
  box-shadow: 0 10px 20px rgba(220, 38, 38, .14) !important;
}
body.pos-body .menu-control-card.is-in,
body.kitchen-body .menu-control-card.is-in {
  border-color: #bbf7d0 !important;
}
body.pos-body .menu-control-card.is-out,
body.kitchen-body .menu-control-card.is-out {
  border-color: #fecaca !important;
  background: #fff7f7 !important;
}



/* v1.5.4 mobile POS ingredient toggles */
body.pos-mobile-body #posItemModal #posModifierBody {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
body.pos-mobile-body #posItemModal .ingredient-choice-group {
  order: -1;
}
body.pos-mobile-body #posItemModal .ingredient-choice-group .mod-grid,
body.pos-mobile-body #posItemModal .mod-group .mod-grid {
  grid-template-columns: 1fr !important;
}
body.pos-mobile-body #posItemModal .ingredient-choice-group .mod-option.ingredient-option,
body.pos-mobile-body #posItemModal .mod-group .mod-option {
  min-height: 64px;
}
body.pos-mobile-body #posItemModal .ingredient-choice-group .mod-group-title {
  margin-bottom: 4px;
}
/* v1.5.4 ingredient buttons inside item customization modal */
.ingredient-choice-group .mod-group-title {
  display: flex;
  align-items: baseline;
  gap: 8px;
}
.mod-option.ingredient-option {
  cursor: pointer;
}
.mod-option.ingredient-option.selected {
  background: #fee2e2;
  border-color: #fecaca;
  color: #991b1b;
}
.mod-option.ingredient-option.unavailable,
.mod-option.ingredient-option:disabled {
  opacity: .48;
  cursor: not-allowed;
  background: #f3f4f6;
  border-color: #d1d5db;
  color: #6b7280;
}
.ticket-no-ingredient {
  color: #991b1b;
  font-weight: 900;
}


/* v1.5.4 mobile back-to-top buttons for Online Ordering + POS */
.mobile-back-top-btn {
  position: fixed;
  right: max(18px, env(safe-area-inset-right));
  bottom: calc(92px + env(safe-area-inset-bottom));
  z-index: 9998;
  width: 56px;
  height: 56px;
  border: 2px solid rgba(191, 219, 254, .98);
  border-radius: 999px;
  background: linear-gradient(135deg, var(--primary-600), var(--primary-500));
  color: #fff;
  box-shadow: 0 18px 35px rgba(15, 23, 42, .26);
  font-size: 25px;
  font-weight: 950;
  line-height: 1;
  display: none;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transform: translateY(12px) scale(.94);
  transition: opacity .18s ease, transform .18s ease;
}
.mobile-back-top-btn.is-visible {
  display: flex;
  opacity: 1;
  transform: translateY(0) scale(1);
}
.mobile-back-top-btn:active {
  transform: translateY(1px) scale(.96);
}
@media (min-width: 761px) {
  body:not(.pos-body) .mobile-back-top-btn {
    display: none !important;
  }
  body.pos-body .mobile-back-top-btn {
    width: 60px;
    height: 60px;
    right: max(22px, env(safe-area-inset-right));
    bottom: calc(28px + env(safe-area-inset-bottom));
  }
}
body.online-modal-locked .mobile-back-top-btn,
body.pos-tip-screen-open .pos-back-top-btn,
body.pos-body .pos-customer-tip-screen.is-showing ~ .mobile-back-top-btn,
body.pos-body .modal-backdrop.show ~ .mobile-back-top-btn {
  display: none !important;
  pointer-events: none !important;
}


/* POS Back to Top must work on tablet POS and mobile POS, but stay under checkout/tip overlays. */
body.pos-body .pos-back-top-btn {
  z-index: 9000;
}
body.pos-body .pos-back-top-btn.is-visible {
  display: flex !important;
}

/* v1.5.4 POS Back to Top placement - keep it beside the items list, not over the cart */
@media (min-width: 761px) {
  body.pos-body:not(.pos-mobile-body) .pos-back-top-btn {
    right: calc(340px + env(safe-area-inset-right)) !important;
    bottom: calc(28px + env(safe-area-inset-bottom)) !important;
  }
}

@media (min-width: 761px) and (min-height: 921px) {
  body.pos-body:not(.pos-mobile-body) .pos-back-top-btn {
    right: calc(410px + env(safe-area-inset-right)) !important;
  }
}


/* v1.5.4 - Clean Admin Staff cards */
body.admin-body .admin-staff-team-panel .admin-staff-grid,
body.admin-body .admin-staff-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(440px, 1fr)) !important;
  gap: 18px !important;
  align-items: stretch !important;
}

body.admin-body .admin-team-row-card {
  position: relative !important;
  display: grid !important;
  grid-template-columns: 76px minmax(0, 1fr) minmax(210px, auto) !important;
  align-items: center !important;
  gap: 18px !important;
  min-height: 154px !important;
  padding: 22px !important;
  border-radius: 28px !important;
  border: 3px solid rgba(var(--primary-500-rgb), .14) !important;
  background: linear-gradient(180deg, #ffffff, #fbfdff) !important;
  box-shadow: 0 16px 34px rgba(15, 23, 42, .055) !important;
  overflow: hidden !important;
}

body.admin-body .admin-team-row-card::before {
  display: none !important;
}

body.admin-body .admin-team-avatar-wrap {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 0 !important;
}

body.admin-body .admin-team-row-card .admin-team-avatar {
  width: 72px !important;
  height: 72px !important;
  border-radius: 22px !important;
  font-size: 28px !important;
  box-shadow: 0 16px 30px rgba(15, 23, 42, .13) !important;
}

body.admin-body .admin-team-row-main {
  min-width: 0 !important;
  display: grid !important;
  gap: 10px !important;
  align-content: center !important;
}

body.admin-body .admin-team-row-title {
  min-width: 0 !important;
  display: grid !important;
  gap: 8px !important;
}

body.admin-body .admin-team-row-title h3,
body.admin-body .staff-card h3 {
  margin: 0 !important;
  font-size: 23px !important;
  line-height: 1.05 !important;
  letter-spacing: -.03em !important;
  color: #0f172a !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

body.admin-body .admin-team-row-card .admin-team-meta {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 7px !important;
  margin: 0 !important;
}

body.admin-body .admin-team-row-card .admin-team-meta span {
  min-height: 28px !important;
  padding: 7px 11px !important;
  border-radius: 999px !important;
  font-size: 13px !important;
  letter-spacing: .01em !important;
}

body.admin-body .admin-team-row-card .admin-team-details {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 7px !important;
  margin: 2px 0 0 !important;
  min-width: 0 !important;
  max-width: 100% !important;
}

body.admin-body .admin-team-row-card .admin-team-details span {
  display: grid !important;
  grid-template-columns: 68px minmax(0, 1fr) !important;
  align-items: baseline !important;
  gap: 8px !important;
  min-width: 0 !important;
  max-width: 100% !important;
  overflow: visible !important;
  white-space: normal !important;
  text-overflow: clip !important;
  word-break: break-word !important;
  overflow-wrap: anywhere !important;
  color: #475569 !important;
  font-size: 15px !important;
  line-height: 1.2 !important;
}

body.admin-body .admin-team-row-card .admin-team-details span strong {
  display: block !important;
  min-width: 0 !important;
  color: #94a3b8 !important;
  font-size: 12px !important;
  font-weight: 1000 !important;
  letter-spacing: .13em !important;
  text-transform: uppercase !important;
}

body.admin-body .admin-team-row-side {
  min-width: 0 !important;
  display: grid !important;
  grid-template-columns: 1fr !important;
  justify-items: end !important;
  align-content: center !important;
  gap: 12px !important;
}

body.admin-body .admin-team-row-card .admin-staff-wage {
  margin: 0 !important;
  padding: 11px 15px !important;
  border-radius: 999px !important;
  font-size: 18px !important;
  line-height: 1 !important;
  font-weight: 1000 !important;
  background: #e8f2ff !important;
  border: 2px solid #dbeafe !important;
  color: #0b4fb3 !important;
}

body.admin-body .admin-team-row-card .admin-team-actions {
  width: 100% !important;
  min-width: 210px !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 9px !important;
  justify-content: stretch !important;
  align-items: stretch !important;
}

body.admin-body .admin-team-row-card .admin-team-actions .admin-small-btn {
  width: 100% !important;
  min-height: 46px !important;
  padding: 0 14px !important;
  border-radius: 16px !important;
  font-size: 15px !important;
  font-weight: 1000 !important;
  white-space: nowrap !important;
}

@media (max-width: 1240px) {
  body.admin-body .admin-staff-team-panel .admin-staff-grid,
  body.admin-body .admin-staff-grid {
    grid-template-columns: 1fr !important;
  }

  body.admin-body .admin-team-row-card {
    grid-template-columns: 72px minmax(0, 1fr) !important;
  }

  body.admin-body .admin-team-row-side {
    grid-column: 2 !important;
    justify-items: start !important;
    width: 100% !important;
  }

  body.admin-body .admin-team-row-card .admin-team-actions {
    max-width: 360px !important;
  }
}

@media (max-width: 640px) {
  body.admin-body .admin-team-row-card {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
    padding: 18px !important;
  }

  body.admin-body .admin-team-avatar-wrap,
  body.admin-body .admin-team-row-side {
    grid-column: auto !important;
    justify-items: stretch !important;
    justify-content: flex-start !important;
  }

  body.admin-body .admin-team-row-card .admin-team-details span {
    grid-template-columns: 1fr !important;
    gap: 3px !important;
  }

  body.admin-body .admin-team-row-card .admin-team-actions {
    min-width: 0 !important;
    max-width: none !important;
  }
}

/* v1.5.4 staff cards clean pass - full width readable rows */
body.admin-body .admin-staff-team-panel .admin-staff-grid,
body.admin-body .admin-staff-grid {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 16px !important;
}

body.admin-body .admin-team-row-card.staff-card {
  display: grid !important;
  grid-template-columns: 82px minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: 18px !important;
  min-height: 132px !important;
  padding: 20px 22px !important;
  border-radius: 24px !important;
  overflow: hidden !important;
}

body.admin-body .admin-team-row-card .admin-team-avatar-wrap {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 0 !important;
}

body.admin-body .admin-team-row-card .admin-team-avatar {
  width: 64px !important;
  height: 64px !important;
  border-radius: 18px !important;
  font-size: 28px !important;
  font-weight: 950 !important;
}

body.admin-body .admin-team-row-main {
  min-width: 0 !important;
  display: grid !important;
  gap: 12px !important;
}

body.admin-body .admin-team-row-title {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 10px 14px !important;
  min-width: 0 !important;
}

body.admin-body .admin-team-row-title h3,
body.admin-body .staff-card h3 {
  margin: 0 !important;
  font-size: 24px !important;
  line-height: 1.05 !important;
  min-width: 130px !important;
  max-width: 100% !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

body.admin-body .admin-team-row-card .admin-team-meta {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 8px !important;
  min-width: 0 !important;
}

body.admin-body .admin-team-row-card .admin-team-meta span {
  min-height: 30px !important;
  padding: 7px 12px !important;
  border-radius: 999px !important;
  font-size: 13px !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

body.admin-body .admin-team-row-card .admin-team-details {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 8px 18px !important;
  min-width: 0 !important;
}

body.admin-body .admin-team-row-card .admin-team-details span {
  display: grid !important;
  grid-template-columns: 58px minmax(0, 1fr) !important;
  align-items: baseline !important;
  gap: 10px !important;
  min-width: 0 !important;
  max-width: 100% !important;
  font-size: 15px !important;
  font-weight: 850 !important;
  line-height: 1.15 !important;
  color: #475569 !important;
  overflow: hidden !important;
}

body.admin-body .admin-team-row-card .admin-team-details span strong {
  font-size: 11px !important;
  letter-spacing: .18em !important;
  text-transform: uppercase !important;
  color: #94a3b8 !important;
  white-space: nowrap !important;
}

body.admin-body .admin-team-row-side {
  display: grid !important;
  grid-template-columns: auto auto !important;
  align-items: center !important;
  gap: 14px !important;
  justify-self: end !important;
  min-width: 0 !important;
}

body.admin-body .admin-team-row-card .admin-staff-wage {
  justify-self: end !important;
  min-width: 118px !important;
  padding: 12px 16px !important;
  font-size: 18px !important;
  font-weight: 950 !important;
  white-space: nowrap !important;
}

body.admin-body .admin-team-row-card .admin-team-actions {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 10px !important;
  flex-wrap: nowrap !important;
}

body.admin-body .admin-team-row-card .admin-team-actions .admin-small-btn {
  min-width: 112px !important;
  min-height: 52px !important;
  padding: 0 18px !important;
  border-radius: 16px !important;
  font-size: 16px !important;
  font-weight: 950 !important;
  white-space: nowrap !important;
}

@media (max-width: 1120px) {
  body.admin-body .admin-team-row-card.staff-card {
    grid-template-columns: 70px minmax(0, 1fr) !important;
  }
  body.admin-body .admin-team-row-side {
    grid-column: 2 !important;
    grid-template-columns: auto 1fr !important;
    justify-self: stretch !important;
  }
  body.admin-body .admin-team-row-card .admin-team-actions {
    justify-content: flex-end !important;
  }
}

@media (max-width: 760px) {
  body.admin-body .admin-team-row-card.staff-card {
    grid-template-columns: 1fr !important;
    text-align: left !important;
    padding: 18px !important;
  }
  body.admin-body .admin-team-avatar-wrap {
    justify-content: flex-start !important;
  }
  body.admin-body .admin-team-row-side {
    grid-column: auto !important;
    grid-template-columns: 1fr !important;
    justify-self: stretch !important;
  }
  body.admin-body .admin-team-row-card .admin-team-details {
    grid-template-columns: 1fr !important;
  }
  body.admin-body .admin-team-row-card .admin-team-actions {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    width: 100% !important;
  }
  body.admin-body .admin-team-row-card .admin-team-actions .admin-small-btn,
  body.admin-body .admin-team-row-card .admin-staff-wage {
    width: 100% !important;
  }
}


/* v1.5.4 - POS clock/staff PIN fields use the on-screen keypad only */
#timeClockPinInput[readonly],
#posStaffSchedulePin[readonly] {
  caret-color: transparent !important;
  -webkit-user-select: none;
  user-select: none;
}

/* v1.5.4 Admin Employee Hours page */
.admin-hours-head .admin-secondary,
#refreshHoursBtn {
  border: 2px solid var(--primary-200);
  background: #fff;
  color: var(--primary-800);
  border-radius: 18px;
  padding: 14px 22px;
  font-weight: 900;
  cursor: pointer;
}
.admin-hours-toolbar {
  display: grid;
  grid-template-columns: 1.15fr 1fr 1fr auto;
  gap: 12px;
  align-items: end;
  background: #fff;
  border: 2px solid var(--primary-100);
  border-radius: 24px;
  padding: 18px;
  box-shadow: 0 18px 40px rgba(15, 23, 42, .06);
  margin-bottom: 18px;
}
.admin-hours-toolbar label {
  display: grid;
  gap: 7px;
  color: #0f172a;
  font-size: 13px;
  font-weight: 900;
}
.admin-hours-toolbar select,
.admin-hours-toolbar input {
  min-height: 48px;
  border: 2px solid var(--primary-100);
  border-radius: 16px;
  padding: 0 14px;
  font-weight: 850;
  color: #0f172a;
  background: #f8fbff;
}
.admin-hours-toolbar .admin-primary {
  min-height: 48px;
  border-radius: 16px;
  padding: 0 22px;
}
.hours-custom-field {
  display: none !important;
}
.hours-custom-field.is-showing {
  display: grid !important;
}
.admin-hours-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 18px;
}
.admin-hours-summary article {
  background: #fff;
  border: 2px solid var(--primary-100);
  border-radius: 24px;
  padding: 18px;
  box-shadow: 0 18px 40px rgba(15, 23, 42, .06);
}
.admin-hours-summary article span {
  display: block;
  color: #64748b;
  font-size: 13px;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: 6px;
}
.admin-hours-summary article strong {
  display: block;
  color: var(--primary-700);
  font-size: clamp(24px, 3vw, 36px);
  font-weight: 950;
  letter-spacing: -.04em;
}
.admin-hours-summary article small {
  display: block;
  color: #64748b;
  font-weight: 850;
  margin-top: 4px;
}
.admin-hours-summary .employee-hours-mini strong {
  font-size: clamp(20px, 2vw, 28px);
}
.admin-hours-table-card {
  overflow: hidden;
}
.admin-hours-table-wrap {
  overflow-x: auto;
  border: 2px solid var(--primary-100);
  border-radius: 18px;
}
.admin-hours-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 780px;
  background: #fff;
}
.admin-hours-table th,
.admin-hours-table td {
  padding: 14px 16px;
  text-align: left;
  border-bottom: 1px solid #e8f1ff;
  color: #0f172a;
  font-weight: 800;
}
.admin-hours-table th {
  background: #f4f8ff;
  color: #334155;
  font-size: 12px;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.admin-hours-table tr:last-child td {
  border-bottom: 0;
}
.admin-hours-table tr.is-open td {
  background: #fff7ed;
}
.hours-open-pill {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 6px 10px;
  background: #ffedd5;
  color: #9a3412;
  font-weight: 950;
}
@media (max-width: 980px) {
  .admin-hours-toolbar {
    grid-template-columns: 1fr 1fr;
  }
  .admin-hours-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 640px) {
  .admin-hours-toolbar,
  .admin-hours-summary {
    grid-template-columns: 1fr;
  }
}


/* v1.5.4 Admin Employee Hours downloadable report buttons */
.admin-hours-head-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: wrap;
}
.admin-hours-head-actions .admin-secondary {
  min-height: 46px;
  white-space: nowrap;
}
@media (max-width: 820px) {
  .admin-hours-head-actions {
    justify-content: stretch;
    width: 100%;
  }
  .admin-hours-head-actions .admin-secondary {
    flex: 1 1 160px;
  }
}


/* v1.5.4 Admin Hours clock-out adjustments */
.admin-hours-table .hours-entry-actions {
  display: grid;
  grid-template-columns: minmax(190px, 1fr) auto;
  gap: 8px;
  align-items: center;
  min-width: 310px;
}
.admin-hours-table .hours-entry-actions input[type="datetime-local"] {
  min-height: 42px;
  border: 2px solid var(--primary-100);
  border-radius: 14px;
  padding: 0 10px;
  background: #fff;
  color: #0f172a;
  font-weight: 850;
}
.admin-hours-table .hours-entry-actions .admin-small-btn {
  min-height: 42px;
  border-radius: 14px;
  padding: 0 14px;
  white-space: nowrap;
  font-weight: 950;
}
.admin-hours-table tr.is-open .hours-entry-actions input[type="datetime-local"] {
  border-color: #fed7aa;
  background: #fffaf5;
}
.hours-action-muted {
  color: #94a3b8;
  font-weight: 900;
}
@media (max-width: 780px) {
  .admin-hours-table .hours-entry-actions {
    grid-template-columns: 1fr;
    min-width: 230px;
  }
}

/* v1.5.8 - Bigger, bolder POS staff scheduler for tablet use */
body.pos-body #posStaffScheduleModal .pos-staff-schedule-card {
  width: min(1280px, calc(100vw - 28px)) !important;
  max-height: calc(100vh - 20px) !important;
  padding: 22px 24px !important;
  border-radius: 30px !important;
}
body.pos-body #posStaffScheduleModal .pos-staff-schedule-head {
  align-items: center !important;
  gap: 18px !important;
  margin-bottom: 14px !important;
}
body.pos-body #posStaffScheduleModal .modal-title {
  font-size: clamp(34px, 3vw, 48px) !important;
  font-weight: 1000 !important;
  letter-spacing: -.055em !important;
  line-height: .95 !important;
}
body.pos-body #posStaffScheduleModal .modal-desc {
  font-size: clamp(17px, 1.35vw, 22px) !important;
  font-weight: 900 !important;
  line-height: 1.25 !important;
}
body.pos-body #posStaffScheduleModal .pos-staff-schedule-close {
  min-height: 62px !important;
  min-width: 104px !important;
  padding: 0 24px !important;
  border-radius: 20px !important;
  font-size: 20px !important;
  font-weight: 1000 !important;
}
body.pos-body #posStaffScheduleModal .pos-staff-schedule-toolbar {
  padding: 16px 18px !important;
  border-radius: 20px !important;
  gap: 16px !important;
  margin-bottom: 12px !important;
}
body.pos-body #posStaffScheduleModal .pos-staff-schedule-toolbar strong {
  font-size: clamp(19px, 1.7vw, 26px) !important;
  font-weight: 1000 !important;
}
body.pos-body #posStaffScheduleModal .pos-staff-schedule-toolbar span {
  font-size: clamp(15px, 1.15vw, 18px) !important;
  font-weight: 850 !important;
  line-height: 1.25 !important;
}
body.pos-body #posStaffScheduleModal .pos-staff-schedule-actions {
  gap: 12px !important;
}
body.pos-body #posStaffScheduleModal .pos-staff-add-toggle,
body.pos-body #posStaffScheduleModal .pos-staff-schedule-actions .kitchen-small-btn {
  min-height: 58px !important;
  padding: 0 24px !important;
  border-radius: 20px !important;
  font-size: 20px !important;
  font-weight: 1000 !important;
}
body.pos-body #posStaffScheduleModal .pos-staff-week-grid {
  max-height: calc(100vh - 260px) !important;
}
body.pos-body #posStaffScheduleModal .pos-staff-matrix {
  min-width: 1120px !important;
  padding: 4px !important;
}
body.pos-body #posStaffScheduleModal .pos-staff-matrix-grid {
  grid-template-columns: 210px repeat(7, minmax(118px, 1fr)) !important;
  gap: 8px !important;
}
body.pos-body #posStaffScheduleModal .pos-staff-matrix-head,
body.pos-body #posStaffScheduleModal .pos-staff-matrix-name,
body.pos-body #posStaffScheduleModal .pos-staff-matrix-cell {
  min-height: 84px !important;
  border-radius: 18px !important;
  border-width: 2px !important;
}
body.pos-body #posStaffScheduleModal .pos-staff-matrix-head {
  padding: 14px 10px !important;
  font-size: clamp(20px, 1.8vw, 29px) !important;
  font-weight: 1000 !important;
  line-height: 1.02 !important;
}
body.pos-body #posStaffScheduleModal .pos-staff-matrix-name {
  padding: 14px 14px 14px 20px !important;
}
body.pos-body #posStaffScheduleModal .pos-staff-matrix-name strong {
  font-size: clamp(20px, 1.75vw, 28px) !important;
  font-weight: 1000 !important;
  line-height: 1.02 !important;
}
body.pos-body #posStaffScheduleModal .pos-staff-matrix-name span {
  font-size: 13px !important;
  font-weight: 1000 !important;
  letter-spacing: .05em !important;
}
body.pos-body #posStaffScheduleModal .pos-staff-matrix-cell {
  padding: 12px 8px !important;
  gap: 4px !important;
}
body.pos-body #posStaffScheduleModal .pos-staff-matrix-cell span {
  font-size: clamp(20px, 1.75vw, 28px) !important;
  font-weight: 1000 !important;
  line-height: 1.02 !important;
}
body.pos-body #posStaffScheduleModal .pos-staff-matrix-cell small {
  font-size: 13px !important;
  font-weight: 1000 !important;
  padding: 4px 8px !important;
}
body.pos-body #posStaffScheduleModal .pos-staff-add-form:not(.is-hidden) {
  width: min(860px, calc(100vw - 38px)) !important;
  max-height: calc(100vh - 34px) !important;
  padding: 26px !important;
  border-radius: 30px !important;
  border-width: 4px !important;
}
body.pos-body #posStaffScheduleModal .pos-staff-add-form:not(.is-hidden)::before {
  margin-bottom: 20px !important;
  font-size: clamp(32px, 2.6vw, 44px) !important;
  font-weight: 1000 !important;
}
body.pos-body #posStaffScheduleModal .pos-staff-add-form:not(.is-hidden) .pos-staff-add-grid {
  gap: 16px !important;
}
body.pos-body #posStaffScheduleModal .pos-staff-add-form:not(.is-hidden) .pos-staff-add-grid label span {
  display: block !important;
  margin-bottom: 8px !important;
  font-size: 18px !important;
  font-weight: 1000 !important;
  color: #0f172a !important;
}
body.pos-body #posStaffScheduleModal .pos-staff-add-form:not(.is-hidden) input,
body.pos-body #posStaffScheduleModal .pos-staff-add-form:not(.is-hidden) select {
  min-height: 64px !important;
  height: 64px !important;
  border-radius: 18px !important;
  border-width: 3px !important;
  font-size: 22px !important;
  font-weight: 950 !important;
  padding: 0 18px !important;
  color: #0f172a !important;
}
body.pos-body #posStaffScheduleModal .pos-staff-add-form:not(.is-hidden) .pos-staff-add-actions {
  margin-top: 20px !important;
  gap: 12px !important;
}
body.pos-body #posStaffScheduleModal .pos-staff-add-form:not(.is-hidden) .pos-staff-add-actions button,
body.pos-body #posStaffScheduleModal .pos-staff-clear-day,
body.pos-body #posStaffScheduleModal .danger-btn.pos-staff-clear-day {
  min-height: 62px !important;
  border-radius: 19px !important;
  font-size: 20px !important;
  font-weight: 1000 !important;
  padding: 0 24px !important;
}
body.pos-body #posStaffScheduleModal #posStaffScheduleSaveShift {
  min-width: 280px !important;
  flex: 1 1 auto !important;
}
@media (max-width: 980px) {
  body.pos-body #posStaffScheduleModal .pos-staff-schedule-card {
    width: calc(100vw - 12px) !important;
    padding: 18px !important;
  }
  body.pos-body #posStaffScheduleModal .pos-staff-matrix {
    min-width: 1080px !important;
  }
  body.pos-body #posStaffScheduleModal .pos-staff-matrix-grid {
    grid-template-columns: 200px repeat(7, 116px) !important;
  }
  body.pos-body #posStaffScheduleModal .pos-staff-add-form:not(.is-hidden) {
    width: min(820px, calc(100vw - 18px)) !important;
    padding: 22px !important;
  }
}
@media (max-width: 760px) {
  body.pos-body #posStaffScheduleModal .pos-staff-schedule-card {
    width: calc(100vw - 6px) !important;
    max-height: calc(100vh - 6px) !important;
    padding: 14px !important;
  }
  body.pos-body #posStaffScheduleModal .pos-staff-schedule-head,
  body.pos-body #posStaffScheduleModal .pos-staff-schedule-toolbar {
    align-items: stretch !important;
  }
  body.pos-body #posStaffScheduleModal .pos-staff-week-grid {
    max-height: calc(100vh - 300px) !important;
  }
  body.pos-body #posStaffScheduleModal .pos-staff-add-form:not(.is-hidden) {
    width: calc(100vw - 10px) !important;
    max-height: calc(100vh - 10px) !important;
    padding: 18px !important;
  }
  body.pos-body #posStaffScheduleModal .pos-staff-add-form:not(.is-hidden) .pos-staff-add-grid {
    grid-template-columns: 1fr !important;
  }
  body.pos-body #posStaffScheduleModal .pos-staff-add-form:not(.is-hidden) .pos-staff-add-actions {
    grid-template-columns: 1fr 1fr !important;
  }
}

/* v1.5.7 - POS Staff Schedule + Time Clock PIN keypads: taller tablet tap targets */
body.pos-body .pos-staff-pin-keypad,
body.pos-body .time-clock-keypad {
  gap: 12px !important;
}

body.pos-body .pos-staff-pin-keypad button,
body.pos-body .time-clock-keypad button {
  min-height: 72px !important;
  border-radius: 20px !important;
  font-size: 28px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  padding: 16px 10px !important;
}

body.pos-body .pos-staff-pin-keypad button[data-staff-pin-key="clear"],
body.pos-body .pos-staff-pin-keypad button[data-staff-pin-key="back"],
body.pos-body .time-clock-keypad button[data-time-clock-key="clear"],
body.pos-body .time-clock-keypad button[data-time-clock-key="back"] {
  font-size: 22px !important;
}

@media (max-height: 760px) {
  body.pos-body .pos-staff-pin-keypad button,
  body.pos-body .time-clock-keypad button {
    min-height: 64px !important;
    font-size: 25px !important;
  }

  body.pos-body .pos-staff-pin-keypad button[data-staff-pin-key="clear"],
  body.pos-body .pos-staff-pin-keypad button[data-staff-pin-key="back"],
  body.pos-body .time-clock-keypad button[data-time-clock-key="clear"],
  body.pos-body .time-clock-keypad button[data-time-clock-key="back"] {
    font-size: 20px !important;
  }
}

/* v1.5.7 - POS Gift Certificate keypad: match taller Staff/Clock PIN tap targets */
body.pos-body .pos-gift-card-keypad {
  gap: 12px !important;
}

body.pos-body .pos-gift-card-keypad button {
  min-height: 72px !important;
  border-radius: 20px !important;
  font-size: 28px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  padding: 16px 10px !important;
}

body.pos-body .pos-gift-card-keypad button[data-gift-form-key="clear"],
body.pos-body .pos-gift-card-keypad button[data-gift-form-key="back"] {
  font-size: 22px !important;
}

body.pos-body #posGiftCardModal .pos-gift-card-card {
  width: min(620px, calc(100vw - 20px)) !important;
}

@media (max-height: 760px) {
  body.pos-body .pos-gift-card-keypad button {
    min-height: 64px !important;
    font-size: 25px !important;
  }

  body.pos-body .pos-gift-card-keypad button[data-gift-form-key="clear"],
  body.pos-body .pos-gift-card-keypad button[data-gift-form-key="back"] {
    font-size: 20px !important;
  }
}

/* v1.5.9 - Admin card drag sorting for categories and modifiers */
body.admin-body #adminCategories,
body.admin-body #adminGroups,
body.admin-body #adminModifiers {
  transition: background .16s ease, box-shadow .16s ease;
}

body.admin-body #adminCategories.is-drag-over,
body.admin-body #adminGroups.is-drag-over,
body.admin-body #adminModifiers.is-drag-over {
  border-radius: 24px;
  background: var(--primary-50);
  box-shadow: inset 0 0 0 3px var(--primary-300);
}

body.admin-body .admin-category-row-card[draggable="true"],
body.admin-body .admin-modifier-row-card[draggable="true"] {
  position: relative;
  cursor: grab;
  padding-right: 66px;
  transition: transform .16s ease, box-shadow .16s ease, opacity .16s ease;
}

body.admin-body .admin-category-row-card[draggable="true"]:active,
body.admin-body .admin-modifier-row-card[draggable="true"]:active {
  cursor: grabbing;
}

body.admin-body .admin-category-row-card.is-dragging,
body.admin-body .admin-modifier-row-card.is-dragging {
  opacity: .46;
  transform: scale(.985);
  box-shadow: 0 12px 30px rgba(15,23,42,.14);
}

body.admin-body .admin-category-row-card .admin-drag-handle,
body.admin-body .admin-modifier-row-card .admin-drag-handle {
  top: 50%;
  right: 14px;
  transform: translateY(-50%);
  pointer-events: none;
}

@media (max-width: 720px) {
  body.admin-body .admin-category-row-card[draggable="true"],
  body.admin-body .admin-modifier-row-card[draggable="true"] {
    padding-right: 54px;
  }
}
/* v1.5.10: Hide online header cart button on desktop where cart sidebar is already visible. */
@media (min-width: 981px) {
  body.online-body .online-cart-button {
    display: none !important;
  }
}

/* v1.5.10 - Taller POS/Kitchen order tab action buttons */
body.pos-body .pos-order-card .kitchen-card-actions .kitchen-action-btn,
body.pos-body .pos-order-card .kitchen-card-actions .kitchen-small-btn,
body.kitchen-body .kitchen-order-card .kitchen-card-actions .kitchen-action-btn,
body.kitchen-body .kitchen-order-card .kitchen-card-actions .kitchen-small-btn {
  min-height: 58px !important;
  height: auto !important;
  border-radius: 18px !important;
  padding: 12px 18px !important;
  font-size: 16px !important;
  line-height: 1.15 !important;
  font-weight: 1000 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  white-space: normal !important;
}

body.pos-body .mobile-queue-actions .primary-btn,
body.pos-body .mobile-queue-actions .cancel-btn,
body.pos-body .pos-panel[data-pos-panel="mobile-queue"] .mobile-queue-actions .primary-btn,
body.pos-body .pos-panel[data-pos-panel="mobile-queue"] .mobile-queue-actions .cancel-btn {
  min-height: 58px !important;
  height: auto !important;
  border-radius: 18px !important;
  padding: 12px 18px !important;
  font-size: 16px !important;
  line-height: 1.15 !important;
  font-weight: 1000 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  white-space: normal !important;
}

@media (max-width: 760px) {
  body.pos-body .pos-order-card .kitchen-card-actions .kitchen-action-btn,
  body.pos-body .pos-order-card .kitchen-card-actions .kitchen-small-btn,
  body.kitchen-body .kitchen-order-card .kitchen-card-actions .kitchen-action-btn,
  body.kitchen-body .kitchen-order-card .kitchen-card-actions .kitchen-small-btn,
  body.pos-body .mobile-queue-actions .primary-btn,
  body.pos-body .mobile-queue-actions .cancel-btn,
  body.pos-body .pos-panel[data-pos-panel="mobile-queue"] .mobile-queue-actions .primary-btn,
  body.pos-body .pos-panel[data-pos-panel="mobile-queue"] .mobile-queue-actions .cancel-btn {
    min-height: 62px !important;
    padding: 14px 18px !important;
    font-size: 17px !important;
  }
}

/* v1.5.11 - Taller POS Settings and sidebar cart action buttons */
body.pos-body .pos-panel[data-pos-panel="settings"] .pos-settings-card .primary-btn,
body.pos-body .pos-panel[data-pos-panel="settings"] .pos-settings-card .danger-settings-btn,
body.pos-body .pos-panel[data-pos-panel="settings"] .pos-printer-actions .primary-btn {
  min-height: 58px !important;
  height: auto !important;
  border-radius: 18px !important;
  padding: 12px 18px !important;
  font-size: 16px !important;
  line-height: 1.15 !important;
  font-weight: 1000 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  white-space: normal !important;
}

body.pos-body .pos-cart-total .pos-pay-grid #posSendKitchenBtn.checkout-btn,
body.pos-body .pos-cart-total .pos-pay-grid #posSendQueueBtn.pos-send-queue-btn,
body.pos-body .pos-cart-total .pos-pay-grid #posPayCardBtn.primary-btn {
  min-height: 62px !important;
  height: auto !important;
  border-radius: 18px !important;
  padding: 14px 18px !important;
  font-size: 17px !important;
  line-height: 1.15 !important;
  font-weight: 1000 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  white-space: normal !important;
  width: 100% !important;
}

body.pos-body .pos-cart-total .pos-pay-grid {
  gap: 12px !important;
}

@media (max-width: 760px) {
  body.pos-body .pos-panel[data-pos-panel="settings"] .pos-settings-card .primary-btn,
  body.pos-body .pos-panel[data-pos-panel="settings"] .pos-settings-card .danger-settings-btn,
  body.pos-body .pos-panel[data-pos-panel="settings"] .pos-printer-actions .primary-btn,
  body.pos-body .pos-cart-total .pos-pay-grid #posSendKitchenBtn.checkout-btn,
  body.pos-body .pos-cart-total .pos-pay-grid #posSendQueueBtn.pos-send-queue-btn,
  body.pos-body .pos-cart-total .pos-pay-grid #posPayCardBtn.primary-btn {
    min-height: 64px !important;
    padding: 15px 18px !important;
    font-size: 17px !important;
  }
}


/* v1.5.13 - Mobile POS: keep Gift / Cart / + Item sticky while scrolling */
@media (max-width: 760px) {
  body.pos-body .pos-header {
    position: sticky !important;
    top: 0 !important;
    z-index: 1400 !important;
    background: rgba(255,255,255,.97) !important;
    backdrop-filter: blur(18px) !important;
    -webkit-backdrop-filter: blur(18px) !important;
    transition: padding .16s ease, box-shadow .16s ease, background .16s ease !important;
  }

  body.pos-body.pos-mobile-actions-stuck .pos-header {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    grid-template-areas: "gift cart item" !important;
    column-gap: 8px !important;
    row-gap: 0 !important;
    padding: max(8px, env(safe-area-inset-top)) 10px 10px !important;
    border-bottom: 3px solid rgba(var(--primary-500-rgb), .20) !important;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .10) !important;
  }

  body.pos-body.pos-mobile-actions-stuck .pos-brand {
    display: none !important;
  }

  body.pos-body.pos-mobile-actions-stuck .pos-staff-gift-actions,
  body.pos-body.pos-mobile-actions-stuck .pos-header-actions {
    display: contents !important;
  }

  body.pos-body.pos-mobile-actions-stuck .pos-gift-card-top-btn {
    grid-area: gift !important;
  }

  body.pos-body.pos-mobile-actions-stuck #posCartBtn {
    grid-area: cart !important;
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  body.pos-body.pos-mobile-actions-stuck #posManualItemBtn {
    grid-area: item !important;
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  body.pos-body.pos-mobile-actions-stuck .pos-gift-card-top-btn,
  body.pos-body.pos-mobile-actions-stuck #posCartBtn,
  body.pos-body.pos-mobile-actions-stuck #posManualItemBtn {
    height: 54px !important;
    min-height: 54px !important;
    border-radius: 18px !important;
    font-size: 15px !important;
  }

  body.pos-body.pos-mobile-actions-stuck .pos-tabs {
    top: 74px !important;
  }
}

@media (max-width: 380px) {
  body.pos-body.pos-mobile-actions-stuck .pos-gift-card-top-btn,
  body.pos-body.pos-mobile-actions-stuck #posCartBtn,
  body.pos-body.pos-mobile-actions-stuck #posManualItemBtn {
    height: 50px !important;
    min-height: 50px !important;
    font-size: 13px !important;
  }

  body.pos-body.pos-mobile-actions-stuck .pos-tabs {
    top: 68px !important;
  }
}

/* v1.5.14 - Mobile POS: hard-fix sticky action row with fixed positioning.
   Avoids iOS/mobile browser cases where sticky is skipped by the active scroll container. */
@media (max-width: 760px) {
  body.pos-body.pos-mobile-actions-stuck .pos-shell {
    padding-top: 74px !important;
  }

  body.pos-body.pos-mobile-actions-stuck .pos-header {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    z-index: 5000 !important;
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    grid-template-areas: "gift cart item" !important;
    column-gap: 8px !important;
    row-gap: 0 !important;
    align-items: stretch !important;
    padding: max(8px, env(safe-area-inset-top)) 10px 10px !important;
    background: rgba(255,255,255,.98) !important;
    border-bottom: 3px solid rgba(var(--primary-500-rgb), .18) !important;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .12) !important;
    backdrop-filter: blur(18px) !important;
    -webkit-backdrop-filter: blur(18px) !important;
    transform: translateZ(0) !important;
  }

  body.pos-body.pos-mobile-actions-stuck .pos-brand,
  body.pos-body.pos-mobile-actions-stuck .pos-staff-schedule-top-btn,
  body.pos-body.pos-mobile-actions-stuck #timeClockToggle,
  body.pos-body.pos-mobile-actions-stuck #posSoundToggle,
  body.pos-body.pos-mobile-actions-stuck #posRefreshBtn {
    display: none !important;
  }

  body.pos-body.pos-mobile-actions-stuck .pos-staff-gift-actions,
  body.pos-body.pos-mobile-actions-stuck .pos-header-actions {
    display: contents !important;
  }

  body.pos-body.pos-mobile-actions-stuck .pos-gift-card-top-btn {
    grid-area: gift !important;
  }

  body.pos-body.pos-mobile-actions-stuck #posCartBtn {
    grid-area: cart !important;
  }

  body.pos-body.pos-mobile-actions-stuck #posManualItemBtn {
    grid-area: item !important;
  }

  body.pos-body.pos-mobile-actions-stuck .pos-gift-card-top-btn,
  body.pos-body.pos-mobile-actions-stuck #posCartBtn,
  body.pos-body.pos-mobile-actions-stuck #posManualItemBtn {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    height: 56px !important;
    min-height: 56px !important;
    margin: 0 !important;
    padding: 0 7px !important;
    border-radius: 18px !important;
    font-size: 15px !important;
    font-weight: 1000 !important;
    line-height: 1 !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 5px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  body.pos-body.pos-mobile-actions-stuck .pos-tabs {
    top: 76px !important;
    z-index: 4990 !important;
  }

  body.pos-body.pos-mobile-actions-stuck .pos-category-tabs {
    top: 143px !important;
    z-index: 4980 !important;
  }
}

@media (max-width: 380px) {
  body.pos-body.pos-mobile-actions-stuck .pos-shell {
    padding-top: 68px !important;
  }

  body.pos-body.pos-mobile-actions-stuck .pos-header {
    column-gap: 6px !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
  }

  body.pos-body.pos-mobile-actions-stuck .pos-gift-card-top-btn,
  body.pos-body.pos-mobile-actions-stuck #posCartBtn,
  body.pos-body.pos-mobile-actions-stuck #posManualItemBtn {
    height: 52px !important;
    min-height: 52px !important;
    font-size: 13px !important;
    padding-left: 4px !important;
    padding-right: 4px !important;
  }

  body.pos-body.pos-mobile-actions-stuck .pos-tabs {
    top: 70px !important;
  }

  body.pos-body.pos-mobile-actions-stuck .pos-category-tabs {
    top: 136px !important;
  }
}

/* v1.5.15 - POS/mobile checkout button height normalization + duplicate label fix */
@media (max-width: 760px) {
  body.pos-body .pos-gift-card-top-btn,
  body.pos-body #posCartBtn,
  body.pos-body #posManualItemBtn {
    height: 56px !important;
    min-height: 56px !important;
    max-height: 56px !important;
    padding: 0 8px !important;
    border-radius: 18px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
    box-sizing: border-box !important;
  }

  body.pos-body .pos-cart-total .pos-pay-grid #posSendKitchenBtn,
  body.pos-body .pos-cart-total .pos-pay-grid #posPayCardBtn,
  body.pos-body .modal-actions .cancel-btn,
  body.pos-body .modal-actions .primary-btn,
  body.pos-body #posGiftCardCollectPinBtn,
  body.pos-body #posManualItemAddBtn,
  body.online-body #onlineCheckoutModal .modal-actions .cancel-btn,
  body.online-body #onlineCheckoutModal .modal-actions .primary-btn,
  body.online-body #onlinePaymentModal .modal-actions .cancel-btn,
  body.online-body #onlinePaymentModal .modal-actions .primary-btn,
  body.online-body #onlineFinishCheckoutBtn,
  body.online-body #onlineSubmitOrderBtn {
    height: 64px !important;
    min-height: 64px !important;
    max-height: 64px !important;
    padding: 0 18px !important;
    border-radius: 22px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    white-space: nowrap !important;
    line-height: 1 !important;
    box-sizing: border-box !important;
  }

  body.pos-body .pos-cart-total .pos-pay-grid #posSendKitchenBtn,
  body.pos-body .pos-cart-total .pos-pay-grid #posPayCardBtn {
    width: 100% !important;
    margin: 0 !important;
    font-size: 22px !important;
    font-weight: 1000 !important;
  }

  body.pos-body #posSendKitchenBtn::before,
  body.pos-body #posSendKitchenBtn::after,
  body.pos-body .pos-cart-total .pos-pay-grid #posSendKitchenBtn::before,
  body.pos-body .pos-cart-total .pos-pay-grid #posSendKitchenBtn::after {
    content: none !important;
    display: none !important;
  }

  body.pos-body .pos-cart-total .pos-pay-grid #posSendKitchenBtn.checkout-btn {
    font-size: 22px !important;
  }

  body.pos-body .pos-gift-card-keypad button,
  body.pos-body .pos-manual-keypad button {
    height: 58px !important;
    min-height: 58px !important;
    max-height: 58px !important;
    padding: 0 10px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
    box-sizing: border-box !important;
  }

  body.pos-body .pos-manual-item-card .modal-actions,
  body.pos-body .pos-gift-card-card .modal-actions,
  body.online-body #onlineCheckoutModal .modal-actions,
  body.online-body #onlinePaymentModal .modal-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }
}

@media (max-width: 380px) {
  body.pos-body .pos-gift-card-top-btn,
  body.pos-body #posCartBtn,
  body.pos-body #posManualItemBtn {
    height: 52px !important;
    min-height: 52px !important;
    max-height: 52px !important;
    font-size: 13px !important;
  }

  body.pos-body .pos-cart-total .pos-pay-grid #posSendKitchenBtn,
  body.pos-body .pos-cart-total .pos-pay-grid #posPayCardBtn,
  body.pos-body .modal-actions .cancel-btn,
  body.pos-body .modal-actions .primary-btn,
  body.online-body #onlineCheckoutModal .modal-actions .cancel-btn,
  body.online-body #onlineCheckoutModal .modal-actions .primary-btn,
  body.online-body #onlinePaymentModal .modal-actions .cancel-btn,
  body.online-body #onlinePaymentModal .modal-actions .primary-btn,
  body.online-body #onlineFinishCheckoutBtn,
  body.online-body #onlineSubmitOrderBtn {
    height: 60px !important;
    min-height: 60px !important;
    max-height: 60px !important;
    font-size: 18px !important;
  }
}


/* v1.5.16 - Kiosk regular product cards with image, title, ingredients and price */
body.kiosk-body .product-grid,
.kiosk-shell .product-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: clamp(16px, 1.7vw, 24px) !important;
  align-items: stretch !important;
}

body.kiosk-body .product-card,
.kiosk-shell .product-card {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  min-height: 0 !important;
  height: auto !important;
  padding: 0 !important;
  border-radius: 24px !important;
  overflow: hidden !important;
  background: #ffffff !important;
  border: 3px solid rgba(191, 219, 254, .98) !important;
  box-shadow: 0 12px 30px rgba(15, 23, 42, .12) !important;
  text-align: left !important;
}

body.kiosk-body .product-card .product-image,
.kiosk-shell .product-card .product-image {
  position: relative !important;
  inset: auto !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1 / 1 !important;
  min-height: 0 !important;
  max-height: none !important;
  border-radius: 0 !important;
  overflow: hidden !important;
  background: linear-gradient(135deg, rgba(219, 234, 254, .95), rgba(239, 246, 255, .95)) !important;
}

body.kiosk-body .product-card .product-image img,
.kiosk-shell .product-card .product-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  display: block !important;
}

body.kiosk-body .product-card .product-image span,
.kiosk-shell .product-card .product-image span {
  display: flex !important;
  width: 100% !important;
  height: 100% !important;
  align-items: center !important;
  justify-content: center !important;
  color: #1d4ed8 !important;
  font-size: clamp(42px, 5vw, 72px) !important;
  font-weight: 1000 !important;
}

body.kiosk-body .product-card .product-card-body,
.kiosk-shell .product-card .product-card-body {
  display: flex !important;
  flex: 1 1 auto !important;
  flex-direction: column !important;
  gap: 10px !important;
  padding: clamp(14px, 1.45vw, 18px) !important;
}

body.kiosk-body .product-card .product-topline,
.kiosk-shell .product-card .product-topline {
  position: static !important;
  z-index: auto !important;
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 10px !important;
  min-width: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}

body.kiosk-body .product-card .product-name,
.kiosk-shell .product-card .product-name {
  color: #0f172a !important;
  font-size: clamp(18px, 1.9vw, 25px) !important;
  line-height: 1.1 !important;
  letter-spacing: -.035em !important;
  font-weight: 1000 !important;
  text-shadow: none !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

body.kiosk-body .product-card .product-desc,
.kiosk-shell .product-card .product-desc {
  display: -webkit-box !important;
  color: #64748b !important;
  font-size: clamp(13px, 1.2vw, 16px) !important;
  line-height: 1.28 !important;
  font-weight: 800 !important;
  min-height: calc(1.28em * 2) !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

body.kiosk-body .product-card .product-footer,
.kiosk-shell .product-card .product-footer {
  position: static !important;
  z-index: auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 10px !important;
  width: 100% !important;
  min-width: 0 !important;
  margin-top: auto !important;
  padding: 0 !important;
}

body.kiosk-body .product-card .product-price,
.kiosk-shell .product-card .product-price {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  color: #0f172a !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  font-size: clamp(20px, 2vw, 28px) !important;
  line-height: 1 !important;
  font-weight: 1000 !important;
  box-shadow: none !important;
}

body.kiosk-body .product-card .add-chip,
.kiosk-shell .product-card .add-chip {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 44px !important;
  padding: 0 16px !important;
  border-radius: 999px !important;
  background: #2563eb !important;
  color: #ffffff !important;
  font-size: clamp(13px, 1.1vw, 15px) !important;
  line-height: 1 !important;
  font-weight: 1000 !important;
  white-space: nowrap !important;
}

body.kiosk-body .product-card .product-badge,
.kiosk-shell .product-card .product-badge {
  position: static !important;
  display: inline-flex !important;
  align-items: center !important;
  flex: 0 0 auto !important;
  border-radius: 999px !important;
  padding: 5px 9px !important;
  background: #eff6ff !important;
  color: #1d4ed8 !important;
  font-size: 12px !important;
  font-weight: 1000 !important;
}

@media (min-width: 900px) and (max-width: 1180px) {
  body.kiosk-body .product-grid,
  .kiosk-shell .product-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 899px) and (min-width: 641px) {
  body.kiosk-body .product-grid,
  .kiosk-shell .product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 640px) {
  body.kiosk-body .product-grid,
  .kiosk-shell .product-grid {
    grid-template-columns: 1fr !important;
  }
}


/* v1.5.17 - Kiosk cart button cleanup and slightly shorter product images */
body.kiosk-body .header-cart-btn,
.kiosk-shell .header-cart-btn {
  min-height: 72px !important;
  padding: 10px 16px 10px 10px !important;
  gap: 12px !important;
  border: 3px solid rgba(191, 219, 254, 0.98) !important;
  background: #ffffff !important;
  color: #0f172a !important;
}

body.kiosk-body .header-cart-icon,
.kiosk-shell .header-cart-icon {
  width: 48px !important;
  height: 48px !important;
  min-width: 48px !important;
  min-height: 48px !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 999px !important;
  background: #2563eb !important;
  color: #ffffff !important;
  font-size: 0 !important;
  line-height: 0 !important;
  box-shadow: none !important;
}

body.kiosk-body .header-cart-icon .header-cart-icon-svg,
.kiosk-shell .header-cart-icon .header-cart-icon-svg {
  width: 23px !important;
  height: 23px !important;
  display: block !important;
  color: #ffffff !important;
}

body.kiosk-body .header-cart-btn strong,
.kiosk-shell .header-cart-btn strong,
body.kiosk-body .header-cart-btn small,
.kiosk-shell .header-cart-btn small,
body.kiosk-body .header-cart-btn em,
.kiosk-shell .header-cart-btn em {
  color: #0f172a !important;
}

body.kiosk-body .product-card .product-image,
.kiosk-shell .product-card .product-image {
  aspect-ratio: 5 / 4 !important;
}

/* North / Ingenico kiosk terminal flow */
.brand-title { cursor: default; user-select: none; }
.kiosk-terminal-pin,
.kiosk-terminal-settings { display: grid; gap: 10px; margin: 18px 0; }
.terminal-pin-submit { min-height: 66px; }
.kiosk-terminal-status {
  min-height: 26px;
  font-size: 16px;
  font-weight: 1000;
  color: #6b7280;
}
.kiosk-terminal-status.is-error { color: #b91c1c; }
.kiosk-terminal-status.is-success { color: #166534; }
.kiosk-payment-card { text-align: center; }
.terminal-payment-total {
  margin: 18px 0;
  font-size: clamp(54px, 8vw, 96px);
  line-height: 1;
  font-weight: 1000;
  letter-spacing: -0.07em;
  color: #111827;
}
.terminal-payment-debug {
  margin: 8px auto 18px;
  max-width: 720px;
  text-align: center;
  background: #fef3c7;
  color: #92400e;
  border: 2px solid #fde68a;
  border-radius: 18px;
  padding: 16px 18px;
  font-size: clamp(18px, 2.2vw, 26px);
  line-height: 1.25;
  font-weight: 1000;
}
.terminal-payment-debug[hidden] { display: none; }

/* Kiosk header restaurant name/subtitle enlarged 60% */
body.kiosk-body .brand-title,
.kiosk-shell .brand-title {
  font-size: clamp(38px, 4vw, 54px) !important;
  line-height: .96 !important;
}

body.kiosk-body .brand-subtitle,
.kiosk-shell .brand-subtitle {
  font-size: clamp(19px, 1.6vw, 24px) !important;
  line-height: 1.12 !important;
}


/* v1.6.7 - Kiosk hidden settings uses Location PIN + logout button */
.kiosk-settings-actions {
  display: grid !important;
  grid-template-columns: minmax(160px, 1fr) minmax(160px, 1fr);
  align-items: stretch;
}
.kiosk-settings-actions #testTerminalConnectionBtn,
.kiosk-settings-actions #saveTerminalSettingsBtn {
  grid-column: auto;
}
.kiosk-settings-actions .kiosk-settings-logout-btn {
  justify-self: stretch;
}
.danger-btn {
  border: 0;
  border-radius: 26px;
  background: #fee2e2;
  color: #991b1b;
  font-weight: 1000;
  font-size: 21px;
  min-height: 62px;
  padding: 14px 20px;
}
.danger-btn:disabled { opacity: .65; cursor: wait; }
@media (min-width: 760px) {
  .kiosk-settings-actions { grid-template-columns: 1fr 1fr 1.15fr 1.15fr; }
}

/* v1.7.2 - Prevent duplicated Send to POS label on mobile POS checkout button */
body.pos-body .pos-cart-total .pos-pay-grid #posSendKitchenBtn.checkout-btn,
body.pos-body #posSendKitchenBtn.checkout-btn,
body.pos-body #posSendKitchenBtn {
  font-size: 22px !important;
  color: #fff !important;
}

body.pos-body .pos-cart-total .pos-pay-grid #posSendKitchenBtn.checkout-btn::before,
body.pos-body .pos-cart-total .pos-pay-grid #posSendKitchenBtn.checkout-btn::after,
body.pos-body #posSendKitchenBtn.checkout-btn::before,
body.pos-body #posSendKitchenBtn.checkout-btn::after,
body.pos-body #posSendKitchenBtn::before,
body.pos-body #posSendKitchenBtn::after {
  content: none !important;
  display: none !important;
}

/* North/NAB online checkout fields */
.online-payment-grid {
  display: grid;
  gap: 14px;
}

.online-payment-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.online-payment-split .input-label {
  display: grid;
  gap: 8px;
}

@media (max-width: 760px) {
  .online-payment-split {
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }
}


/* v1.7.9 - POS staff scheduling: replace hard-to-use Android time wheel with large shift time selects */
body.pos-body #posStaffScheduleModal .pos-staff-add-form:not(.is-hidden) #posStaffScheduleStartInput,
body.pos-body #posStaffScheduleModal .pos-staff-add-form:not(.is-hidden) #posStaffScheduleEndInput {
  appearance: auto !important;
  -webkit-appearance: menulist !important;
  background: #fff !important;
  cursor: pointer !important;
}
body.pos-body #posStaffScheduleModal .pos-staff-add-form:not(.is-hidden) #posStaffScheduleStartInput option,
body.pos-body #posStaffScheduleModal .pos-staff-add-form:not(.is-hidden) #posStaffScheduleEndInput option {
  font-size: 22px !important;
  font-weight: 850 !important;
  padding: 12px !important;
}

/* Eatery Kiosk checkout: no Send to POS button on customer kiosk */
.kiosk-body .kiosk-checkout-actions #submitOrderBtn { width: 100%; }
.kiosk-body .kiosk-checkout-actions #sendToPosBtn { display: none !important; }

/* v1.3.89 - POS Queue cards match Active/Completed order cards */
body.pos-body .mobile-pos-queue-panel {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  min-height: 0 !important;
  box-shadow: none !important;
}

body.pos-body .mobile-pos-queue-head {
  display: none !important;
}

body.pos-body #mobilePosQueueList.mobile-pos-queue-list,
body.pos-body .mobile-pos-queue-list {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)) !important;
  gap: 16px !important;
  align-items: start !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}

body.pos-body .mobile-pos-queue-list > .mobile-queue-card.pos-order-card,
body.pos-body .mobile-queue-card.pos-order-card {
  background: #f8fafc !important;
  color: #0f172a !important;
  border-radius: 28px !important;
  padding: 18px !important;
  box-shadow: 0 18px 38px rgba(0,0,0,.14) !important;
  border: 4px solid var(--primary-400) !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

body.pos-body .mobile-queue-card .mobile-queue-card-head {
  display: block !important;
  padding-bottom: 0 !important;
  border-bottom: 0 !important;
}

body.pos-body .mobile-queue-card .order-card-title-row {
  display: grid !important;
  grid-template-columns: 1fr auto !important;
  align-items: start !important;
  gap: 10px !important;
  margin-bottom: 10px !important;
}

body.pos-body .mobile-queue-card .kitchen-customer-name {
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.pos-body .mobile-queue-card .mobile-queue-meta {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
}

body.pos-body .mobile-queue-card .mobile-queue-meta span {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 28px !important;
  border-radius: 999px !important;
  padding: 6px 10px !important;
  background: #e2e8f0 !important;
  color: #0f172a !important;
  font-size: 13px !important;
  font-weight: 1000 !important;
  line-height: 1 !important;
  text-transform: capitalize !important;
}

body.pos-body .mobile-queue-card .mobile-queue-items {
  list-style: none !important;
  padding: 0 !important;
  margin: 14px 0 0 !important;
  display: grid !important;
  gap: 10px !important;
}

body.pos-body .mobile-queue-card .mobile-queue-notes {
  margin: 14px 0 0 !important;
}

body.pos-body .mobile-queue-card .mobile-queue-actions,
body.pos-body .mobile-queue-card .kitchen-card-actions.mobile-queue-actions {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px !important;
  margin-top: 16px !important;
  width: 100% !important;
}

body.pos-body .mobile-queue-card .mobile-queue-actions.has-card-payment {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

body.pos-body .mobile-queue-card .mobile-queue-actions button {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  min-height: 58px !important;
  height: auto !important;
  border-radius: 18px !important;
  padding: 12px 10px !important;
  font-size: 15px !important;
  font-weight: 1000 !important;
  white-space: normal !important;
}

@media (min-width: 761px) and (max-width: 1400px) {
  body.pos-body .pos-panel[data-pos-panel="mobile-queue"].is-active {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
  }

  body.pos-body .pos-panel[data-pos-panel="mobile-queue"].is-active .mobile-pos-queue-panel,
  body.pos-body .mobile-pos-queue-panel {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
  }

  body.pos-body #mobilePosQueueList.mobile-pos-queue-list,
  body.pos-body .mobile-pos-queue-list {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 16px !important;
    max-width: none !important;
  }
}

@media (max-width: 1100px) and (min-width: 761px) {
  body.pos-body #mobilePosQueueList.mobile-pos-queue-list,
  body.pos-body .mobile-pos-queue-list {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 760px) {
  body.pos-body .mobile-queue-card .mobile-queue-actions,
  body.pos-body .mobile-queue-card .mobile-queue-actions.has-card-payment {
    grid-template-columns: 1fr !important;
  }
}

/* v1.7.4-queue-three-columns - POS Queue fixed 3-column grid */
@media (min-width: 761px) {
  body.pos-body .mobile-pos-queue-list {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

/* v1.7.5-queue-tight - Tablet POS Queue: cleaner 3-column spacing */
@media (min-width: 761px) {
  body.pos-body .pos-panel[data-pos-panel="mobile-queue"].is-active {
    padding: 12px 10px 24px !important;
  }

  body.pos-body .pos-panel[data-pos-panel="mobile-queue"].is-active .mobile-pos-queue-panel,
  body.pos-body .mobile-pos-queue-panel {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.pos-body .pos-panel[data-pos-panel="mobile-queue"].is-active #mobilePosQueueList.mobile-pos-queue-list,
  body.pos-body #mobilePosQueueList.mobile-pos-queue-list,
  body.pos-body .mobile-pos-queue-list {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    column-gap: 10px !important;
    row-gap: 12px !important;
    justify-content: stretch !important;
    justify-items: stretch !important;
    align-items: start !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }

  body.pos-body .pos-panel[data-pos-panel="mobile-queue"] #mobilePosQueueList.mobile-pos-queue-list > .mobile-queue-card.pos-order-card,
  body.pos-body #mobilePosQueueList.mobile-pos-queue-list > .mobile-queue-card.pos-order-card,
  body.pos-body .mobile-pos-queue-list > .mobile-queue-card.pos-order-card,
  body.pos-body .mobile-queue-card.pos-order-card {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    justify-self: stretch !important;
    border-width: 3px !important;
    border-radius: 24px !important;
    padding: 14px !important;
  }

  body.pos-body .mobile-queue-card .order-card-title-row {
    gap: 6px !important;
    margin-bottom: 8px !important;
  }

  body.pos-body .mobile-queue-card .mobile-queue-meta {
    gap: 6px !important;
  }

  body.pos-body .mobile-queue-card .mobile-queue-meta span {
    min-height: 24px !important;
    padding: 5px 8px !important;
    font-size: 12px !important;
  }

  body.pos-body .mobile-queue-card .mobile-queue-items {
    margin-top: 10px !important;
    gap: 8px !important;
  }

  body.pos-body .mobile-queue-card .kitchen-item {
    padding: 12px !important;
    border-radius: 18px !important;
  }

  body.pos-body .mobile-queue-card .mobile-queue-actions,
  body.pos-body .mobile-queue-card .kitchen-card-actions.mobile-queue-actions,
  body.pos-body .mobile-queue-card .mobile-queue-actions.has-card-payment {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 8px !important;
    margin-top: 12px !important;
  }

  body.pos-body .mobile-queue-card .mobile-queue-actions button {
    min-height: 52px !important;
    border-radius: 16px !important;
    padding: 10px 8px !important;
    font-size: 14px !important;
  }
}

@media (max-width: 760px) {
  body.pos-body #mobilePosQueueList.mobile-pos-queue-list,
  body.pos-body .mobile-pos-queue-list {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }
}


/* v1.7.6-pos-button-consistency - POS-wide button sizing/design cleanup */
body.pos-body button,
body.pos-body .primary-btn,
body.pos-body .secondary-btn,
body.pos-body .cancel-btn,
body.pos-body .checkout-btn,
body.pos-body .danger-btn,
body.pos-body .danger-settings-btn,
body.pos-body .kitchen-small-btn,
body.pos-body .kitchen-action-btn,
body.pos-body .pos-clear-order-btn,
body.pos-body .menu-control-search-btn,
body.pos-body .pos-pill,
body.pos-body .kitchen-pill,
body.pos-body .pos-tab,
body.pos-body .pos-tip-back-btn,
body.pos-body .pos-tip-choice,
body.pos-body .pos-product-add {
  min-height: 52px !important;
  height: 52px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  border-radius: 16px !important;
  padding: 0 16px !important;
  line-height: 1.05 !important;
  font-weight: 1000 !important;
  text-align: center !important;
  white-space: normal !important;
  box-sizing: border-box !important;
}

body.pos-body .pos-pill,
body.pos-body .kitchen-pill,
body.pos-body .pos-tab {
  border-radius: 18px !important;
  font-size: clamp(13px, 1vw, 16px) !important;
}

body.pos-body .pos-tabs {
  align-items: stretch !important;
}

body.pos-body .pos-tabs .pos-tab {
  width: 100% !important;
}

body.pos-body .pos-header-actions {
  align-items: center !important;
}

body.pos-body .pos-pay-grid .checkout-btn,
body.pos-body .pos-pay-grid .secondary-btn,
body.pos-body .pos-pay-grid .primary-btn,
body.pos-body .modal-actions .primary-btn,
body.pos-body .modal-actions .secondary-btn,
body.pos-body .modal-actions .cancel-btn,
body.pos-body .settings-button-grid .primary-btn,
body.pos-body .settings-button-grid .danger-settings-btn,
body.pos-body .kitchen-card-actions button,
body.pos-body .mobile-queue-actions button,
body.pos-body .pos-staff-add-actions button {
  width: 100% !important;
}

body.pos-body .kitchen-card-actions,
body.pos-body .mobile-queue-actions,
body.pos-body .modal-actions,
body.pos-body .settings-button-grid,
body.pos-body .pos-staff-add-actions,
body.pos-body .pos-pay-grid {
  align-items: stretch !important;
}

/* Keep custom number/keypad controls intentionally taller for tablet tapping. */
body.pos-body .pos-staff-pin-keypad button,
body.pos-body .time-clock-keypad button,
body.pos-body .pos-gift-card-keypad button,
body.pos-body .pos-manual-keypad button,
body.pos-body .pos-tip-keypad button,
body.pos-body .custom-keyboard button,
body.pos-body [data-staff-pin-key],
body.pos-body [data-time-clock-key],
body.pos-body [data-gift-form-key],
body.pos-body [data-manual-key] {
  min-height: 72px !important;
  height: 72px !important;
  border-radius: 20px !important;
  font-size: 28px !important;
  padding: 16px 10px !important;
}

@media (max-height: 760px) {
  body.pos-body .pos-staff-pin-keypad button,
  body.pos-body .time-clock-keypad button,
  body.pos-body .pos-gift-card-keypad button,
  body.pos-body .pos-manual-keypad button,
  body.pos-body .pos-tip-keypad button,
  body.pos-body .custom-keyboard button,
  body.pos-body [data-staff-pin-key],
  body.pos-body [data-time-clock-key],
  body.pos-body [data-gift-form-key],
  body.pos-body [data-manual-key] {
    min-height: 64px !important;
    height: 64px !important;
    font-size: 25px !important;
  }
}

@media (max-width: 760px) {
  body.pos-body button,
  body.pos-body .primary-btn,
  body.pos-body .secondary-btn,
  body.pos-body .cancel-btn,
  body.pos-body .checkout-btn,
  body.pos-body .danger-btn,
  body.pos-body .danger-settings-btn,
  body.pos-body .kitchen-small-btn,
  body.pos-body .kitchen-action-btn,
  body.pos-body .pos-clear-order-btn,
  body.pos-body .menu-control-search-btn,
  body.pos-body .pos-pill,
  body.pos-body .kitchen-pill,
  body.pos-body .pos-tab,
  body.pos-body .pos-tip-back-btn,
  body.pos-body .pos-tip-choice,
  body.pos-body .pos-product-add {
    min-height: 50px !important;
    height: 50px !important;
    padding: 0 12px !important;
  }
}

/* v1.7.11 - Online checkout: professional secure payment presentation */
.online-secure-payment-strip {
  display: grid;
  gap: 12px;
  margin: 14px 0 22px;
  padding: 14px 16px;
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  border: 2px solid #cfe3ff;
  border-radius: 20px;
  box-shadow: 0 10px 28px rgba(15, 23, 42, .06);
}

.online-secure-strip-copy {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.online-secure-lock {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 7px 13px;
  border-radius: 999px;
  color: #0f172a;
  background: #eaf3ff;
  border: 1px solid #bfdbfe;
  font-weight: 950;
  line-height: 1;
  white-space: nowrap;
}

.online-secure-copy {
  color: #475569;
  font-size: 14px;
  font-weight: 850;
  letter-spacing: .01em;
}

.online-card-banner {
  display: block;
  width: 100%;
  max-width: 430px;
  height: auto;
  object-fit: contain;
  margin: 0 auto;
  border-radius: 10px;
}

.online-card-number-field {
  position: relative;
}

.online-card-number-field .big-input {
  padding-right: 150px;
}

.online-card-type-badge {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 86px;
  min-height: 38px;
  padding: 7px 12px;
  border-radius: 12px;
  border: 1px solid #bfdbfe;
  background: #ffffff;
  color: #0f172a;
  font-size: 15px;
  font-weight: 950;
  line-height: 1;
  box-shadow: 0 8px 18px rgba(15, 23, 42, .08);
  pointer-events: none;
}

.online-card-type-badge.is-empty {
  color: #64748b;
  background: #f8fafc;
}

.online-card-type-badge.is-visa {
  border-color: #c7d2fe;
}

.online-card-type-badge.is-mastercard {
  border-color: #fed7aa;
}

.online-card-type-badge.is-amex {
  border-color: #bae6fd;
}

.online-card-type-badge.is-discover {
  border-color: #fdba74;
}

.online-finish-payment-btn {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 9px;
}

@media (max-width: 760px) {
  .online-secure-payment-strip {
    gap: 10px;
    padding: 12px;
  }
  .online-secure-strip-copy {
    justify-content: center;
  }
  .online-secure-copy {
    font-size: 13px;
  }
  .online-card-banner {
    max-width: 100%;
  }
  .online-card-number-field .big-input {
    padding-right: 112px;
  }
  .online-card-type-badge {
    right: 12px;
    min-width: 72px;
    min-height: 34px;
    padding: 6px 9px;
    font-size: 13px;
    border-radius: 10px;
  }
}


/* v1.7.12 - Online mobile checkout button + accepted card banner hardening */
body.online-body #onlineCheckoutBtn,
body.online-body #onlineCartModalCheckoutBtn {
  height: 64px !important;
  min-height: 64px !important;
  max-height: 64px !important;
  padding: 0 22px !important;
  border-radius: 22px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  font-size: 22px !important;
  font-weight: 1000 !important;
  box-sizing: border-box !important;
}

body.online-body .online-card-banner {
  display: block !important;
  width: min(100%, 430px) !important;
  max-width: 430px !important;
  height: auto !important;
  max-height: 82px !important;
  object-fit: contain !important;
  margin: 0 auto !important;
  border-radius: 10px !important;
}

@media (max-width: 760px) {
  body.online-body #onlineCheckoutBtn,
  body.online-body #onlineCartModalCheckoutBtn {
    height: 64px !important;
    min-height: 64px !important;
    max-height: 64px !important;
    font-size: 20px !important;
  }

  body.online-body .online-secure-payment-strip {
    padding: 14px !important;
    gap: 12px !important;
  }

  body.online-body .online-card-banner {
    width: 100% !important;
    max-width: 100% !important;
    max-height: 74px !important;
  }
}

/* v1.7.13 - EPX secure payment trust line */
.online-epx-credit {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: -2px;
  color: #334155;
  font-size: 14px;
  font-weight: 850;
  letter-spacing: .01em;
  text-align: center;
}

.online-epx-credit strong {
  color: #0f172a;
  font-weight: 1000;
}

.online-epx-credit span {
  color: #64748b;
  font-weight: 800;
}

@media (max-width: 760px) {
  body.online-body .online-epx-credit {
    font-size: 13px !important;
    line-height: 1.25 !important;
  }
}

/* =========================================================
   Lobby TV clean menu board: featured center + order tickers
   ========================================================= */
body.lobby-tv-clean-body {
  margin: 0;
  width: 100%;
  height: 100vh;
  background:
    radial-gradient(circle at 12% 14%, rgba(var(--primary-500-rgb), .10), transparent 30%),
    radial-gradient(circle at 88% 20%, rgba(74, 222, 128, .09), transparent 28%),
    radial-gradient(circle at 50% 110%, rgba(96, 165, 250, .12), transparent 32%),
    linear-gradient(135deg, #05070c 0%, #08101b 48%, #060a12 100%) !important;
  color: #f7fbff;
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  overflow: hidden;
}

body.lobby-tv-clean-body .tv-board {
  width: 100vw;
  height: 100vh;
  min-height: 0;
  max-height: 100vh;
  padding: clamp(14px, .95vw, 20px);
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto auto;
  gap: clamp(10px, .72vw, 15px);
  overflow: hidden;
  background: transparent !important;
}

body.lobby-tv-clean-body .tv-header {
  min-height: clamp(62px, 4.6vw, 78px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: clamp(9px, .62vw, 12px) clamp(16px, 1vw, 22px);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 22px;
  background: linear-gradient(135deg, rgba(255,255,255,.06), rgba(255,255,255,.022));
  box-shadow: 0 18px 54px rgba(0,0,0,.34);
}

body.lobby-tv-clean-body .brand-block {
  display: flex;
  align-items: center;
  gap: clamp(12px, .85vw, 17px);
  min-width: 0;
}

body.lobby-tv-clean-body .brand-icon {
  width: clamp(46px, 3vw, 58px);
  height: clamp(46px, 3vw, 58px);
  aspect-ratio: 1;
  border-radius: 16px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  background: linear-gradient(135deg, var(--primary-500, #3b82f6), var(--primary-700, #2563eb));
  border: 1px solid rgba(255,255,255,.22);
  box-shadow: 0 14px 28px rgba(var(--primary-500-rgb), .22);
  color: #fff;
  font-size: clamp(22px, 1.55vw, 30px);
  font-weight: 900;
  overflow: hidden;
}

body.lobby-tv-clean-body .brand-icon img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body.lobby-tv-clean-body .brand-block h1 {
  max-width: min(55vw, 980px);
  margin: 0;
  color: #fff !important;
  text-shadow: 0 3px 18px rgba(0,0,0,.34);
  font-size: clamp(28px, 2.35vw, 40px);
  line-height: 1;
  letter-spacing: -.04em;
  font-weight: 900;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

body.lobby-tv-clean-body .brand-block p {
  margin: 3px 0 0;
  color: #c7d1df;
  font-size: clamp(12px, .72vw, 14px);
  font-weight: 800;
}

body.lobby-tv-clean-body .header-meta {
  display: flex;
  align-items: center;
  gap: clamp(12px, .85vw, 18px);
}

body.lobby-tv-clean-body .now-serving {
  display: grid;
  grid-template-columns: auto auto;
  align-items: center;
  gap: 8px;
  padding: 7px 11px;
  border-radius: 15px;
  border: 1px solid rgba(74, 222, 128, .32);
  background: rgba(74, 222, 128, .08);
}

body.lobby-tv-clean-body .now-serving span {
  color: #c7d1df;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .14em;
  text-transform: uppercase;
}

body.lobby-tv-clean-body .now-serving strong {
  color: #4ade80;
  font-size: clamp(20px, 1.4vw, 27px);
  line-height: 1;
  font-weight: 900;
}

body.lobby-tv-clean-body #lobbyClock {
  display: block;
  color: #fff !important;
  text-shadow: 0 3px 18px rgba(0,0,0,.34);
  font-size: clamp(30px, 2.55vw, 46px);
  line-height: 1;
  font-weight: 900;
  letter-spacing: -.05em;
  white-space: nowrap;
}

body.lobby-tv-clean-body .ticker-panel {
  min-width: 0;
  height: clamp(72px, 5vw, 90px);
  display: grid;
  grid-template-columns: clamp(188px, 13vw, 250px) minmax(0, 1fr);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 22px;
  overflow: hidden;
  background:
    linear-gradient(145deg, rgba(255,255,255,.05), rgba(255,255,255,.016)),
    rgba(13, 20, 32, .86);
  box-shadow: 0 18px 54px rgba(0,0,0,.34);
}

body.lobby-tv-clean-body .status-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 14px 10px 16px;
  border-right: 1px solid rgba(255,255,255,.12);
}

body.lobby-tv-clean-body .preparing .status-summary {
  background: linear-gradient(135deg, rgba(96, 165, 250, .15), rgba(255, 213, 74, .05));
}

body.lobby-tv-clean-body .ready .status-summary {
  background: linear-gradient(135deg, rgba(74, 222, 128, .16), rgba(22, 163, 74, .05));
}

body.lobby-tv-clean-body .status-copy {
  display: grid;
  gap: 3px;
  min-width: 0;
}

body.lobby-tv-clean-body .status-copy span,
body.lobby-tv-clean-body .feature-tag span,
body.lobby-tv-clean-body .menu-head span {
  color: #60a5fa;
  font-size: clamp(10px, .6vw, 12px);
  font-weight: 900;
  letter-spacing: .16em;
  text-transform: uppercase;
}

body.lobby-tv-clean-body .status-copy span {
  color: #8e9cb0;
}

body.lobby-tv-clean-body .status-copy strong {
  font-size: clamp(21px, 1.55vw, 29px);
  line-height: 1;
  font-weight: 900;
  letter-spacing: -.04em;
}

body.lobby-tv-clean-body .status-summary b {
  min-width: clamp(38px, 2.5vw, 46px);
  height: clamp(38px, 2.5vw, 46px);
  padding: 0 10px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  background: rgba(255,255,255,.92);
  color: #07111f;
  font-size: clamp(17px, 1.12vw, 23px);
  font-weight: 900;
  flex: 0 0 auto;
}

body.lobby-tv-clean-body .ticker-track-wrap {
  min-width: 0;
  overflow: hidden;
  display: flex;
  align-items: center;
  padding: 9px 10px;
}

body.lobby-tv-clean-body .ticker-track {
  min-width: 100%;
  display: flex;
  gap: 10px;
  align-items: center;
  white-space: nowrap;
}

body.lobby-tv-clean-body .ticker-track.scroll {
  width: max-content;
  animation: lobbyTickerScroll 34s linear infinite;
}

body.lobby-tv-clean-body .ready .ticker-track.scroll { animation-duration: 30s; }

@keyframes lobbyTickerScroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

body.lobby-tv-clean-body .order-chip {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-width: clamp(162px, 10.8vw, 215px);
  padding: 8px 12px 8px 8px;
  border-radius: 16px;
  background: rgba(255,255,255,.052);
  border: 1px solid rgba(255,255,255,.11);
}

body.lobby-tv-clean-body .order-num {
  width: clamp(42px, 2.7vw, 54px);
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: rgba(96, 165, 250, .16);
  color: #bfdbfe;
  font-size: clamp(18px, 1.25vw, 26px);
  line-height: 1;
  font-weight: 900;
  letter-spacing: -.04em;
}

body.lobby-tv-clean-body .ready .order-num {
  background: rgba(74, 222, 128, .16);
  color: #4ade80;
}

body.lobby-tv-clean-body .order-chip h3 {
  max-width: 128px;
  margin: 0;
  color: #f7fbff;
  font-size: clamp(13px, .78vw, 16px);
  line-height: 1.08;
  font-weight: 900;
  overflow: hidden;
  text-overflow: ellipsis;
}

body.lobby-tv-clean-body .order-chip p {
  margin: 2px 0 0;
  color: #8e9cb0;
  font-size: clamp(10px, .6vw, 12px);
  font-weight: 800;
}

body.lobby-tv-clean-body .empty-chip {
  color: #c7d1df;
  font-size: clamp(15px, .9vw, 19px);
  font-weight: 900;
  padding-left: 8px;
}

body.lobby-tv-clean-body .content-grid {
  min-height: 0;
  display: grid;
  grid-template-columns: .78fr 1.62fr;
  gap: clamp(10px, .72vw, 15px);
}

body.lobby-tv-clean-body .feature-card,
body.lobby-tv-clean-body .small-menu {
  min-height: 0;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 26px;
  background:
    linear-gradient(145deg, rgba(255,255,255,.055), rgba(255,255,255,.015) 42%),
    rgba(13, 20, 32, .86);
  box-shadow: 0 18px 54px rgba(0,0,0,.34);
  overflow: hidden;
}

body.lobby-tv-clean-body .feature-card {
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  padding: clamp(13px, .9vw, 18px);
  gap: clamp(11px, .78vw, 15px);
}

body.lobby-tv-clean-body .feature-media {
  min-height: 0;
  position: relative;
  overflow: hidden;
  border-radius: 22px;
  border: 1px solid rgba(255,255,255,.2);
  background: #111827;
}

body.lobby-tv-clean-body .feature-media img {
  width: 100%;
  height: 100%;
  min-height: 240px;
  display: block;
  object-fit: cover;
  aspect-ratio: 1 / 1;
  transition: opacity .48s ease, transform .7s ease;
}

body.lobby-tv-clean-body .feature-card.is-changing .feature-media img {
  opacity: .12;
  transform: scale(1.035);
}

body.lobby-tv-clean-body .feature-tag {
  position: absolute;
  left: 14px;
  top: 14px;
  display: grid;
  gap: 3px;
  padding: 9px 12px;
  border-radius: 15px;
  background: rgba(5, 8, 14, .76);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,.14);
}

body.lobby-tv-clean-body .feature-tag strong {
  color: #ffd54a;
  font-size: clamp(14px, .86vw, 17px);
  line-height: 1;
}

body.lobby-tv-clean-body .feature-price {
  position: absolute;
  right: 14px;
  bottom: 14px;
  padding: 7px 13px;
  border-radius: 15px;
  background: rgba(7, 11, 18, .84);
  border: 1px solid rgba(255, 213, 74, .45);
  color: #ffd54a;
  font-size: clamp(22px, 1.52vw, 32px);
  font-weight: 900;
  line-height: 1;
  letter-spacing: -.04em;
}

body.lobby-tv-clean-body .feature-copy {
  display: grid;
  gap: 7px;
}

body.lobby-tv-clean-body .feature-copy h2 {
  margin: 0;
  color: #f7fbff;
  font-size: clamp(30px, 2.18vw, 42px);
  line-height: 1;
  font-weight: 900;
  letter-spacing: -.052em;
}

body.lobby-tv-clean-body .feature-copy p {
  margin: 0;
  color: #c7d1df;
  font-size: clamp(13px, .82vw, 16px);
  line-height: 1.25;
  font-weight: 800;
}

body.lobby-tv-clean-body .feature-dots {
  display: flex;
  gap: 7px;
  margin-top: 2px;
}

body.lobby-tv-clean-body .feature-dots button {
  width: 27px;
  height: 5px;
  border: 0;
  border-radius: 99px;
  background: rgba(255,255,255,.2);
  padding: 0;
}

body.lobby-tv-clean-body .feature-dots button.active { background: #ffd54a; }

body.lobby-tv-clean-body .small-menu {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
}

body.lobby-tv-clean-body .menu-head {
  padding: clamp(13px, .85vw, 17px) clamp(16px, 1.1vw, 22px);
  border-bottom: 1px solid rgba(255,255,255,.12);
  background: linear-gradient(135deg, rgba(255, 213, 74, .13), rgba(244, 63, 94, .075));
}

body.lobby-tv-clean-body .menu-head h2 {
  margin: 4px 0 0;
  color: #f7fbff;
  font-size: clamp(29px, 2vw, 39px);
  line-height: 1;
  font-weight: 900;
  letter-spacing: -.052em;
}

body.lobby-tv-clean-body .small-item-grid {
  min-height: 0;
  padding: clamp(12px, .8vw, 17px);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-content: start;
  gap: clamp(10px, .72vw, 14px);
  overflow: hidden;
}

body.lobby-tv-clean-body .small-group {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 8px;
}

body.lobby-tv-clean-body .small-group h3 {
  color: #ffd54a;
  margin: 0;
  font-size: clamp(16px, .98vw, 21px);
  line-height: 1;
  font-weight: 900;
}

body.lobby-tv-clean-body .small-item {
  min-width: 0;
  display: grid;
  grid-template-columns: clamp(50px, 3.55vw, 66px) 1fr;
  gap: 10px;
  align-items: center;
  padding: 8px;
  border-radius: 17px;
  background: rgba(255,255,255,.042);
  border: 1px solid rgba(255,255,255,.09);
}

body.lobby-tv-clean-body .small-item img {
  width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: 13px;
  object-fit: cover;
  background: #111827;
}

body.lobby-tv-clean-body .small-item h4 {
  margin: 0;
  color: #f7fbff;
  font-size: clamp(12px, .78vw, 15px);
  line-height: 1.08;
  font-weight: 900;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

body.lobby-tv-clean-body .small-item p {
  margin: 2px 0 0;
  color: #8e9cb0;
  font-size: clamp(10px, .58vw, 12px);
  line-height: 1.08;
  font-weight: 800;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

body.lobby-tv-clean-body .small-item strong {
  display: block;
  margin-top: 3px;
  color: #4ade80;
  font-size: clamp(13px, .82vw, 17px);
  font-weight: 900;
}

body.lobby-tv-clean-body .footer-bar {
  min-height: clamp(36px, 2.72vw, 46px);
  padding: 0 clamp(14px, .9vw, 18px) !important;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  color: #c7d1df;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 17px;
  background: rgba(13, 20, 32, .66) !important;
  font-size: clamp(12px, .72vw, 14px);
  font-weight: 800;
}

body.lobby-tv-clean-body #lobbyLastUpdated {
  white-space: nowrap;
  color: rgba(255,255,255,.86);
}

body.lobby-tv-clean-body .lobby-menu-empty {
  grid-column: 1 / -1;
  min-height: 180px;
  display: grid;
  place-items: center;
  text-align: center;
  color: #cbd5e1;
  border: 2px dashed rgba(255,255,255,.16);
  border-radius: 24px;
  padding: 20px;
  font-size: clamp(16px, 1vw, 20px);
  font-weight: 900;
}

body.lobby-tv-clean-body .ready.is-flashing {
  animation: lobbyCleanReadyFlash 1.6s ease;
}

@keyframes lobbyCleanReadyFlash {
  0%, 100% { box-shadow: 0 18px 54px rgba(0,0,0,.34); }
  25%, 75% { box-shadow: 0 0 0 6px rgba(74,222,128,.24), 0 18px 54px rgba(0,0,0,.34); }
}

@media (max-width: 1300px) {
  body.lobby-tv-clean-body { overflow-x: auto; }
  body.lobby-tv-clean-body .tv-board { width: 1600px; }
}


/* Lobby TV ticker/menu cleanup v1.3.11 */
body.lobby-tv-clean-body .order-chip {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: 10px !important;
  min-width: clamp(180px, 12vw, 238px) !important;
  max-width: clamp(180px, 12vw, 238px) !important;
  padding: 10px 11px !important;
  border-radius: 15px !important;
}

body.lobby-tv-clean-body .order-info { min-width: 0; }

body.lobby-tv-clean-body .order-info h3,
body.lobby-tv-clean-body .order-chip h3 {
  max-width: none !important;
  margin: 0 !important;
  color: #f7fbff !important;
  font-size: clamp(14px, .86vw, 17px) !important;
  line-height: 1.08 !important;
  font-weight: 900 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.lobby-tv-clean-body .order-info p,
body.lobby-tv-clean-body .order-chip p {
  margin: 3px 0 0 !important;
  color: #9aa8ba !important;
  font-size: clamp(10px, .62vw, 12px) !important;
  font-weight: 800 !important;
  line-height: 1.05 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.lobby-tv-clean-body .order-badge {
  min-width: clamp(42px, 2.85vw, 56px) !important;
  height: clamp(34px, 2.25vw, 43px) !important;
  padding: 0 8px !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 12px !important;
  background: rgba(96, 165, 250, .16) !important;
  color: #bfdbfe !important;
  font-size: clamp(15px, 1vw, 20px) !important;
  line-height: 1 !important;
  font-weight: 900 !important;
  letter-spacing: -.035em !important;
}

body.lobby-tv-clean-body .ready .order-badge {
  background: rgba(74, 222, 128, .16) !important;
  color: #4ade80 !important;
}

body.lobby-tv-clean-body .small-item-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  align-content: start !important;
  gap: clamp(8px, .58vw, 11px) !important;
  overflow: hidden !important;
}

body.lobby-tv-clean-body .small-group {
  gap: 6px !important;
}

body.lobby-tv-clean-body .small-group h3 {
  font-size: clamp(15px, .92vw, 19px) !important;
  margin-bottom: 1px !important;
}

body.lobby-tv-clean-body .small-item {
  grid-template-columns: clamp(42px, 3vw, 56px) minmax(0, 1fr) !important;
  gap: 8px !important;
  padding: 6px !important;
  border-radius: 14px !important;
}

body.lobby-tv-clean-body .small-item img {
  border-radius: 11px !important;
}

body.lobby-tv-clean-body .small-item h4 {
  font-size: clamp(11px, .7vw, 14px) !important;
}

body.lobby-tv-clean-body .small-item p {
  font-size: clamp(9px, .54vw, 11px) !important;
}

body.lobby-tv-clean-body .small-item strong {
  font-size: clamp(12px, .72vw, 15px) !important;
  margin-top: 2px !important;
}

body.lobby-tv-clean-body .small-item-grid.has-many-items .small-item {
  grid-template-columns: clamp(34px, 2.35vw, 46px) minmax(0, 1fr) !important;
  padding: 5px !important;
  gap: 7px !important;
}

body.lobby-tv-clean-body .small-item-grid.has-many-items .small-item h4 {
  font-size: clamp(10px, .62vw, 13px) !important;
}

body.lobby-tv-clean-body .small-item-grid.has-many-items .small-item p {
  display: none !important;
}

body.lobby-tv-clean-body .small-item-grid.has-many-items .small-item strong {
  font-size: clamp(11px, .66vw, 14px) !important;
}


/* Lobby TV menu carousel/cards v1.3.12 */
body.lobby-tv-clean-body .small-menu {
  position: relative !important;
}

body.lobby-tv-clean-body .small-item-grid {
  position: relative !important;
  display: block !important;
  min-height: 0 !important;
  height: 100% !important;
  padding: clamp(14px, 1vw, 20px) !important;
  overflow: hidden !important;
}

body.lobby-tv-clean-body .small-item-grid::before,
body.lobby-tv-clean-body .small-item-grid::after {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  height: clamp(22px, 2vw, 42px) !important;
  z-index: 5 !important;
  pointer-events: none !important;
}

body.lobby-tv-clean-body .small-item-grid::before {
  top: 0 !important;
  background: linear-gradient(to bottom, rgba(13,20,32,.96), rgba(13,20,32,0)) !important;
}

body.lobby-tv-clean-body .small-item-grid::after {
  bottom: 0 !important;
  background: linear-gradient(to top, rgba(13,20,32,.96), rgba(13,20,32,0)) !important;
}

body.lobby-tv-clean-body .menu-scroll-inner {
  display: grid !important;
  gap: clamp(18px, 1.2vw, 26px) !important;
  will-change: transform !important;
}

body.lobby-tv-clean-body .small-item-grid.is-auto-scroll .menu-scroll-inner {
  animation: lobbyMenuVerticalScroll 52s linear infinite !important;
}

body.lobby-tv-clean-body .small-item-grid.is-auto-scroll:hover .menu-scroll-inner {
  animation-play-state: paused !important;
}

@keyframes lobbyMenuVerticalScroll {
  0%, 8% { transform: translateY(0); }
  92%, 100% { transform: translateY(-50%); }
}

body.lobby-tv-clean-body .menu-grid-page {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  align-content: start !important;
  gap: clamp(16px, 1vw, 22px) !important;
  padding-bottom: clamp(18px, 1.2vw, 26px) !important;
}

body.lobby-tv-clean-body .small-group {
  gap: clamp(10px, .72vw, 14px) !important;
}

body.lobby-tv-clean-body .small-group h3 {
  font-size: clamp(18px, 1.18vw, 24px) !important;
  margin: 0 0 2px !important;
  letter-spacing: -.03em !important;
}

body.lobby-tv-clean-body .small-item,
body.lobby-tv-clean-body .small-item-grid.has-many-items .small-item {
  grid-template-columns: clamp(70px, 5.4vw, 96px) minmax(0, 1fr) !important;
  min-height: clamp(86px, 6.35vw, 112px) !important;
  gap: clamp(12px, .85vw, 16px) !important;
  padding: clamp(10px, .72vw, 14px) !important;
  border-radius: 20px !important;
  background:
    linear-gradient(135deg, rgba(255,255,255,.065), rgba(255,255,255,.025)) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
}

body.lobby-tv-clean-body .small-item img,
body.lobby-tv-clean-body .small-item-grid.has-many-items .small-item img {
  width: clamp(70px, 5.4vw, 96px) !important;
  height: clamp(70px, 5.4vw, 96px) !important;
  border-radius: 16px !important;
  box-shadow: 0 10px 22px rgba(0,0,0,.28) !important;
}

body.lobby-tv-clean-body .small-item h4,
body.lobby-tv-clean-body .small-item-grid.has-many-items .small-item h4 {
  font-size: clamp(15px, 1vw, 20px) !important;
  line-height: 1.08 !important;
  letter-spacing: -.025em !important;
  white-space: normal !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 1 !important;
  -webkit-box-orient: vertical !important;
}

body.lobby-tv-clean-body .small-item p,
body.lobby-tv-clean-body .small-item-grid.has-many-items .small-item p {
  display: -webkit-box !important;
  margin: 4px 0 0 !important;
  color: #aab6c8 !important;
  font-size: clamp(11px, .72vw, 14px) !important;
  line-height: 1.16 !important;
  font-weight: 800 !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

body.lobby-tv-clean-body .small-item strong,
body.lobby-tv-clean-body .small-item-grid.has-many-items .small-item strong {
  font-size: clamp(16px, 1vw, 20px) !important;
  margin-top: 5px !important;
}

body.lobby-tv-clean-body .menu-head {
  padding-top: clamp(14px, .95vw, 20px) !important;
  padding-bottom: clamp(14px, .95vw, 20px) !important;
}

body.lobby-tv-clean-body .menu-head h2 {
  font-size: clamp(30px, 2.15vw, 42px) !important;
}



/* Lobby TV menu rows / masonry v1.3.13 */
body.lobby-tv-clean-body .small-item-grid {
  padding: clamp(14px, 1vw, 20px) clamp(16px, 1.1vw, 22px) !important;
}

body.lobby-tv-clean-body .menu-scroll-inner {
  gap: clamp(20px, 1.35vw, 30px) !important;
}

body.lobby-tv-clean-body .menu-grid-page.menu-category-rows {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: clamp(18px, 1.25vw, 28px) !important;
  padding-bottom: clamp(22px, 1.5vw, 34px) !important;
}

body.lobby-tv-clean-body .menu-category-row {
  display: grid !important;
  grid-template-columns: clamp(150px, 10.5vw, 210px) minmax(0, 1fr) !important;
  gap: clamp(14px, 1vw, 22px) !important;
  align-items: start !important;
  padding: clamp(10px, .75vw, 14px) 0 clamp(16px, 1.1vw, 24px) !important;
  border-bottom: 1px solid rgba(255,255,255,.09) !important;
}

body.lobby-tv-clean-body .menu-category-row:last-child {
  border-bottom: 0 !important;
}

body.lobby-tv-clean-body .menu-category-row h3 {
  position: sticky !important;
  top: clamp(26px, 1.8vw, 42px) !important;
  margin: 0 !important;
  padding: clamp(10px, .7vw, 14px) clamp(10px, .75vw, 16px) !important;
  border-radius: 18px !important;
  background: rgba(255, 213, 74, .10) !important;
  border: 1px solid rgba(255, 213, 74, .18) !important;
  color: #ffd54a !important;
  font-size: clamp(18px, 1.12vw, 24px) !important;
  line-height: 1.05 !important;
  font-weight: 900 !important;
  letter-spacing: -.035em !important;
}

body.lobby-tv-clean-body .small-group-items {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(clamp(265px, 20vw, 365px), 1fr)) !important;
  gap: clamp(12px, .9vw, 18px) !important;
  align-items: stretch !important;
}

body.lobby-tv-clean-body .small-item,
body.lobby-tv-clean-body .small-item-grid.has-many-items .small-item {
  grid-template-columns: clamp(82px, 6.2vw, 112px) minmax(0, 1fr) !important;
  min-height: clamp(104px, 7.4vw, 134px) !important;
  gap: clamp(13px, .95vw, 18px) !important;
  padding: clamp(12px, .85vw, 16px) !important;
  border-radius: 22px !important;
  align-items: center !important;
}

body.lobby-tv-clean-body .small-item img,
body.lobby-tv-clean-body .small-item-grid.has-many-items .small-item img {
  width: clamp(82px, 6.2vw, 112px) !important;
  height: clamp(82px, 6.2vw, 112px) !important;
  border-radius: 18px !important;
}

body.lobby-tv-clean-body .small-item h4,
body.lobby-tv-clean-body .small-item-grid.has-many-items .small-item h4 {
  font-size: clamp(16px, 1.05vw, 21px) !important;
  line-height: 1.08 !important;
  -webkit-line-clamp: 2 !important;
}

body.lobby-tv-clean-body .small-item p,
body.lobby-tv-clean-body .small-item-grid.has-many-items .small-item p {
  display: -webkit-box !important;
  color: #aeb9ca !important;
  font-size: clamp(12px, .78vw, 15px) !important;
  line-height: 1.16 !important;
  -webkit-line-clamp: 2 !important;
}

body.lobby-tv-clean-body .small-item strong,
body.lobby-tv-clean-body .small-item-grid.has-many-items .small-item strong {
  font-size: clamp(17px, 1.08vw, 22px) !important;
  margin-top: 5px !important;
}

body.lobby-tv-clean-body .small-item-grid.is-auto-scroll .menu-scroll-inner {
  animation-duration: 72s !important;
}



/* Lobby TV category titles above item rows v1.3.14 */
body.lobby-tv-clean-body .menu-grid-page.menu-category-rows {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: clamp(20px, 1.35vw, 30px) !important;
  padding-bottom: clamp(22px, 1.5vw, 34px) !important;
}

body.lobby-tv-clean-body .menu-category-row {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: clamp(10px, .8vw, 16px) !important;
  align-items: start !important;
  padding: clamp(10px, .75vw, 14px) 0 clamp(18px, 1.2vw, 26px) !important;
  border-bottom: 1px solid rgba(255,255,255,.09) !important;
}

body.lobby-tv-clean-body .menu-category-row:last-child {
  border-bottom: 0 !important;
}

body.lobby-tv-clean-body .menu-category-row h3 {
  position: static !important;
  top: auto !important;
  width: max-content !important;
  max-width: 100% !important;
  margin: 0 0 clamp(2px, .3vw, 5px) !important;
  padding: clamp(7px, .52vw, 10px) clamp(12px, .85vw, 18px) !important;
  border-radius: 16px !important;
  background: rgba(255, 213, 74, .10) !important;
  border: 1px solid rgba(255, 213, 74, .18) !important;
  color: #ffd54a !important;
  font-size: clamp(18px, 1.15vw, 25px) !important;
  line-height: 1.05 !important;
  font-weight: 900 !important;
  letter-spacing: -.035em !important;
}

body.lobby-tv-clean-body .small-group-items {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(clamp(285px, 20vw, 390px), 1fr)) !important;
  gap: clamp(12px, .9vw, 18px) !important;
  align-items: stretch !important;
}

/* v1.7.6 - Mobile Admin Hours: compact person rows */
@media (max-width: 640px) {
  body.admin-body .admin-hours-table-card {
    overflow: visible;
  }

  body.admin-body .admin-hours-table-wrap {
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
  }

  body.admin-body .admin-hours-table {
    display: block;
    width: 100%;
    min-width: 0;
    border-collapse: separate;
    background: transparent;
  }

  body.admin-body .admin-hours-table thead {
    display: none;
  }

  body.admin-body .admin-hours-table tbody {
    display: grid;
    gap: 14px;
  }

  body.admin-body .admin-hours-table tr {
    display: grid;
    gap: 0;
    border: 2px solid var(--primary-100);
    border-radius: 22px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 14px 30px rgba(15, 23, 42, .05);
  }

  body.admin-body .admin-hours-table tr.is-open {
    border-color: #fed7aa;
    background: #fff7ed;
  }

  body.admin-body .admin-hours-table tr.is-open td {
    background: transparent;
  }

  body.admin-body .admin-hours-table td {
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    width: 100%;
    padding: 13px 14px;
    border-bottom: 1px solid #e8f1ff;
    font-size: 17px;
    line-height: 1.15;
    overflow-wrap: anywhere;
  }

  body.admin-body .admin-hours-table td::before {
    content: attr(data-mobile-label);
    color: #64748b;
    font-size: 11px;
    font-weight: 1000;
    line-height: 1;
    letter-spacing: .08em;
    text-transform: uppercase;
  }

  body.admin-body .admin-hours-table .hours-cell-name {
    grid-template-columns: 1fr;
    background: #f8fbff;
    font-size: 24px;
    letter-spacing: -.035em;
  }

  body.admin-body .admin-hours-table .hours-cell-name::before {
    content: none;
  }

  body.admin-body .admin-hours-table .hours-cell-position,
  body.admin-body .admin-hours-table .hours-cell-hours,
  body.admin-body .admin-hours-table .hours-cell-pay {
    display: none;
  }

  body.admin-body .admin-hours-table .hours-cell-actions {
    grid-template-columns: 1fr;
    gap: 9px;
    border-bottom: 0;
    background: #f8fbff;
  }

  body.admin-body .admin-hours-table .hours-cell-actions::before {
    font-size: 12px;
  }

  body.admin-body .admin-hours-table .hours-entry-actions {
    grid-template-columns: 1fr;
    min-width: 0;
    width: 100%;
  }

  body.admin-body .admin-hours-table .hours-entry-actions input[type="datetime-local"],
  body.admin-body .admin-hours-table .hours-entry-actions .admin-small-btn {
    width: 100%;
    min-height: 50px;
    border-radius: 16px;
    font-size: 16px;
  }

  body.admin-body .admin-hours-table .hours-action-muted {
    display: block;
    padding: 8px 0;
  }
}

/* v1.7.7 - Mobile Admin Set Employee Shift modal time field containment */
body.admin-body .admin-modal-card.is-schedule-cell-modal,
body.admin-body .admin-modal-card.is-schedule-cell-modal * {
  box-sizing: border-box;
}

body.admin-body .admin-modal-card.is-schedule-cell-modal .admin-shift-cell-form,
body.admin-body .admin-modal-card.is-schedule-cell-modal .admin-shift-time-row,
body.admin-body .admin-modal-card.is-schedule-cell-modal .admin-shift-cell-form label {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

body.admin-body .admin-modal-card.is-schedule-cell-modal input,
body.admin-body .admin-modal-card.is-schedule-cell-modal select {
  display: block;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

body.admin-body .admin-modal-card.is-schedule-cell-modal input[type="time"] {
  -webkit-appearance: none;
  appearance: none;
  text-align: center;
}

@media (max-width: 520px) {
  body.admin-body .admin-modal {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  body.admin-body .admin-modal-card.is-schedule-cell-modal {
    width: calc(100vw - 20px) !important;
    max-width: calc(100vw - 20px) !important;
    padding: 16px !important;
    overflow-x: hidden !important;
  }

  body.admin-body .admin-modal-card.is-schedule-cell-modal .admin-shift-time-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.admin-body .admin-modal-card.is-schedule-cell-modal .admin-form-actions {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
  }

  body.admin-body .admin-modal-card.is-schedule-cell-modal .admin-form-actions .danger-soft {
    grid-column: 1 / -1;
  }

  body.admin-body .admin-modal-card.is-schedule-cell-modal .admin-form-actions button {
    width: 100%;
  }
}

/* Super Admin + secure payments status */
.super-admin-toplink{display:inline-flex;margin-top:.25rem;color:#2563eb;font-weight:900;text-decoration:none}.payment-status-panel{display:flex;align-items:center;justify-content:space-between;gap:1rem;border:2px solid #bfdbfe;background:#f8fbff;border-radius:18px;padding:1.1rem 1.25rem}.payment-status-panel strong{display:block;font-size:1.2rem;color:#0f172a;margin-bottom:.35rem}.payment-status-panel strong.is-connected{color:#15803d}.payment-status-panel strong.is-disconnected{color:#b45309}.payment-status-panel p{margin:0;color:#64748b;font-weight:800;line-height:1.4}.payment-status-lock{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#eef2ff;color:#1d4ed8;font-weight:950;padding:.7rem 1rem;white-space:nowrap}.super-admin-body{margin:0;min-height:100vh;background:#eef4ff;color:#0f172a;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.super-admin-topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.25rem 2rem;background:#fff;border-bottom:2px solid #bfdbfe;box-shadow:0 16px 36px rgba(15,23,42,.08)}.super-admin-topbar span,.super-card span{display:block;color:#1d4ed8;text-transform:uppercase;letter-spacing:.18em;font-weight:950;font-size:.78rem}.super-admin-topbar h1,.super-card h2{margin:.15rem 0;color:#0f172a}.super-admin-topbar p,.super-card p{margin:.2rem 0;color:#64748b;font-weight:800}.super-admin-actions{display:flex;gap:.75rem;flex-wrap:wrap}.super-admin-actions a,.super-payment-form button,.super-card button,.super-card .admin-secondary{border:0;border-radius:999px;background:#2563eb;color:#fff;padding:.85rem 1.15rem;font-weight:950;text-decoration:none;cursor:pointer}.super-admin-actions a:last-child,.super-card button.danger{background:#fff;color:#dc2626;border:2px solid #fecaca}.super-admin-shell{display:grid;grid-template-columns:280px minmax(0,1fr);gap:1.25rem;padding:1.25rem;max-width:1500px;margin:0 auto}.super-admin-sidebar,.super-card,.super-admin-alert{background:#fff;border:2px solid #bfdbfe;border-radius:24px;box-shadow:0 18px 44px rgba(15,23,42,.08)}.super-admin-sidebar{padding:1rem;align-self:start;position:sticky;top:1rem}.super-admin-sidebar h2{margin:.25rem .4rem 1rem}.super-restaurant-link{display:block;text-decoration:none;color:#0f172a;border:2px solid #dbeafe;border-radius:16px;padding:.8rem;margin-bottom:.65rem;background:#fff}.super-restaurant-link.is-active{background:#eff6ff;border-color:#60a5fa}.super-restaurant-link strong,.super-restaurant-link span,.super-restaurant-link em{display:block}.super-restaurant-link span{color:#64748b;font-size:.85rem;font-weight:800}.super-restaurant-link em{margin-top:.35rem;color:#1d4ed8;font-style:normal;font-weight:950}.super-admin-content{display:grid;gap:1.25rem}.super-card{padding:1.35rem}.super-status-card,.super-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.super-status-pill{border-radius:999px;padding:.8rem 1rem;font-weight:950;white-space:nowrap}.super-status-pill.connected{background:#dcfce7;color:#15803d}.super-status-pill.disconnected{background:#fef3c7;color:#b45309}.super-payment-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1rem}.super-payment-form label{font-weight:950;color:#334155}.super-payment-form input,.super-payment-form select,.super-payment-form textarea{box-sizing:border-box;width:100%;margin-top:.4rem;border:2px solid #dbe3ef;border-radius:16px;padding:.9rem 1rem;font:inherit;font-weight:850;background:#fff}.super-payment-form textarea{min-height:120px;resize:vertical}.super-payment-form .super-check,.super-payment-form .wide,.super-form-note{grid-column:1/-1}.super-check{display:flex;align-items:center;gap:.65rem;background:#eff6ff;border:2px solid #bfdbfe;border-radius:16px;padding:1rem}.super-check input{width:auto;margin:0;transform:scale(1.2)}.super-form-note{background:#f8fafc;border:2px solid #e2e8f0;border-radius:16px;color:#64748b;font-weight:850;line-height:1.4;padding:1rem}.super-grid-two{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}.super-checklist p{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid #e2e8f0;padding:.55rem 0}.super-large-count{font-size:3rem!important;font-weight:950!important;color:#1d4ed8!important}.super-table-wrap{overflow:auto;margin-top:1rem}.super-table{width:100%;border-collapse:separate;border-spacing:0 .5rem}.super-table th{text-align:left;color:#64748b;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}.super-table td{background:#f8fafc;padding:.75rem;font-weight:800;border-top:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0}.super-table td:first-child{border-left:1px solid #e2e8f0;border-radius:12px 0 0 12px}.super-table td:last-child{border-right:1px solid #e2e8f0;border-radius:0 12px 12px 0}.super-admin-alert{padding:1rem 1.25rem;font-weight:950}.super-admin-alert.success{border-color:#86efac;color:#15803d;background:#f0fdf4}.super-admin-alert.error{border-color:#fecaca;color:#dc2626;background:#fff1f2}@media(max-width:900px){.super-admin-topbar,.payment-status-panel,.super-status-card,.super-card-head{flex-direction:column;align-items:stretch}.super-admin-shell{grid-template-columns:1fr}.super-admin-sidebar{position:static}.super-payment-form,.super-grid-two{grid-template-columns:1fr}}

/* North / EPX Merchant Credentials */
.settings-card-payment-credentials {
  grid-column: 1 / -1;
}
.payment-credentials-intro {
  margin-bottom: 16px;
}
.payment-credentials-controls {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(180px, 260px);
  gap: 12px;
  align-items: end;
  margin-bottom: 14px;
}
.payment-enable-toggle {
  min-height: 54px;
  display: flex !important;
  align-items: center;
  gap: 10px;
  border: 2px solid #bfdbfe;
  border-radius: 16px;
  background: #eff6ff;
  padding: 0 16px;
  color: #1e3a8a;
  font-weight: 900;
}
.payment-enable-toggle input {
  width: auto !important;
  margin: 0 !important;
  transform: scale(1.2);
}
.payment-credentials-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 14px;
}
.payment-credentials-grid .payment-public-key {
  grid-column: 1 / -1;
}
.payment-credentials-grid textarea {
  min-height: 90px;
  resize: vertical;
}
@media (max-width: 980px) {
  .payment-credentials-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 640px) {
  .payment-credentials-controls,
  .payment-credentials-grid {
    grid-template-columns: 1fr;
  }
}

/* v1.7.8 - Mobile login centering + Employee Hours mobile polish */
@media (max-width: 640px) {
  body.admin-login-body {
    min-height: 100svh;
    padding: 18px 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
  }

  .admin-login-shell {
    width: 100%;
    max-width: 440px;
    margin: 0 auto;
  }

  .admin-login-card {
    width: 100%;
    box-sizing: border-box;
    padding: 28px 24px;
    text-align: center;
    border-color: var(--primary-100);
  }

  .admin-login-logo {
    margin-left: auto;
    margin-right: auto;
  }

  .admin-login-form {
    text-align: left;
  }

  .admin-login-form input,
  .admin-login-form button {
    box-sizing: border-box;
  }

  body.admin-body .admin-hours-toolbar select,
  body.admin-body .admin-hours-toolbar input,
  body.admin-body .admin-hours-toolbar .admin-primary {
    width: 100%;
    min-height: 64px;
    border-radius: 20px;
    font-size: 20px;
    font-weight: 1000;
  }

  body.admin-body .admin-hours-toolbar select {
    padding: 0 18px;
  }

  body.admin-body .admin-hours-table-card .admin-section-minihead {
    text-align: center;
    justify-content: center;
    align-items: center;
  }

  body.admin-body .admin-hours-table-card .admin-section-minihead h3,
  body.admin-body .admin-hours-table-card .admin-section-minihead span {
    width: 100%;
    text-align: center;
  }

  body.admin-body .admin-hours-table td[colspan="7"] {
    display: block;
    width: 100%;
    box-sizing: border-box;
    padding: 26px 18px;
    text-align: center;
    font-size: 22px;
    font-weight: 1000;
    line-height: 1.15;
  }

  body.admin-body .admin-hours-table td[colspan="7"]::before {
    content: none;
  }
}


/* v1.8.2 - Login title and Super Admin header button polish */
body.admin-login-body.platform-login .admin-login-card h1 {
  font-size: clamp(34px, 5.2vw, 50px) !important;
  line-height: .92 !important;
  letter-spacing: -.06em !important;
}

body.admin-body .admin-topbar-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 14px;
  flex-wrap: wrap;
}

body.admin-body .admin-header-button,
body.admin-body .super-admin-toplink {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 0 22px;
  border-radius: 999px;
  border: 0;
  background: #2563eb;
  color: #fff !important;
  font-weight: 950;
  text-decoration: none;
  line-height: 1;
  box-shadow: 0 14px 30px rgba(37,99,235,.20);
  white-space: nowrap;
}

body.admin-body .admin-header-button:hover,
body.admin-body .super-admin-toplink:hover {
  transform: translateY(-1px);
}

@media (max-width: 760px) {
  body.admin-login-body.platform-login .admin-login-card h1 {
    font-size: clamp(34px, 12vw, 44px) !important;
  }

  body.admin-body .admin-topbar-actions {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
  }

  body.admin-body .admin-header-button,
  body.admin-body .super-admin-toplink {
    width: 100%;
    min-height: 56px;
    font-size: 18px;
  }
}

/* Super Admin System Monitor */
.monitor-shell{grid-template-columns:280px minmax(0,1fr)}
.monitor-sidebar{display:grid;gap:.8rem}
.monitor-health-badge{border-radius:18px;padding:1rem;font-weight:950;text-align:center;text-transform:uppercase;letter-spacing:.08em}
.monitor-health-badge.ok,.monitor-pill.ok,.monitor-issue-list p.ok{background:#dcfce7;color:#15803d;border:2px solid #86efac}
.monitor-health-badge.warn,.monitor-pill.warn,.monitor-issue-list p.warn{background:#fef3c7;color:#b45309;border:2px solid #fcd34d}
.monitor-health-badge.bad,.monitor-pill.bad,.monitor-issue-list p.bad{background:#fff1f2;color:#dc2626;border:2px solid #fecaca}
.monitor-health-badge.neutral,.monitor-pill.neutral{background:#f1f5f9;color:#475569;border:2px solid #cbd5e1}
.monitor-side-copy{margin:.2rem .1rem;color:#64748b;font-weight:850}.monitor-mini-list{display:grid;gap:.45rem}.monitor-mini-list p{display:flex;justify-content:space-between;gap:.8rem;margin:0;border:1px solid #e2e8f0;background:#f8fafc;border-radius:14px;padding:.65rem .75rem;font-size:.9rem}.monitor-mini-list strong{color:#334155}.monitor-mini-list span{color:#0f172a;font-weight:950;text-align:right}.monitor-nav-link{display:block;text-decoration:none;color:#1d4ed8;background:#eff6ff;border:2px solid #bfdbfe;border-radius:999px;padding:.72rem .9rem;font-weight:950;text-align:center}.monitor-overview-card{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.super-status-pill.warning{background:#fef3c7;color:#b45309}.monitor-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.25rem}.monitor-metric h2{font-size:2.2rem;margin:.25rem 0}.monitor-issue-list{display:grid;gap:.65rem;margin-top:1rem}.monitor-issue-list p{display:flex;gap:.8rem;align-items:flex-start;margin:0;border-radius:16px;padding:.85rem 1rem;font-weight:850}.monitor-issue-list strong{min-width:72px}.monitor-log-counts{background:#f8fafc;border:2px solid #e2e8f0;border-radius:16px;padding:.8rem 1rem;color:#475569;font-weight:900}.monitor-pill{display:inline-flex;border-radius:999px;padding:.25rem .6rem;font-size:.78rem;font-weight:950;text-transform:uppercase}.monitor-log-table code{white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;font-size:.82rem;color:#334155}.monitor-log-table td:nth-child(3){min-width:420px}@media(max-width:1180px){.monitor-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.monitor-shell{grid-template-columns:1fr}.monitor-overview-card{flex-direction:column}.monitor-metric-grid{grid-template-columns:1fr}.monitor-log-table td:nth-child(3){min-width:260px}}


/* v1.8.4 - Super Admin Monitor repair export */
.monitor-export-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;border:2px solid #bfdbfe;background:linear-gradient(135deg,#eff6ff,#ffffff)}
.monitor-export-button,.monitor-export-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border-radius:999px;background:#111827;color:#fff!important;font-weight:950;padding:.85rem 1.15rem;white-space:nowrap;box-shadow:0 14px 28px rgba(15,23,42,.16)}
.monitor-export-button:hover,.monitor-export-link:hover{transform:translateY(-1px)}
@media(max-width:760px){.monitor-export-card{flex-direction:column;align-items:stretch}.monitor-export-button,.monitor-export-link{width:100%;min-height:52px}}

/* v1.8.6 - Monitor log separation and ignored non-system errors */
.monitor-note-card{border-radius:18px;padding:.9rem 1rem;margin:1rem 0;font-weight:850;line-height:1.35}
.monitor-note-card.ok{background:#ecfdf5;border:2px solid #86efac;color:#166534}
.monitor-log-table th:nth-child(2),.monitor-log-table td:nth-child(2){white-space:nowrap;min-width:112px}
.monitor-log-table th:nth-child(4),.monitor-log-table td:nth-child(4){min-width:420px}
@media(max-width:900px){.monitor-log-table th:nth-child(4),.monitor-log-table td:nth-child(4){min-width:260px}}


/* Locations page: stack each location in a full-width row */
.admin-location-grid {
  grid-template-columns: minmax(0, 1fr) !important;
}

/* v1.9.1 - POS balanced item cards: corrected 20% larger displayed product images */
body.pos-body:not(.pos-mobile-body) .pos-product-card {
  height: 152px !important;
  min-height: 152px !important;
  grid-template-columns: 125px minmax(0, 1fr) !important;
  gap: 14px !important;
  padding: 12px !important;
  align-items: center !important;
  overflow: hidden !important;
}

body.pos-body:not(.pos-mobile-body) .pos-product-image {
  width: 125px !important;
  height: 125px !important;
  aspect-ratio: 1 / 1 !important;
  align-self: center !important;
  overflow: hidden !important;
}

body.pos-body:not(.pos-mobile-body) .pos-product-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
}

body.pos-body:not(.pos-mobile-body) .pos-product-info {
  height: 100% !important;
  padding: 2px 0 !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  text-align: left !important;
  overflow: hidden !important;
}

body.pos-body:not(.pos-mobile-body) .pos-product-info h3 {
  margin: 0 0 4px !important;
  font-size: clamp(20px, 1.7vw, 24px) !important;
  line-height: 1 !important;
  text-align: left !important;
}

body.pos-body:not(.pos-mobile-body) .pos-product-info p {
  display: -webkit-box !important;
  margin: 0 !important;
  color: #64748b !important;
  font-size: clamp(12px, 1vw, 14px) !important;
  line-height: 1.25 !important;
  font-weight: 750 !important;
  white-space: normal !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  text-align: left !important;
}

body.pos-body:not(.pos-mobile-body) .pos-product-info > div {
  margin-top: auto !important;
  padding-top: 7px !important;
}

body.pos-body:not(.pos-mobile-body) .pos-product-info strong {
  font-size: clamp(21px, 1.65vw, 25px) !important;
}

body.pos-body:not(.pos-mobile-body) .pos-product-info span {
  min-height: 38px !important;
  min-width: 66px !important;
  padding: 8px 13px !important;
  font-size: clamp(12px, 1vw, 15px) !important;
}

@media (min-width: 761px) and (max-width: 1180px) {
  body.pos-body:not(.pos-mobile-body) .pos-product-card {
    height: 144px !important;
    min-height: 144px !important;
    grid-template-columns: 118px minmax(0, 1fr) !important;
    gap: 12px !important;
    padding: 11px !important;
  }

  body.pos-body:not(.pos-mobile-body) .pos-product-image {
    width: 118px !important;
    height: 118px !important;
  }

  body.pos-body:not(.pos-mobile-body) .pos-product-info h3 {
    font-size: clamp(19px, 1.9vw, 22px) !important;
  }

  body.pos-body:not(.pos-mobile-body) .pos-product-info p {
    font-size: clamp(12px, 1.2vw, 13px) !important;
    line-height: 1.22 !important;
  }
}


/* Modifier groups: manage unlimited modifier rows inside the group modal. */
body.admin-body .admin-modifier-group-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(410px, 1fr));
  gap: 16px;
}
body.admin-body .admin-modifier-group-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: start;
  gap: 14px;
}
body.admin-body .admin-group-option-preview {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 11px;
}
body.admin-body .admin-group-option-preview span {
  padding: 6px 10px;
  border-radius: 999px;
  background: #eff6ff;
  color: #334155;
  border: 1px solid #dbeafe;
  font-size: 12px;
  line-height: 1;
  font-weight: 850;
}
body.admin-body .admin-modal-card.is-modifier-group-modal {
  width: min(1180px, calc(100vw - 44px));
  max-height: min(94vh, 1020px);
}
body.admin-body .admin-group-modifier-editor {
  margin-top: 8px;
  padding: 17px;
  border: 2px solid #e2e8f0;
  border-radius: 22px;
  background: #f8fafc;
  display: grid;
  gap: 11px;
}
body.admin-body .admin-group-modifier-editor-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 3px;
}
body.admin-body .admin-group-modifier-editor-head h3 {
  margin: 0 0 4px;
  color: #101c38;
  font-size: 21px;
  font-weight: 1000;
  letter-spacing: -.035em;
}
body.admin-body .admin-group-modifier-editor-head p {
  margin: 0;
}
body.admin-body .admin-add-group-modifier {
  width: auto !important;
  flex: 0 0 auto;
  padding: 13px 18px !important;
  white-space: nowrap;
}
body.admin-body .admin-group-modifier-column-labels,
body.admin-body .admin-group-modifier-row {
  display: grid;
  grid-template-columns: minmax(190px, 1fr) 125px 100px 82px 94px;
  gap: 9px;
  align-items: end;
}
body.admin-body .admin-group-modifier-column-labels {
  padding: 0 10px;
  color: #64748b;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
}
body.admin-body .admin-group-modifier-rows {
  display: grid;
  gap: 9px;
}
body.admin-body .admin-group-modifier-row {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  padding: 10px;
}
body.admin-body .admin-group-modifier-row label {
  gap: 5px;
  font-size: 12px;
}
body.admin-body .admin-group-modifier-row input:not([type="checkbox"]) {
  padding: 11px 12px;
  border-radius: 12px;
}
body.admin-body .admin-group-modifier-status {
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 7px !important;
  height: 46px;
  border: 2px solid #e2e8f0;
  border-radius: 12px;
  background: #f8fafc;
}
body.admin-body .admin-group-modifier-status input {
  width: 17px !important;
  height: 17px !important;
  margin: 0;
}
body.admin-body .admin-group-modifier-status span {
  font-size: 12px;
  font-weight: 900;
}
body.admin-body .admin-group-modifier-remove {
  min-height: 46px;
  padding: 0 12px;
  border: 0;
  border-radius: 12px;
  background: #fee2e2;
  color: #991b1b;
  font: inherit;
  font-size: 13px;
  font-weight: 950;
  cursor: pointer;
}
body.admin-body .admin-group-modifier-row.is-hidden-option {
  opacity: .65;
}
body.admin-body .admin-group-modifier-empty {
  margin: 0 !important;
  padding: 15px;
  border: 1px dashed #cbd5e1;
  border-radius: 14px;
  text-align: center;
}
@media (max-width: 760px) {
  body.admin-body .admin-modifier-group-grid { grid-template-columns: 1fr; }
  body.admin-body .admin-modifier-group-card { grid-template-columns: auto minmax(0, 1fr); }
  body.admin-body .admin-modifier-group-card .admin-card-actions { grid-column: 2; }
  body.admin-body .admin-group-modifier-editor-head { display: grid; }
  body.admin-body .admin-add-group-modifier { width: 100% !important; }
  body.admin-body .admin-group-modifier-column-labels { display: none; }
  body.admin-body .admin-group-modifier-row {
    grid-template-columns: 1fr 1fr;
    align-items: end;
  }
  body.admin-body .admin-group-modifier-name { grid-column: 1 / -1; }
  body.admin-body .admin-group-modifier-status,
  body.admin-body .admin-group-modifier-remove { width: 100%; }
}


/* v1.5.2 - Keep modifier group action buttons clear of badges and preview pills. */
body.admin-body .admin-modifier-group-card {
  grid-template-columns: auto minmax(0, 1fr);
}

body.admin-body .admin-modifier-group-card .admin-card-top {
  flex-wrap: wrap;
}

body.admin-body .admin-modifier-group-card .admin-card-actions {
  grid-column: 2;
  justify-content: flex-end;
  margin-top: 4px;
}


/* v1.5.3 - Modifier group card controls use a dedicated footer row. */
body.admin-body .admin-modifier-group-card {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  position: relative;
}

body.admin-body .admin-modifier-group-card .admin-modifier-row-content {
  width: 100%;
  min-width: 0;
}

body.admin-body .admin-modifier-group-card .admin-card-top {
  padding-right: 0;
  flex-wrap: wrap;
}

body.admin-body .admin-modifier-group-card .admin-card-actions {
  display: flex;
  width: 100%;
  grid-column: auto;
  justify-content: flex-start;
  gap: 8px;
  flex-wrap: nowrap;
  margin-top: 14px;
  padding-right: 48px;
}

body.admin-body .admin-modifier-group-card .admin-drag-handle {
  top: auto;
  right: 14px;
  bottom: 14px;
  transform: none;
}

@media (max-width: 720px) {
  body.admin-body .admin-modifier-group-card .admin-card-actions {
    justify-content: flex-start;
    padding-right: 48px;
  }
}


/* v1.5.4 - Show all modifier options and allow natural-height masonry cards. */
body.admin-body .admin-modifier-group-grid {
  display: block;
  column-count: 2;
  column-gap: 16px;
}

body.admin-body .admin-modifier-group-card {
  display: flex;
  width: 100%;
  margin: 0 0 16px;
  break-inside: avoid;
  -webkit-column-break-inside: avoid;
  page-break-inside: avoid;
}

body.admin-body .admin-group-option-preview {
  align-content: flex-start;
}

@media (max-width: 980px) {
  body.admin-body .admin-modifier-group-grid {
    column-count: 1;
  }
}

/* North online payment reversals: POS actions */
body.pos-body .kitchen-action-btn.north-refund { background: linear-gradient(135deg, #f97316, #c2410c); }
body.pos-body .kitchen-action-btn.north-void { background: linear-gradient(135deg, #ef4444, #b91c1c); }

/* Admin North online refund and void controls */
.admin-small-btn.north-refund { background: #f97316; border-color: #f97316; color: #fff; }
.admin-small-btn.north-void { background: #dc2626; border-color: #dc2626; color: #fff; }
.acct-payment-actions { display: flex; gap: .35rem; align-items: center; flex-wrap: wrap; }
.acct-refund-note { display: block; width: 100%; color: #64748b; font-size: .72rem; }


/* v1.5.15 - Mobile POS: fixed category rail under sticky header. */
@media (max-width: 760px) {
  body.pos-body .pos-header,
  body.pos-mobile-body .pos-header {
    position: sticky !important;
    top: 0 !important;
    z-index: 150 !important;
  }

  body.pos-body .pos-menu-side,
  body.pos-mobile-body .pos-menu-side {
    padding-top: calc(var(--pos-mobile-category-rail-height, 58px) + 8px) !important;
  }

  body.pos-body .pos-category-tabs,
  body.pos-mobile-body .pos-category-tabs {
    position: fixed !important;
    top: var(--pos-mobile-sticky-header-height, 128px) !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 145 !important;
    width: 100vw !important;
    max-width: 100vw !important;
    box-sizing: border-box !important;
    display: flex !important;
    gap: 8px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    margin: 0 !important;
    padding: 8px 10px 10px !important;
    background: rgba(243, 243, 243, .99) !important;
    border-bottom: 1px solid rgba(var(--primary-500-rgb), .14) !important;
    box-shadow: 0 10px 22px rgba(15, 23, 42, .10) !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
  }

  body.pos-body .pos-category-tabs::-webkit-scrollbar,
  body.pos-mobile-body .pos-category-tabs::-webkit-scrollbar {
    display: none !important;
  }

  body.pos-body .pos-category-tab,
  body.pos-mobile-body .pos-category-tab {
    flex: 0 0 auto !important;
  }

  body.pos-body .pos-cart-side,
  body.pos-mobile-body .pos-cart-side {
    scroll-margin-top: calc(var(--pos-mobile-sticky-header-height, 128px) + var(--pos-mobile-category-rail-height, 58px) + 16px) !important;
  }

  body.pos-body .modal-backdrop.show ~ .pos-category-tabs,
  body.pos-mobile-body .modal-backdrop.show ~ .pos-category-tabs,
  body.pos-body:has(.modal-backdrop.show) .pos-category-tabs,
  body.pos-mobile-body:has(.modal-backdrop.show) .pos-category-tabs {
    z-index: 20 !important;
  }
}

@media (max-width: 380px) {
  body.pos-body .pos-category-tabs,
  body.pos-mobile-body .pos-category-tabs {
    top: var(--pos-mobile-sticky-header-height, 122px) !important;
  }
}


/* v1.5.16 - Mobile POS: keep Categories rail tight to the visible sticky action header. */
@media (max-width: 760px) {
  body.pos-body.pos-mobile-actions-stuck .pos-category-tabs,
  body.pos-mobile-body.pos-mobile-actions-stuck .pos-category-tabs {
    top: var(--pos-mobile-sticky-header-height, 74px) !important;
    z-index: 4990 !important;
  }

  body.pos-body.pos-mobile-actions-stuck .pos-menu-side,
  body.pos-mobile-body.pos-mobile-actions-stuck .pos-menu-side {
    padding-top: calc(var(--pos-mobile-category-rail-height, 58px) + 8px) !important;
  }
}

@media (max-width: 380px) {
  body.pos-body.pos-mobile-actions-stuck .pos-category-tabs,
  body.pos-mobile-body.pos-mobile-actions-stuck .pos-category-tabs {
    top: var(--pos-mobile-sticky-header-height, 68px) !important;
  }
}

/* v1.5.17 - Mobile POS: keep header at top and move Categories to bottom dock. */
@media (max-width: 760px) {
  body.pos-body .pos-header,
  body.pos-mobile-body .pos-header {
    position: sticky !important;
    top: 0 !important;
    z-index: 5000 !important;
  }

  body.pos-body .pos-category-tabs,
  body.pos-mobile-body .pos-category-tabs,
  body.pos-body.pos-mobile-actions-stuck .pos-category-tabs,
  body.pos-mobile-body.pos-mobile-actions-stuck .pos-category-tabs {
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    top: auto !important;
    bottom: 0 !important;
    z-index: 5200 !important;
    margin: 0 !important;
    width: 100vw !important;
    max-width: 100vw !important;
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom)) !important;
    display: flex !important;
    gap: 10px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    overscroll-behavior-x: contain !important;
    background: #050816 !important;
    border-top: 2px solid rgba(255,255,255,.12) !important;
    border-bottom: 0 !important;
    box-shadow: 0 -12px 30px rgba(0,0,0,.28) !important;
  }

  body.pos-body .pos-category-tab,
  body.pos-mobile-body .pos-category-tab {
    flex: 0 0 auto !important;
    min-height: 52px !important;
    padding: 10px 16px !important;
    border-radius: 18px !important;
    border: 2px solid rgba(255,255,255,.18) !important;
    background: #ffffff !important;
    color: #173ea5 !important;
    box-shadow: none !important;
    font-size: 15px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
  }

  body.pos-body .pos-category-tab.active,
  body.pos-mobile-body .pos-category-tab.active {
    background: linear-gradient(135deg, #2563eb, #0f7df2) !important;
    color: #ffffff !important;
    border-color: rgba(255,255,255,.35) !important;
  }

  body.pos-body .pos-main,
  body.pos-mobile-body .pos-main,
  body.pos-body .pos-menu-side,
  body.pos-mobile-body .pos-menu-side,
  body.pos-body.pos-mobile-actions-stuck .pos-menu-side,
  body.pos-mobile-body.pos-mobile-actions-stuck .pos-menu-side {
    padding-bottom: calc(var(--pos-mobile-category-rail-height, 76px) + 18px + env(safe-area-inset-bottom)) !important;
  }

  body.pos-body .pos-product-grid,
  body.pos-mobile-body .pos-product-grid {
    padding-bottom: calc(var(--pos-mobile-category-rail-height, 76px) + 24px + env(safe-area-inset-bottom)) !important;
  }

  body.pos-body .pos-cart-side,
  body.pos-mobile-body .pos-cart-side {
    scroll-margin-top: calc(var(--pos-mobile-sticky-header-height, 74px) + 16px) !important;
  }
}


/* v1.5.18 - Mobile POS: remove old top spacer now that Categories dock is at bottom. */
@media (max-width: 760px) {
  body.pos-body .pos-main,
  body.pos-mobile-body .pos-main {
    padding-top: 10px !important;
  }

  body.pos-body .pos-menu-side,
  body.pos-mobile-body .pos-menu-side,
  body.pos-body.pos-mobile-actions-stuck .pos-menu-side,
  body.pos-mobile-body.pos-mobile-actions-stuck .pos-menu-side {
    padding-top: 0 !important;
  }

  body.pos-body .pos-cashier-layout,
  body.pos-mobile-body .pos-cashier-layout {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  body.pos-body .pos-product-grid,
  body.pos-mobile-body .pos-product-grid {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }
}

/* v1.5.19 - Mobile POS: keep modals above sticky header/bottom category dock and start them at the top. */
@media (max-width: 760px) {
  body.pos-body .modal-backdrop,
  body.pos-mobile-body .modal-backdrop {
    z-index: 9000 !important;
  }

  body.pos-body .modal-backdrop.show,
  body.pos-mobile-body .modal-backdrop.show {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: center !important;
    inset: 0 !important;
    width: 100vw !important;
    min-height: 100dvh !important;
    max-height: 100dvh !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding: calc(12px + env(safe-area-inset-top)) 14px calc(24px + env(safe-area-inset-bottom)) !important;
    box-sizing: border-box !important;
    -webkit-overflow-scrolling: touch !important;
  }

  body.pos-body .modal-backdrop.show .modal-card,
  body.pos-mobile-body .modal-backdrop.show .modal-card {
    position: relative !important;
    z-index: 9001 !important;
    width: min(100%, 720px) !important;
    max-height: none !important;
    margin: 0 auto !important;
    overflow: visible !important;
  }

  body.pos-body:has(.modal-backdrop.show) .pos-header,
  body.pos-mobile-body:has(.modal-backdrop.show) .pos-header,
  body.pos-body:has(.modal-backdrop.show) .pos-category-tabs,
  body.pos-mobile-body:has(.modal-backdrop.show) .pos-category-tabs {
    z-index: 100 !important;
  }
}

/* Online Ordering item modal: lock the page and keep the modal pinned to the visible viewport on mobile Safari. */
html.online-modal-locked-root {
  overflow: hidden !important;
  height: 100% !important;
}

body.online-body.online-modal-locked {
  overflow: hidden !important;
  overscroll-behavior: none !important;
  touch-action: none !important;
}

body.online-body #onlineItemModal.modal-backdrop {
  position: fixed !important;
  inset: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  height: 100dvh !important;
  z-index: 30000 !important;
  display: none !important;
  align-items: center !important;
  justify-content: center !important;
  padding: max(12px, env(safe-area-inset-top)) 12px max(12px, env(safe-area-inset-bottom)) !important;
  overflow: hidden !important;
  overscroll-behavior: contain !important;
  box-sizing: border-box !important;
}

body.online-body #onlineItemModal.modal-backdrop.show {
  display: flex !important;
}

body.online-body #onlineItemModal .online-item-modal-card {
  width: min(860px, calc(100vw - 24px)) !important;
  height: auto !important;
  max-height: calc(100dvh - 24px) !important;
  overflow: hidden !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  box-sizing: border-box !important;
  transform: none !important;
}

body.online-body #onlineItemModal .online-item-modal-scroll {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  -webkit-overflow-scrolling: touch !important;
  overscroll-behavior: contain !important;
}

body.online-body #onlineItemModal .online-item-modal-card .modal-actions {
  flex: 0 0 auto !important;
  position: sticky !important;
  bottom: 0 !important;
  z-index: 10 !important;
}

@media (max-width: 760px) {
  body.online-body #onlineItemModal.modal-backdrop {
    padding: max(10px, env(safe-area-inset-top)) 10px max(10px, env(safe-area-inset-bottom)) !important;
    align-items: center !important;
  }

  body.online-body #onlineItemModal .online-item-modal-card {
    width: calc(100vw - 20px) !important;
    max-height: calc(100dvh - 20px) !important;
    border-radius: 28px !important;
    padding: 0 !important;
  }

  body.online-body #onlineItemModal .online-item-modal-scroll {
    padding: 18px 18px 0 !important;
  }
}

/* North Embedded Checkout Fields */
.online-north-embedded-wrap {
  display: grid;
  gap: 14px;
  margin-top: 6px;
}
.online-north-embedded-head {
  display: grid;
  gap: 4px;
  font-size: 0.95rem;
  color: #0f172a;
}
.online-north-embedded-head strong {
  font-size: 1.1rem;
}
.online-north-embedded-head span {
  color: #64748b;
}
.online-north-embedded-fields {
  min-height: 660px;
  border: 3px solid #bfdbfe;
  border-radius: 20px;
  background: #f8fbff;
  padding: 12px;
  color: #64748b;
  font-weight: 800;
  overflow: hidden;
}
.online-north-embedded-fields iframe {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-height: 635px !important;
  height: 635px !important;
  border: 0 !important;
  overflow: hidden !important;
}
@media (max-width: 760px) {
  .online-north-embedded-fields {
    min-height: 700px;
    padding: 10px;
    border-radius: 18px;
  }
  .online-north-embedded-fields iframe {
    min-height: 680px !important;
    height: 680px !important;
  }
}

/* v1.5.31 - split online contact details and secure North fields into separate steps */
.online-contact-card {
  width: min(720px, calc(100vw - 24px));
  max-height: calc(100dvh - 24px);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.online-payment-card-secure-only {
  width: min(760px, calc(100vw - 24px));
}

.online-payment-grid-secure-only {
  gap: 12px;
}

.online-payment-card-secure-only {
  max-height: calc(100dvh - 24px);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.online-payment-card-secure-only .online-north-embedded-wrap {
  gap: 8px;
  margin-top: 2px;
}

.online-payment-card-secure-only .online-north-embedded-head {
  gap: 2px;
}

.online-payment-card-secure-only .online-north-embedded-head strong {
  font-size: 1rem;
}

.online-payment-card-secure-only .online-north-embedded-head span {
  font-size: 0.88rem;
}

.online-payment-card-secure-only .online-north-embedded-fields {
  background: #f1f1f1;
  min-height: 555px;
  padding: 8px;
}

.online-payment-card-secure-only .online-north-embedded-fields iframe {
  min-height: 535px !important;
  height: 535px !important;
}

@media (max-width: 760px) {
  .online-contact-card {
    width: calc(100vw - 16px);
    max-height: none;
    overflow: visible;
    border-radius: 28px;
    padding: 22px 20px calc(24px + env(safe-area-inset-bottom, 0px));
  }

  .online-payment-card-secure-only {
    width: calc(100vw - 16px);
    max-height: calc(100dvh - 16px);
    overflow-y: auto;
    padding: 16px 16px calc(18px + env(safe-area-inset-bottom, 0px));
  }

  .online-payment-card-secure-only .modal-title {
    margin-bottom: 4px;
  }

  .online-payment-card-secure-only .modal-desc {
    margin-bottom: 10px;
  }

  .online-payment-card-secure-only .online-secure-payment-strip {
    margin-bottom: 12px;
    padding: 12px;
  }

  .online-payment-card-secure-only .online-north-embedded-fields {
    min-height: 600px;
    background: #f1f1f1;
    padding: 8px;
  }

  .online-payment-card-secure-only .online-north-embedded-fields iframe {
    min-height: 580px !important;
    height: 580px !important;
  }
}

/* v1.5.34 - POS/Kitchen order-card action buttons use equal-width columns */
body.pos-body .pos-order-card .kitchen-card-actions,
body.kitchen-body .kitchen-order-card .kitchen-card-actions {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px !important;
  align-items: stretch !important;
}

body.pos-body .pos-order-card .kitchen-card-actions .kitchen-action-btn,
body.pos-body .pos-order-card .kitchen-card-actions .kitchen-small-btn,
body.kitchen-body .kitchen-order-card .kitchen-card-actions .kitchen-action-btn,
body.kitchen-body .kitchen-order-card .kitchen-card-actions .kitchen-small-btn {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  flex: 1 1 0 !important;
  padding-left: 10px !important;
  padding-right: 10px !important;
}

@media (max-width: 520px) {
  body.pos-body .pos-order-card .kitchen-card-actions,
  body.kitchen-body .kitchen-order-card .kitchen-card-actions {
    gap: 8px !important;
  }
}


/* v1.5.37 - clean POS/Kitchen online order note boxes */
body.pos-body .pos-order-card .order-note-box,
body.kitchen-body .kitchen-order-card .order-note-box {
  display: grid;
  gap: 8px;
  background: #eff6ff !important;
  border: 2px solid #bfdbfe !important;
  color: #0f172a !important;
  border-radius: 18px !important;
  padding: 12px 14px !important;
  font-size: 15px !important;
  font-weight: 850 !important;
  line-height: 1.25 !important;
}
body.pos-body .pos-order-card .order-note-heading,
body.kitchen-body .kitchen-order-card .order-note-heading {
  color: #1d4ed8;
  font-size: 12px;
  font-weight: 1000;
  letter-spacing: .08em;
  text-transform: uppercase;
}
body.pos-body .pos-order-card .order-note-main,
body.kitchen-body .kitchen-order-card .order-note-main {
  color: #78350f;
  font-size: 17px;
  font-weight: 1000;
}
body.pos-body .pos-order-card .order-note-row,
body.kitchen-body .kitchen-order-card .order-note-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  border-top: 1px solid #bfdbfe;
  padding-top: 7px;
}
body.pos-body .pos-order-card .order-note-row span,
body.kitchen-body .kitchen-order-card .order-note-row span {
  color: #64748b;
  font-size: 12px;
  font-weight: 1000;
  text-transform: uppercase;
  letter-spacing: .05em;
  white-space: nowrap;
}
body.pos-body .pos-order-card .order-note-row strong,
body.kitchen-body .kitchen-order-card .order-note-row strong {
  color: #0f172a;
  font-size: 15px;
  font-weight: 1000;
  text-align: right;
}
@media (max-width: 700px) {
  body.pos-body .pos-order-card .order-note-row,
  body.kitchen-body .kitchen-order-card .order-note-row {
    display: grid;
    gap: 2px;
  }
  body.pos-body .pos-order-card .order-note-row strong,
  body.kitchen-body .kitchen-order-card .order-note-row strong {
    text-align: left;
  }
}


/* v1.5.42 - instant POS/Kitchen status feedback */
.kitchen-order-card.is-status-updating,
.pos-order-card.is-status-updating {
  opacity: .72;
  pointer-events: none;
  position: relative;
}
.kitchen-order-card.is-status-updating::after,
.pos-order-card.is-status-updating::after {
  content: 'Updating...';
  position: absolute;
  right: 14px;
  bottom: 14px;
  background: rgba(15, 23, 42, .92);
  color: #fff;
  border-radius: 999px;
  padding: 8px 12px;
  font-size: 13px;
  font-weight: 1000;
  letter-spacing: -.01em;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .18);
}

/* v1.5.45 - Mobile online contact step: keep Continue to Payment safely visible above browser toolbar */
@media (max-width: 760px) {
  body.online-body #onlineContactModal.modal-backdrop.show {
    align-items: flex-start !important;
    justify-content: center !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    padding: calc(10px + env(safe-area-inset-top, 0px)) 8px calc(18px + env(safe-area-inset-bottom, 0px)) !important;
    box-sizing: border-box !important;
  }

  body.online-body #onlineContactModal .online-contact-card {
    width: calc(100vw - 16px) !important;
    max-height: calc(100dvh - 20px) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    padding: 20px 18px calc(18px + env(safe-area-inset-bottom, 0px)) !important;
    border-radius: 28px !important;
    margin: 0 auto !important;
    box-sizing: border-box !important;
  }

  body.online-body #onlineContactModal .modal-title {
    font-size: clamp(34px, 8.5vw, 46px) !important;
    line-height: 1.02 !important;
  }

  body.online-body #onlineContactModal .modal-desc {
    margin: 8px 0 18px !important;
    line-height: 1.25 !important;
  }

  body.online-body #onlineContactModal .input-label {
    margin: 16px 0 8px !important;
  }

  body.online-body #onlineContactModal .big-input {
    padding: 17px 18px !important;
  }

  body.online-body #onlineContactModal .big-textarea {
    min-height: 92px !important;
    max-height: 120px !important;
    padding: 17px 18px !important;
  }

  body.online-body #onlineContactModal .modal-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    margin: 18px 0 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border-top: 0 !important;
  }

  body.online-body #onlineContactModal .cancel-btn,
  body.online-body #onlineContactModal .primary-btn {
    min-height: 64px !important;
    padding: 16px 18px !important;
    border-radius: 24px !important;
    font-size: 21px !important;
    line-height: 1.1 !important;
    box-shadow: none !important;
  }
}

/* v1.7.24 - Online checkout review items: card layout */
body.online-body #onlineReviewItems {
  display: grid;
  gap: 14px;
  margin: 18px 0 22px;
}

body.online-body .online-review-item-card {
  width: 100%;
  box-sizing: border-box;
  padding: 22px 24px;
  background: #eff6ff;
  border: 4px solid #bfdbfe;
  border-radius: 30px;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .04);
}

body.online-body .online-review-item-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

body.online-body .online-review-item-top h3 {
  margin: 0;
  color: #0f172a;
  font-size: clamp(24px, 4.6vw, 38px);
  line-height: 1.02;
  letter-spacing: -.045em;
  font-weight: 1000;
}

body.online-body .online-review-item-top strong {
  flex: 0 0 auto;
  color: #0f172a;
  font-size: clamp(23px, 4.2vw, 34px);
  line-height: 1.02;
  letter-spacing: -.035em;
  font-weight: 1000;
  white-space: nowrap;
}

body.online-body .online-review-item-mods,
body.online-body .online-review-item-card .cart-mods {
  margin-top: 14px;
  color: #1e40af;
  font-size: clamp(18px, 3.7vw, 30px);
  line-height: 1.2;
  font-weight: 1000;
  letter-spacing: -.02em;
}

body.online-body .online-review-item-note,
body.online-body .online-review-item-card .cart-item-note {
  margin-top: 13px;
  color: #334155;
  font-size: clamp(17px, 3.25vw, 25px);
  line-height: 1.15;
  font-weight: 1000;
  opacity: 1;
}

@media (max-width: 640px) {
  body.online-body #onlineReviewItems {
    gap: 12px;
    margin: 16px 0 20px;
  }

  body.online-body .online-review-item-card {
    padding: 18px 18px 19px;
    border-width: 3px;
    border-radius: 28px;
  }

  body.online-body .online-review-item-top {
    gap: 12px;
  }
}


/* v1.7.25 - Online checkout step modals: one clean mobile scroll layer.
   The backdrop scrolls. The checkout/contact/payment cards do not become nested scrolling frames. */
@media (max-width: 760px) {
  body.online-body #onlineCheckoutModal.modal-backdrop,
  body.online-body #onlineContactModal.modal-backdrop,
  body.online-body #onlinePaymentModal.modal-backdrop {
    position: fixed !important;
    inset: 0 !important;
    z-index: 30000 !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    display: none !important;
    align-items: flex-start !important;
    justify-content: center !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
    box-sizing: border-box !important;
    padding: calc(10px + env(safe-area-inset-top, 0px)) 8px calc(22px + env(safe-area-inset-bottom, 0px)) !important;
  }

  body.online-body #onlineCheckoutModal.modal-backdrop.show,
  body.online-body #onlineContactModal.modal-backdrop.show,
  body.online-body #onlinePaymentModal.modal-backdrop.show {
    display: flex !important;
  }

  body.online-body #onlineCheckoutModal .modal-card,
  body.online-body #onlineContactModal .modal-card,
  body.online-body #onlinePaymentModal .modal-card {
    width: calc(100vw - 16px) !important;
    max-width: calc(100vw - 16px) !important;
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    overflow: visible !important;
    margin: 0 auto !important;
    box-sizing: border-box !important;
    border-radius: 28px !important;
  }

  body.online-body #onlineCheckoutModal .modal-card,
  body.online-body #onlineContactModal .modal-card {
    padding: 22px 20px calc(24px + env(safe-area-inset-bottom, 0px)) !important;
  }

  body.online-body #onlinePaymentModal .modal-card {
    padding: 16px 16px calc(22px + env(safe-area-inset-bottom, 0px)) !important;
  }

  body.online-body #onlineCheckoutModal .modal-actions,
  body.online-body #onlineContactModal .modal-actions,
  body.online-body #onlinePaymentModal .modal-actions {
    position: static !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    margin: 22px 0 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border-top: 0 !important;
    box-shadow: none !important;
  }

  body.online-body #onlinePaymentModal .online-north-embedded-fields {
    min-height: 820px !important;
    height: auto !important;
    overflow: hidden !important;
  }

  body.online-body #onlinePaymentModal .online-north-embedded-fields iframe {
    min-height: 800px !important;
    height: 800px !important;
    overflow: hidden !important;
  }
}

/* v1.7.26 - Online checkout: tighten North embedded iframe height on mobile.
   The prior mobile override forced an 800px iframe, leaving a large empty area under Postal Code. */
@media (max-width: 760px) {
  body.online-body #onlinePaymentModal .online-north-embedded-fields {
    min-height: 640px !important;
    height: 640px !important;
    padding: 8px !important;
    overflow: hidden !important;
  }

  body.online-body #onlinePaymentModal .online-north-embedded-fields iframe {
    min-height: 620px !important;
    height: 620px !important;
    display: block !important;
  }
}

@media (max-width: 420px) {
  body.online-body #onlinePaymentModal .online-north-embedded-fields {
    min-height: 600px !important;
    height: 600px !important;
  }

  body.online-body #onlinePaymentModal .online-north-embedded-fields iframe {
    min-height: 582px !important;
    height: 582px !important;
  }
}

/* v1.7.27 - Online checkout: hide North embedded iframe chrome/extra scroll where browser allows it. */
.north-embedded-frame,
.north-embedded-frame iframe,
.online-north-embedded-fields,
.online-north-embedded-fields iframe {
  width: 100% !important;
  max-width: 100% !important;
  border: 0 !important;
  overflow: hidden !important;
}

.online-north-embedded-fields iframe {
  display: block !important;
}

/* v1.7.28 - Online checkout: flatten North embedded field container and give hosted fields enough height. */
@media (max-width: 760px) {
  body.online-body #onlinePaymentModal .online-north-embedded-wrap {
    gap: 0 !important;
    margin-top: 0 !important;
  }

  body.online-body #onlinePaymentModal .online-north-embedded-fields,
  body.online-body #onlinePaymentModal .online-north-embedded-fields.north-embedded-frame {
    height: 660px !important;
    min-height: 660px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: hidden !important;
  }

  body.online-body #onlinePaymentModal .online-north-embedded-fields iframe,
  body.online-body #onlinePaymentModal .online-north-embedded-fields.north-embedded-frame iframe {
    height: 660px !important;
    min-height: 660px !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    overflow: hidden !important;
  }
}

@media (max-width: 420px) {
  body.online-body #onlinePaymentModal .online-north-embedded-fields,
  body.online-body #onlinePaymentModal .online-north-embedded-fields.north-embedded-frame {
    height: 660px !important;
    min-height: 660px !important;
  }

  body.online-body #onlinePaymentModal .online-north-embedded-fields iframe,
  body.online-body #onlinePaymentModal .online-north-embedded-fields.north-embedded-frame iframe {
    height: 660px !important;
    min-height: 660px !important;
  }
}

/* v1.7.29 - Online checkout: normalize checkout step action button font sizes. */
@media (max-width: 760px) {
  body.online-body #onlineCheckoutModal .modal-actions .cancel-btn,
  body.online-body #onlineCheckoutModal .modal-actions .primary-btn,
  body.online-body #onlineContactModal .modal-actions .cancel-btn,
  body.online-body #onlineContactModal .modal-actions .primary-btn,
  body.online-body #onlinePaymentModal .modal-actions .cancel-btn,
  body.online-body #onlinePaymentModal .modal-actions .primary-btn,
  body.online-body #onlineFinishCheckoutBtn,
  body.online-body #onlineSubmitOrderBtn {
    min-height: 64px !important;
    height: 64px !important;
    max-height: 64px !important;
    padding: 0 18px !important;
    border-radius: 24px !important;
    font-size: 21px !important;
    font-weight: 1000 !important;
    line-height: 1.1 !important;
    letter-spacing: -.02em !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 9px !important;
    text-align: center !important;
    white-space: nowrap !important;
    box-sizing: border-box !important;
    box-shadow: none !important;
  }
}

/* v1.7.30 - Online checkout: increase North embedded frame height on desktop so Postal Code is visible. */
@media (min-width: 761px) {
  body.online-body #onlinePaymentModal .online-payment-card-secure-only .online-north-embedded-fields,
  body.online-body #onlinePaymentModal .online-payment-card-secure-only .online-north-embedded-fields.north-embedded-frame {
    height: 650px !important;
    min-height: 650px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: hidden !important;
  }

  body.online-body #onlinePaymentModal .online-payment-card-secure-only .online-north-embedded-fields iframe,
  body.online-body #onlinePaymentModal .online-payment-card-secure-only .online-north-embedded-fields.north-embedded-frame iframe {
    height: 650px !important;
    min-height: 650px !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    overflow: hidden !important;
  }
}

/* Accounting cleanup v1.8.7 */
[data-admin-panel="accounting"] .admin-panel-head {
  align-items: center;
  margin-bottom: 18px;
}
[data-admin-panel="accounting"] .admin-panel-head h2 {
  letter-spacing: -.045em;
}
[data-admin-panel="accounting"] .admin-panel-head p {
  max-width: 760px;
}
[data-admin-panel="accounting"] .admin-primary#exportAccountingBtn {
  min-width: 140px;
  border-radius: 18px;
  box-shadow: 0 14px 28px rgba(22, 163, 74, .18);
}
.accounting-toolbar {
  align-items: center;
  margin: 8px 0 18px;
}
.accounting-ranges {
  background: rgba(255,255,255,.72);
  border: 2px solid rgba(var(--primary-500-rgb),.13);
  border-radius: 24px;
  padding: 6px;
  box-shadow: 0 12px 28px rgba(15,23,42,.06);
}
.accounting-range {
  border-radius: 17px;
  padding: 12px 18px;
  box-shadow: none;
  background: transparent;
  font-size: 16px;
}
.accounting-range:not(.is-active):hover {
  background: var(--primary-50);
}
.accounting-stats.accounting-stats-v2 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 18px;
}
.accounting-stats-v2 article {
  position: relative;
  overflow: hidden;
  min-height: 122px;
  padding: 18px 18px 16px;
  border-radius: 24px;
}
.accounting-stats-v2 article::after {
  content: "";
  position: absolute;
  right: -34px;
  top: -46px;
  width: 110px;
  height: 110px;
  border-radius: 999px;
  background: rgba(var(--primary-500-rgb),.08);
  pointer-events: none;
}
.accounting-stats-v2 .acct-stat-primary {
  background: linear-gradient(135deg, rgba(255,255,255,.97), var(--primary-50));
}
.accounting-stats-v2 span {
  font-size: 13px;
  letter-spacing: .015em;
}
.accounting-stats-v2 strong {
  margin-top: 7px;
  font-size: clamp(28px, 2.15vw, 36px);
  letter-spacing: -.06em;
}
.accounting-stats-v2 small {
  display: block;
  margin-top: 8px;
  color: #64748b;
  font-size: 12px;
  line-height: 1.2;
  font-weight: 900;
}
.accounting-two-col {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  align-items: stretch;
}
.accounting-card {
  border-radius: 26px;
  padding: 20px;
}
.accounting-card-compact h3 {
  margin-bottom: 12px;
  font-size: 22px;
}
.accounting-card-head {
  margin-bottom: 14px;
}
.accounting-card-head h3 {
  margin: 0;
}
.accounting-card-head span {
  padding: 7px 13px;
  font-size: 14px;
}
.accounting-mini-row {
  min-height: 48px;
  padding: 11px 14px;
  border-radius: 16px;
}
.accounting-mini-row span,
.accounting-mini-row strong {
  font-size: 15px;
  line-height: 1.15;
}
.accounting-table-wrap {
  border-radius: 18px;
  background: white;
}
.accounting-table {
  min-width: 980px;
}
.accounting-table th,
.accounting-table td {
  padding: 12px 13px;
  vertical-align: middle;
}
.accounting-table th {
  position: sticky;
  top: 0;
  z-index: 1;
  font-size: 12px;
}
.accounting-table td {
  font-size: 15px;
}
.accounting-table tbody tr:hover td {
  background: rgba(var(--primary-500-rgb),.035);
}
.accounting-table .acct-order-cell strong {
  display: block;
  white-space: nowrap;
}
.accounting-table .acct-customer-cell {
  max-width: 180px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.acct-muted {
  color: #94a3b8;
  font-weight: 1000;
}
.acct-payment-actions {
  display: flex;
  align-items: center;
  gap: 7px;
  flex-wrap: nowrap;
}
.acct-payment-actions .admin-small-btn {
  padding: 9px 12px;
  border-radius: 12px;
  font-size: 13px;
  line-height: 1;
  white-space: nowrap;
}
.acct-refund-note {
  display: block;
  min-width: 78px;
  color: #64748b;
  font-size: 11px;
  font-weight: 900;
  line-height: 1.1;
}
@media (max-width: 1320px) {
  .accounting-stats.accounting-stats-v2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .accounting-two-col { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .accounting-stats.accounting-stats-v2 { grid-template-columns: 1fr; }
  .accounting-ranges { width: 100%; }
  .accounting-range { flex: 1 1 calc(50% - 8px); }
  .accounting-card { padding: 16px; }
}


/* POS Daily Tips modal */
#posTipsModal.modal-backdrop{z-index:2000!important;padding:14px!important;align-items:center!important;justify-content:center!important}
#posTipsModal .pos-tips-card{width:min(900px,94vw)!important;max-height:88vh!important;overflow:auto!important;padding:22px!important;border-radius:24px!important}
#posTipsModal .pos-tips-head{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:start!important;gap:14px!important;margin:0 0 14px!important}
#posTipsModal .pos-tips-head .modal-title{font-size:32px!important;line-height:1.05!important;margin:0!important;letter-spacing:-.03em!important}
#posTipsModal .pos-tips-head .modal-desc{font-size:15px!important;line-height:1.25!important;margin:6px 0 0!important}
#posTipsModal .pos-tips-head .cancel-btn{width:auto!important;min-width:92px!important;min-height:50px!important;padding:0 18px!important;border-radius:16px!important;font-size:16px!important;background:#d97706!important;color:#fff!important;box-shadow:0 10px 20px rgba(217,119,6,.22)!important}
#posTipsModal .pos-tips-toolbar{display:grid!important;grid-template-columns:220px 120px minmax(220px,1fr)!important;align-items:end!important;gap:10px!important;margin:0 0 14px!important}
#posTipsModal .pos-tips-toolbar label{display:flex!important;flex-direction:column!important;gap:5px!important;margin:0!important;font-size:15px!important;font-weight:900!important;color:#334155!important}
#posTipsModal .pos-tips-toolbar .big-input{width:100%!important;min-width:0!important;height:54px!important;padding:0 14px!important;border-radius:14px!important;font-size:18px!important}
#posTipsModal .pos-tips-toolbar .kitchen-small-btn,#posTipsModal .pos-tips-toolbar .primary-btn{width:100%!important;min-height:54px!important;height:54px!important;border-radius:16px!important;padding:0 14px!important;font-size:16px!important;line-height:1.1!important}
#posTipsModal .pos-tips-toolbar .primary-btn{box-shadow:none!important;background:#0b5fe8!important}
#posTipsModal .pos-tips-summary-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))!important;gap:10px!important}
#posTipsModal .pos-tips-staff-card{border:1px solid #e2e8f0!important;border-radius:16px!important;background:#fff!important;padding:12px!important;box-shadow:0 8px 18px rgba(15,23,42,.08)!important;display:flex!important;flex-direction:column!important;gap:10px!important}
#posTipsModal .pos-tips-staff-main{display:flex!important;flex-direction:column!important;gap:3px!important}
#posTipsModal .pos-tips-staff-main span{font-size:1rem!important;font-weight:900!important;color:#0f172a!important}
#posTipsModal .pos-tips-staff-main strong{font-size:1.8rem!important;line-height:1!important;color:#16a34a!important}
#posTipsModal .pos-tips-staff-main small{color:#64748b!important;font-weight:700!important}
#posTipsModal .pos-tips-staff-main .pos-tips-paid{color:#166534!important}
#posTipsModal .pos-tips-staff-meta{display:flex!important;gap:7px!important;flex-wrap:wrap!important}
#posTipsModal .pos-tips-staff-meta span{background:#f1f5f9!important;border-radius:999px!important;padding:5px 9px!important;font-size:.78rem!important;font-weight:800!important;color:#475569!important}
#posTipsModal .pos-tip-print-staff-btn{width:100%!important;min-height:42px!important;border-radius:14px!important;font-size:15px!important}
#posTipsModal .pos-tips-empty{grid-column:1/-1!important;border:1px dashed #cbd5e1!important;border-radius:14px!important;background:#f8fafc!important;padding:14px!important;text-align:center!important;font-weight:800!important;color:#64748b!important}
#posTipsModal .pos-tips-history-wrap{margin-top:14px!important}
#posTipsModal .pos-tips-history-wrap h3{margin:0 0 8px!important;font-size:1rem!important;color:#0f172a!important}
#posTipsModal .pos-tips-history{border:1px solid #e2e8f0!important;border-radius:14px!important;overflow:hidden!important;background:#fff!important}
#posTipsModal .pos-tips-history-row{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;padding:9px 11px!important;border-bottom:1px solid #e2e8f0!important}
#posTipsModal .pos-tips-history-row:last-child{border-bottom:0!important}
#posTipsModal .pos-tips-history-row div{display:flex!important;flex-direction:column!important;gap:2px!important}
#posTipsModal .pos-tips-history-row strong{color:#0f172a!important}
#posTipsModal .pos-tips-history-row span{font-size:.8rem!important;color:#64748b!important;font-weight:700!important}
@media(max-width:720px){#posTipsModal .pos-tips-card{width:96vw!important;max-height:88vh!important;padding:18px!important}#posTipsModal .pos-tips-head{grid-template-columns:1fr!important}#posTipsModal .pos-tips-head .cancel-btn{width:100%!important}#posTipsModal .pos-tips-toolbar{grid-template-columns:1fr!important}#posTipsModal .pos-tips-history-row{align-items:flex-start!important;flex-direction:column!important}#posTipsModal .pos-tips-history-row>div:last-child{align-items:flex-start!important}}

/* v1.7.38 - Online item modal header cleanup */
body.online-body #onlineItemModal .online-item-modal-header {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 16px !important;
  margin-bottom: 18px !important;
}

body.online-body #onlineItemModal .online-item-modal-image {
  width: 100% !important;
  max-width: none !important;
  aspect-ratio: 16 / 7 !important;
  min-height: clamp(190px, 27vw, 300px) !important;
  border-radius: 24px !important;
  display: grid !important;
  place-items: center !important;
  overflow: hidden !important;
  background: #f8fafc !important;
}

body.online-body #onlineItemModal .online-item-modal-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
  display: block !important;
}

body.online-body #onlineItemModal .online-item-modal-copy {
  position: relative !important;
  min-height: 0 !important;
  padding-right: clamp(96px, 18vw, 150px) !important;
}

body.online-body #onlineItemModal #onlineItemModalTitle {
  margin: 0 0 8px !important;
  padding: 0 !important;
  line-height: .95 !important;
  letter-spacing: -0.055em !important;
}

body.online-body #onlineItemModal .online-item-modal-description {
  display: block !important;
  margin: 0 !important;
  max-width: 100% !important;
  white-space: normal !important;
  color: #334155 !important;
  font-weight: 800 !important;
  line-height: 1.35 !important;
}

body.online-body #onlineItemModal .online-modal-floating-price {
  position: absolute !important;
  top: 2px !important;
  right: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 88px !important;
  padding: 9px 14px !important;
  border-radius: 999px !important;
  background: #eef6ff !important;
  border: 2px solid #bfdbfe !important;
  color: #1d4ed8 !important;
  font-size: clamp(18px, 2.1vw, 26px) !important;
  font-weight: 1000 !important;
  line-height: 1 !important;
  letter-spacing: -0.04em !important;
  box-shadow: 0 12px 24px rgba(37, 99, 235, .14) !important;
}

@media (max-width: 760px) {
  body.online-body #onlineItemModal .online-item-modal-image {
    aspect-ratio: 4 / 3 !important;
    min-height: 0 !important;
    border-radius: 22px !important;
  }

  body.online-body #onlineItemModal .online-item-modal-copy {
    padding-right: 0 !important;
    padding-bottom: 46px !important;
  }

  body.online-body #onlineItemModal .online-modal-floating-price {
    top: auto !important;
    right: auto !important;
    left: 0 !important;
    bottom: 0 !important;
    min-width: 0 !important;
    font-size: 18px !important;
    padding: 8px 13px !important;
  }
}

/* v1.6.9 - Center modal hero image crop */
body.online-body #onlineItemModal .online-item-modal-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  display: block !important;
}

/* v1.6.10 - Keep mobile modal price inline with item title */
@media (max-width: 760px) {
  body.online-body #onlineItemModal .online-item-modal-copy {
    padding-right: 112px !important;
    padding-bottom: 0 !important;
  }

  body.online-body #onlineItemModal .online-modal-floating-price {
    top: 0 !important;
    right: 0 !important;
    left: auto !important;
    bottom: auto !important;
    min-width: 86px !important;
    font-size: 18px !important;
    padding: 8px 13px !important;
  }

  body.online-body #onlineItemModal #onlineItemModalTitle {
    padding-right: 0 !important;
  }
}


/* v1.6.11 - Mobile item modal image crop and price layout */
@media (max-width: 900px) {
  body.online-body #onlineItemModal .online-item-modal-image {
    aspect-ratio: 16 / 9 !important;
    min-height: 190px !important;
    border-radius: 22px !important;
  }

  body.online-body #onlineItemModal .online-item-modal-image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center 58% !important;
  }

  body.online-body #onlineItemModal .online-item-modal-copy {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 8px 12px !important;
    align-items: center !important;
    padding-right: 0 !important;
    padding-bottom: 0 !important;
  }

  body.online-body #onlineItemModal #onlineItemModalTitle {
    grid-column: 1 !important;
    grid-row: 1 !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding-right: 0 !important;
  }

  body.online-body #onlineItemModal .online-modal-floating-price {
    position: static !important;
    grid-column: 2 !important;
    grid-row: 1 !important;
    justify-self: end !important;
    align-self: center !important;
    min-width: 86px !important;
    white-space: nowrap !important;
    font-size: 18px !important;
    padding: 8px 13px !important;
  }

  body.online-body #onlineItemModal .online-item-modal-description {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    width: 100% !important;
    max-width: none !important;
  }
}

/* v1.6.12 - Match desktop item modal header to mobile layout */
body.online-body #onlineItemModal .online-item-modal-image {
  aspect-ratio: 16 / 8 !important;
  min-height: clamp(220px, 29vw, 330px) !important;
}

body.online-body #onlineItemModal .online-item-modal-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center 58% !important;
}

body.online-body #onlineItemModal .online-item-modal-copy {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  gap: 8px 14px !important;
  align-items: center !important;
  padding-right: 0 !important;
  padding-bottom: 0 !important;
}

body.online-body #onlineItemModal #onlineItemModalTitle {
  grid-column: 1 !important;
  grid-row: 1 !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding-right: 0 !important;
}

body.online-body #onlineItemModal .online-modal-floating-price {
  position: static !important;
  grid-column: 2 !important;
  grid-row: 1 !important;
  justify-self: end !important;
  align-self: center !important;
  min-width: 92px !important;
  white-space: nowrap !important;
  font-size: clamp(18px, 2.1vw, 26px) !important;
  padding: 9px 14px !important;
}

body.online-body #onlineItemModal .online-item-modal-description {
  grid-column: 1 / -1 !important;
  grid-row: 2 !important;
  width: 100% !important;
  max-width: none !important;
}

@media (max-width: 760px) {
  body.online-body #onlineItemModal .online-item-modal-image {
    aspect-ratio: 16 / 9 !important;
    min-height: 190px !important;
  }

  body.online-body #onlineItemModal .online-modal-floating-price {
    min-width: 86px !important;
    font-size: 18px !important;
    padding: 8px 13px !important;
  }
}

/* v1.6.13 - True centered cover crop for online item modal hero image */
body.online-body #onlineItemModal .online-item-modal-image {
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
  background: #f8fafc !important;
}

body.online-body #onlineItemModal .online-item-modal-image img {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center center !important;
  flex: 0 0 auto !important;
  display: block !important;
}

@media (min-width: 761px) {
  body.online-body #onlineItemModal .online-item-modal-image {
    aspect-ratio: 16 / 8 !important;
    min-height: clamp(240px, 30vw, 350px) !important;
  }
}

@media (max-width: 760px) {
  body.online-body #onlineItemModal .online-item-modal-image {
    aspect-ratio: 16 / 10 !important;
    min-height: 210px !important;
  }
}

/* v1.7.41 - Online checkout: tighter North iframe after wallet buttons were removed. */
@media (max-width: 760px) {
  body.online-body #onlinePaymentModal .online-payment-card-secure-only {
    padding: 14px 16px calc(18px + env(safe-area-inset-bottom, 0px)) !important;
  }

  body.online-body #onlinePaymentModal .online-payment-card-secure-only .online-north-embedded-fields,
  body.online-body #onlinePaymentModal .online-payment-card-secure-only .online-north-embedded-fields.north-embedded-frame {
    height: 520px !important;
    min-height: 520px !important;
    max-height: 520px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: hidden !important;
  }

  body.online-body #onlinePaymentModal .online-payment-card-secure-only .online-north-embedded-fields iframe,
  body.online-body #onlinePaymentModal .online-payment-card-secure-only .online-north-embedded-fields.north-embedded-frame iframe {
    height: 520px !important;
    min-height: 520px !important;
    max-height: 520px !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    overflow: hidden !important;
  }

  body.online-body #onlinePaymentModal .modal-actions {
    margin-top: 12px !important;
  }
}

@media (max-width: 420px) {
  body.online-body #onlinePaymentModal .online-payment-card-secure-only .online-north-embedded-fields,
  body.online-body #onlinePaymentModal .online-payment-card-secure-only .online-north-embedded-fields.north-embedded-frame,
  body.online-body #onlinePaymentModal .online-payment-card-secure-only .online-north-embedded-fields iframe,
  body.online-body #onlinePaymentModal .online-payment-card-secure-only .online-north-embedded-fields.north-embedded-frame iframe {
    height: 500px !important;
    min-height: 500px !important;
    max-height: 500px !important;
  }
}

@media (min-width: 761px) {
  body.online-body #onlinePaymentModal .online-payment-card-secure-only .online-north-embedded-fields,
  body.online-body #onlinePaymentModal .online-payment-card-secure-only .online-north-embedded-fields.north-embedded-frame,
  body.online-body #onlinePaymentModal .online-payment-card-secure-only .online-north-embedded-fields iframe,
  body.online-body #onlinePaymentModal .online-payment-card-secure-only .online-north-embedded-fields.north-embedded-frame iframe {
    height: 540px !important;
    min-height: 540px !important;
    max-height: 540px !important;
  }
}

.form-help-text {
  display: block;
  margin-top: 0.35rem;
  color: #64748b;
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1.35;
}

.pac-container {
  z-index: 999999 !important;
  border-radius: 14px;
  border: 1px solid #bfdbfe;
  box-shadow: 0 18px 40px rgba(15, 23, 42, 0.18);
  overflow: hidden;
}

.pac-item {
  padding: 0.65rem 0.85rem;
  font-family: inherit;
  font-size: 0.92rem;
  cursor: pointer;
}

.pac-item-query {
  color: #0f172a;
  font-weight: 800;
}


/* v1.6.19 Registration form + Google Places cleanup */
body.admin-login-body .register-shell {
  width: min(720px, calc(100% - 32px));
}
body.admin-login-body .register-card {
  max-height: calc(100vh - 44px);
  overflow-y: auto;
}
body.admin-login-body .register-form {
  display: grid;
  grid-template-columns: 1fr !important;
  gap: 10px;
}
body.admin-login-body .register-form label,
body.admin-login-body .register-form input,
body.admin-login-body .register-form small,
body.admin-login-body .register-form button {
  grid-column: 1 / -1 !important;
}
body.admin-login-body .register-form label {
  margin-top: 2px;
}
body.admin-login-body .register-form input {
  box-sizing: border-box;
}
body.admin-login-body .register-form .form-help-text {
  margin: -4px 0 2px;
  font-size: 13px;
}
.pac-container {
  z-index: 2147483647 !important;
}
@media (max-width: 760px) {
  body.admin-login-body .admin-login-card h1 {
    font-size: clamp(38px, 12vw, 54px);
  }
  body.admin-login-body .register-shell {
    width: min(520px, calc(100% - 22px));
  }
}
