.customer-app .checkout-contact-error {
  padding: 10px 12px;
  border: 1px solid #c85932;
  border-radius: 8px;
  color: #8b2914;
  background: #fff0e8;
  font-size: 13px;
}
.customer-app .brand {
  min-width: 0;
  max-width: min(40vw, 390px);
  flex: 0 1 auto;
  white-space: normal;
}
.customer-app .brand-icon {
  display: grid !important;
  place-items: center;
  flex: 0 0 auto;
  overflow: hidden;
  border-radius: 50%;
}
.customer-app .brand-icon.has-logo {
  background: transparent;
  box-shadow: none;
}
.customer-app .brand-icon img {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
  object-position: center;
}
.customer-app .brand-copy {
  display: block;
  min-width: 0;
  overflow: hidden;
}
.customer-app .brand-name,
.customer-app .brand-tagline {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.customer-app .brand-name {
  font: inherit;
}
.customer-app .brand-tagline[hidden],
.customer-app .footer-tagline[hidden] {
  display: none;
}
.customer-app .footer-brand,
.customer-app .footer-tagline,
.customer-app .footer-name {
  max-width: 100%;
  overflow-wrap: anywhere;
}
.customer-app .service-picker-brand {
  overflow: hidden;
  border-radius: 50%;
}
.customer-app .service-picker-brand img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
  object-position: center;
}
.customer-app .menu-carousel {
  isolation: isolate;
}
.customer-app .menu-carousel::after {
  content: none;
}
.customer-app .menu-carousel-slide {
  position: absolute;
  inset: 0;
  display: block;
  overflow: hidden;
  color: inherit;
  text-decoration: none;
}
.customer-app .menu-carousel-slide[hidden] {
  display: none !important;
}
.customer-app .menu-carousel-slide > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.customer-app .menu-carousel-slide::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #26140aeb, #28140980 42%, transparent 78%);
  pointer-events: none;
}
.customer-app .menu-carousel-copy {
  position: absolute;
  z-index: 1;
  inset: auto auto 28px 38px;
  max-width: min(55%, 560px);
  color: #fff4df;
  overflow: hidden;
}
.customer-app .menu-carousel-copy h2 {
  margin: 0 0 10px;
  color: inherit;
  font: 400 clamp(27px, 4vw, 46px)/1.1 Caprasimo, Georgia, serif;
  text-wrap: balance;
  overflow-wrap: anywhere;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
}
.customer-app .menu-carousel-copy p {
  margin: 0;
  color: #f3d8bc;
  font-size: 15px;
  overflow-wrap: anywhere;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
}
.customer-app .menu-carousel-copy .hero-link {
  display: inline-block;
  margin-top: 13px;
  border-bottom: 1px solid #fdb45b;
  padding-bottom: 3px;
  color: #fff4df;
  font-weight: 800;
}
.customer-app .carousel-arrow {
  position: absolute;
  z-index: 2;
  top: 50%;
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border: 1px solid #fff8;
  border-radius: 50%;
  background: #2c1a12a8;
  color: #fff8ed;
  font-size: 27px;
  line-height: 1;
  cursor: pointer;
  transform: translateY(-50%);
}
.customer-app .carousel-previous {
  left: 14px;
}
.customer-app .carousel-next {
  right: 14px;
}
.customer-app .carousel-dots {
  position: absolute;
  z-index: 2;
  right: 0;
  bottom: 15px;
  left: 0;
  display: flex;
  justify-content: center;
  gap: 7px;
}
.customer-app .carousel-dot {
  width: 8px;
  height: 8px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: #fff9;
  cursor: pointer;
  transition:
    width 140ms ease,
    background 140ms ease;
}
.customer-app .carousel-dot[aria-current='true'] {
  width: 25px;
  background: #fff;
}
@media (max-width: 650px) {
  .customer-app .menu-carousel-copy {
    inset: auto 30px 34px 20px;
    max-width: 75%;
  }
  .customer-app .menu-carousel-copy h2 {
    font-size: clamp(25px, 7vw, 35px);
  }
  .customer-app .menu-carousel-copy p {
    font-size: 13px;
  }
  .customer-app .carousel-arrow {
    width: 34px;
    height: 34px;
  }
  .customer-app .carousel-previous {
    left: 8px;
  }
  .customer-app .carousel-next {
    right: 8px;
  }
}
.customer-app dialog.service-picker-dialog {
  width: min(600px, calc(100% - 28px));
  padding: 30px;
  overflow: visible;
  text-align: center;
  border-radius: 22px;
}
.customer-app .service-picker {
  display: grid;
  justify-items: center;
  padding: 5px 2px 2px;
}
.customer-app .service-picker-brand {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border-radius: 17px;
  background: var(--orange);
  color: #fff8ed;
  font: 400 15px Caprasimo, Georgia, serif;
}
.customer-app .service-picker-kicker {
  margin: 12px 0 0;
  color: #a3652e;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.2px;
  text-transform: uppercase;
}
.customer-app .service-picker h2 {
  margin: 8px 0 0;
  font-size: 27px;
}
.customer-app .service-picker-copy {
  max-width: 390px;
  margin: 8px auto 22px;
}
.customer-app .service-picker-options {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  width: 100%;
}
.customer-app .service-choice {
  display: grid;
  justify-items: center;
  align-content: start;
  gap: 8px;
  min-height: 148px;
  padding: 16px 10px;
  border: 1px solid #ecd8bf;
  border-radius: 15px;
  background: #fffaf3;
  color: #502b1d;
  cursor: pointer;
  box-shadow: 0 5px 15px #502b1d0b;
  transition:
    transform 140ms ease,
    border-color 140ms ease,
    background 140ms ease;
}
.customer-app .service-choice:hover,
.customer-app .service-choice:focus-visible {
  transform: translateY(-2px);
  border-color: var(--orange);
  background: #fff2df;
  outline: 2px solid #ed780055;
  outline-offset: 2px;
}
.customer-app .service-choice-icon {
  display: grid;
  place-items: center;
  width: 66px;
  height: 66px;
  border-radius: 18px;
  background: #f8ead7;
  color: #e86c10;
}
.customer-app .service-choice strong {
  font-size: 14px;
}
.customer-app .service-choice small {
  color: #8e705b;
  font-size: 11px;
  line-height: 1.35;
}
@media (max-width: 520px) {
  .customer-app .brand {
    max-width: 42vw;
    gap: 7px;
  }
  .customer-app .brand-icon {
    width: 34px;
    height: 34px;
  }
  .customer-app .brand-tagline {
    font-size: 6px;
    letter-spacing: 0.25px;
  }
  .customer-app dialog.service-picker-dialog {
    padding: 26px 19px 20px;
  }
  .customer-app .service-picker h2 {
    max-width: 270px;
    font-size: 24px;
  }
  .customer-app .service-picker-copy {
    max-width: 290px;
    margin-bottom: 17px;
  }
  .customer-app .service-picker-options {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
  }
  .customer-app .service-choice {
    min-height: 132px;
    padding: 12px 8px;
  }
  .customer-app .service-choice-icon {
    width: 56px;
    height: 56px;
  }
  .customer-app .service-choice-icon svg {
    width: 36px;
    height: 36px;
  }
}
.owner-app #owner-order-alerts {
  padding: 10px 0;
}
.owner-app .owner-alert-controls {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}
.owner-app .owner-alert-controls label {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  font-size: 12px;
}
.owner-app .owner-alert-controls select {
  width: auto;
  margin: 0;
  padding: 7px 10px;
}
.owner-app #owner-alert-test {
  border: 1px solid #d6b48e;
  border-radius: 8px;
  background: #fffaf3;
  padding: 8px 10px;
  color: #633619;
  cursor: pointer;
}
.owner-app #owner-new-order:not([hidden]) {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
  padding: 12px 16px;
  margin-top: 10px;
  border-radius: 10px;
  background: #ffe0a6;
  color: #512900;
}
.owner-app #owner-alert-dismiss {
  margin-left: auto;
  border: 0;
  background: transparent;
  font-size: 22px;
  cursor: pointer;
}
.owner-app .order-view-tabs,
.owner-app .order-status-tabs {
  display: flex;
  align-items: center;
  gap: 8px;
  overflow-x: auto;
  padding: 4px 0 14px;
}
.owner-app .order-view-tabs {
  border-bottom: 1px solid var(--line);
  margin-bottom: 22px;
}
.owner-app .order-view-tabs button,
.owner-app .order-status-tabs button {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 11px 16px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fffaf3;
  color: #6c4630;
  font-family: inherit;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
}
.owner-app .order-view-tabs button[aria-selected='true'],
.owner-app .order-status-tabs button[aria-selected='true'] {
  background: #542c1c;
  color: #fff3dd;
  border-color: #542c1c;
}
.owner-app .order-status-tabs span,
.owner-app .order-view-tabs span {
  padding: 2px 7px;
  border-radius: 6px;
  background: #c7956133;
  font-size: 12px;
}
.owner-app .board.live-board {
  display: grid;
  grid-template-columns: repeat(4, minmax(240px, 1fr));
  gap: 16px;
  align-items: start;
  overflow-x: auto;
}
.owner-app .live-board .order-column {
  min-height: 190px;
  max-height: 72vh;
  overflow-y: auto;
  scrollbar-width: thin;
}
.owner-app .live-board .column-heading {
  position: sticky;
  top: -12px;
  z-index: 1;
  background: inherit;
  padding: 12px 0;
  margin: -12px 0 12px;
  font-size: 14px;
}
.owner-app .live-board .order-card {
  margin: 0 0 12px;
  padding: 18px;
  min-width: 0;
}
.owner-app .live-board .order-card time {
  font-size: 12px;
}
.owner-app .live-board .order-card ul {
  font-size: 14px;
  line-height: 1.6;
}
.owner-app .live-board .order-bottom {
  font-size: 14px;
}
.owner-app .queue-grid .queue-state {
  display: block;
  width: fit-content;
  margin-bottom: 12px;
}
.owner-app .queue-empty {
  grid-column: 1 / -1;
  padding: 50px 16px;
}
.owner-app .history-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px;
  margin-bottom: 18px;
}
.owner-app .history-toolbar h2 {
  margin-bottom: 6px;
}
.owner-app .history-search {
  min-width: min(100%, 280px);
  margin: 0;
}
.owner-app .history-search input {
  margin-bottom: 0;
}
.owner-app .history-pagination {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  flex-wrap: wrap;
  padding-top: 16px;
  font-size: 13px;
}
.owner-app .history-pagination > span:first-child {
  margin-right: auto;
}
.owner-app .order-history-panel table {
  min-width: 850px;
}
.owner-app .order-history-panel thead th {
  position: sticky;
  top: 0;
}
.owner-app .order-history-panel .table-scroll {
  max-height: 65vh;
  overflow: auto;
}
.owner-app .report-controls {
  display: flex;
  align-items: end;
  flex-wrap: wrap;
  gap: 12px;
  padding: 18px;
  margin: 0 0 24px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fffaf3;
}
.owner-app .report-controls label {
  flex: 1 1 155px;
  margin: 0;
  font-size: 13px;
}
.owner-app .report-controls select,
.owner-app .report-controls input {
  margin: 7px 0 0;
  min-height: 46px;
}
.owner-app .report-controls .button {
  margin: 0;
  min-height: 46px;
}
.owner-app .report-controls [hidden] {
  display: none;
}
.owner-app .report-filter-note {
  flex-basis: 100%;
  color: #92745e;
}
.owner-app .kpi-secondary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin-top: 16px;
}
.owner-app .kpi-secondary .stat {
  padding: 18px;
  align-items: start;
}
.owner-app .kpi-secondary .stat-icon {
  display: none;
}
.owner-app .kpi-secondary .stat strong {
  font-size: 26px;
}
.owner-app .report-tables .table-scroll {
  max-height: 380px;
  overflow: auto;
}
.owner-app .report-tables table {
  min-width: 560px;
}
@media (max-width: 1000px) {
  .owner-app .kpi-secondary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 520px) {
  .owner-app .report-controls label {
    flex-basis: 100%;
  }
  .owner-app .report-controls .button {
    flex: 1 1 auto;
  }
}
.owner-app .order-contact {
  padding: 14px;
  background: #c795611a;
  border-radius: 10px;
  margin: 14px 0;
}
.customer-app .checkout-contact {
  margin: 14px 0;
  padding: 14px 0;
  border-top: 1px solid var(--line);
}
.customer-app .checkout-contact h3 {
  margin: 0 0 12px;
}
.customer-app .checkout-contact label {
  display: block;
  margin-bottom: 16px;
  color: var(--theme-ink, #502b1d);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.5;
}
.customer-app .checkout-contact input,
.customer-app .checkout-contact textarea,
.customer-app .fulfilment-form input,
.customer-app .fulfilment-form select {
  width: 100%;
  box-sizing: border-box;
  display: block;
  min-height: 50px;
  margin: 7px 0 0;
  padding: 13px 15px;
  border: 1px solid var(--theme-line, #dbc7b1);
  border-radius: 11px;
  background: var(--theme-soft, #fffaf2);
  color: var(--theme-ink, #452215);
  font-family: inherit;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.4;
  box-shadow: inset 0 1px 2px #00000008;
  transition:
    border-color 150ms,
    box-shadow 150ms;
}
.customer-app .checkout-contact input::placeholder,
.customer-app .checkout-contact textarea::placeholder {
  color: var(--theme-muted, #92745e);
  opacity: 0.85;
}
.customer-app .checkout-contact input:focus,
.customer-app .checkout-contact textarea:focus,
.customer-app .fulfilment-form input:focus,
.customer-app .fulfilment-form select:focus {
  outline: none;
  border-color: var(--theme-accent, #d77811);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--theme-accent, #d77811), transparent 80%);
}
.customer-app .checkout-contact textarea {
  min-height: 90px;
  resize: vertical;
}
.customer-app .fulfilment-form label {
  display: block;
  margin: 16px 0;
}
.customer-app .fulfilment-form input,
.customer-app .fulfilment-form select {
  width: 100%;
  box-sizing: border-box;
}
.customer-app .fulfilment-form [hidden] {
  display: none;
}
.customer-ready-alert {
  position: fixed;
  z-index: 40;
  right: 20px;
  bottom: max(24px, env(safe-area-inset-bottom));
  width: min(390px, calc(100vw - 32px));
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 5px 14px;
  align-items: center;
  padding: 17px;
  color: #fffaf0;
  background: #3e1d0d;
  border: 1px solid #f1bd61;
  border-radius: 16px;
  box-shadow: 0 16px 44px #1d0d0790;
}
.customer-ready-alert strong {
  font-size: 17px;
}
.customer-ready-alert span {
  grid-column: 1 / -1;
  color: #ffe5b8;
  line-height: 1.45;
}
.customer-ready-alert button {
  border: 0;
  border-radius: 9px;
  padding: 9px 12px;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
  color: #4a210d;
  background: #ffd486;
}
.customer-ready-alert button:last-child {
  grid-column: 2;
  grid-row: 1;
  padding: 3px 8px;
  color: #ffe5b8;
  background: transparent;
  font-size: 22px;
  line-height: 1;
}
@media (max-width: 700px) {
  .customer-ready-alert {
    right: 16px;
    bottom: max(84px, calc(env(safe-area-inset-bottom) + 68px));
  }
}
@media (max-width: 700px) {
  .owner-app .board.queue-grid {
    grid-template-columns: 1fr;
  }
  .owner-app .order-status-tabs {
    padding-bottom: 12px;
  }
  .owner-app .order-status-tabs button {
    padding: 9px 12px;
    font-size: 13px;
  }
  .owner-app .history-search {
    width: 100%;
  }
}
.customer-app #toast,
.owner-app #toast {
  inset: auto auto max(24px, env(safe-area-inset-bottom)) 50%;
  margin: 0;
  transform: translateX(-50%);
  width: max-content;
  max-width: min(540px, calc(100vw - 32px));
  box-sizing: border-box;
  border: 1px solid #ffffff25;
  padding: 15px 20px;
  font-size: 15px;
  line-height: 1.5;
  box-shadow: 0 8px 32px #00000040;
}
.customer-app #toast[data-in-dialog],
.owner-app #toast[data-in-dialog] {
  position: sticky;
  inset: 0 auto auto;
  transform: none;
  width: 100%;
  z-index: 100;
  margin-bottom: 16px;
}
.owner-app .report-section .report-controls {
  padding: 0 0 18px;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
  margin: 18px 0;
}
.owner-app .report-section .table-scroll {
  max-height: 440px;
  overflow: auto;
}
.owner-app .report-section table {
  min-width: 650px;
}
.owner-app .report-section .kpi-secondary {
  margin-top: 0;
}
.owner-app .data-pagination {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
  font-size: 13px;
}
.owner-app .data-pagination[hidden],
.owner-app table tr[hidden],
.owner-app [data-paginate] > [hidden] {
  display: none !important;
}
.owner-app .data-pagination > span {
  margin-right: auto;
}
.owner-app .data-pagination label {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0;
}
.owner-app .data-pagination select {
  width: auto;
  min-width: 75px;
  margin: 0;
  padding: 8px;
}
.owner-app .data-pagination button {
  margin: 0;
  padding: 10px 14px;
}
.owner-app .order-card .order-print-link {
  display: block;
  text-align: center;
  margin-top: 10px;
  padding: 11px 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: #60341b;
  background: #fffaf3;
  text-decoration: none;
  font-size: 13px;
  font-weight: 700;
}
.owner-app .order-card .order-print-link:hover {
  background: #f4e7d5;
}
.owner-app .floor-summary {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  margin: 0 0 24px;
  color: #88715b;
  font-size: 14px;
}
.owner-app .floor-summary b {
  color: #452215;
  font-size: 18px;
  margin-right: 4px;
}
.owner-app .floor-workspace {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 330px;
  gap: 24px;
  align-items: start;
}
.owner-app .floor-toolbar {
  display: flex;
  gap: 12px;
  align-items: end;
  margin-bottom: 16px;
}
.owner-app .floor-toolbar label {
  font-size: 12px;
  margin: 0;
  flex: 1;
}
.owner-app .floor-toolbar input,
.owner-app .floor-toolbar select {
  margin: 6px 0 0;
  padding: 12px;
}
.owner-app .floor-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(135px, 1fr));
  gap: 12px;
}
.owner-app .floor-table {
  text-align: left;
  display: grid;
  gap: 10px;
  border: 1px solid #e4d7c7;
  border-radius: 12px;
  background: #fffaf3;
  color: #8c7862;
  padding: 16px;
  min-height: 126px;
}
.owner-app .floor-table-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}
.owner-app .floor-table-top strong {
  font:
    700 25px/1 Manrope,
    sans-serif;
  color: #4e3525;
}
.owner-app .floor-table-top small {
  font-size: 10px;
  padding: 4px 7px;
  border-radius: 5px;
  color: #397051;
  background: #eaf2e5;
}
.owner-app .floor-table > span:nth-child(2) {
  font-size: 11px;
}
.owner-app .floor-table > b {
  font-size: 14px;
  color: #4e3525;
}
.owner-app .floor-table.occupied {
  background: #fff0d8;
  border-color: #e5b56e;
}
.owner-app .floor-table.occupied small {
  background: #f4d8ad;
  color: #99560e;
}
.owner-app .floor-table[aria-pressed='true'] {
  outline: 2px solid #bf7726;
  outline-offset: 2px;
}
.owner-app .floor-detail {
  position: sticky;
  top: 20px;
  padding: 22px;
}
.owner-app .floor-detail h2 {
  font-size: 24px;
}
.owner-app .floor-amount {
  display: grid;
  gap: 7px;
  padding: 18px 0;
  border-block: 1px solid var(--line);
  margin: 18px 0;
}
.owner-app .floor-amount span {
  font-size: 12px;
  color: #88715b;
}
.owner-app .floor-amount strong {
  font:
    700 30px Manrope,
    sans-serif;
}
.owner-app .floor-detail .button {
  font-size: 13px;
  padding: 12px;
  margin-top: 8px;
}
.owner-app .floor-orders > button {
  display: flex;
  width: 100%;
  justify-content: space-between;
  align-items: center;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: none;
  text-align: left;
  padding: 15px 0;
  font-size: 12px;
}
.owner-app .floor-orders small {
  display: block;
  margin-top: 4px;
  color: #947957;
}
.owner-app .table-card-preview {
  text-align: center;
}
.owner-app .table-card-qr svg {
  width: 280px;
  max-width: 100%;
  height: auto;
  display: block;
  margin: 16px auto;
}
.owner-app .table-card-preview h3 {
  font-size: 16px;
}
.owner-app .table-card-actions {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 12px;
  margin: 16px 0;
}
.owner-app .table-card-url {
  font-size: 11px;
  overflow-wrap: anywhere;
}
@media (min-width: 901px) {
  .owner-app > aside > .logo {
    flex-shrink: 0;
  }
  .owner-app > aside #nav {
    min-height: 0;
    overflow-y: auto;
    align-content: start;
    scrollbar-width: thin;
    flex: 1;
  }
  .owner-app > aside .aside-bottom {
    padding-top: 18px;
    flex-shrink: 0;
    font-size: 22px;
  }
}
@media (max-width: 1000px) {
  .owner-app .floor-workspace {
    grid-template-columns: 1fr;
  }
  .owner-app .floor-detail {
    position: static;
  }
}
.owner-app .table-cards-toolbar {
  max-width: 480px;
}
.owner-app .table-cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr));
  gap: 14px;
  align-items: start;
  min-width: 0;
}
.owner-app .table-unified-card {
  min-width: 0;
  padding: 14px;
  border: 1px solid #e3d8ca;
  background: #fffaf3;
  border-radius: 12px;
}
.owner-app .table-unified-card.occupied {
  border-color: #dfb36d;
  background: #fff4e4;
}
.owner-app .table-card-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 0;
  margin: 0 0 10px;
  border: 0;
  background: transparent;
}
.owner-app .table-card-heading h2 {
  margin: 0;
  color: #4d3220;
  font:
    700 15px/1.3 Manrope,
    sans-serif;
}
.owner-app .table-card-state {
  background: #e8f0e3;
  color: #397051;
  border-radius: 5px;
  padding: 4px 7px;
  font-size: 10px;
  font-weight: 700;
}
.owner-app .occupied .table-card-state {
  background: #f5dfba;
  color: #955914;
}
.owner-app .table-card-body {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
}
.owner-app .table-card-inline-qr {
  width: 112px;
  height: 112px;
  padding: 0;
  border: 1px solid #ece7df;
  border-radius: 5px;
  background: white;
  display: grid;
  place-items: center;
}
.owner-app .table-card-inline-qr svg {
  width: 108px;
  height: 108px;
  display: block;
}
.owner-app .table-card-inline-qr span {
  font-size: 11px;
  color: #8f8070;
}
.owner-app .table-card-balance {
  display: grid;
  gap: 4px;
  min-width: 0;
}
.owner-app .table-card-balance small {
  color: #8a7560;
  font-size: 11px;
}
.owner-app .table-card-balance strong {
  color: #452c1c;
  font:
    700 23px/1.3 Manrope,
    sans-serif;
  overflow-wrap: anywhere;
}
.owner-app .table-card-balance > span {
  font-size: 10px;
  color: #8f7c66;
}
.owner-app .table-card-controls {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 6px;
  margin-top: 12px;
}
.owner-app #loyalty-rewards {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: min(340px, 92%);
  align-items: start;
  gap: 12px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x proximity;
  scrollbar-color: #d18b43 #f3e8d9;
  padding: 8px 2px 14px;
  margin: 8px 0 12px;
  min-width: 0;
}
.owner-app .loyalty-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 20px;
}
.owner-app .loyalty-members-panel {
  min-width: 0;
}
.owner-app .loyalty-members-panel #member-search {
  max-width: 440px;
  margin-bottom: 18px;
}
.owner-app #loyalty-members-table td {
  vertical-align: top;
}
.owner-app #loyalty-members-table summary {
  cursor: pointer;
  white-space: nowrap;
}
.owner-app #loyalty-form > label:first-child {
  max-width: 260px;
}
.owner-app #loyalty-form,
.owner-app .loyalty-rewards-panel {
  min-width: 0;
}
.owner-app .loyalty-reward {
  min-width: 0;
  margin: 0;
  padding: 12px;
  scroll-snap-align: start;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fffaf3;
}
.owner-app .loyalty-reward legend {
  padding: 0 6px;
  font-weight: 700;
  font-size: 13px;
}
.owner-app .loyalty-reward label {
  min-width: 0;
  font-size: 12px;
  margin-bottom: 0;
}
.owner-app .loyalty-reward :is(input, select) {
  padding: 8px 10px;
  min-height: 38px;
  font-size: 13px;
  margin: 4px 0 10px;
}
.owner-app .loyalty-reward .field-row {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 10px;
}
.owner-app .loyalty-reward-footer {
  display: flex;
  align-items: end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
}
.owner-app .loyalty-reward-footer label {
  flex: 1;
  min-width: 100px;
}
.owner-app #add-loyalty-reward {
  margin-bottom: 16px;
}
.owner-app .table-card-controls button,
.owner-app .table-card-controls a {
  min-width: 0;
  border: 1px solid #e69a46;
  background: #ffffff;
  padding: 7px 8px;
  border-radius: 6px;
  font-size: 11px;
  color: #843b08;
  font-weight: 700;
  cursor: pointer;
  text-align: center;
  white-space: nowrap;
}
.owner-app .table-card-controls button:first-child {
  background: #ff8a00;
  border-color: #e47500;
  color: #3d210b;
  font-weight: 700;
}
.owner-app .table-card-controls button:not(:disabled):hover,
.owner-app .table-card-controls a:hover {
  background: #fff0d9;
  border-color: #c96700;
}
.owner-app .table-card-controls button:first-child:hover {
  background: #ff9c26;
}
.owner-app .table-card-controls :is(button, a):focus-visible {
  outline: 3px solid #a94c00;
  outline-offset: 3px;
}
.owner-app .table-card-controls button:disabled {
  background: #eee9e2;
  color: #8c8378;
  border-color: #dcd5cc;
  cursor: not-allowed;
}
.owner-app .table-card-order-list {
  margin-top: 10px;
  padding-top: 9px;
  border-top: 1px solid #e9dac4;
  font-size: 11px;
}
.owner-app .table-card-order-list summary {
  cursor: pointer;
  color: #8b6745;
}
.owner-app .table-card-order-list button {
  width: 100%;
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: space-between;
  text-align: left;
  padding: 9px 0;
  border: 0;
  background: transparent;
  font-size: 11px;
}
.owner-app .table-card-order-list small {
  display: block;
  margin-top: 3px;
  color: #947957;
}
