/* 门店现场作业端公共样式：核销入席 / 队列叫号 / 前台收银 / 叫号大屏 */

.ops-shell { min-height: 100vh; display: flex; flex-direction: column; background: var(--bg); }
.ops-top {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 11px 20px; background: var(--card); border-bottom: 1px solid var(--border);
  box-shadow: var(--shadow); position: sticky; top: 0; z-index: 30; flex-wrap: wrap;
}
.ops-seal {
  width: 38px; height: 38px; border-radius: 10px; color: #fff; flex: none;
  display: flex; align-items: center; justify-content: center; font-size: 20px;
  box-shadow: 0 3px 10px color-mix(in srgb, var(--brand) 30%, transparent);
}
.ops-name { font-family: var(--font-title); font-size: 17px; letter-spacing: 1px; }
.ops-body { flex: 1; padding: 18px 20px 40px; }

/* ---------- 扫码核销 ---------- */
.ck-box { display: grid; grid-template-columns: 1fr 340px; gap: 16px; }
.scan-input { height: 64px; font-size: 20px; letter-spacing: 2px; font-family: var(--font-num); }

/* ---------- 队列卡片 / 大号叫号 ---------- */
.queue-card {
  display: flex; align-items: center; gap: 12px; padding: 12px;
  border: 1px solid var(--border); border-radius: 10px; background: var(--bg-2);
}
.queue-card.calling { border-color: var(--brand); background: color-mix(in srgb, var(--brand) 6%, var(--bg-2)); }
.queue-card.seated { opacity: .62; }
.queue-no { font-family: var(--font-num); font-size: 22px; font-weight: 700; width: 64px; flex: none; }
.call-big {
  font-family: var(--font-num); font-size: 96px; line-height: 1; color: var(--brand);
  text-shadow: 0 4px 20px color-mix(in srgb, var(--brand) 22%, transparent);
}
.call-empty { font-family: var(--font-title); font-size: 30px; letter-spacing: 6px; color: var(--text-3); }

/* ---------- 分页（与经营报表一致） ---------- */
.ops-pager { display: flex; align-items: center; gap: 8px; padding: 12px 2px 2px; flex-wrap: wrap; }
.ops-pager .btn[disabled] { opacity: .4; cursor: not-allowed; }
.ops-pager .ops-size { width: 104px; height: 30px; font-size: 12px; }
.ops-table tbody tr.ops-click { cursor: pointer; }
.ops-table tbody tr.ops-click:hover { background: color-mix(in srgb, var(--brand) 6%, var(--bg-3)); }

/* ---------- 大屏 ---------- */
.screen-mode {
  position: fixed; inset: 0; background: #0E0A08; color: #F4E6C8; z-index: 500;
  display: none; flex-direction: column; align-items: center; justify-content: center; padding: 30px;
}
.screen-mode.on { display: flex; }
.screen-mode .big {
  font-family: var(--font-num); font-size: 160px; line-height: 1; color: #FFD700;
  text-shadow: 0 0 60px rgba(255, 215, 0, .45);
}
.screen-mode .next { display: flex; gap: 26px; margin-top: 26px; flex-wrap: wrap; justify-content: center; }
.screen-mode .next div {
  background: rgba(255, 255, 255, .08); padding: 14px 22px; border-radius: 12px;
  font-family: var(--font-num); font-size: 26px;
}

@media (max-width: 960px) {
  .ck-box { grid-template-columns: 1fr; }
  .call-big { font-size: 68px; }
  .screen-mode .big { font-size: 96px; }
  .ops-body { padding: 14px 12px 30px; }
}
