.pos-page { padding: 0 !important; max-width: none !important; }

/* POS 顶部模式切换 */
.pos-topbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 12px;
    background: #1a1a2e;
    position: sticky;
    top: 48px;
    z-index: 99;
}
.pos-mode-tabs { display: flex; gap: 4px; }
.pos-mode-tab {
    padding: 8px 16px;
    border-radius: 6px;
    font-size: 14px;
    cursor: pointer;
    color: rgba(255,255,255,0.6);
    background: transparent;
    transition: all 0.2s;
    white-space: nowrap;
}
.pos-mode-tab.active { background: var(--orange); color: #fff; }

/* 顶部栏模式切换 */
#topModeTabs {
    gap: 4px;
}
#topModeTabs .pos-mode-tab {
    color: #555;
    background: rgba(255,255,255,0.75);
    font-size: 14px;
    padding: 6px 12px;
    border-radius: 6px;
    font-weight: 600;
}
#topModeTabs .pos-mode-tab.active {
    background: var(--orange);
    color: #fff;
}
.pos-operator { color: rgba(255,255,255,0.8); font-size: 14px; }

/* POS 主体：左右分栏 */
.pos-body { display: flex; height: calc(100vh - 100px); overflow: hidden; }
.pos-left {
    flex: 3;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-right: 1px solid #eee;
}
.pos-right {
    flex: 2;
    display: flex;
    flex-direction: column;
    background: #fafafa;
}

/* POS 搜索 */
.pos-search {
    display: flex; align-items: center; padding: 8px 12px;
    background: #fff; border-bottom: 1px solid #f0f0f0;
}
.pos-search span { font-size: 16px; margin-right: 8px; }
.pos-search input { flex: 1; border: none; outline: none; font-size: 14px; }

/* POS 商品网格 */
.pos-product-grid {
    flex: 1;
    overflow-y: auto;
    padding: 8px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
    align-content: start;
}
.pos-product-card {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 8px;
    padding: 12px 8px;
    text-align: center;
    cursor: pointer;
    transition: all 0.15s;
    user-select: none;
}
.pos-product-card:hover { border-color: var(--orange); box-shadow: 0 2px 8px rgba(255,107,53,0.15); }
.pos-product-card:active { transform: scale(0.97); }
.pos-product-emoji { font-size: 32px; display: block; margin-bottom: 4px; }
.pos-product-name { font-size: 14px; color: #333; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-bottom: 4px; }
.pos-product-price { font-size: 16px; font-weight: bold; color: #e74c3c; }

/* POS 订单右侧 */
.pos-order-header {
    display: flex; justify-content: space-between; align-items: center;
    padding: 10px 14px; background: #fff; border-bottom: 1px solid #eee; font-weight: bold;
}
.pos-order-items {
    flex: 1;
    overflow-y: auto;
    padding: 8px 14px;
}
.pos-order-empty { text-align: center; padding: 40px; color: #ccc; font-size: 14px; }
.pos-order-row {
    display: flex;
    align-items: center;
    padding: 8px 0;
    border-bottom: 1px solid #f5f5f5;
    gap: 8px;
}
.pos-order-row-name { flex: 1; font-size: 14px; }
.pos-order-row-qty {
    display: flex; align-items: center; gap: 4px;
}
.pos-qty-btn {
    width: 24px; height: 24px; border-radius: 50%;
    border: 1px solid #ddd; background: #fff;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer; font-size: 14px; line-height: 1; color: #333;
}
.pos-qty-btn:hover { background: #f5f5f5; }
.pos-order-row-price {
    font-size: 14px; font-weight: bold; color: #e74c3c;
    min-width: 60px; text-align: right;
}

/* POS 订单底部 */
.pos-order-footer {
    background: #fff;
    border-top: 2px solid #eee;
    padding: 12px 14px;
}
.pos-total {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 18px;
    font-weight: bold;
    margin-bottom: 10px;
}
.pos-total span:last-child { color: #e74c3c; font-size: 24px; }
.pos-payment { display: flex; gap: 8px; }
.pos-pay-btn {
    flex: 1;
    padding: 12px 8px;
    border: none;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s;
}
.pos-pay-btn:hover { transform: translateY(-1px); }
.pay-wechat { background: #07c160; color: #fff; }
.pay-cash { background: #ff9800; color: #fff; }
.pay-credit { background: #607d8b; color: #fff; }

/* 旅游收银专用：日期选择+数量 */
.tour-order-extra { padding: 8px 14px; background: #fff; border-bottom: 1px solid #eee; }
.tour-order-extra label { font-size: 14px; color: #999; display: block; margin-bottom: 4px; }
.tour-order-extra input, .tour-order-extra select {
    width: 100%; padding: 8px; border: 1px solid #ddd; border-radius: 6px; font-size: 14px;
}

/* 员工报表 */
.emp-dash { padding: 16px; }

/* 响应式：小屏时 POS 堆叠 */
@media (max-width: 768px) {
    .pos-body { flex-direction: column; height: auto; }
    .pos-left { flex: none; max-height: 45vh; border-right: none; border-bottom: 1px solid #eee; }
    .pos-right { flex: none; min-height: 40vh; }
    .pos-product-grid { grid-template-columns: repeat(3, 1fr); }
    .pos-mode-tab { padding: 6px 10px; font-size: 14px; }
}

/* POS 餐饮 iframe */
.pos-iframe {
    width: 100%;
    height: calc(100vh - 98px);
    border: none;
    display: block;
}

/* ========================================
   餐饮桌台点单系统
   ======================================== */
/* ================================================================ */
/* 美团管家 · 餐饮系统完整样式 */
/* ================================================================ */
.mt-container{height:100%;display:flex;flex-direction:column;background:#f0ede8}
/* ===== 美团顶部导航栏 ===== */
.mt-topbar{display:flex;align-items:center;padding:0 12px;height:48px;background:linear-gradient(180deg,#1a1f2e,#252a3a);flex-shrink:0;z-index:10;box-shadow:0 2px 8px rgba(0,0,0,.3)}
.mt-tb-left{display:flex;align-items:center;gap:6px;flex-shrink:0}
.mt-tb-logo{font-size:20px}
.mt-tb-name{color:#fff;font-size:14px;font-weight:700;white-space:nowrap}
.mt-tb-center{flex:1;display:flex;gap:2px;overflow-x:auto;justify-content:center;padding:0 8px}
.mt-tb-center::-webkit-scrollbar{height:0}
.mt-tb-right{display:flex;align-items:center;gap:10px;flex-shrink:0}
.mt-tb-time{color:rgba(255,255,255,.6);font-size: 14px;white-space:nowrap;font-family:monospace}
.mt-tb-staff{color:rgba(255,255,255,.5);font-size: 14px;white-space:nowrap}
/* 区域标签·顶栏内嵌 */
.mt-area-tab{padding:5px 16px;border-radius:14px;color:rgba(255,255,255,.6);font-size:16px;cursor:pointer;white-space:nowrap;transition:all .2s;font-weight:500}
.mt-area-tab.active,.mt-area-tab:hover{background:#ff6b35;color:#fff;font-weight:700}
/* ===== 主体 ===== */
.mt-body{flex:1;overflow:hidden;display:flex;flex-direction:column}

/* ===== 桌台视图 ===== */
.mt-table-view{flex:1;display:flex;flex-direction:column;overflow:hidden}
.mt-table-stats{display:flex;gap:16px;padding:8px 14px;background:#fff;border-bottom:1px solid #e8e2d8;font-size:16px;color:#999;flex-shrink:0}
.mt-table-stats b{color:#333}
.mt-table-grid{flex:1;overflow-y:auto;padding:12px;display:grid;grid-template-columns:repeat(4,1fr);gap:10px;align-content:start}
.mt-table-grid::-webkit-scrollbar{width:4px}
.mt-table-grid::-webkit-scrollbar-thumb{background:#ccc;border-radius:4px}
/* 桌台卡片 */
.mt-table-card{background:#e8e8e8;border-radius:12px;padding:16px 8px;text-align:center;cursor:pointer;border:2px solid #eee;transition:all .2s;position:relative;min-height:100px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.mt-table-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,0,0,.1)}
.mt-table-card.occupied{border-color:#c0392b;background:#e74c3c;color:#fff}
.mt-table-card.occupied::before{content:'';position:absolute;top:8px;right:8px;width:8px;height:8px;border-radius:50%;background:#fff}
.mt-table-card.free::before{content:'';position:absolute;top:8px;right:8px;width:8px;height:8px;border-radius:50%;background:#999}
.mt-table-card.selected{border-color:#3195ff;background:#f0f7ff;box-shadow:0 2px 12px rgba(49,149,255,.2)}
.mt-table-card.selected::before{background:#3195ff}
.mt-tc-icon{font-size:16px;margin-bottom:4px}
.mt-tc-no{font-size:16px;font-weight:700;color:#333;margin-bottom:4px}
.mt-tc-info{font-size:16px;color:#999;line-height:1.4}
.mt-tc-info .amt{color:#ff6b35;font-weight:700;font-size:16px}
.mt-tc-info .timer{color:#ff6b35;font-size:16px;display:block}

/* ===== 点单视图 ===== */
.mt-order-view{flex:1;display:flex;flex-direction:column;overflow:hidden}
.mt-ov-top{display:flex;align-items:center;justify-content:space-between;padding:0 12px;height:44px;background:#fff;border-bottom:1px solid #e8e2d8;flex-shrink:0}
.mt-btn-back{background:none;border:none;color:#333;font-size: 14px;cursor:pointer;font-weight:600;padding:4px 8px}
.mt-btn-switch{background:none;border:none;color:#999;font-size: 14px;cursor:pointer}
.mt-ov-title{font-size:14px;font-weight:700;color:#333}
.mt-ov-main{flex:1;display:flex;overflow:hidden}
/* 左侧购物车 */
.mt-ov-cart{width:44%;min-width:340px;display:flex;flex-direction:column;border-right:1px solid #e8e2d8;background:#fdfcf8}
.mt-cart-hd{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:#f8f4ec;border-bottom:1px solid #e8e2d8;font-size: 14px;font-weight:700;color:#5a4a32;flex-shrink:0}
.mt-cart-summary{font-size: 14px;color:#999;font-weight:400}
.mt-cart-list{flex:1;overflow-y:auto;padding:4px 0}
.mt-cart-list::-webkit-scrollbar{width:4px}
.mt-cart-list::-webkit-scrollbar-thumb{background:#ddd;border-radius:4px}
.mt-cart-empty{text-align:center;color:#ccc;padding:40px 20px;font-size: 14px}
.mt-cart-item{display:flex;align-items:center;padding:8px 12px;gap:8px;font-size: 14px;border-bottom:1px solid #f5f0e8;transition:background .15s}
.mt-cart-item:hover{background:#faf6ef}
.mt-cart-item.refunded{opacity:.4}
.mt-cart-item.gift{background:#f1f8e9}
.mt-ci-name{flex:1;font-weight:600;color:#3d3025;max-width:8em;word-break:break-all;line-height:1.4}
.mt-ci-note{display:none}
.mt-ci-price{color:#ff6b35;font-weight:700;font-size: 14px;white-space:nowrap}
.mt-ci-qty{display:flex;align-items:center;gap:3px;flex-shrink:0}
.mt-ci-qty button{width:20px;height:20px;border-radius:50%;border:1px solid #ddd;background:#fff;cursor:pointer;font-size: 14px;display:flex;align-items:center;justify-content:center;color:#666;line-height:1}
.mt-ci-qty button:active{background:#ff6b35;color:#fff;border-color:#ff6b35}
.mt-ci-qty span{min-width:16px;text-align:center;font-weight:700}
.mt-cart-gift-divider{padding:4px 12px;font-size: 14px;color:#4caf50;background:#e8f5e9;font-weight:600}
.mt-cart-note{display:flex;align-items:center;gap:6px;padding:6px 12px;border-top:1px solid #f0ebe0;flex-shrink:0}
.mt-cart-note-label{font-size: 14px;color:#999;white-space:nowrap;font-weight:600}
.mt-cart-note-input{flex:1;height:28px;border:none;background:transparent;font-size: 14px;outline:none}
.mt-cart-note-input::placeholder{color:#ddd}
.mt-cart-actions{display:flex;align-items:center;gap:6px;padding:10px 12px;border-top:2px solid #e8e2d8;flex-shrink:0;flex-wrap:wrap}
.mt-cart-total{flex:1;font-size:20px;font-weight:800;color:#ff6b35;min-width:60px}
/* 按钮 */
.mt-btn-sm{padding:5px 12px;border-radius:12px;border:1px solid #ddd;background:#fff;color:#888;font-size: 14px;cursor:pointer;font-weight:500;white-space:nowrap}
.mt-btn-sm:active{background:#f5f0e8}
.mt-btn-print{padding:7px 16px;border-radius:14px;border:none;background:linear-gradient(135deg,#ff6b35,#e55a2b);color:#fff;font-size: 14px;font-weight:700;cursor:pointer;white-space:nowrap;box-shadow:0 2px 6px rgba(255,107,53,.3)}
.mt-btn-print:active{transform:translateY(1px)}
.mt-btn-pay{padding:7px 16px;border-radius:14px;border:none;background:linear-gradient(135deg,#d4a017,#b8860b);color:#fff;font-size: 14px;font-weight:700;cursor:pointer;white-space:nowrap;box-shadow:0 2px 6px rgba(212,160,23,.3)}
.mt-btn-pay:active{transform:translateY(1px)}
.mt-btn-pay-lg{padding:10px 28px;border-radius:20px;border:none;background:linear-gradient(135deg,#ff6b35,#e55a2b);color:#fff;font-size:14px;font-weight:700;cursor:pointer;box-shadow:0 3px 12px rgba(255,107,53,.35)}
.mt-btn-pay-lg:active{transform:translateY(1px)}
.mt-btn-cancel{padding:10px 28px;border-radius:20px;border:1px solid #ddd;background:#f5f5f5;color:#666;font-size:14px;font-weight:600;cursor:pointer}
/* 右侧菜单 */
.mt-ov-menu{flex:1;display:flex;flex-direction:column;overflow:hidden;background:#fff}
.mt-cat-tabs{display:flex;gap:0;padding:0 8px;border-bottom:1px solid #eee;overflow-x:auto;flex-shrink:0}
.mt-cat-tabs::-webkit-scrollbar{height:0}
.mt-cat-tab{padding:10px 14px;font-size: 14px;color:#999;cursor:pointer;white-space:nowrap;border-bottom:2px solid transparent;transition:all .2s;font-weight:500}
.mt-cat-tab:hover{color:#ff6b35}
.mt-cat-tab.active{color:#ff6b35;font-weight:700;border-bottom-color:#ff6b35}
.mt-dish-grid{flex:1;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:8px}
.mt-dish-grid::-webkit-scrollbar{width:4px}
.mt-dish-grid::-webkit-scrollbar-thumb{background:#ddd;border-radius:4px}
/* ===== 菜品卡片 ===== */
.mt-dish-card{background:#fff;border-radius:10px;overflow:hidden;border:1px solid #f0ebe0;display:flex;transition:all .15s;cursor:pointer}
.mt-dish-card:active{background:#fdf9f2}
.mt-dc-img{width:90px;min-width:90px;height:90px;background:linear-gradient(135deg,#faf5ec,#f0e6d5);display:flex;align-items:center;justify-content:center;font-size:36px;overflow:hidden;position:relative}
.mt-dc-img img{width:100%;height:100%;object-fit:cover}
.mt-dc-body{flex:1;display:flex;justify-content:space-between;align-items:center;padding:10px 12px;min-width:0;gap:8px}
.mt-dc-info{flex:1;min-width:0}
.mt-dc-name{font-size: 14px;font-weight:700;color:#333;display:block;margin-bottom:2px}
.mt-dc-name .tag{font-size: 14px;padding:1px 5px;border-radius:3px;margin-left:4px;font-weight:600;vertical-align:middle}
.mt-dc-name .tag.new{background:#e8f5e9;color:#4caf50}
.mt-dc-name .tag.hot{background:#fff3e0;color:#ff6b35}
.mt-dc-desc{font-size: 12px;color:#999;

.mt-dc-stock{font-size:11px;color:#722ed1;display:block;margin-top:2px}
display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mt-dc-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}
.mt-dc-price{font-size:16px;font-weight:800;color:#ff6b35}
.mt-dc-orig{font-size: 14px;color:#ccc;text-decoration:line-through}
.mt-dc-qty{display:flex;align-items:center;gap:4px}
.mt-dc-qty button{width:26px;height:26px;border-radius:50%;border:none;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;line-height:1}
.mt-dc-qty .plus{background:linear-gradient(135deg,#ff6b35,#e55a2b);color:#fff}
.mt-dc-qty .minus{background:#fff;color:#ff6b35;border:2px solid #ff6b35}
.mt-dc-qty button.hidden{visibility:hidden;pointer-events:none}
.mt-dc-qty .num{font-size: 14px;font-weight:700;min-width:18px;text-align:center}
.mt-dc-qty .num.hidden{display:none}

/* ===== 弹窗通用 ===== */
.mt-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:300;animation:fadeIn .2s}
.mt-panel{position:fixed;bottom:0;left:0;right:0;background:#fff;border-radius:18px 18px 0 0;z-index:301;max-height:70vh;display:flex;flex-direction:column;animation:slideUp .25s;box-shadow:0 -8px 32px rgba(0,0,0,.15)}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.mt-panel-hd{display:flex;justify-content:space-between;align-items:center;padding:16px 20px 12px;border-bottom:1px solid #f0ebe0;font-size:15px;color:#333;flex-shrink:0}
.mt-panel-hd b{color:#ff6b35}
.mt-panel-hd button{background:none;border:none;font-size:20px;cursor:pointer;color:#999;padding:4px 8px;border-radius:50%}
.mt-panel-body{flex:1;overflow-y:auto;padding:12px 20px}
.mt-panel-ft{display:flex;align-items:center;gap:10px;padding:14px 20px 28px;border-top:2px solid #f0ebe0;flex-shrink:0}
.mt-panel-total{flex:1;font-size: 14px;color:#999}
.mt-panel-total b{font-size:22px;color:#ff6b35;font-weight:800}
.mt-input-lg{width:100%;height:44px;border:1px solid #e8e0d5;border-radius:10px;padding:0 14px;font-size:14px;outline:none;box-sizing:border-box}
.mt-input-lg:focus{border-color:#ff6b35;box-shadow:0 0 0 3px rgba(255,107,53,.08)}
/* 买单明细 */
.mt-checkout-item{display:flex;align-items:flex-start;padding:10px 0;border-bottom:1px dashed #e8e0d5;gap:10px;font-size: 14px}
.mt-checkout-item .name{flex:1;font-weight:600;color:#333}
.mt-checkout-item .note{font-size: 14px;color:#ff6b35;display:block}
.mt-checkout-item .qty{color:#999;font-weight:600}
.mt-checkout-item .price{color:#ff6b35;font-weight:700}
.mt-co-summary{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #eee;font-size: 14px;font-weight:600}
.mt-co-discount{cursor:pointer;padding:8px 0;display:flex;justify-content:space-between;border-bottom:1px dashed #eee;font-size: 14px;color:#999}
.mt-co-discount:active{background:#fdf9f2}
/* 退菜/赠菜列表 */
.mt-rf-item{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #eee;font-size: 14px;cursor:pointer}
.mt-rf-item:active{background:#fdf9f2}

/* ===== 后厨打印通知 ===== */
.mt-kitchen-toast{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:400;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s}
.mt-kt-card{background:#fff;border-radius:16px;padding:28px 24px;text-align:center;max-width:300px;width:90%;box-shadow:0 8px 32px rgba(0,0,0,.2);animation:popIn .3s}
@keyframes popIn{from{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}
.mt-kt-icon{font-size:48px;margin-bottom:8px}
.mt-kt-title{font-size:18px;font-weight:800;color:#333;margin-bottom:8px}
.mt-kt-content{font-size: 14px;color:#666;line-height:1.6;margin-bottom:16px}
.mt-kt-btn{background:linear-gradient(135deg,#ff6b35,#e55a2b);color:#fff;border:none;padding:10px 40px;border-radius:20px;font-size:14px;font-weight:700;cursor:pointer}
.mt-kt-btn:active{transform:scale(.95)}
/* 后厨打印通知 */
.pr-kitchen-toast{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:400;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s}
.pr-kt-card{background:#fff;border-radius:16px;padding:28px 24px;text-align:center;max-width:300px;width:90%;box-shadow:0 8px 32px rgba(0,0,0,.2);animation:popIn .3s}
.pr-kt-icon{font-size:48px;margin-bottom:8px}
.pr-kt-title{font-size:18px;font-weight:800;color:#333;margin-bottom:8px}
.pr-kt-content{font-size:16px;color:#666;line-height:1.6;margin-bottom:16px}
.pr-kt-btn{background:linear-gradient(135deg,#ff6b35,#e55a2b);color:#fff;border:none;padding:10px 40px;border-radius:20px;font-size:14px;font-weight:700;cursor:pointer}
.pr-kt-btn:active{transform:scale(.95)}


/* ===== 响应式 ===== */
@media(max-width:768px){
  .mt-ov-main{flex-direction:column}
  .mt-ov-cart{width:100%;min-width:0;max-height:45%;border-right:none;border-bottom:2px solid #e8e2d8}
  .mt-table-grid{grid-template-columns:repeat(3,1fr);gap:8px}
  .mt-dc-img{width:70px;min-width:70px;height:70px;font-size:28px}
}
@media(max-width:480px){
  .mt-table-grid{grid-template-columns:repeat(2,1fr);gap:6px}
  .mt-table-card{padding:12px 6px;min-height:80px}
  .mt-tc-icon{font-size:22px}
  .mt-tc-no{font-size: 14px}
  .mt-dc-img{width:60px;min-width:60px;height:60px;font-size:24px}
  .mt-dc-name{font-size: 14px}
  .mt-dc-price{font-size:14px}
  .mt-topbar{padding:0 8px}
  .mt-tb-name{font-size: 14px}
}
.rd-img{width:80px;min-width:80px;height:80px;font-size:28px}.rd-emoji{font-size:28px}.resto-table-card{padding:12px 6px}.resto-actions{gap:4px}.resto-btn-place,.resto-btn-pay{padding:7px 14px;font-size: 14px}}.rd-img{width:80px;min-width:80px;height:80px;font-size:28px}.rd-emoji{font-size:28px}.resto-table-card{padding:12px 6px}.rd-name{font-size: 14px}.rd-price{font-size:16px}}{grid-template-columns:repeat(2,1fr);gap:8px}.rd-img{height:120px;f/* ================================================================ */
/* Costco开市客 · 仓储会员超市完整样式 */
/* ================================================================ */
.cs-container{height:100%;display:flex;flex-direction:column;background:#f5f5f5}
/* ===== Costco顶栏 ===== */
.cs-topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#005DAA;flex-shrink:0}
.cs-tb-left{display:flex;align-items:baseline;gap:10px}
.cs-logo-text{font-size:24px;font-weight:900;color:#fff;letter-spacing:2px;font-family:Impact,sans-serif}
.cs-logo-sub{font-size: 14px;color:rgba(255,255,255,.7);white-space:nowrap}
.cs-tb-right{flex-shrink:0}
.cs-member-badge{background:#e31837;color:#fff;padding:4px 12px;border-radius:12px;font-size: 14px;font-weight:700;white-space:nowrap}
/* ===== 搜索栏 ===== */
.cs-search-bar{display:flex;align-items:center;padding:10px 16px;background:#fff;border-bottom:1px solid #e8e8e8;gap:8px;flex-shrink:0}
.cs-search-icon{font-size:16px;color:#999}
.cs-search-input{flex:1;border:none;outline:none;font-size:14px;height:36px}
.cs-search-input::placeholder{color:#ccc}
/* ===== 分类导航 ===== */
.cs-cat-nav{display:flex;gap:0;padding:0 8px;background:#fff;border-bottom:2px solid #e31837;overflow-x:auto;flex-shrink:0}
.cs-cat-nav::-webkit-scrollbar{height:0}
.cs-cat-item{padding:12px 16px;font-size: 14px;color:#666;cursor:pointer;white-space:nowrap;font-weight:600;transition:all .2s;border-bottom:3px solid transparent;position:relative;top:2px}
.cs-cat-item:hover{color:#e31837}
.cs-cat-item.active{color:#e31837;border-bottom-color:#e31837}
/* ===== 促销横幅 ===== */
.cs-promo-banner{background:linear-gradient(90deg,#e31837,#c41230);color:#fff;text-align:center;padding:8px;font-size: 14px;font-weight:700;flex-shrink:0;letter-spacing:1px;animation:pulse-bg 2s infinite}
@keyframes pulse-bg{0%,100%{opacity:1}50%{opacity:.92}}
/* ===== 加载 ===== */
.cs-loading{text-align:center;padding:40px;color:#ccc;font-size:14px}
/* ===== 商品网格 ===== */
.cs-product-grid{flex:1;overflow-y:auto;padding:12px;display:grid;grid-template-columns:repeat(2,1fr);gap:12px;align-content:start}
.cs-product-grid::-webkit-scrollbar{width:4px}
.cs-product-grid::-webkit-scrollbar-thumb{background:#ccc;border-radius:4px}
/* ===== Costco商品卡片 ===== */
.cs-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 1px 4px rgba(0,0,0,.06);transition:all .2s;display:flex;flex-direction:column;cursor:pointer}
.cs-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.1);transform:translateY(-2px)}
.cs-card-img{width:100%;height:180px;background:linear-gradient(135deg,#fafafa,#f0f0f0);display:flex;align-items:center;justify-content:center;font-size:56px;overflow:hidden;position:relative}
.cs-card-img img{width:100%;height:100%;object-fit:cover}
.cs-card-badge{position:absolute;top:10px;left:10px;background:#e31837;color:#fff;font-size: 14px;padding:3px 10px;border-radius:4px;font-weight:800;letter-spacing:.5px;text-transform:uppercase}
.cs-card-badge.hot{background:#e31837}
.cs-card-badge.new{background:#005DAA}
.cs-card-badge.sale{background:#ff6b35}
.cs-card-body{padding:12px 14px;flex:1;display:flex;flex-direction:column}
.cs-card-name{font-size:14px;font-weight:700;color:#222;margin-bottom:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.3}
.cs-card-desc{font-size: 14px;color:#999;margin-bottom:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cs-card-bottom{display:flex;align-items:flex-end;justify-content:space-between;margin-top:auto}
.cs-card-price-box{display:flex;flex-direction:column}
.cs-card-price-member{font-size: 14px;color:#e31837;font-weight:700}
.cs-card-price{font-size:20px;font-weight:900;color:#e31837;line-height:1}
.cs-card-price-orig{font-size: 14px;color:#bbb;text-decoration:line-through;margin-left:4px;font-weight:400}
.cs-card-unit{font-size: 14px;color:#999;margin-top:2px}
.cs-card-add{width:34px;height:34px;border-radius:50%;border:none;background:linear-gradient(135deg,#005DAA,#004080);color:#fff;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0;box-shadow:0 2px 6px rgba(0,93,170,.3)}
.cs-card-add:active{transform:scale(.9)}
.cs-card-add.in-cart{background:#e31837}
.cs-card-qty{display:flex;align-items:center;gap:6px;flex-shrink:0}
.cs-card-qty button{width:28px;height:28px;border-radius:50%;border:1px solid #ddd;background:#fff;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;line-height:1;color:#666}
.cs-card-qty button:active{background:#005DAA;color:#fff;border-color:#005DAA}
.cs-card-qty .num{font-size:14px;font-weight:700;min-width:20px;text-align:center}
/* ===== Costco购物车栏 ===== */
.cs-cart-bar{position:fixed;bottom:60px;left:0;right:0;background:#fff;border-top:2px solid #e31837;z-index:100;display:flex;align-items:center;padding:8px 14px;gap:10px;box-shadow:0 -4px 16px rgba(0,0,0,.1);display:none}
.cs-cart-bar.show{display:flex}
.cs-cart-icon{position:relative;font-size:26px;flex-shrink:0}
.cs-cart-count{position:absolute;top:-8px;right:-10px;background:#e31837;color:#fff;font-size: 14px;padding:2px 6px;border-radius:10px;font-weight:700}
.cs-cart-info{flex:1;min-width:0}
.cs-cart-total{font-size:18px;font-weight:900;color:#e31837}
.cs-cart-items{font-size: 14px;color:#999}
.cs-cart-btn{padding:10px 20px;border-radius:20px;border:none;background:linear-gradient(135deg,#e31837,#c41230);color:#fff;font-size: 14px;font-weight:700;cursor:pointer;white-space:nowrap;box-shadow:0 2px 8px rgba(227,24,55,.3);flex-shrink:0}
.cs-cart-btn:active{transform:scale(.95)}
/* ===== Costco商品详情弹窗 ===== */
.cs-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:200;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s}
.cs-detail{background:#fff;border-radius:16px;width:90%;max-width:400px;max-height:80vh;overflow-y:auto;box-shadow:0 8px 32px rgba(0,0,0,.2);animation:popIn .2s}
.cs-detail-img{width:100%;height:220px;background:#f5f5f5;display:flex;align-items:center;justify-content:center;font-size:64px}
.cs-detail-img img{width:100%;height:100%;object-fit:cover}
.cs-detail-body{padding:16px}
.cs-detail-name{font-size:18px;font-weight:800;color:#222;margin-bottom:4px}
.cs-detail-desc{font-size: 14px;color:#999;margin-bottom:12px}
.cs-detail-price-row{display:flex;align-items:baseline;gap:8px;margin-bottom:12px}
.cs-detail-price{font-size:28px;font-weight:900;color:#e31837}
.cs-detail-price-orig{font-size:14px;color:#ccc;text-decoration:line-through}
.cs-detail-unit{font-size: 14px;color:#666}
.cs-detail-qty-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid #f0f0f0;border-bottom:1px solid #f0f0f0}
.cs-detail-qty-row button{width:36px;height:36px;border-radius:50%;border:1px solid #ddd;background:#fff;cursor:pointer;font-size:18px}
.cs-detail-qty-row .num{font-size:20px;font-weight:700;min-width:40px;text-align:center}
.cs-detail-add{padding:12px;border-radius:24px;border:none;background:linear-gradient(135deg,#005DAA,#004080);color:#fff;font-size:15px;font-weight:700;cursor:pointer;margin-top:12px;width:100%}
/* ===== Costco结账弹窗 ===== */
.cs-checkout-panel{position:fixed;bottom:0;left:0;right:0;background:#fff;border-radius:20px 20px 0 0;z-index:250;max-height:65vh;display:flex;flex-direction:column;animation:slideUp .25s;box-shadow:0 -8px 32px rgba(0,0,0,.15)}
.cs-checkout-hd{display:flex;justify-content:space-between;align-items:center;padding:16px 20px 12px;border-bottom:1px solid #eee;font-size:16px;font-weight:800}
.cs-checkout-body{flex:1;overflow-y:auto;padding:12px 20px}
.cs-checkout-item{display:flex;align-items:center;padding:8px 0;border-bottom:1px solid #f5f5f5;gap:10px;font-size: 14px}
.cs-checkout-item .name{flex:1;font-weight:600}
.cs-checkout-item .qty{color:#999}
.cs-checkout-item .price{color:#e31837;font-weight:700}
.cs-checkout-ft{display:flex;align-items:center;gap:10px;padding:14px 20px 28px;border-top:2px solid #eee}
.cs-checkout-total{flex:1}
.cs-checkout-total .label{font-size: 14px;color:#999}
.cs-checkout-total .amt{font-size:24px;font-weight:900;color:#e31837}
.cs-checkout-pay{padding:12px 30px;border-radius:24px;border:none;background:linear-gradient(135deg,#e31837,#c41230);color:#fff;font-size:15px;font-weight:700;cursor:pointer;box-shadow:0 3px 12px rgba(227,24,55,.3)}

@media(min-width:768px){.cs-product-grid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1024px){.cs-product-grid{grid-template-columns:repeat(4,1fr)}}

ont-size:36px}.resto-table-card{padding:16px 8px}}

/* ================================================================ */
/* 旅游 · 携程飞猪风格预订系统 */
/* ================================================================ */
.tr-container{height:100%;display:flex;flex-direction:column;background:#f5f6fa;overflow-y:auto}
.tr-container::-webkit-scrollbar{width:4px}
.tr-container::-webkit-scrollbar-thumb{background:#ccc;border-radius:4px}
/* ===== 顶栏 ===== */
.tr-topbar{display:flex;align-items:baseline;justify-content:space-between;padding:14px 16px;background:linear-gradient(135deg,#1a6fb5,#0d5a99);flex-shrink:0}
.tr-logo{color:#fff;font-size:18px;font-weight:800}
.tr-sub{color:rgba(255,255,255,.6);font-size: 14px}
/* ===== 搜索 ===== */
.tr-search-bar{display:flex;align-items:center;margin:12px 14px;padding:10px 14px;background:#fff;border-radius:24px;box-shadow:0 2px 12px rgba(0,0,0,.08);gap:8px;flex-shrink:0}
.tr-search-bar span{font-size:16px;color:#999}
.tr-search-input{flex:1;border:none;outline:none;font-size:14px}
/* ===== 分类 ===== */
.tr-cat-nav{display:flex;gap:0;padding:0 10px;overflow-x:auto;flex-shrink:0;margin-bottom:12px}
.tr-cat-nav::-webkit-scrollbar{height:0}
.tr-cat-item{padding:8px 18px;border-radius:20px;color:#666;font-size: 14px;cursor:pointer;white-space:nowrap;font-weight:600;transition:all .2s;margin:0 4px;background:#fff}
.tr-cat-item.active,.tr-cat-item:hover{background:linear-gradient(135deg,#1a6fb5,#0d5a99);color:#fff;box-shadow:0 2px 8px rgba(13,90,153,.3)}
/* ===== 精选横幅 ===== */
.tr-hero{margin:0 14px 14px;border-radius:16px;overflow:hidden;flex-shrink:0;box-shadow:0 2px 12px rgba(0,0,0,.1)}
.tr-hero-slide{height:160px;background:linear-gradient(135deg,#1a6fb5,#0d5a99);display:flex;align-items:flex-end;padding:20px;position:relative}
.tr-hero-slide::after{content:'';position:absolute;inset:0;background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 100"><path d="M0 100 Q50 20 100 60 T200 20 V100 Z" fill="rgba(255,255,255,.08)"/></svg>') bottom/cover}
.tr-hero-text{position:relative;z-index:1}
.tr-hero-title{font-size:24px;font-weight:900;color:#fff;margin-bottom:4px}
.tr-hero-sub{font-size: 14px;color:rgba(255,255,255,.7);margin-bottom:8px}
.tr-hero-price{font-size: 14px;color:rgba(255,255,255,.9)}
.tr-hero-price b{font-size:22px;color:#ffd700}
/* ===== 分区标题 ===== */
.tr-section-hd{font-size:15px;font-weight:800;color:#222;padding:6px 14px;flex-shrink:0}
/* ===== 热门横向滚动 ===== */
.tr-hot-scroll{display:flex;gap:10px;padding:0 14px 14px;overflow-x:auto;flex-shrink:0}
.tr-hot-scroll::-webkit-scrollbar{height:0}
.tr-hot-card{min-width:200px;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.06);cursor:pointer;transition:all .2s;flex-shrink:0}
.tr-hot-card:active{transform:scale(.97)}
.tr-hot-img{height:110px;background:linear-gradient(135deg,#e8f4fd,#d0e8f7);display:flex;align-items:center;justify-content:center;font-size:40px}
.tr-hot-img img{width:100%;height:100%;object-fit:cover}
.tr-hot-body{padding:10px 12px}
.tr-hot-name{font-size: 14px;font-weight:700;color:#222;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tr-hot-price{font-size:16px;font-weight:800;color:#ff6b35}
.tr-hot-price span{font-size: 14px;color:#999;font-weight:400}
/* ===== 加载 ===== */
.tr-loading{text-align:center;padding:40px;color:#ccc;font-size:14px}
/* ===== 线路列表 ===== */
.tr-tour-list{padding:0 14px 20px;display:flex;flex-direction:column;gap:10px}
.tr-tour-card{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 1px 4px rgba(0,0,0,.04);display:flex;cursor:pointer;transition:all .2s}
.tr-tour-card:active{transform:scale(.98)}
.tr-tour-img{width:120px;min-width:120px;height:120px;background:linear-gradient(135deg,#f0f4f8,#e0e8f0);display:flex;align-items:center;justify-content:center;font-size:40px}
.tr-tour-img img{width:100%;height:100%;object-fit:cover}
.tr-tour-body{flex:1;padding:12px;display:flex;flex-direction:column;justify-content:space-between;min-width:0}
.tr-tour-name{font-size:14px;font-weight:700;color:#222;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tr-tour-tags{display:flex;gap:4px;margin-bottom:4px;flex-wrap:wrap}
.tr-tour-tag{font-size: 14px;padding:2px 8px;border-radius:4px;background:#e8f4fd;color:#1a6fb5;font-weight:600}
.tr-tour-desc{font-size: 14px;color:#999;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:4px}
.tr-tour-bottom{display:flex;align-items:center;justify-content:space-between}
.tr-tour-price{font-size:18px;font-weight:800;color:#ff6b35}
.tr-tour-price span{font-size: 14px;color:#999;font-weight:400}
.tr-tour-book{padding:6px 16px;border-radius:16px;border:none;background:linear-gradient(135deg,#1a6fb5,#0d5a99);color:#fff;font-size: 14px;font-weight:700;cursor:pointer;white-space:nowrap;box-shadow:0 2px 6px rgba(13,90,153,.25)}
/* ===== 详情弹窗 ===== */
.tr-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:250;animation:fadeIn .2s;display:flex;align-items:flex-end;justify-content:center}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.tr-detail-panel{background:#fff;border-radius:20px 20px 0 0;width:100%;max-width:500px;max-height:80vh;overflow-y:auto;position:relative;animation:slideUp .3s;box-shadow:0 -8px 32px rgba(0,0,0,.2)}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.tr-detail-img{width:100%;height:220px;background:linear-gradient(135deg,#e8f4fd,#d0e8f7);display:flex;align-items:center;justify-content:center;font-size:64px}
.tr-detail-img img{width:100%;height:100%;object-fit:cover}
.tr-detail-body{padding:16px 20px 24px}
.tr-detail-name{font-size:20px;font-weight:800;color:#222;margin-bottom:8px}
.tr-detail-tags{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap}
.tr-detail-tags span{font-size: 14px;padding:3px 10px;border-radius:4px;background:#e8f4fd;color:#1a6fb5;font-weight:600}
.tr-detail-info{display:flex;gap:16px;margin-bottom:10px;font-size: 14px;color:#999}
.tr-detail-desc{font-size: 14px;color:#666;line-height:1.6;margin-bottom:16px}
.tr-detail-price-row{display:flex;align-items:center;justify-content:space-between;padding-top:12px;border-top:1px solid #eee}
.tr-detail-price-label{font-size: 14px;color:#1a6fb5;display:block}
.tr-detail-price{font-size:26px;font-weight:900;color:#ff6b35}
.tr-detail-price-orig{font-size: 14px;color:#ccc;text-decoration:line-through;margin-left:6px}
.tr-detail-book{padding:12px 28px;border-radius:22px;border:none;background:linear-gradient(135deg,#ff6b35,#e55a2b);color:#fff;font-size:15px;font-weight:700;cursor:pointer;box-shadow:0 3px 12px rgba(255,107,53,.3)}
.tr-detail-close{position:absolute;top:12px;right:12px;width:32px;height:32px;border-radius:50%;background:rgba(0,0,0,.4);color:#fff;border:none;font-size:16px;cursor:pointer;z-index:1}
/* ===== 预订弹窗 ===== */
.tr-book-panel{background:#fff;border-radius:20px 20px 0 0;width:100%;max-width:500px;animation:slideUp .3s}
.tr-book-hd{font-size:17px;font-weight:800;padding:18px 20px 12px;border-bottom:1px solid #eee;text-align:center}
.tr-book-body{padding:12px 20px}
.tr-book-item{display:flex;justify-content:space-between;align-items:center;padding:10px 0;font-size: 14px;color:#666}
.tr-book-item b{color:#222}
.tr-book-input{border:1px solid #ddd;border-radius:8px;padding:6px 10px;font-size: 14px;outline:none}
.tr-book-ft{display:flex;gap:10px;padding:14px 20px 28px;border-top:2px solid #eee}
.tr-book-cancel{flex:1;padding:12px;border-radius:20px;border:1px solid #ddd;background:#f5f5f5;font-size:14px;font-weight:600;cursor:pointer;color:#666}
.tr-book-confirm{flex:2;padding:12px;border-radius:20px;border:none;background:linear-gradient(135deg,#ff6b35,#e55a2b);color:#fff;font-size:15px;font-weight:700;cursor:pointer;box-shadow:0 3px 12px rgba(255,107,53,.3)}

/* ===== 增强版Costco购物车栏（更醒目） ===== */
.cs-cart-bar {
  position: fixed;
  bottom: 56px;
  left: 8px;
  right: 8px;
  background: #fff;
  border: 2px solid #e31837;
  border-radius: 16px;
  z-index: 100;
  display: none;
  align-items: center;
  padding: 10px 16px;
  gap: 12px;
  box-shadow: 0 -4px 20px rgba(227,24,55,.15), 0 2px 12px rgba(0,0,0,.1);
}
.cs-cart-bar .cs-cart-inner {
  display: flex;
  align-items: center;
  width: 100%;
  gap: 12px;
}
.cs-cart-icon {
  position: relative;
  font-size: 30px;
  flex-shrink: 0;
  cursor: pointer;
}
.cs-cart-emoji {
  filter: drop-shadow(0 2px 4px rgba(0,0,0,.1));
}
.cs-cart-count {
  position: absolute;
  top: -10px;
  right: -12px;
  background: #e31837;
  color: #fff;
  font-size: 14px;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  border-radius: 11px;
  font-weight: 900;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 6px rgba(227,24,55,.4);
  animation: csPulse 1.5s ease-in-out infinite;
}
@keyframes csPulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.15); }
}
.cs-cart-info {
  flex: 1;
  min-width: 0;
}
.cs-cart-total {
  font-size: 20px;
  font-weight: 900;
  color: #e31837;
  line-height: 1.2;
}
.cs-cart-items {
  font-size: 14px;
  color: #888;
  line-height: 1.2;
}
.cs-cart-btn {
  padding: 12px 24px;
  border-radius: 24px;
  border: none;
  background: linear-gradient(135deg, #e31837, #c41230);
  color: #fff;
  font-size: 15px;
  font-weight: 800;
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
  box-shadow: 0 4px 12px rgba(227,24,55,.35);
}
.cs-cart-btn:active {
  transform: scale(.95);
}

/* ===== 旅游板块样式增强 ===== */
.tr-container {
  height: 100%;
  display: flex;
  flex-direction: column;
  background: #f5f6fa;
  overflow-y: auto;
}
.tr-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px;
  background: linear-gradient(135deg, #0d5a99, #1a6fb5);
  flex-shrink: 0;
}
.tr-tb-left {
  display: flex;
  align-items: center;
  gap: 8px;
}
.tr-tb-icon {
  font-size: 24px;
}
.tr-tb-name {
  color: #fff;
  font-size: 18px;
  font-weight: 800;
}
.tr-tb-sub {
  color: rgba(255,255,255,.7);
  font-size: 14px;
}
.tr-search-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 10px 14px;
  padding: 10px 14px;
  background: #fff;
  border-radius: 24px;
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
  flex-shrink: 0;
}
.tr-search-icon {
  font-size: 16px;
  flex-shrink: 0;
}
.tr-search-input {
  flex: 1;
  border: none;
  outline: none;
  font-size: 14px;
  background: transparent;
}
.tr-cat-nav {
  display: flex;
  gap: 6px;
  padding: 0 14px 8px;
  overflow-x: auto;
  flex-shrink: 0;
}
.tr-cat-nav::-webkit-scrollbar { height: 0; }
.tr-cat-item {
  padding: 6px 14px;
  border-radius: 16px;
  font-size: 14px;
  white-space: nowrap;
  cursor: pointer;
  background: #fff;
  color: #666;
  border: 1px solid #e8e8e8;
  transition: all .2s;
  flex-shrink: 0;
}
.tr-cat-item.active {
  background: #0d5a99;
  color: #fff;
  border-color: #0d5a99;
}
.tr-hero {
  margin: 0 14px 12px;
  padding: 24px 20px;
  background: linear-gradient(135deg, #0d5a99, #1a6fb5);
  border-radius: 16px;
  display: flex;
  align-items: center;
  gap: 14px;
  flex-shrink: 0;
}
.tr-hero-bg {
  font-size: 48px;
  flex-shrink: 0;
}
.tr-hero-text {
  color: #fff;
}
.tr-hero-title {
  font-size: 20px;
  font-weight: 800;
  margin-bottom: 4px;
}
.tr-hero-sub {
  font-size: 14px;
  opacity: .8;
}
.tr-section-hd {
  font-size: 15px;
  font-weight: 800;
  color: #222;
  padding: 6px 14px;
  flex-shrink: 0;
}
.tr-hot-scroll {
  display: flex;
  gap: 10px;
  padding: 0 14px 14px;
  overflow-x: auto;
  flex-shrink: 0;
}
.tr-hot-scroll::-webkit-scrollbar { height: 0; }
.tr-hot-card {
  min-width: 200px;
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
  cursor: pointer;
  transition: all .2s;
  flex-shrink: 0;
}
.tr-hot-card:active { transform: scale(.97); }
.tr-hot-img {
  width: 100%;
  height: 120px;
  background: #e8f0f8;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 48px;
}
.tr-hot-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.tr-hot-body {
  padding: 10px 12px;
}
.tr-hot-name {
  font-size: 14px;
  font-weight: 700;
  color: #333;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-bottom: 4px;
}
.tr-hot-price {
  font-size: 18px;
  font-weight: 800;
  color: #e31837;
}
.tr-hot-price span {
  font-size: 14px;
  font-weight: 400;
  color: #999;
}
.tr-loading {
  text-align: center;
  padding: 40px;
  color: #999;
  font-size: 14px;
}
.tr-tour-list {
  padding: 0 14px 20px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.tr-tour-item {
  display: flex;
  gap: 12px;
  background: #fff;
  border-radius: 14px;
  padding: 12px;
  box-shadow: 0 1px 4px rgba(0,0,0,.04);
  cursor: pointer;
  transition: all .2s;
}
.tr-tour-item:active { transform: scale(.98); }
.tr-tour-img {
  width: 100px;
  height: 80px;
  border-radius: 10px;
  background: #e8f0f8;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 36px;
  flex-shrink: 0;
  overflow: hidden;
}
.tr-tour-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.tr-tour-body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.tr-tour-name {
  font-size: 14px;
  font-weight: 700;
  color: #333;
  line-height: 1.3;
}
.tr-tour-tags {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
}
.tr-tour-tags span {
  font-size: 14px;
  padding: 2px 8px;
  border-radius: 10px;
  background: #e8f4ff;
  color: #0d5a99;
}
.tr-tour-info {
  font-size: 14px;
  color: #999;
}
.tr-tour-price-row {
  display: flex;
  align-items: baseline;
  gap: 6px;
}
.tr-tour-price {
  font-size: 18px;
  font-weight: 800;
  color: #e31837;
}
.tr-tour-orig {
  font-size: 14px;
  color: #ccc;
  text-decoration: line-through;
}

/* ===== 旅游详情弹窗 ===== */
.tr-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.5);
  z-index: 200;
  display: flex;
  align-items: flex-end;
  animation: fadeIn .2s;
}
.tr-detail-card {
  width: 100%;
  max-height: 96vh;
  background: #fff;
  border-radius: 20px 20px 0 0;
  overflow-y: auto;
  animation: slideUp .3s;
}
@keyframes slideUp {
  from { transform: translateY(100%); }
  to { transform: translateY(0); }
}
.tr-detail-close {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: none;
  background: rgba(0,0,0,.3);
  color: #fff;
  font-size: 16px;
  cursor: pointer;
  z-index: 1;
}
.tr-detail-img {
  width: 100%;
  height: 200px;
  background: #e8f0f8;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 72px;
}
.tr-detail-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.tr-detail-body {
  padding: 16px;
}
.tr-detail-tags {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}
.tr-detail-tags span {
  font-size: 14px;
  padding: 4px 10px;
  border-radius: 12px;
  background: #e8f4ff;
  color: #0d5a99;
  font-weight: 600;
}
.tr-detail-name {
  font-size: 20px;
  font-weight: 800;
  color: #222;
  margin-bottom: 6px;
}
.tr-detail-info {
  font-size: 14px;
  color: #888;
  margin-bottom: 10px;
}
.tr-detail-desc {
  font-size: 14px;
  color: #666;
  line-height: 1.6;
  margin-bottom: 14px;
}
.tr-detail-price-row {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 16px;
}
.tr-detail-price {
  font-size: 28px;
  font-weight: 900;
  color: #e31837;
}
.tr-detail-orig {
  font-size: 14px;
  color: #ccc;
  text-decoration: line-through;
}
.tr-detail-book {
  width: 100%;
  padding: 14px;
  border-radius: 24px;
  border: none;
  background: linear-gradient(135deg, #0d5a99, #1a6fb5);
  color: #fff;
  font-size: 16px;
  font-weight: 800;
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(13,90,153,.3);
}
.tr-detail-book:active {
  transform: scale(.98);
}

/* ===== 后厨分批打印动画 ===== */
.mt-batch-item { animation: mtSlideIn .3s ease; }
@keyframes mtSlideIn {
  from { opacity: 0; transform: translateX(-20px); }
  to { opacity: 1; transform: translateX(0); }
}

/* ===== 旅游图片画廊 ===== */
.tr-gallery { width: 100%; }
.tr-gallery-main { width: 100%; height: 220px; background: #e8f0f8; display: flex; align-items: center; justify-content: center; font-size: 72px; overflow: hidden; }
.tr-gallery-main img { width: 100%; height: 100%; object-fit: cover; }
.tr-gallery-thumbs { display: flex; gap: 6px; padding: 8px 0; overflow-x: auto; }
.tr-gallery-thumbs::-webkit-scrollbar { height: 0; }
.tr-thumb { width: 60px; height: 60px; border-radius: 8px; overflow: hidden; flex-shrink: 0; cursor: pointer; border: 2px solid transparent; transition: all .2s; display: flex; align-items: center; justify-content: center; background: #f0f0f0; font-size: 24px; }
.tr-thumb.active { border-color: #0d5a99; }
.tr-thumb img { width: 100%; height: 100%; object-fit: cover; }
.tr-desc-text { font-size: 14px; color: #444; line-height: 1.8; margin-bottom: 14px; }
.tr-desc-section { margin-bottom: 14px; }
.tr-desc-section h4 { font-size: 14px; font-weight: 700; color: #222; margin-bottom: 8px; }
.tr-desc-section ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 6px; }
.tr-desc-section li { font-size: 14px; color: #555; padding: 6px 10px; background: #f8f9fb; border-radius: 8px; line-height: 1.5; }
.tr-include li { color: #2e7d32; }
.tr-exclude li { color: #999; }
.tr-itinerary { display: flex; flex-direction: column; gap: 8px; }
.tr-day { display: flex; gap: 10px; align-items: flex-start; }
.tr-day-num { flex-shrink: 0; width: 44px; padding: 4px 8px; background: #0d5a99; color: #fff; border-radius: 12px; font-size: 14px; font-weight: 700; text-align: center; }
.tr-day-content { flex: 1; font-size: 14px; color: #555; line-height: 1.6; padding: 4px 0; }

/* ==========================================
   餐饮POS · 嵌入式桌台收银系统（pr-前缀）
   ========================================== */

/* 区域标签 */
/* POS 餐饮顶栏：区域Tabs + 统计卡片同行 */
.pr-topbar { display: flex; align-items: stretch; gap: 0; background: #fff; border-bottom: 1px solid #eee; min-height: 48px; }
.pr-tabs { display: flex; gap: 6px; padding: 0 12px; align-items: center; flex-shrink: 0; }
.pr-tab { padding: 12px 16px; background: #f5f5f5; border-radius: 6px; font-size:16px; cursor: pointer; white-space: nowrap; border: none; line-height: 1.5; transition: all 0.15s; }
.pr-tab.active { background: #ff6b35; color: #fff; }
.pr-dashboard { display: flex; gap: 0; align-items: stretch; flex-shrink: 0; border-left: 1px solid #f0f0f0; }
.pr-stat-card { display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 4px 16px; min-width: 72px; min-height: 48px; border-left: 1px solid #f0f0f0; transition: background .15s; }
.pr-stat-card:first-child { border-left: none; }
.pr-stat-card:hover { background: #fafafa; }
.pr-stat-label { display: block; font-size:16px; color: #999; margin-bottom: 2px; text-align: center; }
.pr-stat-val { display: block; font-size: 16px; font-weight: 700; color: #333; text-align: center; line-height: 1.2; }
.pr-stat-val.in { color: #ff6b35; }
.pr-stat-val.done { color: #52c41a; }

/* 主体 */
.pr-body { flex: 1; overflow: hidden; display: flex; flex-direction: column; }

/* 桌台统计 */
.pr-table-stats { padding: 10px 14px; background: #fff; font-size:16px; color: #666; border-bottom: 1px solid #f0f0f0; }
.pr-table-stats b { color: #333; }

/* 桌台网格 */
.pr-table-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 10px; padding: 14px; overflow-y: auto; flex: 1; }
.pr-table-card { background: #e8e8e8; border: 2px solid #ccc; border-radius: 14px; padding: 14px 8px; text-align: center; cursor: pointer; transition: all 0.2s; position: relative; }
.pr-table-card:hover { border-color: #ff6b35; box-shadow: 0 3px 12px rgba(255,107,53,0.12); transform: translateY(-1px); }
.pr-table-card.occupied { border-color: #c0392b; background: #e74c3c; color: #fff; }
.pr-table-card.selected { border-color: #3195ff; background: linear-gradient(135deg, #e6f2ff, #f0f7ff); }
.pr-table-card.settled { border-color: #52c41a; background: #e8e8e8; opacity: 0.8; }
.pr-tc-icon { font-size:16px; margin-bottom: 4px; position: relative; display: inline-block; }
.pr-tc-badge { position: absolute; top: -6px; right: -8px; background: #ff6b35; color: #fff; font-size:16px; min-width: 16px; height: 16px; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-weight: 700; padding: 0 4px; }
.pr-tc-no { font-size:16px; font-weight: 600; margin-bottom: 4px; }
.pr-tc-info { font-size:16px; color: #999; display: flex; flex-direction: column; align-items: center; gap: 2px; }
.pr-tc-info .amt { color: #ff6b35; font-weight: 700; font-size:16px; }
.pr-tc-info .free { color: #333; font-weight: 600; }
.pr-tc-info .seats { color: #999; }
.pr-timer { color: #fa8c16; font-size:16px; font-weight: 500; background: #fff7e6; padding: 1px 6px; border-radius: 8px; }

/* 点单视图 */
.pr-order-view { height: 100%; display: flex; flex-direction: column; }
.pr-ov-top { display: flex; align-items: center; gap: 10px; padding: 8px 14px; background: #fff; border-bottom: 1px solid #eee; }
.pr-btn-back { background: none; border: none; font-size: 15px; color: #ff6b35; cursor: pointer; font-weight: 600; }
.pr-ov-title { font-size: 15px; font-weight: 600; }
.pr-ov-main { flex: 1; display: flex; overflow: hidden; }

/* 左侧购物车 */
.pr-ov-cart { width: 400px; min-width: 340px; background: #fff; display: flex; flex-direction: column; border-right: 1px solid #eee; }
.pr-cart-hd { display: flex; justify-content: space-between; padding: 12px 14px; border-bottom: 1px solid #f0f0f0; font-size: 14px; font-weight: 600; }
.pr-cart-summary { font-size: 14px; color: #999; font-weight: 400; }
.pr-cart-list { flex: 1; overflow-y: auto; padding: 8px 0px 8px 14px; }
.pr-cart-item { display: flex; align-items: center; padding: 10px 0; border-bottom: 1px solid #f5f5f5; gap: 8px; }
.pr-cart-item.refunded { opacity: 0.5; }
.pr-cart-item.selected { background: #e8e8e8; border-radius: 8px; margin: 2px 0; padding: 10px 10px; box-shadow: inset 4px 0 0 #555; border-bottom: none; }
.pr-cart-item.selected .pr-ci-name { color: #333; font-weight: 700; }
.pr-cart-item.selected .pr-ci-price { color: #333; font-weight: 700; }
.pr-ci-name { flex: 1; font-size: 16px; max-width: 8em; word-break: break-all; }
.pr-ci-note { display: none; }
.pr-ci-note:hover { color: #ff6b35; }
.pr-ci-price { font-size: 16px; color: #ff6b35; font-weight: 600; min-width: 50px; text-align: right; }
.pr-ci-qty { display: flex; align-items: center; gap: 4px; }
.pr-ci-qty button { width: 26px; height: 26px; border-radius: 50%; border: 1px solid #ddd; background: #fff; cursor: pointer; font-size: 16px; display: flex; align-items: center; justify-content: center; }
.pr-ci-qty span { min-width: 22px; text-align: center; font-weight: 600; font-size: 16px; }
.pr-ci-qty-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 32px; height: 24px; padding: 0 8px; border-radius: 12px; background: #f0f0f0; color: #666; font-size: 13px; font-weight: 700; }

/* 操作工具栏：竖列嵌入已点菜品列表末尾 */
.pr-cart-body { flex: 1; display: flex; flex-direction: row; overflow: hidden; }
.pr-cart-tools { display: flex; flex-direction: column; gap: 4px; padding: 8px 4px; border-left: 1px solid #f0f0f0; background: #fafafa; flex-shrink: 0; width: 80px; overflow-y: auto; }
.pr-tool-btn { padding: 8px 14px; border: none; border-radius: 6px; background: #f5f5f5; font-size: 19px; color: #555; cursor: pointer; transition: all 0.15s; text-align: left; width: 100%; }
.pr-tool-btn-primary { background: #ff6b35; color: #fff; font-weight: 700; }
.pr-tool-btn-primary:hover { background: #e55a2b; color: #fff; }
.pr-tool-btn:hover { border-color: #ff6b35; color: #ff6b35; background: #fff5f0; }
.pr-btn-order { flex: 1; padding: 12px; background: #ff6b35; color: #fff; border: none; border-radius: 8px; font-size: 15px; font-weight: 600; cursor: pointer; transition: all 0.15s; }
.pr-btn-order:hover { background: #e55a2b; }
.pr-btn-precheck { flex: 1; padding: 12px; background: #3195ff; color: #fff; border: none; border-radius: 8px; font-size: 15px; font-weight: 600; cursor: pointer; transition: all 0.15s; }
.pr-btn-precheck:hover { background: #1a7ae6; }
/* 整单备注 */
.pr-cart-note { padding: 8px 14px; border-top: 1px solid #f0f0f0; background: #fafafa; }
.pr-cart-note-input { width: 100%; height: 32px; border: 1px solid #e5e5e5; border-radius: 6px; padding: 0 10px; font-size: 14px; box-sizing: border-box; background: #fff; }

/* 购物车底部：合计+操作 */
.pr-cart-ft { padding: 0; border-top: 1px solid #f0f0f0; background: #fff; }
.pr-cart-total-row { display: flex; align-items: center; gap: 6px; padding: 10px 14px; }
.pr-cart-total { font-size: 20px; font-weight: 700; color: #ff4d4f; flex: 1; }
.pr-btn-pay { flex: 1; padding: 12px; background: #52c41a; color: #fff; border: none; border-radius: 8px; font-size: 15px; font-weight: 600; cursor: pointer; transition: all 0.15s; }
.pr-btn-pay:hover { background: #389e0d; }


/* 备注 */
/* 右侧菜单 */
.pr-ov-menu { flex: 1; display: flex; flex-direction: column; background: #f8f8f8; overflow: hidden; }
.pr-search-row { padding: 8px 12px; background: #fff; }
.pr-search-input { width: 100%; height: 34px; border: 1px solid #e5e5e5; border-radius: 6px; padding: 0 12px; font-size: 14px; box-sizing: border-box; }
.pr-cat-tabs { display: flex; gap: 6px; padding: 8px 12px; background: #fff; overflow-x: auto; border-bottom: 1px solid #f0f0f0; }
.pr-cat-tab { padding: 6px 14px; background: #f5f5f5; border-radius: 14px; font-size: 14px; white-space: nowrap; cursor: pointer; }
.pr-cat-tab.active { background: #ff6b35; color: #fff; }
.pr-dish-grid { flex: 1; overflow-y: auto; padding: 10px; display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 8px; align-content: start; }
.pr-dish-card { background: #fff; border-radius: 8px; padding: 0 0 3px 0; text-align: center; cursor: pointer; border: 1px solid #e5e5e5; transition: all 0.15s; display: flex; flex-direction: column; align-items: center; overflow: visible; }
.pr-dish-card:hover { border-color: #ff6b35; box-shadow: 0 2px 6px rgba(255,107,53,0.1); }
.pr-dc-emoji { font-size: 36px; height: 48px; width: 100%; display: flex; align-items: center; justify-content: center; }
.pr-dc-img { width: 100%; height: 80px; border-radius: 7px 7px 0 0; object-fit: cover; display: block; flex-shrink: 0; }
.pr-dc-name { font-size: 16px; font-weight: 700; line-height: 1.4; color: #222; text-align: center; padding: 6px 4px 0; }
.pr-dc-desc { font-size: 14px; color: #999; margin-bottom: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pr-dc-price { margin-top: auto; font-size: 16px; font-weight: 700; color: #d63031; padding: 2px 4px 4px; }
.pr-dc-qty { display: inline-block; margin-top: 4px; padding: 2px 10px; background: #ff6b35; color: #fff; border-radius: 10px; font-size: 14px; font-weight: 600; }

/* POS 弹窗 */
.pr-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.4); z-index: 500; display: flex; align-items: center; justify-content: center; }
#rptOverlay { align-items: flex-start; }
#rptStockOverlay { align-items: flex-start; }
.pr-panel { background: #fff; border-radius: 12px; width: 380px; max-height: 96vh; overflow-y: auto; box-shadow: 0 8px 30px rgba(0,0,0,0.2); }
.pr-panel-hd { display: flex; justify-content: space-between; align-items: center; padding: 14px 18px; border-bottom: 1px solid #f0f0f0; font-size: 15px; font-weight: 600; }
.pr-close { background: none; border: none; font-size: 18px; cursor: pointer; color: #999; }
.pr-close:hover { color: #333; }
.pr-panel-bd { padding: 16px 18px; }

/* 结账面板 */
.pr-checkout-panel { width: 440px; border-radius: 16px; }
.pr-checkout-items { margin-bottom: 0; max-height: 240px; overflow-y: auto; }
.pr-ck-hd { display: flex; justify-content: space-between; align-items: center; padding: 10px 0; font-size: 15px; font-weight: 600; border-bottom: 2px solid #f0f0f0; margin-bottom: 8px; }
.pr-ck-cnt { font-size: 14px; color: #999; font-weight: 400; }
.pr-ck-body { padding-bottom: 4px; }
.pr-checkout-row { display: flex; justify-content: space-between; padding: 8px 0; font-size: 14px; border-bottom: 1px dashed #f5f5f5; align-items: center; }
.pr-checkout-row.gift { color: #52c41a; }
.pr-checkout-row .name { flex: 1; }
.pr-checkout-row .price { color: #ff6b35; font-weight: 600; font-size: 14px; }
.pr-checkout-row.gift .price { color: #52c41a; }
.pr-ck-note { font-size: 14px; color: #ff6b35; background: #fff5f0; padding: 5px 10px; border-radius: 6px; margin: 6px 0; }
.pr-checkout-total { display: flex; justify-content: space-between; padding: 12px 0; font-size: 20px; font-weight: 700; border-top: 2px solid #eee; margin-bottom: 14px; }
.pr-checkout-total .val { color: #ff6b35; }
.pr-checkout-methods { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.pr-pay-method { padding: 14px; border: 2px solid #e5e5e5; border-radius: 10px; text-align: center; cursor: pointer; font-size: 14px; font-weight: 600; transition: all 0.15s; display: flex; align-items: center; justify-content: center; gap: 6px; }
.pr-pay-method:hover { border-color: #ff6b35; background: #fff5f0; }
.pr-pm-icon { font-size: 18px; }

/* 退菜/赠菜 */
.pr-reasons { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.pr-reason { padding: 8px 14px; border: 1px solid #ddd; border-radius: 20px; font-size: 14px; cursor: pointer; }
.pr-reason.selected { background: #ff6b35; color: #fff; border-color: #ff6b35; }
.pr-btn-danger { width: 100%; padding: 12px; background: #ff4d4f; color: #fff; border: none; border-radius: 8px; font-size: 14px; cursor: pointer; }
.pr-btn-primary { width: 100%; padding: 10px; background: #ff6b35; color: #fff; border: none; border-radius: 8px; font-size: 14px; margin-top: 12px; cursor: pointer; }

/* 赠菜列表 */
.pr-gift-item { display: flex; justify-content: space-between; align-items: center; padding: 10px 0; border-bottom: 1px solid #f5f5f5; cursor: pointer; font-size: 14px; }
.pr-gift-item:hover { color: #ff6b35; }

/* 操作员栏 */
.pr-operator-bar { display: flex; justify-content: space-between; align-items: center; padding: 6px 16px; background: #2c2c2c; color: rgba(255,255,255,0.7); font-size: 14px; }
.pr-op-name b { color: #ff6b35; font-weight: 600; }
.pr-op-info { font-family: monospace; }

/* 转台 */
.pr-tr-area { font-size: 14px; color: #999; padding: 8px 0 4px; font-weight: 600; }
.pr-tr-table { display: flex; align-items: center; justify-content: space-between; padding: 10px 12px; border: 1px solid #e5e5e5; border-radius: 8px; margin-bottom: 6px; cursor: pointer; font-size: 14px; transition: all 0.15s; }
.pr-tr-table:hover { border-color: #3195ff; background: #f0f7ff; }
.pr-tr-table.busy { opacity: 0.4; cursor: not-allowed; }
.pr-tr-seats { font-size: 14px; color: #999; }
.pr-tr-busy { font-size: 14px; color: #ff6b35; background: #fff5f0; padding: 2px 8px; border-radius: 10px; }

/* 备注 */
.pr-note-dish { font-size: 14px; color: #ff6b35; display: block; margin-bottom: 10px; }
.pr-note-input { width: 100%; height: 38px; border: 1px solid #e5e5e5; border-radius: 6px; padding: 0 12px; font-size: 14px; box-sizing: border-box; }

/* POS 分类标签容器 */
.pos-categories { display: flex; gap: 6px; padding: 8px 12px; background: #fff; overflow-x: auto; }

/* ================================================================
   会员中心（顾客端）
   ================================================================ */
.mb-container { max-width: 600px; margin: 0 auto; background: #fff; min-height: 100vh; }
.mb-topbar { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); padding: 16px 20px; color: #fff; display: flex; align-items: center; gap: 10px; }
.mb-tb-icon { font-size: 28px; }
.mb-tb-name { font-size: 18px; font-weight: 700; }
.mb-tb-sub { font-size: 14px; opacity: 0.8; margin-left: auto; }
.mb-card { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); margin: -1px 16px 0; border-radius: 0 0 16px 16px; padding: 16px 20px 20px; color: #fff; }
.mb-card-header { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.mb-avatar { width: 48px; height: 48px; background: rgba(255,255,255,.2); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 28px; }
.mb-name { font-size: 18px; font-weight: 700; }
.mb-level { font-size: 14px; opacity: 0.85; margin-top: 2px; }
.mb-balance-row { display: flex; gap: 12px; background: rgba(255,255,255,.15); border-radius: 10px; padding: 12px 16px; }
.mb-bal-item { flex: 1; text-align: center; }
.mb-expiry-row { display: flex; justify-content: space-between; align-items: center; padding: 8px 16px 0; font-size: 14px; }
.mb-expiry-text { color: #27ae60; }
.mb-discount-tag { background: #ff6b35; color: #fff; padding: 2px 8px; border-radius: 10px; font-size: 14px; font-weight: 600; }
.mb-open-btn { margin: 12px 16px 0; padding: 10px; text-align: center; background: linear-gradient(135deg,#ff6b35,#e55a2b); color: #fff; border-radius: 10px; font-size: 14px; font-weight: 600; cursor: pointer; transition: all .2s; }
.mb-open-btn:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(255,107,53,.3); }
.mb-mp-card button:disabled { opacity: 0.6; cursor: not-allowed; }
.mb-bal-label { font-size: 14px; opacity: 0.75; display: block; margin-bottom: 4px; }
.mb-bal-val { font-size: 18px; font-weight: 700; display: block; }
.mb-actions { display: flex; gap: 10px; padding: 16px; }
.mb-action-btn { flex: 1; background: #f8f9fb; border-radius: 12px; padding: 12px 8px; text-align: center; cursor: pointer; font-size: 14px; color: #444; transition: all .2s; border: none; display: flex; flex-direction: column; gap: 4px; align-items: center; }
.mb-action-btn:hover { background: #eef0f5; transform: translateY(-1px); }
.mb-action-btn span:first-child { font-size: 22px; }
.mb-section { padding: 0 16px 16px; }
.mb-sect-hd { font-size: 15px; font-weight: 700; color: #333; padding: 16px 0 10px; }
.mb-order-list { display: flex; flex-direction: column; gap: 8px; }
.mb-order-item { background: #f8f9fb; border-radius: 10px; padding: 12px; display: flex; justify-content: space-between; align-items: center; }
.mb-oi-left { display: flex; flex-direction: column; gap: 4px; }
.mb-oi-name { font-size: 14px; color: #333; }
.mb-oi-info { font-size: 14px; color: #999; }
.mb-oi-amount { font-size: 16px; font-weight: 700; color: #e74c3c; }

/* ================================================================
   员工后台（PC端完整后台）
   ================================================================ */
.emp-page { padding: 0 !important; max-width: none !important; }
.emp-container { background: #f0f2f5; min-height: 100vh; }
.emp-topbar { background: #1a1a2e; color: #fff; padding: 0 20px; display: flex; align-items: center; height: 50px; }
.emp-tb-left { display: flex; align-items: center; gap: 8px; margin-right: 20px; }
.emp-tb-logo { font-size: 22px; }
.emp-tb-title { font-size: 15px; font-weight: 700; white-space: nowrap; }
.emp-tb-center { display: flex; gap: 2px; flex: 1; justify-content: center; }
.emp-nav-item { padding: 8px 14px; font-size: 14px; cursor: pointer; border-radius: 6px; transition: all .2s; white-space: nowrap; color: rgba(255,255,255,.7); }
.emp-nav-item:hover { background: rgba(255,255,255,.1); color: #fff; }
.emp-nav-item.active { background: #ff6b35; color: #fff; }
.emp-tb-right { display: flex; align-items: center; gap: 12px; margin-left: 16px; font-size: 14px; color: rgba(255,255,255,.7); }
.emp-time { font-family: monospace; }
.emp-user { color: #ff6b35; font-weight: 600; }

/* 面板 */
.emp-panel { display: none; padding: 16px 20px; }
.emp-panel.active { display: block; }

/* 仪表盘 */
.emp-dash-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 16px; }
.emp-stat-card { background: #fff; border-radius: 10px; padding: 16px; display: flex; justify-content: space-between; align-items: center; box-shadow: 0 1px 3px rgba(0,0,0,.05); }
.emp-stat-info { display: flex; flex-direction: column; gap: 4px; }
.emp-stat-label { font-size: 14px; color: #999; }
.emp-stat-value { font-size: 24px; font-weight: 700; color: #333; }
.emp-stat-icon { font-size: 32px; opacity: .85; }
.emp-dash-row { display: flex; gap: 12px; margin-bottom: 16px; }
.emp-dash-card { background: #fff; border-radius: 10px; padding: 16px; flex: 1; box-shadow: 0 1px 3px rgba(0,0,0,.05); }
.emp-dc-hd { font-size: 14px; font-weight: 700; color: #333; margin-bottom: 12px; }
.emp-chart-bar { display: flex; align-items: flex-end; gap: 8px; height: 160px; padding: 0 4px; }
.emp-chart-col { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 6px; }
.emp-chart-bar-fill { width: 100%; background: linear-gradient(180deg, #ff6b35, #ff8a65); border-radius: 4px 4px 0 0; transition: height .4s; min-height: 4px; }
.emp-chart-label { font-size: 14px; color: #999; }
.emp-chart-val { font-size: 14px; color: #666; font-weight: 600; }
.emp-top-list { display: flex; flex-direction: column; gap: 6px; }
.emp-top-item { display: flex; justify-content: space-between; align-items: center; padding: 6px 0; border-bottom: 1px solid #f5f5f5; font-size: 14px; }
.emp-top-item:last-child { border: none; }
.emp-top-name { color: #333; }
.emp-top-cnt { color: #999; }
.emp-top-bar-wrap { flex: 1; height: 6px; background: #f0f0f0; border-radius: 3px; margin: 0 8px; overflow: hidden; }
.emp-top-bar-fill { height: 100%; background: #ff6b35; border-radius: 3px; }
.emp-recent-orders { display: flex; flex-direction: column; gap: 4px; }
.emp-ro-item { display: flex; justify-content: space-between; align-items: center; padding: 8px 12px; background: #f8f9fb; border-radius: 6px; font-size: 14px; }
.emp-ro-table { font-weight: 600; color: #ff6b35; min-width: 40px; }
.emp-ro-dishes { flex: 1; color: #333; margin: 0 8px; }
.emp-ro-amt { font-weight: 700; color: #333; }
.emp-ro-time { color: #999; font-size: 14px; }

/* 桌台管理 */
.emp-tbl-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.emp-tbl-tabs { display: flex; gap: 6px; }
.emp-tbl-tab { padding: 6px 16px; background: #fff; border-radius: 20px; font-size: 14px; cursor: pointer; border: 1px solid #e0e0e0; }
.emp-tbl-tab.active { background: #ff6b35; color: #fff; border-color: #ff6b35; }
.emp-tbl-actions { display: flex; gap: 6px; }
.emp-btn-sm { padding: 6px 14px; font-size: 14px; border: 1px solid #d9d9d9; background: #fff; border-radius: 6px; cursor: pointer; transition: all .2s; }
.emp-btn-sm:hover { border-color: #ff6b35; color: #ff6b35; }

.emp-btn-ok { background: #16a34a; color: #fff; border-color: #16a34a; }
.emp-btn-ok:hover { background: #15803d; }
.emp-btn-no { background: #e74c3c; color: #fff; border-color: #e74c3c; }
.emp-btn-no:hover { background: #c0392b; }
.emp-section { background: #fff; border-radius: 12px; padding: 16px 20px; margin-bottom: 16px; box-shadow: 0 1px 3px rgba(0,0,0,.05); }
.emp-section-hd { font-size: 15px; font-weight: 700; color: #333; margin-bottom: 12px; padding-bottom: 8px; border-bottom: 1px solid #f0f0f0; }
.emp-config-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.emp-config-card { background: #f8f9fb; border-radius: 10px; padding: 14px; }
.emp-cc-hd { font-size: 14px; font-weight: 600; margin-bottom: 10px; }
.emp-cc-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; font-size: 14px; color: #555; }
.emp-cc-row input { border: 1px solid #ddd; border-radius: 6px; padding: 4px 6px; font-size: 14px; }
.emp-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.emp-table th { background: #f8f9fb; padding: 10px 12px; text-align: left; font-weight: 600; color: #666; border-bottom: 2px solid #eee; white-space: nowrap; }
.emp-table td { padding: 10px 12px; border-bottom: 1px solid #f0f0f0; }
.emp-table tr:hover td { background: #fafafa; }
.emp-dash-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 16px; }
.emp-stat-card { background: #fff; border-radius: 10px; padding: 16px; display: flex; justify-content: space-between; align-items: center; box-shadow: 0 1px 3px rgba(0,0,0,.05); }
.emp-stat-info { display: flex; flex-direction: column; }
.emp-stat-label { font-size: 14px; color: #999; margin-bottom: 4px; }
.emp-stat-value { font-size: 22px; font-weight: 700; color: #333; }
.emp-stat-icon { font-size: 32px; }
@media (max-width: 768px) {
  .emp-config-grid { grid-template-columns: 1fr; }
  .emp-dash-stats { grid-template-columns: repeat(2, 1fr); }
}
.emp-btn-print { background: #ff6b35; color: #fff; border-color: #ff6b35; }
.emp-btn-print:hover { background: #e85d2a; }
.emp-btn-primary { padding: 8px 20px; font-size: 14px; background: #ff6b35; color: #fff; border: none; border-radius: 6px; cursor: pointer; font-weight: 600; }
.emp-btn-primary:hover { background: #e85d2a; }
.emp-btn-pay { padding: 8px 20px; font-size: 14px; background: #52c41a; color: #fff; border: none; border-radius: 6px; cursor: pointer; font-weight: 600; }
.emp-btn-pay:hover { background: #45a815; }
.emp-btn-cancel { padding: 8px 20px; font-size: 14px; background: #f5f5f5; color: #666; border: 1px solid #d9d9d9; border-radius: 6px; cursor: pointer; }
.emp-btn-danger { padding: 8px 20px; font-size: 14px; background: #e74c3c; color: #fff; border: none; border-radius: 6px; cursor: pointer; font-weight: 600; }
.emp-tbl-legend { display: flex; gap: 16px; margin-bottom: 12px; font-size: 14px; color: #666; align-items: center; }
.emp-legend { display: flex; align-items: center; gap: 4px; }
.emp-legend-dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }
.emp-legend-dot.free { background: #52c41a; }
.emp-legend-dot.occupied { background: #faad14; }
.emp-legend-dot.ordered { background: #f5222d; }
.emp-legend-dot.settled { background: #d9d9d9; }
.emp-tbl-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 12px; }
.emp-tbl-card { background: #fff; border-radius: 10px; padding: 16px; text-align: center; cursor: pointer; border: 2px solid transparent; box-shadow: 0 1px 3px rgba(0,0,0,.05); transition: all .2s; }
.emp-tbl-card:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,.1); }
.emp-tbl-card.free { border-color: #52c41a; }
.emp-tbl-card.occupied { border-color: #faad14; background: #fffbe6; }
.emp-tbl-card.ordered { border-color: #f5222d; background: #fff1f0; }
.emp-tbl-card.settled { border-color: #d9d9d9; opacity: .7; }
.emp-tbl-card.selected { border-color: #1890ff; box-shadow: 0 0 0 3px rgba(24,144,255,.2); }
.emp-tbl-name { font-size: 20px; font-weight: 700; color: #333; }
.emp-tbl-seats { font-size: 14px; color: #999; margin: 4px 0; }
.emp-tbl-status { font-size: 14px; padding: 2px 8px; border-radius: 10px; display: inline-block; }
.emp-tbl-status.free { background: #f6ffed; color: #52c41a; }
.emp-tbl-status.occupied { background: #fffbe6; color: #faad14; }
.emp-tbl-status.ordered { background: #fff1f0; color: #f5222d; }
.emp-tbl-amt { font-size: 14px; color: #666; margin-top: 4px; }
.emp-tbl-timer { font-size: 14px; color: #999; }

/* 订单记录 */
.emp-ord-filter { display: flex; gap: 8px; margin-bottom: 12px; align-items: center; flex-wrap: wrap; }
.emp-filter-tab { padding: 6px 14px; background: #fff; border-radius: 16px; font-size: 14px; cursor: pointer; border: 1px solid #e0e0e0; }
.emp-filter-tab.active { background: #ff6b35; color: #fff; border-color: #ff6b35; }
.emp-ord-search { padding: 6px 14px; border: 1px solid #e0e0e0; border-radius: 16px; font-size: 14px; outline: none; width: 200px; margin-left: auto; }
.emp-ord-search:focus { border-color: #ff6b35; }
.emp-ord-list { display: flex; flex-direction: column; gap: 8px; }
.emp-ord-card { background: #fff; border-radius: 10px; padding: 14px 16px; box-shadow: 0 1px 3px rgba(0,0,0,.05); }
.emp-ord-card-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.emp-ord-no { font-weight: 700; color: #333; font-size: 14px; }
.emp-ord-table { color: #ff6b35; font-weight: 600; font-size: 14px; }
.emp-ord-status { font-size: 14px; padding: 2px 8px; border-radius: 10px; }
.emp-ord-status.paid { background: #f6ffed; color: #52c41a; }
.emp-ord-status.unpaid { background: #fffbe6; color: #faad14; }
.emp-ord-status.closed { background: #fff1f0; color: #f5222d; }
.emp-ord-items { font-size: 14px; color: #666; margin-bottom: 4px; }
.emp-ord-footer { display: flex; justify-content: space-between; align-items: center; }
.emp-ord-total { font-size: 16px; font-weight: 700; color: #e74c3c; }
.emp-ord-time { font-size: 14px; color: #999; }
.emp-ord-actions { display: flex; gap: 6px; }

/* 收银结算 */
.emp-stl-summary { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 16px; }
.emp-stl-card { background: #fff; border-radius: 10px; padding: 16px; text-align: center; box-shadow: 0 1px 3px rgba(0,0,0,.05); }
.emp-stl-label { font-size: 14px; color: #999; }
.emp-stl-val { font-size: 22px; font-weight: 700; color: #333; margin-top: 4px; }
.emp-stl-list { display: flex; flex-direction: column; gap: 6px; }
.emp-stl-item { background: #fff; border-radius: 8px; padding: 12px 14px; display: flex; justify-content: space-between; align-items: center; box-shadow: 0 1px 3px rgba(0,0,0,.05); font-size: 14px; }
.emp-stl-table { font-weight: 600; color: #ff6b35; min-width: 50px; }
.emp-stl-method { padding: 2px 8px; border-radius: 10px; font-size: 14px; background: #f0f0f0; }
.emp-stl-method.wechat { background: #f0fff0; color: #52c41a; }
.emp-stl-method.alipay { background: #f0f5ff; color: #1677ff; }
.emp-stl-method.cash { background: #fffbe6; color: #d48806; }
.emp-stl-total { font-weight: 700; color: #e74c3c; }
.emp-stl-time { color: #999; font-size: 14px; }

/* 会员管理 */
.emp-mem-toolbar { display: flex; gap: 8px; margin-bottom: 12px; align-items: center; }
.emp-mem-search { flex: 1; padding: 8px 14px; border: 1px solid #e0e0e0; border-radius: 8px; font-size: 14px; outline: none; max-width: 300px; }
.emp-mem-search:focus { border-color: #ff6b35; }
.emp-mem-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 12px; }
.emp-mem-stat { background: #fff; border-radius: 10px; padding: 14px; text-align: center; box-shadow: 0 1px 3px rgba(0,0,0,.05); }
.emp-mem-list { display: flex; flex-direction: column; gap: 6px; }
.emp-mem-item { background: #fff; border-radius: 10px; padding: 14px 16px; display: flex; justify-content: space-between; align-items: center; box-shadow: 0 1px 3px rgba(0,0,0,.05); }
.emp-mem-left { display: flex; flex-direction: column; gap: 4px; }
.emp-mem-name { font-size: 14px; font-weight: 600; color: #333; }
.emp-mem-phone { font-size: 14px; color: #999; }
.emp-mem-level { font-size: 14px; }
.emp-mem-level.vip1 { color: #faad14; }
.emp-mem-level.vip2 { color: #1677ff; }
.emp-mem-level.vip3 { color: #722ed1; }
.emp-mem-right { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.emp-mem-balance { font-size: 14px; font-weight: 700; color: #e74c3c; }
.emp-mem-points { font-size: 14px; color: #999; }
.emp-mem-actions { display: flex; gap: 4px; }
.emp-mem-act { padding: 4px 10px; font-size: 14px; border: 1px solid #d9d9d9; background: #fff; border-radius: 4px; cursor: pointer; }
.emp-mem-act:hover { border-color: #ff6b35; color: #ff6b35; }

/* 员工后台弹窗 */
.emp-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,.5); z-index: 10000; display: flex; align-items: center; justify-content: center; }
.emp-panel-dlg { background: #fff; border-radius: 12px; width: 500px; max-width: 90vw; max-height: 96vh; overflow-y: auto; box-shadow: 0 8px 30px rgba(0,0,0,.2); }
.emp-dlg-hd { padding: 14px 18px; border-bottom: 1px solid #f0f0f0; font-size: 15px; font-weight: 700; display: flex; justify-content: space-between; align-items: center; }
.emp-dlg-close { background: none; border: none; font-size: 18px; cursor: pointer; color: #999; padding: 0 4px; }
.emp-dlg-close:hover { color: #333; }
.emp-dlg-bd { padding: 16px 18px; }
.emp-dlg-ft { padding: 12px 18px; border-top: 1px solid #f0f0f0; display: flex; justify-content: flex-end; gap: 8px; align-items: center; }
.emp-dlg-total { font-size: 18px; font-weight: 700; color: #e74c3c; margin-right: 10px; }
.emp-form-row { margin-bottom: 12px; }
.emp-form-row label { display: block; font-size: 14px; color: #666; margin-bottom: 4px; font-weight: 600; }
.emp-input { width: 100%; padding: 8px 12px; border: 1px solid #d9d9d9; border-radius: 6px; font-size: 14px; outline: none; box-sizing: border-box; }
.emp-input:focus { border-color: #ff6b35; }
.emp-topup-opts { display: flex; gap: 8px; flex-wrap: wrap; }
.emp-topup-opt { padding: 8px 16px; border: 1px solid #d9d9d9; border-radius: 8px; cursor: pointer; font-size: 14px; font-weight: 600; transition: all .2s; }
.emp-topup-opt:hover, .emp-topup-opt.active { background: #ff6b35; color: #fff; border-color: #ff6b35; }

/* 预结账/打印弹窗内容 */
.emp-ck-row { display: flex; justify-content: space-between; padding: 6px 0; font-size: 14px; border-bottom: 1px solid #f5f5f5; }
.emp-ck-row.gift { color: #52c41a; }
.emp-ck-total { font-size: 18px; font-weight: 700; text-align: right; padding: 10px 0; }
.emp-ck-note { font-size: 14px; color: #999; padding: 6px 0; }
.emp-ck-hd { font-size: 14px; font-weight: 700; margin-bottom: 8px; }

/* 打印票据样式 */
.emp-print-receipt { background: #fffef5; border: 1px dashed #ccc; padding: 16px; font-family: 'Courier New', monospace; font-size: 14px; }
.emp-print-receipt h4 { text-align: center; margin: 0 0 8px; }
.emp-print-receipt .line { border-top: 1px dashed #ccc; margin: 6px 0; }

@media (max-width: 768px) {
    .emp-topbar { padding: 0 8px; }
    .emp-tb-title { font-size: 14px; }
    .emp-tb-center { display: none; }
    .emp-dash-stats { grid-template-columns: repeat(2, 1fr); }
    .emp-dash-row { flex-direction: column; }
    .emp-tbl-grid { grid-template-columns: repeat(3, 1fr); }
    .emp-stl-summary { grid-template-columns: repeat(2, 1fr); }
}

/* ====== 报表按钮 ====== */
.pr-rpt-btn { white-space: nowrap; transition: all 0.15s; }
.pr-rpt-btn:hover { filter: brightness(1.1); transform: translateY(-1px); }
.pr-report-bar { border-top: 1px solid #eee; padding-top: 6px !important; }

/* ====== 报表弹窗表格 ====== */
#rptBody table { font-size: 13px; }
#rptBody th { font-weight: 600; color: #555; }
#rptStockList table { font-size: 16px; }

/* ====== 入库进货 ====== */
#rptStockCat { appearance: auto; }


#rptStockTotal::placeholder {
    color: rgba(231,76,60,0.3);
    font-weight: 400;
    font-size: 13px;
}
#rptStockTotal::-webkit-inner-spin-button,
#rptStockTotal::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
#rptStockTotal {
    -moz-appearance: textfield;
}


#rptOverlay .pr-panel, #rptStockOverlay .pr-panel { height: 100vh; max-height: none; }

/* ===== 打印机配置面板 ===== */
.printer-config-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,0.45); z-index: 10000;
  display: none; align-items: center; justify-content: center;
}
.printer-config-panel {
  background: #fff; border-radius: 12px; width: 460px; max-width: 95vw;
  max-height: 85vh; overflow-y: auto; box-shadow: 0 8px 40px rgba(0,0,0,0.2);
}
.pcp-hd {
  display: flex; justify-content: space-between; align-items: center;
  padding: 16px 20px; border-bottom: 1px solid #eee; font-size: 16px; font-weight: 700;
}
.pcp-close { background: none; border: none; font-size: 20px; cursor: pointer; color: #999; }
.pcp-bd { padding: 16px 20px; }
.pcp-section { margin-bottom: 16px; }
.pcp-section-title { font-size: 14px; font-weight: 700; color: #333; margin-bottom: 10px; padding-bottom: 6px; border-bottom: 1px solid #f0f0f0; }
.pcp-row { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.pcp-row label { width: 70px; font-size: 13px; color: #666; flex-shrink: 0; text-align: right; }
.pcp-row input, .pcp-row select { flex: 1; padding: 6px 10px; border: 1px solid #d9d9d9; border-radius: 6px; font-size: 13px; outline: none; }
.pcp-row input:focus, .pcp-row select:focus { border-color: #ff6b35; }
.pcp-row .pcp-switch { flex: none; width: 44px; height: 24px; border-radius: 12px; background: #ccc; position: relative; cursor: pointer; transition: background .2s; }
.pcp-row .pcp-switch.on { background: #ff6b35; }
.pcp-row .pcp-switch::after { content: ''; position: absolute; top: 2px; left: 2px; width: 20px; height: 20px; border-radius: 50%; background: #fff; transition: left .2s; }
.pcp-row .pcp-switch.on::after { left: 22px; }
.pcp-ft { padding: 12px 20px; border-top: 1px solid #eee; display: flex; justify-content: flex-end; gap: 8px; }
.pcp-btn { padding: 7px 20px; border-radius: 6px; font-size: 14px; cursor: pointer; border: none; }
.pcp-btn-save { background: #ff6b35; color: #fff; }
.pcp-btn-cancel { background: #f5f5f5; color: #666; }
.pcp-btn-test { background: #3195ff; color: #fff; font-size: 12px; padding: 4px 10px; border-radius: 4px; cursor: pointer; border: none; }

/* POS打印按钮 */
.printer-gear { cursor: pointer; font-size: 16px; padding: 4px 8px; border-radius: 4px; border: none; background: #f5f5f5; }
.printer-gear:hover { background: #e8e8e8; }

/* ===== 打印专用样式 ===== */
@media print {
  body * { visibility: hidden; }
  .print-area, .print-area * { visibility: visible; }
  .print-area { position: absolute; left: 0; top: 0; width: 100%; }
  @page { margin: 2mm; size: auto; }
}

.pr-table-card.occupied .pr-tc-info { color: #fff !important; }
.pr-table-card.occupied .pr-tc-info .amt { color: #fff !important; }
.pr-table-card.occupied .pr-tc-info .free { color: #ffe0e0 !important; }

.pr-dc-stock{font-size:16px;color:#222;text-align:center;margin-top:1px}
/* 菜品管理弹窗 - 全局加粗 */
#prDishMgmtBody,
#prDishMgmtBody * { font-weight: 600 !important; }
#prDishMgmtBody input,
#prDishMgmtBody select,
#prDishMgmtBody textarea { font-weight: 500 !important; }
#prDishMgmtBody .pr-mgmt-light { font-weight: 400 !important; }

/* ===== 会员管理表格（grid 布局） ===== */
.emp-mem-hdr { display: grid; grid-template-columns: 60px 130px 70px 70px 85px 85px 65px 78px; gap: 6px; align-items: center; padding: 12px 16px; background: #f5f5f5; border-bottom: 2px solid #e0e0e0; font-size: 16px; font-weight: 600; color: #555; border-radius: 10px 10px 0 0; }
.emp-mem-row { display: grid; grid-template-columns: 60px 130px 70px 70px 85px 85px 65px 78px; gap: 6px; align-items: center; padding: 14px 16px; background: #fff; border-bottom: 1px solid #e8e8e8; font-size: 16px; }
.emp-mem-row:last-child { border-bottom: none; }
.emp-mem-cell { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.emp-mem-cell.c { text-align: center; }
.emp-mem-cell.r { text-align: right; }
.emp-mem-lv-tag { display: inline-block; padding: 3px 12px; border-radius: 12px; font-weight: 600; font-size: 14px; line-height: 1.4; }
.emp-mem-credit-btn { font-size: 14px; padding: 5px 12px; background: #3195ff; color: #fff; border: none; border-radius: 6px; cursor: pointer; font-weight: 600; line-height: 1.4; }
.emp-mem-credit-btn:hover { background: #2580e0; }
.emp-mem-topup-btn { font-size: 14px; padding: 5px 12px; background: #52c41a; color: #fff; border: none; border-radius: 6px; cursor: pointer; font-weight: 600; line-height: 1.4; }
.emp-mem-topup-btn:hover { background: #45a815; }
.emp-mem-edit-btn { font-size: 14px; padding: 5px 10px; background: #fff; color: #999; border: 1px solid #ddd; border-radius: 6px; cursor: pointer; line-height: 1.4; }
.emp-mem-edit-btn:hover { border-color: #ff6b35; color: #ff6b35; }
.emp-mem-list-wrap { background: #fff; border-radius: 0 0 10px 10px; overflow: hidden; }
.emp-mem-list-wrap .emp-mem-row:last-child { border-radius: 0; }
.emp-mem-empty { text-align: center; color: #999; padding: 40px; background: #fff; border-radius: 0 0 10px 10px; }

/* ===== 退出全屏按钮 ===== */
.exit-kiosk-btn {
  position: fixed; bottom: 12px; right: 12px; z-index: 99998;
  width: 36px; height: 36px; border-radius: 50%;
  background: rgba(0,0,0,0.25); color: rgba(255,255,255,0.5);
  border: none; font-size: 18px; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: all 0.2s; user-select: none;
}
.exit-kiosk-btn:hover {
  background: rgba(220,38,38,0.85); color: #fff;
  width: 40px; height: 40px; bottom: 10px; right: 10px;
}
