*{box-sizing:border-box}
:root{font-family:"Microsoft YaHei",Arial,sans-serif;color:#222;background:#f4f5f7}
body{margin:0;min-height:100vh}
button,input,select{font:inherit}
button{border:0;border-radius:10px;padding:9px 13px;cursor:pointer}
button.primary{background:#ff6b00;color:#fff}
button:disabled{opacity:.45;cursor:not-allowed}
header{position:sticky;top:0;z-index:20;background:#111;color:#fff;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}
h1{margin:0;font-size:22px}
header p{margin:3px 0 0;color:#bbb;font-size:13px}
.header-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
header button{background:#fff;color:#111}
#soundBtn.sound-on{background:#e9fff0;color:#16863b}
#soundBtn.sound-off{background:#fff1f0;color:#c62828}
.main-nav,.sub-nav{position:sticky;z-index:15;display:flex;gap:8px;overflow:auto;padding:10px;background:#fff;border-bottom:1px solid #eee}
.main-nav{top:72px}
.sub-nav{top:125px}
.main-nav button,.sub-nav button{white-space:nowrap;background:#eee}
.main-nav button.active,.sub-nav button.active{background:#ff6b00;color:#fff}
.nav-count{display:inline-flex;min-width:20px;height:20px;padding:0 6px;align-items:center;justify-content:center;margin-left:4px;border-radius:999px;background:#e53935;color:#fff;font-size:12px;font-weight:700}
main{max-width:1120px;margin:auto;padding:12px}
.summary{margin-bottom:10px;color:#666}
.sessions{display:grid;gap:14px}
.session{background:#fff;border-radius:16px;padding:15px;box-shadow:0 3px 14px rgba(0,0,0,.07)}
.session.pending{border:2px solid #ff6b00;box-shadow:0 0 0 4px rgba(255,107,0,.10),0 8px 24px rgba(255,107,0,.16);animation:pendingPulse 1.8s ease-in-out infinite}
.session-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.table-no{color:#ff6b00;font-size:24px;font-weight:800}
.session-meta,.time{font-size:12px;color:#999}
.status{display:inline-block;margin-top:6px;padding:4px 9px;border-radius:999px;background:#fff2e8;color:#ff6b00;font-size:12px;font-weight:700}
.new-badge{display:inline-block;margin-left:7px;padding:3px 7px;border-radius:999px;background:#e53935;color:#fff;font-size:11px;font-weight:700}
.session-items{margin:12px 0;border-top:1px solid #eee;border-bottom:1px solid #eee;padding:8px 0}
.item{display:flex;justify-content:space-between;gap:10px;padding:6px 0}
.total{font-size:20px;font-weight:800}
.session-actions,.batch-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.session-actions button,.batch-actions button{background:#eee}
.session-actions button.primary,.batch-actions button.primary{background:#ff6b00;color:#fff}
.batches{margin-top:13px;display:grid;gap:9px}
.batch{border:1px solid #e8e8e8;border-radius:12px;padding:11px;background:#fafafa}
.batch.pending{border-color:#ff6b00;background:#fff8f1}
.batch-head{display:flex;justify-content:space-between;gap:10px}
.batch-title{font-weight:700}
.batch-type{color:#ff6b00}
.batch-note{margin-top:8px;padding:8px;border-radius:8px;background:#fff1d7}
.batch-items{margin-top:8px}
.empty{text-align:center;color:#999;padding:80px 20px}
.finance-tools,.food-tools{position:sticky;top:125px;z-index:14;display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px;background:#fff;border-bottom:1px solid #eee}
.finance-tools input,.food-tools input,.food-tools select{height:38px;border:1px solid #ddd;border-radius:9px;padding:0 10px}
.food-tools input{min-width:220px;flex:1}
.food-list{display:grid;gap:10px}
.food-row{background:#fff;border-radius:13px;padding:12px;display:grid;grid-template-columns:minmax(160px,1.4fr) minmax(100px,1fr) 90px 80px 90px;align-items:center;gap:10px;box-shadow:0 2px 10px rgba(0,0,0,.05)}
.food-name{font-weight:700}
.food-desc{font-size:12px;color:#999;margin-top:4px}
.food-status.on{color:#16863b}.food-status.off{color:#c62828}
.modal{position:fixed;inset:0;z-index:40;background:rgba(0,0,0,.48);display:flex;align-items:center;justify-content:center;padding:16px}
.modal.hidden,.hidden{display:none}
.modal-card{width:min(500px,100%);background:#fff;border-radius:17px;padding:18px;box-shadow:0 20px 60px rgba(0,0,0,.25)}
.modal-card h2{margin:0 0 14px}
.modal-card label{display:block;margin-top:11px;font-size:14px}
.modal-card input{width:100%;height:42px;margin-top:5px;border:1px solid #ddd;border-radius:9px;padding:0 10px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.switch-line{display:flex!important;align-items:center;gap:8px}
.switch-line input{width:auto;height:auto;margin:0}
.modal-actions{display:flex;gap:9px;margin-top:16px}
.toast{position:fixed;left:50%;bottom:30px;z-index:60;transform:translateX(-50%);background:#111;color:#fff;padding:10px 16px;border-radius:999px;display:none}
.print-area{display:none}
@keyframes pendingPulse{
  0%,100%{box-shadow:0 0 0 4px rgba(255,107,0,.08),0 8px 24px rgba(255,107,0,.12)}
  50%{box-shadow:0 0 0 8px rgba(255,107,0,.16),0 10px 28px rgba(255,107,0,.22)}
}
@media(min-width:850px){.sessions{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){
  header{align-items:flex-start}
  .main-nav{top:92px}.sub-nav,.finance-tools,.food-tools{top:145px}
  .food-row{grid-template-columns:1fr 1fr}
  .food-row .food-main{grid-column:1/-1}
}
@media(prefers-reduced-motion:reduce){.session.pending{animation:none}}
@media print{
  @page{size:58mm auto;margin:3mm}
  body>*:not(#printArea){display:none!important}
  #printArea{display:block!important;width:52mm;color:#000;background:#fff;font-family:Arial,"Microsoft YaHei",sans-serif;font-size:11px}
  .receipt-title{text-align:center;font-size:17px;font-weight:800;margin-bottom:4px}
  .receipt-sub{text-align:center;margin-bottom:8px}
  .receipt-line{border-top:1px dashed #000;margin:7px 0}
  .receipt-row{display:flex;justify-content:space-between;gap:5px;padding:2px 0}
  .receipt-big{font-size:19px;font-weight:800}
  .receipt-note{font-weight:700;margin-top:7px}
}


/* V2.2：语音播报、改单退菜、沽清、分类下拉 */
button.danger{background:#fff0f0!important;color:#c62828!important}
.adjustments{margin-top:12px;border-top:1px dashed #ddd;padding-top:10px}
.adjustment-heading{font-weight:800;margin-bottom:7px}
.adjustment-record{padding:9px 10px;margin-top:7px;border-radius:10px;background:#fff4f1;border-left:4px solid #e65b35;font-size:13px}
.adjustment-record-head{display:flex;justify-content:space-between;gap:8px;font-weight:700}
.adjustment-detail{margin-top:5px;color:#555}
.adjustment-reason{margin-top:5px;color:#8a3a25}
.sold-out-badge{display:inline-block;margin-left:5px;padding:2px 6px;border-radius:999px;background:#222;color:#fff;font-size:11px}
.modal-tip{margin:-4px 0 10px;color:#888;font-size:13px}
.adjust-modal-card{width:min(580px,100%)}
.adjust-items{display:grid;gap:8px;max-height:42vh;overflow:auto}
.adjust-row{display:grid;grid-template-columns:minmax(0,1fr) 92px;gap:10px;align-items:center;padding:10px;border:1px solid #e6e6e6;border-radius:11px;background:#fafafa}
.adjust-row-name{font-weight:700}
.adjust-row-meta{font-size:12px;color:#999;margin-top:3px}
.adjust-row input{height:40px!important;margin:0!important;text-align:center}
.modal-card select{width:100%;height:42px;margin-top:5px;border:1px solid #ddd;border-radius:9px;padding:0 10px;background:#fff}
.sold-out-line{padding:10px;border-radius:10px;background:#fff4e5}
.food-row-actions{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
@media(max-width:720px){
  .adjust-row{grid-template-columns:minmax(0,1fr) 80px}
}


/* V2.3：老板手动新建订单 */
.manual-order-launch{
  margin-left:auto;
  background:#111!important;
  color:#fff!important;
}
.manual-order-card{
  width:min(920px,100%);
  max-height:92vh;
  overflow:auto;
}
.manual-title-row{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
}
.manual-title-row h2{margin:0 0 8px}
.manual-top{
  display:grid;
  grid-template-columns:180px minmax(0,1fr);
  gap:12px;
  margin-top:8px;
}
.manual-top label,
.manual-search-row label{
  display:block;
}
.manual-top select,
.manual-top input,
.manual-search-row input,
.manual-search-row select{
  width:100%;
  height:42px;
  margin-top:5px;
  border:1px solid #ddd;
  border-radius:9px;
  padding:0 10px;
  background:#fff;
}
.manual-search-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) 180px;
  gap:10px;
  margin:14px 0 10px;
}
.manual-search-row input,
.manual-search-row select{margin-top:0}
.manual-order-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 310px;
  gap:14px;
  align-items:start;
}
.manual-section-title{
  font-weight:800;
  margin-bottom:8px;
}
.manual-food-list{
  max-height:50vh;
  overflow:auto;
  display:grid;
  gap:8px;
  padding-right:3px;
}
.manual-food-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) 76px;
  gap:10px;
  align-items:center;
  padding:10px 11px;
  border:1px solid #e6e6e6;
  border-radius:11px;
  background:#fafafa;
}
.manual-food-name{font-weight:700}
.manual-food-meta{
  margin-top:3px;
  color:#888;
  font-size:12px;
}
.manual-food-add{
  background:#ff6b00!important;
  color:#fff!important;
}
.manual-cart-panel{
  position:sticky;
  top:0;
  padding:12px;
  border-radius:13px;
  background:#f7f7f7;
}
.manual-cart-list{
  max-height:38vh;
  overflow:auto;
  display:grid;
  gap:8px;
}
.manual-cart-empty{
  padding:35px 10px;
  text-align:center;
  color:#999;
}
.manual-cart-row{
  padding:9px;
  border-radius:10px;
  background:#fff;
  border:1px solid #e6e6e6;
}
.manual-cart-name{
  font-weight:700;
  margin-bottom:7px;
}
.manual-cart-bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.manual-qty{
  display:flex;
  align-items:center;
  gap:7px;
}
.manual-qty button{
  width:31px;
  height:31px;
  padding:0;
  border-radius:8px;
  background:#eee;
  font-size:18px;
}
.manual-qty span{
  min-width:24px;
  text-align:center;
  font-weight:700;
}
.manual-cart-price{font-weight:700}
.manual-cart-total{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid #ddd;
  font-size:18px;
}
.manual-cart-total strong{
  color:#ff6b00;
  font-size:22px;
}
.manual-submit{
  width:100%;
  margin-top:12px;
  padding:12px;
  font-weight:800;
}
@media(max-width:760px){
  .manual-order-launch{margin-left:0}
  .manual-top,
  .manual-search-row,
  .manual-order-layout{
    grid-template-columns:1fr;
  }
  .manual-cart-panel{position:static}
  .manual-food-list{max-height:36vh}
  .manual-cart-list{max-height:30vh}
}
