/* 开单结账2.0 · 纠偏版样式（C2/U2/E1 + 飞入 + 结算券/备注） */

/* —— 首页 —— */
.v2-home { background: #f5f5f5; }
.v2-home-hero {
  position: absolute; left: 0; top: 0; width: 390px; height: 160px;
  background: linear-gradient(180deg, #FF5A6A 0%, #F32F41 55%, #f5f5f5 100%);
  z-index: 1;
}
.v2-home-head {
  position: absolute; left: 16px; right: 16px; top: 62px; z-index: 2;
  display: flex; align-items: center; gap: 10px; color: #fff;
}
.v2-home-logo {
  width: 40px; height: 40px; border-radius: 50%; background: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: 14px; font-weight: 700; color: #F32F41;
}
.v2-home-meta .nm { font-size: 16px; font-weight: 600; line-height: 1.3; }
.v2-home-meta .sub { font-size: 12px; opacity: .9; margin-top: 2px; }
/* 两按钮下沿贴页面中线：844/2=422，按钮高88 → top=334 */
.v2-home-actions {
  position: absolute; left: 16px; right: 16px; top: 334px; z-index: 3;
  display: flex; gap: 12px;
}
.v2-home-btn {
  flex: 1; height: 88px; border: 0; border-radius: 14px; cursor: pointer;
  font-family: inherit; text-align: left; padding: 14px 14px 12px;
  box-shadow: 0 6px 16px rgba(0,0,0,.08);
}
.v2-home-btn.bill { background: linear-gradient(135deg, #FFE7D6 0%, #FFD4B8 100%); }
.v2-home-btn.card { background: linear-gradient(135deg, #FFE0E6 0%, #FFC9D4 100%); }
.v2-home-btn .t { font-size: 20px; font-weight: 700; color: #1a1a1a; }
.v2-home-btn .s { font-size: 12px; color: #666; margin-top: 4px; }
.v2-home-btn .ico {
  float: right; width: 36px; height: 36px; border-radius: 10px;
  background: rgba(255,255,255,.65); display: flex; align-items: center; justify-content: center;
  font-size: 18px;
}
.v2-home-hint {
  position: absolute; left: 16px; right: 16px; top: 438px; z-index: 2;
  font-size: 12px; color: #929292; line-height: 1.5;
}
.v2-home-tabs {
  position: absolute; left: 0; right: 0; bottom: 0; height: 56px;
  background: #fff; border-top: 1px solid #eee; z-index: 4;
  display: flex; align-items: center; justify-content: space-around;
  padding-bottom: 8px; pointer-events: none;
}
.v2-home-tabs .ti { flex: 1; text-align: center; font-size: 10px; color: #929292; }
.v2-home-tabs .ti.on { color: #F32F41; font-weight: 600; }
.v2-home-tabs .ti .ic { display: block; font-size: 18px; line-height: 22px; margin-bottom: 2px; }

/* —— 选顾客：取挂单右对齐 + 展开 #EFF0FF —— */
.pick-holds {
  position: absolute; left: 0; top: 103px; width: 390px; height: 40px;
  background: #fff; border-bottom: 1px solid #f0f0f0; z-index: 12;
  display: flex; align-items: center; justify-content: flex-end;
  padding: 0 16px; box-sizing: border-box;
}
.pick-holds button {
  display: inline-flex; align-items: center; gap: 6px;
  border: 0; background: transparent; padding: 0; cursor: pointer;
  font-family: inherit; font-size: 14px; color: #1a1a1a; font-weight: 500;
}
.pick-holds img { width: 16px; height: 16px; display: block; }
.pick-holds .n { color: #F32F41; }
#s4 .pick-list { top: 143px; }

.pick-row-wrap { background: #fff; border-bottom: 1px solid #f5f5f5; }
.pick-row-wrap .pick-row { border-bottom: 0; height: auto; min-height: 74px; }
.pick-row-actions {
  display: none; padding: 0 16px 12px 70px; gap: 10px; justify-content: flex-end;
}
.pick-row-wrap.is-open .pick-row-actions { display: flex; }
.pick-row-wrap.is-open,
.pick-row-wrap.is-open .pick-row,
.pick-row-wrap.is-open .pick-row-actions {
  background: #EFF0FF !important;
}
.pick-act {
  height: 34px; min-width: 84px; padding: 0 14px; border-radius: 8px;
  border: 0; font-family: inherit; font-size: 14px; font-weight: 500; cursor: pointer;
}
.pick-act.bill { background: #F32F41; color: #fff; }
.pick-act.quick { background: #FF8956; color: #fff; }

/* —— 开单页：demo 结构（无会员卡/快速消费入口） —— */
.v2-bill-body {
  position: absolute; left: 0; right: 0; top: 97px; bottom: 96px;
  overflow-y: auto; overflow-x: hidden; -webkit-overflow-scrolling: touch;
  background: #f7f7f7; z-index: 10;
}
.v2-bill .scroll.v2-legacy-hide { display: none !important; }

.v2-ccard {
  box-sizing: border-box; width: calc(100% - 32px); max-width: 358px;
  margin: 12px 16px 0; padding: 14px 16px; min-height: 84px; border-radius: 12px;
  position: relative; overflow: hidden;
  background: linear-gradient(180deg, #FFE6E6 0%, #FFFFFF 100%);
  box-shadow: 0 4px 8px rgba(0,0,0,.03), inset 0 1px 0 #fff;
  display: flex; flex-direction: column; align-items: stretch; gap: 0;
}
.v2-ccard__row {
  display: flex; align-items: center; gap: 12px; width: 100%; min-width: 0;
  cursor: default;
}
.v2-ccard__avatar {
  width: 44px; height: 44px; border-radius: 50%; object-fit: cover;
  flex-shrink: 0; background: #fff; cursor: pointer;
}
.v2-ccard__info { flex: 1; min-width: 0; cursor: pointer; }
.v2-ccard__name {
  font-size: 16px; font-weight: 500; color: #751616; line-height: 20px;
  display: flex; align-items: center; gap: 6px;
}
.v2-ccard__name-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v2-ccard__vip {
  width: 26px; height: 10px; display: block; flex-shrink: 0;
  object-fit: contain; object-position: left center;
}
.v2-ccard__sub { font-size: 12px; color: #751616; opacity: .7; margin-top: 4px; }
.v2-ccard__chev {
  width: 28px; height: 28px; border: 0; border-radius: 50%;
  background: rgba(255,255,255,.75); color: #751616; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  flex-shrink: 0; padding: 0; transition: transform .28s cubic-bezier(0.32, 0.72, 0, 1);
}
.v2-ccard__chev svg { width: 16px; height: 16px; display: block; }
.v2-ccard.is-open .v2-ccard__chev { transform: rotate(180deg); }
.v2-ccard__metrics {
  display: none; grid-template-columns: repeat(3, 1fr); gap: 4px;
  margin-top: 12px; padding-top: 10px;
  border-top: 0.5px solid rgba(117,22,22,.12);
}
.v2-ccard.is-open .v2-ccard__metrics { display: grid; }
.v2-ccard__metric { text-align: center; }
.v2-ccard__metric-val { font-size: 14px; font-weight: 500; color: #751616; font-family: var(--font-data); }
.v2-ccard__metric-label { font-size: 10px; color: #751616; opacity: .65; margin-top: 2px; }

/* 全页：黑卡改淡色（保留 gcard/mcard 显隐） */
.guest-card.v2-lite,
.member-card.v2-lite {
  position: relative !important; left: auto !important; top: auto !important;
  width: calc(100% - 32px) !important; max-width: 358px; height: auto !important;
  min-height: 84px; margin: 12px 16px 0 !important; padding: 14px 16px !important;
  border-radius: 12px; box-sizing: border-box; overflow: hidden;
  background: linear-gradient(180deg, #FFE6E6 0%, #FFFFFF 100%) !important;
  box-shadow: 0 4px 8px rgba(0,0,0,.03), inset 0 1px 0 #fff;
  z-index: 20;
  display: flex !important; flex-direction: column; align-items: stretch; gap: 0;
}
.screen .gcard.v2-lite, .screen .mcard.v2-lite {
  position: absolute !important; left: 12px !important; top: 107px !important;
  width: 366px !important; margin: 0 !important;
}
#s6 .gcard.v2-lite, #s6 .mcard.v2-lite,
#s7 .gcard.v2-lite, #s7 .mcard.v2-lite {
  position: relative !important; left: auto !important; top: auto !important;
  width: calc(100% - 32px) !important; margin: 12px 16px 0 !important;
}
.guest-card.v2-lite .btn,
.member-card.v2-lite .ops,
.member-card.v2-lite .cards,
.member-card.v2-lite .card-list { display: none !important; }

.v2-page-tabs {
  display: flex; height: 48px; background: #fff; margin-top: 12px;
  border-bottom: 0; flex-shrink: 0;
  border-radius: 12px 12px 0 0;
  overflow: hidden;
}
.v2-page-tabs button {
  flex: 1; border: 0; background: none; font-family: inherit; font-size: 16px;
  color: #929292; cursor: pointer; position: relative;
}
.v2-page-tabs button.on { color: #1a1a1a; font-weight: 500; }
.v2-page-tabs button.on::after {
  content: ''; position: absolute; left: 50%; bottom: 0; transform: translateX(-50%);
  width: 32px; height: 3px; border-radius: 2px; background: #F32F41;
}

.v2-group-bar { background: #fff; padding: 8px 12px 10px; flex-shrink: 0; }
.v2-group-seg {
  height: 32px; background: #F2F2F2; border-radius: 16px; padding: 2px; overflow: hidden;
}
.v2-group-scroll {
  display: flex; align-items: center; gap: 2px; height: 28px;
  overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch;
}
.v2-group-scroll::-webkit-scrollbar { display: none; }
.v2-group-tab {
  flex: 0 0 auto; height: 28px; padding: 0 12px; border: 0; border-radius: 14px;
  background: transparent; color: #6C7279; font-size: 13px; font-family: inherit;
  cursor: pointer; white-space: nowrap;
}
.v2-group-tab.on {
  background: #fff; color: #1a1a1a; font-weight: 600;
  box-shadow: 0 1px 2px rgba(0,0,0,.06);
}

.v2-catalog { background: #fff; padding: 0 16px 24px; min-height: 200px; }
.v2-cat-item { border-bottom: 1px solid rgba(0,0,0,.04); }
.v2-cat-item.is-open {
  background: #EFF0FF; margin: 0 -16px; padding: 0 16px;
}
.v2-cat-main {
  display: flex; align-items: center; gap: 12px; padding: 12px 0; min-height: 56px;
}
.v2-cat-info { flex: 1; min-width: 0; }
.v2-cat-name { font-size: 15px; font-weight: 500; color: #1a1a1a; line-height: 1.4; }
.v2-cat-price { font-size: 18px; color: #1a1a1a; margin-top: 4px; font-family: var(--font-data); }
.v2-cat-price .yen { font-size: 13px; }
.v2-cat-right { flex-shrink: 0; display: flex; align-items: center; min-width: 72px; justify-content: flex-end; }

/* 添加钮 → 红圆步进器（加减同为红色圆形，展开区不再另放步进器） */
.v2-round-step { display: inline-flex; align-items: center; gap: 8px; }
.v2-round-step button {
  width: 24px; height: 24px; border: none; border-radius: 50%;
  font-size: 16px; line-height: 1; cursor: pointer; font-family: inherit;
  display: inline-flex; align-items: center; justify-content: center;
  background: #F32F41; color: #fff; padding: 0;
}
.v2-round-step span { min-width: 20px; text-align: center; font-size: 16px; font-weight: 500; color: #1a1a1a; }
.v2-add-btn {
  width: 28px; height: 28px; border: none; border-radius: 50%;
  background: #F32F41; color: #fff;
  cursor: pointer; display: inline-flex; align-items: center; justify-content: center;
  padding: 0; margin: 0; line-height: 0; font-size: 0;
  font-family: inherit; flex-shrink: 0;
}
.v2-add-btn svg {
  width: 14px; height: 14px; display: block; pointer-events: none;
}
.v2-round-step button svg {
  width: 12px; height: 12px; display: block; pointer-events: none;
}

.v2-row-expand { padding: 0 0 14px; display: none; }
.v2-cat-item.is-open .v2-row-expand {
  display: block;
  animation: v2ExpandIn .36s cubic-bezier(0.32, 0.72, 0, 1) both;
}
@keyframes v2ExpandIn {
  from { opacity: 0; transform: translateY(-6px); }
  to { opacity: 1; transform: translateY(0); }
}
.v2-row-expand .erow {
  display: flex; align-items: center; justify-content: space-between;
  min-height: 40px; margin-bottom: 8px;
}
.v2-row-expand .elbl { font-size: 13px; color: #666; width: 72px; flex: none; }
.v2-row-expand .eprice {
  flex: 1; display: inline-flex; align-items: center; justify-content: flex-end; gap: 6px;
  text-align: right; border: 0; background: transparent; cursor: pointer;
  font-size: 18px; font-weight: 600; font-family: var(--font-data); color: #1a1a1a;
  padding: 4px 0;
}
.v2-row-expand .eprice-pen {
  width: 16px; height: 16px; color: #c7c7cc; display: inline-flex;
  align-items: center; justify-content: center; flex: none;
}
.v2-row-expand .eprice-pen svg { width: 14px; height: 14px; display: block; }
.v2-row-expand .efoot { display: flex; justify-content: flex-end; margin-top: 8px; }
.v2-orange-cart {
  width: 44px; height: 44px; border-radius: 10px; border: 0; background: #FF8956;
  color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center;
  transition: transform .2s cubic-bezier(0.32, 0.72, 0, 1);
}
.v2-orange-cart:active { transform: scale(.92); }
.v2-orange-cart svg { width: 22px; height: 22px; }

/* 员工槽位 */
.v2-slot-block { margin-top: 4px; margin-bottom: 4px; }
.v2-slot-block__head { font-size: 14px; font-weight: 500; color: #1a1a1a; margin-bottom: 8px; }
.v2-slot-row {
  display: flex; align-items: stretch; gap: 8px;
  overflow-x: auto; padding-bottom: 2px; scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.v2-slot-row::-webkit-scrollbar { display: none; }
.v2-slot {
  flex: 0 0 auto; min-width: 108px; max-width: 148px;
  border-radius: 12px; box-sizing: border-box;
  display: flex; align-items: center; gap: 8px;
  padding: 8px 10px; position: relative;
  font-family: inherit; text-align: left;
  transition: transform .2s cubic-bezier(0.32, 0.72, 0, 1), background .2s ease;
}
.v2-slot:active { transform: scale(.97); }
.v2-slot.is-empty {
  min-height: 56px; border: 1px dashed #D0D0D0; background: #FAFAFA;
  color: #929292; cursor: pointer; justify-content: center; flex-direction: column; gap: 2px;
}
.v2-slot__plus { width: 20px; height: 20px; color: #F32F41; display: flex; }
.v2-slot__plus svg { width: 20px; height: 20px; }
.v2-slot__hint { font-size: 11px; color: #929292; }
.v2-slot.is-filled {
  background: #fff; border: 1px solid #EFEFEF; cursor: pointer;
  box-shadow: 0 1px 3px rgba(0,0,0,.04);
}
.v2-slot__av {
  width: 32px; height: 32px; border-radius: 50%; object-fit: cover; flex: none; background: #eee;
}
.v2-slot__av--ph {
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 600; color: #fff; background: #F32F41;
}
.v2-slot__meta { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; padding-right: 14px; }
.v2-slot__name {
  font-size: 13px; font-weight: 600; color: #1a1a1a;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.v2-slot__sub {
  font-size: 11px; color: #929292;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.v2-slot__x {
  position: absolute; top: 4px; right: 4px;
  width: 18px; height: 18px; border: 0; border-radius: 50%;
  background: #F2F2F2; color: #666; font-size: 12px; line-height: 1;
  cursor: pointer; padding: 0; display: flex; align-items: center; justify-content: center;
}

/* 员工 sheet：普通底部弹出（可盖展开区），高度随内容、最高约 55% */
.v2-staff-sheet-mask {
  display: none; position: absolute; inset: 0;
  z-index: 60; background: rgba(0,0,0,.36);
  align-items: flex-end; justify-content: stretch;
}
.v2-staff-sheet-mask.show { display: flex; }
.v2-staff-sheet {
  width: 100%; max-height: 55%;
  background: #fff; border-radius: 16px 16px 0 0;
  display: flex; flex-direction: column; overflow: hidden;
  transform: translateY(100%);
  transition: transform .38s cubic-bezier(0.32, 0.72, 0, 1);
  box-shadow: 0 -8px 28px rgba(0,0,0,.12);
  flex: none;
}
.v2-staff-sheet-mask.is-in .v2-staff-sheet { transform: translateY(0); }
.v2-staff-sheet__grab {
  width: 36px; height: 5px; border-radius: 3px; background: #D8D8D8;
  margin: 8px auto 0; flex: none;
}
.v2-staff-sheet__hd {
  flex: none; padding: 10px 16px 12px; font-size: 16px; font-weight: 600;
  text-align: center; color: #1a1a1a; border-bottom: 1px solid #f0f0f0;
}
.v2-staff-sheet__bd {
  flex: 1 1 auto; min-height: 0; overflow-y: auto; -webkit-overflow-scrolling: touch;
  padding: 10px 12px calc(16px + env(safe-area-inset-bottom, 0px)); background: #FAFAFA;
}

/* 改价数字 sheet */
.v2-price-sheet-mask {
  display: none; position: absolute; inset: 0;
  z-index: 70; background: rgba(0,0,0,.36);
  align-items: flex-end; justify-content: stretch;
}
.v2-price-sheet-mask.show { display: flex; }
.v2-price-sheet {
  width: 100%; background: #fff; border-radius: 16px 16px 0 0;
  padding: 0 16px calc(12px + env(safe-area-inset-bottom, 0px));
  transform: translateY(100%);
  transition: transform .38s cubic-bezier(0.32, 0.72, 0, 1);
  box-shadow: 0 -8px 28px rgba(0,0,0,.12);
}
.v2-price-sheet-mask.is-in .v2-price-sheet { transform: translateY(0); }
.v2-price-sheet__grab {
  width: 36px; height: 5px; border-radius: 3px; background: #D8D8D8;
  margin: 8px auto 0;
}
.v2-price-sheet__hd {
  padding: 10px 0 4px; font-size: 16px; font-weight: 600;
  text-align: center; color: #1a1a1a;
}
.v2-price-sheet__val {
  font-size: 32px; font-weight: 600; color: #1a1a1a; text-align: center;
  font-family: var(--font-data); padding: 8px 0 14px;
}
.v2-price-keys {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px;
}
.v2-price-keys button {
  height: 48px; border: 0; border-radius: 10px; background: #F5F5F5;
  font-size: 22px; font-weight: 500; color: #1a1a1a; cursor: pointer;
  font-family: inherit;
}
.v2-price-keys button:active { background: #EAEAEA; }
.v2-price-ok {
  width: 100%; height: 48px; margin-top: 10px; border: 0; border-radius: 10px;
  background: #F32F41; color: #fff; font-size: 16px; font-weight: 600;
  cursor: pointer; font-family: inherit;
}

/* 飞入小球（橙→红） */
.v2-fly-ball {
  position: fixed; z-index: 9999; width: 18px; height: 18px; border-radius: 50%;
  background: #FF8956; pointer-events: none;
  box-shadow: 0 2px 8px rgba(255,137,86,.45);
  will-change: left, top, transform, background;
}

/* 底栏安全区 */
.bottom-bar.v2-safe {
  height: 96px; padding-bottom: 34px; box-sizing: border-box;
}
.bottom-bar.v2-safe .cart-hot,
.bottom-bar.v2-safe .btn-guadan,
.bottom-bar.v2-safe .btn-next,
.bottom-bar.v2-safe .btn-add,
.bottom-bar.v2-safe .amount { top: 10px; }
.bottom-bar.v2-safe .cart-hot { bottom: 34px; }
.cart-sheet-mask .cart-sheet { bottom: 96px; }

/* —— 结算文档流：顾客卡→单号→明细→券→备注 —— */
#s6.v2-co .scroll .page,
#s7.v2-co .scroll .page {
  height: auto !important;
  min-height: 100%;
  padding: 0 0 24px !important;
  box-sizing: border-box;
}
#s6.v2-co .guest-card,
#s7.v2-co .guest-card,
#s6.v2-co .member-card,
#s7.v2-co .member-card {
  position: relative !important;
  left: auto !important;
  top: auto !important;
  margin: 12px 16px 0 !important;
  width: calc(100% - 32px) !important;
  max-width: 358px;
}
#s6.v2-co .co-manual,
#s7.v2-co .co-manual {
  position: relative !important;
  left: auto !important;
  top: auto !important;
  width: 100% !important;
  margin-top: 12px;
  z-index: 1;
}
#s6.v2-co .co-items,
#s7.v2-co .co-items,
#s6.v2-co #coItems,
#s7.v2-co #qcoItems {
  position: relative !important;
  left: auto !important;
  top: auto !important;
  width: 100% !important;
  margin-top: 12px !important;
  z-index: 1;
}

.co-extras { padding: 8px 16px 16px; }
.co-coupon-row {
  display: flex; align-items: center; height: 48px; padding: 0 14px;
  background: #fff; border-radius: 10px; margin-bottom: 10px; cursor: pointer;
}
.co-coupon-row .l { font-size: 14px; font-weight: 500; color: #1a1a1a; }
.co-coupon-row .r {
  margin-left: auto; font-size: 13px; color: #929292;
  display: flex; align-items: center; gap: 4px;
}
.co-coupon-row .r.has { color: #F32F41; }
.co-remark-card {
  background: #fff; border-radius: 8px; padding: 14px;
  box-sizing: border-box;
}
.co-remark-card .t {
  font-size: 13px; font-weight: 500; color: #1a1a1a; line-height: 1.2; margin-bottom: 10px;
}
.co-remark-card .box {
  position: relative; background: #fafafa; border-radius: 8px;
  min-height: 96px; padding: 12px; box-sizing: border-box;
}
.co-remark-card textarea {
  width: 100%; min-height: 64px; border: 0; background: transparent; resize: none;
  font-family: inherit; font-size: 14px; color: #1a1a1a; outline: none;
  line-height: 1.4;
}
.co-remark-card textarea::placeholder { color: #757575; }
.co-remark-card .cnt {
  position: absolute; right: 12px; bottom: 10px; font-size: 12px; color: #929292; line-height: 1;
}

.co-item.v2-compact { padding: 8px 12px 6px; margin-bottom: 8px; }
.co-item.v2-compact .co-thumb { display: none !important; }
.co-item.v2-compact .co-top { display: flex; align-items: center; gap: 8px; min-height: 28px; }
.co-item.v2-compact .co-info { flex: 1; min-width: 0; }
.co-item.v2-compact .co-name {
  font-size: 14px; font-weight: 500; white-space: nowrap;
  overflow: hidden; text-overflow: ellipsis;
}
.co-item.v2-compact .co-price { display: inline; font-size: 12px; color: #929292; margin-left: 6px; }
.co-item.v2-compact .co-row { min-height: 28px; padding: 2px 0; font-size: 12px; }
.co-item.v2-compact .co-emp-detail { display: none; }
.co-item.v2-compact .co-sum-row { min-height: 24px; font-size: 12px; padding: 1px 0; }
.co-item.v2-compact .co-sum-row input {
  pointer-events: none; border: 0; background: transparent; width: 64px;
  font-size: 12px; color: inherit;
}
.co-item.v2-compact .co-sum-row .pen,
.co-item.v2-compact .co-arr { display: none !important; }
.co-item.v2-compact .co-row[data-ro="1"] { pointer-events: none; opacity: .95; }
.co-item.v2-compact .co-sum-row[data-ro="1"] { pointer-events: none; }
