/* 由 styles/ 生成，不要手改 */
/* NORA Catering POS — European tech aesthetic */
:root {
  --bg: #EEF0F4;
  --bg-elev: #FFFFFF;
  --bg-panel: #FFFFFF;
  --bg-hover: #F5F6F8;
  --border: #E2E5EB;
  --border-strong: #D0D5DE;
  --text: #5C6578;
  --text-dim: #8B93A3;
  --heading: #0B0D12;
  --accent: var(--ui-brand);
  --accent-dim: var(--ui-brand-soft);
  --accent-press: var(--ui-brand-press);
  --ok: #12B76A;
  --warn: #DC6803;
  --danger: var(--ui-danger);
  --idle: #F4F6F8;
  --idle-edge: #98A2B3;
  --opened: #3B82F6;
  --opened-bg: #EFF6FF;
  --pending: #12B76A;
  --pending-bg: #ECFDF3;
  --checkout: #F79009;
  --checkout-bg: #FFFAEB;
  --clear: #667085;
  --clear-bg: #F2F4F7;
  --mono: ui-monospace, "SF Mono", "JetBrains Mono", "Cascadia Mono", Menlo, Consolas, monospace;
  --sans: "PingFang SC", "Noto Sans SC", "Helvetica Neue", system-ui, -apple-system, sans-serif;
  --r: 6px;
  --r-sm: 4px;
  --rail: 72px;
  --sidebar: 216px;
  --touch: 48px;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html, body {
  height: 100%;
  background: var(--bg);
  color: var(--text);
  font-family: var(--sans);
  font-size: 15px;
  line-height: 1.45;
  -webkit-font-smoothing: antialiased;
  overflow: hidden;
}

button { font-family: inherit; cursor: pointer; border: none; background: none; color: inherit; touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
input, select, textarea { font-family: inherit; color: inherit; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; }
img { display: block; }
.mono { font-family: var(--mono); font-variant-numeric: tabular-nums; }
.hidden, .app[hidden] { display: none !important; }

/* —— Shell —— */
.app {
  display: grid;
  grid-template-columns: var(--rail) 1fr;
  height: 100%;
  width: 100%;
  min-width: 0;
  min-height: 0;
}

/* Left icon rail */
.rail {
  background: var(--bg-elev);
  border-right: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 16px 0;
  gap: var(--ui-button-gap);
  z-index: 20;
}

.brand {
  width: 36px;
  height: 36px;
  border: 1px solid var(--border-strong);
  border-radius: var(--r);
  display: grid;
  place-items: center;
  margin-bottom: 20px;
  color: var(--heading);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: -0.02em;
  background: var(--bg);
}

.brand span { color: var(--accent-press); }

.rail-nav {
  display: flex;
  flex-direction: column;
  gap: var(--ui-button-gap);
  width: 100%;
  padding: 0 8px;
  flex: 1;
  min-height: 0;
  overflow-y: auto;
}

.rail-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--ui-button-gap);
  min-height: 58px;
  flex-shrink: 0;
  padding: 6px 2px;
  border-radius: var(--r);
  color: var(--text-dim);
  transition: background 0.12s, color 0.12s;
}

.rail-btn svg { width: 20px; height: 20px; stroke: currentColor; fill: none; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.rail-btn .label { font-size: 15px; letter-spacing: 0.02em; }
.rail-btn:hover { background: var(--bg-hover); color: var(--text); }
.rail-btn.active { background: var(--accent-dim); color: var(--accent-press); }

.rail-footer {
  padding: 8px 10px 0;
  width: 100%;
  border-top: 1px solid var(--border);
  margin-top: 8px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--ui-button-gap);
}

.rail-meta {
  font-size: 15px;
  color: var(--text-dim);
  text-align: center;
  line-height: 1.3;
  font-family: var(--mono);
}

/* Main column */
.main {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  background: var(--bg);
}

.topbar {
  min-height: 64px;
  height: auto;
  flex-wrap: wrap;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0 20px;
  border-bottom: 1px solid var(--border);
  background: var(--bg-elev);
}

.topbar-brand {
  font-size: 15px;
  font-weight: 600;
  color: var(--heading);
  letter-spacing: -0.01em;
  white-space: nowrap;
}

.topbar-brand em {
  font-style: normal;
  color: var(--text-dim);
  font-weight: 400;
  margin-left: 8px;
  font-size: 15px;
}

.topbar-clock {
  font-family: var(--mono);
  font-size: 15px;
  color: var(--text-dim);
  margin-left: 4px;
}

.search {
  flex: 1;
  max-width: 420px;
  margin: 0 auto;
  position: relative;
}

.search svg {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  width: 14px;
  height: 14px;
  stroke: var(--text-dim);
  fill: none;
  stroke-width: 1.6;
  pointer-events: none;
}

.search input {
  width: 100%;
  height: 48px;
  padding: 0 12px 0 34px;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 999px;
  color: var(--heading);
  font-size: 15px;
  outline: none;
  transition: border-color 0.12s;
}

.search input::placeholder { color: var(--text-dim); }
.search input:focus { border-color: var(--border-strong); }

.topbar-actions {
  display: flex;
  align-items: center;
  gap: var(--ui-button-gap);
  margin-left: auto;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--ui-button-gap);
  min-height: 48px;
  height: 48px;
  padding: 0 12px;
  border-radius: var(--r);
  border: 1px solid var(--border);
  background: var(--bg-panel);
  color: var(--text);
  font-size: 15px;
  white-space: normal;
  overflow-wrap: anywhere;
  transition: background 0.12s, border-color 0.12s, color 0.12s;
}

.btn svg { width: 14px; height: 14px; stroke: currentColor; fill: none; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.btn:hover, .btn:active { background: var(--bg-hover); border-color: var(--border-strong); color: var(--heading); }
.btn.primary { background: var(--accent); border-color: var(--accent); color: #fff; font-weight: 500; }
.btn.primary:hover, .btn.primary:active { background: var(--accent-press); border-color: var(--accent-press); color: #fff; }
.btn.ghost { background: transparent; border-color: transparent; }
.btn.ghost:hover { background: var(--bg-hover); border-color: transparent; }
.btn.danger { border-color: rgba(255,92,92,0.35); color: var(--danger); }
.btn.block { width: 100%; }
.btn.lg { height: 56px; min-height: 56px; font-size: 15px; padding: 0 16px; }
.btn.sm { height: 48px; min-height: 48px; padding: 0 10px; font-size: 15px; }
.btn:disabled { opacity: 0.45; cursor: not-allowed; }
.btn.danger:disabled { color: var(--text-dim); border-color: var(--border); background: var(--bg-panel); }

.content {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  position: relative;
  display: flex;
  flex-direction: column;
}

.page {
  display: none;
  height: 100%;
  flex: 1;
  min-height: 0;
  overflow: hidden;
}

.page.active { display: flex; }

/* —— Tables page —— */
.page-tables {
  flex-direction: row;
}

.tables-side {
  width: var(--sidebar);
  flex-shrink: 0;
  border-right: 1px solid var(--border);
  background: var(--bg-elev);
  display: flex;
  flex-direction: column;
  padding: 16px 12px;
  gap: 20px;
  overflow-y: auto;
}

.side-section h3 {
  font-size: 15px;
  font-weight: 500;
  color: var(--text-dim);
  text-transform: none;
  letter-spacing: 0.04em;
  margin-bottom: 8px;
  padding: 0 4px;
}

.status-list { display: flex; flex-direction: column; gap: var(--ui-button-gap); }

.status-item {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 48px;
  padding: 6px 10px;
  border-radius: var(--r);
  color: var(--text);
  font-size: 15px;
  transition: background 0.12s;
}

.status-item:hover { background: var(--bg-hover); }
.status-item.active { background: var(--accent-dim); color: var(--heading); }

.dot {
  width: 8px;
  height: 8px;
  border-radius: 2px;
  flex-shrink: 0;
}

.dot.all { background: var(--heading); }
.dot.free { background: var(--idle); border: 1.5px solid var(--idle-edge); }
.dot.opened { background: var(--opened); }
.dot.order { background: var(--pending); }
.dot.pay { background: var(--checkout); }
.dot.clear { background: var(--clear); }

.status-item .count {
  margin-left: auto;
  font-family: var(--mono);
  font-size: 15px;
  color: var(--text-dim);
}

.status-item.active .count { color: var(--accent-press); }

.info-card {
  background: var(--bg-panel);
  border: 1px solid var(--border);
  border-radius: var(--r);
  padding: 12px;
}

.info-card .row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 4px;
}

.info-card .row:last-child { margin-bottom: 0; }
.info-card .label { font-size: 15px; color: var(--text-dim); }
.info-card .value { font-family: var(--mono); font-size: 15px; color: var(--heading); font-weight: 500; }
.info-card .value.accent { color: var(--accent-press); font-size: 16px; font-weight: 600; }

.ops-stack { display: flex; flex-direction: column; gap: var(--ui-button-gap); }

.tables-main {
  flex: 1;
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding: 16px 20px;
  gap: 14px;
  overflow: hidden;
  background: var(--bg);
}

.floor-tabs {
  display: flex;
  gap: var(--ui-button-gap);
  flex-shrink: 0;
}

.floor-tab {
  height: 48px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: transparent;
  color: var(--text);
  font-size: 15px;
}

.floor-tab:hover { border-color: var(--border-strong); color: var(--heading); }
.floor-tab.active { background: var(--accent-dim); border-color: var(--accent-press); color: var(--accent-press); }

.table-grid {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(188px, 1fr));
  gap: 12px;
  align-content: start;
  padding-bottom: 8px;
}

.table-card {
  touch-action: manipulation;
  background: var(--bg-elev);
  border: 1px solid var(--border);
  border-radius: var(--r);
  padding: 14px 14px 14px 16px;
  cursor: pointer;
  transition: border-color 0.12s, background 0.12s, box-shadow 0.12s;
  position: relative;
  min-height: 118px;
  display: flex;
  flex-direction: column;
  gap: var(--ui-button-gap);
  box-shadow: 0 1px 0 rgba(11,13,18,0.03);
  overflow: hidden;
}

.table-card:hover,
.table-card:active {
  border-color: var(--border-strong);
  box-shadow: 0 2px 8px rgba(11,13,18,0.06);
}

.table-card.selected {
  border-color: var(--accent);
  box-shadow: inset 0 0 0 1px var(--accent);
}

.table-card .status-bar {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 5px;
  border-radius: 0;
}

/* Soft full-card tints */
.table-card[data-status="free"] {
  background: var(--idle);
  border-color: #E4E7EC;
}
.table-card[data-status="free"] .status-bar { background: var(--idle-edge); }

.table-card[data-status="opened"] {
  background: var(--opened-bg);
  border-color: #BFDBFE;
}
.table-card[data-status="opened"] .status-bar { background: var(--opened); }

.table-card[data-status="order"] {
  background: var(--pending-bg);
  border-color: #A6F4C5;
}
.table-card[data-status="order"] .status-bar { background: var(--pending); }

.table-card[data-status="pay"] {
  background: var(--checkout-bg);
  border-color: #FEDF89;
}
.table-card[data-status="pay"] .status-bar { background: var(--checkout); }

.table-card[data-status="clear"] {
  background: var(--clear-bg);
  border-color: #D0D5DD;
}
.table-card[data-status="clear"] .status-bar { background: var(--clear); }

.table-card:hover[data-status="free"] { background: #EEF0F3; }
.table-card:hover[data-status="opened"] { background: #E0EFFF; }
.table-card:hover[data-status="order"] { background: #D1FADF; }
.table-card:hover[data-status="pay"] { background: #FEF0C7; }
.table-card:hover[data-status="clear"] { background: #EAECF0; }

.table-card .name {
  font-size: 15px;
  font-weight: 600;
  color: var(--heading);
  padding-left: 6px;
}

.table-card .meta {
  font-size: 15px;
  color: var(--text-dim);
  padding-left: 6px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--ui-button-gap);
}

.table-card .amount {
  font-variant-numeric: tabular-nums;
  margin-top: auto;
  padding-left: 6px;
  font-family: var(--mono);
  font-size: 15px;
  color: var(--heading);
  font-weight: 700;
}

.table-card[data-status="free"] .amount,
.table-card[data-status="opened"] .amount {
  color: var(--text-dim);
  font-size: 15px;
  font-weight: 400;
}

.table-card[data-status="opened"] .amount.opened-hint {
  color: var(--opened);
  font-weight: 500;
}

.badge {
  display: inline-flex;
  align-items: center;
  height: 20px;
  padding: 0 7px;
  border-radius: 999px;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.02em;
}

.badge.order { background: rgba(18,183,106,0.16); color: #027A48; }
.badge.pay { background: rgba(247,144,9,0.16); color: #B54708; }
.badge.clear { background: rgba(102,112,133,0.14); color: #344054; }
.badge.free { background: rgba(152,162,179,0.2); color: #475467; }
.badge.opened { background: rgba(59,130,246,0.16); color: #175CD3; }

/* —— Order / dish page —— */
.page-order {
  flex-direction: row;
}

.cat-rail {
  width: 120px;
  flex-shrink: 0;
  border-right: 1px solid var(--border);
  background: var(--bg-elev);
  overflow-y: auto;
  padding: 10px 8px;
  display: flex;
  flex-direction: column;
  gap: var(--ui-button-gap);
}

.cat-btn {
  text-align: left;
  min-height: var(--touch);
  padding: 10px 10px;
  border-radius: var(--r);
  font-size: 15px;
  color: var(--text);
}

.cat-btn:hover { background: var(--bg-hover); color: var(--heading); }
.cat-btn.active { background: var(--accent-dim); color: var(--accent-press); font-weight: 500; }

.dish-area {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.dish-toolbar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
}

.dish-toolbar .table-tag {
  font-size: 15px;
  font-weight: 600;
  color: var(--heading);
}

.dish-toolbar .table-tag span { color: var(--text-dim); font-weight: 400; margin-left: 8px; font-size: 15px; }

/* The scanner stays independent of the dish name filter and its categories. */
.order-scanner { flex: 0 0 auto; padding: 8px 16px; border-bottom: 1px solid var(--border); background: var(--bg-elev); }
.order-scan-form { display: flex; align-items: center; flex-wrap: wrap; gap: var(--ui-button-gap) 10px; }
.order-scan-form label { color: var(--heading); font-size: 15px; font-weight: 600; }
.order-scan-form input { flex: 1 1 10em; min-width: 48px; max-width: 320px; }
.order-scanner p, .order-scanner details { margin: 4px 0 0; font-size: 15px; }
.order-scanner p { color: var(--text); }
.order-scanner summary { cursor: pointer; color: #9c3b15; }
.order-scanner ul { max-height: 5.5em; overflow-y: auto; padding-left: 1.5em; margin: 4px 0; overflow-wrap: anywhere; }
.order-scanner [hidden] { display: none; }

.dish-grid {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 14px 16px;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(132px, 1fr));
  gap: 10px;
  align-content: start;
  background: var(--bg);
}

.dish-card {
  touch-action: manipulation;
  background: var(--bg-elev);
  border: 1px solid var(--border);
  border-radius: var(--r);
  padding: 12px;
  cursor: pointer;
  transition: border-color 0.12s, background 0.12s, box-shadow 0.12s;
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 92px;
  box-shadow: 0 1px 0 rgba(11,13,18,0.03);
}

.dish-card:hover,
.dish-card:active { border-color: var(--border-strong); background: var(--bg-hover); box-shadow: 0 1px 2px rgba(11,13,18,0.06); }
.dish-card.soldout { opacity: 0.45; cursor: not-allowed; }
.dish-card .d-name { font-size: 15px; color: var(--heading); font-weight: 500; }
.dish-card .d-price { font-family: var(--mono); font-size: 15px; color: var(--accent-press); margin-top: auto; }
.dish-card .d-tag { font-size: 15px; color: var(--text-dim); }

.cart-panel {
  width: 320px;
  flex-shrink: 0;
  border-left: 1px solid var(--border);
  background: var(--bg-elev);
  display: flex;
  flex-direction: column;
}

.cart-head {
  padding: 14px 16px;
  border-bottom: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.cart-head h2 { font-size: 15px; color: var(--heading); font-weight: 600; }

.covers {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  color: var(--text-dim);
}

.covers .stepper {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--border);
  border-radius: var(--r-sm);
  overflow: hidden;
}

.covers .stepper button {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  color: var(--text);
  background: var(--bg-panel);
}

.covers .stepper button:hover { background: var(--bg-hover); color: var(--heading); }
.covers .stepper span {
  width: 32px;
  text-align: center;
  font-family: var(--mono);
  font-size: 15px;
  color: var(--heading);
  border-left: 1px solid var(--border);
  border-right: 1px solid var(--border);
  line-height: 40px;
}

.note-input {
  width: 100%;
  height: 48px;
  padding: 0 10px;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--r-sm);
  font-size: 15px;
  outline: none;
}

.note-input:focus { border-color: var(--border-strong); }
.note-input::placeholder { color: var(--text-dim); }

.cart-list {
  flex: 1;
  overflow-y: auto;
  padding: 8px 0;
}

.cart-empty {
  padding: 40px 16px;
  text-align: center;
  color: var(--text-dim);
  font-size: 15px;
}

.cart-item {
  padding: 10px 16px;
  border-bottom: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  gap: var(--ui-button-gap);
}

.cart-item .ci-top {
  display: flex;
  justify-content: space-between;
  gap: 8px;
}

.cart-item .ci-name { font-size: 15px; color: var(--heading); font-weight: 500; }
.cart-item .ci-price { font-family: var(--mono); font-size: 15px; color: var(--text); }

.chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-button-gap);
}

.chip {
  height: 48px;
  padding: 0 10px;
  border-radius: 3px;
  border: 1px solid var(--border);
  background: var(--bg);
  font-size: 15px;
  color: var(--text-dim);
  cursor: pointer;
}

.chip:hover { border-color: var(--border-strong); color: var(--text); }
.chip.on { border-color: var(--accent); background: var(--accent-dim); color: var(--accent-press); }

.ci-qty {
  display: flex;
  align-items: center;
  gap: var(--ui-button-gap);
}

.ci-qty button {
  width: 48px;
  height: 48px;
  border: 1px solid var(--border);
  border-radius: var(--r-sm);
  display: grid;
  place-items: center;
  font-size: 15px;
  color: var(--text);
  background: var(--bg-panel);
  line-height: 1;
}

.ci-qty button:hover,
.ci-qty button:active { border-color: var(--border-strong); color: var(--heading); }
.ci-qty .ci-rm {
  margin-left: auto;
  width: auto;
  min-width: 64px;
  height: 48px;
  min-height: 48px;
  padding: 0 10px;
  border: none;
  background: transparent;
  color: var(--text-dim);
  font-size: 15px;
}
.ci-qty span { font-family: var(--mono); font-size: 15px; min-width: 16px; text-align: center; color: var(--heading); }

.cart-foot {
  border-top: 1px solid var(--border);
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.cart-sum {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
}

.cart-sum .label { font-size: 15px; color: var(--text-dim); }
.cart-sum .total { font-family: var(--mono); font-size: 20px; color: var(--heading); font-weight: 600; }
.cart-sum .total small { font-size: 15px; font-weight: 500; margin-right: 2px; }

.cart-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }

/* —— Orders list —— */
.page-orders { flex-direction: column; padding: 16px 20px; gap: 14px; background: var(--bg); }

.filter-row {
  display: flex;
  gap: var(--ui-button-gap);
  flex-shrink: 0;
}

.filter-pill {
  height: 48px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid var(--border);
  font-size: 15px;
  color: var(--text);
}

.filter-pill:hover { border-color: var(--border-strong); color: var(--heading); }
.filter-pill.active { background: var(--accent-dim); border-color: var(--accent-press); color: var(--accent-press); }

.orders-table {
  flex: 1;
  overflow: auto;
  border: 1px solid var(--border);
  border-radius: var(--r);
  background: var(--bg-elev);
}

.orders-table table {
  width: 100%;
  border-collapse: collapse;
}

.orders-table th {
  text-align: left;
  padding: 10px 14px;
  font-size: 15px;
  font-weight: 500;
  color: var(--text-dim);
  border-bottom: 1px solid var(--border);
  background: var(--bg-hover);
  position: sticky;
  top: 0;
  z-index: 1;
}

.orders-table td {
  padding: 12px 14px;
  border-bottom: 1px solid var(--border);
  font-size: 15px;
  color: var(--text);
  vertical-align: middle;
}

.orders-table tr:last-child td { border-bottom: none; }
.orders-table tr:hover td { background: var(--bg-hover); }
.orders-table .oid { font-family: var(--mono); font-size: 15px; color: var(--text-dim); }
.orders-table .amt { font-family: var(--mono); color: var(--heading); font-weight: 500; }
.orders-table .tname { color: var(--heading); font-weight: 500; }

/* —— Checkout —— */
.page-checkout {
  padding: 20px;
  gap: 16px;
  overflow-y: auto;
  align-items: stretch;
  justify-content: stretch;
  background: var(--bg);
}

.checkout-wrap {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 16px;
  width: 100%;
  max-width: none;
  margin: 0;
  align-self: stretch;
  flex: 1;
  min-height: 0;
}

.page-checkout .panel {
  min-height: 100%;
}

.panel {
  background: var(--bg-elev);
  border: 1px solid var(--border);
  border-radius: var(--r);
  padding: 18px;
}

.panel h2 {
  font-size: 15px;
  font-weight: 600;
  color: var(--heading);
  margin-bottom: 14px;
}

.bill-meta {
  display: flex;
  gap: 16px;
  margin-bottom: 14px;
  font-size: 15px;
  color: var(--text-dim);
}

.bill-meta strong { color: var(--heading); font-weight: 500; }

.bill-lines { display: flex; flex-direction: column; gap: 0; margin-bottom: 12px; }

.bill-line {
  display: flex;
  justify-content: space-between;
  padding: 8px 0;
  border-bottom: 1px solid var(--border);
  font-size: 15px;
}

.bill-line .bl-name { color: var(--heading); }
.bill-line .bl-qty { color: var(--text-dim); margin: 0 8px; font-family: var(--mono); font-size: 15px; }
.bill-line .bl-amt { font-family: var(--mono); color: var(--text); }

.bill-totals { display: flex; flex-direction: column; gap: 8px; }

.bt-row {
  display: flex;
  justify-content: space-between;
  font-size: 15px;
  color: var(--text);
}

.bt-row.grand {
  margin-top: 6px;
  padding-top: 10px;
  border-top: 1px solid var(--border);
  font-size: 15px;
  color: var(--heading);
  font-weight: 600;
}

.bt-row.grand .mono { font-size: 22px; color: var(--accent-press); }

.discount-row {
  display: flex;
  gap: 8px;
  margin: 12px 0;
}

.discount-row input {
  flex: 1;
  height: 48px;
  padding: 0 10px;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--r-sm);
  font-size: 15px;
  outline: none;
}

.discount-row input:focus { border-color: var(--border-strong); }

.pay-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-bottom: 16px;
}

.pay-method {
  min-height: 72px;
  height: 72px;
  border: 1px solid var(--border);
  border-radius: var(--r);
  background: var(--bg-panel);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--ui-button-gap);
  font-size: 15px;
  color: var(--text);
  transition: border-color 0.12s, background 0.12s;
}

.pay-method[hidden] { display: none; }
.pay-method svg { width: 20px; height: 20px; stroke: currentColor; fill: none; stroke-width: 1.5; }
.pay-method:hover { border-color: var(--border-strong); color: var(--heading); }
.pay-method.active { border-color: var(--accent); background: var(--accent-dim); color: var(--accent-press); }

.split-box {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--r);
  padding: 12px;
  margin-bottom: 14px;
  font-size: 15px;
}

.split-box .sb-row {
  display: flex;
  justify-content: space-between;
  padding: 4px 0;
  color: var(--text-dim);
}

.split-box .sb-row span:last-child { font-family: var(--mono); color: var(--heading); }

/* —— Products —— */
.page-products {
  flex-direction: column;
  padding: 16px 20px;
  gap: 12px;
  background: var(--bg);
  min-height: 0;
}

.page-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-shrink: 0;
}

.page-head h1 { font-size: 16px; font-weight: 600; color: var(--heading); }

.page-head-actions { display: flex; align-items: center; gap: 8px; }

/* The shared mobile primary button fills a row; neither flex parent may keep
   that row beside its siblings. Keep every action visible in both page shells. */
@media (max-width: 600px) {
  .page-products > .page-head { flex-wrap: wrap; gap: 8px; }
  .page-products .page-head-actions { flex-wrap: wrap; min-width: 0; width: 100%; }
}

.products-body {
  flex: 1;
  min-height: 0;
  display: flex;
  gap: 12px;
  overflow: hidden;
}

.prod-cat-panel {
  width: 200px;
  flex-shrink: 0;
  background: var(--bg-elev);
  border: 1px solid var(--border);
  border-radius: var(--r);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.prod-cat-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 12px 8px;
  font-size: 15px;
  font-weight: 600;
  color: var(--heading);
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
}

.prod-cat-list {
  flex: 1;
  overflow-y: auto;
  padding: 8px;
  display: flex;
  flex-direction: column;
  gap: var(--ui-button-gap);
}

.prod-cat-item {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  min-height: var(--touch);
  padding: 10px 10px;
  border-radius: var(--r);
  font-size: 15px;
  color: var(--text);
  text-align: left;
  transition: background 0.12s, color 0.12s;
}

.prod-cat-item:hover { background: var(--bg-hover); color: var(--heading); }
.prod-cat-item.active {
  background: var(--accent-dim);
  color: var(--accent-press);
  font-weight: 500;
}

.prod-cat-item .pc-count {
  margin-left: auto;
  font-family: var(--mono);
  font-size: 15px;
  color: var(--text-dim);
}

.prod-cat-item.active .pc-count { color: var(--accent-press); }

.products-main {
  flex: 1;
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  overflow: hidden;
}

.prod-filter-bar {
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-shrink: 0;
}

.prod-filter-label {
  font-size: 15px;
  font-weight: 600;
  color: var(--heading);
}

.prod-filter-count {
  font-size: 15px;
  color: var(--text-dim);
}

.prod-table {
  flex: 1;
  min-height: 0;
  position: relative;
}

.prod-empty {
  position: absolute;
  top: 48px; right: 0; bottom: 0; left: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-dim);
  font-size: 15px;
  background: var(--bg-elev);
  pointer-events: none;
}

.prod-empty.hidden, .app[hidden] { display: none !important; }

/* Modal */
.modal-backdrop {
  position: fixed;
  top: 0; right: 0; bottom: 0; left: 0;
  background: rgba(11, 13, 18, 0.36);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 80;
  padding: 24px;
}

.modal-backdrop.hidden, .app[hidden] { display: none !important; }

.modal {
  width: 100%;
  max-width: 420px;
  max-height: min(560px, 86vh);
  background: var(--bg-elev);
  border: 1px solid var(--border);
  border-radius: 8px;
  box-shadow: 0 16px 48px rgba(11, 13, 18, 0.14);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.modal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
}

.modal-head h2 {
  font-size: 15px;
  font-weight: 600;
  color: var(--heading);
}

.modal-body {
  padding: 14px 16px;
  overflow-y: auto;
  flex: 1;
  min-height: 0;
}

.modal-foot {
  padding: 12px 16px;
  border-top: 1px solid var(--border);
  display: flex;
  justify-content: flex-end;
  flex-shrink: 0;
}

.cat-add-row {
  display: flex;
  gap: 8px;
  margin-bottom: 12px;
}

.cat-add-row input {
  flex: 1;
  height: 48px;
  padding: 0 10px;
  border: 1px solid var(--border);
  border-radius: var(--r);
  background: var(--bg);
  color: var(--heading);
  font-size: 15px;
  outline: none;
}

.cat-add-row input:focus { border-color: var(--border-strong); }
.cat-add-row input::placeholder { color: var(--text-dim); }

.cat-manage-list {
  display: flex;
  flex-direction: column;
  gap: var(--ui-button-gap);
}

.cat-manage-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border: 1px solid var(--border);
  border-radius: var(--r);
  background: var(--bg);
}

.cat-manage-item .cm-name {
  flex: 1;
  font-size: 15px;
  color: var(--heading);
  font-weight: 500;
  min-width: 48px;
}

.cat-manage-item .cm-name[contenteditable="true"] {
  outline: 1px solid var(--accent);
  border-radius: 3px;
  padding: 2px 6px;
  background: var(--bg-elev);
}

.cat-manage-item .cm-count {
  font-family: var(--mono);
  font-size: 15px;
  color: var(--text-dim);
  flex-shrink: 0;
}

.toggle {
  position: relative;
  width: 48px;
  height: 48px;
  border-radius: 13px;
  background: var(--border-strong);
  border: none;
  cursor: pointer;
  transition: background 0.15s;
  flex-shrink: 0;
}

.toggle.on { background: var(--accent); }

.toggle::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 2px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #fff;
  transition: transform 0.15s;
}

.toggle.on::after { transform: translateX(18px); }

/* —— Members —— */
.page-members { flex-direction: column; padding: 16px 20px; gap: 14px; overflow-y: auto; background: var(--bg); }

.kpi-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  flex-shrink: 0;
}

.kpi {
  background: var(--bg-elev);
  border: 1px solid var(--border);
  border-radius: var(--r);
  padding: 14px 16px;
}

.kpi .k-label { font-size: 15px; color: var(--text-dim); margin-bottom: 6px; }
.kpi .k-value { font-family: var(--mono); font-size: 22px; color: var(--heading); font-weight: 600; }
.kpi .k-value small { font-size: 15px; font-weight: 500; color: var(--text-dim); margin-right: 2px; }
.kpi .k-sub { font-size: 15px; color: var(--text-dim); margin-top: 4px; }
.kpi .k-sub.up { color: var(--ok); }

/* —— Reports —— */
.page-reports { flex-direction: column; padding: 16px 20px; gap: 14px; overflow-y: auto; background: var(--bg); }

.bars {
  background: var(--bg-elev);
  border: 1px solid var(--border);
  border-radius: var(--r);
  padding: 18px;
}

.bars h2 { font-size: 15px; color: var(--heading); font-weight: 600; margin-bottom: 16px; }

.bar-list { display: flex; flex-direction: column; gap: 10px; }

.bar-row {
  display: grid;
  grid-template-columns: 72px 1fr 64px;
  align-items: center;
  gap: 12px;
  font-size: 15px;
}

.bar-row .bh { color: var(--text-dim); }
.bar-row .bv { font-family: var(--mono); color: var(--heading); text-align: right; }

.bar-track {
  height: 8px;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 2px;
  overflow: hidden;
}

.bar-fill {
  height: 100%;
  background: var(--accent);
  border-radius: 1px;
}

.two-col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.rank-list { display: flex; flex-direction: column; gap: 0; }

.rank-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px solid var(--border);
  font-size: 15px;
}

.rank-item:last-child { border-bottom: none; }
.rank-item .rk {
  width: 20px;
  height: 20px;
  border-radius: 3px;
  background: var(--bg);
  border: 1px solid var(--border);
  display: grid;
  place-items: center;
  font-family: var(--mono);
  font-size: 15px;
  color: var(--text-dim);
}

.rank-item .rk.top { background: var(--accent-dim); border-color: var(--accent); color: var(--accent-press); }
.rank-item .rn { flex: 1; color: var(--heading); }
.rank-item .rc { font-family: var(--mono); color: var(--text-dim); font-size: 15px; }

/* Daily receipts use explicit loading/stale states and no sample values. */
.report-head { align-items: center; gap: 16px; }
.report-date { margin: 6px 0 0; font-size: 15px; color: var(--text-dim); line-height: 1.6; }
.report-head .btn { min-height: 48px; flex-shrink: 0; }
.report-status { padding: 12px 14px; border: 1px solid var(--border); background: var(--bg-elev); color: var(--text); border-radius: var(--r); line-height: 1.6; font-size: 15px; }
.report-status[data-tone="warning"] { border-color: #E8C488; background: #FFF8E9; color: #825A20; }
.report-status[data-tone="error"] { border-color: #ECC4C4; background: #FFF4F3; color: var(--ui-danger); }
.page-reports .report-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.report-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 14px; }
.report-grid > * { min-width: 0; }
.report-grid h2 span { color: var(--text-dim); font-size: 15px; font-weight: 400; margin-left: 8px; }
.report-note { font-size: 15px; color: var(--text-dim); line-height: 1.7; margin: 12px 0 0; }
.report-scope { margin: 0 0 8px; }
.report-empty { color: var(--text-dim); font-size: 15px; padding: 20px 0; margin: 0; }
.hour-chart { min-height: 200px; display: flex; gap: var(--ui-button-gap); align-items: stretch; }
.hour-column { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 8px; }
.hour-track { height: 170px; width: 100%; display: flex; align-items: flex-end; background: var(--bg); border-radius: 2px; }
.hour-fill { width: 100%; background: var(--accent); border-radius: 2px 2px 0 0; }
.hour-inspect { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 12px; font-size: 15px; }
.hour-inspect select { min-height: 48px; border: 1px solid var(--border); border-radius: var(--r); background: var(--bg-elev); color: var(--heading); padding: 6px 10px; font: inherit; font-size: 15px; }
.hour-inspect label { color: var(--text-dim); }
.hour-label { font-family: var(--mono); font-size: 15px; color: var(--text-dim); }
.report-method { display: grid; grid-template-columns: minmax(70px, 1fr) auto auto; gap: 16px; padding: 11px 0; border-bottom: 1px solid var(--border); font-size: 15px; }
.report-method:last-child { border-bottom: 0; }
.report-method .method-count { color: var(--text-dim); }
.report-method .method-amount { font-family: var(--mono); color: var(--heading); }
.report-balance .k-value { color: var(--heading); font-size: 28px; font-weight: 600; }
.report-balance .k-value small { font-size: 15px; font-weight: 400; margin-right: 4px; }
.page-reports .rank-item .rn { overflow-wrap: anywhere; }
@media (max-width: 900px) {
  .page-reports .report-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .report-grid { grid-template-columns: minmax(0, 1fr); }
  .report-head { align-items: flex-start; }
}

/* —— Settings —— */
.page-settings { flex-direction: column; padding: 16px 20px; gap: 14px; overflow-y: auto; background: var(--bg); }

.settings-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}

.set-card {
  background: var(--bg-elev);
  border: 1px solid var(--border);
  border-radius: var(--r);
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.set-card h3 {
  font-size: 15px;
  font-weight: 600;
  color: var(--heading);
  display: flex;
  align-items: center;
  gap: 8px;
}

.set-card h3 svg { width: 16px; height: 16px; stroke: var(--accent); fill: none; stroke-width: 1.6; }

.set-field {
  display: flex;
  flex-direction: column;
  gap: var(--ui-button-gap);
}

.set-field label { font-size: 15px; color: var(--text-dim); }
.set-field .val { font-size: 15px; color: var(--heading); }
.set-field .val.mono { font-family: var(--mono); font-size: 15px; }
.set-field .val.unavailable { color: var(--text-dim); }

.role-list { display: flex; flex-direction: column; gap: var(--ui-button-gap); }

.role-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 10px;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--r-sm);
  font-size: 15px;
}

.role-item .rn { color: var(--heading); }
.role-item .rp { color: var(--text-dim); font-size: 15px; }

/* Toast */
.toast {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%) translateY(20px);
  background: var(--bg-elev);
  border: 1px solid var(--border-strong);
  color: var(--heading);
  padding: 10px 16px;
  border-radius: var(--r);
  font-size: 15px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s, transform 0.2s;
  z-index: 100;
  box-shadow: 0 8px 24px rgba(11,13,18,0.12);
}

.toast.show {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

/* Scrollbar */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: var(--bg); }
::-webkit-scrollbar-thumb { background: var(--border-strong); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: var(--text-dim); }

.login-screen {
  position: fixed;
  top: 0; right: 0; bottom: 0; left: 0;
  z-index: 120;
  background: #EEF0F4;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.login-screen.hidden, .app[hidden] { display: none !important; }
.login-card {
  width: min(380px, 100%);
  background: #fff;
  border: 1px solid #E2E5EB;
  border-radius: 6px;
  padding: 28px 24px 22px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  box-shadow: 0 8px 24px rgba(11, 13, 18, 0.06);
}
.login-card .brand { margin: 0 auto 8px; }
.login-card h1 { text-align: center; font-size: 20px; color: #0B0D12; font-weight: 600; }
.login-sub, .login-hint { text-align: center; color: #8B93A3; font-size: 15px; }
.login-card label { font-size: 15px; color: #5C6578; margin-top: 6px; }
.login-card input {
  height: 48px;
  border: 1px solid #E2E5EB;
  border-radius: 6px;
  background: #F5F6F8;
  padding: 0 12px;
  font-size: 15px;
  outline: none;
}
.login-card input:focus { border-color: #4F7CFF; background: #fff; }
.login-error { min-height: 18px; color: var(--ui-danger); font-size: 15px; }
.login-card .btn { margin-top: 4px; }
.net-banner {
  flex: 0 0 auto;
  background: #FFFAEB;
  color: #B54708;
  border-bottom: 1px solid #FEDF89;
  text-align: center;
  padding: 8px 12px;
  font-size: 15px;
}

@media (max-width: 1280px) {
  .kpi-row { grid-template-columns: repeat(2, 1fr); }
  .settings-grid { grid-template-columns: 1fr 1fr; }
  .cart-panel { width: 280px; }
}

/* Checkout account selection */
.checkout-promotion { margin-top:16px; padding:12px; border:1px solid var(--border); border-radius:var(--r); }
.checkout-promotion label { display:inline-flex; align-items:center; gap: 8px; min-height:48px; font-weight:600; }
.checkout-promotion input { width: 48px; height: 48px;  }
.checkout-promotion p { margin:4px 0; }
.checkout-member { margin-top: 16px; }
.checkout-member label { display: block; margin-bottom: 8px; font-weight: 600; }
.checkout-member select { width: 100%; min-height: 48px; padding: 8px; border: 1px solid var(--border, #E2E5EB); border-radius: 6px; background: #fff; color: #0B0D12; font: inherit; font-size: 15px; }
.checkout-member p, .payment-note { font-size: 15px; color: #5C6578; line-height: 1.6; margin: 10px 0; }

.product-editor.payment-review-dialog { width:min(690px,calc(100vw - 24px)); }
.payment-review-dialog .modal-head { position:sticky;top:0;background:white;z-index:1; }
.payment-review-body { padding:16px 20px 20px; }
.payment-review-body h3, .payment-review-body h4 { margin:16px 0 6px; }
.payment-review-body form { padding:12px; border:1px solid var(--border); border-radius:6px; margin:10px 0; }
.payment-review-body label { display:block; margin:6px 0; }
.review-search { display:flex; gap: 8px; align-items:center; flex-wrap:wrap; }
.review-search input { flex:1 1 190px; min-width: 48px; }
.payment-review-body textarea { width:100%;padding:8px;resize:vertical;font: inherit; font-size: 15px; }
.payment-review-body .review-check { display:flex;align-items:center;gap: 8px; }
.payment-review-body .review-check input { width: 48px;height: 48px;min-height:48px;flex:none; }
#legacyCandidates article, #legacyPending article, #legacyHistoryRows article { margin:8px 0; padding:12px; background:#F8FAFC; border:1px solid var(--border);border-radius:6px;overflow-wrap:anywhere; }
#legacyCandidates button,#legacyPending button { margin:6px 6px 0 0; }
#legacyEvidence p, #legacyHistoryRows p, #legacyPending p { margin:4px 0; }
#legacyHistory { margin:12px 0; } #legacyHistory summary { cursor:pointer; padding:10px 0; }
.review-order { padding: 12px 0; border-top: 1px solid #E2E5EB; overflow-wrap: anywhere; }

/* Existing product editing: keep the catalogue palette and touch targets. */
.product-editor { width: min(500px, calc(100vw - 32px)); max-height: calc(100vh - 32px); padding: 0; margin: auto; border: 1px solid var(--border); border-radius: var(--r); background: var(--bg-elev); color: var(--heading); box-shadow: 0 12px 40px rgba(11,13,18,.14); }
.product-editor::backdrop { background: rgba(11,13,18,.36); }
.product-editor form { display: flex; flex-direction: column; max-height: calc(100vh - 34px); }
.product-editor fieldset { border: 0; margin: 0; padding: 16px; min-height: 0; overflow-y: auto; display: grid; gap: 8px; }
.product-editor label { font-size: 15px; font-weight: 500; margin-top: 4px; }
.product-editor input, .product-editor select { box-sizing: border-box; width: 100%; min-height: 48px; padding: 10px 12px; background: #fff; border: 1px solid var(--border); border-radius: var(--r); color: var(--heading); font: inherit; font-size: 15px; }
.product-editor input:focus, .product-editor select:focus { outline: 2px solid var(--accent); outline-offset: 2px; }
.product-editor input[aria-invalid="true"], .product-editor select[aria-invalid="true"] { border-color: var(--ui-danger); }
.product-editor .btn, #productsBody [data-edit] { min-height: 48px; height: auto; min-width: 64px; }
.product-editor .modal-foot { gap: 10px; }
.catalog-barcode { display:block; color:var(--text-dim); font-size:15px; font-weight:400; overflow-wrap:anywhere; }
#barcodeCurrent { word-break:break-all; }
.product-edit-hint { margin: 0; font-size: 15px; color: var(--text-dim); }
.product-edit-category { display: flex; justify-content: space-between; gap: 16px; margin-top: 12px; padding: 12px; background: var(--bg); border-radius: var(--r); font-size: 15px; }
.product-edit-category strong { overflow-wrap: anywhere; }
.product-edit-error { min-height: 20px; margin: 0 16px 12px; color: var(--ui-danger); font-size: 15px; line-height: 1.5; }

/* Stored order lines keep their price and modifiers. */
.saved-line-note{display:block;color:var(--heading);font-size:15px}
.saved-line-help{display:block;color:var(--text-dim);font-size:15px;line-height:1.6}
.ci-qty button[data-act="inc"]{width:auto;min-width: 64px;padding:0 8px}

.product-create-hint{margin:0 16px 12px;font-size:15px;line-height:1.6;color:var(--text-dim)}

/* Member directory and read-only ledger. */
.member-actions { display:flex; gap: 8px; flex-wrap:wrap; }
.page-members .page-head { gap: 12px; flex-wrap:wrap; }
.page-members .btn { min-height: 48px; }
.member-search { display:flex; gap: 10px; align-items:center; flex-wrap:wrap; font-size:15px; }
.member-search input { min-height: 48px; min-width: 180px; flex:1; padding:10px 12px; font: inherit; font-size: 15px; color:var(--heading); background:#fff; border:1px solid var(--border); border-radius:var(--r); }
#memberResultCount { color:var(--text-dim); }
#membersBody td { overflow-wrap:anywhere; }
.member-id { display:block; font-size:15px; color:var(--text-dim); font-weight:400; margin-top:4px; }
.member-ledger { width:min(860px,calc(100vw - 32px)); }
.member-ledger-body { padding:16px; overflow-y:auto; max-height:calc(100vh - 210px); }
.member-ledger-body > p { margin:0 0 12px; line-height:1.6; }
.member-ledger-table { overflow-x:auto; }
.member-ledger-table table { width:100%; border-collapse:collapse; font-size:15px; }
.member-ledger-table td,.member-ledger-table th { text-align:left; padding:12px 10px; border-bottom:1px solid var(--border); vertical-align:top; }
.member-ledger-table td:first-child { min-width:132px; }
.member-ledger-table td:last-child { min-width:140px; overflow-wrap:anywhere; }
.member-ledger .modal-foot { flex-wrap:wrap; align-items:center; }
#memberLedgerCount { margin-right:auto; color:var(--text-dim); font-size:15px; }

/* Read-only order review */
.order-review-intro{margin:6px 0 0;color:var(--text-dim);font-size:15px;}
.order-detail{width:min(940px,calc(100vw - 32px));}
.order-detail-body{padding:16px;overflow-y:auto;max-height:calc(100vh - 210px);line-height:1.6;}
.order-detail h3{margin:24px 0 8px;font-size:15px;}
.order-detail-identity{font-size:16px;color:var(--heading);overflow-wrap:anywhere;}
.order-detail-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap: 14px;margin:18px 0;}
.order-detail-facts div{min-width:0;}.order-detail-facts dt{font-size:15px;color:var(--text-dim);}.order-detail-facts dd{margin:5px 0 0;overflow-wrap:anywhere;color:var(--heading);}
.order-detail-table{overflow-x:auto;border:1px solid var(--border);border-radius:8px;}
.order-detail-table table{width:100%;border-collapse:collapse;min-width:520px;}
.order-detail-table th,.order-detail-table td{padding:12px;text-align:left;border-bottom:1px solid var(--border);}
.order-detail-table th{font-size:15px;color:var(--text-dim);font-weight:400;}
.order-detail-table td{font-size:15px;vertical-align:top;overflow-wrap:anywhere;}
.order-detail-amounts{display:flex;flex-wrap:wrap;gap: 16px;justify-content:flex-end;padding:16px 0;color:var(--heading);}
.order-detail-note{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text-dim);}
.order-detail .modal-foot{gap: 12px;justify-content:space-between;}
.order-detail .modal-foot span{font-size:15px;color:var(--text-dim);}
.order-row-actions{white-space:nowrap;}.order-row-actions button{min-height: 48px;}
@media(max-width:650px){.order-detail-facts{grid-template-columns:repeat(2,minmax(0,1fr));}.order-search input{flex-basis:100%;}.order-detail .modal-foot{flex-wrap:wrap;}}

.page-orders .page-head{gap: 12px;flex-wrap:wrap;}.page-orders .btn{min-height: 48px;}#btnMoreOrders[hidden]{display:none;}#orderResultCount{color:var(--text-dim);}#orderDate{flex:0 1 180px;}

/* Staff accounts */
.staff-card { grid-column:1/-1; min-width:0; }
.staff-head { display:flex; gap: 16px; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; }
.staff-head h3 { margin-bottom:8px; }
.staff-actions { display:flex; gap: 8px; flex-wrap:wrap; }
.staff-card button, .staff-dialog button { min-height: 48px; }
.staff-table-wrap { overflow:auto; margin-top:12px; }
.staff-table-wrap table { width:100%; min-width:600px; border-collapse:collapse; }
.staff-table-wrap th, .staff-table-wrap td { padding:12px; text-align:left; border-bottom:1px solid var(--border); }
.staff-table-wrap td:first-child { overflow-wrap:anywhere; max-width:280px; }
.staff-empty { padding:28px!important; text-align:center!important; color:var(--text-dim); }
.staff-pending { padding:14px; border:1px solid #e3bb74; border-radius:6px; margin-top:12px; background:#fff9ee; }
.staff-pending button { margin-top:10px; }
.staff-dialog { width:min(560px,calc(100vw - 32px)); }
.staff-form-body { padding:16px; max-height:calc(100vh - 200px); overflow:auto; }
.staff-fields { display:grid; gap: 12px; margin-top:16px; }
.staff-fields label { display:grid; gap: var(--ui-button-gap); color:var(--heading); }
.staff-fields input { min-height: 48px; width:100%; padding:10px 12px; border:1px solid var(--border); border-radius:6px; background:var(--bg-elev); color:var(--heading); }
.staff-fields.hidden { display:none; }
.staff-dialog .modal-foot { justify-content:flex-end; gap: 10px; }

/* Safe table transfer: selections never open a table. */
.transfer-dialog{width:min(720px,calc(100vw - 32px));max-height:calc(100vh - 32px)}
.transfer-dialog .product-editor-body{overflow:auto;max-height:calc(100vh - 190px);padding:20px 24px}
.transfer-dialog button,.transfer-dialog select{min-height: 48px}
.transfer-notice{font-size:15px;line-height:1.6;margin:0}
.transfer-toolbar{display:flex;align-items:center;justify-content:space-between;gap: 12px;flex-wrap:wrap}
.transfer-toolbar p{flex:1;font-size:15px;line-height:1.7}
.transfer-selects{display:grid;gap: 16px;margin:16px 0}
.transfer-selects label{display:grid;gap: 8px;font-size:15px}
.transfer-selects select{width:100%;min-width: 48px;border:1px solid var(--border);border-radius:8px;padding:10px;background:var(--card,#fff);color:var(--text)}
.transfer-summary,.transfer-pending-row{padding:12px;border:1px solid var(--border);border-radius:8px;line-height:1.7;font-size:15px;overflow-wrap:anywhere}
.transfer-pending-row{margin-bottom:12px;background:var(--bg)}
.transfer-actions{display:flex;gap: 8px;flex-wrap:wrap;margin-top:8px}
#transferReceipt{color: var(--accent-press);font-size:15px;line-height:1.7}

/* Cancellation and checkout policy controls */
.cancellation-dialog { width:720px; max-width:calc(100vw - 32px); }
.cancellation-body { padding:20px 24px; max-height:calc(100vh - 190px); overflow:auto; }
.cancellation-body p { margin:12px 0; line-height:1.6; }
.cancellation-label { display:block; margin:16px 0 8px; font-weight:600; }
.cancellation-body textarea { box-sizing:border-box; width:100%; padding:12px; font: inherit; font-size: 15px; border:1px solid var(--border); border-radius:6px; resize:vertical; }
.cancellation-dialog button { min-height: 48px; }

.checkout-settings-card select { display:block; width:100%; min-height: 48px; margin:10px 0; padding:8px 12px; background:white; border:1px solid var(--border); border-radius:6px; font: inherit; font-size: 15px; }
.checkout-settings-card button { min-height: 48px; }

/* Open-table covers keypad, order summary and dish search. */
.open-table-dialog { width: min(560px, calc(100vw - 32px)); }
.open-table-body { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; padding: 16px; }
.open-table-info { display: grid; align-content: start; gap: 8px; }
.open-table-info p { margin: 0; font-size: 15px; color: var(--text-dim); }
.open-table-info input { font-size: 22px; text-align: center; }
.open-table-keys { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.open-table-keys .btn { min-height: 52px; font-size: 18px; }
.order-summary { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 8px 0 12px; padding: 10px 14px; background: var(--accent-dim); border-radius: var(--r); font-size: 15px; color: var(--heading); }
.order-summary strong { font-variant-numeric: tabular-nums; }
.dish-search { min-height: 48px; min-width: 48px; width: min(260px, 40vw); padding: 6px 10px; border: 1px solid var(--border); border-radius: var(--r); background: #fff; color: var(--heading); font: inherit; font-size: 15px; }
@media (max-width: 640px) { .open-table-body { grid-template-columns: 1fr; } }

/* Phase 2 · order line operations column (between dishes and cart) */
.line-ops { width: 104px; flex-shrink: 0; border-left: 1px solid var(--border); background: var(--bg-elev); padding: 10px 8px; display: flex; flex-direction: column; gap: var(--ui-button-gap); overflow-y: auto; }
.line-ops .btn { width: 100%; min-height: 48px; height: auto; padding: 6px 4px; font-size: 15px; justify-content: center; white-space: normal; }
.line-ops .btn.active { border-color: var(--accent); background: var(--accent-dim); color: var(--accent-press); }
.line-ops .btn:disabled { opacity: .45; cursor: not-allowed; }
.line-ops .danger-text { color: var(--danger); }
.line-ops-target { font-size: 15px; color: var(--heading); font-weight: 500; overflow-wrap: anywhere; min-height: 32px; margin: 0; }
.line-ops-qty { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: var(--ui-button-gap); }
.line-ops-qty .btn { min-width: 48px; padding: 0; font-size: 16px; }
.line-ops-qty span { min-width: 20px; text-align: center; font-size: 15px; color: var(--heading); }
.line-ops-hint { font-size: 15px; color: var(--text-dim); line-height: 1.5; margin: 0; }
.cart-item { cursor: pointer; }
.cart-item.selected { background: var(--accent-dim); box-shadow: inset 3px 0 0 var(--accent); }
.line-tag { display: inline-block; margin-right: 6px; padding: 0 5px; border-radius: var(--r-sm); background: var(--checkout-bg); color: #B54708; font-size: 15px; font-weight: 500; line-height: 18px; }
.ci-price s, .bl-amt s { color: var(--text-dim); margin-right: 2px; }
.seg-tabs { display: flex; gap: 8px; }
.seg-tabs .btn { flex: 1; min-height: 48px; }
.seg-tabs .btn.active { border-color: var(--accent); background: var(--accent-dim); color: var(--accent-press); }
.held-dialog { width: min(760px, calc(100vw - 32px)); }
@media (max-width: 1280px) { .line-ops { width: 92px; } .cat-rail { width: 104px; } }

/* Phase 2 · member tabs, transactions and recharge gift */
.promo-rule-body { padding: 16px 20px 0; overflow:auto; }
.promo-rule-card { padding: 18px 20px; background:var(--bg); border:1px solid var(--border); border-radius:var(--r); }
.promo-rule-card h3 { margin:10px 0 5px; font-size:18px; }
.promo-rule-card strong { font-size:24px; color:var(--heading); }
.promo-rule-badge { font-size:15px; font-weight:600; }
.promo-rule-card[data-active="true"] { background:#eef8f2; border-color:#bbd9c7; color:#205334; }
.promo-rule-body details { margin-top:14px; }
.promo-rule-body summary { padding:12px 0; cursor:pointer; font-weight:600; }
.promo-rule-body fieldset { padding:0 0 8px; overflow:visible; }
#promoRuleMessage { color:var(--text-dim); font-size:15px; }
.member-tabs { display: flex; gap: 8px; flex-wrap: wrap; }
.member-tabs .filter-pill { min-height: 48px; }
.member-panel { display: flex; flex-direction: column; gap: 14px; flex: 1; min-height: 0; }
.member-tx-summary { display: flex; flex-wrap: wrap; gap: 8px 20px; font-size: 15px; color: var(--text); }
.member-tx-summary b { color: var(--heading); font-weight: 600; }
.member-tx-foot { display: flex; align-items: center; justify-content: flex-end; gap: 12px; font-size: 15px; color: var(--text-dim); }
.member-search input[type="date"] { flex: 0 1 160px; min-width: 140px; }
.member-funds-gift { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.member-funds-gift > div { display: grid; gap: 8px; }

/* Phase 2 · report navigation, range bar and statistics */
.page-reports { flex-direction: row; padding: 0; gap: 0; overflow: hidden; }
.report-nav { width: 132px; flex-shrink: 0; border-right: 1px solid var(--border); background: var(--bg-elev); padding: 12px 8px; display: flex; flex-direction: column; gap: var(--ui-button-gap); }
.report-nav-btn { text-align: left; min-height: 48px; padding: 10px; border-radius: var(--r); font-size: 15px; color: var(--text); }
.report-nav-btn:hover { background: var(--bg-hover); color: var(--heading); }
.report-nav-btn.active { background: var(--accent-dim); color: var(--accent-press); font-weight: 500; }
.report-main { flex: 1; min-width: 0; overflow-y: auto; padding: 16px 20px; display: flex; flex-direction: column; gap: 14px; }
.report-view { display: flex; flex-direction: column; gap: 14px; }
.report-range { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 15px; }
.report-range input[type="date"] { min-height: 48px; padding: 8px 10px; font: inherit; font-size: 15px; color: var(--heading); background: #fff; border: 1px solid var(--border); border-radius: var(--r); }
.report-range .btn { min-height: 48px; }
.report-range .report-note { margin: 0; }
.report-range-summary { display: flex; flex-direction: column; gap: 12px; }
.report-range-summary .kpi-row, #statsTotals { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
.report-methods-inline { display: flex; flex-wrap: wrap; gap: 8px 20px; font-size: 15px; }
.report-methods-inline b { color: var(--heading); font-weight: 600; }

/* Phase 2 · areas and table seats */
.area-list { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0; }
.area-chip { display: flex; align-items: center; gap: 8px; padding: 6px 8px 6px 12px; border: 1px solid var(--border); border-radius: var(--r); background: var(--bg); font-size: 15px; }
.area-chip span { color: var(--text-dim); font-size: 15px; }
.area-card select, .area-card input { min-height: 48px; padding: 6px 8px; font: inherit; font-size: 15px; color: var(--heading); background: #fff; border: 1px solid var(--border); border-radius: var(--r); }
.area-card input { width: 64px; }
.export-dialog { width: min(760px, calc(100vw - 32px)); }
.export-dialog textarea { width: 100%; box-sizing: border-box; min-height: 240px; padding: 10px; font: 15px/1.5 var(--mono); color: var(--heading); background: var(--bg); border: 1px solid var(--border); border-radius: var(--r); resize: vertical; }

/* P0-06 refunds */
.badge.refund { background: rgba(240,68,56,.12); color: var(--ui-danger); }
.refund-dialog { width: min(760px, calc(100vw - 32px)); }
.refund-dialog form { max-height: calc(100vh - 34px); display: flex; flex-direction: column; }
.refund-dialog .member-ledger-body { overflow-y: auto; }
.refund-facts { display: flex; flex-wrap: wrap; gap: 8px 20px; font-size: 15px; }
.refund-facts b { color: var(--heading); }
.refund-fields { border: 0; padding: 0; margin: 0; display: grid; gap: 8px; }
.refund-fields input[type="text"] { box-sizing: border-box; min-height: 48px; padding: 8px 10px; font: inherit; font-size: 15px; border: 1px solid var(--border); border-radius: var(--r); }
#refundLines input { width: 64px; }
.refund-amount { color: var(--ui-danger); }
.report-stored { display: flex; flex-direction: column; gap: var(--ui-button-gap); font-size: 15px; color: var(--text); margin: 6px 0; } .report-stored b { color: var(--heading); }

/* P0-07 shift handover */
.page-shift { flex-direction: column; padding: 16px 20px; gap: 14px; overflow-y: auto; background: var(--bg); }
.shift-card { display: flex; flex-direction: column; gap: 10px; }
.shift-card label { font-size: 15px; font-weight: 500; }
.shift-card input[type="text"] { max-width: 280px; min-height: 48px; padding: 10px 12px; font: inherit; font-size: 15px; color: var(--heading); background: #fff; border: 1px solid var(--border); border-radius: var(--r); }
.shift-card .btn.primary { align-self: flex-start; min-height: 56px; }
.shift-close { display: flex; flex-direction: column; gap: 8px; border-top: 1px solid var(--border); padding-top: 12px; }
.shift-diff { color: var(--ui-danger); }
.shift-detail h4 { font-size: 15px; color: var(--heading); margin: 8px 0; }

.page-shift > * { flex-shrink: 0; }
.page-shift .btn { min-height: 48px; min-width: 48px; }
.page-shift .orders-table { overflow-x: auto; }
.shift-result:empty, #shiftUnshifted:empty, #shiftDetail:empty { display: none; }
.shift-result { color: var(--accent-press); }
.shift-confirm-text { padding: 18px 24px; white-space: pre-line; }
#shiftRecovery { border-color: #FEDF89; background: #FFFAEB; overflow-wrap: anywhere; }
#shiftRecovery .btn { align-self: flex-start; min-height: 48px; }
#shiftDetail { border-top: 1px solid var(--border); padding-top: 12px; }
@media (max-height: 700px) { .rail { overflow-y: auto; } .rail-nav { flex-shrink: 0; } }

.shift-history-dialog { width: min(800px, calc(100vw - 24px)); max-height: calc(100vh - 24px); padding: 0; }
.shift-history-dialog .modal-head { position: sticky; top: 0; z-index: 1; background: white; }
.shift-history-dialog .shift-detail { padding: 16px 20px 24px; }
#shiftDetail p { line-height: 1.8; margin: 6px 0 12px; }
#shiftDetail .orders-table, #shiftCurrent .orders-table { overflow-x: auto; }
#shiftDetail .orders-table table, #shiftCurrent .orders-table table { min-width: 410px; }
@media (max-width: 700px) {
  .page-shift { padding: 12px; gap: 10px; }
  .shift-history-table thead { display: none; }
  .shift-history-table table, .shift-history-table tbody { display: block; }
  .shift-history-table tr { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); padding: 6px 8px; }
  .shift-history-table td { display: block; padding: 7px; white-space: normal; overflow-wrap: anywhere; border: 0; }
  .shift-history-table td[data-label]::before { content: attr(data-label); display: block; color: var(--text-dim); font-size: 15px; }
  .shift-history-table td:last-child { grid-column: 1/-1; }
  .shift-history-table td:last-child::before { display: none; }
  .shift-history-table td button { width: 100%; min-height: 48px; }
  #shiftConfirm { max-width: calc(100vw - 24px); }
}
#shiftDetail .orders-table th, #shiftCurrent .orders-table th,
#shiftDetail .orders-table td, #shiftCurrent .orders-table td { white-space: nowrap; }
@media (max-width: 700px) {
  .app[data-current-page="shift"] .topbar .search, .app[data-current-page="shift"] .topbar-clock { display: none; }
  .app[data-current-page="shift"] .topbar { padding: 6px 10px; gap: var(--ui-button-gap); flex-wrap: wrap; height: auto; }
  .app[data-current-page="shift"] .topbar-actions { flex-wrap: wrap; gap: var(--ui-button-gap); margin-left: auto; }
}

#fundsAuditFilter label { display: flex; align-items: center; gap: var(--ui-button-gap); }
#fundsAuditFilter input { width: 140px; min-height: 48px; }
.funds-audit-rows { display: grid; gap: 8px; }
.funds-audit-rows details { border: 1px solid var(--border); border-radius: var(--r); padding: 8px 12px; overflow-wrap: anywhere; }
.funds-audit-rows summary { cursor: pointer; line-height: 1.7; padding: 4px 0; }
.funds-audit-rows summary b { margin-right: 12px; }
.funds-audit-rows small { display: block; color: var(--text-dim); }
.funds-audit-rows dl { display: grid; grid-template-columns: auto 1fr; gap: var(--ui-button-gap) 12px; margin-top: 8px; }
.funds-audit-rows dt { color: var(--text-dim); }

#fundsReviewButton[hidden], #fundsSeal[hidden] { display: none; }

[data-legacy-choice][aria-pressed="true"] { border-color: var(--accent); color: var(--accent-press); }
#legacyHistoryRows p { white-space: pre-line; }

/* Cashier controls are used by touch as well as by mouse. Keep the hit area on
   the actual control so that adjacent actions never share an invisible target. */
button, input, select, textarea, summary, a[href], [role="button"], [role="tab"], [role="switch"], [contenteditable="true"], .table-card, .cart-item {
  min-inline-size: var(--touch) !important;
  min-block-size: var(--touch) !important;
  touch-action: manipulation;
}
button, input, select, textarea, summary, [contenteditable="true"] { font-size: 15px; }
a[href] { display: inline-flex; align-items: center; }
summary { align-content: center; }
/* Primary actions keep their height even inside legacy dialogs and toolbars. */
button:-webkit-any(.primary, .lg), .ui-button:-webkit-any(.primary, .hot, .dark), [data-pay-oid] {
  height: var(--ui-action-height) !important;
  min-height: var(--ui-action-height) !important;
  min-block-size: var(--ui-action-height) !important;
  max-height: 72px;
}
.d-price ,
.ci-price ,
.bl-amt ,
.cart-sum .total ,
.bt-row .mono ,
.info-card .value ,
.k-value  {
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.bill-line .bl-name, .bill-line .bl-amt { font-size: 15px; overflow-wrap: anywhere; }
#page-order .line-ops { width: 136px; }
.line-ops-qty { grid-template-columns: minmax(48px,1fr) minmax(20px,auto) minmax(48px,1fr); }
.line-ops { overscroll-behavior: contain; }
.line-ops .line-ops-hint:empty { display: none; }
.chips, .ci-qty, .cart-actions, .staff-actions, .order-actions { flex-wrap: wrap; }
#page-orders .orders-table, .prod-table, .member-list-table { min-height: 0; }
dialog summary, #fundsAuditCard summary { min-height: var(--touch); align-content: center; cursor: pointer; }
.app button:focus, dialog button:focus { outline: 2px solid var(--accent); outline-offset: -2px; }

/* The stock switch keeps its compact visible track inside its touch target. */
.app button.toggle { background: transparent; }
.toggle::before { content:""; position:absolute; left:0; right:0; top:50%; height:26px; transform:translateY(-50%); border-radius:13px; background:var(--border-strong); }
.toggle.on::before { background:var(--accent); }
.toggle::after { top:calc(50% - 11px); }

.table-tools { display:flex; align-items:center; justify-content:space-between; gap: 10px; flex-wrap:wrap; }
.table-tools .floor-tabs { max-width:100%; overflow-x:auto; }
#btnPickupBoard { min-height:48px; }
.product-editor.pickup-board { width:min(840px,calc(100vw - 24px)); }
.pickup-board .modal-head h2,.pickup-board .modal-head p { margin:0; }
.pickup-board .pickup-content { padding:16px 22px; overflow:auto; max-height:calc(100vh - 152px); }
.pickup-display { display:flex; justify-content:space-between; align-items:center; gap: 16px; padding:12px 20px; color:#164e35; background:#eaf6ef; border-radius:var(--r); }
.pickup-display strong { display:block; font-size:38px; font-variant-numeric:tabular-nums; line-height:1.2; }
.pickup-display p { margin:0; }
.pickup-filters { display:flex; align-items:flex-end; flex-wrap:wrap; gap: 12px; margin-top:14px; }
.pickup-filters label { flex:1 1 120px; }
.pickup-filters input,.pickup-filters select { margin-top:4px; }
.pickup-meta { display:flex; align-items:center; justify-content:space-between; gap: 10px; flex-wrap:wrap; margin:12px 0; color:var(--text-dim); }
.pickup-meta label { display:inline-flex; align-items:center; gap: var(--ui-button-gap); min-height:48px; }
.pickup-meta input[type=checkbox] { width: 48px; min-height: 48px; height: 48px; }
.pickup-rows { list-style:none; padding:0; margin:0; }
.pickup-rows li { display:flex; align-items:center; flex-wrap:wrap; gap: 12px; padding:12px 0; border-block-end:1px solid var(--border); }
.pickup-rows .pickup-number { font-size:22px; min-width:72px; font-weight:650; font-variant-numeric:tabular-nums; }
.pickup-rows .pickup-order { flex:1 1 190px; min-width:0; overflow-wrap:anywhere; }
.pickup-order small { display:block; color:var(--text-dim); line-height:1.5; }
.pickup-row-actions { display:flex; flex-wrap:wrap; gap: 8px; }

.product-editor.inventory-board { width:min(1050px,calc(100vw - 24px)); }
.inventory-board .modal-head p,.inventory-board h3 { margin:4px 0; }
.inventory-content { max-height:calc(100vh - 146px); overflow:auto; padding:16px 20px; }
.inventory-layout { display:grid; grid-template-columns:minmax(240px,.85fr) minmax(340px,1.3fr); gap: 20px; }
.inventory-detail { border-inline-start:1px solid var(--border); padding-inline-start:20px; min-width:0; }
.inventory-tools,.inventory-actions,.inventory-balance { display:flex; align-items:flex-end; flex-wrap:wrap; gap: 8px; }
.inventory-tools label { flex:1 1 105px; }
.inventory-board input,.inventory-board select { margin-top:4px; }
.inventory-list,.inventory-entries { list-style:none; padding:0; margin:8px 0; overflow-wrap:anywhere; }
.inventory-list button { width:100%; text-align:start; padding:10px; background:white; border:1px solid var(--border); color:var(--heading); border-radius:var(--r); cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap: 8px; min-height: 48px; }
.inventory-list li+li { margin-top:4px; }
.inventory-list button[aria-pressed=true] { border-color:var(--accent); background:#edf4ff; }
.inventory-list small,.inventory-entries small,.inventory-balance small { display:block; color:var(--text-dim); font-size:15px; }
.inventory-balance { background:#edf4ff; color:#203b64; align-items:center; justify-content:space-between; padding:14px 16px; border-radius:var(--r); }
.inventory-balance strong { font-size:28px; }.inventory-balance span { font-size:15px; }
.inventory-board form { gap: 8px; border-bottom:1px solid var(--border); padding-bottom:14px; margin-bottom:12px; }
.inventory-board [hidden] { display:none!important; }
.inventory-actions { justify-content:space-between; align-items:center; }
.inventory-entries li { padding:8px 0; border-bottom:1px solid var(--border); }
.inventory-recovery,#inventoryNotice { margin:0 0 12px; padding:9px 12px; border-radius:var(--r); background:#f2f6fc; overflow-wrap:anywhere; }
.inventory-recovery .btn { margin:4px; }
@media(max-width:740px){.inventory-layout{grid-template-columns:1fr}.inventory-detail{border:0;padding:0}.inventory-list{max-height:240px;overflow:auto}}

.product-editor.finance-board { width:min(740px,calc(100vw - 24px)); }
.finance-body { padding:16px 20px; max-height:calc(100vh - 145px); overflow:auto; }
.finance-tools,.finance-row { display:flex; align-items:center; flex-wrap:wrap; gap: 8px; }
.finance-tools label { display:flex; align-items:center; gap: 8px; }
.finance-rows { margin:12px 0; display:grid; gap: 8px; }
.finance-row { padding:12px; background:var(--bg); border:1px solid var(--border); border-radius:var(--r); }
.finance-row div { flex:1; min-width:180px; overflow-wrap:anywhere; }
.finance-row small { display:block; color:var(--text-dim); margin-top:4px; }
#financeForm { margin-top:12px; border:1px solid var(--border); border-radius:var(--r); }
#financeForm[hidden],#financeFields label[hidden] {display:none;}
#financeFields label {display:grid;gap: var(--ui-button-gap);}
#financeAction {font-weight:600;}
#financePending:not(:empty) {padding:10px;background:#fff4db;margin-top:8px;}
.finance-board [hidden], #payOnAccount[hidden], #checkoutDepositReview[hidden] { display:none !important; }

.refund-split { background: var(--bg-elev); border: 1px solid var(--border); border-radius: var(--r); padding: 12px; }
.refund-dialog [hidden] { display: none !important; }
.refund-split > div, .refund-split li, .refund-history-sources li { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
.refund-split h3, .refund-split p { margin: 0; }
.refund-split p, .refund-split small, .refund-history-sources small { color: var(--text); font-size: 15px; }
.refund-split ul, .refund-history-sources { padding: 0; margin: 6px 0; list-style: none; }
.refund-split li { border-top: 1px solid var(--border); padding: 7px 0; }
.refund-split small, .refund-history-sources small { display: block; }
.refund-history-sources { min-width: 150px; }

.sales-hours-card { display:grid; gap: 12px; }
.sales-hours-card h2, .sales-hours-card .report-note {margin:0}
.sales-hours-head {display:flex; align-items:center; justify-content:space-between; gap: 12px; flex-wrap:wrap}
.sales-hours-head label {display:flex; align-items:center; gap: 8px; font-size:15px; color:var(--text)}
.sales-hours-head select {min-height: 48px; padding:0 10px; font: inherit; font-size: 15px; background:white; color:var(--heading); border:1px solid var(--border); border-radius:var(--r)}
.sales-hours-chart {display:grid; grid-template-columns:repeat(auto-fit,minmax(48px,1fr)); gap: var(--ui-button-gap)}
.sales-hour {min-width: 48px; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; gap: var(--ui-button-gap); border:1px solid transparent; border-radius:4px; color:var(--text); padding:5px 1px 2px; font:inherit; font-size: 15px}
.sales-hour:hover, .sales-hour:focus, .sales-hour[aria-pressed="true"] {background:var(--accent-dim); border-color:var(--accent); color: var(--accent-press)}
.sales-hour-track {display:flex; align-items:flex-end; width:70%; max-width:24px; height:44px; border-bottom:1px solid var(--border)}
.sales-hour-track i {width:100%; background:var(--accent); border-radius:2px 2px 0 0}
@media (max-width:1050px) {.sales-hours-chart {grid-template-columns:repeat(auto-fit,minmax(48px,1fr))} .sales-hour-track {height:28px}}

.product-editor.eff-dialog {width:min(860px,calc(100vw - 24px));}
.eff-dialog [hidden] {display:none !important;}
.eff-body {padding:16px 22px;max-height:calc(100vh - 145px);overflow:auto;display:grid;gap: 12px;}
.eff-body section,.eff-body #effSetup,.eff-body #effPair {display:grid;gap: 12px;}
.eff-switch,.eff-actions,.eff-cats,.eff-form {display:flex;align-items:end;flex-wrap:wrap;gap: 8px;}
.eff-form label {flex:1 1 120px;display:grid;gap: var(--ui-button-gap);}
.eff-kpis,.eff-choices {display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap: 8px;}
.eff-kpis div,.eff-record,.eff-choice {padding:12px;border:1px solid var(--border);border-radius:var(--r);background:#fff;}
.eff-kpis strong {display:block;font:600 21px var(--mono);margin-top:4px;}
.eff-record {margin-top:8px;}.eff-record summary {cursor:pointer;font-weight:600;padding:5px 0;}
.eff-choice {text-align:left;min-height: 52px;}.eff-choice small {display:block;color:var(--text);}
#effArena {border-top:1px solid var(--border);padding-top:10px;}
#effChoices {overflow:auto;max-height:clamp(145px,34vh,340px);margin-top:10px;align-content:start;overscroll-behavior:contain;}
#effMessage:empty {display:none;} #effTaskHint,#effResult {color:var(--text);}

#channelSettings .channel-list {display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap: 8px}
.channel-list > div {display:grid; gap: var(--ui-button-gap); padding:12px; border:1px solid var(--border); border-radius:var(--r); font-size:15px}
.channel-list > div > span,.channel-guide p {color:var(--text); font-size:15px}
.channel-guide {margin-top:10px}
.channel-guide summary {padding:10px 0; color: var(--accent-press); cursor:pointer}
.channel-guide p {line-height:1.65; margin:4px 0}

.pq-dialog {width:min(1000px,calc(100vw - 24px));color:var(--heading);}
.pq-dialog [hidden] {display:none !important;}
.pq-body {padding:16px 20px;overflow:auto;max-height:calc(100vh - 135px);}
.pq-filter,.pq-tools,.pq-pending {display:flex;align-items:flex-end;flex-wrap:wrap;gap: 8px;}
.pq-filter label,.pq-tools label {display:grid;gap: var(--ui-button-gap);font-size:15px;}
.pq-dialog input,.pq-dialog select {height: 48px;padding:4px 10px;border:1px solid var(--border);border-radius:var(--r);background:#fff;font: inherit; font-size: 15px;}
.pq-columns {display:grid;grid-template-columns:minmax(210px,1fr) minmax(270px,1.3fr);gap: 16px;}
.pq-listcol {max-height:57vh;overflow:auto;padding:0 2px;}
.pq-job {display:block;width:100%;padding:10px 12px;margin-bottom:6px;border:1px solid var(--border);border-radius:var(--r);background:#fff;text-align:left;color:inherit;}
.pq-job[aria-pressed="true"] {border-color:var(--accent);background:var(--accent-dim);}
.pq-job strong,.pq-job small,.pq-slip small {display:block;}
.pq-job small {margin-top:4px;color:var(--text);}
.pq-slip {background:white;border:1px solid var(--border);border-top:3px solid var(--heading);padding:14px 18px;overflow-wrap:anywhere;}
.pq-slip header {text-align:center;margin-bottom:10px;}.pq-slip h3 {margin:4px 0;}.pq-slip p {margin:4px 0;}
.pq-slip pre {border-top: 1px dashed var(--border); border-bottom: 1px dashed var(--border);padding:10px 0;white-space:pre-wrap;overflow-wrap:anywhere;font:15px/1.5 var(--mono);margin:10px 0;}
.pq-pending {background:var(--accent-dim);padding:12px;margin-top:12px;}
@media(max-width:750px){.pq-columns{grid-template-columns:1fr}.pq-listcol{max-height:210px}.pq-body{padding:10px 12px}}

/* Store devices */
.cart-head .order-note-row {display:flex;align-items:center;gap: var(--ui-button-gap);min-width:0;width:100%}
.cart-head .order-note-row input {flex:1;min-width: 48px}
.order-note-row button {flex:none}
.hw-dialog {width:min(890px,calc(100vw - 22px))}
.hw-dialog [hidden] {display:none!important}
.hw-body {display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap: 16px;padding:18px;overflow:auto;max-height:calc(100vh - 108px);background:#f6f8fa}
.hw-dialog[data-mode="order"] {width:min(480px,calc(100vw - 22px))}
.hw-dialog[data-mode="order"] .hw-body {grid-template-columns:1fr}
.hw-section {min-width:0;align-self:start;padding:18px;background:#fff;border:1px solid var(--border);border-radius:8px;display:grid;gap: 10px}
.hw-heading,.hw-actions {display:flex;align-items:center;justify-content:space-between;gap: 8px;flex-wrap:wrap}
.hw-heading h3 {font-size:18px}
.hw-heading>span,.hw-stations span,.hw-weight span {color:#56677a;font-size:15px}
.hw-stations {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap: 8px}
.hw-stations>div,.hw-weight {border-radius:6px;padding:12px;background:#f4f7fb}
.hw-stations strong,.hw-weight strong {display:block;margin-top:4px}
.hw-section h4 {margin-top:10px}
.hw-models {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap: var(--ui-button-gap) 10px;color:var(--text);font-size:15px}
.hw-scale-profiles {display:flex;flex-wrap:wrap;gap: var(--ui-button-gap)}
.hw-scale-profiles li {padding:2px 6px;border:1px solid var(--border);border-radius:4px;color:var(--text);font-size:15px}
.hw-models b {color:var(--heading);font-weight:550}
.hw-weight {display:flex;align-items:center;justify-content:space-between;background:#eef5ff}
.hw-weight strong {font:600 32px/1.15 var(--mono);color:#223f73}
.hw-weight small {font:500 16px var(--sans)}
#hwSignal {font-size:15px;color:#435779}
.hw-weight[data-stable="true"] {background:#e7f6ed}
.hw-weight[data-stable="true"] #hwSignal {color:#167249}
.hw-port-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap: var(--ui-button-gap) 10px;margin-top:8px}
.hw-section summary {color:#49617d;cursor:pointer}
.hw-capture {display:grid;gap: 8px;padding-top:12px;border-top:1px solid var(--border)}
.hw-section p {line-height:1.55;margin:0}
@media(max-width:720px){.hw-body {grid-template-columns:1fr;padding:10px;gap: 10px}.hw-section{padding:13px}}

.offline-kitchen-banner {
  flex-shrink: 0;
  padding: 16px 20px;
  background: var(--ui-danger);
  color: #FFFFFF;
  border: 2px solid var(--ui-danger-press);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
}

/* MINGRUI approved UI — shared theme tokens and components for every cashier screen. */
@font-face {
  font-family: "ZD Inter";
  src: url("fonts/Inter-Variable.ttf") format("truetype");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  unicode-range: U+0000-024F, U+1E00-1EFF, U+2000-206F, U+20A0-20CF;
}
:root {
  --ui-bg: #EDF0F6;
  --ui-card: #FFFFFF;
  --ui-sunken: #F4F6FA;
  --ui-line: #E3E7EF;
  --ui-line-strong: #CFD5E1;
  --ui-ink: #0E1226;
  --ui-text: #3A4157;
  --ui-muted: #6B7389;
  --ui-brand: #E65100;
  --ui-brand-press: #BF360C;
  --ui-brand-soft: #FFF3E0;
  --ui-hot: var(--ui-brand);
  --ui-hot-press: var(--ui-brand-press);
  --ui-hot-soft: var(--ui-brand-soft);
  --ui-ok: #12B886;
  --ui-warn: #F2A20C;
  --ui-danger: #B42318;
  --ui-danger-soft: #FFF4F3;
  --ui-danger-press: #7A271A;
  --ui-rail: #11152A;
  --ui-rail-ink: #A6ADC5;
  --ui-font: "ZD Inter", "PingFang SC", "HarmonyOS Sans SC", "Microsoft YaHei", "Noto Sans CJK SC", system-ui, sans-serif;
  --ui-text-size: 15px;
  --ui-title-size: 18px;
  --ui-price-size: 20px;
  --ui-total-size: 36px;
  --ui-space-1: 4px;
  --ui-space-2: 8px;
  --ui-space-3: 12px;
  --ui-space-4: 16px;
  --ui-space-6: 24px;
  --ui-radius-sm: 10px;
  --ui-radius: 14px;
  --ui-radius-lg: 16px;
  --ui-shadow: 0 1px 2px #1018400a, 0 2px 8px #1018400d;
  --ui-touch: 48px;
  --ui-action-height: clamp(56px, 7vmin, 72px);
  --ui-action-font: clamp(18px, 2.2vmin, 22px);
  --ui-button-height: clamp(48px, 5.5vmin, 56px);
  --ui-button-font: clamp(16px, 2vmin, 20px);
  --ui-button-gap: 8px;
}
.ui-card { background: var(--ui-card); border-radius: var(--ui-radius-lg); box-shadow: var(--ui-shadow); min-width: 0; }
.ui-number { font-family: var(--ui-font); font-variant-numeric: tabular-nums; font-weight: 700; }
/* Shared monetary displays and mutually exclusive list feedback. */
.ui-money, .table-card .ui-money, .d-price, .ci-price, .bl-amt, .orders-table .amt, #payAmount, #cartTotal,
#ckSub, #ckDisc, #ckSvc, #ckGrand, #orderSpecBasePrice, #orderSpecTotal, #memBalance, #memToday {
  font-variant-numeric: tabular-nums;
  font-weight: 700;
}
.ui-state { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 16px; min-width: 0; font-size: 15px; overflow-wrap: anywhere; }
/* A state row occupies the list width without nine empty member columns. */
.orders-table.has-ui-state thead { display: none; }
.orders-table.has-ui-state table { table-layout: fixed; }
.orders-table td.has-direct-ui-state { font-size: 15px; }
.page-members :-webkit-any(.report-status, .member-search, .k-label, .k-sub) { font-size: 15px; }
.ui-state[data-ui-state="error"] { color: var(--danger); }
.ui-state[data-ui-state="loading"]::before { content: ""; flex: 0 0 20px; height: 20px; border: 2px solid var(--border); border-top-color: var(--accent); border-radius: 50%; animation: ui-state-spin .8s linear infinite; }
@keyframes ui-state-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .ui-state[data-ui-state="loading"]::before { animation: none; } }

.ui-button, #page-order .btn, body[data-current-page="order"] .topbar .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-2);
  min-height: var(--ui-touch);
  height: auto;
  padding: var(--ui-space-2) var(--ui-space-3);
  border: 1px solid var(--ui-line);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-card);
  color: var(--ui-text);
  font: 600 var(--ui-text-size)/1.4 var(--ui-font);
  white-space: normal;
  overflow-wrap: anywhere;
}
.ui-button.primary { background: var(--ui-brand); color: white; border-color: var(--ui-brand); }
.ui-button.primary:active { background: var(--ui-brand-press); }
.ui-button.hot { background: var(--ui-hot); color: white; border-color: var(--ui-hot); }
.ui-button.hot:active { background: var(--ui-hot-press); }
.ui-button.dark { background: var(--ui-ink); color: white; border-color: var(--ui-ink); }
.ui-button:focus { outline: 2px solid var(--ui-brand); outline-offset: -2px; }
.ui-button:disabled { opacity: .45; cursor: not-allowed; }

/* Shell changes apply only while the order page is active. */
body[data-current-page="order"] .app {
  grid-template-columns: minmax(min-content, .65fr) minmax(0, 12fr);
  background: var(--ui-bg);
  font-family: var(--ui-font);
  font-size: var(--ui-text-size);
}
body[data-current-page="order"] .rail,
body[data-current-page="order"] .topbar,
body[data-current-page="order"] #page-order { --touch: var(--ui-touch); }
body[data-current-page="order"] .rail { background: var(--ui-rail); border: 0; padding: var(--ui-space-3) var(--ui-space-1); }
body[data-current-page="order"] .brand { background: var(--ui-brand-press); color: white; border: 0; border-radius: var(--ui-radius); width: 48px; height: 48px; flex-shrink: 0; margin-bottom: var(--ui-space-3); }
body[data-current-page="order"] .brand span { color: white; }
body[data-current-page="order"] .rail-nav { padding: 0; gap: var(--ui-space-2); }
body[data-current-page="order"] .rail-btn { flex-shrink: 0; min-height: 58px; color: var(--ui-rail-ink); border-radius: var(--ui-radius); }
body[data-current-page="order"] .rail-btn.active { background: var(--ui-brand-soft); color: var(--ui-brand-press); }
body[data-current-page="order"] .rail-btn .label { font-size: var(--ui-text-size); }
body[data-current-page="order"] .rail-meta { color: var(--ui-rail-ink); font: 15px/1.5 var(--ui-font); overflow-wrap: anywhere; }
body[data-current-page="order"] .rail-footer { padding-left: 0; padding-right: 0; border-color: #3A4157; }
body[data-current-page="order"] .main { background: var(--ui-bg); }
body[data-current-page="order"] .topbar { height: auto; min-height: 64px; padding: var(--ui-space-2) var(--ui-space-4); gap: var(--ui-space-3); flex-wrap: wrap; }
body[data-current-page="order"] .topbar-brand { font-size: var(--ui-title-size); font-weight: 800; }
body[data-current-page="order"] .topbar-clock { font: 600 var(--ui-text-size)/1.4 var(--ui-font); font-variant-numeric: tabular-nums; }
body[data-current-page="order"] .search { min-width: 0; flex: 1 1 16em; max-width: none; }
body[data-current-page="order"] .search input { min-width: 48px; font-size: var(--ui-text-size); background: var(--ui-sunken); }
body[data-current-page="order"] .topbar-actions { flex-wrap: wrap; }
body[data-current-page="order"] .topbar .btn.primary { background: var(--ui-brand); color: white; }
body[data-current-page="order"] .net-banner,
body[data-current-page="order"] .offline-kitchen-banner,
body[data-current-page="order"] #coreStatus { flex-shrink: 0; font-size: var(--ui-text-size); overflow-wrap: anywhere; }

/* Three fluid columns: current order, line actions, menu. */
#page-order { font: var(--ui-text-size)/1.45 var(--ui-font); color: var(--ui-text); }
#page-order.active {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(10rem, .9fr) minmax(0, 6.6fr);
  gap: var(--ui-space-3);
  padding: var(--ui-space-3);
  overflow: auto;
}
#page-order :-webkit-any(.cart-panel, .line-ops, .order-menu) { width: auto; min-width: 0; min-height: 0; background: var(--ui-card); border: 0; border-radius: var(--ui-radius-lg); box-shadow: var(--ui-shadow); }
#page-order [hidden] { display: none !important; }
#page-order :-webkit-any(button, input, summary) { font-size: var(--ui-text-size); }
#page-order :-webkit-any(button, summary) { min-height: var(--ui-touch); flex-shrink: 0; }
#page-order :-webkit-any(button, .table-tag, .ci-name, .d-name, .d-tag, .saved-line-help) { white-space: normal; overflow-wrap: anywhere; }
#page-order .mono { font-family: var(--ui-font); font-variant-numeric: tabular-nums; }
#page-order .cart-panel { overflow: auto; }
#page-order .cart-head { padding: var(--ui-space-3); border-bottom: 1px dashed var(--ui-line); flex-shrink: 0; }
#page-order .cart-head h2 { font-size: var(--ui-title-size); color: var(--ui-ink); }
#page-order .table-tag { font-size: var(--ui-title-size); font-weight: 700; color: var(--ui-ink); }
#page-order .table-tag span { display: block; font-size: var(--ui-text-size); color: var(--ui-muted); font-weight: 400; }
#page-order .covers { flex-wrap: wrap; justify-content: space-between; color: var(--ui-text); font-size: var(--ui-text-size); }
#page-order .stepper { background: var(--ui-sunken); border-radius: var(--ui-radius-sm); }
#page-order .stepper button { width: var(--ui-touch); height: var(--ui-touch); background: transparent; }
#page-order .stepper span { font-size: var(--ui-title-size); font-weight: 700; }
#page-order #coversPlus { background: var(--ui-brand-soft); color: var(--ui-brand-press); }
#page-order .order-note-row { flex-wrap: wrap; }
#page-order .order-note-row input { flex: 1 1 100%; background: var(--ui-sunken); border-color: var(--ui-line); border-radius: var(--ui-radius-sm); }
#page-order .cart-list { min-height: 0; padding: var(--ui-space-2); }
#page-order .cart-item { border: 0; padding: var(--ui-space-3); border-radius: var(--ui-radius-sm); gap: var(--ui-space-2); }
#page-order .cart-item + .cart-item { margin-top: var(--ui-space-1); }
#page-order .cart-item.selected { background: var(--ui-brand-soft); box-shadow: inset 4px 0 var(--ui-brand); }
#page-order .ci-top { flex-wrap: wrap; align-items: baseline; }
#page-order .ci-name { flex: 1 1 8em; font-size: 16px; font-weight: 600; color: var(--ui-ink); }
#page-order .ci-price { font-size: 17px; font-weight: 700; color: var(--ui-ink); overflow-wrap: anywhere; }
#page-order .saved-line-note ,
#page-order .saved-line-help ,
#page-order .line-tag ,
#page-order .ci-qty span ,
#page-order .line-ops-hint ,
#page-order .line-ops-target ,
#page-order .cart-empty  { font-size: var(--ui-text-size); }
#page-order .chip { height: auto; padding: var(--ui-space-2); border-radius: var(--ui-radius-sm); background: var(--ui-sunken); color: var(--ui-muted); }
#page-order .chip.on { background: var(--ui-brand-soft); color: var(--ui-brand-press); border-color: var(--ui-brand); }
#page-order .ci-qty button { width: auto; padding: var(--ui-space-2); border-radius: var(--ui-radius-sm); }
#page-order .cart-foot { flex-shrink: 0; padding: var(--ui-space-3); border-color: var(--ui-line); margin-top: auto; }
#page-order .cart-sum { flex-wrap: wrap; gap: var(--ui-space-2); }
#page-order .cart-sum .label { font-size: var(--ui-text-size); }
#page-order .cart-sum .total { font: 800 var(--ui-total-size)/1.2 var(--ui-font); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
#page-order .cart-sum .total small { font-size: var(--ui-price-size); }
#page-order .cart-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
#page-order .cart-actions .btn { height: var(--ui-action-height); min-height: var(--ui-action-height); font-size: var(--ui-title-size); font-weight: 700; }
#page-order #btnGoCheckout { background: var(--ui-card); border-color: var(--ui-brand-press); color: var(--ui-brand-press); }
#page-order #btnSubmitOrder { background: #f15a46 !important; border-color: #f15a46 !important; color: white !important; box-shadow: 0 4px 12px rgba(230, 81, 0, .2); }
#page-order #btnSubmitOrder:active { background: var(--ui-hot-press) !important; border-color: var(--ui-hot-press) !important; }
#page-order .line-ops { padding: var(--ui-space-2); gap: var(--ui-space-2); }
#page-order .line-ops .btn { background: var(--ui-sunken); padding: var(--ui-space-2) var(--ui-space-1); border-color: transparent; }
#page-order .line-ops .btn.active { background: var(--ui-brand-soft); color: var(--ui-brand-press); }
#page-order .line-ops .danger-text { color: var(--ui-danger); }
#page-order .line-ops-qty { grid-template-columns: minmax(0, 1fr); gap: 0; background: var(--ui-sunken); border-radius: var(--ui-radius-sm); }
#page-order .line-ops-qty span { font-size: 24px; font-weight: 800; padding-top: var(--ui-space-2); padding-bottom: var(--ui-space-2); }
#page-order #lineQtyPlus { background: var(--ui-card); border-color: var(--ui-brand-press); color: var(--ui-brand-press); }
#page-order .order-menu { display: flex; flex-direction: column; background: transparent; box-shadow: none; }
#page-order .cat-rail { width: auto; flex-direction: row; flex-wrap: wrap; gap: var(--ui-space-2); overflow: visible; border: 0; padding: 0 0 var(--ui-space-3); background: transparent; }
#page-order .cat-btn { flex: 1 1 auto; text-align: center; border-radius: 999px; background: var(--ui-card); box-shadow: var(--ui-shadow); padding: var(--ui-space-2) var(--ui-space-3); font-weight: 600; color: var(--ui-text); }
#page-order .cat-btn.active { background: var(--ui-ink); color: white; }
#page-order .dish-area { overflow: auto; min-height: 0; }
#page-order .dish-toolbar { flex-wrap: wrap; padding: 0 0 var(--ui-space-2); gap: var(--ui-space-2); border: 0; }
#page-order .dish-search { width: auto; flex: 1 1 15em; padding: var(--ui-space-2) var(--ui-space-3); border-radius: var(--ui-radius-sm); border-color: var(--ui-line); }
#page-order .dish-toolbar-actions { display: flex; flex-wrap: wrap; gap: var(--ui-space-2); }
#page-order .order-scanner { background: transparent; border: 0; padding: 0 0 var(--ui-space-3); }
#page-order .order-scan-form input { max-width: none; }
#page-order .order-scanner :-webkit-any(label, p, details) { font-size: var(--ui-text-size); }
#page-order .dish-grid { flex: 1 0 auto; overflow: visible; padding: 2px; gap: var(--ui-space-3); background: transparent; grid-template-columns: repeat(auto-fill, minmax(min(100%, 10.5em), 1fr)); }
#page-order .dish-card { min-width: 48px; display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto auto 1fr auto; gap: var(--ui-space-2); padding: 0 0 var(--ui-space-2); border: 2px solid transparent; border-radius: var(--ui-radius-lg); box-shadow: var(--ui-shadow); text-align: left; background: var(--ui-card); }
#page-order .dish-card:hover, #page-order .dish-card:focus { border-color: var(--ui-brand); }
#page-order .dish-card .d-art { min-width: 0; width: 100%; display: flex; align-items: center; justify-content: center; min-height: 110px; border-radius: 12px 12px 0 0; background: #F66C43; color: white; font: 800 52px/1.2 var(--ui-font); }
#page-order .dish-card .d-art::before { content: ""; width: 0; padding-top: 60.6061%; }
#page-order .dish-card:nth-child(6n+2) .d-art { background: #F2AA29; }
#page-order .dish-card:nth-child(6n+3) .d-art { background: #37B98F; }
#page-order .dish-card:nth-child(6n+4) .d-art { background: #168777; }
#page-order .dish-card:nth-child(6n+5) .d-art { background: #34ADDB; }
#page-order .dish-card:nth-child(6n) .d-art { background: #697087; }
#page-order .dish-card.soldout .d-art { background: #9297A3; }
#page-order .dish-card :-webkit-any(.d-name, .d-tag, .d-price) { padding-left: var(--ui-space-2); padding-right: var(--ui-space-2); }
#page-order .dish-card .d-name { font-size: 16px; font-weight: 700; color: var(--ui-ink); padding-top: var(--ui-space-1); }
#page-order .dish-card .d-tag { font-size: var(--ui-text-size); color: var(--ui-muted); }
#page-order .dish-card .d-price { font: 800 var(--ui-price-size)/1.4 var(--ui-font); font-variant-numeric: tabular-nums; color: var(--ui-hot-press); }
#page-order .dish-empty { padding: var(--ui-space-6) !important; font-size: var(--ui-text-size) !important; }

/* Smaller counter screens: action strip below the cart/menu pair. */
@media (max-width: 1199px) {
  #page-order.active { grid-template-columns: minmax(0, 1fr) minmax(0, 1.7fr); grid-template-rows: minmax(0, 1fr) auto; }
  #page-order .cart-panel { grid-column: 1; grid-row: 1; }
  #page-order .order-menu { grid-column: 2; grid-row: 1; }
  #page-order .line-ops { grid-column: 1 / -1; grid-row: 2; display: flex; flex-flow: row wrap; overflow: visible; }
  #page-order .line-ops > .btn { width: auto; flex: 1 1 6em; }
  #page-order .line-ops-target { flex: 1 1 8em; align-content: center; }
  #page-order .line-ops-qty { display: flex; align-items: center; }
  #page-order .line-ops-qty .btn { width: var(--ui-touch); }
  #page-order .line-ops-qty span { padding-left: var(--ui-space-2); padding-right: var(--ui-space-2); }
  #page-order .line-ops-hint { flex: 1 1 100%; }
}
/* Portrait/mobile and short windows use natural vertical scrolling. */
@media (max-width: 900px), (max-height: 600px) {
  html[data-current-page="order"] { height: auto; min-height: 100%; overflow: visible; }
  body[data-current-page="order"] { height: auto; min-height: 100vh; overflow: auto; }
  body[data-current-page="order"] .app { height: auto; min-height: 100vh; }
  body[data-current-page="order"] :-webkit-any(.main, .content) { overflow: visible; }
  body[data-current-page="order"] .rail { align-self: start; position: sticky; top: 0; max-height: 100vh; }
  #page-order.active { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto; height: auto; overflow: visible; }
  #page-order .order-menu { grid-column: 1; grid-row: 1; }
  #page-order .line-ops { grid-column: 1; grid-row: 2; }
  #page-order .cart-panel { grid-column: 1; grid-row: 3; }
  #page-order :-webkit-any(.dish-area, .cart-panel, .cart-list) { overflow: visible; }
}
@media (max-width: 600px) {
  body[data-current-page="order"] .app { grid-template-columns: minmax(0, 1fr); }
  body[data-current-page="order"] .rail { position: static; flex-direction: row; flex-wrap: wrap; padding: var(--ui-space-2); max-height: none; }
  body[data-current-page="order"] .rail-nav { display: grid; grid-template-columns: repeat(auto-fit, minmax(56px, 1fr)); flex: 1 1 100%; overflow: visible; }
  body[data-current-page="order"] .rail .brand { margin: 0; }
  body[data-current-page="order"] .rail-footer { width: auto; margin: 0 0 0 auto; padding: 0; border: 0; }
  body[data-current-page="order"] .topbar { padding: var(--ui-space-3); }
  body[data-current-page="order"] .topbar-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
  body[data-current-page="order"] .search { flex-basis: 100%; }
  #page-order.active { padding: var(--ui-space-2); }
  #page-order .dish-grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 9em), 1fr)); }
  #page-order .dish-toolbar-actions { width: 100%; }
  #page-order .dish-toolbar-actions .btn { flex: 1 1 8em; }
}

/* Narrow shared shell. The navigation anchor keeps these rules above later
   page-specific shell rules without changing any page layout. */
@media (max-width: 480px) {
  body.has-rail[data-current-page] .app {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto minmax(0, 1fr);
  }
  body.has-rail[data-current-page] .rail {
    position: static;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    min-width: 0;
    max-height: none;
    padding: 4px;
    gap: var(--ui-button-gap);
    overflow: visible;
  }
  body.has-rail[data-current-page] .rail .brand { flex-shrink: 0; margin: 0; }
  body.has-rail[data-current-page] .rail-nav {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    flex: 1 1 0;
    min-width: 0;
    width: auto;
    padding: 0;
    gap: var(--ui-button-gap);
    overflow-x: auto;
    overflow-y: hidden;
  }
  body.has-rail[data-current-page] .rail-btn {
    flex: 0 0 auto;
    flex-direction: row;
    min-width: 48px;
    min-height: 48px;
    padding: 8px;
    white-space: nowrap;
  }
  body.has-rail[data-current-page] .rail-btn .label { font-size: 15px; }
  body.has-rail[data-current-page] .rail-footer {
    flex: 0 0 auto;
    width: auto;
    margin: 0;
    padding: 0 4px;
    border: 0;
  }
  body.has-rail[data-current-page] .topbar {
    min-height: 0;
    padding: 4px 8px;
    gap: var(--ui-button-gap) 8px;
  }
  body.has-rail[data-current-page] .topbar-brand,
  body.has-rail[data-current-page] .topbar-clock { display: block; font-size: 15px; }
  body.has-rail[data-current-page] .topbar .search {
    display: block;
    flex: 1 1 100%;
    min-width: 0;
    max-width: none;
    margin: 0;
  }
  body.has-rail[data-current-page] .topbar-actions {
    display: flex;
    flex-wrap: nowrap;
    width: 100%;
    min-width: 0;
    gap: var(--ui-button-gap);
    overflow-x: auto;
  }
  body.has-rail[data-current-page] .topbar .btn {
    flex: 0 0 auto;
    min-width: 48px;
    min-height: 48px;
    padding-left: 8px; padding-right: 8px;
    font-size: 15px;
    white-space: nowrap;
  }
  body.has-rail[data-current-page] .topbar .btn.primary { min-height: 56px; }
  body.has-rail[data-current-page] .net-banner,
  body.has-rail[data-current-page] .offline-kitchen-banner,
  body.has-rail[data-current-page] #coreStatus {
    flex-shrink: 0;
    font-size: 15px;
    overflow-wrap: anywhere;
  }
}

/* ==== 页面：规格弹窗 ==== */
#orderSpecDialog {
  width: min(780px, calc(100% - 32px));
  max-width: none;
  max-height: calc(100vh - 32px);
  margin: auto;
  padding: 0;
  border: 0;
  border-radius: var(--ui-radius-lg);
  color: var(--ui-text);
  font: var(--ui-text-size)/1.5 var(--ui-font);
  box-shadow: 0 16px 48px #0e122633;
  overflow: hidden;
}
#orderSpecDialog[open] { display: flex; flex-direction: column; }
#orderSpecDialog::backdrop { background: #0e12266b; }
#orderSpecDialog :-webkit-any(.spec-head, .spec-foot) {
  display: flex;
  align-items: center;
  gap: var(--ui-space-4);
  flex-shrink: 0;
  padding: var(--ui-space-4) var(--ui-space-6);
}
#orderSpecDialog .spec-head { border-bottom: 1px solid var(--ui-line); }
#orderSpecDialog .spec-thumb {
  display: grid;
  place-items: center;
  width: 64px;
  height: 64px;
  flex-shrink: 0;
  border-radius: var(--ui-radius);
  background: var(--ui-hot);
  color: var(--ui-card);
  font-size: 30px;
  font-weight: 800;
}
#orderSpecDialog .spec-heading { flex: 1; min-width: 0; overflow-wrap: anywhere; }
#orderSpecDialog h2 { font-size: 22px; font-weight: 800; color: var(--ui-ink); }
#orderSpecDialog .spec-heading p ,
#orderSpecDialog .spec-group h3 span ,
#orderSpecDialog .spec-empty ,
#orderSpecDialog .spec-sum  { color: var(--ui-muted); font-size: var(--ui-text-size); }
#orderSpecDialog .spec-close { width: var(--ui-touch); height: var(--ui-touch); padding: 0; flex-shrink: 0; border: 0; border-radius: 50%; background: var(--ui-sunken); font-size: 26px; }
#orderSpecDialog .spec-body { min-height: 0; padding: var(--ui-space-4) var(--ui-space-6); overflow: auto; overscroll-behavior: contain; display: grid; gap: var(--ui-space-6); }
#orderSpecDialog .spec-group { min-width: 0; }
#orderSpecDialog .spec-group h3 { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: var(--ui-space-2); font-size: 16px; color: var(--ui-ink); margin-bottom: var(--ui-space-2); }
#orderSpecDialog .spec-group h3 span { font-weight: 400; }
#orderSpecDialog .spec-product { display: flex; flex-wrap: wrap; gap: var(--ui-space-3); align-items: center; padding: var(--ui-space-3) var(--ui-space-4); border: 1px solid var(--ui-line); border-radius: var(--ui-radius-sm); background: var(--ui-sunken); overflow-wrap: anywhere; }
#orderSpecDialog .spec-product strong { font-size: var(--ui-price-size); color: var(--ui-ink); }
#orderSpecDialog .spec-options { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 120px), 1fr)); gap: var(--ui-space-2); }
#orderSpecDialog .spec-addons { grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); }
#orderSpecDialog .spec-option { position: relative; min-width: var(--ui-touch); min-height: var(--ui-touch); padding: var(--ui-space-3) var(--ui-space-4); flex-wrap: wrap; }
#orderSpecDialog .spec-option.on { border-color: var(--ui-brand); background: var(--ui-brand-soft); color: var(--ui-brand-press); }
#orderSpecDialog .spec-option.on::after { content: "✓"; position: absolute; top: 0; right: 0; padding-left: 3px; padding-right: 3px; border-radius: 0 var(--ui-radius-sm) 0 6px; background: var(--ui-brand-press); color: white; font-size: 15px; line-height: 16px; }
#orderSpecDialog .spec-option-price { color: var(--ui-muted); }
#orderSpecDialog .spec-option.on .spec-option-price { color: var(--ui-brand-press); }
#orderSpecDialog .spec-picked { overflow-wrap: anywhere; padding: var(--ui-space-3); border-radius: var(--ui-radius-sm); background: var(--ui-sunken); }
#orderSpecDialog .spec-foot { flex-wrap: wrap; border-top: 1px solid var(--ui-line); background: var(--ui-sunken); }
#orderSpecDialog .spec-stepper { display: inline-flex; align-items: center; border: 1px solid var(--ui-line); border-radius: 999px; background: var(--ui-card); }
#orderSpecDialog .spec-stepper .ui-button { min-width: var(--ui-touch); height: var(--ui-touch); padding-left: var(--ui-space-2); padding-right: var(--ui-space-2); border: 0; border-radius: 999px; background: transparent; }
#orderSpecDialog .spec-stepper span { min-width: 32px; text-align: center; font-size: var(--ui-title-size); }
#orderSpecDialog #orderSpecPlus { background: var(--ui-card); border-color: var(--ui-brand-press); color: var(--ui-brand-press); }
#orderSpecDialog .spec-sum { margin-left: auto; }
#orderSpecDialog .spec-sum strong { display: block; font-size: 30px; font-weight: 800; color: var(--ui-hot-press); overflow-wrap: anywhere; }
#orderSpecDialog #orderSpecDone { flex: 0 1 200px; height: var(--ui-action-height); min-height: var(--ui-action-height); font-size: var(--ui-title-size); }
#orderSpecDialog .ui-number { font-variant-numeric: tabular-nums; font-weight: 800; }
@media (min-width: 1200px) {
  #orderSpecDialog { margin-left: auto; margin-right: var(--ui-space-4); }
}
@media (max-width: 600px) {
  #orderSpecDialog { width: calc(100% - 16px); max-height: calc(100vh - 16px); }
  #orderSpecDialog :-webkit-any(.spec-head, .spec-foot, .spec-body) { padding: var(--ui-space-3); gap: var(--ui-space-3); }
  #orderSpecDialog .spec-thumb { width: 48px; height: 48px; font-size: 24px; }
  #orderSpecDialog h2 { font-size: var(--ui-title-size); }
  #orderSpecDialog .spec-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #orderSpecDialog .spec-addons { grid-template-columns: minmax(0, 1fr); }
  #orderSpecDialog #orderSpecDone { flex-basis: 100%; }
  #orderSpecDialog .spec-sum strong { font-size: 26px; }
}

/* ==== 页面：结账页 ==== */
body[data-current-page="checkout"] .app {
  grid-template-columns: minmax(min-content, .65fr) minmax(0, 12fr);
  background: var(--ui-bg);
  font-family: var(--ui-font);
  font-size: var(--ui-text-size);
}
body[data-current-page="checkout"] .rail,
body[data-current-page="checkout"] .topbar,
body[data-current-page="checkout"] #page-checkout { --touch: var(--ui-touch); }
body[data-current-page="checkout"] .rail { background: var(--ui-rail); border: 0; padding: var(--ui-space-3) var(--ui-space-1); }
body[data-current-page="checkout"] .brand { background: var(--ui-brand-press); color: white; border: 0; border-radius: var(--ui-radius); width: 48px; height: 48px; flex-shrink: 0; margin-bottom: var(--ui-space-3); }
body[data-current-page="checkout"] .brand span { color: white; }
body[data-current-page="checkout"] .rail-nav { padding: 0; gap: var(--ui-space-2); }
body[data-current-page="checkout"] .rail-btn { flex-shrink: 0; min-height: 58px; color: var(--ui-rail-ink); border-radius: var(--ui-radius); }
body[data-current-page="checkout"] .rail-btn.active { background: var(--ui-brand-soft); color: var(--ui-brand-press); }
body[data-current-page="checkout"] .rail-btn .label { font-size: var(--ui-text-size); }
body[data-current-page="checkout"] .rail-meta { color: var(--ui-rail-ink); font: 15px/1.5 var(--ui-font); overflow-wrap: anywhere; }
body[data-current-page="checkout"] .rail-footer { padding-left: 0; padding-right: 0; border-color: #3A4157; }
body[data-current-page="checkout"] .main { background: var(--ui-bg); }
body[data-current-page="checkout"] .topbar { height: auto; min-height: 64px; padding: var(--ui-space-2) var(--ui-space-4); gap: var(--ui-space-3); flex-wrap: wrap; }
body[data-current-page="checkout"] .topbar-brand { font-size: var(--ui-title-size); font-weight: 800; }
body[data-current-page="checkout"] .topbar-clock { font: 600 var(--ui-text-size)/1.4 var(--ui-font); font-variant-numeric: tabular-nums; }
body[data-current-page="checkout"] .search { min-width: 0; flex: 1 1 16em; max-width: none; }
body[data-current-page="checkout"] .search input { min-width: 48px; font-size: var(--ui-text-size); background: var(--ui-sunken); }
body[data-current-page="checkout"] .topbar-actions { flex-wrap: wrap; }
body[data-current-page="checkout"] .topbar .btn.primary { background: var(--ui-brand); color: white; }
body[data-current-page="checkout"] .net-banner,
body[data-current-page="checkout"] .offline-kitchen-banner,
body[data-current-page="checkout"] #coreStatus { flex-shrink: 0; font-size: var(--ui-text-size); overflow-wrap: anywhere; }


#page-checkout { padding: var(--ui-space-3); background: var(--ui-bg); font: var(--ui-text-size)/1.5 var(--ui-font); color: var(--ui-text); overflow: auto; }
#page-checkout .checkout-wrap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr) minmax(0, 1.05fr); gap: var(--ui-space-3); align-items: stretch; min-height: 0; height: 100%; }
#page-checkout :-webkit-any(.checkout-bill, .checkout-options, .checkout-settlement) { min-width: 0; min-height: 0; overflow: auto; }
#page-checkout .checkout-options > *, #page-checkout .checkout-bill > :not(.bill-lines), #page-checkout .checkout-settlement > * { flex-shrink: 0; }
#page-checkout :-webkit-any(.checkout-bill, .checkout-settlement) { display: flex; flex-direction: column; }
#page-checkout :-webkit-any(.checkout-discounts, .checkout-payments, .checkout-settlement) { padding: var(--ui-space-4); }
#page-checkout h2 { color: var(--ui-ink); font-size: var(--ui-title-size); font-weight: 800; margin: 0 0 var(--ui-space-3); }
#page-checkout .checkout-bill > h2 { padding: var(--ui-space-4) var(--ui-space-4) 0; }
#page-checkout :-webkit-any(button, input, select) { font-family: var(--ui-font); font-size: var(--ui-text-size); }
#page-checkout :-webkit-any(button, input, select) { min-height: var(--ui-touch); min-width: var(--ui-touch); }
#page-checkout button { white-space: normal; overflow-wrap: anywhere; flex-shrink: 0; }
#page-checkout [hidden] { display: none !important; }
#page-checkout :-webkit-any(p, label, strong, .bl-name, .bl-mods, .bl-amt, .bill-meta, .sb-row, .bt-row) { overflow-wrap: anywhere; }
#page-checkout .bill-meta,
#page-checkout .bill-lines,
#page-checkout #checkoutOrderStatus,
#page-checkout #checkUncertainPayment { margin-left: var(--ui-space-4); margin-right: var(--ui-space-4); }
#page-checkout #checkoutOrderStatus:empty { display: none; }
#page-checkout #checkUncertainPayment { margin-bottom: var(--ui-space-3); }
#page-checkout .bill-meta { flex-wrap: wrap; gap: var(--ui-space-1) var(--ui-space-3); font-size: var(--ui-text-size); color: var(--ui-muted); }
#page-checkout .bill-meta strong { color: var(--ui-ink); font-weight: 700; }
#page-checkout .bill-lines { flex: 1; min-height: 0; overflow: auto; margin-bottom: var(--ui-space-4); }
#page-checkout .bill-line { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(5em, auto); align-items: baseline; gap: var(--ui-space-2); padding: var(--ui-space-2) 0; border-bottom: 1px dashed var(--ui-line); }
#page-checkout .bl-description { min-width: 0; }
#page-checkout .bl-name { display: block; font-size: var(--ui-text-size); font-weight: 700; color: var(--ui-ink); }
#page-checkout .bl-mods { display: block; color: var(--ui-muted); font-size: var(--ui-text-size); }
#page-checkout .bl-mods:empty { display: none; }
#page-checkout .bl-qty { margin: 0; font: 700 var(--ui-text-size)/1.5 var(--ui-font); color: var(--ui-muted); font-variant-numeric: tabular-nums; }
#page-checkout .bl-amt { text-align: right; color: var(--ui-ink); font: 700 var(--ui-text-size)/1.5 var(--ui-font); font-variant-numeric: tabular-nums; }
#page-checkout .bl-amt s { display: block; color: var(--ui-muted); }
#page-checkout .line-tag { font-size: var(--ui-text-size); line-height: 1.5; background: var(--ui-hot-soft); color: var(--ui-text); }
#page-checkout .checkout-empty { padding-top: var(--ui-space-6); padding-bottom: var(--ui-space-6); color: var(--ui-muted); }
#page-checkout .bill-totals { padding: var(--ui-space-4); border-top: 1px solid var(--ui-line); border-radius: 0 0 var(--ui-radius-lg) var(--ui-radius-lg); background: var(--ui-sunken); }
#page-checkout .bt-row { gap: var(--ui-space-2); font-size: var(--ui-text-size); color: var(--ui-text); align-items: baseline; flex-wrap: wrap; }
#page-checkout .bt-row .mono { font: 700 var(--ui-text-size)/1.5 var(--ui-font); font-variant-numeric: tabular-nums; margin-left: auto; }
#page-checkout #ckDisc { color: var(--ui-ok); }
#page-checkout .bt-row.grand { border-color: var(--ui-line-strong); font-weight: 700; }
#page-checkout .bt-row.grand .mono { font-size: var(--ui-total-size); font-weight: 800; color: var(--ui-ink); }
#page-checkout .checkout-options { display: flex; flex-direction: column; gap: var(--ui-space-3); }
#page-checkout .checkout-payments { flex: 1; }
#page-checkout .discount-row { flex-wrap: wrap; margin: var(--ui-space-2) 0; }
#page-checkout .discount-row input { flex: 1 1 9em; width: 100%; min-width: var(--ui-touch); background: var(--ui-sunken); border-color: var(--ui-line); border-radius: var(--ui-radius-sm); }
#page-checkout .discount-row label { flex-basis: 100%; }
#page-checkout .discount-row button { flex: 0 1 auto; }
#page-checkout .report-note ,
#page-checkout .payment-note ,
#page-checkout .checkout-member p ,
#page-checkout #checkoutOrderStatus  { font-size: var(--ui-text-size); line-height: 1.6; margin-top: var(--ui-space-2); margin-bottom: var(--ui-space-2); }
#page-checkout .checkout-promotion { padding: var(--ui-space-2) 0 0; margin-top: var(--ui-space-2); border: 0; border-top: 1px solid var(--ui-line); border-radius: 0; }
#page-checkout .checkout-promotion label { display: flex; gap: var(--ui-space-2); }
#page-checkout #useMemberPromotion { flex-shrink: 0;  }
#page-checkout .checkout-member { margin: 0; }
#page-checkout #checkoutMemberBox { padding: var(--ui-space-4); border-radius: var(--ui-radius-lg); background: var(--ui-brand-press); color: white; box-shadow: var(--ui-shadow); }
#page-checkout #checkoutMemberHint,
#page-checkout #checkoutMemberSummary { color: white; }
#page-checkout #checkoutMemberSummary { display: none; }
#page-checkout #checkoutMemberSummary:empty { display: none; }
#page-checkout .checkout-member select { max-width: 100%; font-weight: 600; border-color: var(--ui-line); border-radius: var(--ui-radius-sm); }
#page-checkout .pay-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ui-space-2); margin: 0; }
#page-checkout .pay-method { position: relative; height: auto; min-height: 88px; padding: var(--ui-space-2); flex-direction: column; gap: var(--ui-space-2); border-radius: var(--ui-radius); font-weight: 700; color: var(--ui-ink); }
#page-checkout .pay-method svg { box-sizing: content-box; padding: var(--ui-space-2); border-radius: var(--ui-radius-sm); background: var(--ui-brand); color: white; }
#page-checkout .pay-method[data-pay="微信"] svg { background: var(--ui-ok); }
#page-checkout .pay-method[data-pay="现金"] svg { background: var(--ui-hot); }
#page-checkout .pay-method.active { border-color: var(--ui-hot); background: var(--ui-hot-soft); box-shadow: inset 0 0 0 1px var(--ui-hot); }
#page-checkout #checkoutCreditBox { padding-top: var(--ui-space-3); }
#page-checkout .payment-note { color: var(--ui-muted); }
#page-checkout .split-box { display: flex; flex-direction: column; gap: var(--ui-space-3); margin-top: var(--ui-space-4); margin-bottom: var(--ui-space-4); padding: var(--ui-space-4); background: var(--ui-sunken); border-color: var(--ui-line); border-radius: var(--ui-radius); }
#page-checkout .sb-row { flex-wrap: wrap; gap: var(--ui-space-2); font-size: var(--ui-text-size); color: var(--ui-text); }
#page-checkout .sb-row span:last-child { margin-left: auto; font: 700 var(--ui-price-size)/1.4 var(--ui-font); font-variant-numeric: tabular-nums; color: var(--ui-ink); }
#page-checkout .sb-row:last-child { border-top: 1px solid var(--ui-line-strong); padding-top: var(--ui-space-3); }
#page-checkout #splitLeft { color: var(--ui-hot-press); font-size: var(--ui-total-size); font-weight: 800; }
#page-checkout .checkout-confirm { margin-top: auto; padding-top: var(--ui-space-4); }
#page-checkout .checkout-confirm-hint { color: var(--ui-muted); margin-bottom: var(--ui-space-3); }
#page-checkout #btnConfirmPay { width: 100%; height: var(--ui-action-height); min-height: var(--ui-action-height); font-size: var(--ui-title-size); font-weight: 800; }
@media (max-width: 1199px) {
  #page-checkout .checkout-wrap { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); grid-auto-rows: max-content; height: auto; min-height: 100%; flex: 0 0 auto; }
  #page-checkout :-webkit-any(.checkout-bill, .checkout-options, .checkout-settlement, .bill-lines) { overflow: visible; }
  #page-checkout .checkout-settlement { grid-column: 1 / -1; }
}
@media (max-width: 900px), (max-height: 600px) {
  html[data-current-page="checkout"] { height: auto; overflow: auto; }
  body[data-current-page="checkout"] { height: auto; overflow: visible; }
  body[data-current-page="checkout"] .app { height: auto; min-height: 100vh; }
  body[data-current-page="checkout"] :-webkit-any(.main, .content) { overflow: visible; }
  body[data-current-page="checkout"] .rail { align-self: start; position: sticky; top: 0; max-height: 100vh; }
  #page-checkout.active { height: auto; overflow: visible; }
  #page-checkout .checkout-wrap { grid-template-columns: minmax(0, 1fr); grid-auto-rows: max-content; height: auto; min-height: 0; flex: 0 0 auto; }
  #page-checkout :-webkit-any(.checkout-bill, .checkout-options, .checkout-settlement, .bill-lines) { overflow: visible; }
  #page-checkout .checkout-settlement { grid-column: auto; }
}
@media (max-width: 600px) {
  body[data-current-page="checkout"] .app { grid-template-columns: minmax(0, 1fr); }
  body[data-current-page="checkout"] .rail { position: static; flex-direction: row; flex-wrap: wrap; padding: var(--ui-space-2); max-height: none; }
  body[data-current-page="checkout"] .rail-nav { display: grid; grid-template-columns: repeat(auto-fit, minmax(56px, 1fr)); flex: 1 1 100%; overflow: visible; }
  body[data-current-page="checkout"] .rail .brand { margin: 0; }
  body[data-current-page="checkout"] .rail-footer { width: auto; margin: 0 0 0 auto; padding: 0; border: 0; }
  body[data-current-page="checkout"] .topbar { padding: var(--ui-space-3); }
  body[data-current-page="checkout"] .topbar-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
  body[data-current-page="checkout"] .search { flex-basis: 100%; }
  #page-checkout { padding: var(--ui-space-2); }
  #page-checkout .pay-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #page-checkout #checkoutMemberSummary { display: block; }
}

/* Split payment confirmation uses the shared touch and danger tokens. */
.split-payment-dialog { width: min(760px, calc(100vw - 24px)); max-height: calc(100vh - 24px); overflow: auto; }
.split-payment-dialog [hidden] { display: none !important; }
/* The dialog owns scrolling; the product editor form height cap would squeeze grid rows. */
.split-payment-dialog form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; max-height: none; }
.split-offline-notice { color: var(--ui-danger); font-size: max(var(--ui-text-size), 16px); font-weight: 800; }
.split-payment-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.split-payment-fields label { display: grid; gap: 8px; font-size: var(--ui-text-size); }
.split-payment-fields input, .split-payment-fields select { width: 100%; min-height: var(--ui-touch); font-size: 18px; }
.split-payment-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.split-payment-row p { margin: 8px 0 0; overflow-wrap: anywhere; }
.split-payment-actions { display: flex; flex-wrap: wrap; gap: var(--ui-button-gap); }
.split-payment-dialog .modal-foot { display: flex; gap: var(--ui-button-gap); justify-content: flex-end; }
.split-payment-dialog .primary { min-height: var(--ui-action-height); font-size: var(--ui-action-font); font-weight: 800; max-width: 40%; }
@media (max-width: 600px) {
  .split-payment-fields { grid-template-columns: minmax(0, 1fr); }
  .split-payment-row, .split-payment-dialog .modal-foot { flex-direction: column; align-items: stretch; }
  /* Shared footers wrap, and shared mobile buttons use flex-basis: 100%.
     In a column those rules create a second column outside the dialog. */
  .split-payment-dialog .modal-foot { flex-wrap: nowrap; }
  .split-payment-dialog .modal-foot .btn { flex: 0 0 auto; }
  .split-payment-dialog .primary { width: 100%; max-width: 100%; }
}
#page-checkout .checkout-adjustment { display: grid; gap: var(--ui-button-gap); margin-top: 16px; }
#page-checkout .checkout-adjustment select,
#page-checkout .checkout-adjustment input { min-height: var(--ui-touch); width: 100%; min-width: var(--ui-touch); font-size: var(--ui-text-size); }
#page-checkout .checkout-adjustment label { font-size: var(--ui-text-size); }

/* ==== 页面：桌台页 ==== */
body[data-current-page="tables"] .app { background: var(--ui-bg); font-family: var(--ui-font); color: var(--ui-text); }
body[data-current-page="tables"] .rail { background: var(--ui-rail); border: 0; padding: 12px 4px; }
body[data-current-page="tables"] .rail .brand { background: var(--ui-brand-press); color: white; border: 0; border-radius: var(--ui-radius); width: 48px; height: 48px; flex-shrink: 0; margin-bottom: 12px; }
body[data-current-page="tables"] .rail-nav { padding: 0; }
body[data-current-page="tables"] .rail-btn { color: var(--ui-rail-ink); border-radius: var(--ui-radius-sm); }
body[data-current-page="tables"] .rail-btn.active { background: var(--ui-brand-soft); color: var(--ui-brand-press); }
body[data-current-page="tables"] .rail-meta { color: var(--ui-rail-ink); font-size: var(--ui-text-size); }
body[data-current-page="tables"] .rail-footer { padding-left: 0; padding-right: 0; border-color: var(--ui-text); }
body[data-current-page="tables"] .topbar { height: auto; min-height: 72px; padding: 12px 20px; gap: 12px; flex-wrap: wrap; }
body[data-current-page="tables"] .topbar-brand { font-size: var(--ui-title-size); font-weight: 800; }
body[data-current-page="tables"] .topbar-clock { font: 500 var(--ui-text-size)/1.4 var(--ui-font); font-variant-numeric: tabular-nums; }
body[data-current-page="tables"] .search { min-width: 0; flex: 1 1 240px; max-width: none; }
body[data-current-page="tables"] .search input { font-size: var(--ui-text-size); background: var(--ui-sunken); border-radius: var(--ui-radius-sm); }
body[data-current-page="tables"] .topbar-actions { flex-wrap: wrap; }
body[data-current-page="tables"] .topbar .btn,
body[data-current-page="tables"] #page-tables .btn { border-radius: var(--ui-radius-sm); }
body[data-current-page="tables"] :-webkit-any(button, input):focus { outline: 3px solid var(--ui-brand-press); outline-offset: -3px; }
#page-tables.active { display: grid; grid-template-columns: 232px minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); gap: 20px; padding: 20px; overflow: auto; }
#page-tables .tables-heading { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 16px; min-width: 0; }
#page-tables .tables-eyebrow { font-size: var(--ui-text-size); color: var(--ui-muted); }
#page-tables h1 { font-size: 30px; line-height: 1.3; color: var(--ui-ink); font-weight: 800; }
#page-tables .tables-guide { margin-top: 8px; font-size: var(--ui-text-size); color: var(--ui-muted); }
#page-tables h2 { color: var(--ui-ink); font-size: var(--ui-title-size); font-weight: 700; }
#page-tables .tables-summary { display: flex; flex-wrap: wrap; gap: 16px 32px; padding: 16px 24px; border: 1px solid var(--ui-line); border-radius: var(--ui-radius); background: var(--ui-card); }
#page-tables .tables-summary > div { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
#page-tables .tables-summary span { color: var(--ui-muted); font-size: var(--ui-text-size); }
#page-tables .tables-summary strong { font-size: 24px; color: var(--ui-ink); overflow-wrap: anywhere; }
#page-tables #payAmount { color: var(--ui-brand-press); }
#page-tables .tables-side { width: auto; min-width: 0; border: 1px solid var(--ui-line); border-radius: var(--ui-radius); background: var(--ui-card); padding: 16px; gap: 24px; overflow: auto; }
#page-tables .side-section h2 { margin-bottom: 12px; }
#page-tables .status-list { gap: var(--ui-button-gap); }
#page-tables .status-item { min-height: var(--ui-button-height); height: auto; border: 1px solid transparent; border-radius: var(--ui-radius-sm); gap: var(--ui-button-gap); padding: 12px 8px; text-align: left; line-height: 1.4; color: var(--ui-text); }
#page-tables .status-item.active { background: var(--ui-brand-soft); color: var(--ui-brand-press); border-color: var(--ui-brand-press); font-weight: 700; }
#page-tables .status-item .count { margin-left: auto; color: inherit; background: var(--ui-sunken); border-radius: 6px; padding: 0 6px; font-size: var(--ui-title-size); font-weight: 700; font-variant-numeric: tabular-nums; }
#page-tables .status-item.active .count { background: var(--ui-card); }
#page-tables .tables-operations { margin-top: auto; padding-top: 20px; border-top: 1px solid var(--ui-line); }
#page-tables .ops-stack { gap: var(--ui-button-gap); }
#page-tables .transfer-notice { color: var(--ui-muted); font-size: var(--ui-text-size); line-height: 1.6; margin: 0 0 8px; overflow-wrap: anywhere; }
#page-tables .tables-main { padding: 0; min-width: 0; min-height: 0; gap: 16px; overflow: visible; }
#page-tables .table-tools { gap: 12px; align-items: start; }
#page-tables .floor-tabs { flex: 1 1 260px; flex-wrap: wrap; gap: var(--ui-button-gap); margin: 0; overflow: visible; }
#page-tables .floor-tab { min-height: var(--ui-button-height); height: auto; min-width: var(--ui-touch); border: 1px solid var(--ui-line-strong); border-radius: var(--ui-radius-sm); padding: 10px 16px; background: var(--ui-card); color: var(--ui-text); white-space: normal; overflow-wrap: anywhere; }
#page-tables .floor-tab.active { background: var(--ui-brand-soft); color: var(--ui-brand-press); border-color: var(--ui-brand-press); font-weight: 700; }
#page-tables .tables-tools-actions { display: flex; flex-wrap: wrap; gap: var(--ui-button-gap); }
#page-tables .tables-result { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
#page-tables #tableResultCount { font-size: var(--ui-text-size); color: var(--ui-muted); font-variant-numeric: tabular-nums; }
#page-tables #tableListStatus:empty { display: none; }
#page-tables #tableListStatus { border: 1px solid var(--ui-line); border-radius: var(--ui-radius-sm); background: var(--ui-card); }
#page-tables .table-empty { grid-column: 1 / -1; padding: 32px 16px; background: var(--ui-card); border-radius: var(--ui-radius); }
/* Content-sized rows keep tall card buttons from overlapping in the scrollport. */
#page-tables .table-grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); grid-auto-rows: max-content; gap: 16px; padding: 3px 3px 16px; overflow: auto; }
#page-tables .table-card { min-height: 210px; min-width: var(--ui-touch); height: auto; padding: 0; gap: 0; border: 1px solid var(--ui-line-strong); border-radius: var(--ui-radius); background: var(--ui-card); text-align: left; box-shadow: var(--ui-shadow); overflow: visible; }
/* Keep the content-sized card above the shared important logical touch minimum. */
#page-tables .table-card-button { display: flex; flex-direction: column; flex: 1 0 auto; width: 100%; height: auto; min-block-size: 208px !important; padding: 16px; gap: 12px; text-align: left; border-radius: var(--ui-radius); white-space: normal; overflow-wrap: anywhere; }
#page-tables .table-card-button > span { flex-shrink: 0; min-width: 0; max-width: 100%; }
#page-tables .table-card:hover { border-color: var(--ui-brand-press); background: var(--ui-card); }
#page-tables .table-card.selected { border-color: var(--ui-brand-press); box-shadow: inset 0 0 0 1px var(--ui-brand-press); }
#page-tables .table-card-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
#page-tables .table-symbol { display: grid; place-items: center; width: 32px; height: 32px; flex-shrink: 0; border: 1px solid var(--ui-line); border-radius: 8px; font-size: 26px; color: var(--ui-muted); background: var(--ui-sunken); }
#page-tables .table-card .badge { height: auto; font-size: var(--ui-text-size); line-height: 1.5; padding: 4px 8px; border-radius: 6px; white-space: normal; }
#page-tables .table-card .badge.free { color: var(--ui-text); background: var(--ui-sunken); }
#page-tables .table-card .badge.opened { color: #175CD3; background: var(--opened-bg); }
#page-tables .table-card .badge.order { color: #067647; background: var(--pending-bg); }
#page-tables .table-card .badge.pay { color: var(--ui-brand-press); background: var(--ui-brand-soft); }
#page-tables .table-card .badge.clear { color: var(--ui-danger); background: var(--ui-danger-soft); }
#page-tables .table-card .name { color: var(--ui-ink); font-size: 26px; font-weight: 800; letter-spacing: 0; line-height: 1.3; overflow-wrap: anywhere; }
#page-tables .table-card .meta { display: flex; flex-wrap: wrap; gap: 8px 16px; color: var(--ui-muted); font-size: var(--ui-text-size); overflow-wrap: anywhere; }
#page-tables .table-card-foot { margin-top: auto; padding-top: 12px; border-top: 1px solid var(--ui-line); display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 12px; }
#page-tables .table-card .amount { margin: 0; font: 700 var(--ui-price-size)/1.5 var(--ui-font); color: var(--ui-ink); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
#page-tables .table-card :-webkit-any(.amount.table-hint, .amount.opened-hint) { font-size: var(--ui-text-size); color: var(--ui-text); }
#page-tables .table-card-action { margin-left: auto; color: var(--ui-brand-press); font-size: var(--ui-text-size); font-weight: 700; white-space: nowrap; }
#page-tables .table-card[data-status="clear"] .table-card-action { color: var(--ui-danger); }
body[data-current-page="tables"] #openTableDialog,
body[data-current-page="tables"] #clearTableDialog { font-family: var(--ui-font); border-radius: var(--ui-radius-lg); max-height: calc(100vh - 24px); overflow: auto; }
body[data-current-page="tables"] #openTableDialog :-webkit-any(p, label, input),
body[data-current-page="tables"] #clearTableDialog :-webkit-any(p, label, input) { font-size: var(--ui-text-size); }
body[data-current-page="tables"] #openTableDialog .modal-foot,
body[data-current-page="tables"] #clearTableDialog .modal-foot { justify-content: flex-end; }
@media (max-width: 1199px) {
  #page-tables.active { grid-template-columns: 212px minmax(0, 1fr); gap: 16px; padding: 16px; }
  #page-tables .tables-side { padding: 12px; }
  #page-tables .table-grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr)); }
}
@media (max-width: 900px), (max-height: 600px) {
  html[data-current-page="tables"] { height: auto; min-height: 100%; overflow: visible; }
  body[data-current-page="tables"] { height: auto; min-height: 100vh; overflow: auto; }
  body[data-current-page="tables"] .app { height: auto; min-height: 100vh; }
  body[data-current-page="tables"] :-webkit-any(.main, .content) { flex: 0 0 auto; overflow: visible; }
  body[data-current-page="tables"] .rail { align-self: start; position: sticky; top: 0; max-height: 100vh; }
  #page-tables.active { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto; height: auto; flex: 0 0 auto; overflow: visible; }
  #page-tables .tables-side { display: contents; }
  #page-tables .tables-filters { min-width: 0; }
  #page-tables .tables-filters h2 { display: none; }
  #page-tables .status-list { display: flex; flex-direction: row; overflow-x: auto; padding: 3px; }
  #page-tables .status-item { flex: 0 0 auto; border-color: var(--ui-line-strong); background: var(--ui-card); gap: 12px; }
  #page-tables .tables-operations { order: 4; background: var(--ui-card); padding: 16px; border: 1px solid var(--ui-line); border-radius: var(--ui-radius); }
  #page-tables .ops-stack { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; }
  #page-tables #btnSwap { grid-column: 1; grid-row: 1; }
  #page-tables #btnMerge { grid-column: 2; grid-row: 1; }
  #page-tables #transferNotice { grid-column: 1; }
  #page-tables #mergeNotice { grid-column: 2; }
  /* Let document scrolling include every tool and the full grid's content height. */
  #page-tables .tables-main { flex: 0 0 auto; min-height: auto; }
  #page-tables .tables-main > * { flex-shrink: 0; }
  #page-tables .table-grid { flex: 0 0 auto; overflow: visible; }
}
@media (max-width: 600px) {
  body[data-current-page="tables"] .app { grid-template-columns: minmax(0, 1fr); }
  body.has-rail[data-current-page="tables"] .app { grid-template-rows: auto auto; }
  body[data-current-page="tables"] .rail { position: static; display: block; padding: 8px; min-width: 0; }
  body[data-current-page="tables"] .rail :-webkit-any(.brand, .rail-footer) { display: none; }
  body[data-current-page="tables"] .rail-nav { flex-direction: row; overflow-x: auto; }
  body[data-current-page="tables"] .rail-btn { min-width: 56px; }
  body[data-current-page="tables"] .topbar { padding: 12px; gap: 8px; }
  body[data-current-page="tables"] .topbar-clock { margin-left: auto; }
  body[data-current-page="tables"] .search { flex-basis: 100%; }
  body[data-current-page="tables"] .topbar-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
  #page-tables.active { padding: 12px; gap: 16px; }
  #page-tables .tables-heading { align-items: center; }
  #page-tables .tables-heading > div:first-child { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px; }
  #page-tables .tables-eyebrow { display: none; }
  #page-tables h1 { font-size: 26px; }
  #page-tables .tables-guide { display: none; }
  #page-tables .tables-summary { flex: 1; padding: 8px 12px; gap: 8px; justify-content: space-between; }
  #page-tables .tables-summary strong { font-size: var(--ui-price-size); }
  #page-tables .table-tools { display: contents; }
  #page-tables .tables-result { order: 1; }
  #page-tables #tableListStatus { order: 2; }
  #page-tables .table-grid { order: 3; }
  #page-tables .floor-tabs { flex: 0 0 auto; flex-wrap: wrap; overflow: visible; padding: 3px; }
  #page-tables .floor-tab { flex-shrink: 0; }
  #page-tables .tables-tools-actions { order: 4; width: 100%; }
  #page-tables .tables-tools-actions .btn { flex: 1; }
  #page-tables .table-grid { grid-template-columns: minmax(0, 1fr); }
  #page-tables .table-card { min-height: 196px; }
}

/* ==== 页面：订单页 ==== */
body[data-current-page="orders"] .app {
  grid-template-columns: minmax(min-content, .65fr) minmax(0, 12fr);
  background: var(--ui-bg);
  font-family: var(--ui-font);
  font-size: var(--ui-text-size);
}
body[data-current-page="orders"] .rail,
body[data-current-page="orders"] .topbar,
body[data-current-page="orders"] #page-orders { --touch: var(--ui-touch); }
body[data-current-page="orders"] .rail { background: var(--ui-rail); border: 0; padding: var(--ui-space-3) var(--ui-space-1); }
body[data-current-page="orders"] .brand { background: var(--ui-brand-press); color: white; border: 0; border-radius: var(--ui-radius); width: 48px; height: 48px; flex-shrink: 0; margin-bottom: var(--ui-space-3); }
body[data-current-page="orders"] .brand span { color: white; }
body[data-current-page="orders"] .rail-nav { padding: 0; gap: var(--ui-space-2); }
body[data-current-page="orders"] .rail-btn { flex-shrink: 0; min-height: 58px; color: var(--ui-rail-ink); border-radius: var(--ui-radius); }
body[data-current-page="orders"] .rail-btn.active { background: var(--ui-brand-soft); color: var(--ui-brand-press); }
body[data-current-page="orders"] .rail-btn .label { font-size: var(--ui-text-size); }
body[data-current-page="orders"] .rail-meta { color: var(--ui-rail-ink); font: 15px/1.5 var(--ui-font); overflow-wrap: anywhere; }
body[data-current-page="orders"] .rail-footer { padding-left: 0; padding-right: 0; border-color: #3A4157; }
body[data-current-page="orders"] .main { background: var(--ui-bg); }
body[data-current-page="orders"] .topbar { height: auto; min-height: 64px; padding: var(--ui-space-2) var(--ui-space-4); gap: var(--ui-space-3); flex-wrap: wrap; }
body[data-current-page="orders"] .topbar-brand { font-size: var(--ui-title-size); font-weight: 800; }
body[data-current-page="orders"] .topbar-clock { font: 600 var(--ui-text-size)/1.4 var(--ui-font); font-variant-numeric: tabular-nums; }
body[data-current-page="orders"] .search { min-width: 0; flex: 1 1 16em; max-width: none; }
body[data-current-page="orders"] .search input { min-width: 48px; font-size: var(--ui-text-size); background: var(--ui-sunken); }
body[data-current-page="orders"] .topbar-actions { flex-wrap: wrap; }
body[data-current-page="orders"] .topbar .btn.primary { background: var(--ui-brand); color: white; }
body[data-current-page="orders"] .net-banner,
body[data-current-page="orders"] .offline-kitchen-banner,
body[data-current-page="orders"] #coreStatus { flex-shrink: 0; font-size: var(--ui-text-size); overflow-wrap: anywhere; }


#page-orders { font: var(--ui-text-size)/1.5 var(--ui-font); color: var(--ui-text); background: var(--ui-bg); }
#page-orders.active { display: flex; flex-direction: column; gap: var(--ui-space-3); padding: var(--ui-space-3); overflow: auto; }
#page-orders > * { flex-shrink: 0; min-width: 0; }
#page-orders [hidden] { display: none !important; }
#page-orders :-webkit-any(button, input) { min-height: var(--ui-touch); min-width: var(--ui-touch); font-size: var(--ui-text-size); }
#page-orders :-webkit-any(button, td, th, p, span) { white-space: normal; overflow-wrap: anywhere; }
#page-orders .orders-heading { margin: 0; align-items: center; gap: var(--ui-space-3); }
#page-orders h1 { font-size: 24px; font-weight: 800; color: var(--ui-ink); }
#page-orders .order-review-intro { margin: var(--ui-space-1) 0 0; color: var(--ui-muted); font-size: var(--ui-text-size); }
#page-orders .orders-tools { display: flex; flex-wrap: wrap; gap: var(--ui-space-2); margin-left: auto; }
#page-orders :-webkit-any(.primary, .hot, .dark) { height: var(--ui-action-height); min-height: var(--ui-action-height); }
#page-orders .order-summary { font-size: var(--ui-text-size); display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); margin: 0; padding: var(--ui-space-4) 0 0; gap: 0; background: var(--ui-card); color: var(--ui-ink); }
#page-orders .order-summary:not(.has-orders-kpi) { display: block; padding: var(--ui-space-4); }
#page-orders .orders-kpi { display: flex; flex-direction: column; justify-content: space-between; gap: var(--ui-space-2); padding: 0 var(--ui-space-4); border-right: 1px solid var(--ui-line); }
#page-orders .orders-kpi > span { color: var(--ui-muted); font-size: var(--ui-text-size); }
#page-orders .orders-kpi strong { font-size: 26px; font-weight: 800; font-variant-numeric: tabular-nums; line-height: 1.2; }
#page-orders .orders-kpi:nth-child(3) strong { color: var(--ui-danger); }
#page-orders .orders-kpi:nth-child(4) strong { color: var(--ui-brand-press); }
#page-orders .orders-kpi:nth-child(6) { border: 0; }
#page-orders .orders-summary-note { grid-column: 1 / -1; margin-top: var(--ui-space-4); padding: var(--ui-space-2) var(--ui-space-4); border-top: 1px solid var(--ui-line); color: var(--ui-muted); font-size: var(--ui-text-size); }
#page-orders .orders-search-bar { display: flex; flex-wrap: wrap; align-items: end; gap: var(--ui-space-3); margin: 0; padding: 0; }
#page-orders .orders-search-field { flex: 1 1 20em; min-width: 0; }
#page-orders .orders-date-field { flex: 0 1 20em; min-width: 0; }
#page-orders .orders-search-bar label { display: block; margin-bottom: var(--ui-space-1); font-size: var(--ui-text-size); color: var(--ui-muted); }
#page-orders .orders-search-bar input { width: 100%; max-width: 100%; box-sizing: border-box; padding: var(--ui-space-2) var(--ui-space-3); border: 1px solid var(--ui-line); border-radius: var(--ui-radius-sm); background: var(--ui-card); color: var(--ui-ink); font-family: var(--ui-font); box-shadow: var(--ui-shadow); }
#page-orders #orderListStatus { margin: 0; padding: 0 var(--ui-space-1); background: transparent; color: var(--ui-muted); font-size: var(--ui-text-size); }
#page-orders .orders-results { display: flex; flex-direction: column; flex: 1 0 auto; }
#page-orders #orderFilters { display: flex; flex-wrap: wrap; gap: var(--ui-space-2); padding: var(--ui-space-3); border-bottom: 1px solid var(--ui-line); }
#page-orders .filter-pill { background: var(--ui-sunken); border-color: transparent; border-radius: var(--ui-radius-sm); }
#page-orders .filter-pill.active { background: var(--ui-brand-soft); color: var(--ui-brand-press); border-color: var(--ui-line); font-weight: 800; }
#page-orders .orders-table { flex: 1 0 auto; overflow: visible; border: 0; border-radius: 0; background: transparent; }
#page-orders .orders-table table { table-layout: fixed; }
#page-orders .orders-table th { position: static; background: var(--ui-sunken); color: var(--ui-muted); font-size: var(--ui-text-size); font-weight: 600; }
#page-orders .orders-table :-webkit-any(th, td) { padding: var(--ui-space-3); border-color: var(--ui-line); }
#page-orders .orders-table td { font-size: var(--ui-text-size); color: var(--ui-ink); }
#page-orders .orders-table th:nth-child(1) { width: 19%; }
#page-orders .orders-table th:nth-child(2) { width: 11%; }
#page-orders .orders-table th:nth-child(3) { width: 6%; }
#page-orders .orders-table th:nth-child(4) { width: 16%; }
#page-orders .orders-table th:nth-child(5) { width: 12%; }
#page-orders .orders-table th:nth-child(6) { width: 14%; }
#page-orders .orders-table th:nth-child(7) { width: 22%; }
#page-orders .orders-table tr:hover td { background: var(--ui-brand-soft); }
#page-orders .orders-table tr:focus-within td { background: var(--ui-brand-soft); }
#page-orders .orders-table :-webkit-any(.oid, .mono) { font-family: var(--ui-font); font-variant-numeric: tabular-nums; }
#page-orders .orders-table .tname { font-weight: 800; }
#page-orders .orders-table .amt { font: 800 var(--ui-price-size)/1.4 var(--ui-font); font-variant-numeric: tabular-nums; }
#page-orders .orders-table .member-id { font-size: var(--ui-text-size); margin-top: var(--ui-space-1); color: var(--ui-muted); }
#page-orders .orders-table .badge { display: inline-flex; align-items: center; height: auto; padding: var(--ui-space-1) var(--ui-space-2); margin-top: 2px; margin-bottom: 2px; border-radius: 999px; font-size: var(--ui-text-size); font-weight: 700; line-height: 1.5; font-variant-numeric: tabular-nums; }
#page-orders .badge.clear { background: var(--ui-sunken); color: var(--ui-text); }
#page-orders .badge.order { background: var(--ui-brand-soft); color: var(--ui-brand-press); }
#page-orders .badge.pay { background: #FFF5DE; color: #895800; }
#page-orders .badge.refund { background: #FFF0EE; color: var(--ui-danger); }
#page-orders .orders-action-group { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ui-space-2); }
#page-orders [data-cancel-oid] { color: var(--ui-danger); }
#page-orders .orders-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--ui-space-3); padding: var(--ui-space-3); border-top: 1px solid var(--ui-line); }
#page-orders .orders-empty { padding: var(--ui-space-6); text-align: center; color: var(--ui-muted); }

/* Order review remains a modal with its original focus/close behavior. */
body[data-current-page="orders"] #orderDetailDialog,
body[data-current-page="orders"] #cancellationDialog { font: var(--ui-text-size)/1.5 var(--ui-font); border-color: var(--ui-line); border-radius: var(--ui-radius-lg); color: var(--ui-ink); overflow-wrap: anywhere; }
body[data-current-page="orders"] #orderDetailDialog { width: min(640px, calc(100% - 24px)); margin: auto 12px auto auto; max-height: calc(100vh - 24px); }
body[data-current-page="orders"] #orderDetailDialog[open] { display: flex; flex-direction: column; }
body[data-current-page="orders"] #orderDetailDialog .modal-head,
body[data-current-page="orders"] #cancellationDialog .modal-head { flex-shrink: 0; padding: var(--ui-space-4); gap: var(--ui-space-3); background: var(--ui-brand-soft); }
body[data-current-page="orders"] #orderDetailDialog .modal-head h2,
body[data-current-page="orders"] #cancellationDialog .modal-head h2 { min-width: 0; font-size: var(--ui-title-size); }
body[data-current-page="orders"] #orderDetailDialog .btn,
body[data-current-page="orders"] #cancellationDialog .btn { min-height: var(--ui-touch); font: 600 var(--ui-text-size)/1.4 var(--ui-font); white-space: normal; overflow-wrap: anywhere; border-radius: var(--ui-radius-sm); padding: var(--ui-space-2) var(--ui-space-3); }
body[data-current-page="orders"] #cancellationDialog .btn.primary { height: var(--ui-action-height); min-height: var(--ui-action-height); }
body[data-current-page="orders"] #orderDetailDialog .order-detail-body { min-height: 0; max-height: none; overflow: auto; padding: var(--ui-space-4); }
body[data-current-page="orders"] #orderDetailDialog :-webkit-any(.product-edit-hint, .report-status, dt, small, label, textarea),
body[data-current-page="orders"] #cancellationDialog :-webkit-any(.product-edit-hint, .report-status, dt, small, label, textarea) { font-size: var(--ui-text-size); }
body[data-current-page="orders"] #orderDetailDialog .order-detail-identity { font-size: var(--ui-title-size); font-weight: 800; }
body[data-current-page="orders"] #orderDetailDialog .order-detail-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body[data-current-page="orders"] #orderDetailDialog .order-detail-table { border: 0; overflow: visible; }
body[data-current-page="orders"] #orderDetailDialog table { min-width: 0; table-layout: fixed; }
body[data-current-page="orders"] #orderDetailDialog :-webkit-any(th, td) { padding: var(--ui-space-2); font-size: var(--ui-text-size); white-space: normal; overflow-wrap: anywhere; }
body[data-current-page="orders"] #orderDetailDialog th { background: var(--ui-sunken); }
body[data-current-page="orders"] #orderDetailDialog .mono { font-family: var(--ui-font); font-weight: 700; font-variant-numeric: tabular-nums; }
body[data-current-page="orders"] #orderDetailDialog .order-detail-amounts { display: grid; grid-template-columns: minmax(0, 1fr); padding: var(--ui-space-3); background: var(--ui-sunken); border-radius: var(--ui-radius-sm); font-weight: 700; font-variant-numeric: tabular-nums; }
body[data-current-page="orders"] #orderDetailReconciliation,
body[data-current-page="orders"] #orderDetailPromotion,
body[data-current-page="orders"] #cancellationSummary { font-weight: 700; font-variant-numeric: tabular-nums; }
body[data-current-page="orders"] #orderDetailDialog .order-detail-amounts strong { font-size: var(--ui-price-size); color: var(--ui-brand-press); }
body[data-current-page="orders"] #orderDetailDialog .modal-foot { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); flex-shrink: 0; padding: var(--ui-space-3); gap: var(--ui-space-2); }
body[data-current-page="orders"] #orderDetailDialog #orderDetailReadTime { grid-column: 1 / -1; font-size: var(--ui-text-size); }
body[data-current-page="orders"] #orderDetailDialog [hidden] { display: none !important; }

@media (max-width: 1199px) {
  #page-orders .order-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: var(--ui-space-4); }
  #page-orders .orders-summary-note { margin-top: 0; }
  #page-orders .orders-kpi:nth-child(3) { border: 0; }
}
@media (max-width: 900px), (max-height: 600px) {
  html[data-current-page="orders"] { height: auto; min-height: 100%; overflow: visible; }
  body[data-current-page="orders"] { height: auto; min-height: 100vh; overflow: auto; }
  body[data-current-page="orders"] .app { height: auto; min-height: 100vh; }
  body[data-current-page="orders"] :-webkit-any(.main, .content) { overflow: visible; }
  body[data-current-page="orders"] .rail { align-self: start; position: sticky; top: 0; max-height: 100vh; }
  #page-orders.active { height: auto; overflow: visible; }
}
@media (max-width: 1100px) {
  #page-orders .orders-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  #page-orders .orders-table :-webkit-any(table, tbody) { display: block; }
  #page-orders .orders-table tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: var(--ui-space-3); gap: var(--ui-space-2) var(--ui-space-3); border-bottom: 1px solid var(--ui-line); }
  #page-orders .orders-table td { display: flex; flex-direction: column; gap: var(--ui-space-2); min-width: 0; padding: 0; border: 0; align-items: start; }
  #page-orders .orders-table td[data-label]::before { content: attr(data-label); font: 400 var(--ui-text-size)/1.5 var(--ui-font); color: var(--ui-muted); }
  #page-orders .orders-table .order-row-actions { grid-column: 1 / -1; border-top: 1px dashed var(--ui-line); padding-top: var(--ui-space-2); }
  #page-orders .orders-table .orders-empty { grid-column: 1 / -1; align-items: center; padding: var(--ui-space-6); }
}
@media (max-width: 600px) {
  body[data-current-page="orders"] .app { grid-template-columns: minmax(0, 1fr); }
  body[data-current-page="orders"] .rail { position: static; flex-direction: row; flex-wrap: wrap; padding: var(--ui-space-2); max-height: none; }
  body[data-current-page="orders"] .rail-nav { display: grid; grid-template-columns: repeat(auto-fit, minmax(56px, 1fr)); flex: 1 1 100%; overflow: visible; }
  body[data-current-page="orders"] .rail .brand { margin: 0; }
  body[data-current-page="orders"] .rail-footer { width: auto; margin: 0 0 0 auto; padding: 0; border: 0; }
  body[data-current-page="orders"] .topbar { padding: var(--ui-space-3); }
  body[data-current-page="orders"] .topbar-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
  body[data-current-page="orders"] .search { flex-basis: 100%; }
  #page-orders.active { padding: var(--ui-space-2); }
  #page-orders .orders-tools { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; margin: 0; }
  #page-orders .order-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #page-orders .order-summary:not(.has-orders-kpi) { display: block; padding: var(--ui-space-4); }
#page-orders .orders-kpi { padding-left: var(--ui-space-3); padding-right: var(--ui-space-3); }
  #page-orders .orders-kpi:nth-child(3) { border-right: 1px solid var(--ui-line); }
  #page-orders .orders-kpi:nth-child(even) { border: 0; }
  #page-orders .orders-date-field { flex: 1 1 100%; }
  #page-orders #orderFilters { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #page-orders .orders-action-group { width: 100%; }
  #page-orders .orders-action-group button { flex: 1 1 auto; }
  body[data-current-page="orders"] #orderDetailDialog .modal-foot { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body[data-current-page="orders"] #orderDetailDialog .order-detail-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  body[data-current-page="orders"] #orderDetailDialog .order-detail-table :-webkit-any(table, tbody) { display: block; }
  body[data-current-page="orders"] #orderDetailDialog .order-detail-table tr { display: grid; grid-template-columns: minmax(0, 1fr); padding-top: var(--ui-space-2); padding-bottom: var(--ui-space-2); border-bottom: 1px solid var(--ui-line); }
  body[data-current-page="orders"] #orderDetailDialog .order-detail-table td { display: block; padding: var(--ui-space-1) 0; border: 0; }
  body[data-current-page="orders"] #orderDetailDialog .order-detail-table td::before { font-weight: 400; color: var(--ui-muted); }
  body[data-current-page="orders"] #orderDetailItems td:nth-child(2)::before { content: "基础单价　"; }
  body[data-current-page="orders"] #orderDetailItems td:nth-child(3)::before { content: "数量　"; }
  body[data-current-page="orders"] #orderDetailPayments td:nth-child(1):not([colspan])::before { content: "付款时间（上海）　"; }
  body[data-current-page="orders"] #orderDetailPayments td:nth-child(2)::before { content: "方式　"; }
  body[data-current-page="orders"] #orderDetailPayments td:nth-child(3)::before { content: "金额　"; }
  body[data-current-page="orders"] #orderDetailPayments td:nth-child(4)::before { content: "收款员工　"; }
  body[data-current-page="orders"] #orderDetailPayments td:nth-child(5)::before { content: "记录编号　"; }
}

/* ==== 全软件主题规范 ==== */
/* These shared rules win over legacy page dimensions and colour variants. */
button, summary, [role="button"] { font-size: var(--ui-button-font) !important; }
button .label { font-size: inherit !important; }
.btn.ghost, .btn.ghost:hover { background: var(--ui-card); border-color: var(--ui-line-strong); }
td > button + button { margin-left: var(--ui-button-gap); }
:-webkit-any(.btn, .ui-button, .icon-btn, .filter-pill, .cat-btn, .chip, .pay-method, .rail-btn) {
  min-height: var(--ui-button-height) !important;
  height: var(--ui-button-height) !important;
  font-size: var(--ui-button-font) !important;
  line-height: 1.2 !important;
  flex-shrink: 0;
}
:-webkit-any(.btn, .ui-button) {
  background: var(--ui-card) !important;
  border: 1px solid var(--ui-line-strong) !important;
  color: var(--ui-text) !important;
  padding: 6px 12px;
  white-space: normal;
  overflow-wrap: anywhere;
}
:-webkit-any(.btn, .ui-button):-webkit-any(.primary, .hot) {
  background: var(--ui-brand) !important;
  border-color: var(--ui-brand) !important;
  color: white !important;
}
:-webkit-any(.btn, .ui-button):-webkit-any(.primary, .hot):-webkit-any(:hover, :active) {
  background: var(--ui-brand-press) !important;
  border-color: var(--ui-brand-press) !important;
}
:-webkit-any(.btn, .ui-button):-webkit-any(.primary, .hot, .lg), #orderSpecDone, [data-pay-oid] {
  height: var(--ui-action-height) !important;
  min-height: var(--ui-action-height) !important;
  min-block-size: var(--ui-action-height) !important;
  max-height: 72px;
  font-size: var(--ui-action-font) !important;
  font-weight: 800 !important;
}
:-webkit-any(.btn, .ui-button):-webkit-any(.secondary, .dark), #btnGoCheckout {
  background: var(--ui-card) !important;
  border-color: var(--ui-brand-press) !important;
  color: var(--ui-brand-press) !important;
}
:-webkit-any(.btn, .ui-button):-webkit-any(.danger, .danger-text), [data-cancel-oid], [data-del], [data-area-delete], [data-fin="refund"], [data-fin="disable"], .ci-rm, #orderDetailRefund, [data-staff-password] {
  background: var(--ui-danger-soft) !important;
  border-color: var(--ui-danger) !important;
  color: var(--ui-danger) !important;
  font-weight: 700;
}
:-webkit-any(.btn, .ui-button):-webkit-any(.danger, .danger-text):active, [data-cancel-oid]:active, [data-del]:active {
  background: var(--ui-danger-press) !important;
  color: white !important;
}
:-webkit-any(.btn, .ui-button).active { background: var(--ui-brand-soft) !important; border-color: var(--ui-brand-press) !important; color: var(--ui-brand-press) !important; }
button[hidden] { display: none !important; }
:-webkit-any(.rail-nav, .topbar-actions, .cart-actions, .modal-foot, .modal-actions, .orders-action-group, .line-ops-qty, .ci-qty) {
  gap: var(--ui-button-gap) !important;
}
.rail .rail-btn { padding: 4px; gap: 0; }
#page-order .cat-btn { border-radius: var(--ui-radius-sm); }
.rail .rail-btn .label { font-size: var(--ui-button-font); }
.rail .brand { font-size: 18px; font-weight: 800; }
#page-checkout .pay-method {
  height: var(--ui-button-height);
  min-height: var(--ui-button-height);
  flex-direction: row;
  gap: var(--ui-button-gap);
  padding: 6px 8px;
}
#page-checkout .pay-method svg { padding: 0; background: transparent; color: var(--ui-brand-press); }
#page-checkout .pay-method[data-pay="微信"] svg { background: transparent; color: var(--ui-ok); }
#page-checkout .pay-method[data-pay="现金"] svg { background: transparent; color: var(--ui-brand-press); }
#page-order .line-ops-qty { gap: var(--ui-button-gap); background: transparent; }
#page-order .line-ops .btn { border-color: var(--ui-line-strong); background: var(--ui-card); padding-top: 4px; padding-bottom: 4px; }
#page-order .cart-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: flex-end; }
#page-order .cart-actions .btn { flex: 0 1 40%; width: 40%; }
#page-checkout #btnConfirmPay { display: flex; width: 40%; margin-left: auto; }
#page-orders .orders-action-group { width: 100%; align-items: flex-end; }
#page-orders [data-pay-oid] { flex: 0 0 40%; width: 40%; margin-left: auto; }
:-webkit-any(.modal-foot, .modal-actions, .spec-footer, .staff-actions, .member-actions, .inventory-actions, .finance-tools, .eff-actions) {
  flex-wrap: wrap;
  gap: var(--ui-button-gap);
}
:-webkit-any(.btn, .ui-button):-webkit-any(.primary, .hot) { max-width: 40%; margin-left: auto; align-self: flex-end; }
#loginSubmit { width: 40%; }
#orderSpecDone { width: 40%; margin-left: auto; }
@media (max-width: 600px) {
  :-webkit-any(.btn, .ui-button):-webkit-any(.primary, .hot), #loginSubmit, #orderSpecDone {
    width: 100%;
    max-width: 100%;
    flex-basis: 100%;
    grid-column: 1 / -1;
  }
  #page-order .cart-actions .btn { width: 100%; flex-basis: 100%; }
  #page-checkout #btnConfirmPay { width: 100%; }
  #page-orders [data-pay-oid] { width: 100%; flex-basis: 100%; }
}

/* Manual table refresh stays modal until the request and rendering settle. */
body#pos-ui #tableRefreshDialog {
  margin: auto;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  outline: none;
  box-sizing: border-box;
  width: 400px;
  max-width: calc(100vw - 40px);
  padding: 32px 24px;
  border: 0;
  border-radius: 14px;
  background: #fff;
  color: #263547;
  box-shadow: 0 12px 48px rgba(24, 48, 72, .2);
  text-align: center;
}
#tableRefreshDialog::backdrop { background: rgba(18, 35, 53, .35); }
#tableRefreshDialog h2 { margin: 20px 0 12px; font-size: 22px; line-height: 1.4; }
#tableRefreshDialog p { margin: 0; color: #64748b; font-size: 16px; line-height: 1.6; }
#tableRefreshDialog .table-refresh-spinner {
  display: inline-block;
  width: 40px;
  height: 40px;
  border: 4px solid #d8efff;
  border-top-color: #2196f3;
  border-radius: 50%;
  animation: table-refresh-spin .8s linear infinite;
}
@keyframes table-refresh-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  #tableRefreshDialog .table-refresh-spinner { animation: none; }
}

/* Dedicated printer list and progressive add flow. */
#printerDialog { box-sizing:border-box; margin:auto; top:0;right:0;bottom:0;left:0; width:calc(100% - 48px);max-width:1080px;height:680px;max-height:calc(100% - 40px);padding:0;border:0;border-radius:12px;background:#fff;color:#263547;overflow:auto; }
#printerDialog::backdrop {background:rgba(18,35,53,.35)}
#printerDialog [hidden] {display:none!important}
#printerDialog .printer-header {display:flex;align-items:center;justify-content:space-between;padding:20px 28px;border-bottom:1px solid #e7edf3;background:#fff;}
#printerDialog h2 {font-size:24px;font-weight:600;margin:0}
#printerDialog h3 {font-size:22px;font-weight:600;margin:12px 0 28px;}
#printerDialog .printer-content {padding:28px;}
#printerDialog .printer-toolbar {display:flex;align-items:center;flex-wrap:wrap;gap:20px;}
#printerDialog .printer-local-ip {font-size:16px;color:#657487;margin:0;overflow-wrap:anywhere;}
#printerDialog .printer-local-ip span {font-variant-numeric:tabular-nums;color:#34465b;}
#printerDialog .btn {height:48px;min-width:96px;padding:0 20px;font-size:17px;}
#printerDialog .btn.primary {background:#2196f3!important;color:white!important;height:56px;min-width:152px;max-width:none;margin:0;}
#printerDialog .printer-table-wrap {margin-top:28px;overflow:auto;}
#printerDialog table {width:100%;border-collapse:collapse;text-align:left;white-space:nowrap;font-size:16px;}
#printerDialog th {background:#f5f8fb;color:#64748b;font-weight:500;padding:16px;}
#printerDialog td {padding:20px 16px;border-bottom:1px solid #edf1f5;}
#printerDialog .printer-status {margin:24px 0 12px;font-size:16px;line-height:1.6;color:#657487;}
#printerDialog .printer-steps {list-style:none;display:flex;gap:32px;margin:0 0 28px;padding:0 0 20px;border-bottom:1px solid #edf1f5;color:#8290a1;font-size:16px;}
#printerDialog .printer-steps .active {color:#1689e5;font-weight:600;}
#printerDialog .printer-type-choices {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;}
#printerDialog .printer-type-choices label {position:relative;cursor:pointer;}
#printerDialog .printer-type-choices input {position:absolute;opacity:0;top:0;left:0;width:100%;height:100%;min-width:48px;min-height:48px;cursor:pointer;}
#printerDialog .printer-type-card {display:flex;align-items:center;flex-direction:column;min-height:218px;padding:32px 12px;box-sizing:border-box;border:2px solid #e3eaf1;border-radius:10px;background:#fff;}
#printerDialog .printer-type-card svg {width:52px;height:52px;fill:none;stroke:#7690aa;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
#printerDialog .printer-type-card strong {font-size:22px;font-weight:600;margin:20px 0 8px;}
#printerDialog .printer-type-card small {font-size:15px;color:#7a899a;}
#printerDialog input:checked + .printer-type-card {border-color:#2196f3;background:#f0f9ff;}
#printerDialog input:focus + .printer-type-card {outline:3px solid #126bb1;outline-offset:3px;}
#printerDialog input:checked + .printer-type-card svg {stroke:#2196f3;}
#printerDialog .printer-brand-choices {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
#printerDialog .printer-brand {min-height:100px;border:2px solid #e3eaf1;border-radius:8px;background:white;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:20px;color:#263547;cursor:pointer;}
#printerDialog .printer-brand strong {font-size:22px;font-weight:600;}
#printerDialog .printer-brand span {font-size:15px;color:#7a899a;margin-top:8px;}
#printerDialog .printer-brand[aria-pressed="true"] {border-color:#2196f3;background:#f0f9ff;}
#printerDialog .printer-actions {display:flex;align-items:center;justify-content:flex-end;gap:16px;margin-top:36px;}
@media(max-width:600px) {
 #printerDialog {width:calc(100% - 16px);max-height:calc(100% - 16px);}
 #printerDialog .printer-header {padding:16px;}
 #printerDialog .printer-content {padding:20px 16px;}
 #printerDialog .printer-toolbar {gap:14px;}
 #printerDialog .printer-type-choices {grid-template-columns:1fr;gap:12px;}
 #printerDialog .printer-type-card {min-height:144px;padding:20px 12px;}
 #printerDialog .printer-type-card strong {margin-top:12px;}
 #printerDialog .printer-actions {flex-wrap:wrap;margin-top:24px;}
 #printerDialog .printer-actions .btn.primary {width:100%;}
 #printerDialog .printer-steps {gap:16px;font-size:15px;}
}

.printer-config-form{max-width:680px;margin:24px auto}.printer-config-form label{display:flex;flex-direction:column;gap:8px;margin-bottom:18px}.printer-config-form input,.printer-config-form select{min-height:48px;border:1px solid #dce3e9;border-radius:6px;padding:10px 14px;background:#fff;color:#273640;width:100%;box-sizing:border-box}.printer-form-pair{display:flex;gap:24px}.printer-form-pair>label{flex:1;min-width:0}#printerUSBFields{display:flex;align-items:center;gap:16px;margin-bottom:20px}.printer-row-actions .btn{margin:3px}.printer-target-dialog{margin:auto;top:0;right:0;bottom:0;left:0;width:480px;max-width:90vw;padding:28px;border:0;border-radius:10px}.printer-target-dialog::backdrop{background:rgba(18,35,49,.45)}#printerTargetChoices{display:flex;flex-direction:column;gap:12px;margin:20px 0;max-height:50vh;overflow:auto}

/* Deposit flow: two tabs, quiet receipt form, and master/detail ledger. */
body#pos-ui #financeBoard.deposit-board{width:calc(100vw - 48px);max-width:1320px;height:calc(100vh - 48px);max-height:none;padding:0;border-radius:8px;background:#fff;overflow:auto;color:#35424e;}
body#pos-ui #financeBoard.deposit-board .modal-head{background:#2196f3;color:#fff;padding:14px 22px;border-bottom:0;}
body#pos-ui #financeBoard.deposit-board .modal-head h2{font-size:22px;color:#fff;}
body#pos-ui #financeBoard.deposit-board .modal-head .btn{background:transparent;color:#fff;border-color:#ffffff70;min-height:48px;}
body#pos-ui #financeBoard.deposit-board .finance-body{padding:0;background:#fff;}
body#pos-ui #financeBoard.deposit-board .finance-tabs{display:flex;gap:8px;padding:0 24px;background:#2196f3;border:0;min-height:54px;align-items:stretch;}
body#pos-ui #financeBoard.deposit-board .finance-tabs .btn{background:transparent;border:0;border-bottom:3px solid transparent;border-radius:0;color:#e6f2ff;min-height:52px;padding:0 22px;font-size:18px;flex:0 0 auto;}
body#pos-ui #financeBoard.deposit-board .finance-tabs .btn[aria-pressed=true]{color:#fff;border-bottom-color:#fff;font-weight:600;}
body#pos-ui #financeBoard.deposit-board #financeReload{margin-left:auto;}
body#pos-ui #financeBoard.deposit-board #financeStatus{margin:8px 24px;font-size:14px;font-weight:400;color:#77828c;}
body#pos-ui #financeBoard.deposit-board #financeStatus:empty{display:none;}
body#pos-ui #financeBoard.deposit-board #financePending:empty{display:none;}
body#pos-ui #financeBoard.deposit-board #financePending{margin:12px 24px;}
body#pos-ui #financeBoard.deposit-board #financeForm{margin:16px auto;max-width:840px;width:calc(100% - 48px);background:#fff;border:1px solid #dce2e7;border-radius:8px;box-sizing:border-box;}
body#pos-ui #financeBoard.deposit-board #financeFields{display:flex;flex-direction:column;gap:0;border:0;padding:0 24px;}
body#pos-ui #financeBoard.deposit-board #financeAction{font-size:18px;padding:18px 0 4px;font-weight:500;}
body#pos-ui #financeBoard.deposit-board.receive-form #financeAction{display:none;}
body#pos-ui #financeBoard.deposit-board #financeFields>label,body#pos-ui #financeBoard.deposit-board .finance-form-row{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0;min-height:64px;border-bottom:1px solid #edf0f3;font-size:18px;font-weight:400;}
body#pos-ui #financeBoard.deposit-board #financeFields>label>input,body#pos-ui #financeBoard.deposit-board #financeFields>label>select{border:0;border-radius:0;background:transparent;text-align:right;font-size:18px;font-weight:400;max-width:65%;min-height:48px;padding:12px 0;}
body#pos-ui #financeBoard.deposit-board input::placeholder{color:#a6adb4;}
body#pos-ui #financeBoard.deposit-board input:focus{outline:2px solid #218cf2;outline-offset:3px;}
body#pos-ui #financeBoard.deposit-board .finance-phone-input{display:flex;align-items:center;gap:12px;max-width:65%;}
body#pos-ui #financeBoard.deposit-board #financeDialCode{padding-right:12px;border-right:1px solid #dce2e7;white-space:nowrap;}
body#pos-ui #financeBoard.deposit-board #financePhone{border:0;background:transparent;text-align:right;width:220px;max-width:100%;min-width:48px;font-size:18px;}
body#pos-ui #financeBoard.deposit-board #financePhoneRow{order:1;}body#pos-ui #financeBoard.deposit-board #financeNameRow{order:2;}body#pos-ui #financeBoard.deposit-board #financePaperRow{order:3;}body#pos-ui #financeBoard.deposit-board #financeKindRow{order:4;}body#pos-ui #financeBoard.deposit-board #financeNoteRow{order:5;}body#pos-ui #financeBoard.deposit-board #financeAmountRow{order:6;}
body#pos-ui #financeBoard.deposit-board #financeReceivePayment{order:8;}body#pos-ui #financeBoard.deposit-board #financeFormHint{order:9;font-size:14px;font-weight:400;color:#7c8993;margin:8px 0;}body#pos-ui #financeBoard.deposit-board .finance-form-actions{order:10;padding:14px 0;margin:0;}
body#pos-ui #financeBoard.deposit-board #financeTableRow{order:7;}
body#pos-ui #financeBoard.deposit-board #financeSubmit{min-width:160px;width:auto;max-width:none;font-size:17px!important;min-height:48px!important;font-weight:500;}
body#pos-ui #financeBoard.deposit-board .finance-due{font-size:18px;margin:22px 0;}.finance-due strong{font-weight:500;}
body#pos-ui #financeBoard.deposit-board .finance-payments{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;background:#f3f6f8;padding:16px 8px 12px;border-radius:4px;}
body#pos-ui #financeBoard.deposit-board .finance-payments button{display:flex;flex-direction:column;align-items:center;gap:8px;border:1px solid transparent;background:transparent;border-radius:6px;padding:5px 0;font-size:17px;color:#35424e;min-width:48px;cursor:pointer;}
body#pos-ui #financeBoard.deposit-board .finance-payments button[aria-pressed=true]{border-color:#4aa6ef;background:#e6f3ff;}
body#pos-ui #financeBoard.deposit-board .finance-payments button:disabled{opacity:.5;cursor:not-allowed;}
body#pos-ui #financeBoard.deposit-board .finance-payments small{font-size:12px;}
body#pos-ui #financeBoard.deposit-board .finance-pay-icon{display:flex;align-items:center;justify-content:center;width:68px;height:68px;border-radius:13px;background:#f24d3e;}
body#pos-ui #financeBoard.deposit-board .finance-pay-icon.scan{background:#2196f3;}body#pos-ui #financeBoard.deposit-board .finance-pay-icon.personal{background:#00c6a1;}
body#pos-ui #financeBoard.deposit-board .finance-pay-icon img{width:40px;height:40px;filter:brightness(0) invert(1);}
body#pos-ui #financeBoard.deposit-board .finance-list-tools{padding:14px 20px;display:flex;gap:10px;flex-wrap:wrap;border-bottom:1px solid #e9eef2;align-items:center;}
body#pos-ui #financeBoard.deposit-board .finance-list-tools label{font-size:13px;display:flex;align-items:center;gap:6px;}
body#pos-ui #financeBoard.deposit-board .finance-list-tools input,body#pos-ui #financeBoard.deposit-board .finance-list-tools select{font-size:14px;height:48px;min-height:48px;border:1px solid #e1e6ea;background:#fff;border-radius:4px;padding:8px;box-sizing:border-box;}
body#pos-ui #financeBoard.deposit-board #financeSearchLabel{flex:1 1 250px;}body#pos-ui #financeBoard.deposit-board #financeSearch{width:100%;}
body#pos-ui #financeBoard.deposit-board #financeDetailLayout{display:grid;grid-template-columns:minmax(0,1fr) 330px;min-height:420px;}
body#pos-ui #financeBoard.deposit-board .finance-detail-list{min-width:48px;overflow:auto;padding:12px;}
body#pos-ui #financeBoard.deposit-board #financeRows{display:block;margin:0;}
body#pos-ui #financeBoard.deposit-board #financeRows table{width:100%;border-collapse:collapse;font-size:14px;text-align:left;}
body#pos-ui #financeBoard.deposit-board #financeRows th{background:#f3f6f8;font-weight:500;padding:14px 10px;white-space:nowrap;}
body#pos-ui #financeBoard.deposit-board #financeRows td{padding:15px 10px;border-bottom:1px solid #edf0f3;white-space:nowrap;}
body#pos-ui #financeBoard.deposit-board #financeRows tr[aria-selected=true]{background:#dceeff;}
body#pos-ui #financeBoard.deposit-board #financeRows tbody tr{cursor:pointer;}
body#pos-ui #financeBoard.deposit-board #financeDetail{border-left:1px solid #e5eaf0;padding:14px 16px;display:flex;flex-direction:column;min-width:48px;}
body#pos-ui #financeBoard.deposit-board #financeDetail h3{font-size:17px;font-weight:600;margin:4px 0 14px;padding-bottom:12px;border-bottom:1px solid #edf0f3;}
body#pos-ui #financeBoard.deposit-board #financeDetail dl{display:grid;grid-template-columns:95px minmax(0,1fr);gap:13px 8px;font-size:14px;margin:0 0 24px;}
body#pos-ui #financeBoard.deposit-board #financeDetail dt{color:#87939c;}body#pos-ui #financeBoard.deposit-board #financeDetail dd{margin:0;text-align:right;overflow-wrap:anywhere;}
body#pos-ui #financeBoard.deposit-board .finance-detail-actions{margin-top:auto;display:flex;gap:12px;padding-top:20px;}
body#pos-ui #financeBoard.deposit-board .finance-detail-actions .btn{flex:1;min-width:48px;min-height:48px;font-size:16px;}
body#pos-ui #financeBoard.deposit-board #financeListStatus{margin:16px 24px;}
body#pos-ui #financeBoard.deposit-board [hidden]{display:none!important;}
@media(max-width:850px){body#pos-ui #financeBoard.deposit-board{width:100vw;height:100vh;border-radius:0;}body#pos-ui #financeBoard.deposit-board #financeDetailLayout{grid-template-columns:minmax(0,1fr) 280px;}body#pos-ui #financeBoard.deposit-board #financeForm{width:calc(100% - 32px);margin:20px auto;}body#pos-ui #financeBoard.deposit-board #financeFields{padding:0 20px;}}
@media(max-width:600px){body#pos-ui #financeBoard.deposit-board #financeDetailLayout{grid-template-columns:1fr;}body#pos-ui #financeBoard.deposit-board #financeDetail{border:0;border-top:1px solid #e5eaf0;}body#pos-ui #financeBoard.deposit-board #financeFields>label{font-size:15px;min-height:68px;}body#pos-ui #financeBoard.deposit-board .finance-payments button{font-size:13px;}body#pos-ui #financeBoard.deposit-board .finance-pay-icon{width:48px;height:48px;}body#pos-ui #financeBoard.deposit-board .finance-pay-icon img{width:28px;height:28px;}body#pos-ui #financeBoard.deposit-board .finance-tabs{padding:0 8px;}body#pos-ui #financeBoard.deposit-board .finance-tabs .btn{padding:0 12px;font-size:16px;}}

body#pos-ui #financeBoard.deposit-board .finance-kind-choices{display:flex;gap:14px;}body#pos-ui #financeBoard.deposit-board .finance-kind-choices button{min-width:90px;min-height:48px;background:#fff;border:1px solid #d4dce2;border-radius:5px;color:#677681;font:inherit;font-size:16px;}body#pos-ui #financeBoard.deposit-board .finance-kind-choices button[aria-pressed=true]{border-color:#2196f3;color:#2196f3;background:#f6fbff;}

body#pos-ui #financeBoard.deposit-board .finance-tabs{position:sticky;top:0;z-index:2;}
body#pos-ui #financeBoard.deposit-board .finance-list-tools .primary{width:auto;min-width:80px;font-size:16px!important;min-height:48px!important;}
body#pos-ui #financeBoard.deposit-board .finance-list-tools{margin:0;}

body#pos-ui #financeBoard.deposit-board .finance-tabs .btn{background:transparent!important;color:#e6f2ff!important;border:0!important;border-bottom:3px solid transparent!important;font-size:18px!important;}
body#pos-ui #financeBoard.deposit-board .finance-tabs .btn[aria-pressed=true]{color:#fff!important;border-bottom-color:#fff!important;background:#ffffff12!important;}
body#pos-ui #financeBoard.deposit-board .modal-head .btn{background:transparent!important;color:white!important;border-color:#ffffff70!important;}
body#pos-ui #financeBoard.deposit-board .finance-kind-choices button{min-width:90px;font-size:16px!important;}
body#pos-ui #financeBoard.deposit-board .finance-form-actions{position:sticky;bottom:0;background:#fff;border-top:1px solid #edf0f3;z-index:1;}
body#pos-ui #financeBoard.deposit-board .finance-payments button{font-size:17px!important;}
body#pos-ui #financeBoard.deposit-board #financeSubmit{font-weight:500!important;}

body#pos-ui #financeBoard.deposit-board .finance-list-tools label{flex:0 0 auto;white-space:nowrap;}
body#pos-ui #financeBoard.deposit-board #financeSearchLabel{flex:1 1 260px;}
body#pos-ui #financeBoard.deposit-board #financeDateLabel input{width:145px;}
body#pos-ui #financeBoard.deposit-board #financeFilter{width:120px;}
body#pos-ui #financeBoard.deposit-board #financeDetail dl{gap:8px;line-height:20px;margin-bottom:16px;}
body#pos-ui #financeBoard.deposit-board #financeDetail h3{margin:4px 0 10px;padding-bottom:8px;}
body#pos-ui #financeBoard.deposit-board .finance-detail-actions{position:sticky;bottom:0;background:white;}

body#pos-ui #financeBoard.deposit-board .finance-list-tools{flex-direction:row;}
body#pos-ui #financeBoard.deposit-board #financeRefundModeRow{order:1;}
body#pos-ui #financeBoard.deposit-board #financeRefundMethodRow{order:2;}
#depositUsageHint{max-width:540px;width:calc(100vw - 40px);}.deposit-usage-content{padding:20px 24px;font-size:18px;}.deposit-usage-warning{color:#c62828;font-size:14px;line-height:1.6;}
.checkout-deposit-search{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;}.checkout-deposit-search label{display:flex;flex-direction:column;gap:8px;flex:1;}.checkout-deposit-search input{width:100%;min-height:48px;}.checkout-deposit-choice{display:flex;align-items:center;gap:10px;min-height:56px;}.checkout-deposit-choice input{width:48px;height:48px;}

#depositRefundDialog{position:fixed;top:0;right:0;bottom:0;left:0;margin:auto;width:min(600px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:auto;background:white;color:#35424e;padding:20px 24px;border:1px solid #e3e8ed;border-radius:6px;box-shadow:0 12px 45px #0003;}
#depositRefundDialog::backdrop{background:#0007;}#depositRefundDialog>header{display:flex;align-items:center;justify-content:space-between;gap:16px;}#depositRefundTitle{margin:0;font-size:20px;font-weight:600;}#depositRefundSummary{font-size:14px;line-height:1.8;margin:12px 0;}
#depositRefundDialog #financeForm{margin:0;background:white;border:0;}#depositRefundDialog #financeFields{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:0;}#depositRefundDialog #financeAction{display:none;}
#depositRefundDialog .deposit-refund-row,#depositRefundDialog .finance-form-row{min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #edf0f3;font-size:15px;}
#depositRefundDialog #financeRefundModeRow{order:1;}#depositRefundDialog #financeAmountRow{order:2;}#depositRefundDialog #financeRefundMethodRow{order:3;}#depositRefundDialog #financeNoteRow{order:4;}#depositRefundDialog #financeFormHint{order:5;font-size:13px;color:#7c8993;line-height:1.5;margin:10px 0;}
#depositRefundDialog .deposit-refund-options{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;max-width:78%;padding:8px 0;}
#depositRefundDialog .deposit-refund-options button{min-height:48px;min-width:80px;padding:8px 12px;border:1px solid #dce2e7;border-radius:4px;background:white;color:#61717d;font-size:14px!important;}
#depositRefundDialog .deposit-refund-options button[aria-pressed=true]{color:#168be1;border-color:#168be1;background:#edf7ff;}
#depositRefundDialog input{border:0;min-height:48px;width:60%;text-align:right;background:white;font-size:15px;}
#depositRefundDialog .finance-form-actions{order:6;display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:10px;}#depositRefundDialog #financeCancel{display:none;}#depositRefundDialog #financeRefundTotal{font-size:16px;font-weight:600;}#depositRefundDialog #financeSubmit{background:#2196f3!important;color:white!important;border-color:#2196f3!important;font-size:17px!important;min-width:130px;}
#depositRefundDialog [hidden]{display:none!important;}#depositRefundError{color:#c62828;font-size:14px;}#depositRefundError:empty{display:none;}

/* A5 · reports */
/* Preserve access to nested scroll areas instead of clipping their overflow. */
#page-reports { overflow: auto; }
#page-reports .report-nav { width: clamp(148px, 18vmin, 196px); }
#page-reports .report-nav-btn { min-height: var(--ui-button-height); font-size: var(--ui-button-font); border: 1px solid transparent; }
#page-reports .report-nav-btn.active { background: var(--ui-brand-soft); color: var(--ui-brand-press); border-color: var(--ui-brand-press); font-weight: 800; }
#page-reports .report-main { padding: clamp(12px, 2vmin, 24px); gap: 20px; }
#page-reports .report-range { padding: 16px; background: var(--ui-card); border: 1px solid var(--border); border-radius: var(--r); align-items: flex-end; gap: 12px; }
#page-reports .report-date-field { display: grid; gap: 8px; flex: 1 1 180px; min-width: 0; }
#page-reports .report-date-field label { font-weight: 700; }
#page-reports .report-range input { width: 100%; min-width: var(--ui-touch); box-sizing: border-box; min-height: var(--ui-button-height); font-size: var(--ui-button-font); }
#page-reports .report-range-actions { display: flex; align-items: flex-end; justify-content: flex-end; gap: var(--ui-button-gap); flex: 1 1 260px; }
#page-reports #reportRangeQuery { width: 40%; }
#page-reports .report-range .report-note { flex-basis: 100%; }
#page-reports .report-kpis { grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); }
#page-reports .k-value { font-size: clamp(24px, 3.4vmin, 36px); overflow-wrap: anywhere; }
#page-reports .k-value ,
#page-reports .method-amount ,
#page-reports .report-methods-inline b ,
#page-reports td.mono  { font-variant-numeric: tabular-nums; font-weight: 700; }
#page-reports .report-range-summary { padding-top: 20px; border-top: 1px solid var(--border); }
#page-reports .orders-table { flex: none; overflow: auto; border: 1px solid var(--border); border-radius: var(--r); background: var(--ui-card); }
#page-reports .orders-table table { min-width: 760px; }
#page-reports .orders-table :-webkit-any(th, td) { padding: 14px 16px; white-space: nowrap; }
#page-reports .orders-table td.has-ui-state { white-space: normal; }
#page-reports [data-promo-order] { width: max-content; white-space: nowrap; overflow-wrap: normal; }
#page-reports .report-status { margin: 0; }
#page-reports .hour-chart { overflow-x: auto; }
#page-reports .hour-column { min-width: 24px; }
@media (max-width: 900px) {
  #page-reports { flex-direction: column; }
  #page-reports .report-nav { width: 100%; box-sizing: border-box; flex-direction: row; overflow-x: auto; border-right: 0; border-bottom: 1px solid var(--border); }
  #page-reports .report-nav-btn { flex: 0 0 auto; white-space: nowrap; }
  #page-reports .report-main { min-height: 0; }
}
@media (max-width: 600px) {
  #page-reports .report-range-actions { flex-basis: 100%; flex-wrap: wrap; }
  #page-reports #reportRangeQuery { width: 100%; }
  #page-reports .report-date-field { flex-basis: 100%; }
  #page-reports .report-head { flex-wrap: wrap; gap: var(--ui-button-gap); }
  #page-reports .report-method { grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
  #page-reports .method-count { grid-row: 2; grid-column: 1 / -1; }
}

/* A6 Settings: functional groups, touch targets and manager-only presentation. */
#page-settings { max-width: 1440px; margin-left: auto; margin-right: auto; width: 100%; overflow: auto; }
#page-settings [hidden] { display: none !important; }
#page-settings .page-head { align-items: center; gap: 16px; margin-bottom: 16px; }
#page-settings .settings-eyebrow { color: var(--ui-brand-press); font-size: var(--ui-text-size); font-weight: 700; margin: 0 0 6px; }
#page-settings .settings-intro { color: var(--text-dim); font-size: var(--ui-text-size); margin: 8px 0 0; line-height: 1.6; }
.settings-access { padding: 12px 16px; border: 1px solid var(--border); border-left: 4px solid var(--ui-brand); border-radius: 8px; background: var(--ui-brand-soft); font-size: var(--ui-text-size); line-height: 1.6; margin: 0 0 24px; }
#page-settings .settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; align-items: start; }
.settings-group-title { grid-column: 1 / -1; display: flex; align-items: center; gap: 12px; padding-top: 8px; }
.settings-group-title > span { display: grid; place-items: center; flex: 0 0 44px; height: 44px; border-radius: 12px; background: var(--ui-brand-soft); color: var(--ui-brand-press); font-size: 18px; font-weight: 800; font-variant-numeric: tabular-nums; }
.settings-group-title h2 { margin: 0; font-size: 20px; color: var(--heading); }
.settings-group-title p { margin: 4px 0 0; font-size: var(--ui-text-size); color: var(--text-dim); line-height: 1.6; }
#page-settings .set-card { min-width: 0; padding: 24px; gap: 16px; border-radius: 16px; box-shadow: 0 3px 14px #00000005; }
#page-settings .set-card h3 { font-size: 19px; font-weight: 750; line-height: 1.5; margin: 0; }
#page-settings .set-card h3 svg { width: 24px; height: 24px; color: var(--ui-brand-press); }
#page-settings .set-field { display: grid; grid-template-columns: 100px minmax(0, 1fr); padding-bottom: 12px; border-bottom: 1px solid var(--border); gap: 12px; }
#page-settings .set-field .val { font-weight: 600; overflow-wrap: anywhere; }
#page-settings :-webkit-any(p, label, .report-note, .report-status, small, td, th, .val) { font-size: var(--ui-text-size); line-height: 1.65; }
#page-settings :-webkit-any(p, .val, dd) { overflow-wrap: anywhere; }
#page-settings .report-note { margin: 0; }
#page-settings :-webkit-any(.settings-device-actions, .staff-actions, .staff-head, .report-range) { display: flex; flex-wrap: wrap; gap: var(--ui-button-gap); }
#page-settings .settings-device-actions { flex-direction: column; align-items: stretch; }
#page-settings .staff-head { align-items: flex-start; justify-content: space-between; gap: 16px; }
#page-settings .staff-head > div:first-child { flex: 1 1 340px; }
#page-settings .staff-head > .staff-actions { flex: 1 1 350px; justify-content: flex-end; align-self: flex-end; }
#page-settings .staff-actions { align-items: center; justify-content: flex-end; width: 100%; }
#page-settings .checkout-settings-card { grid-column: 1 / -1; }
#page-settings #checkoutSettingsForm { display: grid; gap: 12px; }
#page-settings :-webkit-any(input, select) { width: 100%; min-width: var(--ui-touch); min-height: var(--ui-touch); padding: 10px 12px; font-size: var(--ui-text-size); border: 1px solid var(--border); border-radius: 8px; background: var(--bg-elev); color: var(--heading); }
#page-settings .btn { min-width: var(--ui-touch); min-height: var(--ui-button-height); font-size: var(--ui-button-font); white-space: normal; line-height: 1.25; }
#page-settings .btn.primary { min-height: var(--ui-action-height); font-size: var(--ui-action-font); font-weight: 800; }
#page-settings .staff-table-wrap { overflow-x: auto; max-width: 100%; }
#page-settings .data-table { min-width: 700px; }
#page-settings .staff-table-wrap .staff-actions { justify-content: flex-start; min-width: 250px; }
#page-settings .report-range { align-items: flex-end; }
#page-settings .report-range label { flex: 1 1 240px; display: grid; gap: 8px; min-width: 0; }
#page-settings .report-range .primary { flex: 0 1 35%; }
#page-settings .area-list { display: flex; flex-wrap: wrap; gap: 12px; }
#page-settings .area-chip { display: flex; flex-wrap: wrap; gap: var(--ui-button-gap); align-items: center; padding: 12px; border-radius: 10px; }
#page-settings .channel-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
#page-settings .channel-list > div { display: flex; flex-direction: column; gap: 12px; padding: 16px; border: 1px solid var(--border); border-radius: 10px; background: var(--bg); }
#page-settings summary { min-height: var(--ui-touch); padding: 12px; font-size: var(--ui-text-size); cursor: pointer; line-height: 1.6; }
#page-settings .channel-guide { border: 1px solid var(--border); border-radius: 10px; }
#page-settings .channel-guide p { padding: 0 12px 12px; }
#page-settings .settings-money { font-weight: 800; font-variant-numeric: tabular-nums; }
#page-settings .funds-audit-rows summary { display: flex; flex-wrap: wrap; gap: 8px 16px; }
#page-settings .funds-audit-rows small { flex-basis: 100%; }
#page-settings .funds-audit-rows dd { min-width: 0; }
#page-settings :-webkit-any(.ui-state, .staff-empty) { font-size: var(--ui-text-size); }
@media (max-width: 900px) {
  #page-settings .settings-grid { grid-template-columns: minmax(0, 1fr); }
  #page-settings .channel-list { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
  #page-settings .set-card { padding: 16px; border-radius: 12px; }
  #page-settings .settings-grid { gap: 16px; }
  #page-settings .page-head { flex-wrap: wrap; }
  #page-settings .set-field { grid-template-columns: 80px minmax(0, 1fr); }
  #page-settings .staff-head > div { flex-basis: 100%; }
  #page-settings .staff-head > .staff-actions { flex-basis: 100%; }
  #page-settings .staff-actions > .btn { flex-grow: 1; }
  #page-settings .report-range .primary { flex-basis: 100%; }
  #page-settings .channel-list > div { padding: 12px; }
}

/* Electronic scale discovery and live reading. */
.hw-discovery {display:grid;gap:10px;padding:14px;background:#f7faff;border:1px solid #e2eaf4;border-radius:12px}
.hw-discovery label {font-weight:600;color:var(--heading)}
.hw-discovery select {width:100%;min-height:48px}
.hw-discovery #hwRemembered {font-size:13px;line-height:1.5}
.hw-manual-fields {display:grid;gap:12px;padding-top:14px}
#hwManual {padding-top:14px;border-top:1px solid var(--border)}
#hwOriginal {display:block;margin-top:8px;font-size:14px;color:#5a718b}
.hw-weight {min-height:116px;border-radius:14px;padding:20px}
.hw-actions #hwConnect {flex:1;min-height:48px}
.hw-dialog .hw-section select {min-width:48px;max-width:100%}
body#pos-ui .hw-dialog[open] {display:flex;flex-direction:column;max-height:calc(100vh - 32px);overflow:hidden}
body#pos-ui .hw-dialog>.modal-head {flex-shrink:0}
body#pos-ui .hw-dialog>.hw-body {flex:1;min-height:0;max-height:none;overflow:auto}

/* ==== 页面：会员页 ==== */
body[data-current-page="members"] .app { font-family: var(--ui-font); background: var(--ui-bg); }
body[data-current-page="members"] .main { background: var(--ui-bg); }
body[data-current-page="members"] .rail { background: var(--ui-rail); border: 0; }
body[data-current-page="members"] .brand { background: var(--ui-brand-press); color: white; border-radius: var(--ui-radius); }
body[data-current-page="members"] .rail-btn { color: var(--ui-rail-ink); }
body[data-current-page="members"] .rail-btn.active { background: var(--ui-brand-soft); color: var(--ui-brand-press); }
body[data-current-page="members"] .rail-meta { color: var(--ui-rail-ink); font-size: var(--ui-text-size); }
#page-members { font: var(--ui-text-size)/1.5 var(--ui-font); color: var(--ui-text); background: var(--ui-bg); }
#page-members.active { display: flex; padding: clamp(12px, 2vmin, 24px); gap: 16px; overflow: auto; }
#page-members > *, #page-members .member-panel > * { min-width: 0; flex-shrink: 0; }
#page-members .member-panel { flex: none; gap: 16px; }
#page-members .member-page-head { margin: 0; align-items: flex-end; gap: 16px; }
#page-members .member-heading { flex: 1 1 220px; }
#page-members .member-eyebrow { color: var(--ui-brand-press); font-size: var(--ui-text-size); font-weight: 700; }
#page-members h1 { font-size: clamp(24px, 3vmin, 32px); color: var(--ui-ink); font-weight: 800; margin: 4px 0; }
#page-members .member-heading p { margin: 0; color: var(--ui-muted); }
#page-members .member-actions { justify-content: flex-end; align-items: flex-end; gap: var(--ui-button-gap); flex: 1 1 540px; }
#page-members .btn { border-radius: var(--ui-radius-sm); min-width: var(--ui-touch); min-height: var(--ui-button-height); font-size: var(--ui-button-font); }
#page-members #btnAddMember { min-height: var(--ui-action-height); font-size: var(--ui-action-font); }
#page-members :-webkit-any(button, input):focus { outline: 2px solid var(--ui-brand-press); outline-offset: 2px; }
#page-members .member-tabs { gap: var(--ui-button-gap); border-bottom: 1px solid var(--ui-line-strong); padding-bottom: 12px; }
#page-members .member-tabs .filter-pill { border: 1px solid var(--ui-line-strong); border-radius: var(--ui-radius-sm); padding-left: 18px; padding-right: 18px; background: var(--ui-card); color: var(--ui-text); }
#page-members .member-tabs .filter-pill.active { color: var(--ui-brand-press); border-color: var(--ui-brand-press); background: var(--ui-brand-soft); font-weight: 800; }
#page-members .member-overview { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
#page-members .kpi { padding: 18px; border: 1px solid var(--ui-line); border-radius: var(--ui-radius-lg); background: var(--ui-card); box-shadow: var(--ui-shadow); }
#page-members .kpi:nth-child(2) { background: var(--ui-brand-soft); border-color: var(--ui-brand-soft); }
#page-members .k-label, #page-members .k-sub { font-size: var(--ui-text-size); color: var(--ui-muted); }
#page-members .k-value { font-size: clamp(24px, 3vmin, 36px); font-weight: 800; line-height: 1.3; margin-top: 8px; margin-bottom: 8px; color: var(--ui-ink); overflow-wrap: anywhere; }
#page-members .kpi:nth-child(2) .k-value { color: var(--ui-brand-press); }
#page-members .k-value small { font-size: 18px; }
#page-members .report-status { margin: 0; font-size: var(--ui-text-size); overflow-wrap: anywhere; }
#page-members .member-directory { background: var(--ui-card); border: 1px solid var(--ui-line); border-radius: var(--ui-radius-lg); overflow: hidden; box-shadow: var(--ui-shadow); }
#page-members .member-directory-head { display: flex; gap: 12px; flex-wrap: wrap; align-items: baseline; padding: 18px 18px 0; }
#page-members h2 { margin: 0; color: var(--ui-ink); font-size: 20px; font-weight: 800; }
#page-members .member-directory-head span { color: var(--ui-muted); }
#page-members .member-search { padding: 16px 18px; margin: 0; gap: 12px; }
#page-members .member-search label { font-weight: 700; }
#page-members .member-search input { min-width: var(--ui-touch); width: 100%; min-height: var(--ui-button-height); border: 1px solid var(--ui-line-strong); border-radius: var(--ui-radius-sm); background: var(--ui-sunken); font-size: 16px; }
#page-members #memberResultCount { color: var(--ui-muted); font-size: var(--ui-text-size); }
#page-members .member-list-table { border: 0; border-radius: 0; min-height: 0; overflow: visible; }
#page-members .member-list-table table { width: 100%; table-layout: auto; }
#page-members .member-list-table :-webkit-any(td.ui-money, .member-points, .member-last) { white-space: nowrap; overflow-wrap: normal; }
#page-members .member-list-table :-webkit-any(th, td) { font-size: var(--ui-text-size); padding: 16px 12px; white-space: normal; overflow-wrap: anywhere; border-bottom: 1px solid var(--ui-line); vertical-align: middle; }
#page-members .member-list-table th { background: var(--ui-sunken); color: var(--ui-muted); font-weight: 600; }
#page-members .member-list-table th:nth-child(1) { width: 13%; }
#page-members .member-list-table th:nth-child(2) { width: 15%; }
#page-members .member-list-table th:nth-child(3) { width: 7%; }
#page-members .member-list-table th:nth-child(4) { width: 12%; }
#page-members .member-list-table th:nth-child(9) { width: 19%; }
#page-members .member-list-table tr:last-child td { border-bottom: 0; }
#page-members .member-account-row:hover, #page-members .member-account-row:focus-within { background: var(--ui-brand-soft); }
#page-members .member-name { color: var(--ui-ink); font-weight: 800; }
#page-members .member-id { display: block; font-size: var(--ui-text-size); color: var(--ui-muted); font-weight: 400; margin-top: 8px; }
#page-members .member-level { display: inline-block; color: var(--ui-brand-press); background: var(--ui-brand-soft); border-radius: 6px; padding: 4px 8px; font-weight: 700; }
#page-members .member-balance { color: var(--ui-brand-press); font-weight: 800; }
#page-members .member-phone .btn { display: block; margin-top: 8px; }
#page-members .member-row-buttons { display: flex; gap: var(--ui-button-gap); flex-wrap: wrap; }
#page-members .member-row-buttons .btn { margin: 0; flex: 1 1 48px; padding-left: 8px; padding-right: 8px; }
#page-members #fundsReviewButton { color: var(--ui-danger) !important; border-color: var(--ui-danger) !important; background: var(--ui-danger-soft) !important; }
#page-members #balanceReconcileCard { padding: 16px 18px; margin: 0; border: 1px solid var(--ui-line); border-radius: var(--ui-radius-lg); background: var(--ui-card); }
#page-members #balanceReconcileCard .staff-head { display: flex; flex-wrap: wrap; gap: 12px; }
#page-members #memberPanelTx { padding: 16px; border-radius: var(--ui-radius-lg); background: var(--ui-card); }
#page-members #memberTxForm { padding: 0; }
#page-members #memberTxForm input { flex-basis: 150px; }
#page-members .member-list-table .ui-state { min-height: 120px; }
#page-members .report-status .ui-state { justify-content: flex-start; padding: 0; }
#page-members .member-state-detail { display: block; margin-top: 8px; color: var(--ui-muted); }
@media (max-width: 1200px) {
  #page-members .member-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #page-members .member-list-table thead { display: none; }
  #page-members .member-list-table :-webkit-any(table, tbody) { display: block; }
  #page-members .member-list-table tbody { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; padding: 16px; }
  #page-members .member-list-table tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 16px; border: 1px solid var(--ui-line); border-radius: var(--ui-radius); }
  #page-members .member-list-table td { display: block; min-width: 0; padding: 0; border: 0; }
  #page-members .member-list-table td[data-label]::before { content: attr(data-label); display: block; color: var(--ui-muted); font-size: var(--ui-text-size); font-weight: 400; margin-bottom: 8px; }
  #page-members .member-list-table :-webkit-any(.member-name, .member-phone, .member-row-actions) { grid-column: 1 / -1; }
  #page-members .member-name { font-size: 20px; }
  #page-members .member-name::before, #page-members .member-row-actions::before { display: none !important; }
  #page-members .member-phone .btn { display: inline-flex; margin: 0 0 0 8px; }
  #page-members .member-row-actions { border-top: 1px solid var(--ui-line); padding-top: 12px; }
  #page-members .member-list-table tr.has-ui-state, #page-members .member-list-table td[colspan] { display: block; grid-column: 1 / -1; }
}
@media (max-width: 600px) {
  #page-members .member-actions { flex-basis: 100%; justify-content: flex-start; }
  #page-members .member-actions > .btn:not(.primary) { flex: 1 1 calc(50% - 8px); }
  #page-members .member-tabs .filter-pill { padding-left: 12px; padding-right: 12px; }
  #page-members .kpi { padding: 12px; }
  #page-members .member-overview { gap: 8px; }
  #page-members .member-search { display: grid; grid-template-columns: minmax(0, 1fr) auto; padding: 12px; gap: 8px; }
  #page-members .member-search label, #page-members #memberResultCount { grid-column: 1 / -1; }
  #page-members .member-list-table tbody { grid-template-columns: minmax(0, 1fr); padding: 12px; gap: 12px; }
  #page-members .member-directory-head { padding-left: 12px; padding-right: 12px; }
  #page-members #memberTxForm { display: flex; }
  #page-members #memberTxForm input { flex-basis: 100%; }
  #page-members .member-tx-foot { flex-wrap: wrap; }
}

@media (max-width: 1200px) {
  #page-members #memberPanelTx .orders-table { overflow: visible; min-height: 0 !important; }
  #page-members #memberPanelTx :-webkit-any(table, tbody) { display: block; }
  #page-members #memberTxHead { display: none; }
  #page-members #memberTxRows tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 16px; border: 1px solid var(--ui-line); border-radius: var(--ui-radius); margin-bottom: 12px; }
  #page-members #memberTxRows td { display: block; min-width: 0; padding: 0; border: 0; white-space: normal; overflow-wrap: anywhere; font-size: var(--ui-text-size); }
  #page-members #memberTxRows td::before { display: block; margin-bottom: 8px; color: var(--ui-muted); font-weight: 400; }
  #page-members #memberTxRows td:nth-child(1)::before { content: "时间（上海）"; }
  #page-members #memberTxRows td:nth-child(2)::before { content: "会员"; }
  #page-members #memberTxRows td:nth-child(3)::before { content: "类型"; }
  #page-members table.has-nine-columns #memberTxRows td:nth-child(4)::before { content: "金额"; }
  #page-members table.has-nine-columns #memberTxRows td:nth-child(5)::before { content: "实充"; }
  #page-members table.has-nine-columns #memberTxRows td:nth-child(6)::before { content: "赠送"; }
  #page-members table.has-nine-columns #memberTxRows td:nth-child(7)::before { content: "操作人"; }
  #page-members table.has-nine-columns #memberTxRows td:nth-child(8)::before { content: "原因 / 备注"; }
  #page-members table.has-nine-columns #memberTxRows td:nth-child(9)::before { content: "订单"; }
  #page-members table:not(.has-nine-columns) #memberTxRows td:nth-child(4)::before { content: "积分变动"; }
  #page-members table:not(.has-nine-columns) #memberTxRows td:nth-child(5)::before { content: "操作人"; }
  #page-members table:not(.has-nine-columns) #memberTxRows td:nth-child(6)::before { content: "原因 / 备注"; }
  #page-members table:not(.has-nine-columns) #memberTxRows td:nth-child(7)::before { content: "订单"; }
  #page-members #memberTxRows td[colspan] { grid-column: 1 / -1; }
  #page-members #memberTxRows td[colspan]::before { content: none !important; }
}

/* A3 shift: scoped presentation; existing handover actions keep their contracts. */
#page-shift { padding: clamp(12px, 2vmin, 28px); gap: 16px; color: var(--ui-text); font-size: var(--ui-text-size); overflow: auto; }
#page-shift .page-head { align-items: center; gap: 16px; margin: 0; }
#page-shift .page-head h1 { font-size: clamp(24px, 3vmin, 32px); margin: 4px 0 8px; }
#page-shift .report-note, #page-shift .report-status, .shift-detail, .shift-confirm-text { font-size: var(--ui-text-size); line-height: 1.65; overflow-wrap: anywhere; }
#page-shift .shift-eyebrow { font-size: var(--ui-text-size); color: var(--ui-brand-press); font-weight: 700; }
#page-shift .shift-card { min-width: 0; padding: clamp(16px, 2vmin, 24px); border: 1px solid var(--ui-line); border-radius: 16px; gap: 12px; box-shadow: none; }
#page-shift .shift-card h3 { margin: 0; font-size: 20px; color: var(--ui-text); }
#page-shift h4 { font-size: 16px; margin: 4px 0 0; }
.shift-section-head { display: flex; align-items: flex-start; gap: 12px; }
.shift-step { display: grid; place-items: center; flex: 0 0 36px; height: 36px; border-radius: 10px; background: var(--ui-brand-soft); color: var(--ui-brand-press); font-size: 16px; font-weight: 800; }
#page-shift .shift-status { margin: 0; }
#page-shift .shift-unshifted { margin: 0; padding: 12px 16px; border: 1px solid var(--ui-line); border-left: 4px solid var(--ui-brand); border-radius: 10px; background: var(--ui-card); }
#page-shift .shift-current { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
#page-shift .shift-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
#page-shift .shift-facts > p { grid-column: 1 / -1; margin: 0; }
.shift-metric { display: flex; flex-direction: column; gap: 8px; padding: 16px; background: var(--ui-bg); border: 1px solid var(--ui-line); border-radius: 12px; }
.shift-metric > span { color: var(--ui-muted); font-size: var(--ui-text-size); }
.shift-metric > b { font-size: clamp(24px, 3vmin, 34px); color: var(--ui-text); overflow-wrap: anywhere; }
.shift-metric-main { background: var(--ui-brand-soft); border-color: var(--ui-brand-press); }
.shift-metric-main > b, .shift-metric-main > span { color: var(--ui-brand-press); }
#page-shift .mono, #shiftHistoryDialog .mono, #shiftDetail p, #shiftConfirmText, #shiftUnshifted, #shiftExtras, #shiftDiff, #shiftOriginal, #shiftResult { font-variant-numeric: tabular-nums; font-weight: 700; }
#page-shift .shift-extras { display: flex; flex-direction: column; gap: 8px; padding: 12px; border-radius: 10px; background: var(--ui-bg); font-size: var(--ui-text-size); line-height: 1.65; overflow-wrap: anywhere; }
#page-shift .shift-close { border-top: 3px solid var(--ui-brand); gap: 12px; }
#page-shift .shift-card input { max-width: none; width: 100%; min-width: var(--ui-touch); min-height: var(--ui-button-height); border: 1px solid var(--ui-line-strong); border-radius: 10px; padding: 10px 12px; color: var(--ui-text); background: var(--ui-card); font-size: 16px; }
#page-shift #shiftCounted, #page-shift #shiftFloat { font-size: 24px; font-weight: 700; font-variant-numeric: tabular-nums; }
#page-shift .shift-difference { padding: 12px; border: 1px solid var(--ui-line); border-radius: 10px; background: var(--ui-bg); }
#page-shift .shift-difference.shift-diff { color: var(--ui-danger); background: var(--ui-danger-soft); border-color: var(--ui-danger); }
#page-shift .shift-close-note { margin-top: auto; }
#page-shift .shift-actions { display: flex; justify-content: flex-end; gap: var(--ui-button-gap); width: 100%; margin-top: 4px; }
#page-shift .shift-actions .primary { align-self: auto; width: 40%; max-width: 40%; }
#page-shift .product-edit-error:empty, #page-shift .shift-result:empty, #page-shift #shiftListStatus:empty { display: none; }
#page-shift .shift-range { display: flex; align-items: flex-end; flex-wrap: wrap; gap: 12px; padding: 12px; background: var(--ui-bg); border-radius: 10px; }
#page-shift .shift-range > div { display: flex; flex-direction: column; gap: 8px; flex: 0 1 220px; min-width: 0; }
#page-shift .shift-range label { white-space: normal; }
#page-shift .orders-table { min-width: 0; border: 1px solid var(--ui-line); border-radius: 10px; }
#page-shift .orders-table th, #shiftHistoryDialog th { font-size: var(--ui-text-size); color: var(--ui-muted); background: var(--ui-bg); }
#page-shift .orders-table td, #shiftHistoryDialog td { font-size: var(--ui-text-size); }
#page-shift .orders-table td, #page-shift .orders-table th { padding: 12px; }
#page-shift .shift-history-table td[data-label="原因"] { white-space: normal; overflow-wrap: anywhere; min-width: 96px; }
#page-shift .shift-history-table td[data-label="员工"] { overflow-wrap: anywhere; }
#shiftHistoryDialog .member-id { font-size: var(--ui-text-size); }
#shiftHistoryDialog .modal-head, #shiftConfirm .modal-foot { gap: var(--ui-button-gap); }
#shiftConfirm .modal-foot .primary { flex: 0 1 40%; max-width: 40%; }
@media (min-width: 1200px) {
  #page-shift .shift-current { grid-template-columns: minmax(0, 1fr) minmax(340px, .42fr); align-items: start; }
}
@media (max-width: 1100px) {
  #page-shift .shift-history-table thead { display: none; }
  #page-shift .shift-history-table :-webkit-any(table, tbody) { display: block; width: 100%; }
  #page-shift .shift-history-table tr { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding: 16px; border-bottom: 1px solid var(--ui-line); }
  #page-shift .shift-history-table td { display: block; padding: 0; border: 0; white-space: normal; overflow-wrap: anywhere; }
  #page-shift .shift-history-table td[data-label]::before { content: attr(data-label); display: block; font-size: var(--ui-text-size); color: var(--ui-muted); font-weight: 400; margin-bottom: 8px; }
  #page-shift .shift-history-table td:last-child { grid-column: 1 / -1; }
  #page-shift .shift-history-table td:last-child::before { display: none; }
  #page-shift .shift-history-table td button { width: 100%; }
}
@media (max-width: 700px) {
  #page-shift .shift-method-table thead, #shiftHistoryDialog .shift-method-table thead { display: none; }
  #page-shift .shift-method-table :-webkit-any(table, tbody), #shiftHistoryDialog .shift-method-table :-webkit-any(table, tbody) { display: block; min-width: 0; width: 100%; }
  #page-shift .shift-method-table tr, #shiftHistoryDialog .shift-method-table tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 16px; border-bottom: 1px solid var(--ui-line); }
  #page-shift .shift-method-table td, #shiftHistoryDialog .shift-method-table td { display: block; white-space: normal; padding: 0; border: 0; overflow-wrap: anywhere; }
  .shift-method-table td::before { content: attr(data-label); display: block; color: var(--ui-muted); font-size: var(--ui-text-size); font-weight: 400; margin-bottom: 4px; }
  .shift-method-table td:first-child { grid-column: 1 / -1; font-weight: 800; }
  .shift-method-table td:first-child::before { display: none; }
  #page-shift .shift-history-table tr { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #shiftHistoryDialog .modal-head { flex-wrap: wrap; }
}
@media (max-width: 600px) {
  #page-shift .shift-page-head { align-items: flex-start; flex-direction: column; }
  #page-shift .shift-page-head > .btn { width: 100%; }
  #page-shift .shift-facts { grid-template-columns: minmax(0, 1fr); }
  #page-shift .shift-actions .primary { width: 100%; max-width: none; }
  #page-shift .shift-range { flex-direction: column; align-items: stretch; }
  #page-shift .shift-range > div { flex: auto; }
  #page-shift .staff-head { flex-direction: column; align-items: flex-start; gap: 8px; }
  #shiftConfirm .modal-foot { flex-direction: column; }
  #shiftConfirm .modal-foot .btn { width: 100%; max-width: none; flex: auto; }
}

/* A7: queue and store receivables share readable, scrollable touch layouts. */
.a7-entry-actions { display: flex; flex-wrap: wrap; gap: var(--ui-button-gap); }
#financeBoard,
#pickupBoard {
  width: min(960px, calc(100vw - 24px));
  max-height: calc(100vh - 24px);
  font-size: var(--ui-text-size);
  overflow-wrap: anywhere;
}
#financeBoard[open],
#pickupBoard[open] { display: flex; flex-direction: column; }
#financeBoard .modal-head,
#pickupBoard .modal-head {
  flex: 0 0 auto; align-items: flex-start; gap: var(--ui-button-gap);
  padding: clamp(12px, 2vmin, 24px); background: var(--ui-brand-soft);
}
#financeBoard .modal-head > div,
#pickupBoard .modal-head > div { min-width: 0; flex: 1; }
#financeBoard .modal-head h2,
#pickupBoard .modal-head h2 { margin: 0; font-size: clamp(22px, 3vmin, 30px); }
#financeBoard .modal-head p,
#pickupBoard .modal-head p { margin: 8px 0 0; font-size: var(--ui-text-size); line-height: 1.5; }
#financeBoard .modal-head button,
#pickupBoard .modal-head button { flex-shrink: 0; }
#financeBoard .finance-body, #pickupBoard .pickup-content {
  min-height: 0; max-height: none; overflow: auto; padding: clamp(12px, 2vmin, 24px);
  overscroll-behavior: contain;
}
#financeBoard :-webkit-any(p, small, label, .ui-state),
#pickupBoard :-webkit-any(p, small, label, .ui-state) { font-size: var(--ui-text-size); line-height: 1.6; }
#financeBoard :-webkit-any(input, select),
#pickupBoard :-webkit-any(input, select) { min-width: var(--ui-touch); max-width: 100%; font-size: var(--ui-button-font); }
#financeBoard .btn,
#pickupBoard .btn { white-space: normal; overflow-wrap: anywhere; height: auto !important; padding: 8px 12px; }
#financeBoard .btn.primary,
#pickupBoard .btn.primary { min-height: var(--ui-action-height) !important; font-size: var(--ui-action-font) !important; font-weight: 800; }
#financeBoard .a7-guide { padding: clamp(12px, 1.5vmin, 20px); border: 1px solid var(--ui-line); border-radius: var(--r); background: var(--ui-bg); }
#financeBoard .finance-tabs .btn[aria-pressed="true"] { color: var(--ui-brand-press); background: var(--ui-brand-soft); border-color: var(--ui-brand-press); }
#financeBoard .finance-list-tools { align-items: flex-end; margin-top: clamp(12px, 2vmin, 20px); margin-bottom: clamp(12px, 2vmin, 20px); }
#financeBoard .finance-list-tools label { display: grid; min-width: 0; flex: 1; }
#financeBoard .finance-list-tools .primary { width: 40%; }
#financeBoard .finance-row { align-items: flex-start; padding: clamp(12px, 1.5vmin, 20px); }
#financeBoard .finance-row > div { min-width: 0; flex: 1 1 100%; }
#financeBoard .finance-row small { font-variant-numeric: tabular-nums; font-weight: 700; }
#financeBoard .finance-row-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--ui-button-gap); }
#financeBoard #financeForm { max-height: none; margin: 0 0 16px; background: var(--ui-bg); }
#financeBoard #financeFields { min-width: 0; overflow: visible; padding: clamp(12px, 2vmin, 24px); grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
#financeBoard #financeFields label { min-width: 0; }
#financeBoard #financeAction { font-size: clamp(18px, 2.2vmin, 22px); font-weight: 800; max-width: 100%; }
#financeBoard #financeFormHint,
#financeBoard .finance-form-actions { grid-column: 1 / -1; }
#financeBoard .finance-form-actions { justify-content: flex-end; }
#financeBoard #financeSubmit { width: 40%; max-width: 40%; margin-left: auto; min-height: var(--ui-action-height) !important; font-size: var(--ui-action-font) !important; font-weight: 800; }
#financeBoard #financeStatus,
#financeBoard #financeEntries,
#financeBoard #financePending { font-variant-numeric: tabular-nums; }
#financeBoard #financeStatus { font-weight: 700; }
#financeBoard #financePending > div { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ui-button-gap); padding-top: 8px; padding-bottom: 8px; }
#financeBoard #financeLedger { margin-top: 16px; padding: clamp(12px, 2vmin, 24px); background: var(--ui-bg); border: 1px solid var(--ui-line); border-radius: var(--r); }
#financeBoard #financeEntries { padding-left: 24px; line-height: 1.8; }
#financeBoard .finance-entry { margin-top: 12px; margin-bottom: 12px; }
#pickupBoard .pickup-display { flex-wrap: wrap; padding: clamp(12px, 2vmin, 24px); background: var(--ui-brand-soft); color: var(--ui-brand-press); }
#pickupBoard .pickup-display strong { font-size: clamp(40px, 7vmin, 64px); font-weight: 800; }
#pickupBoard .pickup-filters { gap: 12px; }
#pickupBoard .pickup-filters label { min-width: 0; flex: 1 1 160px; }
#pickupBoard .pickup-rows { display: grid; gap: 12px; }
#pickupBoard .pickup-rows li { padding: clamp(12px, 2vmin, 20px); border: 1px solid var(--ui-line); border-radius: var(--r); background: var(--ui-card); }
#pickupBoard .pickup-number { font-size: clamp(24px, 3vmin, 32px); font-weight: 800; }
#pickupBoard .pickup-row-actions { width: 100%; justify-content: flex-end; }
#pickupBoard .pickup-row-actions .primary { width: 40%; order: 1; margin-left: 0; }
@media (max-width: 600px) {
  .a7-entry-actions { width: 100%; }
  .a7-entry-actions .btn { flex: 1 1 100%; }
  #financeBoard #financeFields { grid-template-columns: minmax(0, 1fr); }
  #financeBoard .finance-list-tools { flex-direction: column; align-items: stretch; }
  #financeBoard .finance-list-tools .primary, #financeBoard #financeSubmit, #pickupBoard .pickup-row-actions .primary { width: 100%; max-width: 100%; flex-basis: 100%; }
  #financeBoard .finance-tabs .btn { flex: 1 1 100%; }
  #pickupBoard .pickup-filters > * { flex: 1 1 100%; }
}

/* Desktop cashier layout measured from the user's Windows reference.
   The final layer changes presentation only; hidden/disabled business states remain authoritative. */
body#pos-ui.pos-reference[data-current-page] {
  --ui-brand: #2196f3; --ui-brand-press: #1685da; --ui-brand-soft: #e5f2ff;
  --accent: var(--ui-brand); --accent-press: var(--ui-brand-press); --accent-dim: var(--ui-brand-soft);
  --ui-bg: #e1e3e7; --ui-card: #fff; --ui-sunken: #f5f7f8;
  --ui-ink: #24282d; --ui-text: #343a40; --ui-muted: #828992;
  --ui-line: #e3e5e8; --ui-line-strong: #d4d8dd;
  --ui-danger: #ed5949; --ui-danger-soft: #fff4f2; --ui-ok: #00b995;
  --ui-font: "Microsoft YaHei", "PingFang SC", "Noto Sans SC", sans-serif;
  --ui-text-size: 16px; --ui-title-size: 20px; --ui-price-size: 24px;
  --ui-button-font: 16px; --ui-action-font: 18px; --ui-button-height: 48px;
  --ui-action-height: 56px; --ui-button-gap: 8px; --ui-touch: 48px;
  --ui-radius: 6px; --ui-radius-sm: 5px; --ui-radius-lg: 8px; --ui-shadow: none;
  --bg: #e1e3e7; --bg-elev: #fff; --bg-panel: #fff; --bg-hover: #f5f8fa;
  --border: #e1e4e8; --border-strong: #ccd2d9; --text: #343a40;
  --text-dim: #828992; --heading: #22272d; --ok: #00b995;
  --sans: var(--ui-font); --mono: var(--ui-font); --r: 6px; --r-sm: 5px;
  --pos-side: clamp(190px, 16vw, 290px);
  height: 100vh; overflow: hidden; font-family: var(--ui-font);
  font-size: 16px; color: var(--text); background: var(--bg);
}
body#pos-ui.pos-reference[data-current-page] [hidden] { display: none !important; }
html.has-pos-shell { height: 100%; overflow: hidden; }
body#pos-ui.pos-reference[data-current-page] .app { display: flex; height: 100vh; min-height: 0; background: var(--bg); }
body#pos-ui.pos-reference[data-current-page] .main { flex: 1; min-height: 0; min-width: 0; overflow: hidden; }
body#pos-ui.pos-reference[data-current-page] .content { flex: 1; min-height: 0; overflow: hidden; }
body#pos-ui.pos-reference[data-current-page] .page { min-height: 0; width: 100%; max-width: none; margin: 0; }
body#pos-ui.pos-reference[data-current-page] .pos-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
body#pos-ui.pos-reference[data-current-page] :-webkit-any(.btn,.ui-button,.filter-pill,.pay-method,.cat-btn) {
  border-radius: 5px; min-height: 48px !important; height: 48px !important;
  min-block-size: 48px !important; max-height: none; font-size: 16px !important;
  font-weight: 400 !important; padding: 8px 16px; max-width: none; margin-left: 0;
  align-self: auto; line-height: 1.35 !important;
}
body#pos-ui.pos-reference[data-current-page] :-webkit-any(.btn,.ui-button):-webkit-any(.primary,.hot,.lg) { height: 56px !important; min-block-size: 56px !important; min-height: 56px !important; font-size: 18px !important; max-width: none; margin-left: 0; }
body#pos-ui.pos-reference[data-current-page] :-webkit-any(.btn,.ui-button):-webkit-any(.secondary,.dark) { background: #fff !important; color: var(--ui-brand-press) !important; }
body#pos-ui.pos-reference[data-current-page] :-webkit-any(.btn,.ui-button):-webkit-any(.danger,.danger-text) { background: #fff !important; font-weight: 400 !important; }
body#pos-ui.pos-reference[data-current-page] :-webkit-any(button,input,select,textarea):focus { outline: 3px solid #126bb1; outline-offset: -3px; }
body#pos-ui.pos-reference[data-current-page] :-webkit-any(input,select,textarea) { border-radius: 5px; font-size: 16px; }
body#pos-ui.pos-reference[data-current-page] .ui-card { border-radius: 6px; box-shadow: none; }
body#pos-ui.pos-reference[data-current-page] .mono, body#pos-ui.pos-reference[data-current-page] .ui-money, body#pos-ui.pos-reference[data-current-page] .ui-number { font-family: var(--ui-font); font-variant-numeric: tabular-nums; }

/* The blue header is shared by every main page. */
body#pos-ui.pos-reference[data-current-page] .topbar {
  display: flex; flex-wrap: nowrap; min-height: 88px; height: 88px; padding: 10px 20px;
  gap: 20px; background: #2196f3; color: white; border: 0; flex-shrink: 0;
}
body#pos-ui.pos-reference[data-current-page] .pos-title-group { display: flex; align-items: center; gap: 10px; min-width: 0; flex: 0 0 auto; }
body#pos-ui.pos-reference[data-current-page] .pos-store-clock { display: flex; flex-direction: column; gap: 5px; }
body#pos-ui.pos-reference[data-current-page] .topbar-brand { color: #fff; font-size: 26px; font-weight: 500; line-height: 1.3; }
body#pos-ui.pos-reference[data-current-page] .topbar-clock { color: #e6f3ff; margin: 0; font-size: 13px; font-weight: 400; white-space: nowrap; }
body#pos-ui.pos-reference[data-current-page] .search { min-width: 160px; max-width: 640px; flex: 1 1 300px; margin: 0 auto 0 4px; }
body#pos-ui.pos-reference[data-current-page] .search input { background: #ffffff30; border: 1px solid transparent; height: 52px; border-radius: 28px; color: #fff; font-size: 18px; padding-left: 44px; }
body#pos-ui.pos-reference[data-current-page] .search input::placeholder { color: #e5f3ff; }
body#pos-ui.pos-reference[data-current-page] .search input:focus { border-color: #fff; outline-color: #fff; }
body#pos-ui.pos-reference[data-current-page] .search svg { width: 22px; height: 22px; left: 15px; color: #fff; fill: currentColor; stroke: none; }
body#pos-ui.pos-reference[data-current-page] .topbar-actions { display: flex; flex-wrap: nowrap; gap: 5px !important; margin-left: auto; }
body#pos-ui.pos-reference[data-current-page] .pos-top-action { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; min-width: 64px; padding: 4px 8px; height: 68px; color: #fff; border-radius: 5px; font-size: 15px !important; white-space: nowrap; }
body#pos-ui.pos-reference[data-current-page] .pos-top-action svg { height: 27px; width: 27px; fill: currentColor; stroke: none; }
body#pos-ui.pos-reference[data-current-page] .pos-top-action:hover, body#pos-ui.pos-reference[data-current-page] .pos-top-action:focus { background: #ffffff24; }
body#pos-ui.pos-reference[data-current-page] .pos-top-action:disabled { opacity: .5; }
body#pos-ui.pos-reference[data-current-page] .pos-back { display: grid; place-content: center; color: #fff; padding: 0; min-width: 48px; }
body#pos-ui.pos-reference[data-current-page] .pos-back svg { width: 28px; height: 28px; fill: currentColor; }
body#pos-ui.pos-reference[data-current-page] .pos-back span { display: none; }
body#pos-ui.pos-reference[data-current-page]:not([data-current-page="order"]) #posTables { display: none; }
body#pos-ui.pos-reference[data-current-page][data-current-page="order"] #btnDirectOrder { display: none; }
body#pos-ui.pos-reference[data-current-page]:not([data-current-page="tables"]):not([data-current-page="order"]) .topbar .search { display: none; }
body#pos-ui.pos-reference[data-current-page]:not([data-current-page="tables"]):not([data-current-page="order"]) .topbar-clock { display: none; }
body#pos-ui.pos-reference[data-current-page] #coreStatus:not(.hidden) { margin: 0; border-radius: 0; flex-shrink: 0; }

/* More: large, regular touch targets grouped in one launcher. */
body#pos-ui.pos-reference[data-current-page] #page-more.active { display: flex; padding: clamp(24px,4vw,64px) clamp(20px,8vw,155px); overflow: auto; background: #dceefd; }
body#pos-ui.pos-reference[data-current-page] .pos-more-panel { align-self: flex-start; width: 100%; padding: 28px; border: 1px solid white; border-radius: 18px; background: #f3faff; }
body#pos-ui.pos-reference[data-current-page] .pos-more-heading { display: flex; gap: 24px; align-items: baseline; margin: 0 0 26px; }
body#pos-ui.pos-reference[data-current-page] .pos-more-heading h1 { font-size: 28px; font-weight: 500; color: #25282b; }
body#pos-ui.pos-reference[data-current-page] .pos-more-heading > span { color: #6f97b5; font-size: 18px; }
body#pos-ui.pos-reference[data-current-page] .pos-launchers { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 24px 10px; }
body#pos-ui.pos-reference[data-current-page] .pos-launcher { display: flex; flex-direction: column; gap: 14px; align-items: center; justify-content: flex-start; padding: 4px; height: auto !important; min-height: 156px !important; color: #25282b; font-size: 20px !important; border: 0; background: transparent; }
body#pos-ui.pos-reference[data-current-page] .pos-launcher-icon { display: grid; place-items: center; width: clamp(72px,7.6vw,140px); height: clamp(72px,7.6vw,140px); border-radius: 24%; background: var(--tile-color); color: #fff; }
body#pos-ui.pos-reference[data-current-page] .pos-launcher-icon svg { width: 52%; height: 52%; fill: currentColor; stroke: none; }
body#pos-ui.pos-reference[data-current-page] .pos-launcher:hover .pos-launcher-icon { filter: brightness(1.06); }
body#pos-ui.pos-reference[data-current-page] .pos-launcher:focus { outline-offset: 2px; }
body#pos-ui.pos-reference[data-current-page] .pos-more-footer { display: flex; align-items: center; gap: 14px; margin-top: 24px; font-size: 13px; color: #7991a6; }
body#pos-ui.pos-reference[data-current-page] .pos-more-footer button { margin-left: auto; font-size: 14px !important; color: #267cb9; padding: 6px 12px; }

/* Tables: status/summary at left, a single floor strip and compact cards at right. */
body#pos-ui.pos-reference[data-current-page] #page-tables.active { display: grid; grid-template-columns: var(--pos-side) minmax(0,1fr); grid-template-rows: minmax(0,1fr); gap: 8px; padding: 0; height: 100%; overflow: hidden; }
body#pos-ui.pos-reference[data-current-page] #page-tables .tables-side { display: flex; flex-direction: column; gap: 16px; width: auto; min-width: 0; padding: 16px 14px; border: 0; border-radius: 0; background: #f5f8fa; overflow-y: auto; }
body#pos-ui.pos-reference[data-current-page] #page-tables .side-section h2 { display: none; }
body#pos-ui.pos-reference[data-current-page] #page-tables .status-list { display: flex; flex-direction: column; gap: 8px; overflow: visible; padding: 0; }
body#pos-ui.pos-reference[data-current-page] #page-tables .status-item { display: flex; gap: 12px; align-items: center; min-height: 56px; padding: 9px 12px; border: 1px solid transparent; border-radius: 5px; background: transparent; color: #373b40; font-size: 18px !important; font-weight: 400; flex: 0 0 auto; }
body#pos-ui.pos-reference[data-current-page] #page-tables .status-item.active { background: #e5e8ed; border-color: #ced3db; color: #272d34; font-weight: 400; }
body#pos-ui.pos-reference[data-current-page] #page-tables .status-item .dot { width: 19px; height: 19px; border-radius: 3px; border: 1px solid #bcc5ce; flex-shrink: 0; }
body#pos-ui.pos-reference[data-current-page] #page-tables .dot.all { background: #fff; }
body#pos-ui.pos-reference[data-current-page] #page-tables .dot.free { background: #fff; }
body#pos-ui.pos-reference[data-current-page] #page-tables .dot.opened { background: #11c9b6; border-color: #11c9b6; }
body#pos-ui.pos-reference[data-current-page] #page-tables .dot.order { background: #25b589; border-color: #25b589; }
body#pos-ui.pos-reference[data-current-page] #page-tables .dot.pay { background: #ffb84a; border-color: #ffb84a; }
body#pos-ui.pos-reference[data-current-page] #page-tables .dot.clear { background: #a6b5d1; border-color: #a6b5d1; }
body#pos-ui.pos-reference[data-current-page] #page-tables .status-item .count { background: transparent; padding: 0; font-weight: 400; font-size: 18px; }
body#pos-ui.pos-reference[data-current-page] #page-tables .tables-summary { display: flex; flex-direction: column; flex-wrap: nowrap; gap: 12px; padding: 14px 8px; border: 0; border-top: 1px dashed #c4ccd6; border-bottom: 1px dashed #c4ccd6; background: transparent; border-radius: 0; }
body#pos-ui.pos-reference[data-current-page] #page-tables .tables-summary > div { gap: 4px; }
body#pos-ui.pos-reference[data-current-page] #page-tables .tables-summary strong { font-size: 22px; font-weight: 400; color: #2196f3; }
body#pos-ui.pos-reference[data-current-page] #page-tables .tables-summary span { font-size: 14px; color: #7c8590; }
body#pos-ui.pos-reference[data-current-page] #page-tables #payAmount { font-size: 30px; }
body#pos-ui.pos-reference[data-current-page] #page-tables .tables-operations { margin-top: 0; padding-top: 0; border: 0; }
body#pos-ui.pos-reference[data-current-page] #page-tables .ops-stack { display: flex; flex-direction: column; gap: 8px; }
body#pos-ui.pos-reference[data-current-page] #page-tables .ops-stack .btn { width: 100%; height: 56px !important; background: #eef1f5 !important; font-size: 18px !important; }
body#pos-ui.pos-reference[data-current-page] #page-tables .transfer-notice { margin: 0 2px 8px; font-size: 12px; line-height: 1.5; color: #828992; }
body#pos-ui.pos-reference[data-current-page] #page-tables .tables-main { display: flex; flex-direction: column; gap: 0; min-width: 0; min-height: 0; padding: 0; overflow: hidden; }
body#pos-ui.pos-reference[data-current-page] #page-tables .table-tools { display: flex; align-items: center; flex-shrink: 0; padding: 14px 16px; background: #fff; min-height: 82px; }
body#pos-ui.pos-reference[data-current-page] #page-tables .floor-tabs { display: flex; flex-wrap: nowrap; flex: 1; overflow-x: auto; gap: 10px; padding: 0; margin: 0; }
body#pos-ui.pos-reference[data-current-page] #page-tables .floor-tab { flex-shrink: 0; min-width: 100px; min-height: 52px; padding: 10px 22px; font-size: 20px !important; background: #f5f7f8; border: 1px solid #d9dde2; border-radius: 6px; font-weight: 400; color: #30363c; white-space: nowrap; }
body#pos-ui.pos-reference[data-current-page] #page-tables .floor-tab.active { background: #dcefff; color: #218bd8; border-color: #6bb4ec; }
body#pos-ui.pos-reference[data-current-page] #page-tables .tables-tools-actions { display: flex; flex-wrap: wrap; gap: 8px; }
body#pos-ui.pos-reference[data-current-page] #page-tables .tables-result { padding: 8px 14px 4px; min-height: 30px; justify-content: flex-end; }
body#pos-ui.pos-reference[data-current-page] #page-tables .tables-result h2 { display: none; }
body#pos-ui.pos-reference[data-current-page] #page-tables #tableResultCount { font-size: 13px; color: #777f89; }
body#pos-ui.pos-reference[data-current-page] #page-tables .table-grid { flex: 1; min-height: 0; display: grid; grid-template-columns: repeat(auto-fill,minmax(190px,1fr)); grid-auto-rows: max-content; align-content: start; gap: 12px; padding: 6px 12px 20px; overflow: auto; }
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card { display: flex; min-height: 164px; height: auto; padding: 0; border: 1px solid #dfe3e8; border-radius: 8px; background: #fff; box-shadow: none; }
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card-button { display: flex; flex-direction: column; justify-content: space-between; gap: 12px; width: 100%; min-block-size: 162px !important; min-height: 162px; padding: 18px 16px; border-radius: 8px; }
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card-head { display: flex; width: 100%; align-items: flex-start; gap: 10px; }
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card .name { font-size: 25px; line-height: 1.25; font-weight: 400; color: #252a30; }
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card .badge { font-size: 12px; padding: 3px 5px; border-radius: 3px; white-space: nowrap; margin-left: auto; }
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card[data-status="free"] .badge { display: none; }
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card .meta { font-size: 15px; color: #858c96; gap: 8px; margin-top: auto; }
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card-foot { display: flex; width: 100%; align-items: center; padding-top: 0; border: 0; gap: 8px; margin: 0; }
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card .amount { font-size: 21px; font-weight: 400; color: #252b32; }
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card .table-hint, body#pos-ui.pos-reference[data-current-page] #page-tables .table-card .opened-hint { font-size: 14px; }
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card-action { font-size: 13px; font-weight: 400; }
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card[data-status="free"] .table-card-foot { display: none; }
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card[data-status="opened"] { border-top: 5px solid #10c9b5; }
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card[data-status="order"] { border-top: 5px solid #25b589; }
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card[data-status="pay"] { border-top: 5px solid #ffb84a; }
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card[data-status="clear"] { border-top: 5px solid #a6b5d1; }

/* Ordering: bill, a narrow vertical operation strip, horizontal categories and catalog. */
body#pos-ui.pos-reference[data-current-page] #page-order.active { display: grid; grid-template-columns: clamp(300px,26vw,500px) clamp(92px,6.7vw,128px) minmax(0,1fr); gap: 5px; padding: 0; overflow: hidden; }
body#pos-ui.pos-reference[data-current-page] #page-order .cart-panel { display: flex; flex-direction: column; min-width: 0; min-height: 0; width: auto; order: initial; border: 0; border-radius: 0; background: #fff; overflow: hidden; }
body#pos-ui.pos-reference[data-current-page] #page-order .cart-head { padding: 16px 18px 12px; display: flex; flex-direction: column; gap: 9px; border-bottom: 1px solid #e1e4e8; }
body#pos-ui.pos-reference[data-current-page] #page-order .cart-head h2 { display: none; }
body#pos-ui.pos-reference[data-current-page] #page-order .table-tag { font-size: 22px; font-weight: 400; color: #282d33; }
body#pos-ui.pos-reference[data-current-page] #page-order .table-tag span { display: block; font-size: 13px; color: #808892; margin: 4px 0 0; }
body#pos-ui.pos-reference[data-current-page] #page-order .covers { display: flex; justify-content: space-between; font-size: 14px; }
body#pos-ui.pos-reference[data-current-page] #page-order .stepper { border-radius: 5px; }
body#pos-ui.pos-reference[data-current-page] #page-order .order-note-row { gap: 6px; }
body#pos-ui.pos-reference[data-current-page] #page-order #orderNote { width: 100%; height: 48px; font-size: 14px; }
body#pos-ui.pos-reference[data-current-page] #page-order #hwOrder { font-size: 13px !important; padding: 6px; }
body#pos-ui.pos-reference[data-current-page] #page-order .cart-list { flex: 1; min-height: 0; overflow: auto; padding: 0; }
body#pos-ui.pos-reference[data-current-page] #page-order .cart-empty { padding: 44px 16px; font-size: 17px; color: #a3a9af; }
body#pos-ui.pos-reference[data-current-page] #page-order .cart-item { border-radius: 0; padding: 15px 18px; border-bottom: 1px solid #e9ebee; }
body#pos-ui.pos-reference[data-current-page] #page-order .cart-item.selected { background: #e7f3ff; box-shadow: inset 3px 0 #2196f3; }
body#pos-ui.pos-reference[data-current-page] #page-order .ci-name { font-size: 18px; font-weight: 400; }
body#pos-ui.pos-reference[data-current-page] #page-order .ci-price { font-size: 19px; font-weight: 400; }
body#pos-ui.pos-reference[data-current-page] #page-order .cart-foot { flex-shrink: 0; padding: 15px 16px 18px; border-top: 1px solid #e1e4e8; background: #fff; }
body#pos-ui.pos-reference[data-current-page] #page-order .cart-sum { justify-content: flex-end; gap: 12px; margin-bottom: 14px; }
body#pos-ui.pos-reference[data-current-page] #page-order .cart-sum .total { color: #2196f3; font-size: 30px; font-weight: 400; }
body#pos-ui.pos-reference[data-current-page] #page-order .cart-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px !important; }
body#pos-ui.pos-reference[data-current-page] #page-order .cart-actions .btn { width: 100%; flex: auto; min-width: 48px; height: 72px !important; min-height: 72px !important; font-size: 22px !important; }
body#pos-ui.pos-reference[data-current-page] #page-order #btnGoCheckout { background: #2196f3 !important; color: white !important; border-color: #2196f3 !important; }
body#pos-ui.pos-reference[data-current-page] #page-order .line-ops { display: flex; flex-direction: column; width: auto; padding: 8px 4px; gap: 9px; border: 0; background: #fff; overflow-y: auto; order: initial; }
body#pos-ui.pos-reference[data-current-page] #page-order .line-ops-target { font-size: 12px; line-height: 1.4; color: #8b929b; min-height: 18px; text-align: center; }
body#pos-ui.pos-reference[data-current-page] #page-order .line-ops-qty { display: flex; flex-direction: column; gap: 0 !important; border: 1px solid #d9dde2; border-radius: 5px; overflow: hidden; }
body#pos-ui.pos-reference[data-current-page] #page-order .line-ops-qty .btn { border: 0 !important; background: #f3f5f7 !important; border-radius: 0; font-size: 24px !important; }
body#pos-ui.pos-reference[data-current-page] #page-order #lineQtyVal { min-height: 52px; display: grid; place-items: center; font-size: 28px; }
body#pos-ui.pos-reference[data-current-page] #page-order .line-ops > .btn { padding: 6px 3px; font-size: 14px !important; flex-shrink: 0; min-height: 52px !important; height: 52px !important; color: #528bb5 !important; }
body#pos-ui.pos-reference[data-current-page] #page-order .line-ops > .btn:disabled { color: #959ca4 !important; opacity: .7; }
body#pos-ui.pos-reference[data-current-page] #page-order .line-ops-hint { font-size: 11px; line-height: 1.45; color: #959ca4; }
body#pos-ui.pos-reference[data-current-page] #page-order .order-menu { display: flex; flex-direction: column; flex: 1; min-width: 0; min-height: 0; overflow: hidden; }
body#pos-ui.pos-reference[data-current-page] #page-order .cat-rail { display: flex; flex-direction: row; width: auto; flex-shrink: 0; min-height: 82px; height: 82px; border: 0; padding: 14px 16px; gap: 10px; background: #fff; overflow-x: auto; overflow-y: hidden; }
body#pos-ui.pos-reference[data-current-page] #page-order .cat-btn { min-width: 100px; height: 52px !important; font-size: 20px !important; padding: 10px 20px; background: #f5f7f8; border: 1px solid #d9dde2; border-radius: 6px; white-space: nowrap; }
body#pos-ui.pos-reference[data-current-page] #page-order .cat-btn.active { background: #dcefff; color: #218bd8; border-color: #6bb4ec; font-weight: 400; }
body#pos-ui.pos-reference[data-current-page] #page-order .dish-area { display: flex; flex-direction: column; min-width: 0; min-height: 0; padding: 0; background: #e1e3e7; overflow: hidden; }
body#pos-ui.pos-reference[data-current-page] #page-order .dish-toolbar { min-height: 56px; margin: 0; padding: 5px 10px; background: #f7f8fa; display: flex; justify-content: flex-end; gap: 8px; border-bottom: 1px solid #dfe3e8; }
body#pos-ui.pos-reference[data-current-page] #page-order #dishSearch { display: none; }
body#pos-ui.pos-reference[data-current-page] #page-order .dish-toolbar-actions { display: flex; flex-wrap: wrap; gap: 6px; }
body#pos-ui.pos-reference[data-current-page] #page-order .dish-toolbar .btn { font-size: 14px !important; min-height: 48px !important; height: 48px !important; min-block-size: 48px !important; padding: 6px 12px; }
body#pos-ui.pos-reference[data-current-page] #page-order .order-scanner { flex-shrink: 0; margin: 0; padding: 0 10px; background: #f7f8fa; border: 0; border-bottom: 1px solid #d7dde5; border-radius: 0; }
body#pos-ui.pos-reference[data-current-page] #page-order .order-scanner > summary { min-height: 48px; min-block-size: 48px !important; padding: 8px 2px; font-size: 14px !important; color: #5686ab; cursor: pointer; }
body#pos-ui.pos-reference[data-current-page] #page-order .order-scanner[open] { padding-bottom: 12px; }
body#pos-ui.pos-reference[data-current-page] #page-order .order-scanner p { font-size: 12px; }
body#pos-ui.pos-reference[data-current-page] #page-order .dish-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); grid-auto-rows: max-content; align-content: start; padding: 10px; gap: 10px; min-height: 0; overflow-y: auto; }
body#pos-ui.pos-reference[data-current-page] #page-order .dish-card { display: flex; flex-direction: column; align-items: stretch; gap: 10px; min-width: 48px; min-height: 178px; height: auto; padding: 15px 16px; background: #fff; border: 1px solid #e1e4e8; border-radius: 7px; text-align: left; box-shadow: none; }
body#pos-ui.pos-reference[data-current-page] #page-order .dish-card:hover { border-color: #2196f3; }
body#pos-ui.pos-reference[data-current-page] #page-order .d-category { color: #9aabb8; font-size: 12px; }
body#pos-ui.pos-reference[data-current-page] #page-order .dish-card .d-name { font-size: 22px; font-weight: 400; line-height: 1.5; color: #252a30; }
body#pos-ui.pos-reference[data-current-page] #page-order .dish-card .d-tag { color: #9299a2; font-size: 13px; }
body#pos-ui.pos-reference[data-current-page] #page-order .dish-card .d-price { margin-top: auto; padding-top: 8px; color: #525d67; font-size: 20px; font-weight: 400; }

/* List pages use one filter strip, a compact total strip and full-width tables. */
body#pos-ui.pos-reference[data-current-page] #page-orders,
body#pos-ui.pos-reference[data-current-page] #page-members,
body#pos-ui.pos-reference[data-current-page] #page-products { padding: 0; gap: 0; background: #fff; }
body#pos-ui.pos-reference[data-current-page] #page-orders > .page-head,
body#pos-ui.pos-reference[data-current-page] #page-members > .page-head,
body#pos-ui.pos-reference[data-current-page] #page-products > .page-head { margin: 0; min-height: 72px; padding: 10px 20px; border-bottom: 1px solid #e2e5e9; background: #fff; }
body#pos-ui.pos-reference[data-current-page] .page-head h1 ,
body#pos-ui.pos-reference[data-current-page] .member-heading h1  { font-size: 22px; font-weight: 400; }
body#pos-ui.pos-reference[data-current-page] .order-review-intro ,
body#pos-ui.pos-reference[data-current-page] .member-eyebrow ,
body#pos-ui.pos-reference[data-current-page] .member-heading p ,
body#pos-ui.pos-reference[data-current-page] .member-directory-head ,
body#pos-ui.pos-reference[data-current-page] .shift-eyebrow ,
body#pos-ui.pos-reference[data-current-page] .settings-eyebrow ,
body#pos-ui.pos-reference[data-current-page] .settings-intro  { display: none; }
body#pos-ui.pos-reference[data-current-page] .orders-tools, body#pos-ui.pos-reference[data-current-page] .member-actions { width: auto; flex-wrap: wrap; margin-left: auto; gap: 8px; }
body#pos-ui.pos-reference[data-current-page] .orders-tools .btn, body#pos-ui.pos-reference[data-current-page] .member-actions .btn { font-size: 14px !important; padding-left: 13px; padding-right: 13px; }
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-search-bar { order: 1; padding: 16px 20px; border: 0; border-radius: 0; background: #fff; margin: 0; display: flex; flex-wrap: wrap; align-items: flex-end; }
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-heading { order: 0; }
body#pos-ui.pos-reference[data-current-page] #page-orders .order-summary { order: 2; padding: 14px 20px; margin: 0; background: #ebf6ff; border: 0; border-radius: 0; gap: 12px 30px; }
body#pos-ui.pos-reference[data-current-page] #page-orders #orderListStatus { order: 3; margin: 0 20px; }
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-results { order: 4; flex: 1; min-height: 0; border: 0; border-radius: 0; }
body#pos-ui.pos-reference[data-current-page] #page-orders .filter-row { padding: 10px 20px; border-bottom: 1px solid #e2e6eb; gap: 8px; }
body#pos-ui.pos-reference[data-current-page] #page-orders .filter-pill { background: #fff; border: 1px solid #dbe0e6; min-width: 82px; }
body#pos-ui.pos-reference[data-current-page] #page-orders .filter-pill.active { background: #e7f3ff; color: #2196f3; border-color: #2196f3; }
body#pos-ui.pos-reference[data-current-page] :-webkit-any(.orders-table,.staff-table-wrap,.data-table) { border-radius: 0; box-shadow: none; }
body#pos-ui.pos-reference[data-current-page] :-webkit-any(.orders-table,.data-table) th { background: #edf6fd; color: #37424e; font-size: 16px; font-weight: 400; height: 56px; padding: 12px 18px; }
body#pos-ui.pos-reference[data-current-page] :-webkit-any(.orders-table,.data-table) td { padding: 12px 18px; font-size: 15px; border-bottom: 1px solid #eceff2; }
body#pos-ui.pos-reference[data-current-page] :-webkit-any(.orders-table,.data-table) tbody tr:nth-child(even) { background: #fafbfd; }
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-action-group { align-items: center; justify-content: flex-end; }
body#pos-ui.pos-reference[data-current-page] #page-orders [data-pay-oid] { width: auto; flex: 0 0 auto; margin: 0; font-size: 16px !important; }
body#pos-ui.pos-reference[data-current-page] #page-members .member-tabs { order: -1; background: #2196f3; padding: 0 20px; border: 0; gap: 16px; border-radius: 0; }
body#pos-ui.pos-reference[data-current-page] #page-members .member-tabs .filter-pill { color: #e1f1ff; background: transparent; border: 0; border-radius: 0; font-size: 20px !important; padding: 10px 16px; min-height: 58px !important; height: 58px !important; }
body#pos-ui.pos-reference[data-current-page] #page-members .member-tabs .filter-pill.active { color: #fff; box-shadow: inset 0 -3px #fff; }
body#pos-ui.pos-reference[data-current-page] #page-members .member-panel { gap: 0; overflow: auto; }
body#pos-ui.pos-reference[data-current-page] #page-members .member-overview { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); padding: 14px 20px; margin: 0; gap: 0; border: 0; border-radius: 0; background: #edf7ff; }
body#pos-ui.pos-reference[data-current-page] #page-members .member-overview .kpi { display: flex; flex-direction: column; padding: 0 20px; gap: 3px; background: transparent; border: 0; border-radius: 0; box-shadow: none; }
body#pos-ui.pos-reference[data-current-page] #page-members .member-overview .kpi + .kpi { border-left: 1px solid #d6e5f1; }
body#pos-ui.pos-reference[data-current-page] #page-members .k-label { font-size: 14px; margin: 0; color: #607388; }
body#pos-ui.pos-reference[data-current-page] #page-members .k-value { font-size: 22px; font-weight: 400; color: #2196f3; }
body#pos-ui.pos-reference[data-current-page] #page-members .k-sub { font-size: 12px; color: #7c8e9f; }
body#pos-ui.pos-reference[data-current-page] #page-members .member-directory { padding: 0; border: 0; border-radius: 0; background: #fff; flex: 1; min-height: 0; }
body#pos-ui.pos-reference[data-current-page] #page-members .member-search { padding: 14px 20px; margin: 0; border: 0; border-radius: 0; background: #fff; flex-wrap: wrap; }
body#pos-ui.pos-reference[data-current-page] #page-members .member-search label { font-size: 14px; }
body#pos-ui.pos-reference[data-current-page] #page-members .member-search input { height: 48px; }
body#pos-ui.pos-reference[data-current-page] #page-members #memberStatus { margin: 0 20px; }
body#pos-ui.pos-reference[data-current-page] #page-members #btnAddMember { background: #00ba97 !important; border-color: #00ba97 !important; }

/* Catalog management: category rail plus a consistent card grid. */
body#pos-ui.pos-reference[data-current-page] #page-products .products-body { gap: 0; min-height: 0; }
body#pos-ui.pos-reference[data-current-page] #page-products .prod-cat-panel { width: var(--pos-side); padding: 0; border: 0; border-right: 1px solid #dfe3e8; border-radius: 0; background: #fff; }
body#pos-ui.pos-reference[data-current-page] #page-products .prod-cat-head { height: 68px; padding: 12px 20px; font-size: 20px; font-weight: 400; }
body#pos-ui.pos-reference[data-current-page] #page-products .prod-cat-list { gap: 0; padding: 0; }
body#pos-ui.pos-reference[data-current-page] #page-products .prod-cat-item { padding: 16px 24px; min-height: 64px; border: 0; border-bottom: 1px solid #f0f2f5; border-radius: 0; font-size: 18px !important; }
body#pos-ui.pos-reference[data-current-page] #page-products .prod-cat-item.active { background: #e5f2ff; color: #2196f3; }
body#pos-ui.pos-reference[data-current-page] #page-products .products-main { gap: 0; background: #e1e3e7; }
body#pos-ui.pos-reference[data-current-page] #page-products .prod-filter-bar { padding: 20px; min-height: 68px; margin: 0; background: #fff; }
body#pos-ui.pos-reference[data-current-page] #page-products .prod-filter-label { font-size: 21px; font-weight: 400; }
body#pos-ui.pos-reference[data-current-page] #page-products .prod-table { border: 0; background: transparent; padding: 16px; overflow: auto; }
body#pos-ui.pos-reference[data-current-page] #page-products .prod-table table { display: block; width: 100%; }
body#pos-ui.pos-reference[data-current-page] #page-products .prod-table thead { display: none; }
body#pos-ui.pos-reference[data-current-page] #page-products #productsBody { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; }
body#pos-ui.pos-reference[data-current-page] #page-products #productsBody tr { display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto auto 1fr auto; align-content: start; min-height: 234px; padding: 18px; gap: 10px; background: #fff; border: 1px solid #e1e5e9; border-radius: 7px; }
body#pos-ui.pos-reference[data-current-page] #page-products #productsBody td { display: block; padding: 0; border: 0; min-width: 0; }
body#pos-ui.pos-reference[data-current-page] #page-products .prod-card-name { grid-column: 1 / -1; font-size: 22px; font-weight: 400 !important; text-align: left; }
body#pos-ui.pos-reference[data-current-page] #page-products .prod-card-cat { grid-column: 1; font-size: 13px; color: #93a0ad; }
body#pos-ui.pos-reference[data-current-page] #page-products .prod-card-spec { grid-column: 2; grid-row: 2; font-size: 13px; color: #93a0ad; text-align: right; }
body#pos-ui.pos-reference[data-current-page] #page-products .prod-card-price { grid-column: 1 / -1; font-size: 24px; align-self: center; font-weight: 400; color: #e97632 !important; }
body#pos-ui.pos-reference[data-current-page] #page-products .prod-card-availability { display: flex !important; align-items: center; gap: 8px; grid-column: 1 / -1; color: #858d97; font-size: 13px; }
body#pos-ui.pos-reference[data-current-page] #page-products .prod-card-actions { display: flex !important; gap: 8px; grid-column: 1 / -1; }
body#pos-ui.pos-reference[data-current-page] #page-products .prod-card-actions .btn { flex: 1; color: #2196f3 !important; border-color: #9ecff3 !important; margin: 0; font-size: 15px !important; }
body#pos-ui.pos-reference[data-current-page] #page-products .catalog-barcode { display: block; font-size: 12px; color: #9aa2ac; margin-top: 4px; }

/* Report and settings rails share the reference's full-height master/detail shape. */
body#pos-ui.pos-reference[data-current-page] #page-reports.active { display: flex; flex-direction: row; padding: 0; gap: 0; overflow: hidden; }
body#pos-ui.pos-reference[data-current-page] #page-reports .report-nav { width: var(--pos-side); flex-shrink: 0; padding: 0; gap: 0; border-right: 1px solid #d9dfe5; background: #fff; overflow-y: auto; }
body#pos-ui.pos-reference[data-current-page] #page-reports .report-nav-btn { padding: 22px 26px; min-height: 74px; border-radius: 0; border-bottom: 1px solid #edf0f3; font-size: 19px !important; font-weight: 400; }
body#pos-ui.pos-reference[data-current-page] #page-reports .report-nav-btn.active { color: #2196f3; background: #e4f1fd; }
body#pos-ui.pos-reference[data-current-page] #page-reports .report-main { padding: 0; gap: 0; background: #f5f6f8; }
body#pos-ui.pos-reference[data-current-page] #page-reports #reportRangeForm { flex-shrink: 0; padding: 16px 22px; margin: 0; border: 0; border-bottom: 8px solid #e4e6e9; border-radius: 0; background: white; gap: 12px; }
body#pos-ui.pos-reference[data-current-page] #page-reports #reportRangeNote { font-size: 12px; }
body#pos-ui.pos-reference[data-current-page] #page-reports #reportExport { color: #fff !important; background: #f2a32d !important; border-color: #f2a32d !important; }
body#pos-ui.pos-reference[data-current-page] #page-reports .report-view { padding: 20px 24px; }
body#pos-ui.pos-reference[data-current-page] #page-reports .report-head { margin-bottom: 12px; }
body#pos-ui.pos-reference[data-current-page] #page-reports .report-head h1 { font-size: 23px; font-weight: 400; }
body#pos-ui.pos-reference[data-current-page] #page-reports .report-kpis { padding: 20px 0; gap: 0; background: #e7f3ff; border: 0; border-radius: 0; margin-bottom: 20px; }
body#pos-ui.pos-reference[data-current-page] #page-reports .report-kpis .kpi { padding: 0 22px; border: 0; border-radius: 0; box-shadow: none; background: transparent; }
body#pos-ui.pos-reference[data-current-page] #page-reports .report-kpis .kpi + .kpi { border-left: 1px solid #d3e3f1; }
body#pos-ui.pos-reference[data-current-page] #page-reports .k-value { font-size: 28px; font-weight: 400; color: #2196f3; }
body#pos-ui.pos-reference[data-current-page] #page-reports .k-label { font-size: 16px; }
body#pos-ui.pos-reference[data-current-page] #page-reports .k-sub { font-size: 12px; }
body#pos-ui.pos-reference[data-current-page] #page-reports .bars { border: 1px solid #e1e5ea; border-radius: 5px; box-shadow: none; }
body#pos-ui.pos-reference[data-current-page] #page-reports .bars h2 { font-size: 19px; font-weight: 400; }
body#pos-ui.pos-reference[data-current-page] #page-reports .orders-table th { background: #2196f3; color: #fff; }
body#pos-ui.pos-reference[data-current-page] #page-settings.active { display: grid; grid-template-columns: var(--pos-side) minmax(0,1fr); padding: 0; gap: 0; overflow: hidden; }
body#pos-ui.pos-reference[data-current-page] #page-settings .pos-settings-nav { overflow: auto; display: flex; flex-direction: column; border-right: 1px solid #dce1e6; background: #fff; }
body#pos-ui.pos-reference[data-current-page] #page-settings .pos-settings-nav button { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 8px; padding: 24px; min-height: 94px; border-bottom: 1px solid #e9ecf0; color: #3b424a; text-align: left; }
body#pos-ui.pos-reference[data-current-page] #page-settings .pos-settings-nav strong { font-size: 20px; font-weight: 400; }
body#pos-ui.pos-reference[data-current-page] #page-settings .pos-settings-nav span { font-size: 13px; color: #8e959d; }
body#pos-ui.pos-reference[data-current-page] #page-settings .pos-settings-nav .active { background: #e5f2ff; color: #2196f3; }
body#pos-ui.pos-reference[data-current-page] #page-settings .pos-settings-main { padding: 24px; overflow: auto; background: #f4f6f8; min-width: 0; }
body#pos-ui.pos-reference[data-current-page] #page-settings .page-head { padding: 0; margin-bottom: 18px; min-height: 32px; }
body#pos-ui.pos-reference[data-current-page] #page-settings .settings-access { font-size: 13px; padding: 12px 16px; margin-bottom: 20px; border: 1px solid #dbe7f0; border-radius: 4px; background: #eaf5ff; }
body#pos-ui.pos-reference[data-current-page] #page-settings .settings-grid { display: block; }
body#pos-ui.pos-reference[data-current-page] #page-settings .settings-group-title { display: none; }
body#pos-ui.pos-reference[data-current-page] #page-settings .pos-section-hidden { display: none !important; }
body#pos-ui.pos-reference[data-current-page] #page-settings .set-card { padding: 26px; background: #fff; border: 1px solid #e1e5e9; border-radius: 5px; box-shadow: none; max-width: 1200px; gap: 20px; }
body#pos-ui.pos-reference[data-current-page] #page-settings .set-card h3 { font-size: 22px; font-weight: 400; }
body#pos-ui.pos-reference[data-current-page] #page-settings .set-card :-webkit-any(p,label,small) { font-size: 14px; }
body#pos-ui.pos-reference[data-current-page] #page-settings .set-field { grid-template-columns: 130px minmax(0,1fr); padding-bottom: 16px; }
body#pos-ui.pos-reference[data-current-page] #page-settings .settings-device-actions { display: flex; flex-direction: row; flex-wrap: wrap; }
body#pos-ui.pos-reference[data-current-page] #page-settings .staff-actions { width: auto; flex: 0 1 auto; }

/* Settlement and shift keep their original safeguards within the same visual system. */
body#pos-ui.pos-reference[data-current-page] #page-checkout.active { padding: 0; background: #e3e6ea; }
body#pos-ui.pos-reference[data-current-page] #page-checkout .checkout-wrap { gap: 8px; padding: 0; max-width: none; }
body#pos-ui.pos-reference[data-current-page] #page-checkout .ui-card { background: white; border: 0; border-radius: 0; padding: 22px; box-shadow: none; }
body#pos-ui.pos-reference[data-current-page] #page-checkout h2 { font-size: 22px; font-weight: 400; }
body#pos-ui.pos-reference[data-current-page] #page-checkout .checkout-options { gap: 8px; }
body#pos-ui.pos-reference[data-current-page] #page-checkout .bill-totals .grand { color: #2196f3; }
body#pos-ui.pos-reference[data-current-page] #page-checkout .pay-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
body#pos-ui.pos-reference[data-current-page] #page-checkout .pay-method { height: 72px !important; min-height: 72px !important; background: #fff; border: 1px solid #dbe0e6; font-size: 18px !important; }
body#pos-ui.pos-reference[data-current-page] #page-checkout .pay-method.active { background: #e5f3ff; color: #2196f3; border-color: #2196f3; }
body#pos-ui.pos-reference[data-current-page] #page-checkout #btnConfirmPay { width: 100%; margin: 0; height: 68px !important; min-height: 68px !important; font-size: 22px !important; }
body#pos-ui.pos-reference[data-current-page] #page-checkout .checkout-confirm { margin-top: auto; }
body#pos-ui.pos-reference[data-current-page] #page-checkout .split-box { border-radius: 5px; background: #f1f8ff; }
body#pos-ui.pos-reference[data-current-page] #page-shift.active { padding: 20px 24px; gap: 16px; background: #f2f5f8; }
body#pos-ui.pos-reference[data-current-page] #page-shift .shift-card { border: 1px solid #dfe4ea; border-radius: 5px; box-shadow: none; padding: 22px; }
body#pos-ui.pos-reference[data-current-page] #page-shift .shift-page-head h1 { font-size: 25px; font-weight: 400; }
body#pos-ui.pos-reference[data-current-page] #page-shift .shift-section-head h3 { font-size: 21px; font-weight: 400; }
body#pos-ui.pos-reference[data-current-page] #page-shift .shift-step { border-radius: 5px; background: #e4f2ff; color: #2196f3; }
body#pos-ui.pos-reference[data-current-page] dialog { border-radius: 7px; box-shadow: 0 18px 60px #183c5d30; max-height: calc(100vh - 32px); }
body#pos-ui.pos-reference[data-current-page] :-webkit-any(dialog,.modal) .modal-head { padding: 18px 22px; background: #f4f8fb; border-bottom: 1px solid #e3e8ee; }
body#pos-ui.pos-reference[data-current-page] :-webkit-any(dialog,.modal) .modal-head h2 { font-size: 23px; font-weight: 400; }
body#pos-ui.pos-reference[data-current-page] :-webkit-any(dialog,.modal) .modal-foot { padding: 16px 22px; border-top: 1px solid #e6eaee; }

body#pos-ui.pos-reference[data-current-page] #page-orders { position: relative; }
body#pos-ui.pos-reference[data-current-page] .pos-order-detail-dock { display: contents; }
body#pos-ui.pos-reference[data-current-page] .pos-detail-empty { display: none; }
body#pos-ui.pos-reference[data-current-page] #page-order .dish-grid-items { display: contents; }
body#pos-ui.pos-reference[data-current-page] #page-order .dish-card.pos-custom-dish { align-items: center; justify-content: center; gap: 18px; color: #2196f3; font-size: 22px !important; }
body#pos-ui.pos-reference[data-current-page] #page-order .pos-custom-dish svg { width: 46px; height: 46px; fill: currentColor; }
body#pos-ui.pos-reference[data-current-page] #page-order .dish-toolbar { justify-content: space-between; flex-wrap: wrap; }
body#pos-ui.pos-reference[data-current-page] #page-order .order-scanner { margin-right: auto; background: transparent; border: 0; padding: 0; }
body#pos-ui.pos-reference[data-current-page] #page-order .order-scanner[open] { flex: 1 0 100%; }
body#pos-ui.pos-reference[data-current-page] #page-order .pos-order-note { margin-bottom: 8px; }
body#pos-ui.pos-reference[data-current-page] #page-order .pos-order-note > summary { font-size: 14px !important; min-height: 48px; min-block-size: 48px !important; color: #5f7b94; padding: 8px 0; cursor: pointer; }
body#pos-ui.pos-reference[data-current-page] #page-order .order-note-row { display: flex; flex-wrap: nowrap; align-items: center; }
body#pos-ui.pos-reference[data-current-page] #page-order #orderNote { flex: 1; min-width: 48px; }
body#pos-ui.pos-reference[data-current-page] #page-order #hwOrder { flex-shrink: 0; }
body#pos-ui.pos-reference[data-current-page][data-current-page="members"] .pos-store-clock { display: none; }
body#pos-ui.pos-reference[data-current-page] #page-members .member-page-head { min-height: 64px; }
body#pos-ui.pos-reference[data-current-page] #page-members .member-heading { display: none; }
body#pos-ui.pos-reference[data-current-page] #page-members #balanceReconcileCard { border: 0; border-bottom: 1px solid #e3e8ee; border-radius: 0; padding: 0 20px; margin: 0; display: block; }
body#pos-ui.pos-reference[data-current-page] #page-members #balanceReconcileCard > summary { padding: 10px 0; font-size: 14px !important; color: #6388a6; cursor: pointer; }
body#pos-ui.pos-reference[data-current-page] #page-members #balanceReconcileCard[open] { padding-bottom: 16px; }
body#pos-ui.pos-reference[data-current-page] #page-members #memberStatus { font-size: 12px; padding: 6px 0; border: 0; min-height: 0; }
body#pos-ui.pos-reference[data-current-page] #page-products .prod-cat-panel, body#pos-ui.pos-reference[data-current-page] #page-reports .report-nav { width: clamp(200px,18.75vw,360px); }
body#pos-ui.pos-reference[data-current-page] #page-settings.active { grid-template-columns: clamp(220px,26vw,500px) minmax(0,1fr); }
body#pos-ui.pos-reference[data-current-page] #page-settings .set-card > .btn { align-self: flex-end; width: auto; min-width: 140px; }
body#pos-ui.pos-reference[data-current-page] #page-reports .report-date-field { flex: 0 1 260px; }
body#pos-ui.pos-reference[data-current-page] #page-reports .report-range-actions { flex: 0 0 auto; width: auto; margin: 0; }
body#pos-ui.pos-reference[data-current-page] #page-reports #reportRangeQuery { width: 120px; flex: 0 0 auto; }
body#pos-ui.pos-reference[data-current-page] #page-shift #shiftOpenForm { max-width: 860px; width: 100%; }
body#pos-ui.pos-reference[data-current-page] #page-shift .shift-actions .btn { width: auto; min-width: 180px; max-width: 100%; }
@media (min-width: 651px) {
  body#pos-ui.pos-reference[data-current-page] #page-orders .orders-results { overflow: hidden; }
  body#pos-ui.pos-reference[data-current-page] #page-orders .orders-results > .orders-table { flex: 1 1 auto; min-height: 0; overflow: auto; }
  body#pos-ui.pos-reference[data-current-page] #page-orders .orders-results > :-webkit-any(.filter-row,.orders-pagination) { flex-shrink: 0; }
}
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-kpi { padding: 0 10px; gap: 5px; }
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-kpi > span { font-size: 13px; }
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-kpi strong { font-size: 21px; font-weight: 400; }
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-summary-note { font-size: 12px; margin-top: 12px; }
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-search-bar label { font-size: 13px; }
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-date-field { flex-basis: 220px; }
body#pos-ui.pos-reference[data-current-page] #page-orders #orderListStatus { font-size: 12px; padding-top: 8px; padding-bottom: 8px; }
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-heading h1 { display: none; }
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-table .amt { font-size: 20px; font-weight: 400; }
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-table .tname { font-weight: 400; }
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-table .badge { font-size: 13px; border-radius: 4px; font-weight: 400; }
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-action-group .btn { font-size: 14px !important; padding-left: 10px; padding-right: 10px; }
@media (min-width: 1100px) {
  body#pos-ui.pos-reference[data-current-page] #page-orders.active { padding: 0 30% 0 0; overflow: hidden; }
  body#pos-ui.pos-reference[data-current-page] #page-orders .pos-order-detail-dock { display: block; position: absolute; top: 0; bottom: 0; right: 0; width: 30%; border-left: 1px solid #dfe4ea; background: #fff; overflow: hidden; }
  body#pos-ui.pos-reference[data-current-page] .pos-detail-empty { height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; padding: 24px; color: #9ba5af; text-align: center; }
  body#pos-ui.pos-reference[data-current-page] .pos-detail-empty strong { font-size: 24px; font-weight: 400; color: #7597b3; }
  body#pos-ui.pos-reference[data-current-page] .pos-order-detail-dock.has-open-dialog .pos-detail-empty { display: none; }
  body#pos-ui.pos-reference[data-current-page] #orderDetailDialog.pos-docked[open] { position: absolute; top: 0; right: 0; bottom: 0; left: 0; display: flex; flex-direction: column; width: 100%; height: 100%; max-width: none; max-height: none; margin: 0; border: 0; border-radius: 0; box-shadow: none; background: #fff; }
  body#pos-ui.pos-reference[data-current-page] #orderDetailDialog.pos-docked .modal-head { padding: 14px 18px; }
  body#pos-ui.pos-reference[data-current-page] #orderDetailDialog.pos-docked .modal-head h2 { font-size: 20px; }
  body#pos-ui.pos-reference[data-current-page] #orderDetailDialog.pos-docked .order-detail-body { padding: 18px; overflow: auto; flex: 1; min-height: 0; }
  body#pos-ui.pos-reference[data-current-page] #orderDetailDialog.pos-docked :-webkit-any(.product-edit-hint,.report-status,dt,small,th,td) { font-size: 13px; }
  body#pos-ui.pos-reference[data-current-page] #orderDetailDialog.pos-docked .order-detail-identity { font-size: 17px; font-weight: 400; }
  body#pos-ui.pos-reference[data-current-page] #orderDetailDialog.pos-docked .modal-foot { padding: 12px; grid-template-columns: repeat(2,minmax(0,1fr)); }
  body#pos-ui.pos-reference[data-current-page] #page-orders .orders-table td { padding: 12px; }
}
/* Keep order summaries compact so the cashier can see the actual list. */
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-heading { min-height: 60px; padding-top: 6px; padding-bottom: 6px; }
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-search-bar { padding-top: 10px; padding-bottom: 10px; }
body#pos-ui.pos-reference[data-current-page] #page-orders .order-summary { display: flex; flex-wrap: wrap; gap: 10px 18px; padding: 12px 20px; }
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-kpi { flex-direction: row; align-items: baseline; justify-content: flex-start; padding: 0; border: 0; gap: 6px; }
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-kpi > span { font-size: 14px; }
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-kpi strong { font-size: 18px; }
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-summary-note { flex: 1 0 100%; margin: 0; padding: 6px 0 0; }
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-table th { white-space: nowrap; height: 48px; padding: 8px; }
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-table th:nth-child(1) { width: 22%; }
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-table th:nth-child(2) { width: 6%; }
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-table th:nth-child(3) { width: 5%; }
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-table th:nth-child(4) { width: 16%; }
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-table th:nth-child(5) { width: 11%; }
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-table th:nth-child(6) { width: 12%; }
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-table th:nth-child(7) { width: 28%; }
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-action-group { gap: 4px; }
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-action-group .btn { padding-left: 7px; padding-right: 7px; }
body#pos-ui.pos-reference[data-current-page][data-current-page="products"] .topbar { background: #fff; border-bottom: 1px solid #dfe3e8; }
body#pos-ui.pos-reference[data-current-page][data-current-page="products"] .topbar-brand,
body#pos-ui.pos-reference[data-current-page][data-current-page="products"] .pos-back { color: #343a40; }
body#pos-ui.pos-reference[data-current-page][data-current-page="products"] .pos-top-action { color: #218bd8; }
body#pos-ui.pos-reference[data-current-page] #page-products > .page-head h1 { display: none; }
/* Large terminals keep the same type scale; extra pixels provide working space. */
@media (min-width: 1700px) {
  body#pos-ui.pos-reference[data-current-page] .topbar { min-height:88px;height:88px;padding:10px 24px;gap:20px; }
  body#pos-ui.pos-reference[data-current-page] .topbar-brand { font-size:26px; }
  body#pos-ui.pos-reference[data-current-page] .pos-title-group { min-width:200px; }
  body#pos-ui.pos-reference[data-current-page] .search { max-width:720px; }
  body#pos-ui.pos-reference[data-current-page] .search input { height:54px;font-size:19px; }
  body#pos-ui.pos-reference[data-current-page] .pos-top-action { min-width:76px;font-size:16px!important; }
  body#pos-ui.pos-reference[data-current-page] .pos-top-action svg { width:28px;height:28px; }
  body#pos-ui.pos-reference[data-current-page] #page-tables .table-grid { grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); }
  body#pos-ui.pos-reference[data-current-page] #page-tables .table-card,
  body#pos-ui.pos-reference[data-current-page] #page-tables .table-card-button { min-height:180px;min-block-size:180px!important; }
  body#pos-ui.pos-reference[data-current-page] #page-tables .table-card .name { font-size:28px; }
  body#pos-ui.pos-reference[data-current-page] #page-order .dish-card { min-height:194px; }
  body#pos-ui.pos-reference[data-current-page] #page-order .dish-card .d-name { font-size:22px; }
  body#pos-ui.pos-reference[data-current-page] #page-order .dish-card .d-price { font-size:23px; }
  body#pos-ui.pos-reference[data-current-page] #page-products .prod-card-name { font-size:20px; }
}
@media (max-width: 1199px) {
  body#pos-ui.pos-reference[data-current-page] .topbar { gap: 12px; padding: 8px 12px; }
  body#pos-ui.pos-reference[data-current-page] .topbar-brand { font-size: 22px; }
  body#pos-ui.pos-reference[data-current-page] .topbar-clock { font-size: 11px; }
  body#pos-ui.pos-reference[data-current-page] .pos-top-action { min-width: 55px; padding-left: 4px; padding-right: 4px; font-size: 13px !important; }
  body#pos-ui.pos-reference[data-current-page] .search input { font-size: 15px; }
  body#pos-ui.pos-reference[data-current-page] #page-order.active { grid-template-columns: 300px 90px minmax(0,1fr); }
  body#pos-ui.pos-reference[data-current-page] #page-order .dish-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  body#pos-ui.pos-reference[data-current-page] #page-order .dish-card .d-name { font-size: 19px; }
  body#pos-ui.pos-reference[data-current-page] #page-products #productsBody { grid-template-columns: repeat(3,minmax(0,1fr)); }
  body#pos-ui.pos-reference[data-current-page] .pos-launchers { grid-template-columns: repeat(6,minmax(0,1fr)); }
  body#pos-ui.pos-reference[data-current-page] .pos-launcher { font-size: 17px !important; }
}
@media (max-width: 900px) {
  body#pos-ui.pos-reference[data-current-page] { --pos-side: 170px; }
  body#pos-ui.pos-reference[data-current-page] .topbar { flex-wrap: wrap; height: auto; min-height: 80px; gap: 4px 12px; padding: 8px 12px; }
  body#pos-ui.pos-reference[data-current-page] .pos-title-group { flex: 1; }
  body#pos-ui.pos-reference[data-current-page] .topbar .search { order: 2; flex: 1 0 100%; max-width: none; }
  body#pos-ui.pos-reference[data-current-page] .topbar .search input { height: 48px; min-block-size: 48px !important; }
  body#pos-ui.pos-reference[data-current-page] .topbar .topbar-actions { display: flex; flex-wrap: nowrap; width: auto; gap: 0 !important; }
  body#pos-ui.pos-reference[data-current-page] .topbar-clock { display: none; }
  body#pos-ui.pos-reference[data-current-page] .pos-top-action { min-width: 48px; height: 58px; font-size: 12px !important; }
  body#pos-ui.pos-reference[data-current-page] .pos-top-action svg { width: 22px; height: 22px; }
  body#pos-ui.pos-reference[data-current-page] #page-tables.active { grid-template-columns: var(--pos-side) minmax(0,1fr); }
  body#pos-ui.pos-reference[data-current-page] #page-tables .tables-side { display: flex; padding: 12px 8px; }
  body#pos-ui.pos-reference[data-current-page] #page-tables .status-item { font-size: 16px !important; gap: 8px; padding-left: 8px; padding-right: 8px; }
  body#pos-ui.pos-reference[data-current-page] #page-tables .tables-main { flex: 1; min-height: 0; }
  body#pos-ui.pos-reference[data-current-page] #page-tables .table-grid { grid-template-columns: repeat(auto-fill,minmax(160px,1fr)); flex: 1; min-height: 0; overflow: auto; }
  body#pos-ui.pos-reference[data-current-page] #page-order.active { grid-template-columns: 280px 88px minmax(0,1fr); }
  body#pos-ui.pos-reference[data-current-page] #page-order .dish-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body#pos-ui.pos-reference[data-current-page] #page-order .dish-card { padding: 14px 12px; min-height: 156px; }
  body#pos-ui.pos-reference[data-current-page] #page-products #productsBody { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body#pos-ui.pos-reference[data-current-page] .pos-launchers { grid-template-columns: repeat(4,minmax(0,1fr)); }
  body#pos-ui.pos-reference[data-current-page] #page-more.active { padding: 24px; }
  body#pos-ui.pos-reference[data-current-page] .pos-launcher-icon { width: 84px; height: 84px; }
  body#pos-ui.pos-reference[data-current-page] #page-reports .report-nav-btn { padding: 18px; font-size: 16px !important; }
  body#pos-ui.pos-reference[data-current-page] #page-reports .report-view { padding: 16px; }
  body#pos-ui.pos-reference[data-current-page] #page-settings .pos-settings-nav button { padding: 18px; }
  body#pos-ui.pos-reference[data-current-page] #page-settings .pos-settings-main { padding: 16px; }
  body#pos-ui.pos-reference[data-current-page] #page-settings .set-card { padding: 18px; }
  body#pos-ui.pos-reference[data-current-page] #page-settings .pos-settings-nav strong { font-size: 17px; }
}
@media (max-width: 650px) {
  html.has-pos-shell { overflow: auto; }
  body#pos-ui.pos-reference[data-current-page] { height: auto; min-height: 100vh; overflow: auto; }
  body#pos-ui.pos-reference[data-current-page] .app { height: auto; min-height: 100vh; }
  body#pos-ui.pos-reference[data-current-page] .main, body#pos-ui.pos-reference[data-current-page] .content { overflow: visible; }
  body#pos-ui.pos-reference[data-current-page] .topbar { flex-direction: column; flex-wrap: nowrap; align-items: stretch; height: auto; gap: 5px; }
  body#pos-ui.pos-reference[data-current-page] .pos-title-group { min-height: 48px; flex: 0 0 auto; }
  body#pos-ui.pos-reference[data-current-page] .topbar-brand { font-size: 22px; }
  body#pos-ui.pos-reference[data-current-page] .topbar .topbar-actions { width: 100%; overflow-x: auto; justify-content: space-between; }
  body#pos-ui.pos-reference[data-current-page] .pos-top-action { flex: 0 0 52px; }
  body#pos-ui.pos-reference[data-current-page] .topbar .search { order: 0; margin: 0; flex: 0 0 46px; width: 100%; height: 46px; }
  body#pos-ui.pos-reference[data-current-page] #page-tables.active { display: flex; flex-direction: column; height: auto; overflow: visible; }
  body#pos-ui.pos-reference[data-current-page] #page-tables .tables-side { display: flex; flex-direction: column; gap: 8px; overflow: visible; }
  body#pos-ui.pos-reference[data-current-page] #page-tables .status-list { flex-direction: row; overflow-x: auto; }
  body#pos-ui.pos-reference[data-current-page] #page-tables .status-item { white-space: nowrap; }
  body#pos-ui.pos-reference[data-current-page] #page-tables .tables-summary { flex-direction: row; justify-content: space-between; padding: 10px; }
  body#pos-ui.pos-reference[data-current-page] #page-tables .tables-summary strong { font-size: 20px; }
  body#pos-ui.pos-reference[data-current-page] #page-tables .tables-operations .ops-stack { display: grid; grid-template-columns: 1fr 1fr; }
  body#pos-ui.pos-reference[data-current-page] #page-tables .tables-main { overflow: visible; }
  body#pos-ui.pos-reference[data-current-page] #page-tables .table-grid { grid-template-columns: repeat(2,minmax(0,1fr)); overflow: visible; }
  body#pos-ui.pos-reference[data-current-page] #page-tables .table-card .name { font-size: 23px; }
  body#pos-ui.pos-reference[data-current-page] #page-order.active { display: flex; flex-direction: column; overflow: visible; height: auto; }
  body#pos-ui.pos-reference[data-current-page] #page-order .cart-panel { min-height: 340px; }
  body#pos-ui.pos-reference[data-current-page] #page-order .line-ops { flex-direction: row; overflow-x: auto; padding: 8px; }
  body#pos-ui.pos-reference[data-current-page] #page-order .line-ops > .btn { width: auto; min-width: 90px; }
  body#pos-ui.pos-reference[data-current-page] #page-order .line-ops-qty { flex-direction: row; min-width: 156px; }
  body#pos-ui.pos-reference[data-current-page] #page-order .line-ops-qty .btn { width: 48px; }
  body#pos-ui.pos-reference[data-current-page] #page-order .line-ops-qty span { min-width: 48px; }
  body#pos-ui.pos-reference[data-current-page] #page-order .line-ops-target, body#pos-ui.pos-reference[data-current-page] #page-order .line-ops-hint { display: none; }
  body#pos-ui.pos-reference[data-current-page] #page-order .order-menu, body#pos-ui.pos-reference[data-current-page] #page-order .dish-area { overflow: visible; }
  body#pos-ui.pos-reference[data-current-page] #page-order .dish-grid { grid-template-columns: repeat(2,minmax(0,1fr)); overflow: visible; }
  body#pos-ui.pos-reference[data-current-page] .pos-launchers { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px 6px; }
  body#pos-ui.pos-reference[data-current-page] #page-more.active { padding: 16px; }
  body#pos-ui.pos-reference[data-current-page] .pos-more-panel { padding: 18px 10px; }
  body#pos-ui.pos-reference[data-current-page] .pos-launcher { font-size: 15px !important; min-height: 130px !important; }
  body#pos-ui.pos-reference[data-current-page] .pos-launcher-icon { width: 72px; height: 72px; }
  body#pos-ui.pos-reference[data-current-page] .pos-more-heading { padding: 0 8px; gap: 12px; }
  body#pos-ui.pos-reference[data-current-page] .pos-more-heading h1 { font-size: 24px; }
  body#pos-ui.pos-reference[data-current-page] .pos-more-heading span { font-size: 14px; }
  body#pos-ui.pos-reference[data-current-page] .pos-more-footer { flex-wrap: wrap; padding-left: 8px; padding-right: 8px; }
  body#pos-ui.pos-reference[data-current-page] #page-products .products-body { flex-direction: column; overflow: visible; }
  body#pos-ui.pos-reference[data-current-page] #page-products .prod-cat-panel { width: 100%; }
  body#pos-ui.pos-reference[data-current-page] #page-products .prod-cat-list { flex-direction: row; overflow-x: auto; }
  body#pos-ui.pos-reference[data-current-page] #page-products .prod-cat-item { flex-shrink: 0; }
  body#pos-ui.pos-reference[data-current-page] #page-products #productsBody { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
  body#pos-ui.pos-reference[data-current-page] #page-products #productsBody tr { padding: 12px; }
  body#pos-ui.pos-reference[data-current-page] #page-products .prod-card-name { font-size: 19px; }
  body#pos-ui.pos-reference[data-current-page] #page-members .member-overview { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
  body#pos-ui.pos-reference[data-current-page] #page-members .member-overview .kpi { padding: 0 10px; }
  body#pos-ui.pos-reference[data-current-page] #page-reports.active, body#pos-ui.pos-reference[data-current-page] #page-settings.active { display: flex; flex-direction: column; overflow: visible; height: auto; }
  body#pos-ui.pos-reference[data-current-page] #page-reports .report-nav, body#pos-ui.pos-reference[data-current-page] #page-settings .pos-settings-nav { width: 100%; flex-direction: row; overflow-x: auto; }
  body#pos-ui.pos-reference[data-current-page] #page-reports .report-nav-btn, body#pos-ui.pos-reference[data-current-page] #page-settings .pos-settings-nav button { flex-shrink: 0; padding: 12px 16px; min-height: 56px; white-space: nowrap; }
  body#pos-ui.pos-reference[data-current-page] #page-settings .pos-settings-nav span { display: none; }
  body#pos-ui.pos-reference[data-current-page] #page-reports .report-main { overflow: visible; }
  body#pos-ui.pos-reference[data-current-page] #page-reports .report-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px 0; }
  body#pos-ui.pos-reference[data-current-page] #page-checkout .checkout-wrap { display: flex; flex-direction: column; }
  body#pos-ui.pos-reference[data-current-page] #page-checkout.active { overflow: visible; }
  body#pos-ui.pos-reference[data-current-page] #page-shift.active { padding: 16px; overflow: visible; }
  body#pos-ui.pos-reference[data-current-page] #page-shift .shift-current { display: flex; flex-direction: column; }
  body#pos-ui.pos-reference[data-current-page] #page-orders, body#pos-ui.pos-reference[data-current-page] #page-members, body#pos-ui.pos-reference[data-current-page] #page-products { overflow: visible; height: auto; }
  body#pos-ui.pos-reference[data-current-page] :-webkit-any(.btn,.ui-button):-webkit-any(.primary,.hot) { width: auto; flex-basis: auto; }
}

/* Management refresh: semantic table backgrounds and readable capsule actions. */
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card[data-status="free"] { background:#fff; }
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card[data-status="opened"] { background:#ffe082; border-top-color:#efb619; }
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card[data-status="opened"] .name,
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card[data-status="opened"] .meta,
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card[data-status="opened"] .amount,
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card[data-status="opened"] .table-card-action { color:#463600; }
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card[data-status="order"] { background:#c93e42; border-top-color:#a52129; }
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card[data-status="order"] .name,
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card[data-status="order"] .meta,
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card[data-status="order"] .amount,
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card[data-status="order"] .table-card-action { color:#fff; }
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card[data-status="order"] .badge { background:#fff; color:#a52129; }
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card[data-status="opened"] .badge { background:#fff8de; color:#665000; }
body#pos-ui.pos-reference[data-current-page] #page-tables .status-item .dot.opened { background:#efb619; border-color:#efb619; }
body#pos-ui.pos-reference[data-current-page] #page-tables .status-item .dot.order { background:#c93e42; border-color:#c93e42; }
body#pos-ui.pos-reference[data-current-page] #page-products .product-pill { width:auto; min-width:80px; height:48px; padding:0 14px; border-radius:999px; border:1px solid #cbd5df; background:#edf1f5; color:#455361; font-size:14px; line-height:46px; }
body#pos-ui.pos-reference[data-current-page] #page-products .product-pill::after,
body#pos-ui.pos-reference[data-current-page] #page-products .product-pill::before { display:none; }
body#pos-ui.pos-reference[data-current-page] #page-products .product-pill.listed { background:#e5f7ee; border-color:#45aa79; color:#14653d; }
body#pos-ui.pos-reference[data-current-page] #page-products .product-pill.on { background:#fff0dc; border-color:#dbaa54; color:#8a5100; }
body#pos-ui.pos-reference[data-current-page] #page-products .prod-card-actions .danger { color:#b32e36; border-color:#efb9bd; }
body#pos-ui.pos-reference[data-current-page] #page-table-management { padding:24px; overflow:auto; }
body#pos-ui.pos-reference[data-current-page] #page-table-management .area-card { background:#fff; padding:24px; border-radius:12px; }
.printer-management-tabs { display:flex; gap:24px; border-bottom:1px solid #e3eaf0; margin-bottom:24px; }
.printer-management-tabs button { background:none; border:0; border-bottom:3px solid transparent; padding:12px 8px; color:#536474; font:inherit; cursor:pointer; }
.printer-management-tabs .active { color:#009fe8; border-bottom-color:#009fe8; }
.template-tabs { margin-bottom:24px; background:#fff; padding:0 20px; overflow-x:auto; }
.template-tabs button { white-space:nowrap; }
/* Restaurant operations, matching the existing blue cashier shell. */
#pos-ui .feature-page{padding:18px 22px;min-width:0;color:#26384c;overflow:auto;background:#f2f5f8}
#pos-ui .feature-page.active{display:block}
#pos-ui .feature-page h1,#pos-ui .feature-page h2,#pos-ui .feature-dialog h2{margin:0;font-weight:650;letter-spacing:0}
#pos-ui .feature-page h1{font-size:23px}#pos-ui .feature-page h2{font-size:18px}
#pos-ui .feature-page p{margin:8px 0;color:#6d7b8d;line-height:1.6}
#pos-ui .feature-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px;min-height:54px}
#pos-ui .feature-toolbar>div:last-child{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
#pos-ui .feature-toolbar>div:first-child{display:block}
#pos-ui .feature-card{min-width:0;background:#fff;border:1px solid #e0e7ee;border-radius:10px;padding:20px;box-shadow:0 2px 7px #1b365608}
#pos-ui .feature-two-column{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:18px;align-items:start}
#pos-ui #page-templates .feature-two-column{grid-template-columns:minmax(300px,470px) minmax(250px,1fr)}
#pos-ui .feature-master-detail{display:grid;grid-template-columns:290px minmax(0,1fr);gap:18px;align-items:start}
#pos-ui .feature-tabs{display:flex;gap:4px;align-items:center}
#pos-ui .feature-tabs button{border:0;border-bottom:3px solid transparent;background:none;padding:12px 22px;font:inherit;font-size:19px;font-weight:600;color:#7b899c;cursor:pointer}
#pos-ui .feature-tabs button[aria-selected=true]{color:#2189eb;border-bottom-color:#2189eb}
#pos-ui .feature-filter-bar{display:flex;gap:12px;flex-wrap:wrap;align-items:end;margin:14px 0}
#pos-ui .feature-filter-bar.feature-card{margin:0 0 18px}
#pos-ui .feature-field{display:flex;flex-direction:column;gap:7px;min-width:0;max-width:100%;font-size:13px;font-weight:500;color:#637489}
#pos-ui .feature-field input,#pos-ui .feature-field select,#pos-ui .feature-field textarea,#pos-ui .feature-table input{height:48px;border:1px solid #d8e1eb;border-radius:6px;background:#fff;color:#26384c;padding:9px 12px;font:inherit;font-size:14px;box-sizing:border-box;min-width:48px;max-width:100%;outline:none}
#pos-ui .feature-field textarea{height:auto;min-height:90px;resize:vertical}
#pos-ui .feature-field input:focus,#pos-ui .feature-field select:focus,#pos-ui .feature-field textarea:focus,#pos-ui .feature-table input:focus{border-color:#2389ea;box-shadow:0 0 0 3px #2389ea15}
#pos-ui .feature-filter-bar>.feature-field{flex:1 1 140px}
#pos-ui .feature-form{display:flex;flex-direction:column;gap:12px}
#pos-ui .feature-form>.feature-filter-bar{margin:0}
#pos-ui .feature-form>p.feature-help{margin:0}
#pos-ui #templateForm .feature-check{min-height:30px}
#pos-ui .custody-new>.feature-form{gap:10px;padding:18px}
#pos-ui .custody-new>.feature-form .feature-field{gap:5px}
#pos-ui .custody-new>.feature-form textarea{min-height:58px;height:58px}
#pos-ui .custody-new>.feature-form .feature-check{min-height:30px}
#pos-ui .feature-form>.feature-field{width:100%}
#pos-ui .feature-form-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid #e6ecf3;padding-top:16px}
#pos-ui .feature-form .btn.primary{min-height:56px}
#pos-ui .feature-check{display:flex;align-items:center;gap:8px;font-size:14px;min-height:42px;color:#42556d;cursor:pointer}
#pos-ui .feature-check input,#pos-ui .feature-product-picker input,#pos-ui .feature-mode-grid input{width:48px;height:48px;}
body#pos-ui.pos-reference[data-current-page] :-webkit-any(.feature-check,.feature-product-picker,.feature-mode-grid) input{width:48px;height:48px;min-width:48px;min-height:48px;min-block-size:48px!important;min-inline-size:48px!important;padding:0;flex:0 0 48px;-webkit-appearance:none;display:grid;place-content:center;border:0;background:transparent;cursor:pointer}
body#pos-ui.pos-reference[data-current-page] .custody-new>.feature-form .feature-field input{height:48px;min-height:48px;min-block-size:48px!important}
#pos-ui .feature-help{font-size:12px;line-height:1.65;color:#7c899a}
#pos-ui .feature-table{overflow:auto;max-width:100%;border:1px solid #e4eaf1;border-radius:7px;margin:16px 0}
#pos-ui .feature-table table{width:100%;border-collapse:collapse;text-align:left;font-size:14px}
#pos-ui .feature-table th{background:#f6f8fb;color:#66788f;font-weight:500;padding:13px 16px;white-space:nowrap}
#pos-ui .feature-table td{padding:14px 16px;border-top:1px solid #e9eef4;color:#293c54;vertical-align:middle}
#pos-ui .feature-table td small{display:block;margin-top:5px;color:#8b98a9}
#pos-ui .feature-table input[type=number]{width:100px;text-align:center}
#pos-ui .feature-empty{display:block;text-align:center;padding:55px 14px;color:#96a2b2;font-size:14px}
#pos-ui .feature-record-list{display:flex;flex-direction:column;gap:8px}
#pos-ui .feature-record{width:100%;text-align:left;border:1px solid #e3eaf2;border-radius:8px;background:#fff;padding:15px;color:#324761;cursor:pointer;display:flex;flex-direction:column;gap:8px;font:inherit}
#pos-ui .feature-record:hover{border-color:#9bc6f0;background:#f6fbff}
#pos-ui .feature-record[aria-pressed=true]{background:#edf6ff;border-color:#258eec}
#pos-ui .feature-record strong{font-size:15px}.feature-record span{font-size:13px}.feature-record small{font-size:11px;color:#8090a5;overflow-wrap:anywhere}
#pos-ui .feature-badge{font-size:12px!important;display:inline-block;padding:3px 7px;margin-left:5px;background:#edf4fd;color:#5185b7;border-radius:4px;white-space:nowrap}
#pos-ui .feature-badge.stored{color:#008b76;background:#e2f7ef}#pos-ui .feature-badge.expired{color:#bb7827;background:#fff2da}
#pos-ui .feature-badge.cancelled{color:#a16a6a;background:#fae9e8}#pos-ui .feature-badge.collected{color:#7f8d9e;background:#f1f3f6}
#pos-ui .feature-detail-head{display:flex;justify-content:space-between;align-items:start;gap:12px}
#pos-ui .feature-detail-head p{font-size:12px;overflow-wrap:anywhere}
#pos-ui .feature-detail-meta{display:flex;gap:16px;flex-wrap:wrap;border-top: 1px solid #edf1f6; border-bottom: 1px solid #edf1f6;padding:13px 0;margin:12px 0;font-size:13px;color:#718197}
#pos-ui .feature-history,#pos-ui .feature-renew{border-top:1px solid #e4ebf3;margin-top:18px;padding-top:14px}
#pos-ui .feature-history summary,#pos-ui .feature-renew summary{cursor:pointer;color:#486789;font-size:14px}
#pos-ui .feature-history>div{padding:14px 4px;border-bottom:1px solid #eef2f6;font-size:12px;color:#74869d}
#pos-ui .feature-history small{display:block;padding:3px 0;color:#66788e}
#pos-ui .feature-product-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;max-height:48vh;overflow:auto;padding:2px}
#pos-ui .feature-product-picker label{padding:13px 10px;border:1px solid #e3eaf2;border-radius:6px;display:flex;align-items:center;gap:9px;cursor:pointer;font-size:14px}
#pos-ui .feature-product-picker label.has-checked-input{border-color:#258eec;background:#f0f7ff}
#pos-ui .feature-product-picker small{display:block;font-size:11px;color:#8494a8;margin-top:5px}
#pos-ui .feature-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding:14px 0}
#pos-ui .feature-metrics>div{border-right:1px solid #e4eaf1;padding:0 18px}.feature-metrics>div:last-child{border:0}
#pos-ui .feature-metrics span{display:block;font-size:13px;color:#7c8b9d}.feature-metrics strong{display:block;margin-top:8px;color:#2486df;font-size:25px;font-weight:600;font-variant-numeric:tabular-nums}
#pos-ui .feature-preview{display:flex;flex-direction:column;align-items:center;gap:12px;padding:0 15px 28px;background:#e7ecf3;border-radius:10px;min-width:0;overflow:hidden}
#pos-ui .feature-preview>p{font-size:12px}
#pos-ui .feature-paper{background:#fff;color:#202b3a;max-width:100%;padding:22px 18px 28px;box-sizing:border-box;box-shadow:0 8px 22px #263e5918;line-height:1.65;overflow-wrap:anywhere;border-bottom:5px dotted #e7ecf3}
#pos-ui .feature-paper h2,#pos-ui .feature-paper h3{text-align:center;font-size:1.2em;margin:5px 0 14px}
#pos-ui .feature-paper p{color:#26384c;font-size:inherit;margin:7px 0}#pos-ui .feature-paper hr{border:0;border-top:1px dashed #adb7c6;margin:18px 0}
#pos-ui .feature-business{padding-bottom:24px;margin-bottom:22px;border-bottom:1px solid #e3eaf3}
#pos-ui .feature-business h2{font-size:18px;margin:0 0 10px}#pos-ui .feature-business p{font-size:13px;color:#748399}
#pos-ui .feature-mode-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0}
#pos-ui .feature-mode-grid label{border:1px solid #dce5ef;border-radius:8px;padding:18px 14px;cursor:pointer;display:grid;grid-template-columns:22px 1fr;gap:10px;align-items:center;background:#fff}
#pos-ui .feature-mode-grid label.has-checked-input{border-color:#238dec;background:#edf6ff}
#pos-ui .feature-mode-grid strong{font-size:15px;font-weight:600}.feature-mode-grid span{grid-column:1/-1;color:#7c8ca0;font-size:12px;line-height:1.5}
#pos-ui .feature-order-mode{display:flex;align-items:center;gap:10px;padding:7px 0;margin-top:4px}
#pos-ui .feature-order-mode .feature-field{flex-direction:row;align-items:center;gap:8px;font-size:12px}
#pos-ui .feature-order-mode select{height:48px;padding:4px 7px;font-size:12px;width:165px}
#pos-ui .feature-order-mode>span{font-size:11px;color:#8896a7}
#pos-ui .feature-line-note{display:block;font-size:12px;color:#7b8a9e;padding:5px 0;overflow-wrap:anywhere}
#pos-ui .feature-line-note b{font-size:11px;font-weight:500;color:#e09028;background:#fff3db;border-radius:3px;padding:2px 5px}
#pos-ui .feature-dialog{width:min(480px,90vw);padding:25px;border:1px solid #e2e9f0;border-radius:12px;box-shadow:0 18px 60px #15335a36}
#pos-ui .feature-dialog::backdrop{background:#18304d55}#pos-ui .feature-dialog header{display:flex;align-items:center;justify-content:space-between;gap:20px}
#pos-ui .feature-dialog form{display:flex;flex-direction:column;gap:15px}.feature-dialog p{margin:0;color:#7e8ca0;font-size:13px}
#pos-ui .feature-intent{padding:14px 18px;margin:12px 18px;background:#fff6e3;border:1px solid #edcc90;border-radius:8px;display:flex;gap:15px;align-items:center;flex-wrap:wrap;font-size:13px;color:#926023}
#pos-ui .feature-intent>span{flex:1 1 280px}.feature-intent>div{display:flex;gap:8px;flex-wrap:wrap}
#pos-ui .feature-feedback:empty{display:none}#pos-ui .feature-feedback{margin:0;padding:10px 22px;color:#aa673d;background:#fff6e9;font-size:13px}
#pos-ui .member-extra-filters{margin:0;padding:12px 20px;background:#fff;border-bottom:1px solid #e2e9f2}
#pos-ui .orders-search-bar{flex-wrap:wrap;align-items:end}
#pos-ui .orders-search-bar>.feature-field{flex:0 1 140px}
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-search-bar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 14px}
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-search-field{grid-column:span 2}
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-search-bar>.feature-field{display:flex;flex-direction:column;gap:6px;margin:0;width:100%}
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-search-bar>.feature-field select{width:100%}
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-table .tname .member-id{font-size:12px;white-space:nowrap;margin-top:4px}
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-table th:nth-child(1){width:20%}
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-table th:nth-child(2){width:8%}
#pos-ui .feature-order-cards{padding:14px;background:#f4f7fa;max-height:none}
#pos-ui .feature-order-cards table,#pos-ui .feature-order-cards tbody{display:block;width:100%}
#pos-ui .feature-order-cards thead{display:none}
#pos-ui .feature-order-cards tbody{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
#pos-ui .feature-order-cards tr{display:flex;flex-wrap:wrap;background:#fff;border:1px solid #dfe7f0;border-radius:8px;padding:14px;align-items:center;gap:6px}
#pos-ui .feature-order-cards td{display:block;border:0;padding:4px!important;width:auto!important;white-space:normal!important}
#pos-ui .feature-order-cards .oid{width:100%!important;font-size:12px;overflow-wrap:anywhere}
#pos-ui .feature-order-cards .tname{flex:1 1 60%;font-size:16px;font-weight:600}
#pos-ui .feature-order-cards .orders-time{font-size:12px;width:100%!important;color:#8392a5}
#pos-ui .feature-order-cards .amt{font-size:20px;flex:1;color:#ee7842}
#pos-ui .feature-order-cards .order-row-actions{width:100%!important;border-top:1px solid #eaf0f6;padding-top:10px!important;margin-top:6px}
@media(max-width:650px){body#pos-ui.pos-reference[data-current-page] #page-orders .orders-search-bar{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1100px){#pos-ui .feature-two-column{grid-template-columns:minmax(0,1fr) 290px}#pos-ui .feature-master-detail{grid-template-columns:240px minmax(0,1fr)}#pos-ui .feature-mode-grid{grid-template-columns:1fr}#pos-ui .feature-order-mode>span{display:none}}
@media(max-width:760px){#pos-ui .feature-page{padding:12px}#pos-ui .feature-toolbar{align-items:start;gap:12px;flex-wrap:wrap}#pos-ui .feature-toolbar h1{font-size:20px}#pos-ui .feature-tabs button{font-size:16px;padding:10px 14px}#pos-ui .feature-two-column,#pos-ui #page-templates .feature-two-column,#pos-ui .feature-master-detail{grid-template-columns:1fr}#pos-ui .feature-card{padding:15px}#pos-ui .feature-record-list{max-height:300px;overflow:auto}#pos-ui .feature-metrics{gap:6px}#pos-ui .feature-metrics>div{padding:0 6px}#pos-ui .feature-metrics strong{font-size:19px}#pos-ui .feature-intent{margin:10px}#pos-ui .feature-order-mode .feature-field>span{display:none}#pos-ui .feature-order-mode select{width:160px}#pos-ui .orders-search-bar>.feature-field{flex:1 1 130px}}

/* Keep the visible mark compact inside its 48px touch target. */
body#pos-ui.pos-reference[data-current-page] :-webkit-any(.feature-check,.feature-product-picker,.feature-mode-grid) input::before{content:"";display:block;width:20px;height:20px;box-sizing:border-box;border:2px solid #8194a6;border-radius:4px;background:#fff}
body#pos-ui.pos-reference[data-current-page] :-webkit-any(.feature-check,.feature-product-picker,.feature-mode-grid) input:checked::before{background:#2189eb;border-color:#2189eb;box-shadow:inset 0 0 0 4px #fff}
body#pos-ui.pos-reference[data-current-page] .feature-mode-grid input::before{border-radius:50%}
body#pos-ui.pos-reference[data-current-page] :-webkit-any(.feature-check,.feature-product-picker,.feature-mode-grid) input:focus{outline:2px solid #2189eb;outline-offset:1px}
/* Shared IME layout: release nested scroll caps only in the focused surface. */
html.keyboard-open body#pos-ui .keyboard-surface {
  position:fixed!important;
  top:calc(var(--keyboard-viewport-top, 0px) + 8px)!important;
  right:0!important; bottom:auto!important; left:0!important;
  margin:0 auto!important; height:auto!important; min-height:0!important;
  max-height:calc(var(--keyboard-viewport-height, 100vh) - 16px)!important;
  overflow-y:auto!important; box-sizing:border-box;
  scroll-padding-top:16px; scroll-padding-bottom:24px;
}
html.keyboard-open body#pos-ui .keyboard-surface .keyboard-scroll-region {
  height:auto!important; min-height:0!important; max-height:none!important;
  overflow:visible!important; flex-shrink:0!important;
}
html.keyboard-open body#pos-ui .keyboard-surface .keyboard-flow {position:static!important;}
html.keyboard-open body#pos-ui .login-screen.keyboard-surface {align-items:flex-start!important;}
html.keyboard-open body#pos-ui input,
html.keyboard-open body#pos-ui textarea,
html.keyboard-open body#pos-ui [contenteditable=true] {scroll-margin-top:24px;scroll-margin-bottom:24px;}

/* Finance feedback stays in the top layer, above the scrolled form. */
body#pos-ui #financeFeedback{width:min(480px,calc(100vw - 32px));max-height:calc(100vh - 32px);padding:0;overflow:auto;border:1px solid #dce4eb;border-radius:12px;background:#fff;color:#25394a;}
body#pos-ui #financeFeedbackText{padding:24px;margin:0;font-size:17px;line-height:1.7;overflow-wrap:anywhere;}
body#pos-ui #financeFeedback .modal-head,body#pos-ui #financeFeedback .modal-foot{padding:18px 24px;}

/* Area/table setup follows the shared, centered form layout on cashier screens. */
body#pos-ui .table-setup-dialog{position:fixed;top:0;right:0;bottom:0;left:0;margin:auto;width:720px;max-width:calc(100vw - 40px);max-height:calc(100vh - 32px);height:fit-content;padding:0;border:1px solid #e2e5e9;border-radius:3px;background:#fff;color:#30353a;box-shadow:0 12px 36px #0003;overflow:auto;box-sizing:border-box;}
body#pos-ui .table-setup-dialog::backdrop{background:rgba(0,0,0,.45);}
body#pos-ui .table-setup-dialog form{margin:0;}
body#pos-ui .table-setup-head{display:flex;align-items:center;justify-content:space-between;padding:10px 24px;background:#f7f7f7;border-bottom:1px solid #eee;}
body#pos-ui .table-setup-head h2{margin:0;font-size:18px;font-weight:600;}
body#pos-ui .table-setup-head .table-setup-close{min-height:48px;padding:6px 10px;border:0;background:transparent;color:#444;}
body#pos-ui .table-setup-body{padding:28px 42px 20px;}
body#pos-ui .table-setup-row{display:grid;grid-template-columns:158px minmax(0,1fr);align-items:center;gap:10px;margin:0 0 22px;font-size:16px;}
body#pos-ui .table-setup-row>span{text-align:right;line-height:1.5;}
body#pos-ui .table-setup-row b{color:#e5484d;font-weight:400;}
body#pos-ui .table-setup-row input,body#pos-ui .table-setup-row select,body#pos-ui .table-category-picker summary{width:100%;min-width:48px;min-height:48px;padding:10px 12px;border:1px solid #d9dde2;border-radius:2px;background:#fff;color:#30353a;font-size:16px;box-sizing:border-box;}
body#pos-ui .table-setup-row input::placeholder{color:#a5aab0;}
body#pos-ui .table-setup-row input:focus,body#pos-ui .table-setup-row select:focus,body#pos-ui .table-category-picker summary:focus{outline:2px solid #2196f3;outline-offset:1px;}
body#pos-ui .table-setup-status{margin:0;min-height:20px;color:#cf3535;font-size:14px;line-height:1.5;}
body#pos-ui .table-setup-foot{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px;border-top:1px solid #e5e7ea;}
body#pos-ui .table-setup-foot .btn{min-width:80px;min-height:48px;padding:9px 20px;border-radius:3px;font-size:16px;}
body#pos-ui .table-category-picker{min-width:0;}
body#pos-ui .table-category-picker summary{cursor:pointer;}
body#pos-ui #areaCategoryOptions{max-height:180px;overflow:auto;border:1px solid #d9dde2;border-top:0;padding:6px 12px;}
body#pos-ui #areaCategoryOptions label{display:flex;align-items:center;gap:10px;min-height:48px;}
body#pos-ui #areaCategoryOptions input{-webkit-appearance:none;display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;min-height:48px;padding:0;border:0;background:transparent;}
body#pos-ui #areaCategoryOptions input::before{content:"";width:20px;height:20px;border:2px solid #a0aab5;border-radius:3px;background:#fff;box-sizing:border-box;}
body#pos-ui #areaCategoryOptions input:checked::before{background:#2196f3;border-color:#2196f3;box-shadow:inset 0 0 0 4px #fff;}
@media(max-width:600px){body#pos-ui .table-setup-body{padding:20px;}body#pos-ui .table-setup-row{grid-template-columns:1fr;gap:6px;margin-bottom:16px;}body#pos-ui .table-setup-row>span{text-align:left;}}

/* Table management: equal toolbar targets; edit only through the centered dialog. */
body#pos-ui #page-table-management .table-management-actions .btn{width:128px;min-width:128px;height:56px!important;min-height:56px!important;min-block-size:56px!important;padding:0 16px;font-size:16px!important;box-sizing:border-box;}
body#pos-ui .table-row-actions{display:flex;gap:10px;flex-wrap:wrap;}
body#pos-ui .table-row-actions .btn{min-width:80px;min-height:48px;}

/* 桌台与区域分别管理；hidden 保持优先于既有按钮/布局样式。 */
#page-table-management [hidden]{display:none!important;}
#page-table-management .table-management-tabs{display:flex;gap:24px;border-bottom:1px solid #dbe5ec;margin-bottom:20px;}
#page-table-management .table-management-tabs button{min-height:56px;padding:12px 24px;border:0;border-bottom:3px solid transparent;background:transparent;color:#536575;font-size:18px;cursor:pointer;}
#page-table-management .table-management-tabs button.active{color:#009fea;border-bottom-color:#009fea;font-weight:600;}
#page-table-management .table-management-tabs button:focus{outline:2px solid #009fea;outline-offset:-2px;}

#page-table-management .area-management-table{width:100%;table-layout:fixed;min-width:640px;}
#page-table-management .area-management-table th:nth-child(1){width:22%;}
#page-table-management .area-management-table th:nth-child(2){width:14%;}
#page-table-management .area-management-table th:last-child{width:208px;}
#page-table-management .area-management-table td{vertical-align:middle;overflow-wrap:break-word;}
#page-table-management .area-management-table .area-sale-categories{white-space:normal;line-height:1.6;}
#page-table-management .area-management-table .table-row-actions{justify-content:flex-end;flex-wrap:nowrap;}
#page-table-management .area-management-table th:last-child{text-align:right;}

/* Printer workspace and booth editor. */
#pos-ui #page-departments{background:#fff;padding:0 24px 24px}
#pos-ui .booth-workspace-tabs{display:flex;gap:26px;border-bottom:1px solid #dce5ed;margin:0 -24px 22px;padding:0 24px;background:#009ff3;color:white;overflow-x:auto}
#pos-ui .booth-workspace-tabs button{background:none;border:0;color:inherit;font:inherit;white-space:nowrap;padding:17px 0;cursor:pointer;border-bottom:3px solid transparent}
#pos-ui .booth-workspace-tabs [aria-current=page]{border-bottom-color:white;font-weight:600}
#pos-ui .booth-layout{display:grid;grid-template-columns:210px 1fr;gap:28px;align-items:start}
#pos-ui .booth-categories{display:grid;gap:14px}
#pos-ui .booth-categories button{position:relative;min-height:110px;background:#fff;border:1px solid #dce1e6;text-align:left;padding:20px;font:inherit;cursor:pointer;color:#344451}
#pos-ui .booth-categories strong{display:block;font-size:21px;font-weight:500;margin-bottom:8px}
#pos-ui .booth-categories small{display:block;font-size:13px}
#pos-ui .booth-categories [aria-pressed=true]{border-color:#009ff3;color:#0089da;background:#f5fbff}
#pos-ui .booth-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:16px}
#pos-ui .booth-card{background:#fff;border:1px solid #e1e7ed;min-height:170px;text-align:left;padding:20px;color:#344451;font:inherit;cursor:pointer;overflow-wrap:anywhere}
#pos-ui .booth-card:hover{border-color:#009ff3;background:#f8fcff}
#pos-ui .booth-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
#pos-ui .booth-card-head strong{font-size:21px;font-weight:550}
#pos-ui .booth-state{font-size:12px;background:#e5f8ee;color:#168458;padding:4px 8px;border-radius:4px;white-space:nowrap}
#pos-ui .booth-state.off{color:#697786;background:#edf0f3}
#pos-ui .booth-card p{font-size:14px;margin:9px 0;line-height:1.5}
#pos-ui .booth-card>small{color:#0089da;font-size:13px}
#pos-ui .booth-new{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#778695;border-style:dashed}
#pos-ui .booth-new strong{font-size:30px;font-weight:400}
#pos-ui .booth-editor-head{display:flex;align-items:center;gap:16px;border-bottom:1px solid #e6ebf0;padding-bottom:15px;margin-bottom:24px}
#pos-ui .booth-editor-head .feature-check{margin-left:auto}
#pos-ui .booth-config-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 24px}
#pos-ui .booth-config-grid .feature-field{margin:0;min-width:0}
#pos-ui .booth-select{position:relative;border:1px solid #d5dfe8;border-radius:4px;min-height:44px;font-size:15px}
#pos-ui .booth-select summary{padding:12px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#pos-ui .booth-select>div{position:absolute;z-index:5;top:100%;left:0;right:0;background:white;border:1px solid #d5dfe8;padding:12px;max-height:240px;overflow:auto;box-shadow:0 6px 18px #26384c20}
#pos-ui .booth-select label,#pos-ui .booth-printer-options label{display:flex;align-items:center;gap:8px;padding:8px}
#pos-ui .booth-printer-options{display:flex;flex-wrap:wrap;gap:12px}
#pos-ui .booth-printer-section{margin-top:25px}
#pos-ui .booth-ticket-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid #e1e7ed}
#pos-ui .booth-ticket-grid>label{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px;border-bottom:1px solid #edf0f3;font-size:15px}
#pos-ui .booth-ticket-grid small{display:block;font-size:11px;color:#8a97a3;margin-top:4px}
#pos-ui .booth-ticket-grid select{border:0;background:transparent;color:#008cdb;font:inherit;min-width:105px;min-height:48px}
#pos-ui .booth-editor-footer{display:flex;justify-content:center;gap:24px;padding:24px 0;position:sticky;bottom:-24px;background:white;border-top:1px solid #e1e7ed;margin-top:24px}
#pos-ui .booth-editor-footer .btn{width:210px;min-height:56px}
@media(max-width:900px){#pos-ui .booth-layout{grid-template-columns:170px 1fr;gap:18px}#pos-ui .booth-config-grid,#pos-ui .booth-ticket-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){#pos-ui .booth-layout{grid-template-columns:1fr}#pos-ui .booth-categories{grid-template-columns:repeat(3,1fr);gap:6px}#pos-ui .booth-categories button{padding:10px;min-height:90px}#pos-ui .booth-categories strong{font-size:16px}#pos-ui .booth-config-grid,#pos-ui .booth-ticket-grid{grid-template-columns:1fr}}

#pos-ui #departmentForm.booth-editor{display:block;height:auto;min-height:0}
#pos-ui #departmentProducts{max-height:340px;overflow:auto}

#pos-ui .pay-deposit{min-height:64px;border:1px solid var(--line,#d9e1e8);border-radius:6px;background:white;color:var(--text,#263746);font:inherit;cursor:pointer}
#pos-ui .pay-deposit.active{border-color:#00a3f5;background:#e7f5ff;color:#007dbd}
#pos-ui .checkout-deposit-dialog{width:min(760px,94vw);max-height:calc(var(--app-height,100vh) - 32px);padding:0}
#pos-ui .checkout-deposit-body{padding:24px;overflow:auto;min-height:0}
#pos-ui .checkout-deposit-dialog[open]{display:flex;flex-direction:column}
#pos-ui .checkout-deposit-dialog .modal-head,#pos-ui .checkout-deposit-dialog .modal-foot{flex-shrink:0}
#pos-ui .checkout-deposit-total{padding:16px;background:#eaf6ff;font-weight:600}
#pos-ui .checkout-deposit-choice{padding:16px;border-bottom:1px solid #e3e9ef;display:flex;align-items:center;gap:12px;min-height:56px}
#pos-ui .checkout-deposit-dialog .modal-foot{gap:12px}

#pos-ui .checkout-deposit-choice label { display:flex; align-items:center; gap:12px; flex:1; min-width:0; }
#pos-ui .checkout-deposit-choice .btn { flex-shrink:0; }
#pos-ui .checkout-deposit-refund-check { width:min(620px,94vw); padding:0; }
#pos-ui #checkoutDepositRefundIdentity { white-space:pre-line; line-height:2; overflow-wrap:anywhere; padding:16px; background:#edf7ff; }

/* Keep filters in reading order and preserve complete amounts/action labels. */
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-search-field { order:0; }
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-date-field { order:1; }
body#pos-ui.pos-reference[data-current-page] #page-orders #btnClearOrderSearch { order:2; }
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-search-bar>.feature-field { order:3; }
body#pos-ui.pos-reference[data-current-page] #page-orders #btnOrderReview { order:4; }
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-table .amt { white-space:nowrap; font-size:16px; overflow-wrap:normal; }
body#pos-ui.pos-reference[data-current-page] #page-members .member-row-buttons { gap:6px; }
body#pos-ui.pos-reference[data-current-page] #page-members .member-row-buttons .btn { flex:0 0 auto; min-width:60px; padding:8px 10px; white-space:nowrap; }
body#pos-ui.pos-reference[data-current-page] .member-actions>.btn,
body#pos-ui.pos-reference[data-current-page] .orders-tools>.btn { min-height:48px; height:48px; }

/* A single refresh indicator; reserve background status space to avoid jumps. */
html.page-refresh-open body#pos-ui>.app [role=status],
html.page-refresh-open body#pos-ui>.app .report-status { visibility:hidden; }

body#pos-ui.pos-reference[data-current-page] #page-products #productsBody td { background:transparent; }
body#pos-ui.pos-reference[data-current-page] .page-head-actions>.btn,
body#pos-ui.pos-reference[data-current-page] #reportRangeForm .btn { min-height:48px; height:48px; }

/* Short landscape screens must scroll results instead of shrinking them to zero. */
@media (max-height:700px) {
  body#pos-ui.pos-reference[data-current-page] #page-orders.active { overflow-y:auto; }
  body#pos-ui.pos-reference[data-current-page] #page-orders .orders-results { flex:0 0 auto; overflow:visible; }
  body#pos-ui.pos-reference[data-current-page] #page-orders .orders-results>.orders-table { flex:0 0 auto; overflow:visible; }
}

/* All native dialogs share viewport centering, including dynamically created confirms. */
body#pos-ui dialog { position:fixed;top:0;right:0;bottom:0;left:0;margin:auto;max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);box-sizing:border-box; }
html.keyboard-open body#pos-ui dialog.keyboard-surface {top:calc(var(--keyboard-viewport-top,0px) + 8px)!important;bottom:calc(100vh - var(--keyboard-viewport-top,0px) - var(--keyboard-viewport-height,100vh) + 8px)!important;margin:auto!important;height:fit-content!important;}
body#pos-ui .checkout-offer-dialog{width:520px;padding:0;overflow:auto;border:1px solid #dce4eb;background:#fff;color:#273640;}
#checkoutOfferDialog .modal-head{padding:12px 18px;background:#fff;border-bottom:1px solid #edf0f3;}
#checkoutOfferDialog h2{font-size:20px;}
#checkoutOfferDialog .checkout-offer-body{padding:14px 18px;}
#checkoutOfferDialog [hidden]{display:none!important;}
#checkoutOfferDialog output{display:block;text-align:right;min-height:48px;padding:10px 12px;border:1px solid #dce3e9;border-radius:4px;font-size:24px;font-variant-numeric:tabular-nums;}
#checkoutOfferDialog .report-note{font-size:13px;margin:6px 0 10px;}
#checkoutOfferDialog .checkout-offer-pad{display:grid;grid-template-columns:3fr 1fr;gap:6px;margin-bottom:14px;}
#checkoutOfferDigits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;}
#checkoutOfferShortcuts{display:grid;gap:4px;}
#checkoutOfferDialog .checkout-offer-pad button{min-width:48px;min-height:48px;padding:4px;border:1px solid #dce3e9;border-radius:3px;background:#fff;font-size:22px;color:#273640;}
#checkoutOfferDialog #checkoutOfferShortcuts button{font-size:17px;}
#checkoutOfferDialog .checkout-offer-reasons{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0;}
#checkoutOfferReasons button{min-height:48px;padding:6px 9px;background:#fff;border:1px solid #dce3e9;border-radius:4px;color:#536676;font-size:14px;}
#checkoutOfferReasons button[aria-pressed=true]{border-color:#009fea;color:#007fc0;background:#eef8ff;}
#checkoutOfferReason{width:100%;min-height:48px;padding:9px 12px;border:1px solid #dce3e9;border-radius:4px;font:inherit;box-sizing:border-box;}
#checkoutOfferError:empty{display:none;}
#checkoutOfferError{margin-top:10px;}
#checkoutOfferDialog .modal-foot{display:flex;gap:12px;padding:12px 18px;background:#fff;border-top:1px solid #edf0f3;}
#checkoutOfferDialog .modal-foot button{flex:1;min-height:48px;}
#pos-ui #page-checkout .checkout-offer-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}
#pos-ui #page-checkout .checkout-offer-buttons button{font-size:16px;padding:8px 3px;}
#pos-ui #page-checkout #checkoutOfferSummary:empty,#pos-ui #page-checkout #checkoutDiscountHint:empty{display:none;}
#pos-ui #page-checkout #checkoutOfferSummary{margin:10px 0;color:#007fc0;font-size:15px;}
body#pos-ui.pos-reference[data-current-page] #page-checkout .pay-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
body#pos-ui.pos-reference[data-current-page] #page-checkout .pay-method,body#pos-ui.pos-reference[data-current-page] #page-checkout .pay-deposit{height:96px!important;min-height:96px!important;font-size:16px!important;}
body#pos-ui.pos-reference[data-current-page] #page-checkout .ui-card{padding:18px;}
body#pos-ui.pos-reference[data-current-page] #page-checkout .payment-note{font-size:13px;margin-top:14px;order:2;}
body#pos-ui.pos-reference[data-current-page] #page-checkout .checkout-confirm{order:3;}
@media(min-width:950px){body#pos-ui.pos-reference[data-current-page] #page-checkout .checkout-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) minmax(0,1fr);height:100%;min-height:0;}body#pos-ui.pos-reference[data-current-page] #page-checkout .checkout-settlement{grid-column:auto;}body#pos-ui.pos-reference[data-current-page] #page-checkout .checkout-bill,body#pos-ui.pos-reference[data-current-page] #page-checkout .checkout-options,body#pos-ui.pos-reference[data-current-page] #page-checkout .checkout-settlement{overflow:auto;}}

body#pos-ui.pos-reference[data-current-page] #page-checkout .pay-method{display:flex;flex-direction:column;justify-content:center;gap:8px;}
body#pos-ui.pos-reference[data-current-page] #page-checkout .pay-method svg{width:22px;height:22px;padding:8px;box-sizing:content-box;border-radius:9px;background:#009fea;color:#fff;}
body#pos-ui.pos-reference[data-current-page] #page-checkout .pay-method[data-pay="微信"] svg{background:#00bea4;}
body#pos-ui.pos-reference[data-current-page] #page-checkout .pay-method[data-pay="现金"] svg{background:#f36b42;}
body#pos-ui.pos-reference[data-current-page] #page-checkout .pay-method[data-pay="会员余额"] svg{background:#338bd4;}

/* Member login is always the first offer, with an explicit identity card. */
#pos-ui #page-checkout .checkout-member-card{display:flex;align-items:center;gap:14px;padding:16px 14px;margin:0 0 14px;border:1px solid #c6e4fb;border-radius:10px;background:#dcefff;min-height:132px;box-sizing:border-box;}
#page-checkout .checkout-member-crown{width:44px;height:44px;flex:0 0 44px;}
#page-checkout .checkout-member-info{display:flex;flex-direction:column;gap:5px;min-width:0;flex:1;font-size:15px;color:#284659;overflow-wrap:anywhere;}
#page-checkout .checkout-member-info strong{font-size:17px;color:#193f58;}
#page-checkout .checkout-member-actions{display:flex;flex-direction:column;gap:6px;flex:0 0 auto;}
#pos-ui #page-checkout .checkout-member-actions button{border-radius:24px;background:#fff;color:#007fbe;border:1px solid #c6e4fb;min-width:96px;min-height:48px;padding:8px 12px;font-size:15px;}
#pos-ui #page-checkout .checkout-member-actions button[hidden],#checkoutPromotionSection[hidden]{display:none;}
#page-checkout .member-pay-icon{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:9px;background:#287cc0;}
#page-checkout .member-pay-icon img{width:28px;height:28px;filter:brightness(0) invert(1);}
body#pos-ui .checkout-member-login-dialog{width:560px;padding:0;}
.checkout-member-login-body{padding:18px;display:flex;flex-direction:column;gap:12px;}
#checkoutMemberLoginDialog input,#checkoutMemberLoginDialog select{width:100%;min-height:48px;padding:10px 12px;box-sizing:border-box;border:1px solid #cddce7;border-radius:5px;font:inherit;}
#checkoutMemberLoginDialog .modal-foot{display:flex;justify-content:flex-end;gap:12px;}
#checkoutMemberLoginError:empty{display:none;}
@media(max-width:1100px){#pos-ui #page-checkout .checkout-member-card{gap:8px;padding:12px 10px;}#page-checkout .checkout-member-crown{width:32px;height:32px;flex-basis:32px;}#page-checkout .checkout-member-info{font-size:13px;}#pos-ui #page-checkout .checkout-member-actions button{min-width:80px;padding:6px;font-size:14px;}}

body#pos-ui.pos-reference[data-current-page] #page-checkout .checkout-member-actions button{color:#007fbe;border-color:#c6e4fb;}
#checkoutPromotionSection{display:flex;flex-wrap:wrap;align-items:center;gap:8px;}
#checkoutPromotionSection #promotionQuoteHint{flex-basis:100%;}

/* Checkout allocation is a draft until the final collection action. */
#pos-ui .payment-plan-dialog{width:min(540px,calc(100vw - 32px));padding:0;border:1px solid #dce4eb;border-radius:8px;background:#fff;color:#273640;box-shadow:0 16px 48px #17334d33;overflow:auto;}
#pos-ui .payment-plan-dialog::backdrop{background:#18304d55;}
#pos-ui .payment-plan-dialog .modal-head{padding:12px 18px;}
#pos-ui .payment-plan-dialog .modal-foot{gap:10px;}
#pos-ui .payment-plan-dialog fieldset{border:1px solid #e1e8ee;border-radius:6px;margin:12px 0;padding:14px;display:grid;grid-template-columns:110px 1fr;gap:10px;align-items:center;}
#pos-ui .payment-plan-dialog legend{font-weight:600;padding:0 8px;}
#pos-ui .payment-plan-dialog select,#pos-ui .payment-plan-dialog input{min-width:48px;min-height:48px;width:100%;padding:8px 10px;box-sizing:border-box;border:1px solid #cddce7;border-radius:5px;font:inherit;}
#pos-ui .payment-plan-dialog output{font-size:22px;font-weight:600;color:#008dce;}
#pos-ui #paymentPlanError,#pos-ui #customPaymentError{color:#bf2424;}
#pos-ui #paymentPlanSummary{padding:12px;background:#eaf6ff;color:#24465c;}
#pos-ui #customPaymentList{display:flex;flex-wrap:wrap;gap:12px;margin:14px 0;}
#pos-ui #customPaymentList span{padding:12px;background:#f2f7fa;border-radius:6px;}
#pos-ui #payGrid small{font-size:12px;display:block;}

.custom-pay-methods { display: contents; }

/* Reference table transfer / merge: two-step card picker, centered at every viewport. */
body#pos-ui.pos-reference[data-current-page] #transferDialog {position:fixed;top:0;right:0;bottom:0;left:0;margin:auto;width:min(900px,calc(100vw - 40px));height:min(570px,calc(100vh - 40px));max-height:calc(100vh - 40px);padding:0;background:#fff;color:#26323b;border-radius:8px;}
body#pos-ui.pos-reference[data-current-page] #transferDialog form {display:flex;flex-direction:column;height:100%;min-height:0;}
body#pos-ui.pos-reference[data-current-page] #transferDialog .modal-head {padding:18px 22px;background:#f5f7fa;flex-shrink:0;}
body#pos-ui.pos-reference[data-current-page] #transferDialog .modal-head h2 {font-size:22px;font-weight:600;}
body#pos-ui.pos-reference[data-current-page] #transferDialog .product-editor-body {flex:1;min-height:0;max-height:none;overflow:auto;padding:12px 18px;}
body#pos-ui.pos-reference[data-current-page] #transferHelp {font-size:13px;margin:0 0 8px;color:#687b8b;}
body#pos-ui.pos-reference[data-current-page] #transferDialog .transfer-selects[hidden],body#pos-ui.pos-reference[data-current-page] #transferDialog [hidden] {display:none!important;}
body#pos-ui.pos-reference[data-current-page] #transferDialog .transfer-picker-toolbar {display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;}
body#pos-ui.pos-reference[data-current-page] #transferAreas {display:flex;gap:10px;overflow-x:auto;min-width:0;}
body#pos-ui.pos-reference[data-current-page] #transferAreas .btn {min-width:78px;min-inline-size:78px!important;white-space:nowrap;background:#f5f7f8;}
body#pos-ui.pos-reference[data-current-page] #transferAreas .active {background:#d9efff;color:#009ff4;border-color:#29b2ff;}
body#pos-ui.pos-reference[data-current-page] #transferDialog .transfer-pages {display:flex;align-items:center;gap:6px;flex-shrink:0;font-size:12px;color:#788692;}
body#pos-ui.pos-reference[data-current-page] #transferDialog .transfer-pages .btn {min-width:48px;padding:8px;font-size:24px;}
body#pos-ui.pos-reference[data-current-page] #transferDialog .transfer-cards {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;align-content:start;min-height:254px;}
body#pos-ui.pos-reference[data-current-page] #transferDialog .transfer-card {position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:8px;text-align:left;min-width:48px;min-height:122px;min-block-size:122px!important;padding:12px;border:2px solid #e1e6eb;border-radius:7px;background:#fff;color:#26323b;overflow:hidden;cursor:pointer;}
body#pos-ui.pos-reference[data-current-page] #transferDialog .transfer-card strong {font-size:22px;line-height:1.25;word-break:break-word;padding-right:12px;}
body#pos-ui.pos-reference[data-current-page] #transferDialog .transfer-card span {margin-top:auto;font-size:14px;}
body#pos-ui.pos-reference[data-current-page] #transferDialog .transfer-card small {font-size:13px;opacity:.9;}
body#pos-ui.pos-reference[data-current-page] #transferDialog .transfer-card.occupied {background:#ff8c32;border-color:#ff8c32;color:#fff;}
body#pos-ui.pos-reference[data-current-page] #transferDialog .transfer-card.selected {border-color:#009fff;box-shadow:0 0 0 1px #009fff;}
body#pos-ui.pos-reference[data-current-page] #transferDialog .transfer-card.selected:before {content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.36);}
body#pos-ui.pos-reference[data-current-page] #transferDialog .transfer-card-check {position:absolute;top:0;right:0;width:32px;height:28px;text-align:right;padding-right:5px;color:white;background:#009fff;clip-path:polygon(0 0,100% 0,100% 100%);}
body#pos-ui.pos-reference[data-current-page] #transferDialog .transfer-card-mark {position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:24px;}
body#pos-ui.pos-reference[data-current-page] #transferDialog .transfer-empty {grid-column:1/-1;text-align:center;padding:60px 0;color:#7d8b98;}
body#pos-ui.pos-reference[data-current-page] #transferDialog .modal-foot {justify-content:flex-end;gap:12px;padding:16px 18px;flex-shrink:0;border-top:0;}
body#pos-ui.pos-reference[data-current-page] #transferDialog .modal-foot .btn {min-width:130px;min-inline-size:130px!important;height:56px!important;min-height:56px!important;font-size:18px!important;}
body#pos-ui.pos-reference[data-current-page] #transferBack {margin-right:auto;}
body#pos-ui.pos-reference[data-current-page] #transferSummary {font-size:13px;padding:8px 0;border:0;background:none;margin:0;}
body#pos-ui.pos-reference[data-current-page] #transferReceipt {color:#00836c;font-size:14px;}
body#pos-ui.pos-reference[data-current-page] #transferError:empty,body#pos-ui.pos-reference[data-current-page] #transferReceipt:empty,body#pos-ui.pos-reference[data-current-page] #transferPending:empty {display:none;}
body#pos-ui.pos-reference[data-current-page] #mergeConfirmDialog {position:fixed;top:0;right:0;bottom:0;left:0;margin:auto;width:min(480px,calc(100vw - 32px));height:fit-content;max-height:calc(100vh - 32px);padding:0;background:#fff;}
body#pos-ui.pos-reference[data-current-page] #mergeConfirmDialog .product-editor-body {padding:22px;}
body#pos-ui.pos-reference[data-current-page] #mergeConfirmDialog .merge-warning {font-size:20px;font-weight:600;}
body#pos-ui.pos-reference[data-current-page] #mergeConfirmSummary {margin-top:14px;color:#687b8b;line-height:1.6;}
body#pos-ui.pos-reference[data-current-page] #mergeConfirmDialog .modal-foot {display:flex;justify-content:flex-end;gap:12px;padding:16px 22px;}
@media(max-width:650px){body#pos-ui.pos-reference[data-current-page] #transferDialog .transfer-cards{grid-template-columns:repeat(2,minmax(0,1fr));}body#pos-ui.pos-reference[data-current-page] #transferDialog .modal-foot .btn{min-width:80px;min-inline-size:80px!important;}body#pos-ui.pos-reference[data-current-page] #transferHelp{display:none;}}

/* 直接点单仅保留结账，开台正餐支持先下单。 */
#page-order #btnSubmitOrder[hidden] { display: none !important; }
#page-order #btnGoCheckout.checkout-only { grid-column: 1 / -1; width: 100%; flex-basis: 100%; }
/* Reference custody workspace: a large goods pane and a compact fixed details pane. */
body#pos-ui.pos-reference[data-current-page] #page-custody{padding:0;background:#fff;overflow:hidden;color:#303a43;}
#page-custody.active{display:flex;flex-direction:column;height:100%;min-height:0;}
#page-custody [hidden],.custody-dialog [hidden]{display:none!important;}
#page-custody .custody-tabs{display:flex;gap:12px;align-items:center;background:#009ff1;padding:0 20px;min-height:54px;flex-shrink:0;}
#page-custody .custody-tabs span{flex:1;}
#page-custody .custody-tabs button{border:0;border-radius:0;background:transparent;color:#fff;min-height:54px;padding:10px 18px;font-size:18px;}
#page-custody .custody-tabs button[aria-selected=true]{border-bottom:3px solid #fff;}
#page-custody .custody-new-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,28%);flex:1;min-height:0;}
#page-custody .custody-draft{min-width:0;display:flex;flex-direction:column;border-right:4px solid #e3e7ea;background:#fcfcfc;min-height:0;}
#page-custody .custody-draft>header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid #e6ebef;gap:16px;}
#page-custody .custody-draft>header .btn{margin-left:10px;}
#custodyDraftEmpty{margin:auto;text-align:center;padding:24px;}
.custody-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;color:#89949d;min-height:200px;}
.custody-empty img{width:108px;height:108px;object-fit:contain;}
.custody-empty p{margin:0;}
#custodyEmptyAdd{width:180px;margin-top:18px;}
#page-custody .custody-form{display:flex;flex-direction:column;min-height:0;padding:12px 18px;}
#page-custody .custody-form-fields{flex:1;min-height:0;overflow:auto;}
#page-custody .custody-form-fields>label{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;border-bottom:1px solid #edf0f2;font-size:15px;}
#page-custody .required:before{content:'*';color:#e15d5d;padding-right:4px;}
#page-custody .custody-form-fields input,#page-custody .custody-form-fields button{min-width:48px;max-width:60%;text-align:right;border:0;background:transparent;font-size:15px;padding:10px 4px;min-height:48px;box-shadow:none;}
#page-custody .custody-phone{display:flex;align-items:center;gap:8px;flex:1;min-width:0;}
#page-custody .custody-phone input{max-width:100%;width:100%;}
#page-custody .custody-form-fields .custody-note{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding-top:10px;}
.custody-note textarea{resize:vertical;min-height:80px;width:100%;padding:10px;border:1px solid #e3e8eb;font:inherit;box-sizing:border-box;}
#custodyNoteCount{text-align:right;color:#85919a;}
#page-custody .custody-form>footer{padding-top:12px;background:white;flex-shrink:0;}
#page-custody .custody-form>footer>button{width:100%;min-height:56px;}
.custody-print-options{display:flex;gap:12px;flex-wrap:wrap;margin:10px 0;font-size:13px;}
.custody-print-options label{display:flex;gap:5px;align-items:center;}
#page-custody input[type=checkbox],.custody-dialog input[type=checkbox],.custody-dialog input[type=radio]{width:48px;height:48px;min-height:48px;flex-shrink:0;}
#custodyNewError,.custody-error{color:#c83232;font-size:14px;overflow-wrap:anywhere;}
#custodyNewError:empty,.custody-error:empty{display:none;}
#page-custody table,.custody-dialog table{width:100%;border-collapse:collapse;font-size:15px;}
#page-custody th,.custody-dialog th{font-weight:500;text-align:left;background:#f6f8fa;}
#page-custody td,#page-custody th,.custody-dialog td,.custody-dialog th{padding:14px 12px;border-bottom:1px solid #e7edf1;}
#page-custody small,.custody-dialog td small{display:block;color:#84929c;font-size:13px;margin-top:5px;}
.custody-scroll{overflow:auto;min-height:0;flex:1;}
.custody-stepper{display:flex;align-items:center;}
.custody-stepper button{min-width:48px;min-height:48px;border:1px solid #d9e1e6;background:white;color:#293d4c;font:inherit;}
#custodyManage{display:flex;flex-direction:column;min-height:0;flex:1;}
#page-custody .custody-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px;border-bottom:1px solid #dce4e9;flex-shrink:0;}
#page-custody .custody-filters input,#page-custody .custody-filters select{min-width:48px;width:auto;min-height:48px;border:1px solid #dce4e9;border-radius:4px;padding:8px;font-size:14px;background:white;}
#page-custody .custody-filters input[type=search]{width:180px;flex:1;}
#page-custody .custody-filters input[type=date]{width:142px;}
#page-custody .custody-filters button{font-size:14px;padding:8px 12px;min-height:48px;}
#page-custody .custody-management{display:grid;grid-template-columns:30% minmax(0,1fr);flex:1;min-height:0;}
.custody-records{border-right:4px solid #e3e7ea;overflow:auto;min-height:0;}
#custodyListStatus{padding:0 12px;color:#738491;font-size:13px;}
#custodyRows>button{display:flex;position:relative;flex-direction:column;gap:8px;width:100%;border:0;border-bottom:1px solid #e3e9ee;background:white;padding:18px 16px;text-align:left;font:inherit;color:#52636f;}
#custodyRows>button[aria-pressed=true]{background:#eaf6ff;box-shadow:inset 3px 0 #009ff1;}
#custodyRows>button strong{font-size:16px;color:#198bc9;padding-right:40px;}
#custodyRows>button span{font-size:13px;overflow-wrap:anywhere;}
#custodyRows>button b{position:absolute;right:8px;top:12px;}
#custodyDetail{min-width:0;min-height:0;display:flex;flex-direction:column;}
.custody-person{padding:18px 24px;background:#edf8ff;display:flex;align-items:center;gap:20px;justify-content:space-between;}
.custody-person h2{font-size:20px;margin:0 0 10px;}
.custody-person p{font-size:14px;margin:6px 0;color:#617786;overflow-wrap:anywhere;}
.custody-badge{font-size:13px;font-weight:500;white-space:nowrap;padding:6px 10px;border-radius:20px;color:#008fbd;background:#d8f1ff;}
.custody-badge.collected,.custody-badge.cancelled{color:#72818c;background:#edf0f2;}
.custody-badge.expired{color:#bf562c;background:#fff0de;}
.custody-detail-tabs{display:flex;gap:16px;padding:8px 20px 0;border-bottom:1px solid #e3e7ea;}
#page-custody .custody-detail-tabs button{border:0;border-radius:0;background:transparent;min-height:48px;}
#page-custody .custody-detail-tabs button[aria-selected=true]{border-bottom:3px solid #009ff1;color:#0096df;}
.custody-detail-footer{display:flex;justify-content:flex-end;align-items:center;gap:12px;border-top:1px solid #e4e9ec;padding:14px 20px;margin-top:auto;}
#page-custody .custody-detail-footer .primary{min-width:150px;}
#custodyPicker{display:flex;flex-direction:column;flex:1;min-height:0;}
#custodyPicker>header{display:flex;align-items:center;gap:16px;border-bottom:1px solid #dde6ed;padding:12px 20px;}
#custodyPicker>header h2{font-size:20px;font-weight:500;margin:0;}
#custodyProductSearch{margin-left:auto;width:40%;min-height:48px;border:1px solid #dce5eb;padding:10px 14px;border-radius:4px;font:inherit;}
.custody-picker-layout{display:grid;grid-template-columns:30% minmax(0,1fr);flex:1;min-height:0;}
.custody-picker-layout>aside{display:flex;flex-direction:column;overflow:auto;border-right:4px solid #e3e7ea;}
.custody-picker-layout>aside footer{margin-top:auto;position:sticky;bottom:0;padding:12px;background:white;border-top:1px solid #dce5eb;display:flex;gap:8px;align-items:center;}
.custody-picker-layout>aside footer p{flex:1;font-size:14px;}
.custody-picker-layout>section{min-height:0;display:flex;flex-direction:column;}
#custodyCategories{display:flex;flex-wrap:wrap;gap:8px;padding:14px;border-bottom:1px solid #e3e7ea;max-height:150px;overflow:auto;}
#custodyCategories button,.custody-choices button,.custody-choice button{border:1px solid #dce5eb;background:white;border-radius:4px;min-height:48px;padding:10px 16px;font:inherit;color:#3d5363;}
#custodyCategories button[aria-pressed=true],.custody-choices button[aria-pressed=true],.custody-choice button[aria-pressed=true]{color:#0097de;border-color:#009ff1;background:#eff9ff;}
#custodyProductCards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding:18px;overflow:auto;align-content:start;}
#custodyProductCards>button{display:flex;flex-direction:column;gap:10px;border:1px solid #e1e8ee;background:#fff;padding:18px;text-align:left;min-height:140px;color:#36444f;border-radius:4px;font:inherit;}
#custodyProductCards>button strong{font-size:18px;overflow-wrap:anywhere;}
#custodyProductCards>button span{margin-top:auto;color:#e76e36;}
body#pos-ui .custody-dialog{width:640px;padding:0;border:1px solid #dbe3e9;border-radius:6px;background:#fff;color:#303e48;overflow:auto;box-shadow:0 14px 40px #142b4433;}
.custody-dialog::backdrop{background:#16324e66;}
.custody-dialog form{margin:0;}
.custody-dialog header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid #e5ebef;}
.custody-dialog h2{font-size:20px;margin:0;}
.custody-close{min-width:48px;min-height:48px;border:0;background:transparent;font-size:28px;color:#526675;}
.custody-dialog-body{padding:20px;}
.custody-dialog footer{padding:14px 20px;border-top:1px solid #e4e9ec;display:flex;justify-content:flex-end;gap:12px;background:white;}
.custody-dialog footer button{min-width:100px;min-height:48px;}
.custody-dialog-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:14px 0;font-size:16px;}
.custody-dialog input:not([type=checkbox]):not([type=radio]),.custody-dialog select{min-width:48px;min-height:48px;border:1px solid #d7e2ea;border-radius:4px;padding:8px 12px;font:inherit;box-sizing:border-box;}
.custody-dialog-row input{flex:1;}
.custody-choices{display:flex;flex-wrap:wrap;gap:12px;}
.custody-choices label{display:flex;align-items:center;gap:8px;padding:10px;}
.custody-choice{display:flex;gap:12px;margin-bottom:14px;}
#custodyQuantityDialog{width:420px;}
#custodyQuantityValue{display:block;padding:12px;border:1px solid #dce5eb;text-align:right;font-size:28px;margin-bottom:10px;min-height:50px;}
.custody-number-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;}
.custody-number-pad button{min-height:56px;border:1px solid #dce5eb;border-radius:4px;background:white;font-size:24px;color:#303e48;}
#custodyWithdrawDialog{width:760px;}
#custodyWithdrawDialog .custody-scroll{max-height:220px;}
#custodyWithdrawDialog [data-amount]{width:110px;}
.custody-warning{color:#b66a17;background:#fff6e7;padding:12px;font-size:14px;}
#custodyLocationsDialog{width:780px;}
#custodyLocationsDialog td .btn{margin:3px;}
@media(max-width:1000px){#page-custody .custody-new-layout{grid-template-columns:minmax(0,1fr) 300px;}#custodyProductCards{grid-template-columns:repeat(3,minmax(0,1fr));}#page-custody .custody-management{grid-template-columns:32% minmax(0,1fr);}#page-custody td,#page-custody th{padding:10px 8px;font-size:14px;}#page-custody .custody-form{padding:10px;}#page-custody .custody-form-fields>label{font-size:14px;gap:4px;}}
@media(max-width:650px){#page-custody.active{overflow:auto;}#page-custody .custody-new-layout,#page-custody .custody-management,.custody-picker-layout{display:flex;flex-direction:column;overflow:visible;}#page-custody .custody-draft{min-height:280px;}#page-custody .custody-form{min-height:500px;}#page-custody .custody-management>aside{max-height:260px;}#custodyDetail{min-height:400px;}#custodyProductCards{grid-template-columns:repeat(2,minmax(0,1fr));}#page-custody .custody-tabs{gap:0;padding:0 8px;}#page-custody .custody-tabs button{padding:8px;font-size:16px;}}
@media(max-height:620px){#page-custody .custody-form-fields>label{min-height:48px;}#page-custody .custody-form-fields{overflow:auto;}#page-custody .custody-form>footer{padding-top:4px;}.custody-print-options{margin:4px 0;}}
/* Scope these overrides above the cashier's common button skin. */
body#pos-ui.pos-reference[data-current-page] #page-custody .custody-tabs{background:#2196f3;}
body#pos-ui.pos-reference[data-current-page] #page-custody .custody-tabs button{background:transparent!important;color:white!important;border:0!important;border-radius:0!important;box-shadow:none!important;}
body#pos-ui.pos-reference[data-current-page] #page-custody .custody-tabs button[aria-selected=true]{border-bottom:3px solid white!important;}
body#pos-ui.pos-reference[data-current-page] #page-custody .custody-form-fields>label>button{border:0!important;background:transparent!important;box-shadow:none!important;padding:8px 4px;}
body#pos-ui.pos-reference[data-current-page] #page-custody .custody-print-options input:disabled{opacity:.45;}
body#pos-ui.pos-reference[data-current-page] #page-custody.active{display:flex;flex-direction:column;}
body#pos-ui .custody-dialog#custodyWithdrawDialog{width:760px;}
body#pos-ui .custody-dialog#custodyQuantityDialog{width:420px;}
body#pos-ui .custody-dialog#custodyLocationsDialog{width:780px;}
body#pos-ui.pos-reference[data-current-page] #page-custody .custody-detail-tabs button{border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;}
body#pos-ui.pos-reference[data-current-page] #page-custody .custody-detail-tabs button[aria-selected=true]{border-bottom:3px solid #2196f3!important;color:#2196f3!important;}
/* While entering details, let the focused field own the available height. */
html.builtin-keyboard-open body#pos-ui #page-custody .custody-form>footer{display:none;}
html.builtin-keyboard-open body#pos-ui #page-custody .custody-form{padding-top:4px;padding-bottom:4px;}

#custodyWithdrawDialog .custody-dialog-body>label:last-of-type{display:flex;align-items:center;gap:6px;}
#custodyCategorySettings{margin-left:auto;min-height:48px;white-space:nowrap;}

.custody-category-bar{display:flex;align-items:flex-start;border-bottom:1px solid #e3e7ea;flex-shrink:0;padding-right:12px;}
.custody-category-bar #custodyCategories{flex:1;border-bottom:0;box-sizing:border-box;}
.custody-category-bar #custodyCategorySettings{margin-top:8px;}

/* Native checkbox stays in a 48px clickable label; only its visual box is compact. */
#page-custody .custody-print-options label,#custodyWithdrawDialog .custody-dialog-body>label:last-of-type{min-height:48px;}
#page-custody .custody-print-options input,#custodyWithdrawPrint{transform:scale(.45);margin:0 -10px;}

/* Product cards and record rows are content panels, not the global 48px action buttons. */
body#pos-ui.pos-reference[data-current-page] #custodyProductCards>button{height:150px!important;min-height:150px!important;min-block-size:150px!important;flex-direction:column;align-items:stretch;justify-content:flex-start;white-space:normal;}
body#pos-ui.pos-reference[data-current-page] #custodyRows>button{height:auto!important;min-height:116px!important;min-block-size:116px!important;flex-direction:column;align-items:stretch;justify-content:flex-start;white-space:normal;}
/* App-owned input panel, contained inside the active native <dialog> top layer. */
html.builtin-keyboard-open:not(.builtin-keyboard-floating) body#pos-ui>.app{height:calc(100% - var(--builtin-keyboard-height,0px))!important;min-height:0!important}
#pos-ui .nora-keyboard{position:fixed!important;left:0!important;right:0!important;bottom:0!important;top:auto!important;z-index:2147483000!important;width:100vw!important;max-width:none!important;margin:0!important;padding:8px 10px 10px!important;box-sizing:border-box;background:#e8edf3;color:#233545;border-top:1px solid #becbd7;box-shadow:0 -4px 22px #193b5426;font:16px/1.2 Arial,sans-serif;max-height:55vh;overflow-y:auto;touch-action:manipulation;text-align:left}
#pos-ui .nora-keyboard[hidden]{display:none!important}
#pos-ui .nora-keyboard button{font-family:inherit;cursor:pointer;touch-action:manipulation}
#pos-ui .ik-header,#pos-ui .ik-row,#pos-ui .ik-actions{display:flex;justify-content:center;align-items:stretch;margin-bottom:6px}
#pos-ui .ik-key{min-width:0;min-height:38px;border:1px solid #ccd5df;border-radius:6px;background:#fff;color:#243746;font-size:20px;font-weight:500;padding:6px 10px;margin:0 4px;flex:1;box-shadow:0 1px 1px #a2afbd;line-height:1.15}
#pos-ui .ik-key:active{background:#d2eaff;box-shadow:none}
#pos-ui .ik-mode{font-size:15px;flex:0 1 145px;min-height:32px}
#pos-ui .ik-mode[aria-pressed=true]{background:#049deb;color:#fff;border-color:#049deb}
#pos-ui .ik-mode:disabled{opacity:.45;cursor:default}
#pos-ui .ik-hide{margin-left:auto;font-size:15px;flex:0 0 72px;min-height:32px}
#pos-ui .ik-preview{color:#36485b;white-space:pre;overflow-x:auto;padding:2px 8px;min-height:22px;font-size:17px;max-height:28px}
#pos-ui .ik-compose{font-size:15px;color:#006d9f;min-height:19px;padding:0 8px;white-space:nowrap;overflow:hidden}
#pos-ui .ik-candidates{display:flex;overflow-x:auto;min-height:38px;padding:2px 0 5px;white-space:nowrap}
#pos-ui .ik-candidate{flex:0 0 auto;font-size:22px;border:0;box-shadow:none;background:transparent;margin:0;padding:3px 16px;min-height:32px}
#pos-ui .ik-keys{width:100%;max-width:none;margin:0 auto}
#pos-ui .ik-row{margin-left:auto;margin-right:auto}
#pos-ui .ik-actions .ik-key{font-size:17px}
#pos-ui .ik-space{flex:4}
#pos-ui .ik-done{background:#049deb;color:#fff;border-color:#049deb}
#pos-ui .ik-status{display:block;min-height:16px;font-size:12px;color:#426377;padding:0 6px;margin:0;border:0;background:none;max-width:100%;text-align:center;width:100%}
#pos-ui .ik-ink{display:flex;justify-content:center;margin-bottom:6px}
#pos-ui .ik-canvas{display:block;width:min(620px,75vw);height:130px;background:#fff;border:1px solid #c4ced8;border-radius:6px;touch-action:none}
#pos-ui .ik-ink-tools{display:flex;flex-direction:column;width:130px;margin-left:8px}
#pos-ui .ik-ink-tools button{font-size:16px;margin-bottom:4px}
@media (max-height:600px){#pos-ui .nora-keyboard{padding-top:4px!important;padding-bottom:4px!important;max-height:60vh}#pos-ui .ik-key{min-height:30px;padding-top:3px;padding-bottom:3px;font-size:18px}#pos-ui .ik-header,#pos-ui .ik-row,#pos-ui .ik-actions{margin-bottom:4px}#pos-ui .ik-canvas{height:100px}#pos-ui .ik-preview{font-size:14px;min-height:17px}#pos-ui .ik-compose{font-size:13px;min-height:16px}#pos-ui .ik-candidates{min-height:28px}#pos-ui .ik-status{min-height:14px}}

/* Override application-wide 48px business action rules inside the keyboard only. */
#pos-ui #noraKeyboard .ik-key{min-block-size:38px!important;min-height:38px!important;height:auto!important;font-size:20px!important;}
#pos-ui #noraKeyboard .ik-mode,#pos-ui #noraKeyboard .ik-hide{min-block-size:32px!important;min-height:32px!important;font-size:15px!important;}
#pos-ui #noraKeyboard .ik-candidate{min-block-size:32px!important;min-height:32px!important;font-size:22px!important;}
#pos-ui #noraKeyboard .ik-status{min-block-size:16px!important;min-height:16px!important;font-size:12px!important;}
@media(max-height:600px){#pos-ui #noraKeyboard .ik-key{min-block-size:28px!important;min-height:28px!important;font-size:17px!important;}#pos-ui #noraKeyboard .ik-mode,#pos-ui #noraKeyboard .ik-hide{font-size:13px!important;}}

/* Do not reserve blank preview/candidate/status rows before typing. */
#pos-ui #noraKeyboard .ik-preview:empty,
#pos-ui #noraKeyboard .ik-compose:empty,
#pos-ui #noraKeyboard .ik-candidates:empty,
#pos-ui #noraKeyboard .ik-status:empty{display:none!important}

/* Candidate tray lives above the keys, leaving key heights unchanged while composing. */
#pos-ui #noraKeyboard{max-height:none;overflow:visible}
#pos-ui #noraKeyboard .ik-tray{position:absolute;bottom:100%;left:0;right:0;background:#f8fafc;border-radius:8px 8px 0 0;box-shadow:0 -2px 8px #193b541a}
#pos-ui #noraKeyboard .ik-row .ik-key,#pos-ui #noraKeyboard .ik-actions .ik-key{min-height:56px!important;min-block-size:56px!important;font-size:24px!important}
#pos-ui #noraKeyboard.ik-numeric{left:var(--ik-left,16px)!important;top:var(--ik-top,16px)!important;right:auto!important;bottom:auto!important;width:320px!important;max-width:calc(100vw - 32px)!important;border:1px solid #becbd7;border-radius:12px;padding:10px!important;box-shadow:0 4px 24px #193b5440}
#pos-ui #noraKeyboard.ik-numeric .ik-mode{display:none}
#pos-ui #noraKeyboard.ik-numeric .ik-hide{flex:0 0 64px}
#pos-ui #noraKeyboard.ik-numeric .ik-header:before{content:'数字键盘';align-self:center;font-size:16px;padding-left:4px}
@media(max-height:650px){#pos-ui #noraKeyboard .ik-row .ik-key,#pos-ui #noraKeyboard .ik-actions .ik-key{min-height:42px!important;min-block-size:42px!important;font-size:21px!important}}
@media(max-height:450px){#pos-ui #noraKeyboard .ik-row .ik-key,#pos-ui #noraKeyboard .ik-actions .ik-key{min-height:30px!important;min-block-size:30px!important;font-size:18px!important}}

/* All text modes share one key deck; handwriting replaces the three letter rows. */
#pos-ui #noraKeyboard:not(.ik-numeric){--ik-row-height:56px;--ik-row-gap:6px}
#pos-ui #noraKeyboard:not(.ik-numeric) .ik-keys{display:flex;flex-direction:column;height:calc(var(--ik-row-height) * 4 + var(--ik-row-gap) * 4)}
#pos-ui #noraKeyboard:not(.ik-numeric) .ik-row{flex:1;min-height:0;width:100%;margin-bottom:var(--ik-row-gap)}
#pos-ui #noraKeyboard:not(.ik-numeric) .ik-row .ik-key{min-height:0!important;min-block-size:0!important}
#pos-ui #noraKeyboard:not(.ik-numeric) .ik-actions{flex:0 0 var(--ik-row-height);min-height:0;margin-bottom:var(--ik-row-gap)}
#pos-ui #noraKeyboard.ik-handwriting .ik-ink{flex:1;min-height:0;align-items:stretch;margin:0 4px var(--ik-row-gap)}
#pos-ui #noraKeyboard.ik-handwriting .ik-canvas{flex:1;min-width:0;width:0;height:100%;box-sizing:border-box}
#pos-ui #noraKeyboard.ik-handwriting .ik-ink-tools{flex:0 0 144px;width:144px;min-height:0}
#pos-ui #noraKeyboard.ik-handwriting .ik-ink-tools .ik-key{min-height:0!important;min-block-size:0!important;margin:0 0 var(--ik-row-gap);font-size:16px!important}
#pos-ui #noraKeyboard.ik-handwriting .ik-ink-tools .ik-key:last-child{margin-bottom:0}
@media(max-height:650px){#pos-ui #noraKeyboard:not(.ik-numeric){--ik-row-height:42px;--ik-row-gap:4px}}
@media(max-height:450px){#pos-ui #noraKeyboard:not(.ik-numeric){--ik-row-height:30px;--ik-row-gap:4px}}

#pos-ui #noraKeyboard.ik-numeric .ik-row .ik-key,#pos-ui #noraKeyboard.ik-numeric .ik-actions .ik-key{min-height:var(--ik-numeric-key-height,42px)!important;min-block-size:var(--ik-numeric-key-height,42px)!important}

/* Bounded key decks for wide cashier screens. Input handlers and avoidance stay shared. */
#pos-ui #noraKeyboard{background:#eaf0f6;border-color:#d4dfea;box-shadow:0 -6px 24px #18385218;font-family:inherit}
#pos-ui #noraKeyboard .ik-key{min-width:0!important;min-inline-size:0!important;border-color:#d2dde9;border-radius:10px;box-shadow:0 2px 0 #cad5e1;color:#263c53;font-weight:500}
#pos-ui #noraKeyboard .ik-key:active{background:#dceeff;border-color:#69abe0;box-shadow:none}
#pos-ui #noraKeyboard .ik-key:focus{outline:2px solid #3484c8;outline-offset:1px}
#pos-ui #noraKeyboard .ik-mode,#pos-ui #noraKeyboard .ik-hide{background:transparent;box-shadow:none;border-color:transparent}
#pos-ui #noraKeyboard .ik-mode[aria-pressed=true]{background:#fff;border-color:#cbdceb;color:#147fc4;box-shadow:0 1px 3px #193b5410}
#pos-ui #noraKeyboard .ik-done{background:#168ad1;border-color:#168ad1;color:#fff;box-shadow:0 2px 0 #1179b9}
#pos-ui #noraKeyboard .ik-done:active{background:#1078ba;color:#fff}
#pos-ui #noraKeyboard .ik-backspace{background:#dce6f0}
#pos-ui #noraKeyboard:not(.ik-numeric) .ik-header,
#pos-ui #noraKeyboard:not(.ik-numeric) .ik-keys{max-width:1120px;margin-left:auto;margin-right:auto}
#pos-ui #noraKeyboard:not(.ik-numeric) .ik-header{margin-bottom:8px}
#pos-ui #noraKeyboard[data-ik-layout=nine] .ik-row{max-width:680px}
#pos-ui #noraKeyboard[data-ik-layout=number] .ik-keys{max-width:740px;display:grid;grid-template-columns:minmax(0,1fr) 160px;grid-template-rows:repeat(4,minmax(0,1fr));column-gap:8px}
#pos-ui #noraKeyboard[data-ik-layout=number] .ik-row{grid-column:1}
#pos-ui #noraKeyboard[data-ik-layout=number] .ik-actions{grid-column:2;grid-row:1 / 5;display:flex;flex-direction:column}
#pos-ui #noraKeyboard[data-ik-layout=number] .ik-actions .ik-key{flex:1;min-height:0!important;min-block-size:0!important;font-size:18px!important;padding:2px 8px}
#pos-ui #noraKeyboard[data-ik-layout=number] .ik-actions .ik-key:first-child{background:#dceeff;border-color:#b7d8ef;color:#147fc4}
#pos-ui #noraKeyboard.ik-numeric .ik-header{margin-bottom:8px}
#pos-ui #noraKeyboard .ik-candidate{box-shadow:none;border-radius:8px}
@media(max-width:600px){
  #pos-ui #noraKeyboard[data-ik-layout=number] .ik-keys{grid-template-columns:minmax(0,1fr) 88px;column-gap:2px}
  #pos-ui #noraKeyboard .ik-key{border-radius:8px;margin-left:2px;margin-right:2px;padding-left:3px;padding-right:3px}
}

#pos-ui #noraKeyboard[data-ik-layout=number] .ik-actions .ik-key + .ik-key{margin-top:6px}

/* Taller cashier deck; mode switches keep the same total height and avoidance contract. */
@media(min-height:700px){
 #pos-ui #noraKeyboard:not(.ik-numeric){--ik-row-height:72px;--ik-row-gap:8px}
 #pos-ui #noraKeyboard:not(.ik-numeric) .ik-mode,#pos-ui #noraKeyboard:not(.ik-numeric) .ik-hide{min-height:42px!important;min-block-size:42px!important;font-size:17px!important}
}
@media(min-height:950px){
 #pos-ui #noraKeyboard:not(.ik-numeric){--ik-row-height:82px;--ik-row-gap:8px}
 #pos-ui #noraKeyboard:not(.ik-numeric) .ik-mode,#pos-ui #noraKeyboard:not(.ik-numeric) .ik-hide{min-height:48px!important;min-block-size:48px!important}
}
#pos-ui #noraKeyboard .ik-candidate-more{flex:0 0 auto;font-size:16px!important;box-shadow:none;background:#e5eff8}

#pos-ui #noraKeyboard.ik-composing .ik-candidates:empty{display:flex!important}
#pos-ui #noraKeyboard.ik-composing .ik-candidates{height:48px;min-height:48px;box-sizing:border-box}
/* Chosen warm-orange storefront login; all labels remain real accessible text. */
body#pos-ui .login-screen{padding:0;background:#fff;display:grid;grid-template-columns:57% 43%;align-items:stretch;overflow:auto;color:#242424;}
.login-story{position:relative;min-height:100%;background:#fff4e5;overflow:hidden;}
.login-hero{position:absolute;width:100%;height:100%;top:0;right:0;bottom:0;left:0;object-fit:cover;object-position:center bottom;}
.login-story-copy{position:relative;padding:clamp(32px,4.6vw,80px);z-index:1;}
.login-brand{display:flex;align-items:center;gap:18px;white-space:nowrap;}
.login-brand img{width:88px;height:88px;object-fit:contain;flex-shrink:0;border-radius:22%;}
.login-brand strong,.login-brand h1{font-size:clamp(30px,4.3vw,66px);font-weight:800;letter-spacing:.02em;margin:0;}
.login-story h2{margin:42px 0 12px;font-size:clamp(30px,3.9vw,60px);line-height:1.35;font-weight:800;letter-spacing:-.03em;}
.login-title-break{display:none;}
.login-story-copy>p{font-size:clamp(18px,2.3vw,32px);font-weight:700;color:#ad3d00;margin:0;}
.login-panel{display:flex;flex-direction:column;min-width:0;position:relative;padding:20px clamp(28px,3.8vw,64px) 32px;}
.login-window-actions{display:flex;justify-content:flex-end;gap:8px;min-height:48px;margin-bottom:24px;}
body#pos-ui .login-window-actions .btn{font-size:16px;min-height:48px;color:#4a4a4a;border:1px solid #d7d7d7;border-radius:8px;padding:8px 16px;background:white;}
body#pos-ui .login-card{width:100%;max-width:540px;border:0;border-radius:0;box-shadow:none;padding:0;background:#fff;margin:auto;gap:10px;}
.login-brand-small{gap:12px;margin-bottom:20px;}
.login-brand-small img{width:52px;height:52px;}
.login-brand-small strong{font-size:clamp(24px,2.4vw,36px);}
body#pos-ui .login-card h2{font-size:clamp(32px,3.3vw,48px);font-weight:800;line-height:1.3;margin:0;}
body#pos-ui .login-sub{text-align:left;font-size:clamp(16px,1.6vw,22px);color:#6c6c6c;margin:0 0 22px;}
body#pos-ui .login-card label{font-size:18px;color:#292929;font-weight:600;margin-top:4px;}
body#pos-ui .login-card input:not([type=checkbox]){width:100%;min-width:48px;height:56px;border:1px solid #bfc1c5;border-radius:8px;background:white;padding:12px 16px;color:#252525;font-size:18px;}
body#pos-ui .login-card input:focus{outline:2px solid #bf360c;outline-offset:2px;border-color:#bf360c;}
.login-password{position:relative;}
body#pos-ui .login-password input{padding-right:76px!important;}
.login-password button{position:absolute;right:4px;top:4px;min-width:60px;min-height:48px;border:0;background:white;border-radius:6px;color:#555;font-size:16px;cursor:pointer;}
body#pos-ui .login-remember{display:flex;align-items:center;gap:10px;min-height:48px;margin-top:8px;cursor:pointer;position:relative;}
body#pos-ui .login-remember input{width:48px;height:48px;min-height:48px;flex-shrink:0;margin:0;}
body#pos-ui .login-remember-hint{font-size:15px;line-height:1.5;color:#737373;margin:-4px 0 0;}
body#pos-ui .login-error{font-size:15px;line-height:1.5;margin:0;min-height:22px;overflow-wrap:anywhere;}
body#pos-ui #loginSubmit{width:100%;max-width:none;min-height:64px;margin:0;background:#e65100;border-color:#e65100;border-radius:9px;font-size:22px;font-weight:800;color:white;}
body#pos-ui #loginSubmit:hover{background:#bf360c;}
body#pos-ui .login-hint{font-size:15px;line-height:1.5;color:#6c6c6c;margin:10px 0 0;}
@media(max-width:1100px){.login-title-break{display:block;}.login-story h2{margin-top:26px;}.login-brand img{width:64px;height:64px;}.login-brand-small img{width:44px;height:44px;}.login-panel{padding:14px 28px 22px;}.login-window-actions{margin-bottom:12px;}.login-brand-small{margin-bottom:12px;}}
@media(max-height:750px) and (min-width:761px){.login-story-copy{padding:30px 38px;}.login-story h2{font-size:36px;margin-top:22px;}.login-story .login-brand img{width:60px;height:60px;}.login-story .login-brand strong,.login-brand h1{font-size:40px;}.login-panel{padding-top:12px;padding-bottom:16px;}.login-window-actions{margin-bottom:8px;}.login-card{gap:8px!important;}.login-brand-small{margin-bottom:8px;}.login-brand-small img{width:40px;height:40px;}.login-card h2{font-size:32px!important;}.login-sub{margin-bottom:12px!important;}.login-brand-small strong{font-size:28px;}}
@media(max-width:760px){body#pos-ui .login-screen{display:block;}.login-story{display:none;}.login-panel{min-height:100%;padding:16px 24px 32px;}.login-card{margin:auto!important;}.login-window-actions{margin-bottom:28px;}.login-brand-small{margin-bottom:18px;}}
/* Keep the login composition stable; only its form scrolls above the keyboard. */
html.keyboard-open body#pos-ui #loginScreen.keyboard-surface{
  top:0!important;height:100%!important;max-height:none!important;
  overflow:hidden!important;align-items:stretch!important;
}
html.keyboard-open body#pos-ui #loginScreen.keyboard-surface .login-panel{
  height:var(--keyboard-viewport-height,100vh)!important;
  max-height:var(--keyboard-viewport-height,100vh)!important;
  min-height:0!important;overflow-y:auto!important;box-sizing:border-box;
  scroll-padding-top:16px;scroll-padding-bottom:24px;
}
html.keyboard-open body#pos-ui #loginScreen.keyboard-surface .login-panel>*{flex-shrink:0;}

/* Override the shared blue cashier theme only within the selected orange login. */
body#pos-ui #loginScreen #loginSubmit{background:#e65100!important;border-color:#e65100!important;color:#fff!important;font-size:22px!important;min-height:64px!important;height:64px!important;}
body#pos-ui #loginScreen #loginSubmit:hover{background:#bf360c!important;}
body#pos-ui #loginScreen input:not([type=checkbox]){font-size:18px!important;border-radius:8px!important;}
body#pos-ui #loginScreen input[type=checkbox]{width:48px!important;min-width:48px!important;height:48px!important;min-height:48px!important;padding:0!important;-webkit-appearance:checkbox!important;cursor:pointer;}
@media(max-height:650px) and (min-width:761px){.login-panel .login-brand-small{display:none;}.login-story h2{font-size:32px;margin-top:14px;}.login-story-copy>p{font-size:20px;}}

.login-options{display:flex;flex-wrap:wrap;gap:8px 16px;}
body#pos-ui .login-options .login-remember{font-size:16px;gap:8px;white-space:nowrap;}
@media(max-height:650px) and (min-width:761px){.login-hero{object-position:center top;}}
/* Native checkbox glyph is 24px; the associated clickable label remains 48px tall. */
body#pos-ui #loginScreen input[type=checkbox]{transform:scale(.5);transform-origin:center;margin:0 -12px;}

.settings-window-actions{display:flex;flex-wrap:wrap;gap:8px;}

body#pos-ui .login-options label[for=loginAuto]{margin-left:auto;}
body#pos-ui .login-remember-hint:empty{display:none;}
/* 做法管理 */
.practice-page{margin:24px;background:#fff;border:1px solid #e0e6ec;border-radius:12px;padding:24px;color:#263744}
.practice-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.practice-toolbar h2,.practice-toolbar h3{margin:0}.practice-toolbar>div{display:flex;gap:12px}
.practice-table-scroll{overflow:auto}.practice-table{width:100%;border-collapse:collapse;font-size:16px}.practice-table th{background:#eaf6fd;text-align:left;font-weight:500}.practice-table td,.practice-table th{padding:16px;border-bottom:1px solid #e6ebef;vertical-align:middle}.practice-table small{display:block;color:#758491;margin-top:6px}.practice-table td:last-child{white-space:nowrap}.practice-empty{text-align:center;padding:64px!important;color:#758491}
dialog.practice-dialog{width:min(900px,calc(100vw - 48px));max-width:calc(100vw - 48px);max-height:calc(var(--app-viewport-height,100vh) - 40px);padding:0;border:1px solid #dce4eb;border-radius:10px;color:#263744;box-shadow:0 16px 50px #17354d30;margin:auto}
dialog.practice-small{width:min(580px,calc(100vw - 48px))}.practice-dialog::backdrop{background:#263b5066}.practice-dialog>form{margin:0;min-height:0;display:flex;flex-direction:column;max-height:inherit}.practice-dialog header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;background:#f4f8fb;border-bottom:1px solid #e0e6ec}.practice-dialog header h2{font-size:23px;margin:0}.practice-body{padding:24px;overflow:auto;min-height:0}.practice-dialog footer{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #e0e6ec;background:white}.practice-dialog footer strong{margin-right:auto}.practice-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:20px}.practice-fields label{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.practice-fields label>input:not([type=checkbox]),.practice-fields select{width:100%;min-width:48px;height:48px}.practice-fields b,.practice-error{color:#d83434}.practice-error:empty{display:none}.practice-dialog h3{font-size:19px}.practice-body>.practice-toolbar{margin-top:24px}.practice-products{display:grid;grid-template-columns:1fr 1fr;max-height:220px;overflow:auto;margin-top:12px;gap:8px}.practice-products label{display:flex;align-items:center;gap:10px;min-height:44px;padding:8px;background:#f5f9fc}.practice-products small{margin-left:auto;color:#778895}.practice-choice-options{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:24px}.practice-choice-item{display:flex;gap:4px}.practice-choice-item button{min-height:54px}#practiceChoices h3 small{font-size:14px;font-weight:normal;margin-left:12px;color:#718393}#practiceChoose[open]{display:flex;flex-direction:column}#practiceChoose .practice-body{flex:1}
@media(max-width:700px){.practice-fields,.practice-products{grid-template-columns:1fr}.practice-page{margin:12px;padding:12px}.practice-dialog header,.practice-body,.practice-dialog footer{padding:16px}}
.practice-dialog input:not([type=checkbox]),.practice-dialog select{border:1px solid #d8e1e9;border-radius:5px;background:#fff;color:#263744;padding:10px 12px;font:inherit}.practice-dialog input:focus,.practice-dialog select:focus{outline:2px solid #168fd4;outline-offset:1px}#practiceProductSearch{width:100%;min-height:48px}

/* 叫号取餐：以远程参考的两栏弹窗、订单行与数字键盘为视觉基线。 */
#pickupBoard { width:min(1200px,64vw); min-width:min(938px,calc(100vw - 32px)); height:min(780px,74vh); min-height:min(612px,calc(100vh - 32px)); max-height:calc(100vh - 32px); padding:0; border:0; border-radius:8px 8px 0 0; color:#292c30; background:#fff; overflow:hidden; font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif; }
#pickupBoard::backdrop { background:rgba(0,0,0,.52); }
#pickupBoard button { font-family:inherit; cursor:pointer; -webkit-tap-highlight-color:transparent; }
#pickupBoard button:disabled { cursor:default; }
#pickupBoard button:focus,#pickupBoard input:focus { outline:3px solid #82bfff; outline-offset:2px; }
#pickupBoard [hidden] { display:none !important; }
#pickupBoard .pickup-header { flex:0 0 76px; display:flex; align-items:stretch; justify-content:space-between; padding:0 24px 0 20px; background:#f2f5fb; }
#pickupBoard .pickup-tabs { display:flex; gap:48px; }
#pickupBoard .pickup-tabs button { border:0; border-bottom:2px solid transparent; background:none; padding:0 14px; margin:14px 0; color:#272a2e; font-size:24px!important; font-weight:700; border-radius:0; }
#pickupBoard .pickup-tabs button[aria-pressed="true"] { color:#2395ec; border-bottom-color:#2395ec; }
#pickupBoard .pickup-icon-button { border:0; background:transparent; display:flex; justify-content:center; align-items:center; padding:0; min-width:48px; min-height:48px; }
#pickupBoard #pickupClose { width:48px; align-self:center; }
#pickupBoard #pickupClose img { width:25px; height:25px; opacity:.4; }
#pickupBoard .pickup-layout { flex:1; min-height:0; display:grid; grid-template-columns:67.3% 32.7%; }
#pickupBoard .pickup-queue { display:flex; flex-direction:column; min-height:0; min-width:0; padding:24px; overflow:auto; position:relative; }
#pickupBoard .pickup-rows { display:block; margin:0; padding:0; }
#pickupBoard .pickup-rows li { display:flex; flex-wrap:nowrap; gap:14px; padding:12px 16px; margin:0 0 12px; border:0; border-radius:0; background:#f4fafd; align-items:center; }
#pickupBoard .pickup-rows .pickup-group-title { padding:0; margin:0 0 10px; font-size:23px; line-height:1.4; font-weight:650; background:transparent; }
#pickupBoard .pickup-rows .pickup-group-title:not(:first-child) { margin-top:24px; }
#pickupBoard .pickup-order-number { flex:0 0 24%; min-width:0; }
#pickupBoard .pickup-order-number small { display:block; color:#969ba1; font-size:13px; line-height:1.5; white-space:nowrap; }
#pickupBoard .pickup-order-number strong { display:block; font-size:32px; font-weight:650; line-height:1.35; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
#pickupBoard .pickup-dishes { flex:1; min-width:0; align-self:flex-start; color:#969ba1; font-size:14px; line-height:1.5; }
#pickupBoard .pickup-dishes span { display:block; }
#pickupBoard .pickup-dishes small { display:block; font-size:12px!important; line-height:1.4; }
#pickupBoard .pickup-quantity { flex:none; color:#969ba1; font-size:14px; margin-right:30px; }
#pickupBoard .pickup-row-actions { display:flex; gap:16px; width:auto; flex:none; }
#pickupBoard .pickup-row-actions button { width:92px; min-width:92px; flex:none; height:48px; padding:0 14px; border:1px solid #e1e3e5; border-radius:7px; background:#fff; color:#333; font-size:19px!important; font-weight:400; white-space:nowrap; }
#pickupBoard .pickup-row-actions .pickup-call { background:#2196f3; border-color:#2196f3; color:#fff; }
#pickupBoard .pickup-row-actions button:disabled { opacity:.5; }
#pickupBoard .pickup-done { color:#969ba1; font-size:16px; }
#pickupBoard .pickup-dialer { min-width:0; min-height:0; display:grid; grid-template-rows:1fr 2.06fr 84px; gap:16px; padding:24px; border-left:6px solid #e0e3e8; }
#pickupBoard .pickup-number-box { border:1px solid #e1e3e5; border-radius:7px; display:flex; flex-direction:column; justify-content:center; align-items:center; min-height:0; }
#pickupBoard .pickup-number-box label { color:#999ea2; font-size:20px!important; line-height:1.4; }
#pickupBoard .pickup-number-entry { display:flex; align-items:center; justify-content:center; max-width:100%; }
#pickupBoard #pickupNumber { width:7.5ch; min-width:48px; border:0; padding:4px 0 0; border-radius:0; background:transparent; color:#202326; text-align:center; font-size:32px; line-height:1.4; height:auto; min-height:48px; font-weight:600; font-variant-numeric:tabular-nums; box-shadow:none; }
#pickupBoard #pickupNumber:placeholder-shown { display:none; }
#pickupBoard #pickupClear { width:48px; min-width:48px; }
#pickupBoard #pickupClear img { width:23px; height:23px; opacity:.15; }
#pickupBoard .pickup-keypad { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-template-rows:repeat(4,minmax(0,1fr)); gap:9px; }
#pickupBoard .pickup-keypad button { min-width:48px; min-height:48px; padding:0; border:0; border-radius:8px; background:#fff; box-shadow:0 5px 10px #00000016; color:#232527; font-size:34px!important; line-height:1; font-weight:700; }
#pickupBoard .pickup-keypad img { width:40px; height:40px; vertical-align:middle; }
#pickupBoard .pickup-keypad button:active { background:#edf6ff; }
#pickupBoard .pickup-call-number { border:0; border-radius:7px; margin-top:14px; padding:0 8px; background:#2196f3; color:#fff; font-size:21px!important; font-weight:400; min-height:48px; }
#pickupBoard .pickup-call-number:disabled { background:#ddd; color:#fff; }
#pickupBoard #pickupListStatus:empty { display:none; }
#pickupBoard #pickupListStatus:not(:empty) { flex:1; display:flex; align-items:center; justify-content:center; }
#pickupBoard .pickup-empty { text-align:center; color:#666; transform:translateY(24px); }
#pickupBoard .pickup-empty img { width:150px; height:150px; object-fit:contain; }
#pickupBoard .pickup-empty p { margin:14px 0 0; font-size:20px!important; line-height:1.4; }
#pickupBoard .pickup-queue-footer { display:flex; gap:12px; flex-wrap:wrap; align-items:center; margin-top:auto; padding-top:12px; color:#949a9f; font-size:12px!important; }
#pickupBoard .pickup-queue-footer button { margin-left:auto; padding:4px 8px; min-height:48px; background:none; border:0; color:#7e8c96; font-size:12px!important; }
#pickupBoard .pickup-history-tools label { display:flex; align-items:center; gap:8px; font-size:12px!important; }
#pickupBoard #pickupDate { font-size:12px!important; width:124px; min-height:48px; padding:4px; }
#pickupBoard #pickupMessage { font-size:14px; line-height:1.5; background:#edf6ff; color:#246aa2; padding:10px; margin:12px 0 0; }
@media(max-width:1200px) {
  #pickupBoard { width:calc(100vw - 32px); }
  #pickupBoard .pickup-quantity { margin-right:4px; }
  #pickupBoard .pickup-row-actions { gap:8px; }
  #pickupBoard .pickup-row-actions button { min-width:72px; padding:0 10px; }
}
@media(max-width:800px) {
  #pickupBoard { min-width:0; width:calc(100vw - 16px); height:calc(100vh - 16px); max-height:calc(100vh - 16px); min-height:0; }
  #pickupBoard .pickup-header { flex-basis:64px; padding:0 12px; }
  #pickupBoard .pickup-tabs { gap:16px; }
  #pickupBoard .pickup-tabs button { font-size:20px!important; padding:0 8px; }
  #pickupBoard .pickup-layout { grid-template-columns:minmax(0,1fr) 260px; }
  #pickupBoard .pickup-queue,#pickupBoard .pickup-dialer { padding:16px; }
  #pickupBoard .pickup-rows li { flex-wrap:wrap; gap:10px; padding:12px; }
  #pickupBoard .pickup-order-number { flex-basis:42%; }
  #pickupBoard .pickup-quantity { margin-left:auto; }
  #pickupBoard .pickup-row-actions { width:100%; }
  #pickupBoard .pickup-row-actions button { flex:1; }
  #pickupBoard .pickup-keypad button { font-size:28px!important; }
}
@media(max-width:560px) {
  #pickupBoard .pickup-layout { display:flex; flex-direction:column; overflow:auto; }
  #pickupBoard .pickup-queue { overflow:visible; flex:none; min-height:260px; }
  #pickupBoard .pickup-dialer { flex:none; height:460px; border-left:0; border-top:4px solid #e0e3e8; grid-template-rows:90px 220px 60px; gap:12px; }
  #pickupBoard .pickup-number-box { flex-direction:row; gap:8px; }
  #pickupBoard .pickup-number-box label { font-size:16px; }
  #pickupBoard .pickup-call-number { margin-top:0; }
}


body#pos-ui.pos-reference[data-current-page] #pickupBoard button:focus { outline:2px solid #1685da; outline-offset:2px; }
#pickupBoard .pickup-keypad button { display:flex; align-items:center; justify-content:center; }

#pickupBoard .pickup-tabs button { position:relative; }
#pickupBoard .pickup-tabs button[aria-pressed="true"] { border-bottom-color:transparent; }
#pickupBoard .pickup-tabs button[aria-pressed="true"]::after { content:""; position:absolute; height:2px; background:#2395ec; width:72px; bottom:0; left:50%; transform:translateX(-50%); }
@media(max-width:1200px) { #pickupBoard .pickup-row-actions button { width:80px; } }
@media(max-width:800px) { #pickupBoard .pickup-row-actions button { width:auto; } }

#pickupBoard .pickup-row-actions .pickup-recall { width:200px; }
#pickupBoard #pickupMessage.pickup-notice-success { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); margin:0; padding:12px 18px; background:#666; color:white; border-radius:4px; z-index:1; white-space:nowrap; }
@media(max-width:1200px) { #pickupBoard .pickup-row-actions .pickup-recall { width:168px; } }
@media(max-width:800px) { #pickupBoard .pickup-row-actions .pickup-recall { width:auto; flex:1; } }
/* Reference settings proportions; does not select or override keyboard elements. */
body#pos-ui.pos-reference[data-current-page] #page-settings { grid-template-columns:26.5% minmax(0,1fr); }
body#pos-ui.pos-reference[data-current-page] #page-settings .pos-settings-main { background:#fff; padding:24px; }
body#pos-ui.pos-reference[data-current-page] #page-settings .pos-settings-nav button { align-items:center; text-align:center; border:0; min-height:112px; gap:7px; }
body#pos-ui.pos-reference[data-current-page] #page-settings .pos-settings-nav strong { font-size:24px; font-weight:650; }
body#pos-ui.pos-reference[data-current-page] #page-settings .pos-settings-nav span { font-size:18px; line-height:1.4; }
body#pos-ui.pos-reference[data-current-page] #page-settings .page-head { display:none; }
body#pos-ui.pos-reference[data-current-page] #page-settings .settings-access { padding:0; background:none; border:0; font-size:12px; margin-bottom:16px; color:#89919a; }
.terminal-section { min-height:calc(100vh - 180px); display:flex; flex-direction:column; }
.terminal-section [hidden] { display:none!important; }
.terminal-panel { border:1px solid #e1e3e6; border-radius:9px; overflow:hidden; }
.terminal-panel > h2 { font-size:23px; margin:0; padding:26px; font-weight:650; }
body#pos-ui.pos-reference[data-current-page] #page-settings .terminal-row { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:26px 24px; width:100%; min-height:100px; text-align:left; border:0; border-bottom:1px solid #e8e9ec; background:#fff; color:#292d32; font-size:22px; }
.terminal-row:last-child { border-bottom:0!important; }
.terminal-row > span:first-child { min-width:0; }
.terminal-row strong { display:block; font-size:22px; font-weight:600; }
.terminal-row small { display:block; font-size:18px; font-weight:400; color:#969a9e; line-height:1.5; margin-top:7px; }
.terminal-chevron { color:#92989e; font-size:32px; }
.terminal-unavailable { color:#999; font-size:17px; flex-shrink:0; }
.terminal-switch { flex:0 0 84px; position:relative; height:40px; }
body#pos-ui.pos-reference[data-current-page] #page-settings .terminal-switch input { opacity:0; position:absolute; left:0; right:0; bottom:0; width:84px; height:48px; top:-4px; margin:0; cursor:pointer; z-index:1; }
.terminal-switch > span { display:block; position:relative; width:84px; height:40px; background:#c9cbd0; border-radius:24px; }
.terminal-switch > span:before { content:'关'; color:white; position:absolute; right:10px; top:4px; font-size:23px; }
.terminal-switch > span:after { content:''; position:absolute; width:28px; height:28px; top:6px; left:7px; border-radius:50%; background:white; }
.terminal-switch input:checked + span { background:#2196f3; }
.terminal-switch input:checked + span:after { left:49px; }
.terminal-switch input:checked + span:before { content:'开'; left:10px; right:auto; }
.terminal-switch input:focus + span { outline:3px solid #1263ac; outline-offset:4px; }
body#pos-ui.pos-reference[data-current-page] #page-settings .terminal-row select { width:110px; border:0; text-align:right; font-size:22px; padding-right:4px; }
.terminal-footer { display:flex; justify-content:flex-end; gap:18px; margin-top:auto; padding-top:32px; }
.terminal-footer .btn { min-width:150px; }
.terminal-footer .terminal-save-status { flex:1; }
.terminal-card-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.terminal-card-option { position:relative; display:flex; flex-direction:column; gap:12px; border:2px solid #dddfe4; border-radius:7px; padding:24px; cursor:pointer; }
body#pos-ui.pos-reference[data-current-page] #page-settings .terminal-card-option input { position:absolute; right:14px; bottom:15px; width:48px; height:48px; min-height:48px; min-width:48px;  }
.terminal-card-option.selected { border-color:#2196f3; background:#f6fbff; }
.terminal-card-option strong { font-size:21px; font-weight:600; }
.terminal-card-option > small { font-size:16px; color:#90969c; padding-right:28px; }
.terminal-card-mini { display:grid; grid-template-columns:repeat(var(--columns),minmax(0,1fr)); gap:4px; padding:10px; background:#f0f2f5; height:160px; }
.terminal-card-mini > span { display:flex; justify-content:space-between; flex-direction:column; background:#fff; padding:5px; border:1px solid #e0e3e6; border-radius:2px; overflow:hidden; }
.terminal-card-mini b,.terminal-card-mini small { font-size:9px; white-space:nowrap; color:#92989f; font-weight:400; }
.terminal-card-disabled { justify-content:center; color:#999; cursor:default; background:#fafafa; }
.terminal-subhead { display:flex; align-items:center; gap:20px; margin-bottom:24px; }
.terminal-subhead h2 { margin:0; font-size:24px; }
.terminal-quick-layout { display:grid; grid-template-columns:minmax(0,1fr) 40%; gap:24px; }
.terminal-quick-preview h3 { font-size:22px; font-weight:600; margin:20px 0; }
.terminal-preview-cart { min-height:320px; border:1px solid #dce1e6; display:flex; flex-direction:column; }
.terminal-preview-cart > div:first-child { padding:18px; border-bottom:1px solid #ddd; }
.terminal-preview-lines { display:flex; justify-content:space-between; padding:18px; font-size:15px; color:#a0a4a9; }
.terminal-preview-total { margin-top:auto; display:flex; justify-content:space-between; padding:18px; }
.terminal-preview-total b { color:#f24f38; }
.terminal-preview-buttons { display:flex; gap:4px; padding:6px; flex-wrap:wrap; }
.terminal-preview-buttons span { background:#2196f3; color:white; padding:12px; flex:1; text-align:center; white-space:nowrap; }
.terminal-preview-buttons .cash { background:#f34f38; }
.terminal-preview-buttons span:last-child { color:#666; background:#eee; }
.terminal-quick-options > p { padding:20px; line-height:1.7; color:#555; }
body#pos-ui.pos-reference[data-current-page] #page-settings .terminal-quick-options .terminal-row { padding:20px; min-height:85px; }
.terminal-quick-pay { display:flex; gap:6px; flex-wrap:wrap; padding:10px 0 0; }
.terminal-quick-pay[hidden] { display:none; }
body#pos-ui.pos-reference[data-current-page] #page-order .terminal-quick-pay button { flex:1; min-width:80px; min-height:60px; padding:10px 7px; font-size:19px; color:white; background:#2196f3; border-radius:5px; }
body#pos-ui.pos-reference[data-current-page] #page-order .terminal-quick-pay .cash { background:#f34e38; }
body#pos-ui.pos-reference[data-current-page] #page-order .terminal-quick-pay button:last-child { background:#e4e5e8; color:#555; }
body#pos-ui.pos-reference[data-current-page] #page-order .terminal-quick-pay button:disabled { opacity:.45; }
body#pos-ui.pos-reference[data-current-page][data-product-card="medium"] #page-order .dish-grid { grid-template-columns:repeat(5,minmax(0,1fr)); }
body#pos-ui.pos-reference[data-current-page][data-product-card="small"] #page-order .dish-grid { grid-template-columns:repeat(6,minmax(0,1fr)); }
body#pos-ui.pos-reference[data-current-page][data-product-card="medium"] #page-order .dish-card { min-height:150px; padding:12px; }
body#pos-ui.pos-reference[data-current-page][data-product-card="small"] #page-order .dish-card { min-height:125px; padding:10px; }
body#pos-ui.pos-reference[data-current-page][data-product-card="small"] #page-order .dish-card .d-name { font-size:18px; }
body#pos-ui.pos-reference[data-current-page][data-table-amount="false"] .table-card[data-status="pay"] .amount { visibility:hidden; }
@media(min-width:1800px) { body#pos-ui.pos-reference[data-current-page] #page-settings .pos-settings-nav button { min-height:120px; } .terminal-row small { font-size:21px; } }
@media(max-width:1100px) { body#pos-ui.pos-reference[data-current-page] #page-settings .pos-settings-nav strong { font-size:19px; } body#pos-ui.pos-reference[data-current-page] #page-settings .pos-settings-nav span { font-size:14px; } .terminal-card-option { padding:14px; } .terminal-quick-layout { grid-template-columns:1fr; } }
@media(max-width:700px) { body#pos-ui.pos-reference[data-current-page] #page-settings { grid-template-columns:1fr; } .terminal-card-options { grid-template-columns:1fr; } .terminal-row strong { font-size:18px; } .terminal-row small { font-size:15px; } body#pos-ui.pos-reference[data-current-page] #page-settings .terminal-row { padding:20px 14px; gap:12px; } body#pos-ui.pos-reference[data-current-page][data-product-card] #page-order .dish-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(min-width:701px) { body#pos-ui.pos-reference[data-current-page] #page-settings .pos-settings-nav button { flex:0 0 auto; min-height:96px; } }
.terminal-footer { position:sticky; bottom:0; background:#fff; padding:20px 0 12px; z-index:2; }
#page-settings .terminal-section { --ui-button-font:20px; }
.terminal-cards-heading { margin:0 0 24px; font-size:22px; font-weight:600; }
.terminal-card-options { max-width:800px; gap:24px; }
.terminal-card-option { padding:16px; gap:7px; min-height:235px; }
.terminal-card-option strong { font-size:19px; padding-right:42px; }
.terminal-card-option > small { font-size:14px; }
.terminal-card-mini { margin-top:10px; height:140px; }
body#pos-ui.pos-reference[data-current-page] #page-settings .terminal-card-option input { bottom:auto; top:6px; right:6px; }
.terminal-card-mini b,.terminal-card-mini small { font-size:9px!important; line-height:1.4; }

#terminalPaymentHome .terminal-footer { padding:20px 24px; margin:0; background:#f7f9fc; }
.terminal-muted strong, .terminal-muted .terminal-switch { opacity:.5; }
/* Platform shells follow the reference's blue header, wide binding panel and left platform rail. */
body#pos-ui.pos-reference[data-current-page] .channel-page { padding:0; background:#f7f8fa; }
.channel-page [hidden] { display:none!important; }
.channel-tabs { display:flex; align-items:center; min-height:78px; border-bottom:1px solid #e2e5e9; background:#fff; padding:0 30px; gap:32px; }
.channel-tabs button { min-height:78px; border:0; border-bottom:3px solid transparent; background:transparent; font-size:23px; padding:10px 14px; color:#686d75; }
.channel-tabs button.active { color:#2196f3; border-bottom-color:#2196f3; }
.channel-tabs .channel-refresh { margin-left:auto; font-size:18px; }
.channel-body { display:flex; min-height:calc(100vh - 185px); }
.delivery-promo { width:36%; flex-shrink:0; margin:0; background:#eaf4fd; overflow:hidden; display:flex; flex-direction:column; text-align:center; }
.delivery-promo h1 { color:#1689e8; margin:36px 15px 10px; font-size:48px; }
.delivery-promo p { font-size:21px; margin:0 10px 20px; color:#4285b4; }
.delivery-promo img { width:100%; flex:1; min-height:0; object-fit:cover; object-position:50% 70%; }
.delivery-bindings { width:64%; padding:34px 5%; display:flex; flex-direction:column; }
.delivery-bindings h2 { font-size:30px; font-weight:600; text-align:center; margin:0 0 10px; }
.channel-status { color:#9399a1; line-height:1.5; font-size:16px; min-height:24px; margin-bottom:18px; }
.delivery-bindings .channel-status { text-align:center; }
.delivery-platforms { display:grid; gap:20px; }
.delivery-platforms button { display:flex; align-items:center; width:100%; min-height:105px; padding:14px 20px; gap:18px; background:#fff; border:0; color:#333; text-align:left; }
.delivery-platforms button > span:nth-child(2) { font-size:26px; flex:1; }
.delivery-platforms small { font-size:16px; color:#959ba3; }
.delivery-platforms b { color:#bbb; font-weight:400; font-size:28px; }
.platform-mark { display:inline-flex; justify-content:center; align-items:center; border-radius:12px; width:58px; height:58px; color:white; background:#269cf7; font-size:30px; font-weight:700; flex-shrink:0; }
.platform-meituan { background:#ffcc16; color:#403a21; }.platform-taobao { background:#ff7709; }.platform-douyin { background:#161d27; }.platform-jd { background:#f03645; }.platform-kuaishou { background:#ff6a17; }.platform-alipay { background:#10a0ed; }
.delivery-benefits { display:flex; justify-content:space-around; gap:20px; padding:34px 0 10px; margin-top:auto; text-align:center; }
.delivery-benefits strong { display:block; font-size:24px; font-weight:500; margin-bottom:12px; }.delivery-benefits span { display:block; font-size:16px; color:#969ca4; }
.channel-platform-nav { flex:0 0 26.5%; border-right:1px solid #e5e7ea; background:#fff; padding:15px 0; }
.channel-platform-nav button { display:flex; align-items:center; width:100%; gap:18px; min-height:108px; border:0; border-bottom:1px solid #e8eaf0; background:#fff; padding:22px 30px; font-size:24px; color:#363c43; text-align:left; }
.channel-platform-nav button.active { background:#e8f4ff; color:#2196f3; }
.channel-workspace { flex:1; min-width:0; background:#fff; padding:26px; display:flex; flex-direction:column; }
.channel-empty { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; color:#9a9fa7; min-height:340px; padding:30px 20px; }
.channel-empty img { width:220px; max-width:60%; height:170px; object-fit:contain; }
.channel-empty h2 { font-size:24px; font-weight:500; margin:22px 0 10px; color:#696f78; }.channel-empty p { font-size:18px; line-height:1.8; margin:0; }
.voucher-actions { text-align:center; padding:0 0 70px; }.voucher-actions .btn { min-width:180px; }
.channel-filters { display:flex; align-items:flex-end; gap:14px; flex-wrap:wrap; padding:15px 0 25px; }
.channel-filters label { display:flex; flex-direction:column; gap:10px; flex:1; min-width:140px; font-size:16px; }
body#pos-ui.pos-reference[data-current-page] .channel-filters input,body#pos-ui.pos-reference[data-current-page] .channel-filters select { min-height:48px; width:100%; }
.channel-records { border:1px solid #e5e7ec; flex:1; }.channel-list-head { padding:20px; background:#f4f6f9; color:#7c838c; font-size:17px; }
.pos-launcher-icon img { width:55%; height:55%; filter:brightness(0) invert(1); }
@media(max-width:1100px) { .delivery-bindings { padding:24px 3%; }.delivery-bindings h2 { font-size:24px; }.delivery-platforms button > span:nth-child(2) { font-size:20px; }.channel-platform-nav button { padding:20px 14px; font-size:19px; gap:10px; }.platform-mark { width:46px; height:46px; font-size:25px; }.delivery-benefits strong { font-size:20px; } }
@media(max-width:700px) { .delivery-promo { display:none; }.delivery-bindings { width:100%; }.channel-tabs { padding:0 12px; gap:6px; }.channel-tabs button { font-size:18px; }.channel-body { flex-direction:column; }.channel-platform-nav { display:flex; overflow-x:auto; padding:0; flex:none; }.channel-platform-nav button { flex:0 0 auto; width:auto; font-size:16px; min-height:65px; padding:10px; }.channel-platform-nav .platform-mark { width:30px; height:30px; font-size:18px; }.channel-workspace { padding:18px; }.channel-empty { min-height:240px; }.delivery-benefits { gap:10px; }.delivery-benefits span { font-size:13px; } }
body#pos-ui.pos-reference[data-current-page] .channel-page.active { display:flex; flex-direction:column; }
.channel-tabs { flex:0 0 auto; }
.channel-body { flex:1; }
.channel-page { --ui-button-font:22px; }
body#pos-ui.pos-reference[data-current-page] .channel-tabs button { height:78px!important; min-height:78px!important; min-block-size:78px!important; }
body#pos-ui.pos-reference[data-current-page] .channel-tabs .channel-refresh { font-size:18px!important; }
@media(max-width:1100px) { .channel-page { --ui-button-font:19px; } }
@media(max-width:700px) { .channel-page { --ui-button-font:16px; } }
.platform-mark img { width:38px; height:38px; object-fit:contain; filter:brightness(0) invert(1); }
.platform-meituan img { filter:none; }.platform-jd img { width:48px; height:48px; filter:none; }
@media(max-width:700px) { .channel-platform-nav .platform-mark img { width:22px; height:22px; } }
@media(min-width:1101px) {
 body#pos-ui.pos-reference[data-current-page="voucher"] #posPageTitle { visibility:hidden; }
 body#pos-ui.pos-reference[data-current-page="voucher"] #page-voucher .channel-tabs { position:fixed; top:0; left:80px; right:510px; z-index:51; height:88px; min-height:88px; padding:0; background:transparent; border:0; gap:26px; }
 body#pos-ui.pos-reference[data-current-page="voucher"] .channel-tabs button { color:#e9f5ff; border-radius:0; }
 body#pos-ui.pos-reference[data-current-page="voucher"] .channel-tabs button.active { color:white; border-bottom-color:white; }
 body#pos-ui.pos-reference[data-current-page="voucher"] .channel-tabs .channel-refresh { display:none; }
 body#pos-ui.pos-reference[data-current-page="voucher"] .channel-body { min-height:calc(100vh - 88px); }
 #page-voucher .channel-platform-nav { padding:0; }
 #page-voucher .channel-platform-nav button { min-height:82px; padding:16px 65px; }
 #page-voucher .platform-mark { width:40px; height:40px; border-radius:7px; }
 #page-voucher .platform-mark img { width:28px; height:28px; }
}
/* Unified restaurant UI, derived from the approved combination-payment design.
   Presentation only. The input-method surface and business-state selectors stay owned by their modules. */
body#pos-ui.pos-reference[data-current-page] {
  --ui-brand:#087dcc;--ui-brand-press:#0665a6;--ui-brand-soft:#eaf5ff;
  --ui-bg:#f1f5f9;--ui-sunken:#f7f9fc;--ui-card:#fff;
  --ui-ink:#172b45;--ui-text:#34465c;--ui-muted:#6c7d90;
  --ui-line:#e4eaf1;--ui-line-strong:#d2dce7;
  --ui-ok:#12856b;--ui-danger:#c53e3e;--ui-danger-soft:#fff0ee;--ui-danger-press:#9d2828;--ui-warn:#ae671b;
  --ui-font:"ZD Inter","PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif;
  --ui-radius-sm:10px;--ui-radius:14px;--ui-radius-lg:16px;
  --ui-shadow:0 2px 8px #18324f08;
  --bg:var(--ui-bg);--bg-elev:#fff;--bg-panel:#fff;--bg-hover:var(--ui-sunken);
  --border:var(--ui-line);--border-strong:var(--ui-line-strong);--text:var(--ui-text);--text-dim:var(--ui-muted);--heading:var(--ui-ink);--r:14px;--r-sm:10px;
}
body#pos-ui.pos-reference[data-current-page="members"]{--ui-brand:#7555bd;--ui-brand-press:#5b3e9e;--ui-brand-soft:#f3effc;}
body#pos-ui.pos-reference[data-current-page="reports"],body#pos-ui.pos-reference[data-current-page="department-report"],body#pos-ui.pos-reference[data-current-page="shift"]{--ui-brand:#087f78;--ui-brand-press:#05615c;--ui-brand-soft:#e8f6f2;}
body#pos-ui.pos-reference[data-current-page="products"],body#pos-ui.pos-reference[data-current-page="practices"]{--ui-brand:#ab651c;--ui-brand-press:#844b12;--ui-brand-soft:#fff5e7;}
body#pos-ui.pos-reference[data-current-page="settings"],body#pos-ui.pos-reference[data-current-page="departments"],body#pos-ui.pos-reference[data-current-page="templates"]{--ui-brand:#526a88;--ui-brand-press:#3b506b;--ui-brand-soft:#edf2f8;}
body#pos-ui.pos-reference[data-current-page="delivery"],body#pos-ui.pos-reference[data-current-page="voucher"]{--ui-brand:#ac641c;--ui-brand-press:#85480c;--ui-brand-soft:#fff5e8;}
body#pos-ui.pos-reference[data-current-page] .topbar{background:var(--ui-brand);box-shadow:0 2px 8px #142f4710;}
body#pos-ui.pos-reference[data-current-page] .topbar-brand{font-weight:650;letter-spacing:.01em;}
body#pos-ui.pos-reference[data-current-page] .pos-top-action{border-radius:10px;}
body#pos-ui.pos-reference[data-current-page] .topbar .search input{border-radius:12px;background:#ffffff20;}
body#pos-ui.pos-reference[data-current-page] .page{background:var(--ui-bg);color:var(--ui-text);}
body#pos-ui.pos-reference[data-current-page] .page h1{color:var(--ui-ink);font-weight:650;letter-spacing:0;}
body#pos-ui.pos-reference[data-current-page] :-webkit-any(.ui-card,.set-card,.feature-card,.member-directory,.report-kpi,.bars){border:1px solid var(--ui-line);border-radius:14px;box-shadow:none;background:#fff;}
body#pos-ui.pos-reference[data-current-page] :-webkit-any(.page-head,.feature-toolbar){gap:18px;}
body#pos-ui.pos-reference[data-current-page] :-webkit-any(.btn,.ui-button,.filter-pill,.cat-btn,.chip){border-radius:10px;font-weight:500!important;}
body#pos-ui.pos-reference[data-current-page] :-webkit-any(.btn,.ui-button):-webkit-any(.primary,.hot,.lg){font-weight:650!important;}
body#pos-ui.pos-reference[data-current-page] :-webkit-any(.btn,.ui-button):-webkit-any(.danger,.danger-text){background:var(--ui-danger-soft)!important;border-color:#edc4c0!important;color:var(--ui-danger)!important;}
body#pos-ui.pos-reference[data-current-page] .app :-webkit-any(input,select,textarea){border-radius:10px;border-color:var(--ui-line-strong);color:var(--ui-ink);}
body#pos-ui.pos-reference[data-current-page] .app :-webkit-any(input,select,textarea)::placeholder{color:#7f8da0;}
body#pos-ui.pos-reference[data-current-page] .app :-webkit-any(input,select,textarea):focus{outline-color:var(--ui-brand);}
body#pos-ui.pos-reference[data-current-page] .page :-webkit-any(table,.data-table){color:var(--ui-text);}
body#pos-ui.pos-reference[data-current-page] .page th{background:#f5f8fb;color:#65768c;font-weight:600;}
body#pos-ui.pos-reference[data-current-page] .page td{border-color:var(--ui-line);}
body#pos-ui.pos-reference[data-current-page] .page tbody tr:hover{background:#f8fbff;}
body#pos-ui.pos-reference[data-current-page] .page :-webkit-any(.report-note,.feature-help,.muted){color:var(--ui-muted);line-height:1.65;}
body#pos-ui.pos-reference[data-current-page] .page .ui-state{padding:28px 20px;color:var(--ui-muted);}
body#pos-ui.pos-reference[data-current-page] .page .ui-state[data-ui-state="error"]{color:var(--ui-danger);}
/* Cashier and tables: quieter panels, legible text cards, stable operation columns. */
body#pos-ui.pos-reference[data-current-page] #page-tables .tables-side{background:#fff;border-right:1px solid var(--ui-line);}
body#pos-ui.pos-reference[data-current-page] #page-tables .tables-main{background:var(--ui-bg);}
body#pos-ui.pos-reference[data-current-page] #page-tables .table-grid{gap:16px;padding:18px;}
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card{border-radius:14px;border:1px solid var(--ui-line);box-shadow:0 2px 6px #18324f06;overflow:hidden;}
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card .name{font-weight:650;}
body#pos-ui.pos-reference[data-current-page] #page-tables .status-item{border-radius:10px;margin:2px 0;}
body#pos-ui.pos-reference[data-current-page] #page-tables .status-item.active{background:var(--ui-brand-soft);color:var(--ui-brand-press);}
body#pos-ui.pos-reference[data-current-page] #page-order .dish-area{background:var(--ui-bg);}
body#pos-ui.pos-reference[data-current-page] #page-order .dish-grid{gap:14px;padding:16px;}
body#pos-ui.pos-reference[data-current-page] #page-order .dish-card{border:1px solid var(--ui-line);border-radius:14px;padding:20px;box-shadow:none;}
body#pos-ui.pos-reference[data-current-page] #page-order .d-name{color:var(--ui-ink);font-weight:600;line-height:1.4;}
body#pos-ui.pos-reference[data-current-page] #page-order .d-price{color:var(--ui-brand-press);font-weight:650;}
body#pos-ui.pos-reference[data-current-page] #page-order .line-ops{background:#f8fafc;border-color:var(--ui-line);}
body#pos-ui.pos-reference[data-current-page] #page-order .cart-panel{border-color:var(--ui-line);}
body#pos-ui.pos-reference[data-current-page] #page-order .cart-item.selected{background:var(--ui-brand-soft);}
body#pos-ui.pos-reference[data-current-page] #page-checkout{padding:16px;background:var(--ui-bg);}
body#pos-ui.pos-reference[data-current-page] #page-checkout .checkout-wrap{gap:16px;}
body#pos-ui.pos-reference[data-current-page] #page-checkout :-webkit-any(.checkout-bill,.checkout-discounts,.checkout-payments,.checkout-settlement){border:1px solid var(--ui-line);border-radius:14px;background:#fff;}
body#pos-ui.pos-reference[data-current-page] #page-checkout .bill-totals{border-color:var(--ui-line);background:#fff;}
body#pos-ui.pos-reference[data-current-page] #page-checkout .settle-box{border:0;background:var(--ui-brand-soft);border-radius:12px;}
body#pos-ui.pos-reference[data-current-page] #page-checkout #payAmount{color:var(--ui-brand-press);}
body#pos-ui.pos-reference[data-current-page] #page-checkout .pay-method{border-radius:10px;}
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-results{border-radius:14px;overflow:auto;}
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-filters{gap:12px;}
/* Membership, catalogue, analytics and administration use the same surface language. */
body#pos-ui.pos-reference[data-current-page] #page-members .member-directory{border-radius:14px;overflow:auto;}
body#pos-ui.pos-reference[data-current-page] #page-members .member-directory-head{background:var(--ui-brand-soft);color:var(--ui-brand-press);}
body#pos-ui.pos-reference[data-current-page] #page-members .member-profile{border-radius:14px;border:1px solid var(--ui-line);}
body#pos-ui.pos-reference[data-current-page] #page-products #productsBody tr{border-radius:14px;border:1px solid var(--ui-line);box-shadow:none;background:#fff;}
body#pos-ui.pos-reference[data-current-page] #page-products .prod-cat-panel{border-right:1px solid var(--ui-line);background:#fff;}
body#pos-ui.pos-reference[data-current-page] #page-products .prod-cat-item.active{background:var(--ui-brand-soft);color:var(--ui-brand-press);}
body#pos-ui.pos-reference[data-current-page] #page-reports .report-nav,body#pos-ui.pos-reference[data-current-page] #page-settings .pos-settings-nav{background:#fff;border-right:1px solid var(--ui-line);padding-top:12px;}
body#pos-ui.pos-reference[data-current-page] #page-reports .report-nav-btn.active,body#pos-ui.pos-reference[data-current-page] #page-settings .pos-settings-nav button.active{background:var(--ui-brand-soft);color:var(--ui-brand-press);border-color:var(--ui-brand);}
body#pos-ui.pos-reference[data-current-page] #page-settings .pos-settings-main,body#pos-ui.pos-reference[data-current-page] #page-reports .report-view{background:var(--ui-bg);}
body#pos-ui.pos-reference[data-current-page] #page-settings .set-card{border:1px solid var(--ui-line);border-radius:14px;margin-bottom:18px;}
body#pos-ui.pos-reference[data-current-page] #page-settings .set-card h2{font-weight:650;color:var(--ui-ink);}
body#pos-ui.pos-reference[data-current-page] #page-shift .shift-card{border-radius:14px;}
body#pos-ui.pos-reference[data-current-page] .feature-page{padding:22px 24px;}
body#pos-ui.pos-reference[data-current-page] .feature-tabs{gap:8px;margin-bottom:18px;border-bottom:1px solid var(--ui-line);}
body#pos-ui.pos-reference[data-current-page] .feature-tabs button[aria-selected=true]{border-color:var(--ui-brand);color:var(--ui-brand-press);}
body#pos-ui.pos-reference[data-current-page] :-webkit-any(.feature-table,.practice-table-scroll){border-radius:12px;border-color:var(--ui-line);}
body#pos-ui.pos-reference[data-current-page] .practice-page{border:1px solid var(--ui-line);border-radius:14px;}
body#pos-ui.pos-reference[data-current-page] .practice-table th{background:var(--ui-brand-soft);color:var(--ui-brand-press);}
body#pos-ui.pos-reference[data-current-page] #page-more.active{background:var(--ui-bg);}
body#pos-ui.pos-reference[data-current-page] .pos-more-panel{border:1px solid var(--ui-line);border-radius:18px;background:#fff;}
body#pos-ui.pos-reference[data-current-page] .pos-launchers{gap:22px 16px;}
body#pos-ui.pos-reference[data-current-page] .pos-launcher-icon{border-radius:20px;box-shadow:none;width:80px;height:80px;}
body#pos-ui.pos-reference[data-current-page] .pos-launcher{border-radius:14px;font-weight:500;}
body#pos-ui.pos-reference[data-current-page] .pos-launcher:hover{background:var(--ui-sunken);}
/* Operation workspaces and integration shells. No new platform capabilities implied. */
body#pos-ui.pos-reference[data-current-page] #page-custody .custody-tabs{background:#fff;border-bottom:1px solid var(--ui-line);}
body#pos-ui.pos-reference[data-current-page] #page-custody .custody-tabs button{color:var(--ui-muted);}
body#pos-ui.pos-reference[data-current-page] #page-custody .custody-tabs button[aria-selected=true]{color:var(--ui-brand-press);border-color:var(--ui-brand);}
body#pos-ui.pos-reference[data-current-page] #page-custody .custody-draft{background:var(--ui-bg);border-right:1px solid var(--ui-line);}
body#pos-ui.pos-reference[data-current-page] .channel-tabs{min-height:64px;gap:18px;}
body#pos-ui.pos-reference[data-current-page] .channel-tabs button{height:64px!important;min-height:64px!important;min-block-size:64px!important;font-size:18px!important;}
body#pos-ui.pos-reference[data-current-page] .channel-tabs button.active{color:var(--ui-brand-press);border-color:var(--ui-brand);}
body#pos-ui.pos-reference[data-current-page] .channel-platform-nav button.active{background:var(--ui-brand-soft);color:var(--ui-brand-press);}
body#pos-ui.pos-reference[data-current-page] .delivery-platforms button{border:1px solid var(--ui-line);border-radius:12px;}
body#pos-ui.pos-reference[data-current-page] .delivery-promo{background:var(--ui-brand-soft);}
body#pos-ui.pos-reference[data-current-page] .delivery-promo h1{color:var(--ui-brand-press);}
body#pos-ui.pos-reference[data-current-page] #pickupBoard .pickup-rows li{border-radius:12px;border:1px solid var(--ui-line);background:#f7fbff;}
body#pos-ui.pos-reference[data-current-page] #pickupBoard .pickup-dialer{border-left:1px solid var(--ui-line);background:#f7f9fc;}
body#pos-ui.pos-reference[data-current-page] #pickupBoard .pickup-number-box{background:#fff;border-radius:12px;border-color:var(--ui-line);}
body#pos-ui.pos-reference[data-current-page] #financeBoard.deposit-board{border-radius:16px;}
body#pos-ui.pos-reference[data-current-page] #financeBoard.deposit-board :-webkit-any(.modal-head,.finance-tabs){background:#087f78;}
body#pos-ui.pos-reference[data-current-page] #printerDialog .printer-table-wrap{border:1px solid var(--ui-line);border-radius:12px;}
/* All business dialogs share typography, borders, headers and footer actions. */
body#pos-ui.pos-reference[data-current-page] dialog{border-color:var(--ui-line);border-radius:16px;box-shadow:0 18px 64px #17324d26;color:var(--ui-ink);}
body#pos-ui.pos-reference[data-current-page] dialog::backdrop{background:#19324966;}
body#pos-ui.pos-reference[data-current-page] dialog :-webkit-any(.modal-head,.printer-header,header){border-color:var(--ui-line);}
body#pos-ui.pos-reference[data-current-page] dialog :-webkit-any(h1,h2,h3){letter-spacing:0;font-weight:650;}
body#pos-ui.pos-reference[data-current-page] dialog :-webkit-any(.modal-head,.printer-header)>h2{font-size:24px;}
body#pos-ui.pos-reference[data-current-page] dialog :-webkit-any(.modal-foot,.modal-actions,.feature-form-foot){border-color:var(--ui-line);gap:12px!important;}
body#pos-ui.pos-reference[data-current-page] dialog :-webkit-any(input,select,textarea){border-radius:10px;border-color:var(--ui-line-strong);}
body#pos-ui.pos-reference[data-current-page] dialog .report-note{color:var(--ui-muted);line-height:1.65;}
/* Approved design: single summary surface, aligned tender rows, one primary action. */
body#pos-ui.pos-reference[data-current-page] #paymentPlanDialog{width:1010px;max-width:calc(100vw - 40px);max-height:calc(100vh - 40px);padding:0;background:#fff;border:0;border-radius:20px;overflow:auto;}
body#pos-ui.pos-reference[data-current-page] #paymentPlanDialog .modal-head{padding:24px 28px 18px;background:#fff;border:0;}
body#pos-ui.pos-reference[data-current-page] #paymentPlanDialog .modal-head h2{font-size:30px;}
body#pos-ui.pos-reference[data-current-page] #paymentPlanClose{border:0!important;background:transparent!important;color:var(--ui-muted)!important;}
body#pos-ui.pos-reference[data-current-page] #paymentPlanDialog .modal-body{padding:0 28px;}
#paymentPlanDialog .allocation-total{display:flex;align-items:center;gap:30px;padding:24px 30px;background:#e6f5ff;border-radius:16px;margin-bottom:16px;}
#paymentPlanDialog .allocation-total>span{font-size:23px;font-weight:650;white-space:nowrap;}
#paymentPlanDialog .allocation-total>div{border-left:1px solid #c2dfef;padding-left:30px;}
#paymentPlanDialog .allocation-total strong{font-size:48px;line-height:1.2;color:#087dcc;font-weight:750;font-variant-numeric:tabular-nums;}
#paymentPlanDialog .allocation-total p{margin:4px 0 0;color:#557591;font-size:16px;}
#paymentPlanDialog .allocation-columns,#paymentPlanDialog .allocation-row{display:grid;grid-template-columns:90px minmax(0,1fr) minmax(0,1.2fr);gap:22px;align-items:center;}
#paymentPlanDialog .allocation-columns{padding:16px 0;color:#34465c;font-weight:650;font-size:18px;}
#paymentPlanDialog .allocation-row{padding:22px 0;border-top:1px solid var(--ui-line);}
#paymentPlanDialog .allocation-row h3{margin:0;font-size:20px;white-space:nowrap;}
#paymentPlanDialog .allocation-row label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;}
body#pos-ui.pos-reference[data-current-page] #paymentPlanDialog select{min-height:64px;width:100%;padding:12px;font:inherit;font-size:18px;background:#fff;border:1px solid var(--ui-line-strong);border-radius:10px;}
#paymentPlanDialog .allocation-input,#paymentPlanDialog .allocation-remainder{display:flex;align-items:center;gap:4px;min-height:64px;padding:0 16px;border:1px solid var(--ui-line-strong);border-radius:10px;box-sizing:border-box;}
#paymentPlanDialog .allocation-input:focus-within{border-color:#087dcc;box-shadow:0 0 0 1px #087dcc;}
#paymentPlanDialog .allocation-input>span,#paymentPlanDialog .allocation-remainder>span{font-size:28px;font-weight:650;}
body#pos-ui.pos-reference[data-current-page] #paymentPlanFirstAmount{width:100%;min-width:48px;padding:0;min-height:60px;border:0;outline:none;background:transparent;font-size:32px;font-weight:650;color:var(--ui-ink);font-variant-numeric:tabular-nums;}
#paymentPlanDialog .allocation-remainder{background:#f0f4f9;border-color:#d8e1eb;}
body#pos-ui.pos-reference[data-current-page] #paymentPlanSecondAmount{font-size:32px;font-weight:650;color:var(--ui-ink);font-variant-numeric:tabular-nums;}
#paymentPlanDialog .allocation-remainder small{margin-left:auto;border-left:1px solid #cbd7e4;padding-left:14px;font-size:14px;color:#667e99;white-space:nowrap;}
#paymentPlanDialog #paymentPlanError:empty{display:none;}
#paymentPlanDialog #paymentPlanError{margin:4px 0 18px;font-size:16px;line-height:1.5;}
body#pos-ui.pos-reference[data-current-page] #paymentPlanDialog .modal-foot{padding:20px 28px 24px;display:flex;align-items:center;flex-wrap:wrap;background:#fff;border-top:1px solid var(--ui-line);}
#paymentPlanDialog .allocation-note{flex:1;margin:0;color:#6c7d90;font-size:14px;line-height:1.7;}
body#pos-ui.pos-reference[data-current-page] #paymentPlanDialog .modal-foot .btn{min-width:100px;}
body#pos-ui.pos-reference[data-current-page] #paymentPlanDialog .modal-foot .primary{min-width:180px;background:#0097e8!important;border-color:#0097e8!important;font-size:20px!important;}
@media(max-width:1100px){
 body#pos-ui.pos-reference[data-current-page] #page-order .dish-card{padding:16px;}
 body#pos-ui.pos-reference[data-current-page] .feature-page{padding:18px;}
}
@media(max-height:700px) and (min-width:701px){
 body#pos-ui.pos-reference[data-current-page] #paymentPlanDialog .modal-head{padding:14px 24px;}
 body#pos-ui.pos-reference[data-current-page] #paymentPlanDialog .modal-body{padding:0 24px;}
 #paymentPlanDialog .allocation-total{padding:16px 24px;margin-bottom:6px;}
 #paymentPlanDialog .allocation-total strong{font-size:38px;}
 #paymentPlanDialog .allocation-row{padding:14px 0;}
 body#pos-ui.pos-reference[data-current-page] #paymentPlanDialog .modal-foot{padding:14px 24px;}
}
@media(max-width:700px){
 body#pos-ui.pos-reference[data-current-page] #page-checkout{padding:10px;}
 body#pos-ui.pos-reference[data-current-page] .feature-page{padding:14px;}
 body#pos-ui.pos-reference[data-current-page] #paymentPlanDialog{max-width:calc(100vw - 20px);max-height:calc(100vh - 20px);border-radius:14px;}
 body#pos-ui.pos-reference[data-current-page] #paymentPlanDialog .modal-head{padding:16px;}
 body#pos-ui.pos-reference[data-current-page] #paymentPlanDialog .modal-head h2{font-size:24px;}
 body#pos-ui.pos-reference[data-current-page] #paymentPlanDialog .modal-body{padding:0 16px;}
 #paymentPlanDialog .allocation-total{padding:18px;gap:16px;}
 #paymentPlanDialog .allocation-total>span{font-size:17px;}
 #paymentPlanDialog .allocation-total>div{padding-left:16px;}
 #paymentPlanDialog .allocation-total strong{font-size:32px;}
 #paymentPlanDialog .allocation-total p{font-size:13px;}
 #paymentPlanDialog .allocation-columns{display:none;}
 #paymentPlanDialog .allocation-row{grid-template-columns:1fr 1fr;gap:12px;padding:18px 0;}
 #paymentPlanDialog .allocation-row h3{grid-column:1/-1;font-size:18px;}
 #paymentPlanDialog .allocation-remainder small{display:none;}
 body#pos-ui.pos-reference[data-current-page] #paymentPlanDialog select{font-size:16px;}
 body#pos-ui.pos-reference[data-current-page] #paymentPlanFirstAmount,body#pos-ui.pos-reference[data-current-page] #paymentPlanSecondAmount{font-size:26px;}
 body#pos-ui.pos-reference[data-current-page] #paymentPlanDialog .modal-foot{padding:16px;}
 #paymentPlanDialog .allocation-note{flex:1 0 100%;margin-bottom:8px;}
 body#pos-ui.pos-reference[data-current-page] #paymentPlanDialog .modal-foot .primary{flex:1;width:auto;}
}

/* Final contrast and density pass, including old reference-page overrides. */
body#pos-ui.pos-reference[data-current-page] .topbar .search input{color:#fff;}
body#pos-ui.pos-reference[data-current-page] .topbar .search input::placeholder{color:#e7f3fc;}
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card[data-status="order"]{background:#e9f6f1;border-top-color:#21866e;}
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card[data-status="order"] :-webkit-any(.name,.meta,.amount,.table-card-action){color:#185e50;}
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card[data-status="order"] .badge{background:#d4ece2;color:#185e50;}
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card[data-status="opened"]{background:#fff7e7;border-top-color:#c88a24;}
body#pos-ui.pos-reference[data-current-page] #page-tables .status-item[data-status="order"] .dot{background:#21866e;}
body#pos-ui.pos-reference[data-current-page] #page-reports .report-kpis,body#pos-ui.pos-reference[data-current-page] #page-members .member-overview{background:var(--ui-brand-soft);border-radius:14px;}
body#pos-ui.pos-reference[data-current-page] #page-reports .k-value,body#pos-ui.pos-reference[data-current-page] #page-members .k-value{color:var(--ui-brand-press);font-weight:650;}
body#pos-ui.pos-reference[data-current-page] #paymentPlanDialog select{min-height:64px!important;height:64px!important;min-block-size:64px!important;}
body#pos-ui.pos-reference[data-current-page] #paymentPlanDialog .modal-foot .btn{min-width:100px!important;min-inline-size:100px!important;}
body#pos-ui.pos-reference[data-current-page] #paymentPlanDialog .modal-foot .primary{min-width:200px!important;min-inline-size:200px!important;}
#paymentPlanEquation{border-top:1px solid var(--ui-line);margin:0;padding:16px 0 20px;text-align:right;color:#52647b;font-size:20px;font-weight:600;font-variant-numeric:tabular-nums;}
#paymentPlanEquation:empty{display:none;}
@media(max-width:700px){body#pos-ui.pos-reference[data-current-page] #paymentPlanDialog .modal-foot .primary{min-width:150px!important;min-inline-size:150px!important;}#paymentPlanEquation{font-size:17px;}}
body#pos-ui.pos-reference[data-current-page][data-current-page="products"] .topbar{background:var(--ui-brand);border-bottom:0;}
body#pos-ui.pos-reference[data-current-page][data-current-page="products"] :-webkit-any(.topbar-brand,.pos-back,.pos-top-action){color:#fff;}
body#pos-ui.pos-reference[data-current-page] #page-members .member-tabs{background:#fff;border-bottom:1px solid var(--ui-line);}
body#pos-ui.pos-reference[data-current-page] #page-members .member-tabs .filter-pill{color:var(--ui-muted);}
body#pos-ui.pos-reference[data-current-page] #page-members .member-tabs .filter-pill.active{background:var(--ui-brand-soft);color:var(--ui-brand-press);box-shadow:inset 0 -3px var(--ui-brand);}
body#pos-ui.pos-reference[data-current-page] #page-custody .custody-tabs button{color:var(--ui-muted)!important;}
body#pos-ui.pos-reference[data-current-page] #page-custody .custody-tabs button[aria-selected=true]{color:var(--ui-brand-press)!important;border-bottom:3px solid var(--ui-brand)!important;}
body#pos-ui.pos-reference[data-current-page] #page-reports #reportExport{background:#fff!important;color:var(--ui-brand-press)!important;border:1px solid var(--ui-line-strong)!important;}
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-table table{min-width:960px;}
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-table td:first-child{white-space:nowrap;overflow-wrap:normal;font-variant-numeric:tabular-nums;}
body#pos-ui.pos-reference[data-current-page] dialog.product-editor:not(.deposit-board) .modal-head{background:#fff;}
body#pos-ui.pos-reference[data-current-page] .practice-dialog header{background:#fff;}

/* Printer and production management keep the same quiet tab and card treatment. */
body#pos-ui.pos-reference[data-current-page] .booth-workspace-tabs{background:#fff;color:var(--ui-muted);border-bottom:1px solid var(--ui-line);}
body#pos-ui.pos-reference[data-current-page] .booth-workspace-tabs [aria-current=page]{color:var(--ui-brand-press);border-bottom-color:var(--ui-brand);}
body#pos-ui.pos-reference[data-current-page] .booth-categories button,body#pos-ui.pos-reference[data-current-page] .booth-card{border-radius:14px;border-color:var(--ui-line);}
body#pos-ui.pos-reference[data-current-page] .booth-categories [aria-pressed=true]{background:var(--ui-brand-soft);border-color:var(--ui-brand);color:var(--ui-brand-press);}
body#pos-ui.pos-reference[data-current-page] .booth-card:hover{background:var(--ui-brand-soft);border-color:var(--ui-brand);}
body#pos-ui.pos-reference[data-current-page] .printer-management-tabs .active{color:var(--ui-brand-press);border-bottom-color:var(--ui-brand);}
body#pos-ui.pos-reference[data-current-page] #financeBoard.deposit-board{--ui-brand:#087f78;--ui-brand-press:#05615c;--ui-brand-soft:#e8f6f2;}

body#pos-ui.pos-reference[data-current-page] #page-voucher .channel-tabs button.active{color:#fff;border-bottom-color:#fff;background:#ffffff16;}

/* Queue filters are a real toolbar, followed by the list and receipt preview. */
body#pos-ui.pos-reference[data-current-page] #pqDialog #pqFilter{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;align-items:end;gap:12px;width:100%;}
body#pos-ui.pos-reference[data-current-page] #pqDialog #pqFilter label{display:grid;gap:8px;min-width:0;text-align:left;}
body#pos-ui.pos-reference[data-current-page] #pqDialog #pqFilter label>*{width:100%;min-width:48px;}
body#pos-ui.pos-reference[data-current-page] #pqDialog #pqReload{order:2;white-space:nowrap;}
body#pos-ui.pos-reference[data-current-page] #pqDialog .pq-columns{min-height:240px;padding-top:12px;}
body#pos-ui.pos-reference[data-current-page] #pqDialog .pq-detail{background:var(--ui-sunken);padding:16px;border-radius:12px;}
@media(max-width:850px){body#pos-ui.pos-reference[data-current-page] #pqDialog #pqFilter{grid-template-columns:repeat(2,minmax(0,1fr));}}

/* Second visual pass: detail surfaces, forms and contextual workspaces. */
body#pos-ui.pos-reference[data-current-page] {--ui-muted:#64748b;--ui-line:#e3e9f1;--ui-line-strong:#cdd7e3;--ui-sunken:#f5f8fc;}
body#pos-ui.pos-reference[data-current-page] .topbar{box-shadow:none;}
body#pos-ui.pos-reference[data-current-page] .pos-top-action:hover{background:#ffffff1c;}
body#pos-ui.pos-reference[data-current-page] .pos-top-action.active{background:#ffffff24;box-shadow:inset 0 0 0 1px #ffffff45;}
body#pos-ui.pos-reference[data-current-page] .app .btn:not(.primary):not(.hot):not(.danger):not(.danger-text):not(:disabled):hover{border-color:var(--ui-brand)!important;background:var(--ui-brand-soft)!important;color:var(--ui-brand-press)!important;}
body#pos-ui.pos-reference[data-current-page] .app button:disabled{cursor:not-allowed;}
body#pos-ui.pos-reference[data-current-page] .app :-webkit-any(.btn,.ui-button):focus,body#pos-ui.pos-reference[data-current-page] dialog .btn:focus{outline:3px solid var(--ui-brand);outline-offset:3px;}
body#pos-ui.pos-reference[data-current-page] .page :-webkit-any(input,select,textarea){background:#fff;box-shadow:0 1px 2px #18324f04;}
body#pos-ui.pos-reference[data-current-page] .page input:not([type=checkbox]):not([type=radio]):focus{border-color:var(--ui-brand);box-shadow:0 0 0 3px var(--ui-brand-soft);}
body#pos-ui.pos-reference[data-current-page] .page :-webkit-any(.feature-toolbar,.page-head){margin-bottom:20px;}
body#pos-ui.pos-reference[data-current-page] .page .feature-toolbar h1{font-size:26px;line-height:1.35;margin:0;}
body#pos-ui.pos-reference[data-current-page] .page :-webkit-any(.feature-card,.set-card,.practice-page){box-shadow:0 3px 14px #17324d04;}
body#pos-ui.pos-reference[data-current-page] .page :-webkit-any(.feature-help,.product-edit-hint,.report-note){font-size:14px;line-height:1.65;}
body#pos-ui.pos-reference[data-current-page] .page :-webkit-any(.feature-empty,.checkout-empty){padding:48px 24px;color:#65768c;font-size:16px;line-height:1.7;}
body#pos-ui.pos-reference[data-current-page] .feature-table th{padding:16px 20px;font-size:14px;}
body#pos-ui.pos-reference[data-current-page] .feature-table td{padding:18px 20px;font-size:15px;}
body#pos-ui.pos-reference[data-current-page] .feature-table td small{color:#697b91;font-size:13px;}
body#pos-ui.pos-reference[data-current-page] .feature-badge{border-radius:6px;padding:5px 8px;}
body#pos-ui.pos-reference[data-current-page] .feature-record{padding:18px;border-radius:12px;}
body#pos-ui.pos-reference[data-current-page] .feature-detail-meta{background:var(--ui-sunken);padding:16px;border:0;border-radius:10px;}
/* Cashier: fine separators, aligned metadata, clear selected dishes and payment choices. */
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card{border-top-width:4px;}
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card .meta{font-size:14px;line-height:1.55;}
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card .amount{font-variant-numeric:tabular-nums;font-weight:650;}
body#pos-ui.pos-reference[data-current-page] #page-tables .table-card:focus{outline:3px solid var(--ui-brand);outline-offset:3px;}
body#pos-ui.pos-reference[data-current-page] #page-order .dish-card{box-shadow:0 3px 12px #233b5405;}
body#pos-ui.pos-reference[data-current-page] #page-order .dish-card:hover{border-color:#9bc5e7;background:#fcfeff;}
body#pos-ui.pos-reference[data-current-page] #page-order .cart-item{border-bottom:1px solid var(--ui-line);}
body#pos-ui.pos-reference[data-current-page] #page-order .cart-item.selected{box-shadow:inset 3px 0 var(--ui-brand);}
body#pos-ui.pos-reference[data-current-page] #page-checkout h2{font-size:22px;font-weight:650;line-height:1.35;}
body#pos-ui.pos-reference[data-current-page] #page-checkout .bill-meta{background:var(--ui-sunken);padding:12px;border-radius:8px;line-height:1.7;}
body#pos-ui.pos-reference[data-current-page] #page-checkout .bill-line{padding:18px 0;border-bottom:1px solid var(--ui-line);}
body#pos-ui.pos-reference[data-current-page] #page-checkout .pay-method{border:1px solid var(--ui-line-strong);background:#fff;}
body#pos-ui.pos-reference[data-current-page] #page-checkout .pay-method.active{border:2px solid var(--ui-brand);background:var(--ui-brand-soft);}
body#pos-ui.pos-reference[data-current-page] #page-checkout .checkout-member{border-radius:12px;border:1px solid var(--ui-line);background:var(--ui-sunken);}
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-summary{border-radius:12px;margin:12px 20px;padding:16px;}
body#pos-ui.pos-reference[data-current-page] #page-orders .order-detail{border-left:1px solid var(--ui-line);background:#fff;}
body#pos-ui.pos-reference[data-current-page] #page-orders .orders-table tbody tr:nth-child(even){background:#f9fbfd;}
/* Membership and reports: individual statistics, fewer heavy colour bands. */
body#pos-ui.pos-reference[data-current-page] #page-members .member-overview{gap:14px;padding:16px;background:var(--ui-bg);}
body#pos-ui.pos-reference[data-current-page] #page-members .member-overview .kpi{padding:20px;border:1px solid var(--ui-line);border-top:3px solid #cbbde8;border-radius:12px;background:#fff;}
body#pos-ui.pos-reference[data-current-page] #page-members .member-overview .k-value{font-size:28px;line-height:1.25;}
body#pos-ui.pos-reference[data-current-page] #page-members .member-list-table td{padding-top:18px;padding-bottom:18px;}
body#pos-ui.pos-reference[data-current-page] #page-members .member-name{font-weight:650;color:var(--ui-ink);}
body#pos-ui.pos-reference[data-current-page] #page-members .member-id{color:#718096;font-size:13px;margin-top:5px;}
body#pos-ui.pos-reference[data-current-page] #page-reports .report-kpis{background:transparent;gap:14px;}
body#pos-ui.pos-reference[data-current-page] #page-reports .report-kpis .kpi{background:#fff;border:1px solid var(--ui-line);border-top:3px solid #a2d5c9;border-radius:12px;padding:20px;}
body#pos-ui.pos-reference[data-current-page] #page-reports .report-range{border-radius:12px;border:1px solid var(--ui-line);padding:18px;background:#fff;}
body#pos-ui.pos-reference[data-current-page] #page-reports .report-nav-btn{border-radius:10px;margin:4px 10px;width:calc(100% - 20px);}
body#pos-ui.pos-reference[data-current-page] #page-reports .report-nav-btn.active{box-shadow:inset 3px 0 var(--ui-brand);border-color:transparent;}
body#pos-ui.pos-reference[data-current-page] #page-products .prod-cat-item{margin:4px 8px;border-radius:10px;width:calc(100% - 16px);}
body#pos-ui.pos-reference[data-current-page] #page-products #productsBody tr{box-shadow:0 2px 10px #283d5105;}
/* Settings, channels and operations: intentional grouping and readable help. */
body#pos-ui.pos-reference[data-current-page] #page-settings .pos-settings-nav{padding:12px 8px;}
body#pos-ui.pos-reference[data-current-page] #page-settings .pos-settings-nav button{border-radius:10px;margin:3px 0;}
body#pos-ui.pos-reference[data-current-page] #page-settings .pos-settings-nav button.active{border-color:transparent;box-shadow:inset 3px 0 var(--ui-brand);}
body#pos-ui.pos-reference[data-current-page] #page-settings .set-card{padding:26px;}
body#pos-ui.pos-reference[data-current-page] #page-settings .set-field{padding:16px 0;}
body#pos-ui.pos-reference[data-current-page] #page-settings .staff-table-wrap td{vertical-align:top;line-height:1.7;}
body#pos-ui.pos-reference[data-current-page] #page-settings .staff-table-wrap .staff-actions{gap:8px!important;}
body#pos-ui.pos-reference[data-current-page] #page-shift .shift-card{padding:24px;border:1px solid var(--ui-line);background:#fff;}
body#pos-ui.pos-reference[data-current-page] #page-custody .custody-form{padding:24px;background:#fff;}
body#pos-ui.pos-reference[data-current-page] #page-custody .custody-draft{background:#f6f8fc;}
body#pos-ui.pos-reference[data-current-page] .channel-platform-nav button{margin:6px 10px;width:calc(100% - 20px);border-radius:10px;border:1px solid transparent;}
body#pos-ui.pos-reference[data-current-page] .channel-platform-nav button.active{border-color:#ead7bd;}
body#pos-ui.pos-reference[data-current-page] .feature-preview{padding:24px;background:#eef2f7;}
body#pos-ui.pos-reference[data-current-page] .feature-preview .feature-paper{box-shadow:0 8px 24px #243c5514;}
body#pos-ui.pos-reference[data-current-page] .pos-launcher{padding:16px 8px;}
body#pos-ui.pos-reference[data-current-page] .pos-launcher-icon{width:68px;height:68px;border-radius:18px;}
/* Dialog details: keep intrinsic module layout and input ownership, refine only surfaces. */
body#pos-ui.pos-reference[data-current-page] dialog{border:1px solid var(--ui-line);box-shadow:0 24px 72px #112d492b;}
body#pos-ui.pos-reference[data-current-page] dialog :-webkit-any(.modal-head,.table-setup-head,.printer-header){padding:22px 26px;background:#f8fafd;border-bottom:1px solid var(--ui-line);}
body#pos-ui.pos-reference[data-current-page] dialog :-webkit-any(.modal-head,.table-setup-head,.printer-header) h2{font-size:24px;font-weight:650;margin:0;line-height:1.4;}
body#pos-ui.pos-reference[data-current-page] dialog :-webkit-any(.modal-head,.table-setup-head,.printer-header) .btn:not(.primary){min-width:64px;border-radius:10px;}
body#pos-ui.pos-reference[data-current-page] dialog :-webkit-any(.modal-foot,.table-setup-foot,.feature-form-foot){padding:20px 26px;background:#fafbfd;border-top:1px solid var(--ui-line);}
body#pos-ui.pos-reference[data-current-page] dialog :-webkit-any(.modal-foot,.table-setup-foot,.feature-form-foot) .btn{min-width:108px;}
body#pos-ui.pos-reference[data-current-page] dialog :-webkit-any(.modal-foot,.table-setup-foot,.feature-form-foot) .primary{min-width:156px;}
body#pos-ui.pos-reference[data-current-page] dialog.product-editor fieldset{padding:24px 26px;gap:10px;border:0;}
body#pos-ui.pos-reference[data-current-page] dialog.product-editor fieldset>label{font-weight:600;color:#42556d;line-height:1.5;}
body#pos-ui.pos-reference[data-current-page] dialog.product-editor :-webkit-any(.product-edit-hint,.product-create-hint){font-size:13px;line-height:1.65;color:#66778e;}
body#pos-ui.pos-reference[data-current-page] dialog input:not([type=checkbox]):not([type=radio]),body#pos-ui.pos-reference[data-current-page] dialog select,body#pos-ui.pos-reference[data-current-page] dialog textarea{background:#fff;border:1px solid var(--ui-line-strong);padding:12px 14px;font-size:16px;line-height:1.5;}
body#pos-ui.pos-reference[data-current-page] dialog input[aria-invalid=true]{border-color:var(--ui-danger);}
body#pos-ui.pos-reference[data-current-page] dialog :-webkit-any(.product-edit-category,.order-detail-identity,.transfer-summary,.refund-facts){padding:16px;border:1px solid var(--ui-line);border-radius:10px;background:var(--ui-sunken);}
body#pos-ui.pos-reference[data-current-page] dialog :-webkit-any(.product-edit-error,.practice-error,.form-error){color:var(--ui-danger);line-height:1.6;}
body#pos-ui.pos-reference[data-current-page] .practice-dialog{border-radius:16px;}
body#pos-ui.pos-reference[data-current-page] .practice-dialog header{padding:22px 26px;background:#f8fafd;border-bottom:1px solid var(--ui-line);}
body#pos-ui.pos-reference[data-current-page] .practice-dialog .practice-body{padding:24px 26px;}
body#pos-ui.pos-reference[data-current-page] .practice-dialog .practice-fields{gap:20px;}
body#pos-ui.pos-reference[data-current-page] .table-setup-dialog{border-radius:16px;}
body#pos-ui.pos-reference[data-current-page] .table-setup-row{padding:14px 0;border-bottom:1px solid #edf1f6;}
body#pos-ui.pos-reference[data-current-page] .table-setup-row:last-child{border-bottom:0;}
body#pos-ui.pos-reference[data-current-page] .open-table-info{padding:20px;background:var(--ui-brand-soft);border-radius:12px;}
body#pos-ui.pos-reference[data-current-page] .open-table-keys button,body#pos-ui.pos-reference[data-current-page] .checkout-offer-pad button{border-radius:10px;border:1px solid var(--ui-line-strong);box-shadow:0 2px 4px #17324d05;}
body#pos-ui.pos-reference[data-current-page] .checkout-offer-reasons button{border-radius:8px;}
body#pos-ui.pos-reference[data-current-page] #inventoryBoard .inventory-catalog{background:#f7f9fc;border-right:1px solid var(--ui-line);}
body#pos-ui.pos-reference[data-current-page] #inventoryBoard .inventory-balance{padding:20px;border-radius:12px;background:var(--ui-brand-soft);}
body#pos-ui.pos-reference[data-current-page] #financeBoard.deposit-board .modal-head{background:#087f78;}
body#pos-ui.pos-reference[data-current-page] #financeBoard .finance-detail-list{border-radius:12px;}
body#pos-ui.pos-reference[data-current-page] #financeBoard .finance-due{padding:18px;border-radius:10px;background:#eaf7f2;}
body#pos-ui.pos-reference[data-current-page] #printerDialog .printer-steps{padding-bottom:16px;gap:24px;}
body#pos-ui.pos-reference[data-current-page] #printerDialog .printer-type-card{border-radius:14px;border-width:1px;box-shadow:0 3px 12px #18324f06;}
body#pos-ui.pos-reference[data-current-page] #printerDialog .printer-brand{border-radius:12px;border-width:1px;}
body#pos-ui.pos-reference[data-current-page] #pickupBoard .pickup-number-box{border-radius:12px;background:#f7fafe;}
body#pos-ui.pos-reference[data-current-page] #pickupBoard .pickup-keypad button{border-radius:10px;box-shadow:none;border:1px solid var(--ui-line);}
body#pos-ui.pos-reference[data-current-page] #pickupBoard .pickup-rows li{padding:18px;}
body#pos-ui.pos-reference[data-current-page] #orderDetailDialog .order-detail-amounts{padding:20px;background:var(--ui-brand-soft);border-radius:12px;}
/* Option 2: large side-by-side allocation cards, visible field labels and compact summary. */
body#pos-ui.pos-reference[data-current-page] #paymentPlanDialog{width:960px;border-radius:22px;}
body#pos-ui.pos-reference[data-current-page] #paymentPlanDialog .allocation-header{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:24px;padding:30px 34px 26px;background:#f5faff;}
body#pos-ui.pos-reference[data-current-page] #paymentPlanDialog .allocation-heading h2{font-size:32px;font-weight:700;}
#paymentPlanDialog .allocation-heading p{margin:10px 0 0;color:#64748b;font-size:18px;line-height:1.5;}
body#pos-ui.pos-reference[data-current-page] #paymentPlanClose{position:absolute;right:20px;top:14px;min-width:64px;}
#paymentPlanDialog .allocation-total{display:flex;align-items:baseline;gap:14px;padding:38px 0 0;margin:0;background:transparent;}
#paymentPlanDialog .allocation-total>span{font-size:20px;color:#64748b;font-weight:500;}
#paymentPlanDialog .allocation-total strong{font-size:48px;line-height:1.2;}
body#pos-ui.pos-reference[data-current-page] #paymentPlanDialog .modal-body{padding:30px 34px 0;}
#paymentPlanDialog .allocation-parts{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:30px;}
#paymentPlanDialog .allocation-row{display:flex;flex-direction:column;align-items:stretch;gap:20px;padding:0 0 24px;border:0;}
#paymentPlanDialog .allocation-row+.allocation-row{border-left:1px solid #dce6f0;padding-left:30px;}
#paymentPlanDialog .allocation-row h3{display:flex;align-items:center;gap:14px;font-size:24px;margin:0 0 2px;}
#paymentPlanDialog .allocation-step{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:42px;border-radius:9px;background:#0097e8;color:#fff;font-size:23px;font-weight:650;}
#paymentPlanDialog .allocation-row label{position:static;width:auto;height:auto;clip:auto;margin:0 0 8px;display:block;overflow:visible;white-space:normal;font-size:17px;color:#64748b;font-weight:500;}
#paymentPlanDialog .allocation-input,#paymentPlanDialog .allocation-remainder{min-height:84px;background:#f7fbff;border-radius:12px;padding:0 20px;}
#paymentPlanDialog .allocation-remainder{background:#e7f4ff;border-color:#e7f4ff;}
body#pos-ui.pos-reference[data-current-page] #paymentPlanFirstAmount{border:0;padding:0;background:transparent;font-size:44px;min-height:78px;box-shadow:none;}
body#pos-ui.pos-reference[data-current-page] #paymentPlanSecondAmount{font-size:44px;}
#paymentPlanDialog .allocation-input>span,#paymentPlanDialog .allocation-remainder>span{font-size:36px;}
#paymentPlanDialog #paymentPlanEquation{text-align:center;color:#087dcc;font-size:23px;padding:20px 0;margin:10px 0 0;}
body#pos-ui.pos-reference[data-current-page] #paymentPlanDialog .modal-foot{padding:22px 34px;background:#fff;}
#paymentPlanDialog .allocation-note{font-size:15px;}
@media(max-height:720px) and (min-width:701px){
 body#pos-ui.pos-reference[data-current-page] #paymentPlanDialog .allocation-header{padding:20px 26px;}
 body#pos-ui.pos-reference[data-current-page] #paymentPlanDialog .modal-body{padding:22px 26px 0;}
 #paymentPlanDialog .allocation-heading p{font-size:15px;}
 #paymentPlanDialog .allocation-total strong{font-size:38px;}
 #paymentPlanDialog .allocation-row{gap:12px;padding-bottom:12px;}
 #paymentPlanDialog .allocation-row h3{font-size:21px;}
 #paymentPlanDialog .allocation-input,#paymentPlanDialog .allocation-remainder{min-height:70px;}
 body#pos-ui.pos-reference[data-current-page] #paymentPlanFirstAmount{min-height:64px;font-size:36px;}
 body#pos-ui.pos-reference[data-current-page] #paymentPlanSecondAmount{font-size:36px;}
 #paymentPlanDialog #paymentPlanEquation{padding:12px 0;margin-top:4px;}
 body#pos-ui.pos-reference[data-current-page] #paymentPlanDialog .modal-foot{padding:16px 26px;}
}
@media(max-width:700px){
 body#pos-ui.pos-reference[data-current-page] #paymentPlanDialog .allocation-header{grid-template-columns:1fr;padding:24px 20px 18px;gap:14px;}
 body#pos-ui.pos-reference[data-current-page] #paymentPlanDialog .allocation-heading h2{font-size:26px;}
 #paymentPlanDialog .allocation-heading p{font-size:14px;margin-top:6px;}
 #paymentPlanDialog .allocation-total{padding:0;justify-content:space-between;}
 #paymentPlanDialog .allocation-total strong{font-size:34px;}
 body#pos-ui.pos-reference[data-current-page] #paymentPlanDialog .modal-body{padding:20px 20px 0;}
 #paymentPlanDialog .allocation-parts{grid-template-columns:1fr;gap:18px;}
 #paymentPlanDialog .allocation-row{gap:12px;padding:0 0 18px;}
 #paymentPlanDialog .allocation-row+.allocation-row{padding-left:0;border-left:0;border-top:1px solid var(--ui-line);padding-top:18px;}
 #paymentPlanDialog .allocation-row h3{font-size:21px;}
 #paymentPlanDialog .allocation-step{min-width:36px;height:34px;font-size:18px;}
 #paymentPlanDialog .allocation-input,#paymentPlanDialog .allocation-remainder{min-height:68px;}
 body#pos-ui.pos-reference[data-current-page] #paymentPlanFirstAmount{min-height:62px;font-size:34px;}
 body#pos-ui.pos-reference[data-current-page] #paymentPlanSecondAmount{font-size:34px;}
 #paymentPlanDialog #paymentPlanEquation{font-size:19px;padding:16px 0;}
 body#pos-ui.pos-reference[data-current-page] #paymentPlanDialog .modal-foot{padding:18px 20px;}
 body#pos-ui.pos-reference[data-current-page] .feature-table th,body#pos-ui.pos-reference[data-current-page] .feature-table td{padding:14px;}
 body#pos-ui.pos-reference[data-current-page] #page-settings .set-card{padding:18px;}
}

/* Final form sizing wins over legacy intrinsic minimums. */
body#pos-ui.pos-reference[data-current-page]{--accent:var(--ui-brand);--accent-press:var(--ui-brand-press);--accent-dim:var(--ui-brand-soft);}
body#pos-ui.pos-reference[data-current-page] dialog :-webkit-any(.modal-foot,.table-setup-foot,.feature-form-foot) .btn{min-inline-size:100px!important;min-width:100px!important;}
body#pos-ui.pos-reference[data-current-page] dialog :-webkit-any(.modal-foot,.table-setup-foot,.feature-form-foot) .primary{min-inline-size:156px!important;min-width:156px!important;}
body#pos-ui.pos-reference[data-current-page][data-current-page="members"] .pos-store-clock{display:block;}
body#pos-ui #loginScreen .login-card h2{font-weight:700;letter-spacing:0;}
body#pos-ui #loginScreen .login-card input:not([type=checkbox]){border-radius:12px!important;border-color:#cbd5e1;}
body#pos-ui #loginScreen #loginSubmit{border-radius:12px;font-weight:650;box-shadow:0 4px 12px #b8440018;}
body#pos-ui #loginScreen .login-sub{color:#64748b;line-height:1.6;}

/* Second-pass functional icon system: official Tabler outline, decorative only. */
body#pos-ui .zd-icon{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;}
body#pos-ui .zd-mask{display:inline-block;width:24px;height:24px;flex-shrink:0;background:currentColor;-webkit-mask:var(--zd-icon) center/contain no-repeat;mask:var(--zd-icon) center/contain no-repeat;}
body#pos-ui [data-ui-icon="arrow-left"],
body#pos-ui #areaEditCancel,
body#pos-ui #boothCancel,
body#pos-ui #boothEditBack,
body#pos-ui #btnBackTables,
body#pos-ui #checkoutDepositCancel,
body#pos-ui #checkoutDepositRefundCancel,
body#pos-ui #checkoutMemberLoginCancel,
body#pos-ui #checkoutOfferCancel,
body#pos-ui #clearTableCancel,
body#pos-ui #custodyPickerBack,
body#pos-ui #customDishCancel,
body#pos-ui #customPaymentCancel,
body#pos-ui #exitAppCancel,
body#pos-ui #financeCancel,
body#pos-ui #linePriceCancel,
body#pos-ui #memberCreateCancel,
body#pos-ui #memberFundsCancel,
body#pos-ui #mergeConfirmNo,
body#pos-ui #openTableCancel,
body#pos-ui #paymentPlanCancel,
body#pos-ui #printerTargetCancel,
body#pos-ui #printerTypeCancel,
body#pos-ui #productCreateCancel,
body#pos-ui #productDeleteCancel,
body#pos-ui #productEditCancel,
body#pos-ui #shiftBack,
body#pos-ui #staffCancel,
body#pos-ui #tableCreateCancel,
body#pos-ui #tableDeleteCancel,
body#pos-ui #terminalQuickBack,
body#pos-ui #transferCancel{--zd-icon:url("assets/icons/ui/arrow-left.svg");}
body#pos-ui [data-ui-icon="search"],
body#pos-ui #custodyFilters button[type="submit"],
body#pos-ui #departmentReportForm button[type="submit"],
body#pos-ui #effQuery,
body#pos-ui #financeQuery,
body#pos-ui #inventorySearchBtn,
body#pos-ui #memberTxQuery,
body#pos-ui #reportRangeQuery{--zd-icon:url("assets/icons/ui/search.svg");}
body#pos-ui [data-ui-icon="refresh"],
body#pos-ui #areaRefresh,
body#pos-ui #barcodeRead,
body#pos-ui #btnRefreshMembers,
body#pos-ui #btnRefreshOrders,
body#pos-ui #btnReportRefresh,
body#pos-ui #cancellationRefresh,
body#pos-ui #channelRefresh,
body#pos-ui #checkoutMemberRead,
body#pos-ui #checkoutSettingsRefresh,
body#pos-ui #departmentRefresh,
body#pos-ui #financeReload,
body#pos-ui #heldRefresh,
body#pos-ui #memberLedgerRefresh,
body#pos-ui #pickupRefresh,
body#pos-ui #pqReload,
body#pos-ui #practiceRefresh,
body#pos-ui #printerRetry,
body#pos-ui #promoRuleRead,
body#pos-ui #readSettlement,
body#pos-ui #refundReload,
body#pos-ui #shiftRefresh,
body#pos-ui #splitRefresh,
body#pos-ui #staffRefresh,
body#pos-ui #templateRefresh,
body#pos-ui #transferRefresh,
body#pos-ui [data-channel-refresh]{--zd-icon:url("assets/icons/ui/refresh.svg");}
body#pos-ui [data-ui-icon="edit"],
body#pos-ui #btnEditStore,
body#pos-ui [data-edit],
body#pos-ui [data-o-edit],
body#pos-ui [data-p-edit],
body#pos-ui [data-rename]{--zd-icon:url("assets/icons/ui/edit.svg");}
body#pos-ui [data-ui-icon="layout-grid"]{--zd-icon:url("assets/icons/ui/layout-grid.svg");}
body#pos-ui [data-ui-icon="receipt"]{--zd-icon:url("assets/icons/ui/receipt.svg");}
body#pos-ui [data-ui-icon="users"]{--zd-icon:url("assets/icons/ui/users.svg");}
body#pos-ui [data-ui-icon="settings"]{--zd-icon:url("assets/icons/ui/settings.svg");}
body#pos-ui [data-ui-icon="chart-pie"]{--zd-icon:url("assets/icons/ui/chart-pie.svg");}
body#pos-ui [data-ui-icon="shopping-bag"]{--zd-icon:url("assets/icons/ui/shopping-bag.svg");}
body#pos-ui [data-ui-icon="package"]{--zd-icon:url("assets/icons/ui/package.svg");}
body#pos-ui [data-ui-icon="wallet"]{--zd-icon:url("assets/icons/ui/wallet.svg");}
body#pos-ui [data-ui-icon="broadcast"]{--zd-icon:url("assets/icons/ui/broadcast.svg");}
body#pos-ui [data-ui-icon="clock"]{--zd-icon:url("assets/icons/ui/clock.svg");}
body#pos-ui [data-ui-icon="plus"],
body#pos-ui #areaCreate,
body#pos-ui #btnAddCat,
body#pos-ui #btnAddMember,
body#pos-ui #custodyAdd,
body#pos-ui #custodyAddLocation,
body#pos-ui #custodyEmptyAdd,
body#pos-ui #custodyLocationNew,
body#pos-ui #custodyNewTab,
body#pos-ui #customPaymentAdd,
body#pos-ui #financeDeposits,
body#pos-ui #practiceAdd,
body#pos-ui #practiceOptionAdd,
body#pos-ui #staffCreate,
body#pos-ui #tableCreate{--zd-icon:url("assets/icons/ui/plus.svg");}
body#pos-ui [data-ui-icon="printer"],
body#pos-ui #boothManual,
body#pos-ui #boothPrinters,
body#pos-ui #boothQueue,
body#pos-ui #custodyTickets,
body#pos-ui #hwQueue,
body#pos-ui #offlineKitchenSettings,
body#pos-ui #pqOpen,
body#pos-ui #pqOrders,
body#pos-ui #pqSystemPrint,
body#pos-ui #printerAdd,
body#pos-ui #printerQueueTab,
body#pos-ui #templatePrinters,
body#pos-ui #templateQueue{--zd-icon:url("assets/icons/ui/printer.svg");}
body#pos-ui [data-ui-icon="apps"]{--zd-icon:url("assets/icons/ui/apps.svg");}
body#pos-ui [data-ui-icon="chef-hat"]{--zd-icon:url("assets/icons/ui/chef-hat.svg");}
body#pos-ui [data-ui-icon="archive"]{--zd-icon:url("assets/icons/ui/archive.svg");}
body#pos-ui [data-ui-icon="file-invoice"]{--zd-icon:url("assets/icons/ui/file-invoice.svg");}
body#pos-ui [data-ui-icon="building-store"]{--zd-icon:url("assets/icons/ui/building-store.svg");}
body#pos-ui [data-ui-icon="motorbike"]{--zd-icon:url("assets/icons/ui/motorbike.svg");}
body#pos-ui [data-ui-icon="ticket"]{--zd-icon:url("assets/icons/ui/ticket.svg");}
body#pos-ui [data-ui-icon="cash"],
body#pos-ui [data-quick-method="现金"]{--zd-icon:url("assets/icons/ui/cash.svg");}
body#pos-ui [data-ui-icon="qrcode"],
body#pos-ui [data-quick-method="扫码"]{--zd-icon:url("assets/icons/ui/qrcode.svg");}
body#pos-ui [data-ui-icon="credit-card"]{--zd-icon:url("assets/icons/ui/credit-card.svg");}
body#pos-ui [data-ui-icon="device-floppy"],
body#pos-ui #barcodeSave,
body#pos-ui #businessModeSave,
body#pos-ui #checkoutRoundingSave,
body#pos-ui #checkoutSettingsSave,
body#pos-ui #customPaymentSave,
body#pos-ui #effSave,
body#pos-ui #practiceSave,
body#pos-ui #productEditSave,
body#pos-ui #promoRuleSave,
body#pos-ui #templateForm button[type="submit"]{--zd-icon:url("assets/icons/ui/device-floppy.svg");}
body#pos-ui [data-ui-icon="trash"],
body#pos-ui #effDiscard,
body#pos-ui #lineOpRemove,
body#pos-ui [data-delete-product],
body#pos-ui [data-o-remove],
body#pos-ui [data-p-delete]{--zd-icon:url("assets/icons/ui/trash.svg");}
body#pos-ui [data-ui-icon="check"],
body#pos-ui #areaEditSave,
body#pos-ui #btnApplyDiscount,
body#pos-ui #btnConfirmPay,
body#pos-ui #cancellationSubmit,
body#pos-ui #checkoutDepositConfirm,
body#pos-ui #checkoutMemberLoginConfirm,
body#pos-ui #checkoutOfferConfirm,
body#pos-ui #clearTableConfirm,
body#pos-ui #exitAppConfirm,
body#pos-ui #financeSubmit,
body#pos-ui #legacyApply,
body#pos-ui #memberFundsSave,
body#pos-ui #mergeConfirmYes,
body#pos-ui #practiceChooseConfirm,
body#pos-ui #practiceDeleteConfirm,
body#pos-ui #productDeleteConfirm,
body#pos-ui #refundSubmit,
body#pos-ui #shiftOpenSubmit,
body#pos-ui #shiftProceed,
body#pos-ui #splitCollect,
body#pos-ui #staffSubmit,
body#pos-ui #tableCreateSave,
body#pos-ui #tableDeleteConfirm,
body#pos-ui #transferSubmit{--zd-icon:url("assets/icons/ui/check.svg");}
body#pos-ui [data-ui-icon="download"],
body#pos-ui #departmentExport,
body#pos-ui #reportExport{--zd-icon:url("assets/icons/ui/download.svg");}
body#pos-ui [data-ui-icon="filter"]{--zd-icon:url("assets/icons/ui/filter.svg");}
body#pos-ui [data-ui-icon="gift"],
body#pos-ui #checkoutAdjustmentClear,
body#pos-ui #lineOpGift{--zd-icon:url("assets/icons/ui/gift.svg");}
body#pos-ui [data-ui-icon="note"],
body#pos-ui #hwApply,
body#pos-ui #hwOrder,
body#pos-ui #lineOpNote{--zd-icon:url("assets/icons/ui/note.svg");}
body#pos-ui [data-ui-icon="discount"],
body#pos-ui #checkoutPercent,
body#pos-ui #checkoutReduction,
body#pos-ui #lineOpDiscount{--zd-icon:url("assets/icons/ui/discount.svg");}
body#pos-ui [data-ui-icon="percentage"]{--zd-icon:url("assets/icons/ui/percentage.svg");}
body#pos-ui [data-ui-icon="logout"]{--zd-icon:url("assets/icons/ui/logout.svg");}
body#pos-ui [data-ui-icon="minus"]{--zd-icon:url("assets/icons/ui/minus.svg");}
body#pos-ui [data-ui-icon="link"]{--zd-icon:url("assets/icons/ui/link.svg");}
body#pos-ui #areaEditCancel,
body#pos-ui #boothCancel,
body#pos-ui #boothEditBack,
body#pos-ui #btnBackTables,
body#pos-ui #checkoutDepositCancel,
body#pos-ui #checkoutDepositRefundCancel,
body#pos-ui #checkoutMemberLoginCancel,
body#pos-ui #checkoutOfferCancel,
body#pos-ui #clearTableCancel,
body#pos-ui #custodyPickerBack,
body#pos-ui #customDishCancel,
body#pos-ui #customPaymentCancel,
body#pos-ui #exitAppCancel,
body#pos-ui #financeCancel,
body#pos-ui #linePriceCancel,
body#pos-ui #memberCreateCancel,
body#pos-ui #memberFundsCancel,
body#pos-ui #mergeConfirmNo,
body#pos-ui #openTableCancel,
body#pos-ui #paymentPlanCancel,
body#pos-ui #printerTargetCancel,
body#pos-ui #printerTypeCancel,
body#pos-ui #productCreateCancel,
body#pos-ui #productDeleteCancel,
body#pos-ui #productEditCancel,
body#pos-ui #shiftBack,
body#pos-ui #staffCancel,
body#pos-ui #tableCreateCancel,
body#pos-ui #tableDeleteCancel,
body#pos-ui #terminalQuickBack,
body#pos-ui #transferCancel,
body#pos-ui #custodyFilters button[type="submit"],
body#pos-ui #departmentReportForm button[type="submit"],
body#pos-ui #effQuery,
body#pos-ui #financeQuery,
body#pos-ui #inventorySearchBtn,
body#pos-ui #memberTxQuery,
body#pos-ui #reportRangeQuery,
body#pos-ui #areaRefresh,
body#pos-ui #barcodeRead,
body#pos-ui #btnRefreshMembers,
body#pos-ui #btnRefreshOrders,
body#pos-ui #btnReportRefresh,
body#pos-ui #cancellationRefresh,
body#pos-ui #channelRefresh,
body#pos-ui #checkoutMemberRead,
body#pos-ui #checkoutSettingsRefresh,
body#pos-ui #departmentRefresh,
body#pos-ui #financeReload,
body#pos-ui #heldRefresh,
body#pos-ui #memberLedgerRefresh,
body#pos-ui #pickupRefresh,
body#pos-ui #pqReload,
body#pos-ui #practiceRefresh,
body#pos-ui #printerRetry,
body#pos-ui #promoRuleRead,
body#pos-ui #readSettlement,
body#pos-ui #refundReload,
body#pos-ui #shiftRefresh,
body#pos-ui #splitRefresh,
body#pos-ui #staffRefresh,
body#pos-ui #templateRefresh,
body#pos-ui #transferRefresh,
body#pos-ui [data-channel-refresh],
body#pos-ui #btnEditStore,
body#pos-ui [data-edit],
body#pos-ui [data-o-edit],
body#pos-ui [data-p-edit],
body#pos-ui [data-rename],
body#pos-ui #areaCreate,
body#pos-ui #btnAddCat,
body#pos-ui #btnAddMember,
body#pos-ui #custodyAdd,
body#pos-ui #custodyAddLocation,
body#pos-ui #custodyEmptyAdd,
body#pos-ui #custodyLocationNew,
body#pos-ui #custodyNewTab,
body#pos-ui #customPaymentAdd,
body#pos-ui #financeDeposits,
body#pos-ui #practiceAdd,
body#pos-ui #practiceOptionAdd,
body#pos-ui #staffCreate,
body#pos-ui #tableCreate,
body#pos-ui #boothManual,
body#pos-ui #boothPrinters,
body#pos-ui #boothQueue,
body#pos-ui #custodyTickets,
body#pos-ui #hwQueue,
body#pos-ui #offlineKitchenSettings,
body#pos-ui #pqOpen,
body#pos-ui #pqOrders,
body#pos-ui #pqSystemPrint,
body#pos-ui #printerAdd,
body#pos-ui #printerQueueTab,
body#pos-ui #templatePrinters,
body#pos-ui #templateQueue,
body#pos-ui [data-quick-method="现金"],
body#pos-ui [data-quick-method="扫码"],
body#pos-ui #barcodeSave,
body#pos-ui #businessModeSave,
body#pos-ui #checkoutRoundingSave,
body#pos-ui #checkoutSettingsSave,
body#pos-ui #customPaymentSave,
body#pos-ui #effSave,
body#pos-ui #practiceSave,
body#pos-ui #productEditSave,
body#pos-ui #promoRuleSave,
body#pos-ui #templateForm button[type="submit"],
body#pos-ui #effDiscard,
body#pos-ui #lineOpRemove,
body#pos-ui [data-delete-product],
body#pos-ui [data-o-remove],
body#pos-ui [data-p-delete],
body#pos-ui #areaEditSave,
body#pos-ui #btnApplyDiscount,
body#pos-ui #btnConfirmPay,
body#pos-ui #cancellationSubmit,
body#pos-ui #checkoutDepositConfirm,
body#pos-ui #checkoutMemberLoginConfirm,
body#pos-ui #checkoutOfferConfirm,
body#pos-ui #clearTableConfirm,
body#pos-ui #exitAppConfirm,
body#pos-ui #financeSubmit,
body#pos-ui #legacyApply,
body#pos-ui #memberFundsSave,
body#pos-ui #mergeConfirmYes,
body#pos-ui #practiceChooseConfirm,
body#pos-ui #practiceDeleteConfirm,
body#pos-ui #productDeleteConfirm,
body#pos-ui #refundSubmit,
body#pos-ui #shiftOpenSubmit,
body#pos-ui #shiftProceed,
body#pos-ui #splitCollect,
body#pos-ui #staffSubmit,
body#pos-ui #tableCreateSave,
body#pos-ui #tableDeleteConfirm,
body#pos-ui #transferSubmit,
body#pos-ui #departmentExport,
body#pos-ui #reportExport,
body#pos-ui #checkoutAdjustmentClear,
body#pos-ui #lineOpGift,
body#pos-ui #hwApply,
body#pos-ui #hwOrder,
body#pos-ui #lineOpNote,
body#pos-ui #checkoutPercent,
body#pos-ui #checkoutReduction,
body#pos-ui #lineOpDiscount{align-items:center;justify-content:center;gap:8px;}
body#pos-ui #areaEditCancel::before,
body#pos-ui #boothCancel::before,
body#pos-ui #boothEditBack::before,
body#pos-ui #btnBackTables::before,
body#pos-ui #checkoutDepositCancel::before,
body#pos-ui #checkoutDepositRefundCancel::before,
body#pos-ui #checkoutMemberLoginCancel::before,
body#pos-ui #checkoutOfferCancel::before,
body#pos-ui #clearTableCancel::before,
body#pos-ui #custodyPickerBack::before,
body#pos-ui #customDishCancel::before,
body#pos-ui #customPaymentCancel::before,
body#pos-ui #exitAppCancel::before,
body#pos-ui #financeCancel::before,
body#pos-ui #linePriceCancel::before,
body#pos-ui #memberCreateCancel::before,
body#pos-ui #memberFundsCancel::before,
body#pos-ui #mergeConfirmNo::before,
body#pos-ui #openTableCancel::before,
body#pos-ui #paymentPlanCancel::before,
body#pos-ui #printerTargetCancel::before,
body#pos-ui #printerTypeCancel::before,
body#pos-ui #productCreateCancel::before,
body#pos-ui #productDeleteCancel::before,
body#pos-ui #productEditCancel::before,
body#pos-ui #shiftBack::before,
body#pos-ui #staffCancel::before,
body#pos-ui #tableCreateCancel::before,
body#pos-ui #tableDeleteCancel::before,
body#pos-ui #terminalQuickBack::before,
body#pos-ui #transferCancel::before,
body#pos-ui #custodyFilters button[type="submit"]::before,
body#pos-ui #departmentReportForm button[type="submit"]::before,
body#pos-ui #effQuery::before,
body#pos-ui #financeQuery::before,
body#pos-ui #inventorySearchBtn::before,
body#pos-ui #memberTxQuery::before,
body#pos-ui #reportRangeQuery::before,
body#pos-ui #areaRefresh::before,
body#pos-ui #barcodeRead::before,
body#pos-ui #btnRefreshMembers::before,
body#pos-ui #btnRefreshOrders::before,
body#pos-ui #btnReportRefresh::before,
body#pos-ui #cancellationRefresh::before,
body#pos-ui #channelRefresh::before,
body#pos-ui #checkoutMemberRead::before,
body#pos-ui #checkoutSettingsRefresh::before,
body#pos-ui #departmentRefresh::before,
body#pos-ui #financeReload::before,
body#pos-ui #heldRefresh::before,
body#pos-ui #memberLedgerRefresh::before,
body#pos-ui #pickupRefresh::before,
body#pos-ui #pqReload::before,
body#pos-ui #practiceRefresh::before,
body#pos-ui #printerRetry::before,
body#pos-ui #promoRuleRead::before,
body#pos-ui #readSettlement::before,
body#pos-ui #refundReload::before,
body#pos-ui #shiftRefresh::before,
body#pos-ui #splitRefresh::before,
body#pos-ui #staffRefresh::before,
body#pos-ui #templateRefresh::before,
body#pos-ui #transferRefresh::before,
body#pos-ui [data-channel-refresh]::before,
body#pos-ui #btnEditStore::before,
body#pos-ui [data-edit]::before,
body#pos-ui [data-o-edit]::before,
body#pos-ui [data-p-edit]::before,
body#pos-ui [data-rename]::before,
body#pos-ui #areaCreate::before,
body#pos-ui #btnAddCat::before,
body#pos-ui #btnAddMember::before,
body#pos-ui #custodyAdd::before,
body#pos-ui #custodyAddLocation::before,
body#pos-ui #custodyEmptyAdd::before,
body#pos-ui #custodyLocationNew::before,
body#pos-ui #custodyNewTab::before,
body#pos-ui #customPaymentAdd::before,
body#pos-ui #financeDeposits::before,
body#pos-ui #practiceAdd::before,
body#pos-ui #practiceOptionAdd::before,
body#pos-ui #staffCreate::before,
body#pos-ui #tableCreate::before,
body#pos-ui #boothManual::before,
body#pos-ui #boothPrinters::before,
body#pos-ui #boothQueue::before,
body#pos-ui #custodyTickets::before,
body#pos-ui #hwQueue::before,
body#pos-ui #offlineKitchenSettings::before,
body#pos-ui #pqOpen::before,
body#pos-ui #pqOrders::before,
body#pos-ui #pqSystemPrint::before,
body#pos-ui #printerAdd::before,
body#pos-ui #printerQueueTab::before,
body#pos-ui #templatePrinters::before,
body#pos-ui #templateQueue::before,
body#pos-ui [data-quick-method="现金"]::before,
body#pos-ui [data-quick-method="扫码"]::before,
body#pos-ui #barcodeSave::before,
body#pos-ui #businessModeSave::before,
body#pos-ui #checkoutRoundingSave::before,
body#pos-ui #checkoutSettingsSave::before,
body#pos-ui #customPaymentSave::before,
body#pos-ui #effSave::before,
body#pos-ui #practiceSave::before,
body#pos-ui #productEditSave::before,
body#pos-ui #promoRuleSave::before,
body#pos-ui #templateForm button[type="submit"]::before,
body#pos-ui #effDiscard::before,
body#pos-ui #lineOpRemove::before,
body#pos-ui [data-delete-product]::before,
body#pos-ui [data-o-remove]::before,
body#pos-ui [data-p-delete]::before,
body#pos-ui #areaEditSave::before,
body#pos-ui #btnApplyDiscount::before,
body#pos-ui #btnConfirmPay::before,
body#pos-ui #cancellationSubmit::before,
body#pos-ui #checkoutDepositConfirm::before,
body#pos-ui #checkoutMemberLoginConfirm::before,
body#pos-ui #checkoutOfferConfirm::before,
body#pos-ui #clearTableConfirm::before,
body#pos-ui #exitAppConfirm::before,
body#pos-ui #financeSubmit::before,
body#pos-ui #legacyApply::before,
body#pos-ui #memberFundsSave::before,
body#pos-ui #mergeConfirmYes::before,
body#pos-ui #practiceChooseConfirm::before,
body#pos-ui #practiceDeleteConfirm::before,
body#pos-ui #productDeleteConfirm::before,
body#pos-ui #refundSubmit::before,
body#pos-ui #shiftOpenSubmit::before,
body#pos-ui #shiftProceed::before,
body#pos-ui #splitCollect::before,
body#pos-ui #staffSubmit::before,
body#pos-ui #tableCreateSave::before,
body#pos-ui #tableDeleteConfirm::before,
body#pos-ui #transferSubmit::before,
body#pos-ui #departmentExport::before,
body#pos-ui #reportExport::before,
body#pos-ui #checkoutAdjustmentClear::before,
body#pos-ui #lineOpGift::before,
body#pos-ui #hwApply::before,
body#pos-ui #hwOrder::before,
body#pos-ui #lineOpNote::before,
body#pos-ui #checkoutPercent::before,
body#pos-ui #checkoutReduction::before,
body#pos-ui #lineOpDiscount::before{content:"";display:inline-block;width:18px;height:18px;flex:0 0 18px;vertical-align:-3px;margin-right:6px;background:currentColor;-webkit-mask:var(--zd-icon) center/contain no-repeat;mask:var(--zd-icon) center/contain no-repeat;}

body#pos-ui.pos-reference .pos-top-action svg{width:28px;height:28px;}
body#pos-ui.pos-reference #railNav .pos-launcher-icon{background:#eef4ff;color:#3568b6;box-shadow:none;border:1px solid rgba(53,104,182,.07);border-radius:20px;}
body#pos-ui.pos-reference #railNav .pos-launcher-icon svg,body#pos-ui.pos-reference #railNav .pos-launcher-icon .zd-mask{width:34px;height:34px;}
body#pos-ui.pos-reference #railNav [data-page="members"] .pos-launcher-icon{background:#f2edfb;color:#8060b8;}
body#pos-ui.pos-reference #railNav [data-page="reports"] .pos-launcher-icon,
body#pos-ui.pos-reference #railNav [data-pos-trigger="btnTableDeposits"] .pos-launcher-icon,
body#pos-ui.pos-reference #railNav [data-pos-trigger="btnCredit"] .pos-launcher-icon,
body#pos-ui.pos-reference #railNav [data-page="shift"] .pos-launcher-icon{background:#eaf6f2;color:#25816c;}
body#pos-ui.pos-reference #railNav [data-page="products"] .pos-launcher-icon,
body#pos-ui.pos-reference #railNav [data-page="practices"] .pos-launcher-icon,
body#pos-ui.pos-reference #railNav [data-page="delivery"] .pos-launcher-icon,
body#pos-ui.pos-reference #railNav [data-page="voucher"] .pos-launcher-icon,
body#pos-ui.pos-reference #railNav [data-pos-trigger="btnInventory"] .pos-launcher-icon,
body#pos-ui.pos-reference #railNav [data-ui-page="custody"] .pos-launcher-icon{background:#fbf2e7;color:#ad7538;}
body#pos-ui.pos-reference #railNav [data-page="settings"] .pos-launcher-icon,
body#pos-ui.pos-reference #railNav [data-page="departments"] .pos-launcher-icon,
body#pos-ui.pos-reference #railNav [data-ui-page="templates"] .pos-launcher-icon,
body#pos-ui.pos-reference #railNav [data-printer-open] .pos-launcher-icon{background:#edf1f5;color:#60758d;}
body#pos-ui.pos-reference #railNav .pos-launcher:hover{background:#f6f8fc;border-color:#dce5f0;}
body#pos-ui.pos-reference[data-current-page] #page-reports .orders-table th{background:#edf6f3;color:#516f66;}
body#pos-ui.pos-reference .staff-card[data-pos-section="staff"] .data-table{table-layout:fixed;}
body#pos-ui.pos-reference .staff-card[data-pos-section="staff"] .data-table th:nth-child(1){width:17%;}
body#pos-ui.pos-reference .staff-card[data-pos-section="staff"] .data-table th:nth-child(2){width:27%;}
body#pos-ui.pos-reference .staff-card[data-pos-section="staff"] .data-table th:nth-child(3){width:12%;}
body#pos-ui.pos-reference .staff-card[data-pos-section="staff"] .data-table th:nth-child(4){width:44%;}
body#pos-ui.pos-reference #refundRestockLabel{display:flex;align-items:center;justify-content:flex-start;gap:10px;}
body#pos-ui.pos-reference #refundRestockLabel input{width:48px;height:48px;min-height:48px;flex:0 0 48px;margin:0;transform:scale(.5);}
body#pos-ui.pos-reference #page-products [data-delete-product]{color:#bc4747;background:#fff2f1;border-color:#f2d7d4;}

body#pos-ui.pos-reference[data-current-page] svg.zd-icon{fill:none;stroke:currentColor;stroke-width:2;}
body#pos-ui.pos-reference[data-current-page] #page-order .pos-custom-dish svg.zd-icon{fill:none;stroke:currentColor;}

body#pos-ui [data-area-rename],body#pos-ui [data-table-edit]{--zd-icon:url("assets/icons/ui/edit.svg");}
body#pos-ui [data-area-rename]::before,body#pos-ui [data-table-edit]::before{content:"";display:inline-block;width:18px;height:18px;vertical-align:-3px;margin-right:6px;background:currentColor;-webkit-mask:var(--zd-icon) center/contain no-repeat;mask:var(--zd-icon) center/contain no-repeat;}
body#pos-ui [data-area-delete],body#pos-ui [data-table-delete],body#pos-ui [data-del],body#pos-ui [data-remove]{--zd-icon:url("assets/icons/ui/trash.svg");}
body#pos-ui [data-area-delete]::before,body#pos-ui [data-table-delete]::before,body#pos-ui [data-del]::before,body#pos-ui [data-remove]::before{content:"";display:inline-block;width:18px;height:18px;vertical-align:-3px;margin-right:6px;background:currentColor;-webkit-mask:var(--zd-icon) center/contain no-repeat;mask:var(--zd-icon) center/contain no-repeat;}
body#pos-ui #btnSwap{--zd-icon:url("assets/icons/ui/arrows-exchange.svg");}
body#pos-ui #btnSwap::before{content:"";display:inline-block;width:18px;height:18px;vertical-align:-3px;margin-right:6px;background:currentColor;-webkit-mask:var(--zd-icon) center/contain no-repeat;mask:var(--zd-icon) center/contain no-repeat;}
body#pos-ui #btnMerge{--zd-icon:url("assets/icons/ui/arrows-join.svg");}
body#pos-ui #btnMerge::before{content:"";display:inline-block;width:18px;height:18px;vertical-align:-3px;margin-right:6px;background:currentColor;-webkit-mask:var(--zd-icon) center/contain no-repeat;mask:var(--zd-icon) center/contain no-repeat;}
body#pos-ui #btnTableDeposits{--zd-icon:url("assets/icons/ui/wallet.svg");}
body#pos-ui #btnTableDeposits::before{content:"";display:inline-block;width:18px;height:18px;vertical-align:-3px;margin-right:6px;background:currentColor;-webkit-mask:var(--zd-icon) center/contain no-repeat;mask:var(--zd-icon) center/contain no-repeat;}
body#pos-ui #btnPickupBoard{--zd-icon:url("assets/icons/ui/broadcast.svg");}
body#pos-ui #btnPickupBoard::before{content:"";display:inline-block;width:18px;height:18px;vertical-align:-3px;margin-right:6px;background:currentColor;-webkit-mask:var(--zd-icon) center/contain no-repeat;mask:var(--zd-icon) center/contain no-repeat;}
body#pos-ui #btnAddDish,body#pos-ui #tableCreate{--zd-icon:url("assets/icons/ui/plus.svg");}
body#pos-ui #btnAddDish::before,body#pos-ui #tableCreate::before{content:"";display:inline-block;width:18px;height:18px;vertical-align:-3px;margin-right:6px;background:currentColor;-webkit-mask:var(--zd-icon) center/contain no-repeat;mask:var(--zd-icon) center/contain no-repeat;}
body#pos-ui #btnInventory{--zd-icon:url("assets/icons/ui/package.svg");}
body#pos-ui #btnInventory::before{content:"";display:inline-block;width:18px;height:18px;vertical-align:-3px;margin-right:6px;background:currentColor;-webkit-mask:var(--zd-icon) center/contain no-repeat;mask:var(--zd-icon) center/contain no-repeat;}
body#pos-ui.pos-reference[data-current-page] #page-products .dish-admin-card [data-delete-product],body#pos-ui.pos-reference[data-current-page] #page-products [data-delete-product]{color:#bc4747;border-color:#f2d7d4;}

/* Show mode only when it is a real choice; keep compact order notes. */
body#pos-ui.pos-reference #orderModeControl[hidden]{display:none;}
body#pos-ui.pos-reference #orderModeHint:empty{display:none;}
body#pos-ui.pos-reference #terminalQuickPay button{white-space:nowrap;}
body#pos-ui.pos-reference #terminalQuickPay button::before{width:16px;height:16px;margin-right:4px;}
body#pos-ui.pos-reference #lineOpsHint:empty{display:none;}

/* Login controls: orange focus, readable labels, and full-size checkbox targets. */
body#pos-ui #loginScreen .login-card>label{font-size:16px;font-weight:600;color:#4b5563;margin:6px 0 0;letter-spacing:.03em;}
body#pos-ui #loginScreen .login-card input:not([type=checkbox]){height:58px;padding:14px 18px;background:#f8fafb;border:1px solid #dce2e8;border-radius:14px!important;color:#202b39;font-weight:500;box-shadow:inset 0 1px 2px #25344a03;transition:border-color .15s,box-shadow .15s,background .15s;caret-color:#e65100;}
body#pos-ui #loginScreen .login-card input:not([type=checkbox])::placeholder{color:#929ca9;font-size:17px;font-weight:400;}
body#pos-ui #loginScreen .login-card input:not([type=checkbox]):hover{border-color:#bdc6d0;}
body#pos-ui #loginScreen .login-card input:not([type=checkbox]):focus{background:#fff;border-color:#e96928;outline:none;box-shadow:0 0 0 4px #ed6c2414;}
body#pos-ui #loginScreen .login-card input::selection{background:#ffdfc9;color:#78310d;}
body#pos-ui #loginScreen .login-password button{top:5px;right:6px;min-height:48px;min-width:60px;border:0;border-radius:10px;background:transparent;color:#8b553a;font-size:15px;font-weight:600;}
body#pos-ui #loginScreen .login-password button:hover,body#pos-ui #loginScreen .login-password button[aria-pressed=true]{background:#fff0e7;color:#b74408;}
body#pos-ui #loginScreen .login-password button:focus{outline:2px solid #e96928;outline-offset:-2px;}
body#pos-ui #loginScreen .login-options{gap:8px;align-items:center;margin-top:4px;}
body#pos-ui #loginScreen .login-options .login-remember{margin-top:0;gap:0;min-height:48px;font-weight:500;font-size:15px;}
body#pos-ui #loginScreen .login-options input[type=checkbox]{position:absolute;left:0;top:0;width:48px!important;height:48px!important;margin:0;transform:none;opacity:0;z-index:1;}
body#pos-ui #loginScreen .login-options .login-remember span{display:flex;align-items:center;position:relative;min-height:48px;padding:0 12px 0 42px;border:1px solid transparent;border-radius:11px;color:#647181;transition:background .15s,color .15s;}
body#pos-ui #loginScreen .login-options .login-remember span::before{content:"";position:absolute;left:12px;top:13px;width:20px;height:20px;border:1.5px solid #b8c3cf;border-radius:6px;box-sizing:border-box;background:#fff;}
body#pos-ui #loginScreen .login-options input:checked+span{color:#ae410c;}
body#pos-ui #loginScreen .login-options input:checked+span::before{background:#e75b16 url('assets/icons/ui/check.svg') center/16px no-repeat;border-color:#e75b16;}
body#pos-ui #loginScreen .login-options input:checked+span::after{content:"";position:absolute;left:14px;top:15px;width:16px;height:16px;background:white;-webkit-mask:url('assets/icons/ui/check.svg') center/contain no-repeat;mask:url('assets/icons/ui/check.svg') center/contain no-repeat;}
/* Requested: these login controls show no box when clicked or tapped. */
body#pos-ui #loginScreen .login-remember{-webkit-tap-highlight-color:transparent;}
body#pos-ui #loginScreen #loginSubmit:focus{outline:none;}
body#pos-ui #loginScreen .login-options input:disabled+span{color:#8b95a1;opacity:.7;}
body#pos-ui #loginScreen .login-remember-hint{font-size:13px;color:#9099a5;line-height:1.6;margin:0 0 2px;}
body#pos-ui #loginScreen .login-window-actions .btn{border:1px solid #e5e9ee;border-radius:12px;color:#687586;background:#f9fafb;font-size:15px;}
body#pos-ui #loginScreen .login-window-actions .btn:hover{background:#fff3eb;color:#ae410c;border-color:#f7d8c5;}

/* Table status filters use the existing official outline icon family. */
body#pos-ui.pos-reference[data-current-page] #page-tables .status-item{gap:10px;padding:8px 10px;border:1px solid transparent;min-height:56px;}
body#pos-ui.pos-reference[data-current-page] #page-tables .status-item[data-status] .dot{display:flex;align-items:center;justify-content:center;position:relative;width:32px;height:32px;min-width:32px;border:0;border-radius:10px;background:var(--status-soft,#eef3f8);color:var(--status-ink,#577089);}
body#pos-ui.pos-reference[data-current-page] #page-tables .status-item .dot::before{content:"";display:block;width:20px;height:20px;background:currentColor;-webkit-mask:var(--status-icon) center/contain no-repeat;mask:var(--status-icon) center/contain no-repeat;}
body#pos-ui.pos-reference[data-current-page] #page-tables .status-item[data-status=all]{--status-icon:url('assets/icons/ui/layout-grid.svg');}
body#pos-ui.pos-reference[data-current-page] #page-tables .status-item[data-status=free]{--status-icon:url('assets/icons/ui/check.svg');--status-soft:#f1f4f7;--status-ink:#718096;}
body#pos-ui.pos-reference[data-current-page] #page-tables .status-item[data-status=opened]{--status-icon:url('assets/icons/ui/edit.svg');--status-soft:#fff4da;--status-ink:#b68015;}
body#pos-ui.pos-reference[data-current-page] #page-tables .status-item[data-status=order]{--status-icon:url('assets/icons/ui/chef-hat.svg');--status-soft:#e2f3ed;--status-ink:#21866e;}
body#pos-ui.pos-reference[data-current-page] #page-tables .status-item[data-status=pay]{--status-icon:url('assets/icons/ui/wallet.svg');--status-soft:#fff0e0;--status-ink:#c16c18;}
body#pos-ui.pos-reference[data-current-page] #page-tables .status-item[data-status=clear]{--status-icon:url('assets/icons/ui/refresh.svg');--status-soft:#eaf0fa;--status-ink:#6a84ae;}
body#pos-ui.pos-reference[data-current-page] #page-tables .status-item.active{border-color:#c5e4f6;box-shadow:none;}
body#pos-ui.pos-reference[data-current-page] #page-tables .status-item .count{min-width:24px;text-align:center;font-size:17px;}
body#pos-ui.pos-reference[data-current-page] #page-tables .tables-summary{border:1px solid #e0edf5;border-radius:14px;background:#f2f8fc;padding:14px 12px;margin:12px 0;gap:14px;}
body#pos-ui.pos-reference[data-current-page] #page-tables .tables-summary strong{font-weight:650;}

body#pos-ui.pos-reference[data-current-page] #page-tables #payAmount{font-size:clamp(20px,1.8vw,26px);line-height:1.4;white-space:nowrap;overflow-x:auto;max-width:100%;overflow-wrap:normal;}

/* Direct-order reference: no party-size block or redundant category strip. */
body#pos-ui.pos-reference[data-current-page] #page-order #orderCovers[hidden],
body#pos-ui.pos-reference[data-current-page] #page-order #catRail[hidden]{display:none!important;}
body#pos-ui.pos-reference[data-current-page] .order-pickup-entry{display:none!important;}
body#pos-ui.pos-reference[data-current-page="order"] .order-pickup-entry{display:inline-flex!important;align-items:center;justify-content:center;gap:8px;flex:0 0 auto;min-width:132px;min-height:48px;padding:10px 15px;border:1px solid #d4e9f6;border-radius:28px;background:#fff;color:#1686c1;font-size:18px;font-weight:600;white-space:nowrap;box-shadow:0 2px 5px #12578314;}
body#pos-ui.pos-reference[data-current-page="order"] .order-pickup-entry:hover{background:#ecf7ff;}
body#pos-ui.pos-reference[data-current-page="order"] .order-pickup-entry:focus{outline:2px solid white;outline-offset:3px;}
@media(max-width:1200px){body#pos-ui.pos-reference[data-current-page="order"] .topbar{gap:10px;}body#pos-ui.pos-reference[data-current-page="order"] .order-pickup-entry{min-width:112px;padding:8px 10px;font-size:15px;gap:6px;}body#pos-ui.pos-reference[data-current-page="order"] .order-pickup-entry .zd-mask{width:20px;height:20px;}}
/* Keep the three-column cashier layout above the phone breakpoint. */
@media(min-width:761px){
 body#pos-ui.pos-reference[data-current-page] #page-order.active{grid-template-rows:minmax(0,1fr);}
 body#pos-ui.pos-reference[data-current-page] #page-order .cart-panel{grid-column:1;grid-row:1;}
 body#pos-ui.pos-reference[data-current-page] #page-order .line-ops{grid-column:2;grid-row:1;flex-wrap:nowrap;overflow-y:auto;}
 body#pos-ui.pos-reference[data-current-page] #page-order .order-menu{grid-column:3;grid-row:1;}
 body#pos-ui.pos-reference[data-current-page] #page-order .line-ops>.btn,body#pos-ui.pos-reference[data-current-page] #page-order .line-ops-target{flex:0 0 auto;}
}

body#pos-ui #page-order #hwOrder[hidden]{display:none!important;}

/* Transfer empty state: compact, quiet, and actionable. */
body#pos-ui.pos-reference[data-current-page] #transferDialog.transfer-no-vacancy{width:min(560px,calc(100vw - 40px));height:min(400px,calc(100vh - 40px));max-height:calc(100vh - 40px);border-radius:20px;box-shadow:0 24px 80px #18345133;}
body#pos-ui.pos-reference[data-current-page] #transferDialog.transfer-no-vacancy .modal-head{padding:22px 28px 14px;background:#fff;border-bottom:0;}
body#pos-ui.pos-reference[data-current-page] #transferDialog.transfer-no-vacancy .modal-head h2{font-size:20px;color:#22364c;}
body#pos-ui.pos-reference[data-current-page] #transferDialog.transfer-no-vacancy #transferClose{border:0;background:#f3f6fa;color:#65788b;border-radius:12px;}
body#pos-ui.pos-reference[data-current-page] #transferDialog.transfer-no-vacancy .product-editor-body{padding:12px 32px 26px;}
body#pos-ui.pos-reference[data-current-page] #transferDialog.transfer-no-vacancy #transferHelp,
body#pos-ui.pos-reference[data-current-page] #transferDialog.transfer-no-vacancy .transfer-toolbar,
body#pos-ui.pos-reference[data-current-page] #transferDialog.transfer-no-vacancy .transfer-picker-toolbar,
body#pos-ui.pos-reference[data-current-page] #transferDialog.transfer-no-vacancy #transferCards,
body#pos-ui.pos-reference[data-current-page] #transferDialog.transfer-no-vacancy #transferSummary,
body#pos-ui.pos-reference[data-current-page] #transferDialog.transfer-no-vacancy #transferBack,
body#pos-ui.pos-reference[data-current-page] #transferDialog.transfer-no-vacancy #transferSubmit{display:none!important;}
body#pos-ui #transferVacancyNotice{text-align:center;padding:6px 0 12px;}
body#pos-ui .transfer-vacancy-icon{display:flex;width:80px;height:80px;align-items:center;justify-content:center;background:#eef6ff;color:#2685d0;border-radius:24px;margin:0 auto 22px;}
body#pos-ui .transfer-vacancy-icon::before{content:"";display:block;width:40px;height:40px;background:currentColor;-webkit-mask:url('assets/icons/ui/clock.svg') center/contain no-repeat;mask:url('assets/icons/ui/clock.svg') center/contain no-repeat;}
body#pos-ui #transferVacancyNotice h3{font-size:25px;line-height:1.4;font-weight:650;color:#20364b;margin:0 0 10px;}
body#pos-ui #transferVacancyNotice p{font-size:15px;line-height:1.7;color:#758497;margin:0;}
body#pos-ui.pos-reference[data-current-page] #transferDialog.transfer-no-vacancy .modal-foot{padding:0 32px 30px;display:grid;grid-template-columns:1fr 1fr;gap:14px;background:#fff;}
body#pos-ui.pos-reference[data-current-page] #transferDialog.transfer-no-vacancy .modal-foot .btn{width:100%;border-radius:12px!important;font-size:17px!important;min-width:48px;min-inline-size:48px!important;}
body#pos-ui #transferEmptyRefresh{display:inline-flex;align-items:center;justify-content:center;gap:9px;}
body#pos-ui #transferEmptyRefresh::before{content:"";display:block;width:20px;height:20px;background:currentColor;-webkit-mask:url('assets/icons/ui/refresh.svg') center/contain no-repeat;mask:url('assets/icons/ui/refresh.svg') center/contain no-repeat;}
@media(max-height:500px){body#pos-ui.pos-reference[data-current-page] #transferDialog.transfer-no-vacancy .product-editor-body{padding-top:0;padding-bottom:8px;}body#pos-ui .transfer-vacancy-icon{width:56px;height:56px;margin-bottom:12px;}body#pos-ui.pos-reference[data-current-page] #transferDialog.transfer-no-vacancy .modal-foot{padding-bottom:18px;}}

/* Table service does not use pickup calling. Direct ordering keeps its entry. */
body#pos-ui.pos-reference[data-current-page="order"] #btnOrderPickupEntry[hidden],body#pos-ui #page-tables #btnPickupBoard[hidden]{display:none!important;}

/* Reference table service: saved bill and a separate add-dish editor. */
body#pos-ui .table-bill-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:12px 16px;border-bottom:1px solid var(--ui-line);}
body#pos-ui .table-bill-actions .btn{padding:10px 4px;min-height:48px;font-size:14px;}
body#pos-ui .table-bill-foot{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:16px;border-top:1px solid var(--ui-line);}
body#pos-ui .table-bill-foot .btn{min-height:56px;font-size:17px;}
body#pos-ui :-webkit-any(.table-bill-actions,.table-bill-foot)[hidden]{display:none!important;}
body#pos-ui .cart-saved-heading{padding:12px 16px;color:#7b8998;font-size:14px;border-bottom:1px solid var(--ui-line);background:#f6f8fb;}
body#pos-ui .cart-saved-line{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:start;padding:16px;color:#8794a3;border-bottom:1px solid #edf1f5;}
body#pos-ui .cart-saved-line strong{display:block;font-weight:500;}
body#pos-ui .cart-saved-line .saved-line-note{font-size:12px;color:#98a2b1;}

@media(min-width:700px){
  body#pos-ui #openTableDialog{width:min(780px,calc(100vw - 40px));}
  body#pos-ui #openTableForm{display:grid;grid-template-columns:1.05fr 1fr;grid-template-rows:auto 1fr auto;min-height:360px;}
  body#pos-ui #openTableForm .modal-head{grid-column:1;grid-row:1;border:0;padding:22px 20px 12px;}
  body#pos-ui #openTableForm .open-table-body{display:contents;}
  body#pos-ui #openTableForm .open-table-info{grid-column:1;grid-row:2;margin:0 20px;padding:10px 0;border-radius:0;background:#fff;}
  body#pos-ui #openTableForm .open-table-info input{text-align:right;background:#f6f9fc;border-color:#d6e2ef;font-size:28px;min-height:58px;}
  body#pos-ui #openTableForm .open-table-keys{grid-column:2;grid-row:1 / 4;grid-template-rows:repeat(4,1fr);align-items:stretch;gap:1px;background:#e3e9f0;border-left:1px solid #e3e9f0;}
  body#pos-ui.pos-reference[data-current-page] #openTableDialog #openTableForm .open-table-keys .btn{border:0;border-radius:0!important;box-shadow:none;background:#f8fafc;font-size:26px!important;min-height:74px!important;height:100%!important;align-self:stretch;}
  body#pos-ui #openTableForm .open-table-keys .btn:active{background:var(--ui-brand-soft);}
  body#pos-ui #openTableForm .modal-foot{grid-column:1;grid-row:3;border:0;padding:20px;background:#fff;}
  body#pos-ui #openTableForm .modal-foot .btn{flex:1;min-height:54px;}
}

@media(min-width:950px){
 body#pos-ui.pos-reference[data-current-page] #page-checkout.table-service .checkout-wrap{grid-template-columns:minmax(220px,1fr) 96px minmax(280px,1.2fr) minmax(240px,1fr);gap:10px;}
 body#pos-ui .table-bill-actions{display:flex;flex-direction:column;align-self:stretch;gap:10px;padding:14px 6px;border:1px solid var(--ui-line);border-radius:14px;background:#f7fafd;}
 body#pos-ui.pos-reference[data-current-page] #page-checkout .table-bill-actions .btn{flex:0 0 auto;width:100%;min-height:58px!important;height:58px!important;padding:8px 3px;font-size:15px!important;line-height:1.3;white-space:nowrap;}
 body#pos-ui .table-bill-actions .danger{margin-top:auto;}
}

/* Saved-bill dish operations: selectable rows and a focused operation dialog. */
body#pos-ui.pos-reference[data-current-page] #page-checkout .table-bill-actions{overflow-y:auto;min-height:0;gap:8px;padding:10px 6px;}
body#pos-ui.pos-reference[data-current-page] #page-checkout .table-bill-actions .btn{min-height:48px!important;height:48px!important;flex:0 0 auto;font-size:14px!important;}
body#pos-ui.pos-reference[data-current-page] #page-checkout .table-bill-actions .danger{margin-top:0;}
body#pos-ui #billLines .bill-line[role=button]{cursor:pointer;border-radius:9px;margin:4px 0;padding:14px 10px;position:relative;outline-offset:-2px;}
body#pos-ui #billLines .bill-line.bill-selected{background:#e8f3ff;box-shadow:inset 3px 0 #397fc6;}
body#pos-ui #billLines .bill-service-tag{color:#b57d24;font-size:12px;grid-column:1 / -1;}
body#pos-ui .bill-selection-bar{display:flex;align-items:center;gap:8px;padding:8px 16px;border-bottom:1px solid #e6edf4;color:#75859a;font-size:13px;}
body#pos-ui .bill-selection-bar #billSetWaiting{margin-left:auto;}
body#pos-ui.pos-reference[data-current-page] .bill-selection-bar .btn{min-height:48px!important;padding:6px 10px;font-size:14px!important;}
body#pos-ui #billActionDialog{width:min(760px,calc(100vw - 32px));max-height:calc(100vh - 32px);border-radius:18px;}
body#pos-ui #billActionForm{display:flex;flex-direction:column;max-height:calc(100vh - 32px);}
body#pos-ui .bill-action-body{overflow:auto;min-height:0;padding:20px 26px;}
body#pos-ui .bill-action-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid #e8eef5;}
body#pos-ui .bill-action-item strong{font-size:19px;color:#253b52;}
body#pos-ui .bill-action-item small{display:block;color:#8593a2;margin-top:8px;}
body#pos-ui .bill-action-item label{display:flex;align-items:center;gap:8px;color:#75859a;}
body#pos-ui .bill-action-item input{width:100px;text-align:center;}
body#pos-ui #billActionDialog input[type=text]{border:1px solid #d7e2ef;border-radius:10px;min-height:52px;padding:10px 14px;box-sizing:border-box;font:inherit;background:#fff;color:#263a50;}
body#pos-ui #billActionDialog input:focus{border-color:#397fc6;outline:2px solid #397fc622;}
body#pos-ui .bill-action-value{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:20px 0;}
body#pos-ui #billActionValue{width:200px;text-align:right;font-size:24px!important;}
body#pos-ui .bill-action-tabs,body#pos-ui .bill-action-presets,body#pos-ui .bill-action-reasons{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0;}
body#pos-ui .bill-action-tabs .btn.active{background:#e9f4ff;border-color:#397fc6;color:#397fc6;}
body#pos-ui #billActionReason{width:100%;}
body#pos-ui #billReasonField{margin-top:20px;}
body#pos-ui .bill-return-options{display:flex;gap:30px;align-items:center;margin:20px 0;}
body#pos-ui .bill-return-options label{display:flex;align-items:center;gap:10px;min-height:48px;}
body#pos-ui .bill-return-options input{width:48px;height:48px;}
body#pos-ui .bill-action-note{color:#7e8c9d;font-size:14px;line-height:1.7;}
body#pos-ui #billActionDialog .modal-foot{display:flex;justify-content:flex-end;gap:12px;padding:16px 26px;background:#f7faff;}
body#pos-ui #billActionDialog .modal-foot .btn{min-width:120px;}
body#pos-ui #billSelectionBar[hidden],body#pos-ui #billSelectAll[hidden],body#pos-ui #billValueField[hidden],body#pos-ui #billDiscountTabs[hidden],body#pos-ui #billDiscountPresets[hidden],body#pos-ui #billReturnOptions[hidden],body#pos-ui #billReasonField[hidden]{display:none!important;}
@media(max-width:949px){body#pos-ui #page-checkout .table-bill-actions{display:flex;flex-direction:row;flex-wrap:wrap;}body#pos-ui #page-checkout .table-bill-actions .btn{width:auto;min-width:80px;}}

/* Keep the selected dishes visible on the cashier's 1280 × 720 landscape screen. */
body#pos-ui.pos-reference[data-current-page] #page-checkout.table-service .checkout-bill>h2{padding:18px 18px 0;margin-bottom:10px;}
body#pos-ui.pos-reference[data-current-page] #page-checkout.table-service .bill-meta{margin:0 18px 8px;padding:10px;font-size:14px;}
body#pos-ui.pos-reference[data-current-page] #page-checkout.table-service .bill-lines{margin:0 16px 10px;min-height:140px;}
body#pos-ui.pos-reference[data-current-page] #page-checkout.table-service .bill-totals{padding:10px 18px;gap:2px;}
body#pos-ui.pos-reference[data-current-page] #page-checkout.table-service .bt-row{margin:0;font-size:14px;}
body#pos-ui.pos-reference[data-current-page] #page-checkout.table-service .bt-row.grand{padding-top:6px;margin-top:4px;}
body#pos-ui.pos-reference[data-current-page] #page-checkout.table-service .table-bill-foot{padding:12px 16px;}

body#pos-ui.pos-reference[data-current-page] #page-checkout.table-service .bt-row.grand .mono{font-size:28px!important;line-height:1.3;}

/* Bill details: rows own their full content height; prices never spill into another dish. */
body#pos-ui.pos-reference[data-current-page] #page-checkout .bill-lines{padding:4px 2px 12px;gap:8px;}
body#pos-ui.pos-reference[data-current-page] #page-checkout .bill-line{display:grid;grid-template-columns:minmax(0,1fr) 38px minmax(76px,auto);align-items:start;justify-content:initial;gap:6px 10px;flex:0 0 auto;min-height:70px;box-sizing:border-box;padding:14px 12px;margin:0;border:1px solid #e5ebf2;border-radius:10px;background:#fff;}
body#pos-ui.pos-reference[data-current-page] #page-checkout .bill-line.bill-selected{background:#eff6ff;border-color:#9ec4ed;box-shadow:inset 3px 0 #397fc6;}
body#pos-ui.pos-reference[data-current-page] #page-checkout .bl-description{min-width:0;}
body#pos-ui.pos-reference[data-current-page] #page-checkout .bl-name{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:16px;font-weight:600;line-height:1.55;}
body#pos-ui.pos-reference[data-current-page] #page-checkout .bl-title{overflow-wrap:anywhere;}
body#pos-ui.pos-reference[data-current-page] #page-checkout .line-tag{display:inline-block;padding:2px 6px;border-radius:5px;background:#fff1db;color:#976215;font-size:11px;line-height:1.5;white-space:nowrap;}
body#pos-ui.pos-reference[data-current-page] #page-checkout .bl-mods{font-size:12px;line-height:1.6;color:#7a889a;margin-top:4px;}
body#pos-ui.pos-reference[data-current-page] #page-checkout .bl-mods:empty{display:none;}
body#pos-ui.pos-reference[data-current-page] #page-checkout .bl-qty{margin:2px 0 0;text-align:center;font-size:14px;font-weight:500;line-height:24px;color:#74849a;white-space:nowrap;}
body#pos-ui.pos-reference[data-current-page] #page-checkout .bl-amt{display:flex;flex-direction:column;align-items:flex-end;gap:3px;line-height:24px;white-space:nowrap;}
body#pos-ui.pos-reference[data-current-page] #page-checkout .bl-current{font-size:17px;font-weight:700;color:#243a52;}
body#pos-ui.pos-reference[data-current-page] #page-checkout .bl-amt s{font-size:12px;line-height:18px;font-weight:400;color:#94a0ae;}
body#pos-ui.pos-reference[data-current-page] #page-checkout .bill-service-tag{grid-column:1 / -1;margin:0;font-size:12px;line-height:18px;color:#7b8ca2;}
body#pos-ui.pos-reference[data-current-page] #page-checkout .bill-selection-bar{padding:4px 18px 10px;min-height:32px;border-bottom:0;font-size:12px;color:#8492a4;}
body#pos-ui.pos-reference[data-current-page] #page-checkout .bill-selection-bar .btn{height:48px!important;border-radius:8px;}
body#pos-ui.pos-reference[data-current-page] #page-checkout .table-bill-actions{gap:6px;padding:8px;background:#f6f9fd;border-color:#e3ebf4;border-radius:12px;}
body#pos-ui.pos-reference[data-current-page] #page-checkout .table-bill-actions .btn{display:flex;align-items:center;justify-content:center;margin:0;min-height:48px!important;height:48px!important;border-radius:8px!important;border:1px solid #dce6f1;background:#fff;color:#46627f;box-shadow:none;font-weight:500;line-height:1.3;font-size:14px!important;padding:6px!important;}
body#pos-ui.pos-reference[data-current-page] #page-checkout .table-bill-actions .btn:disabled{background:#f4f6f9;color:#a6afbb;border-color:#e6eaf0;opacity:1;}
body#pos-ui.pos-reference[data-current-page] #page-checkout .table-bill-actions .danger{background:#fff3f2;color:#c75750;border-color:#f1d9d6;}
body#pos-ui .bill-kitchen-pair{display:grid;grid-template-columns:1fr 1fr;gap:4px;flex:0 0 auto;}
body#pos-ui.pos-reference[data-current-page] #page-checkout .table-bill-foot{grid-template-columns:1fr 1fr;gap:10px;background:#fff;}
body#pos-ui.pos-reference[data-current-page] #page-checkout .table-bill-foot .btn{height:56px!important;min-height:56px!important;border-radius:10px!important;display:flex;align-items:center;justify-content:center;font-size:16px!important;line-height:1.3;padding:8px!important;white-space:nowrap;}
@media(min-width:950px){body#pos-ui.pos-reference[data-current-page] #page-checkout.table-service .checkout-wrap{grid-template-columns:minmax(250px,1.12fr) 120px minmax(280px,1.2fr) minmax(230px,1fr);gap:10px;}}

/* Terminal density: shared hierarchy across business pages and dialogs.
   This layer deliberately does not select the input-method panel or change state visibility. */
@media(min-width:950px){
 body#pos-ui.pos-reference[data-current-page]{--pos-side:240px;--ui-text-size:16px;--ui-title-size:22px;--ui-button-font:16px;--ui-action-font:18px;--ui-price-size:28px;}
 body#pos-ui.pos-reference[data-current-page] .page h1{font-size:24px;line-height:1.35;}
 body#pos-ui.pos-reference[data-current-page] .page h2{font-size:21px;line-height:1.4;}
 body#pos-ui.pos-reference[data-current-page] :-webkit-any(.page,.modal) .btn{font-size:16px!important;line-height:1.35!important;padding:10px 16px;}
 body#pos-ui.pos-reference[data-current-page] :-webkit-any(.page,.modal) .btn.primary{font-size:18px!important;}
 body#pos-ui.pos-reference[data-current-page] .page .btn svg{width:20px;height:20px;flex:0 0 20px;}
 body#pos-ui.pos-reference[data-current-page] :-webkit-any(.page,.modal) :-webkit-any(input,select,textarea){font-size:16px;line-height:1.5;}
 body#pos-ui.pos-reference[data-current-page] .page :-webkit-any(.page-head,.feature-toolbar){padding:18px 24px;gap:16px;}
 body#pos-ui.pos-reference[data-current-page] .page :-webkit-any(.orders-table,.data-table,.feature-table,.practice-table) :-webkit-any(th,td){font-size:16px;line-height:1.5;padding:14px 18px;}
 body#pos-ui.pos-reference[data-current-page] .page :-webkit-any(.orders-filters,.member-search,.feature-filter-bar){gap:12px;align-items:flex-end;}
 body#pos-ui.pos-reference[data-current-page] #page-tables .tables-side{gap:14px;padding:14px 12px;}
 body#pos-ui.pos-reference[data-current-page] #page-tables .status-item{min-height:56px;font-size:19px!important;padding:10px 12px;gap:12px;}
 body#pos-ui.pos-reference[data-current-page] #page-tables .status-item .count{font-size:18px;font-weight:600;}
 body#pos-ui.pos-reference[data-current-page] #page-tables .tables-summary{padding:16px;gap:14px;}
 body#pos-ui.pos-reference[data-current-page] #page-tables .tables-summary span{font-size:14px;}
 body#pos-ui.pos-reference[data-current-page] #page-tables .tables-summary strong{font-size:26px;line-height:1.4;}
 body#pos-ui.pos-reference[data-current-page] #page-tables .ops-stack .btn{height:52px!important;font-size:17px!important;}
 body#pos-ui.pos-reference[data-current-page] #page-tables .table-tools{min-height:76px;padding:12px 18px;}
 body#pos-ui.pos-reference[data-current-page] #page-tables .floor-tab{font-size:18px!important;height:50px!important;padding:10px 24px;}
 body#pos-ui.pos-reference[data-current-page] #page-tables .table-card .meta{font-size:15px;line-height:1.5;}
 body#pos-ui.pos-reference[data-current-page] #page-order.active{grid-template-columns:clamp(320px,27vw,420px) 136px minmax(0,1fr);gap:8px;}
 body#pos-ui.pos-reference[data-current-page] #page-order .cart-head{padding:20px;gap:10px;}
 body#pos-ui.pos-reference[data-current-page] #page-order .table-tag{font-size:22px;font-weight:600;}
 body#pos-ui.pos-reference[data-current-page] #page-order .covers{font-size:15px;}
 body#pos-ui.pos-reference[data-current-page] #page-order .cart-item{padding:16px 18px;}
 body#pos-ui.pos-reference[data-current-page] #page-order .ci-name{font-size:18px;font-weight:600;line-height:1.5;}
 body#pos-ui.pos-reference[data-current-page] #page-order .ci-price{font-size:18px;font-weight:600;}
 body#pos-ui.pos-reference[data-current-page] #page-order .cart-foot{padding:16px;}
 body#pos-ui.pos-reference[data-current-page] #page-order .cart-sum{margin-bottom:14px;}
 body#pos-ui.pos-reference[data-current-page] #page-order .cart-actions .btn{height:64px!important;min-height:64px!important;min-block-size:64px!important;font-size:20px!important;white-space:nowrap;}
 body#pos-ui.pos-reference[data-current-page] #page-order .terminal-quick-pay button{white-space:nowrap;font-size:15px!important;padding:8px;}
 body#pos-ui.pos-reference[data-current-page] #page-order .line-ops{padding:10px 6px;gap:8px;}
 body#pos-ui.pos-reference[data-current-page] #page-order .line-ops>.btn{height:52px!important;min-height:52px!important;font-size:15px!important;padding:8px 6px;display:flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;}
 body#pos-ui.pos-reference[data-current-page] #page-order .line-ops-target{min-height:32px;font-size:12px;line-height:1.5;}
 body#pos-ui.pos-reference[data-current-page] #page-order #lineQtyVal{min-height:42px;font-size:24px;}
 body#pos-ui.pos-reference[data-current-page] #page-order .dish-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px;padding:18px;}
 body#pos-ui.pos-reference[data-current-page] #page-order .dish-card{min-height:184px;padding:20px;gap:10px;}
 body#pos-ui.pos-reference[data-current-page] #page-order .dish-card .d-name{font-size:21px;line-height:1.45;overflow-wrap:anywhere;}
 body#pos-ui.pos-reference[data-current-page] #page-order .dish-card .d-tag{font-size:14px;line-height:1.5;}
 body#pos-ui.pos-reference[data-current-page] #page-order .dish-card .d-price{font-size:23px;line-height:1.3;}
 body#pos-ui.pos-reference[data-current-page] #page-order .dish-card.pos-custom-dish{font-size:20px!important;}
 body#pos-ui.pos-reference[data-current-page] #page-checkout .checkout-wrap{grid-template-columns:minmax(300px,1fr) minmax(360px,1.25fr) minmax(300px,1fr);gap:16px;}
 body#pos-ui.pos-reference[data-current-page] #page-checkout.table-service .checkout-wrap{grid-template-columns:minmax(280px,1fr) 136px minmax(310px,1.15fr) minmax(280px,1fr);gap:12px;}
 body#pos-ui.pos-reference[data-current-page] #page-checkout .table-bill-actions .btn{padding:8px 6px!important;font-size:15px!important;white-space:nowrap;}
 body#pos-ui.pos-reference[data-current-page] #page-checkout .table-bill-foot .btn{font-size:16px!important;padding:8px!important;}
 body#pos-ui.pos-reference[data-current-page] #page-checkout .bl-name{font-size:17px;}
 body#pos-ui.pos-reference[data-current-page] #page-checkout .bl-mods{font-size:13px;}
 body#pos-ui.pos-reference[data-current-page] #page-checkout .bl-current{font-size:18px;}
 body#pos-ui.pos-reference[data-current-page] #page-checkout .pay-method{font-size:18px!important;min-height:100px!important;height:auto!important;overflow-wrap:anywhere;}
 body#pos-ui.pos-reference[data-current-page] #page-checkout .pay-method svg{width:32px;height:32px;}
 body#pos-ui.pos-reference[data-current-page] #page-checkout :-webkit-any(.checkout-discounts,.checkout-payments,.checkout-settlement){padding:22px;}
 body#pos-ui.pos-reference[data-current-page] #page-checkout .sb-row{font-size:17px;}
 body#pos-ui.pos-reference[data-current-page] #page-checkout #payAmount{font-size:38px;}
 body#pos-ui.pos-reference[data-current-page] #page-products .prod-cat-panel,
 body#pos-ui.pos-reference[data-current-page] #page-reports .report-nav{width:240px;}
 body#pos-ui.pos-reference[data-current-page] #page-products .prod-cat-head{height:72px;font-size:20px;padding:20px;}
 body#pos-ui.pos-reference[data-current-page] #page-products .prod-cat-item{min-height:64px;padding:16px 20px;font-size:18px!important;}
 body#pos-ui.pos-reference[data-current-page] #page-products #productsBody{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;}
 body#pos-ui.pos-reference[data-current-page] #page-products #productsBody tr{min-height:224px;padding:20px;}
 body#pos-ui.pos-reference[data-current-page] #page-products .prod-card-actions .btn{font-size:15px!important;padding:8px 10px;}
 body#pos-ui.pos-reference[data-current-page] #page-members .member-tabs .filter-pill{font-size:18px!important;height:56px!important;}
 body#pos-ui.pos-reference[data-current-page] #page-members .member-search :-webkit-any(label,input){font-size:16px;}
 body#pos-ui.pos-reference[data-current-page] :-webkit-any(.member-overview,.report-kpis) .k-label{font-size:15px;}
 body#pos-ui.pos-reference[data-current-page] :-webkit-any(.member-overview,.report-kpis) .k-value{font-size:28px;line-height:1.4;}
 body#pos-ui.pos-reference[data-current-page] :-webkit-any(.member-overview,.report-kpis) .k-sub{font-size:13px;}
 body#pos-ui.pos-reference[data-current-page] #page-reports .report-nav-btn{min-height:68px;font-size:18px!important;padding:18px 20px;text-align:left;}
 body#pos-ui.pos-reference[data-current-page] #page-settings .pos-settings-nav button{min-height:82px;padding:18px 20px;gap:6px;align-items:flex-start;text-align:left;}
 body#pos-ui.pos-reference[data-current-page] #page-settings .pos-settings-nav strong{font-size:18px;font-weight:600;}
 body#pos-ui.pos-reference[data-current-page] #page-settings .pos-settings-nav span{font-size:13px;line-height:1.5;}
 body#pos-ui.pos-reference[data-current-page] #page-settings .set-card{padding:24px;}
 body#pos-ui.pos-reference[data-current-page] #page-settings .set-card h3{font-size:20px;}
 body#pos-ui.pos-reference[data-current-page] #page-settings .set-card :-webkit-any(p,label,small,span,strong){font-size:16px;line-height:1.6;}
 body#pos-ui.pos-reference[data-current-page] #page-more.active{padding:32px 48px;}
 body#pos-ui.pos-reference[data-current-page] .pos-more-panel{max-width:1500px;margin:0 auto;padding:28px;}
 body#pos-ui.pos-reference[data-current-page] .pos-launchers{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:24px 18px;}
 body#pos-ui.pos-reference[data-current-page] .pos-launcher{min-height:146px!important;font-size:18px!important;gap:12px;}
 body#pos-ui.pos-reference[data-current-page] .pos-launcher-icon{width:88px;height:88px;border-radius:22px;}
 body#pos-ui.pos-reference[data-current-page] .feature-page{padding:24px;}
 body#pos-ui.pos-reference[data-current-page] .feature-card{padding:24px;}
 body#pos-ui.pos-reference[data-current-page] .feature-toolbar{padding:0 0 18px;}
 body#pos-ui.pos-reference[data-current-page] .feature-tabs button{font-size:17px;min-height:52px;padding:10px 20px;}
 body#pos-ui.pos-reference[data-current-page] :-webkit-any(dialog,.modal) .modal-head{padding:20px 24px;}
 body#pos-ui.pos-reference[data-current-page] :-webkit-any(dialog,.modal) .modal-head h2{font-size:22px;line-height:1.4;}
 body#pos-ui.pos-reference[data-current-page] :-webkit-any(dialog,.modal) .modal-body{padding:22px 24px;}
 body#pos-ui.pos-reference[data-current-page] :-webkit-any(dialog,.modal) .modal-foot{padding:16px 24px;gap:12px;}
 body#pos-ui.pos-reference[data-current-page] :-webkit-any(dialog,.modal) .modal-foot .btn{min-width:100px;}
}
@media(min-width:950px) and (max-width:1199px){
 body#pos-ui.pos-reference[data-current-page]{--pos-side:210px;}
 body#pos-ui.pos-reference[data-current-page] #page-order.active{grid-template-columns:310px 120px minmax(0,1fr);}
 body#pos-ui.pos-reference[data-current-page] #page-order .dish-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px;gap:12px;}
 body#pos-ui.pos-reference[data-current-page] #page-checkout .checkout-wrap{grid-template-columns:minmax(240px,1fr) minmax(280px,1.15fr) minmax(240px,1fr);gap:10px;}
 body#pos-ui.pos-reference[data-current-page] #page-checkout.table-service .checkout-wrap{grid-template-columns:minmax(220px,1fr) 112px minmax(230px,1.1fr) minmax(210px,1fr);gap:8px;}
 body#pos-ui.pos-reference[data-current-page] #page-checkout .table-bill-actions .btn{font-size:13px!important;}
 body#pos-ui.pos-reference[data-current-page] #page-checkout :-webkit-any(.checkout-discounts,.checkout-payments,.checkout-settlement){padding:16px;}
 body#pos-ui.pos-reference[data-current-page] #page-products .prod-cat-panel,body#pos-ui.pos-reference[data-current-page] #page-reports .report-nav{width:210px;}
}

@media(min-width:950px){
 body#pos-ui.pos-reference[data-current-page] #page-settings.active{grid-template-columns:240px minmax(0,1fr);}
 body#pos-ui.pos-reference[data-current-page] #page-settings .pos-settings-main>.set-card{max-width:1200px;}
}

@media(min-width:950px) and (max-width:1399px){
 body#pos-ui.pos-reference[data-current-page] #page-checkout .pay-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
 body#pos-ui.pos-reference[data-current-page] #page-checkout .pay-method{font-size:16px!important;padding:12px 8px;}
}

/* Practice settings: compact visual checks inside generous touch rows. */
body#pos-ui.pos-reference[data-current-page] .practice-dialog input[type=checkbox]{
 -webkit-appearance:none;box-sizing:border-box;display:inline-block;
 width:22px!important;height:22px!important;min-width:22px!important;min-height:22px!important;
 min-inline-size:22px!important;min-block-size:22px!important;max-width:22px;max-height:22px;
 flex:0 0 22px;margin:0;padding:0;border:2px solid #c8b79e;border-radius:6px;
 background-color:#fff;background-position:center;background-repeat:no-repeat;background-size:16px 16px;
 vertical-align:middle;transform:none;cursor:pointer;box-shadow:none;
}
body#pos-ui.pos-reference[data-current-page] .practice-dialog input[type=checkbox]:checked{
 border-color:#aa641c;background-color:#aa641c;
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m4 10 4 4 8-8' fill='none' stroke='white' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
body#pos-ui.pos-reference[data-current-page] .practice-dialog input[type=checkbox]:focus{outline:2px solid #aa641c;outline-offset:3px;}
body#pos-ui.pos-reference[data-current-page] .practice-dialog input[type=checkbox]:disabled{opacity:.45;cursor:default;}
body#pos-ui.pos-reference[data-current-page] .practice-dialog .practice-check-row{
 display:inline-flex;align-items:center;flex-wrap:nowrap;gap:12px;min-height:48px;margin:0;
 padding:10px 14px;border:1px solid #e8dfd2;border-radius:10px;background:#fcf9f4;
 color:#634527;font-size:16px;line-height:24px;cursor:pointer;box-sizing:border-box;
}
body#pos-ui.pos-reference[data-current-page] .practice-dialog .practice-products{gap:12px;}
body#pos-ui.pos-reference[data-current-page] .practice-dialog .practice-products label{
 min-height:56px;padding:12px 14px;gap:12px;border:1px solid #e8dfd2;border-radius:10px;
 background:#fcf9f4;color:#34445a;font-size:16px;line-height:24px;cursor:pointer;overflow-wrap:anywhere;
}
body#pos-ui.pos-reference[data-current-page] .practice-dialog .practice-products small{font-size:13px;white-space:nowrap;color:#8b7c69;flex:0 0 auto;}
/* Electronic scale page and explicit add-method dialog. */
body#pos-ui.pos-reference[data-current-page] #scaleDialog { width:min(720px,calc(100vw - 48px)); max-height:calc(100vh - 48px); padding:0; border:1px solid #dce5f1; border-radius:24px; color:#14263e; background:#fff; overflow:auto; box-shadow:0 24px 80px #17334c26; }
body#pos-ui.pos-reference[data-current-page] #scaleDialog::backdrop { background:#18304c66; }
body#pos-ui.pos-reference[data-current-page] #scaleDialog .scale-dialog-head { display:flex; align-items:center; justify-content:space-between; padding:20px 28px; border-bottom:1px solid #e0e7f0; }
body#pos-ui.pos-reference[data-current-page] #scaleDialogTitle { margin:0; font-size:26px; }
body#pos-ui.pos-reference[data-current-page] #scaleClose { min-height:48px!important; padding:8px 24px; border-radius:12px; }
body#pos-ui.pos-reference[data-current-page] #scaleDialog .scale-settings { width:100%; max-width:1440px; margin:0 auto; color:#14263e; }
body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-card { display:flex; flex-direction:column; min-height:0; box-sizing:border-box; background:#fff; border:0; border-radius:0; padding:22px 30px 0; box-shadow:0 6px 24px #19395c08; }
body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-card-header { display:flex; align-items:center; gap:22px; padding:0 10px 20px; border-bottom:1px solid #e0e7f0; }
body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-device-icon { display:grid; place-items:center; width:72px; height:72px; border-radius:20px; background:#e6f1ff; flex:none; }
body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-device-icon img { width:44px; height:44px; opacity:.8; }
body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-card-header h2 { font-size:32px; font-weight:720; margin:0; }
body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-connection { margin-left:auto; font-size:18px; padding:9px 18px; border-radius:30px; background:#eef1f5; color:#637186; white-space:nowrap; }
body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-connection[data-connected="true"] { color:#178043; background:#edf9ef; }
body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-reading { flex:1; display:flex; flex-direction:column; justify-content:center; text-align:center; padding:26px 0 28px; }
body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-reading > p { margin:0 0 12px; color:#657288; font-size:22px; }
body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-number { display:flex; justify-content:center; align-items:baseline; gap:14px; font-variant-numeric:tabular-nums; white-space:nowrap; line-height:1.2; margin:8px 0 4px; }
body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-number strong { font-size:92px; font-weight:750; letter-spacing:-3px; }
body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-number span { font-size:38px; font-weight:650; }
body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-reading-state { min-height:32px; display:flex; align-items:center; justify-content:center; gap:10px; font-size:22px; color:#657288; }
body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-reading-state img { width:28px; height:28px; }
body#pos-ui.pos-reference[data-current-page] #scalePanel #scaleState[data-stable="true"] { color:#188044; }
body#pos-ui.pos-reference[data-current-page] #scaleDialog .scale-actions { display:grid; grid-template-columns:1fr 1fr; gap:24px; padding:0 10px 26px; }
body#pos-ui.pos-reference[data-current-page] #scaleDialog .scale-actions button { min-height:72px!important; min-block-size:72px!important; height:72px!important; border:2px solid #3c6ba5; border-radius:18px; display:flex; align-items:center; justify-content:center; gap:18px; font-size:24px!important; font-weight:650!important; color:#37669f; background:#fff; cursor:pointer; }
body#pos-ui.pos-reference[data-current-page] #scaleDialog .scale-actions button:first-child { background:#416fa8; color:#fff; }
body#pos-ui.pos-reference[data-current-page] #scaleDialog .scale-actions button img { width:30px; height:30px; opacity:.75; }
body#pos-ui.pos-reference[data-current-page] #scaleDialog .scale-actions button:first-child img { filter:invert(1); opacity:1; }
body#pos-ui.pos-reference[data-current-page] #scaleDialog .scale-actions button:disabled { opacity:.55; cursor:wait; }
body#pos-ui.pos-reference[data-current-page] #scaleDialog .scale-actions button:focus { outline:3px solid #8fbaed; outline-offset:4px; }
body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-footer { display:flex; justify-content:center; align-items:center; gap:12px; border-top:1px solid #e0e7f0; min-height:64px; color:#657288; font-size:18px; }
body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-footer img { width:24px; height:24px; opacity:.5; }
body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-message { margin:0 10px 20px; padding:14px 18px; background:#f4f7fb; border-radius:10px; color:#657288; font-size:17px; }
body#pos-ui.pos-reference[data-current-page] .scale-add-dialog { width:min(680px,calc(100vw - 40px)); max-height:90vh; padding:0; border:1px solid #dce5f1; border-radius:20px; color:#14263e; }
body#pos-ui.pos-reference[data-current-page] .scale-add-dialog::backdrop { background:#18304c66; }
body#pos-ui.pos-reference[data-current-page] .scale-add-dialog header { padding:24px 28px; border-bottom:1px solid #e0e7f0; }
body#pos-ui.pos-reference[data-current-page] .scale-add-dialog h2 { margin:0; font-size:24px; }
body#pos-ui.pos-reference[data-current-page] .scale-add-fields { padding:24px 28px; }
body#pos-ui.pos-reference[data-current-page] .scale-add-fields label { display:grid; gap:10px; margin-bottom:20px; font-size:18px; }
body#pos-ui.pos-reference[data-current-page] .scale-add-fields select { width:100%; min-height:52px; font-size:18px; border:1px solid #cfdced; border-radius:10px; padding:8px 12px; color:#243d59; background:#fff; }
body#pos-ui.pos-reference[data-current-page] #scaleParams { display:grid; grid-template-columns:1fr 1fr; gap:0 20px; }
body#pos-ui.pos-reference[data-current-page] #scaleAddError { font-size:16px; color:#805d32; min-height:22px; margin:0; }
body#pos-ui.pos-reference[data-current-page] .scale-add-dialog footer { display:flex; justify-content:flex-end; gap:14px; padding:20px 28px; border-top:1px solid #e0e7f0; }
body#pos-ui.pos-reference[data-current-page] .scale-add-dialog footer button { min-width:120px; min-height:52px; }
body#pos-ui.pos-reference[data-current-page] #scaleDialog .scale-settings [hidden], body#pos-ui.pos-reference[data-current-page] .scale-add-dialog [hidden] { display:none!important; }
@media (max-height:820px), (max-width:1250px) {
 body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-card { padding:18px 24px 0; min-height:0; }
 body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-card-header { padding-bottom:16px; gap:16px; }
 body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-device-icon { width:56px; height:56px; border-radius:15px; }
 body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-device-icon img { width:34px; height:34px; }
 body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-card-header h2 { font-size:24px; }
 body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-reading { padding:20px 0; }
 body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-number strong { font-size:76px; }
 body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-number span { font-size:30px; }
 body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-reading > p, body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-reading-state { font-size:19px; }
 body#pos-ui.pos-reference[data-current-page] #scaleDialog .scale-actions { gap:18px; padding-bottom:20px; }
 body#pos-ui.pos-reference[data-current-page] #scaleDialog .scale-actions button { min-height:64px!important; min-block-size:64px!important; height:64px!important; font-size:23px!important; }
 body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-footer { min-height:52px; }
}
@media (max-width:700px) {
 body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-card { padding:16px 16px 0; }
 body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-card-header { gap:12px; padding-left:0; padding-right:0; }
 body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-card-header h2 { font-size:20px; }
 body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-connection { font-size:15px; padding:7px 10px; }
 body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-number strong { font-size:64px; }
 body#pos-ui.pos-reference[data-current-page] #scaleDialog .scale-actions { padding-left:0; padding-right:0; gap:12px; }
 body#pos-ui.pos-reference[data-current-page] #scaleDialog .scale-actions button { font-size:18px!important; gap:8px; }
 body#pos-ui.pos-reference[data-current-page] #scaleDialog .scale-actions button img { width:24px; height:24px; }
}

body#pos-ui.pos-reference[data-current-page] #scaleAddDialog #scaleConfirm { background:#416fa8; color:#fff; }

body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-device-icon img,
body#pos-ui.pos-reference[data-current-page] #scaleDialog #scaleManual img { filter:invert(39%) sepia(37%) saturate(925%) hue-rotate(174deg) brightness(90%); opacity:1; }
body#pos-ui.pos-reference[data-current-page] #scalePanel #scaleStableIcon { filter:invert(38%) sepia(59%) saturate(782%) hue-rotate(94deg) brightness(89%); }

body#pos-ui.pos-reference[data-current-page] #scaleResultDialog { width:min(520px,calc(100vw - 48px)); box-sizing:border-box; padding:36px; border:1px solid #e0e7f0; border-radius:24px; text-align:center; color:#14263e; background:#fff; box-shadow:0 24px 80px #17334c26; }
body#pos-ui.pos-reference[data-current-page] #scaleResultDialog::backdrop { background:#18304c66; }
body#pos-ui.pos-reference[data-current-page] #scaleResultIcon { display:flex; align-items:center; justify-content:center; margin:0 auto 22px; width:76px; height:76px; border-radius:24px; font-size:42px; font-weight:600; color:#b66c22; background:#fff3df; }
body#pos-ui.pos-reference[data-current-page] #scaleResultDialog[data-success="true"] #scaleResultIcon { color:#16856c; background:#e8f7f1; }
body#pos-ui.pos-reference[data-current-page] #scaleResultTitle { margin:0 0 14px; font-size:26px; line-height:1.4; }
body#pos-ui.pos-reference[data-current-page] #scaleResultMessage { margin:0; font-size:18px; color:#617086; line-height:1.7; overflow-wrap:break-word; }
body#pos-ui.pos-reference[data-current-page] #scaleResultDetail { margin:22px 0 26px; padding:16px; border-radius:12px; font-size:17px; color:#617086; background:#f4f7fb; }
body#pos-ui.pos-reference[data-current-page] #scaleResultDialog[data-success="true"] #scaleResultDetail { font-size:32px; font-weight:650; color:#243d59; font-variant-numeric:tabular-nums; }
body#pos-ui.pos-reference[data-current-page] #scaleResultDone { width:100%; min-height:58px!important; height:auto!important; border:0; border-radius:12px; background:#416fa8!important; color:#fff!important; font-size:21px!important; font-weight:600; }

body#pos-ui.pos-reference[data-current-page] #scalePanel { padding:28px; min-height:440px; }
body#pos-ui.pos-reference[data-current-page] #scalePanel [hidden] { display:none!important; }
body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-page-heading h3 { margin:0; font-size:24px; color:#243d59; }
body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-empty { min-height:360px; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:24px; box-sizing:border-box; }
body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-empty-icon { width:112px; height:112px; display:flex; align-items:center; justify-content:center; border-radius:32px; background:#edf4ff; box-shadow:0 0 0 14px #f7faff; }
body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-empty-icon img { width:62px; height:62px; filter:invert(39%) sepia(37%) saturate(925%) hue-rotate(174deg) brightness(90%); }
body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-empty h2 { margin:32px 0 26px; color:#53677f; font-size:24px; font-weight:500; }
body#pos-ui.pos-reference[data-current-page] #scalePanel #scaleAddOpen { display:flex; align-items:center; justify-content:center; gap:10px; min-height:56px!important; height:auto!important; padding:12px 28px; background:#416fa8; color:#fff; border:0; border-radius:12px; font-size:20px; }
body#pos-ui.pos-reference[data-current-page] #scaleAddOpen img { width:24px; height:24px; filter:invert(1); }
body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-page-actions { display:flex; justify-content:center; padding-bottom:24px; }
body#pos-ui.pos-reference[data-current-page] #scaleChange { min-height:50px!important; padding:10px 24px; border-radius:12px; }
body#pos-ui.pos-reference[data-current-page] #scalePanel #scaleValue { font-size:76px; line-height:1.2; }
body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-number > span { font-size:30px; line-height:1.2; }
body#pos-ui.pos-reference[data-current-page] #scaleDialog .scale-actions { padding:32px; margin:0; gap:20px; }
body#pos-ui.pos-reference[data-current-page] #scaleDialog .scale-actions button { flex-direction:column; gap:16px; height:160px!important; min-height:160px!important; min-block-size:160px!important; border-width:1px; background:#edf4ff; color:#37669f; }
body#pos-ui.pos-reference[data-current-page] #scaleDialog .scale-actions button:first-child img { filter:invert(39%) sepia(37%) saturate(925%) hue-rotate(174deg) brightness(90%); }
body#pos-ui.pos-reference[data-current-page] #scaleDialog .scale-actions button:last-child { background:#fff; border-color:#cfdced; }
@media(max-width:700px) {
 body#pos-ui.pos-reference[data-current-page] #scalePanel { padding:18px; min-height:380px; }
 body#pos-ui.pos-reference[data-current-page] #scalePanel .scale-empty { min-height:320px; padding:16px; }
 body#pos-ui.pos-reference[data-current-page] #scaleDialog .scale-actions { padding:24px 18px; gap:12px; }
 body#pos-ui.pos-reference[data-current-page] #scaleDialog .scale-actions button { height:128px!important; min-height:128px!important; min-block-size:128px!important; }
}
.channel-payment-dialog{width:min(620px,92vw);max-height:92vh;padding:0;border:1px solid #dbe6f1;border-radius:22px;box-shadow:0 24px 80px #193a6140;color:#17304b;background:#fff}
.channel-payment-dialog::backdrop{background:#19324e66}
.channel-payment-dialog header{display:flex;align-items:center;justify-content:space-between;padding:24px 28px;border-bottom:1px solid #e7eef5;gap:20px}
.channel-payment-dialog h2{font-size:26px;margin:6px 0 0;line-height:1.3}
.channel-payment-eyebrow{color:#71849a;font-size:14px}
.channel-payment-body{padding:26px 28px}
.channel-payment-total{display:flex;align-items:center;flex-direction:column;gap:10px;background:#f0f7ff;border-radius:16px;padding:26px 16px;margin-bottom:24px}
.channel-payment-total>span{color:#607c99;font-size:16px}.channel-payment-total strong{font-size:48px;color:#187bc1;line-height:1.2;font-variant-numeric:tabular-nums}.channel-payment-total small{font-size:13px;color:#7b8b9d;overflow-wrap:anywhere}
#channelPaymentInputBox label{display:block;font-size:17px;font-weight:600;margin-bottom:12px}
#channelPaymentInputBox input{width:100%;box-sizing:border-box;min-height:58px;padding:14px 16px;border:1.5px solid #cfdeed;border-radius:12px;font-size:21px;color:#17304b;letter-spacing:1px;background:#fff}
#channelPaymentInputBox input:focus{outline:3px solid #2d92dc22;border-color:#298aca}
#channelPaymentInputBox p{font-size:14px;color:#8291a3;margin:12px 0 16px}
#channelPaymentStatus{min-height:48px;display:flex;align-items:center;font-size:15px;line-height:1.6;color:#477090;overflow-wrap:anywhere}
.channel-payment-dialog footer{display:flex;justify-content:flex-end;gap:12px;border-top:1px solid #e7eef5;padding:20px 28px;background:#f9fbfe}
.channel-payment-dialog footer .btn{min-height:54px;padding:12px 24px;border-radius:12px;font-size:18px}.channel-payment-dialog footer .primary{min-width:190px}
@media(max-height:650px){.channel-payment-dialog header{padding:14px 24px}.channel-payment-body{padding:16px 24px}.channel-payment-total{padding:12px;margin-bottom:16px}.channel-payment-total strong{font-size:38px}.channel-payment-dialog footer{padding:14px 24px}}
