/* ============ y31 新版界面（设计稿“入库管理 手机界面”）============
   1) 新皮肤“新版”：松绿 / 藏青 / 驼棕，作为默认；
   2) 新组件：页头、三段切换、步骤卡、上传方块、明细表、列设置、整行编辑等（任何皮肤都能用，颜色走变量）。 */

/* ---------- 新皮肤：颜色 ---------- */
:root[data-skin="n-pine"] {
  --paper: #F5F4F0; --card: #FFFFFF; --tint: #F3F1EC; --frame: #ECEAE4;
  --ink: #2E6B5E; --ink-2: #3F7F71; --ink-deep: #1F4D43; --ink-soft: #E6F0ED; --ink-line: #B7D2CA;
  --text: #1E2326; --muted: #5F6368; --line: #E4E1DA;
  --warn: #B4531A; --warn-soft: #FBEDE3; --warn-deep: #8F3F12;
  --shadow: none;
  --font: "Noto Sans SC", "PingFang SC", "Source Han Sans SC", "Microsoft YaHei", system-ui, sans-serif;
}
:root[data-skin="n-navy"] {
  --paper: #F4F4F1; --card: #FFFFFF; --tint: #F1F1EE; --frame: #E9E9E5;
  --ink: #1F2A44; --ink-2: #33415F; --ink-deep: #141C30; --ink-soft: #E7EAF1; --ink-line: #BFC6D6;
  --text: #1C2030; --muted: #5E6270; --line: #E2E2DD;
  --warn: #B4531A; --warn-soft: #FBEDE3; --warn-deep: #8F3F12;
  --shadow: none;
  --font: "Noto Sans SC", "PingFang SC", "Source Han Sans SC", "Microsoft YaHei", system-ui, sans-serif;
}
:root[data-skin="n-tan"] {
  --paper: #F6F3EE; --card: #FFFFFF; --tint: #F3EFE8; --frame: #ECE6DD;
  --ink: #8A5A3C; --ink-2: #A0704F; --ink-deep: #6A4329; --ink-soft: #F3EAE3; --ink-line: #DCC5B4;
  --text: #2A221D; --muted: #6E645C; --line: #E7E0D6;
  --warn: #B4531A; --warn-soft: #FBEDE3; --warn-deep: #8F3F12;
  --shadow: none;
  --font: "Noto Sans SC", "PingFang SC", "Source Han Sans SC", "Microsoft YaHei", system-ui, sans-serif;
}
:root { --warn: #B4531A; --warn-soft: #FBEDE3; --warn-deep: #8F3F12; }

/* 页头：旧皮肤还是“店名 + 按钮”，新皮肤是“页面标题 + 门店 · 身份 + 图标按钮” */
.top-title, .top-btn .ti, .top-act:empty { display: none; }

:root[data-skin^="n-"] body { background: var(--paper); color: var(--text); font-family: var(--font); }
:root[data-skin^="n-"] .topbar {
  background: var(--paper); color: var(--text); box-shadow: none; border: 0; border-radius: 0;
  padding: 14px 16px 10px; padding-top: calc(14px + env(safe-area-inset-top)); gap: 8px; align-items: center;
}
:root[data-skin^="n-"] body.in-demo .topbar { padding-top: 14px; }
:root[data-skin^="n-"] .topbar .shop { display: none; }
:root[data-skin^="n-"] .top-title { display: flex; flex-direction: column; flex: 1 1 auto; min-width: 0; gap: 1px; }
:root[data-skin^="n-"] .top-title h1 { margin: 0; font-size: 22px; font-weight: 700; line-height: 1.25; color: var(--text); letter-spacing: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
:root[data-skin^="n-"] .top-title span { font-size: 12px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
:root[data-skin^="n-"] .top-title span:empty { display: none; }
:root[data-skin^="n-"] .topbar .top-btn, :root[data-skin^="n-"] #btn-settings, :root[data-skin^="n-"] #btn-msg {
  margin-left: 0; flex: none; width: 40px; height: 40px; min-height: 40px; padding: 0; border-radius: 12px;
  border: 1px solid var(--line); background: var(--card); color: var(--text); display: inline-flex; align-items: center; justify-content: center;
}
:root[data-skin^="n-"] .top-btn .ti { display: block; width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
:root[data-skin^="n-"] .top-btn .tl { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
:root[data-skin^="n-"] .msg-dot { top: -4px; right: -4px; box-shadow: 0 0 0 2px var(--paper); }
:root[data-skin^="n-"] .demo-flag { flex: none; }
.top-act { display: flex; align-items: center; gap: 6px; flex: none; }
.top-act .ta-link { border: 0; background: none; color: var(--ink); font: 500 14px var(--font); padding: 8px 4px; cursor: pointer; white-space: nowrap; }
.top-act .ta-num { display: flex; flex-direction: column; align-items: flex-end; line-height: 1.15; font-size: 11px; color: var(--muted); }
.top-act .ta-num b { font-size: 17px; color: var(--text); font-variant-numeric: tabular-nums; }
.top-act .ta-pill { border: 0; border-radius: 18px; min-height: 36px; padding: 0 12px; background: var(--warn-soft); color: var(--warn-deep); font: 700 13px var(--font); cursor: pointer; }
.top-act .ta-btn { border: 1px solid var(--line); background: var(--card); color: var(--text); border-radius: 20px; min-height: 36px; padding: 0 12px; font: 500 13px var(--font); cursor: pointer; white-space: nowrap; }

/* 底部栏目：图标在上，字在下 */
:root[data-skin^="n-"] .tabbar { background: var(--card); border-top: 1px solid var(--line); box-shadow: none; }
:root[data-skin^="n-"] .tab { height: 58px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; font: 500 11px var(--font); color: var(--muted); box-shadow: none; }
:root[data-skin^="n-"] .tab.active { color: var(--ink-deep); font-weight: 700; box-shadow: none; background: none; }
:root[data-skin^="n-"] .tab svg { width: 22px; height: 22px; stroke-width: 1.8; }

/* 卡片、按钮、输入框 */
:root[data-skin^="n-"] main { padding: 4px 16px 150px; }
:root[data-skin^="n-"] .slip, :root[data-skin^="n-"] .ops-card { background: var(--card); border: 1px solid var(--line); border-radius: 14px; padding: 16px; box-shadow: none; }
:root[data-skin^="n-"] .slip-perf { display: none; }
:root[data-skin^="n-"] .slip h2, :root[data-skin^="n-"] .ops-card h2 { color: var(--text); font-size: 17px; font-weight: 700; }
:root[data-skin^="n-"] .sub-h { color: var(--text); font-size: 15px; font-weight: 700; }
:root[data-skin^="n-"] .btn { border-radius: 12px; min-height: 44px; font: 500 15px var(--font); box-shadow: none; }
:root[data-skin^="n-"] .btn-ink { background: var(--ink); border-color: var(--ink); color: #fff; font-weight: 700; }
:root[data-skin^="n-"] .btn-line { border: 1px solid var(--line); background: var(--card); color: var(--text); }
:root[data-skin^="n-"] .btn-sm { min-height: 36px; border-radius: 18px; font-size: 13px; }
:root[data-skin^="n-"] .colview { display: flex; background: var(--frame); border: 0; border-radius: 12px; padding: 4px; gap: 4px; }
:root[data-skin^="n-"] .colview button { flex: 1 1 auto; border: 0; border-radius: 9px; background: transparent; color: #3C4043; font: 500 14px var(--font); min-height: 40px; padding: 0 10px; }
:root[data-skin^="n-"] .colview button + button { border-left: 0; }
:root[data-skin^="n-"] .colview button.on { background: var(--ink); color: #fff; font-weight: 700; }
:root[data-skin^="n-"] .chip { background: var(--card); border: 1px solid #D5D1C8; color: var(--text); border-radius: 18px; }
:root[data-skin^="n-"] .chips button.chip { min-height: 36px; padding: 0 12px; font-size: 13px; border: 1px solid #D5D1C8; }
:root[data-skin^="n-"] .chip.on, :root[data-skin^="n-"] .chips button.chip.on { border: 2px solid var(--ink); background: var(--ink-soft); color: var(--ink-deep); font-weight: 700; }
:root[data-skin^="n-"] .field input, :root[data-skin^="n-"] .field select, :root[data-skin^="n-"] .field textarea,
:root[data-skin^="n-"] .proj-pick select, :root[data-skin^="n-"] .meta select, :root[data-skin^="n-"] .meta input, :root[data-skin^="n-"] .try-search input {
  border: 1px solid #D5D1C8; border-radius: 10px; background: #FAFAF8; min-height: 44px; font-family: var(--font);
}
:root[data-skin^="n-"] th { background: var(--tint); color: #3C4043; font-weight: 500; font-size: 12px; }
:root[data-skin^="n-"] .table-wrap { border-radius: 10px; border: 1px solid var(--line); }
:root[data-skin^="n-"] .banner.bad { background: var(--warn-soft); color: var(--warn-deep); border: 1px solid #F2D3BE; }
:root[data-skin^="n-"] .pill.todo { background: var(--warn-soft); color: var(--warn-deep); }
:root[data-skin^="n-"] .pill.ok { background: var(--ink-soft); color: var(--ink-deep); }
:root[data-skin^="n-"] .pf-summary div { background: var(--tint); border-radius: 12px; }
:root[data-skin^="n-"] .pf-summary b { color: var(--text); font-size: 22px; }
:root[data-skin^="n-"] .sheet { border-radius: 18px 18px 0 0; }
:root[data-skin^="n-"] .sheet h3 { color: var(--text); }
:root[data-skin^="n-"] .record-list, :root[data-skin^="n-"] .batch-list { border: 1px solid var(--line); border-radius: 14px; background: var(--line); }
:root[data-skin^="n-"] .record .amt { color: var(--text); }
:root[data-skin^="n-"] .as-bar { background: var(--tint); }
:root[data-skin^="n-"] .action-bar.sticky { background: color-mix(in srgb, var(--card) 96%, transparent); }
:root[data-skin^="n-"] .ops-top { background: var(--paper); }
:root[data-skin^="n-"] .ops-top .colview { background: transparent; border-radius: 0; padding: 0; border-bottom: 1px solid var(--line); overflow-x: auto; scrollbar-width: none; gap: 0; }
:root[data-skin^="n-"] .ops-top .colview::-webkit-scrollbar { display: none; }
:root[data-skin^="n-"] .ops-top .colview button { flex: 1 0 auto; border-radius: 0; min-height: 44px; color: #3C4043; background: transparent; }
:root[data-skin^="n-"] .ops-top .colview button.on { background: transparent; color: var(--ink-deep); box-shadow: inset 0 -3px 0 var(--ink); }

/* ================= 新组件（任何皮肤可用） ================= */
.v2-seg { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; background: var(--frame); border-radius: 12px; padding: 4px; margin: 4px 0 14px; }
.v2-seg button { min-height: 44px; border: 0; border-radius: 9px; background: transparent; color: #3C4043; font: 500 15px var(--font); cursor: pointer; }
.v2-seg button[aria-pressed="true"] { background: var(--ink); color: #fff; font-weight: 700; }
.v2-card { background: var(--card); border: 1px solid var(--line); border-radius: 14px; padding: 16px; display: flex; flex-direction: column; gap: 14px; margin-bottom: 16px; }
.v2-step { display: flex; flex-direction: column; gap: 8px; }
.v2-step-h { display: flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 700; color: var(--text); margin: 0; }
.v2-step-h i { font-style: normal; width: 22px; height: 22px; border-radius: 50%; background: var(--ink-deep); color: #fff; font-size: 12px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; flex: none; }
.v2-step-h em { font-style: normal; font-weight: 400; font-size: 12px; color: var(--muted); }
.v2-hint { font-size: 12px; color: var(--muted); margin: 0; }
.v2-input { min-height: 44px; box-sizing: border-box; width: 100%; border: 1px solid #D5D1C8; border-radius: 10px; padding: 0 12px; font: 15px var(--font); color: var(--text); background: #FAFAF8; }
select.v2-input { padding: 0 10px; }
.v2-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.v2-tile { min-height: 76px; border: 1px solid #D5D1C8; border-radius: 12px; background: var(--card); color: var(--text); font: 500 14px var(--font); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; cursor: pointer; text-align: center; }
.v2-tile:first-child { border: 1.5px solid var(--ink); background: var(--ink-soft); color: var(--ink-deep); }
.v2-tile svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.v2-dash { min-height: 44px; border: 1.5px dashed #BDB8AD; border-radius: 10px; background: #FAFAF8; color: var(--text); font: 14px var(--font); display: flex; align-items: center; justify-content: center; gap: 6px; cursor: pointer; }
.v2-sec-h { display: flex; justify-content: space-between; align-items: center; margin: 4px 0 10px; }
.v2-sec-h h2 { margin: 0; font-size: 16px; font-weight: 700; color: var(--text); }
.v2-sec-h em { font-style: normal; font-size: 12px; color: var(--warn); }
.v2-sec-h .ta-btn { border: 1px solid var(--line); background: var(--card); color: var(--text); border-radius: 20px; min-height: 36px; padding: 0 12px; font: 500 13px var(--font); cursor: pointer; }
.v2-list { list-style: none; margin: 0 0 18px; padding: 0; background: var(--card); border: 1px solid var(--line); border-radius: 14px; overflow: hidden; }
.v2-list > li { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-top: 1px solid #EFEDE8; min-height: 44px; }
.v2-list > li:first-child { border-top: 0; }
.v2-list .th { width: 44px; height: 44px; border-radius: 8px; background: #ECEAE4; flex: none; object-fit: cover; }
.v2-list .bd { flex: 1; min-width: 0; cursor: pointer; }
.v2-list .bd b { display: block; font-size: 15px; font-weight: 500; color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v2-list .bd span { display: block; font-size: 12px; color: var(--muted); }
.v2-list .go { border: 1px solid var(--ink); color: var(--ink-deep); background: var(--card); border-radius: 20px; min-height: 36px; padding: 0 12px; font: 500 13px var(--font); cursor: pointer; flex: none; }
.v2-list .chev { color: #9AA0A6; font-size: 18px; flex: none; }
.v2-list .empty-li { color: var(--muted); font-size: 13px; justify-content: center; }
.v2-tag { flex: none; font-size: 12px; font-weight: 500; padding: 2px 8px; border-radius: 10px; background: var(--ink-soft); color: var(--ink-deep); white-space: nowrap; }
.v2-tag.warn { background: var(--warn-soft); color: var(--warn-deep); }
.v2-tag.gray { background: var(--tint); color: var(--muted); }
.v2-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.v2-stats > div { border-radius: 12px; padding: 12px; background: var(--tint); display: flex; flex-direction: column; align-items: center; gap: 2px; }
.v2-stats b { font-size: 22px; font-variant-numeric: tabular-nums; color: var(--text); }
.v2-stats span { font-size: 12px; color: var(--muted); }
.v2-stats .ok { background: var(--ink-soft); } .v2-stats .ok b { color: var(--ink-deep); }
.v2-stats .bad { background: var(--warn-soft); } .v2-stats .bad b, .v2-stats .bad span { color: var(--warn-deep); }
.v2-alert { border: 1px solid #F2D3BE; background: #FFF8F3; border-radius: 12px; padding: 10px 12px; display: flex; align-items: center; gap: 10px; }
.v2-alert div { flex: 1; min-width: 0; font-size: 14px; } .v2-alert small { display: block; font-size: 12px; color: var(--muted); }
.v2-2btn { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.v2-2btn button { min-height: 44px; border: 1px solid #D5D1C8; border-radius: 12px; background: var(--card); color: var(--text); font: 500 14px var(--font); cursor: pointer; }
.v2-link { border: 0; background: none; color: var(--muted); font: 13px var(--font); text-decoration: underline; cursor: pointer; padding: 8px; align-self: center; }

/* 明细表 */
.v2-table-sec { background: var(--card); border-top: 1px solid var(--line); margin: 8px -16px 0; padding: 16px 16px 8px; }
.v2-tb-bar { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.v2-tb-bar label.lb { font-size: 14px; color: #3C4043; flex: none; }
.v2-tb-bar select { flex: 1; min-width: 0; }
.v2-ck { display: flex; align-items: center; gap: 6px; font-size: 14px; color: var(--text); flex: none; white-space: nowrap; }
.v2-ck input { width: 20px; height: 20px; accent-color: var(--ink); }
.v2-search { display: flex; align-items: center; gap: 8px; min-height: 44px; border: 1px solid #D5D1C8; border-radius: 10px; padding: 0 12px; background: #FAFAF8; margin-bottom: 10px; }
.v2-search svg { width: 18px; height: 18px; fill: none; stroke: var(--muted); stroke-width: 2; flex: none; }
.v2-search input { flex: 1; min-width: 0; border: 0; background: transparent; font: 14px var(--font); color: var(--text); min-height: 40px; outline: none; }
.v2-tb-note { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.v2-tb-note p { flex: 1; margin: 0; font-size: 12px; color: var(--muted); }
/* 表格框限高，框里上下滚；滑到顶或底时由 app.js 把剩下的滑动交给整页（同一次手势里接着滑），不会卡住 */
.v2-grid-wrap { overflow: auto; border: 1px solid var(--line); border-radius: 10px; max-height: 70vh; -webkit-overflow-scrolling: touch; overscroll-behavior-y: auto; }
table.v2-grid { border-collapse: separate; border-spacing: 0; font-size: 13px; line-height: 1.4; color: var(--text); min-width: 100%; }
table.v2-grid th { position: sticky; top: 0; z-index: 2; padding: 8px 6px; font-weight: 500; font-size: 12px; text-align: left; vertical-align: bottom; background: var(--tint); color: #3C4043; border-bottom: 1px solid var(--line); white-space: nowrap; }
table.v2-grid td { padding: 0; vertical-align: top; border-bottom: 1px solid #EFEDE8; background: var(--card); }
table.v2-grid td .cv { display: block; padding: 9px 6px; min-height: 18px; white-space: nowrap; }
table.v2-grid td input { display: block; width: 100%; min-width: 56px; min-height: 38px; border: 0; background: transparent; padding: 0 6px; font: 13px var(--font); color: var(--text); }
table.v2-grid td input:focus { outline: 2px solid var(--ink); outline-offset: -2px; background: #fff; }
table.v2-grid td.num input, table.v2-grid td.num .cv { text-align: right; font-variant-numeric: tabular-nums; }
table.v2-grid .k1, table.v2-grid .k2 { position: sticky; z-index: 1; }
table.v2-grid th.k1, table.v2-grid th.k2 { z-index: 3; background: #E9E7E1; font-weight: 700; }
table.v2-grid .k1 { left: 0; }
table.v2-grid .k2 { border-right: 1px solid #C9C4B9; }
table.v2-grid td.k1 button { border: 0; background: none; padding: 9px 6px; font: 500 13px var(--font); color: var(--text); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; text-align: left; white-space: nowrap; }
table.v2-grid td.k2 input { font-weight: 700; color: var(--ink-deep); }
table.v2-grid td.img { padding: 4px 6px; }
table.v2-grid td.img img, table.v2-grid td.img .noimg { width: 32px; height: 40px; border-radius: 4px; object-fit: cover; display: block; }
table.v2-grid td.img .noimg { box-sizing: border-box; border: 1.5px dashed var(--ink); background: transparent; color: var(--ink-deep); display: flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; }
table.v2-grid td.img .noimg svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; }
table.v2-grid td.img button.has { border: 0; padding: 0; background: none; cursor: pointer; }
table.v2-grid td.ro .cv { color: var(--muted); }
table.v2-grid tr.rs td { background: #FFF8F3; }
table.v2-grid td.owe input, table.v2-grid td.owe .cv { color: var(--warn); font-weight: 700; }
table.v2-grid td.arr { background: var(--ink-soft); }
table.v2-grid td.arr input { color: var(--ink-deep); font-weight: 700; }
table.v2-grid td.dirty { box-shadow: inset 3px 0 0 var(--warn); }
table.v2-grid .tp { font-size: 12px; font-weight: 700; color: var(--warn); padding: 9px 6px; display: block; }
table.v2-grid .tp.first { color: var(--muted); font-weight: 400; }
table.v2-grid td.empty { padding: 24px 12px; color: var(--muted); text-align: center; white-space: normal; }
.v2-tb-foot { display: grid; grid-template-columns: 1fr 1.4fr; gap: 10px; margin: 12px 0 6px; }
.v2-tb-foot button { min-height: 48px; border-radius: 12px; font: 500 15px var(--font); cursor: pointer; }
.v2-tb-foot .l { border: 1px solid #D5D1C8; background: var(--card); color: var(--text); }
.v2-tb-foot .p { border: 0; background: var(--ink); color: #fff; font-weight: 700; }
.v2-tb-foot .p[disabled] { opacity: .55; }
.v2-tb-more { display: flex; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.v2-tb-more button { border: 0; background: none; color: var(--ink); font: 13px var(--font); padding: 6px 0; cursor: pointer; }

/* 列设置 */
.cs-quick { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.cs-quick button { min-height: 44px; border: 1px solid #D5D1C8; background: var(--card); color: var(--text); border-radius: 10px; font: 14px var(--font); cursor: pointer; }
.cs-quick button.on { border: 2px solid var(--ink); background: var(--ink-soft); color: var(--ink-deep); font-weight: 700; }
.cs-lock { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 10px; background: var(--tint); font-size: 13px; color: #3C4043; }
.cs-group h4 { margin: 10px 0 4px; font-size: 14px; color: #3C4043; display: flex; align-items: center; gap: 8px; }
.cs-group h4 em { font-style: normal; font-size: 11px; font-weight: 500; padding: 2px 6px; border-radius: 6px; background: var(--warn-soft); color: var(--warn-deep); }
.cs-row { min-height: 48px; display: flex; align-items: center; gap: 12px; border-bottom: 1px solid #EFEDE8; touch-action: pan-y; }
.cs-row input { width: 22px; height: 22px; accent-color: var(--ink); }
.cs-row span { flex: 1; font-size: 15px; }
.cs-row.off span { color: var(--muted); }
.cs-row .mv { width: 36px; height: 36px; border: 0; background: none; color: #9AA0A6; font-size: 16px; cursor: pointer; }
.cs-row.drag { background: var(--ink-soft); }

/* 整行编辑 */
.re-sheet .sheet { padding: 0; max-width: 560px; background: var(--paper); }
.re-top { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; gap: 4px; background: var(--card); border-bottom: 1px solid var(--line); padding: 8px 8px 8px 4px; }
.re-top .x { width: 44px; height: 44px; border: 0; background: none; font-size: 22px; color: var(--text); cursor: pointer; }
.re-top h2 { margin: 0; font-size: 17px; color: var(--ink-deep); }
.re-top div { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.re-top small { font-size: 12px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.re-top .pos { font-size: 13px; color: var(--muted); padding-right: 8px; }
.re-img { position: relative; height: 300px; background: #E4E1DA; display: flex; align-items: center; justify-content: center; }
.re-img img { max-width: 100%; max-height: 100%; object-fit: contain; cursor: zoom-in; }
.re-img .ph { display: flex; flex-direction: column; align-items: center; gap: 8px; color: var(--muted); font-size: 13px; }
.re-img .acts { position: absolute; left: 12px; right: 12px; bottom: 12px; display: flex; gap: 8px; }
.re-img .acts label, .re-img .acts button { flex: 1; min-height: 44px; border: 0; border-radius: 22px; background: rgba(30, 35, 38, .78); color: #fff; font: 14px var(--font); display: flex; align-items: center; justify-content: center; gap: 6px; cursor: pointer; }
.re-box { margin: 12px 16px 0; background: var(--card); border: 1px solid var(--line); border-radius: 14px; padding: 16px; display: flex; flex-direction: column; gap: 14px; }
.re-f { display: flex; flex-direction: column; gap: 6px; }
.re-f > label, .re-f > span { font-size: 13px; color: #3C4043; }
.re-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.re-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.re-row { display: flex; gap: 8px; }
.re-row .v2-input { flex: 1; min-width: 0; }
.re-row button, .re-row label.btnlike { flex: none; min-height: 44px; padding: 0 12px; border: 1px solid var(--ink); background: var(--card); color: var(--ink-deep); border-radius: 10px; font: 13px var(--font); cursor: pointer; display: flex; align-items: center; }
.re-fs { border: 0; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.re-fs legend { padding: 0; margin-bottom: 8px; font-size: 15px; font-weight: 700; }
.re-fs legend small { font-size: 12px; font-weight: 400; color: var(--muted); margin-left: 6px; }
.re-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.re-chips.g4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.re-chips button { min-height: 44px; padding: 0 14px; border-radius: 22px; border: 1px solid #D5D1C8; background: var(--card); color: var(--text); font: 14px var(--font); cursor: pointer; }
.re-chips.g4 button { padding: 0 4px; }
.re-chips button[aria-pressed="true"] { border: 2px solid var(--ink); background: var(--ink-soft); color: var(--ink-deep); font-weight: 700; }
.re-h { margin: 0; font-size: 15px; font-weight: 700; display: flex; align-items: center; gap: 8px; }
.re-h em { font-style: normal; font-size: 11px; font-weight: 500; padding: 2px 6px; border-radius: 6px; background: var(--warn-soft); color: var(--warn-deep); }
.re-calc { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 10px 12px; border-radius: 10px; background: var(--tint); font-size: 13px; color: #3C4043; }
.re-calc b { font-size: 15px; color: var(--text); white-space: nowrap; }
.re-foot { position: sticky; bottom: 0; background: var(--card); border-top: 1px solid var(--line); padding: 12px 16px calc(16px + env(safe-area-inset-bottom)); display: grid; grid-template-columns: 1fr 2fr; gap: 10px; margin-top: 16px; }
.re-foot button { min-height: 48px; border-radius: 12px; font: 15px var(--font); cursor: pointer; }
.re-foot .l { border: 1px solid #D5D1C8; background: var(--card); color: var(--text); }
.re-foot .p { border: 0; background: var(--ink); color: #fff; font-weight: 700; }
.re-tag { border: 2px solid var(--ink) !important; background: #fff !important; font-weight: 700 !important; }

/* 新版下，入库管理隐藏旧的上传区和旧列表（新版控件替代） */
.v2-on #proj-list-view > .inbound-switch, .v2-on #proj-list-view > .ib-steps, .v2-on #proj-list-view > .slip.ib-up,
.v2-on #proj-list-view > .slip.ib-sec, .v2-on #proj-list-view > .ib-all { display: none !important; }
.v2-on #ib-bar { display: none !important; }
.re-img svg, .re-row svg, .v2-tile svg, .re-top svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.re-img .ph svg { width: 40px; height: 40px; stroke-width: 1.5; }
table.v2-grid td[data-c="商品名称"] input, table.v2-grid td[data-c="品名"] input { min-width: 116px; }
table.v2-grid td[data-c="面料成分"] input { min-width: 140px; }
table.v2-grid td[data-c="档口/供应商"] input, table.v2-grid td[data-c="场景"] input, table.v2-grid td[data-c="备注"] input { min-width: 104px; }
table.v2-grid td[data-c="颜色"] input, table.v2-grid td[data-c="风格"] input, table.v2-grid td[data-c="版型"] input { min-width: 64px; }
table.v2-grid td.num input { min-width: 48px; width: 56px; }
table.v2-grid td[data-c="自定义款号"] input { min-width: 76px; }

/* ---------- 新版风格判断 ---------- */
.sv2-on > .slip, .sv2-on > .style-bar { display: none !important; }
.sv-seg small { font-size: 12px; font-weight: 400; margin-left: 2px; }
.sv-slots { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.sv-slot { position: relative; height: 112px; border-radius: 12px; border: 1.5px dashed #BDB8AD; background: #FAFAF8; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; font: 13px var(--font); color: #3C4043; cursor: pointer; overflow: hidden; padding: 0; }
.sv-slot .plus { font-size: 24px; line-height: 1; color: var(--muted); }
.sv-slot.on { border: 1px solid #D5D1C8; justify-content: flex-end; padding-bottom: 8px; }
.sv-slot.on img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.sv-slot.on span:not(.plus) { position: relative; background: rgba(255, 255, 255, .88); border-radius: 8px; padding: 1px 8px; color: var(--text); }
.sv-slot .ok { position: absolute; right: 8px; top: 8px; width: 22px; height: 22px; border-radius: 50%; background: var(--ink); color: #fff; font: 700 13px/22px var(--font); font-style: normal; text-align: center; }
.sv-pick label { min-height: 44px; border: 1px solid #D5D1C8; border-radius: 12px; background: var(--card); color: var(--text); font: 500 15px var(--font); display: flex; align-items: center; justify-content: center; gap: 8px; cursor: pointer; }
.sv-pick label.sv-cam { border: 1px solid var(--ink); background: var(--ink-soft); color: var(--ink-deep); }
.sv-pick svg, #sv-scan svg, .sv-searchrow svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.sv-lb { font-size: 13px; color: #3C4043; margin: 0; }
.sv-lb small { color: var(--muted); }
#sv-sku-row #sku-pick { flex: 1; min-width: 0; }
#sv-scan { width: 44px; justify-content: center; padding: 0; border-color: #D5D1C8; color: var(--text); }
#sku-pick-hint { margin: 0; font-size: 12px; color: var(--ink-deep); }
.sv-items { display: flex; flex-wrap: wrap; gap: 8px; }
.sv-it { display: inline-flex; align-items: center; gap: 4px; min-height: 36px; padding: 0 4px 0 12px; border-radius: 18px; background: var(--ink-soft); color: var(--ink-deep); font-size: 13px; }
.sv-it button { width: 30px; height: 30px; border: 0; background: none; color: var(--ink-deep); font-size: 16px; cursor: pointer; }
.sv-add { min-height: 36px; padding: 0 12px; border: 1.5px dashed var(--ink); border-radius: 18px; background: var(--card); color: var(--ink-deep); font: 13px var(--font); cursor: pointer; }
.sv-more summary { font-size: 13px; color: var(--muted); cursor: pointer; padding: 4px 0; }
.sv-more .proj-pick { margin-top: 8px; }
.sv-go { min-height: 52px; border-radius: 12px; }
.sv-go[disabled] { opacity: .55; }
.sv-find { padding-bottom: 20px; }
.sv-searchrow { display: flex; gap: 8px; margin-bottom: 10px; align-items: stretch; }
.sv-searchrow #btn-sty-find { min-height: 44px; border-radius: 10px; border: 1px solid #D5D1C8; background: var(--card); color: var(--text); font: 14px var(--font); padding: 0 12px; display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.sv-filters { margin-bottom: 10px; }
.sv-bar #btn-sty-pick { min-height: 44px; border-radius: 10px; border: 1px solid #D5D1C8; background: var(--card); color: var(--text); font: 14px var(--font); padding: 0 12px; white-space: nowrap; }
#sv-modes .colview { width: 100%; margin: 4px 0 8px; }
#sv-modes .colview button { min-height: 36px; font-size: 13px; }
.sv2-on .style-list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.sv2-on .sitem.sv-c { border-radius: 10px; border: 1px solid var(--line); }
.sv2-on .sitem.sv-c img, .sv2-on .sv-noimg { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; display: block; background: #E4DED3; }
.sv2-on .sitem.sv-c .sb { padding: 6px 8px 10px; gap: 2px; }
.sv2-on .sitem.sv-c .sb b { font-size: 13px; color: var(--ink-deep); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sv2-on .sitem.sv-c .sb span { font-size: 12px; color: #3C4043; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sv2-on .sitem.sv-c .sb small { font-size: 12px; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sv-wait { font-style: normal; color: var(--warn); font-weight: 700; }
.sv2-on .sitem .badge { background: var(--text); border-radius: 6px; }
.sty-acts { display: flex; gap: 6px; flex-wrap: wrap; width: 100%; }
.sty-acts .btn { flex: 1 1 auto; }
.sv2-on .sty-pickbar { flex-wrap: wrap; }
.sv-searchrow > .v2-search { min-width: 0; }

/* ---------- 新版店务：数据页 ---------- */
.sd-ctl { display: flex; flex-direction: column; gap: 10px; margin: 6px 0 12px; }
.sd-row { display: flex; align-items: center; gap: 10px; }
.sd-row > label, .sd-lb { font-size: 14px; color: #3C4043; flex: none; }
.sd-row select { flex: 1; min-width: 0; }
.sd-month { flex: none; min-height: 44px; padding: 0 14px; border: 1px solid var(--ink); border-radius: 12px; background: var(--card); color: var(--ink-deep); font: 500 14px var(--font); cursor: pointer; }
.sd-quick { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; position: relative; }
.sd-pill { min-height: 40px; padding: 0 14px; border-radius: 20px; border: 1px solid #D5D1C8; background: var(--card); color: var(--text); font: 14px var(--font); cursor: pointer; }
.sd-pill.on { border: 2px solid var(--ink); background: var(--ink-soft); color: var(--ink-deep); font-weight: 700; }
.sd-morewrap { position: relative; }
.sd-menu { position: absolute; z-index: 5; top: 46px; left: 0; min-width: 140px; background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 6px; box-shadow: 0 8px 24px rgba(0,0,0,.12); display: flex; flex-direction: column; }
.sd-menu button { min-height: 44px; border: 0; border-radius: 8px; background: transparent; text-align: left; padding: 0 12px; font: 14px var(--font); color: var(--text); cursor: pointer; }
.sd-menu button.on { background: var(--ink-soft); color: var(--ink-deep); font-weight: 700; }
.sd-period { margin: 0; font-size: 12px; color: var(--muted); }
.sd-card { background: var(--card); border: 1px solid var(--line); border-radius: 14px; padding: 16px; margin-bottom: 14px; display: flex; flex-direction: column; gap: 12px; }
.sd-card h2 { margin: 0; font-size: 17px; font-weight: 700; color: var(--text); }
.sd-card h2 small { font-size: 12px; font-weight: 400; color: var(--muted); margin-left: 6px; }
.sd-h { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.sd-h > span { font-size: 12px; color: var(--muted); }
.sd-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.sd-tile { background: var(--tint); border-radius: 12px; padding: 10px; display: flex; flex-direction: column; gap: 2px; text-align: left; border: 0; font-family: var(--font); color: var(--text); }
button.sd-tile { cursor: pointer; }
.sd-tile span { font-size: 12px; color: var(--muted); }
.sd-tile b { font-size: 22px; font-weight: 700; font-variant-numeric: tabular-nums; line-height: 1.2; }
.sd-tile small { font-size: 11px; color: var(--muted); }
.sd-tile.sd-hi { background: var(--ink-soft); } .sd-tile.sd-hi b { color: var(--ink-deep); }
.sd-warn { display: flex; justify-content: space-between; align-items: center; gap: 10px; text-align: left; border: 1px solid #F2D3BE; background: #FFF8F3; color: var(--warn-deep); border-radius: 12px; padding: 10px 12px; font: 13px var(--font); cursor: pointer; }
.sd-warn b { flex: none; }
.sd-brow { display: grid; grid-template-columns: 76px 1fr auto; align-items: center; gap: 10px; font-size: 13px; }
.sd-brow .l { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sd-brow .r { color: var(--muted); font-variant-numeric: tabular-nums; white-space: nowrap; }
.sd-bar { height: 10px; border-radius: 5px; background: #F0EEE9; overflow: hidden; display: block; }
.sd-bar i { display: block; height: 100%; border-radius: 5px; background: var(--ink); }
.sd-bar.warn i { background: #C2662F; }
.sd-note { margin: 0; font-size: 12px; color: var(--muted); }
.sd-xbtn { flex: none; min-height: 36px; padding: 0 12px; border: 1px solid var(--line); border-radius: 18px; background: var(--card); color: var(--text); font: 13px var(--font); cursor: pointer; }
.sd-seg { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; background: var(--frame); border-radius: 10px; padding: 4px; }
.sd-seg button { min-height: 40px; border: 0; border-radius: 8px; background: transparent; color: #3C4043; font: 13px var(--font); cursor: pointer; }
.sd-seg button[aria-pressed="true"] { background: var(--card); color: var(--ink-deep); font-weight: 700; }
.sd-tw { overflow-x: auto; border: 1px solid var(--line); border-radius: 10px; }
table.sd-t { border-collapse: collapse; width: 100%; font-size: 13px; font-variant-numeric: tabular-nums; }
table.sd-t th { position: static; background: var(--tint); color: #3C4043; font-weight: 500; font-size: 12px; padding: 8px; text-align: left; white-space: nowrap; border-bottom: 1px solid var(--line); }
table.sd-t td { padding: 9px 8px; border-bottom: 1px solid #EFEDE8; white-space: nowrap; }
table.sd-t td.k { font-weight: 700; color: var(--ink-deep); }
table.sd-t td.warn { color: var(--warn); font-weight: 700; }
table.sd-t td.best { color: var(--ink-deep); font-weight: 700; }
table.sd-t tr.sum td { font-weight: 700; border-bottom: 0; }
table.sd-t td.sd-empty { color: var(--muted); text-align: center; padding: 16px; }
.sd-recon { border: 1px solid #F2D3BE; background: #FFF8F3; border-radius: 12px; padding: 10px 12px; color: var(--warn-deep); font-size: 13px; }
.sd-recon p { margin: 0; } .sd-recon p + p { margin-top: 4px; }
.sd-sub { margin: 0; font-size: 13px; color: var(--muted); }
.sd-top { list-style: none; margin: 0; padding: 0; }
.sd-top li { display: flex; justify-content: space-between; gap: 8px; padding: 9px 0; border-top: 1px solid #EFEDE8; font-size: 14px; }
.sd-top li b { color: var(--ink-deep); }
.sd-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.sd-big { min-height: 48px; border-radius: 12px; border: 1px solid var(--ink); background: var(--ink-soft); color: var(--ink-deep); font: 700 15px var(--font); cursor: pointer; }
.sd-big.p { background: var(--ink); color: #fff; border: 0; }
.sd-edits { list-style: none; margin: 0; padding: 0; }
.sd-edits li { padding: 9px 0; border-top: 1px solid #EFEDE8; display: flex; flex-direction: column; gap: 2px; }
.sd-edits b { font-size: 14px; font-weight: 500; } .sd-edits span { font-size: 12px; color: var(--muted); }

/* ---------- 新版店务：记试穿 ---------- */
.try-sum { display: flex; justify-content: space-between; gap: 6px; background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; font-size: 13px; color: #3C4043; margin-bottom: 12px; }
.try-sum b { color: var(--text); }
.try-h { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.try-h h2 { margin: 0 !important; }
.try-walk { min-height: 36px; padding: 0 12px; border: 1px solid #D5D1C8; border-radius: 18px; background: var(--card); color: var(--text); font: 13px var(--font); cursor: pointer; }
.mem-v2 { display: flex !important; align-items: center; gap: 12px; background: var(--ink-soft); border-radius: 12px; padding: 12px; }
.mem-v2 .mem-av { width: 40px; height: 40px; border-radius: 50%; background: var(--ink); color: #fff; font: 700 16px/40px var(--font); font-style: normal; text-align: center; flex: none; }
.mem-v2 .mem-bd { flex: 1; min-width: 0; font-size: 13px; }
.mem-v2 .mem-bd b { font-size: 15px; color: var(--ink-deep); }
.mem-v2 .mem-ph { font-size: 12px; color: #3C4043; }
.try-ic { width: 44px; min-width: 44px; padding: 0 !important; display: flex; align-items: center; justify-content: center; flex: none !important; }
.try-ic svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.try-cart li .ci-res { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.ci-rh { margin: 8px 0 4px; font-size: 12px; color: var(--muted); }
:root[data-skin^="n-"] .try-cart > li { border: 1px solid var(--line); border-radius: 12px; padding: 12px; background: var(--card); }
:root[data-skin^="n-"] .ci-res button { min-height: 44px; border-radius: 10px; border: 1px solid #D5D1C8; background: var(--card); font: 14px var(--font); color: var(--text); }
:root[data-skin^="n-"] .ci-res button.on.sold { border: 2px solid var(--ink); background: var(--ink-soft); color: var(--ink-deep); font-weight: 700; }
:root[data-skin^="n-"] .ci-res button.on.unsold { border: 2px solid var(--warn); background: var(--warn-soft); color: var(--warn-deep); font-weight: 700; }
:root[data-skin^="n-"] .ci-res button.on.tried { border: 2px solid var(--muted); background: #F1EFEA; color: var(--text); font-weight: 700; }
:root[data-skin^="n-"] .ci-reasons .chip.on { border: 2px solid var(--warn); background: var(--warn-soft); color: var(--warn-deep); }
.try-dock { position: sticky; bottom: calc(66px + env(safe-area-inset-bottom)); z-index: 4; display: grid; grid-template-columns: 1fr 2fr; gap: 10px; background: var(--card); border: 1px solid var(--line); border-radius: 14px; padding: 10px; margin: 0 0 14px; box-shadow: 0 -4px 16px rgba(0,0,0,.06); }
.try-dock .btn[hidden] { display: none; }
.try-dock:has(.btn:not([hidden])) { display: grid; }
.try-dock:not(:has(.btn:not([hidden]))) { display: none; }

/* ---------- 新版店务：商品表 ---------- */
.gd-viewsw { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin: 6px 0; }
.gd-viewsw p { margin: 0; }
.gd-vs { display: flex; background: var(--frame); border-radius: 10px; padding: 3px; gap: 3px; flex: none; }
.gd-vs button { min-height: 32px; border: 0; border-radius: 7px; background: transparent; padding: 0 12px; font: 13px var(--font); color: #3C4043; cursor: pointer; }
.gd-vs button[aria-pressed="true"] { background: var(--card); color: var(--ink-deep); font-weight: 700; }
table.gd-tbl tr { cursor: pointer; }
table.gd-tbl td.k1 .cv b { color: var(--ink-deep); }
table.gd-tbl th.k2, table.gd-tbl td.k2 { position: sticky; z-index: 1; border-right: 1px solid #C9C4B9; }
table.gd-tbl th.k2 { z-index: 3; }
table.gd-tbl td.k1 { min-width: 76px; }
table.gd-tbl td .cv.miss { color: var(--warn); }
table.gd-tbl td.img .noimg { width: 32px; height: 40px; box-sizing: border-box; border: 1.5px dashed var(--ink); border-radius: 4px; display: flex; align-items: center; justify-content: center; color: var(--ink-deep); }
table.gd-tbl td.img .noimg svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; }
#ops-try .try-search { display: flex; gap: 8px; align-items: stretch; }
#ops-try .try-search input { flex: 1; min-width: 0; }
:root[data-skin^="n-"] .ci-reasons button.chip.on { border: 2px solid var(--warn); background: var(--warn-soft); color: var(--warn-deep); }

/* 左边固定两列：款号 18%、名称（自定义款号）22%，合起来五分之二；内容长就换行，表头和内容同宽对齐 */
table.v2-grid th.k1, table.v2-grid td.k1 { left: 0; width: var(--k1w, 64px); min-width: var(--k1w, 64px); max-width: var(--k1w, 64px); box-sizing: border-box; }
table.v2-grid th.k2, table.v2-grid td.k2 { position: sticky; left: var(--k1w, 64px); width: var(--k2w, 80px); min-width: var(--k2w, 80px); max-width: var(--k2w, 80px); box-sizing: border-box; border-right: 1px solid #C9C4B9; }
table.v2-grid td.k2 { z-index: 1; } table.v2-grid th.k2 { z-index: 3; }
table.v2-grid th.k1, table.v2-grid th.k2 { white-space: normal; word-break: break-all; }
table.v2-grid td.k1 .cv, table.v2-grid td.k2 .cv, table.v2-grid td.k1 button { white-space: normal; word-break: break-all; overflow-wrap: anywhere; }
table.v2-grid td.k1 button { width: 100%; }
table.v2-grid td.k2 input { min-width: 0 !important; width: 100%; }
table.gd-tbl td.k1 { min-width: var(--k1w, 64px); }
table.v2-grid td { vertical-align: top; }
table.v2-grid th { vertical-align: bottom; }
table.v2-grid th.img, table.v2-grid td.img { width: 48px; min-width: 48px; max-width: 48px; box-sizing: border-box; text-align: left; }
table.v2-grid td.fab .fabw { display: flex; align-items: center; }
table.v2-grid td.fab input { min-width: 128px; flex: 1; }
table.v2-grid .fabcam { flex: none; width: 36px; height: 36px; margin-right: 2px; border: 1px solid var(--ink-line); border-radius: 8px; background: var(--ink-soft); color: var(--ink-deep); display: flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; }
table.v2-grid .fabcam svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
/* 待归入的单并进“已上传的批次”：排在批次前面，用浅黄底区分 */
.v2-list.v2-pend { margin-bottom: 8px; border-color: #E8D9A8; background: #FFFBEF; }
/* 明细表下面的“这一批的单据” */
details.v2-bs { margin-top: 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--card); }
details.v2-bs > summary { list-style: none; display: flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 14px; cursor: pointer; }
details.v2-bs > summary::-webkit-details-marker { display: none; }
details.v2-bs > summary b { font-size: 15px; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
details.v2-bs > summary em { font-style: normal; font-size: 13px; color: var(--muted); }
details.v2-bs > summary::after { content: "›"; color: var(--muted); font-size: 18px; transition: transform .15s; }
details.v2-bs[open] > summary::after { transform: rotate(90deg); }
details.v2-bs .v2-list { margin: 0 10px; }
.v2-bs-act { display: flex; gap: 10px; justify-content: space-between; padding: 10px 14px 14px; }
.v2-bs-act button { min-height: 40px; padding: 0 14px; border-radius: 20px; border: 1px solid var(--line); background: var(--card); font: 500 14px var(--font); color: var(--text); cursor: pointer; }
.v2-bs-act button.d { border-color: transparent; background: none; color: var(--stamp, #B3261E); }
/* 日报：今天的工作（班次、卫生、上新、线上） */
.dl-work { border-top: 1px dashed var(--line); margin-top: 6px; padding-top: 10px; }
.dl-wh { margin: 0 0 8px; font-weight: 700; font-size: 15px; color: var(--text); }
.colview.dl-chips { display: flex; flex-wrap: wrap; gap: 8px; border: 0; border-radius: 0; overflow: visible; margin: 0; }
.colview.dl-chips button { flex: 0 0 auto; min-width: 64px; min-height: 40px; padding: 0 14px; border: 1.5px solid var(--line); border-radius: 20px; background: var(--card); color: var(--text); font: 500 14px var(--font); }
.colview.dl-chips button + button { border-left: 1.5px solid var(--line); }
.colview.dl-chips button.on { background: var(--ink-soft, #E6F0ED); border-color: var(--ink); color: var(--ink-deep, var(--ink)); font-weight: 700; }
.dl-new { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.dl-new .dl-min input { width: 72px; }
.dl-tip { display: block; margin-top: 4px; font-size: 12px; color: var(--muted); }
/* 数据页：工作统计 */
table.wk-t td.k, table.wk-t th.k { position: sticky; left: 0; background: var(--card); z-index: 1; border-right: 1px solid var(--line); }
table.wk-t th.k { background: var(--tint); }
table.wk-t td.k small { display: block; font-weight: 400; font-size: 11px; color: var(--muted); }
table.wk-t tr.wk-on td { background: var(--ink-soft, #E6F0ED); }
.wk-pick { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 0; border: 0; background: none; font: 700 13px var(--font); color: var(--ink-deep, var(--ink)); cursor: pointer; text-align: left; }
.wk-pick i { width: 18px; height: 18px; flex: none; border: 1.5px solid var(--ink); border-radius: 4px; display: inline-flex; align-items: center; justify-content: center; font-style: normal; font-size: 12px; color: #fff; }
.wk-pick[aria-pressed="true"] i { background: var(--ink); }
.wk-cmp { margin-top: 12px; padding-top: 4px; border-top: 1px solid var(--line); }
.wk-m { margin-top: 10px; }
.wk-mh { margin: 0 0 4px; font-size: 13px; font-weight: 700; color: var(--text); }
.sd-bar.lt i { background: #9DBFB6; }
/* 风格判断：搭配卡片右上角的分数 */
.sitem .sv-score { position: absolute; right: 6px; top: 6px; display: inline-flex; align-items: baseline; gap: 1px; padding: 2px 8px; border-radius: 12px; background: rgba(255,255,255,.94); color: var(--ink-deep, var(--ink)); font-size: 11px; font-weight: 600; box-shadow: 0 1px 4px rgba(0,0,0,.18); }
.sitem .sv-score b { font-size: 17px; font-weight: 800; font-variant-numeric: tabular-nums; }
.sitem .sv-score.sv-hi { background: var(--ink); color: #fff; }
.sitem .sv-score.sv-lo { color: #B3261E; }
.sitem .sv-score.part { padding: 2px 6px; font-size: 10px; } .sitem .sv-score.part b { font-size: 13px; }
/* 操作提示：浮在所有弹窗上面，成功绿勾、失败红叉 */
.toast { z-index: 3000 !important; display: flex; align-items: center; gap: 10px; text-align: left; padding: 12px 18px 12px 12px !important; border-radius: 14px !important; font-size: 15px !important; line-height: 1.45; max-width: min(92vw, 420px) !important; box-shadow: 0 10px 30px -8px rgba(0,0,0,.4); cursor: pointer; }
.toast[hidden] { display: none; }
.toast i { flex: none; width: 24px; height: 24px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-style: normal; font-weight: 800; font-size: 14px; background: rgba(255,255,255,.22); color: #fff; }
.toast.t-ok { background: #1F6B4F !important; color: #fff; }
.toast.t-ok i { background: #fff; color: #1F6B4F; }
.toast.t-err { background: #B3261E !important; color: #fff; }
.toast.t-err i { background: #fff; color: #B3261E; }
.toast.t-info { background: #2B3134 !important; color: #fff; }
/* 重要结果框（开通账号、改密码） */
.sheet-mask.done-mask { z-index: 2500; align-items: center; padding: 16px; }
.done-sheet { max-width: 380px; width: 100%; border-radius: 18px !important; text-align: center; padding: 24px 20px 18px !important; }
.done-ic { width: 56px; height: 56px; margin: 0 auto 10px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 28px; font-weight: 800; color: #fff; background: #1F6B4F; }
.done-sheet.bad .done-ic { background: #B3261E; }
.done-sheet h2 { margin: 0 0 12px; font-size: 20px; }
.done-kv { display: flex; justify-content: space-between; gap: 12px; margin: 0; padding: 8px 2px; border-bottom: 1px solid var(--line); font-size: 15px; text-align: left; }
.done-kv span { color: var(--muted); flex: none; }
.done-kv b { word-break: break-all; text-align: right; }
.done-p { margin: 10px 0 0; font-size: 14px; line-height: 1.6; color: var(--text); text-align: left; }
.done-sheet .btn-big { margin-top: 16px; width: 100%; }
/* 返回按钮：所有二级界面左上角一个明显的“‹ 返回”（带边框的胶囊按钮，44px 高，好点） */
body .back, body .sheet-x, body .re-top .x.re-back {
  display: inline-flex; align-items: center; justify-content: center; gap: 2px; width: auto; min-width: 84px; height: 44px; min-height: 44px; padding: 0 16px 0 12px;
  border: 1.5px solid var(--ink, #2E6B5E); border-radius: 22px; background: var(--card, #fff); color: var(--ink-deep, var(--ink, #2E6B5E));
  font: 700 16px/1 var(--font, system-ui); cursor: pointer; box-shadow: 0 1px 3px rgba(0,0,0,.08); flex: none; white-space: nowrap;
}
body .back { margin: 4px 0 12px; }
body .back:active, body .sheet-x:active, body .re-top .x.re-back:active { background: var(--ink-soft, #E6F0ED); }
body .sheet-x { font-size: 0; order: -1; }
body .sheet-x::before { content: "‹ 返回"; font: 700 16px/1 var(--font, system-ui); }
body .sheet-head { justify-content: flex-start; gap: 12px; position: sticky; top: 0; z-index: 3; background: var(--card, #fff); padding-top: 4px; padding-bottom: 8px; }
body .sheet-head h2 { flex: 1; min-width: 0; }
body .scan-x { width: auto; padding: 0 16px; font: 700 16px/1 var(--font, system-ui); background: rgba(0,0,0,.6); border: 1.5px solid #fff; }
/* 陈列：自动存档提示 */
.vm-saved { margin: 10px 0 8px; padding: 10px 12px; border-radius: 10px; background: #E7F3EC; color: #1F6B4F; font-size: 14px; font-weight: 600; }
/* 会员 DNA */
.dna-card h2 small { font-size: 13px; font-weight: 400; margin-left: 6px; }
.dna-sum { display: flex; gap: 10px; align-items: baseline; margin: 8px 0 0; padding: 10px 12px; border-radius: 10px; font-size: 14px; line-height: 1.5; }
.dna-sum b { flex: none; }
.dna-sum.ok { background: #E7F3EC; color: #1F5A45; }
.dna-sum.bad { background: #FBEAEA; color: #8E2A22; }
.dna-chg { margin-top: 8px; padding: 10px 12px; border-radius: 10px; background: #FFF6E0; color: #6B4E0E; font-size: 13px; }
.dna-chg ul { margin: 4px 0 0; padding-left: 1.2em; }
.dna-dims { margin-top: 10px; }
.dna-row { display: flex; gap: 10px; padding: 8px 0; border-top: 1px solid var(--line); }
.dna-k { flex: none; width: 40px; font-size: 13px; color: var(--muted); padding-top: 4px; }
.dna-row > div { display: flex; flex-wrap: wrap; gap: 6px; min-width: 0; }
.dna-chip { display: inline-flex; flex-direction: column; padding: 4px 10px; border-radius: 10px; font-size: 14px; font-weight: 600; line-height: 1.3; }
.dna-chip small { font-size: 11px; font-weight: 400; opacity: .8; }
.dna-chip.like { background: #E7F3EC; color: #1F5A45; }
.dna-chip.dis { background: #FBEAEA; color: #8E2A22; }
/* 商品库：超过上限提醒、清理 */
.gd-warn { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 6px 0 10px; padding: 10px 12px; border-radius: 10px; background: var(--ink-soft, #E6F0ED); font-size: 13px; color: var(--text); }
.gd-warn span { flex: 1 1 200px; min-width: 0; }
.gd-warn b { flex: 1 1 100%; font-size: 15px; }
.gd-warn.over { background: #FFF1E0; color: #6B3E0E; }
.cl-sum { margin: 10px 0 6px; font-size: 15px; }
.cl-bar { display: flex; align-items: center; gap: 12px; padding: 6px 0; font-size: 14px; }
.cl-bar span { flex: 1; color: var(--muted); }
.cl-list { list-style: none; margin: 0 0 12px; padding: 0; max-height: 50vh; overflow: auto; border-top: 1px solid var(--line); }
.cl-list li { border-bottom: 1px solid var(--line); }
.cl-list label { display: flex; align-items: center; gap: 10px; padding: 8px 2px; font-size: 14px; }
.cl-list img, .cl-list .noimg { width: 36px; height: 44px; flex: none; object-fit: cover; border-radius: 4px; }
.cl-list span { min-width: 0; }
.cl-list small { display: block; color: var(--muted); font-size: 12px; }
/* AI 比对同款 */
.vf-ask { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin: 8px 0; padding: 10px 12px; border-radius: 10px; background: #FFF6E0; color: #6B4E0E; font-size: 13px; list-style: none; }
.vf-ask p, .vf-ask span { margin: 0; flex: 1 1 160px; }

/* 入库明细表的自定义款号：放不下就换行，长的字号缩小 */
table.v2-grid td.k2 textarea.k2t { display: block; width: 100%; min-height: 38px; box-sizing: border-box; border: 0; background: transparent; padding: 9px 6px; margin: 0;
  font: 700 13px/1.25 var(--font); color: var(--ink-deep); resize: none; overflow: hidden; white-space: pre-wrap; word-break: break-all; overflow-wrap: anywhere; }
table.v2-grid td.k2 textarea.k2t.sm { font-size: 12px; }
table.v2-grid td.k2 textarea.k2t.xs { font-size: 11px; }
table.v2-grid td.k2 textarea.k2t:focus { outline: 2px solid var(--ink); outline-offset: -2px; background: #fff; }
/* 商品表格左边的自定义款号也一样换行缩小 */
table.gd-tbl td.k1 .cv b { word-break: break-all; overflow-wrap: anywhere; }
table.gd-tbl td.k1 .cv.sm { font-size: 12px; } table.gd-tbl td.k1 .cv.xs { font-size: 11px; }

/* 款式图：选来源的底部菜单 */
.act-mask { z-index: 2600; align-items: flex-end; }
.act-sheet { padding: 10px 12px calc(12px + env(safe-area-inset-bottom)); border-radius: 16px 16px 0 0; }
.act-t { margin: 4px 4px 10px; font-size: 13px; color: var(--muted); text-align: center; }
.act-b { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 54px; padding: 8px 14px; margin: 0 0 8px; border: 1px solid var(--line); border-radius: 12px; background: var(--card); font: 500 16px var(--font); color: var(--text); text-align: left; cursor: pointer; }
.act-b svg { width: 22px; height: 22px; flex: none; fill: none; stroke: var(--ink-deep); stroke-width: 1.8; }
.act-b span { display: flex; flex-direction: column; }
.act-b small { font-size: 12px; color: var(--muted); font-weight: 400; margin-top: 2px; }
.act-b.act-x { justify-content: center; color: var(--muted); margin-top: 4px; }
/* 已上传的图：九宫格挑选 */
.up-mask { z-index: 2700; }
.up-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 10px 0 14px; max-height: 60vh; overflow-y: auto; overscroll-behavior: contain; }
.up-grid button { position: relative; aspect-ratio: 3 / 4; padding: 0; border: 2px solid transparent; border-radius: 10px; overflow: hidden; background: var(--tint); cursor: pointer; }
.up-grid img { width: 100%; height: 100%; object-fit: cover; display: block; }
.up-grid em { position: absolute; left: 4px; bottom: 4px; font: 500 11px var(--font); font-style: normal; color: #fff; background: rgba(0,0,0,.5); border-radius: 6px; padding: 1px 6px; }
.up-grid b { position: absolute; right: 6px; top: 6px; min-width: 24px; height: 24px; border-radius: 12px; font: 700 14px/24px var(--font); text-align: center; color: #fff; background: var(--ink-deep); display: none; }
.up-grid button.on { border-color: var(--ink-deep); }
.up-grid button.on b { display: block; }
/* 一张单配款式图 */
#si-sheet { z-index: 2500; }
.si-top { display: flex; gap: 12px; align-items: center; margin: 4px 0 8px; }
.si-top img { width: 56px; height: 72px; object-fit: cover; border-radius: 8px; border: 1px solid var(--line); cursor: zoom-in; }
.si-top b { display: block; font-size: 16px; }
.si-top span { font-size: 13px; color: var(--muted); }
.si-acts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 8px 0 12px; }
.si-acts button { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; min-height: 64px; border: 1px solid var(--line); border-radius: 12px; background: var(--card); font: 500 14px var(--font); color: var(--text); cursor: pointer; }
.si-acts button:first-child { border-color: var(--ink); background: var(--ink-soft); color: var(--ink-deep); }
.si-acts svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.si-list { list-style: none; margin: 0 0 12px; padding: 0; }
.si-list li { display: flex; align-items: center; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--line); }
.si-list li > div { flex: 1; min-width: 0; }
.si-list b { display: block; font-size: 15px; word-break: break-all; }
.si-list span { font-size: 13px; color: var(--muted); }
.si-slot { width: 56px; height: 72px; flex: none; padding: 0; border: 1.5px dashed var(--ink); border-radius: 8px; background: var(--card); color: var(--ink-deep); display: flex; align-items: center; justify-content: center; overflow: hidden; cursor: pointer; }
.si-slot.has { border: 1px solid var(--line); }
.si-slot img { width: 100%; height: 100%; object-fit: cover; }
.si-slot svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; }
.si-rm { width: 36px; height: 36px; flex: none; border: 0; border-radius: 18px; background: var(--tint); font-size: 20px; color: var(--muted); cursor: pointer; }
.si-foot { display: grid; grid-template-columns: 1fr 2fr; gap: 10px; position: sticky; bottom: 0; background: var(--card); padding: 8px 0 4px; }
.si-foot .btn { min-height: 48px; }
.si-skip { display: block; margin: 6px auto 0; }
.v2-simg { flex: none; min-height: 32px; padding: 0 10px; margin-left: 6px; border: 1px solid var(--ink); border-radius: 16px; background: var(--card); font: 500 12px var(--font); color: var(--ink-deep); cursor: pointer; }
.v2-simg.done { border-color: var(--line); color: var(--muted); }

/* 风格判断：同一件多角度 / 多件每件一张 */
.sv-mode { display: grid; grid-template-columns: 1fr 1fr; gap: 3px; padding: 3px; margin: 10px 0 12px; background: var(--frame, #EEECE6); border-radius: 10px; }
.sv-mode button { min-height: 40px; border: 0; border-radius: 8px; background: transparent; font: 500 14px var(--font); color: #3C4043; cursor: pointer; }
.sv-mode button[aria-pressed="true"] { background: var(--card); color: var(--ink-deep); font-weight: 700; box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.sv-many { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-bottom: 12px; }
.sv-mi { position: relative; aspect-ratio: 3 / 4; border-radius: 10px; overflow: hidden; background: var(--tint); border: 1px solid var(--line); }
.sv-mi img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sv-mi em { position: absolute; left: 4px; bottom: 4px; font: 500 11px var(--font); font-style: normal; color: #fff; background: rgba(0,0,0,.5); border-radius: 6px; padding: 1px 6px; }
.sv-mi button { position: absolute; right: 4px; top: 4px; width: 28px; height: 28px; border: 0; border-radius: 14px; background: rgba(0,0,0,.55); color: #fff; font-size: 16px; cursor: pointer; }
.sv-mi.add { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; border: 1.5px dashed var(--line); background: var(--card); font: 500 13px var(--font); color: var(--text); cursor: pointer; }
.sv-mi.add .plus { font-size: 28px; line-height: 1; color: var(--muted); }

/* 面料记录选择 */
.fab-list { list-style: none; margin: 0 0 12px; padding: 0; max-height: 60vh; overflow-y: auto; overscroll-behavior: contain; }
.fab-list button { display: flex; justify-content: space-between; align-items: center; gap: 10px; width: 100%; min-height: 50px; padding: 8px 4px; border: 0; border-bottom: 1px solid var(--line); background: none; font: 500 15px var(--font); color: var(--text); text-align: left; cursor: pointer; }
.fab-list small { flex: none; font-size: 12px; color: var(--muted); font-weight: 400; }

/* 明细表看图窗：两张图、更换、删除、关闭 */
.iv-mask { z-index: 2400; }
.iv-big { display: flex; align-items: center; justify-content: center; background: #1d2326; border-radius: 12px; overflow: hidden; height: 52vh; margin: 6px 0 10px; }
.iv-big img { max-width: 100%; max-height: 100%; object-fit: contain; display: block; cursor: zoom-in; }
.iv-ph { display: flex; flex-direction: column; align-items: center; gap: 8px; color: #C9CED1; font-size: 14px; }
.iv-ph svg { width: 36px; height: 36px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.iv-thumbs { display: flex; gap: 10px; margin-bottom: 6px; }
.iv-thumbs button { position: relative; width: 68px; height: 86px; padding: 0; border: 2px solid var(--line); border-radius: 10px; overflow: hidden; background: var(--card); cursor: pointer; display: flex; align-items: center; justify-content: center; }
.iv-thumbs button.on { border-color: var(--ink-deep); }
.iv-thumbs img { width: 100%; height: 100%; object-fit: cover; }
.iv-thumbs .plus { font-size: 26px; color: var(--muted); margin-bottom: 14px; }
.iv-thumbs em { position: absolute; left: 0; right: 0; bottom: 0; font: 500 11px var(--font); font-style: normal; color: #fff; background: rgba(0,0,0,.5); padding: 2px 0; text-align: center; }
.iv-thumbs button:not(:has(img)) em { color: var(--muted); background: none; }
.iv-acts { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; margin-top: 8px; }
.iv-acts .btn { min-height: 48px; padding: 0 6px; }
.iv-acts .btn.danger { color: var(--warn, #B3261E); border-color: currentColor; }
.iv-acts .btn:disabled { opacity: .4; }
table.v2-grid td.img button.has { position: relative; }
table.v2-grid td.img .n2 { position: absolute; right: -4px; top: -4px; min-width: 18px; height: 18px; border-radius: 9px; background: var(--ink-deep); color: #fff; font: 700 11px/18px var(--font); font-style: normal; text-align: center; box-shadow: 0 0 0 2px var(--card); }
table.v2-grid .fabcam.on { background: var(--card); }
.fv-img { display: flex; align-items: center; gap: 10px; width: 100%; padding: 6px; margin: 4px 0 10px; border: 1px solid var(--line); border-radius: 10px; background: var(--card); font: 13px var(--font); color: var(--muted); text-align: left; cursor: zoom-in; }
.fv-img img { width: 56px; height: 56px; object-fit: cover; border-radius: 8px; }
#fv-t { width: 100%; box-sizing: border-box; min-height: 64px; resize: vertical; font: 15px var(--font); }

#gd-photo img { cursor: zoom-in; }
.gd-ph-del { color: var(--warn, #B3261E); border-color: currentColor; }
/* 商品资料：图片右边——左列选“商品图 / 吊牌”，右列“拍照 / 上传图片” */
.gd-mbtns .gd-mseg { display: flex; flex-direction: column; gap: 3px; padding: 3px; background: var(--frame, #EEECE6); border-radius: 10px; }
.gd-mbtns .gd-mseg button { flex: 1; min-height: 40px; border: 0; border-radius: 8px; background: transparent; font: 500 14px var(--font); color: #3C4043; cursor: pointer; }
.gd-mbtns .gd-mseg button[aria-pressed="true"] { background: var(--card); color: var(--ink-deep); font-weight: 700; box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.gd-mbtns .gd-mact { display: flex; flex-direction: column; gap: 6px; }
.gd-mbtns .gd-mact .btn { flex: 1; min-height: 42px; font-size: 14px; }
.gd-mbtns .gd-ph-del { grid-column: 1 / -1; }
.gd-mbtns .btn.gd-ph-del { color: var(--warn, #B3261E); border-color: currentColor; }
/* 商品库：三个按钮一行；列表上方的工具；批量选择的提示点 */
.gd-tools.gd-3 { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 8px; }
.gd-tools.gd-3 .btn { padding: 0 6px; font-size: 14px; white-space: nowrap; min-width: 0; justify-content: center; }
.gd-lh { margin: 14px 0 8px; font-size: 16px; }
.gd-ltools { display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); grid-auto-flow: column; gap: 8px; margin-bottom: 8px; }
.gd-ltools .btn { padding: 0 4px; font-size: 13px; white-space: nowrap; min-width: 0; justify-content: center; }
.gd-ltools .btn[hidden] { display: none; }
.gd-ltools #gd-pick.on { background: var(--ink-deep); color: #fff; border-color: var(--ink-deep); }
.gd-pick-tip { margin: 0 0 8px; }
.gd-dot { position: relative; display: inline-block; width: 22px; height: 22px; flex: none; border-radius: 50%; border: 2px solid #B8B4AA; background: var(--card); box-sizing: border-box; vertical-align: middle; }
table.gd-tbl tr.pk td.k1 .gd-dot { display: block; margin: 0 0 4px; }
.gd-pickbar.hl { box-shadow: 0 0 0 4px #FFD25A, 0 10px 24px -12px rgba(0,0,0,.5); }
.gd-pickbar .gd-pb2 .btn { padding: 0 6px; font-size: 13px; white-space: nowrap; min-width: 0; }
table.gd-tbl tr.pk.on td { background: #FDECEC; }
table.gd-tbl tr.pk.on td.k1, table.gd-tbl tr.pk.on td.k2 { background: #FBE3E3; }
tr.pk.on .gd-dot, .gd-list.picking li.picked .gd-dot { background: #C53030; border-color: #C53030; }
tr.pk.on .gd-dot::after, .gd-list.picking li.picked .gd-dot::after { content: ""; position: absolute; left: 6px; top: 2px; width: 5px; height: 10px; border: solid #fff; border-width: 0 2.5px 2.5px 0; transform: rotate(45deg); }
.gd-list.picking li { position: relative; }
.gd-list.picking li .gd-dot { order: 9; margin-left: auto; }
.gd-pickbar { flex-direction: column; align-items: stretch; gap: 8px; }
.gd-pickbar .gd-pb1, .gd-pickbar .gd-pb2 { display: flex; align-items: center; gap: 10px; }
.gd-pickbar .gd-pb2 { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 8px; }
.gd-pickbar .gd-pb2 .btn { justify-content: center; }
.mt-acts.gd-mt3 { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 6px; }
.mt-acts.gd-mt3 .btn { padding: 0 4px; font-size: 13px; white-space: nowrap; min-width: 0; justify-content: center; }
.gd-tools.gd-3.gd-1 { grid-template-columns: 1fr; }
.gd-tools.gd-3 > [hidden] { display: none !important; }
.gd-pickbar .gd-pb2 > [hidden] { display: none !important; }

/* y56 进货单三种录入方式、离线排队、识别不出 */
.ib-modes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin: 4px 0 6px; }
.ib-modes button { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 58px; padding: 6px 4px; border: 1.5px solid var(--line); border-radius: 12px; background: var(--card); color: var(--text); cursor: pointer; }
.ib-modes b { font-size: 14px; }
.ib-modes small { font-size: 11px; color: var(--muted); }
.ib-modes button[aria-pressed="true"] { border-color: var(--ink-deep); background: var(--ink-soft); color: var(--ink-deep); }
.ib-mode-tip { margin: 0 0 10px; color: var(--ink-deep); }
.ib-net-tip { margin-top: 8px; }
.ib-net { margin: 6px 0 0; padding: 8px 10px; border-radius: 10px; background: #FFF4E0; color: #6B3E0E; font-size: 13px; line-height: 1.5; }
.ib-tip { margin: 6px 0 0; font-size: 13px; color: var(--muted); }
.ib-off { font-size: 18px; margin-right: 4px; }
.ib-err { margin: 8px 0 0; padding: 8px 10px; border-radius: 10px; background: #FDECEC; }
.ib-err p { margin: 0 0 4px; font-size: 13px; color: #8A1C1C; }
.ib-fix { display: flex; flex-wrap: wrap; gap: 4px 14px; }
.ib-fix .link-btn { min-height: 32px; }
.ib-todo { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 10px; padding: 10px 12px; border-radius: 12px; background: var(--ink-soft); font-size: 14px; }
.ib-todo .btn { flex: none; }
.mx-sum { margin: 6px 0; font-weight: 700; }
.mx-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 8px 0 12px; max-height: 56vh; overflow-y: auto; overscroll-behavior: contain; }
.mx-it { position: relative; aspect-ratio: 3 / 4; padding: 0; border: 3px solid transparent; border-radius: 10px; overflow: hidden; background: var(--tint); cursor: pointer; }
.mx-it img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mx-it em { position: absolute; left: 0; right: 0; bottom: 0; padding: 3px 4px; font: 600 12px var(--font); font-style: normal; color: #fff; background: rgba(0,0,0,.55); text-align: center; }
.mx-it small { position: absolute; left: 4px; top: 4px; font-size: 10px; color: #fff; background: rgba(0,0,0,.45); border-radius: 4px; padding: 0 4px; }
.mx-it.slip { border-color: #E07B00; }
.mx-it.slip em { background: #E07B00; }
.si-spare { margin: 4px 0 8px; font-size: 13px; color: #6B3E0E; }
em.unsure { font-style: normal; color: #B3261E; }

/* y57 一张单一组：进货单 + 款式图 → 确认上传 */
.iu-sub { margin-left: 8px; font-size: 12px; font-weight: 400; color: var(--muted); }
.iu { margin: 6px 0 4px; }
.iu-row { display: grid; grid-template-columns: 1fr auto 1fr; gap: 6px; align-items: stretch; }
.iu-box { display: flex; flex-direction: column; gap: 4px; padding: 10px; border: 1.5px solid var(--line); border-radius: 14px; background: var(--card); }
.iu-box b { font-size: 16px; }
.iu-box > span { font-size: 12px; color: var(--muted); }
.iu-btns { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-top: 4px; }
.iu-btns button { display: flex; flex-direction: column; align-items: center; gap: 2px; min-height: 52px; padding: 4px; border: 1px solid var(--ink-line, var(--line)); border-radius: 10px; background: var(--ink-soft); color: var(--ink-deep); font: 500 13px var(--font); cursor: pointer; }
.iu-btns svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.iu-plus { align-self: center; font-size: 22px; color: var(--muted); }
.iu-thumbs { display: flex; gap: 8px; overflow-x: auto; padding: 10px 2px 4px; -webkit-overflow-scrolling: touch; }
.iu-th { position: relative; flex: none; width: 66px; height: 88px; border-radius: 10px; overflow: hidden; background: var(--tint); border: 2px solid var(--line); }
.iu-th.slip { border-color: #E07B00; }
.iu-th img { width: 100%; height: 100%; object-fit: cover; display: block; cursor: zoom-in; }
.iu-th em { position: absolute; left: 0; right: 0; bottom: 0; font: 600 11px var(--font); font-style: normal; color: #fff; background: rgba(0,0,0,.55); text-align: center; padding: 1px 0; }
.iu-th.slip em { background: #E07B00; }
.iu-th button { position: absolute; right: 2px; top: 2px; width: 24px; height: 24px; border: 0; border-radius: 12px; background: rgba(0,0,0,.6); color: #fff; font-size: 15px; line-height: 24px; padding: 0; cursor: pointer; }
.iu-th .bad { position: absolute; left: 0; right: 0; top: 34px; font-size: 11px; color: #fff; background: #B3261E; text-align: center; }
.iu-hint { margin: 6px 0 8px; color: var(--ink-deep); }
.iu-go { width: 100%; }
.iu-ok { position: fixed; inset: 0; z-index: 3100; display: flex; align-items: center; justify-content: center; background: rgba(20,25,28,.35); animation: iuin .18s ease-out; pointer-events: none; }
.iu-ok > div { display: flex; flex-direction: column; align-items: center; gap: 6px; width: min(300px, 82vw); padding: 22px 18px; border-radius: 18px; background: var(--card); box-shadow: 0 18px 40px -16px rgba(0,0,0,.45); text-align: center; }
.iu-ok i { display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 50%; background: #2E7D4F; color: #fff; font: 700 30px/1 var(--font); font-style: normal; }
.iu-ok b { font-size: 19px; }
.iu-ok span { font-size: 14px; color: var(--text); line-height: 1.5; }
.iu-ok em { font-style: normal; font-size: 14px; font-weight: 700; color: var(--ink-deep); }
.iu-ok.out { opacity: 0; transition: opacity .35s; }
@keyframes iuin { from { opacity: 0; transform: scale(.96); } to { opacity: 1; transform: none; } }
.iu-list { margin-top: 12px; }
.iu-list h3 { margin: 0; font-size: 15px; }
.iu-list .v2-sec-h em { font-size: 12px; font-style: normal; color: var(--muted); }
.iu-ul { list-style: none; margin: 0; padding: 0; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: var(--card); }
.iu-ul li { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; padding: 10px 12px; border-bottom: 1px solid var(--line); }
.iu-ul li:last-child { border-bottom: 0; }
.iu-ul .bd { flex: 1 1 60%; min-width: 0; }
.iu-ul .bd b { display: block; font-size: 14px; }
.iu-ul .bd span { font-size: 12px; color: var(--muted); }
.iu-act { flex: 1 1 100%; display: flex; flex-wrap: wrap; gap: 6px; }
.iu-act button { min-height: 34px; padding: 0 12px; border: 1px solid var(--ink); border-radius: 17px; background: var(--card); color: var(--ink-deep); font: 500 13px var(--font); cursor: pointer; }
.iu-more { margin-top: 12px; }
.iu-more summary { cursor: pointer; font-size: 13px; color: var(--muted); padding: 6px 0; }

/* 批次单据：多选后转移、导出、删除 */
.bs-bar { display: flex; align-items: center; gap: 8px; margin: 6px 0 8px; }
.bs-bar .v2-hint { flex: 1; margin: 0; }
.bs-bar button { flex: none; min-height: 36px; padding: 0 14px; border: 1px solid var(--ink); border-radius: 18px; background: var(--card); color: var(--ink-deep); font: 500 13px var(--font); cursor: pointer; }
.bs-bar button.on { background: var(--ink-deep); color: #fff; }
#v2-bs-list.picking li { cursor: pointer; }
#v2-bs-list.picking li .gd-dot { flex: none; }
#v2-bs-list.picking li.picked { background: #FDECEC; }
#v2-bs-list.picking li.picked .gd-dot { background: #C53030; border-color: #C53030; }
#v2-bs-list.picking li.picked .gd-dot::after { content: ""; position: absolute; left: 6px; top: 2px; width: 5px; height: 10px; border: solid #fff; border-width: 0 2.5px 2.5px 0; transform: rotate(45deg); }
#v2-bs-list.picking .v2-simg { pointer-events: none; opacity: .5; }
.bs-pick { position: sticky; bottom: calc(80px + env(safe-area-inset-bottom)); z-index: 5; margin-top: 8px; padding: 10px; border-radius: 14px; background: #2B2230; color: #fff; box-shadow: 0 10px 24px -12px rgba(0,0,0,.5); }
.bs-p1 { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; font-size: 14px; }
.bs-p1 span { flex: 1; }
.bs-p1 label { display: flex; align-items: center; gap: 4px; }
.bs-p1 input { width: 18px; height: 18px; }
.bs-p1 button { min-height: 34px; padding: 0 12px; border: 1px solid rgba(255,255,255,.5); border-radius: 17px; background: transparent; color: #fff; font: 500 13px var(--font); }
.bs-p2 { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.bs-p2 button { min-height: 40px; padding: 0 4px; border: 0; border-radius: 10px; background: #fff; color: var(--text); font: 500 13px var(--font); cursor: pointer; }
.bs-p2 button:first-child { grid-column: 1 / -1; background: var(--ink-soft); color: var(--ink-deep); font-weight: 700; }
.bs-p2 button.d { color: #B3261E; }
.bs-p2 button:disabled { opacity: .45; }
.bs-to { margin: 8px 0 12px; }
.bs-to button { display: flex; justify-content: space-between; align-items: center; width: 100%; min-height: 50px; padding: 0 12px; border: 0; background: none; font: 15px var(--font); color: var(--text); text-align: left; cursor: pointer; }
.bs-to span { font-size: 12px; color: var(--muted); }
.bs-new { display: grid; grid-template-columns: 1fr auto; gap: 8px; }

/* y59 单据面板（就地展开） */
#v2-bs-list li.open { background: var(--ink-soft); }
#v2-bs-list li.bs-panel { display: block; padding: 12px; background: #FBFAF7; border-left: 3px solid var(--ink-deep); cursor: default; }
.bp-row { margin-bottom: 8px; }
.bp-row label { display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: var(--muted); }
.bp-row.two { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.bp-row.rate { display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: end; }
.bp-row.rate button, .bp-acts button { min-height: 40px; padding: 0 12px; border: 1px solid var(--ink); border-radius: 20px; background: var(--card); color: var(--ink-deep); font: 500 13px var(--font); cursor: pointer; }
.bs-panel .banner { margin: 6px 0; }
.bp-acts { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; }
.bp-foot { display: grid; grid-template-columns: 1fr 2fr; gap: 8px; margin-top: 8px; }
.bp-foot .btn.danger { color: #B3261E; border-color: currentColor; }
.bs-store { margin: 0 0 8px; font-size: 12px; color: var(--muted); }
.bs-store.warn { color: #8A4B08; }
.bs-p2 button.old { grid-column: 1 / -1; background: transparent; color: #fff; border: 1px dashed rgba(255,255,255,.5); }
.v2-only { display: inline-flex; align-items: center; gap: 6px; padding: 2px 4px 2px 10px; margin-right: 4px; border-radius: 14px; background: var(--ink-deep); color: #fff; font-size: 12px; }
.v2-only button { min-height: 24px; padding: 0 8px; border: 0; border-radius: 12px; background: #fff; color: var(--ink-deep); font: 500 12px var(--font); cursor: pointer; }

/* y60 两级导航 + 已入库管理 */
.v2-l1 { margin-bottom: 8px; }
.v2-l1 button { font-size: 16px; font-weight: 700; min-height: 46px; }
.v2-l2 { margin-bottom: 12px; background: transparent; border: 1px solid var(--line); }
.v2-l2 button { font-size: 14px; min-height: 38px; }
.v2-gomg { margin: 14px 0 4px; }
.mg-sec .v2-sec-h { display: flex; align-items: center; justify-content: space-between; }
.mg-selbtn { min-height: 36px; padding: 0 14px; border: 1px solid var(--ink); border-radius: 18px; background: var(--card); color: var(--ink-deep); font: 500 13px var(--font); cursor: pointer; }
.mg-selbtn.on { background: var(--ink-deep); color: #fff; }
#mg-chips { margin: 8px 0 4px; }
.mg-wrap { max-height: 50vh; }
table.mg-tbl { min-width: 100%; }
table.mg-tbl th, table.mg-tbl td { padding: 9px 6px; white-space: nowrap; vertical-align: middle; }
table.mg-tbl td.nm { white-space: normal; min-width: 96px; }
table.mg-tbl td.nm small { display: block; font-size: 11px; color: var(--muted); }
table.mg-tbl td.num, table.mg-tbl th.num { text-align: right; font-variant-numeric: tabular-nums; }
table.mg-tbl tbody tr { cursor: pointer; }
table.mg-tbl tr.cur td { background: var(--ink-soft); }
table.mg-tbl tr.cur td.nm b { color: var(--ink-deep); }
table.mg-tbl tr.none td { background: #FFF8EC; }
table.mg-tbl td.ck, table.mg-tbl th.ck { width: 28px; }
table.mg-tbl tr.pk td { background: #FDECEC; }
table.mg-tbl tr.pk .gd-dot { background: #C53030; border-color: #C53030; }
table.mg-tbl tr.pk .gd-dot::after { content: ""; position: absolute; left: 6px; top: 2px; width: 5px; height: 10px; border: solid #fff; border-width: 0 2.5px 2.5px 0; transform: rotate(45deg); }
.mg-pick .bs-p2 { grid-template-columns: 1fr 1fr; }
.mg-pick .bs-p2 button:first-child { grid-column: auto; }
.mg-pick .bs-p2 button.d { grid-column: 1 / -1; }
.mg-tip { margin: 8px 0 0; font-size: 12px; color: rgba(255,255,255,.75); }
.mg-f { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 8px 0; }

/* y61 自定义款号、倍率设定 */
.v2-set { margin: 8px 0; border: 1px solid var(--line); border-radius: 12px; background: var(--card); }
.v2-set summary { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; padding: 10px 12px; cursor: pointer; }
.v2-set summary b { font-size: 14px; color: var(--ink-deep); }
.v2-set summary em { font-style: normal; font-size: 12px; color: var(--muted); }
.vs-blk { padding: 4px 12px 12px; border-top: 1px solid var(--line); }
.vs-h { margin: 10px 0 6px; font-weight: 700; font-size: 14px; }
.vs-row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.vs-row label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--muted); }
.vs-row.b { margin-top: 8px; grid-template-columns: 2fr 1fr; }
.vs-row.b .btn { min-height: 44px; padding: 0 6px; }
.vs-blk .v2-hint { margin: 6px 0 0; }
.vs-row.b3 { margin-top: 8px; grid-template-columns: 1fr 1fr 1.3fr; }
.vs-row.b3 .btn { min-height: 44px; padding: 0 4px; font-size: 13px; }
.v2-set summary { position: relative; padding-right: 86px; list-style: none; }
.v2-set summary::-webkit-details-marker { display: none; }
.vs-fold { position: absolute; right: 10px; top: 8px; min-width: 64px; padding: 4px 10px; border: 1px solid var(--ink); border-radius: 14px; font-size: 12px; color: var(--ink-deep); text-align: center; background: var(--card); }
.vs-fold::after { content: "展开 ▼"; }
.v2-set[open] .vs-fold { background: var(--ink-deep); color: #fff; }
.v2-set[open] .vs-fold::after { content: "收起 ▲"; }
.vs-close { display: block; width: calc(100% - 24px); margin: 4px 12px 12px; min-height: 40px; border: 1px dashed var(--line); border-radius: 10px; background: transparent; color: var(--muted); font: 13px var(--font); cursor: pointer; }
/* y63 同级并排的选项分开：每个选项单独一块，有边框和间距，选中的填色带勾，一眼看出是“几个里选一个” */
.v2-seg, .sv-mode, .gd-vs { background: transparent !important; padding: 0 !important; gap: 10px !important; border: 0 !important; box-shadow: none !important; }
.v2-seg button, .sv-mode button, .gd-vs button { border: 1.5px solid var(--line) !important; border-radius: 12px !important; background: var(--card) !important; color: var(--text) !important; box-shadow: 0 1px 2px rgba(0,0,0,.05); font-weight: 500; }
.v2-seg button[aria-pressed="true"], .sv-mode button[aria-pressed="true"], .gd-vs button[aria-pressed="true"] { background: var(--ink-deep) !important; border-color: var(--ink-deep) !important; color: #fff !important; font-weight: 700; box-shadow: 0 4px 10px -6px rgba(0,0,0,.45); }
.v2-seg button[aria-pressed="true"]::before, .sv-mode button[aria-pressed="true"]::before { content: "✓ "; font-weight: 700; }
.v2-l2 { gap: 8px !important; }
.v2-l2 button { min-height: 40px; font-size: 14px; }
.gd-vs { display: flex; gap: 6px !important; }
.gd-vs button { min-height: 34px; padding: 0 12px; }
.gd-mbtns .gd-mseg { background: transparent; padding: 0; gap: 8px; }
.gd-mbtns .gd-mseg button { border: 1.5px solid var(--line); background: var(--card); }
.gd-mbtns .gd-mseg button[aria-pressed="true"] { background: var(--ink-deep); border-color: var(--ink-deep); color: #fff; }
.v2-seg.v2-l1 { margin-bottom: 14px !important; } .v2-seg.v2-l2 { margin-bottom: 16px !important; }

/* y64 自定义款号一定全部显示：文字层撑开格子，编辑框叠在上面 */
table.v2-grid td.k2 .k2w { position: relative; }
table.v2-grid td.k2 .k2v { display: block; padding: 9px 6px; min-height: 20px; font-weight: 700; font-size: 13px; line-height: 1.25; color: var(--ink-deep); white-space: pre-wrap; word-break: break-all; overflow-wrap: anywhere; }
table.v2-grid td.k2 .k2v.sm { font-size: 12px; }
table.v2-grid td.k2 .k2v.xs { font-size: 11px; letter-spacing: -.2px; }
table.v2-grid td.k2 .k2w textarea.k2t { position: absolute; inset: 0; width: 100%; height: 100% !important; min-height: 0; color: transparent; caret-color: var(--ink-deep); overflow: hidden; }
table.v2-grid td.k2 .k2w textarea.k2t.xs { letter-spacing: -.2px; }
table.v2-grid td.k2 .k2w textarea.k2t:focus { color: var(--ink-deep); background: #fff; z-index: 2; height: auto !important; min-height: 100%; bottom: auto; }

/* y66 店铺通知 / 活动 / 任务 */
.nt-tabs { margin-bottom: 10px; }
.bd-new { margin: 4px 0 10px; }
.bd-tabs button i { font-style: normal; margin-left: 4px; color: #E5382F; font-weight: 700; }
.bd-tabs button[aria-pressed="true"] i { color: #FFD25A; }
.bd-list { list-style: none; margin: 8px 0; padding: 0; }
.bd-it { margin-bottom: 10px; padding: 12px; border: 1px solid var(--line); border-radius: 14px; background: var(--card); }
.bd-it.new { border-color: #E5382F; box-shadow: 0 0 0 2px rgba(229,56,47,.12); }
.bd-it.closed { opacity: .7; }
.bd-it.k-promo { border-left: 4px solid #E07B00; }
.bd-it.k-task { border-left: 4px solid var(--ink-deep); }
.bd-h { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-bottom: 4px; }
.bd-k { font-size: 12px; font-weight: 700; color: var(--ink-deep); }
.bd-pin { font-size: 11px; padding: 1px 8px; border-radius: 10px; background: #E5382F; color: #fff; }
.bd-pin.gray { background: var(--muted); }
.bd-due { font-size: 12px; color: #B3261E; margin-left: auto; }
.bd-t { display: block; font-size: 16px; margin: 2px 0 4px; }
.bd-b { margin: 0 0 6px; font-size: 14px; line-height: 1.6; color: var(--text); }
.bd-img { display: block; max-width: 100%; max-height: 220px; border-radius: 10px; margin: 6px 0; cursor: zoom-in; }
.bd-from { margin: 4px 0 8px; font-size: 12px; color: var(--muted); }
.bd-me { padding-top: 8px; border-top: 1px dashed var(--line); }
.bd-me .btn { width: 100%; min-height: 44px; }
.bd-ok { color: #2E7D4F; font-size: 13px; font-weight: 700; }
.bd-lb { margin: 8px 0 6px; font-size: 13px; font-weight: 700; }
.bd-lb small { font-weight: 400; color: var(--muted); }
.bd-st { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 8px; }
.bd-st button { min-height: 38px; border: 1.5px solid var(--line); border-radius: 10px; background: var(--card); font: 500 14px var(--font); color: var(--text); cursor: pointer; }
.bd-st button[aria-pressed="true"] { background: var(--ink-deep); border-color: var(--ink-deep); color: #fff; }
.bd-note { width: 100%; box-sizing: border-box; font: 14px var(--font); }
.bd-pimg { max-width: 120px; max-height: 120px; border-radius: 8px; margin-top: 6px; cursor: zoom-in; }
.bd-acts { display: grid; grid-template-columns: 1fr 2fr; gap: 8px; margin-top: 8px; }
.bd-acts .btn { min-height: 42px; }
.bd-who { margin-top: 8px; font-size: 13px; }
.bd-who summary { cursor: pointer; font-weight: 700; color: var(--ink-deep); padding: 4px 0; }
.bd-who table { width: 100%; border-collapse: collapse; margin-top: 6px; }
.bd-who th, .bd-who td { text-align: left; padding: 6px 4px; border-bottom: 1px solid var(--line); vertical-align: top; }
.bd-who .ok { color: #2E7D4F; } .bd-who .no { color: #B3261E; font-weight: 700; }
.bd-pst { font-size: 12px; padding: 1px 6px; border-radius: 8px; background: var(--tint); }
.bd-pst.done { background: #E3F2E8; color: #2E7D4F; } .bd-pst.doing { background: #FFF4E0; color: #8A4B08; }
.bd-own { display: flex; gap: 16px; justify-content: flex-end; margin-top: 6px; }
.bd-own .d { color: #B3261E; }
.bd-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.bd-row2 .btn { min-height: 44px; width: 100%; }
.bd-ppl .chip small { color: var(--muted); }
.bd-pinl { display: flex; align-items: center; gap: 6px; margin: 10px 0; font-size: 14px; }
.bd-cnt { margin: 6px 0; font-weight: 700; color: var(--ink-deep); }
.bd-who td:first-child, .bd-who td:nth-child(2), .bd-who td:nth-child(3) { white-space: nowrap; }
.bd-who td { font-size: 12px; }

/* ===== y69 平台：店铺列表（筛选、排序、分页、卡片信息更醒目；停用店铺可删除） ===== */
.pf-tools { display: flex; gap: 8px; align-items: center; margin-top: 10px; }
.pf-tools .pf-search { flex: 1; min-width: 0; margin: 0; }
.pf-sort { display: flex; align-items: center; gap: 4px; flex: none; font-size: 13px; color: var(--muted); }
.pf-sort select { height: 42px; border: 1px solid var(--line); border-radius: 10px; background: var(--card); padding: 0 6px; font: inherit; font-size: 14px; color: var(--text); }
.pf-chips, .cs-schips { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 4px; }
.pf-chips button, .cs-schips button { min-height: 36px; padding: 0 12px; border-radius: 99px; border: 1.5px solid var(--line); background: var(--card); color: var(--text); font: inherit; font-size: 14px; cursor: pointer; }
.pf-chips button i, .cs-schips button i { font-style: normal; font-weight: 700; color: var(--muted); margin-left: 2px; }
.pf-chips button.on, .cs-schips button.on { background: var(--ink); border-color: var(--ink); color: #fff; }
.pf-chips button.on i, .cs-schips button.on i { color: rgba(255,255,255,.8); }
.pf-count { margin: 4px 0 8px; }
.pf-cards { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.pf-card { position: relative; padding: 14px 14px 12px; border-radius: 16px; background: var(--card); border: 1px solid var(--line); border-left: 5px solid var(--ink); cursor: pointer; box-shadow: 0 6px 16px -14px rgba(0,0,0,.4); }
.pf-card.c-trial { border-left-color: #6E8FB5; }
.pf-card.c-soon { border-left-color: #D98B1F; }
.pf-card.c-end { border-left-color: var(--stamp); }
.pf-card.c-stop { border-left-color: #8A8A8A; background: #F6F6F4; }
.pf-card.c-self { border-left-color: var(--ok); }
.pf-c-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.pf-c-name { font-size: 18px; line-height: 1.35; color: var(--text); word-break: break-all; }
.pf-c-top .pill { flex: none; font-size: 13px; font-weight: 700; }
.pf-card.c-stop .pill.off { background: #5F6368; color: #fff; }
.pf-c-boss { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; margin-top: 6px; font-size: 14.5px; }
.pf-c-boss span { color: var(--muted); font-size: 13px; }
.pf-c-boss b { color: var(--text); }
.pf-c-boss a { color: var(--ink); font-weight: 700; text-decoration: none; letter-spacing: .02em; }
.pf-c-boss em { font-style: normal; color: var(--muted); font-size: 13px; }
.pf-c-kv { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin: 10px 0 8px; }
.pf-c-kv > div { background: var(--tint, #F4F6F3); border-radius: 10px; padding: 6px 8px; min-width: 0; }
.pf-c-kv span { display: block; font-size: 12px; color: var(--muted); }
.pf-c-kv b { display: block; font-size: 15px; line-height: 1.3; color: var(--text); word-break: break-all; }
.pf-c-kv small { display: block; font-size: 11.5px; font-weight: 500; color: var(--muted); }
.pf-card.c-soon .pf-c-kv > div:nth-child(2) b, .pf-card.c-soon .pf-c-kv > div:nth-child(3) b, .pf-card.c-end .pf-c-kv > div:nth-child(3) b { color: #B5600B; }
.pf-c-meta { font-size: 13px; color: var(--muted); margin-top: 4px; }
.pf-c-mods { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.pf-c-mods span { font-size: 12.5px; padding: 1px 8px; border-radius: 99px; background: var(--ok-soft); color: var(--ok); }
.pf-c-mods span.off { background: #EEE; color: #888; }
.pf-c-acts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--line); }
.pf-c-acts .btn { margin: 0; min-height: 42px; }
.pf-empty { padding: 20px 6px; text-align: center; }
#pf-more { margin-top: 12px; }
@media (max-width: 400px) { .pf-c-kv { grid-template-columns: repeat(2, 1fr); } .pf-c-kv > div { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 6px; padding: 6px 8px; } .pf-c-kv span, .pf-c-kv b, .pf-c-kv small { display: inline; } .pf-c-kv span { width: 100%; } }
.link-btn.danger { color: var(--stamp); }
.pf-del ul { padding-left: 1.2em; margin: 6px 0 12px; line-height: 1.6; }
.pf-del .btn { margin-top: 10px; }
/* 控制台首页的店铺列表 */
.cs-shops-h { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.cs-shops-h small { font-size: 13px; font-weight: 500; color: var(--muted); }
.cs-allbtn { flex: none; border: 0; background: none; color: var(--ink); font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; padding: 6px 0; }
.cs-sfilter { display: flex; gap: 8px; }
.cs-sfilter input { flex: 1; min-width: 0; height: 40px; border: 1px solid var(--line); border-radius: 10px; padding: 0 10px; font: inherit; font-size: 14px; background: var(--card); }
.cs-sfilter select { flex: none; height: 40px; border: 1px solid var(--line); border-radius: 10px; padding: 0 6px; font: inherit; font-size: 14px; background: var(--card); color: var(--text); }
.cs-st { display: inline-block; vertical-align: 2px; margin-left: 4px; padding: 0 8px; border-radius: 99px; font-size: 12px; font-weight: 700; background: var(--ink-soft); color: var(--ink); }
.cs-st.ok { background: var(--ok-soft); color: var(--ok); }
.cs-st.trial { background: #E6EEF7; color: #3F6590; }
.cs-st.warn { background: #FCEBD7; color: #A55A0C; }
.cs-st.off { background: #5F6368; color: #fff; }
.cs-shop.stop { opacity: .8; }
.cs-shop em b { color: var(--text); }
.cs-more { width: 100%; margin-top: 8px; min-height: 42px; border: 1.5px solid var(--line); border-radius: 12px; background: var(--card); font: inherit; font-size: 14px; color: var(--ink); cursor: pointer; }

/* ===== y70 识别准确率 ===== */
.acc-card { display: grid; grid-template-columns: 1fr auto 14px; grid-template-rows: auto auto; align-items: center; column-gap: 10px; width: 100%; margin: 0 0 12px; padding: 12px 14px; border: 1.5px solid var(--line); border-radius: 14px; background: var(--card); font: inherit; color: var(--text); text-align: left; cursor: pointer; }
.acc-card .acc-k { font-size: 14px; font-weight: 700; }
.acc-card b { grid-row: 1 / 3; grid-column: 2; font-size: 22px; font-variant-numeric: tabular-nums; color: var(--ink-deep); }
.acc-card em { grid-column: 1; font-style: normal; font-size: 12px; color: var(--muted); }
.acc-card i { grid-row: 1 / 3; grid-column: 3; font-style: normal; font-size: 20px; color: var(--muted); }
.acc-card b.ok, .acc-kpis b.ok { color: var(--ok); }
.acc-card b.mid, .acc-kpis b.mid { color: var(--warn-deep); }
.acc-card b.bad, .acc-kpis b.bad { color: #C0392B; }
.acc-wrap { padding-bottom: 8px; }
.acc-days { margin: 4px 0 8px; }
.acc-kpis { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 10px 0; }
.acc-kpis > div { padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--card); min-width: 0; }
.acc-kpis b { display: block; font-size: 20px; font-variant-numeric: tabular-nums; color: var(--ink-deep); }
.acc-kpis span { display: block; font-size: 13px; font-weight: 600; }
.acc-kpis em { display: block; font-style: normal; font-size: 12px; color: var(--muted); }
.acc-h { margin: 16px 0 6px; font-size: 15px; font-weight: 700; }
.acc-tips { margin: 10px 0; padding: 10px 12px; border-radius: 12px; background: var(--warn-soft); }
.acc-tips .acc-h { margin: 0 0 4px; }
.acc-tips ul { margin: 0; padding-left: 18px; font-size: 13px; line-height: 1.6; }
.acc-tb td { vertical-align: middle; }
.acc-tb .num { text-align: right; white-space: nowrap; }
.acc-bar { display: inline-block; width: 52px; height: 6px; border-radius: 3px; background: var(--line); vertical-align: middle; overflow: hidden; }
.acc-bar i { display: block; height: 100%; border-radius: 3px; background: var(--ok); }
.acc-bar i.mid { background: var(--warn); }
.acc-bar i.bad { background: #C0392B; }
.acc-recent { list-style: none; margin: 0; padding: 0; }
.acc-recent li { padding: 10px 0; border-bottom: 1px solid var(--line); cursor: pointer; }
.acc-recent li[data-acc=""] { cursor: default; }
.acc-recent .t b { display: block; font-size: 14px; }
.acc-recent .t span { display: block; font-size: 12px; color: var(--muted); margin-bottom: 4px; }
.acc-chip { display: inline-block; margin: 2px 4px 2px 0; padding: 2px 8px; border-radius: 8px; background: var(--ink-soft); font-size: 12px; word-break: break-all; }
.acc-chip em { font-style: normal; font-weight: 700; color: var(--ink-deep); }
.acc-chip s { color: #C0392B; }
.acc-chip i { color: var(--muted); }

/* ===== y70 消息管理：收起展开、筛选、选择 ===== */
.bd-tools { margin: 8px 0 4px; }
.bd-tools .v2-search { margin-bottom: 8px; }
.bd-chips { flex-wrap: wrap; }
.bd-chips small { font-size: 11px; opacity: .75; margin-left: 2px; }
.bd-bar { display: flex; align-items: center; gap: 8px; margin-top: 6px; font-size: 13px; color: var(--muted); }
.bd-bar span { flex: 1; }
.bd-tb { min-height: 34px; padding: 0 12px; border: 1.5px solid var(--line); border-radius: 17px; background: var(--card); font: 500 13px var(--font); color: var(--ink-deep); cursor: pointer; white-space: nowrap; }
.bd-hd { display: flex; align-items: flex-start; gap: 8px; cursor: pointer; }
.bd-hm { flex: 1; min-width: 0; }
.bd-fd { flex: none; width: 28px; height: 28px; line-height: 28px; text-align: center; border-radius: 50%; background: var(--tint); color: var(--ink-deep); font-size: 12px; }
.bd-it.fold { padding: 10px 12px; }
.bd-it.fold .bd-t { margin-bottom: 2px; font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bd-sum { margin: 0; font-size: 12px; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bd-s { font-size: 11px; padding: 1px 8px; border-radius: 10px; background: var(--tint); color: var(--ink-deep); }
.bd-s.red { background: #E5382F; color: #fff; }
.bd-s.warn { background: #FFF4E0; color: #8A4B08; }
.bd-s.ok { background: #E3F2E8; color: #2E7D4F; }
.bd-list.sel .bd-hd { align-items: center; }
.bd-list.sel .gd-dot { flex: none; }
.bd-it.pk { border-color: #E5382F; background: #FFF5F4; }
.bd-own { flex-wrap: wrap; gap: 6px 16px; }
.bd-pick { bottom: 8px; }
.bd-it.pk .gd-dot { background: #C53030; border-color: #C53030; }
.bd-it.pk .gd-dot::after { content: ""; position: absolute; left: 6px; top: 2px; width: 5px; height: 10px; border: solid #fff; border-width: 0 2.5px 2.5px 0; transform: rotate(45deg); }
.bd-pick .bs-p2 button:first-child { grid-column: auto; }
.bd-pick .bs-p2 button[hidden] + button { grid-column: 1 / -1; }

/* ===== y71 人员：排班、员工档案 ===== */
#ops-mode button { padding: 8px 2px; }
.hr-seg { margin: 4px 0 12px; }
.hr-h { margin: 16px 0 6px; font-size: 15px; font-weight: 700; }
.hr-h small { font-weight: 400; font-size: 12px; color: var(--muted); }
.hr-bd { margin-bottom: 12px; padding: 10px 12px; border-radius: 14px; background: #FFF4EC; border: 1px solid #F6D3BE; }
.hr-bd-h { margin: 0 0 6px; font-weight: 700; }
.hr-bd-it { display: flex; align-items: center; gap: 8px; padding: 6px 0; border-top: 1px dashed #F0CDB8; }
.hr-bd-it:first-of-type { border-top: 0; }
.hr-bd-it > div { flex: 1; min-width: 0; }
.hr-bd-it small { margin-left: 6px; color: var(--muted); font-size: 12px; }
.hr-bd-it em { display: block; font-style: normal; font-size: 12px; color: #8A4B08; }
.hr-bl { flex: none; min-height: 34px; padding: 0 12px; border: 0; border-radius: 17px; background: #E5607A; color: #fff; font: 600 13px var(--font); cursor: pointer; }
.hr-store select { width: 100%; }
.sc-nav { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 4px 0 6px; }
.sc-nav button { min-height: 38px; padding: 0 12px; border: 1.5px solid var(--line); border-radius: 19px; background: var(--card); font: 500 14px var(--font); color: var(--ink-deep); cursor: pointer; }
.sc-nav b { font-size: 15px; text-align: center; }
.sc-back { margin: 0 0 6px; text-align: center; }
.sc-dirty { color: #B3261E; }
.sc-brush { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0 10px; }
.sc-brush button { min-height: 36px; padding: 0 10px; border: 1.5px solid var(--line); border-radius: 10px; font: 600 13px var(--font); cursor: pointer; }
.sc-brush button.on { outline: 3px solid var(--ink-deep); outline-offset: 1px; }
.sc-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--line); border-radius: 12px; background: var(--card); }
.sc-tb { width: 100%; border-collapse: collapse; font-size: 13px; text-align: center; font-variant-numeric: tabular-nums; }
.sc-tb th, .sc-tb td { padding: 6px 2px; border-bottom: 1px solid var(--line); min-width: 34px; }
.sc-tb th { font-weight: 600; color: var(--muted); font-size: 12px; }
.sc-tb th small { display: block; font-size: 11px; }
.sc-tb th.td { color: var(--ink-deep); background: var(--tint); }
.sc-tb th.we { color: #B3261E; }
.sc-tb .nm { position: sticky; left: 0; z-index: 1; background: var(--card); text-align: left; padding-left: 8px; min-width: 64px; max-width: 80px; }
.sc-tb .nm b { display: block; font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sc-tb .nm small { font-size: 11px; color: var(--muted); }
.sc-tb tr.me .nm b { color: var(--ink-deep); }
.sc-tb tr.me td { background: #FFFBEA; }
.sc-tb .sm { font-weight: 700; min-width: 40px; }
.sc-tb .sm small { display: block; font-weight: 400; color: var(--muted); font-size: 11px; }
.sc-c { font-weight: 700; cursor: pointer; }
.sc-c.past { opacity: .6; }
.sc-c.dk { box-shadow: inset 0 0 0 2px #E5382F; }
.sc-tb tfoot td { font-weight: 700; color: var(--ink-deep); border-bottom: 0; }
.sc-tb tfoot td.low { color: #fff; background: #E5382F; border-radius: 6px; }
.sh-早 { background: #E3F2E8 !important; color: #2E7D4F; }
.sh-中 { background: #E6EEF7 !important; color: #3F6590; }
.sh-晚 { background: #EFE6F7 !important; color: #6B3F90; }
.sh-全 { background: #FCEBD7 !important; color: #A55A0C; }
.sh-休, .sh-调 { background: #F1F0EC !important; color: #77736A; }
.sh-假 { background: #FDE7E5 !important; color: #B3261E; }
.sc-brush .sh-x { background: var(--card); color: var(--muted); }
.sc-legend { margin: 8px 0; font-size: 12px; color: var(--muted); line-height: 2; }
.sc-legend span { display: inline-block; width: 20px; height: 20px; line-height: 20px; margin-right: 3px; border-radius: 5px; text-align: center; font-weight: 700; }
.sc-warn { margin: 6px 0 10px; padding: 8px 10px 8px 26px; border-radius: 10px; background: var(--warn-soft); font-size: 13px; line-height: 1.6; }
.sc-acts { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 10px 0 6px; }
.sc-ntf { display: flex; align-items: center; gap: 6px; margin: 6px 0 8px; font-size: 13px; }
.sc-set { margin: 12px 0; font-size: 14px; }
.sc-set summary { cursor: pointer; font-weight: 700; color: var(--ink-deep); padding: 6px 0; }
.sc-req { margin-top: 12px; }
.sc-rq { list-style: none; margin: 0; padding: 0; }
.sc-rq li { display: flex; gap: 8px; align-items: flex-start; padding: 10px 0; border-bottom: 1px solid var(--line); font-size: 13px; }
.sc-rq li > div:first-child { flex: 1; min-width: 0; }
.sc-rq b { display: block; font-size: 14px; }
.sc-rq span, .sc-rq em { display: block; font-style: normal; color: var(--muted); }
.sc-rq-r { display: flex; flex-direction: column; gap: 6px; align-items: flex-end; }
.sc-rq-r .btn { min-height: 34px; padding: 0 14px; width: auto; }
.rq-st { font-size: 12px; font-weight: 700; color: var(--muted); }
.sc-rq li.pending .rq-st { color: #A55A0C; }
.sc-rq li.ok .rq-st { color: #2E7D4F; }
.sc-rq li.no .rq-st { color: #B3261E; }
.hr-mine { display: flex; align-items: center; gap: 8px; width: 100%; margin-bottom: 10px; padding: 12px 14px; border: 1.5px solid var(--line); border-radius: 14px; background: var(--card); font: inherit; cursor: pointer; text-align: left; }
.hr-mine b { flex: 1; }
.hr-mine i { font-style: normal; color: var(--muted); }
.hr-tag { display: inline-block; font-size: 11px; padding: 1px 8px; border-radius: 10px; background: #F1F0EC; color: #77736A; font-style: normal; }
.hr-tag.ok { background: #E3F2E8; color: #2E7D4F; }
.hr-tag.warn { background: #FFF4E0; color: #8A4B08; }
.hr-list { list-style: none; margin: 8px 0; padding: 0; }
.hr-list li[data-hp] { padding: 10px 12px; margin-bottom: 8px; border: 1px solid var(--line); border-radius: 12px; background: var(--card); cursor: pointer; }
.hr-list li.off { opacity: .6; }
.hr-l1 { display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
.hr-l1 small { flex: 1; color: var(--muted); font-size: 12px; }
.hr-l2 { display: flex; flex-wrap: wrap; gap: 4px 12px; margin-top: 4px; font-size: 12px; color: var(--muted); }
.hr-soon { font-style: normal; padding: 0 6px; border-radius: 8px; background: #E5607A; color: #fff; }
.hr-own { margin-top: 14px; }
.hr-tb { width: 100%; border-collapse: collapse; font-size: 14px; }
.hr-tb th { width: 34%; text-align: left; font-weight: 500; color: var(--muted); padding: 7px 6px 7px 0; vertical-align: top; border-bottom: 1px solid var(--line); }
.hr-tb td { padding: 7px 0; border-bottom: 1px solid var(--line); word-break: break-all; }
.hr-dh { margin: 0 0 6px; color: var(--muted); font-size: 13px; }
.hr-dacts { display: flex; gap: 8px; margin-top: 14px; }
.hr-dacts .btn { flex: 1; }
.hr-hist { margin-top: 10px; font-size: 13px; }
.hr-hist summary { cursor: pointer; color: var(--ink-deep); font-weight: 700; }
.hr-hist ul { margin: 6px 0; padding-left: 18px; color: var(--muted); line-height: 1.6; }
.hr-f > span small { display: block; font-weight: 400; color: var(--muted); font-size: 12px; }
.hr-pick { flex-wrap: wrap; display: flex; }
.hr-lunar { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.hr-lunar select { height: 42px; border: 1.5px solid var(--line); border-radius: 10px; background: var(--card); font: inherit; padding: 0 8px; }
.hr-consent { display: flex; gap: 8px; align-items: flex-start; margin: 12px 0; padding: 10px; border-radius: 10px; background: var(--tint); font-size: 13px; line-height: 1.6; }
.hr-consent input { margin-top: 4px; width: 18px; height: 18px; flex: none; }
.bd-hr { list-style: none; margin-bottom: 10px; padding: 8px 10px; border-radius: 14px; background: #FFF4EC; border: 1px solid #F6D3BE; }
.bd-hr-go { display: block; width: 100%; padding: 8px 2px; border: 0; border-bottom: 1px dashed #F0CDB8; background: none; font: 14px var(--font); color: var(--text); text-align: left; cursor: pointer; }
.bd-hr-go:last-child { border-bottom: 0; }
.bd-hr-go b { float: right; color: var(--ink-deep); }

/* ===== y72 排班按月、筛选；目标奖惩 ===== */
.sc-view { margin: 0 0 8px; }
.sc-filter { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 6px 0; }
.sc-filter input { flex: 1 1 120px; min-width: 0; height: 38px; border: 1.5px solid var(--line); border-radius: 10px; padding: 0 10px; font: inherit; font-size: 14px; background: var(--card); }
.sc-fsh { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; margin: 4px 0 8px; font-size: 12px; color: var(--muted); }
.sc-fsh button { min-width: 30px; height: 30px; padding: 0 6px; border: 1.5px solid var(--line); border-radius: 8px; background: var(--card); font: 600 12px var(--font); cursor: pointer; }
.sc-fsh button.on { outline: 2.5px solid var(--ink-deep); outline-offset: 1px; }
.sc-c.dim { opacity: .18; }
.sc-tb th[data-hd] { cursor: pointer; }
.sc-tb th.sel, .sc-tb td.sel { box-shadow: inset 0 0 0 2px var(--ink-deep); }
.sc-tb.mon th, .sc-tb.mon td { min-width: 30px; padding: 5px 1px; }
.sc-tb.mon .sc-c { font-size: 12px; }
.sc-tip { margin: 4px 0; font-size: 12px; color: var(--muted); }
.sc-dayp { margin: 6px 0 10px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--card); font-size: 13px; line-height: 1.9; }
.sc-dayp p { margin: 0 0 4px; }
.sc-dayp span { display: inline-block; width: 20px; height: 20px; line-height: 20px; margin-right: 4px; border-radius: 5px; text-align: center; font-weight: 700; }
.sc-dayp small { color: var(--muted); }
.gl-new { margin-bottom: 10px; }
.gl-list { list-style: none; margin: 8px 0; padding: 0; }
.gl-list li[data-gl] { margin-bottom: 10px; padding: 12px; border: 1px solid var(--line); border-radius: 14px; background: var(--card); cursor: pointer; }
.gl-h { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.gl-h b { font-size: 16px; margin-right: auto; }
.gl-k { font-size: 11px; padding: 1px 8px; border-radius: 10px; background: var(--tint); color: var(--ink-deep); }
.gl-st { font-size: 11px; padding: 1px 8px; border-radius: 10px; background: #FFF4E0; color: #8A4B08; }
.gl-st.settled { background: #E3F2E8; color: #2E7D4F; }
.gl-st.done { background: #FDE7E5; color: #B3261E; }
.gl-st.wait { background: #F1F0EC; color: #77736A; }
.gl-m { margin: 4px 0; font-size: 13px; color: var(--muted); }
.gl-time { margin: 2px 0; font-size: 12px; color: var(--muted); }
.gl-me { margin-top: 8px; padding: 10px; border-radius: 12px; background: #FFFBEA; }
.gl-me > div { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px; margin-bottom: 6px; }
.gl-me span { font-size: 13px; color: var(--muted); }
.gl-me.big b { font-size: 17px; }
.gl-need, .gl-hits, .gl-top, .gl-sum { margin: 6px 0 0; font-size: 13px; }
.gl-sum { color: var(--ink-deep); font-weight: 600; }
.gl-bar { position: relative; display: block; height: 8px; border-radius: 4px; background: var(--line); overflow: visible; }
.gl-bar i { display: block; height: 100%; border-radius: 4px; background: var(--warn); }
.gl-bar i.ok { background: var(--ok); }
.gl-bar i.bad { background: #E5382F; }
.gl-bar b { position: absolute; top: -3px; width: 2px; height: 14px; background: var(--ink-deep); }
.gl-hit { display: inline-block; margin: 2px 4px 2px 0; padding: 1px 8px; border-radius: 8px; font-size: 12px; }
.gl-hit.reward { background: #E3F2E8; color: #2E7D4F; }
.gl-hit.penalty { background: #FDE7E5; color: #B3261E; }
.gl-note { margin: 6px 0; padding: 8px 10px; border-radius: 10px; background: var(--tint); font-size: 13px; }
.gl-rules { list-style: none; margin: 0; padding: 0; }
.gl-rules li { display: flex; gap: 8px; padding: 6px 0; border-bottom: 1px dashed var(--line); font-size: 14px; }
.gl-rules li span { color: var(--muted); min-width: 110px; }
.gl-rules li.reward b { color: #2E7D4F; }
.gl-rules li.penalty b { color: #B3261E; }
.gl-tb { width: 100%; border-collapse: collapse; font-size: 13px; }
.gl-tb th { text-align: left; color: var(--muted); font-weight: 600; padding: 6px 4px; border-bottom: 1px solid var(--line); }
.gl-tb td { padding: 8px 4px; border-bottom: 1px solid var(--line); vertical-align: top; }
.gl-tb td small { display: block; color: var(--muted); font-size: 12px; margin: 2px 0 4px; }
.gl-tb td.rk { font-size: 16px; text-align: center; width: 34px; }
.gl-tb tr.me td { background: #FFFBEA; }
.gl-tb td.ck { text-align: center; }
.gl-tb td.ck input { width: 20px; height: 20px; }
.gl-man { width: 80px; height: 34px; border: 1.5px solid var(--line); border-radius: 8px; padding: 0 6px; font: inherit; }
.gl-acts { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; margin-top: 14px; }
.gl-acts .d { color: #B3261E; }
.gf-sep { margin: 4px 0 10px; font-size: 14px; }
.gf-sep summary { cursor: pointer; color: var(--ink-deep); font-weight: 600; padding: 4px 0; }
.gf-tr { display: flex; align-items: center; gap: 8px; margin: 6px 0; }
.gf-tr span { flex: 1; font-size: 14px; }
.gf-tr input { width: 120px; }
.gf-rules { display: flex; flex-direction: column; gap: 8px; }
.gf-rule { padding: 8px 10px; border-radius: 12px; border: 1.5px solid #CFE6D7; background: #F6FBF8; }
.gf-rule.penalty { border-color: #F3C9C4; background: #FFF7F6; }
.gf-r1, .gf-r2 { display: flex; align-items: center; gap: 6px; }
.gf-r2 { margin-top: 6px; }
.gf-r1 b { flex: none; width: 24px; height: 24px; line-height: 24px; text-align: center; border-radius: 6px; background: #2E7D4F; color: #fff; font-size: 13px; }
.gf-rule.penalty .gf-r1 b { background: #B3261E; }
.gf-rule select, .gf-rule input { height: 36px; min-width: 0; border: 1.5px solid var(--line); border-radius: 8px; padding: 0 6px; font: inherit; font-size: 14px; background: var(--card); }
.gf-r1 select { flex: 1; }
.gf-r1 input { width: 64px; }
.gf-r2 select { flex: none; width: 110px; }
.gf-r2 input[data-ra] { width: 76px; flex: none; }
.gf-r2 input[data-rt] { flex: 1; }
.gf-r1 .u { font-size: 13px; color: var(--muted); }
.gf-x { flex: none; width: 30px; height: 30px; border: 0; border-radius: 50%; background: var(--tint); font-size: 16px; cursor: pointer; }
.gf-warn { margin: 6px 0 0; font-size: 12px; color: #B3261E; }
.gf-add { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 8px 0 12px; }
.sc-tb .nm small { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sc-tb.mon .nm { min-width: 60px; max-width: 66px; }
.gl-tb td:nth-child(2) { min-width: 64px; }
.gl-tb td:nth-child(2) small { white-space: nowrap; }
.gl-tb td:nth-child(3) { min-width: 96px; }

/* ===== y73：顾客回访清单、直曲量感、会员画像新字段 ===== */
.fu-entry { width: 100%; display: grid; grid-template-columns: auto 1fr auto; grid-template-rows: auto auto; column-gap: 10px; align-items: center; min-height: 52px; margin-bottom: 10px;
  padding: 10px 14px; border: 1.5px solid var(--line); border-radius: 14px; background: var(--card); color: var(--text); font: 15px var(--font); text-align: left; cursor: pointer; }
.fu-entry b { grid-row: 1 / 3; font-size: 16px; }
.fu-entry span { color: var(--muted); }
.fu-entry span i { font-style: normal; font-weight: 700; color: var(--ink); font-size: 18px; }
.fu-entry small { grid-column: 2; color: var(--muted); font-size: 12px; }
.fu-entry em { grid-row: 1 / 3; grid-column: 3; font-style: normal; font-size: 20px; color: var(--muted); }
.fu-entry.has { border-color: var(--ink-line); background: var(--ink-soft); }
.fu-tb { width: 100%; display: flex; align-items: center; gap: 6px; min-height: 44px; margin-bottom: 10px; padding: 0 14px; border: 1.5px solid var(--ink-line);
  border-radius: 12px; background: var(--ink-soft); color: var(--text); font: 600 15px var(--font); cursor: pointer; text-align: left; }
.fu-tb b { color: var(--ink); font-size: 18px; }
.fu-tb i { margin-left: auto; font-style: normal; }
.fu-h { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.fu-name { font-size: 17px; font-weight: 700; color: var(--text); padding: 0; }
.fu-text { margin: 8px 0; padding: 10px 12px; border-radius: 10px; background: var(--tint); font-size: 14px; line-height: 1.6; }
.fu-text .btn { display: block; margin-top: 8px; }
.fu-res { margin: 6px 0 8px; }
.fu-tbl td, .fu-tbl th { white-space: nowrap; text-align: center; }
.fu-tbl td:first-child, .fu-tbl th:first-child { text-align: left; }
.chip.lv { background: var(--ink-soft); border-color: var(--ink-line); }
.lv-note { display: block; margin-top: 4px; }
.pf-hint { margin: -4px 0 10px; }

/* ===== y74：练货卡（一衣多搭） ===== */
.lh-list li img { width: 48px; height: 60px; object-fit: cover; border-radius: 8px; flex: none; }
.lh-top { display: flex; gap: 12px; align-items: flex-start; }
.lh-top img { width: 84px; height: 105px; object-fit: cover; border-radius: 10px; flex: none; background: var(--tint); }
.lh-top h2 { margin: 0 0 4px; font-size: 18px; }
.lh-top p { margin: 2px 0; }
.lh-acts { flex-wrap: wrap; }
.lh-hl { margin: 4px 0 0; padding-left: 20px; font-size: 15px; line-height: 1.7; }
.lh-fabe div { display: grid; grid-template-columns: 92px 1fr; gap: 8px; padding: 6px 0; border-bottom: 1px dashed var(--line); font-size: 14px; }
.lh-fabe div:last-child { border-bottom: 0; }
.lh-fabe b { color: var(--muted); font-weight: 600; }
.lh-note { margin: 8px 0; padding: 8px 10px; border-left: 3px solid var(--ink-line); background: var(--tint); border-radius: 0 8px 8px 0; font-size: 14px; }
.lh-ph { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
.lh-ph figure { margin: 0; width: 84px; }
.lh-ph img { width: 84px; height: 112px; object-fit: cover; border-radius: 8px; display: block; }
.lh-ph figcaption { font-size: 12px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lh-up { width: 84px; height: 112px; border: 1.5px dashed var(--ink-line); border-radius: 8px; display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: 12px; color: var(--ink); cursor: pointer; }
.lh-up span { font-size: 24px; line-height: 1; }
.lh-say { margin: 0; font-size: 15px; }
.lh-pick { margin-top: 8px; }
.lh-bottom { margin: 12px 0; }
.lh-tip { margin: 0 4px 10px; }

/* ===== y75：新版本试运行 ===== */
.upd-pv { margin: 0 0 14px; padding: 12px 14px; border: 1.5px solid #E7C27A; border-radius: 14px; background: #FFF6E2; }
.upd-pv h3 { margin: 0 0 4px; font-size: 16px; color: #6B4A00; }
.upd-pv p { margin: 4px 0; }
.pv-bar { position: fixed; left: 8px; right: 8px; bottom: calc(80px + env(safe-area-inset-bottom)); z-index: 60; display: flex; align-items: center; gap: 8px;
  padding: 8px 10px 8px 12px; border-radius: 14px; background: #B45309; color: #fff; font-size: 12px; line-height: 1.4; box-shadow: 0 6px 18px rgba(0,0,0,.25); max-width: 560px; margin: 0 auto; }
.pv-bar b { flex: none; font-size: 13px; }
.pv-bar span { flex: 1; opacity: .92; }
.pv-bar button { flex: none; border: 0; border-radius: 10px; padding: 7px 10px; background: #fff; color: #B45309; font: 600 13px var(--font); cursor: pointer; }

/* ---------- y76 门店管理自查表（平台后台） ---------- */
#pf-mode button { position: relative; }
.sv-badge { position: absolute; top: 2px; right: 2px; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 99px; background: #c0392b; color: #fff; font: 700 10px/16px var(--font); font-style: normal; }
#sv-sum small { font-size: 12px; color: var(--muted); font-weight: 600; }
.sv-qr-box { margin: 12px 0; padding: 10px 12px; border-radius: 14px; background: var(--card); border: 1px solid var(--line); }
.sv-qr-box summary { font-weight: 700; cursor: pointer; }
.sv-new { display: flex; gap: 8px; margin: 8px 0; }
.sv-new .btn { flex: none; width: auto; padding: 8px 16px; }
.sv-new input { flex: 1; min-width: 0; padding: 9px 10px; border: 1px solid var(--line); border-radius: 10px; font: 15px var(--font); }
.sv-links { display: grid; gap: 10px; }
.sv-link { display: flex; gap: 10px; align-items: flex-start; border-top: 1px solid var(--line); padding-top: 10px; }
.sv-qr { flex: none; width: 120px; min-height: 40px; background: #fff; }
.sv-qr svg { display: block; }
.sv-li { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.sv-url { color: var(--muted); word-break: break-all; }
.sv-la { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.sv-la .btn { padding: 6px 10px; font-size: 13px; }
.sv-filters { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; }
.sv-filters select { padding: 7px 8px; border: 1px solid var(--line); border-radius: 10px; background: var(--card); font: 13px var(--font); color: var(--text); max-width: 48%; }
.sv-card { border-left-color: #7fb3a3; }
.sv-st { flex: none; font-size: 12px; padding: 1px 8px; border-radius: 99px; background: #eef1f0; color: var(--muted); font-weight: 600; margin-left: 6px; }
.sv-s-new { background: #fdecea; color: #c0392b; } .sv-s-c { background: #fff4e0; color: #9a6400; } .sv-s-t { background: #e6f0fb; color: #2463a6; }
.sv-s-w { background: #e3f3ec; color: #1f7a55; } .sv-s-l { background: #f0f0f0; color: #888; }
.sv-tags { display: flex; flex-wrap: wrap; gap: 4px 6px; margin-top: 6px; }
.sv-tags span { font-size: 12px; padding: 1px 8px; border-radius: 8px; background: #f2f4f3; color: var(--text); }
.sv-tags .sv-lv-高 { background: #2f6b5a; color: #fff; } .sv-tags .sv-lv-中 { background: #c58b2a; color: #fff; } .sv-tags .sv-lv-低 { background: #8a9894; color: #fff; }
.sv-tags .sv-int { background: #fff1d6; color: #8a5a00; font-weight: 700; }
.sv-late { color: #c0392b; font-weight: 700; }
.sv-det .sv-head b { font-size: 18px; }
.sv-det .sv-head p { margin: 2px 0; }
.sv-intent { background: #fff1d6; color: #8a5a00; border-radius: 10px; padding: 8px 10px; font-weight: 700; margin: 8px 0; }
.sv-note { background: #f4f7f6; border-radius: 10px; padding: 8px 10px; margin: 8px 0; font-size: 14px; }
.sv-fu h3 { margin: 0 0 6px; }
.sv-fu-row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.sv-log { border-top: 1px solid var(--line); padding: 6px 0; }
.sv-log p { margin: 2px 0 0; font-size: 14px; }
.sv-acts { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0; }
.sv-ans { margin: 10px 0; } .sv-ans summary { font-weight: 700; cursor: pointer; }
.sv-ans h4 { margin: 10px 0 4px; }
.sv-ans td.sv-a-n { color: var(--muted); }
.sv-rt { margin: 16px 0 0; }
#sv-rep .sr { background: #f5f7f6; border-radius: 14px; padding: 2px 10px; }

/* ---------- y78 排班简约版（.sc2）：只用主题色 + 灰，上班 / 休息 / 请假 三种状态 ---------- */
.sc2 { --w-bg: var(--ink-soft); --w-fg: var(--ink-deep); --r-bg: #F1F1EF; --r-fg: #9A9C99; --l-bg: #FCEFE2; --l-fg: #A65A1B; }
.sc2-store { width: 100%; padding: 10px 12px; margin: 4px 0 8px; border: 1px solid var(--line); border-radius: 12px; background: var(--card); font: 600 15px var(--font); color: var(--text); }
.sc2-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 6px 0 4px; }
.sc2-seg { display: inline-flex; padding: 3px; border-radius: 12px; background: var(--frame); }
.sc2-seg button { min-width: 52px; height: 32px; border: 0; border-radius: 9px; background: transparent; font: 600 14px var(--font); color: var(--muted); cursor: pointer; }
.sc2-seg button[aria-pressed="true"] { background: var(--card); color: var(--ink-deep); box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.sc2-setbtn { display: inline-flex; align-items: center; gap: 6px; height: 38px; padding: 0 14px; border: 1.5px solid var(--ink); border-radius: 12px; background: var(--card); color: var(--ink-deep); font: 700 14px var(--font); cursor: pointer; }
.sc2-setbtn svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.sc2-nav { display: flex; align-items: center; justify-content: space-between; margin: 8px 0 10px; }
.sc2-nav > button { width: 40px; height: 40px; border: 0; border-radius: 12px; background: var(--card); font-size: 22px; line-height: 1; color: var(--ink-deep); cursor: pointer; box-shadow: 0 1px 2px rgba(0,0,0,.05); }
.sc2-nav div { text-align: center; }
.sc2-nav b { display: block; font-size: 16px; }
.sc2-nav small { font-size: 12px; color: var(--muted); }
.sc2-now { border: 0; background: none; color: var(--ink); font: 600 12px var(--font); text-decoration: underline; cursor: pointer; padding: 0; }
.sc2-h { margin: 4px 0 6px; font-size: 13px; color: var(--muted); }
.sc2-h b { color: var(--ink-deep); }
.sc2 .sc-dirty { font-style: normal; color: var(--warn); font-weight: 700; margin-left: 6px; }
.sc2 .sc-brush { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin: 0 0 12px; }
.sc2 .sc-brush button { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 46px; padding: 4px 2px; border: 1.5px solid var(--line); border-radius: 12px;
  background: var(--card); color: var(--text); font: 600 14px var(--font); outline: 0; cursor: pointer; }
.sc2 .sc-brush button small { font-size: 10.5px; font-weight: 400; color: var(--muted); margin-top: 1px; }
.sc2 .sc-brush button.b-r, .sc2 .sc-brush button.b-c { color: var(--muted); }
.sc2 .sc-brush button.b-l { color: var(--l-fg); }
.sc2 .sc-brush button.on { background: var(--ink-deep); border-color: var(--ink-deep); color: #fff; outline: 0; }
.sc2 .sc-brush button.on small { color: rgba(255,255,255,.75); }
.sc2-q { width: 100%; padding: 9px 12px; margin: 0 0 8px; border: 1px solid var(--line); border-radius: 10px; font: 14px var(--font); background: var(--card); }
.sc2 .sc-wrap { border-radius: 14px; background: var(--card); border: 1px solid var(--line); }
.sc2 .sc-tb th, .sc2 .sc-tb td { border-bottom: 1px solid #F0EEE9; }
.sc2 .sc-tb th { color: var(--muted); font-weight: 500; padding: 8px 2px; }
.sc2 .sc-tb th small { font-size: 12px; color: var(--text); font-weight: 600; }
.sc2 .sc-tb th.we small { color: var(--text); }
.sc2 .sc-tb th.we { color: var(--muted); }
.sc2 .sc-tb th.td { background: transparent; color: var(--ink-deep); }
.sc2 .sc-tb th.td small { display: inline-block; min-width: 22px; border-radius: 99px; background: var(--ink-deep); color: #fff; }
.sc2 .sc-tb tr.me td { background: transparent; }
.sc2 .sc-tb tr.me .nm b:after { content: " · 我"; color: var(--muted); font-weight: 400; font-size: 11px; }
.sc2 .sc-c { padding: 4px 2px; }
.sc2 .sc-c span { display: flex; align-items: center; justify-content: center; height: 30px; border-radius: 8px; font-size: 13px; font-weight: 700; }
.sc2 .sc-c.c-w span { background: var(--w-bg); color: var(--w-fg); }
.sc2 .sc-c.c-r span { background: var(--r-bg); color: var(--r-fg); font-weight: 500; }
.sc2 .sc-c.c-l span { background: var(--l-bg); color: var(--l-fg); }
.sc2 .sc-c.c-x span { border: 1px dashed #E3E1DB; }
.sc2 .sc-c.dk span { box-shadow: inset 0 0 0 2px var(--warn); }
.sc2 .sc-c.past { opacity: .55; }
.sc2 .sc-tb.mon .sc-c span { height: 26px; font-size: 12px; }
.sc2 .sc-tb tfoot td { font-weight: 600; color: var(--muted); font-size: 12px; }
.sc2 .sc-tb tfoot td.low { color: var(--warn); background: transparent; }
.sc2-tip { font-size: 12px; color: var(--muted); margin: 6px 2px; }
.sc2 .sc-dayp span { width: 22px; border-radius: 6px; }
.sc2 .sc-dayp .c-w { background: var(--w-bg); color: var(--w-fg); } .sc2 .sc-dayp .c-r, .sc2 .sc-dayp .c-x { background: var(--r-bg); color: var(--r-fg); } .sc2 .sc-dayp .c-l { background: var(--l-bg); color: var(--l-fg); }
.sc2-warn { margin: 8px 0; font-size: 13px; }
.sc2-warn summary { cursor: pointer; color: var(--warn); font-weight: 600; }
.sc2-warn ul { margin: 6px 0 0; padding-left: 18px; color: var(--muted); }
.sc2-more { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 16px; margin: 10px 2px; font-size: 13px; }
.sc2-more button { border: 0; background: none; padding: 4px 0; color: var(--ink); font: 600 13px var(--font); cursor: pointer; }
.sc2-more label { display: inline-flex; align-items: center; gap: 5px; color: var(--muted); margin-left: auto; }
.sc2-save.on { position: sticky; bottom: calc(76px + env(safe-area-inset-bottom)); z-index: 5; padding: 8px 0; }
.sc2-setf .sc2-tm { display: grid; grid-template-columns: 48px 1fr auto 1fr; align-items: center; gap: 8px; margin: 10px 0; }
.sc2-setf .sc2-tm b { font-size: 15px; }
.sc2-setf .sc2-tm span { color: var(--muted); font-size: 13px; }
.sc2-setf input[type=time] { width: 100%; padding: 10px 8px; border: 1px solid var(--line); border-radius: 10px; font: 16px var(--font); background: var(--card); }

/* ---------- y78 生日选择 ---------- */
.bdp-row { display: grid; grid-template-columns: 1fr 1fr 1.25fr auto; gap: 8px; align-items: center; }
.bdp-box { position: relative; display: block; }
.bdp-box select { width: 100%; height: 48px; padding: 0 26px 0 12px; border: 1.5px solid var(--line); border-radius: 12px; background: var(--card); font: 600 16px var(--font); color: var(--text);
  -webkit-appearance: none; appearance: none; cursor: pointer; }
.bdp-box:after { content: ""; position: absolute; right: 12px; top: 50%; width: 7px; height: 7px; margin-top: -6px; border-right: 2px solid var(--muted); border-bottom: 2px solid var(--muted); transform: rotate(45deg); pointer-events: none; }
.bdp.ok .bdp-box select { border-color: var(--ink); background: var(--ink-soft); color: var(--ink-deep); }
.bdp-box.y select { font-weight: 500; }
.bdp-x { width: 34px; height: 34px; border: 0; border-radius: 50%; background: var(--frame); color: var(--muted); font-size: 18px; cursor: pointer; }
.bdp-tip { min-height: 18px; margin: 6px 2px 0; font-size: 13px; color: var(--ink-deep); }

/* ---------- y78 记试穿：日期放顶上、三个带字的录入按钮、商品表格行、底部按钮常驻 ---------- */
.try-dbar { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 0 0 10px; padding: 10px 12px; border-radius: 14px; background: var(--card); border: 1.5px solid var(--ink-line); }
.try-dbar-l { display: flex; align-items: center; gap: 6px; font: 700 14px var(--font); color: var(--ink-deep); }
.try-dbar-l svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; }
.try-dbar #try-days { flex: 1; min-width: 0; }
.try-dbar #try-days .cal { margin: 0; }
.try-dbar .try-day-tip { flex-basis: 100%; margin: 0; font-style: normal; font-size: 13px; font-weight: 600; color: #8F5A12; }
.try-dbar.past { border-color: #D99A2B; background: #FFF7E8; }
.try-q2 { width: 100%; height: 48px; padding: 0 14px; border: 1.5px solid var(--line); border-radius: 12px; background: var(--tint); font: 16px var(--font); color: var(--text); }
.try-q2:focus { outline: 0; border-color: var(--ink); background: var(--card); }
.try-ways { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 10px 0 4px; }
.try-way { display: flex; flex-direction: column; align-items: center; gap: 1px; padding: 10px 4px 9px; border: 1.5px solid var(--line); border-radius: 14px; background: var(--card); color: var(--ink-deep); cursor: pointer; font-family: var(--font); }
.try-way svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; margin-bottom: 3px; }
.try-way b { font-size: 14px; }
.try-way small { font-size: 11px; color: var(--muted); }
.try-way:active { background: var(--ink-soft); }
.try-tbh { display: flex; align-items: baseline; justify-content: space-between; margin: 14px 2px 6px; }
.try-tbh b { font-size: 14px; }
.try-tbh span { font-size: 12px; color: var(--muted); }
.try-tbl { list-style: none; margin: 0; padding: 0; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; background: var(--card); }
.try-tbl:empty { display: none; }
.try-tbl li { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-top: 1px solid #F0EEE9; cursor: pointer; }
.try-tbl li:first-child { border-top: 0; }
.try-tbl li:active { background: var(--ink-soft); }
.try-tbl li > img, .try-tbl li > .noimg { flex: none; width: 40px; height: 48px; border-radius: 8px; object-fit: cover; }
.try-tbl .gr-m { flex: 1; min-width: 0; display: grid; grid-template-columns: auto 1fr; column-gap: 6px; align-items: baseline; }
.try-tbl .gr-m b { font-size: 14px; }
.try-tbl .gr-m span { font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.try-tbl .gr-m small { grid-column: 1 / -1; font-size: 12px; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.try-tbl em { flex: none; font-style: normal; font-size: 14px; font-weight: 600; color: var(--text); }
.try-tbl .gr-add { flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--ink-soft); color: var(--ink-deep); font-style: normal; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.try-tbl li.try-new, .try-tbl li.try-hint { display: block; font-size: 13px; }
.try-tbmore { display: block; width: 100%; margin-top: 6px; padding: 8px; border: 0; background: none; color: var(--ink); font: 600 13px var(--font); cursor: pointer; }
.try-dock2 { display: grid !important; grid-template-columns: 1fr 1.6fr; }
.try-dock2 .btn { display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1.25; padding: 8px 6px; }
.try-dock2 .btn b { font-size: 16px; }
.try-dock2 .btn small { font-size: 11px; font-weight: 400; opacity: .8; }
.try-dock2 .btn.off { opacity: .45; }
.try-dbar { position: relative; }
.try-dbar .dpick { position: static; margin: 0; }
.try-dbar .dpick-pop { left: 8px; right: 8px; width: auto; }
.try-dbar-l svg { display: none; }
.sc2 .sc-tb th.td small { display: block; width: 24px; margin: 2px auto 0; line-height: 20px; }
.sc2-save .btn { width: 100%; }
.sc2 .sc-c.dk { box-shadow: none; }
.sc2 .sc-tb th.td { background: transparent; }

/* y82 微信小程序：第一次从小程序进来的提示 */
.wx-hint { margin: 8px 0 10px; padding: 10px 12px; border-radius: 10px; background: #E8F3EF; color: #1F4D43; font-size: 14px; line-height: 1.5; }

/* ============ y83 界面优化（设计稿“码尺店务 界面优化设计”松绿版）============ */
/* 首页“快捷待办”：一个实色主按钮 + 两张轻卡片 + 今天要做的事 + 今日三个数 */
.hm2-hi b { display: block; font-size: 20px; font-weight: 700; color: var(--text); margin: 2px 0 2px; }
.hm2-main { display: flex; align-items: center; gap: 14px; width: 100%; min-height: 92px; padding: 18px; border: 0; border-radius: 20px; background: var(--ink); color: #fff; text-align: left; font-family: var(--font); cursor: pointer; }
.hm2-mic { flex: none; width: 54px; height: 54px; border-radius: 16px; background: rgba(255,255,255,.14); display: flex; align-items: center; justify-content: center; }
.hm2-mic .hi { width: 30px; height: 30px; stroke: #fff; }
.hm2-mtx { flex: 1; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.hm2-mtx b { font-size: 20px; }
.hm2-mtx span { font-size: 14px; opacity: .85; }
.hm2-main > i { font-style: normal; font-size: 26px; opacity: .9; }
.hm2-side { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.hm2-card { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 16px; min-height: 112px; border-radius: 18px; border: 1px solid var(--line); background: var(--card); color: var(--text); font-family: var(--font); text-align: left; cursor: pointer; }
.hm2-card .hi { width: 28px; height: 28px; stroke: var(--ink); }
.hm2-card b { font-size: 17px; }
.hm2-card span { font-size: 13px; color: var(--muted); }
.hm2-card span.warn { color: #8E2F28; font-weight: 700; }
.hm2-todo { background: var(--card); border: 1px solid var(--line); border-radius: 18px; padding: 4px 16px; }
.hm2-todo h2 { margin: 12px 0 4px; font-size: 17px; font-weight: 700; color: var(--text); }
.hm2-li { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 56px; padding: 0; border: 0; border-top: 1px solid var(--line); background: none; color: var(--text); font: 400 16px var(--font); text-align: left; cursor: pointer; }
.hm2-todo h2 + .hm2-li { border-top: 0; }
.hm2-li em { flex: none; font-style: normal; padding: 4px 10px; border-radius: 999px; background: var(--ink-soft); color: var(--ink-deep); font-size: 13px; font-weight: 700; }
.hm2-li em.gold { background: #F4E6C8; color: #7A5A12; }
.hm2-li em.red { background: #F7E3E1; color: #8E2F28; }
.hm2-li span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hm2-li i { font-style: normal; color: var(--muted); font-size: 20px; }
.hm2-none { display: flex; align-items: center; gap: 8px; margin: 6px 0 14px; color: var(--muted); font-size: 15px; }
.hm2-none .hi { width: 20px; height: 20px; stroke: var(--ink); }
.hm2-nums { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.hm2-nums div { background: var(--card); border: 1px solid var(--line); border-radius: 16px; padding: 12px; }
.hm2-nums b { display: block; font-size: 26px; font-weight: 700; color: var(--ink-deep); font-variant-numeric: tabular-nums; line-height: 1.2; }
.hm2-nums span { font-size: 13px; color: var(--muted); }

/* 顶部压缩：演示说明变成一条细的米金提示条；页头里不再重复“演示模式” */
:root[data-skin^="n-"] .demo-bar { min-height: 38px; height: calc(38px + env(safe-area-inset-top)); padding: 4px 8px 4px 12px; padding-top: calc(4px + env(safe-area-inset-top)); gap: 6px; background: #F4E6C8; color: #7A5A12; }
:root[data-skin^="n-"] .db-tag { padding: 1px 6px; font-size: 12px; background: #7A5A12; color: #F4E6C8; border-radius: 6px; }
:root[data-skin^="n-"] .db-txt { flex-direction: row; align-items: baseline; gap: 6px; }
:root[data-skin^="n-"] .db-txt b { font-size: 13px; color: #5C430D; }
:root[data-skin^="n-"] .db-txt em { font-size: 12px; color: #7A5A12; }
:root[data-skin^="n-"] .db-btn { height: 30px; padding: 0 8px; border: 0; border-radius: 8px; background: transparent; color: #7A5A12; font-size: 13px; text-decoration: underline; text-underline-offset: 3px; }
:root[data-skin^="n-"] .db-exit { background: #7A5A12; color: #fff; text-decoration: none; }
:root[data-skin^="n-"] body.in-demo .topbar { top: calc(38px + env(safe-area-inset-top)); padding-top: 8px; }
:root[data-skin^="n-"] body.in-demo .demo-flag { display: none; }
:root[data-skin^="n-"] .topbar { padding-bottom: 6px; }
:root[data-skin^="n-"] .top-title h1 { font-size: 20px; }
:root[data-skin^="n-"] .top-title span { font-size: 13px; }
:root[data-skin^="n-"] .db-txt em { display: none; }
:root[data-skin^="n-"] .db-txt b::after { content: " · 数据都是虚构的"; font-weight: 400; color: #7A5A12; }

/* 数据页：先看关键指标（深色卡）+ 一条最该注意的提醒，再看款号、日报 */
.sd-hero { background: var(--ink-deep); color: #fff; border-radius: 20px; padding: 18px; margin: 4px 0 12px; display: flex; flex-direction: column; gap: 10px; }
.sd-hero-l { font-size: 14px; opacity: .8; }
.sd-hero-v { font-size: 34px; font-weight: 700; line-height: 1; font-variant-numeric: tabular-nums; }
.sd-hero-s { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; border-top: 1px solid rgba(255,255,255,.2); padding-top: 12px; }
.sd-hero-s b { display: block; font-size: 22px; font-variant-numeric: tabular-nums; }
.sd-hero-s span { font-size: 13px; opacity: .8; }
.sd-alert { display: flex; align-items: center; gap: 10px; width: 100%; margin: 0 0 12px; padding: 12px 14px; border: 0; border-radius: 14px; background: #F7E3E1; color: var(--text); font: 400 15px var(--font); text-align: left; cursor: pointer; }
.sd-alert i { flex: none; width: 8px; height: 8px; border-radius: 4px; background: #B5473F; }
.sd-alert span { flex: 1; min-width: 0; }
.sd-alert em { font-style: normal; color: #8E2F28; font-size: 20px; }

/* 入库“批次汇总”：手机上不再是会截断的宽表，每个批次一张卡片：名字 + 状态，金额 / 件 / 款 / 单，日期 */
@media (max-width: 640px) {
  .mg-wrap { max-height: none; border: 0; overflow: visible; }
  table.mg-tbl, table.mg-tbl tbody { display: block; min-width: 0; }
  table.mg-tbl thead { display: none; }
  table.mg-tbl tbody tr { display: grid; grid-template-columns: auto repeat(4, minmax(0, 1fr)); grid-template-areas: "ck nm nm nm tag" ". sum q sty sl" ". d d d d"; row-gap: 6px;
    background: var(--card); border: 1px solid var(--line); border-radius: 16px; padding: 12px 14px; margin-bottom: 10px; }
  table.mg-tbl tbody tr td { display: block; padding: 0; border: 0; background: none !important; white-space: normal; }
  table.mg-tbl td.ck { grid-area: ck; padding-right: 8px; }
  table.mg-tbl td.nm { grid-area: nm; min-width: 0; font-size: 16px; }
  table.mg-tbl td.c-tag { grid-area: tag; justify-self: end; }
  table.mg-tbl td.c-sum { grid-area: sum; }
  table.mg-tbl td.c-q { grid-area: q; }
  table.mg-tbl td.c-sty { grid-area: sty; }
  table.mg-tbl td.c-sl { grid-area: sl; }
  table.mg-tbl td.c-d { grid-area: d; font-size: 13px; color: var(--muted); }
  table.mg-tbl td.num { text-align: left; font-size: 18px; font-weight: 700; color: var(--ink-deep); }
  table.mg-tbl td.num::after { content: attr(data-l); display: block; font-size: 12px; font-weight: 400; color: var(--muted); }
  table.mg-tbl td.c-sum { font-size: 17px; }
  table.mg-tbl tr.cur { border: 2px solid var(--ink); background: var(--ink-soft); }
  table.mg-tbl tr.none { background: #FFF8EC; }
  table.mg-tbl tr.pk { border: 2px solid var(--ink); }
  table.mg-tbl td.empty { grid-column: 1 / -1; }
  table.mg-tbl tbody tr:has(td.empty) { display: block; }
}

/* 设置：三类分组，每项一行（标题 + 当前状态），点开看详细 */
.set-grp { margin-top: 16px; }
.sheet h3.sg-h { margin: 0 4px 6px; padding: 0; border: 0; font-size: 14px; font-weight: 500; color: var(--muted); }
.set-grp > .admin-tools { margin-bottom: 8px; }
details.set-it { border: 1px solid var(--line); border-radius: 14px; background: var(--card); padding: 0 14px; margin: 0 0 8px; }
details.set-it > summary { display: flex; align-items: center; gap: 10px; min-height: 52px; cursor: pointer; list-style: none; }
details.set-it > summary::-webkit-details-marker { display: none; }
details.set-it > summary b { flex: 1; font-size: 16px; color: var(--text); }
details.set-it > summary .set-v { font-size: 14px; color: var(--muted); }
details.set-it > summary::after { content: "›"; font-size: 20px; color: var(--muted); transition: transform .15s; }
details.set-it[open] > summary::after { transform: rotate(90deg); }
details.set-it[open] { padding-bottom: 12px; }
details.set-it.skin-fold > summary::after { content: none; }
.set-grp > .btn-danger { width: 100%; margin-top: 8px; }

/* 防错与反馈：提示里的“撤销”按钮；重复扫码时，单里那件闪一下 */
.toast .toast-btn { flex: none; min-height: 36px; padding: 0 14px; margin-left: 4px; border: 1.5px solid rgba(255,255,255,.7); border-radius: 10px; background: transparent; color: #fff; font: 700 14px var(--font); cursor: pointer; }
#try-cart li.flash { animation: y83flash 1.2s ease; }
@keyframes y83flash { 0%, 60% { box-shadow: 0 0 0 3px var(--ink); } 100% { box-shadow: none; } }
#try-save:disabled, #dl-save:disabled { opacity: .7; cursor: progress; }
.toast.t-act { width: min(92vw, 420px); box-sizing: border-box; }
.toast.t-act span { flex: 1; }
@media (max-width: 640px) { table.mg-tbl tr.cur .v2-tag { background: #fff; } }

/* ============ y84 电脑管理后台（屏幕宽 ≥ 1100）：左侧菜单 + 宽内容区；手机、平板不变 ============ */
.sb-brand, .sb-ops { display: none; }
@media (min-width: 1100px) {
  html, body { background: var(--paper) !important; }
  #app { max-width: none !important; margin: 0 !important; padding-left: 232px; box-shadow: none !important; background: var(--paper); }
  .tabbar { top: 0; bottom: 0; left: 0; right: auto; width: 232px; max-width: none !important; margin: 0 !important; box-sizing: border-box;
    flex-direction: column; align-items: stretch; gap: 2px; padding: 18px 12px !important; overflow-y: auto;
    border: 0 !important; border-right: 1px solid var(--line) !important; border-radius: 0 !important; box-shadow: none !important; background: var(--card) !important; }
  .tabbar .tab { flex: none !important; height: 44px !important; min-height: 44px; display: flex; flex-direction: row !important; align-items: center; justify-content: flex-start !important; gap: 10px !important;
    padding: 0 14px !important; border-radius: 10px !important; font: 500 15px var(--font) !important; color: var(--muted); box-shadow: none !important; background: none; text-align: left; }
  .tabbar .tab svg { width: 20px !important; height: 20px !important; flex: none; }
  .tabbar .tab:hover { background: var(--tint); color: var(--text); }
  .tabbar .tab.active { background: var(--ink) !important; color: #fff !important; font-weight: 700 !important; }
  .tabbar .tab.active svg { stroke: #fff; }
  .sb-brand { display: flex; align-items: center; gap: 10px; padding: 2px 8px 18px; }
  .sb-brand i { font-style: normal; width: 34px; height: 34px; border-radius: 9px; background: #2E6B5E; color: #fff; font: 700 12px var(--font); display: flex; align-items: center; justify-content: center; }
  .sb-brand span { font: 700 16px var(--font); color: var(--text); letter-spacing: 2px; }
  .sb-ops { display: flex; flex-direction: column; gap: 1px; padding: 4px 0 6px 30px; }
  .sb-ops[hidden] { display: none; }
  .sb-ops button { height: 38px; border: 0; border-radius: 8px; background: none; text-align: left; padding: 0 12px; font: 400 14px var(--font); color: var(--muted); cursor: pointer; }
  .sb-ops button:hover { background: var(--tint); color: var(--text); }
  .tab[data-view="ops"].active + .sb-ops button.on { background: var(--ink-soft); color: var(--ink-deep); font-weight: 700; }
  .tab[data-view="ops"].active { background: var(--tint) !important; color: var(--ink-deep) !important; }
  .tab[data-view="ops"].active svg { stroke: var(--ink-deep); }
  body.has-sb #ops-mode { display: none !important; }
  main { max-width: 1240px !important; margin: 0 !important; padding: 20px 40px 60px !important; }
  :root[data-skin^="n-"] .topbar { padding-left: 40px; padding-right: 40px; }
  :root[data-skin^="n-"] .demo-bar { padding-left: 40px; padding-right: 24px; }
  /* 原来给底部栏让位置的浮层，往下放、往右挪 */
  .try-dock { bottom: 16px !important; max-width: 720px; }
  .bs-pick, .sc2-save.on { bottom: 16px !important; }
  .action-bar.sticky { left: 232px !important; max-width: none !important; bottom: 0 !important; }
  .ib-bar, .gd-pickbar { left: 232px !important; bottom: 24px !important; }
  .pv-bar { left: 248px !important; bottom: 24px !important; }
  .toast { bottom: 40px !important; left: calc(50% + 116px) !important; }
  /* 首页：左边常用操作，右边今天要做的事 */
  #home-root { display: grid !important; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 16px 20px !important; align-items: start; }
  #home-root > * { grid-column: 1 / -1; }
  #home-root > .hm2-main { grid-column: 1; grid-row: 2; }
  #home-root > .hm2-side { grid-column: 1; grid-row: 3; }
  #home-root > .hm2-todo { grid-column: 2; grid-row: 2 / span 2; align-self: stretch; }
  #home-root > .hm2-nums { grid-column: 1 / -1; }
  .hm-more { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)) !important; }
  /* 数据页：指标卡、提醒、带表格的块占满一行，其余两块一行 */
  #st-body { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; align-items: start; }
  #st-body > * { grid-column: 1 / -1; }
  #st-body > .sd-card:not(:has(.sd-tw)) { grid-column: auto; }
  .sd-hero { flex-direction: row; align-items: center; gap: 32px; padding: 22px 28px; }
  .sd-hero-l { display: none; }
  .sd-hero-v::before { content: attr(data-l); display: block; font-size: 14px; font-weight: 400; opacity: .8; margin-bottom: 8px; }
  .sd-hero-s { flex: 1; border-top: 0; border-left: 1px solid rgba(255,255,255,.2); padding: 0 0 0 32px; }
  /* 表格：电脑上行高宽松一点，鼠标移上去整行变色 */
  .sd-t tbody tr:hover td, table.mg-tbl tbody tr:hover td { background: var(--ink-soft); }
  .mg-wrap { max-height: 60vh; }
}
@media (min-width: 1100px) {
  #sd-box { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 8px 24px; }
  #sd-box .sd-row { margin: 0; }
  #sd-box #st-store { width: 260px; flex: none; }
  #sd-box .sd-period { margin: 0; flex-basis: 100%; }
  .ops-scope { margin-top: 0; }
}
@media (min-width: 1100px) {
  #sd-box { justify-content: flex-start; text-align: left; }
  #sd-box .sd-row { justify-content: flex-start; }
  .try-dock { max-width: none; }
}

/* ============ y85 记试穿：平板横屏和电脑（≥900）左边挑衣服、右边是这位顾客的试穿单；手机上顺序不变 ============ */
.try-grid { display: flex; flex-direction: column; }
.try-left, .try-right { display: contents; }
.try-grid .mem-pick { order: 1; }
.try-grid .try-pickcard { order: 2; }
.try-grid .try-cartcard { order: 3; }
.try-grid .try-dock { order: 4; }
.try-cart-h { margin: 0 0 4px; font-size: 17px; }
.try-cartcard #try-cart:empty { display: none; }
@media (max-width: 899px) {
  .try-cartcard:has(#try-cart:empty) { display: none; }
}
@media (min-width: 900px) {
  .try-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(340px, 1fr); gap: 16px; align-items: start; }
  .try-left { display: block; grid-column: 1; }
  .try-l1 { grid-row: 1; } .try-l2 { grid-row: 2; }
  .try-left .slip { margin: 0 !important; }
  .try-right { display: flex; flex-direction: column; gap: 12px; grid-column: 2; grid-row: 1 / span 2; align-self: stretch; }
  .try-right .try-dock { flex: none; }
  .try-right > .slip { margin: 0 !important; }
  .try-right .try-dock { position: sticky !important; bottom: 12px !important; margin: 0; box-shadow: 0 -4px 16px rgba(0,0,0,.06); }
  .try-cartcard #try-cart:empty { display: block; min-height: 120px; border: 1.5px dashed var(--line); border-radius: 12px; margin: 8px 0; }
  .try-cartcard #try-cart:empty::before { content: "还没加衣服：在左边点一件，或扫吊牌、拍衣服"; display: block; padding: 44px 16px; text-align: center; color: var(--muted); font-size: 15px; }
  .try-left .try-pickcard { margin-top: 0; }
  /* 平板上手指点：常试的衣服行高一点 */
  .try-top .try-gr, .try-results .try-gr { min-height: 64px; }
}
@media (min-width: 900px) {
  #try-top[hidden] { display: block !important; }   /* 宽屏左边一直留着“最近常试”，接着点就能加 */
}

/* y86 商品库：进货单里还没进商品库的提醒 */
.gd-gap { display: flex; align-items: center; gap: 12px; margin: 8px 0; padding: 12px 14px; border-radius: 12px; background: #F4E6C8; color: #5C430D; font-size: 14px; line-height: 1.6; }
.gd-gap span { flex: 1; }
.gd-gap[hidden] { display: none; }
.gd-gap .btn { flex: none; width: auto; }

/* y86 加入商品库：按款勾选 */
#gp-sheet .sheet { max-width: 640px; }
.gp-bar { display: flex; align-items: center; justify-content: space-between; margin: 8px 0; font-size: 14px; }
.gp-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.gp-it { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--card); cursor: pointer; }
.gp-it.on { border-color: var(--ink); background: var(--ink-soft); }
.gp-it.dis { cursor: default; opacity: .7; }
.gp-it img, .gp-noimg { flex: none; width: 40px; height: 50px; border-radius: 8px; object-fit: cover; background: var(--ink-soft); display: flex; align-items: center; justify-content: center; font-size: 12px; color: var(--ink-deep); }
.gp-m { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.gp-m b { font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gp-m span { font-size: 13px; color: var(--muted); }
.gp-st { flex: none; font-style: normal; font-size: 12px; color: var(--muted); }
.gp-st.in { color: var(--ink-deep); }
.gp-st.nokey { color: #8E2F28; }
.gp-it .gd-dot { flex: none; }
.gp-foot { position: sticky; bottom: 0; display: grid; grid-template-columns: 1fr 2fr; gap: 10px; padding: 12px 0 4px; background: var(--card); }
.bs-p2 button.g { background: var(--ink); color: #fff; border-color: var(--ink); }
.bs-p2 button.g:disabled { opacity: .5; }
.gp-it.on .gd-dot { background: var(--ink); border-color: var(--ink); }
.gp-it.on .gd-dot::after { content: "✓"; position: absolute; inset: 0; color: #fff; font-size: 13px; font-weight: 700; display: flex; align-items: center; justify-content: center; }

/* y87 自定义款号 · 编号方式：方式卡片带例子，参数，实时预览 */
.sr-lb { margin: 4px 0 8px; font-size: 14px; color: var(--muted); }
.sr-modes { display: grid; grid-template-columns: 1fr; gap: 8px; }
@media (min-width: 700px) { .sr-modes { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.sr-m { display: flex; flex-direction: column; align-items: stretch; gap: 6px; padding: 10px 12px; border: 1.5px solid var(--line); border-radius: 12px; background: var(--card); text-align: left; font-family: var(--font); color: var(--text); cursor: pointer; }
.sr-m.on { border-color: var(--ink); background: var(--ink-soft); box-shadow: inset 0 0 0 1px var(--ink); }
.sr-m:disabled { cursor: default; opacity: .75; }
.sr-t { display: flex; flex-direction: column; gap: 2px; }
.sr-t b { font-size: 15px; }
.sr-t small { font-size: 12px; color: var(--muted); line-height: 1.45; }
.sr-eg { display: flex; flex-wrap: wrap; gap: 6px; font-style: normal; }
.sr-eg i { font-style: normal; font: 700 14px/1.3 ui-monospace, "SF Mono", Menlo, monospace; color: var(--ink-deep); background: var(--card); border: 1px dashed var(--ink-line, var(--line)); border-radius: 8px; padding: 3px 8px; white-space: nowrap; }
.sr-eg::before { content: "例"; font-size: 12px; color: var(--muted); align-self: center; }
.sr-ps { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 8px; margin-top: 12px; }
.sr-ps label, .sr-lt { display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: var(--muted); }
.sr-lt { margin-top: 8px; }
.sr-ps [hidden], .sr-lt[hidden] { display: none; }
.sr-prev { margin: 12px 0 0; padding: 10px 12px; border-radius: 10px; background: #F4E6C8; color: #5C430D; font-size: 14px; line-height: 1.6; }
.sr-prev b { font: 700 15px ui-monospace, "SF Mono", Menlo, monospace; color: #3F2E08; }
.sr-prev small { color: #7A5A12; }
.sr-line { display: flex; align-items: center; gap: 10px; width: 100%; margin-top: 10px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--card); font-family: var(--font); text-align: left; cursor: pointer; }
.sr-line span { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; font-size: 13px; color: var(--muted); }
.sr-line em { font-style: normal; font-size: 14px; color: var(--text); font-weight: 500; }
.sr-line b { flex: none; color: var(--ink); font-size: 14px; }
#sr-sheet .sheet { max-width: 720px; }

/* ===== y88 数据页点一行看详情 ===== */
.sd-click { cursor: pointer; }
tr.sd-click:hover td, .sd-brow.sd-click:hover, li.sd-click:hover { background: var(--ink-soft); }
tr.sd-click td:first-child::after, .sd-brow.sd-click .r::after, li.sd-click > span:last-child::after { content: " ›"; color: var(--ink); font-weight: 700; }
.sd-brow.sd-click { border-radius: 8px; padding: 4px 2px; margin: -4px -2px; }
li.sd-click { border-radius: 8px; }
.sd-dtb { display: inline-block; margin-left: 6px; border: 1px solid var(--ink-line); background: var(--card); color: var(--ink-deep); border-radius: 12px; font: 500 12px var(--font, inherit); padding: 2px 8px; cursor: pointer; white-space: nowrap; }
.dt-mask .sheet { max-width: 640px; }
.dt-mask .sheet-head { gap: 8px; justify-content: flex-start; }
.dt-mask .sheet-head h2 { flex: 1; font-size: 18px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dt-back { border: 0; background: var(--ink-soft); color: var(--ink-deep); width: 34px; height: 34px; border-radius: 50%; font-size: 22px; line-height: 1; cursor: pointer; flex: none; }
.dt-body { display: flex; flex-direction: column; gap: 12px; padding-bottom: 12px; }
.dt-body .sd-sub { margin: 6px 0 0; font-weight: 700; font-size: 14px; }
.dt-body .sd-tiles.c4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.dt-body .sd-tiles.c1 { grid-template-columns: 1fr; }
.dt-goods { display: flex; gap: 14px; align-items: flex-start; }
.dt-goods img, .dt-noimg { width: 84px; height: 108px; border-radius: 10px; object-fit: cover; flex: none; background: var(--tint); }
.dt-noimg { display: flex; align-items: center; justify-content: center; font-size: 30px; color: var(--muted); }
.dt-goods > div { flex: 1; min-width: 0; font-size: 16px; }
.dt-goods > div > b { color: var(--ink-deep); }
.dt-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 6px; }
.dt-tags i { font-style: normal; font-size: 12px; padding: 2px 8px; border-radius: 10px; background: var(--ink-soft); color: var(--ink-deep); }
.dt-kv { display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 0; font-size: 13px; color: var(--muted); }
.dt-kv b { color: var(--text); }
.dt-boss { border: 1px dashed var(--ink-line); background: var(--tint); border-radius: 12px; padding: 12px; display: flex; flex-direction: column; gap: 10px; }
.dt-bh { margin: 0; font-weight: 700; font-size: 14px; }
.dt-bh small { font-weight: 400; color: var(--muted); margin-left: 6px; font-size: 12px; }
.dt-kv4 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.dt-kv4 div { background: var(--card); border-radius: 8px; padding: 8px 10px; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.dt-kv4 span { font-size: 12px; color: var(--muted); }
.dt-kv4 b { font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-variant-numeric: tabular-nums; }
.dt-line { margin: 0; font-size: 13px; color: var(--muted); line-height: 1.6; }
.dt-days { display: flex; align-items: flex-end; gap: 3px; height: 96px; overflow-x: auto; padding-bottom: 18px; }
.dt-day { flex: 1 0 14px; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; position: relative; }
.dt-day i { display: flex; flex-direction: column; justify-content: flex-end; width: 100%; max-width: 22px; background: var(--ink-line); border-radius: 3px 3px 0 0; min-height: 2px; }
.dt-day em { display: block; background: var(--ink); border-radius: 3px 3px 0 0; }
.dt-day span { position: absolute; bottom: -17px; font-size: 10px; color: var(--muted); white-space: nowrap; }
.dt-day:nth-child(odd) span { visibility: hidden; }
tr.dt-note td { white-space: normal; color: var(--muted); font-size: 12px; padding-top: 0; }
.dt-x { width: 100%; }
/* y88 价目表、透支提醒 */
.tbl-x { overflow-x: auto; }
.pr-t td, .pr-t th { white-space: nowrap; vertical-align: top; }
.pr-t tr.pr-on td { background: var(--ink-soft); }
.warn-txt { color: var(--warn, #B8621B); font-size: 13px; margin-top: 4px; }
.pr-t td:first-child { white-space: normal; min-width: 120px; } .pr-t td small { font-weight: 400; }

/* ===== y89 商品库批量判断单品 DNA ===== */
.gd-dna { display: inline-block; margin-left: 4px; padding: 0 5px; border-radius: 6px; font: 700 10px/16px var(--font, inherit); letter-spacing: .5px; color: var(--ink-deep); background: var(--ink-soft); vertical-align: middle; }
#gd-pick-dna { width: 100%; margin-top: 8px; }
#gd-pick-dna[hidden] { display: none; }
.dna-prog { height: 8px; border-radius: 4px; background: var(--ink-soft); overflow: hidden; }
.dna-prog i { display: block; height: 100%; background: var(--ink); transition: width .3s; }
.dna-n { margin: 10px 0 4px; font-size: 15px; }
.dna-n b { font-size: 22px; }
.dna-last { display: flex; gap: 12px; align-items: center; margin: 10px 0; padding: 10px; border-radius: 10px; background: var(--tint); }
.dna-last img { width: 56px; height: 72px; object-fit: cover; border-radius: 8px; flex: none; }
.dna-last p { margin: 4px 0 0; color: var(--ink-deep); font-weight: 600; }
.dna-fail { margin: 8px 0; font-size: 13px; }
.dna-fail ul { margin: 6px 0 0; padding-left: 18px; }
.dna-end { font-weight: 700; margin: 12px 0 4px; }
#dna-body .btn { width: 100%; margin-top: 10px; }
.gd-dnaline { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin: 8px 0; padding: 8px 12px; border-radius: 10px; background: var(--tint); font-size: 14px; }
.gd-dnaline b { color: var(--ink-deep); }
td.k1 .gd-dna { display: block; width: max-content; margin: 2px 0 0; }
