/* ============================================================
 * 趣漫古·运营宝典 v5 样式层
 * 店铺选择 / 说明书 / 历史记录 / 新手引导 / 自动保存提示
 * ============================================================ */

/* ---- 店铺选择 ---- */
.shop-list { margin: 10px 0; }
.shop-item {
  display: flex; align-items: center; gap: 10px;
  padding: 13px 14px; margin: 8px 0;
  background: var(--card, #fff); border: 1px solid var(--border, #E5E7EB);
  border-radius: 12px; cursor: pointer;
  transition: transform .12s ease, box-shadow .12s ease;
}
.shop-item:active { transform: scale(.98); }
.shop-item .shop-ico { font-size: 22px; }
.shop-item b { flex: 1; font-size: 15px; color: var(--foreground, #1F2937); }
.shop-item em {
  font-style: normal; font-size: 12px; font-weight: 700;
  color: #0D7C5F; background: rgba(13, 124, 95, .1);
  padding: 3px 10px; border-radius: 999px;
}
.shop-item.cur { border-color: #0D7C5F; background: rgba(13, 124, 95, .06); }
.shop-add { margin: 14px 0 4px; padding-top: 12px; border-top: 1px dashed var(--border, #E5E7EB); }
.shop-add .form-row { margin-bottom: 10px; }

/* ---- 说明书 ---- */
.modal-body h3 {
  font-size: 15px; color: #0D7C5F; font-weight: 700; margin: 14px 0 6px;
  padding-left: 10px; border-left: 4px solid #0D7C5F;
}
.modal-body h3:first-child { margin-top: 0; }
.modal-body p { margin: 6px 0; font-size: 13.5px; line-height: 1.9; color: var(--foreground, #374151); }
.modal-body b { color: #111827; }

/* ---- 历史记录 ---- */
.his-month {
  background: var(--card, #fff); border: 1px solid var(--border, #E5E7EB);
  border-radius: 12px; padding: 10px; margin: 12px 0; overflow: hidden;
}
.his-mh {
  font-size: 13px; font-weight: 700; color: #0D7C5F;
  padding: 4px 4px 8px; border-bottom: 1px solid var(--border, #E5E7EB); margin-bottom: 6px;
}
.his-day {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 8px; border-radius: 8px; margin: 3px 0;
  background: var(--card2, #F9FAFB); cursor: pointer;
  transition: background .12s ease;
}
.his-day:active { background: rgba(13, 124, 95, .08); }
.his-day b { font-size: 13.5px; color: var(--foreground, #1F2937); min-width: 88px; }
.his-day span { flex: 1; font-size: 14px; font-weight: 700; color: #0D7C5F; }
.his-day em { font-style: normal; font-size: 12px; color: var(--muted-foreground, #9CA3AF); }
.his-detail { margin: 12px 0; }

/* ---- 新手引导卡 ---- */
.v5-guide {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  padding: 13px 14px; margin: 12px 0; border-radius: 14px;
  background: linear-gradient(135deg, #0D7C5F, #12A57E);
  color: #fff; box-shadow: 0 6px 18px rgba(13, 124, 95, .25);
}
.v5-guide .g-ico { font-size: 26px; }
.v5-guide .g-body { flex: 1; min-width: 200px; }
.v5-guide .g-body b { font-size: 14.5px; display: block; margin-bottom: 2px; }
.v5-guide .g-body small { font-size: 12px; opacity: .92; display: block; line-height: 1.7; }
.v5-guide .g-btn {
  background: #fff; color: #0D7C5F; font-size: 13px; font-weight: 700;
  border: none; border-radius: 999px; padding: 8px 16px; cursor: pointer;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .12);
}
.v5-guide .g-btn:active { transform: scale(.96); }

/* ---- 自动保存提示 ---- */
.stock-auto-hint {
  font-size: 11.5px; color: #0D7C5F; background: rgba(13, 124, 95, .08);
  padding: 3px 10px; border-radius: 999px; flex: 1;
}
.stock-add-row { display: flex; align-items: center; gap: 8px; margin: 6px 0 2px; flex-wrap: wrap; }

/* ---- 每日盘点添加按钮 ---- */
.v5-add-btn {
  display: inline-flex; align-items: center; gap: 4px;
  background: #0D7C5F; color: #fff; border: none;
  font-size: 13.5px; font-weight: 700; padding: 11px 16px;
  min-height: 44px;
  border-radius: 999px; cursor: pointer; box-shadow: 0 3px 10px rgba(13, 124, 95, .2);
}
.v5-add-btn:active { transform: scale(.96); }

/* ---- A4 导出菜单提示 ---- */
.v5-export-tip {
  font-size: 12px; color: var(--muted-foreground, #6B7280);
  line-height: 1.8; margin: 6px 0 10px; padding: 8px 10px;
  background: rgba(13, 124, 95, .05); border-radius: 8px;
}

/* ================= v15: 盘货页直接编辑 ================= */
.stock-card-right { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; flex: 0 0 auto; }
.stock-edit-btn {
  background: #fff; color: #0D7C5F; border: 1.5px solid #0D7C5F;
  font-size: 12px; font-weight: 700; padding: 5px 10px;
  border-radius: 999px; cursor: pointer; white-space: nowrap;
}
.stock-edit-btn:active { background: #EAF6F1; transform: scale(.96); }

/* 编辑弹窗（v22.1 重排：长标签竖排 + 输入框加高 + 关联菜品框加高，修主人反馈的排版问题） */
.esi-form { background: #F7FAF9; border-radius: 12px; padding: 10px 12px; margin-bottom: 10px; overflow: hidden; }
.esi-f-row { display: flex; align-items: center; gap: 8px; margin: 8px 0; min-width: 0; }
.esi-f-row > label { flex: 0 0 96px; font-size: 13px; color: #4B5563; font-weight: 600; line-height: 1.45; word-break: break-word; }
.esi-f-row input, .esi-f-row select {
  flex: 1 1 auto; min-width: 0; width: 100%; box-sizing: border-box;
  border: 1.5px solid #D1DDD8; border-radius: 8px;
  padding: 10px 12px; font-size: 15px; height: 46px; background: #fff; color: #17211E;
}
/* 竖排行：标签上、输入框下、说明再下 —— 长说明不再把输入框挤成一条缝 */
.esi-f-row.esi-f-col {
  flex-direction: column; align-items: stretch; gap: 6px;
  background: #fff; border: 1px solid #E3ECE8; border-radius: 10px; padding: 10px 12px;
}
.esi-f-row.esi-f-col > label { flex: none; font-size: 13.5px; }
.esi-f-row.esi-f-col input { flex: none; height: 48px; font-size: 16px; }
.esi-f-row .help-inline { display: block; flex: none; width: 100%; margin: 0; font-size: 11.5px; color: #6B7280; line-height: 1.6; word-break: break-word; }
.esi-3col { gap: 6px; align-items: flex-end; }
.esi-3col > div { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.esi-3col > div > input, .esi-3col > div > select { width: 100%; }
.esi-3col label { font-size: 12px; color: #6B7280; line-height: 1.35; }
.esi-3col input, .esi-3col select { height: 46px; font-size: 15px; padding: 10px 11px; }
.esi-sub { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; font-size: 13.5px; font-weight: 800; color: #0D7C5F; margin: 14px 0 8px; }
.esi-sub small { font-weight: 500; font-size: 11.5px; color: #6B7280; }
/* 关联菜品「框体」：加高 + 可滚动 + 行高够，文字看得清 */
.esi-list {
  max-height: min(42vh, 380px); min-height: 120px; overflow-y: auto; -webkit-overflow-scrolling: touch;
  display: flex; flex-direction: column; gap: 7px;
  background: #F2F7F5; border: 1.5px solid #DCE8E3; border-radius: 11px; padding: 9px;
}
.esi-row { display: flex; align-items: center; gap: 8px; background: #fff; border: 1px solid #E3ECE8; border-radius: 9px; padding: 9px 10px; min-height: 52px; box-sizing: border-box; }
.esi-row > b { flex: 1 1 auto; font-size: 13.5px; line-height: 1.35; color: #17211E; min-width: 0; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.esi-per { flex: 0 0 84px; width: 84px; height: 40px; box-sizing: border-box; border: 1.5px solid #D1DDD8; border-radius: 8px; padding: 6px 8px; font-size: 15px; text-align: right; }
.esi-cu { flex: 0 0 auto; font-size: 12px; color: #6B7280; min-width: 22px; text-align: center; }
.esi-x { flex: 0 0 auto; background: #FDECEA; color: #D64541; border: none; border-radius: 8px; width: 34px; height: 34px; font-size: 14px; font-weight: 700; cursor: pointer; }
.esi-empty { font-size: 12.5px; color: #9CA3AF; padding: 8px 4px; }
.esi-add-row { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; align-items: center; }
.esi-add-row select { flex: 1 1 150px; min-width: 0; border: 1.5px solid #D1DDD8; border-radius: 8px; padding: 8px; font-size: 13px; height: 42px; background: #fff; }
.esi-add-row input { border: 1.5px solid #D1DDD8; border-radius: 8px; padding: 8px 10px; font-size: 14px; height: 42px; box-sizing: border-box; }
.esi-addbtn {
  background: #0D7C5F; color: #fff; border: none; border-radius: 8px;
  padding: 9px 12px; font-size: 13px; font-weight: 700; cursor: pointer; white-space: nowrap;
}
.esi-addbtn:active { transform: scale(.96); }
.esi-note { font-size: 11.5px; color: #9CA3AF; margin-top: 8px; line-height: 1.6; }


/* ================= v16: 损耗金额卡片 + 大宗开关 ================= */
.loss-amt-card{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0 2px;padding:12px 14px;border-radius:14px;background:linear-gradient(135deg,#FFF7ED,#FFEDD5);border:1px solid #FCD9A8}
.loss-amt-card>span{font-size:13px;color:#8A5A17;font-weight:600}
.loss-amt-card>b{font-size:21px;letter-spacing:.5px}
.loss-amt-card>small{font-size:11px;color:#A8834B;margin-left:auto}
.stock-add-row .v5-add-btn.alt.on{background:#0D7C5F;color:#fff}
/* v16: 顶部统计卡（损耗页/员工页）—— 老板看得懂的口径，替代原来跨单位相加的大数字 */
.mt12{margin-top:12px}
.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0 2px}
.stat-card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:11px 8px;text-align:center;min-width:0;box-shadow:var(--shadow-card)}
.stat-k{font-size:11.5px;color:var(--text-sub);line-height:1.3;margin-bottom:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stat-v{font-size:20px;font-weight:800;color:var(--text);line-height:1.15;letter-spacing:.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stat-v.red{color:var(--danger)}
.loss-tip{margin-top:10px;padding:10px 12px;border-radius:12px;background:var(--primary-light);border:1px solid #CFE7DE;color:#2C5C4D;font-size:11.5px;line-height:1.66}
.loss-tip b{color:#123F32}


/* ===== v17 主材料编辑弹窗（重做 UI：卡片式 + 表格化用量明细） ===== */
.le-wrap { display: flex; flex-direction: column; gap: 12px; }
.le-card { background: #fff; border: 1px solid #E3E8E6; border-radius: 14px; padding: 12px 13px 14px; box-shadow: 0 1px 2px rgba(16,24,40,.04); }
.le-card-head { font-weight: 700; font-size: 14px; color: #12614C; margin-bottom: 10px; display: flex; align-items: baseline; gap: 8px; }
.le-card-head .le-sub { font-weight: 400; font-size: 11px; color: #8a8f98; }
.le-fld { display: block; margin-bottom: 8px; }
.le-fld > span { display: block; font-size: 11.5px; color: #6b7280; margin-bottom: 3px; }
.le-fld input { width: 100%; box-sizing: border-box; height: 36px; padding: 0 10px; border: 1px solid #D8E0DD; border-radius: 9px; font-size: 14px; color: #1f2937; background: #FCFDFD; }
.le-fld input:focus { outline: none; border-color: #0D7C5F; background: #fff; box-shadow: 0 0 0 3px rgba(13,124,95,.10); }
.le-grid3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; }
.le-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.le-hint { font-size: 11.5px; color: #4b5563; background: #F2F7F5; border-radius: 8px; padding: 7px 10px; margin-top: 4px; line-height: 1.5; }
.li-head, .li-row { display: grid; grid-template-columns: 1.5fr .8fr .8fr .55fr .95fr 30px; gap: 6px; align-items: center; }
.li-head { font-size: 11px; color: #8a8f98; padding: 0 2px 4px; }
.li-row { margin-bottom: 6px; }
.li-row input { height: 34px; padding: 0 8px; border: 1px solid #D8E0DD; border-radius: 8px; font-size: 13px; background: #FCFDFD; width: 100%; box-sizing: border-box; }
.li-row input:focus { outline: none; border-color: #0D7C5F; background: #fff; }
.li-row .li-unit { text-align: center; }
.li-total { font-size: 12px; color: #12614C; text-align: right; white-space: nowrap; }
.li-del { width: 28px; height: 28px; border: 1px solid #F0C4C4; background: #FFF5F5; color: #C0392B; border-radius: 8px; font-size: 12px; line-height: 1; cursor: pointer; }
.le-add { width: 100%; height: 36px; margin-top: 4px; border: 1px dashed #B9C7C2; background: #F8FBFA; color: #12614C; border-radius: 10px; font-size: 13px; cursor: pointer; }
.le-ghost { height: 34px; padding: 0 12px; border: 1px solid #D8E0DD; background: #fff; color: #374151; border-radius: 9px; font-size: 12.5px; cursor: pointer; }
.loss-data-note { font-size: 11.5px; color: #6b7280; background: #F6F8F7; border-left: 3px solid #B9C7C2; border-radius: 6px; padding: 6px 9px; margin: 0 0 8px; line-height: 1.5; }
.loss-badge.gray { background: #EEF1F0; color: #6b7280; }
.stock-edit-btn.del { border-color: #F0C4C4; background: #FFF5F5; color: #C0392B; }

/* ===== v18：损耗材料卡（输入框放大、不再挤成三列）===== */
.loss-grid{grid-template-columns:repeat(2,1fr);gap:9px}
.loss-grid>div{background:var(--bg);border-radius:11px;padding:8px 9px}
.loss-grid label{display:block;color:var(--text-sub);font-size:11px;margin-bottom:5px;font-weight:600}
.loss-grid .stock-input{width:100%;box-sizing:border-box;padding:9px 8px;font-size:15px;font-weight:700;
  border-radius:9px;border:1px solid var(--border);background:#fff;color:var(--text);text-align:center}
.loss-grid .stock-input:focus{border-color:var(--primary);box-shadow:0 0 0 2px rgba(13,124,95,.12);outline:none}
.loss-calc{margin-top:11px;padding:9px 11px;background:var(--bg);border-radius:10px;
  display:flex;flex-wrap:wrap;gap:7px 16px;font-size:12.5px}
.loss-calc b{font-size:13.5px}
.loss-items{margin-top:10px;display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:12px}
.loss-items>span,.loss-items>div{flex:1 1 100%;min-width:0;line-height:1.6;word-break:break-all}

/* ===== v18：用量明细弹窗（卡片式、输入框够大、实时小计）===== */
.it-head-tip{font-size:12px;color:var(--text-sub);line-height:1.65;margin:0 0 10px;
  background:var(--bg);border-radius:9px;padding:8px 10px}
.it-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:10px;margin-bottom:9px}
.it-dish{width:100%;box-sizing:border-box;border:1px solid var(--border);border-radius:9px;
  padding:10px 11px;font-size:14.5px;font-weight:700;background:#fff;color:var(--text)}
.it-dish:focus{border-color:var(--primary);box-shadow:0 0 0 2px rgba(13,124,95,.12);outline:none}
.it-nums{display:flex;align-items:flex-end;gap:7px;margin-top:9px;flex-wrap:wrap}
.it-nums label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:600;
  color:var(--text-sub);flex:1 1 88px;min-width:0}
.it-nums input{width:100%;box-sizing:border-box;border:1px solid var(--border);border-radius:9px;
  padding:9px 6px;font-size:15px;font-weight:700;text-align:center;background:#fff;color:var(--text);min-width:0}
.it-nums input:focus{border-color:var(--primary);box-shadow:0 0 0 2px rgba(13,124,95,.12);outline:none}
.it-op{color:var(--text-sub);font-size:15px;font-weight:700;padding-bottom:10px}
.it-sum{font-size:13px;font-weight:800;color:var(--primary);padding-bottom:11px;white-space:nowrap}
.it-del{border:1px solid var(--border);background:var(--bg);color:var(--text-sub);border-radius:9px;
  padding:9px 12px;font-size:14px;font-weight:800;cursor:pointer;min-height:40px;line-height:1}
.it-del:hover,.it-del:active{color:var(--danger);border-color:var(--danger);background:#FFF5F5}
.it-total{margin-top:10px;padding:11px 12px;background:var(--primary-light);border-radius:10px;
  font-size:13.5px;font-weight:800;color:var(--primary);text-align:center;line-height:1.6}

/* ===== v18：主材料编辑弹窗整体重排（手机上不再挤成 6 列）===== */
.le-wrap{gap:10px}
.le-card{padding:13px 13px 15px}
.le-fld > span{font-size:12px;margin-bottom:4px;font-weight:600}
.le-fld input{height:42px;font-size:15px;padding:0 12px;border-radius:10px}
/* 基础信息：窄屏自动折成 2 列，输入框不再被压扁 */
.le-grid3{grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:9px}
.le-grid2{grid-template-columns:repeat(auto-fit,minmax(138px,1fr));gap:9px}
.le-hint{font-size:12px;line-height:1.6}

/* 明细行：卡片式，菜品独占一行，数字有标签 */
.li-head{display:none}
.li-row{display:block;background:#F7FAF9;border:1px solid #E3E8E6;border-radius:12px;
  padding:10px 11px 9px;margin-bottom:10px}
.li-dishwrap{display:block;position:relative;margin-bottom:9px}
.li-row .li-dish{width:100%;box-sizing:border-box;height:44px;padding:0 12px;border-radius:10px;
  font-size:15.5px;font-weight:700;text-align:left;background:#fff}
.li-nums{display:grid;grid-template-columns:1fr 14px 1fr 62px;gap:8px;align-items:end}
.li-fld{display:flex;flex-direction:column;gap:4px;min-width:0}
.li-fld > span{font-size:11px;font-weight:700;color:#8a8f98;text-align:center;letter-spacing:.2px}
.li-row .li-nums input{width:100%;box-sizing:border-box;height:42px;padding:0 6px;border-radius:10px;
  font-size:16px;font-weight:800;text-align:center;background:#fff;border:1px solid #D8E0DD;color:#1f2937}
.li-row .li-nums input:focus{outline:none;border-color:#0D7C5F;background:#fff;
  box-shadow:0 0 0 3px rgba(13,124,95,.10)}
.li-op{text-align:center;font-size:15px;font-weight:800;color:#b6bcc4;padding-bottom:12px}
.li-bot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:9px}
.li-total{font-size:14px;font-weight:800;color:#12614C}
.li-del{width:auto;height:36px;padding:0 13px;font-size:12.5px;font-weight:800;border-radius:9px;
  border:1px solid #F0C4C4;background:#FFF5F5;color:#C0392B;cursor:pointer;line-height:1;white-space:nowrap}
.li-del:active{background:#FBE3E3}
.li-ratio{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:11px;
  color:#0D7C5F;background:#E8F5F0;border-radius:6px;padding:2px 6px;font-weight:700;pointer-events:none}
.le-add{width:100%;height:44px;margin-top:2px;font-size:14.5px;font-weight:700;border-radius:11px;
  border:1px dashed #9CC9BA;background:#F4FBF8;color:#0D7C5F;cursor:pointer}
.loss-preview{font-size:13px;line-height:1.7;padding:11px 13px}

/* ===== v18.2：评审反馈修正 ===== */
/* 菜品名标签 */
.li-dish-lb{display:block;font-size:11px;font-weight:700;color:#8a8f98;margin-bottom:4px;text-align:center;letter-spacing:.2px}
/* 底部按钮：铺满 + 主次分明 */
.modal-actions{padding:12px 16px calc(14px + env(safe-area-inset-bottom));gap:10px}
.modal-actions .btn{flex:1;height:46px;font-size:15.5px;font-weight:800;border-radius:12px}
.modal-actions .btn-primary{background:#0D7C5F;color:#fff;border:none;box-shadow:0 2px 8px rgba(13,124,95,.28)}
.modal-actions .btn-ghost{background:#F2F5F4;color:#5b6470;border:none}
/* 数字键入体验：去 spinner，触控更稳 */
.li-row input[type=number]::-webkit-outer-spin-button,
.li-row input[type=number]::-webkit-inner-spin-button,
.le-fld input[type=number]::-webkit-outer-spin-button,
.le-fld input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}

/* ===== v18.3：预览竖排 + 占位符弱化 ===== */
.loss-preview{background:#F7FAF9;border-radius:12px;padding:11px 13px;display:flex;flex-direction:column;gap:7px}
.pv-line{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:13px;color:#5b6470;line-height:1.4}
.pv-line > span{min-width:0;flex:1}
.pv-line > b{font-size:16px;font-weight:900;color:#12614C;white-space:nowrap}
.le-fld input::placeholder,.li-row input::placeholder{font-size:12.5px;font-weight:400;color:#a8b0ba;opacity:1}
.li-fld > span,.li-dish-lb{letter-spacing:.3px}
.li-row{margin-bottom:11px}
.li-fld{gap:3px}
.le-add{border-style:dashed;border-color:#9CC9BA;background:#F4FBF8}
/* 期初自动带入按钮 */
.le-ghost{width:100%;height:40px;margin-top:10px;font-size:13.5px;font-weight:700;border-radius:10px;
  border:1px solid #E4D9A8;background:#FBF7E4;color:#8a6d1b;cursor:pointer}

/* ===== v19 月度账本 ===== */
.lh-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:10px 0}
.lh-cell{border-radius:12px;padding:10px 12px;border:1px solid var(--border);background:var(--card);cursor:pointer}
.lh-cell b{display:block;font-size:12.5px;color:var(--text)}
.lh-cell span{display:block;font-size:17px;font-weight:900;margin:3px 0 1px;font-variant-numeric:tabular-nums}
.lh-cell small{display:block;font-size:11px;color:var(--text-sub);line-height:1.45}
.lh-cell.ok{border-color:#BFE3D3;background:#F5FBF9}
.lh-cell.ok span{color:#0D7C5F}
.lh-cell.warn{border-color:#E4D9A8;background:#FBF7E4}
.lh-cell.warn span{color:#B7791F}
.lg-row{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:9px 11px;margin:7px 0}
.lg-r1{display:flex;gap:8px;align-items:center;margin-bottom:7px}
.lg-name{flex:1;min-width:0;height:42px;box-sizing:border-box;border:1px solid #D8E0DD;border-radius:10px;padding:0 11px;font-size:15px;font-weight:800;background:#fff;color:var(--text)}
.lg-name::placeholder{font-weight:400;font-size:12.5px;color:#a8b0ba}
.lg-name:focus{outline:none;border-color:#0D7C5F;box-shadow:0 0 0 3px rgba(13,124,95,.10)}
.lg-del{width:38px;height:38px;flex:none;border:1px solid #F0C4C4;background:#FFF5F5;color:#C0392B;border-radius:10px;font-size:14px;font-weight:800;cursor:pointer}
.lg-r2{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.lg-r2 label,.ls-row label{display:flex;flex-direction:column;gap:3px;min-width:0}
.lg-r2 > label > span{font-size:11px;font-weight:700;color:#8a8f98;text-align:center}
.lg-r2 input{width:100%;box-sizing:border-box;height:40px;border:1px solid #D8E0DD;border-radius:9px;padding:0 6px;font-size:14.5px;font-weight:700;text-align:center;background:#fff;color:var(--text);min-width:0}
.lg-r2 input:focus{outline:none;border-color:#0D7C5F;background:#fff}
.lg-r2 input[type=date]{font-size:12px;padding:0 4px}
.lg-tip{font-size:11px;color:#0D7C5F;margin-top:5px;min-height:1em}
.lg-sum{margin:12px 0 4px;padding:10px 12px;background:var(--primary-light);border-radius:10px;font-size:13px;font-weight:800;color:var(--primary);text-align:center}
.ls-row{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--border);border-radius:11px;padding:8px 12px;margin:6px 0}
.ls-row span{flex:1;min-width:0;font-size:14.5px;font-weight:700;color:var(--text);line-height:1.4}
.ls-row input{width:96px;height:42px;flex:none;box-sizing:border-box;border:1px solid #D8E0DD;border-radius:10px;font-size:16px;font-weight:800;text-align:center;background:#fff;color:var(--text)}
.ls-row input::placeholder{font-size:11.5px;font-weight:400;color:#a8b0ba}
.ls-row input:focus{outline:none;border-color:#0D7C5F;box-shadow:0 0 0 3px rgba(13,124,95,.10)}

/* ===== v19.1 账本细节打磨 ===== */
#purList, #salList { padding-bottom: 26px; }
.ls-row input::placeholder, .lg-r2 input::placeholder, .lg-name::placeholder { color:#9BB3A9; opacity:.85 }
.ls-row input { border-style:solid; box-shadow:inset 0 -2px 0 rgba(13,124,95,.06) }
.ls-row input:focus { box-shadow:0 0 0 3px rgba(13,124,95,.12) }
#page-ledger { padding-bottom: calc(84px + env(safe-area-inset-bottom)); }

/* ===== v19.2 营业额卡 + 销售行状态 ===== */
.lg-rev-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:10px 12px;margin:8px 0}
.lg-rev-line{display:flex;gap:8px;margin-bottom:8px}
.lg-rev-line:last-child{margin-bottom:2px}
.lg-rev-line label{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.lg-rev-line > label > span{font-size:11px;font-weight:700;color:#8a8f98}
.lg-rev-line input{width:100%;box-sizing:border-box;height:44px;border:1px solid #D8E0DD;border-radius:10px;padding:0 12px;font-size:16px;font-weight:800;background:#fff;color:var(--text)}
.lg-rev-line input:focus{outline:none;border-color:#0D7C5F;box-shadow:0 0 0 3px rgba(13,124,95,.10)}
.lg-rev-tip{font-size:11px;color:var(--text-sub);line-height:1.5}
.ls-row.done{border-left:3px solid #0D7C5F;background:#F7FCFA}
.ls-row.todo{border-left:3px solid transparent}
.ls-price{font-size:11px;color:#8a8f98;flex:none}
.ls-revcheck{margin:10px 0 4px;padding:10px 12px;border-radius:10px;background:#E8F5F0;color:#0D7C5F;font-size:12.5px;font-weight:700;line-height:1.6}
.ls-revcheck.bad{background:#FDF3F2;color:#B1453A}

/* ===== v19.3 预置账本横幅 ===== */
.ld-preset-tip{margin:8px 0;padding:11px 13px;background:#FDF7E8;border:1px solid #E4D9A8;border-radius:12px;
  font-size:12.5px;color:#7a5c14;line-height:1.7}
.ld-preset-tip b{color:#8a6d1b}

/* ===== v20：首页功能卡（月度账本等）===== */
.home-cell-wrap{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin:10px 0}
.home-cell{background:var(--card);border:1px solid var(--border);border-radius:13px;padding:12px 13px;cursor:pointer;text-align:left}
.home-cell b{display:block;font-size:14px;color:var(--text);margin-bottom:3px}
.home-cell small{display:block;font-size:11px;color:var(--text-sub);line-height:1.45}
.home-cell.hl{border-color:#0D7C5F;background:linear-gradient(180deg,#F3FBF7,#fff)}

/* ===== v21：返回顶部按钮（所有页面，右下角，滚动后出现）===== */
.page-top{position:fixed;right:16px;bottom:88px;width:46px;height:46px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:var(--card);border:1px solid var(--border);color:var(--text-sub);
  font-size:19px;line-height:1;cursor:pointer;z-index:70;
  box-shadow:0 4px 14px rgba(16,24,40,.16);
  opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .18s,transform .18s,visibility .18s}
.page-top.show{opacity:1;visibility:visible;transform:translateY(0)}
.page-top:active{background:var(--bg);transform:scale(.94)}

/* ===== v21：销售台账行（名字可改/可删）===== */
.ls-row .ls-name{flex:1;min-width:0;height:42px;box-sizing:border-box;border:1px solid #D8E0DD;
  border-radius:10px;padding:0 10px;font-size:14.5px;font-weight:700;background:#fff;color:var(--text)}
.ls-row .ls-name:focus{outline:none;border-color:#0D7C5F;box-shadow:0 0 0 3px rgba(13,124,95,.10)}
.ls-del{width:36px;height:36px;flex:none;border:1px solid #F0C4C4;background:#FFF5F5;color:#C0392B;
  border-radius:9px;font-size:13px;font-weight:800;cursor:pointer}
.ls-del:active{background:#FBE3E3}
/* 月末盘点：行内改名字/删除 */
.pan-name-edit{background:transparent;border:none;font-size:15.5px;font-weight:800;color:var(--text);
  padding:0;width:100%;text-align:left}
.pan-name-edit:focus{outline:none;border-bottom:2px solid #0D7C5F}
.pan-ops{position:absolute;right:8px;top:8px;display:flex;gap:5px}
.pan-op{width:28px;height:28px;border-radius:8px;border:1px solid var(--border);background:var(--bg);
  color:var(--text-sub);font-size:12px;cursor:pointer}
.pan-op.del{border-color:#F0C4C4;background:#FFF5F5;color:#C0392B}
.pan-row{position:relative}

/* v22.2：编辑弹层三段式（标题+按钮固定，中间滚动）——修「关联菜品被底部按钮压住/输入行顶出屏幕」 */
.modal-mask.es-edit .modal-box { max-height: 90vh; display: flex; flex-direction: column; overflow: hidden; }
.modal-mask.es-edit .modal-title { flex: 0 0 auto; position: static; }
.modal-mask.es-edit .modal-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 12px 14px; }
.modal-mask.es-edit .modal-actions { flex: 0 0 auto; border-top: 1px solid var(--border); background: var(--card); }
/* 折叠说明：默认只留一行短提示，点「❓」才展开例子，省下的高度全给关联菜品 */
.esi-f-col .esi-help { display: none; }
.esi-f-col.open .esi-help { display: block; }
.esi-helpbox { background: #fff; border: 1px solid #E3ECE8; border-radius: 10px; padding: 8px 10px; margin: 8px 0 2px; }
.esi-helpbox .esi-help { display: none; }
.esi-helpbox.open .esi-help { display: block; }
.esi-helpbox .help-inline { margin: 0; }
.esi-q {
  background: #EAF6F1; color: #0D7C5F; border: 1px solid #CFE6DE; border-radius: 999px;
  font-size: 11px; font-weight: 700; padding: 2px 8px; margin-left: 6px; cursor: pointer; vertical-align: middle;
}
.esi-q:active { transform: scale(.95); }

/* v22.3：编辑弹层里「关联菜品」自适应剩余高度（列表自己滚，永不被底部按钮盖住） */
.modal-mask.es-edit .modal-body { display: flex; flex-direction: column; }
.modal-mask.es-edit .modal-body > .esi-form,
.modal-mask.es-edit .modal-body > .esi-sub,
.modal-mask.es-edit .modal-body > .esi-add-row,
.modal-mask.es-edit .modal-body > .esi-note { flex: 0 0 auto; }
.modal-mask.es-edit .modal-body > .esi-list { flex: 1 1 auto; min-height: 130px; max-height: none; }

/* ===== v24：每日损耗表「常规品类」选择栏（主人 2026-09-11 提） ===== */
/* v25：品类栏更人性化 —— 可收起、可取消、选完自动收 */
.name-row { display: flex; gap: 6px; align-items: center; }
.name-row input { flex: 1 1 auto; min-width: 0; }
.name-clr { flex: 0 0 auto; width: 40px; height: 42px; border-radius: 10px; border: 1px solid var(--border, #E5E7EB);
  background: #F7F9F8; color: #7B8783; font-size: 14px; font-weight: 600; cursor: pointer; }
.name-clr:active { transform: scale(.95); background: #EEF2F0; color: #5A6662; }
.cat-box { border: 1px solid #E3ECE8; background: #F7FBF9; border-radius: 12px; padding: 4px 10px; margin: 6px 0 10px; }
.cat-head { display: flex; align-items: center; }
.cat-toggle { display: flex; align-items: center; gap: 8px; width: 100%; background: none; border: 0; padding: 9px 0; cursor: pointer; text-align: left; }
.cat-toggle b { font-size: 13px; color: #0D7C5F; }
.cat-toggle .muted { font-size: 11px; color: #8a8f98; flex: 1 1 auto; }
.cat-arrow { font-style: normal; font-size: 11px; color: #0D7C5F; }
.cat-body { display: none; padding-bottom: 8px; }
.cat-box.open .cat-body { display: block; }
.cat-tools { display: flex; gap: 6px; align-items: center; margin-bottom: 6px; }
.cat-tools .stock-input { flex: 1 1 auto; margin: 0; }
.cat-tools .chip-toggle { flex: 0 0 auto; white-space: nowrap; }
.cat-head b { font-size: 13px; color: #0D7C5F; }
.cat-head .muted { font-size: 11px; color: #8a8f98; }
.cat-head .chip-toggle { margin-left: auto; }
.cat-chips { display: flex; flex-wrap: wrap; gap: 6px; max-height: 190px; overflow-y: auto; margin-top: 8px; -webkit-overflow-scrolling: touch; }
.cat-chip {
  background: #fff; border: 1px solid #D8E6E0; color: #2C3E38; border-radius: 999px;
  font-size: 12.5px; padding: 7px 12px; line-height: 1.1; cursor: pointer; max-width: 100%;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.cat-chip:active { transform: scale(.96); }
.cat-chip.on { background: var(--grad-primary, #0D7C5F); border-color: transparent; color: #fff; font-weight: 700; }
.cat-chip.own { border-style: dashed; border-color: #E2C08D; background: #FFFCF5; }
.cat-chip.own.on { background: #B8862F; color: #fff; }
.cat-chip i { font-style: normal; font-size:11px; opacity: .75; }
.cat-more { font-size: 11px; color: #8a8f98; align-self: center; }

/* ===== v24：店长总结口碑数据 / 达人探店消费金额 ===== */
.form-row textarea { width: 100%; box-sizing: border-box; border: 1px solid var(--border, #E5E7EB); border-radius: 10px; padding: 9px 11px; font-size: 14px; font-family: inherit; line-height: 1.5; resize: vertical; color: var(--text); background: #fff; }
.form-row textarea:focus { outline: none; border-color: #0D7C5F; }
.sum-grid-row.sub.bad { color: var(--danger); font-size: 12px; line-height: 1.5; }
.cat-new { margin-top: 8px; padding: 10px; border: 1px dashed #E2C08D; border-radius: 10px; background: #FFFCF5; }
.cat-new-t { font-size: 12px; font-weight: 700; color: #B8862F; margin-bottom: 6px; }
.cat-new .stock-input { margin-bottom: 6px; }
.cat-new-btns { display: flex; gap: 8px; margin-top: 2px; }
.cat-new-btns .chip-toggle.acc { background: var(--grad-primary, #0D7C5F); color: #fff; border-color: transparent; }


/* ============================================================
   v26：上月损耗页 —— 卡片/统计/公式整体重排（主人 2026-09-11：
   「每个项目框体、排版都要重新优化设计，界面要美观工整舒服」）
   ============================================================ */
/* ① 统计卡：自动铺满，不再 4+1 留大片空白 */
/* v29 主人反馈「框体太大、整页快占满」→ 5 张卡压到一行，高 62px 左右 */
#lossSummary .stat-grid { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(62px, 1fr)) !important; gap: 6px !important; }
#lossSummary .stat-card { padding: 6px 3px 5px !important; border-radius: 11px !important; min-height: 0 !important;
  display: flex; flex-direction: column; justify-content: center; gap: 1px; text-align: center; }
#lossSummary .stat-k { font-size: 10.5px; color: #5C6B66; letter-spacing: 0; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#lossSummary .stat-v { font-size: 17px; font-weight: 800; line-height: 1.1; margin-top: 1px; white-space: nowrap; }
#lossSummary .stat-v span { font-size: 10.5px !important; font-weight: 600; }
#lossSummary .stat-sub { font-size: 9px; color: #9AA6A1; margin-top: 0; line-height: 1.15; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#lossSummary .stat-card.on { border-color: #0D7C5F !important; box-shadow: 0 0 0 2px rgba(13,124,95,.14) !important; background: #F6FBF9 !important; }

/* ② 损耗金额合计卡：更醒目 */
.loss-amt-card { display: flex; align-items: center; gap: 8px; background: linear-gradient(135deg,#FFF8EC,#FFF3E2);
  border: 1px solid #F0DFC4; border-radius: 11px; padding: 7px 11px; margin: 7px 0 6px; }
.loss-amt-card > span { font-size: 11.5px; color: #7A6A4F; }
.loss-amt-card > b { font-size: 16px; font-weight: 800; margin-left: auto; }
.loss-amt-card > small { font-size: 10px; color: #9C8A6B; }

/* ③ 公式说明：折叠面板，不再被底部导航截断 */
.loss-formula { background: #F7F9F8; border: 1px solid var(--border, #E5E7EB); border-radius: 12px; margin: 10px 0 4px; overflow: hidden; }
.loss-formula > summary { list-style: none; cursor: pointer; padding: 11px 13px; font-size: 13px; font-weight: 700; color: #2C3E38; }
.loss-formula > summary::-webkit-details-marker { display: none; }
.loss-formula > summary::after { content: '▾'; float: right; color: #0D7C5F; font-weight: 400; }
.loss-formula[open] > summary::after { content: '▴'; }
.loss-formula .loss-tip { margin: 0; border: 0; background: #fff; border-top: 1px solid var(--border, #E5E7EB); }

/* ④ 主材料卡片：状态色条 + 分区，工整不挤 */
.card.losscard { padding: 0 !important; overflow: hidden; border-radius: 14px !important; border: 1px solid var(--border, #E5E7EB) !important;
  box-shadow: 0 2px 10px rgba(10,26,20,.05) !important; margin: 0 0 10px !important; }
.card.losscard .loss-head { display: flex; align-items: flex-start; gap: 8px; padding: 7px 11px; background: #F7FBF9; border-bottom: 1px solid var(--border, #E5E7EB); }
.card.losscard .loss-head-l { min-width: 0; flex: 1 1 auto; }
.card.losscard .loss-head-l b { font-size: 16.5px; color: #17211E; display: block; line-height: 1.25; }
.card.losscard .loss-head-l small { display: block; font-size: 12px; color: #8a8f98; margin-top: 2px; line-height: 1.35; }
.card.losscard .loss-badge { flex: 0 0 auto; margin: 0; font-size: 12.5px; font-weight: 700; padding: 4px 9px; border-radius: 999px; white-space: nowrap; }
.loss-statebar { font-size: 11.5px; padding: 3px 11px; color: #6B7280; background: #FAFCFB; border-bottom: 1px solid var(--border, #E5E7EB); }
.losscard.st-loss { border-color: #F0C9C3 !important; }
.losscard.st-loss .loss-head { background: #FFF6F5; }
.losscard.st-loss .loss-statebar { background: #FFF9F8; color: #B1453A; }
.losscard.st-over { border-color: #C6D8E8 !important; }
.losscard.st-over .loss-head { background: #F4F8FC; }
.losscard.st-over .loss-statebar { background: #F8FBFE; color: #2C5F8A; }
.losscard.st-gap { border-color: #F0D9B8 !important; }
.losscard.st-gap .loss-head { background: #FFF9F0; }
.losscard.st-gap .loss-statebar { background: #FFFBF4; color: #C2410C; }

/* 等式区：五项等宽 + 结果条 */
/* ★v30 主人要求：卡片再压缩 + 字体稍大 */
.card.losscard .loss-eq2 { padding: 7px 10px 2px; }
.card.losscard .eq2-row { display: flex; align-items: stretch; gap: 3px; background: #F7F9F8; border-radius: 10px; padding: 5px 4px; }
.card.losscard .eq2-item { flex: 1 1 0; min-width: 0; text-align: center; }
.card.losscard .eq2-item > span { display: block; font-size: 11.5px; color: #7B8783; margin-bottom: 1px; white-space: nowrap; }
.card.losscard .eq2-item > b { display: block; font-size: 16.5px; font-weight: 800; color: #17211E; }
.card.losscard .eq2-sym { flex: 0 0 auto; align-self: center; font-size: 15px; color: #A9B4B0; padding: 0 2px; }
.card.losscard .eq2-result { display: flex; align-items: center; gap: 8px; margin-top: 8px; padding: 10px 12px; border-radius: 12px;
  background: #FDF3F2; color: #B1453A; }
.card.losscard .eq2-result.neg { background: #EFF5FB; color: #2C5F8A; }
.card.losscard .eq2-result > span { font-size: 13px; }
.card.losscard .eq2-result > b { margin-left: auto; font-size: 20px; font-weight: 800; }
.card.losscard .eq2-note { font-size: 11px; color: #8a8f98; line-height: 1.5; margin-top: 6px; }
.card.losscard .eq2-amt { margin-top: 8px; font-size: 13px; font-weight: 700; color: #B1453A; background: #FFF8F7; border: 1px dashed #F0C9C3; border-radius: 10px; padding: 8px 10px; }

/* 菜品明细表：对齐工整 */
.card.losscard .loss-det { margin: 8px 12px 0; border: 1px solid var(--border, #E5E7EB); border-radius: 11px; overflow: hidden; }
.card.losscard .loss-det > summary { cursor: pointer; padding: 8px 11px; font-size: 12.5px; font-weight: 700; color: #2C3E38; background: #FBFDFC; }
.card.losscard .losstable { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.card.losscard .losstable th { background: #F0F5F3; color: #46554F; font-weight: 700; padding: 6px 8px; text-align: center; font-size: 12px; }
.card.losscard .losstable td { padding: 6px 8px; text-align: center; color: #2C3E38; border-top: 1px solid #EDF1EF; }
.card.losscard .losstable td.tl, .card.losscard .losstable th.tl { text-align: left; }
.card.losscard .losstable tr:nth-child(even) td { background: #FAFCFB; }

/* 操作按钮：低调、右下 */
.card.losscard .loss-acts, .card.losscard .loss-row-actions { display: flex !important; justify-content: flex-end; gap: 8px; padding: 8px 12px 10px; }
.card.losscard .loss-act { font-size: 12.5px; padding: 7px 12px; border-radius: 10px; }

/* v26：内容区底部留出安全边距（最后一屏不再被底部导航压住） */
#lossList, #wasteList, #sumList, #kocList, .page { padding-bottom: 96px; }
.eq2-amt .amt-sub { font-weight: 400; font-size: 11.5px; color: #9C8A6B; }

/* ============================================================
   v26：使用说明书 UI（目录/正文/图文教程/欢迎引导/常驻帮助按钮/首页横幅）
   ============================================================ */
.mn-wrap { text-align: left; }
.mn-top { position: sticky; top: 0; background: var(--card,#fff); z-index: 2; padding-bottom: 8px; border-bottom: 1px solid var(--border,#E5E7EB); }
.mn-top .action-btn { width: 100%; }
.mn-search { width: 100%; box-sizing: border-box; margin-top: 8px; height: 40px; border: 1px solid var(--border,#E5E7EB);
  border-radius: 10px; padding: 0 12px; font-size: 14px; background: #fff; color: var(--text,#17211E); }
.mn-body { max-height: 62vh; overflow-y: auto; line-height: 1.85; font-size: 14px; padding-top: 10px; -webkit-overflow-scrolling: touch; }
.mn-toc { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; padding-bottom: 10px; border-bottom: 1px dashed var(--border,#E5E7EB); }
.mn-toc-btn { background: #F3F8F5; border: 1px solid #D8E6E0; color: #0D7C5F; border-radius: 999px;
  padding: 6px 11px; font-size: 12.5px; font-weight: 700; cursor: pointer; }
.mn-toc-btn:active { transform: scale(.96); }
.mn-sec { margin-bottom: 18px; }
.mn-sec h3 { font-size: 15px; color: #0D7C5F; margin: 14px 0 8px; padding-left: 9px; border-left: 4px solid #0D7C5F; }
.mn-sec h4 { font-size: 13.5px; color: #17211E; margin: 12px 0 4px; }
.mn-sec p { margin: 6px 0; }
.mn-sec ul { margin: 6px 0 6px 18px; padding: 0; }
.mn-sec li { margin: 4px 0; }
.mn-sec code { background: #F3F8F5; border: 1px solid #E3ECE8; border-radius: 6px; padding: 1px 6px; font-size: 12.5px; color: #0A5F49; }
.mn-eq { background: #F3F8F5; border-left: 4px solid #0D7C5F; border-radius: 8px; padding: 10px 12px; font-weight: 700; color: #17211E; }
.mn-tb { width: 100%; border-collapse: collapse; font-size: 12.5px; margin: 8px 0; }
.mn-tb th { background: #EAF3EF; color: #2C3E38; padding: 7px 8px; text-align: left; font-weight: 700; }
.mn-tb td { border-top: 1px solid #EDF1EF; padding: 7px 8px; vertical-align: top; }
.mn-tb tr:nth-child(even) td { background: #FAFCFB; }
.mn-note { background: #FFFBF3; border: 1px solid #F0E2C8; border-radius: 10px; padding: 9px 11px; font-size: 12.5px; color: #7A6A4F; }
.mn-red { color: #B1453A; } .mn-blue { color: #2C5F8A; }
.mn-step { display: flex; gap: 10px; align-items: flex-start; background: #F7FBF9; border: 1px solid #E3ECE8;
  border-radius: 12px; padding: 9px 11px; margin: 7px 0; }
.mn-step > b { flex: 0 0 auto; width: 22px; height: 22px; border-radius: 50%; background: #0D7C5F; color: #fff;
  font-size: 12px; display: flex; align-items: center; justify-content: center; }
.mn-foot { text-align: center; color: #9CA3AF; font-size: 11.5px; margin-top: 12px; }

/* 图文教程 */
.gd-wrap { text-align: center; }
.gd-img { max-width: 100%; border-radius: 12px; border: 1px solid var(--border,#E5E7EB); }
.gd-miss { padding: 40px 10px; color: #9CA3AF; font-size: 13px; }
.gd-title { font-size: 14px; font-weight: 800; color: #17211E; margin: 10px 2px 4px; }
.gd-desc { font-size: 13px; color: #5C6B66; line-height: 1.75; margin: 0 2px; text-align: left; background: #F7FBF9;
  border: 1px solid #E3ECE8; border-radius: 10px; padding: 10px 12px; }
.gd-btns { display: flex; gap: 8px; margin-top: 10px; justify-content: center; flex-wrap: wrap; }
.gd-dots { display: flex; gap: 5px; justify-content: center; margin-top: 10px; flex-wrap: wrap; }
.gd-dots i { width: 8px; height: 8px; border-radius: 50%; background: #D8E6E0; cursor: pointer; display: inline-block; }
.gd-dots i.on { background: #0D7C5F; width: 18px; border-radius: 4px; }

/* 欢迎引导 */
.onb-wrap { text-align: left; }
.onb-lead { font-size: 14px; line-height: 1.8; }
.onb-steps > div { background: #F7FBF9; border: 1px solid #E3ECE8; border-radius: 10px; padding: 8px 11px; margin: 6px 0; font-size: 13px; }
.onb-steps b { color: #0D7C5F; margin-right: 6px; }
.onb-tip { background: #FFFBF3; border: 1px solid #F0E2C8; border-radius: 10px; padding: 9px 11px; font-size: 12.5px; color: #7A6A4F; margin-top: 10px; }

/* 常驻帮助按钮（v29：移到右上角，不再压住右下角「回到顶端」按钮） */
.mn-fab { position: fixed; top: calc(env(safe-area-inset-top, 0px) + 11px); right: 12px; bottom: auto; z-index: 260;
  min-width: 60px; height: 32px; border-radius: 999px;
  border: 1px solid rgba(255,255,255,.55); background: rgba(255,255,255,.2); color: #fff;
  box-shadow: 0 2px 8px rgba(4,32,24,.16); display: inline-flex; flex-direction: row; align-items: center;
  justify-content: center; gap: 4px; line-height: 1; cursor: pointer; padding: 0 10px; }
.mn-fab > span { font-size: 20px; font-weight: 800; }
.mn-fab > i { font-style: normal; font-size: 11.5px; opacity: .95; margin-top: 0; }
.mn-fab:active { transform: scale(.94); }

/* 首页「第一次使用」横幅 */
.mn-banner { background: linear-gradient(135deg,#F2FBF7,#EAF6F1); border: 1px solid #CFE6DE; border-radius: 14px;
  padding: 12px 14px; margin: 10px 0 4px; }
.mn-banner > b { display: block; font-size: 14px; color: #0A5F49; }
.mn-banner > span { display: block; font-size: 12.5px; color: #5C6B66; line-height: 1.65; margin-top: 4px; }
.mn-banner-btns { display: flex; gap: 8px; margin-top: 10px; flex-wrap: wrap; }
.mn-banner-btns > button { flex: 1 1 auto; border: 1px solid #CFE6DE; background: #fff; color: #0D7C5F;
  border-radius: 10px; padding: 8px 10px; font-size: 12.5px; font-weight: 700; cursor: pointer; white-space: nowrap; }
.mn-banner-btns > button.acc { background: linear-gradient(135deg,#0E9F7A,#0D7C5F); color: #fff; border-color: transparent; }
.mn-banner-btns > button.gh { flex: 0 0 auto; background: transparent; border-color: transparent; color: #8a8f98; font-weight: 400; }

/* v27：把所有小胶囊/小按钮的点击高度提到 ≥32px（手指点得准） */
.env-chip, .env-chip.small, .chip-toggle, .pick-chip, .lf-chip, .loss-act,
.w-chip, .cat-chip, .mn-toc-btn, .action-btn.ghost, .li-del { min-height: 32px; }
.env-chip { padding: 7px 12px; }
.env-chip.small { padding: 7px 10px; }
.chip-toggle { padding-top: 5px; padding-bottom: 5px; }
.loss-act { padding-top: 7px; padding-bottom: 7px; }

/* v27：盘货行的编辑/删除按钮同样提到 32px 点击高度 */
.stock-edit-btn, .stock-del-btn, .it-del { min-height: 32px; padding-top: 7px; padding-bottom: 7px; }

/* ===== v29 新增：上月损耗顶区压缩 ===== */
/* ① 四个操作按钮：一行四格、图标在上文字在下（原来文字折行被撑到 83px 高） */
#page-loss .order-actions { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; margin: 9px 0 8px; }
#page-loss .order-actions .action-btn { flex-direction: column !important; gap: 3px !important; padding: 8px 2px !important;
  min-height: 0 !important; font-size: 11.5px !important; border-radius: 11px !important; white-space: nowrap; line-height: 1.1; }
#page-loss .order-actions .action-btn .action-ico, #page-loss .order-actions .action-btn > span:first-child { font-size: 15px !important; line-height: 1 !important; margin: 0 !important; }
/* ② 月份 / 门店 / 搜索：压成一行 */
.loss-meta { display: flex !important; align-items: center; gap: 6px; margin: 0 0 8px !important; flex-wrap: nowrap; }
.loss-meta .ym-switch { display: flex; align-items: center; gap: 4px; flex: 0 0 auto; flex-wrap: nowrap !important; }
.loss-meta .admin-btn-sm { min-height: 30px !important; height: 30px; padding: 0 9px !important; font-size: 12.5px !important; border-radius: 9px; margin: 0 !important; }
.loss-meta .ym-nav { width: 30px; padding: 0 !important; font-size: 15px; font-weight: 800; line-height: 1; }
.loss-meta #lossYM { min-width: 56px; font-size: 13.5px; text-align: center; white-space: nowrap; }
.loss-meta .store-pick { flex: 0 0 auto !important; max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.loss-meta .loss-search { flex: 1 1 auto; min-width: 0; margin: 0 !important; padding: 0 8px !important; height: 30px; border-radius: 9px; }
.loss-meta .loss-search input { font-size: 12.5px !important; }
.loss-meta .loss-search svg { width: 14px; height: 14px; }
/* ③ 段控 / 标题 / 筛选条收紧 */
.v3-seg { margin-bottom: 8px !important; }
.v3-seg .v3-seg-btn { padding: 9px 6px !important; min-height: 38px !important; font-size: 13.5px !important; }
#lossSummary .mt12 { margin-top: 0 !important; }
.loss-filter { gap: 6px; }
.loss-filter .lf-chip { padding: 5px 10px; font-size: 12px; }

/* ===== v29 补充：卡片再收一点 + 搜索条 ===== */
.card.losscard .eq2-note { font-size: 10.5px; line-height: 1.45; margin-top: 5px; }
.card.losscard .eq2-amt { margin-top: 6px; font-size: 12.5px; padding: 6px 10px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.card.losscard .eq2-amt .amt-sub { margin-left: auto; font-size: 10.5px; }
.card.losscard .loss-head-l b { font-size: 15.5px; }
.card.losscard .loss-head-l small { font-size: 11px; margin-top: 2px; }
#lossFilterBar { margin: 0; }
#lossFilterBar .loss-filter { margin: 2px 0 6px; }
#page-loss .section-head { margin: 4px 2px 8px !important; }
#page-loss .section-title { font-size: 15.5px !important; }
#page-loss .count-badge { padding: 3px 10px !important; font-size: 11px !important; }
#lossSummary { margin-bottom: 2px; }

/* v29 卡片纵向再收一档（主材料多时页面别太长） */
.card.losscard .eq2-row { padding: 5px 4px; }
.card.losscard .eq2-item > span { font-size: 10px; margin-bottom: 1px; }
.card.losscard .eq2-item > b { font-size: 14px; }
.card.losscard .eq2-sym { font-size: 13px; }
.card.losscard .loss-eq2 { padding: 8px 12px 3px; }
.card.losscard .loss-act { font-size: 12px; padding: 5px 11px; }
.card.losscard .loss-acts, .card.losscard .loss-row-actions { padding: 6px 12px 8px; gap: 7px; }
.card.losscard .loss-det > summary { padding: 7px 11px; }
